UpdraftPlus WordPress Backup Plugin - Version 1.16.0

Version Description

  • 19/Dec/2018 =

  • FEATURE: Added the abilty to create and restore Incremental Backups

  • 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

  • TWEAK: Improve performance by aggregating separate SQL SELECT queries (previously one for each backup) when loading the settings page

  • TWEAK: internal backup extradata parameter to prevent unwanted PHP notices

  • TWEAK: Fork a method UpdraftPlus_Filesystem_Functions::unzip_file() to allow for future enhancements

  • TWEAK: Periodic purging of obsolete job data that didn't get cleaned when expected was not happening on multisite

  • TWEAK: Improve logging when the initial call to jobdata_set_multi fails

  • TWEAK: Any stored backup/restore progress log files will now be deleted after 40 days. (Since they are attached to email reports, you can keep and retrieve them from those if needed). Over-ride this with the filter updraftplus_log_delete_age if desired.

Download this release

Release Info

Developer DavidAnderson
Plugin Icon 128x128 UpdraftPlus WordPress Backup Plugin
Version 1.16.0
Comparing to
See all releases

Code changes from version 1.15.6 to 1.16.0

Files changed (83) hide show
  1. admin.php +78 -76
  2. backup.php +7 -8
  3. central/bootstrap.php +1 -1
  4. central/listener.php +3 -3
  5. central/modules/plugin.php +2 -2
  6. central/modules/posts.php +2 -2
  7. central/modules/theme.php +2 -2
  8. class-updraftplus.php +51 -22
  9. css/updraftplus-admin.css +16 -4
  10. css/updraftplus-admin.min.css +1 -1
  11. css/updraftplus-admin.min.css.map +1 -1
  12. includes/class-backup-history.php +139 -11
  13. includes/class-commands.php +5 -1
  14. includes/class-filesystem-functions.php +212 -5
  15. includes/class-remote-send.php +1 -1
  16. includes/class-wpadmin-commands.php +1 -1
  17. includes/{updraftplus-admin-common.js → updraft-admin-common.js} +99 -9
  18. includes/updraft-admin-common.min.js +4 -0
  19. includes/updraftplus-admin-common.min.js +0 -4
  20. languages/updraftplus-el.mo +0 -0
  21. languages/updraftplus-el.po +252 -252
  22. languages/updraftplus-fi.mo +0 -0
  23. languages/updraftplus-fi.po +87 -87
  24. languages/updraftplus-it_IT.mo +0 -0
  25. languages/updraftplus-it_IT.po +94 -94
  26. languages/updraftplus-ja.mo +0 -0
  27. languages/updraftplus-ja.po +2 -2
  28. languages/updraftplus-vi.mo +0 -0
  29. languages/updraftplus-vi.po +220 -220
  30. languages/updraftplus.pot +612 -568
  31. readme.txt +18 -3
  32. restorer.php +5 -5
  33. templates/wp-admin/settings/backupnow-modal.php +68 -0
  34. templates/wp-admin/settings/delete-and-restore-modals.php +1 -1
  35. templates/wp-admin/settings/existing-backups-table.php +5 -7
  36. templates/wp-admin/settings/form-contents.php +1 -1
  37. templates/wp-admin/settings/tab-addons.php +16 -0
  38. templates/wp-admin/settings/take-backup.php +7 -2
  39. updraftplus.php +1 -1
  40. vendor/composer/installed.json +11 -11
  41. vendor/phpseclib/phpseclib/CHANGELOG.md +214 -0
  42. vendor/phpseclib/phpseclib/README.md +1 -1
  43. vendor/phpseclib/phpseclib/appveyor.yml +0 -27
  44. vendor/phpseclib/phpseclib/build/build.xml +32 -0
  45. vendor/phpseclib/phpseclib/build/code-sniffer-ruleset-tests.xml +11 -0
  46. vendor/phpseclib/phpseclib/build/code-sniffer-ruleset.xml +39 -0
  47. vendor/phpseclib/phpseclib/build/sami.conf.php +32 -0
  48. vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php +4 -4
  49. vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php +20 -78
  50. vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php +0 -12
  51. vendor/phpseclib/phpseclib/phpseclib/File/X509.php +8 -14
  52. vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php +1 -0
  53. vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php +1 -11
  54. vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php +22 -177
  55. vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php +0 -14
  56. vendor/phpseclib/phpseclib/phpunit.xml.dist +21 -0
  57. vendor/phpseclib/phpseclib/tests/Functional/Net/SCPSSH2UserStoryTest.php +88 -0
  58. vendor/phpseclib/phpseclib/tests/Functional/Net/SFTPLargeFileTest.php +42 -0
  59. vendor/phpseclib/phpseclib/tests/Functional/Net/SFTPStreamTest.php +48 -0
  60. vendor/phpseclib/phpseclib/tests/Functional/Net/SFTPTestCase.php +39 -0
  61. vendor/phpseclib/phpseclib/tests/Functional/Net/SFTPUserStoryTest.php +726 -0
  62. vendor/phpseclib/phpseclib/tests/Functional/Net/SSH2AgentTest.php +52 -0
  63. vendor/phpseclib/phpseclib/tests/Functional/Net/SSH2Test.php +172 -0
  64. vendor/phpseclib/phpseclib/tests/PhpseclibFunctionalTestCase.php +72 -0
  65. vendor/phpseclib/phpseclib/tests/PhpseclibTestCase.php +104 -0
  66. vendor/phpseclib/phpseclib/tests/Unit/Crypt/AES/InternalTest.php +14 -0
  67. vendor/phpseclib/phpseclib/tests/Unit/Crypt/AES/McryptTest.php +14 -0
  68. vendor/phpseclib/phpseclib/tests/Unit/Crypt/AES/OpenSSLTest.php +14 -0
  69. vendor/phpseclib/phpseclib/tests/Unit/Crypt/AES/TestCase.php +388 -0
  70. vendor/phpseclib/phpseclib/tests/Unit/Crypt/BlowfishTest.php +130 -0
  71. vendor/phpseclib/phpseclib/tests/Unit/Crypt/DESTest.php +77 -0
  72. vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/MD5Test.php +47 -0
  73. vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/SHA256Test.php +79 -0
  74. vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/SHA256_96Test.php +30 -0
  75. vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/SHA512Test.php +79 -0
  76. vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/SHA512_96Test.php +30 -0
  77. vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/TestCase.php +52 -0
  78. vendor/phpseclib/phpseclib/tests/Unit/Crypt/RC2Test.php +127 -0
  79. vendor/phpseclib/phpseclib/tests/Unit/Crypt/RC4Test.php +250 -0
  80. vendor/phpseclib/phpseclib/tests/Unit/Crypt/RSA/LoadKeyTest.php +422 -0
  81. vendor/phpseclib/phpseclib/tests/Unit/Crypt/RSA/ModeTest.php +97 -0
  82. vendor/phpseclib/phpseclib/tests/Unit/Crypt/RandomTest.php +53 -0
  83. vendor/phpseclib/phpseclib/tests/Unit/Crypt/TripleDESTest.php +187 -0
admin.php CHANGED
@@ -227,7 +227,7 @@ class UpdraftPlus_Admin {
227
  if ($this->disk_space_check(1048576*35) === false) add_action('all_admin_notices', array($this, 'show_admin_warning_diskspace'));
228
  }
229
 
230
- private function setup_all_admin_notices_udonly($service, $override = false) {
231
  global $updraftplus;
232
 
233
  if (UpdraftPlus_Options::user_can_manage() && defined('DISABLE_WP_CRON') && DISABLE_WP_CRON && (!defined('UPDRAFTPLUS_DISABLE_WP_CRON_NOTICE') || !UPDRAFTPLUS_DISABLE_WP_CRON_NOTICE)) {
@@ -733,9 +733,9 @@ class UpdraftPlus_Admin {
733
  wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery'.$min_or_not.'.js', false, $jquery_enqueue_version, false);
734
  wp_enqueue_script('jquery');
735
  // No plupload until 3.3
736
- wp_enqueue_script('updraftplus-admin-common', UPDRAFTPLUS_URL.'/includes/updraftplus-admin-common'.$min_or_not.'.js', array('jquery', 'jquery-ui-dialog', 'jquery-ui-core', 'jquery-ui-accordion'), $enqueue_version, true);
737
  } else {
738
- wp_enqueue_script('updraftplus-admin-common', UPDRAFTPLUS_URL.'/includes/updraftplus-admin-common'.$min_or_not.'.js', array('jquery', 'jquery-ui-dialog', 'jquery-ui-core', 'jquery-ui-accordion', 'plupload-all'), $enqueue_version);
739
  }
740
 
741
  }
@@ -787,7 +787,7 @@ class UpdraftPlus_Admin {
787
  }
788
  $remote_storage_options_and_templates = UpdraftPlus_Storage_Methods_Interface::get_remote_storage_options_and_templates();
789
  $main_tabs = $this->get_main_tabs_array();
790
- wp_localize_script('updraftplus-admin-common', 'updraftlion', array(
791
  'tab' => empty($_GET['tab']) ? 'backups' : $_GET['tab'],
792
  'sendonlyonwarnings' => __('Send a report only when there are warnings/errors', 'updraftplus'),
793
  'wholebackup' => __('When the Email storage method is enabled, also send the backup', 'updraftplus'),
@@ -922,7 +922,7 @@ class UpdraftPlus_Admin {
922
  'remote_storage_templates' => $remote_storage_options_and_templates['templates'],
923
  'instance_enabled' => __('Currently enabled', 'updraftplus'),
924
  'instance_disabled' => __('Currently disabled', 'updraftplus'),
925
- 'local_upload_started' => __('Local backup upload has started; please check the current status tab to see the upload progress', 'updraftplus'),
926
  'local_upload_error' => __('You must select at least one remote storage destination to upload this backup set to.', 'updraftplus'),
927
  'already_uploaded' => __('(already uploaded)', 'updraftplus'),
928
  'onedrive_folder_url_warning' => __('Please specify the Microsoft OneDrive folder name, not the URL.', 'updraftplus'),
@@ -951,6 +951,8 @@ class UpdraftPlus_Admin {
951
  'exclude_prefix_error_msg' => __('Please enter a valid file name prefix', 'updraftplus'),
952
  'duplicate_exclude_rule_error_msg' => __('The exclusion rule which you are trying to add already exists', 'updraftplus'),
953
  'clone_key_required' => __('UpdraftClone key is required.', 'updraftplus'),
 
 
954
  ));
955
  }
956
 
@@ -2038,9 +2040,16 @@ class UpdraftPlus_Admin {
2038
  */
2039
  public function request_backupnow($request, $close_connection_callable = false) {
2040
  global $updraftplus;
2041
-
2042
- $backupnow_nocloud = (empty($request['backupnow_nocloud'])) ? false : true;
 
2043
  $event = (!empty($request['backupnow_nofiles'])) ? 'updraft_backupnow_backup_database' : ((!empty($request['backupnow_nodb'])) ? 'updraft_backupnow_backup' : 'updraft_backupnow_backup_all');
 
 
 
 
 
 
2044
 
2045
  // The call to backup_time_nonce() allows us to know the nonce in advance, and return it
2046
  $nonce = $updraftplus->backup_time_nonce();
@@ -2049,6 +2058,13 @@ class UpdraftPlus_Admin {
2049
  'nonce' => $nonce,
2050
  'm' => apply_filters('updraftplus_backupnow_start_message', '<strong>'.__('Start backup', 'updraftplus').':</strong> '.htmlspecialchars(__('OK. You should soon see activity in the "Last log message" field below.', 'updraftplus')), $nonce)
2051
  );
 
 
 
 
 
 
 
2052
 
2053
  if ($close_connection_callable && is_callable($close_connection_callable)) {
2054
  call_user_func($close_connection_callable, $msg);
@@ -2056,6 +2072,8 @@ class UpdraftPlus_Admin {
2056
  $updraftplus->close_browser_connection(json_encode($msg));
2057
  }
2058
 
 
 
2059
  $options = array('nocloud' => $backupnow_nocloud, 'use_nonce' => $nonce);
2060
  if (!empty($request['onlythisfileentity']) && is_string($request['onlythisfileentity'])) {
2061
  // Something to see in the 'last log' field when it first appears, before the backup actually starts
@@ -2063,9 +2081,12 @@ class UpdraftPlus_Admin {
2063
  $options['restrict_files_to_override'] = explode(',', $request['onlythisfileentity']);
2064
  }
2065
 
2066
- if (!empty($request['extradata'])) {
2067
- $options['extradata'] = $request['extradata'];
 
2068
  }
 
 
2069
 
2070
  $options['always_keep'] = empty($request['always_keep']) ? false : true;
2071
 
@@ -2211,6 +2232,13 @@ class UpdraftPlus_Admin {
2211
  return $response;
2212
  }
2213
 
 
 
 
 
 
 
 
2214
  public function upload_dir($uploads) {
2215
  global $updraftplus;
2216
  $updraft_dir = $updraftplus->backups_dir_location();
@@ -2224,9 +2252,10 @@ class UpdraftPlus_Admin {
2224
  * @param String $dir Directory
2225
  * @param String $name Name
2226
  * @param String $ext File extension
 
2227
  * @return String
2228
  */
2229
- public function unique_filename_callback($dir, $name, $ext) {
2230
  return $name.$ext;
2231
  }
2232
 
@@ -2804,6 +2833,9 @@ class UpdraftPlus_Admin {
2804
  );
2805
  }
2806
 
 
 
 
2807
  private function print_restore_in_progress_box_if_needed() {
2808
  $restore_in_progress = get_site_option('updraft_restore_in_progress');
2809
  if (empty($restore_in_progress)) return;
@@ -3004,42 +3036,9 @@ class UpdraftPlus_Admin {
3004
  * @return String
3005
  */
3006
  public function backupnow_modal_contents() {
3007
- return $this->backup_now_widgetry();
3008
  }
3009
 
3010
- private function backup_now_widgetry() {
3011
-
3012
- $ret = '';
3013
-
3014
- $ret .= '<p><input type="checkbox" id="backupnow_includedb" checked="checked"> <label for="backupnow_includedb">'.__("Include the database in the backup", 'updraftplus').'</label> '."\n";
3015
-
3016
- $ret .= '(<a href="'.UpdraftPlus::get_current_clean_url().'" id="backupnow_database_showmoreoptions">...</a>)<br>'."\n";
3017
-
3018
- $ret .= '<div id="backupnow_database_moreoptions" class="updraft-hidden" style="display:none;">'."\n";
3019
-
3020
- $premium_link = apply_filters('updraftplus_com_link', 'https://updraftplus.com/landing/updraftplus-premium');
3021
-
3022
- $free_ret = '<em>'.__('All WordPress tables will be backed up.', 'updraftplus').' <a href="'.$premium_link.'">'. __('With UpdraftPlus Premium, you can choose to backup non-WordPress tables, backup only specified tables, and backup other databases too.', 'updraftplus').'</a></em>'."\n";
3023
-
3024
- $ret .= apply_filters('updraft_backupnow_database_showmoreoptions', $free_ret, '')."\n";
3025
-
3026
- $ret .= '</div>';
3027
-
3028
- $ret .= '</p>';
3029
-
3030
- $ret .= '<p><input type="checkbox" id="backupnow_includefiles" checked="checked"> <label for="backupnow_includefiles">'.__("Include any files in the backup", 'updraftplus').'</label> (<a href="'.UpdraftPlus::get_current_clean_url().'" id="backupnow_includefiles_showmoreoptions">...</a>)<br>';
3031
-
3032
- $ret .= '<div id="backupnow_includefiles_moreoptions" class="updraft-hidden" style="display:none;"><em>'.__('Your saved settings also affect what is backed up - e.g. files excluded.', 'updraftplus').'</em><br>'.$this->files_selector_widgetry('backupnow_files_', false, 'sometimes').'</div></p>';
3033
-
3034
- $ret .= '<span id="backupnow_remote_container">'.$this->backup_now_remote_message().'</span>';
3035
-
3036
- $ret .= '<p><input type="checkbox" id="always_keep"> <label for="always_keep">'.__("Only allow this backup to be deleted manually (i.e. keep it even if retention limits are hit).", 'updraftplus').'</label> ';
3037
-
3038
- $ret .= apply_filters('updraft_backupnow_modal_afteroptions', '', '');
3039
-
3040
- return $ret;
3041
- }
3042
-
3043
  /**
3044
  * Also used by the auto-backups add-on
3045
  *
@@ -3412,7 +3411,10 @@ class UpdraftPlus_Admin {
3412
 
3413
  $ret .= $show_inline_info;
3414
  if (!empty($show_inline_info)) $ret .= ' - ';
3415
- $ret .= '<a data-jobid="'.$job_id.'" href="'.UpdraftPlus_Options::admin_page_url().'?page=updraftplus&action=downloadlog&updraftplus_backup_nonce='.$job_id.'" class="updraft-log-link">'.__('show log', 'updraftplus').'</a>';
 
 
 
3416
  if (!$is_oneshot) $ret .=' - <a href="#" data-jobid="'.$job_id.'" title="'.esc_attr(__('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.', 'updraftplus')).'" class="updraft_jobinfo_delete">'.__('stop', 'updraftplus').'</a>';
3417
  $ret .= '</div>';
3418
 
@@ -3754,7 +3756,7 @@ class UpdraftPlus_Admin {
3754
  }
3755
  }
3756
 
3757
- public function get_settings_js($method_objects, $really_is_writable, $updraft_dir, $active_service) {
3758
 
3759
  global $updraftplus;
3760
 
@@ -3792,12 +3794,13 @@ class UpdraftPlus_Admin {
3792
  }
3793
 
3794
  /**
3795
- * This is the files selector widget
 
 
 
 
3796
  *
3797
- * @param string $prefix Prefix for the ID
3798
- * @param boolean $show_exclusion_options True or False for exclusion options
3799
- * @param boolean $include_more $include_more can be (bool) or (string)"sometimes"
3800
- * @return string
3801
  */
3802
  public function files_selector_widgetry($prefix = '', $show_exclusion_options = true, $include_more = true) {
3803
 
@@ -3931,18 +3934,20 @@ class UpdraftPlus_Admin {
3931
  /**
3932
  * Get backup information in HTML format for a specific backup
3933
  *
3934
- * @param array $backup_history all backups history
3935
- * @param string $key backup timestamp
3936
- * @param string $nonce backup nonce
 
 
3937
  * @return string HTML-formatted backup information
3938
  */
3939
- public function raw_backup_info($backup_history, $key, $nonce) {
3940
 
3941
  global $updraftplus;
3942
 
3943
  $backup = $backup_history[$key];
3944
 
3945
- $only_remote_sent = (!empty($backup['service']) && (array('remotesend') === $backup['service'] || 'remotesend' === $backup['service'])) ? true : false;
3946
 
3947
  $pretty_date = get_date_from_gmt(gmdate('Y-m-d H:i:s', (int) $key), 'M d, Y G:i');
3948
 
@@ -3950,11 +3955,7 @@ class UpdraftPlus_Admin {
3950
 
3951
  if (!empty($backup['label'])) $rawbackup .= '<span class="raw-backup-info">'.$backup['label'].'</span>';
3952
 
3953
- if (!empty($nonce)) {
3954
- $jd = $updraftplus->jobdata_getarray($nonce);
3955
- } else {
3956
- $jd = array();
3957
- }
3958
 
3959
  if (!$only_remote_sent) {
3960
  $rawbackup .= '<hr>';
@@ -3970,13 +3971,13 @@ class UpdraftPlus_Admin {
3970
  foreach ($backupable_entities as $type => $info) {
3971
  if (!isset($backup[$type])) continue;
3972
 
3973
- $rawbackup .= $updraftplus->printfile($info['description'], $backup, $type, $checksums, $jd, true);
3974
  }
3975
 
3976
  $total_size = 0;
3977
  foreach ($backup as $ekey => $files) {
3978
  if ('db' == strtolower(substr($ekey, 0, 2)) && '-size' != substr($ekey, -5, 5)) {
3979
- $rawbackup .= $updraftplus->printfile(__('Database', 'updraftplus'), $backup, $ekey, $checksums, $jd, true);
3980
  }
3981
  if (!isset($backupable_entities[$ekey]) && ('db' != substr($ekey, 0, 2) || '-size' == substr($ekey, -5, 5))) continue;
3982
  if (is_string($files)) $files = array($files);
@@ -4011,8 +4012,8 @@ class UpdraftPlus_Admin {
4011
 
4012
  $rawbackup .= '</p><hr><p><pre>'.print_r($backup, true).'</p></pre>';
4013
 
4014
- if (!empty($jd) && is_array($jd)) {
4015
- $rawbackup .= '<p><pre>'.print_r($jd, true).'</pre></p>';
4016
  }
4017
 
4018
  return esc_attr($rawbackup);
@@ -4145,7 +4146,7 @@ class UpdraftPlus_Admin {
4145
  return $ret;
4146
  }
4147
 
4148
- public function download_button($type, $backup_timestamp, $findex, $info, $title, $pdescrip, $esc_pretty_date, $set_contents) {
4149
 
4150
  $ret = '';
4151
 
@@ -4176,17 +4177,18 @@ class UpdraftPlus_Admin {
4176
  /**
4177
  * Get HTML for the 'Upload' button for a particular backup in the 'Existing Backups' tab
4178
  *
4179
- * @param Integer $backup_time - backup timestamp (epoch time)
4180
- * @param String $nonce - backup nonce
4181
- * @param Array $backup - backup information array
 
4182
  *
4183
  * @return String - the resulting HTML
4184
  */
4185
- public function upload_button($backup_time, $nonce, $backup) {
4186
  global $updraftplus;
4187
 
4188
  // Check the job is not still running.
4189
- $jobdata = $updraftplus->jobdata_getarray($nonce);
4190
 
4191
  if (!empty($jobdata) && 'finished' != $jobdata['jobstatus']) return '';
4192
 
@@ -4365,7 +4367,7 @@ ENDHERE;
4365
  *
4366
  * @return string - the new filename or the original if the blog name from the job data is not set
4367
  */
4368
- public function upload_local_backup_name($backup_name, $use_time, $blog_name) {
4369
  global $updraftplus;
4370
 
4371
  $backup_blog_name = $updraftplus->jobdata_get('blog_name', '');
@@ -4662,22 +4664,22 @@ ENDHERE;
4662
 
4663
  }
4664
 
4665
- public function option_filter_template($val) {
4666
  global $updraftplus;
4667
  return $updraftplus->option_filter_get('template');
4668
  }
4669
 
4670
- public function option_filter_stylesheet($val) {
4671
  global $updraftplus;
4672
  return $updraftplus->option_filter_get('stylesheet');
4673
  }
4674
 
4675
- public function option_filter_template_root($val) {
4676
  global $updraftplus;
4677
  return $updraftplus->option_filter_get('template_root');
4678
  }
4679
 
4680
- public function option_filter_stylesheet_root($val) {
4681
  global $updraftplus;
4682
  return $updraftplus->option_filter_get('stylesheet_root');
4683
  }
227
  if ($this->disk_space_check(1048576*35) === false) add_action('all_admin_notices', array($this, 'show_admin_warning_diskspace'));
228
  }
229
 
230
+ private function setup_all_admin_notices_udonly($service, $override = false) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
231
  global $updraftplus;
232
 
233
  if (UpdraftPlus_Options::user_can_manage() && defined('DISABLE_WP_CRON') && DISABLE_WP_CRON && (!defined('UPDRAFTPLUS_DISABLE_WP_CRON_NOTICE') || !UPDRAFTPLUS_DISABLE_WP_CRON_NOTICE)) {
733
  wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery'.$min_or_not.'.js', false, $jquery_enqueue_version, false);
734
  wp_enqueue_script('jquery');
735
  // No plupload until 3.3
736
+ wp_enqueue_script('updraft-admin-common', UPDRAFTPLUS_URL.'/includes/updraft-admin-common'.$min_or_not.'.js', array('jquery', 'jquery-ui-dialog', 'jquery-ui-core', 'jquery-ui-accordion'), $enqueue_version, true);
737
  } else {
738
+ wp_enqueue_script('updraft-admin-common', UPDRAFTPLUS_URL.'/includes/updraft-admin-common'.$min_or_not.'.js', array('jquery', 'jquery-ui-dialog', 'jquery-ui-core', 'jquery-ui-accordion', 'plupload-all'), $enqueue_version);
739
  }
740
 
741
  }
787
  }
788
  $remote_storage_options_and_templates = UpdraftPlus_Storage_Methods_Interface::get_remote_storage_options_and_templates();
789
  $main_tabs = $this->get_main_tabs_array();
790
+ wp_localize_script('updraft-admin-common', 'updraftlion', array(
791
  'tab' => empty($_GET['tab']) ? 'backups' : $_GET['tab'],
792
  'sendonlyonwarnings' => __('Send a report only when there are warnings/errors', 'updraftplus'),
793
  'wholebackup' => __('When the Email storage method is enabled, also send the backup', 'updraftplus'),
922
  'remote_storage_templates' => $remote_storage_options_and_templates['templates'],
923
  'instance_enabled' => __('Currently enabled', 'updraftplus'),
924
  'instance_disabled' => __('Currently disabled', 'updraftplus'),
925
+ 'local_upload_started' => __('Local backup upload has started; please check the log file to see the upload progress', 'updraftplus'),
926
  'local_upload_error' => __('You must select at least one remote storage destination to upload this backup set to.', 'updraftplus'),
927
  'already_uploaded' => __('(already uploaded)', 'updraftplus'),
928
  'onedrive_folder_url_warning' => __('Please specify the Microsoft OneDrive folder name, not the URL.', 'updraftplus'),
951
  'exclude_prefix_error_msg' => __('Please enter a valid file name prefix', 'updraftplus'),
952
  'duplicate_exclude_rule_error_msg' => __('The exclusion rule which you are trying to add already exists', 'updraftplus'),
953
  'clone_key_required' => __('UpdraftClone key is required.', 'updraftplus'),
954
+ 'files_new_backup' => __('Include your files in the backup', 'updraftplus'),
955
+ 'files_incremental_backup' => __('File backup options', 'updraftplus'),
956
  ));
957
  }
958
 
2040
  */
2041
  public function request_backupnow($request, $close_connection_callable = false) {
2042
  global $updraftplus;
2043
+
2044
+ $abort = false;
2045
+ $backupnow_nocloud = !empty($request['backupnow_nocloud']);
2046
  $event = (!empty($request['backupnow_nofiles'])) ? 'updraft_backupnow_backup_database' : ((!empty($request['backupnow_nodb'])) ? 'updraft_backupnow_backup' : 'updraft_backupnow_backup_all');
2047
+
2048
+ $request['incremental'] = !empty($request['incremental']);
2049
+
2050
+ $entities = !empty($request['onlythisfileentity']) ? explode(',', $request['onlythisfileentity']) : array();
2051
+
2052
+ $incremental = $request['incremental'] ? apply_filters('updraftplus_prepare_incremental_run', false, $entities) : false;
2053
 
2054
  // The call to backup_time_nonce() allows us to know the nonce in advance, and return it
2055
  $nonce = $updraftplus->backup_time_nonce();
2058
  'nonce' => $nonce,
2059
  'm' => apply_filters('updraftplus_backupnow_start_message', '<strong>'.__('Start backup', 'updraftplus').':</strong> '.htmlspecialchars(__('OK. You should soon see activity in the "Last log message" field below.', 'updraftplus')), $nonce)
2060
  );
2061
+
2062
+ if (!empty($request['incremental']) && !$incremental) {
2063
+ $msg = array(
2064
+ 'error' => __('No suitable backup set (that already contains a full backup of all the requested file component types) was found, to add increments to. Aborting this backup.', 'updaftplus')
2065
+ );
2066
+ $abort = true;
2067
+ }
2068
 
2069
  if ($close_connection_callable && is_callable($close_connection_callable)) {
2070
  call_user_func($close_connection_callable, $msg);
2072
  $updraftplus->close_browser_connection(json_encode($msg));
2073
  }
2074
 
2075
+ if ($abort) die;
2076
+
2077
  $options = array('nocloud' => $backupnow_nocloud, 'use_nonce' => $nonce);
2078
  if (!empty($request['onlythisfileentity']) && is_string($request['onlythisfileentity'])) {
2079
  // Something to see in the 'last log' field when it first appears, before the backup actually starts
2081
  $options['restrict_files_to_override'] = explode(',', $request['onlythisfileentity']);
2082
  }
2083
 
2084
+ if ($request['incremental'] && !$incremental) {
2085
+ $updraftplus->log('An incremental backup was requested but no suitable backup found to add increments to; will proceed with a new backup');
2086
+ $request['incremental'] = false;
2087
  }
2088
+
2089
+ if (!empty($request['extradata'])) $options['extradata'] = $request['extradata'];
2090
 
2091
  $options['always_keep'] = empty($request['always_keep']) ? false : true;
2092
 
2232
  return $response;
2233
  }
2234
 
2235
+ /**
2236
+ * Used with the WP filter upload_dir to adjust where uploads go to when uploading a backup
2237
+ *
2238
+ * @param Array $uploads - pre-filter array
2239
+ *
2240
+ * @return Array - filtered array
2241
+ */
2242
  public function upload_dir($uploads) {
2243
  global $updraftplus;
2244
  $updraft_dir = $updraftplus->backups_dir_location();
2252
  * @param String $dir Directory
2253
  * @param String $name Name
2254
  * @param String $ext File extension
2255
+ *
2256
  * @return String
2257
  */
2258
+ public function unique_filename_callback($dir, $name, $ext) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
2259
  return $name.$ext;
2260
  }
2261
 
2833
  );
2834
  }
2835
 
2836
+ /**
2837
+ * Potentially register an action for showing restore progress
2838
+ */
2839
  private function print_restore_in_progress_box_if_needed() {
2840
  $restore_in_progress = get_site_option('updraft_restore_in_progress');
2841
  if (empty($restore_in_progress)) return;
3036
  * @return String
3037
  */
3038
  public function backupnow_modal_contents() {
3039
+ return $this->include_template('wp-admin/settings/backupnow-modal.php', true);
3040
  }
3041
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3042
  /**
3043
  * Also used by the auto-backups add-on
3044
  *
3411
 
3412
  $ret .= $show_inline_info;
3413
  if (!empty($show_inline_info)) $ret .= ' - ';
3414
+
3415
+ $file_nonce = empty($jobdata['file_nonce']) ? $job_id : $jobdata['file_nonce'];
3416
+
3417
+ $ret .= '<a data-fileid="'.$file_nonce.'" data-jobid="'.$job_id.'" href="'.UpdraftPlus_Options::admin_page_url().'?page=updraftplus&action=downloadlog&updraftplus_backup_nonce='.$file_nonce.'" class="updraft-log-link">'.__('show log', 'updraftplus').'</a>';
3418
  if (!$is_oneshot) $ret .=' - <a href="#" data-jobid="'.$job_id.'" title="'.esc_attr(__('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.', 'updraftplus')).'" class="updraft_jobinfo_delete">'.__('stop', 'updraftplus').'</a>';
3419
  $ret .= '</div>';
3420
 
3756
  }
3757
  }
3758
 
3759
+ public function get_settings_js($method_objects, $really_is_writable, $updraft_dir, $active_service) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
3760
 
3761
  global $updraftplus;
3762
 
3794
  }
3795
 
3796
  /**
3797
+ * Return the HTML for the files selector widget
3798
+ *
3799
+ * @param String $prefix Prefix for the ID
3800
+ * @param Boolean $show_exclusion_options True or False for exclusion options
3801
+ * @param Boolean|String $include_more $include_more can be (bool) or (string)"sometimes"
3802
  *
3803
+ * @return String
 
 
 
3804
  */
3805
  public function files_selector_widgetry($prefix = '', $show_exclusion_options = true, $include_more = true) {
3806
 
3934
  /**
3935
  * Get backup information in HTML format for a specific backup
3936
  *
3937
+ * @param Array $backup_history all backups history
3938
+ * @param String $key backup timestamp
3939
+ * @param String $nonce backup nonce (job ID)
3940
+ * @param Array|Null $job_data if an array, then use this as the job data (if null, then it will be fetched directly)
3941
+ *
3942
  * @return string HTML-formatted backup information
3943
  */
3944
+ public function raw_backup_info($backup_history, $key, $nonce, $job_data = null) {
3945
 
3946
  global $updraftplus;
3947
 
3948
  $backup = $backup_history[$key];
3949
 
3950
+ $only_remote_sent = !empty($backup['service']) && (array('remotesend') === $backup['service'] || 'remotesend' === $backup['service']);
3951
 
3952
  $pretty_date = get_date_from_gmt(gmdate('Y-m-d H:i:s', (int) $key), 'M d, Y G:i');
3953
 
3955
 
3956
  if (!empty($backup['label'])) $rawbackup .= '<span class="raw-backup-info">'.$backup['label'].'</span>';
3957
 
3958
+ if (null === $job_data) $job_data = empty($nonce) ? array() : $updraftplus->jobdata_getarray($nonce);
 
 
 
 
3959
 
3960
  if (!$only_remote_sent) {
3961
  $rawbackup .= '<hr>';
3971
  foreach ($backupable_entities as $type => $info) {
3972
  if (!isset($backup[$type])) continue;
3973
 
3974
+ $rawbackup .= $updraftplus->printfile($info['description'], $backup, $type, $checksums, $job_data, true);
3975
  }
3976
 
3977
  $total_size = 0;
3978
  foreach ($backup as $ekey => $files) {
3979
  if ('db' == strtolower(substr($ekey, 0, 2)) && '-size' != substr($ekey, -5, 5)) {
3980
+ $rawbackup .= $updraftplus->printfile(__('Database', 'updraftplus'), $backup, $ekey, $checksums, $job_data, true);
3981
  }
3982
  if (!isset($backupable_entities[$ekey]) && ('db' != substr($ekey, 0, 2) || '-size' == substr($ekey, -5, 5))) continue;
3983
  if (is_string($files)) $files = array($files);
4012
 
4013
  $rawbackup .= '</p><hr><p><pre>'.print_r($backup, true).'</p></pre>';
4014
 
4015
+ if (!empty($job_data) && is_array($job_data)) {
4016
+ $rawbackup .= '<p><pre>'.htmlspecialchars(print_r($job_data, true)).'</pre></p>';
4017
  }
4018
 
4019
  return esc_attr($rawbackup);
4146
  return $ret;
4147
  }
4148
 
4149
+ public function download_button($type, $backup_timestamp, $findex, $info, $title, $pdescrip, $esc_pretty_date, $set_contents) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
4150
 
4151
  $ret = '';
4152
 
4177
  /**
4178
  * Get HTML for the 'Upload' button for a particular backup in the 'Existing Backups' tab
4179
  *
4180
+ * @param Integer $backup_time - backup timestamp (epoch time)
4181
+ * @param String $nonce - backup nonce
4182
+ * @param Array $backup - backup information array
4183
+ * @param Null|Array $jobdata - if not null, then use as the job data instead of fetching
4184
  *
4185
  * @return String - the resulting HTML
4186
  */
4187
+ public function upload_button($backup_time, $nonce, $backup, $jobdata = null) {
4188
  global $updraftplus;
4189
 
4190
  // Check the job is not still running.
4191
+ if (null === $jobdata) $jobdata = $updraftplus->jobdata_getarray($nonce);
4192
 
4193
  if (!empty($jobdata) && 'finished' != $jobdata['jobstatus']) return '';
4194
 
4367
  *
4368
  * @return string - the new filename or the original if the blog name from the job data is not set
4369
  */
4370
+ public function upload_local_backup_name($backup_name, $use_time, $blog_name) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
4371
  global $updraftplus;
4372
 
4373
  $backup_blog_name = $updraftplus->jobdata_get('blog_name', '');
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
  }
backup.php CHANGED
@@ -654,7 +654,7 @@ class UpdraftPlus_Backup {
654
 
655
  if (empty($database_backups_found[$key])) $database_backups_found[$key] = 0;
656
 
657
- if ($nonce == $updraftplus->nonce) {
658
  $this->log_with_db_occasionally("This backup set is the backup set just made, so will not be deleted.");
659
  $database_backups_found[$key]++;
660
  continue;
@@ -741,7 +741,7 @@ class UpdraftPlus_Backup {
741
  $database_backups_found[$key]++;
742
  }
743
 
744
- $backup_to_examine = $this->remove_backup_set_if_empty($backup_to_examine, $backup_datestamp, $backupable_entities, $backup_history);
745
  if (empty($backup_to_examine)) {
746
  unset($functional_backup_history[$backup_datestamp]);
747
  unset($backup_history[$backup_datestamp]);
@@ -801,7 +801,7 @@ class UpdraftPlus_Backup {
801
  if (!empty($backup_to_examine[$entity])) {
802
 
803
  // This should only be able to happen if you import backups with a future timestamp
804
- if ($nonce == $updraftplus->nonce) {
805
  $updraftplus->log("This backup set is the backup set just made, so will not be deleted.");
806
  $file_entities_backups_found[$entity]++;
807
  continue;
@@ -895,7 +895,7 @@ class UpdraftPlus_Backup {
895
  }
896
  }
897
 
898
- $backup_to_examine = $this->remove_backup_set_if_empty($backup_to_examine, $backup_datestamp, $backupable_entities, $backup_history);
899
  if (empty($backup_to_examine)) {
900
  // unset($functional_backup_history[$backup_datestamp]);
901
  unset($backup_history[$backup_datestamp]);
@@ -937,7 +937,7 @@ class UpdraftPlus_Backup {
937
  }
938
  }
939
 
940
- private function remove_backup_set_if_empty($backup_to_examine, $backup_datestamp, $backupable_entities, $backup_history) {
941
 
942
  global $updraftplus;
943
 
@@ -973,7 +973,6 @@ class UpdraftPlus_Backup {
973
  } else {
974
  $updraftplus->log("No nonce record found in the backup set, so cannot delete any remaining log file");
975
  }
976
- // unset($backup_history[$backup_datestamp]);
977
  return false;
978
  } else {
979
  $updraftplus->log("This backup set remains non-empty (f=$contains_files/d=$contains_db); will retain in history");
@@ -1321,7 +1320,7 @@ class UpdraftPlus_Backup {
1321
 
1322
  if (!$updraftplus->backup_time) $updraftplus->backup_time_nonce();
1323
 
1324
- $use_time = apply_filters('updraftplus_backup_time_thisrun', $updraftplus->backup_time);
1325
  $backup_file_basename = $this->get_backup_file_basename_from_time($use_time);
1326
 
1327
  $backup_array = array();
@@ -1611,7 +1610,7 @@ class UpdraftPlus_Backup {
1611
 
1612
  $errors = 0;
1613
 
1614
- $use_time = apply_filters('updraftplus_backup_time_thisrun', $updraftplus->backup_time);
1615
  $file_base = $this->get_backup_file_basename_from_time($use_time);
1616
  $backup_file_base = $this->updraft_dir.'/'.$file_base;
1617
 
654
 
655
  if (empty($database_backups_found[$key])) $database_backups_found[$key] = 0;
656
 
657
+ if ($nonce == $updraftplus->nonce || $nonce == $updraftplus->file_nonce) {
658
  $this->log_with_db_occasionally("This backup set is the backup set just made, so will not be deleted.");
659
  $database_backups_found[$key]++;
660
  continue;
741
  $database_backups_found[$key]++;
742
  }
743
 
744
+ $backup_to_examine = $this->remove_backup_set_if_empty($backup_to_examine, $backupable_entities);
745
  if (empty($backup_to_examine)) {
746
  unset($functional_backup_history[$backup_datestamp]);
747
  unset($backup_history[$backup_datestamp]);
801
  if (!empty($backup_to_examine[$entity])) {
802
 
803
  // This should only be able to happen if you import backups with a future timestamp
804
+ if ($nonce == $updraftplus->nonce || $nonce == $updraftplus->file_nonce) {
805
  $updraftplus->log("This backup set is the backup set just made, so will not be deleted.");
806
  $file_entities_backups_found[$entity]++;
807
  continue;
895
  }
896
  }
897
 
898
+ $backup_to_examine = $this->remove_backup_set_if_empty($backup_to_examine, $backupable_entities);
899
  if (empty($backup_to_examine)) {
900
  // unset($functional_backup_history[$backup_datestamp]);
901
  unset($backup_history[$backup_datestamp]);
937
  }
938
  }
939
 
940
+ private function remove_backup_set_if_empty($backup_to_examine, $backupable_entities) {
941
 
942
  global $updraftplus;
943
 
973
  } else {
974
  $updraftplus->log("No nonce record found in the backup set, so cannot delete any remaining log file");
975
  }
 
976
  return false;
977
  } else {
978
  $updraftplus->log("This backup set remains non-empty (f=$contains_files/d=$contains_db); will retain in history");
1320
 
1321
  if (!$updraftplus->backup_time) $updraftplus->backup_time_nonce();
1322
 
1323
+ $use_time = $updraftplus->backup_time;
1324
  $backup_file_basename = $this->get_backup_file_basename_from_time($use_time);
1325
 
1326
  $backup_array = array();
1610
 
1611
  $errors = 0;
1612
 
1613
+ $use_time = apply_filters('updraftplus_base_backup_timestamp', $updraftplus->backup_time);
1614
  $file_base = $this->get_backup_file_basename_from_time($use_time);
1615
  $backup_file_base = $this->updraft_dir.'/'.$file_base;
1616
 
central/bootstrap.php CHANGED
@@ -173,7 +173,7 @@ class UpdraftPlus_UpdraftCentral_Main {
173
  * @param array $params which have action, subaction and nonce
174
  * @return array which contains log_contents. If error, Returns array which contains fatal_error flag and fatal_error_message
175
  */
176
- public function get_log($params) {
177
 
178
  $udrpc_log = get_site_option('updraftcentral_client_log');
179
  if (!is_array($udrpc_log)) $udrpc_log = array();
173
  * @param array $params which have action, subaction and nonce
174
  * @return array which contains log_contents. If error, Returns array which contains fatal_error flag and fatal_error_message
175
  */
176
+ public function get_log($params) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
177
 
178
  $udrpc_log = get_site_option('updraftcentral_client_log');
179
  if (!is_array($udrpc_log)) $udrpc_log = array();
central/listener.php CHANGED
@@ -167,7 +167,7 @@ class UpdraftPlus_UpdraftCentral_Listener {
167
  // This can be used to detect an UpdraftCentral context
168
  if (!defined('UPDRAFTCENTRAL_COMMAND')) define('UPDRAFTCENTRAL_COMMAND', $command);
169
 
170
- $this->initialise_listener_error_handling($key_name_indicator);
171
 
172
  $command_info = apply_filters('updraftcentral_get_command_info', false, $command);
173
  if (!$command_info) return $response;
@@ -215,7 +215,7 @@ class UpdraftPlus_UpdraftCentral_Listener {
215
  return $this->current_udrpc;
216
  }
217
 
218
- private function initialise_listener_error_handling($hash) {
219
  $this->ud->error_reporting_stop_when_logged = true;
220
  set_error_handler(array($this->ud, 'php_error'), E_ALL & ~E_STRICT);
221
  $this->php_events = array();
@@ -224,7 +224,7 @@ class UpdraftPlus_UpdraftCentral_Listener {
224
  if (!UpdraftPlus_Options::get_updraft_option('updraft_debug_mode')) return;
225
  }
226
 
227
- public function updraftplus_logline($line, $nonce, $level, $uniq_id) {
228
  if ('notice' === $level && 'php_event' === $uniq_id) {
229
  $this->php_events[] = $line;
230
  }
167
  // This can be used to detect an UpdraftCentral context
168
  if (!defined('UPDRAFTCENTRAL_COMMAND')) define('UPDRAFTCENTRAL_COMMAND', $command);
169
 
170
+ $this->initialise_listener_error_handling();
171
 
172
  $command_info = apply_filters('updraftcentral_get_command_info', false, $command);
173
  if (!$command_info) return $response;
215
  return $this->current_udrpc;
216
  }
217
 
218
+ private function initialise_listener_error_handling() {
219
  $this->ud->error_reporting_stop_when_logged = true;
220
  set_error_handler(array($this->ud, 'php_error'), E_ALL & ~E_STRICT);
221
  $this->php_events = array();
224
  if (!UpdraftPlus_Options::get_updraft_option('updraft_debug_mode')) return;
225
  }
226
 
227
+ public function updraftplus_logline($line, $nonce, $level, $uniq_id) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
228
  if ('notice' === $level && 'php_event' === $uniq_id) {
229
  $this->php_events[] = $line;
230
  }
central/modules/plugin.php CHANGED
@@ -19,7 +19,7 @@ class UpdraftCentral_Plugin_Commands extends UpdraftCentral_Commands {
19
  *
20
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
21
  */
22
- public function _pre_action($command, $data, $extra_info) {
23
  // Here we assign the current blog_id to a variable $blog_id
24
  $blog_id = get_current_blog_id();
25
  if (!empty($data['site_id'])) $blog_id = $data['site_id'];
@@ -38,7 +38,7 @@ class UpdraftCentral_Plugin_Commands extends UpdraftCentral_Commands {
38
  *
39
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
40
  */
41
- public function _post_action($command, $data, $extra_info) {
42
  // Here, we're restoring to the current (default) blog before we switched
43
  if ($this->switched) restore_current_blog();
44
  }
19
  *
20
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
21
  */
22
+ public function _pre_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
23
  // Here we assign the current blog_id to a variable $blog_id
24
  $blog_id = get_current_blog_id();
25
  if (!empty($data['site_id'])) $blog_id = $data['site_id'];
38
  *
39
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
40
  */
41
+ public function _post_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
42
  // Here, we're restoring to the current (default) blog before we switched
43
  if ($this->switched) restore_current_blog();
44
  }
central/modules/posts.php CHANGED
@@ -18,7 +18,7 @@ class UpdraftCentral_Posts_Commands extends UpdraftCentral_Commands {
18
  *
19
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
20
  */
21
- public function _pre_action($command, $data, $extra_info) {
22
  // Here we assign the current blog_id to a variable $blog_id
23
  $blog_id = get_current_blog_id();
24
  if (!empty($data['site_id'])) $blog_id = $data['site_id'];
@@ -37,7 +37,7 @@ class UpdraftCentral_Posts_Commands extends UpdraftCentral_Commands {
37
  *
38
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
39
  */
40
- public function _post_action($command, $data, $extra_info) {
41
  // Here, we're restoring to the current (default) blog before we switched
42
  if ($this->switched) restore_current_blog();
43
  }
18
  *
19
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
20
  */
21
+ public function _pre_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
22
  // Here we assign the current blog_id to a variable $blog_id
23
  $blog_id = get_current_blog_id();
24
  if (!empty($data['site_id'])) $blog_id = $data['site_id'];
37
  *
38
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
39
  */
40
+ public function _post_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
41
  // Here, we're restoring to the current (default) blog before we switched
42
  if ($this->switched) restore_current_blog();
43
  }
central/modules/theme.php CHANGED
@@ -19,7 +19,7 @@ class UpdraftCentral_Theme_Commands extends UpdraftCentral_Commands {
19
  *
20
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
21
  */
22
- public function _pre_action($command, $data, $extra_info) {
23
  // Here we assign the current blog_id to a variable $blog_id
24
  $blog_id = get_current_blog_id();
25
  if (!empty($data['site_id'])) $blog_id = $data['site_id'];
@@ -38,7 +38,7 @@ class UpdraftCentral_Theme_Commands extends UpdraftCentral_Commands {
38
  *
39
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
40
  */
41
- public function _post_action($command, $data, $extra_info) {
42
  // Here, we're restoring to the current (default) blog before we switched
43
  if ($this->switched) restore_current_blog();
44
  }
19
  *
20
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
21
  */
22
+ public function _pre_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
23
  // Here we assign the current blog_id to a variable $blog_id
24
  $blog_id = get_current_blog_id();
25
  if (!empty($data['site_id'])) $blog_id = $data['site_id'];
38
  *
39
  * link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
40
  */
41
+ public function _post_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
42
  // Here, we're restoring to the current (default) blog before we switched
43
  if ($this->switched) restore_current_blog();
44
  }
class-updraftplus.php CHANGED
@@ -171,7 +171,7 @@ class UpdraftPlus {
171
  *
172
  * @return String - filtered value
173
  */
174
- public function upgrader_source_selection($source, $remote_source, $upgrader_object, $hook_extra = array()) {
175
 
176
  static $been_here_already = false;
177
 
@@ -198,7 +198,7 @@ class UpdraftPlus {
198
  *
199
  * @return Boolean - filtered value
200
  */
201
- public function itsec_scheduled_external_backup($x) {
202
  return wp_next_scheduled('updraft_backup') ? true : false;
203
  }
204
 
@@ -209,7 +209,7 @@ class UpdraftPlus {
209
  *
210
  * @return String - filtered value
211
  */
212
- public function itsec_external_backup_link($x) {
213
  return UpdraftPlus_Options::admin_page_url().'?page=updraftplus';
214
  }
215
 
@@ -1911,15 +1911,16 @@ class UpdraftPlus {
1911
  $label = $this->jobdata_get('label');
1912
  if ($label) $resumption_extralog = ", label=$label";
1913
  } else {
1914
- $this->file_nonce = apply_filters('updraftplus_incremental_backup_file_nonce', $bnonce);
1915
  $this->nonce = $bnonce;
 
 
1916
  $this->backup_time = $this->jobdata_get('backup_time');
1917
  $this->job_time_ms = $this->jobdata_get('job_time_ms');
1918
 
1919
  // Get the warnings before opening the log file, as opening the log file may generate new ones (which then leads to $this->errors having duplicate entries when they are copied over below)
1920
  $warnings = $this->jobdata_get('warnings');
1921
 
1922
- $this->logfile_open($bnonce);
1923
 
1924
  // Import existing warnings. The purpose of this is so that when save_backup_to_history() is called, it has a complete set - because job data expires quickly, whilst the warnings of the last backup run need to persist
1925
  if (is_array($warnings)) {
@@ -1998,7 +1999,7 @@ class UpdraftPlus {
1998
 
1999
  $time_ago = time()-$btime;
2000
 
2001
- $this->log("Backup run: resumption=$resumption_no, nonce=$bnonce, begun at=$btime (${time_ago}s ago), job type=$job_type".$resumption_extralog);
2002
 
2003
  // This works round a bizarre bug seen in one WP install, where delete_transient and wp_clear_scheduled_hook both took no effect, and upon 'resumption' the entire backup would repeat.
2004
  // Argh. In fact, this has limited effect, as apparently (at least on another install seen), the saving of the updated transient via jobdata_set() also took no effect. Still, it does not hurt.
@@ -2330,8 +2331,15 @@ class UpdraftPlus {
2330
 
2331
  }
2332
 
2333
- public function jobdata_getarray($non) {
2334
- return get_site_option("updraft_jobdata_".$non, array());
 
 
 
 
 
 
 
2335
  }
2336
 
2337
  public function jobdata_set_from_array($array) {
@@ -2367,13 +2375,21 @@ class UpdraftPlus {
2367
  if (!empty($this->nonce)) update_site_option('updraft_jobdata_'.$this->nonce, $this->jobdata);
2368
  }
2369
 
 
 
 
 
 
 
 
 
2370
  public function jobdata_set($key, $value) {
2371
  if (empty($this->jobdata)) {
2372
- $this->jobdata = empty($this->nonce) ? array() : get_site_option("updraft_jobdata_".$this->nonce);
2373
  if (!is_array($this->jobdata)) $this->jobdata = array();
2374
  }
2375
  $this->jobdata[$key] = $value;
2376
- if ($this->nonce) update_site_option("updraft_jobdata_".$this->nonce, $this->jobdata);
2377
  }
2378
 
2379
  public function jobdata_delete($key) {
@@ -2388,7 +2404,7 @@ class UpdraftPlus {
2388
  public function get_job_option($opt) {
2389
  // These are meant to be read-only
2390
  if (empty($this->jobdata['option_cache']) || !is_array($this->jobdata['option_cache'])) {
2391
- if (!is_array($this->jobdata)) $this->jobdata = get_site_option("updraft_jobdata_".$this->nonce, array());
2392
  $this->jobdata['option_cache'] = array();
2393
  }
2394
  return isset($this->jobdata['option_cache'][$opt]) ? $this->jobdata['option_cache'][$opt] : UpdraftPlus_Options::get_updraft_option($opt);
@@ -2402,6 +2418,9 @@ class UpdraftPlus {
2402
  return isset($this->jobdata[$key]) ? $this->jobdata[$key] : $default;
2403
  }
2404
 
 
 
 
2405
  public function jobdata_reset() {
2406
  $this->jobdata = null;
2407
  }
@@ -2493,6 +2512,8 @@ class UpdraftPlus {
2493
  'db_backups' => $db_backups
2494
  );
2495
 
 
 
2496
  /*
2497
  We need to tweak the database array here by setting each database entity to finished or encrypted if it's an encrypted archive.
2498
  I also grab the backups blog name here ready to be used later, just in case this backup set is from another site.
@@ -2668,12 +2689,12 @@ class UpdraftPlus {
2668
 
2669
  if (false === $restrict_files_to_override && isset($options['restrict_files_to_override'])) $restrict_files_to_override = $options['restrict_files_to_override'];
2670
  // Generate backup information
2671
- $use_nonce = (empty($options['use_nonce'])) ? false : $options['use_nonce'];
2672
- $use_timestamp = (empty($options['use_timestamp'])) ? false : $options['use_timestamp'];
2673
  $this->backup_time_nonce($use_nonce, $use_timestamp);
2674
  // The current_resumption is consulted within logfile_open()
2675
  $this->current_resumption = 0;
2676
- $this->logfile_open($this->nonce);
2677
 
2678
  if (!is_file($this->logfile_name)) {
2679
  $this->log('Failed to open log file ('.$this->logfile_name.') - you need to check your UpdraftPlus settings (your chosen directory for creating files in is not writable, or you ran out of disk space). Backup aborted.');
@@ -2754,7 +2775,7 @@ class UpdraftPlus {
2754
  if (is_string($service)) $service = array($service);
2755
  if (!is_array($service)) $service = array('none');
2756
 
2757
- if (!empty($options['extradata']) && preg_match('#services=remotesend/(\d+)#', $options['extradata'])) {
2758
  if (array('none') === $service) $service = array();
2759
  $service[] = 'remotesend';
2760
  }
@@ -2849,8 +2870,10 @@ class UpdraftPlus {
2849
 
2850
  if ($one_shot) update_site_option('updraft_oneshotnonce', $this->nonce);
2851
 
2852
- if (!empty($options['extradata']) && 'autobackup' == $options['extradata']) array_push($initial_jobdata, 'is_autobackup', true);
2853
-
 
 
2854
  // Save what *should* be done, to make it resumable from this point on
2855
  if ($backup_database) {
2856
  $dbs = apply_filters('updraft_backup_databases', array('wp' => 'begun'));
@@ -2874,7 +2897,7 @@ class UpdraftPlus {
2874
  // Use of jobdata_set_multi saves around 200ms
2875
  call_user_func_array(array($this, 'jobdata_set_multi'), apply_filters('updraftplus_initial_jobdata', $initial_jobdata, $options, $split_every));
2876
  } catch (Exception $e) {
2877
- $this->log($e->getMessage());
2878
  return false;
2879
  }
2880
 
@@ -3408,11 +3431,13 @@ class UpdraftPlus {
3408
  $this->log(__('Could not save backup history because we have no backup array. Backup probably failed.', 'updraftplus'), 'error');
3409
  return;
3410
  }
 
 
3411
 
3412
  $backup_array['nonce'] = $this->file_nonce;
3413
  $backup_array['service'] = $this->jobdata_get('service');
3414
  $backup_array['service_instance_ids'] = array();
3415
- $backup_array['always_keep'] = $this->jobdata_get('always_keep', false);
3416
  $backup_array['files_enumerated_at'] = $this->jobdata_get('files_enumerated_at');
3417
 
3418
  // N.B. Though the saved 'service' option can have various forms (especially if upgrading from (very) old versions), in the jobdata, it is always an array.
@@ -3424,8 +3449,9 @@ class UpdraftPlus {
3424
  $backup_array['service_instance_ids'][$method] = array_keys($method_information['instance_settings']);
3425
  }
3426
 
3427
- if ('' != ($label = $this->jobdata_get('label', ''))) $backup_array['label'] = $label;
3428
- $backup_array['created_by_version'] = $this->version;
 
3429
  $backup_array['is_multisite'] = is_multisite() ? true : false;
3430
  $remotesend_info = $this->jobdata_get('remotesend_info');
3431
  if (is_array($remotesend_info) && !empty($remotesend_info['url'])) $backup_array['remotesend_url'] = $remotesend_info['url'];
@@ -3434,7 +3460,7 @@ class UpdraftPlus {
3434
  if (false != ($morefiles_linked_indexes = $this->jobdata_get('morefiles_linked_indexes', false))) $backup_array['morefiles_linked_indexes'] = $morefiles_linked_indexes;
3435
  if (false != ($morefiles_more_locations = $this->jobdata_get('morefiles_more_locations', false))) $backup_array['morefiles_more_locations'] = $morefiles_more_locations;
3436
 
3437
- UpdraftPlus_Backup_History::save_backup(apply_filters('updraftplus_backup_timestamp', $this->backup_time), $backup_array);
3438
  }
3439
 
3440
  /**
@@ -4541,6 +4567,9 @@ class UpdraftPlus {
4541
  case 'shop':
4542
  return apply_filters('updraftplus_com_shop', 'https://updraftplus.com/shop/');
4543
  break;
 
 
 
4544
  case 'buy-tokens':
4545
  return apply_filters('updraftplus_com_updraftclone_tokens', 'https://updraftplus.com/shop/updraftclone-tokens/');
4546
  break;
171
  *
172
  * @return String - filtered value
173
  */
174
+ public function upgrader_source_selection($source, $remote_source, $upgrader_object, $hook_extra = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
175
 
176
  static $been_here_already = false;
177
 
198
  *
199
  * @return Boolean - filtered value
200
  */
201
+ public function itsec_scheduled_external_backup($x) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
202
  return wp_next_scheduled('updraft_backup') ? true : false;
203
  }
204
 
209
  *
210
  * @return String - filtered value
211
  */
212
+ public function itsec_external_backup_link($x) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
213
  return UpdraftPlus_Options::admin_page_url().'?page=updraftplus';
214
  }
215
 
1911
  $label = $this->jobdata_get('label');
1912
  if ($label) $resumption_extralog = ", label=$label";
1913
  } else {
 
1914
  $this->nonce = $bnonce;
1915
+ $file_nonce = $this->jobdata_get('file_nonce');
1916
+ $this->file_nonce = $file_nonce ? $file_nonce : $bnonce;
1917
  $this->backup_time = $this->jobdata_get('backup_time');
1918
  $this->job_time_ms = $this->jobdata_get('job_time_ms');
1919
 
1920
  // Get the warnings before opening the log file, as opening the log file may generate new ones (which then leads to $this->errors having duplicate entries when they are copied over below)
1921
  $warnings = $this->jobdata_get('warnings');
1922
 
1923
+ $this->logfile_open($this->file_nonce);
1924
 
1925
  // Import existing warnings. The purpose of this is so that when save_backup_to_history() is called, it has a complete set - because job data expires quickly, whilst the warnings of the last backup run need to persist
1926
  if (is_array($warnings)) {
1999
 
2000
  $time_ago = time()-$btime;
2001
 
2002
+ $this->log("Backup run: resumption=$resumption_no, nonce=$bnonce, file_nonce=".$this->file_nonce." begun at=$btime (${time_ago}s ago), job type=$job_type".$resumption_extralog);
2003
 
2004
  // This works round a bizarre bug seen in one WP install, where delete_transient and wp_clear_scheduled_hook both took no effect, and upon 'resumption' the entire backup would repeat.
2005
  // Argh. In fact, this has limited effect, as apparently (at least on another install seen), the saving of the updated transient via jobdata_set() also took no effect. Still, it does not hurt.
2331
 
2332
  }
2333
 
2334
+ /**
2335
+ * Get all the job data in a single array
2336
+ *
2337
+ * @param String $job_id - the job identifier (nonce) for the job whose data is to be retrieved
2338
+ *
2339
+ * @return Array
2340
+ */
2341
+ public function jobdata_getarray($job_id) {
2342
+ return get_site_option('updraft_jobdata_'.$job_id, array());
2343
  }
2344
 
2345
  public function jobdata_set_from_array($array) {
2375
  if (!empty($this->nonce)) update_site_option('updraft_jobdata_'.$this->nonce, $this->jobdata);
2376
  }
2377
 
2378
+ /**
2379
+ * Set a job-data key/value pair for the current job
2380
+ *
2381
+ * @param String $key - the key
2382
+ * @param Mixed $value - needs to be serializable
2383
+ *
2384
+ * @uses update_site_option()
2385
+ */
2386
  public function jobdata_set($key, $value) {
2387
  if (empty($this->jobdata)) {
2388
+ $this->jobdata = empty($this->nonce) ? array() : get_site_option('updraft_jobdata_'.$this->nonce);
2389
  if (!is_array($this->jobdata)) $this->jobdata = array();
2390
  }
2391
  $this->jobdata[$key] = $value;
2392
+ if ($this->nonce) update_site_option('updraft_jobdata_'.$this->nonce, $this->jobdata);
2393
  }
2394
 
2395
  public function jobdata_delete($key) {
2404
  public function get_job_option($opt) {
2405
  // These are meant to be read-only
2406
  if (empty($this->jobdata['option_cache']) || !is_array($this->jobdata['option_cache'])) {
2407
+ if (!is_array($this->jobdata) && $this->nonce) $this->jobdata = get_site_option("updraft_jobdata_".$this->nonce, array());
2408
  $this->jobdata['option_cache'] = array();
2409
  }
2410
  return isset($this->jobdata['option_cache'][$opt]) ? $this->jobdata['option_cache'][$opt] : UpdraftPlus_Options::get_updraft_option($opt);
2418
  return isset($this->jobdata[$key]) ? $this->jobdata[$key] : $default;
2419
  }
2420
 
2421
+ /**
2422
+ * Reset the job data for the currently active job
2423
+ */
2424
  public function jobdata_reset() {
2425
  $this->jobdata = null;
2426
  }
2512
  'db_backups' => $db_backups
2513
  );
2514
 
2515
+ if (!is_array($db_backups)) return $backup_database_info;
2516
+
2517
  /*
2518
  We need to tweak the database array here by setting each database entity to finished or encrypted if it's an encrypted archive.
2519
  I also grab the backups blog name here ready to be used later, just in case this backup set is from another site.
2689
 
2690
  if (false === $restrict_files_to_override && isset($options['restrict_files_to_override'])) $restrict_files_to_override = $options['restrict_files_to_override'];
2691
  // Generate backup information
2692
+ $use_nonce = empty($options['use_nonce']) ? false : $options['use_nonce'];
2693
+ $use_timestamp = empty($options['use_timestamp']) ? false : $options['use_timestamp'];
2694
  $this->backup_time_nonce($use_nonce, $use_timestamp);
2695
  // The current_resumption is consulted within logfile_open()
2696
  $this->current_resumption = 0;
2697
+ $this->logfile_open($this->file_nonce);
2698
 
2699
  if (!is_file($this->logfile_name)) {
2700
  $this->log('Failed to open log file ('.$this->logfile_name.') - you need to check your UpdraftPlus settings (your chosen directory for creating files in is not writable, or you ran out of disk space). Backup aborted.');
2775
  if (is_string($service)) $service = array($service);
2776
  if (!is_array($service)) $service = array('none');
2777
 
2778
+ if (!empty($options['extradata']) && !empty($options['extradata']['services']) && preg_match('#remotesend/(\d+)#', $options['extradata']['services'])) {
2779
  if (array('none') === $service) $service = array();
2780
  $service[] = 'remotesend';
2781
  }
2870
 
2871
  if ($one_shot) update_site_option('updraft_oneshotnonce', $this->nonce);
2872
 
2873
+ if ($this->file_nonce && $this->file_nonce != $this->nonce) array_push($initial_jobdata, 'file_nonce', $this->file_nonce);
2874
+
2875
+ // 'autobackup' == $options['extradata'] might be set from another plugin so keeping here to keep support
2876
+ if (!empty($options['extradata']) && (!empty($options['extradata']['autobackup']) || 'autobackup' === $options['extradata'])) array_push($initial_jobdata, 'is_autobackup', true);
2877
  // Save what *should* be done, to make it resumable from this point on
2878
  if ($backup_database) {
2879
  $dbs = apply_filters('updraft_backup_databases', array('wp' => 'begun'));
2897
  // Use of jobdata_set_multi saves around 200ms
2898
  call_user_func_array(array($this, 'jobdata_set_multi'), apply_filters('updraftplus_initial_jobdata', $initial_jobdata, $options, $split_every));
2899
  } catch (Exception $e) {
2900
+ $this->log("Exception when calling jobdata_set_multi: ".$e->getMessage().' ('.$e->getCode().', line '.$e->getLine().' in '.$e->getFile().')');
2901
  return false;
2902
  }
2903
 
3431
  $this->log(__('Could not save backup history because we have no backup array. Backup probably failed.', 'updraftplus'), 'error');
3432
  return;
3433
  }
3434
+
3435
+ $job_type = $this->jobdata_get('job_type');
3436
 
3437
  $backup_array['nonce'] = $this->file_nonce;
3438
  $backup_array['service'] = $this->jobdata_get('service');
3439
  $backup_array['service_instance_ids'] = array();
3440
+ if ('incremental' != $job_type) $backup_array['always_keep'] = $this->jobdata_get('always_keep', false);
3441
  $backup_array['files_enumerated_at'] = $this->jobdata_get('files_enumerated_at');
3442
 
3443
  // N.B. Though the saved 'service' option can have various forms (especially if upgrading from (very) old versions), in the jobdata, it is always an array.
3449
  $backup_array['service_instance_ids'][$method] = array_keys($method_information['instance_settings']);
3450
  }
3451
 
3452
+ if ('incremental' != $job_type && '' != ($label = $this->jobdata_get('label', ''))) $backup_array['label'] = $label;
3453
+ if (!isset($backup_array['created_by_version'])) $backup_array['created_by_version'] = $this->version;
3454
+ $backup_array['last_saved_by_version'] = $this->version;
3455
  $backup_array['is_multisite'] = is_multisite() ? true : false;
3456
  $remotesend_info = $this->jobdata_get('remotesend_info');
3457
  if (is_array($remotesend_info) && !empty($remotesend_info['url'])) $backup_array['remotesend_url'] = $remotesend_info['url'];
3460
  if (false != ($morefiles_linked_indexes = $this->jobdata_get('morefiles_linked_indexes', false))) $backup_array['morefiles_linked_indexes'] = $morefiles_linked_indexes;
3461
  if (false != ($morefiles_more_locations = $this->jobdata_get('morefiles_more_locations', false))) $backup_array['morefiles_more_locations'] = $morefiles_more_locations;
3462
 
3463
+ UpdraftPlus_Backup_History::save_backup(apply_filters('updraftplus_save_backup_history_timestamp', $this->backup_time), $backup_array);
3464
  }
3465
 
3466
  /**
4567
  case 'shop':
4568
  return apply_filters('updraftplus_com_shop', 'https://updraftplus.com/shop/');
4569
  break;
4570
+ case 'premium':
4571
+ return apply_filters('updraftplus_com_premium', 'https://updraftplus.com/shop/updraftplus-premium/');
4572
+ break;
4573
  case 'buy-tokens':
4574
  return apply_filters('updraftplus_com_updraftclone_tokens', 'https://updraftplus.com/shop/updraftclone-tokens/');
4575
  break;
css/updraftplus-admin.css CHANGED
@@ -537,14 +537,26 @@ jquery UI Accordion module
537
  .updraft_backup_btn_wrapper {
538
  text-align: center;
539
  border-left: 1px solid #F1F1F1;
540
- display: -ms-flexbox;
541
- display: flex;
542
  -ms-flex-pack: center;
543
  justify-content: center;
544
  -ms-flex-align: center;
545
  align-items: center;
546
  }
547
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
548
  #updraft-delete-waitwarning span.spinner {
549
  visibility: visible;
550
  float: none;
@@ -819,7 +831,7 @@ span#updraft_lastlogcontainer {
819
  clear: right;
820
  }
821
 
822
- .existing-backups-table .backup_date_label > div {
823
  font-weight: bold;
824
  }
825
 
@@ -2964,7 +2976,7 @@ div#updraft-wrap a {
2964
  min-width: 100%;
2965
  }*/
2966
 
2967
- .existing-backups-table .backup_date_label > div {
2968
  font-weight: normal;
2969
  }
2970
 
537
  .updraft_backup_btn_wrapper {
538
  text-align: center;
539
  border-left: 1px solid #F1F1F1;
 
 
540
  -ms-flex-pack: center;
541
  justify-content: center;
542
  -ms-flex-align: center;
543
  align-items: center;
544
  }
545
 
546
+ .incremental-backups-only {
547
+ display: none;
548
+ }
549
+
550
+ .incremental-free-only {
551
+ display: none;
552
+ }
553
+
554
+ .incremental-free-only p {
555
+ padding: 5px;
556
+ background: rgba(255, 0, 0, 0.06);
557
+ border: 1px solid #BFBFBF;
558
+ }
559
+
560
  #updraft-delete-waitwarning span.spinner {
561
  visibility: visible;
562
  float: none;
831
  clear: right;
832
  }
833
 
834
+ .existing-backups-table .backup_date_label > div, .existing-backups-table .backup_date_label span > div {
835
  font-weight: bold;
836
  }
837
 
2976
  min-width: 100%;
2977
  }*/
2978
 
2979
+ .existing-backups-table .backup_date_label > div, .existing-backups-table .backup_date_label span > div {
2980
  font-weight: normal;
2981
  }
2982
 
css/updraftplus-admin.min.css CHANGED
@@ -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;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}#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{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{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;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 */
css/updraftplus-admin.min.css.map CHANGED
@@ -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,qBAAc;CAAd,cAAc;CACd,sBAAwB;KAAxB,wBAAwB;CACxB,uBAAoB;KAApB,oBAAoB;CACpB;;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\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\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 {\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 {\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,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"]}
includes/class-backup-history.php CHANGED
@@ -24,12 +24,73 @@ class UpdraftPlus_Backup_History {
24
 
25
  $backup_history = self::build_incremental_sets($backup_history);
26
 
 
 
27
  // The most recent backup will be first. Then we can array_pop().
28
  krsort($backup_history);
29
 
30
- if (!$timestamp) return $backup_history;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
 
32
- return isset($backup_history[$timestamp]) ? $backup_history[$timestamp] : array();
33
  }
34
 
35
  /**
@@ -68,8 +129,11 @@ class UpdraftPlus_Backup_History {
68
 
69
  if (!is_array($backup_history) || empty($backup_history)) return '<div class="postbox"><p class="updraft-no-backups-msg"><em>'.__('You have not yet made any backups.', 'updraftplus').'</em></p></div>';
70
 
 
 
 
71
  $pass_values = array(
72
- 'backup_history' => $backup_history,
73
  'updraft_dir' => $updraftplus->backups_dir_location(),
74
  'backupable_entities' => $updraftplus->get_backupable_file_entities(true, true)
75
  );
@@ -132,7 +196,7 @@ class UpdraftPlus_Backup_History {
132
  }
133
  }
134
  }
135
-
136
  $backup_history[$btime]["incremental_sets"] = $incremental_sets;
137
  }
138
 
@@ -642,9 +706,9 @@ class UpdraftPlus_Backup_History {
642
  }
643
 
644
  /**
645
- * This function will look through the backup history and return the latest full backups nonce.
646
  *
647
- * @return string - the backup nonce of a full backup or an empty string if none are found
648
  */
649
  public static function get_latest_full_backup() {
650
 
@@ -662,19 +726,81 @@ class UpdraftPlus_Backup_History {
662
 
663
  foreach ($backup_history as $key => $backup) {
664
 
665
- $full_backup_found = true;
 
666
 
667
  foreach ($backupable_entities as $key => $info) {
668
- if (!isset($backup[$key])) $full_backup_found = false;
669
  }
670
 
671
- if ($full_backup_found) {
672
- return $backup['nonce'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
673
  }
 
 
 
674
  }
675
 
676
  return '';
677
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
678
 
679
  /**
680
  * Save a backup into the history
@@ -685,7 +811,9 @@ class UpdraftPlus_Backup_History {
685
  public static function save_backup($backup_time, $backup_array) {
686
  global $updraftplus;
687
  $backup_history = self::get_history();
688
- $backup_history[$backup_time] = $backup_array;
 
 
689
  self::save_history($backup_history, false);
690
  }
691
  }
24
 
25
  $backup_history = self::build_incremental_sets($backup_history);
26
 
27
+ if ($timestamp) return isset($backup_history[$timestamp]) ? $backup_history[$timestamp] : array();
28
+
29
  // The most recent backup will be first. Then we can array_pop().
30
  krsort($backup_history);
31
 
32
+ return $backup_history;
33
+
34
+ }
35
+
36
+ /**
37
+ * Add jobdata to all entries in an array of history items which do not already have it (key: 'jobdata'). If none is found, it will still be set, but empty.
38
+ *
39
+ * @param Array $backup_history - the list of history items
40
+ *
41
+ * @return Array
42
+ */
43
+ public static function add_jobdata($backup_history) {
44
+
45
+ global $wpdb;
46
+ $table = is_multisite() ? $wpdb->sitemeta : $wpdb->options;
47
+ $key_column = is_multisite() ? 'meta_key' : 'option_name';
48
+ $value_column = is_multisite() ? 'meta_value' : 'option_value';
49
+
50
+ $any_more = true;
51
+
52
+ while ($any_more) {
53
+
54
+ $any_more = false;
55
+ $columns = array();
56
+ $nonces_map = array();
57
+
58
+ foreach ($backup_history as $timestamp => $backup) {
59
+ if (isset($backup['jobdata'])) continue;
60
+ $nonce = $backup['nonce'];
61
+ $nonces_map[$nonce] = $timestamp;
62
+ $columns[] = $nonce;
63
+ // Approx. 2.5MB of data would be expected if they all had 5KB each (though in reality we expect very few of them to have any)
64
+ if (count($columns) >= 500) {
65
+ $any_more = true;
66
+ break;
67
+ }
68
+ }
69
+
70
+ if (empty($columns)) break;
71
+
72
+ $columns_sql = '';
73
+ foreach ($columns as $nonce) {
74
+ if ($columns_sql) $columns_sql .= ',';
75
+ $columns_sql .= "'updraft_jobdata_".esc_sql($nonce)."'";
76
+ }
77
+
78
+ $sql = 'SELECT '.$key_column.', '.$value_column.' FROM '.$table.' WHERE '.$key_column.' IN ('.$columns_sql.')';
79
+ $all_jobdata = $wpdb->get_results($sql);
80
+
81
+ foreach ($all_jobdata as $values) {
82
+ // The 16 here is the length of 'updraft_jobdata_'
83
+ $nonce = substr($values->$key_column, 16);
84
+ if (empty($nonces_map[$nonce]) || empty($values->$value_column)) continue;
85
+ $jobdata = maybe_unserialize($values->$value_column);
86
+ $backup_history[$nonces_map[$nonce]]['jobdata'] = empty($jobdata) ? array() : $jobdata;
87
+ }
88
+ foreach ($columns as $nonce) {
89
+ if (!empty($nonces_map[$nonce]) && !isset($backup_history[$nonces_map[$nonce]]['jobdata'])) $backup_history[$nonces_map[$nonce]]['jobdata'] = array();
90
+ }
91
+ }
92
 
93
+ return $backup_history;
94
  }
95
 
96
  /**
129
 
130
  if (!is_array($backup_history) || empty($backup_history)) return '<div class="postbox"><p class="updraft-no-backups-msg"><em>'.__('You have not yet made any backups.', 'updraftplus').'</em></p></div>';
131
 
132
+ // Reverse date sort - i.e. most recent first
133
+ krsort($backup_history);
134
+
135
  $pass_values = array(
136
+ 'backup_history' => self::add_jobdata($backup_history),
137
  'updraft_dir' => $updraftplus->backups_dir_location(),
138
  'backupable_entities' => $updraftplus->get_backupable_file_entities(true, true)
139
  );
196
  }
197
  }
198
  }
199
+ ksort($incremental_sets);
200
  $backup_history[$btime]["incremental_sets"] = $incremental_sets;
201
  }
202
 
706
  }
707
 
708
  /**
709
+ * This function will look through the backup history and return the nonce of the latest full backup that has everything that is set in the UpdraftPlus settings to be backed up (this will exclude full backups sent to another site, e.g. for a migration or clone)
710
  *
711
+ * @return String - the backup nonce of a full backup or an empty string if none are found
712
  */
713
  public static function get_latest_full_backup() {
714
 
726
 
727
  foreach ($backup_history as $key => $backup) {
728
 
729
+ $remote_sent = !empty($backup['service']) && ((is_array($backup['service']) && in_array('remotesend', $backup['service'])) || 'remotesend' === $backup['service']);
730
+ if ($remote_sent) continue;
731
 
732
  foreach ($backupable_entities as $key => $info) {
733
+ if (!isset($backup[$key])) continue 2;
734
  }
735
 
736
+ return $backup['nonce'];
737
+
738
+ }
739
+
740
+ return '';
741
+ }
742
+
743
+ /**
744
+ * This function will look through the backup history and return the nonce of the latest backup that can be used for an incremental backup (this will exclude full backups sent to another site, e.g. for a migration or clone)
745
+ *
746
+ * @return String - the backup nonce of a full backup or an empty string if none are found
747
+ */
748
+ /**
749
+ * This function will look through the backup history and return the nonce of the latest backup that can be used for an incremental backup (this will exclude full backups sent to another site, e.g. for a migration or clone)
750
+ *
751
+ * @param array $entities - an array of file entities that are included in this job
752
+ *
753
+ * @return String - the backup nonce of a full backup or an empty string if none are found
754
+ */
755
+ public static function get_latest_backup($entities) {
756
+
757
+ if (empty($entities)) return '';
758
+
759
+ $backup_history = self::get_history();
760
+
761
+ foreach ($backup_history as $key => $backup) {
762
+
763
+ $remote_sent = !empty($backup['service']) && ((is_array($backup['service']) && in_array('remotesend', $backup['service'])) || 'remotesend' === $backup['service']);
764
+ if ($remote_sent) continue;
765
+
766
+ foreach ($entities as $type) {
767
+ if (!isset($backup[$type])) continue 2;
768
  }
769
+
770
+ return $backup['nonce'];
771
+
772
  }
773
 
774
  return '';
775
  }
776
+
777
+ /**
778
+ * This function will look through the backup history and return an array of entity types found in the history
779
+ *
780
+ * @return array - an array of backup entities found in the history or an empty array if there are none
781
+ */
782
+ public static function get_existing_backup_entities() {
783
+
784
+ $backup_history = self::get_history();
785
+
786
+ global $updraftplus;
787
+
788
+ $backupable_entities = $updraftplus->get_backupable_file_entities(true, true);
789
+
790
+ $entities = array();
791
+
792
+ foreach ($backup_history as $key => $backup) {
793
+
794
+ $remote_sent = !empty($backup['service']) && ((is_array($backup['service']) && in_array('remotesend', $backup['service'])) || 'remotesend' === $backup['service']);
795
+ if ($remote_sent) continue;
796
+
797
+ foreach ($backupable_entities as $key => $info) {
798
+ if (isset($backup[$key])) $entities[] = $key;
799
+ }
800
+ }
801
+
802
+ return $entities;
803
+ }
804
 
805
  /**
806
  * Save a backup into the history
811
  public static function save_backup($backup_time, $backup_array) {
812
  global $updraftplus;
813
  $backup_history = self::get_history();
814
+
815
+ $backup_history[$backup_time] = isset($backup_history[$backup_time]) ? apply_filters('updraftplus_merge_backup_history', $backup_array, $backup_history[$backup_time]) : $backup_array;
816
+
817
  self::save_history($backup_history, false);
818
  }
819
  }
includes/class-commands.php CHANGED
@@ -199,6 +199,9 @@ class UpdraftPlus_Commands {
199
  $backup_history = UpdraftPlus_Backup_History::get_history();
200
 
201
  $results['history'] = $updraftplus_admin->settings_downloading_and_restoring($backup_history, true, $get_history_opts);
 
 
 
202
 
203
  $results['count_backups'] = count($backup_history);
204
 
@@ -230,8 +233,9 @@ class UpdraftPlus_Commands {
230
  $remotescan = ('remotescan' == $operation);
231
  $rescan = ($remotescan || 'rescan' == $operation);
232
 
233
-
234
  $history_status = $updraftplus_admin->get_history_status($rescan, $remotescan, $debug);
 
 
235
 
236
  return $history_status;
237
 
199
  $backup_history = UpdraftPlus_Backup_History::get_history();
200
 
201
  $results['history'] = $updraftplus_admin->settings_downloading_and_restoring($backup_history, true, $get_history_opts);
202
+
203
+ $results['backupnow_file_entities'] = apply_filters('updraftplus_backupnow_file_entities', array());
204
+ $results['modal_afterfileoptions'] = apply_filters('updraft_backupnow_modal_afterfileoptions', '', '');
205
 
206
  $results['count_backups'] = count($backup_history);
207
 
233
  $remotescan = ('remotescan' == $operation);
234
  $rescan = ($remotescan || 'rescan' == $operation);
235
 
 
236
  $history_status = $updraftplus_admin->get_history_status($rescan, $remotescan, $debug);
237
+ $history_status['backupnow_file_entities'] = apply_filters('updraftplus_backupnow_file_entities', array());
238
+ $history_status['modal_afterfileoptions'] = apply_filters('updraft_backupnow_modal_afterfileoptions', '', '');
239
 
240
  return $history_status;
241
 
includes/class-filesystem-functions.php CHANGED
@@ -103,11 +103,17 @@ class UpdraftPlus_Filesystem_Functions {
103
 
104
  // Clean out old job data
105
  if ($older_than > 10000) {
106
- global $wpdb;
107
 
108
- $all_jobs = $wpdb->get_results("SELECT option_name, option_value FROM $wpdb->options WHERE option_name LIKE 'updraft_jobdata_%'", ARRAY_A);
 
 
 
 
 
 
 
109
  foreach ($all_jobs as $job) {
110
- $val = maybe_unserialize($job['option_value']);
111
  // TODO: Can simplify this after a while (now all jobs use job_time_ms) - 1 Jan 2014
112
  $delete = false;
113
  if (!empty($val['next_increment_start_scheduled_for'])) {
@@ -119,7 +125,7 @@ class UpdraftPlus_Filesystem_Functions {
119
  } elseif (!empty($val['job_type']) && 'backup' != $val['job_type'] && empty($val['backup_time_ms']) && empty($val['job_time_ms'])) {
120
  $delete = true;
121
  }
122
- if ($delete) delete_option($job['option_name']);
123
  }
124
  }
125
  $updraft_dir = $updraftplus->backups_dir_location();
@@ -145,10 +151,16 @@ class UpdraftPlus_Filesystem_Functions {
145
  @unlink($updraft_dir.'/'.$entry);
146
  $files_deleted++;
147
  }
 
 
 
 
 
148
  }
149
  }
150
  @closedir($handle);
151
  }
 
152
  // Depending on the PHP setup, the current working directory could be ABSPATH or wp-admin - scan both
153
  // Since 1.9.32, we set them to go into $updraft_dir, so now we must check there too. Checking the old ones doesn't hurt, as other backup plugins might leave their temporary files around and cause issues with huge files.
154
  foreach (array(ABSPATH, ABSPATH.'wp-admin/', $updraft_dir.'/') as $path) {
@@ -156,7 +168,7 @@ class UpdraftPlus_Filesystem_Functions {
156
  while (false !== ($entry = readdir($handle))) {
157
  // With the old pclzip temporary files, there is no need to keep them around after they're not in use - so we don't use $older_than here - just go for 15 minutes
158
  if (preg_match("/^pclzip-[a-z0-9]+.tmp$/", $entry) && $now_time-filemtime($path.$entry) >= 900) {
159
- $updraftplus->log("Deleting old PclZip temporary file: $entry");
160
  @unlink($path.$entry);
161
  }
162
  }
@@ -367,4 +379,199 @@ class UpdraftPlus_Filesystem_Functions {
367
  // Default fallback
368
  return apply_filters('updraftplus_get_disk_space_used_none', __('Error', 'updraftplus'), $entity, $backupable_entities);
369
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
370
  }
103
 
104
  // Clean out old job data
105
  if ($older_than > 10000) {
 
106
 
107
+ global $wpdb;
108
+ $table = is_multisite() ? $wpdb->sitemeta : $wpdb->options;
109
+ $key_column = is_multisite() ? 'meta_key' : 'option_name';
110
+ $value_column = is_multisite() ? 'meta_value' : 'option_value';
111
+
112
+ // Limit the maximum number for performance (the rest will get done next time, if for some reason there was a back-log)
113
+ $all_jobs = $wpdb->get_results("SELECT $key_column, $value_column FROM $table WHERE $key_column LIKE 'updraft_jobdata_%' LIMIT 100", ARRAY_A);
114
+
115
  foreach ($all_jobs as $job) {
116
+ $val = maybe_unserialize($job[$value_column]);
117
  // TODO: Can simplify this after a while (now all jobs use job_time_ms) - 1 Jan 2014
118
  $delete = false;
119
  if (!empty($val['next_increment_start_scheduled_for'])) {
125
  } elseif (!empty($val['job_type']) && 'backup' != $val['job_type'] && empty($val['backup_time_ms']) && empty($val['job_time_ms'])) {
126
  $delete = true;
127
  }
128
+ if ($delete) delete_site_option($job[$key_column]);
129
  }
130
  }
131
  $updraft_dir = $updraftplus->backups_dir_location();
151
  @unlink($updraft_dir.'/'.$entry);
152
  $files_deleted++;
153
  }
154
+ } elseif (preg_match('/^log\.[0-9a-f]+\.txt$/', $entry) && $now_time-filemtime($updraft_dir.'/'.$entry)> apply_filters('updraftplus_log_delete_age', 86400 * 40, $entry)) {
155
+ $skip_dblog = (0 == $files_deleted % 25) ? false : true;
156
+ $updraftplus->log("Deleting old log file: $entry", 'notice', false, $skip_dblog);
157
+ @unlink($updraft_dir.'/'.$entry);
158
+ $files_deleted++;
159
  }
160
  }
161
  @closedir($handle);
162
  }
163
+
164
  // Depending on the PHP setup, the current working directory could be ABSPATH or wp-admin - scan both
165
  // Since 1.9.32, we set them to go into $updraft_dir, so now we must check there too. Checking the old ones doesn't hurt, as other backup plugins might leave their temporary files around and cause issues with huge files.
166
  foreach (array(ABSPATH, ABSPATH.'wp-admin/', $updraft_dir.'/') as $path) {
168
  while (false !== ($entry = readdir($handle))) {
169
  // With the old pclzip temporary files, there is no need to keep them around after they're not in use - so we don't use $older_than here - just go for 15 minutes
170
  if (preg_match("/^pclzip-[a-z0-9]+.tmp$/", $entry) && $now_time-filemtime($path.$entry) >= 900) {
171
+ $updraftplus->log("Deleting old PclZip temporary file: $entry (from ".basename($path).")");
172
  @unlink($path.$entry);
173
  }
174
  }
379
  // Default fallback
380
  return apply_filters('updraftplus_get_disk_space_used_none', __('Error', 'updraftplus'), $entity, $backupable_entities);
381
  }
382
+
383
+ /**
384
+ * Unzips a specified ZIP file to a location on the filesystem via the WordPress
385
+ * Filesystem Abstraction. Forked from WordPress core in version 5.1-alpha-44182.
386
+ * Forked to allow us to modify the behaviour (eventually, to provide feedback on progress)
387
+ *
388
+ * Assumes that WP_Filesystem() has already been called and set up. Does not extract
389
+ * a root-level __MACOSX directory, if present.
390
+ *
391
+ * Attempts to increase the PHP memory limit before uncompressing. However,
392
+ * the most memory required shouldn't be much larger than the archive itself.
393
+ *
394
+ * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
395
+ *
396
+ * @param String $file Full path and filename of ZIP archive.
397
+ * @param String $to Full path on the filesystem to extract archive to.
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)) {
405
+ return new WP_Error('fs_unavailable', __('Could not access filesystem.'));
406
+ }
407
+
408
+ // Unzip can use a lot of memory, but not this much hopefully.
409
+ if (function_exists('wp_raise_memory_limit')) wp_raise_memory_limit('admin');
410
+
411
+ $needed_dirs = array();
412
+ $to = trailingslashit($to);
413
+
414
+ // Determine any parent dir's needed (of the upgrade directory)
415
+ if (!$wp_filesystem->is_dir($to)) { // Only do parents if no children exist
416
+ $path = preg_split('![/\\\]!', untrailingslashit($to));
417
+ for ($i = count($path); $i >= 0; $i--) {
418
+
419
+ if (empty($path[$i])) continue;
420
+
421
+ $dir = implode('/', array_slice($path, 0, $i + 1));
422
+
423
+ // Skip it if it looks like a Windows Drive letter.
424
+ if (preg_match('!^[a-z]:$!i', $dir)) continue;
425
+
426
+ // A folder exists; therefore, we don't need the check the levels below this
427
+ if ($wp_filesystem->is_dir($dir)) break;
428
+
429
+ $needed_dirs[] = $dir;
430
+
431
+ }
432
+ }
433
+
434
+ if (class_exists('ZipArchive', false) && apply_filters('unzip_file_use_ziparchive', true)) {
435
+ // Should be able to use self::unzip_file_go() here - not yet tested
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
+ // Not yet ready to be able to use self::unzip_file_go() until that is ready for PclZip
442
+ return _unzip_file_pclzip($file, $to, $needed_dirs);
443
+ }
444
+
445
+ /**
446
+ * Attempts to unzip an archive; forked from _unzip_file_ziparchive() in WordPress 5.1-alpha-44182, and modified to use the UD zip classes.
447
+ *
448
+ * Assumes that WP_Filesystem() has already been called and set up.
449
+ *
450
+ * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
451
+ *
452
+ * @param String $file Full path and filename of ZIP archive.
453
+ * @param String $to Full path on the filesystem to extract archive to.
454
+ * @param Array $needed_dirs A partial list of required folders needed to be created.
455
+ * @param String $method Either 'ziparchive' or 'pclzip'. DO NOT USE 'pclzip'; it's not yet ready.
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) {
473
+ return new WP_Error('incompatible_archive', __('Incompatible Archive.'), array($method.'_error' => $zope));
474
+ }
475
+
476
+ $uncompressed_size = 0;
477
+
478
+ $num_files = $z->numFiles;
479
+
480
+ for ($i = 0; $i < $num_files; $i++) {
481
+ if (!$info = $z->statIndex($i)) {
482
+ return new WP_Error('stat_failed_'.$method, __('Could not retrieve file from archive.'));
483
+ }
484
+
485
+ if ('__MACOSX/' === substr($info['name'], 0, 9)) { // Skip the OS X-created __MACOSX directory
486
+ continue;
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
+ }
503
+ }
504
+
505
+ /*
506
+ * disk_free_space() could return false. Assume that any falsey value is an error.
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'));
514
+ }
515
+ }
516
+
517
+ $needed_dirs = array_unique($needed_dirs);
518
+ foreach ($needed_dirs as $dir) {
519
+ // Check the parent folders of the folders all exist within the creation array.
520
+ if (untrailingslashit($to) == $dir) { // Skip over the working directory, We know this exists (or will exist)
521
+ continue;
522
+ }
523
+ if (strpos($dir, $to) === false) { // If the directory is not within the working directory, Skip it
524
+ continue;
525
+ }
526
+
527
+ $parent_folder = dirname($dir);
528
+ while (!empty($parent_folder) && untrailingslashit($to) != $parent_folder && !in_array($parent_folder, $needed_dirs)) {
529
+ $needed_dirs[] = $parent_folder;
530
+ $parent_folder = dirname($parent_folder);
531
+ }
532
+ }
533
+ asort($needed_dirs);
534
+
535
+ // Create those directories if need be:
536
+ foreach ($needed_dirs as $_dir) {
537
+ // Only check to see if the Dir exists upon creation failure. Less I/O this way.
538
+ if (!$wp_filesystem->mkdir($_dir, FS_CHMOD_DIR) && !$wp_filesystem->is_dir($_dir)) {
539
+ return new WP_Error('mkdir_failed_'.$method, __('Could not create directory.'), substr($_dir, strlen($to)));
540
+ }
541
+ }
542
+ unset($needed_dirs);
543
+
544
+ for ($i = 0; $i < $num_files; $i++) {
545
+ if (!$info = $z->statIndex($i)) {
546
+ return new WP_Error('stat_failed_'.$method, __('Could not retrieve file from archive.'));
547
+ }
548
+
549
+ if ('/' == substr($info['name'], -1)) { // directory
550
+ continue;
551
+ }
552
+
553
+ if ('__MACOSX/' === substr($info['name'], 0, 9)) { // Don't extract the OS X-created __MACOSX directory files
554
+ continue;
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
+ if (false === $contents) {
565
+ return new WP_Error('extract_failed_'.$method, __('Could not extract file from archive.'), $info['name']);
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();
574
+
575
+ return true;
576
+ }
577
  }
includes/class-remote-send.php CHANGED
@@ -225,7 +225,7 @@ abstract class UpdraftPlus_RemoteSend {
225
 
226
  public function updraftplus_initial_jobdata($initial_jobdata, $options, $split_every) {
227
 
228
- if (is_array($options) && !empty($options['extradata']) && preg_match('#services=remotesend/(\d+)#', $options['extradata'], $matches)) {
229
 
230
  // Load the option now - don't wait until send time
231
  $site_id = $matches[1];
225
 
226
  public function updraftplus_initial_jobdata($initial_jobdata, $options, $split_every) {
227
 
228
+ if (is_array($options) && !empty($options['extradata']) && !empty($options['extradata']['services']) && preg_match('#remotesend/(\d+)#', $options['extradata']['services'], $matches)) {
229
 
230
  // Load the option now - don't wait until send time
231
  $site_id = $matches[1];
includes/class-wpadmin-commands.php CHANGED
@@ -214,7 +214,7 @@ class UpdraftPlus_WPAdmin_Commands extends UpdraftPlus_Commands {
214
  $incremental_sets = array_keys($backups[$timestamp]['incremental_sets']);
215
  // Check if there are more than one timestamp in the incremental set
216
  if (1 < count($incremental_sets)) {
217
- $incremental_select_html = '<label>'.__('Select your incremental restore point', 'updraftplus').': </label>';
218
  $incremental_select_html .= '<select name="updraft_incremental_restore_point" id="updraft_incremental_restore_point">';
219
  $incremental_sets = array_reverse($incremental_sets);
220
  $first_timestamp = $incremental_sets[0];
214
  $incremental_sets = array_keys($backups[$timestamp]['incremental_sets']);
215
  // Check if there are more than one timestamp in the incremental set
216
  if (1 < count($incremental_sets)) {
217
+ $incremental_select_html = '<label>'.__('This backup set contains incremental backups of your files; please select the time you wish to restore your files to', 'updraftplus').': </label>';
218
  $incremental_select_html .= '<select name="updraft_incremental_restore_point" id="updraft_incremental_restore_point">';
219
  $incremental_sets = array_reverse($incremental_sets);
220
  $first_timestamp = $incremental_sets[0];
includes/{updraftplus-admin-common.js → updraft-admin-common.js} RENAMED
@@ -438,18 +438,72 @@ function updraft_restore_setoptions(entities) {
438
  jQuery('#updraft-restore-modal').dialog("option", "height", height);
439
  }
440
 
441
- function updraft_backup_dialog_open() {
442
- jQuery('#backupnow_includefiles_moreoptions').hide();
443
- if (updraft_settings_form_changed) {
444
- if (window.confirm(updraftlion.unsavedsettingsbackup)) {
445
- jQuery('#backupnow_label').val('');
446
- jQuery('#updraft-backupnow-modal').dialog('open');
447
- }
 
 
 
 
 
448
  } else {
 
 
 
 
 
449
  jQuery('#backupnow_label').val('');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
450
  jQuery('#updraft-backupnow-modal').dialog('open');
451
  }
452
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
453
 
454
  var onlythesefileentities = backupnow_whichfiles_checked('');
455
  if ('' == onlythesefileentities) {
@@ -458,6 +512,7 @@ if ('' == onlythesefileentities) {
458
  jQuery("#backupnow_includefiles_moreoptions").hide();
459
  }
460
 
 
461
  var updraft_restore_stage = 1;
462
  var lastlog_lastmessage = "";
463
  var lastlog_lastdata = "";
@@ -1119,6 +1174,12 @@ function updraft_updatehistory(rescan, remotescan, debug) {
1119
  }
1120
  }
1121
  }
 
 
 
 
 
 
1122
 
1123
  if (resp.n != null) { jQuery('#updraft-existing-backups-heading').html(resp.n); }
1124
 
@@ -1139,6 +1200,17 @@ function updraft_updatehistory(rescan, remotescan, debug) {
1139
  });
1140
  }
1141
 
 
 
 
 
 
 
 
 
 
 
 
1142
  /**
1143
  * Exclude entities hidden input field update
1144
  *
@@ -1827,6 +1899,9 @@ function updraft_backupnow_go(backupnow_nodb, backupnow_nofiles, backupnow_noclo
1827
  params.always_keep = (typeof extradata.always_keep !== 'undefined') ? extradata.always_keep : 0;
1828
  delete extradata.always_keep;
1829
 
 
 
 
1830
  // Display Request start message
1831
  if (!jQuery('.updraft_requeststart').length) {
1832
  var requeststart_el = jQuery('<div class="updraft_requeststart" />').html('<span class="spinner"></span>'+updraftlion.requeststart);
@@ -1848,6 +1923,11 @@ function updraft_backupnow_go(backupnow_nodb, backupnow_nofiles, backupnow_noclo
1848
 
1849
  updraft_activejobslist_backupnownonce_only = 1;
1850
  updraft_send_command('backupnow', params, function(resp) {
 
 
 
 
 
1851
  jQuery('#updraft_backup_started').html(resp.m);
1852
  if (resp.hasOwnProperty('nonce')) {
1853
  // Can't return it from this context
@@ -2833,6 +2913,12 @@ jQuery(document).ready(function($) {
2833
  jQuery('#updraft-deleted-files-total').text('');
2834
  jQuery('#updraft-delete-waitwarning').slideUp();
2835
  }, 500);
 
 
 
 
 
 
2836
 
2837
  if (resp.hasOwnProperty('count_backups')) {
2838
  jQuery('#updraft-existing-backups-heading').html(updraftlion.existing_backups+' <span class="updraft_existing_backups_count">'+resp.count_backups+'</span>');
@@ -3011,6 +3097,7 @@ jQuery(document).ready(function($) {
3011
  var backupnow_nocloud = jQuery('#backupnow_includecloud').is(':checked') ? 0 : 1;
3012
  var onlythesetableentities = backupnow_whichtables_checked('');
3013
  var always_keep = jQuery('#always_keep').is(':checked') ? 1 : 0;
 
3014
 
3015
  if ('' == onlythesetableentities && 0 == backupnow_nodb) {
3016
  alert(updraftlion.notableschosen);
@@ -3043,7 +3130,7 @@ jQuery(document).ready(function($) {
3043
  });
3044
  }, 1700);
3045
 
3046
- updraft_backupnow_go(backupnow_nodb, backupnow_nofiles, backupnow_nocloud, onlythesefileentities, {always_keep: always_keep}, jQuery('#backupnow_label').val(), onlythesetableentities);
3047
  };
3048
  backupnow_modal_buttons[updraftlion.cancel] = function() {
3049
  jQuery(this).dialog("close"); };
@@ -3553,8 +3640,11 @@ jQuery(document).ready(function($) {
3553
 
3554
  jQuery('#updraft_activejobs_table, #updraft-navtab-backups-content .updraft_existing_backups, #updraft-backupnow-inpage-modal, #updraft-navtab-migrate-content').on('click', '.updraft-log-link', function(e) {
3555
  e.preventDefault();
 
3556
  var job_id = jQuery(this).data('jobid');
3557
- if (job_id) {
 
 
3558
  updraft_popuplog(job_id);
3559
  } else {
3560
  console.log("UpdraftPlus: A log link was clicked, but the Job ID could not be found");
438
  jQuery('#updraft-restore-modal').dialog("option", "height", height);
439
  }
440
 
441
+ /**
442
+ * Open the 'Backup Now' dialog box
443
+ *
444
+ * @param {string} type - the backup type; either "new" or "incremental"
445
+ */
446
+ function updraft_backup_dialog_open(type) {
447
+
448
+ type = ('undefined' === typeof type) ? 'new' : type;
449
+
450
+ if (0 == jQuery('#updraftplus_incremental_backup_link').data('incremental') && 'incremental' == type) {
451
+ jQuery('#updraft-backupnow-modal .incremental-free-only').show();
452
+ type = 'new';
453
  } else {
454
+ jQuery('#updraft-backupnow-modal .incremental-backups-only').hide();
455
+ }
456
+
457
+ jQuery('#backupnow_includefiles_moreoptions').hide();
458
+ if (!updraft_settings_form_changed || window.confirm(updraftlion.unsavedsettingsbackup)) {
459
  jQuery('#backupnow_label').val('');
460
+ if ('incremental' == type) {
461
+ update_file_entities_checkboxes(true, impossible_increment_entities);
462
+ jQuery('#backupnow_includedb').prop('checked', false);
463
+ jQuery('#backupnow_includefiles').prop('checked', true);
464
+ jQuery('#backupnow_includefiles_label').text(updraftlion.files_incremental_backup);
465
+ jQuery('#updraft-backupnow-modal .new-backups-only').hide();
466
+ jQuery('#updraft-backupnow-modal .incremental-backups-only').show();
467
+ } else {
468
+ update_file_entities_checkboxes(false, impossible_increment_entities);
469
+ jQuery('#backupnow_includedb').prop('checked', true);
470
+ jQuery('#backupnow_includefiles_label').text(updraftlion.files_new_backup);
471
+ jQuery('#updraft-backupnow-modal .new-backups-only').show();
472
+ jQuery('#updraft-backupnow-modal .incremental-backups-only').hide();
473
+ }
474
+ jQuery('#updraft-backupnow-modal').data('backup-type', type);
475
  jQuery('#updraft-backupnow-modal').dialog('open');
476
  }
477
  }
478
+ /**
479
+ * Open the 'Backup Now' dialog box
480
+ *
481
+ * @param {string} type - the backup type; either "new" or "incremental"
482
+ */
483
+ /**
484
+ * This function will enable and disable the file entity options depending on what entities increments can be added to and if this is a new backup or not.
485
+ *
486
+ * @param {boolean} incremental - a boolean to indicate if this is an incremental backup or not
487
+ * @param {array} entities - an array of entities to disable
488
+ */
489
+ function update_file_entities_checkboxes(incremental, entities) {
490
+ if (incremental) {
491
+ jQuery(entities).each(function (index, entity) {
492
+ jQuery('#backupnow_files_updraft_include_' + entity).prop('checked', false);
493
+ jQuery('#backupnow_files_updraft_include_' + entity).prop('disabled', true);
494
+ });
495
+ } else {
496
+ jQuery('#backupnow_includefiles_moreoptions input[type="checkbox"]').each(function (index) {
497
+ var name = jQuery(this).attr('name');
498
+ if (name.substring(0, 16) != 'updraft_include_') { return; }
499
+ var entity = name.substring(16);
500
+ jQuery('#backupnow_files_updraft_include_' + entity).prop('disabled', false);
501
+ if (jQuery(this).is(':checked')) {
502
+ jQuery('#backupnow_files_updraft_include_' + entity).prop('checked', true);
503
+ }
504
+ });
505
+ }
506
+ }
507
 
508
  var onlythesefileentities = backupnow_whichfiles_checked('');
509
  if ('' == onlythesefileentities) {
512
  jQuery("#backupnow_includefiles_moreoptions").hide();
513
  }
514
 
515
+ var impossible_increment_entities;
516
  var updraft_restore_stage = 1;
517
  var lastlog_lastmessage = "";
518
  var lastlog_lastdata = "";
1174
  }
1175
  }
1176
  }
1177
+
1178
+ update_backupnow_modal(resp);
1179
+
1180
+ if (resp.hasOwnProperty('backupnow_file_entities')) {
1181
+ impossible_increment_entities = resp.backupnow_file_entities;
1182
+ }
1183
 
1184
  if (resp.n != null) { jQuery('#updraft-existing-backups-heading').html(resp.n); }
1185
 
1200
  });
1201
  }
1202
 
1203
+ /**
1204
+ * This function will check if the passed in response contains content for the backup now modal that needs updating on page
1205
+ *
1206
+ * @param {array} response - an array that may contain backupnow_modal content that needs updating
1207
+ */
1208
+ function update_backupnow_modal(response) {
1209
+ if (response.hasOwnProperty('modal_afterfileoptions')) {
1210
+ jQuery('.backupnow_modal_afterfileoptions').html(response.modal_afterfileoptions);
1211
+ }
1212
+ }
1213
+
1214
  /**
1215
  * Exclude entities hidden input field update
1216
  *
1899
  params.always_keep = (typeof extradata.always_keep !== 'undefined') ? extradata.always_keep : 0;
1900
  delete extradata.always_keep;
1901
 
1902
+ params.incremental = (typeof extradata.incremental !== 'undefined') ? extradata.incremental : 0;
1903
+ delete extradata.incremental;
1904
+
1905
  // Display Request start message
1906
  if (!jQuery('.updraft_requeststart').length) {
1907
  var requeststart_el = jQuery('<div class="updraft_requeststart" />').html('<span class="spinner"></span>'+updraftlion.requeststart);
1923
 
1924
  updraft_activejobslist_backupnownonce_only = 1;
1925
  updraft_send_command('backupnow', params, function(resp) {
1926
+ if (resp.hasOwnProperty('error')) {
1927
+ jQuery('.updraft_requeststart').remove();
1928
+ alert(resp.error);
1929
+ return;
1930
+ }
1931
  jQuery('#updraft_backup_started').html(resp.m);
1932
  if (resp.hasOwnProperty('nonce')) {
1933
  // Can't return it from this context
2913
  jQuery('#updraft-deleted-files-total').text('');
2914
  jQuery('#updraft-delete-waitwarning').slideUp();
2915
  }, 500);
2916
+
2917
+ update_backupnow_modal(resp);
2918
+
2919
+ if (resp.hasOwnProperty('backupnow_file_entities')) {
2920
+ impossible_increment_entities = resp.backupnow_file_entities;
2921
+ }
2922
 
2923
  if (resp.hasOwnProperty('count_backups')) {
2924
  jQuery('#updraft-existing-backups-heading').html(updraftlion.existing_backups+' <span class="updraft_existing_backups_count">'+resp.count_backups+'</span>');
3097
  var backupnow_nocloud = jQuery('#backupnow_includecloud').is(':checked') ? 0 : 1;
3098
  var onlythesetableentities = backupnow_whichtables_checked('');
3099
  var always_keep = jQuery('#always_keep').is(':checked') ? 1 : 0;
3100
+ var incremental = ('incremental' == jQuery('#updraft-backupnow-modal').data('backup-type')) ? 1 : 0;
3101
 
3102
  if ('' == onlythesetableentities && 0 == backupnow_nodb) {
3103
  alert(updraftlion.notableschosen);
3130
  });
3131
  }, 1700);
3132
 
3133
+ updraft_backupnow_go(backupnow_nodb, backupnow_nofiles, backupnow_nocloud, onlythesefileentities, {always_keep: always_keep, incremental: incremental}, jQuery('#backupnow_label').val(), onlythesetableentities);
3134
  };
3135
  backupnow_modal_buttons[updraftlion.cancel] = function() {
3136
  jQuery(this).dialog("close"); };
3640
 
3641
  jQuery('#updraft_activejobs_table, #updraft-navtab-backups-content .updraft_existing_backups, #updraft-backupnow-inpage-modal, #updraft-navtab-migrate-content').on('click', '.updraft-log-link', function(e) {
3642
  e.preventDefault();
3643
+ var file_id = jQuery(this).data('fileid');
3644
  var job_id = jQuery(this).data('jobid');
3645
+ if (file_id) {
3646
+ updraft_popuplog(file_id);
3647
+ } else if (job_id) {
3648
  updraft_popuplog(job_id);
3649
  } else {
3650
  console.log("UpdraftPlus: A log link was clicked, but the Job ID could not be found");
includes/updraft-admin-common.min.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ function updraft_send_command(t,e,a,r){default_options={json_parse:!0,alert_on_error:!0,action:"updraft_ajax",nonce:updraft_credentialtest_nonce,nonce_key:"nonce",timeout:null,async:!0,type:"POST"},"undefined"==typeof r&&(r={});for(var n in default_options)r.hasOwnProperty(n)||(r[n]=default_options[n]);var o={action:r.action,subaction:t};if(o[r.nonce_key]=r.nonce,"object"==typeof e)for(var u in e)o[u]=e[u];else o.action_data=e;var d={type:r.type,url:ajaxurl,data:o,success:function(t,e){if(r.json_parse){try{var n=ud_parse_json(t)}catch(o){return"function"==typeof r.error_callback?r.error_callback(t,o,502,n):(console.log(o),console.log(t),void(r.alert_on_error&&alert(updraftlion.unexpectedresponse+" "+t)))}if(n.hasOwnProperty("fatal_error"))return"function"==typeof r.error_callback?r.error_callback(t,e,500,n):(console.error(n.fatal_error_message),r.alert_on_error&&alert(n.fatal_error_message),!1);"function"==typeof a&&a(n,e,t)}else"function"==typeof a&&a(t,e)},error:function(t,e,a){"function"==typeof r.error_callback?r.error_callback(t,e,a):(console.log("updraft_send_command: error: "+e+" ("+a+")"),console.log(t))},dataType:"text",async:r.async};null!=r.timeout&&(d.timeout=r.timeout),jQuery.ajax(d)}function updraft_delete(t,e,a){jQuery("#updraft_delete_timestamp").val(t),jQuery("#updraft_delete_nonce").val(e),a?jQuery("#updraft-delete-remote-section, #updraft_delete_remote").removeAttr("disabled").show():jQuery("#updraft-delete-remote-section, #updraft_delete_remote").hide().attr("disabled","disabled"),t.indexOf(",")>-1?(jQuery("#updraft_delete_question_singular").hide(),jQuery("#updraft_delete_question_plural").show()):(jQuery("#updraft_delete_question_plural").hide(),jQuery("#updraft_delete_question_singular").show()),jQuery("#updraft-delete-modal").dialog("open")}function updraft_remote_storage_tab_activation(t){jQuery(".updraftplusmethod").hide(),jQuery(".remote-tab").data("active",!1),jQuery(".remote-tab").removeClass("nav-tab-active"),jQuery(".updraftplusmethod."+t).show(),jQuery(".remote-tab-"+t).data("active",!0),jQuery(".remote-tab-"+t).addClass("nav-tab-active")}function updraft_check_overduecrons(){updraft_send_command("check_overdue_crons",null,function(t){t&&t.hasOwnProperty("m")&&jQuery("#updraft-insert-admin-warning").html(t.m)},{alert_on_error:!1})}function updraft_remote_storage_tabs_setup(){var t=0,e=jQuery(".updraft_servicecheckbox:checked");jQuery(e).each(function(a,r){var n=jQuery(r).val();"updraft_servicecheckbox_none"!=jQuery(r).attr("id")&&t++,jQuery(".remote-tab-"+n).show(),a==jQuery(e).length-1&&updraft_remote_storage_tab_activation(n)}),t>0?(jQuery(".updraftplusmethod.none").hide(),jQuery("#remote_storage_tabs").show()):jQuery("#remote_storage_tabs").hide(),jQuery(document).keyup(function(t){if((32===t.keyCode||13===t.keyCode)&&jQuery(document.activeElement).is("input.labelauty + label")){var e=jQuery(document.activeElement).attr("for");e&&jQuery("#"+e).change()}}),jQuery(".updraft_servicecheckbox").change(function(){var e=jQuery(this).attr("id");if("updraft_servicecheckbox_"==e.substring(0,24)){var a=e.substring(24);null!=a&&""!=a&&(jQuery(this).is(":checked")?(t++,jQuery(".remote-tab-"+a).fadeIn(),updraft_remote_storage_tab_activation(a)):(t--,jQuery(".remote-tab-"+a).hide(),1==jQuery(".remote-tab-"+a).data("active")&&updraft_remote_storage_tab_activation(jQuery(".remote-tab:visible").last().attr("name"))))}t<=0?(jQuery(".updraftplusmethod.none").fadeIn(),jQuery("#remote_storage_tabs").hide()):(jQuery(".updraftplusmethod.none").hide(),jQuery("#remote_storage_tabs").show())}),jQuery(".updraft_servicecheckbox:not(.multi)").change(function(){var t=jQuery(this).attr("value");jQuery(this).is(":not(:checked)")?(jQuery(".updraftplusmethod."+t).hide(),jQuery(".updraftplusmethod.none").fadeIn()):jQuery(".updraft_servicecheckbox").not(this).prop("checked",!1)});var a=jQuery(".updraft_servicecheckbox");"function"==typeof a.labelauty&&a.labelauty()}function updraft_remote_storage_test(t,e,a){var r,n;a?(r=jQuery("#updraft-"+t+"-test-"+a),n=".updraftplusmethod."+t+"-"+a):(r=jQuery("#updraft-"+t+"-test"),n=".updraftplusmethod."+t);var o=r.data("method_label");r.html(updraftlion.testing_settings.replace("%s",o));var u={method:t};jQuery("#updraft-navtab-settings-content "+n+" input[data-updraft_settings_test], #updraft-navtab-settings-content .expertmode input[data-updraft_settings_test]").each(function(t,e){var a=jQuery(e).data("updraft_settings_test"),r=jQuery(e).attr("type");if(a){r||(console.log("UpdraftPlus: settings test input item with no type found"),console.log(e),r="text");var n=null;"checkbox"==r?n=jQuery(e).is(":checked")?1:0:"text"==r||"password"==r?n=jQuery(e).val():(console.log("UpdraftPlus: settings test input item with unrecognised type ("+r+") found"),console.log(e)),u[a]=n}}),jQuery("#updraft-navtab-settings-content "+n+" textarea[data-updraft_settings_test], #updraft-navtab-settings-content "+n+" select[data-updraft_settings_test]").each(function(t,e){var a=jQuery(e).data("updraft_settings_test");u[a]=jQuery(e).val()}),updraft_send_command("test_storage_settings",u,function(t,a){r.html(updraftlion.test_settings.replace("%s",o)),"undefined"!=typeof e&&0!=e&&(e=e.call(this,t,a,u)),"undefined"!=typeof e&&!1===e&&(alert(updraftlion.settings_test_result.replace("%s",o)+" "+t.output),t.hasOwnProperty("data")&&console.log(t.data))},{error_callback:function(t,e,a,n){if(r.html(updraftlion.test_settings.replace("%s",o)),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var u="updraft_send_command: error: "+e+" ("+a+")";console.log(u),alert(u),console.log(t)}}})}function backupnow_whichfiles_checked(t){return jQuery('#backupnow_includefiles_moreoptions input[type="checkbox"]').each(function(e){if(jQuery(this).is(":checked")){var a=jQuery(this).attr("name");if("updraft_include_"==a.substring(0,16)){var r=a.substring(16);""!=t&&(t+=","),t+=r}}}),t}function backupnow_whichtables_checked(t){var e=!1;return jQuery('#backupnow_database_moreoptions input[type="checkbox"]').each(function(t){if(!jQuery(this).is(":checked"))return void(e=!0)}),t=jQuery("input[name^='updraft_include_tables_']").serializeArray(),!e||t}function updraft_deleteallselected(){var t=0,e="",a="",r=0;jQuery("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").each(function(n){t++;var o=jQuery(this).data("nonce");a&&(a+=","),a+=o;var u=jQuery(this).data("key");e&&(e+=","),e+=u;var d=jQuery(this).find(".updraftplus-remove").data("hasremote");d&&r++}),updraft_delete(e,a,r)}function updraft_open_main_tab(t){updraftlion.main_tabs_keys.forEach(function(e){t==e?(jQuery("#updraft-navtab-"+e+"-content").show(),jQuery("#updraft-navtab-"+e).addClass("nav-tab-active")):(jQuery("#updraft-navtab-"+e+"-content").hide(),jQuery("#updraft-navtab-"+e).removeClass("nav-tab-active")),updraft_console_focussed_tab=t})}function updraft_openrestorepanel(t){updraft_historytimertoggle(t),updraft_open_main_tab("backups")}function updraft_delete_old_dirs(){return!0}function updraft_initiate_restore(t){jQuery('#updraft-navtab-backups-content .updraft_existing_backups button[data-backup_timestamp="'+t+'"]').click()}function updraft_restore_setoptions(t){var e=0;jQuery('input[name="updraft_restore[]"]').each(function(a,r){var n=jQuery(r).val(),o=n+"=([0-9,]+)",u=new RegExp(o),d=t.match(u);d?(jQuery(r).removeAttr("disabled").data("howmany",d[1]).parent().show(),e++,"db"==n&&(e+=4.5),jQuery(r).is(":checked")&&jQuery("#updraft_restorer_"+n+"options").show()):jQuery(r).attr("disabled","disabled").parent().hide()});var a=t.match(/dbcrypted=1/);a?(jQuery("#updraft_restore_db").data("encrypted",1),jQuery(".updraft_restore_crypteddb").show()):(jQuery("#updraft_restore_db").data("encrypted",0),jQuery(".updraft_restore_crypteddb").hide()),jQuery("#updraft_restore_db").trigger("change");var r=t.match(/meta_foreign=([12])/);r?jQuery("#updraft_restore_meta_foreign").val(r[1]):jQuery("#updraft_restore_meta_foreign").val("0");var n=336+20*e;jQuery("#updraft-restore-modal").dialog("option","height",n)}function updraft_backup_dialog_open(t){t="undefined"==typeof t?"new":t,0==jQuery("#updraftplus_incremental_backup_link").data("incremental")&&"incremental"==t?(jQuery("#updraft-backupnow-modal .incremental-free-only").show(),t="new"):jQuery("#updraft-backupnow-modal .incremental-backups-only").hide(),jQuery("#backupnow_includefiles_moreoptions").hide(),updraft_settings_form_changed&&!window.confirm(updraftlion.unsavedsettingsbackup)||(jQuery("#backupnow_label").val(""),"incremental"==t?(update_file_entities_checkboxes(!0,impossible_increment_entities),jQuery("#backupnow_includedb").prop("checked",!1),jQuery("#backupnow_includefiles").prop("checked",!0),jQuery("#backupnow_includefiles_label").text(updraftlion.files_incremental_backup),jQuery("#updraft-backupnow-modal .new-backups-only").hide(),jQuery("#updraft-backupnow-modal .incremental-backups-only").show()):(update_file_entities_checkboxes(!1,impossible_increment_entities),jQuery("#backupnow_includedb").prop("checked",!0),jQuery("#backupnow_includefiles_label").text(updraftlion.files_new_backup),jQuery("#updraft-backupnow-modal .new-backups-only").show(),jQuery("#updraft-backupnow-modal .incremental-backups-only").hide()),jQuery("#updraft-backupnow-modal").data("backup-type",t),jQuery("#updraft-backupnow-modal").dialog("open"))}function update_file_entities_checkboxes(t,e){t?jQuery(e).each(function(t,e){jQuery("#backupnow_files_updraft_include_"+e).prop("checked",!1),jQuery("#backupnow_files_updraft_include_"+e).prop("disabled",!0)}):jQuery('#backupnow_includefiles_moreoptions input[type="checkbox"]').each(function(t){var e=jQuery(this).attr("name");if("updraft_include_"==e.substring(0,16)){var a=e.substring(16);jQuery("#backupnow_files_updraft_include_"+a).prop("disabled",!1),jQuery(this).is(":checked")&&jQuery("#backupnow_files_updraft_include_"+a).prop("checked",!0)}})}function updraft_check_page_visibility(t){"hidden"==document.visibilityState?updraft_page_is_visible=0:(updraft_page_is_visible=1,1!==t&&jQuery("#updraft-navtab-backups-content").length&&updraft_activejobs_update(!0))}function setup_migrate_tabs(){jQuery("#updraft_migrate .updraft_migrate_widget_module_content").each(function(t,e){var a=jQuery(e).find("h3").first().html(),r=jQuery(".updraft_migrate_intro"),n=jQuery('<button class="button button-primary button-hero" />').html(a).appendTo(r);n.on("click",function(t){t.preventDefault(),jQuery(e).show(),r.hide()})})}function updraft_backupnow_inpage_go(t,e,a,r,n,o,u){r="undefined"==typeof r?0:r,n="undefined"==typeof n?0:n,o="undefined"==typeof o?0:o,u="undefined"==typeof u?updraftlion.automaticbackupbeforeupdate:u,updraft_console_focussed_tab="backups",updraft_inpage_success_callback=t,updraft_activejobs_update_timer=setInterval(function(){updraft_activejobs_update(!1)},1250);var d={},s=jQuery("#updraft-backupnow-inpage-modal").length;s&&jQuery("#updraft-backupnow-inpage-modal").dialog("option","buttons",d),jQuery("#updraft_inpage_prebackup").hide(),s&&jQuery("#updraft-backupnow-inpage-modal").dialog("open"),jQuery("#updraft_inpage_backup").show(),updraft_activejobslist_backupnownonce_only=1,updraft_inpage_hasbegun=0,updraft_backupnow_go(r,n,o,e,a,u,"")}function updraft_activejobs_update(t){var e=jQuery,a=(new Date).getTime();if(!(0==t&&a<updraft_activejobs_nextupdate)){updraft_activejobs_nextupdate=a+5500;var r="";e(".ud_downloadstatus .updraftplus_downloader, #ud_downloadstatus2 .updraftplus_downloader").each(function(t,a){var n=e(a).data("downloaderfor");"object"==typeof n&&(""!=r&&(r+=":"),r=r+n.base+","+n.nonce+","+n.what+","+n.index)});var n={downloaders:r};try{e("#updraft-poplog").dialog("isOpen")&&(n.log_fetch=1,n.log_nonce=updraft_poplog_log_nonce,n.log_pointer=updraft_poplog_log_pointer)}catch(o){console.log(o)}updraft_activejobslist_backupnownonce_only&&"undefined"!=typeof updraft_backupnow_nonce&&""!=updraft_backupnow_nonce&&(n.thisjobonly=updraft_backupnow_nonce),updraft_send_command("activejobs_list",n,function(t,r,o){try{t.hasOwnProperty("l")&&(t.l?(e("#updraft_lastlogmessagerow").show(),e("#updraft_lastlogcontainer").html(t.l)):(e("#updraft_lastlogmessagerow").hide(),e("#updraft_lastlogcontainer").html("("+updraftlion.nothing_yet_logged+")")));var u=-1,d=e(".updraft_requeststart");t.j&&d.length&&d.data("remove")&&d.remove();var s=e(t.j);s.find(".updraft_jobtimings").each(function(t,a){var r=e(a);if(r.data("jobid")){var n=r.data("jobid"),o=r.closest(".updraft_row");updraft_aborted_jobs[n]&&o.hide()}}),e("#updraft_activejobsrow").html(s);var i=s.find('.job-id[data-isclone="1"]');if(i.length>0){if(0==e(".updraftclone_action_box .updraftclone_network_info").length&&e("#updraft_activejobsrow .job-id .updraft_clone_url").length>0){var l=e("#updraft_activejobsrow .job-id .updraft_clone_url").data("clone_url");updraft_send_command("get_clone_network_info",{clone_url:l},function(t){t.hasOwnProperty("html")&&e(".updraftclone_action_box").html(t.html)})}e("#updraft_clone_activejobsrow").empty(),i.each(function(t,a){var r=e(a);r.closest(".updraft_row").appendTo(e("#updraft_clone_activejobsrow"))})}if(e("#updraft_activejobs .updraft_jobtimings").each(function(t,r){var n=e(r);if(n.data("lastactivity")&&n.data("jobid")){var o=n.data("jobid"),d=n.data("lastactivity");(u==-1||d<u)&&(u=d);var s=n.data("nextresumptionafter"),i=n.data("nextresumption");a=(new Date).getTime(),d>50&&i>0&&s<-30&&a>updraft_last_forced_when+1e5&&(updraft_last_forced_jobid!=o||i!=updraft_last_forced_resumption)&&(updraft_last_forced_resumption=i,updraft_last_forced_jobid=o,updraft_last_forced_when=a,console.log("UpdraftPlus: force resumption: job_id="+o+", resumption="+i),updraft_send_command("forcescheduledresumption",{resumption:i,job_id:o},function(t){console.log(t)},{json_parse:!1,alert_on_error:!1}))}}),a=(new Date).getTime(),updraft_activejobs_nextupdate=a+18e4,1==updraft_page_is_visible&&"backups"==updraft_console_focussed_tab&&(updraft_activejobs_nextupdate=u>-1?u<5?a+1750:a+5e3:lastlog_lastdata==o?a+7500:a+1750),i.length>0&&(updraft_activejobs_nextupdate=a+6e3),lastlog_lastdata=o,null!=t.j&&""!=t.j){if(e("#updraft_activejobsrow").show(),i.length>0&&e("#updraft_clone_activejobsrow").show(),n.hasOwnProperty("thisjobonly")&&!updraft_inpage_hasbegun&&e("#updraft-jobid-"+n.thisjobonly).length?(updraft_inpage_hasbegun=1,console.log("UpdraftPlus: the start of the requested backup job has been detected")):!updraft_inpage_hasbegun&&updraft_activejobslist_backupnownonce_only&&e(".updraft_jobtimings.isautobackup").length?(autobackup_nonce=e(".updraft_jobtimings.isautobackup").first().data("jobid"),autobackup_nonce&&(updraft_inpage_hasbegun=1,updraft_backupnow_nonce=autobackup_nonce,n.thisjobonly=autobackup_nonce,console.log("UpdraftPlus: the start of the requested backup job has been detected; id: "+autobackup_nonce))):1==updraft_inpage_hasbegun&&e("#updraft-jobid-"+n.thisjobonly+".updraft_finished").length&&(updraft_inpage_hasbegun=2,console.log("UpdraftPlus: the end of the requested backup job has been detected"),updraft_activejobs_update_timer&&clearInterval(updraft_activejobs_update_timer),"undefined"!=typeof updraft_inpage_success_callback&&""!=updraft_inpage_success_callback?updraft_inpage_success_callback.call(!1):e("#updraft-backupnow-inpage-modal").dialog("close")),""==lastlog_jobs&&setTimeout(function(){e("#updraft_backup_started").slideUp()},3500),n.hasOwnProperty("thisjobonly")&&updraft_backupnow_nonce&&n.thisjobonly===updraft_backupnow_nonce){e(".updraft_requeststart").remove();var p=e("#updraft-jobid-"+updraft_backupnow_nonce);p.is(".updraft_finished")&&(updraft_activejobslist_backupnownonce_only=0,updraft_aborted_jobs[updraft_backupnow_nonce]?updraft_aborted_jobs=updraft_aborted_jobs.filter(function(t,e){return t!=updraft_backupnow_nonce}):updraft_active_job_is_clone(updraft_backupnow_nonce)?(updraft_show_success_modal(updraftlion.clone_backup_complete),updraft_clone_jobs=updraft_clone_jobs.filter(function(t){return t!=updraft_backupnow_nonce})):updraft_show_success_modal(updraftlion.backup_complete),updraft_backupnow_nonce="",updraft_activejobs_update(!0))}}else e("#updraft_activejobsrow").is(":hidden")||("undefined"!=typeof lastbackup_laststatus&&updraft_showlastbackup(),updraft_updatehistory(0,0),e("#updraft_activejobsrow").hide());if(lastlog_jobs=t.j,null!=t.ds&&""!=t.ds&&updraft_downloader_status_update(t.ds,o),null!=t.u&&""!=t.u&&e("#updraft-poplog").dialog("isOpen")){var _=t.u;if(_.nonce==updraft_poplog_log_nonce&&(updraft_poplog_log_pointer=_.pointer,null!=_.log&&""!=_.log)){var c=e("#updraft-poplog").scrollTop();e("#updraft-poplog-content").append(_.log),updraft_poplog_lastscroll!=c&&updraft_poplog_lastscroll!=-1||(e("#updraft-poplog").scrollTop(e("#updraft-poplog-content").prop("scrollHeight")),updraft_poplog_lastscroll=e("#updraft-poplog").scrollTop())}}}catch(f){console.log(updraftlion.unexpectedresponse+" "+o),console.log(f)}},{type:"GET",error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),!0===updraftplus_activejobs_list_fatal_error_alert&&(updraftplus_activejobs_list_fatal_error_alert=!1,alert(this.alert_done+" "+r.fatal_error_message));else{var n=e==a?a:a+" ("+e+")";console.error(n),console.log(t)}return!1}})}}function updraft_show_success_modal(t){"string"==typeof t&&(t={message:t});var e=jQuery.extend({icon:"yes",close:updraftlion.close,message:"",classes:"success"},t);jQuery.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)"},message:'<div class="updraft_success_popup '+e.classes+'"><span class="dashicons dashicons-'+e.icon+'"></span><div class="updraft_success_popup--message">'+e.message+'</div><button class="button updraft-close-overlay"><span class="dashicons dashicons-no-alt"></span>'+e.close+"</button></div>"}),setTimeout(jQuery.unblockUI,5e3),jQuery(".blockUI .updraft-close-overlay").on("click",function(){jQuery.unblockUI()})}function updraft_popuplog(t){var e=updraftlion.loading_log_file;t&&(e+=" (log."+t+".txt)"),jQuery("#updraft-poplog").dialog("option","title",e),jQuery("#updraft-poplog-content").html("<em>"+e+" ...</em> "),jQuery("#updraft-poplog").dialog("open"),updraft_send_command("get_log",t,function(t){updraft_poplog_log_pointer=t.pointer,updraft_poplog_log_nonce=t.nonce;var e="?page=updraftplus&action=downloadlog&force_download=1&updraftplus_backup_nonce="+t.nonce;jQuery("#updraft-poplog-content").html(t.log);var a={};a[updraftlion.downloadlogfile]=function(){window.location.href=e},a[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-poplog").dialog("option","buttons",a),jQuery("#updraft-poplog").dialog("option","title","log."+t.nonce+".txt"),updraft_poplog_lastscroll=-1},{type:"GET",timeout:6e4,error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft-poplog-content").append(r.fatal_error_message);else{var n=e==a?a:a+" ("+e+")";jQuery("#updraft-poplog-content").append(n),console.log(t)}}})}function updraft_showlastbackup(){updraft_send_command("get_fragment","last_backup_html",function(t){response=t.output,lastbackup_laststatus==response?setTimeout(function(){updraft_showlastbackup()},7e3):jQuery("#updraft_last_backup").html(response),lastbackup_laststatus=response},{type:"GET"})}function updraft_historytimertoggle(t){updraft_historytimer&&1!=t?(clearTimeout(updraft_historytimer),updraft_historytimer=0):(updraft_updatehistory(0,0),updraft_historytimer=setInterval(function(){updraft_updatehistory(0,0)},3e4),calculated_diskspace||(updraftplus_diskspace(),calculated_diskspace=1))}function updraft_updatehistory(t,e,a){"undefined"==typeof a&&(a=jQuery("#updraft_debug_mode").is(":checked")?1:0);var r=Math.round((new Date).getTime()/1e3);if(1==t||1==e)updraft_historytimer_notbefore=r+30;else if(r<updraft_historytimer_notbefore)return void console.log("Update history skipped: "+r.toString()+" < "+updraft_historytimer_notbefore.toString());1==t&&(1==e?(updraft_history_lastchecksum=!1,jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html('<p style="text-align:center;"><em>'+updraftlion.rescanningremote+"</em></p>")):(updraft_history_lastchecksum=!1,jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html('<p style="text-align:center;"><em>'+updraftlion.rescanning+"</em></p>")));var n=e?"remotescan":!!t&&"rescan",o={operation:n,debug:a};updraft_send_command("rescan",o,function(t){if(t.hasOwnProperty("logs_exist")&&t.logs_exist&&jQuery("#updraft_lastlogmessagerow .updraft-log-link").show(),t.hasOwnProperty("migrate_tab")&&t.migrate_tab&&(jQuery("#updraft-navtab-migrate").hasClass("nav-tab-active")||(jQuery("#updraft_migrate_tab_alt").html(""),jQuery("#updraft_migrate").replaceWith(jQuery(t.migrate_tab).find("#updraft_migrate")),setup_migrate_tabs())),t.hasOwnProperty("web_server_disk_space")&&(""==t.web_server_disk_space?(console.log("UpdraftPlus: web_server_disk_space is empty"),jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").length&&jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").slideUp("slow",function(){jQuery(this).remove()})):jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").length?jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").replaceWith(t.web_server_disk_space):jQuery("#updraft-navtab-backups-content .updraft-disk-space-actions").prepend(t.web_server_disk_space)),update_backupnow_modal(t),t.hasOwnProperty("backupnow_file_entities")&&(impossible_increment_entities=t.backupnow_file_entities),null!=t.n&&jQuery("#updraft-existing-backups-heading").html(t.n),null!=t.t){if(null!=t.cksum){if(t.cksum==updraft_history_lastchecksum)return;updraft_history_lastchecksum=t.cksum}jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html(t.t),updraft_backups_selection.checkSelectionStatus(),t.data&&console.log(t.data)}})}function update_backupnow_modal(t){t.hasOwnProperty("modal_afterfileoptions")&&jQuery(".backupnow_modal_afterfileoptions").html(t.modal_afterfileoptions)}function updraft_exclude_entity_update(t){var e=[];jQuery("#updraft_include_"+t+"_exclude_container .updraft_exclude_entity_wrapper .updraft_exclude_entity_field").each(function(){var t=jQuery.trim(jQuery(this).data("val"));""!=t&&e.push(t)}),jQuery("#updraft_include_"+t+"_exclude").val(e.join(","))}function updraft_is_unique_exclude_rule(t,e){return existing_exclude_rules_str=jQuery("#updraft_include_"+e+"_exclude").val(),existing_exclude_rules=existing_exclude_rules_str.split(","),!(jQuery.inArray(t,existing_exclude_rules)>-1)||(alert(updraftlion.duplicate_exclude_rule_error_msg),!1)}function updraft_intervals_monthly_or_not(t,e){var a="#updraft-navtab-settings-content #"+t,r=jQuery(a+" option").length,n="monthly"==e,o=!1;if(r>10&&(o=!0),n||o){if(n&&o)return void("monthly"==e&&(jQuery(".updraft_monthly_extra_words_"+t).remove(),jQuery(a).before('<span class="updraft_monthly_extra_words_'+t+'">'+updraftlion.day+" </span>").after('<span class="updraft_monthly_extra_words_'+t+'"> '+updraftlion.inthemonth+" </span>")));if(jQuery(".updraft_monthly_extra_words_"+t).remove(),n){updraft_interval_week_val=jQuery(a+" option:selected").val(),jQuery(a).html(updraftlion.mdayselector).before('<span class="updraft_monthly_extra_words_'+t+'">'+updraftlion.day+" </span>").after('<span class="updraft_monthly_extra_words_'+t+'"> '+updraftlion.inthemonth+" </span>");var u=updraft_interval_month_val===!1?1:updraft_interval_month_val;u-=1,jQuery(a+" option:eq("+u+")").prop("selected",!0)}else{updraft_interval_month_val=jQuery(a+" option:selected").val(),jQuery(a).html(updraftlion.dayselector);var d=updraft_interval_week_val===!1?1:updraft_interval_week_val;jQuery(a+" option:eq("+d+")").prop("selected",!0)}}}function updraft_check_same_times(){var t=0,e=jQuery("#updraft-navtab-settings-content .updraft_interval").val();"manual"==e?jQuery("#updraft-navtab-settings-content .updraft_files_timings").hide():jQuery("#updraft-navtab-settings-content .updraft_files_timings").show(),"weekly"==e||"fortnightly"==e||"monthly"==e?(updraft_intervals_monthly_or_not("updraft_startday_files",e),jQuery("#updraft-navtab-settings-content #updraft_startday_files").show()):(jQuery(".updraft_monthly_extra_words_updraft_startday_files").remove(),jQuery("#updraft-navtab-settings-content #updraft_startday_files").hide());var a=jQuery("#updraft-navtab-settings-content .updraft_interval_database").val();"manual"==a&&(t=1,jQuery("#updraft-navtab-settings-content .updraft_db_timings").hide()),"weekly"==a||"fortnightly"==a||"monthly"==a?(updraft_intervals_monthly_or_not("updraft_startday_db",a),jQuery("#updraft-navtab-settings-content #updraft_startday_db").show()):(jQuery(".updraft_monthly_extra_words_updraft_startday_db").remove(),jQuery("#updraft-navtab-settings-content #updraft_startday_db").hide()),a==e?(jQuery("#updraft-navtab-settings-content .updraft_db_timings").hide(),0==t?jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").show():jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").hide()):(jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").hide(),0==t&&jQuery("#updraft-navtab-settings-content .updraft_db_timings").show())}function updraft_activejobs_delete(t){updraft_aborted_jobs[t]=1,jQuery("#updraft-jobid-"+t).closest(".updraft_row").addClass("deleting"),updraft_send_command("activejobs_delete",t,function(e){var a=jQuery("#updraft-jobid-"+t).closest(".updraft_row");a.addClass("deleting"),"Y"==e.ok?(jQuery("#updraft-jobid-"+t).html(e.m),a.remove(),jQuery("#updraft-backupnow-inpage-modal").dialog("isOpen")&&jQuery("#updraft-backupnow-inpage-modal").dialog("close"),updraft_show_success_modal({message:updraft_active_job_is_clone(t)?updraftlion.clone_backup_aborted:updraftlion.backup_aborted,icon:"no-alt",classes:"warning"})):"N"==e.ok?(a.removeClass("deleting"),alert(e.m)):(a.removeClass("deleting"),alert(updraftlion.unexpectedresponse),console.log(e))})}function updraftplus_diskspace_entity(t){jQuery("#updraft_diskspaceused_"+t).html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:t},function(e){jQuery("#updraft_diskspaceused_"+t).html(e.output)},{type:"GET"})}function updraft_active_job_is_clone(t){return updraft_clone_jobs.filter(function(e){return e==t}).length}function updraft_iframe_modal(t,e){var a=780,r=500;jQuery("#updraft-iframe-modal-innards").html('<iframe width="100%" height="430px" src="'+ajaxurl+"?action=updraft_ajax&subaction="+t+"&nonce="+updraft_credentialtest_nonce+'"></iframe>'),jQuery("#updraft-iframe-modal").dialog("option","title",e).dialog("option","width",a).dialog("option","height",r).dialog("open")}function updraft_html_modal(t,e,a,r){jQuery("#updraft-iframe-modal-innards").html(t);var n={};a<450&&(n[updraftlion.close]=function(){jQuery(this).dialog("close")}),jQuery("#updraft-iframe-modal").dialog("option","title",e).dialog("option","width",a).dialog("option","height",r).dialog("option","buttons",n).dialog("open")}function updraftplus_diskspace(){jQuery("#updraft-navtab-backups-content .updraft_diskspaceused").html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:"updraft"},function(t){jQuery("#updraft-navtab-backups-content .updraft_diskspaceused").html(t.output)},{type:"GET"})}function updraftplus_deletefromserver(t,e,a){a||(a=0);var r={stage:"delete",timestamp:t,type:e,findex:a};updraft_send_command("updraft_download_backup",r,null,{action:"updraft_download_backup",nonce:updraft_download_nonce,nonce_key:"_wpnonce"})}function updraftplus_downloadstage2(t,e,a){location.href=ajaxurl+"?_wpnonce="+updraft_download_nonce+"&timestamp="+t+"&type="+e+"&stage=2&findex="+a+"&action=updraft_download_backup"}function updraftplus_show_contents(t,e,a){var r='<div id="updraft_zip_files_container" class="hidden-in-updraftcentral" style="clear:left;"><div id="updraft_zip_info_container" class="updraft_jstree_info_container"><p><span id="updraft_zip_path_text">'+updraftlion.zip_file_contents_info+'</span> - <span id="updraft_zip_size_text"></span></p>'+updraftlion.browse_download_link+'</div><div id="updraft_zip_files_jstree_container"><input type="search" id="zip_files_jstree_search" name="zip_files_jstree_search" placeholder="'+updraftlion.search+'"><div id="updraft_zip_files_jstree" class="updraft_jstree"></div></div></div>';updraft_html_modal(r,updraftlion.zip_file_contents,780,500),zip_files_jstree("zipbrowser",t,e,a)}function zip_files_jstree(t,e,a,r){jQuery("#updraft_zip_files_jstree").jstree({core:{multiple:!1,data:function(n,o){updraft_send_command("get_jstree_directory_nodes",{entity:t,node:n,timestamp:e,type:a,findex:r},function(t){t.hasOwnProperty("error")?alert(t.error):o.call(this,t.nodes)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}})},error:function(t){alert(t),console.log(t)}},search:{show_only_matches:!0},plugins:["search","sort"]}),jQuery("#updraft_zip_files_jstree").on("ready.jstree",function(t,e){jQuery("#updraft-iframe-modal").dialog("option","title",updraftlion.zip_file_contents+": "+e.instance.get_node("#").children[0])});var n=!1;jQuery("#zip_files_jstree_search").keyup(function(){n&&clearTimeout(n),n=setTimeout(function(){var t=jQuery("#zip_files_jstree_search").val();jQuery("#updraft_zip_files_jstree").jstree(!0).search(t)},250)}),jQuery("#updraft_zip_files_jstree").on("changed.jstree",function(t,e){jQuery("#updraft_zip_path_text").text(e.node.li_attr.path),e.node.li_attr.size?(jQuery("#updraft_zip_size_text").text(e.node.li_attr.size),jQuery("#updraft_zip_download_item").show()):(jQuery("#updraft_zip_size_text").text(""),jQuery("#updraft_zip_download_item").hide())}),jQuery("#updraft_zip_download_item").click(function(t){t.preventDefault();var n=jQuery("#updraft_zip_path_text").text();updraft_send_command("get_zipfile_download",{path:n,timestamp:e,type:a,findex:r},function(t){t.hasOwnProperty("error")?alert(t.error):t.hasOwnProperty("path")?location.href=ajaxurl+"?_wpnonce="+updraft_download_nonce+"&timestamp="+e+"&type="+a+"&stage=2&findex="+r+"&filepath="+t.path+"&action=updraft_download_backup":alert(updraftlion.download_timeout)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})})}function remove_updraft_downloader(t,e){jQuery(t).parent().fadeOut().remove(),0==jQuery(".updraftplus_downloader_container_"+e+" .updraftplus_downloader").length&&jQuery(".updraftplus_downloader_container_"+e).remove()}function updraft_downloader(t,e,a,r,n,o,u){"string"!=typeof n&&(n=n.toString()),jQuery(".ud_downloadstatus").show();var n=n.split(","),d=o?o:e,s=jQuery("#updraft-navtab-backups-content .uddownloadform_"+a+"_"+e+"_"+n[0]).data("wp_nonce").toString();jQuery(r).append('<div class="updraftplus_downloader_container_'+a+' postbox"></div>'),jQuery(".updraftplus_downloader_container_"+a).append('<strong style="clear:left; padding: 8px; margin-top: 4px;">'+updraftlion.download+" "+a+" ("+d+"):</strong>");for(var i=0;i<n.length;i++){var l=t+e+"_"+a+"_"+n[i],p="."+l,_=parseInt(n[i]);_++;var c=0==n[i]?"":" ("+_+")";jQuery(p).length||(jQuery(".updraftplus_downloader_container_"+a).append('<div style="clear:left; padding: 8px; margin-top: 4px;" class="'+l+' updraftplus_downloader"><button onclick="remove_updraft_downloader(this, \''+a+'\');" type="button" style="float:right; margin-bottom: 8px;" class="ud_downloadstatus__close" aria-label="Close"><span class="dashicons dashicons-no-alt"></span></button><strong>'+a+c+'</strong>:<div class="raw">'+updraftlion.begunlooking+'</div><div class="file '+l+'_st"><div class="dlfileprogress" style="width: 0;"></div></div></div>'),
2
+ jQuery(p).data("downloaderfor",{base:t,nonce:e,what:a,index:n[i]}),setTimeout(function(){updraft_activejobs_update(!0)},1500)),jQuery(p).data("lasttimebegan",(new Date).getTime())}u=!!u;var f={type:a,timestamp:e,findex:n},m={action:"updraft_download_backup",nonce_key:"_wpnonce",nonce:s,timeout:1e4,async:u};return updraft_send_command("updraft_download_backup",f,function(t){},m),!1}function ud_parse_json(t){t.charAt(0),t.charAt(t.length-1);try{var e=JSON.parse(t);return e}catch(a){console.log("UpdraftPlus: Exception when trying to parse JSON (1) - will attempt to fix/re-parse"),console.log(t)}var r=t.indexOf("{"),n=t.lastIndexOf("}");if(r>-1&&n>-1){var o=t.slice(r,n+1);try{var u=JSON.parse(o);return console.log("UpdraftPlus: JSON re-parse successful"),u}catch(a){throw console.log("UpdraftPlus: Exception when trying to parse JSON (2)"),a}}throw"UpdraftPlus: could not parse the JSON"}function updraft_restorer_checkstage2(t){var e=jQuery("#ud_downloadstatus2 .file").length;return e>0?void(t&&alert(updraftlion.stilldownloading)):(jQuery("#updraft-restore-modal-stage2a").html(updraftlion.processing),void updraft_send_command("restore_alldownloaded",{timestamp:jQuery("#updraft_restore_timestamp").val(),restoreopts:jQuery("#updraft_restore_form").serialize()},function(t,e,a){var r=null;jQuery("#updraft_restorer_restore_options").val("");try{if(null==t)return void jQuery("#updraft-restore-modal-stage2a").html(updraftlion.emptyresponse);var n=t.m;if(""!=t.w&&(n=n+"<p><strong>"+updraftlion.warnings+"</strong><br>"+t.w+"</p>"),""!=t.e?n=n+"<p><strong>"+updraftlion.errors+"</strong><br>"+t.e+"</p>":updraft_restore_stage=3,t.hasOwnProperty("i")){try{if(r=ud_parse_json(t.i),r.hasOwnProperty("addui")){console.log("Further UI options are being displayed");var o=r.addui;n+='<div id="updraft_restoreoptions_ui" style="clear:left; padding-top:10px;">'+o+"</div>","object"==typeof JSON&&"function"==typeof JSON.stringify&&(delete r.addui,t.i=JSON.stringify(r))}}catch(u){console.log(u),console.log(t)}jQuery("#updraft_restorer_backup_info").val(t.i)}else jQuery("#updraft_restorer_backup_info").val();jQuery("#updraft-restore-modal-stage2a").html(n),jQuery("#updraft-restore-modal-stage2a .updraft_select2").length>0&&jQuery("#updraft-restore-modal-stage2a .updraft_select2").select2()}catch(u){console.log(a),console.log(u),jQuery("#updraft-restore-modal-stage2a").text(updraftlion.jsonnotunderstood+" "+updraftlion.errordata+": "+a).html()}},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft-restore-modal-stage2a").html('<p style="color: red;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft-restore-modal-stage2a").html('<p style="color: red;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}}))}function updraft_downloader_status(t,e,a,r){}function updraft_downloader_status_update(t,e){var a=0;return jQuery(t).each(function(t,r){if(""!=r.base){var n=r.base+r.timestamp+"_"+r.what+"_"+r.findex,o="."+n;if(null!=r.e)jQuery(o+" .raw").html("<strong>"+updraftlion.error+"</strong> "+r.e),console.log(r);else if(null!=r.p){if(jQuery(o+"_st .dlfileprogress").width(r.p+"%"),null!=r.a&&r.a>0){var u=(new Date).getTime(),d=jQuery(o).data("lasttimebegan"),s=u-d;if(r.a>90&&s>6e4){console.log(r.timestamp+" "+r.what+" "+r.findex+": restarting download: file_age="+r.a+", sincelastrestart_ms="+s),jQuery(o).data("lasttimebegan",(new Date).getTime());var i=jQuery("#updraft-navtab-backups-content .uddownloadform_"+r.what+"_"+r.timestamp+"_"+r.findex),l={type:r.what,timestamp:r.timestamp,findex:r.findex},p={action:"updraft_download_backup",nonce_key:"_wpnonce",nonce:i.data("wp_nonce").toString(),timeout:1e4};updraft_send_command("updraft_download_backup",l,function(t){},p),jQuery(o).data("lasttimebegan",(new Date).getTime())}}if(null!=r.m)if(r.p>=100&&"udrestoredlstatus_"==r.base)jQuery(o+" .raw").html(r.m),jQuery(o).fadeOut("slow",function(){remove_updraft_downloader(this,r.what),updraft_restorer_checkstage2(0)});else if(r.p<100||"uddlstatus_"!=r.base)jQuery(o+" .raw").html(r.m);else{var _=updraftlion.fileready+" "+updraftlion.actions+': \t\t\t\t<button class="button" type="button" onclick="updraftplus_downloadstage2(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.downloadtocomputer+'</button> \t\t\t\t<button class="button" id="uddownloaddelete_'+r.timestamp+"_"+r.what+'" type="button" onclick="updraftplus_deletefromserver(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.deletefromserver+"</button>";r.hasOwnProperty("can_show_contents")&&r.can_show_contents&&(_+=' <button class="button" type="button" onclick="updraftplus_show_contents(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.browse_contents+"</button>"),jQuery(o+" .raw").html(_),jQuery(o+"_st").remove()}}else null!=r.m?jQuery(o+" .raw").html(r.m):(jQuery(o+" .raw").html(updraftlion.jsonnotunderstood+" ("+e+")"),a=1)}}),a}function updraft_backupnow_go(t,e,a,r,n,o,u){var d={backupnow_nodb:t,backupnow_nofiles:e,backupnow_nocloud:a,backupnow_label:o,extradata:n};if(""!=r&&(d.onlythisfileentity=r),""!=u&&(d.onlythesetableentities=u),d.always_keep="undefined"!=typeof n.always_keep?n.always_keep:0,delete n.always_keep,d.incremental="undefined"!=typeof n.incremental?n.incremental:0,delete n.incremental,!jQuery(".updraft_requeststart").length){var s=jQuery('<div class="updraft_requeststart" />').html('<span class="spinner"></span>'+updraftlion.requeststart);s.data("remove",!1),setTimeout(function(){s.data("remove",!0)},3e3),setTimeout(function(){s.remove()},75e3),jQuery("#updraft_activejobsrow").before(s)}updraft_activejobslist_backupnownonce_only=1,updraft_send_command("backupnow",d,function(t){return t.hasOwnProperty("error")?(jQuery(".updraft_requeststart").remove(),void alert(t.error)):(jQuery("#updraft_backup_started").html(t.m),t.hasOwnProperty("nonce")&&(updraft_backupnow_nonce=t.nonce,console.log("UpdraftPlus: ID of started job: "+updraft_backupnow_nonce)),void setTimeout(function(){updraft_activejobs_update(!0)},500))})}var onlythesefileentities=backupnow_whichfiles_checked("");""==onlythesefileentities?jQuery("#backupnow_includefiles_moreoptions").show():jQuery("#backupnow_includefiles_moreoptions").hide();var impossible_increment_entities,updraft_restore_stage=1,lastlog_lastmessage="",lastlog_lastdata="",lastlog_jobs="",updraft_activejobs_nextupdate=(new Date).getTime()+1e3,updraft_page_is_visible=1,updraft_console_focussed_tab=updraftlion.tab,updraft_settings_form_changed=!1;window.onbeforeunload=function(t){if(updraft_settings_form_changed)return updraftlion.unsavedsettings},"undefined"!=typeof document.hidden&&document.addEventListener("visibilitychange",function(){updraft_check_page_visibility(0)},!1),updraft_check_page_visibility(1);var updraft_poplog_log_nonce,updraft_poplog_log_pointer=0,updraft_poplog_lastscroll=-1,updraft_last_forced_jobid=-1,updraft_last_forced_resumption=-1,updraft_last_forced_when=-1,updraft_backupnow_nonce="",updraft_activejobslist_backupnownonce_only=0,updraft_inpage_hasbegun=0,updraft_activejobs_update_timer,updraft_aborted_jobs=[],updraft_clone_jobs=[],updraft_backups_selection={};!function(t){updraft_backups_selection.toggle=function(e){var a=t(e);a.is(".backuprowselected")?this.deselect(e):this.select(e)},updraft_backups_selection.select=function(e){t(e).addClass("backuprowselected"),t(e).find(".backup-select input").prop("checked",!0),this.checkSelectionStatus()},updraft_backups_selection.deselect=function(e){t(e).removeClass("backuprowselected"),t(e).find(".backup-select input").prop("checked",!1),this.checkSelectionStatus()},updraft_backups_selection.selectAll=function(){t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").each(function(t,e){updraft_backups_selection.select(e)})},updraft_backups_selection.deselectAll=function(){t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").each(function(t,e){updraft_backups_selection.deselect(e)})},updraft_backups_selection.checkSelectionStatus=function(){var e=t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").length,a=t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").length;a>0?(t("#ud_massactions").addClass("active"),t(".js--deselect-all-backups, .js--delete-selected-backups").prop("disabled",!1)):(t("#ud_massactions").removeClass("active"),t(".js--deselect-all-backups, .js--delete-selected-backups").prop("disabled",!0)),e===a?t("#cb-select-all").prop("checked",!0):t("#cb-select-all").prop("checked",!1),e?t("#ud_massactions").show():t("#ud_massactions").hide()}}(jQuery);var updraftplus_activejobs_list_fatal_error_alert=!0,updraft_historytimer=0,calculated_diskspace=0,updraft_historytimer_notbefore=0,updraft_history_lastchecksum=!1,updraft_interval_week_val=!1,updraft_interval_month_val=!1;"undefined"!=typeof updraft_siteurl&&setInterval(function(){jQuery.get(updraft_siteurl+"/wp-cron.php")},21e4);var lastlog_lastmessage="";jQuery(document).ajaxError(function(t,e,a,r){if(null!=r&&""!=r&&null!=e.responseText&&""!=e.responseText&&(console.log("Error caught by UpdraftPlus ajaxError handler (follows) for "+a.url),console.log(r),0==a.url.search(ajaxurl)))if(a.url.search("subaction=downloadstatus")>=0){var n=a.url.match(/timestamp=\d+/),o=a.url.match(/type=[a-z]+/),u=a.url.match(/findex=\d+/),d=a.url.match(/base=[a-z_]+/);if(u=u instanceof Array?parseInt(u[0].substr(7)):0,o=o instanceof Array?o[0].substr(5):"",d=d instanceof Array?d[0].substr(5):"",n=n instanceof Array?parseInt(n[0].substr(10)):0,""!=d&&""!=o&&n>0){var s=d+n+"_"+o+"_"+u;jQuery("."+s+" .raw").html("<strong>"+updraftlion.error+"</strong> "+updraftlion.servererrorcode)}}else a.url.search("subaction=restore_alldownloaded")>=0&&jQuery("#updraft-restore-modal-stage2a").append("<br><strong>"+updraftlion.error+"</strong> "+updraftlion.servererrorcode+": "+r)}),jQuery(document).ready(function(t){function e(e){t('.expertmode .advanced_settings_container .advanced_tools:not(".'+e+'")').hide(),t(".expertmode .advanced_settings_container .advanced_tools."+e).fadeIn("slow"),t(".expertmode .advanced_settings_container .advanced_tools_button:not(#"+e+")").removeClass("active"),t(".expertmode .advanced_settings_container .advanced_tools_button#"+e).addClass("active")}function a(e){t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html("").hide(),updraft_send_command("updraftplus_com_login_submit",{data:e},function(e){e.hasOwnProperty("success")?t("#updraft-navtab-addons-content .wrap .updraftplus_com_login").submit():e.hasOwnProperty("error")&&t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html(e.message).show()})}function r(e){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .updraftplus_spinner.spinner").addClass("visible"),updraft_send_command("process_updraftplus_clone_login",e,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html(e.message).show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").show(),void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val("");e.hasOwnProperty("tfa_enabled")&&1==e.tfa_enabled&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 input#temporary_clone_options_two_factor_code").focus()),"authenticated"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 input#temporary_clone_options_two_factor_code").val(""),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").html(e.html))}catch(a){console.log(a)}})}function n(e){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .updraftplus_spinner.spinner").addClass("visible"),updraft_send_command("process_updraftplus_clone_login",e,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html(e.message).show();"authenticated"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").html(e.html))}catch(a){console.log(a)}})}function o(t,e,a,r){var n={updraftplus_clone_backup:1,backupnow_nodb:0,backupnow_nofiles:0,backupnow_nocloud:0,backupnow_label:"UpdraftPlus Clone",extradata:"",onlythisfileentity:"plugins,themes,uploads,others",clone_id:t,secret_token:e,clone_url:a,key:r};updraft_activejobslist_backupnownonce_only=1,updraft_send_command("backupnow",n,function(t){jQuery("#updraft_clone_progress .updraftplus_spinner.spinner").removeClass("visible"),jQuery("#updraft_backup_started").html(t.m),t.hasOwnProperty("nonce")&&(updraft_backupnow_nonce=t.nonce,updraft_clone_jobs.push(updraft_backupnow_nonce),updraft_inpage_success_callback=function(){jQuery("#updraft_clone_activejobsrow").hide(),updraft_aborted_jobs[updraft_backupnow_nonce]?jQuery("#updraft_clone_progress").html(updraftlion.clone_backup_aborted):jQuery("#updraft_clone_progress").html(updraftlion.clone_backup_complete)},console.log("UpdraftPlus: ID of started job: "+updraft_backupnow_nonce)),updraft_activejobs_update(!0)})}function u(t){var e=Handlebars.compile(updraftlion.remote_storage_templates[t]),a=updraftlion.remote_storage_options[t]["default"];a.instance_id="s-"+d(32),a.instance_enabled=1;var r=e(a);jQuery(r).hide().insertAfter("."+t+"_add_instance_container:first").show("slow")}function d(t){for(var e="",a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=0;r<t;r++)e+=a.charAt(Math.floor(Math.random()*a.length));return e}function s(t){var e=!!jQuery("#updraftcentral_mothership_other").is(":checked");e?(jQuery("#updraftcentral_keycreate_mothership").prop("disabled",!1),t?jQuery("#updraftcentral_keycreate_mothership_firewalled_container").show():(jQuery(".updraftcentral_wizard_self_hosted_stage2").show(),jQuery("#updraftcentral_keycreate_mothership_firewalled_container").slideDown(),jQuery("#updraftcentral_keycreate_mothership").focus())):(jQuery("#updraftcentral_keycreate_mothership").prop("disabled",!0),t||(jQuery(".updraftcentral_wizard_self_hosted_stage2").hide(),i()))}function i(){jQuery("#updraftcentral_wizard_stage1_error").text("");var t="";if(jQuery("#updraftcentral_mothership_updraftpluscom").is(":checked"))jQuery(".updraftcentral_keycreate_description").hide(),t="updraftplus.com";else if(jQuery("#updraftcentral_mothership_other").is(":checked")){jQuery(".updraftcentral_keycreate_description").show();var e=jQuery("#updraftcentral_keycreate_mothership").val();if(""==e)return void jQuery("#updraftcentral_wizard_stage1_error").text(updraftlion.updraftcentral_wizard_empty_url);try{var a=new URL(e);t=a.hostname}catch(r){if("undefined"==typeof URL&&(t=jQuery("<a>").prop("href",e).prop("hostname")),!t||"undefined"!=typeof URL)return void jQuery("#updraftcentral_wizard_stage1_error").text(updraftlion.updraftcentral_wizard_invalid_url)}}jQuery("#updraftcentral_keycreate_description").val(t),jQuery(".updraftcentral_wizard_stage1").hide(),jQuery(".updraftcentral_wizard_stage2").show()}function l(e,a,r,n){jQuery("#updraft-delete-modal").dialog("close");var o=e,u=a,d=r,s=n,i=jQuery("#updraft_delete_timestamp").val().split(","),p=jQuery("#updraft_delete_form").serializeArray(),_={};t.each(p,function(){void 0!==_[this.name]?(_[this.name].push||(_[this.name]=[_[this.name]]),_[this.name].push(this.value||"")):_[this.name]=this.value||""}),_.delete_remote?jQuery("#updraft-delete-waitwarning").find(".updraft-deleting-remote").show():jQuery("#updraft-delete-waitwarning").find(".updraft-deleting-remote").hide(),jQuery("#updraft-delete-waitwarning").slideDown().addClass("active"),_.remote_delete_limit=updraftlion.remote_delete_limit,delete _.action,delete _.subaction,delete _.nonce,updraft_send_command("deleteset",_,function(t){if(!t.hasOwnProperty("result")||null==t.result)return void jQuery("#updraft-delete-waitwarning").slideUp();if("error"==t.result)jQuery("#updraft-delete-waitwarning").slideUp(),alert(updraftlion.error+" "+t.message);else if("continue"==t.result){o=o+t.backup_local+t.backup_remote,u+=t.backup_local,d+=t.backup_remote,s+=t.backup_sets;for(var e=t.deleted_timestamps.split(","),a=0;a<e.length;a++){var r=e[a];jQuery("#updraft-navtab-backups-content .updraft_existing_backups_row_"+r).slideUp().remove()}jQuery("#updraft_delete_timestamp").val(t.timestamps),jQuery("#updraft-deleted-files-total").text(o+" "+updraftlion.remote_files_deleted),l(o,u,d,s)}else if("success"==t.result){setTimeout(function(){jQuery("#updraft-deleted-files-total").text(""),jQuery("#updraft-delete-waitwarning").slideUp()},500),update_backupnow_modal(t),t.hasOwnProperty("backupnow_file_entities")&&(impossible_increment_entities=t.backupnow_file_entities),t.hasOwnProperty("count_backups")&&jQuery("#updraft-existing-backups-heading").html(updraftlion.existing_backups+' <span class="updraft_existing_backups_count">'+t.count_backups+"</span>");for(var a=0;a<i.length;a++){var r=i[a];jQuery("#updraft-navtab-backups-content .updraft_existing_backups_row_"+r).slideUp().remove()}updraft_backups_selection.checkSelectionStatus(),updraft_history_lastchecksum=!1,u+=t.backup_local,d+=t.backup_remote,s+=t.backup_sets,setTimeout(function(){alert(t.set_message+" "+s+"\n"+t.local_message+" "+u+"\n"+t.remote_message+" "+d)},900)}})}function p(t,e){jQuery("#updraft-navtab-settings-content #updraft_include_"+t).is(":checked")?e?jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").show():jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").slideDown():e?jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude").hide():jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").slideUp()}function _(){var t=new plupload.Uploader(updraft_plupload_config);t.bind("Init",function(t){var e=jQuery("#plupload-upload-ui");t.features.dragdrop?(e.addClass("drag-drop"),jQuery("#drag-drop-area").bind("dragover.wp-uploader",function(){e.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){e.removeClass("drag-over")})):(e.removeClass("drag-drop"),jQuery("#drag-drop-area").unbind(".wp-uploader"))}),t.init(),t.bind("FilesAdded",function(e,a){plupload.each(a,function(e){if(!/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-[\-a-z]+([0-9]+?)?(\.(zip|gz|gz\.crypt))?$/i.test(e.name)&&!/^log\.([0-9a-f]{12})\.txt$/.test(e.name)){for(var a=!1,r=0;r<updraft_accept_archivename.length;r++)if(updraft_accept_archivename[r].test(e.name))var a=!0;if(!a)return/\.(zip|tar|tar\.gz|tar\.bz2)$/i.test(e.name)||/\.sql(\.gz)?$/i.test(e.name)?(jQuery("#updraft-message-modal-innards").html("<p><strong>"+e.name+"</strong></p> "+updraftlion.notarchive2),jQuery("#updraft-message-modal").dialog("open")):alert(e.name+": "+updraftlion.notarchive),void t.removeFile(e)}jQuery("#filelist").append('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(0)+"</span>/"+plupload.formatSize(e.size)+') <div class="fileprogress"></div></div>')}),e.refresh(),e.start()}),t.bind("UploadProgress",function(t,e){jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"),jQuery("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100))),e.size==e.loaded&&(jQuery("#"+e.id).html('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(parseInt(e.size*e.percent/100))+"</span>/"+plupload.formatSize(e.size)+") - "+updraftlion.complete+"</div>"),jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"))}),t.bind("Error",function(t,e){console.log(e);var a;a="-200"==e.code?"\n"+updraftlion.makesure2:updraftlion.makesure;var r=updraftlion.uploaderr+" (code "+e.code+") : "+e.message;e.hasOwnProperty("status")&&e.status&&(r+=" ("+updraftlion.http_code+" "+e.status+")"),e.hasOwnProperty("response")&&(console.log("UpdraftPlus: plupload error: "+e.response),e.response.length<100&&(r+=" "+updraftlion.error+" "+e.response+"\n")),r+=" "+a,alert(r)}),t.bind("FileUploaded",function(t,e,a){if("200"==a.status)try{resp=ud_parse_json(a.response),resp.e?alert(updraftlion.uploaderror+" "+resp.e):resp.dm?(alert(resp.dm),updraft_updatehistory(1,0)):resp.m?updraft_updatehistory(1,0):alert("Unknown server response: "+a.response)}catch(r){console.log(a),alert(updraftlion.jsonnotunderstood)}else alert("Unknown server response status: "+a.code),console.log(a)})}function c(t){params={uri:jQuery("#updraftplus_httpget_uri").val()},params.curl=t,updraft_send_command("httpget",params,function(t){t.e&&alert(t.e),t.r?jQuery("#updraftplus_httpget_results").html("<pre>"+t.r+"</pre>"):console.log(t)},{type:"GET"})}function f(t,e,a){updraft_restore_setoptions(t),jQuery("#updraft_restore_timestamp").val(e),jQuery(".updraft_restore_date").html(a),updraft_restore_stage=1,jQuery("#updraft-restore-modal").dialog("open"),jQuery("#updraft-restore-modal-stage1").show(),jQuery("#updraft-restore-modal-stage2").hide(),jQuery("#updraft-restore-modal-stage2a").html(""),updraft_activejobs_update(!0)}function m(t){t=t.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var e="[\\?&]"+t+"=([^&#]*)",a=new RegExp(e),r=a.exec(window.location.href);return null==r?"":decodeURIComponent(r[1].replace(/\+/g," "))}function g(e,a,r){jQuery("#updraft_upload_timestamp").val(e),jQuery("#updraft_upload_nonce").val(a);var n=r.split(",");jQuery(".updraft_remote_storage_destination").each(function(e){var a=jQuery(this).val();if(jQuery.inArray(a,n)==-1){jQuery(this).prop("checked",!1),jQuery(this).prop("disabled",!0);var r=t(this).prop("labels");jQuery(r).append(" "+updraftlion.already_uploaded)}}),jQuery("#updraft-upload-modal").dialog("open")}if(t(".expertmode .advanced_settings_container .advanced_tools_button").click(function(){e(t(this).attr("id"))}),jQuery.ui&&jQuery.ui.dialog&&jQuery.ui.dialog.prototype._allowInteraction){var h=jQuery.ui.dialog.prototype._allowInteraction;jQuery.ui.dialog.prototype._allowInteraction=function(t){return!!jQuery(t.target).closest(".select2-dropdown").length||h.apply(this,arguments)}}t("#updraftcentral_keys").on("click","a.updraftcentral_keys_show",function(e){e.preventDefault(),t(this).remove(),t("#updraftcentral_keys_table").slideDown()}),t("#updraftcentral_keycreate_altmethod_moreinfo_get").click(function(e){e.preventDefault(),t(this).remove(),t("#updraftcentral_keycreate_altmethod_moreinfo").slideDown()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("change keyup paste",".updraft_webdav_settings",function(){var e=[];t(".updraft_webdav_settings").each(function(a,r){var n=t(r).attr("id");if(n&&"updraft_webdav_"==n.substring(0,15)){var o=n.substring(15);id_split=o.split("_"),o=id_split[0];var u=id_split[1];"undefined"==typeof e[u]&&(e[u]=[]),e[u][o]=this.value}});var a="",r="@",n="/",o=":",u=":";for(var d in e)(e[d].host.indexOf("@")>=0||""===e[d].host)&&(r=""),e[d].host.indexOf("/")>=0?t("#updraft_webdav_host_error").show():t("#updraft_webdav_host_error").hide(),0!=e[d].path.indexOf("/")&&""!==e[d].path||(n=""),""!==e[d].user&&""!==e[d].pass||(o=""),""!==e[d].host&&""!==e[d].port||(u=""),a=e[d].webdav+e[d].user+o+e[d].pass+r+encodeURIComponent(e[d].host)+u+e[d].port+n+e[d].path,t("#updraft_webdav_url_"+d).val(a)}),t("#updraft-navtab-backups-content").on("click",".js--delete-selected-backups",function(t){t.preventDefault(),updraft_deleteallselected()}),t("#updraft-navtab-backups-content").on("click",".updraft_existing_backups .backup-select input",function(e){updraft_backups_selection.toggle(t(this).closest(".updraft_existing_backups_row"))}),t("#updraft-navtab-backups-content").on("click","#cb-select-all",function(e){t(this).is(":checked")?updraft_backups_selection.selectAll():updraft_backups_selection.deselectAll()}),t("#updraft-navtab-backups-content").on("click",".js--select-all-backups",function(t){updraft_backups_selection.selectAll()}),t("#updraft-navtab-backups-content").on("click",".js--deselect-all-backups",function(t){updraft_backups_selection.deselectAll()}),t("#updraft-navtab-backups-content").on("click",".updraft_existing_backups .updraft_existing_backups_row",function(t){(t.ctrlKey||t.metaKey)&&updraft_backups_selection.toggle(this)}),updraft_backups_selection.checkSelectionStatus(),t("#updraft-navtab-addons-content .wrap").on("click",".updraftplus_com_login .ud_connectsubmit",function(e){e.preventDefault();var r=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_email").val(),n=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_password").val(),o=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_auto_updates").is(":checked")?1:0,u={email:r,password:n,auto_update:o};a(u)}),t("#updraft-navtab-addons-content .wrap").on("keydown",".updraftplus_com_login input",function(e){if(13==e.which){e.preventDefault();var r=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_email").val(),n=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_password").val(),o=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_auto_updates").is(":checked")?1:0,u={email:r,password:n,auto_update:o};a(u)}}),t("#updraft-navtab-migrate-content").on("click",".updraftclone_show_step_1",function(e){t(".updraftplus-clone").addClass("opened"),t(".updraftclone_show_step_1").hide(),t(".updraft_migrate_widget_temporary_clone_stage1").show(),t(".updraft_migrate_widget_temporary_clone_stage0").hide()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_temporary_clone_show_stage0",function(e){e.preventDefault(),t(".updraft_migrate_widget_temporary_clone_stage0").toggle()}),setup_migrate_tabs(),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .close",function(e){t(".updraft_migrate_intro").show(),t(this).closest(".updraft_migrate_widget_module_content").hide()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_add_site--trigger",function(e){e.preventDefault(),t(".updraft_migrate_add_site").toggle()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .updraftplus_com_login .ud_connectsubmit",function(e){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_email").val(),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_password").val(),o=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val(),u=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .temporary_clone_terms_and_conditions").is(":checked")?1:0,d={form_data:{email:a,password:n,two_factor_code:o,consent:u}};a&&n?r(d):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.username_password_required).show()}),t("#updraft-navtab-migrate-content").on("keydown",".updraft_migrate_widget_module_content .updraftplus_com_login input",function(e){if(13==e.which){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_email").val(),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_password").val(),o=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val(),u=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .temporary_clone_terms_and_conditions").is(":checked")?1:0,d={form_data:{email:a,password:n,two_factor_code:o,consent:u}};a&&n?r(d):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.username_password_required).show()}}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .updraftplus_com_key .ud_key_connectsubmit",function(e){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key #temporary_clone_options_key").val(),r=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .temporary_clone_terms_and_conditions").is(":checked")?1:0,o={form_data:{clone_key:a,consent:r}};a?n(o):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.clone_key_required).show()}),t("#updraft-navtab-migrate-content").on("keydown",".updraft_migrate_widget_module_content .updraftplus_com_key input",function(e){if(13==e.which){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key #temporary_clone_options_key").val(),r=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .temporary_clone_terms_and_conditions").is(":checked")?1:0,o={form_data:{clone_key:a,consent:r}};a?n(o):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.clone_key_required).show()}}),t("#updraft-navtab-migrate-content").on("change",".updraft_migrate_widget_module_content #updraftplus_clone_php_options",function(){
3
+ var e=t(this).data("php_version"),a=t(this).val();a<e?t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.clone_version_warning):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html("")}),t("#updraft-navtab-migrate-content").on("change",".updraft_migrate_widget_module_content #updraftplus_clone_wp_options",function(){var e=t(this).data("wp_version"),a=t(this).val();a<e?t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.clone_version_warning):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html("")}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content #updraft_migrate_createclone",function(e){e.preventDefault(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!0),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(""),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_spinner.spinner").addClass("visible");var a=t(this).data("clone_id"),r=t(this).data("secret_token"),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_php_options").val(),u=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_wp_options").val(),d=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_region_options").val(),s=t(".updraftplus_clone_admin_login_options").is(":checked"),i={form_data:{clone_id:a,secret_token:r,install_info:{php_version:n,wp_version:u,region:d,admin_only:s}}};updraft_send_command("process_updraftplus_clone_create",i,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!1),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.error+" "+e.message).show();"success"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage3").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage3").html(e.html),jQuery("#updraft_clone_progress .updraftplus_spinner.spinner").addClass("visible"),o(a,r,e.url,e.key))}catch(n){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!1),console.log("Error when processing the response of process_updraftplus_clone_create (as follows)"),console.log(n)}})}),t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod a.updraft_add_instance",function(e){e.preventDefault(),updraft_settings_form_changed=!0;var a=t(this).data("method");u(a)}),t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod a.updraft_delete_instance",function(e){e.preventDefault(),updraft_settings_form_changed=!0;var a=t(this).data("method"),r=t(this).data("instance_id");1===t("."+a+"_updraft_remote_storage_border").length&&u(a),t("."+a+"-"+r).hide("slow",function(){t(this).remove()})}),t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod .updraft_edit_label_instance",function(e){t(this).find("span").hide(),t(this).attr("contentEditable",!0).focus()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("keyup",".updraftplusmethod .updraft_edit_label_instance",function(e){var a=jQuery(this).data("method"),r=jQuery(this).data("instance_id"),n=jQuery(this).text();t("#updraft_"+a+"_instance_label_"+r).val(n)}),t("#updraft-navtab-settings-content #remote-storage-holder").on("blur",".updraftplusmethod .updraft_edit_label_instance",function(e){t(this).attr("contentEditable",!1),t(this).find("span").show()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("keypress",".updraftplusmethod .updraft_edit_label_instance",function(e){13===e.which&&(t(this).attr("contentEditable",!1),t(this).find("span").show(),t(this).blur())}),jQuery("#updraft-navtab-settings-content #remote-storage-holder").on("change","input[class='updraft_instance_toggle']",function(){updraft_settings_form_changed=!0,jQuery(this).is(":checked")?jQuery(this).siblings("label").html(updraftlion.instance_enabled):jQuery(this).siblings("label").html(updraftlion.instance_disabled)}),jQuery("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod button.updraft-test-button",function(){var e=jQuery(this).data("method"),a=jQuery(this).data("instance_id");updraft_remote_storage_test(e,function(r,n,o){return"sftp"==e&&(o.hasOwnProperty("scp")&&o.scp?alert(updraftlion.settings_test_result.replace("%s","SCP")+" "+r.output):alert(updraftlion.settings_test_result.replace("%s","SFTP")+" "+r.output),r.hasOwnProperty("data")&&r.data&&r.data.hasOwnProperty("valid_md5_fingerprint")&&r.data.valid_md5_fingerprint&&t("#updraft_sftp_fingerprint_"+a).val(r.data.valid_md5_fingerprint),!0)},a)}),t("#updraft-navtab-settings-content select.updraft_interval, #updraft-navtab-settings-content select.updraft_interval_database").change(function(){updraft_check_same_times()}),t("#backupnow_includefiles_showmoreoptions").click(function(e){e.preventDefault(),t("#backupnow_includefiles_moreoptions").toggle()}),t("#backupnow_database_showmoreoptions").click(function(e){e.preventDefault(),t("#backupnow_database_moreoptions").toggle()}),t("#updraft-navtab-backups-content").on("click","a.updraft_diskspaceused_update",function(t){t.preventDefault(),updraftplus_diskspace()}),t(".advanced_settings_content a.updraft_diskspaceused_update").click(function(t){t.preventDefault(),jQuery(".advanced_settings_content .updraft_diskspaceused").html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:"updraft"},function(t){jQuery(".advanced_settings_content .updraft_diskspaceused").html(t.output)},{type:"GET"})}),t("#updraft-navtab-backups-content a.updraft_uploader_toggle").click(function(e){e.preventDefault(),t("#updraft-plupload-modal").slideToggle()}),t("#updraft-navtab-backups-content a.updraft_rescan_local").click(function(t){t.preventDefault(),updraft_updatehistory(1,0)}),t("#updraft-navtab-backups-content a.updraft_rescan_remote").click(function(t){t.preventDefault(),updraft_updatehistory(1,1)}),t("#updraftplus-remote-rescan-debug").click(function(t){t.preventDefault(),updraft_updatehistory(1,1,1)}),jQuery("#updraftcentral_keys").on("click",'input[type="radio"]',function(){s(!1)}),s(!0),jQuery("#updraftcentral_keys").on("click","#updraftcentral_view_log",function(t){t.preventDefault(),jQuery("#updraftcentral_view_log_container").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.fetching+"</div>"});try{updraft_send_command("updraftcentral_get_log",null,function(t){jQuery("#updraftcentral_view_log_container").unblock(),t.hasOwnProperty("log_contents")?jQuery("#updraftcentral_view_log_contents").html('<div style="border:1px solid;padding: 2px;max-height: 400px; overflow-y:scroll;">'+t.log_contents+"</div>"):console.response(resp)},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_view_log_container").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})}catch(e){jQuery("#updraft_central_key").html(),console.log(e)}}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_wizard_go",function(t){jQuery("#updraftcentral_wizard_go").hide(),jQuery(".updraftcentral_wizard_success").remove(),jQuery(".create_key_container").show()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_stage1_go",function(t){t.preventDefault(),jQuery(".updraftcentral_wizard_stage2").hide(),jQuery(".updraftcentral_wizard_stage1").show()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_stage2_go",function(t){t.preventDefault(),i()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_keycreate_go",function(t){t.preventDefault();var e=!!jQuery("#updraftcentral_mothership_other").is(":checked"),a=jQuery("#updraftcentral_keycreate_description").val(),r=jQuery("#updraftcentral_keycreate_keysize").val(),n="__updraftpluscom";if(data={key_description:a,key_size:r},e&&(n=jQuery("#updraftcentral_keycreate_mothership").val(),"http"!=n.substring(0,4)))return void alert(updraftlion.enter_mothership_url);data.mothership_firewalled=jQuery("#updraftcentral_keycreate_mothership_firewalled").is(":checked")?1:0,data.where_send=n,jQuery(".create_key_container").hide(),jQuery(".updraftcentral_wizard_stage1").show(),jQuery(".updraftcentral_wizard_stage2").hide(),jQuery("#updraftcentral_keys").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.creating_please_allow+"</div>"});try{updraft_send_command("updraftcentral_create_key",data,function(t){jQuery("#updraftcentral_keys").unblock();try{if(t.hasOwnProperty("error"))return alert(t.error),void console.log(t);alert(t.r),t.hasOwnProperty("bundle")&&t.hasOwnProperty("keys_guide")?(jQuery("#updraftcentral_keys_content").html(t.keys_guide),jQuery("#updraftcentral_keys_content").append('<div class="updraftcentral_wizard_success">'+t.r+'<br><textarea onclick="this.select();" style="width:620px; height:165px; word-wrap:break-word; border: 1px solid #aaa; border-radius: 3px; padding:4px;">'+t.bundle+"</textarea></div>")):console.log(t),t.hasOwnProperty("keys_table")&&jQuery("#updraftcentral_keys_content").append(t.keys_table),jQuery("#updraftcentral_wizard_go").show()}catch(e){alert(updraftlion.unexpectedresponse+" "+response),console.log(e)}},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_keys").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})}catch(o){jQuery("#updraft_central_key").html(),console.log(o)}}),jQuery("#updraftcentral_keys").on("click",".updraftcentral_key_delete",function(t){t.preventDefault();var e=jQuery(this).data("key_id");return"undefined"==typeof e?void console.log("UpdraftPlus: .updraftcentral_key_delete clicked, but no key ID found"):(jQuery("#updraftcentral_keys").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.deleting+"</div>"}),void updraft_send_command("updraftcentral_delete_key",{key_id:e},function(t){jQuery("#updraftcentral_keys").unblock(),t.hasOwnProperty("keys_table")&&jQuery("#updraftcentral_keys_content").html(t.keys_table)},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_keys").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}}))}),jQuery("#updraft_reset_sid").click(function(t){t.preventDefault(),updraft_send_command("reset_site_id",null,function(t){jQuery("#updraft_show_sid").html(t)},{json_parse:!1})}),jQuery("#updraft-navtab-settings-content form input:not('.udignorechange'), #updraft-navtab-settings-content form select").change(function(t){updraft_settings_form_changed=!0}),jQuery("#updraft-navtab-settings-content form input[type='submit']").click(function(t){updraft_settings_form_changed=!1});var y=180;jQuery(".updraft-bigbutton").each(function(t,e){var a=jQuery(e).width();a>y&&(y=a)}),y>180&&jQuery(".updraft-bigbutton").width(y),jQuery("#updraft-navtab-backups-content").length&&setInterval(function(){updraft_activejobs_update(!1)},1250),setTimeout(function(){jQuery("#setting-error-settings_updated").slideUp()},5e3),jQuery("#updraft_restore_db").change(function(){jQuery("#updraft_restore_db").is(":checked")&&1==jQuery(this).data("encrypted")?jQuery("#updraft_restorer_dboptions").slideDown():jQuery("#updraft_restorer_dboptions").slideUp()}),updraft_check_same_times();var b={};b[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-message-modal").dialog({autoOpen:!1,height:350,width:520,modal:!0,buttons:b});var v={};v[updraftlion.deletebutton]=function(){l(0,0,0,0)},v[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-delete-modal").dialog({autoOpen:!1,height:322,width:430,modal:!0,buttons:v});var w={};w[updraftlion.restore]=function(){var t=0,e=[],a=0,r=jQuery("#updraft_restore_meta_foreign").val();if(jQuery('input[name="updraft_restore[]"]').each(function(n,o){if(jQuery(o).is(":checked")&&!jQuery(o).is(":disabled")){t=1;var u=jQuery(o).data("howmany"),d=jQuery(o).val();if((1==r||2==r&&"db"!=d)&&("wpcore"!=d&&(u=jQuery("#updraft_restore_form #updraft_restore_wpcore").data("howmany")),d="wpcore"),"wpcore"!=d||0==a){var s=[d,u];e.push(s),"wpcore"==d&&(a=1)}}}),1==t){if(1==updraft_restore_stage){jQuery("#updraft-restore-modal-stage1").slideUp("slow"),jQuery("#updraft-restore-modal-stage2").show(),updraft_restore_stage=2;var n=jQuery(".updraft_restore_date").first().text(),o=e,u=jQuery("#updraft_restore_timestamp").val();try{updraft_send_command("whichdownloadsneeded",{downloads:e,timestamp:u},function(t){if(t.hasOwnProperty("downloads")&&(console.log("UpdraftPlus: items which still require downloading follow"),o=t.downloads,console.log(o)),0==o.length)updraft_restorer_checkstage2(0);else for(var e=0;e<o.length;e++)updraft_downloader("udrestoredlstatus_",u,o[e][0],"#ud_downloadstatus2",o[e][1],n,!1)},{alert_on_error:!1,error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft-restore-modal-stage2a").html('<p style="color:red;">'+r.fatal_error_message+"</p>");else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft-restore-modal-stage2a").html('<p style="color:red; margin: 5px;">'+n+"</p>"),console.log(n),console.log(t)}}})}catch(d){console.log("UpdraftPlus: error (follows) when looking for items needing downloading"),console.log(d),alert(updraftlion.jsonnotunderstood)}}else if(2==updraft_restore_stage)updraft_restorer_checkstage2(1);else if(3==updraft_restore_stage){var s=1;if(jQuery("#updraft_restoreoptions_ui input.required").each(function(t){if(0!=s){var e=jQuery(this).val();if(""==e)alert(updraftlion.pleasefillinrequired),s=0;else if(""!=jQuery(this).attr("pattern")){var a=jQuery(this).attr("pattern"),r=new RegExp(a,"g");r.test(e)||(alert(jQuery(this).data("invalidpattern")),s=0)}}}),!s)return;var i=jQuery("#updraft_restoreoptions_ui select, #updraft_restoreoptions_ui input").serialize();console.log("Restore options: "+i),jQuery("#updraft_restorer_restore_options").val(i),jQuery("#updraft-restore-modal-stage2a").html(updraftlion.restore_proceeding),jQuery("#updraft_restore_form").submit(),updraft_restore_stage=4}}else alert(updraftlion.youdidnotselectany)},w[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-restore-modal").dialog({autoOpen:!1,height:505,width:590,modal:!0,buttons:w}),jQuery("#updraft-iframe-modal").dialog({autoOpen:!1,height:500,width:780,modal:!0}),jQuery("#updraft-backupnow-inpage-modal").dialog({autoOpen:!1,height:380,width:580,modal:!0});var k={};k[updraftlion.backupnow]=function(){var t=jQuery("#backupnow_includedb").is(":checked")?0:1,e=jQuery("#backupnow_includefiles").is(":checked")?0:1,a=jQuery("#backupnow_includecloud").is(":checked")?0:1,r=backupnow_whichtables_checked(""),n=jQuery("#always_keep").is(":checked")?1:0,o="incremental"==jQuery("#updraft-backupnow-modal").data("backup-type")?1:0;if(""==r&&0==t)return alert(updraftlion.notableschosen),void jQuery("#backupnow_includefiles_moreoptions").show();"boolean"==typeof r&&(r=null);var u=backupnow_whichfiles_checked("");return""==u&&0==e?(alert(updraftlion.nofileschosen),void jQuery("#backupnow_includefiles_moreoptions").show()):t&&e?void alert(updraftlion.excludedeverything):(jQuery(this).dialog("close"),setTimeout(function(){jQuery("#updraft_lastlogmessagerow").fadeOut("slow",function(){jQuery(this).fadeIn("slow")})},1700),void updraft_backupnow_go(t,e,a,u,{always_keep:n,incremental:o},jQuery("#backupnow_label").val(),r))},k[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-backupnow-modal").dialog({autoOpen:!1,height:472,width:610,modal:!0,buttons:k,create:function(){t(this).closest(".ui-dialog").find(".ui-dialog-buttonpane .ui-button:first").addClass("js-tour-backup-now-button")}}),jQuery("#updraft-poplog").dialog({autoOpen:!1,height:600,width:"75%",modal:!0}),jQuery("#updraft-navtab-settings-content .enableexpertmode").click(function(){return jQuery("#updraft-navtab-settings-content .expertmode").fadeIn(),jQuery("#updraft-navtab-settings-content .enableexpertmode").off("click"),!1}),jQuery("#updraft-navtab-settings-content .backupdirrow").on("click","a.updraft_backup_dir_reset",function(){return jQuery("#updraft_dir").val("updraft"),!1}),jQuery("#updraft-navtab-settings-content .updraft_include_entity").click(function(){var t=jQuery(this).data("toggle_exclude_field");t&&p(t,!1)}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_delete",function(t){if(t.preventDefault(),confirm(updraftlion.exclude_rule_remove_conformation_msg)){var e=jQuery(this).data("include-backup-file");jQuery.when(jQuery(this).closest(".updraft_exclude_entity_wrapper").remove()).then(updraft_exclude_entity_update(e))}}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_edit",function(t){t.preventDefault();var e=jQuery(this).hide().closest(".updraft_exclude_entity_wrapper"),a=e.find("input");a.removeProp("readonly").focus();var r=a.val();a.val(""),a.val(r),e.find(".updraft_exclude_entity_update").addClass("is-active").show()}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_update",function(t){t.preventDefault();var e=jQuery(this).closest(".updraft_exclude_entity_wrapper"),a=jQuery(this).data("include-backup-file"),r=jQuery.trim(e.find("input").val()),n=!1;r==e.find("input").data("val")?n=!0:updraft_is_unique_exclude_rule(r,a)&&(n=!0),n&&(jQuery(this).hide().removeClass("is-active"),jQuery.when(e.find("input").prop("readonly","readonly").data("val",r)).then(function(){e.find(".updraft_exclude_entity_edit").show(),updraft_exclude_entity_update(a)}))}),jQuery("#updraft_exclude_modal").dialog({autoOpen:!1,modal:!0,width:520,height:"auto",open:function(e,a){t(this).parent().focus()}}),jQuery(".updraft_exclude_container .updraft_add_exclude_item").click(function(t){t.preventDefault();var e=jQuery(this).data("include-backup-file");jQuery("#updraft_exclude_modal_for").val(e),jQuery("#updraft_exclude_modal_path").val(jQuery(this).data("path")),"uploads"==e&&jQuery("#updraft-exclude-file-dir-prefix").html(jQuery("#updraft-exclude-upload-base-dir").val()),jQuery(".updraft-exclude-modal-reset").trigger("click"),jQuery("#updraft_exclude_modal").dialog("open")}),jQuery(".updraft-exclude-link").click(function(t){t.preventDefault();var e=jQuery(this).data("panel");"file-dir"==e&&jQuery("#updraft_exclude_files_folders_jstree").jstree({core:{multiple:!1,data:function(t,e){updraft_send_command("get_jstree_directory_nodes",{entity:"filebrowser",node:t,path:jQuery("#updraft_exclude_modal_path").val(),findex:0,skip_root_node:!0},function(t){t.hasOwnProperty("error")?alert(t.error):e.call(this,t.nodes)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}})},error:function(t){alert(t),console.log(t)}},search:{show_only_matches:!0},plugins:["sort"]}),jQuery("#updraft_exclude_modal_main").slideUp(),jQuery(".updraft-exclude-panel").hide(),jQuery(".updraft-exclude-panel[data-panel="+e+"]").slideDown()}),jQuery(".updraft-exclude-modal-reset").click(function(t){t.preventDefault(),jQuery("#updraft_exclude_files_folders_jstree").jstree("destroy"),jQuery("#updraft_exclude_extension_field").val(""),jQuery("#updraft_exclude_prefix_field").val(""),jQuery(".updraft-exclude-panel").slideUp(),jQuery("#updraft_exclude_modal_main").slideDown()}),jQuery(".updraft-exclude-submit").click(function(){var t=jQuery(this).data("panel"),e="";switch(t){case"file-dir":var a=jQuery("#updraft_exclude_files_folders_jstree").jstree("get_selected");if(0==a.length)return void alert(updraftlion.exclude_select_file_or_folder_msg);var r=a[0],n=jQuery("#updraft_exclude_modal_path").val();r.substr(0,n.length)==n&&(r=r.substr(n.length,r.length)),"/"==r.charAt(0)&&(r=r.substr(1)),"/"==r.charAt(r.length-1)&&(r=r.substr(0,r.length-1)),e=r;break;case"extension":var o=jQuery("#updraft_exclude_extension_field").val();if(""==o)return void alert(updraftlion.exclude_type_ext_msg);if(!o.match(/^[0-9a-zA-Z]+$/))return void alert(updraftlion.exclude_ext_error_msg);e="ext:"+o;break;case"begin-with":var u=jQuery("#updraft_exclude_prefix_field").val();if(""==u)return void alert(updraftlion.exclude_type_prefix_msg);if(!u.match(/^\s*[a-z-_\d,\s]+\s*$/i))return void alert(updraftlion.exclude_prefix_error_msg);e="prefix:"+u;break;default:return}var d=jQuery("#updraft_exclude_modal_for").val();if(updraft_is_unique_exclude_rule(e,d)){var s='<div class="updraft_exclude_entity_wrapper"><input type="text" class="updraft_exclude_entity_field updraft_include_'+d+'_exclude_entity" name="updraft_include_'+d+'_exclude_entity[]" value="'+e+'" data-val="'+e+'" data-include-backup-file="'+d+'" readonly="readonly"><a href="#" class="updraft_exclude_entity_edit dashicons dashicons-edit" data-include-backup-file="'+d+'"></a><a href="#" class="updraft_exclude_entity_update dashicons dashicons-yes" data-include-backup-file="'+d+'" style="display: none;"></a><a href="#" class="updraft_exclude_entity_delete dashicons dashicons-no" data-include-backup-file="'+d+'"></a></div>';jQuery('.updraft_exclude_entity_container[data-include-backup-file="'+d+'"]').append(s),updraft_exclude_entity_update(d),jQuery("#updraft_exclude_modal").dialog("close")}}),jQuery("#updraft-navtab-settings-content .updraft-service").change(function(){var t=jQuery(this).val();jQuery("#updraft-navtab-settings-content .updraftplusmethod").hide(),jQuery("#updraft-navtab-settings-content ."+t).show()}),jQuery("#updraft-navtab-settings-content a.updraft_show_decryption_widget").click(function(t){t.preventDefault(),jQuery("#updraftplus_db_decrypt").val(jQuery("#updraft_encryptionphrase").val()),jQuery("#updraft-manualdecrypt-modal").slideToggle()}),jQuery("#updraftplus-phpinfo").click(function(t){t.preventDefault(),updraft_iframe_modal("phpinfo",updraftlion.phpinfo)}),jQuery("#updraftplus-rawbackuphistory").click(function(t){t.preventDefault(),updraft_iframe_modal("rawbackuphistory",updraftlion.raw)}),jQuery("#updraft-navtab-status").click(function(t){t.preventDefault(),updraft_open_main_tab("status"),updraft_page_is_visible=1,updraft_console_focussed_tab="status",updraft_activejobs_update(!0)}),jQuery("#updraft-navtab-expert").click(function(t){t.preventDefault(),updraft_open_main_tab("expert"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-settings, #updraft-navtab-settings2, #updraft_backupnow_gotosettings").click(function(t){t.preventDefault(),jQuery(this).parents(".updraftmessage").remove(),jQuery("#updraft-backupnow-modal").dialog("close"),updraft_open_main_tab("settings"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-addons").click(function(t){t.preventDefault(),jQuery(this).addClass("b#nav-tab-active"),updraft_open_main_tab("addons"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-backups").click(function(t){t.preventDefault(),updraft_console_focussed_tab="backups",updraft_historytimertoggle(1),updraft_open_main_tab("backups")}),jQuery("#updraft-navtab-migrate").click(function(t){t.preventDefault(),jQuery("#updraft_migrate_tab_alt").html("").hide(),updraft_open_main_tab("migrate"),updraft_page_is_visible=1,jQuery("#updraft_migrate .updraft_migrate_widget_module_content").is(":visible")||jQuery(".updraft_migrate_intro").show()}),"migrate"==updraftlion.tab&&jQuery("#updraft-navtab-migrate").trigger("click"),updraft_send_command("ping",null,function(t,e){"success"==e&&"pong"!=t&&t.indexOf("pong")>=0&&(jQuery("#updraft-navtab-backups-content .ud-whitespace-warning").show(),console.log("UpdraftPlus: Extra output warning: response (which should be just (string)'pong') follows."),console.log(t))},{json_parse:!1,type:"GET"});try{"undefined"!=typeof updraft_plupload_config&&_()}catch(j){console.log(j)}if(jQuery("#updraftplus_httpget_go").click(function(t){t.preventDefault(),c(0)}),jQuery("#updraftplus_httpget_gocurl").click(function(t){t.preventDefault(),c(1)}),jQuery("#updraftplus_callwpaction_go").click(function(t){t.preventDefault(),params={wpaction:jQuery("#updraftplus_callwpaction").val()},updraft_send_command("call_wordpress_action",params,function(t){t.e?alert(t.e):t.s||(t.r?jQuery("#updraftplus_callwpaction_results").html(t.r):(console.log(t),alert(updraftlion.jsonnotunderstood)))})}),jQuery("#updraft_activejobs_table, #updraft-navtab-migrate-content").on("click",".updraft_jobinfo_delete",function(e){e.preventDefault();var a=jQuery(this).data("jobid");a?(t(this).addClass("disabled"),updraft_activejobs_delete(a)):console.log("UpdraftPlus: A stop job link was clicked, but the Job ID could not be found")}),jQuery("#updraft_activejobs_table, #updraft-navtab-backups-content .updraft_existing_backups, #updraft-backupnow-inpage-modal, #updraft-navtab-migrate-content").on("click",".updraft-log-link",function(t){t.preventDefault();var e=jQuery(this).data("fileid"),a=jQuery(this).data("jobid");e?updraft_popuplog(e):a?updraft_popuplog(a):console.log("UpdraftPlus: A log link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.choose-components-button",function(t){var e=jQuery(this).data("entities"),a=jQuery(this).data("backup_timestamp"),r=jQuery(this).data("showdata");f(e,a,r)}),"initiate_restore"==m("udaction")){var Q=m("entities"),x=m("backup_timestamp"),O=m("showdata");f(Q,x,O)}var P={};P[updraftlion.uploadbutton]=function(){var t=jQuery("#updraft_upload_timestamp").val(),e=jQuery("#updraft_upload_nonce").val(),a="",r=!1;return jQuery(".updraft_remote_storage_destination").each(function(t){jQuery(this).is(":checked")&&(r=!0)}),r?(a=jQuery("input[name^='updraft_remote_storage_destination_']").serializeArray(),jQuery(this).dialog("close"),alert(updraftlion.local_upload_started),void updraft_send_command("upload_local_backup",{use_nonce:e,use_timestamp:t,services:a},function(t){})):void jQuery("#updraft-upload-modal-error").html(updraftlion.local_upload_error)},P[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-upload-modal").dialog({autoOpen:!1,height:322,width:430,modal:!0,buttons:P}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.updraft-upload-link",function(t){t.preventDefault();var e=jQuery(this).data("nonce").toString(),a=jQuery(this).data("key").toString(),r=jQuery(this).data("services").toString();e?g(a,e,r):console.log("UpdraftPlus: A upload link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click",".updraft-delete-link",function(t){t.preventDefault();var e=jQuery(this).data("hasremote"),a=jQuery(this).data("nonce").toString(),r=jQuery(this).data("key").toString();a?updraft_delete(r,a,e):console.log("UpdraftPlus: A delete link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.updraft_download_button",function(t){t.preventDefault();var e="uddlstatus_",a=jQuery(this).data("backup_timestamp"),r=jQuery(this).data("what"),n=".ud_downloadstatus",o=jQuery(this).data("set_contents"),u=jQuery(this).data("prettydate"),d=!0;updraft_downloader(e,a,r,n,o,u,d)}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("dblclick",".updraft_existingbackup_date",function(t){t.preventDefault();var e=jQuery(this).data("rawbackup");null!=e&&""!=e&&updraft_html_modal(e,updraftlion.raw,780,500)})}),jQuery(document).ready(function(t){var e="#updraft-navtab-settings-content ";t(e+"#remote-storage-holder").on("click",".updraftvault_backtostart",function(a){a.preventDefault(),t(e+"#updraftvault_settings_showoptions").slideUp(),t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_connected").slideUp(),t(e+"#updraftvault_settings_default").slideDown()}),t(e).on("keypress","#updraftvault_settings_connect input",function(a){if(13==a.which)return t(e+"#updraftvault_connect_go").click(),!1}),t(e+"#remote-storage-holder").on("click","#updraftvault_recountquota",function(a){a.preventDefault(),t(e+"#updraftvault_recountquota").html(updraftlion.counting);try{updraft_send_command("vault_recountquota",{instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a){t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),a.hasOwnProperty("html")&&(t(e+"#updraftvault_settings_connected").html(a.html),a.hasOwnProperty("connected")&&(a.connected?(t(e+"#updraftvault_settings_default").hide(),t(e+"#updraftvault_settings_connected").show()):(t(e+"#updraftvault_settings_connected").hide(),t(e+"#updraftvault_settings_default").show())))},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),alert(o.fatal_error_message);else{var u="updraft_send_command: error: "+r+" ("+n+")";console.log(u),alert(u),console.log(a)}}})}catch(r){t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),console.log(r)}}),t(e+"#remote-storage-holder").on("click","#updraftvault_disconnect",function(a){a.preventDefault(),t(e+"#updraftvault_disconnect").html(updraftlion.disconnecting);try{updraft_send_command("vault_disconnect",{immediate_echo:!0,instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a){t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),a.hasOwnProperty("html")&&(t(e+"#updraftvault_settings_connected").html(a.html).slideUp(),t(e+"#updraftvault_settings_default").slideDown())},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),alert(o.fatal_error_message);else{var u="updraft_send_command: error: "+r+" ("+n+")";console.log(u),alert(u),console.log(a)}}})}catch(r){t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),console.log(r)}}),t(e+"#remote-storage-holder").on("click","#updraftvault_connect",function(a){
4
+ a.preventDefault(),t(e+"#updraftvault_settings_default").slideUp(),t(e+"#updraftvault_settings_connect").slideDown()}),t(e+"#remote-storage-holder").on("click","#updraftvault_showoptions",function(a){a.preventDefault(),t(e+"#updraftvault_settings_default").slideUp(),t(e+"#updraftvault_settings_showoptions").slideDown()}),t("#remote-storage-holder").on("keyup",".updraftplus_onedrive_folder_input",function(e){var a=t(this).val(),r=t(this).closest("td");0==a.indexOf("https:")||0==a.indexOf("http:")?r.find(".onedrive_folder_error").length||r.append('<div class="onedrive_folder_error">'+updraftlion.onedrive_folder_url_warning+"</div>"):r.find(".onedrive_folder_error").slideUp("slow",function(){r.find(".onedrive_folder_error").remove()})}),t(e+"#remote-storage-holder").on("click","#updraftvault_connect_go",function(a){return t(e+"#updraftvault_connect_go").html(updraftlion.connecting),updraft_send_command("vault_connect",{email:t("#updraftvault_email").val(),pass:t("#updraftvault_pass").val(),instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a,r,n){t(e+"#updraftvault_connect_go").html(updraftlion.connect),a.hasOwnProperty("e")?(updraft_html_modal('<h4 style="margin-top:0px; padding-top:0px;">'+updraftlion.errornocolon+"</h4><p>"+a.e+"</p>",updraftlion.disconnect,400,250),a.hasOwnProperty("code")&&"no_quota"==a.code&&(t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_default").slideDown())):a.hasOwnProperty("connected")&&a.connected&&a.hasOwnProperty("html")?(t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_connected").html(a.html).slideDown()):(console.log(a),alert(updraftlion.unexpectedresponse+" "+n))},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_connect_go").html(updraftlion.connect),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),alert(o.fatal_error_message);else{var u="updraft_send_command: error: "+r+" ("+n+")";console.log(u),alert(u),console.log(a)}}}),!1}),t("#updraft-iframe-modal").on("change","#always_keep_this_backup",function(){var e=t(this).data("backup_key"),a={backup_key:e,always_keep:t(this).is(":checked")?1:0};updraft_send_command("always_keep_this_backup",a,function(t){t.hasOwnProperty("rawbackup")&&(jQuery("#updraft-iframe-modal").dialog("close"),jQuery(".updraft_existing_backups_row_"+e+" .updraft_existingbackup_date").data("rawbackup",t.rawbackup),updraft_html_modal(jQuery(".updraft_existing_backups_row_"+e+" .updraft_existingbackup_date").data("rawbackup"),updraftlion.raw,780,500))})})}),jQuery(document).ready(function(t){function e(){var t=new plupload.Uploader(updraft_plupload_config2);t.bind("Init",function(t){var e=jQuery("#plupload-upload-ui2");t.features.dragdrop?(e.addClass("drag-drop"),jQuery("#drag-drop-area2").bind("dragover.wp-uploader",function(){e.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){e.removeClass("drag-over")})):(e.removeClass("drag-drop"),jQuery("#drag-drop-area2").unbind(".wp-uploader"))}),t.init(),t.bind("FilesAdded",function(e,a){plupload.each(a,function(e){return/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-db([0-9]+)?\.(gz\.crypt)$/i.test(e.name)?void jQuery("#filelist2").append('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(0)+"</span>/"+plupload.formatSize(e.size)+') <div class="fileprogress"></div></div>'):(alert(e.name+": "+updraftlion.notdba),void t.removeFile(e))}),e.refresh(),e.start()}),t.bind("UploadProgress",function(t,e){jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"),jQuery("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100)))}),t.bind("Error",function(t,e){"-200"==e.code?err_makesure="\n"+updraftlion.makesure2:err_makesure=updraftlion.makesure,alert(updraftlion.uploaderr+" (code "+e.code+") : "+e.message+" "+err_makesure)}),t.bind("FileUploaded",function(t,e,a){"200"==a.status?"ERROR:"==a.response.substring(0,6)?alert(updraftlion.uploaderror+" "+a.response.substring(6)):"OK:"==a.response.substring(0,3)?(bkey=a.response.substring(3),jQuery("#"+e.id+" .fileprogress").hide(),jQuery("#"+e.id).append(updraftlion.uploaded+' <a href="?page=updraftplus&action=downloadfile&updraftplus_file='+bkey+"&decrypt_key="+encodeURIComponent(jQuery("#updraftplus_db_decrypt").val())+'">'+updraftlion.followlink+"</a> "+updraftlion.thiskey+" "+jQuery("#updraftplus_db_decrypt").val().replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"))):alert(updraftlion.unknownresp+" "+a.response):alert(updraftlion.ukrespstatus+" "+a.code)})}try{"undefined"!=typeof updraft_plupload_config2&&e()}catch(a){console.log(a)}if(jQuery("#updraft-hidethis").remove(),Handlebars.registerHelper("ifeq",function(t,e,a){return"string"!=typeof t&&"undefined"!=typeof t&&null!==t&&(t=t.toString()),"string"!=typeof e&&"undefined"!=typeof e&&null!==e&&(e=e.toString()),t===e?a.fn(this):a.inverse(this)}),t("#remote-storage-holder").length){var r="";for(var n in updraftlion.remote_storage_templates)if("undefined"!=typeof updraftlion.remote_storage_options[n]&&1<Object.keys(updraftlion.remote_storage_options[n]).length){var o=Handlebars.compile(updraftlion.remote_storage_templates[n]),u=!0;for(var d in updraftlion.remote_storage_options[n])if("default"!==d){var s=updraftlion.remote_storage_options[n][d];s.first_instance=u,"undefined"==typeof s.instance_enabled&&(s.instance_enabled=1),r+=o(s),u=!1}}else r+=updraftlion.remote_storage_templates[n];t("#remote-storage-holder").append(r).ready(function(){t(".updraftplusmethod").not(".none").hide(),updraft_remote_storage_tabs_setup(),t("#remote-storage-holder .updraftplus_onedrive_folder_input").trigger("keyup")})}}),jQuery(document).ready(function(t){function e(){var t=r("object"),e=new Date;t=JSON.stringify({version:"1.12.40",epoch_date:e.getTime(),local_date:e.toLocaleString(),network_site_url:updraftlion.network_site_url,data:t});var a=document.body.appendChild(document.createElement("a"));a.setAttribute("download",updraftlion.export_settings_file_name),a.setAttribute("style","display:none;"),a.setAttribute("href","data:text/json;charset=UTF-8,"+encodeURIComponent(t)),a.click()}function a(e){var a,r=decodeURIComponent(e);try{a=ud_parse_json(r)}catch(o){return t.unblockUI(),jQuery("#import_settings").val(""),console.log(r),console.log(o),void alert(updraftlion.import_invalid_json_file)}if(window.confirm(updraftlion.importing_data_from+" "+r.network_site_url+"\n"+updraftlion.exported_on+" "+r.local_date+"\n"+updraftlion.continue_import)){var u=JSON.stringify(a.data);updraft_send_command("importsettings",{settings:u,updraftplus_version:updraftlion.updraftplus_version},function(e,a,r){var o=n(e);!o.hasOwnProperty("saved")||o.saved?(updraft_settings_form_changed=!1,location.replace(updraftlion.updraft_settings_url)):(t.unblockUI(),o.hasOwnProperty("error_message")&&o.error_message&&alert(o.error_message))},{action:"updraft_importsettings",nonce:updraftplus_settings_nonce,error_callback:function(e,a,r,n){if(t.unblockUI(),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var o="updraft_send_command: error: "+a+" ("+r+")";console.log(o),console.log(e),alert(o)}}})}else t.unblockUI()}function r(e){var a="",e="undefined"==typeof e?"string":e;return"object"==e?a=t("#updraft-navtab-settings-content form input[name!='action'][name!='option_page'][name!='_wpnonce'][name!='_wp_http_referer'], #updraft-navtab-settings-content form textarea, #updraft-navtab-settings-content form select, #updraft-navtab-settings-content form input[type=checkbox]").serializeJSON({checkboxUncheckedValue:"0",useIntKeysAsArrayIndex:!0}):(a=t("#updraft-navtab-settings-content form input[name!='action'], #updraft-navtab-settings-content form textarea, #updraft-navtab-settings-content form select").serialize(),t.each(t("#updraft-navtab-settings-content form input[type=checkbox]").filter(function(e){return 0==t(this).prop("checked")}),function(e,r){var n="0";a+="&"+t(r).attr("name")+"="+n})),a}function n(e,a){try{var r=(e.messages,e.backup_dir.writable),n=e.backup_dir.message,o=e.backup_dir.button_title}catch(u){return console.log(u),console.log(a),alert(updraftlion.jsonnotunderstood),t.unblockUI(),{}}if(e.hasOwnProperty("changed")){console.log("UpdraftPlus: savesettings: some values were changed after being filtered"),console.log(e.changed);for(prop in e.changed)if("object"==typeof e.changed[prop])for(innerprop in e.changed[prop])t("[name='"+innerprop+"']").is(":checkbox")||t("[name='"+prop+"["+innerprop+"]']").val(e.changed[prop][innerprop]);else t("[name='"+prop+"']").is(":checkbox")||t("[name='"+prop+"']").val(e.changed[prop])}return t("#updraft_writable_mess").html(n),0==r?(t("#updraft-backupnow-button").attr("disabled","disabled"),t("#updraft-backupnow-button").attr("title",o),t(".backupdirrow").css("display","table-row")):(t("#updraft-backupnow-button").removeAttr("disabled"),t("#updraft-backupnow-button").removeAttr("title")),e.hasOwnProperty("updraft_include_more_path")&&t("#backupnow_includefiles_moreoptions").html(e.updraft_include_more_path),e.hasOwnProperty("backup_now_message")&&t("#backupnow_remote_container").html(e.backup_now_message),t(".updraftmessage").remove(),t("#updraft_backup_started").before(e.messages),console.log(e),t("#updraft-next-files-backup-inner").html(e.files_scheduled),t("#updraft-next-database-backup-inner").html(e.database_scheduled),e}function o(){var t=!1;if(jQuery("#updraft-authenticate-modal-innards").html(""),jQuery("div[class*=updraft_authenticate_] a.updraft_authlink").each(function(){jQuery("#updraft-authenticate-modal-innards").append('<p><a href="'+jQuery(this).attr("href")+'">'+jQuery(this).html()+"</a></p>"),t=!0}),t){var e={};e[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-authenticate-modal").dialog({autoOpen:!0,modal:!0,resizable:!1,draggable:!1,buttons:e,width:"auto"}).dialog("open")}}var u=new Image;u.src=updraftlion.ud_url+"/images/notices/updraft_logo.png",t("#updraft-navtab-settings-content input.updraft_include_entity").change(function(e){var a=t(this).attr("id"),r=t(this).is(":checked"),n="#backupnow_files_"+a;t(n).prop("checked",r)}),t("#updraftplus-settings-save").click(function(e){e.preventDefault(),t.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)",padding:"20px"},message:'<div style="margin: 8px; font-size:150%;" class="updraft_saving_popup"><img src="'+updraftlion.ud_url+'/images/notices/updraft_logo.png" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.saving+"</div>"});var a=r("string");updraft_send_command("savesettings",{settings:a,updraftplus_version:updraftlion.updraftplus_version},function(e,a,r){n(e,r),t("#updraft-wrap .fade").delay(6e3).fadeOut(2e3),window.updraft_main_tour&&!window.updraft_main_tour.canceled?(window.updraft_main_tour.show("settings_saved"),o()):t("html, body").animate({scrollTop:t("#updraft-wrap").offset().top},1e3,function(){o()}),t.unblockUI()},{action:"updraft_savesettings",error_callback:function(e,a,r,n){if(t.unblockUI(),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var o="updraft_send_command: error: "+a+" ("+r+")";console.log(o),alert(o),console.log(e)}},nonce:updraftplus_settings_nonce})}),t("#updraftplus-settings-export").click(function(){updraft_settings_form_changed&&alert(updraftlion.unsaved_settings_export),e()}),t("#updraftplus-settings-import").click(function(){t.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)",padding:"20px"},message:'<div style="margin: 8px; font-size:150%;" class="updraft_saving_popup"><img src="'+updraftlion.ud_url+'/images/notices/updraft_logo.png" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.importing+"</div>"});var e=document.getElementById("import_settings");if(0==e.files.length)return alert(updraftlion.import_select_file),void t.unblockUI();var r=e.files[0],n=new FileReader;n.onload=function(){a(this.result)},n.readAsText(r)}),t(".udp-replace-with-iframe--js").on("click",function(e){e.preventDefault();var a=t(this).prop("href"),r=t('<iframe width="356" height="200" allowfullscreen webkitallowfullscreen mozallowfullscreen>').attr("src",a);r.insertAfter(t(this)),t(this).remove()})}),jQuery(document).ready(function(t){function e(e,n,o,u){if("function"==typeof o){var d=t(u).find("#updraftcentral_cloud_form"),s=d.find('.form_hidden_fields input[name="key"]');if(s.length&&""!==s.val())return void o.apply(this,[s.val()]);var i={where_send:"__updraftpluscom",key_description:"",key_size:e,mothership_firewalled:n};a(u),updraft_send_command("updraftcentral_create_key",i,function(e){r(u);try{if(i=ud_parse_json(e),i.hasOwnProperty("error"))return void console.log(i);i.hasOwnProperty("bundle")?o.apply(this,[i.bundle]):i.hasOwnProperty("r")?(t(u).find(".updraftcentral_cloud_notices").html(updraftlion.trouble_connecting).addClass("updraftcentral_cloud_info"),alert(i.r)):console.log(i)}catch(a){console.log(a)}},{json_parse:!1})}}function a(e){t(e).find(".updraftplus_spinner.spinner").addClass("visible")}function r(e){t(e).find(".updraftplus_spinner.spinner").removeClass("visible")}function n(e,n){a(n),updraft_send_command("process_updraftcentral_registration",e,function(a){r(n);try{if(e=ud_parse_json(a),e.hasOwnProperty("error")){var o=e.message,d=["existing_user_email","email_exists"];return-1!==t.inArray(e.code,d)&&(o=e.message+" "+updraftlion.perhaps_login),t(n).find(".updraftcentral_cloud_notices").html(o).addClass("updraftcentral_cloud_error"),t(n).find(".updraftcentral_cloud_notices a").attr("target","_blank"),void console.log(e)}"registered"===e.status&&(t(n).find(".updraftcentral_cloud_form_container").hide(),t(n).find(".updraftcentral-subheading").hide(),t(n).find(".updraftcentral_cloud_notices").removeClass("updraftcentral_cloud_error"),u(n,e,updraftlion.registration_successful))}catch(s){console.log(s)}},{json_parse:!1})}function o(e,o){a(o),updraft_send_command("process_updraftcentral_login",e,function(a){r(o);try{if(data=ud_parse_json(a),data.hasOwnProperty("error")){if("incorrect_password"===data.code&&(t(o).find(".updraftcentral_cloud_form_container .tfa_fields").hide(),t(o).find(".updraftcentral_cloud_form_container .non_tfa_fields").show(),t(o).find("input#two_factor_code").val(""),t(o).find("input#password").val("").focus()),"email_not_registered"!==data.code)return t(o).find(".updraftcentral_cloud_notices").html(data.message).addClass("updraftcentral_cloud_error"),t(o).find(".updraftcentral_cloud_notices a").attr("target","_blank"),void console.log(data);n(e,o)}data.hasOwnProperty("tfa_enabled")&&1==data.tfa_enabled&&(t(o).find(".updraftcentral_cloud_notices").html("").removeClass("updraftcentral_cloud_error"),t(o).find(".updraftcentral_cloud_form_container .non_tfa_fields").hide(),t(o).find(".updraftcentral_cloud_form_container .tfa_fields").show(),t(o).find("input#two_factor_code").focus()),"authenticated"===data.status&&(t(o).find(".updraftcentral_cloud_form_container").hide(),t(o).find(".updraftcentral_cloud_notices").removeClass("updraftcentral_cloud_error"),u(o,data,updraftlion.login_successful))}catch(d){console.log(d)}},{json_parse:!1})}function u(e,a,r){var n=t(e).find("form#updraftcentral_cloud_redirect_form");n.attr("action",a.redirect_url),n.attr("target","_blank"),"undefined"!=typeof a.redirect_token&&n.append('<input type="hidden" name="redirect_token" value="'+a.redirect_token+'">'),a.hasOwnProperty("keys_table")&&a.keys_table&&t("#updraftcentral_keys_content").html(a.keys_table),$redirect_lnk='<a href="'+updraftlion.current_clean_url+'" class="updraftcentral_cloud_redirect_link">'+updraftlion.updraftcentral_cloud+"</a>",$close_lnk='<a href="'+updraftlion.current_clean_url+'" class="updraftcentral_cloud_close_link">'+updraftlion.close_wizard+"</a>",t(e).find(".updraftcentral_cloud_notices").html(r.replace("%s",$redirect_lnk)+" "+$close_lnk+"<br/><br/>"+updraftlion.control_udc_connections),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_redirect_link").off("click").on("click",function(a){a.preventDefault(),n.submit(),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_close_link").trigger("click")}),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_close_link").off("click").on("click",function(a){a.preventDefault(),t(e).dialog("close"),t("#updraftcentral_cloud_connect_container").hide()})}function d(e){var a=t(e).find("#updraftcentral_cloud_form"),r=a.find("input#email").val(),n=a.find("input#password").val(),o=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;t(e).find(".updraftcentral_cloud_notices").html("").removeClass("updraftcentral_cloud_error updraftcentral_cloud_info");var u=a.find('.updraftcentral-data-consent > input[name="i_consent"]').is(":checked");return u?0===r.length||0===n.length?(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.username_password_required).addClass("updraftcentral_cloud_error"),!1):null!==r.match(o)||(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.valid_email_required).addClass("updraftcentral_cloud_error"),!1):(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.data_consent_required).addClass("updraftcentral_cloud_error"),!1)}function s(a,r){var u=t(a).find("#updraft_central_keysize").val(),d=t(a).find("#updraft_central_firewalled").is(":checked")?1:0;e(u,d,function(e){var u=t(a).find("#updraftcentral_cloud_form"),d=u.find('.form_hidden_fields input[name="key"]');0===d.length&&u.find(".form_hidden_fields").append('<input type="hidden" name="key" value="'+e+'">');var s=u.find("input").serialize(),i={form_data:s};"undefined"!=typeof r&&r?n(i,a):o(i,a)},a)}function i(){var e=t("#updraftcentral_cloud_login_form");if(e.length){t("#updraft-iframe-modal-innards").html(e.html());var a=t("#updraft-iframe-modal").dialog("option","title",updraftlion.updraftcentral_cloud).dialog("option","width",520).dialog("option","height",450).dialog("option","buttons",{});a.dialog("open");var r=a.find(".updraftcentral-data-consent"),n=r.find("input").attr("name");"undefined"!=typeof n&&n&&(r.find("input").attr("id",n),r.find("label").attr("for",n))}}jQuery("#updraft-restore-modal").on("change","#updraft_restorer_charset",function(e){if(t("#updraft_restorer_charset").length&&t("#updraft_restorer_collate").length&&t("#collate_change_on_charset_selection_data").length){var a=t("#updraft_restorer_charset").val();t("#updraft_restorer_collate option").show(),t("#updraft_restorer_collate option[data-charset!="+a+"]").hide(),updraft_send_command("collate_change_on_charset_selection",{collate_change_on_charset_selection_data:t("#collate_change_on_charset_selection_data").val(),updraft_restorer_charset:a,updraft_restorer_collate:t("#updraft_restorer_collate").val()},function(e){e.hasOwnProperty("is_action_required")&&1==e.is_action_required&&e.hasOwnProperty("similar_type_collate")&&t("#updraft_restorer_collate").val(e.similar_type_collate)})}}),t("#updraft-wrap #btn_cloud_connect").on("click",function(){i()}),t("#updraft-wrap a#self_hosted_connect").on("click",function(e){e.preventDefault(),t("h2.nav-tab-wrapper > a#updraft-navtab-expert").trigger("click"),t("div.advanced_settings_menu > #updraft_central").trigger("click")}),t("#updraft-iframe-modal").on("click","#updraftcentral_cloud_login",function(e){e.preventDefault();var a=t(this).closest("#updraft-iframe-modal");d(a)&&s(a)})});
includes/updraftplus-admin-common.min.js DELETED
@@ -1,4 +0,0 @@
1
- function updraft_send_command(t,e,a,r){default_options={json_parse:!0,alert_on_error:!0,action:"updraft_ajax",nonce:updraft_credentialtest_nonce,nonce_key:"nonce",timeout:null,async:!0,type:"POST"},"undefined"==typeof r&&(r={});for(var n in default_options)r.hasOwnProperty(n)||(r[n]=default_options[n]);var o={action:r.action,subaction:t};if(o[r.nonce_key]=r.nonce,"object"==typeof e)for(var d in e)o[d]=e[d];else o.action_data=e;var u={type:r.type,url:ajaxurl,data:o,success:function(t,e){if(r.json_parse){try{var n=ud_parse_json(t)}catch(o){return"function"==typeof r.error_callback?r.error_callback(t,o,502,n):(console.log(o),console.log(t),void(r.alert_on_error&&alert(updraftlion.unexpectedresponse+" "+t)))}if(n.hasOwnProperty("fatal_error"))return"function"==typeof r.error_callback?r.error_callback(t,e,500,n):(console.error(n.fatal_error_message),r.alert_on_error&&alert(n.fatal_error_message),!1);"function"==typeof a&&a(n,e,t)}else"function"==typeof a&&a(t,e)},error:function(t,e,a){"function"==typeof r.error_callback?r.error_callback(t,e,a):(console.log("updraft_send_command: error: "+e+" ("+a+")"),console.log(t))},dataType:"text",async:r.async};null!=r.timeout&&(u.timeout=r.timeout),jQuery.ajax(u)}function updraft_delete(t,e,a){jQuery("#updraft_delete_timestamp").val(t),jQuery("#updraft_delete_nonce").val(e),a?jQuery("#updraft-delete-remote-section, #updraft_delete_remote").removeAttr("disabled").show():jQuery("#updraft-delete-remote-section, #updraft_delete_remote").hide().attr("disabled","disabled"),t.indexOf(",")>-1?(jQuery("#updraft_delete_question_singular").hide(),jQuery("#updraft_delete_question_plural").show()):(jQuery("#updraft_delete_question_plural").hide(),jQuery("#updraft_delete_question_singular").show()),jQuery("#updraft-delete-modal").dialog("open")}function updraft_remote_storage_tab_activation(t){jQuery(".updraftplusmethod").hide(),jQuery(".remote-tab").data("active",!1),jQuery(".remote-tab").removeClass("nav-tab-active"),jQuery(".updraftplusmethod."+t).show(),jQuery(".remote-tab-"+t).data("active",!0),jQuery(".remote-tab-"+t).addClass("nav-tab-active")}function updraft_check_overduecrons(){updraft_send_command("check_overdue_crons",null,function(t){t&&t.hasOwnProperty("m")&&jQuery("#updraft-insert-admin-warning").html(t.m)},{alert_on_error:!1})}function updraft_remote_storage_tabs_setup(){var t=0,e=jQuery(".updraft_servicecheckbox:checked");jQuery(e).each(function(a,r){var n=jQuery(r).val();"updraft_servicecheckbox_none"!=jQuery(r).attr("id")&&t++,jQuery(".remote-tab-"+n).show(),a==jQuery(e).length-1&&updraft_remote_storage_tab_activation(n)}),t>0?(jQuery(".updraftplusmethod.none").hide(),jQuery("#remote_storage_tabs").show()):jQuery("#remote_storage_tabs").hide(),jQuery(document).keyup(function(t){if((32===t.keyCode||13===t.keyCode)&&jQuery(document.activeElement).is("input.labelauty + label")){var e=jQuery(document.activeElement).attr("for");e&&jQuery("#"+e).change()}}),jQuery(".updraft_servicecheckbox").change(function(){var e=jQuery(this).attr("id");if("updraft_servicecheckbox_"==e.substring(0,24)){var a=e.substring(24);null!=a&&""!=a&&(jQuery(this).is(":checked")?(t++,jQuery(".remote-tab-"+a).fadeIn(),updraft_remote_storage_tab_activation(a)):(t--,jQuery(".remote-tab-"+a).hide(),1==jQuery(".remote-tab-"+a).data("active")&&updraft_remote_storage_tab_activation(jQuery(".remote-tab:visible").last().attr("name"))))}t<=0?(jQuery(".updraftplusmethod.none").fadeIn(),jQuery("#remote_storage_tabs").hide()):(jQuery(".updraftplusmethod.none").hide(),jQuery("#remote_storage_tabs").show())}),jQuery(".updraft_servicecheckbox:not(.multi)").change(function(){var t=jQuery(this).attr("value");jQuery(this).is(":not(:checked)")?(jQuery(".updraftplusmethod."+t).hide(),jQuery(".updraftplusmethod.none").fadeIn()):jQuery(".updraft_servicecheckbox").not(this).prop("checked",!1)});var a=jQuery(".updraft_servicecheckbox");"function"==typeof a.labelauty&&a.labelauty()}function updraft_remote_storage_test(t,e,a){var r,n;a?(r=jQuery("#updraft-"+t+"-test-"+a),n=".updraftplusmethod."+t+"-"+a):(r=jQuery("#updraft-"+t+"-test"),n=".updraftplusmethod."+t);var o=r.data("method_label");r.html(updraftlion.testing_settings.replace("%s",o));var d={method:t};jQuery("#updraft-navtab-settings-content "+n+" input[data-updraft_settings_test], #updraft-navtab-settings-content .expertmode input[data-updraft_settings_test]").each(function(t,e){var a=jQuery(e).data("updraft_settings_test"),r=jQuery(e).attr("type");if(a){r||(console.log("UpdraftPlus: settings test input item with no type found"),console.log(e),r="text");var n=null;"checkbox"==r?n=jQuery(e).is(":checked")?1:0:"text"==r||"password"==r?n=jQuery(e).val():(console.log("UpdraftPlus: settings test input item with unrecognised type ("+r+") found"),console.log(e)),d[a]=n}}),jQuery("#updraft-navtab-settings-content "+n+" textarea[data-updraft_settings_test], #updraft-navtab-settings-content "+n+" select[data-updraft_settings_test]").each(function(t,e){var a=jQuery(e).data("updraft_settings_test");d[a]=jQuery(e).val()}),updraft_send_command("test_storage_settings",d,function(t,a){r.html(updraftlion.test_settings.replace("%s",o)),"undefined"!=typeof e&&0!=e&&(e=e.call(this,t,a,d)),"undefined"!=typeof e&&!1===e&&(alert(updraftlion.settings_test_result.replace("%s",o)+" "+t.output),t.hasOwnProperty("data")&&console.log(t.data))},{error_callback:function(t,e,a,n){if(r.html(updraftlion.test_settings.replace("%s",o)),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var d="updraft_send_command: error: "+e+" ("+a+")";console.log(d),alert(d),console.log(t)}}})}function backupnow_whichfiles_checked(t){return jQuery('#backupnow_includefiles_moreoptions input[type="checkbox"]').each(function(e){if(jQuery(this).is(":checked")){var a=jQuery(this).attr("name");if("updraft_include_"==a.substring(0,16)){var r=a.substring(16);""!=t&&(t+=","),t+=r}}}),t}function backupnow_whichtables_checked(t){var e=!1;return jQuery('#backupnow_database_moreoptions input[type="checkbox"]').each(function(t){if(!jQuery(this).is(":checked"))return void(e=!0)}),t=jQuery("input[name^='updraft_include_tables_']").serializeArray(),!e||t}function updraft_deleteallselected(){var t=0,e="",a="",r=0;jQuery("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").each(function(n){t++;var o=jQuery(this).data("nonce");a&&(a+=","),a+=o;var d=jQuery(this).data("key");e&&(e+=","),e+=d;var u=jQuery(this).find(".updraftplus-remove").data("hasremote");u&&r++}),updraft_delete(e,a,r)}function updraft_open_main_tab(t){updraftlion.main_tabs_keys.forEach(function(e){t==e?(jQuery("#updraft-navtab-"+e+"-content").show(),jQuery("#updraft-navtab-"+e).addClass("nav-tab-active")):(jQuery("#updraft-navtab-"+e+"-content").hide(),jQuery("#updraft-navtab-"+e).removeClass("nav-tab-active")),updraft_console_focussed_tab=t})}function updraft_openrestorepanel(t){updraft_historytimertoggle(t),updraft_open_main_tab("backups")}function updraft_delete_old_dirs(){return!0}function updraft_initiate_restore(t){jQuery('#updraft-navtab-backups-content .updraft_existing_backups button[data-backup_timestamp="'+t+'"]').click()}function updraft_restore_setoptions(t){var e=0;jQuery('input[name="updraft_restore[]"]').each(function(a,r){var n=jQuery(r).val(),o=n+"=([0-9,]+)",d=new RegExp(o),u=t.match(d);u?(jQuery(r).removeAttr("disabled").data("howmany",u[1]).parent().show(),e++,"db"==n&&(e+=4.5),jQuery(r).is(":checked")&&jQuery("#updraft_restorer_"+n+"options").show()):jQuery(r).attr("disabled","disabled").parent().hide()});var a=t.match(/dbcrypted=1/);a?(jQuery("#updraft_restore_db").data("encrypted",1),jQuery(".updraft_restore_crypteddb").show()):(jQuery("#updraft_restore_db").data("encrypted",0),jQuery(".updraft_restore_crypteddb").hide()),jQuery("#updraft_restore_db").trigger("change");var r=t.match(/meta_foreign=([12])/);r?jQuery("#updraft_restore_meta_foreign").val(r[1]):jQuery("#updraft_restore_meta_foreign").val("0");var n=336+20*e;jQuery("#updraft-restore-modal").dialog("option","height",n)}function updraft_backup_dialog_open(){jQuery("#backupnow_includefiles_moreoptions").hide(),updraft_settings_form_changed?window.confirm(updraftlion.unsavedsettingsbackup)&&(jQuery("#backupnow_label").val(""),jQuery("#updraft-backupnow-modal").dialog("open")):(jQuery("#backupnow_label").val(""),jQuery("#updraft-backupnow-modal").dialog("open"))}function updraft_check_page_visibility(t){"hidden"==document.visibilityState?updraft_page_is_visible=0:(updraft_page_is_visible=1,1!==t&&jQuery("#updraft-navtab-backups-content").length&&updraft_activejobs_update(!0))}function setup_migrate_tabs(){jQuery("#updraft_migrate .updraft_migrate_widget_module_content").each(function(t,e){var a=jQuery(e).find("h3").first().html(),r=jQuery(".updraft_migrate_intro"),n=jQuery('<button class="button button-primary button-hero" />').html(a).appendTo(r);n.on("click",function(t){t.preventDefault(),jQuery(e).show(),r.hide()})})}function updraft_backupnow_inpage_go(t,e,a,r,n,o,d){r="undefined"==typeof r?0:r,n="undefined"==typeof n?0:n,o="undefined"==typeof o?0:o,d="undefined"==typeof d?updraftlion.automaticbackupbeforeupdate:d,updraft_console_focussed_tab="backups",updraft_inpage_success_callback=t,updraft_activejobs_update_timer=setInterval(function(){updraft_activejobs_update(!1)},1250);var u={},s=jQuery("#updraft-backupnow-inpage-modal").length;s&&jQuery("#updraft-backupnow-inpage-modal").dialog("option","buttons",u),jQuery("#updraft_inpage_prebackup").hide(),s&&jQuery("#updraft-backupnow-inpage-modal").dialog("open"),jQuery("#updraft_inpage_backup").show(),updraft_activejobslist_backupnownonce_only=1,updraft_inpage_hasbegun=0,updraft_backupnow_go(r,n,o,e,a,d,"")}function updraft_activejobs_update(t){var e=jQuery,a=(new Date).getTime();if(!(0==t&&a<updraft_activejobs_nextupdate)){updraft_activejobs_nextupdate=a+5500;var r="";e(".ud_downloadstatus .updraftplus_downloader, #ud_downloadstatus2 .updraftplus_downloader").each(function(t,a){var n=e(a).data("downloaderfor");"object"==typeof n&&(""!=r&&(r+=":"),r=r+n.base+","+n.nonce+","+n.what+","+n.index)});var n={downloaders:r};try{e("#updraft-poplog").dialog("isOpen")&&(n.log_fetch=1,n.log_nonce=updraft_poplog_log_nonce,n.log_pointer=updraft_poplog_log_pointer)}catch(o){console.log(o)}updraft_activejobslist_backupnownonce_only&&"undefined"!=typeof updraft_backupnow_nonce&&""!=updraft_backupnow_nonce&&(n.thisjobonly=updraft_backupnow_nonce),updraft_send_command("activejobs_list",n,function(t,r,o){try{t.hasOwnProperty("l")&&(t.l?(e("#updraft_lastlogmessagerow").show(),e("#updraft_lastlogcontainer").html(t.l)):(e("#updraft_lastlogmessagerow").hide(),e("#updraft_lastlogcontainer").html("("+updraftlion.nothing_yet_logged+")")));var d=-1,u=e(".updraft_requeststart");t.j&&u.length&&u.data("remove")&&u.remove();var s=e(t.j);s.find(".updraft_jobtimings").each(function(t,a){var r=e(a);if(r.data("jobid")){var n=r.data("jobid"),o=r.closest(".updraft_row");updraft_aborted_jobs[n]&&o.hide()}}),e("#updraft_activejobsrow").html(s);var i=s.find('.job-id[data-isclone="1"]');if(i.length>0){if(0==e(".updraftclone_action_box .updraftclone_network_info").length&&e("#updraft_activejobsrow .job-id .updraft_clone_url").length>0){var l=e("#updraft_activejobsrow .job-id .updraft_clone_url").data("clone_url");updraft_send_command("get_clone_network_info",{clone_url:l},function(t){t.hasOwnProperty("html")&&e(".updraftclone_action_box").html(t.html)})}e("#updraft_clone_activejobsrow").empty(),i.each(function(t,a){var r=e(a);r.closest(".updraft_row").appendTo(e("#updraft_clone_activejobsrow"))})}if(e("#updraft_activejobs .updraft_jobtimings").each(function(t,r){var n=e(r);if(n.data("lastactivity")&&n.data("jobid")){var o=n.data("jobid"),u=n.data("lastactivity");(d==-1||u<d)&&(d=u);var s=n.data("nextresumptionafter"),i=n.data("nextresumption");a=(new Date).getTime(),u>50&&i>0&&s<-30&&a>updraft_last_forced_when+1e5&&(updraft_last_forced_jobid!=o||i!=updraft_last_forced_resumption)&&(updraft_last_forced_resumption=i,updraft_last_forced_jobid=o,updraft_last_forced_when=a,console.log("UpdraftPlus: force resumption: job_id="+o+", resumption="+i),updraft_send_command("forcescheduledresumption",{resumption:i,job_id:o},function(t){console.log(t)},{json_parse:!1,alert_on_error:!1}))}}),a=(new Date).getTime(),updraft_activejobs_nextupdate=a+18e4,1==updraft_page_is_visible&&"backups"==updraft_console_focussed_tab&&(updraft_activejobs_nextupdate=d>-1?d<5?a+1750:a+5e3:lastlog_lastdata==o?a+7500:a+1750),i.length>0&&(updraft_activejobs_nextupdate=a+6e3),lastlog_lastdata=o,null!=t.j&&""!=t.j){if(e("#updraft_activejobsrow").show(),i.length>0&&e("#updraft_clone_activejobsrow").show(),n.hasOwnProperty("thisjobonly")&&!updraft_inpage_hasbegun&&e("#updraft-jobid-"+n.thisjobonly).length?(updraft_inpage_hasbegun=1,console.log("UpdraftPlus: the start of the requested backup job has been detected")):!updraft_inpage_hasbegun&&updraft_activejobslist_backupnownonce_only&&e(".updraft_jobtimings.isautobackup").length?(autobackup_nonce=e(".updraft_jobtimings.isautobackup").first().data("jobid"),autobackup_nonce&&(updraft_inpage_hasbegun=1,updraft_backupnow_nonce=autobackup_nonce,n.thisjobonly=autobackup_nonce,console.log("UpdraftPlus: the start of the requested backup job has been detected; id: "+autobackup_nonce))):1==updraft_inpage_hasbegun&&e("#updraft-jobid-"+n.thisjobonly+".updraft_finished").length&&(updraft_inpage_hasbegun=2,console.log("UpdraftPlus: the end of the requested backup job has been detected"),updraft_activejobs_update_timer&&clearInterval(updraft_activejobs_update_timer),"undefined"!=typeof updraft_inpage_success_callback&&""!=updraft_inpage_success_callback?updraft_inpage_success_callback.call(!1):e("#updraft-backupnow-inpage-modal").dialog("close")),""==lastlog_jobs&&setTimeout(function(){e("#updraft_backup_started").slideUp()},3500),n.hasOwnProperty("thisjobonly")&&updraft_backupnow_nonce&&n.thisjobonly===updraft_backupnow_nonce){e(".updraft_requeststart").remove();var p=e("#updraft-jobid-"+updraft_backupnow_nonce);p.is(".updraft_finished")&&(updraft_activejobslist_backupnownonce_only=0,updraft_aborted_jobs[updraft_backupnow_nonce]?updraft_aborted_jobs=updraft_aborted_jobs.filter(function(t,e){return t!=updraft_backupnow_nonce}):updraft_active_job_is_clone(updraft_backupnow_nonce)?(updraft_show_success_modal(updraftlion.clone_backup_complete),updraft_clone_jobs=updraft_clone_jobs.filter(function(t){return t!=updraft_backupnow_nonce})):updraft_show_success_modal(updraftlion.backup_complete),updraft_backupnow_nonce="",updraft_activejobs_update(!0))}}else e("#updraft_activejobsrow").is(":hidden")||("undefined"!=typeof lastbackup_laststatus&&updraft_showlastbackup(),updraft_updatehistory(0,0),e("#updraft_activejobsrow").hide());if(lastlog_jobs=t.j,null!=t.ds&&""!=t.ds&&updraft_downloader_status_update(t.ds,o),null!=t.u&&""!=t.u&&e("#updraft-poplog").dialog("isOpen")){var _=t.u;if(_.nonce==updraft_poplog_log_nonce&&(updraft_poplog_log_pointer=_.pointer,null!=_.log&&""!=_.log)){var c=e("#updraft-poplog").scrollTop();e("#updraft-poplog-content").append(_.log),updraft_poplog_lastscroll!=c&&updraft_poplog_lastscroll!=-1||(e("#updraft-poplog").scrollTop(e("#updraft-poplog-content").prop("scrollHeight")),updraft_poplog_lastscroll=e("#updraft-poplog").scrollTop())}}}catch(f){console.log(updraftlion.unexpectedresponse+" "+o),console.log(f)}},{type:"GET",error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),!0===updraftplus_activejobs_list_fatal_error_alert&&(updraftplus_activejobs_list_fatal_error_alert=!1,alert(this.alert_done+" "+r.fatal_error_message));else{var n=e==a?a:a+" ("+e+")";console.error(n),console.log(t)}return!1}})}}function updraft_show_success_modal(t){"string"==typeof t&&(t={message:t});var e=jQuery.extend({icon:"yes",close:updraftlion.close,message:"",classes:"success"},t);jQuery.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)"},message:'<div class="updraft_success_popup '+e.classes+'"><span class="dashicons dashicons-'+e.icon+'"></span><div class="updraft_success_popup--message">'+e.message+'</div><button class="button updraft-close-overlay"><span class="dashicons dashicons-no-alt"></span>'+e.close+"</button></div>"}),setTimeout(jQuery.unblockUI,5e3),jQuery(".blockUI .updraft-close-overlay").on("click",function(){jQuery.unblockUI()})}function updraft_popuplog(t){var e=updraftlion.loading_log_file;t&&(e+=" (log."+t+".txt)"),jQuery("#updraft-poplog").dialog("option","title",e),jQuery("#updraft-poplog-content").html("<em>"+e+" ...</em> "),jQuery("#updraft-poplog").dialog("open"),updraft_send_command("get_log",t,function(t){updraft_poplog_log_pointer=t.pointer,updraft_poplog_log_nonce=t.nonce;var e="?page=updraftplus&action=downloadlog&force_download=1&updraftplus_backup_nonce="+t.nonce;jQuery("#updraft-poplog-content").html(t.log);var a={};a[updraftlion.downloadlogfile]=function(){window.location.href=e},a[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-poplog").dialog("option","buttons",a),jQuery("#updraft-poplog").dialog("option","title","log."+t.nonce+".txt"),updraft_poplog_lastscroll=-1},{type:"GET",timeout:6e4,error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft-poplog-content").append(r.fatal_error_message);else{var n=e==a?a:a+" ("+e+")";jQuery("#updraft-poplog-content").append(n),console.log(t)}}})}function updraft_showlastbackup(){updraft_send_command("get_fragment","last_backup_html",function(t){response=t.output,lastbackup_laststatus==response?setTimeout(function(){updraft_showlastbackup()},7e3):jQuery("#updraft_last_backup").html(response),lastbackup_laststatus=response},{type:"GET"})}function updraft_historytimertoggle(t){updraft_historytimer&&1!=t?(clearTimeout(updraft_historytimer),updraft_historytimer=0):(updraft_updatehistory(0,0),updraft_historytimer=setInterval(function(){updraft_updatehistory(0,0)},3e4),calculated_diskspace||(updraftplus_diskspace(),calculated_diskspace=1))}function updraft_updatehistory(t,e,a){"undefined"==typeof a&&(a=jQuery("#updraft_debug_mode").is(":checked")?1:0);var r=Math.round((new Date).getTime()/1e3);if(1==t||1==e)updraft_historytimer_notbefore=r+30;else if(r<updraft_historytimer_notbefore)return void console.log("Update history skipped: "+r.toString()+" < "+updraft_historytimer_notbefore.toString());1==t&&(1==e?(updraft_history_lastchecksum=!1,jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html('<p style="text-align:center;"><em>'+updraftlion.rescanningremote+"</em></p>")):(updraft_history_lastchecksum=!1,jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html('<p style="text-align:center;"><em>'+updraftlion.rescanning+"</em></p>")));var n=e?"remotescan":!!t&&"rescan",o={operation:n,debug:a};updraft_send_command("rescan",o,function(t){if(t.hasOwnProperty("logs_exist")&&t.logs_exist&&jQuery("#updraft_lastlogmessagerow .updraft-log-link").show(),t.hasOwnProperty("migrate_tab")&&t.migrate_tab&&(jQuery("#updraft-navtab-migrate").hasClass("nav-tab-active")||(jQuery("#updraft_migrate_tab_alt").html(""),jQuery("#updraft_migrate").replaceWith(jQuery(t.migrate_tab).find("#updraft_migrate")),setup_migrate_tabs())),t.hasOwnProperty("web_server_disk_space")&&(""==t.web_server_disk_space?(console.log("UpdraftPlus: web_server_disk_space is empty"),jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").length&&jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").slideUp("slow",function(){jQuery(this).remove()})):jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").length?jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").replaceWith(t.web_server_disk_space):jQuery("#updraft-navtab-backups-content .updraft-disk-space-actions").prepend(t.web_server_disk_space)),null!=t.n&&jQuery("#updraft-existing-backups-heading").html(t.n),null!=t.t){if(null!=t.cksum){if(t.cksum==updraft_history_lastchecksum)return;updraft_history_lastchecksum=t.cksum}jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html(t.t),updraft_backups_selection.checkSelectionStatus(),t.data&&console.log(t.data)}})}function updraft_exclude_entity_update(t){var e=[];jQuery("#updraft_include_"+t+"_exclude_container .updraft_exclude_entity_wrapper .updraft_exclude_entity_field").each(function(){var t=jQuery.trim(jQuery(this).data("val"));""!=t&&e.push(t)}),jQuery("#updraft_include_"+t+"_exclude").val(e.join(","))}function updraft_is_unique_exclude_rule(t,e){return existing_exclude_rules_str=jQuery("#updraft_include_"+e+"_exclude").val(),existing_exclude_rules=existing_exclude_rules_str.split(","),!(jQuery.inArray(t,existing_exclude_rules)>-1)||(alert(updraftlion.duplicate_exclude_rule_error_msg),!1)}function updraft_intervals_monthly_or_not(t,e){var a="#updraft-navtab-settings-content #"+t,r=jQuery(a+" option").length,n="monthly"==e,o=!1;if(r>10&&(o=!0),n||o){if(n&&o)return void("monthly"==e&&(jQuery(".updraft_monthly_extra_words_"+t).remove(),jQuery(a).before('<span class="updraft_monthly_extra_words_'+t+'">'+updraftlion.day+" </span>").after('<span class="updraft_monthly_extra_words_'+t+'"> '+updraftlion.inthemonth+" </span>")));if(jQuery(".updraft_monthly_extra_words_"+t).remove(),n){updraft_interval_week_val=jQuery(a+" option:selected").val(),jQuery(a).html(updraftlion.mdayselector).before('<span class="updraft_monthly_extra_words_'+t+'">'+updraftlion.day+" </span>").after('<span class="updraft_monthly_extra_words_'+t+'"> '+updraftlion.inthemonth+" </span>");var d=updraft_interval_month_val===!1?1:updraft_interval_month_val;d-=1,jQuery(a+" option:eq("+d+")").prop("selected",!0)}else{updraft_interval_month_val=jQuery(a+" option:selected").val(),jQuery(a).html(updraftlion.dayselector);var u=updraft_interval_week_val===!1?1:updraft_interval_week_val;jQuery(a+" option:eq("+u+")").prop("selected",!0)}}}function updraft_check_same_times(){var t=0,e=jQuery("#updraft-navtab-settings-content .updraft_interval").val();"manual"==e?jQuery("#updraft-navtab-settings-content .updraft_files_timings").hide():jQuery("#updraft-navtab-settings-content .updraft_files_timings").show(),"weekly"==e||"fortnightly"==e||"monthly"==e?(updraft_intervals_monthly_or_not("updraft_startday_files",e),jQuery("#updraft-navtab-settings-content #updraft_startday_files").show()):(jQuery(".updraft_monthly_extra_words_updraft_startday_files").remove(),jQuery("#updraft-navtab-settings-content #updraft_startday_files").hide());var a=jQuery("#updraft-navtab-settings-content .updraft_interval_database").val();"manual"==a&&(t=1,jQuery("#updraft-navtab-settings-content .updraft_db_timings").hide()),"weekly"==a||"fortnightly"==a||"monthly"==a?(updraft_intervals_monthly_or_not("updraft_startday_db",a),jQuery("#updraft-navtab-settings-content #updraft_startday_db").show()):(jQuery(".updraft_monthly_extra_words_updraft_startday_db").remove(),jQuery("#updraft-navtab-settings-content #updraft_startday_db").hide()),a==e?(jQuery("#updraft-navtab-settings-content .updraft_db_timings").hide(),0==t?jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").show():jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").hide()):(jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").hide(),0==t&&jQuery("#updraft-navtab-settings-content .updraft_db_timings").show())}function updraft_activejobs_delete(t){updraft_aborted_jobs[t]=1,jQuery("#updraft-jobid-"+t).closest(".updraft_row").addClass("deleting"),updraft_send_command("activejobs_delete",t,function(e){var a=jQuery("#updraft-jobid-"+t).closest(".updraft_row");a.addClass("deleting"),"Y"==e.ok?(jQuery("#updraft-jobid-"+t).html(e.m),a.remove(),jQuery("#updraft-backupnow-inpage-modal").dialog("isOpen")&&jQuery("#updraft-backupnow-inpage-modal").dialog("close"),updraft_show_success_modal({message:updraft_active_job_is_clone(t)?updraftlion.clone_backup_aborted:updraftlion.backup_aborted,icon:"no-alt",classes:"warning"})):"N"==e.ok?(a.removeClass("deleting"),alert(e.m)):(a.removeClass("deleting"),alert(updraftlion.unexpectedresponse),console.log(e))})}function updraftplus_diskspace_entity(t){jQuery("#updraft_diskspaceused_"+t).html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:t},function(e){jQuery("#updraft_diskspaceused_"+t).html(e.output)},{type:"GET"})}function updraft_active_job_is_clone(t){return updraft_clone_jobs.filter(function(e){return e==t}).length}function updraft_iframe_modal(t,e){var a=780,r=500;jQuery("#updraft-iframe-modal-innards").html('<iframe width="100%" height="430px" src="'+ajaxurl+"?action=updraft_ajax&subaction="+t+"&nonce="+updraft_credentialtest_nonce+'"></iframe>'),jQuery("#updraft-iframe-modal").dialog("option","title",e).dialog("option","width",a).dialog("option","height",r).dialog("open")}function updraft_html_modal(t,e,a,r){jQuery("#updraft-iframe-modal-innards").html(t);var n={};a<450&&(n[updraftlion.close]=function(){jQuery(this).dialog("close")}),jQuery("#updraft-iframe-modal").dialog("option","title",e).dialog("option","width",a).dialog("option","height",r).dialog("option","buttons",n).dialog("open")}function updraftplus_diskspace(){jQuery("#updraft-navtab-backups-content .updraft_diskspaceused").html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:"updraft"},function(t){jQuery("#updraft-navtab-backups-content .updraft_diskspaceused").html(t.output)},{type:"GET"})}function updraftplus_deletefromserver(t,e,a){a||(a=0);var r={stage:"delete",timestamp:t,type:e,findex:a};updraft_send_command("updraft_download_backup",r,null,{action:"updraft_download_backup",nonce:updraft_download_nonce,nonce_key:"_wpnonce"})}function updraftplus_downloadstage2(t,e,a){location.href=ajaxurl+"?_wpnonce="+updraft_download_nonce+"&timestamp="+t+"&type="+e+"&stage=2&findex="+a+"&action=updraft_download_backup"}function updraftplus_show_contents(t,e,a){var r='<div id="updraft_zip_files_container" class="hidden-in-updraftcentral" style="clear:left;"><div id="updraft_zip_info_container" class="updraft_jstree_info_container"><p><span id="updraft_zip_path_text">'+updraftlion.zip_file_contents_info+'</span> - <span id="updraft_zip_size_text"></span></p>'+updraftlion.browse_download_link+'</div><div id="updraft_zip_files_jstree_container"><input type="search" id="zip_files_jstree_search" name="zip_files_jstree_search" placeholder="'+updraftlion.search+'"><div id="updraft_zip_files_jstree" class="updraft_jstree"></div></div></div>';updraft_html_modal(r,updraftlion.zip_file_contents,780,500),zip_files_jstree("zipbrowser",t,e,a)}function zip_files_jstree(t,e,a,r){jQuery("#updraft_zip_files_jstree").jstree({core:{multiple:!1,data:function(n,o){updraft_send_command("get_jstree_directory_nodes",{entity:t,node:n,timestamp:e,type:a,findex:r},function(t){t.hasOwnProperty("error")?alert(t.error):o.call(this,t.nodes)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}})},error:function(t){alert(t),console.log(t)}},search:{show_only_matches:!0},plugins:["search","sort"]}),jQuery("#updraft_zip_files_jstree").on("ready.jstree",function(t,e){jQuery("#updraft-iframe-modal").dialog("option","title",updraftlion.zip_file_contents+": "+e.instance.get_node("#").children[0])});var n=!1;jQuery("#zip_files_jstree_search").keyup(function(){n&&clearTimeout(n),n=setTimeout(function(){var t=jQuery("#zip_files_jstree_search").val();jQuery("#updraft_zip_files_jstree").jstree(!0).search(t)},250)}),jQuery("#updraft_zip_files_jstree").on("changed.jstree",function(t,e){jQuery("#updraft_zip_path_text").text(e.node.li_attr.path),e.node.li_attr.size?(jQuery("#updraft_zip_size_text").text(e.node.li_attr.size),jQuery("#updraft_zip_download_item").show()):(jQuery("#updraft_zip_size_text").text(""),jQuery("#updraft_zip_download_item").hide())}),jQuery("#updraft_zip_download_item").click(function(t){t.preventDefault();var n=jQuery("#updraft_zip_path_text").text();updraft_send_command("get_zipfile_download",{path:n,timestamp:e,type:a,findex:r},function(t){t.hasOwnProperty("error")?alert(t.error):t.hasOwnProperty("path")?location.href=ajaxurl+"?_wpnonce="+updraft_download_nonce+"&timestamp="+e+"&type="+a+"&stage=2&findex="+r+"&filepath="+t.path+"&action=updraft_download_backup":alert(updraftlion.download_timeout)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})})}function remove_updraft_downloader(t,e){jQuery(t).parent().fadeOut().remove(),0==jQuery(".updraftplus_downloader_container_"+e+" .updraftplus_downloader").length&&jQuery(".updraftplus_downloader_container_"+e).remove()}function updraft_downloader(t,e,a,r,n,o,d){"string"!=typeof n&&(n=n.toString()),jQuery(".ud_downloadstatus").show();var n=n.split(","),u=o?o:e,s=jQuery("#updraft-navtab-backups-content .uddownloadform_"+a+"_"+e+"_"+n[0]).data("wp_nonce").toString();jQuery(r).append('<div class="updraftplus_downloader_container_'+a+' postbox"></div>'),jQuery(".updraftplus_downloader_container_"+a).append('<strong style="clear:left; padding: 8px; margin-top: 4px;">'+updraftlion.download+" "+a+" ("+u+"):</strong>");for(var i=0;i<n.length;i++){var l=t+e+"_"+a+"_"+n[i],p="."+l,_=parseInt(n[i]);_++;var c=0==n[i]?"":" ("+_+")";jQuery(p).length||(jQuery(".updraftplus_downloader_container_"+a).append('<div style="clear:left; padding: 8px; margin-top: 4px;" class="'+l+' updraftplus_downloader"><button onclick="remove_updraft_downloader(this, \''+a+'\');" type="button" style="float:right; margin-bottom: 8px;" class="ud_downloadstatus__close" aria-label="Close"><span class="dashicons dashicons-no-alt"></span></button><strong>'+a+c+'</strong>:<div class="raw">'+updraftlion.begunlooking+'</div><div class="file '+l+'_st"><div class="dlfileprogress" style="width: 0;"></div></div></div>'),jQuery(p).data("downloaderfor",{base:t,nonce:e,what:a,index:n[i]}),setTimeout(function(){updraft_activejobs_update(!0)},1500)),jQuery(p).data("lasttimebegan",(new Date).getTime())}d=!!d;var f={type:a,timestamp:e,findex:n},m={action:"updraft_download_backup",nonce_key:"_wpnonce",nonce:s,timeout:1e4,async:d};return updraft_send_command("updraft_download_backup",f,function(t){},m),!1}function ud_parse_json(t){t.charAt(0),t.charAt(t.length-1);try{var e=JSON.parse(t);return e}catch(a){console.log("UpdraftPlus: Exception when trying to parse JSON (1) - will attempt to fix/re-parse"),console.log(t)}var r=t.indexOf("{"),n=t.lastIndexOf("}");if(r>-1&&n>-1){var o=t.slice(r,n+1);try{var d=JSON.parse(o);return console.log("UpdraftPlus: JSON re-parse successful"),d}catch(a){throw console.log("UpdraftPlus: Exception when trying to parse JSON (2)"),a}}throw"UpdraftPlus: could not parse the JSON"}function updraft_restorer_checkstage2(t){var e=jQuery("#ud_downloadstatus2 .file").length;return e>0?void(t&&alert(updraftlion.stilldownloading)):(jQuery("#updraft-restore-modal-stage2a").html(updraftlion.processing),void updraft_send_command("restore_alldownloaded",{timestamp:jQuery("#updraft_restore_timestamp").val(),restoreopts:jQuery("#updraft_restore_form").serialize()},function(t,e,a){var r=null;jQuery("#updraft_restorer_restore_options").val("");try{if(null==t)return void jQuery("#updraft-restore-modal-stage2a").html(updraftlion.emptyresponse);
2
- var n=t.m;if(""!=t.w&&(n=n+"<p><strong>"+updraftlion.warnings+"</strong><br>"+t.w+"</p>"),""!=t.e?n=n+"<p><strong>"+updraftlion.errors+"</strong><br>"+t.e+"</p>":updraft_restore_stage=3,t.hasOwnProperty("i")){try{if(r=ud_parse_json(t.i),r.hasOwnProperty("addui")){console.log("Further UI options are being displayed");var o=r.addui;n+='<div id="updraft_restoreoptions_ui" style="clear:left; padding-top:10px;">'+o+"</div>","object"==typeof JSON&&"function"==typeof JSON.stringify&&(delete r.addui,t.i=JSON.stringify(r))}}catch(d){console.log(d),console.log(t)}jQuery("#updraft_restorer_backup_info").val(t.i)}else jQuery("#updraft_restorer_backup_info").val();jQuery("#updraft-restore-modal-stage2a").html(n),jQuery("#updraft-restore-modal-stage2a .updraft_select2").length>0&&jQuery("#updraft-restore-modal-stage2a .updraft_select2").select2()}catch(d){console.log(a),console.log(d),jQuery("#updraft-restore-modal-stage2a").text(updraftlion.jsonnotunderstood+" "+updraftlion.errordata+": "+a).html()}},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft-restore-modal-stage2a").html('<p style="color: red;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft-restore-modal-stage2a").html('<p style="color: red;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}}))}function updraft_downloader_status(t,e,a,r){}function updraft_downloader_status_update(t,e){var a=0;return jQuery(t).each(function(t,r){if(""!=r.base){var n=r.base+r.timestamp+"_"+r.what+"_"+r.findex,o="."+n;if(null!=r.e)jQuery(o+" .raw").html("<strong>"+updraftlion.error+"</strong> "+r.e),console.log(r);else if(null!=r.p){if(jQuery(o+"_st .dlfileprogress").width(r.p+"%"),null!=r.a&&r.a>0){var d=(new Date).getTime(),u=jQuery(o).data("lasttimebegan"),s=d-u;if(r.a>90&&s>6e4){console.log(r.timestamp+" "+r.what+" "+r.findex+": restarting download: file_age="+r.a+", sincelastrestart_ms="+s),jQuery(o).data("lasttimebegan",(new Date).getTime());var i=jQuery("#updraft-navtab-backups-content .uddownloadform_"+r.what+"_"+r.timestamp+"_"+r.findex),l={type:r.what,timestamp:r.timestamp,findex:r.findex},p={action:"updraft_download_backup",nonce_key:"_wpnonce",nonce:i.data("wp_nonce").toString(),timeout:1e4};updraft_send_command("updraft_download_backup",l,function(t){},p),jQuery(o).data("lasttimebegan",(new Date).getTime())}}if(null!=r.m)if(r.p>=100&&"udrestoredlstatus_"==r.base)jQuery(o+" .raw").html(r.m),jQuery(o).fadeOut("slow",function(){remove_updraft_downloader(this,r.what),updraft_restorer_checkstage2(0)});else if(r.p<100||"uddlstatus_"!=r.base)jQuery(o+" .raw").html(r.m);else{var _=updraftlion.fileready+" "+updraftlion.actions+': \t\t\t\t<button class="button" type="button" onclick="updraftplus_downloadstage2(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.downloadtocomputer+'</button> \t\t\t\t<button class="button" id="uddownloaddelete_'+r.timestamp+"_"+r.what+'" type="button" onclick="updraftplus_deletefromserver(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.deletefromserver+"</button>";r.hasOwnProperty("can_show_contents")&&r.can_show_contents&&(_+=' <button class="button" type="button" onclick="updraftplus_show_contents(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.browse_contents+"</button>"),jQuery(o+" .raw").html(_),jQuery(o+"_st").remove()}}else null!=r.m?jQuery(o+" .raw").html(r.m):(jQuery(o+" .raw").html(updraftlion.jsonnotunderstood+" ("+e+")"),a=1)}}),a}function updraft_backupnow_go(t,e,a,r,n,o,d){var u={backupnow_nodb:t,backupnow_nofiles:e,backupnow_nocloud:a,backupnow_label:o,extradata:n};if(""!=r&&(u.onlythisfileentity=r),""!=d&&(u.onlythesetableentities=d),u.always_keep="undefined"!=typeof n.always_keep?n.always_keep:0,delete n.always_keep,!jQuery(".updraft_requeststart").length){var s=jQuery('<div class="updraft_requeststart" />').html('<span class="spinner"></span>'+updraftlion.requeststart);s.data("remove",!1),setTimeout(function(){s.data("remove",!0)},3e3),setTimeout(function(){s.remove()},75e3),jQuery("#updraft_activejobsrow").before(s)}updraft_activejobslist_backupnownonce_only=1,updraft_send_command("backupnow",u,function(t){jQuery("#updraft_backup_started").html(t.m),t.hasOwnProperty("nonce")&&(updraft_backupnow_nonce=t.nonce,console.log("UpdraftPlus: ID of started job: "+updraft_backupnow_nonce)),setTimeout(function(){updraft_activejobs_update(!0)},500)})}var onlythesefileentities=backupnow_whichfiles_checked("");""==onlythesefileentities?jQuery("#backupnow_includefiles_moreoptions").show():jQuery("#backupnow_includefiles_moreoptions").hide();var updraft_restore_stage=1,lastlog_lastmessage="",lastlog_lastdata="",lastlog_jobs="",updraft_activejobs_nextupdate=(new Date).getTime()+1e3,updraft_page_is_visible=1,updraft_console_focussed_tab=updraftlion.tab,updraft_settings_form_changed=!1;window.onbeforeunload=function(t){if(updraft_settings_form_changed)return updraftlion.unsavedsettings},"undefined"!=typeof document.hidden&&document.addEventListener("visibilitychange",function(){updraft_check_page_visibility(0)},!1),updraft_check_page_visibility(1);var updraft_poplog_log_nonce,updraft_poplog_log_pointer=0,updraft_poplog_lastscroll=-1,updraft_last_forced_jobid=-1,updraft_last_forced_resumption=-1,updraft_last_forced_when=-1,updraft_backupnow_nonce="",updraft_activejobslist_backupnownonce_only=0,updraft_inpage_hasbegun=0,updraft_activejobs_update_timer,updraft_aborted_jobs=[],updraft_clone_jobs=[],updraft_backups_selection={};!function(t){updraft_backups_selection.toggle=function(e){var a=t(e);a.is(".backuprowselected")?this.deselect(e):this.select(e)},updraft_backups_selection.select=function(e){t(e).addClass("backuprowselected"),t(e).find(".backup-select input").prop("checked",!0),this.checkSelectionStatus()},updraft_backups_selection.deselect=function(e){t(e).removeClass("backuprowselected"),t(e).find(".backup-select input").prop("checked",!1),this.checkSelectionStatus()},updraft_backups_selection.selectAll=function(){t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").each(function(t,e){updraft_backups_selection.select(e)})},updraft_backups_selection.deselectAll=function(){t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").each(function(t,e){updraft_backups_selection.deselect(e)})},updraft_backups_selection.checkSelectionStatus=function(){var e=t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").length,a=t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").length;a>0?(t("#ud_massactions").addClass("active"),t(".js--deselect-all-backups, .js--delete-selected-backups").prop("disabled",!1)):(t("#ud_massactions").removeClass("active"),t(".js--deselect-all-backups, .js--delete-selected-backups").prop("disabled",!0)),e===a?t("#cb-select-all").prop("checked",!0):t("#cb-select-all").prop("checked",!1),e?t("#ud_massactions").show():t("#ud_massactions").hide()}}(jQuery);var updraftplus_activejobs_list_fatal_error_alert=!0,updraft_historytimer=0,calculated_diskspace=0,updraft_historytimer_notbefore=0,updraft_history_lastchecksum=!1,updraft_interval_week_val=!1,updraft_interval_month_val=!1;"undefined"!=typeof updraft_siteurl&&setInterval(function(){jQuery.get(updraft_siteurl+"/wp-cron.php")},21e4);var lastlog_lastmessage="";jQuery(document).ajaxError(function(t,e,a,r){if(null!=r&&""!=r&&null!=e.responseText&&""!=e.responseText&&(console.log("Error caught by UpdraftPlus ajaxError handler (follows) for "+a.url),console.log(r),0==a.url.search(ajaxurl)))if(a.url.search("subaction=downloadstatus")>=0){var n=a.url.match(/timestamp=\d+/),o=a.url.match(/type=[a-z]+/),d=a.url.match(/findex=\d+/),u=a.url.match(/base=[a-z_]+/);if(d=d instanceof Array?parseInt(d[0].substr(7)):0,o=o instanceof Array?o[0].substr(5):"",u=u instanceof Array?u[0].substr(5):"",n=n instanceof Array?parseInt(n[0].substr(10)):0,""!=u&&""!=o&&n>0){var s=u+n+"_"+o+"_"+d;jQuery("."+s+" .raw").html("<strong>"+updraftlion.error+"</strong> "+updraftlion.servererrorcode)}}else a.url.search("subaction=restore_alldownloaded")>=0&&jQuery("#updraft-restore-modal-stage2a").append("<br><strong>"+updraftlion.error+"</strong> "+updraftlion.servererrorcode+": "+r)}),jQuery(document).ready(function(t){function e(e){t('.expertmode .advanced_settings_container .advanced_tools:not(".'+e+'")').hide(),t(".expertmode .advanced_settings_container .advanced_tools."+e).fadeIn("slow"),t(".expertmode .advanced_settings_container .advanced_tools_button:not(#"+e+")").removeClass("active"),t(".expertmode .advanced_settings_container .advanced_tools_button#"+e).addClass("active")}function a(e){t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html("").hide(),updraft_send_command("updraftplus_com_login_submit",{data:e},function(e){e.hasOwnProperty("success")?t("#updraft-navtab-addons-content .wrap .updraftplus_com_login").submit():e.hasOwnProperty("error")&&t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html(e.message).show()})}function r(e){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .updraftplus_spinner.spinner").addClass("visible"),updraft_send_command("process_updraftplus_clone_login",e,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html(e.message).show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").show(),void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val("");e.hasOwnProperty("tfa_enabled")&&1==e.tfa_enabled&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 input#temporary_clone_options_two_factor_code").focus()),"authenticated"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 input#temporary_clone_options_two_factor_code").val(""),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").html(e.html))}catch(a){console.log(a)}})}function n(e){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .updraftplus_spinner.spinner").addClass("visible"),updraft_send_command("process_updraftplus_clone_login",e,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html(e.message).show();"authenticated"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").html(e.html))}catch(a){console.log(a)}})}function o(t,e,a,r){var n={updraftplus_clone_backup:1,backupnow_nodb:0,backupnow_nofiles:0,backupnow_nocloud:0,backupnow_label:"UpdraftPlus Clone",extradata:"",onlythisfileentity:"plugins,themes,uploads,others",clone_id:t,secret_token:e,clone_url:a,key:r};updraft_activejobslist_backupnownonce_only=1,updraft_send_command("backupnow",n,function(t){jQuery("#updraft_clone_progress .updraftplus_spinner.spinner").removeClass("visible"),jQuery("#updraft_backup_started").html(t.m),t.hasOwnProperty("nonce")&&(updraft_backupnow_nonce=t.nonce,updraft_clone_jobs.push(updraft_backupnow_nonce),updraft_inpage_success_callback=function(){jQuery("#updraft_clone_activejobsrow").hide(),updraft_aborted_jobs[updraft_backupnow_nonce]?jQuery("#updraft_clone_progress").html(updraftlion.clone_backup_aborted):jQuery("#updraft_clone_progress").html(updraftlion.clone_backup_complete)},console.log("UpdraftPlus: ID of started job: "+updraft_backupnow_nonce)),updraft_activejobs_update(!0)})}function d(t){var e=Handlebars.compile(updraftlion.remote_storage_templates[t]),a=updraftlion.remote_storage_options[t]["default"];a.instance_id="s-"+u(32),a.instance_enabled=1;var r=e(a);jQuery(r).hide().insertAfter("."+t+"_add_instance_container:first").show("slow")}function u(t){for(var e="",a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=0;r<t;r++)e+=a.charAt(Math.floor(Math.random()*a.length));return e}function s(t){var e=!!jQuery("#updraftcentral_mothership_other").is(":checked");e?(jQuery("#updraftcentral_keycreate_mothership").prop("disabled",!1),t?jQuery("#updraftcentral_keycreate_mothership_firewalled_container").show():(jQuery(".updraftcentral_wizard_self_hosted_stage2").show(),jQuery("#updraftcentral_keycreate_mothership_firewalled_container").slideDown(),jQuery("#updraftcentral_keycreate_mothership").focus())):(jQuery("#updraftcentral_keycreate_mothership").prop("disabled",!0),t||(jQuery(".updraftcentral_wizard_self_hosted_stage2").hide(),i()))}function i(){jQuery("#updraftcentral_wizard_stage1_error").text("");var t="";if(jQuery("#updraftcentral_mothership_updraftpluscom").is(":checked"))jQuery(".updraftcentral_keycreate_description").hide(),t="updraftplus.com";else if(jQuery("#updraftcentral_mothership_other").is(":checked")){jQuery(".updraftcentral_keycreate_description").show();var e=jQuery("#updraftcentral_keycreate_mothership").val();if(""==e)return void jQuery("#updraftcentral_wizard_stage1_error").text(updraftlion.updraftcentral_wizard_empty_url);try{var a=new URL(e);t=a.hostname}catch(r){if("undefined"==typeof URL&&(t=jQuery("<a>").prop("href",e).prop("hostname")),!t||"undefined"!=typeof URL)return void jQuery("#updraftcentral_wizard_stage1_error").text(updraftlion.updraftcentral_wizard_invalid_url)}}jQuery("#updraftcentral_keycreate_description").val(t),jQuery(".updraftcentral_wizard_stage1").hide(),jQuery(".updraftcentral_wizard_stage2").show()}function l(e,a,r,n){jQuery("#updraft-delete-modal").dialog("close");var o=e,d=a,u=r,s=n,i=jQuery("#updraft_delete_timestamp").val().split(","),p=jQuery("#updraft_delete_form").serializeArray(),_={};t.each(p,function(){void 0!==_[this.name]?(_[this.name].push||(_[this.name]=[_[this.name]]),_[this.name].push(this.value||"")):_[this.name]=this.value||""}),_.delete_remote?jQuery("#updraft-delete-waitwarning").find(".updraft-deleting-remote").show():jQuery("#updraft-delete-waitwarning").find(".updraft-deleting-remote").hide(),jQuery("#updraft-delete-waitwarning").slideDown().addClass("active"),_.remote_delete_limit=updraftlion.remote_delete_limit,delete _.action,delete _.subaction,delete _.nonce,updraft_send_command("deleteset",_,function(t){if(!t.hasOwnProperty("result")||null==t.result)return void jQuery("#updraft-delete-waitwarning").slideUp();if("error"==t.result)jQuery("#updraft-delete-waitwarning").slideUp(),alert(updraftlion.error+" "+t.message);else if("continue"==t.result){o=o+t.backup_local+t.backup_remote,d+=t.backup_local,u+=t.backup_remote,s+=t.backup_sets;for(var e=t.deleted_timestamps.split(","),a=0;a<e.length;a++){var r=e[a];jQuery("#updraft-navtab-backups-content .updraft_existing_backups_row_"+r).slideUp().remove()}jQuery("#updraft_delete_timestamp").val(t.timestamps),jQuery("#updraft-deleted-files-total").text(o+" "+updraftlion.remote_files_deleted),l(o,d,u,s)}else if("success"==t.result){setTimeout(function(){jQuery("#updraft-deleted-files-total").text(""),jQuery("#updraft-delete-waitwarning").slideUp()},500),t.hasOwnProperty("count_backups")&&jQuery("#updraft-existing-backups-heading").html(updraftlion.existing_backups+' <span class="updraft_existing_backups_count">'+t.count_backups+"</span>");for(var a=0;a<i.length;a++){var r=i[a];jQuery("#updraft-navtab-backups-content .updraft_existing_backups_row_"+r).slideUp().remove()}updraft_backups_selection.checkSelectionStatus(),updraft_history_lastchecksum=!1,d+=t.backup_local,u+=t.backup_remote,s+=t.backup_sets,setTimeout(function(){alert(t.set_message+" "+s+"\n"+t.local_message+" "+d+"\n"+t.remote_message+" "+u)},900)}})}function p(t,e){jQuery("#updraft-navtab-settings-content #updraft_include_"+t).is(":checked")?e?jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").show():jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").slideDown():e?jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude").hide():jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").slideUp()}function _(){var t=new plupload.Uploader(updraft_plupload_config);t.bind("Init",function(t){var e=jQuery("#plupload-upload-ui");t.features.dragdrop?(e.addClass("drag-drop"),jQuery("#drag-drop-area").bind("dragover.wp-uploader",function(){e.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){e.removeClass("drag-over")})):(e.removeClass("drag-drop"),jQuery("#drag-drop-area").unbind(".wp-uploader"))}),t.init(),t.bind("FilesAdded",function(e,a){plupload.each(a,function(e){if(!/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-[\-a-z]+([0-9]+?)?(\.(zip|gz|gz\.crypt))?$/i.test(e.name)&&!/^log\.([0-9a-f]{12})\.txt$/.test(e.name)){for(var a=!1,r=0;r<updraft_accept_archivename.length;r++)if(updraft_accept_archivename[r].test(e.name))var a=!0;if(!a)return/\.(zip|tar|tar\.gz|tar\.bz2)$/i.test(e.name)||/\.sql(\.gz)?$/i.test(e.name)?(jQuery("#updraft-message-modal-innards").html("<p><strong>"+e.name+"</strong></p> "+updraftlion.notarchive2),jQuery("#updraft-message-modal").dialog("open")):alert(e.name+": "+updraftlion.notarchive),void t.removeFile(e)}jQuery("#filelist").append('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(0)+"</span>/"+plupload.formatSize(e.size)+') <div class="fileprogress"></div></div>')}),e.refresh(),e.start()}),t.bind("UploadProgress",function(t,e){jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"),jQuery("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100))),e.size==e.loaded&&(jQuery("#"+e.id).html('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(parseInt(e.size*e.percent/100))+"</span>/"+plupload.formatSize(e.size)+") - "+updraftlion.complete+"</div>"),jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"))}),t.bind("Error",function(t,e){console.log(e);var a;a="-200"==e.code?"\n"+updraftlion.makesure2:updraftlion.makesure;var r=updraftlion.uploaderr+" (code "+e.code+") : "+e.message;e.hasOwnProperty("status")&&e.status&&(r+=" ("+updraftlion.http_code+" "+e.status+")"),e.hasOwnProperty("response")&&(console.log("UpdraftPlus: plupload error: "+e.response),e.response.length<100&&(r+=" "+updraftlion.error+" "+e.response+"\n")),r+=" "+a,alert(r)}),t.bind("FileUploaded",function(t,e,a){if("200"==a.status)try{resp=ud_parse_json(a.response),resp.e?alert(updraftlion.uploaderror+" "+resp.e):resp.dm?(alert(resp.dm),updraft_updatehistory(1,0)):resp.m?updraft_updatehistory(1,0):alert("Unknown server response: "+a.response)}catch(r){console.log(a),alert(updraftlion.jsonnotunderstood)}else alert("Unknown server response status: "+a.code),console.log(a)})}function c(t){params={uri:jQuery("#updraftplus_httpget_uri").val()},params.curl=t,updraft_send_command("httpget",params,function(t){t.e&&alert(t.e),t.r?jQuery("#updraftplus_httpget_results").html("<pre>"+t.r+"</pre>"):console.log(t)},{type:"GET"})}function f(t,e,a){updraft_restore_setoptions(t),jQuery("#updraft_restore_timestamp").val(e),jQuery(".updraft_restore_date").html(a),updraft_restore_stage=1,jQuery("#updraft-restore-modal").dialog("open"),jQuery("#updraft-restore-modal-stage1").show(),jQuery("#updraft-restore-modal-stage2").hide(),jQuery("#updraft-restore-modal-stage2a").html(""),updraft_activejobs_update(!0)}function m(t){t=t.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var e="[\\?&]"+t+"=([^&#]*)",a=new RegExp(e),r=a.exec(window.location.href);return null==r?"":decodeURIComponent(r[1].replace(/\+/g," "))}function g(e,a,r){jQuery("#updraft_upload_timestamp").val(e),jQuery("#updraft_upload_nonce").val(a);var n=r.split(",");jQuery(".updraft_remote_storage_destination").each(function(e){var a=jQuery(this).val();if(jQuery.inArray(a,n)==-1){jQuery(this).prop("checked",!1),jQuery(this).prop("disabled",!0);var r=t(this).prop("labels");jQuery(r).append(" "+updraftlion.already_uploaded)}}),jQuery("#updraft-upload-modal").dialog("open")}if(t(".expertmode .advanced_settings_container .advanced_tools_button").click(function(){e(t(this).attr("id"))}),jQuery.ui&&jQuery.ui.dialog&&jQuery.ui.dialog.prototype._allowInteraction){var h=jQuery.ui.dialog.prototype._allowInteraction;jQuery.ui.dialog.prototype._allowInteraction=function(t){return!!jQuery(t.target).closest(".select2-dropdown").length||h.apply(this,arguments)}}t("#updraftcentral_keys").on("click","a.updraftcentral_keys_show",function(e){e.preventDefault(),t(this).remove(),t("#updraftcentral_keys_table").slideDown()}),t("#updraftcentral_keycreate_altmethod_moreinfo_get").click(function(e){e.preventDefault(),t(this).remove(),t("#updraftcentral_keycreate_altmethod_moreinfo").slideDown()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("change keyup paste",".updraft_webdav_settings",function(){var e=[];t(".updraft_webdav_settings").each(function(a,r){var n=t(r).attr("id");if(n&&"updraft_webdav_"==n.substring(0,15)){var o=n.substring(15);id_split=o.split("_"),o=id_split[0];var d=id_split[1];"undefined"==typeof e[d]&&(e[d]=[]),e[d][o]=this.value}});var a="",r="@",n="/",o=":",d=":";for(var u in e)(e[u].host.indexOf("@")>=0||""===e[u].host)&&(r=""),e[u].host.indexOf("/")>=0?t("#updraft_webdav_host_error").show():t("#updraft_webdav_host_error").hide(),0!=e[u].path.indexOf("/")&&""!==e[u].path||(n=""),""!==e[u].user&&""!==e[u].pass||(o=""),""!==e[u].host&&""!==e[u].port||(d=""),a=e[u].webdav+e[u].user+o+e[u].pass+r+encodeURIComponent(e[u].host)+d+e[u].port+n+e[u].path,t("#updraft_webdav_url_"+u).val(a)}),t("#updraft-navtab-backups-content").on("click",".js--delete-selected-backups",function(t){t.preventDefault(),updraft_deleteallselected()}),t("#updraft-navtab-backups-content").on("click",".updraft_existing_backups .backup-select input",function(e){updraft_backups_selection.toggle(t(this).closest(".updraft_existing_backups_row"))}),t("#updraft-navtab-backups-content").on("click","#cb-select-all",function(e){t(this).is(":checked")?updraft_backups_selection.selectAll():updraft_backups_selection.deselectAll()}),t("#updraft-navtab-backups-content").on("click",".js--select-all-backups",function(t){updraft_backups_selection.selectAll()}),t("#updraft-navtab-backups-content").on("click",".js--deselect-all-backups",function(t){updraft_backups_selection.deselectAll()}),t("#updraft-navtab-backups-content").on("click",".updraft_existing_backups .updraft_existing_backups_row",function(t){(t.ctrlKey||t.metaKey)&&updraft_backups_selection.toggle(this)}),updraft_backups_selection.checkSelectionStatus(),t("#updraft-navtab-addons-content .wrap").on("click",".updraftplus_com_login .ud_connectsubmit",function(e){e.preventDefault();var r=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_email").val(),n=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_password").val(),o=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_auto_updates").is(":checked")?1:0,d={email:r,password:n,auto_update:o};a(d)}),t("#updraft-navtab-addons-content .wrap").on("keydown",".updraftplus_com_login input",function(e){if(13==e.which){e.preventDefault();var r=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_email").val(),n=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_password").val(),o=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_auto_updates").is(":checked")?1:0,d={email:r,password:n,auto_update:o};a(d)}}),t("#updraft-navtab-migrate-content").on("click",".updraftclone_show_step_1",function(e){t(".updraftplus-clone").addClass("opened"),t(".updraftclone_show_step_1").hide(),t(".updraft_migrate_widget_temporary_clone_stage1").show(),t(".updraft_migrate_widget_temporary_clone_stage0").hide()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_temporary_clone_show_stage0",function(e){e.preventDefault(),t(".updraft_migrate_widget_temporary_clone_stage0").toggle()}),setup_migrate_tabs(),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .close",function(e){t(".updraft_migrate_intro").show(),t(this).closest(".updraft_migrate_widget_module_content").hide()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_add_site--trigger",function(e){e.preventDefault(),t(".updraft_migrate_add_site").toggle()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .updraftplus_com_login .ud_connectsubmit",function(e){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_email").val(),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_password").val(),o=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val(),d=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .temporary_clone_terms_and_conditions").is(":checked")?1:0,u={form_data:{email:a,password:n,two_factor_code:o,consent:d}};a&&n?r(u):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.username_password_required).show()}),t("#updraft-navtab-migrate-content").on("keydown",".updraft_migrate_widget_module_content .updraftplus_com_login input",function(e){if(13==e.which){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_email").val(),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_password").val(),o=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val(),d=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .temporary_clone_terms_and_conditions").is(":checked")?1:0,u={form_data:{email:a,password:n,two_factor_code:o,consent:d}};a&&n?r(u):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.username_password_required).show()}}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .updraftplus_com_key .ud_key_connectsubmit",function(e){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key #temporary_clone_options_key").val(),r=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .temporary_clone_terms_and_conditions").is(":checked")?1:0,o={form_data:{clone_key:a,consent:r}};a?n(o):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.clone_key_required).show()}),t("#updraft-navtab-migrate-content").on("keydown",".updraft_migrate_widget_module_content .updraftplus_com_key input",function(e){if(13==e.which){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key #temporary_clone_options_key").val(),r=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .temporary_clone_terms_and_conditions").is(":checked")?1:0,o={form_data:{clone_key:a,consent:r}};a?n(o):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.clone_key_required).show()}}),t("#updraft-navtab-migrate-content").on("change",".updraft_migrate_widget_module_content #updraftplus_clone_php_options",function(){var e=t(this).data("php_version"),a=t(this).val();a<e?t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.clone_version_warning):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html("")}),t("#updraft-navtab-migrate-content").on("change",".updraft_migrate_widget_module_content #updraftplus_clone_wp_options",function(){var e=t(this).data("wp_version"),a=t(this).val();a<e?t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.clone_version_warning):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html("")}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content #updraft_migrate_createclone",function(e){e.preventDefault(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!0),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(""),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_spinner.spinner").addClass("visible");var a=t(this).data("clone_id"),r=t(this).data("secret_token"),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_php_options").val(),d=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_wp_options").val(),u=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_region_options").val(),s=t(".updraftplus_clone_admin_login_options").is(":checked"),i={
3
- form_data:{clone_id:a,secret_token:r,install_info:{php_version:n,wp_version:d,region:u,admin_only:s}}};updraft_send_command("process_updraftplus_clone_create",i,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!1),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.error+" "+e.message).show();"success"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage3").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage3").html(e.html),jQuery("#updraft_clone_progress .updraftplus_spinner.spinner").addClass("visible"),o(a,r,e.url,e.key))}catch(n){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!1),console.log("Error when processing the response of process_updraftplus_clone_create (as follows)"),console.log(n)}})}),t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod a.updraft_add_instance",function(e){e.preventDefault(),updraft_settings_form_changed=!0;var a=t(this).data("method");d(a)}),t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod a.updraft_delete_instance",function(e){e.preventDefault(),updraft_settings_form_changed=!0;var a=t(this).data("method"),r=t(this).data("instance_id");1===t("."+a+"_updraft_remote_storage_border").length&&d(a),t("."+a+"-"+r).hide("slow",function(){t(this).remove()})}),t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod .updraft_edit_label_instance",function(e){t(this).find("span").hide(),t(this).attr("contentEditable",!0).focus()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("keyup",".updraftplusmethod .updraft_edit_label_instance",function(e){var a=jQuery(this).data("method"),r=jQuery(this).data("instance_id"),n=jQuery(this).text();t("#updraft_"+a+"_instance_label_"+r).val(n)}),t("#updraft-navtab-settings-content #remote-storage-holder").on("blur",".updraftplusmethod .updraft_edit_label_instance",function(e){t(this).attr("contentEditable",!1),t(this).find("span").show()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("keypress",".updraftplusmethod .updraft_edit_label_instance",function(e){13===e.which&&(t(this).attr("contentEditable",!1),t(this).find("span").show(),t(this).blur())}),jQuery("#updraft-navtab-settings-content #remote-storage-holder").on("change","input[class='updraft_instance_toggle']",function(){updraft_settings_form_changed=!0,jQuery(this).is(":checked")?jQuery(this).siblings("label").html(updraftlion.instance_enabled):jQuery(this).siblings("label").html(updraftlion.instance_disabled)}),jQuery("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod button.updraft-test-button",function(){var e=jQuery(this).data("method"),a=jQuery(this).data("instance_id");updraft_remote_storage_test(e,function(r,n,o){return"sftp"==e&&(o.hasOwnProperty("scp")&&o.scp?alert(updraftlion.settings_test_result.replace("%s","SCP")+" "+r.output):alert(updraftlion.settings_test_result.replace("%s","SFTP")+" "+r.output),r.hasOwnProperty("data")&&r.data&&r.data.hasOwnProperty("valid_md5_fingerprint")&&r.data.valid_md5_fingerprint&&t("#updraft_sftp_fingerprint_"+a).val(r.data.valid_md5_fingerprint),!0)},a)}),t("#updraft-navtab-settings-content select.updraft_interval, #updraft-navtab-settings-content select.updraft_interval_database").change(function(){updraft_check_same_times()}),t("#backupnow_includefiles_showmoreoptions").click(function(e){e.preventDefault(),t("#backupnow_includefiles_moreoptions").toggle()}),t("#backupnow_database_showmoreoptions").click(function(e){e.preventDefault(),t("#backupnow_database_moreoptions").toggle()}),t("#updraft-navtab-backups-content").on("click","a.updraft_diskspaceused_update",function(t){t.preventDefault(),updraftplus_diskspace()}),t(".advanced_settings_content a.updraft_diskspaceused_update").click(function(t){t.preventDefault(),jQuery(".advanced_settings_content .updraft_diskspaceused").html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:"updraft"},function(t){jQuery(".advanced_settings_content .updraft_diskspaceused").html(t.output)},{type:"GET"})}),t("#updraft-navtab-backups-content a.updraft_uploader_toggle").click(function(e){e.preventDefault(),t("#updraft-plupload-modal").slideToggle()}),t("#updraft-navtab-backups-content a.updraft_rescan_local").click(function(t){t.preventDefault(),updraft_updatehistory(1,0)}),t("#updraft-navtab-backups-content a.updraft_rescan_remote").click(function(t){t.preventDefault(),updraft_updatehistory(1,1)}),t("#updraftplus-remote-rescan-debug").click(function(t){t.preventDefault(),updraft_updatehistory(1,1,1)}),jQuery("#updraftcentral_keys").on("click",'input[type="radio"]',function(){s(!1)}),s(!0),jQuery("#updraftcentral_keys").on("click","#updraftcentral_view_log",function(t){t.preventDefault(),jQuery("#updraftcentral_view_log_container").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.fetching+"</div>"});try{updraft_send_command("updraftcentral_get_log",null,function(t){jQuery("#updraftcentral_view_log_container").unblock(),t.hasOwnProperty("log_contents")?jQuery("#updraftcentral_view_log_contents").html('<div style="border:1px solid;padding: 2px;max-height: 400px; overflow-y:scroll;">'+t.log_contents+"</div>"):console.response(resp)},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_view_log_container").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})}catch(e){jQuery("#updraft_central_key").html(),console.log(e)}}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_wizard_go",function(t){jQuery("#updraftcentral_wizard_go").hide(),jQuery(".updraftcentral_wizard_success").remove(),jQuery(".create_key_container").show()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_stage1_go",function(t){t.preventDefault(),jQuery(".updraftcentral_wizard_stage2").hide(),jQuery(".updraftcentral_wizard_stage1").show()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_stage2_go",function(t){t.preventDefault(),i()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_keycreate_go",function(t){t.preventDefault();var e=!!jQuery("#updraftcentral_mothership_other").is(":checked"),a=jQuery("#updraftcentral_keycreate_description").val(),r=jQuery("#updraftcentral_keycreate_keysize").val(),n="__updraftpluscom";if(data={key_description:a,key_size:r},e&&(n=jQuery("#updraftcentral_keycreate_mothership").val(),"http"!=n.substring(0,4)))return void alert(updraftlion.enter_mothership_url);data.mothership_firewalled=jQuery("#updraftcentral_keycreate_mothership_firewalled").is(":checked")?1:0,data.where_send=n,jQuery(".create_key_container").hide(),jQuery(".updraftcentral_wizard_stage1").show(),jQuery(".updraftcentral_wizard_stage2").hide(),jQuery("#updraftcentral_keys").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.creating_please_allow+"</div>"});try{updraft_send_command("updraftcentral_create_key",data,function(t){jQuery("#updraftcentral_keys").unblock();try{if(t.hasOwnProperty("error"))return alert(t.error),void console.log(t);alert(t.r),t.hasOwnProperty("bundle")&&t.hasOwnProperty("keys_guide")?(jQuery("#updraftcentral_keys_content").html(t.keys_guide),jQuery("#updraftcentral_keys_content").append('<div class="updraftcentral_wizard_success">'+t.r+'<br><textarea onclick="this.select();" style="width:620px; height:165px; word-wrap:break-word; border: 1px solid #aaa; border-radius: 3px; padding:4px;">'+t.bundle+"</textarea></div>")):console.log(t),t.hasOwnProperty("keys_table")&&jQuery("#updraftcentral_keys_content").append(t.keys_table),jQuery("#updraftcentral_wizard_go").show()}catch(e){alert(updraftlion.unexpectedresponse+" "+response),console.log(e)}},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_keys").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})}catch(o){jQuery("#updraft_central_key").html(),console.log(o)}}),jQuery("#updraftcentral_keys").on("click",".updraftcentral_key_delete",function(t){t.preventDefault();var e=jQuery(this).data("key_id");return"undefined"==typeof e?void console.log("UpdraftPlus: .updraftcentral_key_delete clicked, but no key ID found"):(jQuery("#updraftcentral_keys").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.deleting+"</div>"}),void updraft_send_command("updraftcentral_delete_key",{key_id:e},function(t){jQuery("#updraftcentral_keys").unblock(),t.hasOwnProperty("keys_table")&&jQuery("#updraftcentral_keys_content").html(t.keys_table)},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_keys").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}}))}),jQuery("#updraft_reset_sid").click(function(t){t.preventDefault(),updraft_send_command("reset_site_id",null,function(t){jQuery("#updraft_show_sid").html(t)},{json_parse:!1})}),jQuery("#updraft-navtab-settings-content form input:not('.udignorechange'), #updraft-navtab-settings-content form select").change(function(t){updraft_settings_form_changed=!0}),jQuery("#updraft-navtab-settings-content form input[type='submit']").click(function(t){updraft_settings_form_changed=!1});var y=180;jQuery(".updraft-bigbutton").each(function(t,e){var a=jQuery(e).width();a>y&&(y=a)}),y>180&&jQuery(".updraft-bigbutton").width(y),jQuery("#updraft-navtab-backups-content").length&&setInterval(function(){updraft_activejobs_update(!1)},1250),setTimeout(function(){jQuery("#setting-error-settings_updated").slideUp()},5e3),jQuery("#updraft_restore_db").change(function(){jQuery("#updraft_restore_db").is(":checked")&&1==jQuery(this).data("encrypted")?jQuery("#updraft_restorer_dboptions").slideDown():jQuery("#updraft_restorer_dboptions").slideUp()}),updraft_check_same_times();var b={};b[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-message-modal").dialog({autoOpen:!1,height:350,width:520,modal:!0,buttons:b});var v={};v[updraftlion.deletebutton]=function(){l(0,0,0,0)},v[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-delete-modal").dialog({autoOpen:!1,height:322,width:430,modal:!0,buttons:v});var w={};w[updraftlion.restore]=function(){var t=0,e=[],a=0,r=jQuery("#updraft_restore_meta_foreign").val();if(jQuery('input[name="updraft_restore[]"]').each(function(n,o){if(jQuery(o).is(":checked")&&!jQuery(o).is(":disabled")){t=1;var d=jQuery(o).data("howmany"),u=jQuery(o).val();if((1==r||2==r&&"db"!=u)&&("wpcore"!=u&&(d=jQuery("#updraft_restore_form #updraft_restore_wpcore").data("howmany")),u="wpcore"),"wpcore"!=u||0==a){var s=[u,d];e.push(s),"wpcore"==u&&(a=1)}}}),1==t){if(1==updraft_restore_stage){jQuery("#updraft-restore-modal-stage1").slideUp("slow"),jQuery("#updraft-restore-modal-stage2").show(),updraft_restore_stage=2;var n=jQuery(".updraft_restore_date").first().text(),o=e,d=jQuery("#updraft_restore_timestamp").val();try{updraft_send_command("whichdownloadsneeded",{downloads:e,timestamp:d},function(t){if(t.hasOwnProperty("downloads")&&(console.log("UpdraftPlus: items which still require downloading follow"),o=t.downloads,console.log(o)),0==o.length)updraft_restorer_checkstage2(0);else for(var e=0;e<o.length;e++)updraft_downloader("udrestoredlstatus_",d,o[e][0],"#ud_downloadstatus2",o[e][1],n,!1)},{alert_on_error:!1,error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft-restore-modal-stage2a").html('<p style="color:red;">'+r.fatal_error_message+"</p>");else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft-restore-modal-stage2a").html('<p style="color:red; margin: 5px;">'+n+"</p>"),console.log(n),console.log(t)}}})}catch(u){console.log("UpdraftPlus: error (follows) when looking for items needing downloading"),console.log(u),alert(updraftlion.jsonnotunderstood)}}else if(2==updraft_restore_stage)updraft_restorer_checkstage2(1);else if(3==updraft_restore_stage){var s=1;if(jQuery("#updraft_restoreoptions_ui input.required").each(function(t){if(0!=s){var e=jQuery(this).val();if(""==e)alert(updraftlion.pleasefillinrequired),s=0;else if(""!=jQuery(this).attr("pattern")){var a=jQuery(this).attr("pattern"),r=new RegExp(a,"g");r.test(e)||(alert(jQuery(this).data("invalidpattern")),s=0)}}}),!s)return;var i=jQuery("#updraft_restoreoptions_ui select, #updraft_restoreoptions_ui input").serialize();console.log("Restore options: "+i),jQuery("#updraft_restorer_restore_options").val(i),jQuery("#updraft-restore-modal-stage2a").html(updraftlion.restore_proceeding),jQuery("#updraft_restore_form").submit(),updraft_restore_stage=4}}else alert(updraftlion.youdidnotselectany)},w[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-restore-modal").dialog({autoOpen:!1,height:505,width:590,modal:!0,buttons:w}),jQuery("#updraft-iframe-modal").dialog({autoOpen:!1,height:500,width:780,modal:!0}),jQuery("#updraft-backupnow-inpage-modal").dialog({autoOpen:!1,height:380,width:580,modal:!0});var j={};j[updraftlion.backupnow]=function(){var t=jQuery("#backupnow_includedb").is(":checked")?0:1,e=jQuery("#backupnow_includefiles").is(":checked")?0:1,a=jQuery("#backupnow_includecloud").is(":checked")?0:1,r=backupnow_whichtables_checked(""),n=jQuery("#always_keep").is(":checked")?1:0;if(""==r&&0==t)return alert(updraftlion.notableschosen),void jQuery("#backupnow_includefiles_moreoptions").show();"boolean"==typeof r&&(r=null);var o=backupnow_whichfiles_checked("");return""==o&&0==e?(alert(updraftlion.nofileschosen),void jQuery("#backupnow_includefiles_moreoptions").show()):t&&e?void alert(updraftlion.excludedeverything):(jQuery(this).dialog("close"),setTimeout(function(){jQuery("#updraft_lastlogmessagerow").fadeOut("slow",function(){jQuery(this).fadeIn("slow")})},1700),void updraft_backupnow_go(t,e,a,o,{always_keep:n},jQuery("#backupnow_label").val(),r))},j[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-backupnow-modal").dialog({autoOpen:!1,height:472,width:610,modal:!0,buttons:j,create:function(){t(this).closest(".ui-dialog").find(".ui-dialog-buttonpane .ui-button:first").addClass("js-tour-backup-now-button")}}),jQuery("#updraft-poplog").dialog({autoOpen:!1,height:600,width:"75%",modal:!0}),jQuery("#updraft-navtab-settings-content .enableexpertmode").click(function(){return jQuery("#updraft-navtab-settings-content .expertmode").fadeIn(),jQuery("#updraft-navtab-settings-content .enableexpertmode").off("click"),!1}),jQuery("#updraft-navtab-settings-content .backupdirrow").on("click","a.updraft_backup_dir_reset",function(){return jQuery("#updraft_dir").val("updraft"),!1}),jQuery("#updraft-navtab-settings-content .updraft_include_entity").click(function(){var t=jQuery(this).data("toggle_exclude_field");t&&p(t,!1)}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_delete",function(t){if(t.preventDefault(),confirm(updraftlion.exclude_rule_remove_conformation_msg)){var e=jQuery(this).data("include-backup-file");jQuery.when(jQuery(this).closest(".updraft_exclude_entity_wrapper").remove()).then(updraft_exclude_entity_update(e))}}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_edit",function(t){t.preventDefault();var e=jQuery(this).hide().closest(".updraft_exclude_entity_wrapper"),a=e.find("input");a.removeProp("readonly").focus();var r=a.val();a.val(""),a.val(r),e.find(".updraft_exclude_entity_update").addClass("is-active").show()}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_update",function(t){t.preventDefault();var e=jQuery(this).closest(".updraft_exclude_entity_wrapper"),a=jQuery(this).data("include-backup-file"),r=jQuery.trim(e.find("input").val()),n=!1;r==e.find("input").data("val")?n=!0:updraft_is_unique_exclude_rule(r,a)&&(n=!0),n&&(jQuery(this).hide().removeClass("is-active"),jQuery.when(e.find("input").prop("readonly","readonly").data("val",r)).then(function(){e.find(".updraft_exclude_entity_edit").show(),updraft_exclude_entity_update(a)}))}),jQuery("#updraft_exclude_modal").dialog({autoOpen:!1,modal:!0,width:520,height:"auto",open:function(e,a){t(this).parent().focus()}}),jQuery(".updraft_exclude_container .updraft_add_exclude_item").click(function(t){t.preventDefault();var e=jQuery(this).data("include-backup-file");jQuery("#updraft_exclude_modal_for").val(e),jQuery("#updraft_exclude_modal_path").val(jQuery(this).data("path")),"uploads"==e&&jQuery("#updraft-exclude-file-dir-prefix").html(jQuery("#updraft-exclude-upload-base-dir").val()),jQuery(".updraft-exclude-modal-reset").trigger("click"),jQuery("#updraft_exclude_modal").dialog("open")}),jQuery(".updraft-exclude-link").click(function(t){t.preventDefault();var e=jQuery(this).data("panel");"file-dir"==e&&jQuery("#updraft_exclude_files_folders_jstree").jstree({core:{multiple:!1,data:function(t,e){updraft_send_command("get_jstree_directory_nodes",{entity:"filebrowser",node:t,path:jQuery("#updraft_exclude_modal_path").val(),findex:0,skip_root_node:!0},function(t){t.hasOwnProperty("error")?alert(t.error):e.call(this,t.nodes)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}})},error:function(t){alert(t),console.log(t)}},search:{show_only_matches:!0},plugins:["sort"]}),jQuery("#updraft_exclude_modal_main").slideUp(),jQuery(".updraft-exclude-panel").hide(),jQuery(".updraft-exclude-panel[data-panel="+e+"]").slideDown()}),jQuery(".updraft-exclude-modal-reset").click(function(t){t.preventDefault(),jQuery("#updraft_exclude_files_folders_jstree").jstree("destroy"),jQuery("#updraft_exclude_extension_field").val(""),jQuery("#updraft_exclude_prefix_field").val(""),jQuery(".updraft-exclude-panel").slideUp(),jQuery("#updraft_exclude_modal_main").slideDown()}),jQuery(".updraft-exclude-submit").click(function(){var t=jQuery(this).data("panel"),e="";switch(t){case"file-dir":var a=jQuery("#updraft_exclude_files_folders_jstree").jstree("get_selected");if(0==a.length)return void alert(updraftlion.exclude_select_file_or_folder_msg);var r=a[0],n=jQuery("#updraft_exclude_modal_path").val();r.substr(0,n.length)==n&&(r=r.substr(n.length,r.length)),"/"==r.charAt(0)&&(r=r.substr(1)),"/"==r.charAt(r.length-1)&&(r=r.substr(0,r.length-1)),e=r;break;case"extension":var o=jQuery("#updraft_exclude_extension_field").val();if(""==o)return void alert(updraftlion.exclude_type_ext_msg);if(!o.match(/^[0-9a-zA-Z]+$/))return void alert(updraftlion.exclude_ext_error_msg);e="ext:"+o;break;case"begin-with":var d=jQuery("#updraft_exclude_prefix_field").val();if(""==d)return void alert(updraftlion.exclude_type_prefix_msg);if(!d.match(/^\s*[a-z-_\d,\s]+\s*$/i))return void alert(updraftlion.exclude_prefix_error_msg);e="prefix:"+d;break;default:return}var u=jQuery("#updraft_exclude_modal_for").val();if(updraft_is_unique_exclude_rule(e,u)){var s='<div class="updraft_exclude_entity_wrapper"><input type="text" class="updraft_exclude_entity_field updraft_include_'+u+'_exclude_entity" name="updraft_include_'+u+'_exclude_entity[]" value="'+e+'" data-val="'+e+'" data-include-backup-file="'+u+'" readonly="readonly"><a href="#" class="updraft_exclude_entity_edit dashicons dashicons-edit" data-include-backup-file="'+u+'"></a><a href="#" class="updraft_exclude_entity_update dashicons dashicons-yes" data-include-backup-file="'+u+'" style="display: none;"></a><a href="#" class="updraft_exclude_entity_delete dashicons dashicons-no" data-include-backup-file="'+u+'"></a></div>';jQuery('.updraft_exclude_entity_container[data-include-backup-file="'+u+'"]').append(s),updraft_exclude_entity_update(u),jQuery("#updraft_exclude_modal").dialog("close")}}),jQuery("#updraft-navtab-settings-content .updraft-service").change(function(){var t=jQuery(this).val();jQuery("#updraft-navtab-settings-content .updraftplusmethod").hide(),jQuery("#updraft-navtab-settings-content ."+t).show()}),jQuery("#updraft-navtab-settings-content a.updraft_show_decryption_widget").click(function(t){t.preventDefault(),jQuery("#updraftplus_db_decrypt").val(jQuery("#updraft_encryptionphrase").val()),jQuery("#updraft-manualdecrypt-modal").slideToggle()}),jQuery("#updraftplus-phpinfo").click(function(t){t.preventDefault(),updraft_iframe_modal("phpinfo",updraftlion.phpinfo)}),jQuery("#updraftplus-rawbackuphistory").click(function(t){t.preventDefault(),updraft_iframe_modal("rawbackuphistory",updraftlion.raw)}),jQuery("#updraft-navtab-status").click(function(t){t.preventDefault(),updraft_open_main_tab("status"),updraft_page_is_visible=1,updraft_console_focussed_tab="status",updraft_activejobs_update(!0)}),jQuery("#updraft-navtab-expert").click(function(t){t.preventDefault(),updraft_open_main_tab("expert"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-settings, #updraft-navtab-settings2, #updraft_backupnow_gotosettings").click(function(t){t.preventDefault(),jQuery(this).parents(".updraftmessage").remove(),jQuery("#updraft-backupnow-modal").dialog("close"),updraft_open_main_tab("settings"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-addons").click(function(t){t.preventDefault(),jQuery(this).addClass("b#nav-tab-active"),updraft_open_main_tab("addons"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-backups").click(function(t){t.preventDefault(),updraft_console_focussed_tab="backups",updraft_historytimertoggle(1),updraft_open_main_tab("backups")}),jQuery("#updraft-navtab-migrate").click(function(t){t.preventDefault(),jQuery("#updraft_migrate_tab_alt").html("").hide(),updraft_open_main_tab("migrate"),updraft_page_is_visible=1,jQuery("#updraft_migrate .updraft_migrate_widget_module_content").is(":visible")||jQuery(".updraft_migrate_intro").show()}),"migrate"==updraftlion.tab&&jQuery("#updraft-navtab-migrate").trigger("click"),updraft_send_command("ping",null,function(t,e){"success"==e&&"pong"!=t&&t.indexOf("pong")>=0&&(jQuery("#updraft-navtab-backups-content .ud-whitespace-warning").show(),console.log("UpdraftPlus: Extra output warning: response (which should be just (string)'pong') follows."),console.log(t))},{json_parse:!1,type:"GET"});try{"undefined"!=typeof updraft_plupload_config&&_()}catch(k){console.log(k)}if(jQuery("#updraftplus_httpget_go").click(function(t){t.preventDefault(),c(0)}),jQuery("#updraftplus_httpget_gocurl").click(function(t){t.preventDefault(),c(1)}),jQuery("#updraftplus_callwpaction_go").click(function(t){t.preventDefault(),params={wpaction:jQuery("#updraftplus_callwpaction").val()},updraft_send_command("call_wordpress_action",params,function(t){t.e?alert(t.e):t.s||(t.r?jQuery("#updraftplus_callwpaction_results").html(t.r):(console.log(t),alert(updraftlion.jsonnotunderstood)))})}),jQuery("#updraft_activejobs_table, #updraft-navtab-migrate-content").on("click",".updraft_jobinfo_delete",function(e){e.preventDefault();var a=jQuery(this).data("jobid");a?(t(this).addClass("disabled"),updraft_activejobs_delete(a)):console.log("UpdraftPlus: A stop job link was clicked, but the Job ID could not be found")}),jQuery("#updraft_activejobs_table, #updraft-navtab-backups-content .updraft_existing_backups, #updraft-backupnow-inpage-modal, #updraft-navtab-migrate-content").on("click",".updraft-log-link",function(t){t.preventDefault();var e=jQuery(this).data("jobid");e?updraft_popuplog(e):console.log("UpdraftPlus: A log link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.choose-components-button",function(t){var e=jQuery(this).data("entities"),a=jQuery(this).data("backup_timestamp"),r=jQuery(this).data("showdata");f(e,a,r)}),"initiate_restore"==m("udaction")){var Q=m("entities"),x=m("backup_timestamp"),O=m("showdata");f(Q,x,O)}var P={};P[updraftlion.uploadbutton]=function(){var t=jQuery("#updraft_upload_timestamp").val(),e=jQuery("#updraft_upload_nonce").val(),a="",r=!1;return jQuery(".updraft_remote_storage_destination").each(function(t){jQuery(this).is(":checked")&&(r=!0)}),r?(a=jQuery("input[name^='updraft_remote_storage_destination_']").serializeArray(),jQuery(this).dialog("close"),alert(updraftlion.local_upload_started),void updraft_send_command("upload_local_backup",{use_nonce:e,use_timestamp:t,services:a},function(t){})):void jQuery("#updraft-upload-modal-error").html(updraftlion.local_upload_error)},P[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-upload-modal").dialog({autoOpen:!1,height:322,width:430,modal:!0,buttons:P}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.updraft-upload-link",function(t){t.preventDefault();var e=jQuery(this).data("nonce").toString(),a=jQuery(this).data("key").toString(),r=jQuery(this).data("services").toString();e?g(a,e,r):console.log("UpdraftPlus: A upload link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click",".updraft-delete-link",function(t){t.preventDefault();var e=jQuery(this).data("hasremote"),a=jQuery(this).data("nonce").toString(),r=jQuery(this).data("key").toString();a?updraft_delete(r,a,e):console.log("UpdraftPlus: A delete link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.updraft_download_button",function(t){t.preventDefault();var e="uddlstatus_",a=jQuery(this).data("backup_timestamp"),r=jQuery(this).data("what"),n=".ud_downloadstatus",o=jQuery(this).data("set_contents"),d=jQuery(this).data("prettydate"),u=!0;updraft_downloader(e,a,r,n,o,d,u)}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("dblclick",".updraft_existingbackup_date",function(t){t.preventDefault();var e=jQuery(this).data("rawbackup");null!=e&&""!=e&&updraft_html_modal(e,updraftlion.raw,780,500)})}),jQuery(document).ready(function(t){var e="#updraft-navtab-settings-content ";t(e+"#remote-storage-holder").on("click",".updraftvault_backtostart",function(a){a.preventDefault(),t(e+"#updraftvault_settings_showoptions").slideUp(),t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_connected").slideUp(),t(e+"#updraftvault_settings_default").slideDown()}),t(e).on("keypress","#updraftvault_settings_connect input",function(a){if(13==a.which)return t(e+"#updraftvault_connect_go").click(),!1}),t(e+"#remote-storage-holder").on("click","#updraftvault_recountquota",function(a){a.preventDefault(),t(e+"#updraftvault_recountquota").html(updraftlion.counting);try{updraft_send_command("vault_recountquota",{instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a){t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),a.hasOwnProperty("html")&&(t(e+"#updraftvault_settings_connected").html(a.html),a.hasOwnProperty("connected")&&(a.connected?(t(e+"#updraftvault_settings_default").hide(),t(e+"#updraftvault_settings_connected").show()):(t(e+"#updraftvault_settings_connected").hide(),t(e+"#updraftvault_settings_default").show())))},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),alert(o.fatal_error_message);else{var d="updraft_send_command: error: "+r+" ("+n+")";console.log(d),alert(d),console.log(a)}}})}catch(r){t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),console.log(r)}}),t(e+"#remote-storage-holder").on("click","#updraftvault_disconnect",function(a){a.preventDefault(),t(e+"#updraftvault_disconnect").html(updraftlion.disconnecting);try{updraft_send_command("vault_disconnect",{immediate_echo:!0,instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a){t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),a.hasOwnProperty("html")&&(t(e+"#updraftvault_settings_connected").html(a.html).slideUp(),t(e+"#updraftvault_settings_default").slideDown())},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),alert(o.fatal_error_message);else{var d="updraft_send_command: error: "+r+" ("+n+")";console.log(d),alert(d),console.log(a)}}})}catch(r){t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),console.log(r)}}),t(e+"#remote-storage-holder").on("click","#updraftvault_connect",function(a){a.preventDefault(),t(e+"#updraftvault_settings_default").slideUp(),t(e+"#updraftvault_settings_connect").slideDown()}),t(e+"#remote-storage-holder").on("click","#updraftvault_showoptions",function(a){a.preventDefault(),t(e+"#updraftvault_settings_default").slideUp(),t(e+"#updraftvault_settings_showoptions").slideDown()}),t("#remote-storage-holder").on("keyup",".updraftplus_onedrive_folder_input",function(e){var a=t(this).val(),r=t(this).closest("td");0==a.indexOf("https:")||0==a.indexOf("http:")?r.find(".onedrive_folder_error").length||r.append('<div class="onedrive_folder_error">'+updraftlion.onedrive_folder_url_warning+"</div>"):r.find(".onedrive_folder_error").slideUp("slow",function(){r.find(".onedrive_folder_error").remove()})}),t(e+"#remote-storage-holder").on("click","#updraftvault_connect_go",function(a){return t(e+"#updraftvault_connect_go").html(updraftlion.connecting),updraft_send_command("vault_connect",{email:t("#updraftvault_email").val(),pass:t("#updraftvault_pass").val(),instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a,r,n){t(e+"#updraftvault_connect_go").html(updraftlion.connect),a.hasOwnProperty("e")?(updraft_html_modal('<h4 style="margin-top:0px; padding-top:0px;">'+updraftlion.errornocolon+"</h4><p>"+a.e+"</p>",updraftlion.disconnect,400,250),a.hasOwnProperty("code")&&"no_quota"==a.code&&(t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_default").slideDown())):a.hasOwnProperty("connected")&&a.connected&&a.hasOwnProperty("html")?(t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_connected").html(a.html).slideDown()):(console.log(a),alert(updraftlion.unexpectedresponse+" "+n))},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_connect_go").html(updraftlion.connect),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),
4
- alert(o.fatal_error_message);else{var d="updraft_send_command: error: "+r+" ("+n+")";console.log(d),alert(d),console.log(a)}}}),!1}),t("#updraft-iframe-modal").on("change","#always_keep_this_backup",function(){var e=t(this).data("backup_key"),a={backup_key:e,always_keep:t(this).is(":checked")?1:0};updraft_send_command("always_keep_this_backup",a,function(t){t.hasOwnProperty("rawbackup")&&(jQuery("#updraft-iframe-modal").dialog("close"),jQuery(".updraft_existing_backups_row_"+e+" .updraft_existingbackup_date").data("rawbackup",t.rawbackup),updraft_html_modal(jQuery(".updraft_existing_backups_row_"+e+" .updraft_existingbackup_date").data("rawbackup"),updraftlion.raw,780,500))})})}),jQuery(document).ready(function(t){function e(){var t=new plupload.Uploader(updraft_plupload_config2);t.bind("Init",function(t){var e=jQuery("#plupload-upload-ui2");t.features.dragdrop?(e.addClass("drag-drop"),jQuery("#drag-drop-area2").bind("dragover.wp-uploader",function(){e.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){e.removeClass("drag-over")})):(e.removeClass("drag-drop"),jQuery("#drag-drop-area2").unbind(".wp-uploader"))}),t.init(),t.bind("FilesAdded",function(e,a){plupload.each(a,function(e){return/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-db([0-9]+)?\.(gz\.crypt)$/i.test(e.name)?void jQuery("#filelist2").append('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(0)+"</span>/"+plupload.formatSize(e.size)+') <div class="fileprogress"></div></div>'):(alert(e.name+": "+updraftlion.notdba),void t.removeFile(e))}),e.refresh(),e.start()}),t.bind("UploadProgress",function(t,e){jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"),jQuery("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100)))}),t.bind("Error",function(t,e){"-200"==e.code?err_makesure="\n"+updraftlion.makesure2:err_makesure=updraftlion.makesure,alert(updraftlion.uploaderr+" (code "+e.code+") : "+e.message+" "+err_makesure)}),t.bind("FileUploaded",function(t,e,a){"200"==a.status?"ERROR:"==a.response.substring(0,6)?alert(updraftlion.uploaderror+" "+a.response.substring(6)):"OK:"==a.response.substring(0,3)?(bkey=a.response.substring(3),jQuery("#"+e.id+" .fileprogress").hide(),jQuery("#"+e.id).append(updraftlion.uploaded+' <a href="?page=updraftplus&action=downloadfile&updraftplus_file='+bkey+"&decrypt_key="+encodeURIComponent(jQuery("#updraftplus_db_decrypt").val())+'">'+updraftlion.followlink+"</a> "+updraftlion.thiskey+" "+jQuery("#updraftplus_db_decrypt").val().replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"))):alert(updraftlion.unknownresp+" "+a.response):alert(updraftlion.ukrespstatus+" "+a.code)})}try{"undefined"!=typeof updraft_plupload_config2&&e()}catch(a){console.log(a)}if(jQuery("#updraft-hidethis").remove(),Handlebars.registerHelper("ifeq",function(t,e,a){return"string"!=typeof t&&"undefined"!=typeof t&&null!==t&&(t=t.toString()),"string"!=typeof e&&"undefined"!=typeof e&&null!==e&&(e=e.toString()),t===e?a.fn(this):a.inverse(this)}),t("#remote-storage-holder").length){var r="";for(var n in updraftlion.remote_storage_templates)if("undefined"!=typeof updraftlion.remote_storage_options[n]&&1<Object.keys(updraftlion.remote_storage_options[n]).length){var o=Handlebars.compile(updraftlion.remote_storage_templates[n]),d=!0;for(var u in updraftlion.remote_storage_options[n])if("default"!==u){var s=updraftlion.remote_storage_options[n][u];s.first_instance=d,"undefined"==typeof s.instance_enabled&&(s.instance_enabled=1),r+=o(s),d=!1}}else r+=updraftlion.remote_storage_templates[n];t("#remote-storage-holder").append(r).ready(function(){t(".updraftplusmethod").not(".none").hide(),updraft_remote_storage_tabs_setup(),t("#remote-storage-holder .updraftplus_onedrive_folder_input").trigger("keyup")})}}),jQuery(document).ready(function(t){function e(){var t=r("object"),e=new Date;t=JSON.stringify({version:"1.12.40",epoch_date:e.getTime(),local_date:e.toLocaleString(),network_site_url:updraftlion.network_site_url,data:t});var a=document.body.appendChild(document.createElement("a"));a.setAttribute("download",updraftlion.export_settings_file_name),a.setAttribute("style","display:none;"),a.setAttribute("href","data:text/json;charset=UTF-8,"+encodeURIComponent(t)),a.click()}function a(e){var a,r=decodeURIComponent(e);try{a=ud_parse_json(r)}catch(o){return t.unblockUI(),jQuery("#import_settings").val(""),console.log(r),console.log(o),void alert(updraftlion.import_invalid_json_file)}if(window.confirm(updraftlion.importing_data_from+" "+r.network_site_url+"\n"+updraftlion.exported_on+" "+r.local_date+"\n"+updraftlion.continue_import)){var d=JSON.stringify(a.data);updraft_send_command("importsettings",{settings:d,updraftplus_version:updraftlion.updraftplus_version},function(e,a,r){var o=n(e);!o.hasOwnProperty("saved")||o.saved?(updraft_settings_form_changed=!1,location.replace(updraftlion.updraft_settings_url)):(t.unblockUI(),o.hasOwnProperty("error_message")&&o.error_message&&alert(o.error_message))},{action:"updraft_importsettings",nonce:updraftplus_settings_nonce,error_callback:function(e,a,r,n){if(t.unblockUI(),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var o="updraft_send_command: error: "+a+" ("+r+")";console.log(o),console.log(e),alert(o)}}})}else t.unblockUI()}function r(e){var a="",e="undefined"==typeof e?"string":e;return"object"==e?a=t("#updraft-navtab-settings-content form input[name!='action'][name!='option_page'][name!='_wpnonce'][name!='_wp_http_referer'], #updraft-navtab-settings-content form textarea, #updraft-navtab-settings-content form select, #updraft-navtab-settings-content form input[type=checkbox]").serializeJSON({checkboxUncheckedValue:"0",useIntKeysAsArrayIndex:!0}):(a=t("#updraft-navtab-settings-content form input[name!='action'], #updraft-navtab-settings-content form textarea, #updraft-navtab-settings-content form select").serialize(),t.each(t("#updraft-navtab-settings-content form input[type=checkbox]").filter(function(e){return 0==t(this).prop("checked")}),function(e,r){var n="0";a+="&"+t(r).attr("name")+"="+n})),a}function n(e,a){try{var r=(e.messages,e.backup_dir.writable),n=e.backup_dir.message,o=e.backup_dir.button_title}catch(d){return console.log(d),console.log(a),alert(updraftlion.jsonnotunderstood),t.unblockUI(),{}}if(e.hasOwnProperty("changed")){console.log("UpdraftPlus: savesettings: some values were changed after being filtered"),console.log(e.changed);for(prop in e.changed)if("object"==typeof e.changed[prop])for(innerprop in e.changed[prop])t("[name='"+innerprop+"']").is(":checkbox")||t("[name='"+prop+"["+innerprop+"]']").val(e.changed[prop][innerprop]);else t("[name='"+prop+"']").is(":checkbox")||t("[name='"+prop+"']").val(e.changed[prop])}return t("#updraft_writable_mess").html(n),0==r?(t("#updraft-backupnow-button").attr("disabled","disabled"),t("#updraft-backupnow-button").attr("title",o),t(".backupdirrow").css("display","table-row")):(t("#updraft-backupnow-button").removeAttr("disabled"),t("#updraft-backupnow-button").removeAttr("title")),e.hasOwnProperty("updraft_include_more_path")&&t("#backupnow_includefiles_moreoptions").html(e.updraft_include_more_path),e.hasOwnProperty("backup_now_message")&&t("#backupnow_remote_container").html(e.backup_now_message),t(".updraftmessage").remove(),t("#updraft_backup_started").before(e.messages),console.log(e),t("#updraft-next-files-backup-inner").html(e.files_scheduled),t("#updraft-next-database-backup-inner").html(e.database_scheduled),e}function o(){var t=!1;if(jQuery("#updraft-authenticate-modal-innards").html(""),jQuery("div[class*=updraft_authenticate_] a.updraft_authlink").each(function(){jQuery("#updraft-authenticate-modal-innards").append('<p><a href="'+jQuery(this).attr("href")+'">'+jQuery(this).html()+"</a></p>"),t=!0}),t){var e={};e[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-authenticate-modal").dialog({autoOpen:!0,modal:!0,resizable:!1,draggable:!1,buttons:e,width:"auto"}).dialog("open")}}var d=new Image;d.src=updraftlion.ud_url+"/images/notices/updraft_logo.png",t("#updraft-navtab-settings-content input.updraft_include_entity").change(function(e){var a=t(this).attr("id"),r=t(this).is(":checked"),n="#backupnow_files_"+a;t(n).prop("checked",r)}),t("#updraftplus-settings-save").click(function(e){e.preventDefault(),t.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)",padding:"20px"},message:'<div style="margin: 8px; font-size:150%;" class="updraft_saving_popup"><img src="'+updraftlion.ud_url+'/images/notices/updraft_logo.png" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.saving+"</div>"});var a=r("string");updraft_send_command("savesettings",{settings:a,updraftplus_version:updraftlion.updraftplus_version},function(e,a,r){n(e,r),t("#updraft-wrap .fade").delay(6e3).fadeOut(2e3),window.updraft_main_tour&&!window.updraft_main_tour.canceled?(window.updraft_main_tour.show("settings_saved"),o()):t("html, body").animate({scrollTop:t("#updraft-wrap").offset().top},1e3,function(){o()}),t.unblockUI()},{action:"updraft_savesettings",error_callback:function(e,a,r,n){if(t.unblockUI(),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var o="updraft_send_command: error: "+a+" ("+r+")";console.log(o),alert(o),console.log(e)}},nonce:updraftplus_settings_nonce})}),t("#updraftplus-settings-export").click(function(){updraft_settings_form_changed&&alert(updraftlion.unsaved_settings_export),e()}),t("#updraftplus-settings-import").click(function(){t.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)",padding:"20px"},message:'<div style="margin: 8px; font-size:150%;" class="updraft_saving_popup"><img src="'+updraftlion.ud_url+'/images/notices/updraft_logo.png" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.importing+"</div>"});var e=document.getElementById("import_settings");if(0==e.files.length)return alert(updraftlion.import_select_file),void t.unblockUI();var r=e.files[0],n=new FileReader;n.onload=function(){a(this.result)},n.readAsText(r)}),t(".udp-replace-with-iframe--js").on("click",function(e){e.preventDefault();var a=t(this).prop("href"),r=t('<iframe width="356" height="200" allowfullscreen webkitallowfullscreen mozallowfullscreen>').attr("src",a);r.insertAfter(t(this)),t(this).remove()})}),jQuery(document).ready(function(t){function e(e,n,o,d){if("function"==typeof o){var u=t(d).find("#updraftcentral_cloud_form"),s=u.find('.form_hidden_fields input[name="key"]');if(s.length&&""!==s.val())return void o.apply(this,[s.val()]);var i={where_send:"__updraftpluscom",key_description:"",key_size:e,mothership_firewalled:n};a(d),updraft_send_command("updraftcentral_create_key",i,function(e){r(d);try{if(i=ud_parse_json(e),i.hasOwnProperty("error"))return void console.log(i);i.hasOwnProperty("bundle")?o.apply(this,[i.bundle]):i.hasOwnProperty("r")?(t(d).find(".updraftcentral_cloud_notices").html(updraftlion.trouble_connecting).addClass("updraftcentral_cloud_info"),alert(i.r)):console.log(i)}catch(a){console.log(a)}},{json_parse:!1})}}function a(e){t(e).find(".updraftplus_spinner.spinner").addClass("visible")}function r(e){t(e).find(".updraftplus_spinner.spinner").removeClass("visible")}function n(e,n){a(n),updraft_send_command("process_updraftcentral_registration",e,function(a){r(n);try{if(e=ud_parse_json(a),e.hasOwnProperty("error")){var o=e.message,u=["existing_user_email","email_exists"];return-1!==t.inArray(e.code,u)&&(o=e.message+" "+updraftlion.perhaps_login),t(n).find(".updraftcentral_cloud_notices").html(o).addClass("updraftcentral_cloud_error"),t(n).find(".updraftcentral_cloud_notices a").attr("target","_blank"),void console.log(e)}"registered"===e.status&&(t(n).find(".updraftcentral_cloud_form_container").hide(),t(n).find(".updraftcentral-subheading").hide(),t(n).find(".updraftcentral_cloud_notices").removeClass("updraftcentral_cloud_error"),d(n,e,updraftlion.registration_successful))}catch(s){console.log(s)}},{json_parse:!1})}function o(e,o){a(o),updraft_send_command("process_updraftcentral_login",e,function(a){r(o);try{if(data=ud_parse_json(a),data.hasOwnProperty("error")){if("incorrect_password"===data.code&&(t(o).find(".updraftcentral_cloud_form_container .tfa_fields").hide(),t(o).find(".updraftcentral_cloud_form_container .non_tfa_fields").show(),t(o).find("input#two_factor_code").val(""),t(o).find("input#password").val("").focus()),"email_not_registered"!==data.code)return t(o).find(".updraftcentral_cloud_notices").html(data.message).addClass("updraftcentral_cloud_error"),t(o).find(".updraftcentral_cloud_notices a").attr("target","_blank"),void console.log(data);n(e,o)}data.hasOwnProperty("tfa_enabled")&&1==data.tfa_enabled&&(t(o).find(".updraftcentral_cloud_notices").html("").removeClass("updraftcentral_cloud_error"),t(o).find(".updraftcentral_cloud_form_container .non_tfa_fields").hide(),t(o).find(".updraftcentral_cloud_form_container .tfa_fields").show(),t(o).find("input#two_factor_code").focus()),"authenticated"===data.status&&(t(o).find(".updraftcentral_cloud_form_container").hide(),t(o).find(".updraftcentral_cloud_notices").removeClass("updraftcentral_cloud_error"),d(o,data,updraftlion.login_successful))}catch(u){console.log(u)}},{json_parse:!1})}function d(e,a,r){var n=t(e).find("form#updraftcentral_cloud_redirect_form");n.attr("action",a.redirect_url),n.attr("target","_blank"),"undefined"!=typeof a.redirect_token&&n.append('<input type="hidden" name="redirect_token" value="'+a.redirect_token+'">'),a.hasOwnProperty("keys_table")&&a.keys_table&&t("#updraftcentral_keys_content").html(a.keys_table),$redirect_lnk='<a href="'+updraftlion.current_clean_url+'" class="updraftcentral_cloud_redirect_link">'+updraftlion.updraftcentral_cloud+"</a>",$close_lnk='<a href="'+updraftlion.current_clean_url+'" class="updraftcentral_cloud_close_link">'+updraftlion.close_wizard+"</a>",t(e).find(".updraftcentral_cloud_notices").html(r.replace("%s",$redirect_lnk)+" "+$close_lnk+"<br/><br/>"+updraftlion.control_udc_connections),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_redirect_link").off("click").on("click",function(a){a.preventDefault(),n.submit(),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_close_link").trigger("click")}),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_close_link").off("click").on("click",function(a){a.preventDefault(),t(e).dialog("close"),t("#updraftcentral_cloud_connect_container").hide()})}function u(e){var a=t(e).find("#updraftcentral_cloud_form"),r=a.find("input#email").val(),n=a.find("input#password").val(),o=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;t(e).find(".updraftcentral_cloud_notices").html("").removeClass("updraftcentral_cloud_error updraftcentral_cloud_info");var d=a.find('.updraftcentral-data-consent > input[name="i_consent"]').is(":checked");return d?0===r.length||0===n.length?(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.username_password_required).addClass("updraftcentral_cloud_error"),!1):null!==r.match(o)||(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.valid_email_required).addClass("updraftcentral_cloud_error"),!1):(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.data_consent_required).addClass("updraftcentral_cloud_error"),!1)}function s(a,r){var d=t(a).find("#updraft_central_keysize").val(),u=t(a).find("#updraft_central_firewalled").is(":checked")?1:0;e(d,u,function(e){var d=t(a).find("#updraftcentral_cloud_form"),u=d.find('.form_hidden_fields input[name="key"]');0===u.length&&d.find(".form_hidden_fields").append('<input type="hidden" name="key" value="'+e+'">');var s=d.find("input").serialize(),i={form_data:s};"undefined"!=typeof r&&r?n(i,a):o(i,a)},a)}function i(){var e=t("#updraftcentral_cloud_login_form");if(e.length){t("#updraft-iframe-modal-innards").html(e.html());var a=t("#updraft-iframe-modal").dialog("option","title",updraftlion.updraftcentral_cloud).dialog("option","width",520).dialog("option","height",450).dialog("option","buttons",{});a.dialog("open");var r=a.find(".updraftcentral-data-consent"),n=r.find("input").attr("name");"undefined"!=typeof n&&n&&(r.find("input").attr("id",n),r.find("label").attr("for",n))}}jQuery("#updraft-restore-modal").on("change","#updraft_restorer_charset",function(e){if(t("#updraft_restorer_charset").length&&t("#updraft_restorer_collate").length&&t("#collate_change_on_charset_selection_data").length){var a=t("#updraft_restorer_charset").val();t("#updraft_restorer_collate option").show(),t("#updraft_restorer_collate option[data-charset!="+a+"]").hide(),updraft_send_command("collate_change_on_charset_selection",{collate_change_on_charset_selection_data:t("#collate_change_on_charset_selection_data").val(),updraft_restorer_charset:a,updraft_restorer_collate:t("#updraft_restorer_collate").val()},function(e){e.hasOwnProperty("is_action_required")&&1==e.is_action_required&&e.hasOwnProperty("similar_type_collate")&&t("#updraft_restorer_collate").val(e.similar_type_collate)})}}),t("#updraft-wrap #btn_cloud_connect").on("click",function(){i()}),t("#updraft-wrap a#self_hosted_connect").on("click",function(e){e.preventDefault(),t("h2.nav-tab-wrapper > a#updraft-navtab-expert").trigger("click"),t("div.advanced_settings_menu > #updraft_central").trigger("click")}),t("#updraft-iframe-modal").on("click","#updraftcentral_cloud_login",function(e){e.preventDefault();var a=t(this).closest("#updraft-iframe-modal");u(a)&&s(a)})});
 
 
 
 
languages/updraftplus-el.mo CHANGED
Binary file
languages/updraftplus-el.po CHANGED
@@ -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: 2018-04-11 16:26:19+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -18,979 +18,979 @@ msgstr ""
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()."
50
- msgstr ""
51
 
52
  #: src/admin.php:953
53
  msgid "UpdraftClone key is required."
54
- msgstr ""
55
 
56
  #: src/admin.php:944
57
  msgid "The preparation of the clone data has been aborted."
58
- msgstr ""
59
 
60
  #: src/addons/azure.php:646
61
  msgid "Azure Government"
62
- msgstr ""
63
 
64
  #: src/templates/wp-admin/settings/form-contents.php:350
65
  msgid "Ask WordPress to automatically update UpdraftPlus when it finds an available update."
66
- msgstr ""
67
 
68
  #: src/templates/wp-admin/settings/form-contents.php:349
69
  msgid "Automatic updates"
70
- msgstr ""
71
 
72
  #: src/restorer.php:2092, src/restorer.php:2134
73
  msgid "Your database user does not have permission to drop tables"
74
- msgstr ""
75
 
76
  #: src/admin.php:2962
77
  msgid "Ask WordPress to update UpdraftPlus automatically when an update is available"
78
- msgstr ""
79
 
80
  #: src/addons/googlecloud.php:997
81
  msgid "You must add the following as the authorized redirect URI (under \"More Options\") when asked"
82
- msgstr ""
83
 
84
  #: src/addons/googlecloud.php:991
85
  msgid "%s does not allow authorization of sites hosted on direct IP addresses. You will need to change your site's address (%s) before you can use %s for storage."
86
- msgstr ""
87
 
88
  #: src/addons/googlecloud.php:57
89
  msgid "Frankfurt"
90
- msgstr ""
91
 
92
  #: src/addons/googlecloud.php:56
93
  msgid "London"
94
- msgstr ""
95
 
96
  #: src/addons/googlecloud.php:55
97
  msgid "Belgium"
98
- msgstr ""
99
 
100
  #: src/addons/googlecloud.php:54
101
  msgid "Sydney"
102
- msgstr ""
103
 
104
  #: src/addons/googlecloud.php:53
105
  msgid "Singapore"
106
- msgstr ""
107
 
108
  #: src/addons/googlecloud.php:52
109
  msgid "Tokyo"
110
- msgstr ""
111
 
112
  #: src/addons/googlecloud.php:51
113
  msgid "Taiwan"
114
- msgstr ""
115
 
116
  #: src/addons/googlecloud.php:50
117
  msgid "Oregon"
118
- msgstr ""
119
 
120
  #: src/addons/googlecloud.php:49
121
  msgid "North Virginia"
122
- msgstr ""
123
 
124
  #: src/addons/googlecloud.php:48
125
  msgid "South Carolina"
126
- msgstr ""
127
 
128
  #: src/addons/googlecloud.php:47
129
  msgid "Iowa"
130
- msgstr ""
131
 
132
  #: src/includes/class-commands.php:949
133
  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."
134
- msgstr ""
135
 
136
  #: src/templates/wp-admin/settings/file-backup-exclude.php:11
137
  msgid "Confirm change"
138
- msgstr ""
139
 
140
  #: src/templates/wp-admin/settings/exclude-settings-modal/exclude-panel-submit.php:3,
141
  #: src/templates/wp-admin/settings/file-backup-exclude.php:18
142
  msgid "Add an exclusion rule"
143
- msgstr ""
144
 
145
  #: src/templates/wp-admin/settings/exclude-modal.php:59
146
  msgid "Type a file prefix"
147
- msgstr ""
148
 
149
  #: src/templates/wp-admin/settings/exclude-modal.php:56,
150
  #: src/templates/wp-admin/settings/exclude-modal.php:58
151
  msgid "All files beginning with these characters"
152
- msgstr ""
153
 
154
  #: src/templates/wp-admin/settings/exclude-modal.php:47
155
  msgid "Type an extension like zip"
156
- msgstr ""
157
 
158
  #: src/templates/wp-admin/settings/exclude-modal.php:28
159
  msgid "Select a file/folder which you would like to exclude"
160
- msgstr ""
161
 
162
  #: src/templates/wp-admin/settings/exclude-modal.php:15
163
  msgid "All files beginning with given characters"
164
- msgstr ""
165
 
166
  #: src/templates/wp-admin/settings/exclude-modal.php:12,
167
  #: src/templates/wp-admin/settings/exclude-modal.php:44,
168
  #: src/templates/wp-admin/settings/exclude-modal.php:46
169
  msgid "All files with this extension"
170
- msgstr ""
171
 
172
  #: src/templates/wp-admin/settings/exclude-modal.php:9,
173
  #: src/templates/wp-admin/settings/exclude-modal.php:22
174
  msgid "File/directory"
175
- msgstr ""
176
 
177
  #: src/templates/wp-admin/settings/exclude-modal.php:6
178
  msgid "Select a way to exclude files or directories from the backup"
179
- msgstr ""
180
 
181
  #: src/templates/wp-admin/settings/exclude-modal.php:2
182
  msgid "Exclude files/directories"
183
- msgstr ""
184
 
185
  #: src/includes/updraftclone/temporary-clone-status.php:422
186
  msgid "To read FAQs/documentation about UpdraftClone, go here."
187
- msgstr ""
188
 
189
  #: src/includes/updraftclone/temporary-clone-status.php:421
190
  msgid "your UpdraftPlus.com account"
191
- msgstr ""
192
 
193
  #: src/includes/updraftclone/temporary-clone-status.php:421
194
  msgid "You can check the progress here or in %s"
195
- msgstr ""
196
 
197
  #: src/includes/updraftclone/temporary-clone-status.php:421
198
  msgid "Your UpdraftClone is still setting up."
199
- msgstr ""
200
 
201
  #: src/includes/updraftclone/temporary-clone-status.php:378
202
  msgid "%s archives remain"
203
- msgstr ""
204
 
205
  #: src/includes/updraftclone/temporary-clone-status.php:378
206
  msgid "The site data has all been received, and its import has begun."
207
- msgstr ""
208
 
209
  #: src/includes/updraftclone/temporary-clone-status.php:373
210
  msgid "The sending of the site data has begun. So far %s data archives totalling %s have been received"
211
- msgstr ""
212
 
213
  #: src/includes/updraftclone/temporary-clone-status.php:369
214
  msgid "WordPress installed; now awaiting the site data to be sent."
215
- msgstr ""
216
 
217
  #: src/includes/updraftclone/temporary-clone-status.php:94
218
  msgid "Clone ready"
219
- msgstr ""
220
 
221
  #: src/includes/updraftclone/temporary-clone-status.php:86
222
  msgid "Site data has been deployed"
223
- msgstr ""
224
 
225
  #: src/includes/updraftclone/temporary-clone-status.php:84,
226
  #: src/includes/updraftclone/temporary-clone-status.php:347
227
  msgid "Deploying site data"
228
- msgstr ""
229
 
230
  #: src/includes/updraftclone/temporary-clone-status.php:75
231
  msgid "Site data received"
232
- msgstr ""
233
 
234
  #: src/includes/updraftclone/temporary-clone-status.php:73,
235
  #: src/includes/updraftclone/temporary-clone-status.php:344
236
  msgid "Receiving site data"
237
- msgstr ""
238
 
239
  #: src/includes/updraftclone/temporary-clone-status.php:66,
240
  #: src/includes/updraftclone/temporary-clone-status.php:341
241
  msgid "WordPress installed"
242
- msgstr ""
243
 
244
  #: src/admin.php:5428
245
  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."
246
- msgstr ""
247
 
248
  #: src/admin.php:3828
249
  msgid "Exclude these from"
250
- msgstr ""
251
 
252
  #: src/admin.php:952
253
  msgid "The exclusion rule which you are trying to add already exists"
254
- msgstr ""
255
 
256
  #: src/admin.php:951
257
  msgid "Please enter a valid file name prefix"
258
- msgstr ""
259
 
260
  #: src/admin.php:950
261
  msgid "Please enter characters that begin the filename which you would like to exclude"
262
- msgstr ""
263
 
264
  #: src/admin.php:949
265
  msgid "Please enter a valid file extension"
266
- msgstr ""
267
 
268
  #: src/admin.php:948
269
  msgid "Please enter a file extension, like zip"
270
- msgstr ""
271
 
272
  #: src/admin.php:947
273
  msgid "Please select a file/folder which you would like to exclude"
274
- msgstr ""
275
 
276
  #: src/admin.php:946
277
  msgid "Are you sure you want to remove this exclusion rule?"
278
- msgstr ""
279
 
280
  #: src/templates/wp-admin/advanced/site-info.php:104
281
  msgid "log results to console"
282
- msgstr ""
283
 
284
  #: src/includes/updraftclone/temporary-clone-dash-notice.php:42
285
  msgid "Each time your clone renews it costs 1 token, which lasts for 1 week. You can shut this clone down at the following link:"
286
- msgstr ""
287
 
288
  #: src/templates/wp-admin/settings/temporary-clone.php:41
289
  msgid "To create a temporary clone you need credit in your account."
290
- msgstr ""
291
 
292
  #: src/templates/wp-admin/settings/temporary-clone.php:22
293
  msgid "Read FAQs here."
294
- msgstr ""
295
 
296
  #: src/methods/dropbox.php:305, src/methods/dropbox.php:321
297
  msgid "failed to upload file to %s (see log file for more)"
298
- msgstr ""
299
 
300
  #: src/admin.php:5424
301
  msgid "Dashboard:"
302
- msgstr ""
303
 
304
  #: src/admin.php:5423
305
  msgid "Front page:"
306
- msgstr ""
307
 
308
  #: src/admin.php:5422
309
  msgid "Your clone has started and will be available at the following URLs once it is ready."
310
- msgstr ""
311
 
312
  #: src/includes/class-commands.php:906
313
  msgid "manage"
314
- msgstr ""
315
 
316
  #: src/includes/class-commands.php:906
317
  msgid "Current clones"
318
- msgstr ""
319
 
320
  #: src/class-updraftplus.php:2992
321
  msgid "Your clone will now deploy this data to re-create your site."
322
- msgstr ""
323
 
324
  #: src/admin.php:943
325
  msgid "The clone has been provisioned, and its data has been sent to it. Once the clone has finished deploying it, you will receive an email."
326
- msgstr ""
327
 
328
  #: src/addons/migrator.php:1745
329
  msgid "Site key"
330
- msgstr ""
331
 
332
  #: src/addons/migrator.php:1736
333
  msgid "Add a site"
334
- msgstr ""
335
 
336
  #: src/addons/migrator.php:229, src/addons/migrator.php:1731,
337
  #: src/addons/migrator.php:1752
338
  msgid "back"
339
- msgstr ""
340
 
341
  #: src/addons/migrator.php:195
342
  msgid "Read this article to see step-by-step how it's done."
343
- msgstr ""
344
 
345
  #: src/addons/migrator.php:189,
346
  #: src/templates/wp-admin/settings/migrator-no-migrator.php:6
347
  msgid "Migrate (create a copy of a site on hosting you control)"
348
- msgstr ""
349
 
350
  #: src/includes/updraftclone/temporary-clone-dash-notice.php:42
351
  msgid "Manage your clones"
352
- msgstr ""
353
 
354
  #: src/templates/wp-admin/settings/existing-backups-table.php:158
355
  msgid "Use ctrl / cmd + press to select several items"
356
- msgstr ""
357
 
358
  #: src/methods/dreamobjects.php:20
359
  msgid "Closing 1st October 2018"
360
- msgstr ""
361
 
362
  #: src/includes/updraftclone/temporary-clone-dash-notice.php:41
363
  msgid "Your clone will renew on:"
364
- msgstr ""
365
 
366
  #: src/includes/updraftclone/temporary-clone-dash-notice.php:32
367
  msgid "Unable to get renew date"
368
- msgstr ""
369
 
370
  #: src/admin.php:906
371
  msgid "The backup was aborted"
372
- msgstr ""
373
 
374
  #: src/addons/onedrive.php:1197
375
  msgid "OneDrive Germany"
376
- msgstr ""
377
 
378
  #: src/addons/onedrive.php:1196
379
  msgid "OneDrive International"
380
- msgstr ""
381
 
382
  #: src/addons/onedrive.php:1193
383
  msgid "Account type"
384
- msgstr ""
385
 
386
  #: src/templates/wp-admin/settings/temporary-clone.php:56,
387
  #: src/templates/wp-admin/settings/temporary-clone.php:76
388
  msgid "I accept the UpdraftClone terms and conditions"
389
- msgstr ""
390
 
391
  #: src/templates/wp-admin/settings/temporary-clone.php:56
392
  msgid "Not got an account? Get one by buying some tokens here."
393
- msgstr ""
394
 
395
  #: src/templates/wp-admin/settings/temporary-clone.php:22,
396
  #: src/templates/wp-admin/settings/temporary-clone.php:41,
397
  #: src/templates/wp-admin/settings/temporary-clone.php:54
398
  msgid "You can buy UpdraftClone tokens from our shop, here."
399
- msgstr ""
400
 
401
  #: src/templates/wp-admin/settings/temporary-clone.php:54
402
  msgid "To create a temporary clone you need: 1) credit in your account and 2) to connect to your account, below."
403
- msgstr ""
404
 
405
  #: src/templates/wp-admin/settings/temporary-clone.php:32
406
  msgid "If you want, test upgrading to a different PHP or WP version."
407
- msgstr ""
408
 
409
  #: src/templates/wp-admin/settings/temporary-clone.php:32
410
  msgid "Flexible"
411
- msgstr ""
412
 
413
  #: src/templates/wp-admin/settings/temporary-clone.php:31
414
  msgid "Takes just the time needed to create a backup and send it."
415
- msgstr ""
416
 
417
  #: src/templates/wp-admin/settings/temporary-clone.php:31
418
  msgid "Fast"
419
- msgstr ""
420
 
421
  #: src/templates/wp-admin/settings/temporary-clone.php:30
422
  msgid "One VPS (Virtual Private Server) per clone, shared with nobody."
423
- msgstr ""
424
 
425
  #: src/templates/wp-admin/settings/temporary-clone.php:30
426
  msgid "Secure"
427
- msgstr ""
428
 
429
  #: src/templates/wp-admin/settings/temporary-clone.php:29
430
  msgid "Runs on capacity from a leading cloud computing provider."
431
- msgstr ""
432
 
433
  #: src/templates/wp-admin/settings/temporary-clone.php:29
434
  msgid "Reliable"
435
- msgstr ""
436
 
437
  #: src/templates/wp-admin/settings/temporary-clone.php:28
438
  msgid "Press the buttons... UpdraftClone does the work."
439
- msgstr ""
440
 
441
  #: src/templates/wp-admin/settings/temporary-clone.php:28
442
  msgid "Easy"
443
- msgstr ""
444
 
445
  #: src/templates/wp-admin/settings/temporary-clone.php:22
446
  msgid "A temporary clone is an instant copy of this website, running on our servers. Rather than test things on your live site, you can UpdraftClone it, and then throw away your clone when done."
447
- msgstr ""
448
 
449
  #: src/templates/wp-admin/settings/temporary-clone.php:10,
450
  #: src/templates/wp-admin/settings/temporary-clone.php:39
451
  msgid "Create a temporary clone on our servers (UpdraftClone)"
452
- msgstr ""
453
 
454
  #: src/templates/wp-admin/settings/tab-addons.php:23
455
  msgid "WooCommerce plugins"
456
- msgstr ""
457
 
458
  #: src/templates/wp-admin/advanced/wipe-settings.php:13
459
  msgid "Reset tour"
460
- msgstr ""
461
 
462
  #: src/templates/wp-admin/advanced/wipe-settings.php:12
463
  msgid "Press this button to take a tour of the plugin."
464
- msgstr ""
465
 
466
  #: src/includes/updraftplus-tour.php:232
467
  msgid "Take Tour"
468
- msgstr ""
469
 
470
  #: src/includes/updraftplus-tour.php:182
471
  msgid "Log in here to enable all the features you have access to."
472
- msgstr ""
473
 
474
  #: src/includes/updraftplus-tour.php:181
475
  msgid "Connect to updraftplus.com"
476
- msgstr ""
477
 
478
  #: src/includes/updraftplus-tour.php:172
479
  msgid "Thank you for taking the tour. You are now all set to use UpdraftPlus!"
480
- msgstr ""
481
 
482
  #: src/includes/updraftplus-tour.php:160
483
  msgctxt "Translators: UpdraftVault is a product name and should not be translated."
484
  msgid "To get started with UpdraftVault, select one of the options below:"
485
- msgstr ""
486
 
487
  #: src/includes/updraftplus-tour.php:156,
488
  #: src/includes/updraftplus-tour.php:174, src/includes/updraftplus-tour.php:185
489
  msgid "Finish"
490
- msgstr ""
491
 
492
  #: src/includes/updraftplus-tour.php:153
493
  msgid "UpdraftPlus Premium has many more exciting features!"
494
- msgstr ""
495
 
496
  #: src/includes/updraftplus-tour.php:152
497
  msgid "UpdraftPlus Premium and addons"
498
- msgstr ""
499
 
500
  #: src/includes/updraftplus-tour.php:150, src/includes/updraftplus-tour.php:179
501
  msgid "Thank you for taking the tour."
502
- msgstr ""
503
 
504
  #: src/includes/updraftplus-tour.php:145
505
  msgid "Do you have a few more WordPress sites you want to backup? If yes you can save hours by controlling all your backups in one place from UpdraftCentral."
506
- msgstr ""
507
 
508
  #: src/includes/updraftplus-tour.php:144
509
  msgid "Control all your backups in one place"
510
- msgstr ""
511
 
512
  #: src/includes/updraftplus-tour.php:139
513
  msgid "Congratulations, your settings have successfully been saved."
514
- msgstr ""
515
 
516
  #: src/includes/updraftplus-tour.php:135
517
  msgid "Press here to save your settings."
518
- msgstr ""
519
 
520
  #: src/includes/updraftplus-tour.php:134, src/includes/updraftplus-tour.php:138
521
  msgid "Save"
522
- msgstr ""
523
 
524
  #: src/includes/updraftplus-tour.php:131
525
  msgid "Look through the other settings here, making any changes you’d like."
526
- msgstr ""
527
 
528
  #: src/includes/updraftplus-tour.php:130
529
  msgid "More settings"
530
- msgstr ""
531
 
532
  #: src/includes/updraftplus-tour.php:126,
533
  #: src/includes/updraftplus-tour.php:153,
534
  #: src/templates/wp-admin/settings/temporary-clone.php:22
535
  msgid "Find out more here."
536
- msgstr ""
537
 
538
  #: src/includes/updraftplus-tour.php:125
539
  msgid "UpdraftVault is our remote storage which works seamlessly with UpdraftPlus."
540
- msgstr ""
541
 
542
  #: src/includes/updraftplus-tour.php:122
543
  msgid "Now select a remote storage destination to protect against server-wide threats. If not, your backups remain on the same server as your site."
544
- msgstr ""
545
 
546
  #: src/includes/updraftplus-tour.php:118
547
  msgid "Choose the schedule that you want your backups to run on."
548
- msgstr ""
549
 
550
  #: src/includes/updraftplus-tour.php:117
551
  msgid "Choose your backup schedule"
552
- msgstr ""
553
 
554
  #: src/includes/updraftplus-tour.php:113
555
  msgid "Congratulations! Your first backup is running."
556
- msgstr ""
557
 
558
  #: src/includes/updraftplus-tour.php:109, src/includes/updraftplus-tour.php:114
559
  msgid "Go to settings"
560
- msgstr ""
561
 
562
  #: src/includes/updraftplus-tour.php:108, src/includes/updraftplus-tour.php:113
563
  msgctxt "Translators: %s is a bold tag."
564
  msgid "But to avoid server-wide threats backup regularly to remote cloud storage in %s settings %s"
565
- msgstr ""
566
 
567
  #: src/includes/updraftplus-tour.php:108
568
  msgid "Press here to run a manual backup."
569
- msgstr ""
570
 
571
  #: src/includes/updraftplus-tour.php:107, src/includes/updraftplus-tour.php:112
572
  msgid "Creating your first backup"
573
- msgstr ""
574
 
575
  #: src/includes/updraftplus-tour.php:104
576
  msgid "Select what you want to backup"
577
- msgstr ""
578
 
579
  #: src/includes/updraftplus-tour.php:103
580
  msgid "Manual backup options"
581
- msgstr ""
582
 
583
  #: src/includes/updraftplus-tour.php:100
584
  msgctxt "updraftplus"
585
  msgid "To make a simple backup to your server, press this button. Or to setup regular backups and remote storage, go to %s settings %s"
586
- msgstr ""
587
 
588
  #: src/includes/updraftplus-tour.php:99
589
  msgid "Your first backup"
590
- msgstr ""
591
 
592
  #: src/includes/updraftplus-tour.php:95
593
  msgid "Press here to start!"
594
- msgstr ""
595
 
596
  #: src/includes/updraftplus-tour.php:92
597
  msgid "the world’s most trusted backup plugin!"
598
- msgstr ""
599
 
600
  #: src/includes/updraftplus-tour.php:92
601
  msgid "Welcome to UpdraftPlus"
602
- msgstr ""
603
 
604
  #: src/includes/updraftplus-tour.php:91
605
  msgid "UpdraftPlus settings"
606
- msgstr ""
607
 
608
  #: src/includes/updraftplus-tour.php:88
609
  msgid "End tour"
610
- msgstr ""
611
 
612
  #: src/includes/updraftplus-tour.php:87
613
  msgid "Skip this step"
614
- msgstr ""
615
 
616
  #: src/includes/updraftplus-tour.php:86
617
  msgid "Back"
618
- msgstr ""
619
 
620
  #: src/includes/class-commands.php:893
621
  msgid "You can buy more temporary clone tokens here."
622
- msgstr ""
623
 
624
  #: src/admin.php:5379
625
  msgid "Forbid non-administrators to login to WordPress on your clone"
626
- msgstr ""
627
 
628
  #: src/templates/wp-admin/settings/temporary-clone.php:35
629
  msgid "Temporary clones of WordPress multisite installations are not yet supported. See our documentation on how to carry out a normal migration here"
630
- msgstr ""
631
 
632
  #: src/templates/wp-admin/settings/tab-addons.php:247
633
  msgid "Premium / Find out more"
634
- msgstr ""
635
 
636
  #: src/templates/wp-admin/settings/tab-addons.php:22
637
  msgid "Other great plugins"
638
- msgstr ""
639
 
640
  #: src/admin.php:5426, src/admin.php:5429
641
  msgid "You can find your temporary clone information in your updraftplus.com account here."
642
- msgstr ""
643
 
644
  #: src/class-updraftplus.php:4177
645
  msgid "Choose a default for each table"
646
- msgstr ""
647
 
648
  #: src/admin.php:3276
649
  msgid "Sending files to remote site"
650
- msgstr ""
651
 
652
  #: src/admin.php:3271
653
  msgid "Clone server being provisioned and booted (can take several minutes)"
654
- msgstr ""
655
 
656
  #: src/admin.php:942
657
  msgid "Warning: you have selected a lower version than your currently installed version. This may fail if you have components that are incompatible with earlier versions."
658
- msgstr ""
659
 
660
  #: src/addons/migrator.php:233
661
  msgid "To import a backup set, go to the \"Existing Backups\" section in the \"Backup/Restore\" tab"
662
- msgstr ""
663
 
664
  #: src/admin.php:2798
665
  msgid "Backup / Restore"
666
- msgstr ""
667
 
668
  #: src/admin.php:663
669
  msgid "Backup"
670
- msgstr ""
671
 
672
  #: src/addons/wp-cli.php:408
673
  msgid "Latest full backup found; identifier:"
674
- msgstr ""
675
 
676
  #: src/addons/wp-cli.php:407
677
  msgid "No previous full backup found."
678
- msgstr ""
679
 
680
  #: src/templates/wp-admin/settings/existing-backups-table.php:89
681
  msgid "Remote storage: %s"
682
- msgstr ""
683
 
684
  #: src/addons/wp-cli.php:88
685
  msgid "No previous backup found to add an increment to."
686
- msgstr ""
687
 
688
  #: src/restorer.php:2499
689
  msgid "Requested character set (%s) is not present - changing to %s."
690
- msgstr ""
691
 
692
  #: src/includes/updraftclone/temporary-clone-user-notice.php:32
693
  msgid "Allow only administrators to log in"
694
- msgstr ""
695
 
696
  #: src/includes/updraftclone/temporary-clone-user-notice.php:31
697
  msgid "You can forbid non-admins logins to this cloned site by checking the checkbox below"
698
- msgstr ""
699
 
700
  #: src/includes/updraftclone/temporary-clone-user-notice.php:30
701
  msgid "UpdraftPlus temporary clone user login settings:"
702
- msgstr ""
703
 
704
  #: src/includes/updraftclone/temporary-clone-dash-notice.php:39
705
  msgid "Welcome to your UpdraftClone (temporary clone)"
706
- msgstr ""
707
 
708
  #: src/includes/updraftclone/temporary-clone-dash-notice.php:38
709
  msgid "Refresh connection"
710
- msgstr ""
711
 
712
  #: src/addons/reporting.php:495
713
  msgid "Log all messages to syslog"
714
- msgstr ""
715
 
716
  #: src/addons/sftp.php:601, src/addons/sftp.php:603
717
  msgid "The server's RSA key %s fingerprint: %s."
718
- msgstr ""
719
 
720
  #: src/addons/sftp.php:597
721
  msgid "Failed: We are unable to match the fingerprint. However, we were able to log in and move to the indicated directory and successfully create a file in that location."
722
- msgstr ""
723
 
724
  #: src/addons/sftp.php:478
725
  msgid "MD5 (128-bit) fingerprint, in hex format - should have the same length and general appearance as this (colons optional): 73:51:43:b1:b5:fc:8b:b7:0a:3a:a9:b1:0f:69:73:a8. Using a fingerprint is not essential, but you are not secure against %s if you do not use one"
726
- msgstr ""
727
 
728
  #: src/addons/sftp.php:475
729
  msgid "RSA fingerprint"
730
- msgstr ""
731
 
732
  #: src/addons/sftp.php:82
733
  msgid "Fingerprints don't match."
734
- msgstr ""
735
 
736
  #: src/templates/wp-admin/settings/migrator-no-migrator.php:17
737
  msgid "More information here."
738
- msgstr ""
739
 
740
  #: src/admin.php:671, src/admin.php:2799
741
  msgid "Migrate / Clone"
742
- msgstr ""
743
 
744
  #: src/admin.php:3036, src/admin.php:3961,
745
  #: src/templates/wp-admin/settings/existing-backups-table.php:73,
746
  #: src/templates/wp-admin/settings/existing-backups-table.php:76
747
  msgid "Only allow this backup to be deleted manually (i.e. keep it even if retention limits are hit)."
748
- msgstr ""
749
 
750
  #: src/addons/wp-cli.php:834
751
  msgid "You have given the %1$s option. The %1$s is working with \"%2$s\" addon. Get the \"%2$s\" addon: %3$s"
752
- msgstr ""
753
 
754
  #: src/addons/wp-cli.php:793
755
  msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old)."
756
- msgstr ""
757
 
758
  #: src/addons/wp-cli.php:739, src/addons/wp-cli.php:743
759
  msgid "This is not an incremental backup"
760
- msgstr ""
761
 
762
  #: src/addons/wp-cli.php:665
763
  msgid "Run this command to see the log file for this restoration (needed for any support requests)."
764
- msgstr ""
765
 
766
  #: src/class-updraftplus.php:188
767
  msgid "A version of UpdraftPlus is already installed. WordPress will only allow you to install your new version after first de-installing the existing one. That is safe - all your settings and backups will be retained. So, go to the \"Plugins\" page, de-activate and de-install UpdraftPlus, and then try again."
768
- msgstr ""
769
 
770
  #: src/admin.php:5402
771
  msgid "(current version)"
772
- msgstr ""
773
 
774
  #: src/admin.php:3738
775
  msgid "press here"
776
- msgstr ""
777
 
778
  #: src/addons/onedrive.php:1157, src/methods/dropbox.php:586,
779
  #: src/methods/googledrive.php:1214
780
  msgid "this privacy policy"
781
- msgstr ""
782
 
783
  #: src/addons/onedrive.php:1157, src/methods/dropbox.php:586,
784
  #: src/methods/googledrive.php:1214
785
  msgid "Please read %s for use of our %s authorization app (none of your backup data is sent to us)."
786
- msgstr ""
787
 
788
  #: src/addons/incremental.php:270
789
  msgid "Tell me more"
790
- msgstr ""
791
 
792
  #: src/addons/incremental.php:258
793
  msgid "And then add an incremental backup"
794
- msgstr ""
795
 
796
  #: src/addons/incremental.php:236, src/updraftplus.php:99
797
  msgid "Every hour"
798
- msgstr ""
799
 
800
  #: src/includes/class-commands.php:900
801
  msgid "Create clone"
802
- msgstr ""
803
 
804
  #: src/includes/class-commands.php:892, src/includes/class-commands.php:937
805
  msgid "Available temporary clone tokens:"
806
- msgstr ""
807
 
808
  #: src/admin.php:2886, src/includes/class-commands.php:901,
809
  #: src/includes/class-commands.php:949,
810
  #: src/templates/wp-admin/settings/temporary-clone.php:83,
811
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:71
812
  msgid "Processing"
813
- msgstr ""
814
 
815
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:70
816
  msgid "Connect to UpdraftCentral Cloud"
817
- msgstr ""
818
 
819
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:68
820
  msgid "UpdraftPlus.Com account terms and policies"
821
- msgstr ""
822
 
823
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:68
824
  msgid "I consent to %s"
825
- msgstr ""
826
 
827
  #: src/admin.php:2984,
828
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:56
829
  msgid "One Time Password (check your OTP app to get this password)"
830
- msgstr ""
831
 
832
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:46
833
  msgid "Login or register with this email address"
834
- msgstr ""
835
 
836
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:34
837
  msgid "If not, then choose your details and a new account will be registered."
838
- msgstr ""
839
 
840
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:33
841
  msgid "If you already have an updraftplus.com account, then enter the details below."
842
- msgstr ""
843
 
844
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:31
845
  msgid "Add this website to your UpdraftCentral Cloud dashboard at updraftplus.com."
846
- msgstr ""
847
 
848
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:29
849
  msgid "Login or register for UpdraftCentral Cloud"
850
- msgstr ""
851
 
852
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:20
853
  msgid "Go here to connect it."
854
- msgstr ""
855
 
856
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:20
857
  msgid "Or if you prefer to self-host, then you can get the self-hosted version here."
858
- msgstr ""
859
 
860
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:17
861
  msgid "Connect this site to UpdraftCentral Cloud"
862
- msgstr ""
863
 
864
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:14
865
  msgid "If you have a few sites, it'll save hours. It's free to use or try up to 5 sites."
866
- msgstr ""
867
 
868
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:12
869
  msgid "Backup, update and manage all your WordPress sites from one dashboard"
870
- msgstr ""
871
 
872
  #: src/includes/updraftcentral.php:21, src/includes/updraftplus-clone.php:21
873
  msgid "An error has occurred while processing your request. The server might be busy or you have lost your connection to the internet at the time of the request. Please try again later."
874
- msgstr ""
875
 
876
  #: src/admin.php:5344
877
  msgid "The file %s has a \"byte order mark\" (BOM) at its beginning."
878
  msgid_plural "The files %s have a \"byte order mark\" (BOM) at their beginning."
879
- msgstr[0] ""
880
- msgstr[1] ""
881
 
882
  #: src/admin.php:940
883
  msgid "For future control of all your UpdraftCentral connections, go to the \"Advanced Tools\" tab."
884
- msgstr ""
885
 
886
  #: src/admin.php:939
887
  msgid "You can also close this wizard."
888
- msgstr ""
889
 
890
  #: src/admin.php:938
891
  msgid "You need to read and accept the UpdraftCentral Cloud data and privacy policies before you can proceed."
892
- msgstr ""
893
 
894
  #: src/admin.php:937
895
  msgid "Please wait while you are redirected to UpdraftCentral Cloud."
896
- msgstr ""
897
 
898
  #: src/admin.php:936
899
  msgid "Please wait while the system generates and registers an encryption key for your website with UpdraftCentral Cloud."
900
- msgstr ""
901
 
902
  #: src/admin.php:935
903
  msgid "Perhaps you would want to login instead."
904
- msgstr ""
905
 
906
  #: src/admin.php:934
907
  msgid "Trouble connecting? Try using an alternative method in the advanced security options."
908
- msgstr ""
909
 
910
  #: src/admin.php:933
911
  msgid "An email is required and needs to be in a valid format."
912
- msgstr ""
913
 
914
  #: src/admin.php:932
915
  msgid "Both email and password fields are required."
916
- msgstr ""
917
 
918
  #: src/admin.php:931
919
  msgid "Registration successful."
920
- msgstr ""
921
 
922
  #: src/admin.php:930, src/admin.php:931
923
  msgid "Please follow this link to open %s in a new window."
924
- msgstr ""
925
 
926
  #: src/admin.php:930
927
  msgid "Login successful."
928
- msgstr ""
929
 
930
  #: src/admin.php:929,
931
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:9
932
  msgid "UpdraftCentral Cloud"
933
- msgstr ""
934
 
935
  #: src/admin.php:489
936
  msgid "Are you sure you want to dismiss all UpdraftPlus news forever?"
937
- msgstr ""
938
 
939
  #: src/admin.php:488
940
  msgid "Dismiss all UpdraftPlus news"
941
- msgstr ""
942
 
943
  #: src/admin.php:487
944
  msgid "UpdraftPlus News"
945
- msgstr ""
946
 
947
  #: src/addons/wp-cli.php:553
948
  msgid "Migration key created:"
949
- msgstr ""
950
 
951
  #: src/addons/wp-cli.php:543
952
  msgid "Missing parameters"
953
- msgstr ""
954
 
955
  #: src/addons/azure.php:645
956
  msgid "Azure Germany"
957
- msgstr ""
958
 
959
  #: src/addons/azure.php:644
960
  msgid "Azure Global"
961
- msgstr ""
962
 
963
  #: src/addons/azure.php:641
964
  msgid "Azure Account"
965
- msgstr ""
966
 
967
  #: src/admin.php:928
968
  msgid "Please specify the Microsoft OneDrive folder name, not the URL."
969
- msgstr ""
970
 
971
  #: src/templates/wp-admin/settings/upload-backups-modal.php:4
972
  msgid "Select the remote storage destinations you want to upload this backup set to"
973
- msgstr ""
974
 
975
  #: src/templates/wp-admin/settings/upload-backups-modal.php:3
976
  msgid "Upload backup"
977
- msgstr ""
978
 
979
  #: src/admin.php:4248
980
  msgid "After pressing this button, you can select where to upload your backup from a list of your currently saved remote storage locations"
981
- msgstr ""
982
 
983
  #: src/admin.php:927
984
  msgid "(already uploaded)"
985
- msgstr ""
986
 
987
  #: src/admin.php:925
988
  msgid "Local backup upload has started; please check the current status tab to see the upload progress"
989
- msgstr ""
990
 
991
  #: src/admin.php:846, src/admin.php:4248
992
  msgid "Upload"
993
- msgstr ""
994
 
995
  #: src/addons/reporting.php:529, src/admin.php:796
996
  msgid "Only email the database backup"
@@ -1172,7 +1172,7 @@ msgstr "Αυτήν τη στιγμή χρησιμοποιείτε την δωρ
1172
 
1173
  #: src/templates/wp-admin/settings/tab-addons.php:26
1174
  msgid "Get it here"
1175
- msgstr ""
1176
 
1177
  #: src/methods/stream-base.php:323
1178
  msgid "Download chunk size successfully changed to %d"
@@ -1614,7 +1614,7 @@ msgstr "Το UpdraftPlus διαθέτει τη δική του ενσωματω
1614
 
1615
  #: src/templates/wp-admin/advanced/wipe-settings.php:11
1616
  msgid "UpdraftPlus Tour"
1617
- msgstr ""
1618
 
1619
  #: src/templates/wp-admin/settings/tab-addons.php:232
1620
  msgid "Lock access to UpdraftPlus via a password so you choose which admin users can access backups."
@@ -1622,7 +1622,7 @@ msgstr "Κλεiδώστε την πρόσβαση στο UpdraftPlus μέσω ε
1622
 
1623
  #: src/templates/wp-admin/settings/tab-addons.php:219
1624
  msgid "Some backup plugins can't restore a backup, so Premium allows you to restore backups from other plugins."
1625
- msgstr ""
1626
 
1627
  #: src/templates/wp-admin/settings/tab-addons.php:217,
1628
  #: src/templates/wp-admin/settings/tab-addons.php:218
@@ -1699,7 +1699,7 @@ msgstr "Κλωνοποίηση και μετανάστευση"
1699
 
1700
  #: src/templates/wp-admin/settings/tab-addons.php:180
1701
  msgid "Get enhanced versions of the free remote storage options (Dropbox, Google Drive & S3) and even more remote storage options like OneDrive, SFTP, Azure, WebDAV and more with UpdraftPlus Premium."
1702
- msgstr ""
1703
 
1704
  #: src/templates/wp-admin/settings/tab-addons.php:179
1705
  msgid "Additional and enhanced remote storage locations"
@@ -1852,7 +1852,7 @@ msgstr "Καλοκαιρινές εκτπώσεις - 20% έκπτωση στο
1852
 
1853
  #: src/includes/updraftplus-notices.php:251
1854
  msgid "Spring sale - 20% off UpdraftPlus Premium until April 30th"
1855
- msgstr ""
1856
 
1857
  #: src/includes/updraftplus-notices.php:238
1858
  msgid "Happy New Year - 20% off UpdraftPlus Premium until January 14th"
@@ -2051,7 +2051,7 @@ msgstr "Διαγραφή τοπικών αρχείων:"
2051
 
2052
  #: src/methods/backup-module.php:549
2053
  msgid "Follow this link to authorize access to your %s account (you will not be able to backup to %s without it)."
2054
- msgstr ""
2055
 
2056
  #: src/admin.php:908
2057
  msgid "remote files deleted"
@@ -3581,7 +3581,7 @@ msgstr "Για να δημιουργήσετε ένα νέο ΙΑΜ υπο-χρ
3581
 
3582
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:12
3583
  msgid "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."
3584
- msgstr ""
3585
 
3586
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:29
3587
  msgid "UpdraftPlus news, high-quality training materials for WordPress developers and site-owners, and general WordPress news. You can de-subscribe at any time."
@@ -3732,7 +3732,7 @@ msgstr "Αλλαγή Ρυθμίσεων Κλειδώματος"
3732
 
3733
  #: src/addons/morefiles.php:258
3734
  msgid "Any other file/directory on your server that you wish to backup"
3735
- msgstr ""
3736
 
3737
  #: src/admin.php:2611
3738
  msgid "For even more features and personal support, check out "
@@ -4258,7 +4258,7 @@ msgstr "Αυτό θα προκαλέσει επίσης αποσφαλμάτωσ
4258
 
4259
  #: src/templates/wp-admin/settings/form-contents.php:233
4260
  msgid "Backup more databases"
4261
- msgstr ""
4262
 
4263
  #: src/templates/wp-admin/settings/form-contents.php:192
4264
  msgid "First, enter the decryption key"
@@ -5180,7 +5180,7 @@ msgstr "(Αυτό ισχύει για όλα τα πρόσθετα του WordPr
5180
 
5181
  #: src/options.php:208
5182
  msgid "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>."
5183
- msgstr ""
5184
 
5185
  #: src/options.php:208
5186
  msgid "WordPress Multisite is supported, with extra features, by UpdraftPlus Premium, or the Multisite add-on."
@@ -5937,7 +5937,7 @@ msgstr "Κάποια αρχεία ακόμα κατεβαίνουν ή υπόκ
5937
 
5938
  #: src/class-updraftplus.php:3945, src/class-updraftplus.php:3965
5939
  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."
5940
- msgstr ""
5941
 
5942
  #: src/addons/fixtime.php:571
5943
  msgid "The time zone used is that from your WordPress settings, in Settings -> General."
@@ -6245,7 +6245,7 @@ msgstr "Έχει γίνει έναρξη αναζήτησης αυτής της
6245
 
6246
  #: src/methods/s3.php:482
6247
  msgid "%s Error: Failed to access bucket %s. Check your permissions and credentials.1"
6248
- msgstr ""
6249
 
6250
  #: src/addons/dropbox-folders.php:32
6251
  msgid "Store at"
@@ -6505,7 +6505,7 @@ msgstr "υπάρχει ένα πρόσθετο για αυτό το σκοπό."
6505
 
6506
  #: src/methods/dropbox.php:603, src/methods/dropbox.php:605
6507
  msgid "If you backup several sites into the same Dropbox and want to organize with sub-folders, then "
6508
- msgstr ""
6509
 
6510
  #: src/methods/dropbox.php:603, src/methods/dropbox.php:605
6511
  msgid "Backups are saved in"
@@ -6521,7 +6521,7 @@ msgstr "σφάλμα: αποτυχία ανεβάσματος του αρχεί
6521
 
6522
  #: src/methods/dropbox.php:195
6523
  msgid "error: %s (see log file for more)"
6524
- msgstr ""
6525
 
6526
  #: src/methods/dropbox.php:173, src/methods/dropbox.php:190
6527
  msgid "You do not appear to be authenticated with Dropbox"
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
+ "PO-Revision-Date: 2018-12-08 18:30:19+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
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 "Εάν έχετε ήδη κάνει ανανέωση, τότε θα πρέπει να εκχωρήσετε άδεια σε αυτόν τον ιστότοπο - %s"
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 "Διαβάστε περισσότερα για το Easy Updates Manager"
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 "Ή χρησιμοποιήστε ένα κλειδί του UpdraftClone"
47
 
48
  #: src/restorer.php:2493
49
  msgid "Found SET NAMES %s, but changing to %s as suggested by WPDB::determine_charset()."
50
+ msgstr "Βρέθηκαν τα SET NAMES %s, αλλά θα αλλάξουν σε %s όπως προτείνεται από το WPDB::determine_charset()."
51
 
52
  #: src/admin.php:953
53
  msgid "UpdraftClone key is required."
54
+ msgstr "Απαιτείται κλειδί του UpdraftClone."
55
 
56
  #: src/admin.php:944
57
  msgid "The preparation of the clone data has been aborted."
58
+ msgstr "Η παρασκευή των δεδομένων του κλώνου έχει διακοπεί."
59
 
60
  #: src/addons/azure.php:646
61
  msgid "Azure Government"
62
+ msgstr "Azure Government"
63
 
64
  #: src/templates/wp-admin/settings/form-contents.php:350
65
  msgid "Ask WordPress to automatically update UpdraftPlus when it finds an available update."
66
+ msgstr "Ρυθμίστε τη WordPress ώστε να ενημερώνει αυτόματα το UpdraftPlus όταν εντοπίσει μια διαθέσιμη ενημερωμένη έκδοση."
67
 
68
  #: src/templates/wp-admin/settings/form-contents.php:349
69
  msgid "Automatic updates"
70
+ msgstr "Αυτόματη ενημέρωση"
71
 
72
  #: src/restorer.php:2092, src/restorer.php:2134
73
  msgid "Your database user does not have permission to drop tables"
74
+ msgstr "Ο χρήστης της βάσης δεδομένων δεν έχει άδεια να διαγράψει πίνακες"
75
 
76
  #: src/admin.php:2962
77
  msgid "Ask WordPress to update UpdraftPlus automatically when an update is available"
78
+ msgstr "Ρυθμίστε τη WordPress ώστε να ενημερώνει το UpdraftPlus αυτόματα όταν υπάρχει διαθέσιμη ενημερωμένη έκδοση. "
79
 
80
  #: src/addons/googlecloud.php:997
81
  msgid "You must add the following as the authorized redirect URI (under \"More Options\") when asked"
82
+ msgstr "Πρέπει να προσθέσετε τα παρακάτω ως εξουσιοδοτημένο URI ανακατεύθυνσης (στο πεδίο \"Περισσότερες επιλογές\") όταν σας ζητηθεί"
83
 
84
  #: src/addons/googlecloud.php:991
85
  msgid "%s does not allow authorization of sites hosted on direct IP addresses. You will need to change your site's address (%s) before you can use %s for storage."
86
+ msgstr "Το %s δεν επιτρέπει την εξουσιοδότηση των ιστότοπων που φιλοξενούνται σε άμεσες διευθύνσεις IP. Θα χρειαστεί να αλλάξετε τη διεύθυνση του ιστότοπού σας (%s) προτού μπορέσετε να χρησιμοποιήσετε το %s για αποθήκευση."
87
 
88
  #: src/addons/googlecloud.php:57
89
  msgid "Frankfurt"
90
+ msgstr "Φρανκφούρτη"
91
 
92
  #: src/addons/googlecloud.php:56
93
  msgid "London"
94
+ msgstr "Λονδινο"
95
 
96
  #: src/addons/googlecloud.php:55
97
  msgid "Belgium"
98
+ msgstr "Βέλγιο"
99
 
100
  #: src/addons/googlecloud.php:54
101
  msgid "Sydney"
102
+ msgstr "Σύδνεϊ"
103
 
104
  #: src/addons/googlecloud.php:53
105
  msgid "Singapore"
106
+ msgstr "Σιγκαπούρη "
107
 
108
  #: src/addons/googlecloud.php:52
109
  msgid "Tokyo"
110
+ msgstr "Τόκιο "
111
 
112
  #: src/addons/googlecloud.php:51
113
  msgid "Taiwan"
114
+ msgstr "Ταϊβάν "
115
 
116
  #: src/addons/googlecloud.php:50
117
  msgid "Oregon"
118
+ msgstr "Όρεγκον "
119
 
120
  #: src/addons/googlecloud.php:49
121
  msgid "North Virginia"
122
+ msgstr "Βόρεια Βιρτζίνια"
123
 
124
  #: src/addons/googlecloud.php:48
125
  msgid "South Carolina"
126
+ msgstr "Νότια Καρολίνα"
127
 
128
  #: src/addons/googlecloud.php:47
129
  msgid "Iowa"
130
+ msgstr "Αϊόβα"
131
 
132
  #: src/includes/class-commands.php:949
133
  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."
134
+ msgstr "Θα πρέπει τώρα να ξεκινήσει η δημιουργία των δεδομένων σας για τη δημιουργία του κλώνου. Σημείωση: Θα χρεωθείτε μία μονάδα χρήσης μόλις ο κλώνος είναι έτοιμος. Εάν ο κλώνος δεν μπορέσει να εκκινήσει, τότε δεν θα χρεωθείτε τίποτα."
135
 
136
  #: src/templates/wp-admin/settings/file-backup-exclude.php:11
137
  msgid "Confirm change"
138
+ msgstr "Επιβεβαιώστε την αλλαγή"
139
 
140
  #: src/templates/wp-admin/settings/exclude-settings-modal/exclude-panel-submit.php:3,
141
  #: src/templates/wp-admin/settings/file-backup-exclude.php:18
142
  msgid "Add an exclusion rule"
143
+ msgstr "Προσθέστε έναν κανόνα αποκλεισμού"
144
 
145
  #: src/templates/wp-admin/settings/exclude-modal.php:59
146
  msgid "Type a file prefix"
147
+ msgstr "Πληκτρολογήστε ένα πρόθεμα αρχείου"
148
 
149
  #: src/templates/wp-admin/settings/exclude-modal.php:56,
150
  #: src/templates/wp-admin/settings/exclude-modal.php:58
151
  msgid "All files beginning with these characters"
152
+ msgstr "Όλα τα αρχεία αρχίζουν με αυτούς τους χαρακτήρες"
153
 
154
  #: src/templates/wp-admin/settings/exclude-modal.php:47
155
  msgid "Type an extension like zip"
156
+ msgstr "Πληκτρολογήστε μια επέκταση όπως το zip"
157
 
158
  #: src/templates/wp-admin/settings/exclude-modal.php:28
159
  msgid "Select a file/folder which you would like to exclude"
160
+ msgstr "Επιλέξτε ένα αρχείο/φάκελο που θέλετε να εξαιρέσετε"
161
 
162
  #: src/templates/wp-admin/settings/exclude-modal.php:15
163
  msgid "All files beginning with given characters"
164
+ msgstr "Όλα τα αρχεία ξεκινούν με συγκεκριμένους χαρακτήρες"
165
 
166
  #: src/templates/wp-admin/settings/exclude-modal.php:12,
167
  #: src/templates/wp-admin/settings/exclude-modal.php:44,
168
  #: src/templates/wp-admin/settings/exclude-modal.php:46
169
  msgid "All files with this extension"
170
+ msgstr "Όλα τα αρχεία με αυτήν την επέκταση"
171
 
172
  #: src/templates/wp-admin/settings/exclude-modal.php:9,
173
  #: src/templates/wp-admin/settings/exclude-modal.php:22
174
  msgid "File/directory"
175
+ msgstr "Αρχείο/κατάλογος"
176
 
177
  #: src/templates/wp-admin/settings/exclude-modal.php:6
178
  msgid "Select a way to exclude files or directories from the backup"
179
+ msgstr "Επιλέξτε έναν τρόπο εξαίρεσης αρχείων ή καταλόγων από το αντίγραφο ασφαλείας"
180
 
181
  #: src/templates/wp-admin/settings/exclude-modal.php:2
182
  msgid "Exclude files/directories"
183
+ msgstr "Εξαίρεση αρχείων/καταλόγων"
184
 
185
  #: src/includes/updraftclone/temporary-clone-status.php:422
186
  msgid "To read FAQs/documentation about UpdraftClone, go here."
187
+ msgstr "Για να διαβάσετε τις συχνές ερωτήσεις/την τεκμηρίωση σχετικά με το UpdraftClone κάντε κλικ εδώ."
188
 
189
  #: src/includes/updraftclone/temporary-clone-status.php:421
190
  msgid "your UpdraftPlus.com account"
191
+ msgstr "ο UpdraftPlus.com λογαριασμός σας</a>"
192
 
193
  #: src/includes/updraftclone/temporary-clone-status.php:421
194
  msgid "You can check the progress here or in %s"
195
+ msgstr "Μπορείτε να ελέγξετε την πρόοδο εδώ ή στο %s"
196
 
197
  #: src/includes/updraftclone/temporary-clone-status.php:421
198
  msgid "Your UpdraftClone is still setting up."
199
+ msgstr "Το UpdraftClone σας εξακολουθεί να εγκαθίσταται."
200
 
201
  #: src/includes/updraftclone/temporary-clone-status.php:378
202
  msgid "%s archives remain"
203
+ msgstr "%s από τα αρχεία παραμένουν"
204
 
205
  #: src/includes/updraftclone/temporary-clone-status.php:378
206
  msgid "The site data has all been received, and its import has begun."
207
+ msgstr "Όλα τα δεδομένα ιστότοπου έχουν ληφθεί και η εισαγωγή τους έχει αρχίσει."
208
 
209
  #: src/includes/updraftclone/temporary-clone-status.php:373
210
  msgid "The sending of the site data has begun. So far %s data archives totalling %s have been received"
211
+ msgstr "Η αποστολή των δεδομένων ιστότοπου έχει αρχίσει. Μέχρι στιγμής έχουν ληφθεί %s αρχεία δεδομένων και συνολικά %s"
212
 
213
  #: src/includes/updraftclone/temporary-clone-status.php:369
214
  msgid "WordPress installed; now awaiting the site data to be sent."
215
+ msgstr "Η WordPress είναι εγκατεστημένη, τώρα περιμένετε να σταλούν τα δεδομένα του ιστοτόπου σας."
216
 
217
  #: src/includes/updraftclone/temporary-clone-status.php:94
218
  msgid "Clone ready"
219
+ msgstr "Ο κλώνος είναι έτοιμος"
220
 
221
  #: src/includes/updraftclone/temporary-clone-status.php:86
222
  msgid "Site data has been deployed"
223
+ msgstr "Τα δεδομένα ιστότοπου έχουν αναπτυχθεί"
224
 
225
  #: src/includes/updraftclone/temporary-clone-status.php:84,
226
  #: src/includes/updraftclone/temporary-clone-status.php:347
227
  msgid "Deploying site data"
228
+ msgstr "Ανάπτυξη δεδομένων ιστότοπου"
229
 
230
  #: src/includes/updraftclone/temporary-clone-status.php:75
231
  msgid "Site data received"
232
+ msgstr "Έγινε λήψη των δεδομένων του ιστότοπου"
233
 
234
  #: src/includes/updraftclone/temporary-clone-status.php:73,
235
  #: src/includes/updraftclone/temporary-clone-status.php:344
236
  msgid "Receiving site data"
237
+ msgstr "Λήψη δεδομένων ιστότοπου"
238
 
239
  #: src/includes/updraftclone/temporary-clone-status.php:66,
240
  #: src/includes/updraftclone/temporary-clone-status.php:341
241
  msgid "WordPress installed"
242
+ msgstr "Το WordPress εγκαταστάθηκε"
243
 
244
  #: src/admin.php:5428
245
  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."
246
+ msgstr "Ο κλώνος σας έχει ξεκινήσει, οι πληροφορίες δικτύου δεν είναι ακόμα διαθέσιμες, αλλά θα εμφανιστούν εδώ και στο λογαριασμό σας στο updraftplus.com μόλις είναι έτοιμες."
247
 
248
  #: src/admin.php:3828
249
  msgid "Exclude these from"
250
+ msgstr "Εξαίρεση αυτών από"
251
 
252
  #: src/admin.php:952
253
  msgid "The exclusion rule which you are trying to add already exists"
254
+ msgstr "Ο κανόνας εξαίρεσης που προσπαθείτε να προσθέσετε υπάρχει ήδη"
255
 
256
  #: src/admin.php:951
257
  msgid "Please enter a valid file name prefix"
258
+ msgstr "Εισαγάγετε ένα έγκυρο πρόθεμα ονόματος αρχείου"
259
 
260
  #: src/admin.php:950
261
  msgid "Please enter characters that begin the filename which you would like to exclude"
262
+ msgstr "Εισαγάγετε τους χαρακτήρες με τους οποίους αρχίζει το όνομα αρχείου που θέλετε να εξαιρέσετε"
263
 
264
  #: src/admin.php:949
265
  msgid "Please enter a valid file extension"
266
+ msgstr "Εισαγάγετε μια έγκυρη επέκταση αρχείου"
267
 
268
  #: src/admin.php:948
269
  msgid "Please enter a file extension, like zip"
270
+ msgstr "Καταχωρίστε μια επέκταση αρχείου, όπως το zip"
271
 
272
  #: src/admin.php:947
273
  msgid "Please select a file/folder which you would like to exclude"
274
+ msgstr "Επιλέξτε ένα αρχείο/φάκελο που θέλετε να εξαιρέσετε"
275
 
276
  #: src/admin.php:946
277
  msgid "Are you sure you want to remove this exclusion rule?"
278
+ msgstr "Είστε βέβαιοι ότι θέλετε να καταργήσετε αυτόν τον κανόνα εξαίρεσης;"
279
 
280
  #: src/templates/wp-admin/advanced/site-info.php:104
281
  msgid "log results to console"
282
+ msgstr "αποτελέσματα καταγραφής στην κονσόλα"
283
 
284
  #: src/includes/updraftclone/temporary-clone-dash-notice.php:42
285
  msgid "Each time your clone renews it costs 1 token, which lasts for 1 week. You can shut this clone down at the following link:"
286
+ msgstr "Κάθε φορά που ανανεώνεται ο κλώνος σας, κοστίζει 1 μονάδα χρήσης, η οποίο διαρκεί 1 εβδομάδα. Μπορείτε να τερματίσετε αυτόν τον κλώνο στον παρακάτω σύνδεσμο:"
287
 
288
  #: src/templates/wp-admin/settings/temporary-clone.php:41
289
  msgid "To create a temporary clone you need credit in your account."
290
+ msgstr "Για να δημιουργήσετε έναν προσωρινό κλώνο χρειάζεστε πίστωση στο λογαριασμό σας."
291
 
292
  #: src/templates/wp-admin/settings/temporary-clone.php:22
293
  msgid "Read FAQs here."
294
+ msgstr "Διαβάστε τις Συχνές Ερωτήσεις εδώ."
295
 
296
  #: src/methods/dropbox.php:305, src/methods/dropbox.php:321
297
  msgid "failed to upload file to %s (see log file for more)"
298
+ msgstr "απέτυχε η μεταφόρτωση του αρχείου στο %s (δείτε το αρχείο καταγραφής για περισσότερα)"
299
 
300
  #: src/admin.php:5424
301
  msgid "Dashboard:"
302
+ msgstr "Πίνακας ελέγχου:"
303
 
304
  #: src/admin.php:5423
305
  msgid "Front page:"
306
+ msgstr "Αρχική σελίδα:"
307
 
308
  #: src/admin.php:5422
309
  msgid "Your clone has started and will be available at the following URLs once it is ready."
310
+ msgstr "Ο κλώνος σας έχει ξεκινήσει και θα είναι διαθέσιμος στις ακόλουθες διευθύνσεις URL μόλις είναι έτοιμος."
311
 
312
  #: src/includes/class-commands.php:906
313
  msgid "manage"
314
+ msgstr "διαχείριση"
315
 
316
  #: src/includes/class-commands.php:906
317
  msgid "Current clones"
318
+ msgstr "Τρέχοντες κλώνοι"
319
 
320
  #: src/class-updraftplus.php:2992
321
  msgid "Your clone will now deploy this data to re-create your site."
322
+ msgstr "Ο κλώνος σας θα αναπτύξει τώρα αυτά τα δεδομένα για να δημιουργήσει εκ νέου τον ιστότοπό σας."
323
 
324
  #: src/admin.php:943
325
  msgid "The clone has been provisioned, and its data has been sent to it. Once the clone has finished deploying it, you will receive an email."
326
+ msgstr "Ο κλώνος έχει τροφοδοτηθεί και τα δεδομένα έχουν σταλεί σε αυτόν. Μόλις ολοκληρωθεί η ανάπτυξη του κλώνου, θα λάβετε ένα μήνυμα ηλεκτρονικού ταχυδρομείου."
327
 
328
  #: src/addons/migrator.php:1745
329
  msgid "Site key"
330
+ msgstr "Κλειδί σελίδας"
331
 
332
  #: src/addons/migrator.php:1736
333
  msgid "Add a site"
334
+ msgstr "Προσθήκη σελίδας"
335
 
336
  #: src/addons/migrator.php:229, src/addons/migrator.php:1731,
337
  #: src/addons/migrator.php:1752
338
  msgid "back"
339
+ msgstr "πίσω"
340
 
341
  #: src/addons/migrator.php:195
342
  msgid "Read this article to see step-by-step how it's done."
343
+ msgstr "Διαβάστε αυτό το άρθρο για να δείτε βήμα προς βήμα πώς γίνεται."
344
 
345
  #: src/addons/migrator.php:189,
346
  #: src/templates/wp-admin/settings/migrator-no-migrator.php:6
347
  msgid "Migrate (create a copy of a site on hosting you control)"
348
+ msgstr "Μετεγκατάσταση (δημιουργήστε ένα αντίγραφο ενός ιστότοπου σε διακομιστή που κατέχετε)"
349
 
350
  #: src/includes/updraftclone/temporary-clone-dash-notice.php:42
351
  msgid "Manage your clones"
352
+ msgstr "Διαχειριστείτε τους κλώνους σας"
353
 
354
  #: src/templates/wp-admin/settings/existing-backups-table.php:158
355
  msgid "Use ctrl / cmd + press to select several items"
356
+ msgstr "Χρησιμοποιήστε τα πλήκτρα ctrl / cmd + για να επιλέξετε πολλά στοιχεία"
357
 
358
  #: src/methods/dreamobjects.php:20
359
  msgid "Closing 1st October 2018"
360
+ msgstr "Σταματά την 1η Οκτωβρίου 2018"
361
 
362
  #: src/includes/updraftclone/temporary-clone-dash-notice.php:41
363
  msgid "Your clone will renew on:"
364
+ msgstr "Ο κλώνος σας θα ανανεωθεί στις:"
365
 
366
  #: src/includes/updraftclone/temporary-clone-dash-notice.php:32
367
  msgid "Unable to get renew date"
368
+ msgstr "Δεν είναι δυνατή η λήψη ημερομηνίας ανανέωσης"
369
 
370
  #: src/admin.php:906
371
  msgid "The backup was aborted"
372
+ msgstr "Η λήψη αντιγράφου ασφαλείας ακυρώθηκε"
373
 
374
  #: src/addons/onedrive.php:1197
375
  msgid "OneDrive Germany"
376
+ msgstr "OneDrive Γερμανία"
377
 
378
  #: src/addons/onedrive.php:1196
379
  msgid "OneDrive International"
380
+ msgstr "OneDrive Διεθνές"
381
 
382
  #: src/addons/onedrive.php:1193
383
  msgid "Account type"
384
+ msgstr "Τύπος λογαριασμού"
385
 
386
  #: src/templates/wp-admin/settings/temporary-clone.php:56,
387
  #: src/templates/wp-admin/settings/temporary-clone.php:76
388
  msgid "I accept the UpdraftClone terms and conditions"
389
+ msgstr "Δέχομαι τους όρους και τις προϋποθέσεις του UpdraftClone"
390
 
391
  #: src/templates/wp-admin/settings/temporary-clone.php:56
392
  msgid "Not got an account? Get one by buying some tokens here."
393
+ msgstr "Δεν έχετε λογαριασμός; Αποκτήστε αγοράζοντας μερικές μονάδες χρήσης εδώ."
394
 
395
  #: src/templates/wp-admin/settings/temporary-clone.php:22,
396
  #: src/templates/wp-admin/settings/temporary-clone.php:41,
397
  #: src/templates/wp-admin/settings/temporary-clone.php:54
398
  msgid "You can buy UpdraftClone tokens from our shop, here."
399
+ msgstr "Μπορείτε να αγοράσετε μονάδες χρήσης του UpdraftClone από το κατάστημά μας εδώ."
400
 
401
  #: src/templates/wp-admin/settings/temporary-clone.php:54
402
  msgid "To create a temporary clone you need: 1) credit in your account and 2) to connect to your account, below."
403
+ msgstr "Για να δημιουργήσετε έναν προσωρινό κλώνο χρειάζεστε: 1) πίστωση στον λογαριασμό σας και 2) για να συνδεθείτε στο λογαριασμό σας, παρακάτω."
404
 
405
  #: src/templates/wp-admin/settings/temporary-clone.php:32
406
  msgid "If you want, test upgrading to a different PHP or WP version."
407
+ msgstr "Εάν θέλετε, δοκιμάστε να κάνετε αναβάθμιση σε διαφορετική έκδοση PHP ή WP."
408
 
409
  #: src/templates/wp-admin/settings/temporary-clone.php:32
410
  msgid "Flexible"
411
+ msgstr "Ευέλικτο"
412
 
413
  #: src/templates/wp-admin/settings/temporary-clone.php:31
414
  msgid "Takes just the time needed to create a backup and send it."
415
+ msgstr "Χρειάζεται μόνο ο χρόνος που απαιτείται για να δημιουργηθεί ένα αντίγραφο ασφαλείας και να σταλεί."
416
 
417
  #: src/templates/wp-admin/settings/temporary-clone.php:31
418
  msgid "Fast"
419
+ msgstr "Γρήγορο"
420
 
421
  #: src/templates/wp-admin/settings/temporary-clone.php:30
422
  msgid "One VPS (Virtual Private Server) per clone, shared with nobody."
423
+ msgstr "Ένα VPS (Virtual Private Server) ανά κλώνο, που δεν μοιράζεται με κανέναν."
424
 
425
  #: src/templates/wp-admin/settings/temporary-clone.php:30
426
  msgid "Secure"
427
+ msgstr "Ασφαλές"
428
 
429
  #: src/templates/wp-admin/settings/temporary-clone.php:29
430
  msgid "Runs on capacity from a leading cloud computing provider."
431
+ msgstr "Λειτουργεί με υποδομές χωρητικότητας από έναν κορυφαίο πάροχο υπολογιστικών υπηρεσιών στο σύννεφο."
432
 
433
  #: src/templates/wp-admin/settings/temporary-clone.php:29
434
  msgid "Reliable"
435
+ msgstr "Αξιόπιστο"
436
 
437
  #: src/templates/wp-admin/settings/temporary-clone.php:28
438
  msgid "Press the buttons... UpdraftClone does the work."
439
+ msgstr "Πατήστε τα κουμπιά ... Το UpdraftClone κάνει τη δουλειά."
440
 
441
  #: src/templates/wp-admin/settings/temporary-clone.php:28
442
  msgid "Easy"
443
+ msgstr "Εύκολο"
444
 
445
  #: src/templates/wp-admin/settings/temporary-clone.php:22
446
  msgid "A temporary clone is an instant copy of this website, running on our servers. Rather than test things on your live site, you can UpdraftClone it, and then throw away your clone when done."
447
+ msgstr "Ένας προσωρινός κλώνος είναι ένα στιγμιαίο αντίγραφο αυτού του ιστότοπου, που τρέχει στους διακομιστές μας. Μην κάνετε δοκιμές στο ιστότοπό σας. Φτιάξτε έναν κλώνο στο UpdraftClone και πετάξτε τον όταν τελειώσετε τις δοκιμές."
448
 
449
  #: src/templates/wp-admin/settings/temporary-clone.php:10,
450
  #: src/templates/wp-admin/settings/temporary-clone.php:39
451
  msgid "Create a temporary clone on our servers (UpdraftClone)"
452
+ msgstr "Ή δημιουργήστε έναν προσωρινό κλώνο στους διακομιστές μας (UpdraftClone)"
453
 
454
  #: src/templates/wp-admin/settings/tab-addons.php:23
455
  msgid "WooCommerce plugins"
456
+ msgstr "Πρόσθετα του WooCommerce"
457
 
458
  #: src/templates/wp-admin/advanced/wipe-settings.php:13
459
  msgid "Reset tour"
460
+ msgstr "Επαναφορά περιήγησης"
461
 
462
  #: src/templates/wp-admin/advanced/wipe-settings.php:12
463
  msgid "Press this button to take a tour of the plugin."
464
+ msgstr "Πατήστε αυτό το κουμπί για να κάνετε μια περιήγηση στο πρόσθετο."
465
 
466
  #: src/includes/updraftplus-tour.php:232
467
  msgid "Take Tour"
468
+ msgstr "Κάντε Περιήγηση"
469
 
470
  #: src/includes/updraftplus-tour.php:182
471
  msgid "Log in here to enable all the features you have access to."
472
+ msgstr "Συνδεθείτε εδώ για να ενεργοποιήσετε όλες τις λειτουργίες στις οποίες έχετε πρόσβαση."
473
 
474
  #: src/includes/updraftplus-tour.php:181
475
  msgid "Connect to updraftplus.com"
476
+ msgstr "Συνδεθείτε στο updraftplus.com"
477
 
478
  #: src/includes/updraftplus-tour.php:172
479
  msgid "Thank you for taking the tour. You are now all set to use UpdraftPlus!"
480
+ msgstr "Σας ευχαριστούμε που κάνετε την περιήγηση. Τώρα είστε έτοιμοι να χρησιμοποιήσετε το UpdraftPlus!"
481
 
482
  #: src/includes/updraftplus-tour.php:160
483
  msgctxt "Translators: UpdraftVault is a product name and should not be translated."
484
  msgid "To get started with UpdraftVault, select one of the options below:"
485
+ msgstr "Για να ξεκινήσετε να χρησιμοποιείτε το UpdraftVault, επιλέξτε ένα από τα παρακάτω:"
486
 
487
  #: src/includes/updraftplus-tour.php:156,
488
  #: src/includes/updraftplus-tour.php:174, src/includes/updraftplus-tour.php:185
489
  msgid "Finish"
490
+ msgstr "Τέλος"
491
 
492
  #: src/includes/updraftplus-tour.php:153
493
  msgid "UpdraftPlus Premium has many more exciting features!"
494
+ msgstr "Το UpdraftPlus Premium έχει κι άλλα πολλά συναρπαστικά χαρακτηριστικά!"
495
 
496
  #: src/includes/updraftplus-tour.php:152
497
  msgid "UpdraftPlus Premium and addons"
498
+ msgstr "UpdraftPlus Premium και πρόσθετα"
499
 
500
  #: src/includes/updraftplus-tour.php:150, src/includes/updraftplus-tour.php:179
501
  msgid "Thank you for taking the tour."
502
+ msgstr "Σας ευχαριστούμε που κάνετε την περιήγηση."
503
 
504
  #: src/includes/updraftplus-tour.php:145
505
  msgid "Do you have a few more WordPress sites you want to backup? If yes you can save hours by controlling all your backups in one place from UpdraftCentral."
506
+ msgstr "Έχετε μερικές ακόμη ιστοσελίδες της WordPress που θέλετε να δημιουργήσετε αντίγραφα ασφαλείας; Εάν ναι, μπορείτε να εξοικονομήσετε ώρες ελέγχοντας όλα τα αντίγραφα ασφαλείας σε ένα σημείο από το UpdraftCentral."
507
 
508
  #: src/includes/updraftplus-tour.php:144
509
  msgid "Control all your backups in one place"
510
+ msgstr "Ελέγξτε όλα τα αντίγραφα ασφαλείας από ένα μέρος"
511
 
512
  #: src/includes/updraftplus-tour.php:139
513
  msgid "Congratulations, your settings have successfully been saved."
514
+ msgstr "Συγχαρητήρια, οι ρυθμίσεις σας αποθηκεύτηκαν με επιτυχία."
515
 
516
  #: src/includes/updraftplus-tour.php:135
517
  msgid "Press here to save your settings."
518
+ msgstr "Πατήστε εδώ για να αποθηκεύσετε τις ρυθμίσεις σας."
519
 
520
  #: src/includes/updraftplus-tour.php:134, src/includes/updraftplus-tour.php:138
521
  msgid "Save"
522
+ msgstr "Αποθήκευση"
523
 
524
  #: src/includes/updraftplus-tour.php:131
525
  msgid "Look through the other settings here, making any changes you’d like."
526
+ msgstr "Ανατρέξτε στις άλλες ρυθμίσεις εδώ κάνοντας οποιεσδήποτε αλλαγές θέλετε."
527
 
528
  #: src/includes/updraftplus-tour.php:130
529
  msgid "More settings"
530
+ msgstr "Περισσότερες ρυθμίσεις"
531
 
532
  #: src/includes/updraftplus-tour.php:126,
533
  #: src/includes/updraftplus-tour.php:153,
534
  #: src/templates/wp-admin/settings/temporary-clone.php:22
535
  msgid "Find out more here."
536
+ msgstr "Ανακαλύψτε περισσότερα εδώ."
537
 
538
  #: src/includes/updraftplus-tour.php:125
539
  msgid "UpdraftVault is our remote storage which works seamlessly with UpdraftPlus."
540
+ msgstr "Το UpdraftVault είναι το απομακρυσμένο σημείο αποθήκευσης που λειτουργεί άψογα με το UpdraftPlus."
541
 
542
  #: src/includes/updraftplus-tour.php:122
543
  msgid "Now select a remote storage destination to protect against server-wide threats. If not, your backups remain on the same server as your site."
544
+ msgstr "Τώρα επιλέξτε έναν απομακρυσμένο προορισμό αποθήκευσης για προστασία από απειλές σε επίπεδο διακομιστή. Εάν δεν επιλέξετε, τα αντίγραφα ασφαλείας παραμένουν στον ίδιο διακομιστή με τον ιστότοπό σας."
545
 
546
  #: src/includes/updraftplus-tour.php:118
547
  msgid "Choose the schedule that you want your backups to run on."
548
+ msgstr "Επιλέξτε το χρονοδιάγραμμα στο οποίο θέλετε να εκτελούνται τα αντίγραφα ασφαλείας."
549
 
550
  #: src/includes/updraftplus-tour.php:117
551
  msgid "Choose your backup schedule"
552
+ msgstr "Επιλέξτε το χρονοδιάγραμμα δημιουργίας αντιγράφων ασφαλείας"
553
 
554
  #: src/includes/updraftplus-tour.php:113
555
  msgid "Congratulations! Your first backup is running."
556
+ msgstr "Συγχαρητήρια! Το πρώτο σας αντίγραφο ασφαλείας εκτελείται."
557
 
558
  #: src/includes/updraftplus-tour.php:109, src/includes/updraftplus-tour.php:114
559
  msgid "Go to settings"
560
+ msgstr "Πηγαίνετε στις ρυθμίσεις"
561
 
562
  #: src/includes/updraftplus-tour.php:108, src/includes/updraftplus-tour.php:113
563
  msgctxt "Translators: %s is a bold tag."
564
  msgid "But to avoid server-wide threats backup regularly to remote cloud storage in %s settings %s"
565
+ msgstr "Αλλά για να αποφύγετε την πιθανότητα κακόβουλων ενεργειών στο διακομιστή σας κρατήστε στα αντίγραφα ασφαλείας σε σημείο απομακρυσμένης αποθήκευσης στο σύννεφο στις %s ρυθμίσεις %s"
566
 
567
  #: src/includes/updraftplus-tour.php:108
568
  msgid "Press here to run a manual backup."
569
+ msgstr "Πατήστε εδώ για να δημιουργήσετε ένα αντίγραφο ασφαλείας."
570
 
571
  #: src/includes/updraftplus-tour.php:107, src/includes/updraftplus-tour.php:112
572
  msgid "Creating your first backup"
573
+ msgstr "Δημιουργία του πρώτου σας αντιγράφου ασφαλείας"
574
 
575
  #: src/includes/updraftplus-tour.php:104
576
  msgid "Select what you want to backup"
577
+ msgstr "Επιλέξτε ποια στοιχεία θα συμπεριληφθούν στο αντίγραφο ασφαλείας"
578
 
579
  #: src/includes/updraftplus-tour.php:103
580
  msgid "Manual backup options"
581
+ msgstr "Επιλογές χειροκίνητης δημιουργίας αντιγράφων"
582
 
583
  #: src/includes/updraftplus-tour.php:100
584
  msgctxt "updraftplus"
585
  msgid "To make a simple backup to your server, press this button. Or to setup regular backups and remote storage, go to %s settings %s"
586
+ msgstr "Για να δημιουργήσετε ένα απλό αντίγραφο ασφαλείας στο διακομιστή σας, πατήστε αυτό το κουμπί. Ή για να ρυθμίσετε τακτικά αντίγραφα ασφαλείας και απομακρυσμένη αποθήκευση, μεταβείτε στις %s ρυθμίσεις %s"
587
 
588
  #: src/includes/updraftplus-tour.php:99
589
  msgid "Your first backup"
590
+ msgstr "Το πρώτο σας αντίγραφο ασφαλείας"
591
 
592
  #: src/includes/updraftplus-tour.php:95
593
  msgid "Press here to start!"
594
+ msgstr "Πατήστε εδώ για να ξεκινήσετε!"
595
 
596
  #: src/includes/updraftplus-tour.php:92
597
  msgid "the world’s most trusted backup plugin!"
598
+ msgstr "το πιο αξιόπιστο αντίγραφο ασφαλείας στον κόσμο!"
599
 
600
  #: src/includes/updraftplus-tour.php:92
601
  msgid "Welcome to UpdraftPlus"
602
+ msgstr "Καλωσορίσατε στο UpdraftPlus"
603
 
604
  #: src/includes/updraftplus-tour.php:91
605
  msgid "UpdraftPlus settings"
606
+ msgstr "Ρυθμίσεις του UpdraftPlus"
607
 
608
  #: src/includes/updraftplus-tour.php:88
609
  msgid "End tour"
610
+ msgstr "Τέλος περιήγησης"
611
 
612
  #: src/includes/updraftplus-tour.php:87
613
  msgid "Skip this step"
614
+ msgstr "Παραλείψτε αυτό το βήμα"
615
 
616
  #: src/includes/updraftplus-tour.php:86
617
  msgid "Back"
618
+ msgstr "Πίσω"
619
 
620
  #: src/includes/class-commands.php:893
621
  msgid "You can buy more temporary clone tokens here."
622
+ msgstr "Μπορείτε να αγοράσετε περισσότερες προσωρινές μονάδες χρήσης για τους κλώνους σας εδώ."
623
 
624
  #: src/admin.php:5379
625
  msgid "Forbid non-administrators to login to WordPress on your clone"
626
+ msgstr "Απαγορεύστε στους μη διαχειριστές να συνδεθούν στον WordPress κλώνο σας"
627
 
628
  #: src/templates/wp-admin/settings/temporary-clone.php:35
629
  msgid "Temporary clones of WordPress multisite installations are not yet supported. See our documentation on how to carry out a normal migration here"
630
+ msgstr "Οι προσωρινοί κλώνοι των multisite εγκαταστάσεων WordPress δεν υποστηρίζονται ακόμη. Δείτε την τεκμηρίωσή μας σχετικά με τον τρόπο πραγματοποίησης μιας κανονικής μετανάστευσης εδώ"
631
 
632
  #: src/templates/wp-admin/settings/tab-addons.php:247
633
  msgid "Premium / Find out more"
634
+ msgstr "Premium / Δείτε περισσότερα εδώ"
635
 
636
  #: src/templates/wp-admin/settings/tab-addons.php:22
637
  msgid "Other great plugins"
638
+ msgstr "Άλλα εξαιρετικά πρόσθετα"
639
 
640
  #: src/admin.php:5426, src/admin.php:5429
641
  msgid "You can find your temporary clone information in your updraftplus.com account here."
642
+ msgstr "Μπορείτε να βρείτε τις προσωρινές σας πληροφορίες για τους κλώνους σας στον λογαριασμό σαςα του updraftplus.com εδώ."
643
 
644
  #: src/class-updraftplus.php:4177
645
  msgid "Choose a default for each table"
646
+ msgstr "Επιλέξτε μια προεπιλογή για κάθε πίνακα"
647
 
648
  #: src/admin.php:3276
649
  msgid "Sending files to remote site"
650
+ msgstr "Αποστολή αρχείων σε απομακρυσμένη τοποθεσία"
651
 
652
  #: src/admin.php:3271
653
  msgid "Clone server being provisioned and booted (can take several minutes)"
654
+ msgstr "Ο διακομιστής κλωνοποίησης ρυθμίζεται και εκκινείται (μπορεί να διαρκέσει αρκετά λεπτά)"
655
 
656
  #: src/admin.php:942
657
  msgid "Warning: you have selected a lower version than your currently installed version. This may fail if you have components that are incompatible with earlier versions."
658
+ msgstr "Προειδοποίηση: έχετε επιλέξει μια χαμηλότερη έκδοση από την τρέχουσα έκδοση. Η διαδικασία μπορεί να αποτύχει αν υπάρχουν στοιχεία που δεν είναι συμβατά με προηγούμενες εκδόσεις."
659
 
660
  #: src/addons/migrator.php:233
661
  msgid "To import a backup set, go to the \"Existing Backups\" section in the \"Backup/Restore\" tab"
662
+ msgstr "Για να εισαγάγετε ένα σετ αντιγράφων ασφαλείας, μεταβείτε στην ενότητα \"Υπάρχοντα αντίγραφα ασφαλείας\" στην καρτέλα \"Δημιουργία αντιγράφων ασφαλείας / επαναφορά\""
663
 
664
  #: src/admin.php:2798
665
  msgid "Backup / Restore"
666
+ msgstr "Λήψη αντιγράφου ασφαλείας / Επαναφορά"
667
 
668
  #: src/admin.php:663
669
  msgid "Backup"
670
+ msgstr "Λήψη αντιγράφου ασφαλείας"
671
 
672
  #: src/addons/wp-cli.php:408
673
  msgid "Latest full backup found; identifier:"
674
+ msgstr "Το τελευταίο πλήρες αντίγραφο ασφαλείας βρέθηκε, αναγνωριστικό:"
675
 
676
  #: src/addons/wp-cli.php:407
677
  msgid "No previous full backup found."
678
+ msgstr "Δεν βρέθηκε προηγούμενο πλήρες αντίγραφο ασφαλείας."
679
 
680
  #: src/templates/wp-admin/settings/existing-backups-table.php:89
681
  msgid "Remote storage: %s"
682
+ msgstr "Απομακρυσμένος χώρος αποθήκευσης: %s"
683
 
684
  #: src/addons/wp-cli.php:88
685
  msgid "No previous backup found to add an increment to."
686
+ msgstr "Δεν βρέθηκε κανένα προηγούμενο αντίγραφο ασφαλείας για να προστεθούν στοιχεία σε αυτό."
687
 
688
  #: src/restorer.php:2499
689
  msgid "Requested character set (%s) is not present - changing to %s."
690
+ msgstr "Το απαιτούμενο σύνολο χαρακτήρων (%s) δεν υπάρχει - θα αλλαχτεί σε %s."
691
 
692
  #: src/includes/updraftclone/temporary-clone-user-notice.php:32
693
  msgid "Allow only administrators to log in"
694
+ msgstr "Να επιτρέπεται μόνο οι διαχειριστές να συνδεθούν"
695
 
696
  #: src/includes/updraftclone/temporary-clone-user-notice.php:31
697
  msgid "You can forbid non-admins logins to this cloned site by checking the checkbox below"
698
+ msgstr "Μπορείτε να απαγορεύσετε την είσοδο μη διαχειριστών σε αυτόν τον κλωνοποιημένο ιστότοπο, τσεκάροντας το παρακάτω πλαίσιο ελέγχου"
699
 
700
  #: src/includes/updraftclone/temporary-clone-user-notice.php:30
701
  msgid "UpdraftPlus temporary clone user login settings:"
702
+ msgstr "Ρυθμίσεις του UpdraftPlus για τη σύνδεση χρήστη στον προσωρινό κλώνο:"
703
 
704
  #: src/includes/updraftclone/temporary-clone-dash-notice.php:39
705
  msgid "Welcome to your UpdraftClone (temporary clone)"
706
+ msgstr "Καλώς ήρθατε στον προσωρινό σας κλώνο στο UpdraftPlus"
707
 
708
  #: src/includes/updraftclone/temporary-clone-dash-notice.php:38
709
  msgid "Refresh connection"
710
+ msgstr "Ανανέωση σύνδεσης"
711
 
712
  #: src/addons/reporting.php:495
713
  msgid "Log all messages to syslog"
714
+ msgstr "Καταγράψτε όλα τα μηνύματα στο syslog"
715
 
716
  #: src/addons/sftp.php:601, src/addons/sftp.php:603
717
  msgid "The server's RSA key %s fingerprint: %s."
718
+ msgstr "Το κλειδί RSA του διακομιστή %s δακτυλικών αποτυπωμάτων: %s."
719
 
720
  #: src/addons/sftp.php:597
721
  msgid "Failed: We are unable to match the fingerprint. However, we were able to log in and move to the indicated directory and successfully create a file in that location."
722
+ msgstr "Αποτυχία: Δεν είναι δυνατή η αντιστοίχιση του δακτυλικού αποτυπώματος. Ωστόσο, μπορέσαμε να συνδεθούμε και να προχωρήσουμε στον αναφερόμενο κατάλογο και να δημιουργήσουμε με επιτυχία ένα αρχείο σε αυτήν την τοποθεσία."
723
 
724
  #: src/addons/sftp.php:478
725
  msgid "MD5 (128-bit) fingerprint, in hex format - should have the same length and general appearance as this (colons optional): 73:51:43:b1:b5:fc:8b:b7:0a:3a:a9:b1:0f:69:73:a8. Using a fingerprint is not essential, but you are not secure against %s if you do not use one"
726
+ msgstr "Το αποτύπωμα MD5 (128 bit), σε δεκαεξαδική μορφή, θα πρέπει να έχει το ίδιο μήκος και γενική εμφάνιση με αυτό (προαιρετικά): 73:51:43:b1:b5:fc:8b:b7:0a:3a:a9:b1:0f:69:73:a8. Η χρήση ενός δακτυλικού αποτυπώματος δεν είναι απαραίτητη, αλλά δεν είστε ασφαλείς ενάντια στο %s εάν δεν το χρησιμοποιείτε"
727
 
728
  #: src/addons/sftp.php:475
729
  msgid "RSA fingerprint"
730
+ msgstr "Δακτυλικό αποτύπωμα RSA"
731
 
732
  #: src/addons/sftp.php:82
733
  msgid "Fingerprints don't match."
734
+ msgstr "Τα δακτυλικά αποτυπώματα δεν ταιριάζουν."
735
 
736
  #: src/templates/wp-admin/settings/migrator-no-migrator.php:17
737
  msgid "More information here."
738
+ msgstr "Περισσότερες πληροφορίες εδώ."
739
 
740
  #: src/admin.php:671, src/admin.php:2799
741
  msgid "Migrate / Clone"
742
+ msgstr "Κλωνοποίηση / Μετανάστευση"
743
 
744
  #: src/admin.php:3036, src/admin.php:3961,
745
  #: src/templates/wp-admin/settings/existing-backups-table.php:73,
746
  #: src/templates/wp-admin/settings/existing-backups-table.php:76
747
  msgid "Only allow this backup to be deleted manually (i.e. keep it even if retention limits are hit)."
748
+ msgstr "Καταστήστε αυτό το αντίγραφο ασφαλείας να μπορεί να διαγραφεί με μη αυτόματο τρόπο (δηλαδή διατηρήστε το ακόμα και αν ξεπεραστούν τα όρια διατήρησης)."
749
 
750
  #: src/addons/wp-cli.php:834
751
  msgid "You have given the %1$s option. The %1$s is working with \"%2$s\" addon. Get the \"%2$s\" addon: %3$s"
752
+ msgstr "Μόλις κάνατε την επιλογή %1$s. Το %1$s συνεργάζεται με το πρόσθετο \"%2$s\". Αποκτήστε το πρόσθετο \"%2$s\": %3$s"
753
 
754
  #: src/addons/wp-cli.php:793
755
  msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old)."
756
+ msgstr "Η εγκατάστασή της WordPress σας έχει παλιούς καταλόγους από την κατάστασή της πριν αποκατασταθεί / μετεγκατασταθεί (τεχνικές πληροφορίες: αυτές έχουν επισημανθεί με το πρόθεμα -old)."
757
 
758
  #: src/addons/wp-cli.php:739, src/addons/wp-cli.php:743
759
  msgid "This is not an incremental backup"
760
+ msgstr "Αυτό δεν είναι ένα κανονικό αντίγραφο ασφαλείας"
761
 
762
  #: src/addons/wp-cli.php:665
763
  msgid "Run this command to see the log file for this restoration (needed for any support requests)."
764
+ msgstr "Εκτελέστε αυτήν την εντολή για να δείτε το αρχείο καταγραφής για αυτήν την αποκατάσταση (απαιτείται για οποιαδήποτε αιτήματα υποστήριξης)."
765
 
766
  #: src/class-updraftplus.php:188
767
  msgid "A version of UpdraftPlus is already installed. WordPress will only allow you to install your new version after first de-installing the existing one. That is safe - all your settings and backups will be retained. So, go to the \"Plugins\" page, de-activate and de-install UpdraftPlus, and then try again."
768
+ msgstr "Μια έκδοση του UpdraftPlus είναι ήδη εγκατεστημένη. Η WordPress θα σας επιτρέψει να εγκαταστήσετε τη νέα έκδοση μόνο αφού πρώτα απεγκαταστήσετε την υπάρχουσα. Αυτή είναι η ασφαλέστερη διαδικασία - ενώ όλες οι ρυθμίσεις και τα αντίγραφα ασφαλείας θα διατηρηθούν. Έτσι, μεταβείτε στη σελίδα \"Πρόσθετα\", απενεργοποιήστε και απεγκαταστήστε το UpdraftPlus και στη συνέχεια δοκιμάστε ξανά."
769
 
770
  #: src/admin.php:5402
771
  msgid "(current version)"
772
+ msgstr "(τρέχουσα έκδοση)"
773
 
774
  #: src/admin.php:3738
775
  msgid "press here"
776
+ msgstr "πατήστε εδώ"
777
 
778
  #: src/addons/onedrive.php:1157, src/methods/dropbox.php:586,
779
  #: src/methods/googledrive.php:1214
780
  msgid "this privacy policy"
781
+ msgstr "αυτή την πολιτική απορρήτου"
782
 
783
  #: src/addons/onedrive.php:1157, src/methods/dropbox.php:586,
784
  #: src/methods/googledrive.php:1214
785
  msgid "Please read %s for use of our %s authorization app (none of your backup data is sent to us)."
786
+ msgstr "Διαβάστε το %s για χρήση της εφαρμογής εξουσιοδότησης %s (κανένα από τα δεδομένα αντιγράφων ασφαλείας δεν αποστέλλεται σε εμάς)."
787
 
788
  #: src/addons/incremental.php:270
789
  msgid "Tell me more"
790
+ msgstr "Πείτε μας περισσότερα"
791
 
792
  #: src/addons/incremental.php:258
793
  msgid "And then add an incremental backup"
794
+ msgstr "Στη συνέχεια, προσθέστε ένα κανονικό αντίγραφο ασφαλείας"
795
 
796
  #: src/addons/incremental.php:236, src/updraftplus.php:99
797
  msgid "Every hour"
798
+ msgstr "Κάθε ώρα"
799
 
800
  #: src/includes/class-commands.php:900
801
  msgid "Create clone"
802
+ msgstr "Δημιουργία κλώνου"
803
 
804
  #: src/includes/class-commands.php:892, src/includes/class-commands.php:937
805
  msgid "Available temporary clone tokens:"
806
+ msgstr "Διαθέσιμες μονάδες χρήσης προσωρινών κλώνων:"
807
 
808
  #: src/admin.php:2886, src/includes/class-commands.php:901,
809
  #: src/includes/class-commands.php:949,
810
  #: src/templates/wp-admin/settings/temporary-clone.php:83,
811
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:71
812
  msgid "Processing"
813
+ msgstr "Επεξεργασία"
814
 
815
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:70
816
  msgid "Connect to UpdraftCentral Cloud"
817
+ msgstr "Σύνδεση στο UpdraftCentral Cloud"
818
 
819
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:68
820
  msgid "UpdraftPlus.Com account terms and policies"
821
+ msgstr "Όροι και πολιτικές του λογαριασμού UpdraftPlus.Com"
822
 
823
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:68
824
  msgid "I consent to %s"
825
+ msgstr "Συναινώ στο %s"
826
 
827
  #: src/admin.php:2984,
828
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:56
829
  msgid "One Time Password (check your OTP app to get this password)"
830
+ msgstr "Κωδικός πρόσβασης μιας χρήσης (ελέγξτε την εφαρμογή OTP για να αποκτήσετε αυτόν τον κωδικό πρόσβασης)"
831
 
832
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:46
833
  msgid "Login or register with this email address"
834
+ msgstr "Συνδεθείτε ή εγγραφείτε με αυτή τη διεύθυνση ηλεκτρονικού ταχυδρομείου"
835
 
836
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:34
837
  msgid "If not, then choose your details and a new account will be registered."
838
+ msgstr "Εάν όχι, επιλέξτε τα στοιχεία σας και θα δημιουργηθεί ένας νέος λογαριασμός."
839
 
840
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:33
841
  msgid "If you already have an updraftplus.com account, then enter the details below."
842
+ msgstr "Αν έχετε ήδη λογαριασμό στο updraftplus.com, εισάγετε τα παρακάτω στοιχεία."
843
 
844
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:31
845
  msgid "Add this website to your UpdraftCentral Cloud dashboard at updraftplus.com."
846
+ msgstr "Προσθέστε αυτή την ιστοσελίδα στον πίνακα ελέγχου του UpdraftCentral Cloud στο updraftplus.com."
847
 
848
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:29
849
  msgid "Login or register for UpdraftCentral Cloud"
850
+ msgstr "Σύνδεση ή εγγραφή στο UpdraftCentral Cloud"
851
 
852
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:20
853
  msgid "Go here to connect it."
854
+ msgstr "Πηγαίνετε εδώ για να συνδεθείτε."
855
 
856
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:20
857
  msgid "Or if you prefer to self-host, then you can get the self-hosted version here."
858
+ msgstr "Ή αν προτιμάτε να φιλοξενία σε δικό σας server, τότε μπορείτε να πάρετε την έκδοση το δικό σας server εδώ."
859
 
860
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:17
861
  msgid "Connect this site to UpdraftCentral Cloud"
862
+ msgstr "Συνδέστε αυτόν τον ιστότοπο στο UpdraftCentral Cloud"
863
 
864
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:14
865
  msgid "If you have a few sites, it'll save hours. It's free to use or try up to 5 sites."
866
+ msgstr "Αν έχετε μερικούς ιστότοπους, αυτό θα σας εξοικονομήσει χρόνο. Η χρήση είναι δωρεάν ή η δοκιμή έως μέχρι 5 ιστότοπους."
867
 
868
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:12
869
  msgid "Backup, update and manage all your WordPress sites from one dashboard"
870
+ msgstr "Δημιουργήστε αντίγραφα ασφαλείας, ενημερώστε και διαχειριστείτε όλους τους ιστότοπους WordPress από έναν πίνακα ελέγχου"
871
 
872
  #: src/includes/updraftcentral.php:21, src/includes/updraftplus-clone.php:21
873
  msgid "An error has occurred while processing your request. The server might be busy or you have lost your connection to the internet at the time of the request. Please try again later."
874
+ msgstr "Παρουσιάστηκε σφάλμα κατά την επεξεργασία του αιτήματός σας. Ο διακομιστής μπορεί να είναι απασχολημένος ή χάθηκε η σύνδεσή σας στο διαδίκτυο τη στιγμή της αίτησης. Παρακαλώ δοκιμάστε ξανά αργότερα."
875
 
876
  #: src/admin.php:5344
877
  msgid "The file %s has a \"byte order mark\" (BOM) at its beginning."
878
  msgid_plural "The files %s have a \"byte order mark\" (BOM) at their beginning."
879
+ msgstr[0] "Το αρχείο %s έχει ένα \"byte order mark\" (BOM) στην αρχή του."
880
+ msgstr[1] "Τα αρχεία %s έχουν ένα \"byte order mark\" (BOM) στην αρχή του."
881
 
882
  #: src/admin.php:940
883
  msgid "For future control of all your UpdraftCentral connections, go to the \"Advanced Tools\" tab."
884
+ msgstr "Για μελλοντικό έλεγχο όλων των συνδέσεων στο UpdraftCentral, μεταβείτε στην καρτέλα \"Εργαλεία για προχωρημένους\"."
885
 
886
  #: src/admin.php:939
887
  msgid "You can also close this wizard."
888
+ msgstr "Μπορείτε επίσης να κλείσετε αυτόν τον οδηγό."
889
 
890
  #: src/admin.php:938
891
  msgid "You need to read and accept the UpdraftCentral Cloud data and privacy policies before you can proceed."
892
+ msgstr "Πρέπει να διαβάσετε και να αποδεχτείτε τις πολιτικές δεδομένων και ιδιωτικού απορρήτου του UpdraftCentral Cloud πριν προχωρήσετε."
893
 
894
  #: src/admin.php:937
895
  msgid "Please wait while you are redirected to UpdraftCentral Cloud."
896
+ msgstr "Περιμένετε μέχρι να γίνει ανακατεύθυνση στο UpdraftCentral Cloud."
897
 
898
  #: src/admin.php:936
899
  msgid "Please wait while the system generates and registers an encryption key for your website with UpdraftCentral Cloud."
900
+ msgstr "Περιμένετε έως ότου το σύστημα δημιουργήσει και καταχωρίσει ένα κλειδί κρυπτογράφησης για τον ιστότοπό σας με το UpdraftCentral Cloud."
901
 
902
  #: src/admin.php:935
903
  msgid "Perhaps you would want to login instead."
904
+ msgstr "Ίσως αντί για αυτό καλό θα ήταν να συνδεθείτε."
905
 
906
  #: src/admin.php:934
907
  msgid "Trouble connecting? Try using an alternative method in the advanced security options."
908
+ msgstr "Πρόβλημα σύνδεσης; Δοκιμάστε να χρησιμοποιήσετε μια εναλλακτική μέθοδο στις προχωρημένες επιλογές ασφαλείας."
909
 
910
  #: src/admin.php:933
911
  msgid "An email is required and needs to be in a valid format."
912
+ msgstr "Απαιτείται ένα email και πρέπει να είναι σε έγκυρη μορφή."
913
 
914
  #: src/admin.php:932
915
  msgid "Both email and password fields are required."
916
+ msgstr "Απαιτείται να συμπληρώσετε και το email και τον κωδικό πρόσβασης."
917
 
918
  #: src/admin.php:931
919
  msgid "Registration successful."
920
+ msgstr "Επιτυχής εγγραφή."
921
 
922
  #: src/admin.php:930, src/admin.php:931
923
  msgid "Please follow this link to open %s in a new window."
924
+ msgstr "Ακολουθήστε αυτόν τον σύνδεσμο για να ανοίξετε το %s σε ένα νέο παράθυρο."
925
 
926
  #: src/admin.php:930
927
  msgid "Login successful."
928
+ msgstr "Επιτυχής σύνδεση."
929
 
930
  #: src/admin.php:929,
931
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:9
932
  msgid "UpdraftCentral Cloud"
933
+ msgstr "UpdraftCentral Cloud"
934
 
935
  #: src/admin.php:489
936
  msgid "Are you sure you want to dismiss all UpdraftPlus news forever?"
937
+ msgstr "Είστε βέβαιοι ότι θέλετε να καταργήσετε τη λήψη όλων των ειδήσεων του UpdraftPlus για πάντα;"
938
 
939
  #: src/admin.php:488
940
  msgid "Dismiss all UpdraftPlus news"
941
+ msgstr "Κατάργηση λήψης όλων των ειδήσεων του UpdraftPlus"
942
 
943
  #: src/admin.php:487
944
  msgid "UpdraftPlus News"
945
+ msgstr "Ειδήσεις του UpdraftPlus"
946
 
947
  #: src/addons/wp-cli.php:553
948
  msgid "Migration key created:"
949
+ msgstr "Δημιουργήθηκε το κλειδί μετανάστευσης:"
950
 
951
  #: src/addons/wp-cli.php:543
952
  msgid "Missing parameters"
953
+ msgstr "Λείπουν παράμετροι"
954
 
955
  #: src/addons/azure.php:645
956
  msgid "Azure Germany"
957
+ msgstr "Azure Γερμανία"
958
 
959
  #: src/addons/azure.php:644
960
  msgid "Azure Global"
961
+ msgstr "Azure Παγκόσμια"
962
 
963
  #: src/addons/azure.php:641
964
  msgid "Azure Account"
965
+ msgstr "Λογαριασμός Azure"
966
 
967
  #: src/admin.php:928
968
  msgid "Please specify the Microsoft OneDrive folder name, not the URL."
969
+ msgstr "Παρακαλούμε προσδιορίστε το όνομα του φακέλου Microsoft OneDrive και όχι τη διεύθυνση URL."
970
 
971
  #: src/templates/wp-admin/settings/upload-backups-modal.php:4
972
  msgid "Select the remote storage destinations you want to upload this backup set to"
973
+ msgstr "Επιλέξτε τους προορισμούς απομακρυσμένου αποθηκευτικού χώρου στον οποίο θέλετε να μεταφορτώσετε αυτό το σετ αντιγράφων ασφαλείας"
974
 
975
  #: src/templates/wp-admin/settings/upload-backups-modal.php:3
976
  msgid "Upload backup"
977
+ msgstr "Μεταφόρτωση αντιγράφου ασφαλείας"
978
 
979
  #: src/admin.php:4248
980
  msgid "After pressing this button, you can select where to upload your backup from a list of your currently saved remote storage locations"
981
+ msgstr "Αφού πατήσετε αυτό το κουμπί, μπορείτε να επιλέξετε από πού να μεταφορτώσετε το αντίγραφο ασφαλείας από μια λίστα των αποθηκευμένων τοποθεσιών απομακρυσμένης αποθήκευσης"
982
 
983
  #: src/admin.php:927
984
  msgid "(already uploaded)"
985
+ msgstr "(έχει ήδη μεταφορτωθεί)"
986
 
987
  #: src/admin.php:925
988
  msgid "Local backup upload has started; please check the current status tab to see the upload progress"
989
+ msgstr "Έχει ξεκινήσει η τοπική μεταφόρτωση. Ελέγξτε την καρτέλα τρέχουσας κατάστασης για να δείτε την πρόοδο της μεταφόρτωσης"
990
 
991
  #: src/admin.php:846, src/admin.php:4248
992
  msgid "Upload"
993
+ msgstr "Μεταφόρτωση"
994
 
995
  #: src/addons/reporting.php:529, src/admin.php:796
996
  msgid "Only email the database backup"
1172
 
1173
  #: src/templates/wp-admin/settings/tab-addons.php:26
1174
  msgid "Get it here"
1175
+ msgstr "Αποκτήστε το εδώ"
1176
 
1177
  #: src/methods/stream-base.php:323
1178
  msgid "Download chunk size successfully changed to %d"
1614
 
1615
  #: src/templates/wp-admin/advanced/wipe-settings.php:11
1616
  msgid "UpdraftPlus Tour"
1617
+ msgstr "Περιήγηση στο UpdraftPlus"
1618
 
1619
  #: src/templates/wp-admin/settings/tab-addons.php:232
1620
  msgid "Lock access to UpdraftPlus via a password so you choose which admin users can access backups."
1622
 
1623
  #: src/templates/wp-admin/settings/tab-addons.php:219
1624
  msgid "Some backup plugins can't restore a backup, so Premium allows you to restore backups from other plugins."
1625
+ msgstr "Ορισμένα πρόσθετα δημιουργίας αντιγράφων ασφαλείας δεν μπορούν να κάνουν επαναφορά, το Premium σας επιτρέπει να επαναφέρετε τα αντίγραφα ασφαλείας από άλλα πρόσθετα."
1626
 
1627
  #: src/templates/wp-admin/settings/tab-addons.php:217,
1628
  #: src/templates/wp-admin/settings/tab-addons.php:218
1699
 
1700
  #: src/templates/wp-admin/settings/tab-addons.php:180
1701
  msgid "Get enhanced versions of the free remote storage options (Dropbox, Google Drive & S3) and even more remote storage options like OneDrive, SFTP, Azure, WebDAV and more with UpdraftPlus Premium."
1702
+ msgstr "Αποκτήστε βελτιωμένες εκδόσεις των δωρεάν επιλογών απομακρυσμένης αποθήκευσης και ακόμα περισσότερες επιλογές αποθήκευσης όπως τα OneDrive, SFTP, Azure, WebDAV και πολλά άλλα με το UpdraftPlus Premium."
1703
 
1704
  #: src/templates/wp-admin/settings/tab-addons.php:179
1705
  msgid "Additional and enhanced remote storage locations"
1852
 
1853
  #: src/includes/updraftplus-notices.php:251
1854
  msgid "Spring sale - 20% off UpdraftPlus Premium until April 30th"
1855
+ msgstr "Εαρινές εκπτώσεις - 20% έκπτωση στο UpdraftPlus Premium μέχρι τις 30 Απριλίου"
1856
 
1857
  #: src/includes/updraftplus-notices.php:238
1858
  msgid "Happy New Year - 20% off UpdraftPlus Premium until January 14th"
2051
 
2052
  #: src/methods/backup-module.php:549
2053
  msgid "Follow this link to authorize access to your %s account (you will not be able to backup to %s without it)."
2054
+ msgstr "Ακολουθήστε αυτόν τον σύνδεσμο για να επιτρέψετε την πρόσβαση στον λογαριασμό σας %s (δεν θα μπορείτε να δημιουργήσετε αντίγραφα ασφαλείας για το %s χωρίς αυτό)."
2055
 
2056
  #: src/admin.php:908
2057
  msgid "remote files deleted"
3581
 
3582
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:12
3583
  msgid "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."
3584
+ msgstr "Για προσωπική υποστήριξη, για δυνατότητα αντιγραφής ιστότοπων, για περισσότερους προορισμούς αποθήκευσης, για κρυπτογραφημένα αντίγραφα ασφαλείας,για πολλαπλούς προορισμούς δημιουργίας αντιγράφων ασφαλείας, για καλύτερες αναφορές, χωρίς διαφημίσεις και πολλά άλλα, ρίξτε μια ματιά στη premium έκδοση του UpdraftPlus - το πιο δημοφιλές πρόσθετο λήψης αντιγράφων ασφαλείας στον κόσμο."
3585
 
3586
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:29
3587
  msgid "UpdraftPlus news, high-quality training materials for WordPress developers and site-owners, and general WordPress news. You can de-subscribe at any time."
3732
 
3733
  #: src/addons/morefiles.php:258
3734
  msgid "Any other file/directory on your server that you wish to backup"
3735
+ msgstr "Οποιοδήποτε άλλο αρχείο/κατάλογο στο διακομιστή σας που θέλετε να δημιουργήσετε αντίγραφο ασφαλείας"
3736
 
3737
  #: src/admin.php:2611
3738
  msgid "For even more features and personal support, check out "
4258
 
4259
  #: src/templates/wp-admin/settings/form-contents.php:233
4260
  msgid "Backup more databases"
4261
+ msgstr "Κρατήστε αντίγραφα ασφαλείας για περισσότερες βάσεις δεδομένων"
4262
 
4263
  #: src/templates/wp-admin/settings/form-contents.php:192
4264
  msgid "First, enter the decryption key"
5180
 
5181
  #: src/options.php:208
5182
  msgid "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>."
5183
+ msgstr "Χωρίς την αναβάθμιση, το UpdraftPlus επιτρέπει σε <strong>κάθε</strong> διαχειριστή του ιστολογίου σας να μπορεί να τροποποιήσει τις ρυθμίσεις του πρόσθετου για να δημιουργήσει αντίγραφα ασφαλείας (και ως εκ τούτου να έχει πρόσβαση στα δεδομένα, συμπεριλαμβανομένων και των κωδικών πρόσβασης) και να κάνει επαναφορά (μεταξύ άλλων και με προσαρμοσμένες τροποποιήσεις, π.χ. να αλλάξει τους κωδικούς πρόσβασης) <strong>στο σύνολο του δικτύου σας</strong>."
5184
 
5185
  #: src/options.php:208
5186
  msgid "WordPress Multisite is supported, with extra features, by UpdraftPlus Premium, or the Multisite add-on."
5937
 
5938
  #: src/class-updraftplus.php:3945, src/class-updraftplus.php:3965
5939
  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."
5940
+ msgstr "Αυτό το σετ αντιγράφων ασφαλείας είναι από διαφορετικό ιστοσελίδα (%s) - αυτή δεν είναι μια διαδικασία επαναφοράς αλλά είναι διαδικασία μετανάστευσης. Χρειάζεται και το πρόσθετο Migrator για να γίνει αυτή η λειτουργία."
5941
 
5942
  #: src/addons/fixtime.php:571
5943
  msgid "The time zone used is that from your WordPress settings, in Settings -> General."
6245
 
6246
  #: src/methods/s3.php:482
6247
  msgid "%s Error: Failed to access bucket %s. Check your permissions and credentials.1"
6248
+ msgstr "%s Σφάλμα: Αποτυχία πρόσβασης στον φάκελο %s. Ελέγξτε τα δικαιώματα και τις διαπιστεύσεις σας.1"
6249
 
6250
  #: src/addons/dropbox-folders.php:32
6251
  msgid "Store at"
6505
 
6506
  #: src/methods/dropbox.php:603, src/methods/dropbox.php:605
6507
  msgid "If you backup several sites into the same Dropbox and want to organize with sub-folders, then "
6508
+ msgstr "Εάν κάνετε αντίγραφα ασφαλείας για πολλές ιστοσελίδες στον ίδιο φάκελο του Dropbox και χρειάζεται να τα οργανώσετε σε υπο-φακέλους, τότε "
6509
 
6510
  #: src/methods/dropbox.php:603, src/methods/dropbox.php:605
6511
  msgid "Backups are saved in"
6521
 
6522
  #: src/methods/dropbox.php:195
6523
  msgid "error: %s (see log file for more)"
6524
+ msgstr "σφάλμα: %s (ανατρέξτε στο αρχείο καταγραφής για περισσότερα)"
6525
 
6526
  #: src/methods/dropbox.php:173, src/methods/dropbox.php:190
6527
  msgid "You do not appear to be authenticated with Dropbox"
languages/updraftplus-fi.mo CHANGED
Binary file
languages/updraftplus-fi.po CHANGED
@@ -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: 2018-12-04 18:52:27+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -149,7 +149,7 @@ msgstr ""
149
  #: src/templates/wp-admin/settings/exclude-modal.php:56,
150
  #: src/templates/wp-admin/settings/exclude-modal.php:58
151
  msgid "All files beginning with these characters"
152
- msgstr ""
153
 
154
  #: src/templates/wp-admin/settings/exclude-modal.php:47
155
  msgid "Type an extension like zip"
@@ -247,7 +247,7 @@ msgstr ""
247
 
248
  #: src/admin.php:3828
249
  msgid "Exclude these from"
250
- msgstr ""
251
 
252
  #: src/admin.php:952
253
  msgid "The exclusion rule which you are trying to add already exists"
@@ -303,7 +303,7 @@ msgstr ""
303
 
304
  #: src/admin.php:5423
305
  msgid "Front page:"
306
- msgstr ""
307
 
308
  #: src/admin.php:5422
309
  msgid "Your clone has started and will be available at the following URLs once it is ready."
@@ -436,7 +436,7 @@ msgstr ""
436
 
437
  #: src/templates/wp-admin/settings/temporary-clone.php:28
438
  msgid "Press the buttons... UpdraftClone does the work."
439
- msgstr ""
440
 
441
  #: src/templates/wp-admin/settings/temporary-clone.php:28
442
  msgid "Easy"
@@ -533,7 +533,7 @@ msgstr ""
533
  #: src/includes/updraftplus-tour.php:153,
534
  #: src/templates/wp-admin/settings/temporary-clone.php:22
535
  msgid "Find out more here."
536
- msgstr ""
537
 
538
  #: src/includes/updraftplus-tour.php:125
539
  msgid "UpdraftVault is our remote storage which works seamlessly with UpdraftPlus."
@@ -683,7 +683,7 @@ msgstr ""
683
 
684
  #: src/addons/wp-cli.php:88
685
  msgid "No previous backup found to add an increment to."
686
- msgstr ""
687
 
688
  #: src/restorer.php:2499
689
  msgid "Requested character set (%s) is not present - changing to %s."
@@ -715,7 +715,7 @@ msgstr ""
715
 
716
  #: src/addons/sftp.php:601, src/addons/sftp.php:603
717
  msgid "The server's RSA key %s fingerprint: %s."
718
- msgstr ""
719
 
720
  #: src/addons/sftp.php:597
721
  msgid "Failed: We are unable to match the fingerprint. However, we were able to log in and move to the indicated directory and successfully create a file in that location."
@@ -727,7 +727,7 @@ msgstr ""
727
 
728
  #: src/addons/sftp.php:475
729
  msgid "RSA fingerprint"
730
- msgstr ""
731
 
732
  #: src/addons/sftp.php:82
733
  msgid "Fingerprints don't match."
@@ -938,7 +938,7 @@ msgstr ""
938
 
939
  #: src/admin.php:488
940
  msgid "Dismiss all UpdraftPlus news"
941
- msgstr ""
942
 
943
  #: src/admin.php:487
944
  msgid "UpdraftPlus News"
@@ -1324,7 +1324,7 @@ msgstr ""
1324
 
1325
  #: src/central/bootstrap.php:421
1326
  msgid "There are no UpdraftCentral dashboards that can currently control this site."
1327
- msgstr ""
1328
 
1329
  #: src/central/bootstrap.php:258
1330
  msgid "You can now control this site via your UpdraftCentral dashboard at %s."
@@ -1489,7 +1489,7 @@ msgstr ""
1489
 
1490
  #: src/methods/cloudfiles.php:495
1491
  msgid "Cloud Files"
1492
- msgstr ""
1493
 
1494
  #: src/admin.php:4934
1495
  msgid "Your settings failed to save. Please refresh the settings page and try again"
@@ -1510,7 +1510,7 @@ msgstr ""
1510
 
1511
  #: src/includes/class-wpadmin-commands.php:520
1512
  msgid "Extra database"
1513
- msgstr ""
1514
 
1515
  #: src/admin.php:4104
1516
  msgid "Press here to download or browse"
@@ -1526,7 +1526,7 @@ msgstr ""
1526
 
1527
  #: src/admin.php:915
1528
  msgid "Loading log file"
1529
- msgstr ""
1530
 
1531
  #: src/admin.php:914
1532
  msgid "Unable to download file. This could be caused by a timeout. It would be best to download the zip to your computer."
@@ -1566,7 +1566,7 @@ msgstr ""
1566
 
1567
  #: src/admin.php:3022
1568
  msgid "All WordPress tables will be backed up."
1569
- msgstr ""
1570
 
1571
  #: src/admin.php:910
1572
  msgid "Further information may be found in the browser JavaScript console, and the server PHP error logs."
@@ -1716,7 +1716,7 @@ msgstr ""
1716
  #: src/templates/wp-admin/settings/tab-addons.php:56,
1717
  #: src/templates/wp-admin/settings/tab-addons.php:264
1718
  msgid "Upgrade now"
1719
- msgstr ""
1720
 
1721
  #: src/templates/wp-admin/settings/tab-addons.php:53,
1722
  #: src/templates/wp-admin/settings/tab-addons.php:261
@@ -1796,7 +1796,7 @@ msgstr ""
1796
 
1797
  #: src/addons/s3-enhanced.php:372
1798
  msgid "Europe (Ireland)"
1799
- msgstr ""
1800
 
1801
  #: src/includes/updraftplus-tour.php:142,
1802
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:17
@@ -1856,7 +1856,7 @@ msgstr ""
1856
 
1857
  #: src/includes/updraftplus-notices.php:238
1858
  msgid "Happy New Year - 20% off UpdraftPlus Premium until January 14th"
1859
- msgstr ""
1860
 
1861
  #: src/includes/updraftplus-notices.php:225
1862
  msgid "Christmas sale - 20% off UpdraftPlus Premium until December 25th"
@@ -1901,7 +1901,7 @@ msgstr ""
1901
 
1902
  #: src/includes/updraftplus-notices.php:91
1903
  msgid "Introducing UpdraftCentral"
1904
- msgstr ""
1905
 
1906
  #: src/includes/updraftplus-notices.php:82
1907
  msgid "Copy your site to another domain directly. Includes find-and-replace tool for database references."
@@ -2023,7 +2023,7 @@ msgstr ""
2023
 
2024
  #: src/methods/dropbox.php:790
2025
  msgid "%s de-authentication"
2026
- msgstr ""
2027
 
2028
  #: src/methods/dropbox.php:636
2029
  msgid "You must add the following as the authorised redirect URI in your Dropbox console (under \"API Settings\") when asked"
@@ -2120,7 +2120,7 @@ msgstr ""
2120
 
2121
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:54
2122
  msgid "or to restore manually"
2123
- msgstr ""
2124
 
2125
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:54
2126
  msgid "This makes time-outs much more likely. You are recommended to turn safe_mode off, or to restore only one entity at a time"
@@ -2242,7 +2242,7 @@ msgstr ""
2242
  #: src/addons/migrator.php:1765, src/central/bootstrap.php:544,
2243
  #: src/central/bootstrap.php:545, src/central/bootstrap.php:547
2244
  msgid "%s bits"
2245
- msgstr ""
2246
 
2247
  #: src/addons/migrator.php:1760, src/central/bootstrap.php:542
2248
  msgid "Encryption key size:"
@@ -2262,7 +2262,7 @@ msgstr ""
2262
 
2263
  #: src/methods/ftp.php:440
2264
  msgid "This is sometimes caused by a firewall - try turning off SSL in the expert settings, and testing again."
2265
- msgstr ""
2266
 
2267
  #: src/methods/ftp.php:412
2268
  msgid "login"
@@ -2321,7 +2321,7 @@ msgstr ""
2321
 
2322
  #: src/central/bootstrap.php:536
2323
  msgid "Enter any description"
2324
- msgstr ""
2325
 
2326
  #: src/central/bootstrap.php:535
2327
  msgid "Description"
@@ -2389,7 +2389,7 @@ msgstr ""
2389
 
2390
  #: src/central/bootstrap.php:57
2391
  msgid "UpdraftCentral Connection"
2392
- msgstr ""
2393
 
2394
  #: src/backup.php:1042, src/class-updraftplus.php:2973
2395
  msgid "The backup was aborted by the user"
@@ -2409,7 +2409,7 @@ msgstr "pysäkki"
2409
 
2410
  #: src/admin.php:905, src/admin.php:3209
2411
  msgid "The backup has finished running"
2412
- msgstr ""
2413
 
2414
  #: src/templates/wp-admin/advanced/tools-menu.php:30,
2415
  #: src/templates/wp-admin/advanced/wipe-settings.php:5,
@@ -2561,7 +2561,7 @@ msgstr ""
2561
 
2562
  #: src/templates/wp-admin/settings/form-contents.php:93
2563
  msgid "Sending Your Backup To Remote Storage"
2564
- msgstr ""
2565
 
2566
  #: src/templates/wp-admin/settings/form-contents.php:58
2567
  msgid "Database backup schedule"
@@ -2691,7 +2691,7 @@ msgstr ""
2691
 
2692
  #: src/addons/googlecloud.php:48, src/addons/googlecloud.php:49
2693
  msgid "Eastern United States"
2694
- msgstr ""
2695
 
2696
  #: src/addons/googlecloud.php:47
2697
  msgid "Central United States"
@@ -2724,7 +2724,7 @@ msgstr ""
2724
 
2725
  #: src/addons/googlecloud.php:38, src/addons/s3-enhanced.php:66
2726
  msgid "Standard"
2727
- msgstr ""
2728
 
2729
  #: src/addons/azure.php:638
2730
  msgid "container"
@@ -2736,7 +2736,7 @@ msgstr ""
2736
 
2737
  #: src/addons/azure.php:637
2738
  msgid "optional"
2739
- msgstr ""
2740
 
2741
  #: src/addons/azure.php:633
2742
  msgid "See Microsoft's guidelines on container naming by following this link."
@@ -2833,7 +2833,7 @@ msgstr ""
2833
 
2834
  #: src/addons/googlecloud.php:1032
2835
  msgid "Project ID"
2836
- msgstr ""
2837
 
2838
  #: src/addons/googlecloud.php:759
2839
  msgid "You must save and authenticate before you can test your settings."
@@ -2907,7 +2907,7 @@ msgstr "Käsitellään..."
2907
 
2908
  #: src/admin.php:888
2909
  msgid "For backups older than"
2910
- msgstr ""
2911
 
2912
  #: src/admin.php:887
2913
  msgid "week(s)"
@@ -2975,7 +2975,7 @@ msgstr ""
2975
 
2976
  #: src/addons/s3-enhanced.php:73
2977
  msgid "Check this box to use Amazon's server-side encryption"
2978
- msgstr ""
2979
 
2980
  #: src/addons/s3-enhanced.php:72
2981
  msgid "Server-side encryption"
@@ -3020,7 +3020,7 @@ msgstr ""
3020
  #: src/methods/updraftvault.php:466, src/methods/updraftvault.php:482,
3021
  #: src/methods/updraftvault.php:484, src/methods/updraftvault.php:542
3022
  msgid "Get more quota"
3023
- msgstr ""
3024
 
3025
  #: src/methods/updraftvault.php:463, src/methods/updraftvault.php:479,
3026
  #: src/methods/updraftvault.php:523
@@ -3029,7 +3029,7 @@ msgstr "Tämänhetkinen käyttö:"
3029
 
3030
  #: src/methods/updraftvault.php:458
3031
  msgid "You can get more quota here"
3032
- msgstr ""
3033
 
3034
  #: src/methods/updraftvault.php:458
3035
  msgid "%s Error: you have insufficient storage quota available (%s) to upload this archive (%s)."
@@ -3076,7 +3076,7 @@ msgstr ""
3076
 
3077
  #: src/methods/updraftvault.php:348
3078
  msgid "Subscriptions can be cancelled at any time."
3079
- msgstr ""
3080
 
3081
  #: src/methods/updraftvault.php:331, src/methods/updraftvault.php:337,
3082
  #: src/methods/updraftvault.php:343
@@ -3183,7 +3183,7 @@ msgstr ""
3183
 
3184
  #: src/includes/class-remote-send.php:345
3185
  msgid "Also send this backup to the active remote storage locations"
3186
- msgstr ""
3187
 
3188
  #: src/includes/class-remote-send.php:310
3189
  msgid "The site URL you are sending to (%s) looks like a local development website. If you are sending from an external network, it is likely that a firewall will be blocking this."
@@ -3377,7 +3377,7 @@ msgstr ""
3377
 
3378
  #: src/udaddons/updraftplus-addons.php:996
3379
  msgid "Go here to re-enter your password."
3380
- msgstr ""
3381
 
3382
  #: src/addons/migrator.php:271
3383
  msgid "After pressing this button, you will be given the option to choose which components you wish to migrate"
@@ -3444,7 +3444,7 @@ msgstr ""
3444
 
3445
  #: src/addons/s3-enhanced.php:392
3446
  msgid "S3 bucket"
3447
- msgstr ""
3448
 
3449
  #: src/addons/s3-enhanced.php:382
3450
  msgid "China (Beijing) (restricted)"
@@ -3464,7 +3464,7 @@ msgstr ""
3464
 
3465
  #: src/addons/s3-enhanced.php:377
3466
  msgid "Asia Pacific (Singapore)"
3467
- msgstr ""
3468
 
3469
  #: src/addons/s3-enhanced.php:370
3470
  msgid "US Government West (restricted)"
@@ -3553,7 +3553,7 @@ msgstr ""
3553
 
3554
  #: src/addons/s3-enhanced.php:161
3555
  msgid "Cannot create new AWS user, since the old AWS toolkit is being used."
3556
- msgstr ""
3557
 
3558
  #: src/addons/s3-enhanced.php:134
3559
  msgid "You need to enter a bucket"
@@ -3618,7 +3618,7 @@ msgstr ""
3618
 
3619
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:13
3620
  msgid "Go to the shop."
3621
- msgstr ""
3622
 
3623
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:13
3624
  msgid "Compare with the free version"
@@ -4136,7 +4136,7 @@ msgstr ""
4136
 
4137
  #: src/templates/wp-admin/advanced/site-info.php:74
4138
  msgid "Free disk space in account:"
4139
- msgstr ""
4140
 
4141
  #: src/admin.php:4900, src/templates/wp-admin/settings/take-backup.php:50
4142
  msgid "This button is disabled because your backup directory is not writable (see the settings)."
@@ -4216,7 +4216,7 @@ msgstr ""
4216
 
4217
  #: src/addons/moredatabase.php:104
4218
  msgid "database connection attempt failed"
4219
- msgstr ""
4220
 
4221
  #: src/addons/moredatabase.php:93
4222
  msgid "database name"
@@ -4228,11 +4228,11 @@ msgstr ""
4228
 
4229
  #: src/addons/moredatabase.php:89
4230
  msgid "user"
4231
- msgstr ""
4232
 
4233
  #: src/class-updraftplus.php:1736
4234
  msgid "External database (%s)"
4235
- msgstr ""
4236
 
4237
  #: src/methods/googledrive.php:1207
4238
  msgid "Follow this link to your Google API Console, and there activate the Drive API and create a Client ID in the API Access section."
@@ -4286,7 +4286,7 @@ msgstr ""
4286
 
4287
  #: src/includes/class-wpadmin-commands.php:149
4288
  msgid "Only the WordPress database can be restored; you will need to deal with the external database manually."
4289
- msgstr ""
4290
 
4291
  #: src/restorer.php:2284, src/restorer.php:2753, src/restorer.php:2794,
4292
  #: src/restorer.php:2807
@@ -4475,7 +4475,7 @@ msgstr ""
4475
  #: src/templates/wp-admin/settings/form-contents.php:182,
4476
  #: src/templates/wp-admin/settings/tab-backups.php:74
4477
  msgid "This feature requires %s version %s or later"
4478
- msgstr ""
4479
 
4480
  #: src/restorer.php:531
4481
  msgid "Failed to unpack the archive"
@@ -4496,7 +4496,7 @@ msgstr ""
4496
 
4497
  #: src/udaddons/updraftplus-addons.php:259
4498
  msgid "It has been tested up to version %s."
4499
- msgstr ""
4500
 
4501
  #: src/udaddons/updraftplus-addons.php:259
4502
  msgid "The installed version of UpdraftPlus Backup/Restore has not been tested on your version of WordPress (%s)."
@@ -4612,7 +4612,7 @@ msgstr ""
4612
 
4613
  #: src/admin.php:797
4614
  msgid "Rescanning remote and local storage for backup sets..."
4615
- msgstr ""
4616
 
4617
  #: src/addons/googlecloud.php:1042, src/addons/googlecloud.php:1055,
4618
  #: src/addons/s3-enhanced.php:63, src/addons/s3-enhanced.php:72
@@ -4671,7 +4671,7 @@ msgstr ""
4671
 
4672
  #: src/udaddons/options.php:483
4673
  msgid "Available to claim on this site"
4674
- msgstr ""
4675
 
4676
  #: src/udaddons/updraftplus-addons.php:288
4677
  msgid "To maintain your access to support, please renew."
@@ -4824,7 +4824,7 @@ msgstr ""
4824
 
4825
  #: src/addons/cloudfiles-enhanced.php:283
4826
  msgid "Admin Username"
4827
- msgstr ""
4828
 
4829
  #: src/addons/cloudfiles-enhanced.php:278
4830
  msgid "US or UK Rackspace Account"
@@ -4881,7 +4881,7 @@ msgstr ""
4881
 
4882
  #: src/addons/cloudfiles-enhanced.php:76
4883
  msgid "You need to enter an admin username"
4884
- msgstr ""
4885
 
4886
  #: src/addons/cloudfiles-enhanced.php:62
4887
  msgid "Create a new API user with access to only this container (rather than your whole account)"
@@ -5038,7 +5038,7 @@ msgstr ""
5038
 
5039
  #: src/addons/reporting.php:268
5040
  msgid "Debugging information"
5041
- msgstr ""
5042
 
5043
  #: src/addons/reporting.php:223, src/admin.php:3992
5044
  msgid "Uploaded to:"
@@ -5071,7 +5071,7 @@ msgstr ""
5071
 
5072
  #: src/addons/reporting.php:171
5073
  msgid "Backup Report"
5074
- msgstr ""
5075
 
5076
  #: src/addons/reporting.php:166
5077
  msgid "%d hours, %d minutes, %d seconds"
@@ -5144,7 +5144,7 @@ msgstr ""
5144
 
5145
  #: src/backup.php:1094
5146
  msgid "Backed up: %s"
5147
- msgstr ""
5148
 
5149
  #: src/addons/reporting.php:265, src/backup.php:1088
5150
  msgid "The log file has been attached to this email."
@@ -5160,7 +5160,7 @@ msgstr ""
5160
 
5161
  #: src/backup.php:1049
5162
  msgid "Database (files backup has not completed)"
5163
- msgstr ""
5164
 
5165
  #: src/backup.php:1046
5166
  msgid "Files only (database was not part of this particular schedule)"
@@ -5192,7 +5192,7 @@ msgstr ""
5192
 
5193
  #: src/options.php:208
5194
  msgid "UpdraftPlus warning:"
5195
- msgstr ""
5196
 
5197
  #: src/udaddons/options.php:489
5198
  msgid "(or connect using the form on this page if you have already purchased it)"
@@ -5216,7 +5216,7 @@ msgstr ""
5216
 
5217
  #: src/udaddons/options.php:460, src/udaddons/options.php:460
5218
  msgid "You've got it"
5219
- msgstr ""
5220
 
5221
  #: src/udaddons/options.php:421
5222
  msgid "UpdraftPlus Support"
@@ -5285,7 +5285,7 @@ msgstr ""
5285
 
5286
  #: src/backup.php:3424, src/class-updraftplus.php:861
5287
  msgid "Your free space in your hosting account is very low - only %s Mb remain"
5288
- msgstr ""
5289
 
5290
  #: src/class-updraftplus.php:845
5291
  msgid "The amount of memory (RAM) allowed for PHP is very low (%s Mb) - you should increase it to avoid failures due to insufficient memory (consult your web hosting company for more help)"
@@ -5377,7 +5377,7 @@ msgstr ""
5377
 
5378
  #: src/admin.php:2929
5379
  msgid "Connect with your UpdraftPlus.Com account"
5380
- msgstr ""
5381
 
5382
  #: src/udaddons/options.php:110
5383
  msgid "You do seem to have the obsolete Updraft plugin installed - perhaps you got them confused?"
@@ -5424,7 +5424,7 @@ msgstr ""
5424
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:78,
5425
  #: src/templates/wp-admin/settings/tab-backups.php:80
5426
  msgid "Drop backup files here"
5427
- msgstr ""
5428
 
5429
  #: src/admin.php:804
5430
  msgid "The web server returned an error code (try again, or check your web server logs)"
@@ -5486,7 +5486,7 @@ msgstr ""
5486
 
5487
  #: src/addons/sftp.php:492
5488
  msgid "Use SCP instead of SFTP"
5489
- msgstr ""
5490
 
5491
  #: src/addons/sftp.php:48
5492
  msgid "SCP/SFTP user setting"
@@ -5506,7 +5506,7 @@ msgstr ""
5506
 
5507
  #: src/admin.php:894
5508
  msgid "%s settings test result:"
5509
- msgstr ""
5510
 
5511
  #: src/admin.php:4140, src/admin.php:4142
5512
  msgid "(Not finished)"
@@ -5552,7 +5552,7 @@ msgstr ""
5552
 
5553
  #: src/admin.php:3288
5554
  msgid "Pruning old backup sets"
5555
- msgstr ""
5556
 
5557
  #: src/admin.php:3275
5558
  msgid "Uploading files to remote storage"
@@ -5560,7 +5560,7 @@ msgstr "Lähetetään tiedostoja etäsäilöön"
5560
 
5561
  #: src/admin.php:3344
5562
  msgid "Encrypted database"
5563
- msgstr ""
5564
 
5565
  #: src/admin.php:3336
5566
  msgid "Encrypting database"
@@ -5641,7 +5641,7 @@ msgstr ""
5641
 
5642
  #: src/addons/autobackup.php:501
5643
  msgid "Creating backup with UpdraftPlus..."
5644
- msgstr ""
5645
 
5646
  #: src/addons/autobackup.php:446, src/addons/autobackup.php:576,
5647
  #: src/addons/autobackup.php:627
@@ -5682,7 +5682,7 @@ msgstr ""
5682
 
5683
  #: src/addons/morefiles.php:190
5684
  msgid "Unable to open zip file (%s) - could not pre-scan it to check its integrity."
5685
- msgstr ""
5686
 
5687
  #: src/addons/morefiles.php:180
5688
  msgid "Unable to read zip file (%s) - could not pre-scan it to check its integrity."
@@ -5726,7 +5726,7 @@ msgstr "Automaattinen varmuuskopiointi tuo turvaa"
5726
 
5727
  #: src/admin.php:2591
5728
  msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
5729
- msgstr ""
5730
 
5731
  #: src/admin.php:840
5732
  msgid "The file was uploaded."
@@ -5738,7 +5738,7 @@ msgstr ""
5738
 
5739
  #: src/admin.php:838
5740
  msgid "Unknown server response:"
5741
- msgstr ""
5742
 
5743
  #: src/admin.php:837
5744
  msgid "This decryption key will be attempted:"
@@ -5766,7 +5766,7 @@ msgstr ""
5766
 
5767
  #: src/admin.php:823
5768
  msgid "Download to your computer"
5769
- msgstr ""
5770
 
5771
  #: src/admin.php:822
5772
  msgid "Delete from your web server"
@@ -5778,7 +5778,7 @@ msgstr ""
5778
 
5779
  #: src/admin.php:4109
5780
  msgid "(%d archive(s) in set)."
5781
- msgstr ""
5782
 
5783
  #: src/templates/wp-admin/settings/form-contents.php:308
5784
  msgid "Split archives every:"
@@ -5843,7 +5843,7 @@ msgstr ""
5843
 
5844
  #: src/backup.php:3097, src/backup.php:3380
5845
  msgid "Failed to open the zip file (%s) - %s"
5846
- msgstr ""
5847
 
5848
  #: src/addons/morefiles.php:168
5849
  msgid "WordPress root directory server path: %s"
@@ -5921,7 +5921,7 @@ msgstr ""
5921
 
5922
  #: src/restorer.php:228
5923
  msgid "file is size:"
5924
- msgstr ""
5925
 
5926
  #: src/addons/googlecloud.php:1034, src/addons/migrator.php:490,
5927
  #: src/addons/migrator.php:493, src/addons/migrator.php:496,
@@ -5957,7 +5957,7 @@ msgstr ""
5957
 
5958
  #: src/methods/dropbox.php:481
5959
  msgid "You do not appear to be authenticated with %s"
5960
- msgstr ""
5961
 
5962
  #: src/methods/dropbox.php:448
5963
  msgid "Failed to access %s when deleting (see log file for more)"
@@ -5973,7 +5973,7 @@ msgstr ""
5973
 
5974
  #: src/methods/cloudfiles.php:409
5975
  msgid "Error - no such file exists at %s"
5976
- msgstr ""
5977
 
5978
  #: src/addons/azure.php:268, src/methods/addon-base-v2.php:219,
5979
  #: src/methods/cloudfiles.php:383, src/methods/cloudfiles.php:400,
@@ -6093,7 +6093,7 @@ msgstr ""
6093
 
6094
  #: src/addons/s3-enhanced.php:215, src/methods/s3.php:1143
6095
  msgid "The error reported by %s was:"
6096
- msgstr ""
6097
 
6098
  #: src/restorer.php:1916
6099
  msgid "Please supply the requested information, and then continue."
@@ -6216,7 +6216,7 @@ msgstr ""
6216
 
6217
  #: src/admin.php:893
6218
  msgid "Testing %s Settings..."
6219
- msgstr ""
6220
 
6221
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:69,
6222
  #: src/templates/wp-admin/settings/tab-backups.php:71
@@ -6261,7 +6261,7 @@ msgstr ""
6261
 
6262
  #: src/addons/migrator.php:1303
6263
  msgid "Time taken (seconds):"
6264
- msgstr ""
6265
 
6266
  #: src/addons/migrator.php:1302, src/admin.php:814
6267
  msgid "Errors:"
@@ -6277,7 +6277,7 @@ msgstr ""
6277
 
6278
  #: src/addons/migrator.php:1299
6279
  msgid "Rows examined:"
6280
- msgstr ""
6281
 
6282
  #: src/addons/migrator.php:1298
6283
  msgid "Tables examined:"
@@ -6299,7 +6299,7 @@ msgstr ""
6299
  #: src/addons/migrator.php:1093, src/addons/migrator.php:1098,
6300
  #: src/addons/migrator.php:1102, src/addons/migrator.php:1107
6301
  msgid "Error: unexpected empty parameter (%s, %s)"
6302
- msgstr ""
6303
 
6304
  #: src/addons/migrator.php:1045
6305
  msgid "Database: search and replace site URL"
@@ -6383,7 +6383,7 @@ msgstr ""
6383
 
6384
  #: src/addons/sftp.php:567
6385
  msgid "Check your file permissions: Could not successfully create and enter:"
6386
- msgstr ""
6387
 
6388
  #: src/addons/sftp.php:47, src/addons/sftp.php:48, src/addons/sftp.php:49
6389
  msgid "No %s found"
@@ -6423,7 +6423,7 @@ msgstr ""
6423
 
6424
  #: src/addons/morefiles.php:137, src/includes/class-wpadmin-commands.php:523
6425
  msgid "WordPress Core"
6426
- msgstr ""
6427
 
6428
  #: src/methods/addon-base-v2.php:330, src/methods/stream-base.php:375
6429
  msgid "Failed: We were not able to place a file in that directory - please check your credentials."
@@ -6565,7 +6565,7 @@ msgstr ""
6565
 
6566
  #: src/methods/s3.php:1093
6567
  msgid "API secret"
6568
- msgstr ""
6569
 
6570
  #: src/methods/s3.php:941
6571
  msgid "Enter only a bucket name or a bucket and path. Examples: mybucket, mybucket/mypath"
@@ -6577,7 +6577,7 @@ msgstr ""
6577
 
6578
  #: src/methods/s3.php:936
6579
  msgid "%s secret key"
6580
- msgstr ""
6581
 
6582
  #: src/methods/s3.php:932
6583
  msgid "%s access key"
@@ -6625,7 +6625,7 @@ msgstr "Huomaa:"
6625
 
6626
  #: src/methods/email.php:45
6627
  msgid "WordPress Backup"
6628
- msgstr ""
6629
 
6630
  #: src/methods/cloudfiles.php:575, src/methods/openstack-base.php:530
6631
  msgid "We accessed the container, and were able to create files within it."
@@ -6648,7 +6648,7 @@ msgstr "Käyttäjätunnus"
6648
  #: src/methods/cloudfiles-new.php:184, src/methods/cloudfiles.php:519,
6649
  #: src/methods/s3.php:1089
6650
  msgid "API key"
6651
- msgstr ""
6652
 
6653
  #: src/addons/migrator.php:337, src/addons/moredatabase.php:89,
6654
  #: src/addons/moredatabase.php:91, src/addons/moredatabase.php:93,
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
+ "PO-Revision-Date: 2018-12-06 10:54:40+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
149
  #: src/templates/wp-admin/settings/exclude-modal.php:56,
150
  #: src/templates/wp-admin/settings/exclude-modal.php:58
151
  msgid "All files beginning with these characters"
152
+ msgstr "Kaikki tiedostot, jotka alkavat näillä merkeillä"
153
 
154
  #: src/templates/wp-admin/settings/exclude-modal.php:47
155
  msgid "Type an extension like zip"
247
 
248
  #: src/admin.php:3828
249
  msgid "Exclude these from"
250
+ msgstr "Poissulje nämä paikasta"
251
 
252
  #: src/admin.php:952
253
  msgid "The exclusion rule which you are trying to add already exists"
303
 
304
  #: src/admin.php:5423
305
  msgid "Front page:"
306
+ msgstr "Etusivu:"
307
 
308
  #: src/admin.php:5422
309
  msgid "Your clone has started and will be available at the following URLs once it is ready."
436
 
437
  #: src/templates/wp-admin/settings/temporary-clone.php:28
438
  msgid "Press the buttons... UpdraftClone does the work."
439
+ msgstr "Paina nappeja... UpdraftClone tekee kaiken homman."
440
 
441
  #: src/templates/wp-admin/settings/temporary-clone.php:28
442
  msgid "Easy"
533
  #: src/includes/updraftplus-tour.php:153,
534
  #: src/templates/wp-admin/settings/temporary-clone.php:22
535
  msgid "Find out more here."
536
+ msgstr "Lue lisää täältä."
537
 
538
  #: src/includes/updraftplus-tour.php:125
539
  msgid "UpdraftVault is our remote storage which works seamlessly with UpdraftPlus."
683
 
684
  #: src/addons/wp-cli.php:88
685
  msgid "No previous backup found to add an increment to."
686
+ msgstr "Vanhoja varmuuskopioita ei löydetty."
687
 
688
  #: src/restorer.php:2499
689
  msgid "Requested character set (%s) is not present - changing to %s."
715
 
716
  #: src/addons/sftp.php:601, src/addons/sftp.php:603
717
  msgid "The server's RSA key %s fingerprint: %s."
718
+ msgstr "Palvelimen RSA avain %s sormenjälki: %s."
719
 
720
  #: src/addons/sftp.php:597
721
  msgid "Failed: We are unable to match the fingerprint. However, we were able to log in and move to the indicated directory and successfully create a file in that location."
727
 
728
  #: src/addons/sftp.php:475
729
  msgid "RSA fingerprint"
730
+ msgstr "RSA sormenjälki"
731
 
732
  #: src/addons/sftp.php:82
733
  msgid "Fingerprints don't match."
938
 
939
  #: src/admin.php:488
940
  msgid "Dismiss all UpdraftPlus news"
941
+ msgstr "Hylkää kaikki UpdraftPlus uutiset"
942
 
943
  #: src/admin.php:487
944
  msgid "UpdraftPlus News"
1324
 
1325
  #: src/central/bootstrap.php:421
1326
  msgid "There are no UpdraftCentral dashboards that can currently control this site."
1327
+ msgstr "UpdraftCentral kojelautoja ei löydetty tälle sivulle."
1328
 
1329
  #: src/central/bootstrap.php:258
1330
  msgid "You can now control this site via your UpdraftCentral dashboard at %s."
1489
 
1490
  #: src/methods/cloudfiles.php:495
1491
  msgid "Cloud Files"
1492
+ msgstr "Pilvi tiedostot"
1493
 
1494
  #: src/admin.php:4934
1495
  msgid "Your settings failed to save. Please refresh the settings page and try again"
1510
 
1511
  #: src/includes/class-wpadmin-commands.php:520
1512
  msgid "Extra database"
1513
+ msgstr "Ylimääräinen tietokanta"
1514
 
1515
  #: src/admin.php:4104
1516
  msgid "Press here to download or browse"
1526
 
1527
  #: src/admin.php:915
1528
  msgid "Loading log file"
1529
+ msgstr "Ladataan loki-tiedostoa"
1530
 
1531
  #: src/admin.php:914
1532
  msgid "Unable to download file. This could be caused by a timeout. It would be best to download the zip to your computer."
1566
 
1567
  #: src/admin.php:3022
1568
  msgid "All WordPress tables will be backed up."
1569
+ msgstr "Kaikki WordPress taulut varmuuskopioidaan."
1570
 
1571
  #: src/admin.php:910
1572
  msgid "Further information may be found in the browser JavaScript console, and the server PHP error logs."
1716
  #: src/templates/wp-admin/settings/tab-addons.php:56,
1717
  #: src/templates/wp-admin/settings/tab-addons.php:264
1718
  msgid "Upgrade now"
1719
+ msgstr "Päivitä nyt"
1720
 
1721
  #: src/templates/wp-admin/settings/tab-addons.php:53,
1722
  #: src/templates/wp-admin/settings/tab-addons.php:261
1796
 
1797
  #: src/addons/s3-enhanced.php:372
1798
  msgid "Europe (Ireland)"
1799
+ msgstr "Eurooppa (Irlanti)"
1800
 
1801
  #: src/includes/updraftplus-tour.php:142,
1802
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:17
1856
 
1857
  #: src/includes/updraftplus-notices.php:238
1858
  msgid "Happy New Year - 20% off UpdraftPlus Premium until January 14th"
1859
+ msgstr "Hyvää uutta vuotta - 20% alennus UpdraftPlus Premiumista Tammukuun 14-päivä asti."
1860
 
1861
  #: src/includes/updraftplus-notices.php:225
1862
  msgid "Christmas sale - 20% off UpdraftPlus Premium until December 25th"
1901
 
1902
  #: src/includes/updraftplus-notices.php:91
1903
  msgid "Introducing UpdraftCentral"
1904
+ msgstr "Esittelyssä UpdraftCentral"
1905
 
1906
  #: src/includes/updraftplus-notices.php:82
1907
  msgid "Copy your site to another domain directly. Includes find-and-replace tool for database references."
2023
 
2024
  #: src/methods/dropbox.php:790
2025
  msgid "%s de-authentication"
2026
+ msgstr "%s epä-todennus"
2027
 
2028
  #: src/methods/dropbox.php:636
2029
  msgid "You must add the following as the authorised redirect URI in your Dropbox console (under \"API Settings\") when asked"
2120
 
2121
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:54
2122
  msgid "or to restore manually"
2123
+ msgstr "tai palauta manuaalisesti"
2124
 
2125
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:54
2126
  msgid "This makes time-outs much more likely. You are recommended to turn safe_mode off, or to restore only one entity at a time"
2242
  #: src/addons/migrator.php:1765, src/central/bootstrap.php:544,
2243
  #: src/central/bootstrap.php:545, src/central/bootstrap.php:547
2244
  msgid "%s bits"
2245
+ msgstr "%s bittiä"
2246
 
2247
  #: src/addons/migrator.php:1760, src/central/bootstrap.php:542
2248
  msgid "Encryption key size:"
2262
 
2263
  #: src/methods/ftp.php:440
2264
  msgid "This is sometimes caused by a firewall - try turning off SSL in the expert settings, and testing again."
2265
+ msgstr "Tämä johtuu joskus palomuurista - yritä kytkeä SSL pois päältä kehittyneistä asetuksista, ja yritä uudelleen."
2266
 
2267
  #: src/methods/ftp.php:412
2268
  msgid "login"
2321
 
2322
  #: src/central/bootstrap.php:536
2323
  msgid "Enter any description"
2324
+ msgstr "Anna kuvaus"
2325
 
2326
  #: src/central/bootstrap.php:535
2327
  msgid "Description"
2389
 
2390
  #: src/central/bootstrap.php:57
2391
  msgid "UpdraftCentral Connection"
2392
+ msgstr "UpdraftCentral yhteys"
2393
 
2394
  #: src/backup.php:1042, src/class-updraftplus.php:2973
2395
  msgid "The backup was aborted by the user"
2409
 
2410
  #: src/admin.php:905, src/admin.php:3209
2411
  msgid "The backup has finished running"
2412
+ msgstr "Varmuuskopiointi on valmis"
2413
 
2414
  #: src/templates/wp-admin/advanced/tools-menu.php:30,
2415
  #: src/templates/wp-admin/advanced/wipe-settings.php:5,
2561
 
2562
  #: src/templates/wp-admin/settings/form-contents.php:93
2563
  msgid "Sending Your Backup To Remote Storage"
2564
+ msgstr "Lähetetään varmuuskopiotasi etävarastoon"
2565
 
2566
  #: src/templates/wp-admin/settings/form-contents.php:58
2567
  msgid "Database backup schedule"
2691
 
2692
  #: src/addons/googlecloud.php:48, src/addons/googlecloud.php:49
2693
  msgid "Eastern United States"
2694
+ msgstr "Itäinen Yhdysvallat"
2695
 
2696
  #: src/addons/googlecloud.php:47
2697
  msgid "Central United States"
2724
 
2725
  #: src/addons/googlecloud.php:38, src/addons/s3-enhanced.php:66
2726
  msgid "Standard"
2727
+ msgstr "Standardi"
2728
 
2729
  #: src/addons/azure.php:638
2730
  msgid "container"
2736
 
2737
  #: src/addons/azure.php:637
2738
  msgid "optional"
2739
+ msgstr "valinnainen"
2740
 
2741
  #: src/addons/azure.php:633
2742
  msgid "See Microsoft's guidelines on container naming by following this link."
2833
 
2834
  #: src/addons/googlecloud.php:1032
2835
  msgid "Project ID"
2836
+ msgstr "Projekti ID"
2837
 
2838
  #: src/addons/googlecloud.php:759
2839
  msgid "You must save and authenticate before you can test your settings."
2907
 
2908
  #: src/admin.php:888
2909
  msgid "For backups older than"
2910
+ msgstr "Varmuuskopioihin vanhempia kuin"
2911
 
2912
  #: src/admin.php:887
2913
  msgid "week(s)"
2975
 
2976
  #: src/addons/s3-enhanced.php:73
2977
  msgid "Check this box to use Amazon's server-side encryption"
2978
+ msgstr "Merkitse tämä laatikko käyttääksesi Amazonin palvelin-salausta"
2979
 
2980
  #: src/addons/s3-enhanced.php:72
2981
  msgid "Server-side encryption"
3020
  #: src/methods/updraftvault.php:466, src/methods/updraftvault.php:482,
3021
  #: src/methods/updraftvault.php:484, src/methods/updraftvault.php:542
3022
  msgid "Get more quota"
3023
+ msgstr "Suurenna kiintiötäsi"
3024
 
3025
  #: src/methods/updraftvault.php:463, src/methods/updraftvault.php:479,
3026
  #: src/methods/updraftvault.php:523
3029
 
3030
  #: src/methods/updraftvault.php:458
3031
  msgid "You can get more quota here"
3032
+ msgstr "Voit suurentaa kiintiötäsi täällä"
3033
 
3034
  #: src/methods/updraftvault.php:458
3035
  msgid "%s Error: you have insufficient storage quota available (%s) to upload this archive (%s)."
3076
 
3077
  #: src/methods/updraftvault.php:348
3078
  msgid "Subscriptions can be cancelled at any time."
3079
+ msgstr "Tilaukset voidaan peruuttaa koska tahansa."
3080
 
3081
  #: src/methods/updraftvault.php:331, src/methods/updraftvault.php:337,
3082
  #: src/methods/updraftvault.php:343
3183
 
3184
  #: src/includes/class-remote-send.php:345
3185
  msgid "Also send this backup to the active remote storage locations"
3186
+ msgstr "Lähetä tämä varmuuskopio myös etävarastoon"
3187
 
3188
  #: src/includes/class-remote-send.php:310
3189
  msgid "The site URL you are sending to (%s) looks like a local development website. If you are sending from an external network, it is likely that a firewall will be blocking this."
3377
 
3378
  #: src/udaddons/updraftplus-addons.php:996
3379
  msgid "Go here to re-enter your password."
3380
+ msgstr "Mene tänne laittaaksesi salasanan uudelleen."
3381
 
3382
  #: src/addons/migrator.php:271
3383
  msgid "After pressing this button, you will be given the option to choose which components you wish to migrate"
3444
 
3445
  #: src/addons/s3-enhanced.php:392
3446
  msgid "S3 bucket"
3447
+ msgstr "S3 ämpäri"
3448
 
3449
  #: src/addons/s3-enhanced.php:382
3450
  msgid "China (Beijing) (restricted)"
3464
 
3465
  #: src/addons/s3-enhanced.php:377
3466
  msgid "Asia Pacific (Singapore)"
3467
+ msgstr "Aasian ja Tyynenmeren alue (Singapore)"
3468
 
3469
  #: src/addons/s3-enhanced.php:370
3470
  msgid "US Government West (restricted)"
3553
 
3554
  #: src/addons/s3-enhanced.php:161
3555
  msgid "Cannot create new AWS user, since the old AWS toolkit is being used."
3556
+ msgstr "Et voi tehdä uutta AWS -käyttäjää, sillä vanhaa AWS -työkalupakettia käytetään."
3557
 
3558
  #: src/addons/s3-enhanced.php:134
3559
  msgid "You need to enter a bucket"
3618
 
3619
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:13
3620
  msgid "Go to the shop."
3621
+ msgstr "Mene kauppaan."
3622
 
3623
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:13
3624
  msgid "Compare with the free version"
4136
 
4137
  #: src/templates/wp-admin/advanced/site-info.php:74
4138
  msgid "Free disk space in account:"
4139
+ msgstr "Vapaata tilaa tilillä:"
4140
 
4141
  #: src/admin.php:4900, src/templates/wp-admin/settings/take-backup.php:50
4142
  msgid "This button is disabled because your backup directory is not writable (see the settings)."
4216
 
4217
  #: src/addons/moredatabase.php:104
4218
  msgid "database connection attempt failed"
4219
+ msgstr "Tietokantaan yhdistäminen epäonnistui"
4220
 
4221
  #: src/addons/moredatabase.php:93
4222
  msgid "database name"
4228
 
4229
  #: src/addons/moredatabase.php:89
4230
  msgid "user"
4231
+ msgstr "käyttäjä"
4232
 
4233
  #: src/class-updraftplus.php:1736
4234
  msgid "External database (%s)"
4235
+ msgstr "Ulkoinen tietokanta (%s)"
4236
 
4237
  #: src/methods/googledrive.php:1207
4238
  msgid "Follow this link to your Google API Console, and there activate the Drive API and create a Client ID in the API Access section."
4286
 
4287
  #: src/includes/class-wpadmin-commands.php:149
4288
  msgid "Only the WordPress database can be restored; you will need to deal with the external database manually."
4289
+ msgstr "Vain WordPress tietokanta voidaan palauttaa; sinun pitää huolehtia ulkoisesta tietokannasta manuaalisesti."
4290
 
4291
  #: src/restorer.php:2284, src/restorer.php:2753, src/restorer.php:2794,
4292
  #: src/restorer.php:2807
4475
  #: src/templates/wp-admin/settings/form-contents.php:182,
4476
  #: src/templates/wp-admin/settings/tab-backups.php:74
4477
  msgid "This feature requires %s version %s or later"
4478
+ msgstr "Tämä ominaisuus tarvitsee version %s tai %s myöhemmän"
4479
 
4480
  #: src/restorer.php:531
4481
  msgid "Failed to unpack the archive"
4496
 
4497
  #: src/udaddons/updraftplus-addons.php:259
4498
  msgid "It has been tested up to version %s."
4499
+ msgstr "On testattu versioon %s asti."
4500
 
4501
  #: src/udaddons/updraftplus-addons.php:259
4502
  msgid "The installed version of UpdraftPlus Backup/Restore has not been tested on your version of WordPress (%s)."
4612
 
4613
  #: src/admin.php:797
4614
  msgid "Rescanning remote and local storage for backup sets..."
4615
+ msgstr "Skannataan etä- ja paikallista varastoa varmuuskopioiden varalta..."
4616
 
4617
  #: src/addons/googlecloud.php:1042, src/addons/googlecloud.php:1055,
4618
  #: src/addons/s3-enhanced.php:63, src/addons/s3-enhanced.php:72
4671
 
4672
  #: src/udaddons/options.php:483
4673
  msgid "Available to claim on this site"
4674
+ msgstr "Valmiina noutaa tältä sivulta"
4675
 
4676
  #: src/udaddons/updraftplus-addons.php:288
4677
  msgid "To maintain your access to support, please renew."
4824
 
4825
  #: src/addons/cloudfiles-enhanced.php:283
4826
  msgid "Admin Username"
4827
+ msgstr "Järjestelmänvalvojan Käyttäjänimi"
4828
 
4829
  #: src/addons/cloudfiles-enhanced.php:278
4830
  msgid "US or UK Rackspace Account"
4881
 
4882
  #: src/addons/cloudfiles-enhanced.php:76
4883
  msgid "You need to enter an admin username"
4884
+ msgstr "Sinun täytyy asettaa järjestelmänvalvojan käyttäjänimi"
4885
 
4886
  #: src/addons/cloudfiles-enhanced.php:62
4887
  msgid "Create a new API user with access to only this container (rather than your whole account)"
5038
 
5039
  #: src/addons/reporting.php:268
5040
  msgid "Debugging information"
5041
+ msgstr "Virheenkorjauksen tiedot"
5042
 
5043
  #: src/addons/reporting.php:223, src/admin.php:3992
5044
  msgid "Uploaded to:"
5071
 
5072
  #: src/addons/reporting.php:171
5073
  msgid "Backup Report"
5074
+ msgstr "Varmuuskopio Reportti"
5075
 
5076
  #: src/addons/reporting.php:166
5077
  msgid "%d hours, %d minutes, %d seconds"
5144
 
5145
  #: src/backup.php:1094
5146
  msgid "Backed up: %s"
5147
+ msgstr "Varmuuskopioitu: %s"
5148
 
5149
  #: src/addons/reporting.php:265, src/backup.php:1088
5150
  msgid "The log file has been attached to this email."
5160
 
5161
  #: src/backup.php:1049
5162
  msgid "Database (files backup has not completed)"
5163
+ msgstr "Tietokanta (tiedostojen varmuuskopiointi ei ole valmis)"
5164
 
5165
  #: src/backup.php:1046
5166
  msgid "Files only (database was not part of this particular schedule)"
5192
 
5193
  #: src/options.php:208
5194
  msgid "UpdraftPlus warning:"
5195
+ msgstr "UpdraftPlus varoitus:"
5196
 
5197
  #: src/udaddons/options.php:489
5198
  msgid "(or connect using the form on this page if you have already purchased it)"
5216
 
5217
  #: src/udaddons/options.php:460, src/udaddons/options.php:460
5218
  msgid "You've got it"
5219
+ msgstr "Sinä pystyt siihen"
5220
 
5221
  #: src/udaddons/options.php:421
5222
  msgid "UpdraftPlus Support"
5285
 
5286
  #: src/backup.php:3424, src/class-updraftplus.php:861
5287
  msgid "Your free space in your hosting account is very low - only %s Mb remain"
5288
+ msgstr "Sinun vapaa tilasi tililläsi on todella alhainen - enää %s Mb jäljellä"
5289
 
5290
  #: src/class-updraftplus.php:845
5291
  msgid "The amount of memory (RAM) allowed for PHP is very low (%s Mb) - you should increase it to avoid failures due to insufficient memory (consult your web hosting company for more help)"
5377
 
5378
  #: src/admin.php:2929
5379
  msgid "Connect with your UpdraftPlus.Com account"
5380
+ msgstr "Yhdistä UpdraftPlus.Com tilisi"
5381
 
5382
  #: src/udaddons/options.php:110
5383
  msgid "You do seem to have the obsolete Updraft plugin installed - perhaps you got them confused?"
5424
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:78,
5425
  #: src/templates/wp-admin/settings/tab-backups.php:80
5426
  msgid "Drop backup files here"
5427
+ msgstr "Raahaa varmuuskopiointi tiedostot tänne"
5428
 
5429
  #: src/admin.php:804
5430
  msgid "The web server returned an error code (try again, or check your web server logs)"
5486
 
5487
  #: src/addons/sftp.php:492
5488
  msgid "Use SCP instead of SFTP"
5489
+ msgstr "Käytä SCP:tä SFTP:n sijaan"
5490
 
5491
  #: src/addons/sftp.php:48
5492
  msgid "SCP/SFTP user setting"
5506
 
5507
  #: src/admin.php:894
5508
  msgid "%s settings test result:"
5509
+ msgstr "%s asetuksien testaamisen lopputulos:"
5510
 
5511
  #: src/admin.php:4140, src/admin.php:4142
5512
  msgid "(Not finished)"
5552
 
5553
  #: src/admin.php:3288
5554
  msgid "Pruning old backup sets"
5555
+ msgstr "Karsitaan vanhoja varmuuskopio-settejä"
5556
 
5557
  #: src/admin.php:3275
5558
  msgid "Uploading files to remote storage"
5560
 
5561
  #: src/admin.php:3344
5562
  msgid "Encrypted database"
5563
+ msgstr "Suojattu tietokanta"
5564
 
5565
  #: src/admin.php:3336
5566
  msgid "Encrypting database"
5641
 
5642
  #: src/addons/autobackup.php:501
5643
  msgid "Creating backup with UpdraftPlus..."
5644
+ msgstr "Varmuuskopiota tehdään UpdraftPlussan avulla..."
5645
 
5646
  #: src/addons/autobackup.php:446, src/addons/autobackup.php:576,
5647
  #: src/addons/autobackup.php:627
5682
 
5683
  #: src/addons/morefiles.php:190
5684
  msgid "Unable to open zip file (%s) - could not pre-scan it to check its integrity."
5685
+ msgstr "Zip -tiedostoa (%s) ei voitu avata - ei voitu skannata sen sisältöä"
5686
 
5687
  #: src/addons/morefiles.php:180
5688
  msgid "Unable to read zip file (%s) - could not pre-scan it to check its integrity."
5726
 
5727
  #: src/admin.php:2591
5728
  msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
5729
+ msgstr "Jos voit vielä lukea näitä sanoja sivun lataamisen jälkeen, sivullasi on JavaScript tai jQuery virhe."
5730
 
5731
  #: src/admin.php:840
5732
  msgid "The file was uploaded."
5738
 
5739
  #: src/admin.php:838
5740
  msgid "Unknown server response:"
5741
+ msgstr "Tuntematon palvelinvastaus:"
5742
 
5743
  #: src/admin.php:837
5744
  msgid "This decryption key will be attempted:"
5766
 
5767
  #: src/admin.php:823
5768
  msgid "Download to your computer"
5769
+ msgstr "Lataa tietokoneellesi"
5770
 
5771
  #: src/admin.php:822
5772
  msgid "Delete from your web server"
5778
 
5779
  #: src/admin.php:4109
5780
  msgid "(%d archive(s) in set)."
5781
+ msgstr "(%d arkisto(a) setissä)."
5782
 
5783
  #: src/templates/wp-admin/settings/form-contents.php:308
5784
  msgid "Split archives every:"
5843
 
5844
  #: src/backup.php:3097, src/backup.php:3380
5845
  msgid "Failed to open the zip file (%s) - %s"
5846
+ msgstr "Zip-tiedostoa (%s) ei voitu avata - %s"
5847
 
5848
  #: src/addons/morefiles.php:168
5849
  msgid "WordPress root directory server path: %s"
5921
 
5922
  #: src/restorer.php:228
5923
  msgid "file is size:"
5924
+ msgstr "tiedoston koko:"
5925
 
5926
  #: src/addons/googlecloud.php:1034, src/addons/migrator.php:490,
5927
  #: src/addons/migrator.php:493, src/addons/migrator.php:496,
5957
 
5958
  #: src/methods/dropbox.php:481
5959
  msgid "You do not appear to be authenticated with %s"
5960
+ msgstr "Sinua ei ole todennettu %s"
5961
 
5962
  #: src/methods/dropbox.php:448
5963
  msgid "Failed to access %s when deleting (see log file for more)"
5973
 
5974
  #: src/methods/cloudfiles.php:409
5975
  msgid "Error - no such file exists at %s"
5976
+ msgstr "Virhe - tiedostoa ei löydy sijainnista %s"
5977
 
5978
  #: src/addons/azure.php:268, src/methods/addon-base-v2.php:219,
5979
  #: src/methods/cloudfiles.php:383, src/methods/cloudfiles.php:400,
6093
 
6094
  #: src/addons/s3-enhanced.php:215, src/methods/s3.php:1143
6095
  msgid "The error reported by %s was:"
6096
+ msgstr "%s virhe oli:"
6097
 
6098
  #: src/restorer.php:1916
6099
  msgid "Please supply the requested information, and then continue."
6216
 
6217
  #: src/admin.php:893
6218
  msgid "Testing %s Settings..."
6219
+ msgstr "Testataan %s asetuksia..."
6220
 
6221
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:69,
6222
  #: src/templates/wp-admin/settings/tab-backups.php:71
6261
 
6262
  #: src/addons/migrator.php:1303
6263
  msgid "Time taken (seconds):"
6264
+ msgstr "Aikaa käytetty (sekunteina):"
6265
 
6266
  #: src/addons/migrator.php:1302, src/admin.php:814
6267
  msgid "Errors:"
6277
 
6278
  #: src/addons/migrator.php:1299
6279
  msgid "Rows examined:"
6280
+ msgstr "Rivejä tarkistettu:"
6281
 
6282
  #: src/addons/migrator.php:1298
6283
  msgid "Tables examined:"
6299
  #: src/addons/migrator.php:1093, src/addons/migrator.php:1098,
6300
  #: src/addons/migrator.php:1102, src/addons/migrator.php:1107
6301
  msgid "Error: unexpected empty parameter (%s, %s)"
6302
+ msgstr "Virhe: odottamaton tyhjä parametri (%s, %s)"
6303
 
6304
  #: src/addons/migrator.php:1045
6305
  msgid "Database: search and replace site URL"
6383
 
6384
  #: src/addons/sftp.php:567
6385
  msgid "Check your file permissions: Could not successfully create and enter:"
6386
+ msgstr "Tarkista tiedosto-oikeutesi: Ei voitu luoda ja asettaa:"
6387
 
6388
  #: src/addons/sftp.php:47, src/addons/sftp.php:48, src/addons/sftp.php:49
6389
  msgid "No %s found"
6423
 
6424
  #: src/addons/morefiles.php:137, src/includes/class-wpadmin-commands.php:523
6425
  msgid "WordPress Core"
6426
+ msgstr "WordPress Ydin"
6427
 
6428
  #: src/methods/addon-base-v2.php:330, src/methods/stream-base.php:375
6429
  msgid "Failed: We were not able to place a file in that directory - please check your credentials."
6565
 
6566
  #: src/methods/s3.php:1093
6567
  msgid "API secret"
6568
+ msgstr "API salainen"
6569
 
6570
  #: src/methods/s3.php:941
6571
  msgid "Enter only a bucket name or a bucket and path. Examples: mybucket, mybucket/mypath"
6577
 
6578
  #: src/methods/s3.php:936
6579
  msgid "%s secret key"
6580
+ msgstr "%s salainen avain"
6581
 
6582
  #: src/methods/s3.php:932
6583
  msgid "%s access key"
6625
 
6626
  #: src/methods/email.php:45
6627
  msgid "WordPress Backup"
6628
+ msgstr "WordPress Varmuuskopio"
6629
 
6630
  #: src/methods/cloudfiles.php:575, src/methods/openstack-base.php:530
6631
  msgid "We accessed the container, and were able to create files within it."
6648
  #: src/methods/cloudfiles-new.php:184, src/methods/cloudfiles.php:519,
6649
  #: src/methods/s3.php:1089
6650
  msgid "API key"
6651
+ msgstr "API avain"
6652
 
6653
  #: src/addons/migrator.php:337, src/addons/moredatabase.php:89,
6654
  #: src/addons/moredatabase.php:91, src/addons/moredatabase.php:93,
languages/updraftplus-it_IT.mo CHANGED
Binary file
languages/updraftplus-it_IT.po CHANGED
@@ -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: 2018-05-28 22:27:12+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -35,7 +35,7 @@ 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."
@@ -43,7 +43,7 @@ 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()."
@@ -63,11 +63,11 @@ msgstr ""
63
 
64
  #: src/templates/wp-admin/settings/form-contents.php:350
65
  msgid "Ask WordPress to automatically update UpdraftPlus when it finds an available update."
66
- msgstr ""
67
 
68
  #: src/templates/wp-admin/settings/form-contents.php:349
69
  msgid "Automatic updates"
70
- msgstr ""
71
 
72
  #: src/restorer.php:2092, src/restorer.php:2134
73
  msgid "Your database user does not have permission to drop tables"
@@ -135,7 +135,7 @@ msgstr ""
135
 
136
  #: src/templates/wp-admin/settings/file-backup-exclude.php:11
137
  msgid "Confirm change"
138
- msgstr ""
139
 
140
  #: src/templates/wp-admin/settings/exclude-settings-modal/exclude-panel-submit.php:3,
141
  #: src/templates/wp-admin/settings/file-backup-exclude.php:18
@@ -167,12 +167,12 @@ msgstr ""
167
  #: src/templates/wp-admin/settings/exclude-modal.php:44,
168
  #: src/templates/wp-admin/settings/exclude-modal.php:46
169
  msgid "All files with this extension"
170
- msgstr ""
171
 
172
  #: src/templates/wp-admin/settings/exclude-modal.php:9,
173
  #: src/templates/wp-admin/settings/exclude-modal.php:22
174
  msgid "File/directory"
175
- msgstr ""
176
 
177
  #: src/templates/wp-admin/settings/exclude-modal.php:6
178
  msgid "Select a way to exclude files or directories from the backup"
@@ -180,7 +180,7 @@ msgstr ""
180
 
181
  #: src/templates/wp-admin/settings/exclude-modal.php:2
182
  msgid "Exclude files/directories"
183
- msgstr ""
184
 
185
  #: src/includes/updraftclone/temporary-clone-status.php:422
186
  msgid "To read FAQs/documentation about UpdraftClone, go here."
@@ -188,7 +188,7 @@ msgstr ""
188
 
189
  #: src/includes/updraftclone/temporary-clone-status.php:421
190
  msgid "your UpdraftPlus.com account"
191
- msgstr ""
192
 
193
  #: src/includes/updraftclone/temporary-clone-status.php:421
194
  msgid "You can check the progress here or in %s"
@@ -239,7 +239,7 @@ msgstr ""
239
  #: src/includes/updraftclone/temporary-clone-status.php:66,
240
  #: src/includes/updraftclone/temporary-clone-status.php:341
241
  msgid "WordPress installed"
242
- msgstr ""
243
 
244
  #: src/admin.php:5428
245
  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."
@@ -299,7 +299,7 @@ msgstr ""
299
 
300
  #: src/admin.php:5424
301
  msgid "Dashboard:"
302
- msgstr ""
303
 
304
  #: src/admin.php:5423
305
  msgid "Front page:"
@@ -386,7 +386,7 @@ msgstr ""
386
  #: src/templates/wp-admin/settings/temporary-clone.php:56,
387
  #: src/templates/wp-admin/settings/temporary-clone.php:76
388
  msgid "I accept the UpdraftClone terms and conditions"
389
- msgstr ""
390
 
391
  #: src/templates/wp-admin/settings/temporary-clone.php:56
392
  msgid "Not got an account? Get one by buying some tokens here."
@@ -408,7 +408,7 @@ msgstr ""
408
 
409
  #: src/templates/wp-admin/settings/temporary-clone.php:32
410
  msgid "Flexible"
411
- msgstr ""
412
 
413
  #: src/templates/wp-admin/settings/temporary-clone.php:31
414
  msgid "Takes just the time needed to create a backup and send it."
@@ -416,7 +416,7 @@ msgstr ""
416
 
417
  #: src/templates/wp-admin/settings/temporary-clone.php:31
418
  msgid "Fast"
419
- msgstr ""
420
 
421
  #: src/templates/wp-admin/settings/temporary-clone.php:30
422
  msgid "One VPS (Virtual Private Server) per clone, shared with nobody."
@@ -424,7 +424,7 @@ msgstr ""
424
 
425
  #: src/templates/wp-admin/settings/temporary-clone.php:30
426
  msgid "Secure"
427
- msgstr ""
428
 
429
  #: src/templates/wp-admin/settings/temporary-clone.php:29
430
  msgid "Runs on capacity from a leading cloud computing provider."
@@ -432,7 +432,7 @@ msgstr ""
432
 
433
  #: src/templates/wp-admin/settings/temporary-clone.php:29
434
  msgid "Reliable"
435
- msgstr ""
436
 
437
  #: src/templates/wp-admin/settings/temporary-clone.php:28
438
  msgid "Press the buttons... UpdraftClone does the work."
@@ -440,7 +440,7 @@ msgstr ""
440
 
441
  #: src/templates/wp-admin/settings/temporary-clone.php:28
442
  msgid "Easy"
443
- msgstr ""
444
 
445
  #: src/templates/wp-admin/settings/temporary-clone.php:22
446
  msgid "A temporary clone is an instant copy of this website, running on our servers. Rather than test things on your live site, you can UpdraftClone it, and then throw away your clone when done."
@@ -453,7 +453,7 @@ msgstr ""
453
 
454
  #: src/templates/wp-admin/settings/tab-addons.php:23
455
  msgid "WooCommerce plugins"
456
- msgstr ""
457
 
458
  #: src/templates/wp-admin/advanced/wipe-settings.php:13
459
  msgid "Reset tour"
@@ -511,15 +511,15 @@ msgstr ""
511
 
512
  #: src/includes/updraftplus-tour.php:139
513
  msgid "Congratulations, your settings have successfully been saved."
514
- msgstr ""
515
 
516
  #: src/includes/updraftplus-tour.php:135
517
  msgid "Press here to save your settings."
518
- msgstr ""
519
 
520
  #: src/includes/updraftplus-tour.php:134, src/includes/updraftplus-tour.php:138
521
  msgid "Save"
522
- msgstr ""
523
 
524
  #: src/includes/updraftplus-tour.php:131
525
  msgid "Look through the other settings here, making any changes you’d like."
@@ -557,7 +557,7 @@ msgstr ""
557
 
558
  #: src/includes/updraftplus-tour.php:109, src/includes/updraftplus-tour.php:114
559
  msgid "Go to settings"
560
- msgstr ""
561
 
562
  #: src/includes/updraftplus-tour.php:108, src/includes/updraftplus-tour.php:113
563
  msgctxt "Translators: %s is a bold tag."
@@ -566,7 +566,7 @@ msgstr ""
566
 
567
  #: src/includes/updraftplus-tour.php:108
568
  msgid "Press here to run a manual backup."
569
- msgstr ""
570
 
571
  #: src/includes/updraftplus-tour.php:107, src/includes/updraftplus-tour.php:112
572
  msgid "Creating your first backup"
@@ -587,7 +587,7 @@ msgstr ""
587
 
588
  #: src/includes/updraftplus-tour.php:99
589
  msgid "Your first backup"
590
- msgstr ""
591
 
592
  #: src/includes/updraftplus-tour.php:95
593
  msgid "Press here to start!"
@@ -599,11 +599,11 @@ msgstr ""
599
 
600
  #: src/includes/updraftplus-tour.php:92
601
  msgid "Welcome to UpdraftPlus"
602
- msgstr ""
603
 
604
  #: src/includes/updraftplus-tour.php:91
605
  msgid "UpdraftPlus settings"
606
- msgstr ""
607
 
608
  #: src/includes/updraftplus-tour.php:88
609
  msgid "End tour"
@@ -611,11 +611,11 @@ msgstr ""
611
 
612
  #: src/includes/updraftplus-tour.php:87
613
  msgid "Skip this step"
614
- msgstr ""
615
 
616
  #: src/includes/updraftplus-tour.php:86
617
  msgid "Back"
618
- msgstr ""
619
 
620
  #: src/includes/class-commands.php:893
621
  msgid "You can buy more temporary clone tokens here."
@@ -663,11 +663,11 @@ msgstr ""
663
 
664
  #: src/admin.php:2798
665
  msgid "Backup / Restore"
666
- msgstr ""
667
 
668
  #: src/admin.php:663
669
  msgid "Backup"
670
- msgstr ""
671
 
672
  #: src/addons/wp-cli.php:408
673
  msgid "Latest full backup found; identifier:"
@@ -769,16 +769,16 @@ msgstr ""
769
 
770
  #: src/admin.php:5402
771
  msgid "(current version)"
772
- msgstr ""
773
 
774
  #: src/admin.php:3738
775
  msgid "press here"
776
- msgstr ""
777
 
778
  #: src/addons/onedrive.php:1157, src/methods/dropbox.php:586,
779
  #: src/methods/googledrive.php:1214
780
  msgid "this privacy policy"
781
- msgstr ""
782
 
783
  #: src/addons/onedrive.php:1157, src/methods/dropbox.php:586,
784
  #: src/methods/googledrive.php:1214
@@ -795,7 +795,7 @@ msgstr ""
795
 
796
  #: src/addons/incremental.php:236, src/updraftplus.php:99
797
  msgid "Every hour"
798
- msgstr ""
799
 
800
  #: src/includes/class-commands.php:900
801
  msgid "Create clone"
@@ -930,7 +930,7 @@ msgstr ""
930
  #: src/admin.php:929,
931
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:9
932
  msgid "UpdraftCentral Cloud"
933
- msgstr ""
934
 
935
  #: src/admin.php:489
936
  msgid "Are you sure you want to dismiss all UpdraftPlus news forever?"
@@ -990,7 +990,7 @@ msgstr ""
990
 
991
  #: src/admin.php:846, src/admin.php:4248
992
  msgid "Upload"
993
- msgstr ""
994
 
995
  #: src/addons/reporting.php:529, src/admin.php:796
996
  msgid "Only email the database backup"
@@ -1026,11 +1026,11 @@ msgstr ""
1026
 
1027
  #: src/templates/wp-admin/settings/tab-addons.php:153
1028
  msgid "WP-CLI support"
1029
- msgstr ""
1030
 
1031
  #: src/templates/wp-admin/settings/tab-addons.php:152
1032
  msgid "WP CLI"
1033
- msgstr ""
1034
 
1035
  #: src/addons/wp-cli.php:265
1036
  msgid "Invalid Job Id"
@@ -1128,7 +1128,7 @@ msgstr ""
1128
 
1129
  #: src/admin.php:4982
1130
  msgid "authentication error"
1131
- msgstr ""
1132
 
1133
  #: src/addons/multisite.php:44, src/options.php:38
1134
  msgid "(Nothing has been logged yet)"
@@ -1156,19 +1156,19 @@ msgstr ""
1156
 
1157
  #: src/addons/morestorage.php:81, src/admin.php:924
1158
  msgid "Currently disabled"
1159
- msgstr ""
1160
 
1161
  #: src/addons/morestorage.php:81, src/admin.php:923
1162
  msgid "Currently enabled"
1163
- msgstr ""
1164
 
1165
  #: src/templates/wp-admin/settings/tab-addons.php:30
1166
  msgid "If you have purchased from UpdraftPlus.Com, then follow this link to the installation instructions (particularly step 1)."
1167
- msgstr ""
1168
 
1169
  #: src/templates/wp-admin/settings/tab-addons.php:30
1170
  msgid "You are currently using the free version of UpdraftPlus."
1171
- msgstr ""
1172
 
1173
  #: src/templates/wp-admin/settings/tab-addons.php:26
1174
  msgid "Get it here"
@@ -1188,11 +1188,11 @@ msgstr ""
1188
 
1189
  #: src/includes/updraftplus-notices.php:193
1190
  msgid "No more forgotten passwords. Find out more about our revolutionary new WordPress plugin"
1191
- msgstr ""
1192
 
1193
  #: src/templates/wp-admin/settings/existing-backups-table.php:87
1194
  msgid "remote site"
1195
- msgstr ""
1196
 
1197
  #: src/addons/backblaze.php:475
1198
  msgid "Invalid bucket name"
@@ -1296,7 +1296,7 @@ msgstr[1] ""
1296
 
1297
  #: src/central/bootstrap.php:602
1298
  msgid "Create another key"
1299
- msgstr ""
1300
 
1301
  #: src/central/bootstrap.php:533
1302
  msgid "UpdraftCentral dashboard connection details"
@@ -1304,11 +1304,11 @@ msgstr ""
1304
 
1305
  #: src/central/bootstrap.php:527, src/includes/updraftplus-tour.php:85
1306
  msgid "Next"
1307
- msgstr ""
1308
 
1309
  #: src/central/bootstrap.php:513
1310
  msgid "an account"
1311
- msgstr ""
1312
 
1313
  #: src/central/bootstrap.php:513
1314
  msgid "i.e. if you have %s there"
@@ -1320,7 +1320,7 @@ msgstr ""
1320
 
1321
  #: src/central/bootstrap.php:471
1322
  msgid "Manage existing keys (%d)..."
1323
- msgstr ""
1324
 
1325
  #: src/central/bootstrap.php:421
1326
  msgid "There are no UpdraftCentral dashboards that can currently control this site."
@@ -1328,7 +1328,7 @@ msgstr ""
1328
 
1329
  #: src/central/bootstrap.php:258
1330
  msgid "You can now control this site via your UpdraftCentral dashboard at %s."
1331
- msgstr ""
1332
 
1333
  #: src/central/bootstrap.php:256
1334
  msgid "Detailed instructions for this can be found at %s"
@@ -1340,7 +1340,7 @@ msgstr ""
1340
 
1341
  #: src/admin.php:918
1342
  msgid "Please enter a valid URL e.g http://example.com"
1343
- msgstr ""
1344
 
1345
  #: src/addons/backblaze.php:661
1346
  msgid "There are limits upon which path-names are valid. Spaces are not allowed."
@@ -1408,7 +1408,7 @@ msgstr ""
1408
 
1409
  #: src/admin.php:897
1410
  msgid "Error: The chosen file is corrupt. Please choose a valid UpdraftPlus export file."
1411
- msgstr ""
1412
 
1413
  #: src/backup.php:456, src/backup.php:2140, src/class-updraftplus.php:2133,
1414
  #: src/class-updraftplus.php:2198,
@@ -1461,7 +1461,7 @@ msgstr ""
1461
 
1462
  #: src/templates/wp-admin/settings/form-contents.php:191
1463
  msgid "Select Files"
1464
- msgstr ""
1465
 
1466
  #: src/methods/cloudfiles.php:476
1467
  msgid "Rackspace Storage Region"
@@ -1538,7 +1538,7 @@ msgstr "Cerca"
1538
 
1539
  #: src/admin.php:912
1540
  msgid "Select a file to view information about it"
1541
- msgstr ""
1542
 
1543
  #: src/admin.php:911
1544
  msgid "Browsing zip file"
@@ -1590,7 +1590,7 @@ msgstr ""
1590
 
1591
  #: src/admin.php:909
1592
  msgid "HTTP code:"
1593
- msgstr "codice HTTP:"
1594
 
1595
  #: src/addons/wp-cli.php:109, src/admin.php:801
1596
  msgid "You have chosen to backup a database, but no tables have been selected"
@@ -1614,7 +1614,7 @@ msgstr ""
1614
 
1615
  #: src/templates/wp-admin/advanced/wipe-settings.php:11
1616
  msgid "UpdraftPlus Tour"
1617
- msgstr ""
1618
 
1619
  #: src/templates/wp-admin/settings/tab-addons.php:232
1620
  msgid "Lock access to UpdraftPlus via a password so you choose which admin users can access backups."
@@ -1780,7 +1780,7 @@ msgstr ""
1780
  #: src/addons/morefiles.php:297, src/addons/morefiles.php:317,
1781
  #: src/templates/wp-admin/settings/file-backup-exclude.php:11
1782
  msgid "Edit"
1783
- msgstr ""
1784
 
1785
  #: src/addons/morefiles.php:280
1786
  msgid "If using it, select a path from the directory tree below and then press confirm selection."
@@ -2266,7 +2266,7 @@ msgstr "Questo è causato qualche volta da un firewall - prova a togliere l'SSL
2266
 
2267
  #: src/methods/ftp.php:412
2268
  msgid "login"
2269
- msgstr "Login"
2270
 
2271
  #: src/addons/reporting.php:527, src/addons/reporting.php:527,
2272
  #: src/addons/reporting.php:529, src/methods/email.php:100
@@ -2405,7 +2405,7 @@ msgstr "Dimensione totale backup:"
2405
 
2406
  #: src/admin.php:3416
2407
  msgid "stop"
2408
- msgstr "Stop"
2409
 
2410
  #: src/admin.php:905, src/admin.php:3209
2411
  msgid "The backup has finished running"
@@ -2484,7 +2484,7 @@ msgstr "Sarà importato come un nuovo sito."
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 "Chiudi"
2488
 
2489
  #: src/admin.php:891
2490
  msgid "Please fill in the required information."
@@ -2971,7 +2971,7 @@ msgstr "Inserisci la tua mail / password di UpdraftPlus.Com qui per connetterti:
2971
 
2972
  #: src/methods/updraftvault.php:322, src/methods/updraftvault.php:351
2973
  msgid "Read the FAQs here."
2974
- msgstr ""
2975
 
2976
  #: src/addons/s3-enhanced.php:73
2977
  msgid "Check this box to use Amazon's server-side encryption"
@@ -3066,7 +3066,7 @@ msgstr "Vai qui per un aiuto"
3066
 
3067
  #: src/methods/updraftvault.php:360
3068
  msgid "E-mail"
3069
- msgstr ""
3070
 
3071
  #: src/central/bootstrap.php:570, src/methods/updraftvault.php:354,
3072
  #: src/methods/updraftvault.php:368,
@@ -3098,7 +3098,7 @@ msgstr ""
3098
 
3099
  #: src/methods/updraftvault.php:315
3100
  msgid "Show the options"
3101
- msgstr ""
3102
 
3103
  #: src/methods/updraftvault.php:314
3104
  msgid "First time user?"
@@ -3126,7 +3126,7 @@ msgstr ""
3126
 
3127
  #: src/methods/updraftvault.php:99
3128
  msgid "Updraft Vault"
3129
- msgstr ""
3130
 
3131
  #: src/addons/azure.php:443, src/addons/backblaze.php:528,
3132
  #: src/addons/googlecloud.php:843, src/methods/s3.php:1172
@@ -3295,7 +3295,7 @@ msgstr "E' per l'invio dei backup ai seguenti siti:"
3295
 
3296
  #: src/includes/class-remote-send.php:493
3297
  msgid "The key was successfully added."
3298
- msgstr "La chiave è stata inserita correttamente."
3299
 
3300
  #: src/includes/class-remote-send.php:477
3301
  msgid "The entered key does not belong to a remote site (it belongs to this one)."
@@ -3606,7 +3606,7 @@ msgstr ""
3606
 
3607
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:33
3608
  msgid "Premium WooCommerce plugins"
3609
- msgstr "Premium WooCommerce plugin"
3610
 
3611
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:33
3612
  msgid "Free two-factor security plugin"
@@ -3614,7 +3614,7 @@ msgstr ""
3614
 
3615
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:32
3616
  msgid "More quality plugins"
3617
- msgstr ""
3618
 
3619
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:13
3620
  msgid "Go to the shop."
@@ -3636,7 +3636,7 @@ msgstr "Newsletter Gratuita"
3636
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:2,
3637
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:35
3638
  msgid "Dismiss (for %s months)"
3639
- msgstr ""
3640
 
3641
  #: src/addons/fixtime.php:448
3642
  msgid "(at same time as files backup)"
@@ -3669,7 +3669,7 @@ msgstr ""
3669
 
3670
  #: src/templates/wp-admin/settings/tab-addons.php:18
3671
  msgid "Full feature list"
3672
- msgstr ""
3673
 
3674
  #: src/addons/autobackup.php:1080
3675
  msgid "Backup (where relevant) plugins, themes and the WordPress database with UpdraftPlus before updating"
@@ -3719,7 +3719,7 @@ msgstr ""
3719
  #: src/admin.php:3717
3720
  msgctxt "i.e. Non-automatic"
3721
  msgid "Manual"
3722
- msgstr ""
3723
 
3724
  #: src/restorer.php:2784
3725
  msgctxt "The user is being told the number of times an error has happened, e.g. An error (27) occurred"
@@ -3830,7 +3830,7 @@ msgstr ""
3830
 
3831
  #: src/admin.php:3209, src/admin.php:4278
3832
  msgid "View Log"
3833
- msgstr "Vedi il Log"
3834
 
3835
  #: src/templates/wp-admin/settings/existing-backups-table.php:18,
3836
  #: src/templates/wp-admin/settings/existing-backups-table.php:97
@@ -3867,7 +3867,7 @@ msgstr ""
3867
 
3868
  #: src/class-updraftplus.php:3990
3869
  msgid "Backup label:"
3870
- msgstr "Etichetta Backup:"
3871
 
3872
  #: src/addons/backblaze.php:205, src/admin.php:2113
3873
  msgid "Error: unexpected file read fail"
@@ -3985,7 +3985,7 @@ msgstr "Twitter"
3985
 
3986
  #: src/includes/updraftplus-notices.php:132
3987
  msgid "UpdraftPlus is on social media - check us out!"
3988
- msgstr ""
3989
 
3990
  #: src/addons/wp-cli.php:907, src/admin.php:4466
3991
  msgid "Why am I seeing this?"
@@ -4148,7 +4148,7 @@ msgstr "Questo pulsante è disabilitato perché la directory di backup non è sc
4148
  #: src/templates/wp-admin/settings/tab-backups.php:21,
4149
  #: src/templates/wp-admin/settings/tab-backups.php:44
4150
  msgid "Existing Backups"
4151
- msgstr "Backup Esistenti"
4152
 
4153
  #: src/admin.php:1143
4154
  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."
@@ -4258,7 +4258,7 @@ msgstr "Questo causerà inoltre la stampa a schermo del debugging di tutti i plu
4258
 
4259
  #: src/templates/wp-admin/settings/form-contents.php:233
4260
  msgid "Backup more databases"
4261
- msgstr ""
4262
 
4263
  #: src/templates/wp-admin/settings/form-contents.php:192
4264
  msgid "First, enter the decryption key"
@@ -4910,7 +4910,7 @@ msgstr "Usa questo add-on per creare un nuovo API sub-user Rackspace e una API k
4910
 
4911
  #: src/methods/cloudfiles-new.php:134
4912
  msgid "Cloud Files Username"
4913
- msgstr "User Cloud Files"
4914
 
4915
  #: src/addons/cloudfiles-enhanced.php:47, src/methods/cloudfiles-new.php:166
4916
  msgid "London (LON)"
@@ -5098,7 +5098,7 @@ msgstr "logo %s"
5098
 
5099
  #: src/methods/dropbox.php:286
5100
  msgid "did not return the expected response - check your log file for more details"
5101
- msgstr ""
5102
 
5103
  #: src/methods/s3.php:312
5104
  msgid "The required %s PHP module is not installed - ask your web hosting company to enable it"
@@ -5140,7 +5140,7 @@ msgstr "Ultimo status:"
5140
 
5141
  #: src/backup.php:1137
5142
  msgid "Backup contains:"
5143
- msgstr "Il Backup contiene:"
5144
 
5145
  #: src/backup.php:1094
5146
  msgid "Backed up: %s"
@@ -5277,7 +5277,7 @@ msgstr "Contenuto URL:"
5277
 
5278
  #: src/restorer.php:525
5279
  msgid "You should check the file ownerships and permissions in your WordPress installation"
5280
- msgstr ""
5281
 
5282
  #: src/templates/wp-admin/settings/form-contents.php:147
5283
  msgid "See also the \"More Files\" add-on from our shop."
@@ -5872,7 +5872,7 @@ msgstr "Ricerca archivio %s: nome file:%s"
5872
 
5873
  #: src/addons/wp-cli.php:784, src/admin.php:4570
5874
  msgid "Final checks"
5875
- msgstr "Controlli Finali"
5876
 
5877
  #: src/templates/wp-admin/settings/form-contents.php:314
5878
  msgid "Check this to delete any superfluous backup files from your server after the backup run finishes (i.e. if you uncheck, then any files despatched remotely will also remain locally, and any files being kept locally will not be subject to the retention limits)."
@@ -6505,7 +6505,7 @@ msgstr "c'è un add-on per questo."
6505
 
6506
  #: src/methods/dropbox.php:603, src/methods/dropbox.php:605
6507
  msgid "If you backup several sites into the same Dropbox and want to organize with sub-folders, then "
6508
- msgstr ""
6509
 
6510
  #: src/methods/dropbox.php:603, src/methods/dropbox.php:605
6511
  msgid "Backups are saved in"
@@ -6681,7 +6681,7 @@ msgstr "UK"
6681
  #: src/addons/cloudfiles-enhanced.php:37, src/methods/cloudfiles-new.php:118,
6682
  #: src/methods/cloudfiles.php:466
6683
  msgid "US (default)"
6684
- msgstr "USA (default)"
6685
 
6686
  #: src/methods/cloudfiles.php:463
6687
  msgid "US or UK Cloud"
@@ -6750,7 +6750,7 @@ msgstr "Se Google in seguito visualizzerà il messaggio \"invalid_client\", allo
6750
  #: src/addons/googlecloud.php:1019, src/addons/onedrive.php:1177,
6751
  #: src/methods/googledrive.php:1233
6752
  msgid "Client ID"
6753
- msgstr "ID Cliente"
6754
 
6755
  #: src/methods/googledrive.php:1207
6756
  msgid "You must add the following as the authorised redirect URI (under \"More Options\") when asked"
@@ -6814,7 +6814,7 @@ msgstr "Nessun token di aggiornamento è stato ricevuto da Google. Questo spesso
6814
 
6815
  #: src/methods/addon-not-yet-present.php:84
6816
  msgid "follow this link to get it"
6817
- msgstr "Clicca su questo collegamento per averlo."
6818
 
6819
  #: src/methods/addon-not-yet-present.php:84
6820
  msgid "%s support is available as an add-on"
@@ -7029,7 +7029,7 @@ msgstr "o, per resettare questa opzione"
7029
 
7030
  #: src/admin.php:3738
7031
  msgid "Follow this link to attempt to create the directory and set the permissions"
7032
- msgstr ""
7033
 
7034
  #: src/admin.php:3730
7035
  msgid "Backup directory specified is writable, which is good."
@@ -7154,11 +7154,11 @@ msgstr "La richiesta di creazione della cartella al file system è fallita."
7154
  #: src/templates/wp-admin/settings/existing-backups-table.php:155,
7155
  #: src/templates/wp-admin/settings/file-backup-exclude.php:11
7156
  msgid "Delete"
7157
- msgstr "Cancella"
7158
 
7159
  #: src/admin.php:3415
7160
  msgid "show log"
7161
- msgstr "Mostra log"
7162
 
7163
  #: src/templates/wp-admin/advanced/wipe-settings.php:9
7164
  msgid "This will delete all your UpdraftPlus settings - are you sure you want to do this?"
@@ -7438,7 +7438,7 @@ msgstr "Notifiche JavaScript"
7438
 
7439
  #: src/admin.php:828, src/admin.php:3151
7440
  msgid "Delete Old Directories"
7441
- msgstr "Elimina Vecchie Cartelle"
7442
 
7443
  #: src/admin.php:2638
7444
  msgid "Current limit is:"
@@ -7458,7 +7458,7 @@ msgstr "Vai alla homepage dello sviluppatore"
7458
 
7459
  #: src/central/bootstrap.php:511
7460
  msgid "UpdraftPlus.Com"
7461
- msgstr ""
7462
 
7463
  #: src/admin.php:5053
7464
  msgid "Your settings have been wiped."
@@ -7596,7 +7596,7 @@ msgstr "Ricursione infinita: consultare il log per maggiori informazioni"
7596
 
7597
  #: src/includes/updraftplus-notices.php:102
7598
  msgid "Please help UpdraftPlus by giving a positive review at wordpress.org."
7599
- msgstr ""
7600
 
7601
  #: src/includes/updraftplus-notices.php:101
7602
  msgid "Like UpdraftPlus and can spare one minute?"
@@ -7639,7 +7639,7 @@ msgstr "La cartella di backup (%s) non è scrivibile o non esiste."
7639
 
7640
  #: src/backup.php:1136
7641
  msgid "WordPress backup is complete"
7642
- msgstr "WordPress backup è completo"
7643
 
7644
  #: src/class-updraftplus.php:2998
7645
  msgid "The backup attempt has finished, apparently unsuccessfully"
@@ -7663,7 +7663,7 @@ msgstr "Altri"
7663
 
7664
  #: src/addons/multisite.php:500, src/class-updraftplus.php:1781
7665
  msgid "Uploads"
7666
- msgstr "Uploads"
7667
 
7668
  #: src/class-updraftplus.php:1780
7669
  msgid "Themes"
@@ -7690,4 +7690,4 @@ msgstr "Note di UpdraftPlus:"
7690
  #: src/addons/multisite.php:96, src/addons/multisite.php:736,
7691
  #: src/options.php:74
7692
  msgid "UpdraftPlus Backups"
7693
- msgstr "UpdraftPlus Backups"
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
+ "PO-Revision-Date: 2018-12-15 11:42:50+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
35
 
36
  #: src/templates/wp-admin/settings/form-contents.php:350
37
  msgid "Read more about Easy Updates Manager"
38
+ msgstr "Leggi tutto sull'Easy Updates Manager"
39
 
40
  #: src/templates/wp-admin/settings/temporary-clone.php:68
41
  msgid "You can find out more about clone keys here."
43
 
44
  #: src/templates/wp-admin/settings/temporary-clone.php:57
45
  msgid "Or, use an UpdraftClone key"
46
+ msgstr "O utilizza una chiave UpdraftClone"
47
 
48
  #: src/restorer.php:2493
49
  msgid "Found SET NAMES %s, but changing to %s as suggested by WPDB::determine_charset()."
63
 
64
  #: src/templates/wp-admin/settings/form-contents.php:350
65
  msgid "Ask WordPress to automatically update UpdraftPlus when it finds an available update."
66
+ msgstr "Chiedi a WordPress di aggiornare automaticamente UpdraftPlus quando trova un aggiornamento disponibile."
67
 
68
  #: src/templates/wp-admin/settings/form-contents.php:349
69
  msgid "Automatic updates"
70
+ msgstr "Aggiornamenti automatici"
71
 
72
  #: src/restorer.php:2092, src/restorer.php:2134
73
  msgid "Your database user does not have permission to drop tables"
135
 
136
  #: src/templates/wp-admin/settings/file-backup-exclude.php:11
137
  msgid "Confirm change"
138
+ msgstr "Conferma la modifica"
139
 
140
  #: src/templates/wp-admin/settings/exclude-settings-modal/exclude-panel-submit.php:3,
141
  #: src/templates/wp-admin/settings/file-backup-exclude.php:18
167
  #: src/templates/wp-admin/settings/exclude-modal.php:44,
168
  #: src/templates/wp-admin/settings/exclude-modal.php:46
169
  msgid "All files with this extension"
170
+ msgstr "Tutti i file con questa estensione"
171
 
172
  #: src/templates/wp-admin/settings/exclude-modal.php:9,
173
  #: src/templates/wp-admin/settings/exclude-modal.php:22
174
  msgid "File/directory"
175
+ msgstr "File/directory"
176
 
177
  #: src/templates/wp-admin/settings/exclude-modal.php:6
178
  msgid "Select a way to exclude files or directories from the backup"
180
 
181
  #: src/templates/wp-admin/settings/exclude-modal.php:2
182
  msgid "Exclude files/directories"
183
+ msgstr "Escludi file/directory"
184
 
185
  #: src/includes/updraftclone/temporary-clone-status.php:422
186
  msgid "To read FAQs/documentation about UpdraftClone, go here."
188
 
189
  #: src/includes/updraftclone/temporary-clone-status.php:421
190
  msgid "your UpdraftPlus.com account"
191
+ msgstr "il tuo account UpdraftPlus.com"
192
 
193
  #: src/includes/updraftclone/temporary-clone-status.php:421
194
  msgid "You can check the progress here or in %s"
239
  #: src/includes/updraftclone/temporary-clone-status.php:66,
240
  #: src/includes/updraftclone/temporary-clone-status.php:341
241
  msgid "WordPress installed"
242
+ msgstr "WordPress installato"
243
 
244
  #: src/admin.php:5428
245
  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."
299
 
300
  #: src/admin.php:5424
301
  msgid "Dashboard:"
302
+ msgstr "Bacheca:"
303
 
304
  #: src/admin.php:5423
305
  msgid "Front page:"
386
  #: src/templates/wp-admin/settings/temporary-clone.php:56,
387
  #: src/templates/wp-admin/settings/temporary-clone.php:76
388
  msgid "I accept the UpdraftClone terms and conditions"
389
+ msgstr "Accetto i termini e le condizioni di utilizzo di UpdraftClone"
390
 
391
  #: src/templates/wp-admin/settings/temporary-clone.php:56
392
  msgid "Not got an account? Get one by buying some tokens here."
408
 
409
  #: src/templates/wp-admin/settings/temporary-clone.php:32
410
  msgid "Flexible"
411
+ msgstr "Flessibile"
412
 
413
  #: src/templates/wp-admin/settings/temporary-clone.php:31
414
  msgid "Takes just the time needed to create a backup and send it."
416
 
417
  #: src/templates/wp-admin/settings/temporary-clone.php:31
418
  msgid "Fast"
419
+ msgstr "Veloce"
420
 
421
  #: src/templates/wp-admin/settings/temporary-clone.php:30
422
  msgid "One VPS (Virtual Private Server) per clone, shared with nobody."
424
 
425
  #: src/templates/wp-admin/settings/temporary-clone.php:30
426
  msgid "Secure"
427
+ msgstr "Sicuro"
428
 
429
  #: src/templates/wp-admin/settings/temporary-clone.php:29
430
  msgid "Runs on capacity from a leading cloud computing provider."
432
 
433
  #: src/templates/wp-admin/settings/temporary-clone.php:29
434
  msgid "Reliable"
435
+ msgstr "Affidabile"
436
 
437
  #: src/templates/wp-admin/settings/temporary-clone.php:28
438
  msgid "Press the buttons... UpdraftClone does the work."
440
 
441
  #: src/templates/wp-admin/settings/temporary-clone.php:28
442
  msgid "Easy"
443
+ msgstr "Facile"
444
 
445
  #: src/templates/wp-admin/settings/temporary-clone.php:22
446
  msgid "A temporary clone is an instant copy of this website, running on our servers. Rather than test things on your live site, you can UpdraftClone it, and then throw away your clone when done."
453
 
454
  #: src/templates/wp-admin/settings/tab-addons.php:23
455
  msgid "WooCommerce plugins"
456
+ msgstr "Plugin di WooCommerce"
457
 
458
  #: src/templates/wp-admin/advanced/wipe-settings.php:13
459
  msgid "Reset tour"
511
 
512
  #: src/includes/updraftplus-tour.php:139
513
  msgid "Congratulations, your settings have successfully been saved."
514
+ msgstr "Congratulazioni, le tue impostazioni sono state salvate con successo."
515
 
516
  #: src/includes/updraftplus-tour.php:135
517
  msgid "Press here to save your settings."
518
+ msgstr "Premi qui per salvare le tue impostazioni."
519
 
520
  #: src/includes/updraftplus-tour.php:134, src/includes/updraftplus-tour.php:138
521
  msgid "Save"
522
+ msgstr "Salva"
523
 
524
  #: src/includes/updraftplus-tour.php:131
525
  msgid "Look through the other settings here, making any changes you’d like."
557
 
558
  #: src/includes/updraftplus-tour.php:109, src/includes/updraftplus-tour.php:114
559
  msgid "Go to settings"
560
+ msgstr "Vai alle impostazioni"
561
 
562
  #: src/includes/updraftplus-tour.php:108, src/includes/updraftplus-tour.php:113
563
  msgctxt "Translators: %s is a bold tag."
566
 
567
  #: src/includes/updraftplus-tour.php:108
568
  msgid "Press here to run a manual backup."
569
+ msgstr "Premi qui per effettuare un backup manuale."
570
 
571
  #: src/includes/updraftplus-tour.php:107, src/includes/updraftplus-tour.php:112
572
  msgid "Creating your first backup"
587
 
588
  #: src/includes/updraftplus-tour.php:99
589
  msgid "Your first backup"
590
+ msgstr "Il tuo primo backup"
591
 
592
  #: src/includes/updraftplus-tour.php:95
593
  msgid "Press here to start!"
599
 
600
  #: src/includes/updraftplus-tour.php:92
601
  msgid "Welcome to UpdraftPlus"
602
+ msgstr "Benvenuto in UpdraftPlus"
603
 
604
  #: src/includes/updraftplus-tour.php:91
605
  msgid "UpdraftPlus settings"
606
+ msgstr "Impostazioni UpdraftPlus"
607
 
608
  #: src/includes/updraftplus-tour.php:88
609
  msgid "End tour"
611
 
612
  #: src/includes/updraftplus-tour.php:87
613
  msgid "Skip this step"
614
+ msgstr "Salta questo passaggio"
615
 
616
  #: src/includes/updraftplus-tour.php:86
617
  msgid "Back"
618
+ msgstr "Indietro"
619
 
620
  #: src/includes/class-commands.php:893
621
  msgid "You can buy more temporary clone tokens here."
663
 
664
  #: src/admin.php:2798
665
  msgid "Backup / Restore"
666
+ msgstr "Backup / Ripristino"
667
 
668
  #: src/admin.php:663
669
  msgid "Backup"
670
+ msgstr "Backup"
671
 
672
  #: src/addons/wp-cli.php:408
673
  msgid "Latest full backup found; identifier:"
769
 
770
  #: src/admin.php:5402
771
  msgid "(current version)"
772
+ msgstr "(versione attuale)"
773
 
774
  #: src/admin.php:3738
775
  msgid "press here"
776
+ msgstr "premi qui"
777
 
778
  #: src/addons/onedrive.php:1157, src/methods/dropbox.php:586,
779
  #: src/methods/googledrive.php:1214
780
  msgid "this privacy policy"
781
+ msgstr "questa privacy policy"
782
 
783
  #: src/addons/onedrive.php:1157, src/methods/dropbox.php:586,
784
  #: src/methods/googledrive.php:1214
795
 
796
  #: src/addons/incremental.php:236, src/updraftplus.php:99
797
  msgid "Every hour"
798
+ msgstr "Ogni ora"
799
 
800
  #: src/includes/class-commands.php:900
801
  msgid "Create clone"
930
  #: src/admin.php:929,
931
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:9
932
  msgid "UpdraftCentral Cloud"
933
+ msgstr "UpdraftCentral Cloud"
934
 
935
  #: src/admin.php:489
936
  msgid "Are you sure you want to dismiss all UpdraftPlus news forever?"
990
 
991
  #: src/admin.php:846, src/admin.php:4248
992
  msgid "Upload"
993
+ msgstr "Carica"
994
 
995
  #: src/addons/reporting.php:529, src/admin.php:796
996
  msgid "Only email the database backup"
1026
 
1027
  #: src/templates/wp-admin/settings/tab-addons.php:153
1028
  msgid "WP-CLI support"
1029
+ msgstr "Supporto WP-CLI"
1030
 
1031
  #: src/templates/wp-admin/settings/tab-addons.php:152
1032
  msgid "WP CLI"
1033
+ msgstr "WP CLI"
1034
 
1035
  #: src/addons/wp-cli.php:265
1036
  msgid "Invalid Job Id"
1128
 
1129
  #: src/admin.php:4982
1130
  msgid "authentication error"
1131
+ msgstr "errore di autenticazione"
1132
 
1133
  #: src/addons/multisite.php:44, src/options.php:38
1134
  msgid "(Nothing has been logged yet)"
1156
 
1157
  #: src/addons/morestorage.php:81, src/admin.php:924
1158
  msgid "Currently disabled"
1159
+ msgstr "Attualmente disabilitato"
1160
 
1161
  #: src/addons/morestorage.php:81, src/admin.php:923
1162
  msgid "Currently enabled"
1163
+ msgstr "Attualmente abilitato"
1164
 
1165
  #: src/templates/wp-admin/settings/tab-addons.php:30
1166
  msgid "If you have purchased from UpdraftPlus.Com, then follow this link to the installation instructions (particularly step 1)."
1167
+ msgstr "Se hai acquistato da UpdraftPlus.Com, segui questo link per le istruzioni di installazione (in particolare passaggio 1)."
1168
 
1169
  #: src/templates/wp-admin/settings/tab-addons.php:30
1170
  msgid "You are currently using the free version of UpdraftPlus."
1171
+ msgstr "Stai utilizzando la versione gratuita di UpdraftPlus."
1172
 
1173
  #: src/templates/wp-admin/settings/tab-addons.php:26
1174
  msgid "Get it here"
1188
 
1189
  #: src/includes/updraftplus-notices.php:193
1190
  msgid "No more forgotten passwords. Find out more about our revolutionary new WordPress plugin"
1191
+ msgstr "Mai più password dimenticate. Scopri di più sul nostro nuovo rivoluzionario plugin WordPress"
1192
 
1193
  #: src/templates/wp-admin/settings/existing-backups-table.php:87
1194
  msgid "remote site"
1195
+ msgstr "sito remoto"
1196
 
1197
  #: src/addons/backblaze.php:475
1198
  msgid "Invalid bucket name"
1296
 
1297
  #: src/central/bootstrap.php:602
1298
  msgid "Create another key"
1299
+ msgstr "Cra un'altra chiave"
1300
 
1301
  #: src/central/bootstrap.php:533
1302
  msgid "UpdraftCentral dashboard connection details"
1304
 
1305
  #: src/central/bootstrap.php:527, src/includes/updraftplus-tour.php:85
1306
  msgid "Next"
1307
+ msgstr "Successivo"
1308
 
1309
  #: src/central/bootstrap.php:513
1310
  msgid "an account"
1311
+ msgstr "un account"
1312
 
1313
  #: src/central/bootstrap.php:513
1314
  msgid "i.e. if you have %s there"
1320
 
1321
  #: src/central/bootstrap.php:471
1322
  msgid "Manage existing keys (%d)..."
1323
+ msgstr "Gestisci le chiavi esistenti (%d)..."
1324
 
1325
  #: src/central/bootstrap.php:421
1326
  msgid "There are no UpdraftCentral dashboards that can currently control this site."
1328
 
1329
  #: src/central/bootstrap.php:258
1330
  msgid "You can now control this site via your UpdraftCentral dashboard at %s."
1331
+ msgstr "Ora puoi controllare questo sito attraverso il tuo pannello di controllo di UpdraftCentral da %s."
1332
 
1333
  #: src/central/bootstrap.php:256
1334
  msgid "Detailed instructions for this can be found at %s"
1340
 
1341
  #: src/admin.php:918
1342
  msgid "Please enter a valid URL e.g http://example.com"
1343
+ msgstr "Inserisci un URL valido, ad es. http://example.com"
1344
 
1345
  #: src/addons/backblaze.php:661
1346
  msgid "There are limits upon which path-names are valid. Spaces are not allowed."
1408
 
1409
  #: src/admin.php:897
1410
  msgid "Error: The chosen file is corrupt. Please choose a valid UpdraftPlus export file."
1411
+ msgstr "Errore: il file scelto è corrotto. Scegli un file di esportazione UpdraftPlus valido."
1412
 
1413
  #: src/backup.php:456, src/backup.php:2140, src/class-updraftplus.php:2133,
1414
  #: src/class-updraftplus.php:2198,
1461
 
1462
  #: src/templates/wp-admin/settings/form-contents.php:191
1463
  msgid "Select Files"
1464
+ msgstr "Seleziona i file"
1465
 
1466
  #: src/methods/cloudfiles.php:476
1467
  msgid "Rackspace Storage Region"
1538
 
1539
  #: src/admin.php:912
1540
  msgid "Select a file to view information about it"
1541
+ msgstr "Seleziona un file per visualizzarne le informazioni"
1542
 
1543
  #: src/admin.php:911
1544
  msgid "Browsing zip file"
1590
 
1591
  #: src/admin.php:909
1592
  msgid "HTTP code:"
1593
+ msgstr "Codice HTTP:"
1594
 
1595
  #: src/addons/wp-cli.php:109, src/admin.php:801
1596
  msgid "You have chosen to backup a database, but no tables have been selected"
1614
 
1615
  #: src/templates/wp-admin/advanced/wipe-settings.php:11
1616
  msgid "UpdraftPlus Tour"
1617
+ msgstr "Tour di UpdraftPlus"
1618
 
1619
  #: src/templates/wp-admin/settings/tab-addons.php:232
1620
  msgid "Lock access to UpdraftPlus via a password so you choose which admin users can access backups."
1780
  #: src/addons/morefiles.php:297, src/addons/morefiles.php:317,
1781
  #: src/templates/wp-admin/settings/file-backup-exclude.php:11
1782
  msgid "Edit"
1783
+ msgstr "Modifica"
1784
 
1785
  #: src/addons/morefiles.php:280
1786
  msgid "If using it, select a path from the directory tree below and then press confirm selection."
2266
 
2267
  #: src/methods/ftp.php:412
2268
  msgid "login"
2269
+ msgstr "login"
2270
 
2271
  #: src/addons/reporting.php:527, src/addons/reporting.php:527,
2272
  #: src/addons/reporting.php:529, src/methods/email.php:100
2405
 
2406
  #: src/admin.php:3416
2407
  msgid "stop"
2408
+ msgstr "stop"
2409
 
2410
  #: src/admin.php:905, src/admin.php:3209
2411
  msgid "The backup has finished running"
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 "Ignora"
2488
 
2489
  #: src/admin.php:891
2490
  msgid "Please fill in the required information."
2971
 
2972
  #: src/methods/updraftvault.php:322, src/methods/updraftvault.php:351
2973
  msgid "Read the FAQs here."
2974
+ msgstr "Leggi le FAQ qui."
2975
 
2976
  #: src/addons/s3-enhanced.php:73
2977
  msgid "Check this box to use Amazon's server-side encryption"
3066
 
3067
  #: src/methods/updraftvault.php:360
3068
  msgid "E-mail"
3069
+ msgstr "Email"
3070
 
3071
  #: src/central/bootstrap.php:570, src/methods/updraftvault.php:354,
3072
  #: src/methods/updraftvault.php:368,
3098
 
3099
  #: src/methods/updraftvault.php:315
3100
  msgid "Show the options"
3101
+ msgstr "Mostra le opzioni"
3102
 
3103
  #: src/methods/updraftvault.php:314
3104
  msgid "First time user?"
3126
 
3127
  #: src/methods/updraftvault.php:99
3128
  msgid "Updraft Vault"
3129
+ msgstr "Updraft Vault"
3130
 
3131
  #: src/addons/azure.php:443, src/addons/backblaze.php:528,
3132
  #: src/addons/googlecloud.php:843, src/methods/s3.php:1172
3295
 
3296
  #: src/includes/class-remote-send.php:493
3297
  msgid "The key was successfully added."
3298
+ msgstr "La chiave è stata aggiunta con successo."
3299
 
3300
  #: src/includes/class-remote-send.php:477
3301
  msgid "The entered key does not belong to a remote site (it belongs to this one)."
3606
 
3607
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:33
3608
  msgid "Premium WooCommerce plugins"
3609
+ msgstr "Plugin premium di WooCommerce"
3610
 
3611
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:33
3612
  msgid "Free two-factor security plugin"
3614
 
3615
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:32
3616
  msgid "More quality plugins"
3617
+ msgstr "Altri plugin di qualità"
3618
 
3619
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:13
3620
  msgid "Go to the shop."
3636
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:2,
3637
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:35
3638
  msgid "Dismiss (for %s months)"
3639
+ msgstr "Ignora (per %s mesi)"
3640
 
3641
  #: src/addons/fixtime.php:448
3642
  msgid "(at same time as files backup)"
3669
 
3670
  #: src/templates/wp-admin/settings/tab-addons.php:18
3671
  msgid "Full feature list"
3672
+ msgstr "Lista completa delle funzionalità"
3673
 
3674
  #: src/addons/autobackup.php:1080
3675
  msgid "Backup (where relevant) plugins, themes and the WordPress database with UpdraftPlus before updating"
3719
  #: src/admin.php:3717
3720
  msgctxt "i.e. Non-automatic"
3721
  msgid "Manual"
3722
+ msgstr "Manuale"
3723
 
3724
  #: src/restorer.php:2784
3725
  msgctxt "The user is being told the number of times an error has happened, e.g. An error (27) occurred"
3830
 
3831
  #: src/admin.php:3209, src/admin.php:4278
3832
  msgid "View Log"
3833
+ msgstr "Visualizza il log"
3834
 
3835
  #: src/templates/wp-admin/settings/existing-backups-table.php:18,
3836
  #: src/templates/wp-admin/settings/existing-backups-table.php:97
3867
 
3868
  #: src/class-updraftplus.php:3990
3869
  msgid "Backup label:"
3870
+ msgstr "Etichetta del backup:"
3871
 
3872
  #: src/addons/backblaze.php:205, src/admin.php:2113
3873
  msgid "Error: unexpected file read fail"
3985
 
3986
  #: src/includes/updraftplus-notices.php:132
3987
  msgid "UpdraftPlus is on social media - check us out!"
3988
+ msgstr "UpdraftPlus è sui social media - dai un'occhiata qui!"
3989
 
3990
  #: src/addons/wp-cli.php:907, src/admin.php:4466
3991
  msgid "Why am I seeing this?"
4148
  #: src/templates/wp-admin/settings/tab-backups.php:21,
4149
  #: src/templates/wp-admin/settings/tab-backups.php:44
4150
  msgid "Existing Backups"
4151
+ msgstr "Backup esistenti"
4152
 
4153
  #: src/admin.php:1143
4154
  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."
4258
 
4259
  #: src/templates/wp-admin/settings/form-contents.php:233
4260
  msgid "Backup more databases"
4261
+ msgstr "Backup di più di un database"
4262
 
4263
  #: src/templates/wp-admin/settings/form-contents.php:192
4264
  msgid "First, enter the decryption key"
4910
 
4911
  #: src/methods/cloudfiles-new.php:134
4912
  msgid "Cloud Files Username"
4913
+ msgstr "Nome utente Cloud Files"
4914
 
4915
  #: src/addons/cloudfiles-enhanced.php:47, src/methods/cloudfiles-new.php:166
4916
  msgid "London (LON)"
5098
 
5099
  #: src/methods/dropbox.php:286
5100
  msgid "did not return the expected response - check your log file for more details"
5101
+ msgstr "non ha prodotto la risposta attesa - controllare il file di log per ulteriori dettagli"
5102
 
5103
  #: src/methods/s3.php:312
5104
  msgid "The required %s PHP module is not installed - ask your web hosting company to enable it"
5140
 
5141
  #: src/backup.php:1137
5142
  msgid "Backup contains:"
5143
+ msgstr "Il backup contiene:"
5144
 
5145
  #: src/backup.php:1094
5146
  msgid "Backed up: %s"
5277
 
5278
  #: src/restorer.php:525
5279
  msgid "You should check the file ownerships and permissions in your WordPress installation"
5280
+ msgstr "Dovresti verificare la proprietà e i permessi dei file nell'installazione WordPress"
5281
 
5282
  #: src/templates/wp-admin/settings/form-contents.php:147
5283
  msgid "See also the \"More Files\" add-on from our shop."
5872
 
5873
  #: src/addons/wp-cli.php:784, src/admin.php:4570
5874
  msgid "Final checks"
5875
+ msgstr "Controlli finali"
5876
 
5877
  #: src/templates/wp-admin/settings/form-contents.php:314
5878
  msgid "Check this to delete any superfluous backup files from your server after the backup run finishes (i.e. if you uncheck, then any files despatched remotely will also remain locally, and any files being kept locally will not be subject to the retention limits)."
6505
 
6506
  #: src/methods/dropbox.php:603, src/methods/dropbox.php:605
6507
  msgid "If you backup several sites into the same Dropbox and want to organize with sub-folders, then "
6508
+ msgstr "Se esegui il backup di più siti nello stesso Dropbox e si vuoi organizzarli in sottocartelle, allora"
6509
 
6510
  #: src/methods/dropbox.php:603, src/methods/dropbox.php:605
6511
  msgid "Backups are saved in"
6681
  #: src/addons/cloudfiles-enhanced.php:37, src/methods/cloudfiles-new.php:118,
6682
  #: src/methods/cloudfiles.php:466
6683
  msgid "US (default)"
6684
+ msgstr "USA (predefinito)"
6685
 
6686
  #: src/methods/cloudfiles.php:463
6687
  msgid "US or UK Cloud"
6750
  #: src/addons/googlecloud.php:1019, src/addons/onedrive.php:1177,
6751
  #: src/methods/googledrive.php:1233
6752
  msgid "Client ID"
6753
+ msgstr "ID Client"
6754
 
6755
  #: src/methods/googledrive.php:1207
6756
  msgid "You must add the following as the authorised redirect URI (under \"More Options\") when asked"
6814
 
6815
  #: src/methods/addon-not-yet-present.php:84
6816
  msgid "follow this link to get it"
6817
+ msgstr "fai clic su questo link per averlo."
6818
 
6819
  #: src/methods/addon-not-yet-present.php:84
6820
  msgid "%s support is available as an add-on"
7029
 
7030
  #: src/admin.php:3738
7031
  msgid "Follow this link to attempt to create the directory and set the permissions"
7032
+ msgstr "Fai clic qui per provare a creare la directory e impostare le autorizzazioni"
7033
 
7034
  #: src/admin.php:3730
7035
  msgid "Backup directory specified is writable, which is good."
7154
  #: src/templates/wp-admin/settings/existing-backups-table.php:155,
7155
  #: src/templates/wp-admin/settings/file-backup-exclude.php:11
7156
  msgid "Delete"
7157
+ msgstr "Elimina"
7158
 
7159
  #: src/admin.php:3415
7160
  msgid "show log"
7161
+ msgstr "mostra log"
7162
 
7163
  #: src/templates/wp-admin/advanced/wipe-settings.php:9
7164
  msgid "This will delete all your UpdraftPlus settings - are you sure you want to do this?"
7438
 
7439
  #: src/admin.php:828, src/admin.php:3151
7440
  msgid "Delete Old Directories"
7441
+ msgstr "Elimina directory vecchie"
7442
 
7443
  #: src/admin.php:2638
7444
  msgid "Current limit is:"
7458
 
7459
  #: src/central/bootstrap.php:511
7460
  msgid "UpdraftPlus.Com"
7461
+ msgstr "UpdraftPlus.Com"
7462
 
7463
  #: src/admin.php:5053
7464
  msgid "Your settings have been wiped."
7596
 
7597
  #: src/includes/updraftplus-notices.php:102
7598
  msgid "Please help UpdraftPlus by giving a positive review at wordpress.org."
7599
+ msgstr "Aiuta UpdraftPlus lasciando una recensione positiva su wordpress.org."
7600
 
7601
  #: src/includes/updraftplus-notices.php:101
7602
  msgid "Like UpdraftPlus and can spare one minute?"
7639
 
7640
  #: src/backup.php:1136
7641
  msgid "WordPress backup is complete"
7642
+ msgstr "Il backup di WordPress è completo"
7643
 
7644
  #: src/class-updraftplus.php:2998
7645
  msgid "The backup attempt has finished, apparently unsuccessfully"
7663
 
7664
  #: src/addons/multisite.php:500, src/class-updraftplus.php:1781
7665
  msgid "Uploads"
7666
+ msgstr "Upload"
7667
 
7668
  #: src/class-updraftplus.php:1780
7669
  msgid "Themes"
7690
  #: src/addons/multisite.php:96, src/addons/multisite.php:736,
7691
  #: src/options.php:74
7692
  msgid "UpdraftPlus Backups"
7693
+ msgstr "Backup di UpdraftPlus"
languages/updraftplus-ja.mo CHANGED
Binary file
languages/updraftplus-ja.po CHANGED
@@ -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: 2018-05-28 22:26:27+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -2633,7 +2633,7 @@ msgstr "進行中の復元操作に関する十分な情報が見つかりませ
2633
  #: src/addons/morefiles.php:71, src/admin.php:877
2634
  msgctxt "(verb)"
2635
  msgid "Download"
2636
- msgstr "ダウンロードする"
2637
 
2638
  #: src/admin.php:800
2639
  msgid "You have chosen to backup files, but no file entities have been selected"
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
+ "PO-Revision-Date: 2018-12-15 11:42:30+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
2633
  #: src/addons/morefiles.php:71, src/admin.php:877
2634
  msgctxt "(verb)"
2635
  msgid "Download"
2636
+ msgstr "ダウンロード"
2637
 
2638
  #: src/admin.php:800
2639
  msgid "You have chosen to backup files, but no file entities have been selected"
languages/updraftplus-vi.mo CHANGED
Binary file
languages/updraftplus-vi.po CHANGED
@@ -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: 2014-10-25 14:58:38+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -1456,7 +1456,7 @@ msgstr ""
1456
 
1457
  #: src/templates/wp-admin/settings/form-contents.php:191
1458
  msgid "Select Files"
1459
- msgstr ""
1460
 
1461
  #: src/methods/cloudfiles.php:476
1462
  msgid "Rackspace Storage Region"
@@ -2171,7 +2171,7 @@ msgstr ""
2171
 
2172
  #: src/templates/wp-admin/settings/form-contents.php:114
2173
  msgid "Backup using %s?"
2174
- msgstr ""
2175
 
2176
  #: src/addons/s3-enhanced.php:379
2177
  msgid "Asia Pacific (Mumbai)"
@@ -2187,11 +2187,11 @@ msgstr ""
2187
 
2188
  #: src/central/bootstrap.php:554
2189
  msgid "More information..."
2190
- msgstr ""
2191
 
2192
  #: src/central/bootstrap.php:553
2193
  msgid "Use the alternative method for making a connection with the dashboard."
2194
- msgstr ""
2195
 
2196
  #: src/central/bootstrap.php:458
2197
  msgid "Key size: %d bits"
@@ -2215,15 +2215,15 @@ msgstr ""
2215
 
2216
  #: src/addons/migrator.php:1765, src/central/bootstrap.php:547
2217
  msgid "slower, strongest"
2218
- msgstr ""
2219
 
2220
  #: src/addons/migrator.php:1764, src/central/bootstrap.php:546
2221
  msgid "recommended"
2222
- msgstr ""
2223
 
2224
  #: src/addons/migrator.php:1764, src/central/bootstrap.php:546
2225
  msgid "%s bytes"
2226
- msgstr ""
2227
 
2228
  #: src/addons/migrator.php:1763, src/central/bootstrap.php:545
2229
  msgid "faster (possibility for slow PHP installs)"
@@ -2237,7 +2237,7 @@ msgstr ""
2237
  #: src/addons/migrator.php:1765, src/central/bootstrap.php:544,
2238
  #: src/central/bootstrap.php:545, src/central/bootstrap.php:547
2239
  msgid "%s bits"
2240
- msgstr ""
2241
 
2242
  #: src/addons/migrator.php:1760, src/central/bootstrap.php:542
2243
  msgid "Encryption key size:"
@@ -2261,7 +2261,7 @@ msgstr ""
2261
 
2262
  #: src/methods/ftp.php:412
2263
  msgid "login"
2264
- msgstr ""
2265
 
2266
  #: src/addons/reporting.php:527, src/addons/reporting.php:527,
2267
  #: src/addons/reporting.php:529, src/methods/email.php:100
@@ -2286,7 +2286,7 @@ msgstr ""
2286
 
2287
  #: src/templates/wp-admin/settings/form-contents.php:103
2288
  msgid "(tap on an icon to select or unselect)"
2289
- msgstr ""
2290
 
2291
  #: src/methods/updraftvault.php:333, src/methods/updraftvault.php:339,
2292
  #: src/methods/updraftvault.php:345
@@ -2316,31 +2316,31 @@ msgstr ""
2316
 
2317
  #: src/central/bootstrap.php:536
2318
  msgid "Enter any description"
2319
- msgstr ""
2320
 
2321
  #: src/central/bootstrap.php:535
2322
  msgid "Description"
2323
- msgstr ""
2324
 
2325
  #: src/central/bootstrap.php:463
2326
  msgid "Delete..."
2327
- msgstr ""
2328
 
2329
  #: src/central/bootstrap.php:456
2330
  msgid "Created:"
2331
- msgstr ""
2332
 
2333
  #: src/central/bootstrap.php:453
2334
  msgid "Access this site as user:"
2335
- msgstr ""
2336
 
2337
  #: src/central/bootstrap.php:477
2338
  msgid "Details"
2339
- msgstr ""
2340
 
2341
  #: src/central/bootstrap.php:476
2342
  msgid "Key description"
2343
- msgstr ""
2344
 
2345
  #: src/central/bootstrap.php:349, src/central/bootstrap.php:360
2346
  msgid "A key was created, but the attempt to register it with %s was unsuccessful - please try again later."
@@ -2348,15 +2348,15 @@ msgstr ""
2348
 
2349
  #: src/central/bootstrap.php:219
2350
  msgid "An invalid URL was entered"
2351
- msgstr ""
2352
 
2353
  #: src/central/bootstrap.php:83
2354
  msgid "Close..."
2355
- msgstr ""
2356
 
2357
  #: src/central/bootstrap.php:75
2358
  msgid "This connection appears to already have been made."
2359
- msgstr ""
2360
 
2361
  #: src/central/bootstrap.php:72
2362
  msgid "You must visit this link in the same browser and login session as you created the key in."
@@ -2388,19 +2388,19 @@ msgstr ""
2388
 
2389
  #: src/backup.php:1042, src/class-updraftplus.php:2973
2390
  msgid "The backup was aborted by the user"
2391
- msgstr ""
2392
 
2393
  #: src/admin.php:4929
2394
  msgid "Your settings have been saved."
2395
- msgstr ""
2396
 
2397
  #: src/admin.php:4009
2398
  msgid "Total backup size:"
2399
- msgstr ""
2400
 
2401
  #: src/admin.php:3416
2402
  msgid "stop"
2403
- msgstr ""
2404
 
2405
  #: src/admin.php:905, src/admin.php:3209
2406
  msgid "The backup has finished running"
@@ -2410,15 +2410,15 @@ msgstr ""
2410
  #: src/templates/wp-admin/advanced/wipe-settings.php:5,
2411
  #: src/templates/wp-admin/advanced/wipe-settings.php:9
2412
  msgid "Wipe settings"
2413
- msgstr ""
2414
 
2415
  #: src/templates/wp-admin/advanced/site-info.php:102
2416
  msgid "reset"
2417
- msgstr ""
2418
 
2419
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:14
2420
  msgid "these backup sets"
2421
- msgstr ""
2422
 
2423
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:11
2424
  msgid "this backup set"
@@ -2426,7 +2426,7 @@ msgstr ""
2426
 
2427
  #: src/includes/class-filesystem-functions.php:72
2428
  msgid "calculate"
2429
- msgstr ""
2430
 
2431
  #: src/admin.php:879
2432
  msgid "You should save your changes to ensure that they are used for making your backup."
@@ -2438,15 +2438,15 @@ msgstr ""
2438
 
2439
  #: src/admin.php:871
2440
  msgid "Please enter a valid URL"
2441
- msgstr ""
2442
 
2443
  #: src/admin.php:854
2444
  msgid "Saving..."
2445
- msgstr ""
2446
 
2447
  #: src/admin.php:815
2448
  msgid "Error: the server sent us a response which we did not understand."
2449
- msgstr ""
2450
 
2451
  #: src/admin.php:807
2452
  msgid "Fetching..."
@@ -2479,11 +2479,11 @@ msgstr ""
2479
  #: src/admin.php:2842, src/templates/wp-admin/notices/horizontal-notice.php:16,
2480
  #: src/templates/wp-admin/notices/horizontal-notice.php:18
2481
  msgid "Dismiss"
2482
- msgstr ""
2483
 
2484
  #: src/admin.php:891
2485
  msgid "Please fill in the required information."
2486
- msgstr ""
2487
 
2488
  #: src/addons/multisite.php:619
2489
  msgid "Read more..."
@@ -2548,11 +2548,11 @@ msgstr ""
2548
 
2549
  #: src/restorer.php:211
2550
  msgid "Skipping: this archive was already restored."
2551
- msgstr ""
2552
 
2553
  #: src/templates/wp-admin/settings/form-contents.php:140
2554
  msgid "File Options"
2555
- msgstr ""
2556
 
2557
  #: src/templates/wp-admin/settings/form-contents.php:93
2558
  msgid "Sending Your Backup To Remote Storage"
@@ -2588,7 +2588,7 @@ msgstr ""
2588
 
2589
  #: src/admin.php:4801
2590
  msgid "settings"
2591
- msgstr ""
2592
 
2593
  #: src/admin.php:4801
2594
  msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
@@ -2633,19 +2633,19 @@ msgstr ""
2633
  #: src/addons/morefiles.php:71, src/admin.php:877
2634
  msgctxt "(verb)"
2635
  msgid "Download"
2636
- msgstr ""
2637
 
2638
  #: src/admin.php:800
2639
  msgid "You have chosen to backup files, but no file entities have been selected"
2640
- msgstr ""
2641
 
2642
  #: src/admin.php:695
2643
  msgid "Extensions"
2644
- msgstr ""
2645
 
2646
  #: src/admin.php:687, src/admin.php:2801
2647
  msgid "Advanced Tools"
2648
- msgstr ""
2649
 
2650
  #: src/addons/googlecloud.php:1055
2651
  msgid "Bucket location"
@@ -2788,7 +2788,7 @@ msgstr ""
2788
 
2789
  #: src/templates/wp-admin/advanced/site-info.php:56
2790
  msgid "Not installed"
2791
- msgstr ""
2792
 
2793
  #: src/addons/googlecloud.php:1042, src/addons/s3-enhanced.php:63
2794
  msgid "Storage class"
@@ -2873,15 +2873,15 @@ msgstr ""
2873
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:11,
2874
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:14
2875
  msgid "Are you sure that you wish to remove %s from UpdraftPlus?"
2876
- msgstr ""
2877
 
2878
  #: src/templates/wp-admin/settings/existing-backups-table.php:157
2879
  msgid "Deselect"
2880
- msgstr ""
2881
 
2882
  #: src/templates/wp-admin/settings/existing-backups-table.php:156
2883
  msgid "Select all"
2884
- msgstr ""
2885
 
2886
  #: src/templates/wp-admin/settings/existing-backups-table.php:154
2887
  msgid "Actions upon selected backups"
@@ -2898,7 +2898,7 @@ msgstr ""
2898
 
2899
  #: src/admin.php:890
2900
  msgid "Processing..."
2901
- msgstr ""
2902
 
2903
  #: src/admin.php:888
2904
  msgid "For backups older than"
@@ -2994,19 +2994,19 @@ msgstr ""
2994
 
2995
  #: src/admin.php:860
2996
  msgid "Update quota count"
2997
- msgstr ""
2998
 
2999
  #: src/admin.php:859
3000
  msgid "Counting..."
3001
- msgstr ""
3002
 
3003
  #: src/admin.php:858
3004
  msgid "Disconnecting..."
3005
- msgstr ""
3006
 
3007
  #: src/admin.php:856
3008
  msgid "Connecting..."
3009
- msgstr ""
3010
 
3011
  #: src/methods/updraftvault.php:468, src/methods/updraftvault.php:542
3012
  msgid "Refresh current status"
@@ -3033,7 +3033,7 @@ msgstr ""
3033
  #: src/admin.php:857, src/methods/updraftvault.php:392,
3034
  #: src/methods/updraftvault.php:450
3035
  msgid "Disconnect"
3036
- msgstr ""
3037
 
3038
  #: src/methods/updraftvault.php:389, src/methods/updraftvault.php:442
3039
  msgid "Quota:"
@@ -3220,7 +3220,7 @@ msgstr ""
3220
  #: src/addons/wp-cli.php:371,
3221
  #: src/templates/wp-admin/settings/existing-backups-table.php:101
3222
  msgid "Backup sent to remote site - not available for download."
3223
- msgstr ""
3224
 
3225
  #: src/includes/class-wpadmin-commands.php:137
3226
  msgid "You should make sure that this really is a backup set intended for use on this website, before you restore (rather than a backup set of an unrelated website)."
@@ -3232,16 +3232,16 @@ msgstr ""
3232
 
3233
  #: src/admin.php:873, src/includes/class-remote-send.php:327
3234
  msgid "Testing connection..."
3235
- msgstr ""
3236
 
3237
  #: src/admin.php:870,
3238
  #: src/templates/wp-admin/settings/existing-backups-table.php:161
3239
  msgid "Deleting..."
3240
- msgstr ""
3241
 
3242
  #: src/admin.php:869
3243
  msgid "key name"
3244
- msgstr ""
3245
 
3246
  #: src/admin.php:867
3247
  msgid "Please give this key a name (e.g. indicate the site it is for):"
@@ -3249,7 +3249,7 @@ msgstr ""
3249
 
3250
  #: src/admin.php:864
3251
  msgid "Creating..."
3252
- msgstr ""
3253
 
3254
  #: src/addons/migrator.php:1753
3255
  msgid "Receive a backup from a remote site"
@@ -3274,11 +3274,11 @@ msgstr ""
3274
  #: src/admin.php:874, src/includes/class-remote-send.php:358,
3275
  #: src/includes/class-remote-send.php:520
3276
  msgid "Send"
3277
- msgstr ""
3278
 
3279
  #: src/admin.php:865, src/includes/class-remote-send.php:514
3280
  msgid "Send to site:"
3281
- msgstr ""
3282
 
3283
  #: src/includes/class-remote-send.php:512
3284
  msgid "No receiving sites have yet been added."
@@ -3348,11 +3348,11 @@ msgstr ""
3348
 
3349
  #: src/addons/migrator.php:1745, src/admin.php:862
3350
  msgid "Add site"
3351
- msgstr ""
3352
 
3353
  #: src/admin.php:861
3354
  msgid "Adding..."
3355
- msgstr ""
3356
 
3357
  #: src/udaddons/options.php:298
3358
  msgid "Claim not granted - perhaps you have already used this purchase somewhere else, or your paid period for downloading from updraftplus.com has expired?"
@@ -3380,7 +3380,7 @@ msgstr ""
3380
 
3381
  #: src/admin.php:853, src/admin.php:879, src/admin.php:880
3382
  msgid "You have made changes to your settings, and not saved."
3383
- msgstr ""
3384
 
3385
  #: src/addons/onedrive.php:1188
3386
  msgid "N.B. %s is not case-sensitive."
@@ -3617,21 +3617,21 @@ msgstr ""
3617
 
3618
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:13
3619
  msgid "Compare with the free version"
3620
- msgstr ""
3621
 
3622
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:12,
3623
  #: src/templates/wp-admin/settings/tab-addons.php:46
3624
  msgid "UpdraftPlus Premium"
3625
- msgstr ""
3626
 
3627
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:29
3628
  msgid "Free Newsletter"
3629
- msgstr ""
3630
 
3631
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:2,
3632
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:35
3633
  msgid "Dismiss (for %s months)"
3634
- msgstr ""
3635
 
3636
  #: src/addons/fixtime.php:448
3637
  msgid "(at same time as files backup)"
@@ -3678,11 +3678,11 @@ msgstr ""
3678
  #: src/templates/wp-admin/settings/form-contents.php:190
3679
  msgctxt "Uploader: Drop db.gz.crypt files here to upload them for decryption - or - Select Files"
3680
  msgid "or"
3681
- msgstr ""
3682
 
3683
  #: src/admin.php:847
3684
  msgid "You did not select any components to restore. Please select at least one, and then try again."
3685
- msgstr ""
3686
 
3687
  #: src/addons/sftp.php:470
3688
  msgctxt "Do not translate BEGIN RSA PRIVATE KEY. PCKS1, XML, PEM and PuTTY are also technical acronyms which should not be translated."
@@ -3714,7 +3714,7 @@ msgstr ""
3714
  #: src/admin.php:3717
3715
  msgctxt "i.e. Non-automatic"
3716
  msgid "Manual"
3717
- msgstr ""
3718
 
3719
  #: src/restorer.php:2784
3720
  msgctxt "The user is being told the number of times an error has happened, e.g. An error (27) occurred"
@@ -3740,7 +3740,7 @@ msgstr ""
3740
  #: src/addons/autobackup.php:157, src/addons/autobackup.php:1026,
3741
  #: src/admin.php:852
3742
  msgid "Automatic backup before update"
3743
- msgstr ""
3744
 
3745
  #: src/addons/autobackup.php:122
3746
  msgid "WordPress core (only)"
@@ -3825,17 +3825,17 @@ msgstr ""
3825
 
3826
  #: src/admin.php:3209, src/admin.php:4278
3827
  msgid "View Log"
3828
- msgstr ""
3829
 
3830
  #: src/templates/wp-admin/settings/existing-backups-table.php:18,
3831
  #: src/templates/wp-admin/settings/existing-backups-table.php:97
3832
  msgid "Backup data (click to download)"
3833
- msgstr ""
3834
 
3835
  #: src/templates/wp-admin/settings/existing-backups-table.php:17,
3836
  #: src/templates/wp-admin/settings/existing-backups-table.php:64
3837
  msgid "Backup date"
3838
- msgstr ""
3839
 
3840
  #: src/templates/wp-admin/settings/form-contents.php:42,
3841
  #: src/templates/wp-admin/settings/form-contents.php:75
@@ -3894,7 +3894,7 @@ msgstr "Địa chỉ email của bạn đã nhập không thể tìm thấy trê
3894
 
3895
  #: src/methods/updraftvault.php:715, src/udaddons/updraftplus-addons.php:996
3896
  msgid "Your email address was valid, but your password was not recognised by UpdraftPlus.Com."
3897
- msgstr "địa chỉ email hợp lệ, nhưng mật khẩu không thể tìm thấy trên UpdraftPlus.Com"
3898
 
3899
  #: src/methods/updraftvault.php:656, src/udaddons/updraftplus-addons.php:862
3900
  msgid "You need to supply both an email address and a password"
@@ -3943,15 +3943,15 @@ msgstr "bạn cần kết nối để nhận những bản cập nhật trong t
3943
 
3944
  #: src/class-updraftplus.php:3982
3945
  msgid "Any support requests to do with %s should be raised with your web hosting company."
3946
- msgstr "bất kì yêu cầu hỗ trợ nào để làm với %s cần được đưa lên với công ty lưu trữ web (web hosting )"
3947
 
3948
  #: src/class-updraftplus.php:3982
3949
  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."
3950
- msgstr "bạn chỉ nên thực hiện nếu bạn không thể cập nhật lên nhà cung cấp hiện tại và bạn tự tin (sẵn sàng chấp nhận rủi ro) rằng giao diện/ tiện ích/ v.v.. thích hợp với phiên bản %s trước đó"
3951
 
3952
  #: src/class-updraftplus.php:3982
3953
  msgid "This is significantly newer than the server which you are now restoring onto (version %s)."
3954
- msgstr "đây là một bản mới hơn hẳn so với trên nhà cung cấp, cái mà bạn đang phục hồi đến (phiên bản %s)."
3955
 
3956
  #: src/class-updraftplus.php:3982
3957
  msgid "The site in this backup was running on a webserver with version %s of %s. "
@@ -3970,13 +3970,13 @@ msgstr "Google+"
3970
  #: src/includes/updraftplus-notices.php:133,
3971
  #: src/includes/updraftplus-notices.php:134
3972
  msgid "Facebook"
3973
- msgstr "facebook"
3974
 
3975
  #: src/includes/updraftplus-notices.php:133,
3976
  #: src/includes/updraftplus-notices.php:134,
3977
  #: src/templates/wp-admin/settings/header.php:16
3978
  msgid "Twitter"
3979
- msgstr ""
3980
 
3981
  #: src/includes/updraftplus-notices.php:132
3982
  msgid "UpdraftPlus is on social media - check us out!"
@@ -3998,7 +3998,7 @@ msgstr ""
3998
 
3999
  #: src/admin.php:2050, src/admin.php:2062, src/includes/class-commands.php:833
4000
  msgid "Start backup"
4001
- msgstr ""
4002
 
4003
  #: src/class-updraftplus.php:3953, src/restorer.php:1446
4004
  msgid "You are using the %s webserver, but do not seem to have the %s module loaded."
@@ -4014,7 +4014,7 @@ msgstr ""
4014
 
4015
  #: src/admin.php:2288
4016
  msgid "This file could not be uploaded"
4017
- msgstr ""
4018
 
4019
  #: src/admin.php:2251
4020
  msgid "You will find more information about this in the Settings section."
@@ -4030,7 +4030,7 @@ msgstr ""
4030
 
4031
  #: src/templates/wp-admin/advanced/site-info.php:44
4032
  msgid "Memory limit"
4033
- msgstr ""
4034
 
4035
  #: src/includes/class-filesystem-functions.php:233, src/restorer.php:2006
4036
  msgid "restoration"
@@ -4061,7 +4061,7 @@ msgstr ""
4061
  #: src/admin.php:3718, src/admin.php:3719, src/admin.php:3720,
4062
  #: src/updraftplus.php:100, src/updraftplus.php:101, src/updraftplus.php:102
4063
  msgid "Every %s hours"
4064
- msgstr ""
4065
 
4066
  #: src/addons/migrator.php:903, src/addons/migrator.php:905
4067
  msgid "search and replace"
@@ -4115,11 +4115,11 @@ msgstr ""
4115
 
4116
  #: src/includes/class-backup-history.php:69
4117
  msgid "You have not yet made any backups."
4118
- msgstr ""
4119
 
4120
  #: src/templates/wp-admin/settings/form-contents.php:152
4121
  msgid "Database Options"
4122
- msgstr ""
4123
 
4124
  #: src/templates/wp-admin/advanced/site-info.php:95
4125
  msgid "Plugins for debugging:"
@@ -4127,7 +4127,7 @@ msgstr ""
4127
 
4128
  #: src/templates/wp-admin/advanced/site-info.php:74
4129
  msgid "%s (%s used)"
4130
- msgstr ""
4131
 
4132
  #: src/templates/wp-admin/advanced/site-info.php:74
4133
  msgid "Free disk space in account:"
@@ -4143,7 +4143,7 @@ msgstr ""
4143
  #: src/templates/wp-admin/settings/tab-backups.php:21,
4144
  #: src/templates/wp-admin/settings/tab-backups.php:44
4145
  msgid "Existing Backups"
4146
- msgstr ""
4147
 
4148
  #: src/admin.php:1143
4149
  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."
@@ -4151,11 +4151,11 @@ msgstr ""
4151
 
4152
  #: src/admin.php:1143
4153
  msgid "To make a backup, just press the Backup Now button."
4154
- msgstr ""
4155
 
4156
  #: src/admin.php:1143
4157
  msgid "Welcome to UpdraftPlus!"
4158
- msgstr ""
4159
 
4160
  #: src/addons/moredatabase.php:318
4161
  msgid "If you enter text here, it is used to encrypt database backups (Rijndael). <strong>Do make a separate record of it and do not lose it, or all your backups <em>will</em> be useless.</strong> This is also the key used to decrypt backups from this admin interface (so if you change it, then automatic decryption will not work until you change it back)."
@@ -4227,7 +4227,7 @@ msgstr ""
4227
 
4228
  #: src/class-updraftplus.php:1736
4229
  msgid "External database (%s)"
4230
- msgstr ""
4231
 
4232
  #: src/methods/googledrive.php:1207
4233
  msgid "Follow this link to your Google API Console, and there activate the Drive API and create a Client ID in the API Access section."
@@ -4245,7 +4245,7 @@ msgstr ""
4245
 
4246
  #: src/addons/wp-cli.php:437, src/admin.php:4034
4247
  msgid "External database"
4248
- msgstr ""
4249
 
4250
  #: src/templates/wp-admin/settings/form-contents.php:304
4251
  msgid "This will also cause debugging output from all plugins to be shown upon this screen - please do not be surprised to see these."
@@ -4376,7 +4376,7 @@ msgstr ""
4376
 
4377
  #: src/methods/dropbox.php:611
4378
  msgid "Dropbox"
4379
- msgstr ""
4380
 
4381
  #: src/addons/onedrive.php:1205, src/methods/dropbox.php:611
4382
  msgid "Authenticate with %s"
@@ -4458,7 +4458,7 @@ msgstr ""
4458
 
4459
  #: src/templates/wp-admin/advanced/site-info.php:100
4460
  msgid "Call"
4461
- msgstr ""
4462
 
4463
  #: src/templates/wp-admin/advanced/site-info.php:98,
4464
  #: src/templates/wp-admin/advanced/site-info.php:98
@@ -4504,7 +4504,7 @@ msgstr ""
4504
  #: src/addons/migrator.php:1758, src/addons/sftp.php:467, src/admin.php:868,
4505
  #: src/admin.php:5192, src/templates/wp-admin/settings/temporary-clone.php:63
4506
  msgid "Key"
4507
- msgstr ""
4508
 
4509
  #: src/addons/sftp.php:462
4510
  msgid "Your login may be either password or key-based - you only need to enter one, not both."
@@ -4520,24 +4520,24 @@ msgstr ""
4520
 
4521
  #: src/addons/wp-cli.php:449, src/admin.php:4078
4522
  msgid "Files backup (created by %s)"
4523
- msgstr ""
4524
 
4525
  #: src/addons/wp-cli.php:449, src/admin.php:4078
4526
  msgid "Files and database WordPress backup (created by %s)"
4527
- msgstr ""
4528
 
4529
  #: src/addons/importer.php:276, src/admin.php:4072,
4530
  #: src/includes/class-backup-history.php:435
4531
  msgid "Backup created by: %s."
4532
- msgstr ""
4533
 
4534
  #: src/addons/wp-cli.php:431, src/admin.php:4032
4535
  msgid "Database (created by %s)"
4536
- msgstr ""
4537
 
4538
  #: src/addons/wp-cli.php:429, src/admin.php:4026, src/admin.php:4074
4539
  msgid "unknown source"
4540
- msgstr ""
4541
 
4542
  #: src/templates/wp-admin/advanced/site-info.php:104,
4543
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:56,
@@ -4548,11 +4548,11 @@ msgstr ""
4548
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:51,
4549
  #: src/templates/wp-admin/settings/tab-backups.php:55
4550
  msgid "Upload backup files"
4551
- msgstr ""
4552
 
4553
  #: src/admin.php:2303
4554
  msgid "This backup was created by %s, and can be imported."
4555
- msgstr ""
4556
 
4557
  #: src/admin.php:1172
4558
  msgid "Read this page for a guide to possible causes and how to fix it."
@@ -4564,16 +4564,16 @@ msgstr ""
4564
 
4565
  #: src/admin.php:831, src/includes/class-backup-history.php:442
4566
  msgid "If this is a backup created by a different backup plugin, then UpdraftPlus Premium may be able to help you."
4567
- msgstr ""
4568
 
4569
  #: src/admin.php:830
4570
  msgid "However, UpdraftPlus archives are standard zip/SQL files - so if you are sure that your file has the right format, then you can rename it to match that pattern."
4571
- msgstr ""
4572
 
4573
  #: src/admin.php:830, src/admin.php:831,
4574
  #: src/includes/class-backup-history.php:442
4575
  msgid "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))."
4576
- msgstr ""
4577
 
4578
  #: src/admin.php:4075, src/includes/class-wpadmin-commands.php:162,
4579
  #: src/restorer.php:1975
@@ -4961,11 +4961,11 @@ msgstr ""
4961
 
4962
  #: src/admin.php:845, src/central/bootstrap.php:565
4963
  msgid "Create"
4964
- msgstr ""
4965
 
4966
  #: src/admin.php:806
4967
  msgid "Trying..."
4968
- msgstr ""
4969
 
4970
  #: src/admin.php:805
4971
  msgid "The new user's RackSpace console password is (this will not be shown again):"
@@ -4973,7 +4973,7 @@ msgstr ""
4973
 
4974
  #: src/addons/wp-cli.php:797, src/admin.php:816, src/admin.php:4586
4975
  msgid "Error data:"
4976
- msgstr ""
4977
 
4978
  #: src/admin.php:4489
4979
  msgid "Backup does not exist in the backup history"
@@ -5025,7 +5025,7 @@ msgstr ""
5025
 
5026
  #: src/class-updraftplus.php:1680, src/class-updraftplus.php:1682
5027
  msgid "files: %s"
5028
- msgstr ""
5029
 
5030
  #: src/addons/reporting.php:392
5031
  msgid "Use the \"Reporting\" section to configure the email addresses to be used."
@@ -5037,7 +5037,7 @@ msgstr ""
5037
 
5038
  #: src/addons/reporting.php:223, src/admin.php:3992
5039
  msgid "Uploaded to:"
5040
- msgstr ""
5041
 
5042
  #: src/addons/reporting.php:222
5043
  msgid "Time taken:"
@@ -5111,7 +5111,7 @@ msgstr ""
5111
  #: src/methods/updraftvault.php:362,
5112
  #: src/templates/wp-admin/settings/temporary-clone.php:82
5113
  msgid "Connect"
5114
- msgstr ""
5115
 
5116
  #: src/templates/wp-admin/settings/form-contents.php:262
5117
  msgid "For more reporting features, use the Reporting add-on."
@@ -5139,11 +5139,11 @@ msgstr ""
5139
 
5140
  #: src/backup.php:1094
5141
  msgid "Backed up: %s"
5142
- msgstr ""
5143
 
5144
  #: src/addons/reporting.php:265, src/backup.php:1088
5145
  msgid "The log file has been attached to this email."
5146
- msgstr ""
5147
 
5148
  #: src/backup.php:1052
5149
  msgid "Unknown/unexpected error - please raise a support request"
@@ -5256,7 +5256,7 @@ msgstr ""
5256
  #: src/templates/wp-admin/settings/tab-addons.php:191,
5257
  #: src/templates/wp-admin/settings/tab-addons.php:192
5258
  msgid "Reporting"
5259
- msgstr ""
5260
 
5261
  #: src/admin.php:5189
5262
  msgid "Options (raw)"
@@ -5264,7 +5264,7 @@ msgstr ""
5264
 
5265
  #: src/addons/reporting.php:525, src/admin.php:792
5266
  msgid "Send a report only when there are warnings/errors"
5267
- msgstr ""
5268
 
5269
  #: src/restorer.php:2203
5270
  msgid "Content URL:"
@@ -5419,7 +5419,7 @@ msgstr ""
5419
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:78,
5420
  #: src/templates/wp-admin/settings/tab-backups.php:80
5421
  msgid "Drop backup files here"
5422
- msgstr ""
5423
 
5424
  #: src/admin.php:804
5425
  msgid "The web server returned an error code (try again, or check your web server logs)"
@@ -5464,7 +5464,7 @@ msgstr ""
5464
 
5465
  #: src/admin.php:3283
5466
  msgid "(%s%%, file %s of %s)"
5467
- msgstr ""
5468
 
5469
  #: src/addons/autobackup.php:304, src/addons/autobackup.php:1090,
5470
  #: src/addons/lockadmin.php:160
@@ -5505,7 +5505,7 @@ msgstr ""
5505
 
5506
  #: src/admin.php:4140, src/admin.php:4142
5507
  msgid "(Not finished)"
5508
- msgstr ""
5509
 
5510
  #: src/admin.php:4142
5511
  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."
@@ -5539,11 +5539,11 @@ msgstr ""
5539
 
5540
  #: src/admin.php:3297
5541
  msgid "Backup finished"
5542
- msgstr ""
5543
 
5544
  #: src/admin.php:3292
5545
  msgid "Waiting until scheduled time to retry because of errors"
5546
- msgstr ""
5547
 
5548
  #: src/admin.php:3288
5549
  msgid "Pruning old backup sets"
@@ -5551,19 +5551,19 @@ msgstr ""
5551
 
5552
  #: src/admin.php:3275
5553
  msgid "Uploading files to remote storage"
5554
- msgstr ""
5555
 
5556
  #: src/admin.php:3344
5557
  msgid "Encrypted database"
5558
- msgstr ""
5559
 
5560
  #: src/admin.php:3336
5561
  msgid "Encrypting database"
5562
- msgstr ""
5563
 
5564
  #: src/admin.php:3310
5565
  msgid "Created database backup"
5566
- msgstr ""
5567
 
5568
  #: src/admin.php:3323
5569
  msgid "table: %s"
@@ -5571,19 +5571,19 @@ msgstr ""
5571
 
5572
  #: src/admin.php:3321
5573
  msgid "Creating database backup"
5574
- msgstr ""
5575
 
5576
  #: src/admin.php:3266
5577
  msgid "Created file backup zips"
5578
- msgstr ""
5579
 
5580
  #: src/admin.php:3253
5581
  msgid "Creating file backup zips"
5582
- msgstr ""
5583
 
5584
  #: src/admin.php:3248
5585
  msgid "Backup begun"
5586
- msgstr ""
5587
 
5588
  #: src/admin.php:1151
5589
  msgid "The scheduler is disabled in your WordPress install, via the DISABLE_WP_CRON setting. No backups can run (even &quot;Backup Now&quot;) unless either you have set up a facility to call the scheduler manually, or until it is enabled."
@@ -5620,7 +5620,7 @@ msgstr ""
5620
 
5621
  #: src/addons/autobackup.php:1104, src/admin.php:848
5622
  msgid "Proceed with update"
5623
- msgstr ""
5624
 
5625
  #: src/addons/autobackup.php:1097
5626
  msgid "Do not abort after pressing Proceed below - wait for the backup to complete."
@@ -5692,7 +5692,7 @@ msgstr ""
5692
  #: src/templates/wp-admin/settings/tab-addons.php:21,
5693
  #: src/templates/wp-admin/settings/tab-addons.php:87
5694
  msgid "Support"
5695
- msgstr ""
5696
 
5697
  #: src/class-updraftplus.php:4237
5698
  msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
@@ -5717,7 +5717,7 @@ msgstr ""
5717
  #: src/addons/autobackup.php:1072, src/admin.php:976,
5718
  #: src/includes/updraftplus-notices.php:171
5719
  msgid "Be safe with an automatic backup"
5720
- msgstr ""
5721
 
5722
  #: src/admin.php:2591
5723
  msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
@@ -5725,15 +5725,15 @@ msgstr ""
5725
 
5726
  #: src/admin.php:840
5727
  msgid "The file was uploaded."
5728
- msgstr ""
5729
 
5730
  #: src/admin.php:839
5731
  msgid "Unknown server response status:"
5732
- msgstr ""
5733
 
5734
  #: src/admin.php:838
5735
  msgid "Unknown server response:"
5736
- msgstr ""
5737
 
5738
  #: src/admin.php:837
5739
  msgid "This decryption key will be attempted:"
@@ -5741,31 +5741,31 @@ msgstr ""
5741
 
5742
  #: src/admin.php:836
5743
  msgid "Follow this link to attempt decryption and download the database file to your computer."
5744
- msgstr ""
5745
 
5746
  #: src/admin.php:835
5747
  msgid "Upload error"
5748
- msgstr ""
5749
 
5750
  #: src/admin.php:834
5751
  msgid "This file does not appear to be an UpdraftPlus encrypted database archive (such files are .gz.crypt files which have a name like: backup_(time)_(site name)_(code)_db.crypt.gz)."
5752
- msgstr ""
5753
 
5754
  #: src/admin.php:833
5755
  msgid "Upload error:"
5756
- msgstr ""
5757
 
5758
  #: src/admin.php:832
5759
  msgid "(make sure that you were trying to upload a zip file previously created by UpdraftPlus)"
5760
- msgstr ""
5761
 
5762
  #: src/admin.php:823
5763
  msgid "Download to your computer"
5764
- msgstr ""
5765
 
5766
  #: src/admin.php:822
5767
  msgid "Delete from your web server"
5768
- msgstr ""
5769
 
5770
  #: src/admin.php:4112
5771
  msgid "You appear to be missing one or more archives from this multi-archive set."
@@ -5785,11 +5785,11 @@ msgstr ""
5785
 
5786
  #: src/admin.php:813
5787
  msgid "Warnings:"
5788
- msgstr ""
5789
 
5790
  #: src/admin.php:812
5791
  msgid "Error: the server sent an empty response."
5792
- msgstr ""
5793
 
5794
  #: src/admin.php:2317
5795
  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?"
@@ -5797,15 +5797,15 @@ msgstr ""
5797
 
5798
  #: src/includes/class-wpadmin-commands.php:238
5799
  msgid "The backup archive files have been processed, but with some errors. You will need to cancel and correct any problems before retrying."
5800
- msgstr ""
5801
 
5802
  #: src/includes/class-wpadmin-commands.php:236
5803
  msgid "The backup archive files have been processed, but with some warnings. If all is well, then now press Restore again to proceed. Otherwise, cancel and correct any problems first."
5804
- msgstr ""
5805
 
5806
  #: src/includes/class-wpadmin-commands.php:234
5807
  msgid "The backup archive files have been successfully processed. Now press Restore again to proceed."
5808
- msgstr ""
5809
 
5810
  #: src/includes/class-wpadmin-commands.php:208
5811
  msgid "This multi-archive backup set appears to have the following archives missing: %s"
@@ -5813,15 +5813,15 @@ msgstr ""
5813
 
5814
  #: src/includes/class-wpadmin-commands.php:193
5815
  msgid "File (%s) was found, but has a different size (%s) from what was expected (%s) - it may be corrupt."
5816
- msgstr ""
5817
 
5818
  #: src/includes/class-wpadmin-commands.php:188
5819
  msgid "File was found, but is zero-sized (you need to re-upload it): %s"
5820
- msgstr ""
5821
 
5822
  #: src/includes/class-wpadmin-commands.php:186
5823
  msgid "File not found (you need to upload it): %s"
5824
- msgstr ""
5825
 
5826
  #: src/addons/wp-cli.php:611, src/addons/wp-cli.php:612,
5827
  #: src/includes/class-wpadmin-commands.php:114
@@ -5883,7 +5883,7 @@ msgstr ""
5883
 
5884
  #: src/admin.php:829
5885
  msgid "Raw backup history"
5886
- msgstr ""
5887
 
5888
  #: src/templates/wp-admin/advanced/site-info.php:104
5889
  msgid "Show raw backup and file list"
@@ -5891,7 +5891,7 @@ msgstr ""
5891
 
5892
  #: src/admin.php:811
5893
  msgid "Processing files - please wait..."
5894
- msgstr ""
5895
 
5896
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:27,
5897
  #: src/templates/wp-admin/settings/tab-backups.php:27
@@ -5924,11 +5924,11 @@ msgstr ""
5924
  #: src/class-updraftplus.php:4097, src/class-updraftplus.php:4097,
5925
  #: src/updraftplus.php:157
5926
  msgid "Go here for more information."
5927
- msgstr ""
5928
 
5929
  #: src/admin.php:810
5930
  msgid "Some files are still downloading or being processed - please wait."
5931
- msgstr ""
5932
 
5933
  #: src/class-updraftplus.php:3945, src/class-updraftplus.php:3965
5934
  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."
@@ -6004,7 +6004,7 @@ msgstr ""
6004
  #: src/class-updraftplus.php:4076, src/methods/googledrive.php:403,
6005
  #: src/methods/s3.php:341
6006
  msgid "Error: %s"
6007
- msgstr ""
6008
 
6009
  #: src/admin.php:3736
6010
  msgid "Backup directory specified exists, but is <b>not</b> writable."
@@ -6036,7 +6036,7 @@ msgstr ""
6036
 
6037
  #: src/backup.php:1079
6038
  msgid "Warnings encountered:"
6039
- msgstr ""
6040
 
6041
  #: src/class-updraftplus.php:2986
6042
  msgid "The backup apparently succeeded (with warnings) and is now complete"
@@ -6104,7 +6104,7 @@ msgstr ""
6104
 
6105
  #: src/admin.php:2591, src/class-updraftplus.php:4009, src/restorer.php:2647
6106
  msgid "Warning:"
6107
- msgstr ""
6108
 
6109
  #: src/class-updraftplus.php:3998, src/class-updraftplus.php:4001,
6110
  #: src/restorer.php:530
@@ -6122,7 +6122,7 @@ msgstr ""
6122
 
6123
  #: src/admin.php:849, src/includes/updraftplus-tour.php:89
6124
  msgid "Close"
6125
- msgstr ""
6126
 
6127
  #: src/addons/autobackup.php:349, src/addons/autobackup.php:441,
6128
  #: src/admin.php:803, src/methods/remotesend.php:69,
@@ -6137,7 +6137,7 @@ msgstr ""
6137
 
6138
  #: src/admin.php:827
6139
  msgid "PHP information"
6140
- msgstr ""
6141
 
6142
  #: src/templates/wp-admin/advanced/site-info.php:70
6143
  msgid "zip executable found:"
@@ -6145,7 +6145,7 @@ msgstr ""
6145
 
6146
  #: src/templates/wp-admin/advanced/site-info.php:45
6147
  msgid "show PHP information (phpinfo)"
6148
- msgstr ""
6149
 
6150
  #: src/templates/wp-admin/settings/migrator-no-migrator.php:9
6151
  msgid "Do you want to migrate or clone/duplicate a site?"
@@ -6189,7 +6189,7 @@ msgstr ""
6189
 
6190
  #: src/admin.php:1695, src/includes/class-wpadmin-commands.php:506
6191
  msgid "Backup set not found"
6192
- msgstr ""
6193
 
6194
  #: src/backup.php:189
6195
  msgid "%s - could not back this entity up; the corresponding directory does not exist (%s)"
@@ -6224,11 +6224,11 @@ msgstr ""
6224
 
6225
  #: src/admin.php:1167
6226
  msgid "Notice"
6227
- msgstr ""
6228
 
6229
  #: src/backup.php:1061
6230
  msgid "Errors encountered:"
6231
- msgstr ""
6232
 
6233
  #: src/admin.php:795
6234
  msgid "Rescanning (looking for backups that you have uploaded manually into the internal backup store)..."
@@ -6236,7 +6236,7 @@ msgstr ""
6236
 
6237
  #: src/admin.php:809
6238
  msgid "Begun looking for this entity"
6239
- msgstr ""
6240
 
6241
  #: src/methods/s3.php:482
6242
  msgid "%s Error: Failed to access bucket %s. Check your permissions and credentials.1"
@@ -6260,7 +6260,7 @@ msgstr ""
6260
 
6261
  #: src/addons/migrator.php:1302, src/admin.php:814
6262
  msgid "Errors:"
6263
- msgstr ""
6264
 
6265
  #: src/addons/migrator.php:1301
6266
  msgid "SQL update commands run:"
@@ -6616,7 +6616,7 @@ msgstr ""
6616
 
6617
  #: src/methods/email.php:92
6618
  msgid "Note:"
6619
- msgstr ""
6620
 
6621
  #: src/methods/email.php:45
6622
  msgid "WordPress Backup"
@@ -6638,7 +6638,7 @@ msgstr ""
6638
  #: src/addons/webdav.php:187, src/methods/cloudfiles-new.php:189,
6639
  #: src/methods/cloudfiles.php:524, src/methods/openstack2.php:158
6640
  msgid "Username"
6641
- msgstr ""
6642
 
6643
  #: src/methods/cloudfiles-new.php:184, src/methods/cloudfiles.php:519,
6644
  #: src/methods/s3.php:1089
@@ -6657,7 +6657,7 @@ msgstr ""
6657
  #: src/methods/openstack2.php:190, src/methods/openstack2.php:195,
6658
  #: src/methods/s3.php:1089, src/methods/s3.php:1093
6659
  msgid "Failure: No %s was given."
6660
- msgstr ""
6661
 
6662
  #: src/methods/cloudfiles-new.php:100, src/methods/cloudfiles.php:440,
6663
  #: src/methods/openstack-base.php:571, src/methods/s3.php:863
@@ -6929,7 +6929,7 @@ msgstr ""
6929
 
6930
  #: src/restorer.php:396
6931
  msgid "Error message"
6932
- msgstr ""
6933
 
6934
  #: src/restorer.php:231
6935
  msgid "The backup records do not contain information about the proper size of this file."
@@ -6961,7 +6961,7 @@ msgstr ""
6961
 
6962
  #: src/admin.php:4268
6963
  msgid "Delete this backup set"
6964
- msgstr ""
6965
 
6966
  #: src/admin.php:3921
6967
  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."
@@ -6982,7 +6982,7 @@ msgstr ""
6982
 
6983
  #: src/templates/wp-admin/settings/form-contents.php:373
6984
  msgid "Save Changes"
6985
- msgstr ""
6986
 
6987
  #: src/templates/wp-admin/settings/form-contents.php:345
6988
  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."
@@ -7050,7 +7050,7 @@ msgstr ""
7050
 
7051
  #: src/templates/wp-admin/settings/form-contents.php:303
7052
  msgid "Debug mode"
7053
- msgstr ""
7054
 
7055
  #: src/templates/wp-admin/settings/form-contents.php:288
7056
  msgid "Advanced / Debugging Settings"
@@ -7062,12 +7062,12 @@ msgstr ""
7062
 
7063
  #: src/addons/morefiles.php:311, src/admin.php:843
7064
  msgid "Cancel"
7065
- msgstr ""
7066
 
7067
  #: src/addons/incremental.php:235, src/addons/reporting.php:245,
7068
  #: src/admin.php:4004
7069
  msgid "None"
7070
- msgstr ""
7071
 
7072
  #: src/templates/wp-admin/settings/form-contents.php:103
7073
  msgid "Choose your remote storage"
@@ -7084,7 +7084,7 @@ msgstr ""
7084
  #: src/admin.php:2935, src/templates/wp-admin/settings/form-contents.php:255,
7085
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:44
7086
  msgid "Email"
7087
- msgstr ""
7088
 
7089
  #: src/templates/wp-admin/settings/form-contents.php:147
7090
  msgid "The above directories are everything, except for WordPress core itself which you can download afresh from WordPress.org."
@@ -7112,23 +7112,23 @@ msgstr ""
7112
 
7113
  #: src/addons/incremental.php:244, src/admin.php:3724
7114
  msgid "Monthly"
7115
- msgstr ""
7116
 
7117
  #: src/addons/incremental.php:243, src/admin.php:3723
7118
  msgid "Fortnightly"
7119
- msgstr ""
7120
 
7121
  #: src/addons/incremental.php:242, src/admin.php:3722
7122
  msgid "Weekly"
7123
- msgstr ""
7124
 
7125
  #: src/addons/incremental.php:241, src/admin.php:3721
7126
  msgid "Daily"
7127
- msgstr ""
7128
 
7129
  #: src/admin.php:851, src/admin.php:3699
7130
  msgid "Download log file"
7131
- msgstr ""
7132
 
7133
  #: src/admin.php:3571
7134
  msgid "The folder exists, but your webserver does not have permission to write to it."
@@ -7147,7 +7147,7 @@ msgstr ""
7147
  #: src/templates/wp-admin/settings/existing-backups-table.php:155,
7148
  #: src/templates/wp-admin/settings/file-backup-exclude.php:11
7149
  msgid "Delete"
7150
- msgstr ""
7151
 
7152
  #: src/admin.php:3415
7153
  msgid "show log"
@@ -7155,11 +7155,11 @@ msgstr ""
7155
 
7156
  #: src/templates/wp-admin/advanced/wipe-settings.php:9
7157
  msgid "This will delete all your UpdraftPlus settings - are you sure you want to do this?"
7158
- msgstr ""
7159
 
7160
  #: src/templates/wp-admin/advanced/total-size.php:19
7161
  msgid "count"
7162
- msgstr ""
7163
 
7164
  #: src/templates/wp-admin/advanced/total-size.php:9
7165
  msgid "N.B. This count is based upon what was, or was not, excluded the last time you saved the options."
@@ -7167,7 +7167,7 @@ msgstr ""
7167
 
7168
  #: src/templates/wp-admin/advanced/total-size.php:6
7169
  msgid "Total (uncompressed) on-disk data:"
7170
- msgstr ""
7171
 
7172
  #: src/templates/wp-admin/advanced/site-info.php:66,
7173
  #: src/templates/wp-admin/settings/tab-addons.php:79,
@@ -7185,7 +7185,7 @@ msgstr ""
7185
  #: src/templates/wp-admin/settings/tab-addons.php:235,
7186
  #: src/templates/wp-admin/settings/tab-addons.php:252
7187
  msgid "No"
7188
- msgstr ""
7189
 
7190
  #: src/templates/wp-admin/advanced/site-info.php:63,
7191
  #: src/templates/wp-admin/advanced/site-info.php:66,
@@ -7208,7 +7208,7 @@ msgstr ""
7208
  #: src/templates/wp-admin/settings/tab-addons.php:255,
7209
  #: src/templates/wp-admin/settings/tab-addons.php:261
7210
  msgid "Yes"
7211
- msgstr ""
7212
 
7213
  #: src/admin.php:5366, src/admin.php:5370,
7214
  #: src/templates/wp-admin/advanced/site-info.php:45,
@@ -7216,7 +7216,7 @@ msgstr ""
7216
  #: src/templates/wp-admin/advanced/site-info.php:58,
7217
  #: src/templates/wp-admin/advanced/site-info.php:59
7218
  msgid "%s version:"
7219
- msgstr ""
7220
 
7221
  #: src/templates/wp-admin/advanced/site-info.php:43
7222
  msgid "Current memory usage"
@@ -7228,7 +7228,7 @@ msgstr ""
7228
 
7229
  #: src/templates/wp-admin/advanced/site-info.php:31
7230
  msgid "Web server:"
7231
- msgstr ""
7232
 
7233
  #: src/templates/wp-admin/settings/take-backup.php:91
7234
  msgid "Please check out UpdraftPlus Premium, or the stand-alone Multisite add-on."
@@ -7240,7 +7240,7 @@ msgstr ""
7240
 
7241
  #: src/templates/wp-admin/settings/take-backup.php:87
7242
  msgid "Multisite"
7243
- msgstr ""
7244
 
7245
  #: src/templates/wp-admin/settings/take-backup.php:82
7246
  msgid "Perform a one-time backup"
@@ -7257,11 +7257,11 @@ msgstr ""
7257
  #: src/addons/morefiles.php:137,
7258
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:75
7259
  msgid "%s restoration options:"
7260
- msgstr ""
7261
 
7262
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:68
7263
  msgid "You will need to restore it manually."
7264
- msgstr ""
7265
 
7266
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:68
7267
  msgid "The following entity cannot be restored automatically: \"%s\"."
@@ -7273,7 +7273,7 @@ msgstr ""
7273
 
7274
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:42
7275
  msgid "Choose the components to restore"
7276
- msgstr ""
7277
 
7278
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:42
7279
  msgid "Restoring will replace this site's themes, plugins, uploads, database and/or other content directories (according to what is contained in the backup set, and your selection)."
@@ -7281,11 +7281,11 @@ msgstr ""
7281
 
7282
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:30
7283
  msgid "Restore backup from"
7284
- msgstr ""
7285
 
7286
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:29
7287
  msgid "Restore backup"
7288
- msgstr ""
7289
 
7290
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:8
7291
  msgid "Delete backup set"
@@ -7293,7 +7293,7 @@ msgstr ""
7293
 
7294
  #: src/admin.php:825
7295
  msgid "Download error: the server sent us a response which we did not understand."
7296
- msgstr ""
7297
 
7298
  #: src/addons/backblaze.php:225, src/addons/cloudfiles-enhanced.php:117,
7299
  #: src/addons/migrator.php:890, src/addons/migrator.php:1187,
@@ -7313,21 +7313,21 @@ msgstr ""
7313
  #: src/methods/updraftvault.php:527, src/restorer.php:228,
7314
  #: src/restorer.php:256, src/restorer.php:1921
7315
  msgid "Error:"
7316
- msgstr ""
7317
 
7318
  #: src/admin.php:808
7319
  msgid "calculating..."
7320
- msgstr ""
7321
 
7322
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:68,
7323
  #: src/templates/wp-admin/settings/tab-backups.php:70
7324
  msgid "UpdraftPlus - Upload backup files"
7325
- msgstr ""
7326
 
7327
  #: src/includes/class-filesystem-functions.php:65,
7328
  #: src/templates/wp-admin/advanced/site-info.php:38
7329
  msgid "refresh"
7330
- msgstr ""
7331
 
7332
  #: src/includes/class-filesystem-functions.php:86,
7333
  #: src/templates/wp-admin/advanced/site-info.php:38
@@ -7358,16 +7358,16 @@ msgstr ""
7358
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:59,
7359
  #: src/templates/wp-admin/settings/tab-backups.php:63
7360
  msgid "Opera web browser"
7361
- msgstr ""
7362
 
7363
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:47,
7364
  #: src/templates/wp-admin/settings/tab-backups.php:51
7365
  msgid "More tasks:"
7366
- msgstr ""
7367
 
7368
  #: src/admin.php:3114
7369
  msgid "Download most recently modified log file"
7370
- msgstr ""
7371
 
7372
  #: src/central/bootstrap.php:187
7373
  msgid "(Nothing yet logged)"
@@ -7377,16 +7377,16 @@ msgstr ""
7377
  #: src/admin.php:3070, src/admin.php:3076,
7378
  #: src/templates/wp-admin/settings/take-backup.php:64
7379
  msgid "Last log message"
7380
- msgstr ""
7381
 
7382
  #: src/addons/migrator.php:271, src/admin.php:663, src/admin.php:850,
7383
  #: src/admin.php:4170
7384
  msgid "Restore"
7385
- msgstr ""
7386
 
7387
  #: src/admin.php:842, src/templates/wp-admin/settings/take-backup.php:50
7388
  msgid "Backup Now"
7389
- msgstr ""
7390
 
7391
  #: src/templates/wp-admin/settings/take-backup.php:45
7392
  msgid "Time now"
@@ -7401,7 +7401,7 @@ msgstr ""
7401
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:75,
7402
  #: src/templates/wp-admin/settings/take-backup.php:33
7403
  msgid "Database"
7404
- msgstr ""
7405
 
7406
  #: src/admin.php:334, src/admin.php:5161,
7407
  #: src/templates/wp-admin/settings/take-backup.php:23
@@ -7427,11 +7427,11 @@ msgstr ""
7427
 
7428
  #: src/templates/wp-admin/settings/take-backup.php:5
7429
  msgid "JavaScript warning"
7430
- msgstr ""
7431
 
7432
  #: src/admin.php:828, src/admin.php:3151
7433
  msgid "Delete Old Directories"
7434
- msgstr ""
7435
 
7436
  #: src/admin.php:2638
7437
  msgid "Current limit is:"
@@ -7439,11 +7439,11 @@ msgstr ""
7439
 
7440
  #: src/admin.php:2613
7441
  msgid "Your backup has been restored."
7442
- msgstr ""
7443
 
7444
  #: src/templates/wp-admin/settings/header.php:26
7445
  msgid "Version"
7446
- msgstr ""
7447
 
7448
  #: src/templates/wp-admin/settings/header.php:25
7449
  msgid "Lead developer's homepage"
@@ -7455,7 +7455,7 @@ msgstr ""
7455
 
7456
  #: src/admin.php:5053
7457
  msgid "Your settings have been wiped."
7458
- msgstr ""
7459
 
7460
  #: src/admin.php:2573
7461
  msgid "Backup directory successfully created."
@@ -7481,14 +7481,14 @@ msgstr ""
7481
  #: src/admin.php:2514, src/admin.php:2524, src/admin.php:2533,
7482
  #: src/admin.php:2575, src/admin.php:3433
7483
  msgid "Return to UpdraftPlus Configuration"
7484
- msgstr ""
7485
 
7486
  #: src/admin.php:821, src/admin.php:2514, src/admin.php:2524,
7487
  #: src/admin.php:2533, src/admin.php:2575, src/admin.php:3433,
7488
  #: src/templates/wp-admin/settings/existing-backups-table.php:19,
7489
  #: src/templates/wp-admin/settings/existing-backups-table.php:139
7490
  msgid "Actions"
7491
- msgstr ""
7492
 
7493
  #: src/admin.php:2409
7494
  msgid "Bad filename format - this does not look like an encrypted database file created by UpdraftPlus"
@@ -7496,7 +7496,7 @@ msgstr ""
7496
 
7497
  #: src/admin.php:2309
7498
  msgid "Bad filename format - this does not look like a file created by UpdraftPlus"
7499
- msgstr ""
7500
 
7501
  #: src/admin.php:2205
7502
  msgid "No local copy present."
@@ -7504,15 +7504,15 @@ msgstr ""
7504
 
7505
  #: src/admin.php:2202
7506
  msgid "Download in progress"
7507
- msgstr ""
7508
 
7509
  #: src/admin.php:820, src/admin.php:2191
7510
  msgid "File ready."
7511
- msgstr ""
7512
 
7513
  #: src/admin.php:2172
7514
  msgid "Download failed"
7515
- msgstr ""
7516
 
7517
  #: src/addons/wp-cli.php:518, src/admin.php:818,
7518
  #: src/class-updraftplus.php:1298, src/class-updraftplus.php:1342,
@@ -7523,7 +7523,7 @@ msgstr ""
7523
  #: src/methods/stream-base.php:219, src/restorer.php:2884,
7524
  #: src/restorer.php:2909, src/restorer.php:2990, src/updraftplus.php:157
7525
  msgid "Error"
7526
- msgstr ""
7527
 
7528
  #: src/admin.php:1959
7529
  msgid "Could not find that job - perhaps it has already finished?"
@@ -7531,11 +7531,11 @@ msgstr ""
7531
 
7532
  #: src/admin.php:1951
7533
  msgid "Job deleted"
7534
- msgstr ""
7535
 
7536
  #: src/admin.php:2050, src/includes/class-commands.php:833
7537
  msgid "OK. You should soon see activity in the \"Last log message\" field below."
7538
- msgstr ""
7539
 
7540
  #: src/admin.php:895
7541
  msgid "Nothing yet logged"
@@ -7543,7 +7543,7 @@ msgstr ""
7543
 
7544
  #: src/admin.php:1163
7545
  msgid "Please consult this FAQ if you have problems backing up."
7546
- msgstr ""
7547
 
7548
  #: src/admin.php:1163
7549
  msgid "Your website is hosted using the %s web server."
@@ -7569,7 +7569,7 @@ msgstr ""
7569
  #: src/templates/wp-admin/settings/tab-backups.php:27,
7570
  #: src/udaddons/updraftplus-addons.php:259
7571
  msgid "Warning"
7572
- msgstr ""
7573
 
7574
  #: src/admin.php:1092
7575
  msgid "Add-Ons / Pro Support"
@@ -7577,7 +7577,7 @@ msgstr ""
7577
 
7578
  #: src/admin.php:679, src/admin.php:1090, src/admin.php:2800
7579
  msgid "Settings"
7580
- msgstr ""
7581
 
7582
  #: src/backup.php:261
7583
  msgid "Could not create %s zip. Consult the log file for more information."
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
+ "PO-Revision-Date: 2018-12-15 11:41:50+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
1456
 
1457
  #: src/templates/wp-admin/settings/form-contents.php:191
1458
  msgid "Select Files"
1459
+ msgstr "Chọn file"
1460
 
1461
  #: src/methods/cloudfiles.php:476
1462
  msgid "Rackspace Storage Region"
2171
 
2172
  #: src/templates/wp-admin/settings/form-contents.php:114
2173
  msgid "Backup using %s?"
2174
+ msgstr "Sao lưu đang dùng %s?"
2175
 
2176
  #: src/addons/s3-enhanced.php:379
2177
  msgid "Asia Pacific (Mumbai)"
2187
 
2188
  #: src/central/bootstrap.php:554
2189
  msgid "More information..."
2190
+ msgstr "Thêm thông tin..."
2191
 
2192
  #: src/central/bootstrap.php:553
2193
  msgid "Use the alternative method for making a connection with the dashboard."
2194
+ msgstr "Sử dụng phương pháp khác để thực hiện kết nối với bảng điều khiển."
2195
 
2196
  #: src/central/bootstrap.php:458
2197
  msgid "Key size: %d bits"
2215
 
2216
  #: src/addons/migrator.php:1765, src/central/bootstrap.php:547
2217
  msgid "slower, strongest"
2218
+ msgstr "chậm hơn, mạnh"
2219
 
2220
  #: src/addons/migrator.php:1764, src/central/bootstrap.php:546
2221
  msgid "recommended"
2222
+ msgstr "đề nghị"
2223
 
2224
  #: src/addons/migrator.php:1764, src/central/bootstrap.php:546
2225
  msgid "%s bytes"
2226
+ msgstr "%s byte"
2227
 
2228
  #: src/addons/migrator.php:1763, src/central/bootstrap.php:545
2229
  msgid "faster (possibility for slow PHP installs)"
2237
  #: src/addons/migrator.php:1765, src/central/bootstrap.php:544,
2238
  #: src/central/bootstrap.php:545, src/central/bootstrap.php:547
2239
  msgid "%s bits"
2240
+ msgstr "%s bit"
2241
 
2242
  #: src/addons/migrator.php:1760, src/central/bootstrap.php:542
2243
  msgid "Encryption key size:"
2261
 
2262
  #: src/methods/ftp.php:412
2263
  msgid "login"
2264
+ msgstr "đăng nhập"
2265
 
2266
  #: src/addons/reporting.php:527, src/addons/reporting.php:527,
2267
  #: src/addons/reporting.php:529, src/methods/email.php:100
2286
 
2287
  #: src/templates/wp-admin/settings/form-contents.php:103
2288
  msgid "(tap on an icon to select or unselect)"
2289
+ msgstr "(chạm vào biểu tượng để chọn hoặc bỏ chọn)"
2290
 
2291
  #: src/methods/updraftvault.php:333, src/methods/updraftvault.php:339,
2292
  #: src/methods/updraftvault.php:345
2316
 
2317
  #: src/central/bootstrap.php:536
2318
  msgid "Enter any description"
2319
+ msgstr "Nhập bất kỳ mô tả"
2320
 
2321
  #: src/central/bootstrap.php:535
2322
  msgid "Description"
2323
+ msgstr "Miêu tả"
2324
 
2325
  #: src/central/bootstrap.php:463
2326
  msgid "Delete..."
2327
+ msgstr "Xóa..."
2328
 
2329
  #: src/central/bootstrap.php:456
2330
  msgid "Created:"
2331
+ msgstr "Đã tạo:"
2332
 
2333
  #: src/central/bootstrap.php:453
2334
  msgid "Access this site as user:"
2335
+ msgstr "Truy cập trang web này như người dùng:"
2336
 
2337
  #: src/central/bootstrap.php:477
2338
  msgid "Details"
2339
+ msgstr "Chi tiết"
2340
 
2341
  #: src/central/bootstrap.php:476
2342
  msgid "Key description"
2343
+ msgstr "Mô tả khóa"
2344
 
2345
  #: src/central/bootstrap.php:349, src/central/bootstrap.php:360
2346
  msgid "A key was created, but the attempt to register it with %s was unsuccessful - please try again later."
2348
 
2349
  #: src/central/bootstrap.php:219
2350
  msgid "An invalid URL was entered"
2351
+ msgstr "Một URL không hợp lệ đã được nhập"
2352
 
2353
  #: src/central/bootstrap.php:83
2354
  msgid "Close..."
2355
+ msgstr "Đóng..."
2356
 
2357
  #: src/central/bootstrap.php:75
2358
  msgid "This connection appears to already have been made."
2359
+ msgstr "Kết nối này dường như đã được thực hiện."
2360
 
2361
  #: src/central/bootstrap.php:72
2362
  msgid "You must visit this link in the same browser and login session as you created the key in."
2388
 
2389
  #: src/backup.php:1042, src/class-updraftplus.php:2973
2390
  msgid "The backup was aborted by the user"
2391
+ msgstr "Các sao lưu đã bị hủy bỏ bởi người sử dụng"
2392
 
2393
  #: src/admin.php:4929
2394
  msgid "Your settings have been saved."
2395
+ msgstr "Cài đặt của bạn đã được lưu."
2396
 
2397
  #: src/admin.php:4009
2398
  msgid "Total backup size:"
2399
+ msgstr "Tổng kích thước sao lưu:"
2400
 
2401
  #: src/admin.php:3416
2402
  msgid "stop"
2403
+ msgstr "dừng lại"
2404
 
2405
  #: src/admin.php:905, src/admin.php:3209
2406
  msgid "The backup has finished running"
2410
  #: src/templates/wp-admin/advanced/wipe-settings.php:5,
2411
  #: src/templates/wp-admin/advanced/wipe-settings.php:9
2412
  msgid "Wipe settings"
2413
+ msgstr "Làm sạch cài đặt"
2414
 
2415
  #: src/templates/wp-admin/advanced/site-info.php:102
2416
  msgid "reset"
2417
+ msgstr "thiết lập lại"
2418
 
2419
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:14
2420
  msgid "these backup sets"
2421
+ msgstr "các bản sao lưu"
2422
 
2423
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:11
2424
  msgid "this backup set"
2426
 
2427
  #: src/includes/class-filesystem-functions.php:72
2428
  msgid "calculate"
2429
+ msgstr "tính toán"
2430
 
2431
  #: src/admin.php:879
2432
  msgid "You should save your changes to ensure that they are used for making your backup."
2438
 
2439
  #: src/admin.php:871
2440
  msgid "Please enter a valid URL"
2441
+ msgstr "Vui lòng nhập một URL hợp lệ"
2442
 
2443
  #: src/admin.php:854
2444
  msgid "Saving..."
2445
+ msgstr "Đang lưu..."
2446
 
2447
  #: src/admin.php:815
2448
  msgid "Error: the server sent us a response which we did not understand."
2449
+ msgstr "Lỗi: máy chủ gửi cho chúng tôi hồi đáp mà chúng tôi không hiểu."
2450
 
2451
  #: src/admin.php:807
2452
  msgid "Fetching..."
2479
  #: src/admin.php:2842, src/templates/wp-admin/notices/horizontal-notice.php:16,
2480
  #: src/templates/wp-admin/notices/horizontal-notice.php:18
2481
  msgid "Dismiss"
2482
+ msgstr "Bỏ qua"
2483
 
2484
  #: src/admin.php:891
2485
  msgid "Please fill in the required information."
2486
+ msgstr "Vui lòng điền vào các thông tin cần thiết."
2487
 
2488
  #: src/addons/multisite.php:619
2489
  msgid "Read more..."
2548
 
2549
  #: src/restorer.php:211
2550
  msgid "Skipping: this archive was already restored."
2551
+ msgstr "Đang bỏ qua: kho lưu trữ này đã được phục hồi."
2552
 
2553
  #: src/templates/wp-admin/settings/form-contents.php:140
2554
  msgid "File Options"
2555
+ msgstr "Tùy chọn tập tin"
2556
 
2557
  #: src/templates/wp-admin/settings/form-contents.php:93
2558
  msgid "Sending Your Backup To Remote Storage"
2588
 
2589
  #: src/admin.php:4801
2590
  msgid "settings"
2591
+ msgstr "cài đặt"
2592
 
2593
  #: src/admin.php:4801
2594
  msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
2633
  #: src/addons/morefiles.php:71, src/admin.php:877
2634
  msgctxt "(verb)"
2635
  msgid "Download"
2636
+ msgstr "Tải về"
2637
 
2638
  #: src/admin.php:800
2639
  msgid "You have chosen to backup files, but no file entities have been selected"
2640
+ msgstr "Bạn đã chọn tập tin sao lưu, nhưng không có thực thể tập tin đã được chọn"
2641
 
2642
  #: src/admin.php:695
2643
  msgid "Extensions"
2644
+ msgstr "Phần mở rộng"
2645
 
2646
  #: src/admin.php:687, src/admin.php:2801
2647
  msgid "Advanced Tools"
2648
+ msgstr "Công cụ nâng cao"
2649
 
2650
  #: src/addons/googlecloud.php:1055
2651
  msgid "Bucket location"
2788
 
2789
  #: src/templates/wp-admin/advanced/site-info.php:56
2790
  msgid "Not installed"
2791
+ msgstr "Chưa cài đặt"
2792
 
2793
  #: src/addons/googlecloud.php:1042, src/addons/s3-enhanced.php:63
2794
  msgid "Storage class"
2873
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:11,
2874
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:14
2875
  msgid "Are you sure that you wish to remove %s from UpdraftPlus?"
2876
+ msgstr "Bạn có chắc chắn rằng bạn muốn loại bỏ %s từ UpdraftPlus?"
2877
 
2878
  #: src/templates/wp-admin/settings/existing-backups-table.php:157
2879
  msgid "Deselect"
2880
+ msgstr "Bỏ chọn"
2881
 
2882
  #: src/templates/wp-admin/settings/existing-backups-table.php:156
2883
  msgid "Select all"
2884
+ msgstr "Chọn tất cả"
2885
 
2886
  #: src/templates/wp-admin/settings/existing-backups-table.php:154
2887
  msgid "Actions upon selected backups"
2898
 
2899
  #: src/admin.php:890
2900
  msgid "Processing..."
2901
+ msgstr "Đang xử lý..."
2902
 
2903
  #: src/admin.php:888
2904
  msgid "For backups older than"
2994
 
2995
  #: src/admin.php:860
2996
  msgid "Update quota count"
2997
+ msgstr "Cập nhật số lượng hạn ngạch"
2998
 
2999
  #: src/admin.php:859
3000
  msgid "Counting..."
3001
+ msgstr "Đang đếm..."
3002
 
3003
  #: src/admin.php:858
3004
  msgid "Disconnecting..."
3005
+ msgstr "Đang ngắt kết nối..."
3006
 
3007
  #: src/admin.php:856
3008
  msgid "Connecting..."
3009
+ msgstr "Đang kết nối..."
3010
 
3011
  #: src/methods/updraftvault.php:468, src/methods/updraftvault.php:542
3012
  msgid "Refresh current status"
3033
  #: src/admin.php:857, src/methods/updraftvault.php:392,
3034
  #: src/methods/updraftvault.php:450
3035
  msgid "Disconnect"
3036
+ msgstr "Ngắt kết nối"
3037
 
3038
  #: src/methods/updraftvault.php:389, src/methods/updraftvault.php:442
3039
  msgid "Quota:"
3220
  #: src/addons/wp-cli.php:371,
3221
  #: src/templates/wp-admin/settings/existing-backups-table.php:101
3222
  msgid "Backup sent to remote site - not available for download."
3223
+ msgstr "Bản sao lưu gửi đến trang web từ xa - không có sẵn để tải về."
3224
 
3225
  #: src/includes/class-wpadmin-commands.php:137
3226
  msgid "You should make sure that this really is a backup set intended for use on this website, before you restore (rather than a backup set of an unrelated website)."
3232
 
3233
  #: src/admin.php:873, src/includes/class-remote-send.php:327
3234
  msgid "Testing connection..."
3235
+ msgstr "Đang kiểm tra kết nối..."
3236
 
3237
  #: src/admin.php:870,
3238
  #: src/templates/wp-admin/settings/existing-backups-table.php:161
3239
  msgid "Deleting..."
3240
+ msgstr "Đang xóa..."
3241
 
3242
  #: src/admin.php:869
3243
  msgid "key name"
3244
+ msgstr "tên khóa"
3245
 
3246
  #: src/admin.php:867
3247
  msgid "Please give this key a name (e.g. indicate the site it is for):"
3249
 
3250
  #: src/admin.php:864
3251
  msgid "Creating..."
3252
+ msgstr "Đang tạo..."
3253
 
3254
  #: src/addons/migrator.php:1753
3255
  msgid "Receive a backup from a remote site"
3274
  #: src/admin.php:874, src/includes/class-remote-send.php:358,
3275
  #: src/includes/class-remote-send.php:520
3276
  msgid "Send"
3277
+ msgstr "Gửi"
3278
 
3279
  #: src/admin.php:865, src/includes/class-remote-send.php:514
3280
  msgid "Send to site:"
3281
+ msgstr "Gửi đến trang web:"
3282
 
3283
  #: src/includes/class-remote-send.php:512
3284
  msgid "No receiving sites have yet been added."
3348
 
3349
  #: src/addons/migrator.php:1745, src/admin.php:862
3350
  msgid "Add site"
3351
+ msgstr "Thêm trang web"
3352
 
3353
  #: src/admin.php:861
3354
  msgid "Adding..."
3355
+ msgstr "Đang thêm..."
3356
 
3357
  #: src/udaddons/options.php:298
3358
  msgid "Claim not granted - perhaps you have already used this purchase somewhere else, or your paid period for downloading from updraftplus.com has expired?"
3380
 
3381
  #: src/admin.php:853, src/admin.php:879, src/admin.php:880
3382
  msgid "You have made changes to your settings, and not saved."
3383
+ msgstr "Bạn đã làm thay đổi cài đặt của bạn, và không được lưu."
3384
 
3385
  #: src/addons/onedrive.php:1188
3386
  msgid "N.B. %s is not case-sensitive."
3617
 
3618
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:13
3619
  msgid "Compare with the free version"
3620
+ msgstr "So sánh với phiên bản miễn phí"
3621
 
3622
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:12,
3623
  #: src/templates/wp-admin/settings/tab-addons.php:46
3624
  msgid "UpdraftPlus Premium"
3625
+ msgstr "UpdraftPlus Premium"
3626
 
3627
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:29
3628
  msgid "Free Newsletter"
3629
+ msgstr "Bản tin miễn phí"
3630
 
3631
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:2,
3632
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:35
3633
  msgid "Dismiss (for %s months)"
3634
+ msgstr "Bỏ qua (%s tháng)"
3635
 
3636
  #: src/addons/fixtime.php:448
3637
  msgid "(at same time as files backup)"
3678
  #: src/templates/wp-admin/settings/form-contents.php:190
3679
  msgctxt "Uploader: Drop db.gz.crypt files here to upload them for decryption - or - Select Files"
3680
  msgid "or"
3681
+ msgstr "hoặc"
3682
 
3683
  #: src/admin.php:847
3684
  msgid "You did not select any components to restore. Please select at least one, and then try again."
3685
+ msgstr "Bạn chưa chọn bất kỳ thành phần nào để khôi phục lại. Vui lòng chọn ít nhất một, và sau đó thử lại."
3686
 
3687
  #: src/addons/sftp.php:470
3688
  msgctxt "Do not translate BEGIN RSA PRIVATE KEY. PCKS1, XML, PEM and PuTTY are also technical acronyms which should not be translated."
3714
  #: src/admin.php:3717
3715
  msgctxt "i.e. Non-automatic"
3716
  msgid "Manual"
3717
+ msgstr "Hướng dẫn sử dụng"
3718
 
3719
  #: src/restorer.php:2784
3720
  msgctxt "The user is being told the number of times an error has happened, e.g. An error (27) occurred"
3740
  #: src/addons/autobackup.php:157, src/addons/autobackup.php:1026,
3741
  #: src/admin.php:852
3742
  msgid "Automatic backup before update"
3743
+ msgstr "Tự động sao lưu trước khi cập nhật"
3744
 
3745
  #: src/addons/autobackup.php:122
3746
  msgid "WordPress core (only)"
3825
 
3826
  #: src/admin.php:3209, src/admin.php:4278
3827
  msgid "View Log"
3828
+ msgstr "Xem báo cáo"
3829
 
3830
  #: src/templates/wp-admin/settings/existing-backups-table.php:18,
3831
  #: src/templates/wp-admin/settings/existing-backups-table.php:97
3832
  msgid "Backup data (click to download)"
3833
+ msgstr "Sao lưu dữ liệu (bấm vào để tải về)"
3834
 
3835
  #: src/templates/wp-admin/settings/existing-backups-table.php:17,
3836
  #: src/templates/wp-admin/settings/existing-backups-table.php:64
3837
  msgid "Backup date"
3838
+ msgstr "Ngày sao lưu"
3839
 
3840
  #: src/templates/wp-admin/settings/form-contents.php:42,
3841
  #: src/templates/wp-admin/settings/form-contents.php:75
3894
 
3895
  #: src/methods/updraftvault.php:715, src/udaddons/updraftplus-addons.php:996
3896
  msgid "Your email address was valid, but your password was not recognised by UpdraftPlus.Com."
3897
+ msgstr "Địa chỉ email hợp lệ, nhưng mật khẩu không thể tìm thấy trên UpdraftPlus.Com"
3898
 
3899
  #: src/methods/updraftvault.php:656, src/udaddons/updraftplus-addons.php:862
3900
  msgid "You need to supply both an email address and a password"
3943
 
3944
  #: src/class-updraftplus.php:3982
3945
  msgid "Any support requests to do with %s should be raised with your web hosting company."
3946
+ msgstr "Bất kì yêu cầu hỗ trợ nào để làm với %s cần được đưa lên với công ty lưu trữ web (web hosting )"
3947
 
3948
  #: src/class-updraftplus.php:3982
3949
  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."
3950
+ msgstr "Bạn chỉ nên thực hiện nếu bạn không thể cập nhật lên nhà cung cấp hiện tại và bạn tự tin (sẵn sàng chấp nhận rủi ro) rằng giao diện/ tiện ích/ v.v.. thích hợp với phiên bản %s trước đó"
3951
 
3952
  #: src/class-updraftplus.php:3982
3953
  msgid "This is significantly newer than the server which you are now restoring onto (version %s)."
3954
+ msgstr "Đây là một bản mới hơn hẳn so với trên nhà cung cấp, cái mà bạn đang phục hồi đến (phiên bản %s)."
3955
 
3956
  #: src/class-updraftplus.php:3982
3957
  msgid "The site in this backup was running on a webserver with version %s of %s. "
3970
  #: src/includes/updraftplus-notices.php:133,
3971
  #: src/includes/updraftplus-notices.php:134
3972
  msgid "Facebook"
3973
+ msgstr "Facebook"
3974
 
3975
  #: src/includes/updraftplus-notices.php:133,
3976
  #: src/includes/updraftplus-notices.php:134,
3977
  #: src/templates/wp-admin/settings/header.php:16
3978
  msgid "Twitter"
3979
+ msgstr "Twitter"
3980
 
3981
  #: src/includes/updraftplus-notices.php:132
3982
  msgid "UpdraftPlus is on social media - check us out!"
3998
 
3999
  #: src/admin.php:2050, src/admin.php:2062, src/includes/class-commands.php:833
4000
  msgid "Start backup"
4001
+ msgstr "Bắt đầu sao lưu"
4002
 
4003
  #: src/class-updraftplus.php:3953, src/restorer.php:1446
4004
  msgid "You are using the %s webserver, but do not seem to have the %s module loaded."
4014
 
4015
  #: src/admin.php:2288
4016
  msgid "This file could not be uploaded"
4017
+ msgstr "Tập tin này không thể tải lên"
4018
 
4019
  #: src/admin.php:2251
4020
  msgid "You will find more information about this in the Settings section."
4030
 
4031
  #: src/templates/wp-admin/advanced/site-info.php:44
4032
  msgid "Memory limit"
4033
+ msgstr "Giới hạn bộ nhớ"
4034
 
4035
  #: src/includes/class-filesystem-functions.php:233, src/restorer.php:2006
4036
  msgid "restoration"
4061
  #: src/admin.php:3718, src/admin.php:3719, src/admin.php:3720,
4062
  #: src/updraftplus.php:100, src/updraftplus.php:101, src/updraftplus.php:102
4063
  msgid "Every %s hours"
4064
+ msgstr "Mỗi %s giờ"
4065
 
4066
  #: src/addons/migrator.php:903, src/addons/migrator.php:905
4067
  msgid "search and replace"
4115
 
4116
  #: src/includes/class-backup-history.php:69
4117
  msgid "You have not yet made any backups."
4118
+ msgstr "Bạn chưa thực hiện bất kỳ bản sao lưu."
4119
 
4120
  #: src/templates/wp-admin/settings/form-contents.php:152
4121
  msgid "Database Options"
4122
+ msgstr "Tùy chọn cơ sở dữ liệu"
4123
 
4124
  #: src/templates/wp-admin/advanced/site-info.php:95
4125
  msgid "Plugins for debugging:"
4127
 
4128
  #: src/templates/wp-admin/advanced/site-info.php:74
4129
  msgid "%s (%s used)"
4130
+ msgstr "%s (%s đã sử dụng)"
4131
 
4132
  #: src/templates/wp-admin/advanced/site-info.php:74
4133
  msgid "Free disk space in account:"
4143
  #: src/templates/wp-admin/settings/tab-backups.php:21,
4144
  #: src/templates/wp-admin/settings/tab-backups.php:44
4145
  msgid "Existing Backups"
4146
+ msgstr "Sao Lưu"
4147
 
4148
  #: src/admin.php:1143
4149
  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."
4151
 
4152
  #: src/admin.php:1143
4153
  msgid "To make a backup, just press the Backup Now button."
4154
+ msgstr "Để thực hiện một bản sao lưu, chỉ cần nhấn nút Sao Lưu Ngay"
4155
 
4156
  #: src/admin.php:1143
4157
  msgid "Welcome to UpdraftPlus!"
4158
+ msgstr "Chào mừng đến UpdraftPlus!"
4159
 
4160
  #: src/addons/moredatabase.php:318
4161
  msgid "If you enter text here, it is used to encrypt database backups (Rijndael). <strong>Do make a separate record of it and do not lose it, or all your backups <em>will</em> be useless.</strong> This is also the key used to decrypt backups from this admin interface (so if you change it, then automatic decryption will not work until you change it back)."
4227
 
4228
  #: src/class-updraftplus.php:1736
4229
  msgid "External database (%s)"
4230
+ msgstr "Cơ sở dữ liệu bên ngoài (%s)"
4231
 
4232
  #: src/methods/googledrive.php:1207
4233
  msgid "Follow this link to your Google API Console, and there activate the Drive API and create a Client ID in the API Access section."
4245
 
4246
  #: src/addons/wp-cli.php:437, src/admin.php:4034
4247
  msgid "External database"
4248
+ msgstr "Cơ sở dữ liệu bên ngoài"
4249
 
4250
  #: src/templates/wp-admin/settings/form-contents.php:304
4251
  msgid "This will also cause debugging output from all plugins to be shown upon this screen - please do not be surprised to see these."
4376
 
4377
  #: src/methods/dropbox.php:611
4378
  msgid "Dropbox"
4379
+ msgstr "Dropbox"
4380
 
4381
  #: src/addons/onedrive.php:1205, src/methods/dropbox.php:611
4382
  msgid "Authenticate with %s"
4458
 
4459
  #: src/templates/wp-admin/advanced/site-info.php:100
4460
  msgid "Call"
4461
+ msgstr "Gọi"
4462
 
4463
  #: src/templates/wp-admin/advanced/site-info.php:98,
4464
  #: src/templates/wp-admin/advanced/site-info.php:98
4504
  #: src/addons/migrator.php:1758, src/addons/sftp.php:467, src/admin.php:868,
4505
  #: src/admin.php:5192, src/templates/wp-admin/settings/temporary-clone.php:63
4506
  msgid "Key"
4507
+ msgstr "Chìa khóa"
4508
 
4509
  #: src/addons/sftp.php:462
4510
  msgid "Your login may be either password or key-based - you only need to enter one, not both."
4520
 
4521
  #: src/addons/wp-cli.php:449, src/admin.php:4078
4522
  msgid "Files backup (created by %s)"
4523
+ msgstr "Bản sao lưu tập tin (được tạo ra bởi %s)"
4524
 
4525
  #: src/addons/wp-cli.php:449, src/admin.php:4078
4526
  msgid "Files and database WordPress backup (created by %s)"
4527
+ msgstr "Bản sao lưu tập tin và cơ sở dữ liệu WordPress (được tạo ra bởi %s)"
4528
 
4529
  #: src/addons/importer.php:276, src/admin.php:4072,
4530
  #: src/includes/class-backup-history.php:435
4531
  msgid "Backup created by: %s."
4532
+ msgstr "Bản sao lưu được tạo bởi: %s."
4533
 
4534
  #: src/addons/wp-cli.php:431, src/admin.php:4032
4535
  msgid "Database (created by %s)"
4536
+ msgstr "Cơ sở dữ liệu (được tạo ra bởi %s)"
4537
 
4538
  #: src/addons/wp-cli.php:429, src/admin.php:4026, src/admin.php:4074
4539
  msgid "unknown source"
4540
+ msgstr "nguồn không rõ"
4541
 
4542
  #: src/templates/wp-admin/advanced/site-info.php:104,
4543
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:56,
4548
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:51,
4549
  #: src/templates/wp-admin/settings/tab-backups.php:55
4550
  msgid "Upload backup files"
4551
+ msgstr "Tải lên tập tin sao lưu"
4552
 
4553
  #: src/admin.php:2303
4554
  msgid "This backup was created by %s, and can be imported."
4555
+ msgstr "Bản sao lưu này đã được tạo ra bởi %s, Và có thể được nhập khẩu."
4556
 
4557
  #: src/admin.php:1172
4558
  msgid "Read this page for a guide to possible causes and how to fix it."
4564
 
4565
  #: src/admin.php:831, src/includes/class-backup-history.php:442
4566
  msgid "If this is a backup created by a different backup plugin, then UpdraftPlus Premium may be able to help you."
4567
+ msgstr "Nếu đây là một bản sao lưu được tạo ra bởi một plugin sao lưu khác, Khi đó UpdraftPlus Premium có thể giúp bạn."
4568
 
4569
  #: src/admin.php:830
4570
  msgid "However, UpdraftPlus archives are standard zip/SQL files - so if you are sure that your file has the right format, then you can rename it to match that pattern."
4571
+ msgstr "Tuy nhiên, Lưu trữ UpdraftPlus là tiêu chuẩn tập tin zip/SQL - vì vậy nếu bạn chắc chắn rằng tập tin của bạn có định dạng phù hợp, sau đó bạn có thể đổi tên nó để phù hợp với mô hình đó."
4572
 
4573
  #: src/admin.php:830, src/admin.php:831,
4574
  #: src/includes/class-backup-history.php:442
4575
  msgid "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))."
4576
+ msgstr "Tập tin này sẽ không xuất hiện để có một bản sao lưu UpdraftPlus (tập tin như vậy là .zip hoặc .gz trong đó có tên như:. backup_ (thời gian) _ (tên trang web) _ (code) _ (loại) (zip | gz) )."
4577
 
4578
  #: src/admin.php:4075, src/includes/class-wpadmin-commands.php:162,
4579
  #: src/restorer.php:1975
4961
 
4962
  #: src/admin.php:845, src/central/bootstrap.php:565
4963
  msgid "Create"
4964
+ msgstr "Tạo"
4965
 
4966
  #: src/admin.php:806
4967
  msgid "Trying..."
4968
+ msgstr "Đang thử lại..."
4969
 
4970
  #: src/admin.php:805
4971
  msgid "The new user's RackSpace console password is (this will not be shown again):"
4973
 
4974
  #: src/addons/wp-cli.php:797, src/admin.php:816, src/admin.php:4586
4975
  msgid "Error data:"
4976
+ msgstr "Dữ liệu lỗi:"
4977
 
4978
  #: src/admin.php:4489
4979
  msgid "Backup does not exist in the backup history"
5025
 
5026
  #: src/class-updraftplus.php:1680, src/class-updraftplus.php:1682
5027
  msgid "files: %s"
5028
+ msgstr "các tập tin: %s"
5029
 
5030
  #: src/addons/reporting.php:392
5031
  msgid "Use the \"Reporting\" section to configure the email addresses to be used."
5037
 
5038
  #: src/addons/reporting.php:223, src/admin.php:3992
5039
  msgid "Uploaded to:"
5040
+ msgstr "Đã tải lên:"
5041
 
5042
  #: src/addons/reporting.php:222
5043
  msgid "Time taken:"
5111
  #: src/methods/updraftvault.php:362,
5112
  #: src/templates/wp-admin/settings/temporary-clone.php:82
5113
  msgid "Connect"
5114
+ msgstr "Kết nối"
5115
 
5116
  #: src/templates/wp-admin/settings/form-contents.php:262
5117
  msgid "For more reporting features, use the Reporting add-on."
5139
 
5140
  #: src/backup.php:1094
5141
  msgid "Backed up: %s"
5142
+ msgstr "Sao lưu: %s"
5143
 
5144
  #: src/addons/reporting.php:265, src/backup.php:1088
5145
  msgid "The log file has been attached to this email."
5146
+ msgstr "Tập tin báo cáo đã được đính kèm vào email này."
5147
 
5148
  #: src/backup.php:1052
5149
  msgid "Unknown/unexpected error - please raise a support request"
5256
  #: src/templates/wp-admin/settings/tab-addons.php:191,
5257
  #: src/templates/wp-admin/settings/tab-addons.php:192
5258
  msgid "Reporting"
5259
+ msgstr "Đang báo cáo"
5260
 
5261
  #: src/admin.php:5189
5262
  msgid "Options (raw)"
5264
 
5265
  #: src/addons/reporting.php:525, src/admin.php:792
5266
  msgid "Send a report only when there are warnings/errors"
5267
+ msgstr "Gửi một báo cáo chỉ khi có cảnh báo/lỗi"
5268
 
5269
  #: src/restorer.php:2203
5270
  msgid "Content URL:"
5419
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:78,
5420
  #: src/templates/wp-admin/settings/tab-backups.php:80
5421
  msgid "Drop backup files here"
5422
+ msgstr "Thả các tập tin sao lưu ở đây"
5423
 
5424
  #: src/admin.php:804
5425
  msgid "The web server returned an error code (try again, or check your web server logs)"
5464
 
5465
  #: src/admin.php:3283
5466
  msgid "(%s%%, file %s of %s)"
5467
+ msgstr "(%s%%, tập tin %s của %s)"
5468
 
5469
  #: src/addons/autobackup.php:304, src/addons/autobackup.php:1090,
5470
  #: src/addons/lockadmin.php:160
5505
 
5506
  #: src/admin.php:4140, src/admin.php:4142
5507
  msgid "(Not finished)"
5508
+ msgstr "(Chưa xong)"
5509
 
5510
  #: src/admin.php:4142
5511
  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."
5539
 
5540
  #: src/admin.php:3297
5541
  msgid "Backup finished"
5542
+ msgstr "Sao lưu hoàn thành"
5543
 
5544
  #: src/admin.php:3292
5545
  msgid "Waiting until scheduled time to retry because of errors"
5546
+ msgstr "Đang chờ đến thời gian dự kiến để thử lại bởi vì lỗi gặp phải"
5547
 
5548
  #: src/admin.php:3288
5549
  msgid "Pruning old backup sets"
5551
 
5552
  #: src/admin.php:3275
5553
  msgid "Uploading files to remote storage"
5554
+ msgstr "Đang tải tập tin đến kho lưu trữ từ xa"
5555
 
5556
  #: src/admin.php:3344
5557
  msgid "Encrypted database"
5558
+ msgstr "Đã mã hóa cơ sở dữ liệu"
5559
 
5560
  #: src/admin.php:3336
5561
  msgid "Encrypting database"
5562
+ msgstr "Đang mã hóa cơ sở dữ liệu"
5563
 
5564
  #: src/admin.php:3310
5565
  msgid "Created database backup"
5566
+ msgstr "Đã tạo bản sao lưu cơ sở dữ liệu"
5567
 
5568
  #: src/admin.php:3323
5569
  msgid "table: %s"
5571
 
5572
  #: src/admin.php:3321
5573
  msgid "Creating database backup"
5574
+ msgstr "Đang tạo bản sao lưu cơ sở dữ liệu"
5575
 
5576
  #: src/admin.php:3266
5577
  msgid "Created file backup zips"
5578
+ msgstr "Đã tạo tập tin sao lưu zip"
5579
 
5580
  #: src/admin.php:3253
5581
  msgid "Creating file backup zips"
5582
+ msgstr "Đang tạo tập tin sao lưu zip"
5583
 
5584
  #: src/admin.php:3248
5585
  msgid "Backup begun"
5586
+ msgstr "Bắt đầu sao lưu"
5587
 
5588
  #: src/admin.php:1151
5589
  msgid "The scheduler is disabled in your WordPress install, via the DISABLE_WP_CRON setting. No backups can run (even &quot;Backup Now&quot;) unless either you have set up a facility to call the scheduler manually, or until it is enabled."
5620
 
5621
  #: src/addons/autobackup.php:1104, src/admin.php:848
5622
  msgid "Proceed with update"
5623
+ msgstr "Tiến hành cập nhật"
5624
 
5625
  #: src/addons/autobackup.php:1097
5626
  msgid "Do not abort after pressing Proceed below - wait for the backup to complete."
5692
  #: src/templates/wp-admin/settings/tab-addons.php:21,
5693
  #: src/templates/wp-admin/settings/tab-addons.php:87
5694
  msgid "Support"
5695
+ msgstr "Hỗ trợ"
5696
 
5697
  #: src/class-updraftplus.php:4237
5698
  msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
5717
  #: src/addons/autobackup.php:1072, src/admin.php:976,
5718
  #: src/includes/updraftplus-notices.php:171
5719
  msgid "Be safe with an automatic backup"
5720
+ msgstr "An toàn với một bản sao lưu tự động"
5721
 
5722
  #: src/admin.php:2591
5723
  msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
5725
 
5726
  #: src/admin.php:840
5727
  msgid "The file was uploaded."
5728
+ msgstr "Tập tin đã được tải lên."
5729
 
5730
  #: src/admin.php:839
5731
  msgid "Unknown server response status:"
5732
+ msgstr "Tình trạng máy chủ không phản hồi:"
5733
 
5734
  #: src/admin.php:838
5735
  msgid "Unknown server response:"
5736
+ msgstr "Máy chủ không phản hồi:"
5737
 
5738
  #: src/admin.php:837
5739
  msgid "This decryption key will be attempted:"
5741
 
5742
  #: src/admin.php:836
5743
  msgid "Follow this link to attempt decryption and download the database file to your computer."
5744
+ msgstr "Nhấn vào liên kết này để tải tập tin cơ sở dữ liệu về máy tính của bạn."
5745
 
5746
  #: src/admin.php:835
5747
  msgid "Upload error"
5748
+ msgstr "Lỗi tải lên"
5749
 
5750
  #: src/admin.php:834
5751
  msgid "This file does not appear to be an UpdraftPlus encrypted database archive (such files are .gz.crypt files which have a name like: backup_(time)_(site name)_(code)_db.crypt.gz)."
5752
+ msgstr "Tập tin này sẽ không xuất hiện để có một mã hóa lưu trữ cơ sở dữ liệu UpdraftPlus (tập tin như vậy là .gz.crypt trong đó có tên như: backup_ (thời gian) _ (tên trang web) _ (code) _db.crypt.gz)."
5753
 
5754
  #: src/admin.php:833
5755
  msgid "Upload error:"
5756
+ msgstr "Lỗi tải lên:"
5757
 
5758
  #: src/admin.php:832
5759
  msgid "(make sure that you were trying to upload a zip file previously created by UpdraftPlus)"
5760
+ msgstr "(hãy chắc chắn rằng bạn đã cố gắng để tải lên một tập tin zip trước đó được tạo ra bởi UpdraftPlus)"
5761
 
5762
  #: src/admin.php:823
5763
  msgid "Download to your computer"
5764
+ msgstr "Tải về máy tính của bạn"
5765
 
5766
  #: src/admin.php:822
5767
  msgid "Delete from your web server"
5768
+ msgstr "Xóa từ máy chủ web của bạn"
5769
 
5770
  #: src/admin.php:4112
5771
  msgid "You appear to be missing one or more archives from this multi-archive set."
5785
 
5786
  #: src/admin.php:813
5787
  msgid "Warnings:"
5788
+ msgstr "Cảnh báo:"
5789
 
5790
  #: src/admin.php:812
5791
  msgid "Error: the server sent an empty response."
5792
+ msgstr "Lỗi: máy chủ gửi một phản hồi trống."
5793
 
5794
  #: src/admin.php:2317
5795
  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?"
5797
 
5798
  #: src/includes/class-wpadmin-commands.php:238
5799
  msgid "The backup archive files have been processed, but with some errors. You will need to cancel and correct any problems before retrying."
5800
+ msgstr "Các tập tin sao lưu đã được xử lý, nhưng có một số lỗi. Bạn sẽ cần phải hủy bỏ và sửa bất kỳ vấn đề gặp phải trước khi thử lại."
5801
 
5802
  #: src/includes/class-wpadmin-commands.php:236
5803
  msgid "The backup archive files have been processed, but with some warnings. If all is well, then now press Restore again to proceed. Otherwise, cancel and correct any problems first."
5804
+ msgstr "Các tập tin sao lưu đã được xử lý, nhưng có một số cảnh báo. Nếu tất cả đều tốt, khi đó hãy bấm Khôi Phục một lần nữa để tiến hành. Nếu không, hủy bỏ và sửa bất kỳ vấn đề gặp phải."
5805
 
5806
  #: src/includes/class-wpadmin-commands.php:234
5807
  msgid "The backup archive files have been successfully processed. Now press Restore again to proceed."
5808
+ msgstr "Các tập tin sao lưu dự phòng đã được xử lý thành công. Bây giờ bấm Khôi Phục một lần nữa để tiến hành."
5809
 
5810
  #: src/includes/class-wpadmin-commands.php:208
5811
  msgid "This multi-archive backup set appears to have the following archives missing: %s"
5813
 
5814
  #: src/includes/class-wpadmin-commands.php:193
5815
  msgid "File (%s) was found, but has a different size (%s) from what was expected (%s) - it may be corrupt."
5816
+ msgstr "Tập tin (%s) đã được tìm thấy, nhưng có kích thước khác (%s) từ những gì đã được dự kiến ​​(%s) - nó có thể đã bị hỏng."
5817
 
5818
  #: src/includes/class-wpadmin-commands.php:188
5819
  msgid "File was found, but is zero-sized (you need to re-upload it): %s"
5820
+ msgstr "Tập tin đã được tìm thấy, nhưng là số không nhỏ (bạn cần phải tải nó lên lại): %s"
5821
 
5822
  #: src/includes/class-wpadmin-commands.php:186
5823
  msgid "File not found (you need to upload it): %s"
5824
+ msgstr "Tập tin không tìm thấy (bạn cần phải tải nó): %s"
5825
 
5826
  #: src/addons/wp-cli.php:611, src/addons/wp-cli.php:612,
5827
  #: src/includes/class-wpadmin-commands.php:114
5883
 
5884
  #: src/admin.php:829
5885
  msgid "Raw backup history"
5886
+ msgstr "Lịch sử sao lưu thô"
5887
 
5888
  #: src/templates/wp-admin/advanced/site-info.php:104
5889
  msgid "Show raw backup and file list"
5891
 
5892
  #: src/admin.php:811
5893
  msgid "Processing files - please wait..."
5894
+ msgstr "Đang xử lý các tập tin - vui lòng đợi..."
5895
 
5896
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:27,
5897
  #: src/templates/wp-admin/settings/tab-backups.php:27
5924
  #: src/class-updraftplus.php:4097, src/class-updraftplus.php:4097,
5925
  #: src/updraftplus.php:157
5926
  msgid "Go here for more information."
5927
+ msgstr "Tới đây để biết thêm thông tin."
5928
 
5929
  #: src/admin.php:810
5930
  msgid "Some files are still downloading or being processed - please wait."
5931
+ msgstr "Một số tập tin vẫn đang tải về hoặc đang được xử lý - vui lòng đợi."
5932
 
5933
  #: src/class-updraftplus.php:3945, src/class-updraftplus.php:3965
5934
  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."
6004
  #: src/class-updraftplus.php:4076, src/methods/googledrive.php:403,
6005
  #: src/methods/s3.php:341
6006
  msgid "Error: %s"
6007
+ msgstr "Lỗi: %s"
6008
 
6009
  #: src/admin.php:3736
6010
  msgid "Backup directory specified exists, but is <b>not</b> writable."
6036
 
6037
  #: src/backup.php:1079
6038
  msgid "Warnings encountered:"
6039
+ msgstr "Cảnh báo gặp phải:"
6040
 
6041
  #: src/class-updraftplus.php:2986
6042
  msgid "The backup apparently succeeded (with warnings) and is now complete"
6104
 
6105
  #: src/admin.php:2591, src/class-updraftplus.php:4009, src/restorer.php:2647
6106
  msgid "Warning:"
6107
+ msgstr "Cảnh báo:"
6108
 
6109
  #: src/class-updraftplus.php:3998, src/class-updraftplus.php:4001,
6110
  #: src/restorer.php:530
6122
 
6123
  #: src/admin.php:849, src/includes/updraftplus-tour.php:89
6124
  msgid "Close"
6125
+ msgstr "Đóng"
6126
 
6127
  #: src/addons/autobackup.php:349, src/addons/autobackup.php:441,
6128
  #: src/admin.php:803, src/methods/remotesend.php:69,
6137
 
6138
  #: src/admin.php:827
6139
  msgid "PHP information"
6140
+ msgstr "Thông tin PHP"
6141
 
6142
  #: src/templates/wp-admin/advanced/site-info.php:70
6143
  msgid "zip executable found:"
6145
 
6146
  #: src/templates/wp-admin/advanced/site-info.php:45
6147
  msgid "show PHP information (phpinfo)"
6148
+ msgstr "Hiện thông tin PHP (phpinfo)"
6149
 
6150
  #: src/templates/wp-admin/settings/migrator-no-migrator.php:9
6151
  msgid "Do you want to migrate or clone/duplicate a site?"
6189
 
6190
  #: src/admin.php:1695, src/includes/class-wpadmin-commands.php:506
6191
  msgid "Backup set not found"
6192
+ msgstr "Bộ sao lưu không tìm thấy"
6193
 
6194
  #: src/backup.php:189
6195
  msgid "%s - could not back this entity up; the corresponding directory does not exist (%s)"
6224
 
6225
  #: src/admin.php:1167
6226
  msgid "Notice"
6227
+ msgstr "Chú ý"
6228
 
6229
  #: src/backup.php:1061
6230
  msgid "Errors encountered:"
6231
+ msgstr "Lỗi gặp phải:"
6232
 
6233
  #: src/admin.php:795
6234
  msgid "Rescanning (looking for backups that you have uploaded manually into the internal backup store)..."
6236
 
6237
  #: src/admin.php:809
6238
  msgid "Begun looking for this entity"
6239
+ msgstr "Đang bắt đầu tìm kiếm thực thể này"
6240
 
6241
  #: src/methods/s3.php:482
6242
  msgid "%s Error: Failed to access bucket %s. Check your permissions and credentials.1"
6260
 
6261
  #: src/addons/migrator.php:1302, src/admin.php:814
6262
  msgid "Errors:"
6263
+ msgstr "Lỗi:"
6264
 
6265
  #: src/addons/migrator.php:1301
6266
  msgid "SQL update commands run:"
6616
 
6617
  #: src/methods/email.php:92
6618
  msgid "Note:"
6619
+ msgstr "Ghi chú:"
6620
 
6621
  #: src/methods/email.php:45
6622
  msgid "WordPress Backup"
6638
  #: src/addons/webdav.php:187, src/methods/cloudfiles-new.php:189,
6639
  #: src/methods/cloudfiles.php:524, src/methods/openstack2.php:158
6640
  msgid "Username"
6641
+ msgstr "Tài khoản"
6642
 
6643
  #: src/methods/cloudfiles-new.php:184, src/methods/cloudfiles.php:519,
6644
  #: src/methods/s3.php:1089
6657
  #: src/methods/openstack2.php:190, src/methods/openstack2.php:195,
6658
  #: src/methods/s3.php:1089, src/methods/s3.php:1093
6659
  msgid "Failure: No %s was given."
6660
+ msgstr "Thất bại: Không có %s được đưa ra."
6661
 
6662
  #: src/methods/cloudfiles-new.php:100, src/methods/cloudfiles.php:440,
6663
  #: src/methods/openstack-base.php:571, src/methods/s3.php:863
6929
 
6930
  #: src/restorer.php:396
6931
  msgid "Error message"
6932
+ msgstr "Thông báo lỗi"
6933
 
6934
  #: src/restorer.php:231
6935
  msgid "The backup records do not contain information about the proper size of this file."
6961
 
6962
  #: src/admin.php:4268
6963
  msgid "Delete this backup set"
6964
+ msgstr "Xóa bản sao lưu này"
6965
 
6966
  #: src/admin.php:3921
6967
  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."
6982
 
6983
  #: src/templates/wp-admin/settings/form-contents.php:373
6984
  msgid "Save Changes"
6985
+ msgstr "Lưu thay đổi"
6986
 
6987
  #: src/templates/wp-admin/settings/form-contents.php:345
6988
  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."
7050
 
7051
  #: src/templates/wp-admin/settings/form-contents.php:303
7052
  msgid "Debug mode"
7053
+ msgstr "Chế độ kiểm tra sửa lỗi"
7054
 
7055
  #: src/templates/wp-admin/settings/form-contents.php:288
7056
  msgid "Advanced / Debugging Settings"
7062
 
7063
  #: src/addons/morefiles.php:311, src/admin.php:843
7064
  msgid "Cancel"
7065
+ msgstr "Hủy"
7066
 
7067
  #: src/addons/incremental.php:235, src/addons/reporting.php:245,
7068
  #: src/admin.php:4004
7069
  msgid "None"
7070
+ msgstr "Không mục nào"
7071
 
7072
  #: src/templates/wp-admin/settings/form-contents.php:103
7073
  msgid "Choose your remote storage"
7084
  #: src/admin.php:2935, src/templates/wp-admin/settings/form-contents.php:255,
7085
  #: src/templates/wp-admin/settings/updraftcentral-connect.php:44
7086
  msgid "Email"
7087
+ msgstr "Email"
7088
 
7089
  #: src/templates/wp-admin/settings/form-contents.php:147
7090
  msgid "The above directories are everything, except for WordPress core itself which you can download afresh from WordPress.org."
7112
 
7113
  #: src/addons/incremental.php:244, src/admin.php:3724
7114
  msgid "Monthly"
7115
+ msgstr "Hằng tháng"
7116
 
7117
  #: src/addons/incremental.php:243, src/admin.php:3723
7118
  msgid "Fortnightly"
7119
+ msgstr "Mỗi tháng hai lần"
7120
 
7121
  #: src/addons/incremental.php:242, src/admin.php:3722
7122
  msgid "Weekly"
7123
+ msgstr "Hằng tuần"
7124
 
7125
  #: src/addons/incremental.php:241, src/admin.php:3721
7126
  msgid "Daily"
7127
+ msgstr "Hằng ngày"
7128
 
7129
  #: src/admin.php:851, src/admin.php:3699
7130
  msgid "Download log file"
7131
+ msgstr "Tải về tập tin báo cáo"
7132
 
7133
  #: src/admin.php:3571
7134
  msgid "The folder exists, but your webserver does not have permission to write to it."
7147
  #: src/templates/wp-admin/settings/existing-backups-table.php:155,
7148
  #: src/templates/wp-admin/settings/file-backup-exclude.php:11
7149
  msgid "Delete"
7150
+ msgstr "Xóa"
7151
 
7152
  #: src/admin.php:3415
7153
  msgid "show log"
7155
 
7156
  #: src/templates/wp-admin/advanced/wipe-settings.php:9
7157
  msgid "This will delete all your UpdraftPlus settings - are you sure you want to do this?"
7158
+ msgstr "Điều này sẽ xóa tất cả cài đặt UpdraftPlus của bạn - bạn có chắc bạn muốn làm điều này?"
7159
 
7160
  #: src/templates/wp-admin/advanced/total-size.php:19
7161
  msgid "count"
7162
+ msgstr "đếm"
7163
 
7164
  #: src/templates/wp-admin/advanced/total-size.php:9
7165
  msgid "N.B. This count is based upon what was, or was not, excluded the last time you saved the options."
7167
 
7168
  #: src/templates/wp-admin/advanced/total-size.php:6
7169
  msgid "Total (uncompressed) on-disk data:"
7170
+ msgstr "Tổng số dữ liệu trên đĩa (không nén):"
7171
 
7172
  #: src/templates/wp-admin/advanced/site-info.php:66,
7173
  #: src/templates/wp-admin/settings/tab-addons.php:79,
7185
  #: src/templates/wp-admin/settings/tab-addons.php:235,
7186
  #: src/templates/wp-admin/settings/tab-addons.php:252
7187
  msgid "No"
7188
+ msgstr "Không"
7189
 
7190
  #: src/templates/wp-admin/advanced/site-info.php:63,
7191
  #: src/templates/wp-admin/advanced/site-info.php:66,
7208
  #: src/templates/wp-admin/settings/tab-addons.php:255,
7209
  #: src/templates/wp-admin/settings/tab-addons.php:261
7210
  msgid "Yes"
7211
+ msgstr ""
7212
 
7213
  #: src/admin.php:5366, src/admin.php:5370,
7214
  #: src/templates/wp-admin/advanced/site-info.php:45,
7216
  #: src/templates/wp-admin/advanced/site-info.php:58,
7217
  #: src/templates/wp-admin/advanced/site-info.php:59
7218
  msgid "%s version:"
7219
+ msgstr "%s phiên bản:"
7220
 
7221
  #: src/templates/wp-admin/advanced/site-info.php:43
7222
  msgid "Current memory usage"
7228
 
7229
  #: src/templates/wp-admin/advanced/site-info.php:31
7230
  msgid "Web server:"
7231
+ msgstr "Máy chủ web:"
7232
 
7233
  #: src/templates/wp-admin/settings/take-backup.php:91
7234
  msgid "Please check out UpdraftPlus Premium, or the stand-alone Multisite add-on."
7240
 
7241
  #: src/templates/wp-admin/settings/take-backup.php:87
7242
  msgid "Multisite"
7243
+ msgstr "Nhiều trang"
7244
 
7245
  #: src/templates/wp-admin/settings/take-backup.php:82
7246
  msgid "Perform a one-time backup"
7257
  #: src/addons/morefiles.php:137,
7258
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:75
7259
  msgid "%s restoration options:"
7260
+ msgstr "%s tùy chọn phục hồi:"
7261
 
7262
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:68
7263
  msgid "You will need to restore it manually."
7264
+ msgstr "Bạn sẽ cần phải khôi phục lại nó bằng tay."
7265
 
7266
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:68
7267
  msgid "The following entity cannot be restored automatically: \"%s\"."
7273
 
7274
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:42
7275
  msgid "Choose the components to restore"
7276
+ msgstr "Chọn các thành phần để khôi phục"
7277
 
7278
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:42
7279
  msgid "Restoring will replace this site's themes, plugins, uploads, database and/or other content directories (according to what is contained in the backup set, and your selection)."
7281
 
7282
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:30
7283
  msgid "Restore backup from"
7284
+ msgstr "Khôi phục sao lưu từ"
7285
 
7286
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:29
7287
  msgid "Restore backup"
7288
+ msgstr "Khôi phục bản sao lưu"
7289
 
7290
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:8
7291
  msgid "Delete backup set"
7293
 
7294
  #: src/admin.php:825
7295
  msgid "Download error: the server sent us a response which we did not understand."
7296
+ msgstr "Tải về lỗi: máy chủ gửi cho chúng tôi hồi đáp mà chúng tôi không hiểu."
7297
 
7298
  #: src/addons/backblaze.php:225, src/addons/cloudfiles-enhanced.php:117,
7299
  #: src/addons/migrator.php:890, src/addons/migrator.php:1187,
7313
  #: src/methods/updraftvault.php:527, src/restorer.php:228,
7314
  #: src/restorer.php:256, src/restorer.php:1921
7315
  msgid "Error:"
7316
+ msgstr "Lỗi:"
7317
 
7318
  #: src/admin.php:808
7319
  msgid "calculating..."
7320
+ msgstr "Đang tính..."
7321
 
7322
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:68,
7323
  #: src/templates/wp-admin/settings/tab-backups.php:70
7324
  msgid "UpdraftPlus - Upload backup files"
7325
+ msgstr "UpdraftPlus - Tải lên tập tin sao lưu"
7326
 
7327
  #: src/includes/class-filesystem-functions.php:65,
7328
  #: src/templates/wp-admin/advanced/site-info.php:38
7329
  msgid "refresh"
7330
+ msgstr "làm mới"
7331
 
7332
  #: src/includes/class-filesystem-functions.php:86,
7333
  #: src/templates/wp-admin/advanced/site-info.php:38
7358
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:59,
7359
  #: src/templates/wp-admin/settings/tab-backups.php:63
7360
  msgid "Opera web browser"
7361
+ msgstr "Trình duyệt web Opera"
7362
 
7363
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:47,
7364
  #: src/templates/wp-admin/settings/tab-backups.php:51
7365
  msgid "More tasks:"
7366
+ msgstr "Nhiều nhiệm vụ:"
7367
 
7368
  #: src/admin.php:3114
7369
  msgid "Download most recently modified log file"
7370
+ msgstr "Tải về tập tin báo cáo thay đổi mới nhất"
7371
 
7372
  #: src/central/bootstrap.php:187
7373
  msgid "(Nothing yet logged)"
7377
  #: src/admin.php:3070, src/admin.php:3076,
7378
  #: src/templates/wp-admin/settings/take-backup.php:64
7379
  msgid "Last log message"
7380
+ msgstr "Báo cáo thay đổi mới nhất"
7381
 
7382
  #: src/addons/migrator.php:271, src/admin.php:663, src/admin.php:850,
7383
  #: src/admin.php:4170
7384
  msgid "Restore"
7385
+ msgstr "Khôi Phục"
7386
 
7387
  #: src/admin.php:842, src/templates/wp-admin/settings/take-backup.php:50
7388
  msgid "Backup Now"
7389
+ msgstr "Sao Lưu Ngay"
7390
 
7391
  #: src/templates/wp-admin/settings/take-backup.php:45
7392
  msgid "Time now"
7401
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:75,
7402
  #: src/templates/wp-admin/settings/take-backup.php:33
7403
  msgid "Database"
7404
+ msgstr "Cơ sở dữ liệu"
7405
 
7406
  #: src/admin.php:334, src/admin.php:5161,
7407
  #: src/templates/wp-admin/settings/take-backup.php:23
7427
 
7428
  #: src/templates/wp-admin/settings/take-backup.php:5
7429
  msgid "JavaScript warning"
7430
+ msgstr "Cảnh báo JavaScript"
7431
 
7432
  #: src/admin.php:828, src/admin.php:3151
7433
  msgid "Delete Old Directories"
7434
+ msgstr "Xóa thư mục cũ"
7435
 
7436
  #: src/admin.php:2638
7437
  msgid "Current limit is:"
7439
 
7440
  #: src/admin.php:2613
7441
  msgid "Your backup has been restored."
7442
+ msgstr "Bản sao lưu của bạn đã được khôi phục."
7443
 
7444
  #: src/templates/wp-admin/settings/header.php:26
7445
  msgid "Version"
7446
+ msgstr "Phiên bản"
7447
 
7448
  #: src/templates/wp-admin/settings/header.php:25
7449
  msgid "Lead developer's homepage"
7455
 
7456
  #: src/admin.php:5053
7457
  msgid "Your settings have been wiped."
7458
+ msgstr "Các cài đặt của bạn đã được xóa."
7459
 
7460
  #: src/admin.php:2573
7461
  msgid "Backup directory successfully created."
7481
  #: src/admin.php:2514, src/admin.php:2524, src/admin.php:2533,
7482
  #: src/admin.php:2575, src/admin.php:3433
7483
  msgid "Return to UpdraftPlus Configuration"
7484
+ msgstr "Quay trở lại UpdraftPlus"
7485
 
7486
  #: src/admin.php:821, src/admin.php:2514, src/admin.php:2524,
7487
  #: src/admin.php:2533, src/admin.php:2575, src/admin.php:3433,
7488
  #: src/templates/wp-admin/settings/existing-backups-table.php:19,
7489
  #: src/templates/wp-admin/settings/existing-backups-table.php:139
7490
  msgid "Actions"
7491
+ msgstr "Tác vụ"
7492
 
7493
  #: src/admin.php:2409
7494
  msgid "Bad filename format - this does not look like an encrypted database file created by UpdraftPlus"
7496
 
7497
  #: src/admin.php:2309
7498
  msgid "Bad filename format - this does not look like a file created by UpdraftPlus"
7499
+ msgstr "Định dạng sai tên tập tin - điều này không giống như tập tin được tạo bởi UpdraftPlus"
7500
 
7501
  #: src/admin.php:2205
7502
  msgid "No local copy present."
7504
 
7505
  #: src/admin.php:2202
7506
  msgid "Download in progress"
7507
+ msgstr "Tiến trình tải về"
7508
 
7509
  #: src/admin.php:820, src/admin.php:2191
7510
  msgid "File ready."
7511
+ msgstr "Tập tin sẵn sàng."
7512
 
7513
  #: src/admin.php:2172
7514
  msgid "Download failed"
7515
+ msgstr "Tải về thất bại"
7516
 
7517
  #: src/addons/wp-cli.php:518, src/admin.php:818,
7518
  #: src/class-updraftplus.php:1298, src/class-updraftplus.php:1342,
7523
  #: src/methods/stream-base.php:219, src/restorer.php:2884,
7524
  #: src/restorer.php:2909, src/restorer.php:2990, src/updraftplus.php:157
7525
  msgid "Error"
7526
+ msgstr "Lỗi"
7527
 
7528
  #: src/admin.php:1959
7529
  msgid "Could not find that job - perhaps it has already finished?"
7531
 
7532
  #: src/admin.php:1951
7533
  msgid "Job deleted"
7534
+ msgstr "Công việc đã xóa"
7535
 
7536
  #: src/admin.php:2050, src/includes/class-commands.php:833
7537
  msgid "OK. You should soon see activity in the \"Last log message\" field below."
7538
+ msgstr "OK. Bạn sẽ sớm nhìn thấy \"Báo cáo thay đổi mới nhất\" trong trường bên dưới"
7539
 
7540
  #: src/admin.php:895
7541
  msgid "Nothing yet logged"
7543
 
7544
  #: src/admin.php:1163
7545
  msgid "Please consult this FAQ if you have problems backing up."
7546
+ msgstr "Vui lòng tham khảo FAQ nếu bạn gặp vấn đề sao lưu."
7547
 
7548
  #: src/admin.php:1163
7549
  msgid "Your website is hosted using the %s web server."
7569
  #: src/templates/wp-admin/settings/tab-backups.php:27,
7570
  #: src/udaddons/updraftplus-addons.php:259
7571
  msgid "Warning"
7572
+ msgstr "Cảnh báo"
7573
 
7574
  #: src/admin.php:1092
7575
  msgid "Add-Ons / Pro Support"
7577
 
7578
  #: src/admin.php:679, src/admin.php:1090, src/admin.php:2800
7579
  msgid "Settings"
7580
+ msgstr "Thiết lập"
7581
 
7582
  #: src/backup.php:261
7583
  msgid "Could not create %s zip. Consult the log file for more information."
languages/updraftplus.pot CHANGED
@@ -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:3070, src/admin.php:3076, src/templates/wp-admin/settings/take-backup.php:64
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:976, src/includes/updraftplus-notices.php:171
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:3636, src/methods/googledrive.php:1120, src/methods/s3.php:341
121
  msgid "File not found"
122
  msgstr ""
123
 
@@ -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:945, src/admin.php:1147, src/admin.php:1151, src/admin.php:1155, src/admin.php:1159, src/admin.php:1163, src/admin.php:1172, src/admin.php:3909, src/admin.php:3916, src/admin.php:3918, src/admin.php:5344, 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:859, src/methods/s3.php:863, src/methods/updraftvault.php:306, 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:3909, src/methods/updraftvault.php:306
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
 
@@ -225,11 +225,11 @@ msgstr ""
225
  msgid "Azure Government"
226
  msgstr ""
227
 
228
- #: src/addons/backblaze.php:205, src/admin.php:2113
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:890, src/addons/migrator.php:1187, src/addons/migrator.php:1268, src/addons/migrator.php:1317, src/addons/migrator.php:1555, 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:462, src/includes/class-remote-send.php:472, src/includes/class-remote-send.php:477, src/methods/remotesend.php:74, src/methods/remotesend.php:242, src/methods/remotesend.php:298, src/methods/updraftvault.php:527, src/restorer.php:228, src/restorer.php:256, src/restorer.php:1921
233
  msgid "Error:"
234
  msgstr ""
235
 
@@ -597,7 +597,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:587, src/admin.php:2288, src/admin.php:2309, src/admin.php:2317, src/class-updraftplus.php:997, src/class-updraftplus.php:1003, src/class-updraftplus.php:3831, src/class-updraftplus.php:3833, src/class-updraftplus.php:3998, src/class-updraftplus.php:4005, src/class-updraftplus.php:4076, src/methods/googledrive.php:403, src/methods/s3.php:341
601
  msgid "Error: %s"
602
  msgstr ""
603
 
@@ -625,7 +625,7 @@ msgstr ""
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:939, src/addons/sftp.php:591, src/addons/sftp.php:595, src/addons/wp-cli.php:515, 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:1155, src/methods/stream-base.php:372
629
  msgid "Success"
630
  msgstr ""
631
 
@@ -641,7 +641,7 @@ 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:3464, src/admin.php:3500, src/admin.php:3510, src/methods/addon-base-v2.php:313, src/methods/stream-base.php:356
645
  msgid "Failed"
646
  msgstr ""
647
 
@@ -717,7 +717,7 @@ msgstr ""
717
  msgid "Otherwise, you can leave it blank."
718
  msgstr ""
719
 
720
- #: src/addons/googlecloud.php:1034, src/addons/migrator.php:490, src/addons/migrator.php:493, src/addons/migrator.php:496, src/admin.php:1151, src/admin.php:2596, src/backup.php:3431, src/class-updraftplus.php:4097, src/class-updraftplus.php:4097, src/updraftplus.php:157
721
  msgid "Go here for more information."
722
  msgstr ""
723
 
@@ -773,51 +773,63 @@ msgstr ""
773
  msgid "Supported backup plugins: %s"
774
  msgstr ""
775
 
776
- #: src/addons/importer.php:276, src/admin.php:4072, src/includes/class-backup-history.php:435
777
  msgid "Backup created by: %s."
778
  msgstr ""
779
 
780
- #: src/addons/incremental.php:70, src/addons/incremental.php:72
781
  msgid "(latest increment: %s)"
782
  msgstr ""
783
 
784
- #: src/addons/incremental.php:72
785
  msgid "Increments exist at: %s"
786
  msgstr ""
787
 
788
- #: src/addons/incremental.php:235, src/addons/reporting.php:245, src/admin.php:4004
 
 
 
 
 
 
 
 
 
 
 
 
789
  msgid "None"
790
  msgstr ""
791
 
792
- #: src/addons/incremental.php:236, src/updraftplus.php:99
793
  msgid "Every hour"
794
  msgstr ""
795
 
796
- #: src/addons/incremental.php:237, src/addons/incremental.php:238, src/addons/incremental.php:239, src/addons/incremental.php:240, src/admin.php:3718, src/admin.php:3719, src/admin.php:3720, src/updraftplus.php:100, src/updraftplus.php:101, src/updraftplus.php:102
797
  msgid "Every %s hours"
798
  msgstr ""
799
 
800
- #: src/addons/incremental.php:241, src/admin.php:3721
801
  msgid "Daily"
802
  msgstr ""
803
 
804
- #: src/addons/incremental.php:242, src/admin.php:3722
805
  msgid "Weekly"
806
  msgstr ""
807
 
808
- #: src/addons/incremental.php:243, src/admin.php:3723
809
  msgid "Fortnightly"
810
  msgstr ""
811
 
812
- #: src/addons/incremental.php:244, src/admin.php:3724
813
  msgid "Monthly"
814
  msgstr ""
815
 
816
- #: src/addons/incremental.php:258
817
  msgid "And then add an incremental backup"
818
  msgstr ""
819
 
820
- #: src/addons/incremental.php:270
821
  msgid "Tell me more"
822
  msgstr ""
823
 
@@ -841,7 +853,7 @@ msgstr ""
841
  msgid "Please make sure that you have made a note of the password!"
842
  msgstr ""
843
 
844
- #: src/addons/lockadmin.php:171, src/addons/moredatabase.php:241, src/addons/sftp.php:459, src/addons/webdav.php:193, src/admin.php:2945, src/methods/openstack2.php:164, src/methods/updraftvault.php:361, src/templates/wp-admin/settings/updraftcentral-connect.php:50
845
  msgid "Password"
846
  msgstr ""
847
 
@@ -913,361 +925,361 @@ msgstr ""
913
  msgid "Read this article to see step-by-step how it's done."
914
  msgstr ""
915
 
916
- #: src/addons/migrator.php:229, src/addons/migrator.php:1731, src/addons/migrator.php:1752
917
  msgid "back"
918
  msgstr ""
919
 
920
- #: src/addons/migrator.php:230
921
  msgid "Restore an existing backup set onto this site"
922
  msgstr ""
923
 
924
- #: src/addons/migrator.php:233
925
  msgid "To import a backup set, go to the \"Existing Backups\" section in the \"Backup/Restore\" tab"
926
  msgstr ""
927
 
928
- #: src/addons/migrator.php:236
929
  msgid "This site has no backups to restore from yet."
930
  msgstr ""
931
 
932
- #: src/addons/migrator.php:271
933
  msgid "After pressing this button, you will be given the option to choose which components you wish to migrate"
934
  msgstr ""
935
 
936
- #: src/addons/migrator.php:271, src/admin.php:663, src/admin.php:850, src/admin.php:4170
937
  msgid "Restore"
938
  msgstr ""
939
 
940
- #: src/addons/migrator.php:275
941
  msgid "For incremental backups, you will be able to choose which increments to restore at a later stage."
942
  msgstr ""
943
 
944
- #: src/addons/migrator.php:304
945
  msgid "Disabled this plugin: %s: re-activate it manually when you are ready."
946
  msgstr ""
947
 
948
- #: src/addons/migrator.php:331, src/addons/migrator.php:376, src/templates/wp-admin/advanced/search-replace.php:7, src/templates/wp-admin/advanced/tools-menu.php:18
949
  msgid "Search / replace database"
950
  msgstr ""
951
 
952
- #: src/addons/migrator.php:332, src/addons/migrator.php:384
953
  msgid "Search for"
954
  msgstr ""
955
 
956
- #: src/addons/migrator.php:333, src/addons/migrator.php:385
957
  msgid "Replace with"
958
  msgstr ""
959
 
960
- #: src/addons/migrator.php:337, 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:454, 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:1089, src/methods/s3.php:1093
961
  msgid "Failure: No %s was given."
962
  msgstr ""
963
 
964
- #: src/addons/migrator.php:337
965
  msgid "search term"
966
  msgstr ""
967
 
968
- #: src/addons/migrator.php:340, src/addons/migrator.php:355, src/admin.php:2514, src/admin.php:2524, src/admin.php:2533, src/admin.php:2575, src/admin.php:3433
969
  msgid "Return to UpdraftPlus Configuration"
970
  msgstr ""
971
 
972
- #: src/addons/migrator.php:377
973
  msgid "This can easily destroy your site; so, use it with care!"
974
  msgstr ""
975
 
976
- #: src/addons/migrator.php:378
977
  msgid "A search/replace cannot be undone - are you sure you want to do this?"
978
  msgstr ""
979
 
980
- #: src/addons/migrator.php:386
981
  msgid "Rows per batch"
982
  msgstr ""
983
 
984
- #: src/addons/migrator.php:387
985
  msgid "These tables only"
986
  msgstr ""
987
 
988
- #: src/addons/migrator.php:387
989
  msgid "Enter a comma-separated list; otherwise, leave blank for all tables."
990
  msgstr ""
991
 
992
- #: src/addons/migrator.php:389
993
  msgid "Go"
994
  msgstr ""
995
 
996
- #: src/addons/migrator.php:406
997
  msgid "This looks like a migration (the backup is from a site with a different address/URL, %s)."
998
  msgstr ""
999
 
1000
- #: src/addons/migrator.php:417
1001
  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 below search and replace to search/replace the site address so that the site can be visited without https."
1002
  msgstr ""
1003
 
1004
- #: src/addons/migrator.php:428
1005
  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 below search and replace so that the non-https links are automatically replaced."
1006
  msgstr ""
1007
 
1008
- #: src/addons/migrator.php:439
1009
  msgid "you will want to use below search and replace site location in the database (migrate) to search/replace the site address."
1010
  msgstr ""
1011
 
1012
- #: src/addons/migrator.php:444
1013
  msgid "Processed plugin:"
1014
  msgstr ""
1015
 
1016
- #: src/addons/migrator.php:454
1017
  msgid "Network activating theme:"
1018
  msgstr ""
1019
 
1020
- #: src/addons/migrator.php:490, src/addons/migrator.php:493, src/addons/migrator.php:496
1021
  msgid "You selected %s to be included in the restoration - this cannot / should not be done when importing a single site into a network."
1022
  msgstr ""
1023
 
1024
- #: src/addons/migrator.php:490
1025
  msgid "WordPress core"
1026
  msgstr ""
1027
 
1028
- #: src/addons/migrator.php:493
1029
  msgid "other content from wp-content"
1030
  msgstr ""
1031
 
1032
- #: src/addons/migrator.php:496, src/addons/multisite.php:692
1033
  msgid "Must-use plugins"
1034
  msgstr ""
1035
 
1036
- #: src/addons/migrator.php:501, src/addons/migrator.php:503
1037
  msgid "Importing a single site into a multisite install"
1038
  msgstr ""
1039
 
1040
- #: src/addons/migrator.php:501, src/templates/wp-admin/settings/downloading-and-restoring.php:72, src/templates/wp-admin/settings/form-contents.php:182, src/templates/wp-admin/settings/tab-backups.php:74
1041
  msgid "This feature requires %s version %s or later"
1042
  msgstr ""
1043
 
1044
- #: src/addons/migrator.php:503
1045
  msgid "This feature is not compatible with %s"
1046
  msgstr ""
1047
 
1048
- #: src/addons/migrator.php:509
1049
  msgid "Information needed to continue:"
1050
  msgstr ""
1051
 
1052
- #: src/addons/migrator.php:510
1053
  msgid "Enter details for where this new site is to live within your multisite install:"
1054
  msgstr ""
1055
 
1056
- #: src/addons/migrator.php:515, src/addons/migrator.php:517
1057
  msgid "You must use lower-case letters or numbers for the site path, only."
1058
  msgstr ""
1059
 
1060
- #: src/addons/migrator.php:525
1061
  msgid "Attribute imported content to user"
1062
  msgstr ""
1063
 
1064
- #: src/addons/migrator.php:561
1065
  msgid "Database restoration options:"
1066
  msgstr ""
1067
 
1068
- #: src/addons/migrator.php:562
1069
  msgid "All references to the site location in the database will be replaced with your current site URL, which is: %s"
1070
  msgstr ""
1071
 
1072
- #: src/addons/migrator.php:562
1073
  msgid "Search and replace site location in the database (migrate)"
1074
  msgstr ""
1075
 
1076
- #: src/addons/migrator.php:570
1077
  msgid "Migrated site (from UpdraftPlus)"
1078
  msgstr ""
1079
 
1080
- #: src/addons/migrator.php:573
1081
  msgid "Required information for restoring this backup was not given (%s)"
1082
  msgstr ""
1083
 
1084
- #: src/addons/migrator.php:595
1085
  msgid "New site:"
1086
  msgstr ""
1087
 
1088
- #: src/addons/migrator.php:631, src/addons/migrator.php:632
1089
  msgid "Error when creating new site at your chosen address:"
1090
  msgstr ""
1091
 
1092
- #: src/addons/migrator.php:903, src/addons/migrator.php:1282
1093
  msgid "Failed: the %s operation was not able to start."
1094
  msgstr ""
1095
 
1096
- #: src/addons/migrator.php:903, src/addons/migrator.php:905
1097
  msgid "search and replace"
1098
  msgstr ""
1099
 
1100
- #: src/addons/migrator.php:905, src/addons/migrator.php:1284
1101
  msgid "Failed: we did not understand the result returned by the %s operation."
1102
  msgstr ""
1103
 
1104
- #: src/addons/migrator.php:945
1105
  msgid "Your .htaccess has an old site reference on line number %s. You should remove it manually."
1106
  msgid_plural "Your .htaccess has an old site references on line numbers %s. You should remove them manually."
1107
  msgstr[0] ""
1108
  msgstr[1] ""
1109
 
1110
- #: src/addons/migrator.php:1045
1111
  msgid "Database: search and replace site URL"
1112
  msgstr ""
1113
 
1114
- #: src/addons/migrator.php:1085, src/addons/migrator.php:1089, src/addons/migrator.php:1093, src/addons/migrator.php:1098, src/addons/migrator.php:1102, src/addons/migrator.php:1107
1115
  msgid "Error: unexpected empty parameter (%s, %s)"
1116
  msgstr ""
1117
 
1118
- #: src/addons/migrator.php:1121
1119
  msgid "Nothing to do: the site URL is already: %s"
1120
  msgstr ""
1121
 
1122
- #: src/addons/migrator.php:1132
1123
  msgid "Warning: the database's site URL (%s) is different to what we expected (%s)"
1124
  msgstr ""
1125
 
1126
- #: src/addons/migrator.php:1140
1127
  msgid "Warning: the database's home URL (%s) is different to what we expected (%s)"
1128
  msgstr ""
1129
 
1130
- #: src/addons/migrator.php:1187
1131
  msgid "Could not get list of tables"
1132
  msgstr ""
1133
 
1134
- #: src/addons/migrator.php:1209, src/addons/migrator.php:1252, src/addons/migrator.php:1386
1135
  msgid "Search and replacing table:"
1136
  msgstr ""
1137
 
1138
- #: src/addons/migrator.php:1209
1139
  msgid "skipped (not in list)"
1140
  msgstr ""
1141
 
1142
- #: src/addons/migrator.php:1252
1143
  msgid "already done"
1144
  msgstr ""
1145
 
1146
- #: src/addons/migrator.php:1298
1147
  msgid "Tables examined:"
1148
  msgstr ""
1149
 
1150
- #: src/addons/migrator.php:1299
1151
  msgid "Rows examined:"
1152
  msgstr ""
1153
 
1154
- #: src/addons/migrator.php:1300
1155
  msgid "Changes made:"
1156
  msgstr ""
1157
 
1158
- #: src/addons/migrator.php:1301
1159
  msgid "SQL update commands run:"
1160
  msgstr ""
1161
 
1162
- #: src/addons/migrator.php:1302, src/admin.php:814
1163
  msgid "Errors:"
1164
  msgstr ""
1165
 
1166
- #: src/addons/migrator.php:1303
1167
  msgid "Time taken (seconds):"
1168
  msgstr ""
1169
 
1170
- #: src/addons/migrator.php:1317, src/restorer.php:2784
1171
  msgid "the database query being run was:"
1172
  msgstr ""
1173
 
1174
- #: src/addons/migrator.php:1429
1175
  msgid "rows: %d"
1176
  msgstr ""
1177
 
1178
- #: src/addons/migrator.php:1555
1179
  msgid "\"%s\" has no primary key, manual change needed on row %s."
1180
  msgstr ""
1181
 
1182
- #: src/addons/migrator.php:1732
1183
  msgid "Send a backup to another site"
1184
  msgstr ""
1185
 
1186
- #: src/addons/migrator.php:1736
1187
  msgid "Add a site"
1188
  msgstr ""
1189
 
1190
- #: src/addons/migrator.php:1741
1191
  msgid "To add a site as a destination for sending to, enter that site's key below."
1192
  msgstr ""
1193
 
1194
- #: src/addons/migrator.php:1741
1195
  msgid "Keys for a site are created in the section \"receive a backup from a remote site\"."
1196
  msgstr ""
1197
 
1198
- #: src/addons/migrator.php:1741
1199
  msgid "So, to get the key for the remote site, open the 'Migrate Site' window on that site, and go to that section."
1200
  msgstr ""
1201
 
1202
- #: src/addons/migrator.php:1741
1203
  msgid "How do I get a site's key?"
1204
  msgstr ""
1205
 
1206
- #: src/addons/migrator.php:1745
1207
  msgid "Site key"
1208
  msgstr ""
1209
 
1210
- #: src/addons/migrator.php:1745
1211
  msgid "Paste key here"
1212
  msgstr ""
1213
 
1214
- #: src/addons/migrator.php:1745, src/admin.php:862
1215
  msgid "Add site"
1216
  msgstr ""
1217
 
1218
- #: src/addons/migrator.php:1753
1219
  msgid "Receive a backup from a remote site"
1220
  msgstr ""
1221
 
1222
- #: src/addons/migrator.php:1755
1223
  msgid "To allow another site to send a backup to this site, create a key below. When you are shown the key, then press the 'Migrate' button on the other (sending) site, and copy-and-paste the key over there (in the 'Send a backup to another site' section)."
1224
  msgstr ""
1225
 
1226
- #: src/addons/migrator.php:1757
1227
  msgid "Create a key: give this key a unique name (e.g. indicate the site it is for), then press \"Create key\":"
1228
  msgstr ""
1229
 
1230
- #: src/addons/migrator.php:1758
1231
  msgid "Enter your chosen name"
1232
  msgstr ""
1233
 
1234
- #: src/addons/migrator.php:1758, src/addons/sftp.php:467, src/admin.php:868, src/admin.php:5192, src/templates/wp-admin/settings/temporary-clone.php:63
1235
  msgid "Key"
1236
  msgstr ""
1237
 
1238
- #: src/addons/migrator.php:1760, src/central/bootstrap.php:542
1239
  msgid "Encryption key size:"
1240
  msgstr ""
1241
 
1242
- #: src/addons/migrator.php:1762, src/addons/migrator.php:1763, src/addons/migrator.php:1765, src/central/bootstrap.php:544, src/central/bootstrap.php:545, src/central/bootstrap.php:547
1243
  msgid "%s bits"
1244
  msgstr ""
1245
 
1246
- #: src/addons/migrator.php:1762, src/central/bootstrap.php:544
1247
  msgid "easy to break, fastest"
1248
  msgstr ""
1249
 
1250
- #: src/addons/migrator.php:1763, src/central/bootstrap.php:545
1251
  msgid "faster (possibility for slow PHP installs)"
1252
  msgstr ""
1253
 
1254
- #: src/addons/migrator.php:1764, src/central/bootstrap.php:546
1255
  msgid "%s bytes"
1256
  msgstr ""
1257
 
1258
- #: src/addons/migrator.php:1764, src/central/bootstrap.php:546
1259
  msgid "recommended"
1260
  msgstr ""
1261
 
1262
- #: src/addons/migrator.php:1765, src/central/bootstrap.php:547
1263
  msgid "slower, strongest"
1264
  msgstr ""
1265
 
1266
- #: src/addons/migrator.php:1768
1267
  msgid "Create key"
1268
  msgstr ""
1269
 
1270
- #: src/addons/migrator.php:1773
1271
  msgid "Your new key:"
1272
  msgstr ""
1273
 
@@ -1291,7 +1303,7 @@ msgstr ""
1291
  msgid "database connection attempt failed"
1292
  msgstr ""
1293
 
1294
- #: src/addons/moredatabase.php:112, src/backup.php:1603
1295
  msgid "Connection failed: check your access details, that the database server is up, and that the network connection is not firewalled."
1296
  msgstr ""
1297
 
@@ -1303,7 +1315,7 @@ msgstr ""
1303
  msgid "%s total table(s) found; %s with the indicated prefix."
1304
  msgstr ""
1305
 
1306
- #: src/addons/moredatabase.php:144, src/admin.php:1642
1307
  msgid "Messages:"
1308
  msgstr ""
1309
 
@@ -1347,7 +1359,7 @@ msgstr ""
1347
  msgid "Username"
1348
  msgstr ""
1349
 
1350
- #: src/addons/moredatabase.php:242, src/addons/reporting.php:260, src/addons/wp-cli.php:431, src/admin.php:344, src/admin.php:3979, src/admin.php:4032, src/includes/class-remote-send.php:331, src/includes/class-wpadmin-commands.php:157, src/includes/class-wpadmin-commands.php:521, src/restorer.php:354, 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:33
1351
  msgid "Database"
1352
  msgstr ""
1353
 
@@ -1404,7 +1416,7 @@ msgctxt "(verb)"
1404
  msgid "Download"
1405
  msgstr ""
1406
 
1407
- #: src/addons/morefiles.php:129, src/addons/morefiles.php:130, src/addons/reporting.php:184
1408
  msgid "Contains:"
1409
  msgstr ""
1410
 
@@ -1500,7 +1512,7 @@ msgstr ""
1500
  msgid "Exclude these:"
1501
  msgstr ""
1502
 
1503
- #: src/addons/morefiles.php:476, src/admin.php:3831
1504
  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."
1505
  msgstr ""
1506
 
@@ -1696,119 +1708,119 @@ msgstr ""
1696
  msgid "(You appear to be already authenticated)."
1697
  msgstr ""
1698
 
1699
- #: src/addons/reporting.php:67
1700
  msgid "Your label for this backup (optional)"
1701
  msgstr ""
1702
 
1703
- #: src/addons/reporting.php:72, src/addons/reporting.php:181, src/backup.php:1135, src/class-updraftplus.php:3914
1704
  msgid "Backup of:"
1705
  msgstr ""
1706
 
1707
- #: src/addons/reporting.php:152
1708
  msgid "%d errors, %d warnings"
1709
  msgstr ""
1710
 
1711
- #: src/addons/reporting.php:166
1712
  msgid "%d hours, %d minutes, %d seconds"
1713
  msgstr ""
1714
 
1715
- #: src/addons/reporting.php:171
1716
  msgid "Backup Report"
1717
  msgstr ""
1718
 
1719
- #: src/addons/reporting.php:172
1720
  msgid "Backup made by %s"
1721
  msgstr ""
1722
 
1723
- #: src/addons/reporting.php:182, src/backup.php:1138
1724
  msgid "Latest status:"
1725
  msgstr ""
1726
 
1727
- #: src/addons/reporting.php:183
1728
  msgid "Backup began:"
1729
  msgstr ""
1730
 
1731
- #: src/addons/reporting.php:195
1732
  msgid "Errors / warnings:"
1733
  msgstr ""
1734
 
1735
- #: src/addons/reporting.php:198
1736
  msgid "Errors"
1737
  msgstr ""
1738
 
1739
- #: src/addons/reporting.php:213
1740
  msgid "Warnings"
1741
  msgstr ""
1742
 
1743
- #: src/addons/reporting.php:218
1744
  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."
1745
  msgstr ""
1746
 
1747
- #: src/addons/reporting.php:222
1748
  msgid "Time taken:"
1749
  msgstr ""
1750
 
1751
- #: src/addons/reporting.php:223, src/admin.php:3992
1752
  msgid "Uploaded to:"
1753
  msgstr ""
1754
 
1755
- #: src/addons/reporting.php:265, src/backup.php:1088
1756
  msgid "The log file has been attached to this email."
1757
  msgstr ""
1758
 
1759
- #: src/addons/reporting.php:268
1760
  msgid "Debugging information"
1761
  msgstr ""
1762
 
1763
- #: src/addons/reporting.php:392
1764
  msgid "Use the \"Reporting\" section to configure the email addresses to be used."
1765
  msgstr ""
1766
 
1767
- #: src/addons/reporting.php:440
1768
  msgid "Email reports"
1769
  msgstr ""
1770
 
1771
- #: src/addons/reporting.php:466
1772
  msgid "Enter addresses here to have a report sent to them when a backup job finishes."
1773
  msgstr ""
1774
 
1775
- #: src/addons/reporting.php:481
1776
  msgid "Add another address..."
1777
  msgstr ""
1778
 
1779
- #: src/addons/reporting.php:495
1780
  msgid "Log all messages to syslog"
1781
  msgstr ""
1782
 
1783
- #: src/addons/reporting.php:496
1784
  msgid "Log all messages to syslog (only server admins are likely to want this)"
1785
  msgstr ""
1786
 
1787
- #: src/addons/reporting.php:523, src/admin.php:798
1788
  msgid "To send to more than one address, separate each address with a comma."
1789
  msgstr ""
1790
 
1791
- #: src/addons/reporting.php:525, src/admin.php:792
1792
  msgid "Send a report only when there are warnings/errors"
1793
  msgstr ""
1794
 
1795
- #: src/addons/reporting.php:527, src/addons/reporting.php:527, src/addons/reporting.php:529, src/methods/email.php:100
1796
  msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
1797
  msgstr ""
1798
 
1799
- #: src/addons/reporting.php:527, src/admin.php:793
1800
  msgid "When the Email storage method is enabled, also send the backup"
1801
  msgstr ""
1802
 
1803
- #: src/addons/reporting.php:529
1804
  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."
1805
  msgstr ""
1806
 
1807
- #: src/addons/reporting.php:529
1808
  msgid "Use this option to only send database backups when sending to email, and skip other components."
1809
  msgstr ""
1810
 
1811
- #: src/addons/reporting.php:529, src/admin.php:796
1812
  msgid "Only email the database backup"
1813
  msgstr ""
1814
 
@@ -2177,123 +2189,123 @@ msgstr ""
2177
  msgid "Path"
2178
  msgstr ""
2179
 
2180
- #: src/addons/wp-cli.php:88
2181
- msgid "No previous backup found to add an increment to."
2182
  msgstr ""
2183
 
2184
- #: src/addons/wp-cli.php:100, src/addons/wp-cli.php:509, src/addons/wp-cli.php:631, src/addons/wp-cli.php:719, src/addons/wp-cli.php:742
2185
- msgid "The given value for the '%s' option is not valid"
2186
  msgstr ""
2187
 
2188
- #: src/addons/wp-cli.php:109, src/admin.php:801
2189
  msgid "You have chosen to backup a database, but no tables have been selected"
2190
  msgstr ""
2191
 
2192
- #: src/addons/wp-cli.php:115, src/admin.php:799
2193
  msgid "If you exclude both the database and the files, then you have excluded everything!"
2194
  msgstr ""
2195
 
2196
- #: src/addons/wp-cli.php:195
2197
  msgid "Recently started backup job id: %s"
2198
  msgstr ""
2199
 
2200
- #: src/addons/wp-cli.php:205
2201
  msgid "Backup has been started successfully. You can see the last log message by running the following command: \"%s\""
2202
  msgstr ""
2203
 
2204
- #: src/addons/wp-cli.php:265
2205
  msgid "Invalid Job Id"
2206
  msgstr ""
2207
 
2208
- #: src/addons/wp-cli.php:371, src/templates/wp-admin/settings/existing-backups-table.php:101
2209
  msgid "Backup sent to remote site - not available for download."
2210
  msgstr ""
2211
 
2212
- #: src/addons/wp-cli.php:373, src/templates/wp-admin/settings/existing-backups-table.php:102
2213
  msgid "Site"
2214
  msgstr ""
2215
 
2216
- #: src/addons/wp-cli.php:407
2217
  msgid "No previous full backup found."
2218
  msgstr ""
2219
 
2220
- #: src/addons/wp-cli.php:408
2221
  msgid "Latest full backup found; identifier:"
2222
  msgstr ""
2223
 
2224
- #: src/addons/wp-cli.php:429, src/admin.php:4026, src/admin.php:4074
2225
  msgid "unknown source"
2226
  msgstr ""
2227
 
2228
- #: src/addons/wp-cli.php:431, src/admin.php:4032
2229
  msgid "Database (created by %s)"
2230
  msgstr ""
2231
 
2232
- #: src/addons/wp-cli.php:437, src/admin.php:4034
2233
  msgid "External database"
2234
  msgstr ""
2235
 
2236
- #: src/addons/wp-cli.php:449, src/admin.php:4078
2237
  msgid "Files and database WordPress backup (created by %s)"
2238
  msgstr ""
2239
 
2240
- #: src/addons/wp-cli.php:449, src/admin.php:4078
2241
  msgid "Files backup (created by %s)"
2242
  msgstr ""
2243
 
2244
- #: src/addons/wp-cli.php:518, src/admin.php:818, src/class-updraftplus.php:1298, src/class-updraftplus.php:1342, src/includes/class-filesystem-functions.php:368, 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:2884, src/restorer.php:2909, src/restorer.php:2990, src/updraftplus.php:157
2245
  msgid "Error"
2246
  msgstr ""
2247
 
2248
- #: src/addons/wp-cli.php:543
2249
  msgid "Missing parameters"
2250
  msgstr ""
2251
 
2252
- #: src/addons/wp-cli.php:553
2253
  msgid "Migration key created:"
2254
  msgstr ""
2255
 
2256
- #: src/addons/wp-cli.php:611, src/addons/wp-cli.php:612, src/includes/class-wpadmin-commands.php:114
2257
  msgid "No such backup set exists"
2258
  msgstr ""
2259
 
2260
- #: src/addons/wp-cli.php:647, src/admin.php:4496
2261
  msgid "UpdraftPlus Restoration: Progress"
2262
  msgstr ""
2263
 
2264
- #: src/addons/wp-cli.php:664, src/admin.php:4508
2265
  msgid "Follow this link to download the log file for this restoration (needed for any support requests)."
2266
  msgstr ""
2267
 
2268
- #: src/addons/wp-cli.php:665
2269
  msgid "Run this command to see the log file for this restoration (needed for any support requests)."
2270
  msgstr ""
2271
 
2272
- #: src/addons/wp-cli.php:739, src/addons/wp-cli.php:743
2273
  msgid "This is not an incremental backup"
2274
  msgstr ""
2275
 
2276
- #: src/addons/wp-cli.php:784, src/admin.php:4570
2277
  msgid "Final checks"
2278
  msgstr ""
2279
 
2280
- #: src/addons/wp-cli.php:793
2281
  msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old)."
2282
  msgstr ""
2283
 
2284
- #: src/addons/wp-cli.php:797, src/admin.php:816, src/admin.php:4586
2285
  msgid "Error data:"
2286
  msgstr ""
2287
 
2288
- #: src/addons/wp-cli.php:800, src/admin.php:4588, src/admin.php:5344, 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
2289
  msgid "Follow this link for more information"
2290
  msgstr ""
2291
 
2292
- #: src/addons/wp-cli.php:834
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:907, src/admin.php:4466
2297
  msgid "Why am I seeing this?"
2298
  msgstr ""
2299
 
@@ -2309,11 +2321,11 @@ msgstr ""
2309
  msgid "At the same time as the files backup"
2310
  msgstr ""
2311
 
2312
- #: src/admin.php:334, src/admin.php:5161, src/templates/wp-admin/settings/take-backup.php:23
2313
  msgid "Files"
2314
  msgstr ""
2315
 
2316
- #: src/admin.php:334, src/backup.php:1044
2317
  msgid "Files and database"
2318
  msgstr ""
2319
 
@@ -2337,15 +2349,15 @@ msgstr ""
2337
  msgid "Backup"
2338
  msgstr ""
2339
 
2340
- #: src/admin.php:671, src/admin.php:2799
2341
  msgid "Migrate / Clone"
2342
  msgstr ""
2343
 
2344
- #: src/admin.php:679, src/admin.php:1090, src/admin.php:2800
2345
  msgid "Settings"
2346
  msgstr ""
2347
 
2348
- #: src/admin.php:687, src/admin.php:2801
2349
  msgid "Advanced Tools"
2350
  msgstr ""
2351
 
@@ -2417,15 +2429,15 @@ msgstr ""
2417
  msgid "Error: the server sent us a response which we did not understand."
2418
  msgstr ""
2419
 
2420
- #: src/admin.php:819, src/admin.php:1918, 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
2421
  msgid "Existing Backups"
2422
  msgstr ""
2423
 
2424
- #: src/admin.php:820, src/admin.php:2191
2425
  msgid "File ready."
2426
  msgstr ""
2427
 
2428
- #: src/admin.php:821, src/admin.php:2514, src/admin.php:2524, src/admin.php:2533, src/admin.php:2575, src/admin.php:3433, src/templates/wp-admin/settings/existing-backups-table.php:19, src/templates/wp-admin/settings/existing-backups-table.php:139
2429
  msgid "Actions"
2430
  msgstr ""
2431
 
@@ -2453,7 +2465,7 @@ msgstr ""
2453
  msgid "PHP information"
2454
  msgstr ""
2455
 
2456
- #: src/admin.php:828, src/admin.php:3151
2457
  msgid "Delete Old Directories"
2458
  msgstr ""
2459
 
@@ -2461,7 +2473,7 @@ msgstr ""
2461
  msgid "Raw backup history"
2462
  msgstr ""
2463
 
2464
- #: src/admin.php:830, src/admin.php:831, src/includes/class-backup-history.php:442
2465
  msgid "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))."
2466
  msgstr ""
2467
 
@@ -2469,7 +2481,7 @@ msgstr ""
2469
  msgid "However, UpdraftPlus archives are standard zip/SQL files - so if you are sure that your file has the right format, then you can rename it to match that pattern."
2470
  msgstr ""
2471
 
2472
- #: src/admin.php:831, src/includes/class-backup-history.php:442
2473
  msgid "If this is a backup created by a different backup plugin, then UpdraftPlus Premium may be able to help you."
2474
  msgstr ""
2475
 
@@ -2509,11 +2521,11 @@ msgstr ""
2509
  msgid "The file was uploaded."
2510
  msgstr ""
2511
 
2512
- #: src/admin.php:842, src/templates/wp-admin/settings/take-backup.php:50
2513
  msgid "Backup Now"
2514
  msgstr ""
2515
 
2516
- #: src/admin.php:844, src/admin.php:3461, src/admin.php:3495, src/admin.php:4268, src/includes/class-remote-send.php:544, src/templates/wp-admin/settings/existing-backups-table.php:155, src/templates/wp-admin/settings/file-backup-exclude.php:11
2517
  msgid "Delete"
2518
  msgstr ""
2519
 
@@ -2521,7 +2533,7 @@ msgstr ""
2521
  msgid "Create"
2522
  msgstr ""
2523
 
2524
- #: src/admin.php:846, src/admin.php:4248
2525
  msgid "Upload"
2526
  msgstr ""
2527
 
@@ -2533,7 +2545,7 @@ msgstr ""
2533
  msgid "Close"
2534
  msgstr ""
2535
 
2536
- #: src/admin.php:851, src/admin.php:3699
2537
  msgid "Download log file"
2538
  msgstr ""
2539
 
@@ -2545,7 +2557,7 @@ msgstr ""
2545
  msgid "Saving..."
2546
  msgstr ""
2547
 
2548
- #: src/admin.php:855, src/admin.php:2876, src/methods/updraftvault.php:319, src/methods/updraftvault.php:362, src/templates/wp-admin/settings/temporary-clone.php:82
2549
  msgid "Connect"
2550
  msgstr ""
2551
 
@@ -2601,7 +2613,7 @@ msgstr ""
2601
  msgid "key name"
2602
  msgstr ""
2603
 
2604
- #: src/admin.php:870, src/templates/wp-admin/settings/existing-backups-table.php:161
2605
  msgid "Deleting..."
2606
  msgstr ""
2607
 
@@ -2709,7 +2721,7 @@ msgstr ""
2709
  msgid "Complete"
2710
  msgstr ""
2711
 
2712
- #: src/admin.php:905, src/admin.php:3209
2713
  msgid "The backup has finished running"
2714
  msgstr ""
2715
 
@@ -2770,7 +2782,7 @@ msgid "Please enter a valid URL e.g http://example.com"
2770
  msgstr ""
2771
 
2772
  #: src/admin.php:925
2773
- msgid "Local backup upload has started; please check the current status tab to see the upload progress"
2774
  msgstr ""
2775
 
2776
  #: src/admin.php:926
@@ -2881,666 +2893,654 @@ msgstr ""
2881
  msgid "UpdraftClone key is required."
2882
  msgstr ""
2883
 
2884
- #: src/admin.php:1092
 
 
 
 
 
 
 
 
2885
  msgid "Add-Ons / Pro Support"
2886
  msgstr ""
2887
 
2888
- #: src/admin.php:1133
2889
  msgid "An error occurred when fetching storage module options: "
2890
  msgstr ""
2891
 
2892
- #: src/admin.php:1138, src/includes/class-commands.php:462, src/templates/wp-admin/settings/take-backup.php:12
2893
  msgid "The 'Backup Now' button is disabled as your backup directory is not writable (go to the 'Settings' tab and find the relevant option)."
2894
  msgstr ""
2895
 
2896
- #: src/admin.php:1143
2897
  msgid "Welcome to UpdraftPlus!"
2898
  msgstr ""
2899
 
2900
- #: src/admin.php:1143
2901
  msgid "To make a backup, just press the Backup Now button."
2902
  msgstr ""
2903
 
2904
- #: src/admin.php:1143
2905
  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."
2906
  msgstr ""
2907
 
2908
- #: src/admin.php:1147, src/class-updraftplus.php:848
2909
  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)"
2910
  msgstr ""
2911
 
2912
- #: src/admin.php:1151
2913
  msgid "The scheduler is disabled in your WordPress install, via the DISABLE_WP_CRON setting. No backups can run (even &quot;Backup Now&quot;) unless either you have set up a facility to call the scheduler manually, or until it is enabled."
2914
  msgstr ""
2915
 
2916
- #: src/admin.php:1155
2917
  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."
2918
  msgstr ""
2919
 
2920
- #: src/admin.php:1159
2921
  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."
2922
  msgstr ""
2923
 
2924
- #: src/admin.php:1163
2925
  msgid "Your website is hosted using the %s web server."
2926
  msgstr ""
2927
 
2928
- #: src/admin.php:1163
2929
  msgid "Please consult this FAQ if you have problems backing up."
2930
  msgstr ""
2931
 
2932
- #: src/admin.php:1167
2933
  msgid "Notice"
2934
  msgstr ""
2935
 
2936
- #: src/admin.php:1167
2937
  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."
2938
  msgstr ""
2939
 
2940
- #: src/admin.php:1172
2941
  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."
2942
  msgstr ""
2943
 
2944
- #: src/admin.php:1172
2945
  msgid "Read this page for a guide to possible causes and how to fix it."
2946
  msgstr ""
2947
 
2948
- #: src/admin.php:1192, src/admin.php:1213, src/admin.php:1232, src/class-updraftplus.php:584, src/class-updraftplus.php:619, src/class-updraftplus.php:624, src/class-updraftplus.php:629
2949
  msgid "UpdraftPlus notice:"
2950
  msgstr ""
2951
 
2952
- #: src/admin.php:1192
2953
  msgid "%s has been chosen for remote storage, but you are not currently connected."
2954
  msgstr ""
2955
 
2956
- #: src/admin.php:1192
2957
  msgid "Go to the remote storage settings in order to connect."
2958
  msgstr ""
2959
 
2960
- #: src/admin.php:1334, src/admin.php:1344
2961
  msgid "Error: invalid path"
2962
  msgstr ""
2963
 
2964
- #: src/admin.php:1695, src/includes/class-wpadmin-commands.php:506
2965
  msgid "Backup set not found"
2966
  msgstr ""
2967
 
2968
- #: src/admin.php:1781
2969
  msgid "Did not know how to delete from this cloud service."
2970
  msgstr ""
2971
 
2972
- #: src/admin.php:1862
2973
  msgid "Backup sets removed:"
2974
  msgstr ""
2975
 
2976
- #: src/admin.php:1863
2977
  msgid "Local files deleted:"
2978
  msgstr ""
2979
 
2980
- #: src/admin.php:1864
2981
  msgid "Remote files deleted:"
2982
  msgstr ""
2983
 
2984
- #: src/admin.php:1951
2985
  msgid "Job deleted"
2986
  msgstr ""
2987
 
2988
- #: src/admin.php:1959
2989
  msgid "Could not find that job - perhaps it has already finished?"
2990
  msgstr ""
2991
 
2992
- #: src/admin.php:2050, src/admin.php:2062, src/includes/class-commands.php:833
2993
  msgid "Start backup"
2994
  msgstr ""
2995
 
2996
- #: src/admin.php:2050, src/includes/class-commands.php:833
2997
  msgid "OK. You should soon see activity in the \"Last log message\" field below."
2998
  msgstr ""
2999
 
3000
- #: src/admin.php:2121, src/admin.php:2125, src/class-updraftplus.php:619
3001
  msgid "The log file could not be read."
3002
  msgstr ""
3003
 
3004
- #: src/admin.php:2172
3005
  msgid "Download failed"
3006
  msgstr ""
3007
 
3008
- #: src/admin.php:2202
3009
  msgid "Download in progress"
3010
  msgstr ""
3011
 
3012
- #: src/admin.php:2205
3013
  msgid "No local copy present."
3014
  msgstr ""
3015
 
3016
- #: src/admin.php:2251, src/backup.php:1359
3017
  msgid "Backup directory (%s) is not writable, or does not exist."
3018
  msgstr ""
3019
 
3020
- #: src/admin.php:2251
3021
  msgid "You will find more information about this in the Settings section."
3022
  msgstr ""
3023
 
3024
- #: src/admin.php:2288
3025
  msgid "This file could not be uploaded"
3026
  msgstr ""
3027
 
3028
- #: src/admin.php:2303
3029
  msgid "This backup was created by %s, and can be imported."
3030
  msgstr ""
3031
 
3032
- #: src/admin.php:2309
3033
  msgid "Bad filename format - this does not look like a file created by UpdraftPlus"
3034
  msgstr ""
3035
 
3036
- #: src/admin.php:2317
3037
  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?"
3038
  msgstr ""
3039
 
3040
- #: src/admin.php:2409
3041
  msgid "Bad filename format - this does not look like an encrypted database file created by UpdraftPlus"
3042
  msgstr ""
3043
 
3044
- #: src/admin.php:2476, src/admin.php:2485
3045
  msgid "Sufficient information about the in-progress restoration operation could not be found."
3046
  msgstr ""
3047
 
3048
- #: src/admin.php:2566
3049
  msgid "Backup directory could not be created"
3050
  msgstr ""
3051
 
3052
- #: src/admin.php:2573
3053
  msgid "Backup directory successfully created."
3054
  msgstr ""
3055
 
3056
- #: src/admin.php:2591, src/class-updraftplus.php:4009, src/restorer.php:2647
3057
  msgid "Warning:"
3058
  msgstr ""
3059
 
3060
- #: src/admin.php:2591
3061
  msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
3062
  msgstr ""
3063
 
3064
- #: src/admin.php:2594
3065
  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."
3066
  msgstr ""
3067
 
3068
- #: src/admin.php:2609
3069
  msgid "OptimizePress 2.0 encodes its contents, so search/replace does not work."
3070
  msgstr ""
3071
 
3072
- #: src/admin.php:2609
3073
  msgid "To fix this problem go here."
3074
  msgstr ""
3075
 
3076
- #: src/admin.php:2611
3077
  msgid "For even more features and personal support, check out "
3078
  msgstr ""
3079
 
3080
- #: src/admin.php:2613
3081
  msgid "Your backup has been restored."
3082
  msgstr ""
3083
 
3084
- #: src/admin.php:2638
3085
  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)."
3086
  msgstr ""
3087
 
3088
- #: src/admin.php:2638
3089
  msgid "Current limit is:"
3090
  msgstr ""
3091
 
3092
- #: src/admin.php:2699
3093
  msgid "Backup Contents And Schedule"
3094
  msgstr ""
3095
 
3096
- #: src/admin.php:2798
3097
  msgid "Backup / Restore"
3098
  msgstr ""
3099
 
3100
- #: src/admin.php:2802
3101
  msgid "Premium / Extensions"
3102
  msgstr ""
3103
 
3104
- #: src/admin.php:2833
3105
  msgid "%s minutes, %s seconds"
3106
  msgstr ""
3107
 
3108
- #: src/admin.php:2835
3109
  msgid "Unfinished restoration"
3110
  msgstr ""
3111
 
3112
- #: src/admin.php:2836
3113
  msgid "You have an unfinished restoration operation, begun %s ago."
3114
  msgstr ""
3115
 
3116
- #: src/admin.php:2841
3117
  msgid "Continue restoration"
3118
  msgstr ""
3119
 
3120
- #: src/admin.php:2842, src/templates/wp-admin/notices/horizontal-notice.php:16, src/templates/wp-admin/notices/horizontal-notice.php:18
3121
  msgid "Dismiss"
3122
  msgstr ""
3123
 
3124
- #: src/admin.php:2863
3125
  msgid "Not yet got an account (it's free)? Go get one!"
3126
  msgstr ""
3127
 
3128
- #: src/admin.php:2874
3129
  msgid "Interested in knowing about your UpdraftPlus.Com password security? Read about it here."
3130
  msgstr ""
3131
 
3132
- #: src/admin.php:2886, src/includes/class-commands.php:901, src/includes/class-commands.php:949, src/templates/wp-admin/settings/temporary-clone.php:83, src/templates/wp-admin/settings/updraftcentral-connect.php:71
3133
  msgid "Processing"
3134
  msgstr ""
3135
 
3136
- #: src/admin.php:2929
3137
  msgid "Connect with your UpdraftPlus.Com account"
3138
  msgstr ""
3139
 
3140
- #: src/admin.php:2935, src/templates/wp-admin/settings/form-contents.php:255, src/templates/wp-admin/settings/updraftcentral-connect.php:44
3141
  msgid "Email"
3142
  msgstr ""
3143
 
3144
- #: src/admin.php:2950
3145
  msgid "Forgotten your details?"
3146
  msgstr ""
3147
 
3148
- #: src/admin.php:2962
3149
  msgid "Ask WordPress to update UpdraftPlus automatically when an update is available"
3150
  msgstr ""
3151
 
3152
- #: src/admin.php:2984, src/templates/wp-admin/settings/updraftcentral-connect.php:56
3153
  msgid "One Time Password (check your OTP app to get this password)"
3154
  msgstr ""
3155
 
3156
- #: src/admin.php:3014
3157
- msgid "Include the database in the backup"
3158
- msgstr ""
3159
-
3160
- #: src/admin.php:3022
3161
- msgid "All WordPress tables will be backed up."
3162
- msgstr ""
3163
-
3164
- #: src/admin.php:3022
3165
- msgid "With UpdraftPlus Premium, you can choose to backup non-WordPress tables, backup only specified tables, and backup other databases too."
3166
- msgstr ""
3167
-
3168
- #: src/admin.php:3030
3169
- msgid "Include any files in the backup"
3170
- msgstr ""
3171
-
3172
- #: src/admin.php:3032
3173
- msgid "Your saved settings also affect what is backed up - e.g. files excluded."
3174
- msgstr ""
3175
-
3176
- #: src/admin.php:3036, src/admin.php:3961, src/templates/wp-admin/settings/existing-backups-table.php:73, src/templates/wp-admin/settings/existing-backups-table.php:76
3177
- msgid "Only allow this backup to be deleted manually (i.e. keep it even if retention limits are hit)."
3178
- msgstr ""
3179
-
3180
- #: src/admin.php:3087
3181
  msgid "Latest UpdraftPlus.com news:"
3182
  msgstr ""
3183
 
3184
- #: src/admin.php:3114
3185
  msgid "Download most recently modified log file"
3186
  msgstr ""
3187
 
3188
- #: src/admin.php:3145
3189
  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."
3190
  msgstr ""
3191
 
3192
- #: src/admin.php:3209, src/admin.php:4278
3193
  msgid "View Log"
3194
  msgstr ""
3195
 
3196
- #: src/admin.php:3248
3197
  msgid "Backup begun"
3198
  msgstr ""
3199
 
3200
- #: src/admin.php:3253
3201
  msgid "Creating file backup zips"
3202
  msgstr ""
3203
 
3204
- #: src/admin.php:3266
3205
  msgid "Created file backup zips"
3206
  msgstr ""
3207
 
3208
- #: src/admin.php:3271
3209
  msgid "Clone server being provisioned and booted (can take several minutes)"
3210
  msgstr ""
3211
 
3212
- #: src/admin.php:3275
3213
  msgid "Uploading files to remote storage"
3214
  msgstr ""
3215
 
3216
- #: src/admin.php:3276
3217
  msgid "Sending files to remote site"
3218
  msgstr ""
3219
 
3220
- #: src/admin.php:3283
3221
  msgid "(%s%%, file %s of %s)"
3222
  msgstr ""
3223
 
3224
- #: src/admin.php:3288
3225
  msgid "Pruning old backup sets"
3226
  msgstr ""
3227
 
3228
- #: src/admin.php:3292
3229
  msgid "Waiting until scheduled time to retry because of errors"
3230
  msgstr ""
3231
 
3232
- #: src/admin.php:3297
3233
  msgid "Backup finished"
3234
  msgstr ""
3235
 
3236
- #: src/admin.php:3310
3237
  msgid "Created database backup"
3238
  msgstr ""
3239
 
3240
- #: src/admin.php:3321
3241
  msgid "Creating database backup"
3242
  msgstr ""
3243
 
3244
- #: src/admin.php:3323
3245
  msgid "table: %s"
3246
  msgstr ""
3247
 
3248
- #: src/admin.php:3336
3249
  msgid "Encrypting database"
3250
  msgstr ""
3251
 
3252
- #: src/admin.php:3344
3253
  msgid "Encrypted database"
3254
  msgstr ""
3255
 
3256
- #: src/admin.php:3346, src/central/bootstrap.php:444, src/central/bootstrap.php:451, src/methods/updraftvault.php:410, src/methods/updraftvault.php:444, src/methods/updraftvault.php:529
3257
  msgid "Unknown"
3258
  msgstr ""
3259
 
3260
- #: src/admin.php:3363
3261
  msgid "next resumption: %d (after %ss)"
3262
  msgstr ""
3263
 
3264
- #: src/admin.php:3364
3265
  msgid "last activity: %ss ago"
3266
  msgstr ""
3267
 
3268
- #: src/admin.php:3384
3269
  msgid "Job ID: %s"
3270
  msgstr ""
3271
 
3272
- #: src/admin.php:3398, src/admin.php:3685
3273
  msgid "Warning: %s"
3274
  msgstr ""
3275
 
3276
- #: src/admin.php:3415
3277
  msgid "show log"
3278
  msgstr ""
3279
 
3280
- #: src/admin.php:3416
3281
  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."
3282
  msgstr ""
3283
 
3284
- #: src/admin.php:3416
3285
  msgid "stop"
3286
  msgstr ""
3287
 
3288
- #: src/admin.php:3426, src/admin.php:3426
3289
  msgid "Remove old directories"
3290
  msgstr ""
3291
 
3292
- #: src/admin.php:3429
3293
  msgid "Old directories successfully removed."
3294
  msgstr ""
3295
 
3296
- #: src/admin.php:3431
3297
  msgid "Old directory removal failed for some reason. You may want to do this manually."
3298
  msgstr ""
3299
 
3300
- #: src/admin.php:3468, src/admin.php:3503, src/admin.php:3507, src/includes/class-remote-send.php:327, src/includes/class-storage-methods-interface.php:315, src/restorer.php:226, src/restorer.php:2888, src/restorer.php:2993
3301
  msgid "OK"
3302
  msgstr ""
3303
 
3304
- #: src/admin.php:3552
3305
  msgid "The request to the filesystem to create the directory failed."
3306
  msgstr ""
3307
 
3308
- #: src/admin.php:3566
3309
  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"
3310
  msgstr ""
3311
 
3312
- #: src/admin.php:3571
3313
  msgid "The folder exists, but your webserver does not have permission to write to it."
3314
  msgstr ""
3315
 
3316
- #: src/admin.php:3571
3317
  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."
3318
  msgstr ""
3319
 
3320
- #: src/admin.php:3673
3321
  msgid "incremental backup; base backup: %s"
3322
  msgstr ""
3323
 
3324
- #: src/admin.php:3703
3325
  msgid "No backup has been completed"
3326
  msgstr ""
3327
 
3328
- #: src/admin.php:3717
3329
  msgctxt "i.e. Non-automatic"
3330
  msgid "Manual"
3331
  msgstr ""
3332
 
3333
- #: src/admin.php:3730
3334
  msgid "Backup directory specified is writable, which is good."
3335
  msgstr ""
3336
 
3337
- #: src/admin.php:3734
3338
  msgid "Backup directory specified does <b>not</b> exist."
3339
  msgstr ""
3340
 
3341
- #: src/admin.php:3736
3342
  msgid "Backup directory specified exists, but is <b>not</b> writable."
3343
  msgstr ""
3344
 
3345
- #: src/admin.php:3738
3346
  msgid "Follow this link to attempt to create the directory and set the permissions"
3347
  msgstr ""
3348
 
3349
- #: src/admin.php:3738
3350
  msgid "or, to reset this option"
3351
  msgstr ""
3352
 
3353
- #: src/admin.php:3738
3354
  msgid "press here"
3355
  msgstr ""
3356
 
3357
- #: src/admin.php:3738
3358
  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."
3359
  msgstr ""
3360
 
3361
- #: src/admin.php:3817
3362
  msgid "Your wp-content directory server path: %s"
3363
  msgstr ""
3364
 
3365
- #: src/admin.php:3817
3366
  msgid "Any other directories found inside wp-content"
3367
  msgstr ""
3368
 
3369
- #: src/admin.php:3828
3370
  msgid "Exclude these from"
3371
  msgstr ""
3372
 
3373
- #: src/admin.php:3916
3374
  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)."
3375
  msgstr ""
3376
 
3377
- #: src/admin.php:3918
3378
  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."
3379
  msgstr ""
3380
 
3381
- #: src/admin.php:3921
3382
  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."
3383
  msgstr ""
3384
 
3385
- #: src/admin.php:4009
 
 
 
 
3386
  msgid "Total backup size:"
3387
  msgstr ""
3388
 
3389
- #: src/admin.php:4075, src/includes/class-wpadmin-commands.php:162, src/restorer.php:1975
3390
  msgid "Backup created by unknown source (%s) - cannot be restored."
3391
  msgstr ""
3392
 
3393
- #: src/admin.php:4104
3394
  msgid "Press here to download or browse"
3395
  msgstr ""
3396
 
3397
- #: src/admin.php:4109
3398
  msgid "(%d archive(s) in set)."
3399
  msgstr ""
3400
 
3401
- #: src/admin.php:4112
3402
  msgid "You appear to be missing one or more archives from this multi-archive set."
3403
  msgstr ""
3404
 
3405
- #: src/admin.php:4140, src/admin.php:4142
3406
  msgid "(Not finished)"
3407
  msgstr ""
3408
 
3409
- #: src/admin.php:4142
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:4167
3414
  msgid "(backup set imported from remote location)"
3415
  msgstr ""
3416
 
3417
- #: src/admin.php:4170
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:4248
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:4268
3426
  msgid "Delete this backup set"
3427
  msgstr ""
3428
 
3429
- #: src/admin.php:4488
3430
  msgid "This backup does not exist in the backup history - restoration aborted. Timestamp:"
3431
  msgstr ""
3432
 
3433
- #: src/admin.php:4489
3434
  msgid "Backup does not exist in the backup history"
3435
  msgstr ""
3436
 
3437
- #: src/admin.php:4517
3438
  msgid "ABORT: Could not find the information on which entities to restore."
3439
  msgstr ""
3440
 
3441
- #: src/admin.php:4518
3442
  msgid "If making a request for support, please include this information:"
3443
  msgstr ""
3444
 
3445
- #: src/admin.php:4801
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:4801
3450
  msgid "settings"
3451
  msgstr ""
3452
 
3453
- #: src/admin.php:4801
3454
  msgid "Not got any remote storage?"
3455
  msgstr ""
3456
 
3457
- #: src/admin.php:4801
3458
  msgid "Check out UpdraftPlus Vault."
3459
  msgstr ""
3460
 
3461
- #: src/admin.php:4803
3462
  msgid "Send this backup to remote storage"
3463
  msgstr ""
3464
 
3465
- #: src/admin.php:4893
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:4900, src/templates/wp-admin/settings/take-backup.php:50
3470
  msgid "This button is disabled because your backup directory is not writable (see the settings)."
3471
  msgstr ""
3472
 
3473
- #: src/admin.php:4929
3474
  msgid "Your settings have been saved."
3475
  msgstr ""
3476
 
3477
- #: src/admin.php:4934
3478
  msgid "Your settings failed to save. Please refresh the settings page and try again"
3479
  msgstr ""
3480
 
3481
- #: src/admin.php:4982
3482
  msgid "authentication error"
3483
  msgstr ""
3484
 
3485
- #: src/admin.php:4986
3486
  msgid "Remote storage method and instance id are required for authentication."
3487
  msgstr ""
3488
 
3489
- #: src/admin.php:5053
3490
  msgid "Your settings have been wiped."
3491
  msgstr ""
3492
 
3493
- #: src/admin.php:5154
3494
  msgid "Known backups (raw)"
3495
  msgstr ""
3496
 
3497
- #: src/admin.php:5189
3498
  msgid "Options (raw)"
3499
  msgstr ""
3500
 
3501
- #: src/admin.php:5192
3502
  msgid "Value"
3503
  msgstr ""
3504
 
3505
- #: src/admin.php:5344
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:5366, src/admin.php:5370, 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
3512
  msgid "%s version:"
3513
  msgstr ""
3514
 
3515
- #: src/admin.php:5374
3516
  msgid "Clone region:"
3517
  msgstr ""
3518
 
3519
- #: src/admin.php:5379
3520
  msgid "Forbid non-administrators to login to WordPress on your clone"
3521
  msgstr ""
3522
 
3523
- #: src/admin.php:5402
3524
  msgid "(current version)"
3525
  msgstr ""
3526
 
3527
- #: src/admin.php:5422
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:5423
3532
  msgid "Front page:"
3533
  msgstr ""
3534
 
3535
- #: src/admin.php:5424
3536
  msgid "Dashboard:"
3537
  msgstr ""
3538
 
3539
- #: src/admin.php:5426, src/admin.php:5429
3540
  msgid "You can find your temporary clone information in your updraftplus.com account here."
3541
  msgstr ""
3542
 
3543
- #: src/admin.php:5428
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
 
@@ -3552,163 +3552,163 @@ msgstr ""
3552
  msgid "Could not create %s zip. Consult the log file for more information."
3553
  msgstr ""
3554
 
3555
- #: src/backup.php:450, src/backup.php:2131, src/class-updraftplus.php:2124, src/class-updraftplus.php:2191, src/includes/class-storage-methods-interface.php:364, src/restorer.php:370
3556
  msgid "A PHP exception (%s) has occurred: %s"
3557
  msgstr ""
3558
 
3559
- #: src/backup.php:456, src/backup.php:2140, src/class-updraftplus.php:2133, src/class-updraftplus.php:2198, src/includes/class-storage-methods-interface.php:373, src/restorer.php:384
3560
  msgid "A PHP fatal error (%s) has occurred: %s"
3561
  msgstr ""
3562
 
3563
- #: src/backup.php:1037
3564
  msgid "Full backup"
3565
  msgstr ""
3566
 
3567
- #: src/backup.php:1037
3568
  msgid "Incremental"
3569
  msgstr ""
3570
 
3571
- #: src/backup.php:1042, src/class-updraftplus.php:2973
3572
  msgid "The backup was aborted by the user"
3573
  msgstr ""
3574
 
3575
- #: src/backup.php:1046
3576
  msgid "Files (database backup has not completed)"
3577
  msgstr ""
3578
 
3579
- #: src/backup.php:1046
3580
  msgid "Files only (database was not part of this particular schedule)"
3581
  msgstr ""
3582
 
3583
- #: src/backup.php:1049
3584
  msgid "Database (files backup has not completed)"
3585
  msgstr ""
3586
 
3587
- #: src/backup.php:1049
3588
  msgid "Database only (files were not part of this particular schedule)"
3589
  msgstr ""
3590
 
3591
- #: src/backup.php:1052
3592
  msgid "Unknown/unexpected error - please raise a support request"
3593
  msgstr ""
3594
 
3595
- #: src/backup.php:1061
3596
  msgid "Errors encountered:"
3597
  msgstr ""
3598
 
3599
- #: src/backup.php:1079
3600
  msgid "Warnings encountered:"
3601
  msgstr ""
3602
 
3603
- #: src/backup.php:1094
3604
  msgid "Backed up: %s"
3605
  msgstr ""
3606
 
3607
- #: src/backup.php:1103
3608
  msgid "Email reports created by UpdraftPlus (free edition) bring you the latest UpdraftPlus.com news"
3609
  msgstr ""
3610
 
3611
- #: src/backup.php:1103
3612
  msgid "read more at %s"
3613
  msgstr ""
3614
 
3615
- #: src/backup.php:1136
3616
  msgid "WordPress backup is complete"
3617
  msgstr ""
3618
 
3619
- #: src/backup.php:1137
3620
  msgid "Backup contains:"
3621
  msgstr ""
3622
 
3623
- #: src/backup.php:1603
3624
  msgid "database connection attempt failed."
3625
  msgstr ""
3626
 
3627
- #: src/backup.php:1649
3628
  msgid "please wait for the rescheduled attempt"
3629
  msgstr ""
3630
 
3631
- #: src/backup.php:1651
3632
  msgid "No database tables found"
3633
  msgstr ""
3634
 
3635
- #: src/backup.php:1662
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:1740
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:1740
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:1790, src/backup.php:1792
3648
  msgid "The database backup appears to have failed"
3649
  msgstr ""
3650
 
3651
- #: src/backup.php:1790
3652
  msgid "no options or sitemeta table was found"
3653
  msgstr ""
3654
 
3655
- #: src/backup.php:1792
3656
  msgid "the options table was not found"
3657
  msgstr ""
3658
 
3659
- #: src/backup.php:1840
3660
  msgid "Failed to open database file for reading:"
3661
  msgstr ""
3662
 
3663
- #: src/backup.php:1859
3664
  msgid "An error occurred whilst closing the final database file"
3665
  msgstr ""
3666
 
3667
- #: src/backup.php:2172
3668
  msgid "Could not open the backup file for writing"
3669
  msgstr ""
3670
 
3671
- #: src/backup.php:2298
3672
  msgid "Infinite recursion: consult your log for more information"
3673
  msgstr ""
3674
 
3675
- #: src/backup.php:2331
3676
  msgid "%s: unreadable file - could not be backed up (check the file permissions and ownership)"
3677
  msgstr ""
3678
 
3679
- #: src/backup.php:2353
3680
  msgid "Failed to open directory (check the file permissions and ownership): %s"
3681
  msgstr ""
3682
 
3683
- #: src/backup.php:2418
3684
  msgid "%s: unreadable file - could not be backed up"
3685
  msgstr ""
3686
 
3687
- #: src/backup.php:3097, src/backup.php:3380
3688
  msgid "Failed to open the zip file (%s) - %s"
3689
  msgstr ""
3690
 
3691
- #: src/backup.php:3123
3692
  msgid "A very large file was encountered: %s (size: %s Mb)"
3693
  msgstr ""
3694
 
3695
- #: src/backup.php:3424, src/class-updraftplus.php:861
3696
  msgid "Your free space in your hosting account is very low - only %s Mb remain"
3697
  msgstr ""
3698
 
3699
- #: src/backup.php:3431
3700
  msgid "The zip engine returned the message: %s."
3701
  msgstr ""
3702
 
3703
- #: src/backup.php:3433
3704
  msgid "A zip error occurred"
3705
  msgstr ""
3706
 
3707
- #: src/backup.php:3435
3708
  msgid "your web hosting account appears to be full; please see: %s"
3709
  msgstr ""
3710
 
3711
- #: src/backup.php:3437
3712
  msgid "check your log for more details."
3713
  msgstr ""
3714
 
@@ -3960,255 +3960,255 @@ msgstr ""
3960
  msgid "Others"
3961
  msgstr ""
3962
 
3963
- #: src/class-updraftplus.php:2022
3964
  msgid "Your website is visited infrequently and UpdraftPlus is not getting the resources it hoped for; please read this page:"
3965
  msgstr ""
3966
 
3967
- #: src/class-updraftplus.php:2680
3968
  msgid "Could not create files in the backup directory. Backup aborted - check your UpdraftPlus settings."
3969
  msgstr ""
3970
 
3971
- #: src/class-updraftplus.php:2980
3972
  msgid "The backup apparently succeeded and is now complete"
3973
  msgstr ""
3974
 
3975
- #: src/class-updraftplus.php:2986
3976
  msgid "The backup apparently succeeded (with warnings) and is now complete"
3977
  msgstr ""
3978
 
3979
- #: src/class-updraftplus.php:2992
3980
  msgid "To complete your migration/clone, you should now log in to the remote site and restore the backup set."
3981
  msgstr ""
3982
 
3983
- #: src/class-updraftplus.php:2992
3984
  msgid "Your clone will now deploy this data to re-create your site."
3985
  msgstr ""
3986
 
3987
- #: src/class-updraftplus.php:2998
3988
  msgid "The backup attempt has finished, apparently unsuccessfully"
3989
  msgstr ""
3990
 
3991
- #: src/class-updraftplus.php:3002
3992
  msgid "The backup has not finished; a resumption is scheduled"
3993
  msgstr ""
3994
 
3995
- #: src/class-updraftplus.php:3392
3996
  msgid "Could not read the directory"
3997
  msgstr ""
3998
 
3999
- #: src/class-updraftplus.php:3408
4000
  msgid "Could not save backup history because we have no backup array. Backup probably failed."
4001
  msgstr ""
4002
 
4003
- #: src/class-updraftplus.php:3831, src/includes/class-updraftplus-encryption.php:336, src/restorer.php:768
4004
  msgid "Decryption failed. The database file is encrypted, but you have no encryption key entered."
4005
  msgstr ""
4006
 
4007
- #: src/class-updraftplus.php:3833
4008
  msgid "Decryption failed. The database file is encrypted."
4009
  msgstr ""
4010
 
4011
- #: src/class-updraftplus.php:3843, src/includes/class-updraftplus-encryption.php:354, src/restorer.php:781
4012
  msgid "Decryption failed. The most likely cause is that you used the wrong key."
4013
  msgstr ""
4014
 
4015
- #: src/class-updraftplus.php:3850
4016
  msgid "The database is too small to be a valid WordPress database (size: %s Kb)."
4017
  msgstr ""
4018
 
4019
- #: src/class-updraftplus.php:3858
4020
  msgid "Failed to open database file."
4021
  msgstr ""
4022
 
4023
- #: src/class-updraftplus.php:3914
4024
  msgid "(version: %s)"
4025
  msgstr ""
4026
 
4027
- #: src/class-updraftplus.php:3927
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:3932
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:3934
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:3934, src/class-updraftplus.php:3936
4040
  msgid "the migrator add-on"
4041
  msgstr ""
4042
 
4043
- #: src/class-updraftplus.php:3936
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:3945, src/class-updraftplus.php:3965
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:3948
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:3953, src/restorer.php:1446
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:3953, src/restorer.php:1446
4060
  msgid "You should enable %s to make any pretty permalinks (e.g. %s) work"
4061
  msgstr ""
4062
 
4063
- #: src/class-updraftplus.php:3974, src/class-updraftplus.php:3981
4064
  msgid "%s version: %s"
4065
  msgstr ""
4066
 
4067
- #: src/class-updraftplus.php:3975
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:3982
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:3982
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:3982
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:3982
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:3987, src/restorer.php:2215, src/restorer.php:2304, src/restorer.php:2330
4088
  msgid "Old table prefix:"
4089
  msgstr ""
4090
 
4091
- #: src/class-updraftplus.php:3990
4092
  msgid "Backup label:"
4093
  msgstr ""
4094
 
4095
- #: src/class-updraftplus.php:3998, src/class-updraftplus.php:4001, src/restorer.php:530
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:4001
4100
  msgid "It will be imported as a new site."
4101
  msgstr ""
4102
 
4103
- #: src/class-updraftplus.php:4001
4104
  msgid "Please read this link for important information on this process."
4105
  msgstr ""
4106
 
4107
- #: src/class-updraftplus.php:4005, src/restorer.php:2227
4108
  msgid "To import an ordinary WordPress site into a multisite installation requires %s."
4109
  msgstr ""
4110
 
4111
- #: src/class-updraftplus.php:4009
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:4009
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:4016, src/restorer.php:2233
4120
  msgid "Site information:"
4121
  msgstr ""
4122
 
4123
- #: src/class-updraftplus.php:4076
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:4076
4128
  msgid "You must upgrade MySQL to be able to use this database."
4129
  msgstr ""
4130
 
4131
- #: src/class-updraftplus.php:4097
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:4097
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:4107
4142
  msgid "Your chosen character set to use instead:"
4143
  msgstr ""
4144
 
4145
- #: src/class-updraftplus.php:4131
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:4131
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:4154
4156
  msgid "Your chosen replacement collation"
4157
  msgstr ""
4158
 
4159
- #: src/class-updraftplus.php:4177
4160
  msgid "Choose a default for each table"
4161
  msgstr ""
4162
 
4163
- #: src/class-updraftplus.php:4229
4164
  msgid "This database backup is missing core WordPress tables: %s"
4165
  msgstr ""
4166
 
4167
- #: src/class-updraftplus.php:4232
4168
  msgid "This database backup has the following WordPress tables excluded: %s"
4169
  msgstr ""
4170
 
4171
- #: src/class-updraftplus.php:4237
4172
  msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
4173
  msgstr ""
4174
 
4175
- #: src/includes/class-backup-history.php:69
4176
  msgid "You have not yet made any backups."
4177
  msgstr ""
4178
 
4179
- #: src/includes/class-backup-history.php:610
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
 
4183
- #: src/includes/class-commands.php:401
4184
  msgid "%s add-on not found"
4185
  msgstr ""
4186
 
4187
- #: src/includes/class-commands.php:789, src/methods/updraftvault.php:630, src/udaddons/options.php:229
4188
  msgid "An unknown error occurred when trying to connect to UpdraftPlus.Com"
4189
  msgstr ""
4190
 
4191
- #: src/includes/class-commands.php:892, src/includes/class-commands.php:937
4192
  msgid "Available temporary clone tokens:"
4193
  msgstr ""
4194
 
4195
- #: src/includes/class-commands.php:893
4196
  msgid "You can buy more temporary clone tokens here."
4197
  msgstr ""
4198
 
4199
- #: src/includes/class-commands.php:900
4200
  msgid "Create clone"
4201
  msgstr ""
4202
 
4203
- #: src/includes/class-commands.php:906
4204
  msgid "Current clones"
4205
  msgstr ""
4206
 
4207
- #: src/includes/class-commands.php:906
4208
  msgid "manage"
4209
  msgstr ""
4210
 
4211
- #: src/includes/class-commands.php:949
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
 
@@ -4228,27 +4228,27 @@ msgstr ""
4228
  msgid "Web-server disk space in use by UpdraftPlus"
4229
  msgstr ""
4230
 
4231
- #: src/includes/class-filesystem-functions.php:233, src/methods/ftp.php:330
4232
  msgid "Your web server's PHP installation has these functions disabled: %s."
4233
  msgstr ""
4234
 
4235
- #: src/includes/class-filesystem-functions.php:233, src/methods/ftp.php:330, src/restorer.php:2006
4236
  msgid "Your hosting company must enable these functions before %s can work."
4237
  msgstr ""
4238
 
4239
- #: src/includes/class-filesystem-functions.php:233, src/restorer.php:2006
4240
  msgid "restoration"
4241
  msgstr ""
4242
 
4243
- #: src/includes/class-filesystem-functions.php:253
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:260, src/includes/class-filesystem-functions.php:282
4248
  msgid "The attempt to undo the double-compression failed."
4249
  msgstr ""
4250
 
4251
- #: src/includes/class-filesystem-functions.php:284
4252
  msgid "The attempt to undo the double-compression succeeded."
4253
  msgstr ""
4254
 
@@ -4361,7 +4361,7 @@ msgid "This multi-archive backup set appears to have the following archives miss
4361
  msgstr ""
4362
 
4363
  #: src/includes/class-wpadmin-commands.php:217
4364
- msgid "Select your incremental restore point"
4365
  msgstr ""
4366
 
4367
  #: src/includes/class-wpadmin-commands.php:234
@@ -4496,7 +4496,7 @@ msgstr ""
4496
  msgid "UpdraftPlus Premium:"
4497
  msgstr ""
4498
 
4499
- #: src/includes/updraftplus-notices.php:31, src/templates/wp-admin/settings/header.php:17, src/templates/wp-admin/settings/tab-addons.php:21, src/templates/wp-admin/settings/tab-addons.php:87
4500
  msgid "Support"
4501
  msgstr ""
4502
 
@@ -4504,7 +4504,7 @@ msgstr ""
4504
  msgid "Enjoy professional, fast, and friendly help whenever you need it with Premium."
4505
  msgstr ""
4506
 
4507
- #: src/includes/updraftplus-notices.php:41, src/templates/wp-admin/settings/tab-addons.php:244
4508
  msgid "UpdraftVault storage"
4509
  msgstr ""
4510
 
@@ -5091,7 +5091,7 @@ msgstr ""
5091
  msgid "For more options, use the \"%s\" add-on."
5092
  msgstr ""
5093
 
5094
- #: src/methods/email.php:97, src/templates/wp-admin/settings/form-contents.php:243, src/templates/wp-admin/settings/tab-addons.php:191, src/templates/wp-admin/settings/tab-addons.php:192
5095
  msgid "Reporting"
5096
  msgstr ""
5097
 
@@ -5417,7 +5417,7 @@ msgstr ""
5417
  msgid "Local write failed: Failed to download"
5418
  msgstr ""
5419
 
5420
- #: src/methods/updraftvault.php:71, src/templates/wp-admin/settings/tab-addons.php:243
5421
  msgid "UpdraftVault"
5422
  msgstr ""
5423
 
@@ -5944,11 +5944,11 @@ msgstr ""
5944
  msgid "required for some remote storage providers"
5945
  msgstr ""
5946
 
5947
- #: src/templates/wp-admin/advanced/site-info.php:63, src/templates/wp-admin/advanced/site-info.php:66, src/templates/wp-admin/settings/tab-addons.php:53, src/templates/wp-admin/settings/tab-addons.php:66, src/templates/wp-admin/settings/tab-addons.php:69, src/templates/wp-admin/settings/tab-addons.php:82, src/templates/wp-admin/settings/tab-addons.php:95, src/templates/wp-admin/settings/tab-addons.php:108, src/templates/wp-admin/settings/tab-addons.php:121, src/templates/wp-admin/settings/tab-addons.php:134, src/templates/wp-admin/settings/tab-addons.php:147, src/templates/wp-admin/settings/tab-addons.php:160, src/templates/wp-admin/settings/tab-addons.php:173, src/templates/wp-admin/settings/tab-addons.php:186, src/templates/wp-admin/settings/tab-addons.php:199, src/templates/wp-admin/settings/tab-addons.php:212, src/templates/wp-admin/settings/tab-addons.php:225, src/templates/wp-admin/settings/tab-addons.php:238, src/templates/wp-admin/settings/tab-addons.php:255, src/templates/wp-admin/settings/tab-addons.php:261
5948
  msgid "Yes"
5949
  msgstr ""
5950
 
5951
- #: src/templates/wp-admin/advanced/site-info.php:66, src/templates/wp-admin/settings/tab-addons.php:79, src/templates/wp-admin/settings/tab-addons.php:92, src/templates/wp-admin/settings/tab-addons.php:105, src/templates/wp-admin/settings/tab-addons.php:118, src/templates/wp-admin/settings/tab-addons.php:131, src/templates/wp-admin/settings/tab-addons.php:144, src/templates/wp-admin/settings/tab-addons.php:157, src/templates/wp-admin/settings/tab-addons.php:170, src/templates/wp-admin/settings/tab-addons.php:183, src/templates/wp-admin/settings/tab-addons.php:196, src/templates/wp-admin/settings/tab-addons.php:209, src/templates/wp-admin/settings/tab-addons.php:222, src/templates/wp-admin/settings/tab-addons.php:235, src/templates/wp-admin/settings/tab-addons.php:252
5952
  msgid "No"
5953
  msgstr ""
5954
 
@@ -6000,7 +6000,7 @@ msgstr ""
6000
  msgid "log results to console"
6001
  msgstr ""
6002
 
6003
- #: src/templates/wp-admin/advanced/tools-menu.php:10, src/templates/wp-admin/settings/tab-addons.php:230, src/templates/wp-admin/settings/tab-addons.php:231
6004
  msgid "Lock settings"
6005
  msgstr ""
6006
 
@@ -6140,6 +6140,38 @@ msgstr ""
6140
  msgid "Free two-factor security plugin"
6141
  msgstr ""
6142
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6143
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:8
6144
  msgid "Delete backup set"
6145
  msgstr ""
@@ -6165,7 +6197,7 @@ msgid "Restore backup"
6165
  msgstr ""
6166
 
6167
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:30
6168
- msgid "Restore backup from"
6169
  msgstr ""
6170
 
6171
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:34
@@ -6296,39 +6328,39 @@ msgstr ""
6296
  msgid "Add an exclusion rule"
6297
  msgstr ""
6298
 
6299
- #: src/templates/wp-admin/settings/existing-backups-table.php:17, src/templates/wp-admin/settings/existing-backups-table.php:64
6300
  msgid "Backup date"
6301
  msgstr ""
6302
 
6303
- #: src/templates/wp-admin/settings/existing-backups-table.php:18, src/templates/wp-admin/settings/existing-backups-table.php:97
6304
  msgid "Backup data (click to download)"
6305
  msgstr ""
6306
 
6307
- #: src/templates/wp-admin/settings/existing-backups-table.php:87
6308
  msgid "remote site"
6309
  msgstr ""
6310
 
6311
- #: src/templates/wp-admin/settings/existing-backups-table.php:89
6312
  msgid "Remote storage: %s"
6313
  msgstr ""
6314
 
6315
- #: src/templates/wp-admin/settings/existing-backups-table.php:154
6316
  msgid "Actions upon selected backups"
6317
  msgstr ""
6318
 
6319
- #: src/templates/wp-admin/settings/existing-backups-table.php:156
6320
  msgid "Select all"
6321
  msgstr ""
6322
 
6323
- #: src/templates/wp-admin/settings/existing-backups-table.php:157
6324
  msgid "Deselect"
6325
  msgstr ""
6326
 
6327
- #: src/templates/wp-admin/settings/existing-backups-table.php:158
6328
  msgid "Use ctrl / cmd + press to select several items"
6329
  msgstr ""
6330
 
6331
- #: src/templates/wp-admin/settings/existing-backups-table.php:161
6332
  msgid "Please allow time for the communications with the remote storage to complete."
6333
  msgstr ""
6334
 
@@ -6356,6 +6388,10 @@ msgstr ""
6356
  msgid "e.g. if your server is busy at day and you want to run overnight"
6357
  msgstr ""
6358
 
 
 
 
 
6359
  #: src/templates/wp-admin/settings/form-contents.php:87
6360
  msgid "or to configure more complex schedules"
6361
  msgstr ""
@@ -6569,7 +6605,7 @@ msgstr ""
6569
  msgid "Save Changes"
6570
  msgstr ""
6571
 
6572
- #: src/templates/wp-admin/settings/header.php:11, src/templates/wp-admin/settings/tab-addons.php:47, src/templates/wp-admin/settings/tab-addons.php:68, src/templates/wp-admin/settings/tab-addons.php:81, src/templates/wp-admin/settings/tab-addons.php:94, src/templates/wp-admin/settings/tab-addons.php:107, src/templates/wp-admin/settings/tab-addons.php:120, src/templates/wp-admin/settings/tab-addons.php:133, src/templates/wp-admin/settings/tab-addons.php:146, src/templates/wp-admin/settings/tab-addons.php:159, src/templates/wp-admin/settings/tab-addons.php:172, src/templates/wp-admin/settings/tab-addons.php:185, src/templates/wp-admin/settings/tab-addons.php:198, src/templates/wp-admin/settings/tab-addons.php:211, src/templates/wp-admin/settings/tab-addons.php:224, src/templates/wp-admin/settings/tab-addons.php:237, src/templates/wp-admin/settings/tab-addons.php:254
6573
  msgid "Premium"
6574
  msgstr ""
6575
 
@@ -6641,15 +6677,15 @@ msgstr ""
6641
  msgid "If you have purchased from UpdraftPlus.Com, then follow this link to the installation instructions (particularly step 1)."
6642
  msgstr ""
6643
 
6644
- #: src/templates/wp-admin/settings/tab-addons.php:43, src/templates/wp-admin/settings/tab-addons.php:65, src/templates/wp-admin/settings/tab-addons.php:78, src/templates/wp-admin/settings/tab-addons.php:91, src/templates/wp-admin/settings/tab-addons.php:104, src/templates/wp-admin/settings/tab-addons.php:117, src/templates/wp-admin/settings/tab-addons.php:130, src/templates/wp-admin/settings/tab-addons.php:143, src/templates/wp-admin/settings/tab-addons.php:156, src/templates/wp-admin/settings/tab-addons.php:169, src/templates/wp-admin/settings/tab-addons.php:182, src/templates/wp-admin/settings/tab-addons.php:195, src/templates/wp-admin/settings/tab-addons.php:208, src/templates/wp-admin/settings/tab-addons.php:221, src/templates/wp-admin/settings/tab-addons.php:234, src/templates/wp-admin/settings/tab-addons.php:251
6645
  msgid "Free"
6646
  msgstr ""
6647
 
6648
- #: src/templates/wp-admin/settings/tab-addons.php:53, src/templates/wp-admin/settings/tab-addons.php:261
6649
  msgid "Installed"
6650
  msgstr ""
6651
 
6652
- #: src/templates/wp-admin/settings/tab-addons.php:56, src/templates/wp-admin/settings/tab-addons.php:264
6653
  msgid "Upgrade now"
6654
  msgstr ""
6655
 
@@ -6673,151 +6709,159 @@ msgstr ""
6673
  msgid "UpdraftPlus Migrator clones your WordPress site and moves it to a new domain directly and simply."
6674
  msgstr ""
6675
 
6676
- #: src/templates/wp-admin/settings/tab-addons.php:88
 
 
 
 
 
 
 
 
6677
  msgid "Fast, personal support"
6678
  msgstr ""
6679
 
6680
- #: src/templates/wp-admin/settings/tab-addons.php:89
6681
  msgid "Provides expert help and support from the developers whenever you need it."
6682
  msgstr ""
6683
 
6684
- #: src/templates/wp-admin/settings/tab-addons.php:100, src/templates/wp-admin/settings/tab-addons.php:101
6685
  msgid "Pre-update backups"
6686
  msgstr ""
6687
 
6688
- #: src/templates/wp-admin/settings/tab-addons.php:102
6689
  msgid "Automatically backs up your website before any updates to plugins, themes and WordPress core."
6690
  msgstr ""
6691
 
6692
- #: src/templates/wp-admin/settings/tab-addons.php:113, src/templates/wp-admin/settings/tab-addons.php:114
6693
  msgid "Backup non-WordPress files and databases"
6694
  msgstr ""
6695
 
6696
- #: src/templates/wp-admin/settings/tab-addons.php:115
6697
  msgid "Backup WordPress core and non-WP files and databases."
6698
  msgstr ""
6699
 
6700
- #: src/templates/wp-admin/settings/tab-addons.php:126
6701
  msgid "Network and multisite"
6702
  msgstr ""
6703
 
6704
- #: src/templates/wp-admin/settings/tab-addons.php:127
6705
  msgid "Network / multisite"
6706
  msgstr ""
6707
 
6708
- #: src/templates/wp-admin/settings/tab-addons.php:128
6709
  msgid "Backup WordPress multisites (i.e, networks), securely."
6710
  msgstr ""
6711
 
6712
- #: src/templates/wp-admin/settings/tab-addons.php:139, src/templates/wp-admin/settings/tab-addons.php:140
6713
  msgid "Backup time and scheduling"
6714
  msgstr ""
6715
 
6716
- #: src/templates/wp-admin/settings/tab-addons.php:141
6717
  msgid "Set exact times to create or delete backups."
6718
  msgstr ""
6719
 
6720
- #: src/templates/wp-admin/settings/tab-addons.php:152
6721
  msgid "WP CLI"
6722
  msgstr ""
6723
 
6724
- #: src/templates/wp-admin/settings/tab-addons.php:153
6725
  msgid "WP-CLI support"
6726
  msgstr ""
6727
 
6728
- #: src/templates/wp-admin/settings/tab-addons.php:154
6729
  msgid "WP-CLI commands to take, list and delete backups."
6730
  msgstr ""
6731
 
6732
- #: src/templates/wp-admin/settings/tab-addons.php:165, src/templates/wp-admin/settings/tab-addons.php:166
6733
  msgid "More database options"
6734
  msgstr ""
6735
 
6736
- #: src/templates/wp-admin/settings/tab-addons.php:167
6737
  msgid "Encrypt your sensitive databases (e.g. customer information or passwords); Backup external databases too."
6738
  msgstr ""
6739
 
6740
- #: src/templates/wp-admin/settings/tab-addons.php:178
6741
  msgid "Additional storage"
6742
  msgstr ""
6743
 
6744
- #: src/templates/wp-admin/settings/tab-addons.php:179
6745
  msgid "Additional and enhanced remote storage locations"
6746
  msgstr ""
6747
 
6748
- #: src/templates/wp-admin/settings/tab-addons.php:180
6749
  msgid "Get enhanced versions of the free remote storage options (Dropbox, Google Drive & S3) and even more remote storage options like OneDrive, SFTP, Azure, WebDAV and more with UpdraftPlus Premium."
6750
  msgstr ""
6751
 
6752
- #: src/templates/wp-admin/settings/tab-addons.php:193
6753
  msgid "Sophisticated reporting and emailing capabilities."
6754
  msgstr ""
6755
 
6756
- #: src/templates/wp-admin/settings/tab-addons.php:204, src/templates/wp-admin/settings/tab-addons.php:205
6757
  msgid "No ads"
6758
  msgstr ""
6759
 
6760
- #: src/templates/wp-admin/settings/tab-addons.php:206
6761
  msgid "Tidy things up for clients and remove all adverts for our other products."
6762
  msgstr ""
6763
 
6764
- #: src/templates/wp-admin/settings/tab-addons.php:217, src/templates/wp-admin/settings/tab-addons.php:218
6765
  msgid "Importer"
6766
  msgstr ""
6767
 
6768
- #: src/templates/wp-admin/settings/tab-addons.php:219
6769
  msgid "Some backup plugins can't restore a backup, so Premium allows you to restore backups from other plugins."
6770
  msgstr ""
6771
 
6772
- #: src/templates/wp-admin/settings/tab-addons.php:232
6773
  msgid "Lock access to UpdraftPlus via a password so you choose which admin users can access backups."
6774
  msgstr ""
6775
 
6776
- #: src/templates/wp-admin/settings/tab-addons.php:246
6777
  msgid "UpdraftPlus has its own embedded storage option, providing a zero-hassle way to download, store and manage all your backups from one place."
6778
  msgstr ""
6779
 
6780
- #: src/templates/wp-admin/settings/tab-addons.php:247
6781
  msgid "Premium / Find out more"
6782
  msgstr ""
6783
 
6784
- #: src/templates/wp-admin/settings/take-backup.php:5
6785
  msgid "JavaScript warning"
6786
  msgstr ""
6787
 
6788
- #: src/templates/wp-admin/settings/take-backup.php:5
6789
  msgid "This admin interface uses JavaScript heavily. You either need to activate it within your browser, or to use a JavaScript-capable browser."
6790
  msgstr ""
6791
 
6792
- #: src/templates/wp-admin/settings/take-backup.php:18
6793
  msgid "Next scheduled backups"
6794
  msgstr ""
6795
 
6796
- #: src/templates/wp-admin/settings/take-backup.php:45
6797
  msgid "Time now"
6798
  msgstr ""
6799
 
6800
- #: src/templates/wp-admin/settings/take-backup.php:76
6801
  msgid "Remote storage authentication"
6802
  msgstr ""
6803
 
6804
- #: src/templates/wp-admin/settings/take-backup.php:77
6805
  msgid "You have selected a remote storage option which has an authorization step to complete:"
6806
  msgstr ""
6807
 
6808
- #: src/templates/wp-admin/settings/take-backup.php:82
6809
- msgid "Perform a one-time backup"
6810
  msgstr ""
6811
 
6812
- #: src/templates/wp-admin/settings/take-backup.php:87
6813
  msgid "Multisite"
6814
  msgstr ""
6815
 
6816
- #: src/templates/wp-admin/settings/take-backup.php:91
6817
  msgid "Do you need WordPress Multisite support?"
6818
  msgstr ""
6819
 
6820
- #: src/templates/wp-admin/settings/take-backup.php:91
6821
  msgid "Please check out UpdraftPlus Premium, or the stand-alone Multisite add-on."
6822
  msgstr ""
6823
 
@@ -7057,79 +7101,79 @@ msgstr ""
7057
  msgid "An update containing your addons is available for UpdraftPlus - please follow this link to get it."
7058
  msgstr ""
7059
 
7060
- #: src/udaddons/options.php:412
7061
  msgid "An error occurred when trying to retrieve your add-ons."
7062
  msgstr ""
7063
 
7064
- #: src/udaddons/options.php:428
7065
  msgid "UpdraftPlus Support"
7066
  msgstr ""
7067
 
7068
- #: src/udaddons/options.php:430
7069
  msgid "Need to get support?"
7070
  msgstr ""
7071
 
7072
- #: src/udaddons/options.php:430
7073
  msgid "Go here"
7074
  msgstr ""
7075
 
7076
- #: src/udaddons/options.php:467, src/udaddons/options.php:467
7077
  msgid "You've got it"
7078
  msgstr ""
7079
 
7080
- #: src/udaddons/options.php:469
7081
  msgid "Your version: %s"
7082
  msgstr ""
7083
 
7084
- #: src/udaddons/options.php:471, src/udaddons/options.php:473
7085
  msgid "latest"
7086
  msgstr ""
7087
 
7088
- #: src/udaddons/options.php:475
7089
  msgid "(apparently a pre-release or withdrawn release)"
7090
  msgstr ""
7091
 
7092
- #: src/udaddons/options.php:481
7093
  msgid "Available for this site (via your all-addons purchase)"
7094
  msgstr ""
7095
 
7096
- #: src/udaddons/options.php:481
7097
  msgid "please follow this link to update the plugin in order to get it"
7098
  msgstr ""
7099
 
7100
- #: src/udaddons/options.php:484
7101
  msgid "Assigned to this site"
7102
  msgstr ""
7103
 
7104
- #: src/udaddons/options.php:484
7105
  msgid "please follow this link to update the plugin in order to activate it"
7106
  msgstr ""
7107
 
7108
- #: src/udaddons/options.php:490
7109
  msgid "Available to claim on this site"
7110
  msgstr ""
7111
 
7112
- #: src/udaddons/options.php:490, src/udaddons/options.php:492
7113
  msgid "activate it on this site"
7114
  msgstr ""
7115
 
7116
- #: src/udaddons/options.php:492
7117
  msgid "You have an inactive purchase"
7118
  msgstr ""
7119
 
7120
- #: src/udaddons/options.php:496
7121
  msgid "Get it from the UpdraftPlus.Com Store"
7122
  msgstr ""
7123
 
7124
- #: src/udaddons/options.php:496
7125
  msgid "(or connect using the form on this page if you have already purchased it)"
7126
  msgstr ""
7127
 
7128
- #: src/udaddons/options.php:497, src/udaddons/options.php:497
7129
  msgid "Buy It"
7130
  msgstr ""
7131
 
7132
- #: src/udaddons/options.php:519
7133
  msgid "Manage Addons"
7134
  msgstr ""
7135
 
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:3069, src/admin.php:3075, 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:171
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:341
121
  msgid "File not found"
122
  msgstr ""
123
 
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:1149, src/admin.php:1153, src/admin.php:1157, src/admin.php:1161, src/admin.php:1165, src/admin.php:1174, src/admin.php:3912, src/admin.php:3919, src/admin.php:3921, src/admin.php:5346, 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:859, src/methods/s3.php:863, src/methods/updraftvault.php:306, 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:3912, src/methods/updraftvault.php:306
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
 
225
  msgid "Azure Government"
226
  msgstr ""
227
 
228
+ #: src/addons/backblaze.php:205, src/admin.php:2134
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:462, src/includes/class-remote-send.php:472, src/includes/class-remote-send.php:477, src/methods/remotesend.php:74, src/methods/remotesend.php:242, src/methods/remotesend.php:298, src/methods/updraftvault.php:527, src/restorer.php:228, src/restorer.php:256, src/restorer.php:1921
233
  msgid "Error:"
234
  msgstr ""
235
 
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:2317, src/admin.php:2338, src/admin.php:2346, src/class-updraftplus.php:997, src/class-updraftplus.php:1003, src/class-updraftplus.php:3857, src/class-updraftplus.php:3859, src/class-updraftplus.php:4024, src/class-updraftplus.php:4031, src/class-updraftplus.php:4102, src/methods/googledrive.php:403, src/methods/s3.php:341
601
  msgid "Error: %s"
602
  msgstr ""
603
 
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:939, 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:1155, src/methods/stream-base.php:372
629
  msgid "Success"
630
  msgstr ""
631
 
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:3466, src/admin.php:3502, src/admin.php:3512, src/methods/addon-base-v2.php:313, src/methods/stream-base.php:356
645
  msgid "Failed"
646
  msgstr ""
647
 
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:1153, src/admin.php:2625, src/backup.php:3430, src/class-updraftplus.php:4123, src/class-updraftplus.php:4123, src/updraftplus.php:157
721
  msgid "Go here for more information."
722
  msgstr ""
723
 
773
  msgid "Supported backup plugins: %s"
774
  msgstr ""
775
 
776
+ #: src/addons/importer.php:276, src/admin.php:4073, src/includes/class-backup-history.php:499
777
  msgid "Backup created by: %s."
778
  msgstr ""
779
 
780
+ #: src/addons/incremental.php:82, src/addons/incremental.php:84
781
  msgid "(latest increment: %s)"
782
  msgstr ""
783
 
784
+ #: src/addons/incremental.php:84
785
  msgid "Increments exist at: %s"
786
  msgstr ""
787
 
788
+ #: src/addons/incremental.php:285
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:285
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:287
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:332, src/addons/reporting.php:259, src/admin.php:4005
801
  msgid "None"
802
  msgstr ""
803
 
804
+ #: src/addons/incremental.php:333, src/updraftplus.php:99
805
  msgid "Every hour"
806
  msgstr ""
807
 
808
+ #: src/addons/incremental.php:334, src/addons/incremental.php:335, src/addons/incremental.php:336, src/addons/incremental.php:337, src/admin.php:3720, src/admin.php:3721, src/admin.php:3722, src/updraftplus.php:100, src/updraftplus.php:101, src/updraftplus.php:102
809
  msgid "Every %s hours"
810
  msgstr ""
811
 
812
+ #: src/addons/incremental.php:338, src/admin.php:3723
813
  msgid "Daily"
814
  msgstr ""
815
 
816
+ #: src/addons/incremental.php:339, src/admin.php:3724
817
  msgid "Weekly"
818
  msgstr ""
819
 
820
+ #: src/addons/incremental.php:340, src/admin.php:3725
821
  msgid "Fortnightly"
822
  msgstr ""
823
 
824
+ #: src/addons/incremental.php:341, src/admin.php:3726
825
  msgid "Monthly"
826
  msgstr ""
827
 
828
+ #: src/addons/incremental.php:355
829
  msgid "And then add an incremental backup"
830
  msgstr ""
831
 
832
+ #: src/addons/incremental.php:367
833
  msgid "Tell me more"
834
  msgstr ""
835
 
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:2977, src/methods/openstack2.php:164, src/methods/updraftvault.php:361, src/templates/wp-admin/settings/updraftcentral-connect.php:50
857
  msgid "Password"
858
  msgstr ""
859
 
925
  msgid "Read this article to see step-by-step how it's done."
926
  msgstr ""
927
 
928
+ #: src/addons/migrator.php:232, src/addons/migrator.php:1734, src/addons/migrator.php:1755
929
  msgid "back"
930
  msgstr ""
931
 
932
+ #: src/addons/migrator.php:233
933
  msgid "Restore an existing backup set onto this site"
934
  msgstr ""
935
 
936
+ #: src/addons/migrator.php:236
937
  msgid "To import a backup set, go to the \"Existing Backups\" section in the \"Backup/Restore\" tab"
938
  msgstr ""
939
 
940
+ #: src/addons/migrator.php:239
941
  msgid "This site has no backups to restore from yet."
942
  msgstr ""
943
 
944
+ #: src/addons/migrator.php:274
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:4171
949
  msgid "Restore"
950
  msgstr ""
951
 
952
+ #: src/addons/migrator.php:278
953
  msgid "For incremental backups, you will be able to choose which increments to restore at a later stage."
954
  msgstr ""
955
 
956
+ #: src/addons/migrator.php:307
957
  msgid "Disabled this plugin: %s: re-activate it manually when you are ready."
958
  msgstr ""
959
 
960
+ #: src/addons/migrator.php:334, src/addons/migrator.php:379, src/templates/wp-admin/advanced/search-replace.php:7, src/templates/wp-admin/advanced/tools-menu.php:18
961
  msgid "Search / replace database"
962
  msgstr ""
963
 
964
+ #: src/addons/migrator.php:335, src/addons/migrator.php:387
965
  msgid "Search for"
966
  msgstr ""
967
 
968
+ #: src/addons/migrator.php:336, src/addons/migrator.php:388
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:454, 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:1089, src/methods/s3.php:1093
973
  msgid "Failure: No %s was given."
974
  msgstr ""
975
 
976
+ #: src/addons/migrator.php:340
977
  msgid "search term"
978
  msgstr ""
979
 
980
+ #: src/addons/migrator.php:343, src/addons/migrator.php:358, src/admin.php:2543, src/admin.php:2553, src/admin.php:2562, src/admin.php:2604, src/admin.php:3435
981
  msgid "Return to UpdraftPlus Configuration"
982
  msgstr ""
983
 
984
+ #: src/addons/migrator.php:380
985
  msgid "This can easily destroy your site; so, use it with care!"
986
  msgstr ""
987
 
988
+ #: src/addons/migrator.php:381
989
  msgid "A search/replace cannot be undone - are you sure you want to do this?"
990
  msgstr ""
991
 
992
+ #: src/addons/migrator.php:389
993
  msgid "Rows per batch"
994
  msgstr ""
995
 
996
+ #: src/addons/migrator.php:390
997
  msgid "These tables only"
998
  msgstr ""
999
 
1000
+ #: src/addons/migrator.php:390
1001
  msgid "Enter a comma-separated list; otherwise, leave blank for all tables."
1002
  msgstr ""
1003
 
1004
+ #: src/addons/migrator.php:392
1005
  msgid "Go"
1006
  msgstr ""
1007
 
1008
+ #: src/addons/migrator.php:409
1009
  msgid "This looks like a migration (the backup is from a site with a different address/URL, %s)."
1010
  msgstr ""
1011
 
1012
+ #: src/addons/migrator.php:420
1013
  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 below search and replace to search/replace the site address so that the site can be visited without https."
1014
  msgstr ""
1015
 
1016
+ #: src/addons/migrator.php:431
1017
  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 below search and replace so that the non-https links are automatically replaced."
1018
  msgstr ""
1019
 
1020
+ #: src/addons/migrator.php:442
1021
  msgid "you will want to use below search and replace site location in the database (migrate) to search/replace the site address."
1022
  msgstr ""
1023
 
1024
+ #: src/addons/migrator.php:447
1025
  msgid "Processed plugin:"
1026
  msgstr ""
1027
 
1028
+ #: src/addons/migrator.php:457
1029
  msgid "Network activating theme:"
1030
  msgstr ""
1031
 
1032
+ #: src/addons/migrator.php:493, src/addons/migrator.php:496, src/addons/migrator.php:499
1033
  msgid "You selected %s to be included in the restoration - this cannot / should not be done when importing a single site into a network."
1034
  msgstr ""
1035
 
1036
+ #: src/addons/migrator.php:493
1037
  msgid "WordPress core"
1038
  msgstr ""
1039
 
1040
+ #: src/addons/migrator.php:496
1041
  msgid "other content from wp-content"
1042
  msgstr ""
1043
 
1044
+ #: src/addons/migrator.php:499, src/addons/multisite.php:692
1045
  msgid "Must-use plugins"
1046
  msgstr ""
1047
 
1048
+ #: src/addons/migrator.php:504, src/addons/migrator.php:506
1049
  msgid "Importing a single site into a multisite install"
1050
  msgstr ""
1051
 
1052
+ #: src/addons/migrator.php:504, src/templates/wp-admin/settings/downloading-and-restoring.php:72, src/templates/wp-admin/settings/form-contents.php:182, src/templates/wp-admin/settings/tab-backups.php:74
1053
  msgid "This feature requires %s version %s or later"
1054
  msgstr ""
1055
 
1056
+ #: src/addons/migrator.php:506
1057
  msgid "This feature is not compatible with %s"
1058
  msgstr ""
1059
 
1060
+ #: src/addons/migrator.php:512
1061
  msgid "Information needed to continue:"
1062
  msgstr ""
1063
 
1064
+ #: src/addons/migrator.php:513
1065
  msgid "Enter details for where this new site is to live within your multisite install:"
1066
  msgstr ""
1067
 
1068
+ #: src/addons/migrator.php:518, src/addons/migrator.php:520
1069
  msgid "You must use lower-case letters or numbers for the site path, only."
1070
  msgstr ""
1071
 
1072
+ #: src/addons/migrator.php:528
1073
  msgid "Attribute imported content to user"
1074
  msgstr ""
1075
 
1076
+ #: src/addons/migrator.php:564
1077
  msgid "Database restoration options:"
1078
  msgstr ""
1079
 
1080
+ #: src/addons/migrator.php:565
1081
  msgid "All references to the site location in the database will be replaced with your current site URL, which is: %s"
1082
  msgstr ""
1083
 
1084
+ #: src/addons/migrator.php:565
1085
  msgid "Search and replace site location in the database (migrate)"
1086
  msgstr ""
1087
 
1088
+ #: src/addons/migrator.php:573
1089
  msgid "Migrated site (from UpdraftPlus)"
1090
  msgstr ""
1091
 
1092
+ #: src/addons/migrator.php:576
1093
  msgid "Required information for restoring this backup was not given (%s)"
1094
  msgstr ""
1095
 
1096
+ #: src/addons/migrator.php:598
1097
  msgid "New site:"
1098
  msgstr ""
1099
 
1100
+ #: src/addons/migrator.php:634, src/addons/migrator.php:635
1101
  msgid "Error when creating new site at your chosen address:"
1102
  msgstr ""
1103
 
1104
+ #: src/addons/migrator.php:906, src/addons/migrator.php:1285
1105
  msgid "Failed: the %s operation was not able to start."
1106
  msgstr ""
1107
 
1108
+ #: src/addons/migrator.php:906, src/addons/migrator.php:908
1109
  msgid "search and replace"
1110
  msgstr ""
1111
 
1112
+ #: src/addons/migrator.php:908, src/addons/migrator.php:1287
1113
  msgid "Failed: we did not understand the result returned by the %s operation."
1114
  msgstr ""
1115
 
1116
+ #: src/addons/migrator.php:948
1117
  msgid "Your .htaccess has an old site reference on line number %s. You should remove it manually."
1118
  msgid_plural "Your .htaccess has an old site references on line numbers %s. You should remove them manually."
1119
  msgstr[0] ""
1120
  msgstr[1] ""
1121
 
1122
+ #: src/addons/migrator.php:1048
1123
  msgid "Database: search and replace site URL"
1124
  msgstr ""
1125
 
1126
+ #: src/addons/migrator.php:1088, src/addons/migrator.php:1092, src/addons/migrator.php:1096, src/addons/migrator.php:1101, src/addons/migrator.php:1105, src/addons/migrator.php:1110
1127
  msgid "Error: unexpected empty parameter (%s, %s)"
1128
  msgstr ""
1129
 
1130
+ #: src/addons/migrator.php:1124
1131
  msgid "Nothing to do: the site URL is already: %s"
1132
  msgstr ""
1133
 
1134
+ #: src/addons/migrator.php:1135
1135
  msgid "Warning: the database's site URL (%s) is different to what we expected (%s)"
1136
  msgstr ""
1137
 
1138
+ #: src/addons/migrator.php:1143
1139
  msgid "Warning: the database's home URL (%s) is different to what we expected (%s)"
1140
  msgstr ""
1141
 
1142
+ #: src/addons/migrator.php:1190
1143
  msgid "Could not get list of tables"
1144
  msgstr ""
1145
 
1146
+ #: src/addons/migrator.php:1212, src/addons/migrator.php:1255, src/addons/migrator.php:1389
1147
  msgid "Search and replacing table:"
1148
  msgstr ""
1149
 
1150
+ #: src/addons/migrator.php:1212
1151
  msgid "skipped (not in list)"
1152
  msgstr ""
1153
 
1154
+ #: src/addons/migrator.php:1255
1155
  msgid "already done"
1156
  msgstr ""
1157
 
1158
+ #: src/addons/migrator.php:1301
1159
  msgid "Tables examined:"
1160
  msgstr ""
1161
 
1162
+ #: src/addons/migrator.php:1302
1163
  msgid "Rows examined:"
1164
  msgstr ""
1165
 
1166
+ #: src/addons/migrator.php:1303
1167
  msgid "Changes made:"
1168
  msgstr ""
1169
 
1170
+ #: src/addons/migrator.php:1304
1171
  msgid "SQL update commands run:"
1172
  msgstr ""
1173
 
1174
+ #: src/addons/migrator.php:1305, src/admin.php:814
1175
  msgid "Errors:"
1176
  msgstr ""
1177
 
1178
+ #: src/addons/migrator.php:1306
1179
  msgid "Time taken (seconds):"
1180
  msgstr ""
1181
 
1182
+ #: src/addons/migrator.php:1320, src/restorer.php:2784
1183
  msgid "the database query being run was:"
1184
  msgstr ""
1185
 
1186
+ #: src/addons/migrator.php:1432
1187
  msgid "rows: %d"
1188
  msgstr ""
1189
 
1190
+ #: src/addons/migrator.php:1558
1191
  msgid "\"%s\" has no primary key, manual change needed on row %s."
1192
  msgstr ""
1193
 
1194
+ #: src/addons/migrator.php:1735
1195
  msgid "Send a backup to another site"
1196
  msgstr ""
1197
 
1198
+ #: src/addons/migrator.php:1739
1199
  msgid "Add a site"
1200
  msgstr ""
1201
 
1202
+ #: src/addons/migrator.php:1744
1203
  msgid "To add a site as a destination for sending to, enter that site's key below."
1204
  msgstr ""
1205
 
1206
+ #: src/addons/migrator.php:1744
1207
  msgid "Keys for a site are created in the section \"receive a backup from a remote site\"."
1208
  msgstr ""
1209
 
1210
+ #: src/addons/migrator.php:1744
1211
  msgid "So, to get the key for the remote site, open the 'Migrate Site' window on that site, and go to that section."
1212
  msgstr ""
1213
 
1214
+ #: src/addons/migrator.php:1744
1215
  msgid "How do I get a site's key?"
1216
  msgstr ""
1217
 
1218
+ #: src/addons/migrator.php:1748
1219
  msgid "Site key"
1220
  msgstr ""
1221
 
1222
+ #: src/addons/migrator.php:1748
1223
  msgid "Paste key here"
1224
  msgstr ""
1225
 
1226
+ #: src/addons/migrator.php:1748, src/admin.php:862
1227
  msgid "Add site"
1228
  msgstr ""
1229
 
1230
+ #: src/addons/migrator.php:1756
1231
  msgid "Receive a backup from a remote site"
1232
  msgstr ""
1233
 
1234
+ #: src/addons/migrator.php:1758
1235
  msgid "To allow another site to send a backup to this site, create a key below. When you are shown the key, then press the 'Migrate' button on the other (sending) site, and copy-and-paste the key over there (in the 'Send a backup to another site' section)."
1236
  msgstr ""
1237
 
1238
+ #: src/addons/migrator.php:1760
1239
  msgid "Create a key: give this key a unique name (e.g. indicate the site it is for), then press \"Create key\":"
1240
  msgstr ""
1241
 
1242
+ #: src/addons/migrator.php:1761
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:5194, src/templates/wp-admin/settings/temporary-clone.php:63
1247
  msgid "Key"
1248
  msgstr ""
1249
 
1250
+ #: src/addons/migrator.php:1763, src/central/bootstrap.php:542
1251
  msgid "Encryption key size:"
1252
  msgstr ""
1253
 
1254
+ #: src/addons/migrator.php:1765, src/addons/migrator.php:1766, src/addons/migrator.php:1768, src/central/bootstrap.php:544, src/central/bootstrap.php:545, src/central/bootstrap.php:547
1255
  msgid "%s bits"
1256
  msgstr ""
1257
 
1258
+ #: src/addons/migrator.php:1765, src/central/bootstrap.php:544
1259
  msgid "easy to break, fastest"
1260
  msgstr ""
1261
 
1262
+ #: src/addons/migrator.php:1766, src/central/bootstrap.php:545
1263
  msgid "faster (possibility for slow PHP installs)"
1264
  msgstr ""
1265
 
1266
+ #: src/addons/migrator.php:1767, src/central/bootstrap.php:546
1267
  msgid "%s bytes"
1268
  msgstr ""
1269
 
1270
+ #: src/addons/migrator.php:1767, src/central/bootstrap.php:546
1271
  msgid "recommended"
1272
  msgstr ""
1273
 
1274
+ #: src/addons/migrator.php:1768, src/central/bootstrap.php:547
1275
  msgid "slower, strongest"
1276
  msgstr ""
1277
 
1278
+ #: src/addons/migrator.php:1771
1279
  msgid "Create key"
1280
  msgstr ""
1281
 
1282
+ #: src/addons/migrator.php:1776
1283
  msgid "Your new key:"
1284
  msgstr ""
1285
 
1303
  msgid "database connection attempt failed"
1304
  msgstr ""
1305
 
1306
+ #: src/addons/moredatabase.php:112, src/backup.php:1602
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
  msgid "%s total table(s) found; %s with the indicated prefix."
1316
  msgstr ""
1317
 
1318
+ #: src/addons/moredatabase.php:144, src/admin.php:1644
1319
  msgid "Messages:"
1320
  msgstr ""
1321
 
1359
  msgid "Username"
1360
  msgstr ""
1361
 
1362
+ #: src/addons/moredatabase.php:242, src/addons/reporting.php:274, src/addons/wp-cli.php:432, src/admin.php:344, src/admin.php:3980, src/admin.php:4033, src/includes/class-remote-send.php:331, src/includes/class-wpadmin-commands.php:157, src/includes/class-wpadmin-commands.php:521, src/restorer.php:354, 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
1363
  msgid "Database"
1364
  msgstr ""
1365
 
1416
  msgid "Download"
1417
  msgstr ""
1418
 
1419
+ #: src/addons/morefiles.php:129, src/addons/morefiles.php:130, src/addons/reporting.php:198
1420
  msgid "Contains:"
1421
  msgstr ""
1422
 
1512
  msgid "Exclude these:"
1513
  msgstr ""
1514
 
1515
+ #: src/addons/morefiles.php:476, src/admin.php:3834
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
 
1708
  msgid "(You appear to be already authenticated)."
1709
  msgstr ""
1710
 
1711
+ #: src/addons/reporting.php:81
1712
  msgid "Your label for this backup (optional)"
1713
  msgstr ""
1714
 
1715
+ #: src/addons/reporting.php:86, src/addons/reporting.php:195, src/backup.php:1134, src/class-updraftplus.php:3940
1716
  msgid "Backup of:"
1717
  msgstr ""
1718
 
1719
+ #: src/addons/reporting.php:166
1720
  msgid "%d errors, %d warnings"
1721
  msgstr ""
1722
 
1723
+ #: src/addons/reporting.php:180
1724
  msgid "%d hours, %d minutes, %d seconds"
1725
  msgstr ""
1726
 
1727
+ #: src/addons/reporting.php:185
1728
  msgid "Backup Report"
1729
  msgstr ""
1730
 
1731
+ #: src/addons/reporting.php:186
1732
  msgid "Backup made by %s"
1733
  msgstr ""
1734
 
1735
+ #: src/addons/reporting.php:196, src/backup.php:1137
1736
  msgid "Latest status:"
1737
  msgstr ""
1738
 
1739
+ #: src/addons/reporting.php:197
1740
  msgid "Backup began:"
1741
  msgstr ""
1742
 
1743
+ #: src/addons/reporting.php:209
1744
  msgid "Errors / warnings:"
1745
  msgstr ""
1746
 
1747
+ #: src/addons/reporting.php:212
1748
  msgid "Errors"
1749
  msgstr ""
1750
 
1751
+ #: src/addons/reporting.php:227
1752
  msgid "Warnings"
1753
  msgstr ""
1754
 
1755
+ #: src/addons/reporting.php:232
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:236
1760
  msgid "Time taken:"
1761
  msgstr ""
1762
 
1763
+ #: src/addons/reporting.php:237, src/admin.php:3993
1764
  msgid "Uploaded to:"
1765
  msgstr ""
1766
 
1767
+ #: src/addons/reporting.php:279, src/backup.php:1087
1768
  msgid "The log file has been attached to this email."
1769
  msgstr ""
1770
 
1771
+ #: src/addons/reporting.php:282
1772
  msgid "Debugging information"
1773
  msgstr ""
1774
 
1775
+ #: src/addons/reporting.php:406
1776
  msgid "Use the \"Reporting\" section to configure the email addresses to be used."
1777
  msgstr ""
1778
 
1779
+ #: src/addons/reporting.php:454
1780
  msgid "Email reports"
1781
  msgstr ""
1782
 
1783
+ #: src/addons/reporting.php:480
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:495
1788
  msgid "Add another address..."
1789
  msgstr ""
1790
 
1791
+ #: src/addons/reporting.php:509
1792
  msgid "Log all messages to syslog"
1793
  msgstr ""
1794
 
1795
+ #: src/addons/reporting.php:510
1796
  msgid "Log all messages to syslog (only server admins are likely to want this)"
1797
  msgstr ""
1798
 
1799
+ #: src/addons/reporting.php:537, src/admin.php:798
1800
  msgid "To send to more than one address, separate each address with a comma."
1801
  msgstr ""
1802
 
1803
+ #: src/addons/reporting.php:539, src/admin.php:792
1804
  msgid "Send a report only when there are warnings/errors"
1805
  msgstr ""
1806
 
1807
+ #: src/addons/reporting.php:541, src/addons/reporting.php:541, src/addons/reporting.php:543, src/methods/email.php:100
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:541, src/admin.php:793
1812
  msgid "When the Email storage method is enabled, also send the backup"
1813
  msgstr ""
1814
 
1815
+ #: src/addons/reporting.php:543
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:543
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:543, src/admin.php:796
1824
  msgid "Only email the database backup"
1825
  msgstr ""
1826
 
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:720, src/addons/wp-cli.php:743
2193
+ msgid "The given value for the '%s' option is not valid"
2194
  msgstr ""
2195
 
2196
+ #: src/addons/wp-cli.php:101
2197
+ msgid "No previous backup found to add an increment to."
2198
  msgstr ""
2199
 
2200
+ #: src/addons/wp-cli.php:110, src/admin.php:801
2201
  msgid "You have chosen to backup a database, but no tables have been selected"
2202
  msgstr ""
2203
 
2204
+ #: src/addons/wp-cli.php:116, src/admin.php:799
2205
  msgid "If you exclude both the database and the files, then you have excluded everything!"
2206
  msgstr ""
2207
 
2208
+ #: src/addons/wp-cli.php:196
2209
  msgid "Recently started backup job id: %s"
2210
  msgstr ""
2211
 
2212
+ #: src/addons/wp-cli.php:206
2213
  msgid "Backup has been started successfully. You can see the last log message by running the following command: \"%s\""
2214
  msgstr ""
2215
 
2216
+ #: src/addons/wp-cli.php:266
2217
  msgid "Invalid Job Id"
2218
  msgstr ""
2219
 
2220
+ #: src/addons/wp-cli.php:372, src/templates/wp-admin/settings/existing-backups-table.php:99
2221
  msgid "Backup sent to remote site - not available for download."
2222
  msgstr ""
2223
 
2224
+ #: src/addons/wp-cli.php:374, src/templates/wp-admin/settings/existing-backups-table.php:100
2225
  msgid "Site"
2226
  msgstr ""
2227
 
2228
+ #: src/addons/wp-cli.php:408
2229
  msgid "No previous full backup found."
2230
  msgstr ""
2231
 
2232
+ #: src/addons/wp-cli.php:409
2233
  msgid "Latest full backup found; identifier:"
2234
  msgstr ""
2235
 
2236
+ #: src/addons/wp-cli.php:430, src/admin.php:4027, src/admin.php:4075
2237
  msgid "unknown source"
2238
  msgstr ""
2239
 
2240
+ #: src/addons/wp-cli.php:432, src/admin.php:4033
2241
  msgid "Database (created by %s)"
2242
  msgstr ""
2243
 
2244
+ #: src/addons/wp-cli.php:438, src/admin.php:4035
2245
  msgid "External database"
2246
  msgstr ""
2247
 
2248
+ #: src/addons/wp-cli.php:450, src/admin.php:4079
2249
  msgid "Files and database WordPress backup (created by %s)"
2250
  msgstr ""
2251
 
2252
+ #: src/addons/wp-cli.php:450, src/admin.php:4079
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:380, 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:2884, src/restorer.php:2909, src/restorer.php:2990, src/updraftplus.php:157
2257
  msgid "Error"
2258
  msgstr ""
2259
 
2260
+ #: src/addons/wp-cli.php:544
2261
  msgid "Missing parameters"
2262
  msgstr ""
2263
 
2264
+ #: src/addons/wp-cli.php:554
2265
  msgid "Migration key created:"
2266
  msgstr ""
2267
 
2268
+ #: src/addons/wp-cli.php:612, src/addons/wp-cli.php:613, src/includes/class-wpadmin-commands.php:114
2269
  msgid "No such backup set exists"
2270
  msgstr ""
2271
 
2272
+ #: src/addons/wp-cli.php:648, src/admin.php:4498
2273
  msgid "UpdraftPlus Restoration: Progress"
2274
  msgstr ""
2275
 
2276
+ #: src/addons/wp-cli.php:665, src/admin.php:4510
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:666
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:740, src/addons/wp-cli.php:744
2285
  msgid "This is not an incremental backup"
2286
  msgstr ""
2287
 
2288
+ #: src/addons/wp-cli.php:785, src/admin.php:4572
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:908, src/admin.php:4468
2309
  msgid "Why am I seeing this?"
2310
  msgstr ""
2311
 
2321
  msgid "At the same time as the files backup"
2322
  msgstr ""
2323
 
2324
+ #: src/admin.php:334, src/admin.php:5163, src/templates/wp-admin/settings/take-backup.php:24
2325
  msgid "Files"
2326
  msgstr ""
2327
 
2328
+ #: src/admin.php:334, src/backup.php:1043
2329
  msgid "Files and database"
2330
  msgstr ""
2331
 
2349
  msgid "Backup"
2350
  msgstr ""
2351
 
2352
+ #: src/admin.php:671, src/admin.php:2828
2353
  msgid "Migrate / Clone"
2354
  msgstr ""
2355
 
2356
+ #: src/admin.php:679, src/admin.php:1092, src/admin.php:2829
2357
  msgid "Settings"
2358
  msgstr ""
2359
 
2360
+ #: src/admin.php:687, src/admin.php:2830
2361
  msgid "Advanced Tools"
2362
  msgstr ""
2363
 
2429
  msgid "Error: the server sent us a response which we did not understand."
2430
  msgstr ""
2431
 
2432
+ #: src/admin.php:819, src/admin.php:1920, 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
2433
  msgid "Existing Backups"
2434
  msgstr ""
2435
 
2436
+ #: src/admin.php:820, src/admin.php:2212
2437
  msgid "File ready."
2438
  msgstr ""
2439
 
2440
+ #: src/admin.php:821, src/admin.php:2543, src/admin.php:2553, src/admin.php:2562, src/admin.php:2604, src/admin.php:3435, src/templates/wp-admin/settings/existing-backups-table.php:19, src/templates/wp-admin/settings/existing-backups-table.php:137
2441
  msgid "Actions"
2442
  msgstr ""
2443
 
2465
  msgid "PHP information"
2466
  msgstr ""
2467
 
2468
+ #: src/admin.php:828, src/admin.php:3150
2469
  msgid "Delete Old Directories"
2470
  msgstr ""
2471
 
2473
  msgid "Raw backup history"
2474
  msgstr ""
2475
 
2476
+ #: src/admin.php:830, src/admin.php:831, src/includes/class-backup-history.php:506
2477
  msgid "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))."
2478
  msgstr ""
2479
 
2481
  msgid "However, UpdraftPlus archives are standard zip/SQL files - so if you are sure that your file has the right format, then you can rename it to match that pattern."
2482
  msgstr ""
2483
 
2484
+ #: src/admin.php:831, src/includes/class-backup-history.php:506
2485
  msgid "If this is a backup created by a different backup plugin, then UpdraftPlus Premium may be able to help you."
2486
  msgstr ""
2487
 
2521
  msgid "The file was uploaded."
2522
  msgstr ""
2523
 
2524
+ #: src/admin.php:842, src/templates/wp-admin/settings/take-backup.php:51
2525
  msgid "Backup Now"
2526
  msgstr ""
2527
 
2528
+ #: src/admin.php:844, src/admin.php:3463, src/admin.php:3497, src/admin.php:4270, src/includes/class-remote-send.php:544, src/templates/wp-admin/settings/existing-backups-table.php:153, src/templates/wp-admin/settings/file-backup-exclude.php:11
2529
  msgid "Delete"
2530
  msgstr ""
2531
 
2533
  msgid "Create"
2534
  msgstr ""
2535
 
2536
+ #: src/admin.php:846, src/admin.php:4250
2537
  msgid "Upload"
2538
  msgstr ""
2539
 
2545
  msgid "Close"
2546
  msgstr ""
2547
 
2548
+ #: src/admin.php:851, src/admin.php:3701
2549
  msgid "Download log file"
2550
  msgstr ""
2551
 
2557
  msgid "Saving..."
2558
  msgstr ""
2559
 
2560
+ #: src/admin.php:855, src/admin.php:2908, src/methods/updraftvault.php:319, src/methods/updraftvault.php:362, src/templates/wp-admin/settings/temporary-clone.php:82
2561
  msgid "Connect"
2562
  msgstr ""
2563
 
2613
  msgid "key name"
2614
  msgstr ""
2615
 
2616
+ #: src/admin.php:870, src/templates/wp-admin/settings/existing-backups-table.php:159
2617
  msgid "Deleting..."
2618
  msgstr ""
2619
 
2721
  msgid "Complete"
2722
  msgstr ""
2723
 
2724
+ #: src/admin.php:905, src/admin.php:3208
2725
  msgid "The backup has finished running"
2726
  msgstr ""
2727
 
2782
  msgstr ""
2783
 
2784
  #: src/admin.php:925
2785
+ msgid "Local backup upload has started; please check the log file to see the upload progress"
2786
  msgstr ""
2787
 
2788
  #: src/admin.php:926
2893
  msgid "UpdraftClone key is required."
2894
  msgstr ""
2895
 
2896
+ #: src/admin.php:954, src/templates/wp-admin/settings/backupnow-modal.php:40
2897
+ msgid "Include your files in the backup"
2898
+ msgstr ""
2899
+
2900
+ #: src/admin.php:955
2901
+ msgid "File backup options"
2902
+ msgstr ""
2903
+
2904
+ #: src/admin.php:1094
2905
  msgid "Add-Ons / Pro Support"
2906
  msgstr ""
2907
 
2908
+ #: src/admin.php:1135
2909
  msgid "An error occurred when fetching storage module options: "
2910
  msgstr ""
2911
 
2912
+ #: src/admin.php:1140, src/includes/class-commands.php:466, src/templates/wp-admin/settings/take-backup.php:13
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:1145
2917
  msgid "Welcome to UpdraftPlus!"
2918
  msgstr ""
2919
 
2920
+ #: src/admin.php:1145
2921
  msgid "To make a backup, just press the Backup Now button."
2922
  msgstr ""
2923
 
2924
+ #: src/admin.php:1145
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:1149, src/class-updraftplus.php:848
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:1153
2933
  msgid "The scheduler is disabled in your WordPress install, via the DISABLE_WP_CRON setting. No backups can run (even &quot;Backup Now&quot;) 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:1157
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:1161
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:1165
2945
  msgid "Your website is hosted using the %s web server."
2946
  msgstr ""
2947
 
2948
+ #: src/admin.php:1165
2949
  msgid "Please consult this FAQ if you have problems backing up."
2950
  msgstr ""
2951
 
2952
+ #: src/admin.php:1169
2953
  msgid "Notice"
2954
  msgstr ""
2955
 
2956
+ #: src/admin.php:1169
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:1174
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:1174
2965
  msgid "Read this page for a guide to possible causes and how to fix it."
2966
  msgstr ""
2967
 
2968
+ #: src/admin.php:1194, src/admin.php:1215, src/admin.php:1234, src/class-updraftplus.php:584, src/class-updraftplus.php:619, src/class-updraftplus.php:624, src/class-updraftplus.php:629
2969
  msgid "UpdraftPlus notice:"
2970
  msgstr ""
2971
 
2972
+ #: src/admin.php:1194
2973
  msgid "%s has been chosen for remote storage, but you are not currently connected."
2974
  msgstr ""
2975
 
2976
+ #: src/admin.php:1194
2977
  msgid "Go to the remote storage settings in order to connect."
2978
  msgstr ""
2979
 
2980
+ #: src/admin.php:1336, src/admin.php:1346
2981
  msgid "Error: invalid path"
2982
  msgstr ""
2983
 
2984
+ #: src/admin.php:1697, src/includes/class-wpadmin-commands.php:506
2985
  msgid "Backup set not found"
2986
  msgstr ""
2987
 
2988
+ #: src/admin.php:1783
2989
  msgid "Did not know how to delete from this cloud service."
2990
  msgstr ""
2991
 
2992
+ #: src/admin.php:1864
2993
  msgid "Backup sets removed:"
2994
  msgstr ""
2995
 
2996
+ #: src/admin.php:1865
2997
  msgid "Local files deleted:"
2998
  msgstr ""
2999
 
3000
+ #: src/admin.php:1866
3001
  msgid "Remote files deleted:"
3002
  msgstr ""
3003
 
3004
+ #: src/admin.php:1953
3005
  msgid "Job deleted"
3006
  msgstr ""
3007
 
3008
+ #: src/admin.php:1961
3009
  msgid "Could not find that job - perhaps it has already finished?"
3010
  msgstr ""
3011
 
3012
+ #: src/admin.php:2059, src/admin.php:2080, src/includes/class-commands.php:837
3013
  msgid "Start backup"
3014
  msgstr ""
3015
 
3016
+ #: src/admin.php:2059, src/includes/class-commands.php:837
3017
  msgid "OK. You should soon see activity in the \"Last log message\" field below."
3018
  msgstr ""
3019
 
3020
+ #: src/admin.php:2142, src/admin.php:2146, src/class-updraftplus.php:619
3021
  msgid "The log file could not be read."
3022
  msgstr ""
3023
 
3024
+ #: src/admin.php:2193
3025
  msgid "Download failed"
3026
  msgstr ""
3027
 
3028
+ #: src/admin.php:2223
3029
  msgid "Download in progress"
3030
  msgstr ""
3031
 
3032
+ #: src/admin.php:2226
3033
  msgid "No local copy present."
3034
  msgstr ""
3035
 
3036
+ #: src/admin.php:2280, src/backup.php:1358
3037
  msgid "Backup directory (%s) is not writable, or does not exist."
3038
  msgstr ""
3039
 
3040
+ #: src/admin.php:2280
3041
  msgid "You will find more information about this in the Settings section."
3042
  msgstr ""
3043
 
3044
+ #: src/admin.php:2317
3045
  msgid "This file could not be uploaded"
3046
  msgstr ""
3047
 
3048
+ #: src/admin.php:2332
3049
  msgid "This backup was created by %s, and can be imported."
3050
  msgstr ""
3051
 
3052
+ #: src/admin.php:2338
3053
  msgid "Bad filename format - this does not look like a file created by UpdraftPlus"
3054
  msgstr ""
3055
 
3056
+ #: src/admin.php:2346
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:2438
3061
  msgid "Bad filename format - this does not look like an encrypted database file created by UpdraftPlus"
3062
  msgstr ""
3063
 
3064
+ #: src/admin.php:2505, src/admin.php:2514
3065
  msgid "Sufficient information about the in-progress restoration operation could not be found."
3066
  msgstr ""
3067
 
3068
+ #: src/admin.php:2595
3069
  msgid "Backup directory could not be created"
3070
  msgstr ""
3071
 
3072
+ #: src/admin.php:2602
3073
  msgid "Backup directory successfully created."
3074
  msgstr ""
3075
 
3076
+ #: src/admin.php:2620, src/class-updraftplus.php:4035, src/restorer.php:2647
3077
  msgid "Warning:"
3078
  msgstr ""
3079
 
3080
+ #: src/admin.php:2620
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:2623
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:2638
3089
  msgid "OptimizePress 2.0 encodes its contents, so search/replace does not work."
3090
  msgstr ""
3091
 
3092
+ #: src/admin.php:2638
3093
  msgid "To fix this problem go here."
3094
  msgstr ""
3095
 
3096
+ #: src/admin.php:2640
3097
  msgid "For even more features and personal support, check out "
3098
  msgstr ""
3099
 
3100
+ #: src/admin.php:2642
3101
  msgid "Your backup has been restored."
3102
  msgstr ""
3103
 
3104
+ #: src/admin.php:2667
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:2667
3109
  msgid "Current limit is:"
3110
  msgstr ""
3111
 
3112
+ #: src/admin.php:2728
3113
  msgid "Backup Contents And Schedule"
3114
  msgstr ""
3115
 
3116
+ #: src/admin.php:2827
3117
  msgid "Backup / Restore"
3118
  msgstr ""
3119
 
3120
+ #: src/admin.php:2831
3121
  msgid "Premium / Extensions"
3122
  msgstr ""
3123
 
3124
+ #: src/admin.php:2865
3125
  msgid "%s minutes, %s seconds"
3126
  msgstr ""
3127
 
3128
+ #: src/admin.php:2867
3129
  msgid "Unfinished restoration"
3130
  msgstr ""
3131
 
3132
+ #: src/admin.php:2868
3133
  msgid "You have an unfinished restoration operation, begun %s ago."
3134
  msgstr ""
3135
 
3136
+ #: src/admin.php:2873
3137
  msgid "Continue restoration"
3138
  msgstr ""
3139
 
3140
+ #: src/admin.php:2874, src/templates/wp-admin/notices/horizontal-notice.php:16, src/templates/wp-admin/notices/horizontal-notice.php:18
3141
  msgid "Dismiss"
3142
  msgstr ""
3143
 
3144
+ #: src/admin.php:2895
3145
  msgid "Not yet got an account (it's free)? Go get one!"
3146
  msgstr ""
3147
 
3148
+ #: src/admin.php:2906
3149
  msgid "Interested in knowing about your UpdraftPlus.Com password security? Read about it here."
3150
  msgstr ""
3151
 
3152
+ #: src/admin.php:2918, 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
3153
  msgid "Processing"
3154
  msgstr ""
3155
 
3156
+ #: src/admin.php:2961
3157
  msgid "Connect with your UpdraftPlus.Com account"
3158
  msgstr ""
3159
 
3160
+ #: src/admin.php:2967, src/templates/wp-admin/settings/form-contents.php:255, src/templates/wp-admin/settings/updraftcentral-connect.php:44
3161
  msgid "Email"
3162
  msgstr ""
3163
 
3164
+ #: src/admin.php:2982
3165
  msgid "Forgotten your details?"
3166
  msgstr ""
3167
 
3168
+ #: src/admin.php:2994
3169
  msgid "Ask WordPress to update UpdraftPlus automatically when an update is available"
3170
  msgstr ""
3171
 
3172
+ #: src/admin.php:3016, src/templates/wp-admin/settings/updraftcentral-connect.php:56
3173
  msgid "One Time Password (check your OTP app to get this password)"
3174
  msgstr ""
3175
 
3176
+ #: src/admin.php:3086
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3177
  msgid "Latest UpdraftPlus.com news:"
3178
  msgstr ""
3179
 
3180
+ #: src/admin.php:3113
3181
  msgid "Download most recently modified log file"
3182
  msgstr ""
3183
 
3184
+ #: src/admin.php:3144
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:3208, src/admin.php:4280
3189
  msgid "View Log"
3190
  msgstr ""
3191
 
3192
+ #: src/admin.php:3247
3193
  msgid "Backup begun"
3194
  msgstr ""
3195
 
3196
+ #: src/admin.php:3252
3197
  msgid "Creating file backup zips"
3198
  msgstr ""
3199
 
3200
+ #: src/admin.php:3265
3201
  msgid "Created file backup zips"
3202
  msgstr ""
3203
 
3204
+ #: src/admin.php:3270
3205
  msgid "Clone server being provisioned and booted (can take several minutes)"
3206
  msgstr ""
3207
 
3208
+ #: src/admin.php:3274
3209
  msgid "Uploading files to remote storage"
3210
  msgstr ""
3211
 
3212
+ #: src/admin.php:3275
3213
  msgid "Sending files to remote site"
3214
  msgstr ""
3215
 
3216
+ #: src/admin.php:3282
3217
  msgid "(%s%%, file %s of %s)"
3218
  msgstr ""
3219
 
3220
+ #: src/admin.php:3287
3221
  msgid "Pruning old backup sets"
3222
  msgstr ""
3223
 
3224
+ #: src/admin.php:3291
3225
  msgid "Waiting until scheduled time to retry because of errors"
3226
  msgstr ""
3227
 
3228
+ #: src/admin.php:3296
3229
  msgid "Backup finished"
3230
  msgstr ""
3231
 
3232
+ #: src/admin.php:3309
3233
  msgid "Created database backup"
3234
  msgstr ""
3235
 
3236
+ #: src/admin.php:3320
3237
  msgid "Creating database backup"
3238
  msgstr ""
3239
 
3240
+ #: src/admin.php:3322
3241
  msgid "table: %s"
3242
  msgstr ""
3243
 
3244
+ #: src/admin.php:3335
3245
  msgid "Encrypting database"
3246
  msgstr ""
3247
 
3248
+ #: src/admin.php:3343
3249
  msgid "Encrypted database"
3250
  msgstr ""
3251
 
3252
+ #: src/admin.php:3345, src/central/bootstrap.php:444, src/central/bootstrap.php:451, src/methods/updraftvault.php:410, src/methods/updraftvault.php:444, src/methods/updraftvault.php:529
3253
  msgid "Unknown"
3254
  msgstr ""
3255
 
3256
+ #: src/admin.php:3362
3257
  msgid "next resumption: %d (after %ss)"
3258
  msgstr ""
3259
 
3260
+ #: src/admin.php:3363
3261
  msgid "last activity: %ss ago"
3262
  msgstr ""
3263
 
3264
+ #: src/admin.php:3383
3265
  msgid "Job ID: %s"
3266
  msgstr ""
3267
 
3268
+ #: src/admin.php:3397, src/admin.php:3687
3269
  msgid "Warning: %s"
3270
  msgstr ""
3271
 
3272
+ #: src/admin.php:3417
3273
  msgid "show log"
3274
  msgstr ""
3275
 
3276
+ #: src/admin.php:3418
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:3418
3281
  msgid "stop"
3282
  msgstr ""
3283
 
3284
+ #: src/admin.php:3428, src/admin.php:3428
3285
  msgid "Remove old directories"
3286
  msgstr ""
3287
 
3288
+ #: src/admin.php:3431
3289
  msgid "Old directories successfully removed."
3290
  msgstr ""
3291
 
3292
+ #: src/admin.php:3433
3293
  msgid "Old directory removal failed for some reason. You may want to do this manually."
3294
  msgstr ""
3295
 
3296
+ #: src/admin.php:3470, src/admin.php:3505, src/admin.php:3509, src/includes/class-remote-send.php:327, src/includes/class-storage-methods-interface.php:315, src/restorer.php:226, src/restorer.php:2888, src/restorer.php:2993
3297
  msgid "OK"
3298
  msgstr ""
3299
 
3300
+ #: src/admin.php:3554
3301
  msgid "The request to the filesystem to create the directory failed."
3302
  msgstr ""
3303
 
3304
+ #: src/admin.php:3568
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:3573
3309
  msgid "The folder exists, but your webserver does not have permission to write to it."
3310
  msgstr ""
3311
 
3312
+ #: src/admin.php:3573
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:3675
3317
  msgid "incremental backup; base backup: %s"
3318
  msgstr ""
3319
 
3320
+ #: src/admin.php:3705
3321
  msgid "No backup has been completed"
3322
  msgstr ""
3323
 
3324
+ #: src/admin.php:3719
3325
  msgctxt "i.e. Non-automatic"
3326
  msgid "Manual"
3327
  msgstr ""
3328
 
3329
+ #: src/admin.php:3732
3330
  msgid "Backup directory specified is writable, which is good."
3331
  msgstr ""
3332
 
3333
+ #: src/admin.php:3736
3334
  msgid "Backup directory specified does <b>not</b> exist."
3335
  msgstr ""
3336
 
3337
+ #: src/admin.php:3738
3338
  msgid "Backup directory specified exists, but is <b>not</b> writable."
3339
  msgstr ""
3340
 
3341
+ #: src/admin.php:3740
3342
  msgid "Follow this link to attempt to create the directory and set the permissions"
3343
  msgstr ""
3344
 
3345
+ #: src/admin.php:3740
3346
  msgid "or, to reset this option"
3347
  msgstr ""
3348
 
3349
+ #: src/admin.php:3740
3350
  msgid "press here"
3351
  msgstr ""
3352
 
3353
+ #: src/admin.php:3740
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:3820
3358
  msgid "Your wp-content directory server path: %s"
3359
  msgstr ""
3360
 
3361
+ #: src/admin.php:3820
3362
  msgid "Any other directories found inside wp-content"
3363
  msgstr ""
3364
 
3365
+ #: src/admin.php:3831
3366
  msgid "Exclude these from"
3367
  msgstr ""
3368
 
3369
+ #: src/admin.php:3919
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:3921
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:3924
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:3962, 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
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:4010
3386
  msgid "Total backup size:"
3387
  msgstr ""
3388
 
3389
+ #: src/admin.php:4076, src/includes/class-wpadmin-commands.php:162, src/restorer.php:1975
3390
  msgid "Backup created by unknown source (%s) - cannot be restored."
3391
  msgstr ""
3392
 
3393
+ #: src/admin.php:4105
3394
  msgid "Press here to download or browse"
3395
  msgstr ""
3396
 
3397
+ #: src/admin.php:4110
3398
  msgid "(%d archive(s) in set)."
3399
  msgstr ""
3400
 
3401
+ #: src/admin.php:4113
3402
  msgid "You appear to be missing one or more archives from this multi-archive set."
3403
  msgstr ""
3404
 
3405
+ #: src/admin.php:4141, src/admin.php:4143
3406
  msgid "(Not finished)"
3407
  msgstr ""
3408
 
3409
+ #: src/admin.php:4143
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:4168
3414
  msgid "(backup set imported from remote location)"
3415
  msgstr ""
3416
 
3417
+ #: src/admin.php:4171
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:4250
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:4270
3426
  msgid "Delete this backup set"
3427
  msgstr ""
3428
 
3429
+ #: src/admin.php:4490
3430
  msgid "This backup does not exist in the backup history - restoration aborted. Timestamp:"
3431
  msgstr ""
3432
 
3433
+ #: src/admin.php:4491
3434
  msgid "Backup does not exist in the backup history"
3435
  msgstr ""
3436
 
3437
+ #: src/admin.php:4519
3438
  msgid "ABORT: Could not find the information on which entities to restore."
3439
  msgstr ""
3440
 
3441
+ #: src/admin.php:4520
3442
  msgid "If making a request for support, please include this information:"
3443
  msgstr ""
3444
 
3445
+ #: src/admin.php:4803
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:4803
3450
  msgid "settings"
3451
  msgstr ""
3452
 
3453
+ #: src/admin.php:4803
3454
  msgid "Not got any remote storage?"
3455
  msgstr ""
3456
 
3457
+ #: src/admin.php:4803
3458
  msgid "Check out UpdraftPlus Vault."
3459
  msgstr ""
3460
 
3461
+ #: src/admin.php:4805
3462
  msgid "Send this backup to remote storage"
3463
  msgstr ""
3464
 
3465
+ #: src/admin.php:4895
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:4902, src/templates/wp-admin/settings/take-backup.php:51
3470
  msgid "This button is disabled because your backup directory is not writable (see the settings)."
3471
  msgstr ""
3472
 
3473
+ #: src/admin.php:4931
3474
  msgid "Your settings have been saved."
3475
  msgstr ""
3476
 
3477
+ #: src/admin.php:4936
3478
  msgid "Your settings failed to save. Please refresh the settings page and try again"
3479
  msgstr ""
3480
 
3481
+ #: src/admin.php:4984
3482
  msgid "authentication error"
3483
  msgstr ""
3484
 
3485
+ #: src/admin.php:4988
3486
  msgid "Remote storage method and instance id are required for authentication."
3487
  msgstr ""
3488
 
3489
+ #: src/admin.php:5055
3490
  msgid "Your settings have been wiped."
3491
  msgstr ""
3492
 
3493
+ #: src/admin.php:5156
3494
  msgid "Known backups (raw)"
3495
  msgstr ""
3496
 
3497
+ #: src/admin.php:5191
3498
  msgid "Options (raw)"
3499
  msgstr ""
3500
 
3501
+ #: src/admin.php:5194
3502
  msgid "Value"
3503
  msgstr ""
3504
 
3505
+ #: src/admin.php:5346
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:5368, src/admin.php:5372, 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
3512
  msgid "%s version:"
3513
  msgstr ""
3514
 
3515
+ #: src/admin.php:5376
3516
  msgid "Clone region:"
3517
  msgstr ""
3518
 
3519
+ #: src/admin.php:5381
3520
  msgid "Forbid non-administrators to login to WordPress on your clone"
3521
  msgstr ""
3522
 
3523
+ #: src/admin.php:5404
3524
  msgid "(current version)"
3525
  msgstr ""
3526
 
3527
+ #: src/admin.php:5424
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:5425
3532
  msgid "Front page:"
3533
  msgstr ""
3534
 
3535
+ #: src/admin.php:5426
3536
  msgid "Dashboard:"
3537
  msgstr ""
3538
 
3539
+ #: src/admin.php:5428, src/admin.php:5431
3540
  msgid "You can find your temporary clone information in your updraftplus.com account here."
3541
  msgstr ""
3542
 
3543
+ #: src/admin.php:5430
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
 
3552
  msgid "Could not create %s zip. Consult the log file for more information."
3553
  msgstr ""
3554
 
3555
+ #: src/backup.php:450, src/backup.php:2130, src/class-updraftplus.php:2125, src/class-updraftplus.php:2192, src/includes/class-storage-methods-interface.php:364, src/restorer.php:370
3556
  msgid "A PHP exception (%s) has occurred: %s"
3557
  msgstr ""
3558
 
3559
+ #: src/backup.php:456, src/backup.php:2139, src/class-updraftplus.php:2134, src/class-updraftplus.php:2199, src/includes/class-storage-methods-interface.php:373, src/restorer.php:384
3560
  msgid "A PHP fatal error (%s) has occurred: %s"
3561
  msgstr ""
3562
 
3563
+ #: src/backup.php:1036
3564
  msgid "Full backup"
3565
  msgstr ""
3566
 
3567
+ #: src/backup.php:1036
3568
  msgid "Incremental"
3569
  msgstr ""
3570
 
3571
+ #: src/backup.php:1041, src/class-updraftplus.php:2996
3572
  msgid "The backup was aborted by the user"
3573
  msgstr ""
3574
 
3575
+ #: src/backup.php:1045
3576
  msgid "Files (database backup has not completed)"
3577
  msgstr ""
3578
 
3579
+ #: src/backup.php:1045
3580
  msgid "Files only (database was not part of this particular schedule)"
3581
  msgstr ""
3582
 
3583
+ #: src/backup.php:1048
3584
  msgid "Database (files backup has not completed)"
3585
  msgstr ""
3586
 
3587
+ #: src/backup.php:1048
3588
  msgid "Database only (files were not part of this particular schedule)"
3589
  msgstr ""
3590
 
3591
+ #: src/backup.php:1051
3592
  msgid "Unknown/unexpected error - please raise a support request"
3593
  msgstr ""
3594
 
3595
+ #: src/backup.php:1060
3596
  msgid "Errors encountered:"
3597
  msgstr ""
3598
 
3599
+ #: src/backup.php:1078
3600
  msgid "Warnings encountered:"
3601
  msgstr ""
3602
 
3603
+ #: src/backup.php:1093
3604
  msgid "Backed up: %s"
3605
  msgstr ""
3606
 
3607
+ #: src/backup.php:1102
3608
  msgid "Email reports created by UpdraftPlus (free edition) bring you the latest UpdraftPlus.com news"
3609
  msgstr ""
3610
 
3611
+ #: src/backup.php:1102
3612
  msgid "read more at %s"
3613
  msgstr ""
3614
 
3615
+ #: src/backup.php:1135
3616
  msgid "WordPress backup is complete"
3617
  msgstr ""
3618
 
3619
+ #: src/backup.php:1136
3620
  msgid "Backup contains:"
3621
  msgstr ""
3622
 
3623
+ #: src/backup.php:1602
3624
  msgid "database connection attempt failed."
3625
  msgstr ""
3626
 
3627
+ #: src/backup.php:1648
3628
  msgid "please wait for the rescheduled attempt"
3629
  msgstr ""
3630
 
3631
+ #: src/backup.php:1650
3632
  msgid "No database tables found"
3633
  msgstr ""
3634
 
3635
+ #: src/backup.php:1661
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:1739
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:1739
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:1789, src/backup.php:1791
3648
  msgid "The database backup appears to have failed"
3649
  msgstr ""
3650
 
3651
+ #: src/backup.php:1789
3652
  msgid "no options or sitemeta table was found"
3653
  msgstr ""
3654
 
3655
+ #: src/backup.php:1791
3656
  msgid "the options table was not found"
3657
  msgstr ""
3658
 
3659
+ #: src/backup.php:1839
3660
  msgid "Failed to open database file for reading:"
3661
  msgstr ""
3662
 
3663
+ #: src/backup.php:1858
3664
  msgid "An error occurred whilst closing the final database file"
3665
  msgstr ""
3666
 
3667
+ #: src/backup.php:2171
3668
  msgid "Could not open the backup file for writing"
3669
  msgstr ""
3670
 
3671
+ #: src/backup.php:2297
3672
  msgid "Infinite recursion: consult your log for more information"
3673
  msgstr ""
3674
 
3675
+ #: src/backup.php:2330
3676
  msgid "%s: unreadable file - could not be backed up (check the file permissions and ownership)"
3677
  msgstr ""
3678
 
3679
+ #: src/backup.php:2352
3680
  msgid "Failed to open directory (check the file permissions and ownership): %s"
3681
  msgstr ""
3682
 
3683
+ #: src/backup.php:2417
3684
  msgid "%s: unreadable file - could not be backed up"
3685
  msgstr ""
3686
 
3687
+ #: src/backup.php:3096, src/backup.php:3379
3688
  msgid "Failed to open the zip file (%s) - %s"
3689
  msgstr ""
3690
 
3691
+ #: src/backup.php:3122
3692
  msgid "A very large file was encountered: %s (size: %s Mb)"
3693
  msgstr ""
3694
 
3695
+ #: src/backup.php:3423, src/class-updraftplus.php:861
3696
  msgid "Your free space in your hosting account is very low - only %s Mb remain"
3697
  msgstr ""
3698
 
3699
+ #: src/backup.php:3430
3700
  msgid "The zip engine returned the message: %s."
3701
  msgstr ""
3702
 
3703
+ #: src/backup.php:3432
3704
  msgid "A zip error occurred"
3705
  msgstr ""
3706
 
3707
+ #: src/backup.php:3434
3708
  msgid "your web hosting account appears to be full; please see: %s"
3709
  msgstr ""
3710
 
3711
+ #: src/backup.php:3436
3712
  msgid "check your log for more details."
3713
  msgstr ""
3714
 
3960
  msgid "Others"
3961
  msgstr ""
3962
 
3963
+ #: src/class-updraftplus.php:2023
3964
  msgid "Your website is visited infrequently and UpdraftPlus is not getting the resources it hoped for; please read this page:"
3965
  msgstr ""
3966
 
3967
+ #: src/class-updraftplus.php:2701
3968
  msgid "Could not create files in the backup directory. Backup aborted - check your UpdraftPlus settings."
3969
  msgstr ""
3970
 
3971
+ #: src/class-updraftplus.php:3003
3972
  msgid "The backup apparently succeeded and is now complete"
3973
  msgstr ""
3974
 
3975
+ #: src/class-updraftplus.php:3009
3976
  msgid "The backup apparently succeeded (with warnings) and is now complete"
3977
  msgstr ""
3978
 
3979
+ #: src/class-updraftplus.php:3015
3980
  msgid "To complete your migration/clone, you should now log in to the remote site and restore the backup set."
3981
  msgstr ""
3982
 
3983
+ #: src/class-updraftplus.php:3015
3984
  msgid "Your clone will now deploy this data to re-create your site."
3985
  msgstr ""
3986
 
3987
+ #: src/class-updraftplus.php:3021
3988
  msgid "The backup attempt has finished, apparently unsuccessfully"
3989
  msgstr ""
3990
 
3991
+ #: src/class-updraftplus.php:3025
3992
  msgid "The backup has not finished; a resumption is scheduled"
3993
  msgstr ""
3994
 
3995
+ #: src/class-updraftplus.php:3415
3996
  msgid "Could not read the directory"
3997
  msgstr ""
3998
 
3999
+ #: src/class-updraftplus.php:3431
4000
  msgid "Could not save backup history because we have no backup array. Backup probably failed."
4001
  msgstr ""
4002
 
4003
+ #: src/class-updraftplus.php:3857, src/includes/class-updraftplus-encryption.php:336, src/restorer.php:768
4004
  msgid "Decryption failed. The database file is encrypted, but you have no encryption key entered."
4005
  msgstr ""
4006
 
4007
+ #: src/class-updraftplus.php:3859
4008
  msgid "Decryption failed. The database file is encrypted."
4009
  msgstr ""
4010
 
4011
+ #: src/class-updraftplus.php:3869, src/includes/class-updraftplus-encryption.php:354, src/restorer.php:781
4012
  msgid "Decryption failed. The most likely cause is that you used the wrong key."
4013
  msgstr ""
4014
 
4015
+ #: src/class-updraftplus.php:3876
4016
  msgid "The database is too small to be a valid WordPress database (size: %s Kb)."
4017
  msgstr ""
4018
 
4019
+ #: src/class-updraftplus.php:3884
4020
  msgid "Failed to open database file."
4021
  msgstr ""
4022
 
4023
+ #: src/class-updraftplus.php:3940
4024
  msgid "(version: %s)"
4025
  msgstr ""
4026
 
4027
+ #: src/class-updraftplus.php:3953
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:3958
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:3960
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:3960, src/class-updraftplus.php:3962
4040
  msgid "the migrator add-on"
4041
  msgstr ""
4042
 
4043
+ #: src/class-updraftplus.php:3962
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:3971, src/class-updraftplus.php:3991
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:3974
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:3979, src/restorer.php:1446
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:3979, src/restorer.php:1446
4060
  msgid "You should enable %s to make any pretty permalinks (e.g. %s) work"
4061
  msgstr ""
4062
 
4063
+ #: src/class-updraftplus.php:4000, src/class-updraftplus.php:4007
4064
  msgid "%s version: %s"
4065
  msgstr ""
4066
 
4067
+ #: src/class-updraftplus.php:4001
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:4008
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:4008
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:4008
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:4008
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:4013, src/restorer.php:2215, src/restorer.php:2304, src/restorer.php:2330
4088
  msgid "Old table prefix:"
4089
  msgstr ""
4090
 
4091
+ #: src/class-updraftplus.php:4016
4092
  msgid "Backup label:"
4093
  msgstr ""
4094
 
4095
+ #: src/class-updraftplus.php:4024, src/class-updraftplus.php:4027, src/restorer.php:530
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:4027
4100
  msgid "It will be imported as a new site."
4101
  msgstr ""
4102
 
4103
+ #: src/class-updraftplus.php:4027
4104
  msgid "Please read this link for important information on this process."
4105
  msgstr ""
4106
 
4107
+ #: src/class-updraftplus.php:4031, src/restorer.php:2227
4108
  msgid "To import an ordinary WordPress site into a multisite installation requires %s."
4109
  msgstr ""
4110
 
4111
+ #: src/class-updraftplus.php:4035
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:4035
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:4042, src/restorer.php:2233
4120
  msgid "Site information:"
4121
  msgstr ""
4122
 
4123
+ #: src/class-updraftplus.php:4102
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:4102
4128
  msgid "You must upgrade MySQL to be able to use this database."
4129
  msgstr ""
4130
 
4131
+ #: src/class-updraftplus.php:4123
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:4123
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:4133
4142
  msgid "Your chosen character set to use instead:"
4143
  msgstr ""
4144
 
4145
+ #: src/class-updraftplus.php:4157
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:4157
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:4180
4156
  msgid "Your chosen replacement collation"
4157
  msgstr ""
4158
 
4159
+ #: src/class-updraftplus.php:4203
4160
  msgid "Choose a default for each table"
4161
  msgstr ""
4162
 
4163
+ #: src/class-updraftplus.php:4255
4164
  msgid "This database backup is missing core WordPress tables: %s"
4165
  msgstr ""
4166
 
4167
+ #: src/class-updraftplus.php:4258
4168
  msgid "This database backup has the following WordPress tables excluded: %s"
4169
  msgstr ""
4170
 
4171
+ #: src/class-updraftplus.php:4263
4172
  msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
4173
  msgstr ""
4174
 
4175
+ #: src/includes/class-backup-history.php:130
4176
  msgid "You have not yet made any backups."
4177
  msgstr ""
4178
 
4179
+ #: src/includes/class-backup-history.php:674
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
 
4183
+ #: src/includes/class-commands.php:405
4184
  msgid "%s add-on not found"
4185
  msgstr ""
4186
 
4187
+ #: src/includes/class-commands.php:793, src/methods/updraftvault.php:630, src/udaddons/options.php:229
4188
  msgid "An unknown error occurred when trying to connect to UpdraftPlus.Com"
4189
  msgstr ""
4190
 
4191
+ #: src/includes/class-commands.php:896, src/includes/class-commands.php:941
4192
  msgid "Available temporary clone tokens:"
4193
  msgstr ""
4194
 
4195
+ #: src/includes/class-commands.php:897
4196
  msgid "You can buy more temporary clone tokens here."
4197
  msgstr ""
4198
 
4199
+ #: src/includes/class-commands.php:904
4200
  msgid "Create clone"
4201
  msgstr ""
4202
 
4203
+ #: src/includes/class-commands.php:910
4204
  msgid "Current clones"
4205
  msgstr ""
4206
 
4207
+ #: src/includes/class-commands.php:910
4208
  msgid "manage"
4209
  msgstr ""
4210
 
4211
+ #: src/includes/class-commands.php:953
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
 
4228
  msgid "Web-server disk space in use by UpdraftPlus"
4229
  msgstr ""
4230
 
4231
+ #: src/includes/class-filesystem-functions.php:245, src/methods/ftp.php:330
4232
  msgid "Your web server's PHP installation has these functions disabled: %s."
4233
  msgstr ""
4234
 
4235
+ #: src/includes/class-filesystem-functions.php:245, src/methods/ftp.php:330, src/restorer.php:2006
4236
  msgid "Your hosting company must enable these functions before %s can work."
4237
  msgstr ""
4238
 
4239
+ #: src/includes/class-filesystem-functions.php:245, src/restorer.php:2006
4240
  msgid "restoration"
4241
  msgstr ""
4242
 
4243
+ #: src/includes/class-filesystem-functions.php:265
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:272, src/includes/class-filesystem-functions.php:294
4248
  msgid "The attempt to undo the double-compression failed."
4249
  msgstr ""
4250
 
4251
+ #: src/includes/class-filesystem-functions.php:296
4252
  msgid "The attempt to undo the double-compression succeeded."
4253
  msgstr ""
4254
 
4361
  msgstr ""
4362
 
4363
  #: src/includes/class-wpadmin-commands.php:217
4364
+ msgid "This backup set contains incremental backups of your files; please select the time you wish to restore your files to"
4365
  msgstr ""
4366
 
4367
  #: src/includes/class-wpadmin-commands.php:234
4496
  msgid "UpdraftPlus Premium:"
4497
  msgstr ""
4498
 
4499
+ #: src/includes/updraftplus-notices.php:31, src/templates/wp-admin/settings/header.php:17, src/templates/wp-admin/settings/tab-addons.php:21, src/templates/wp-admin/settings/tab-addons.php:103
4500
  msgid "Support"
4501
  msgstr ""
4502
 
4504
  msgid "Enjoy professional, fast, and friendly help whenever you need it with Premium."
4505
  msgstr ""
4506
 
4507
+ #: src/includes/updraftplus-notices.php:41, src/templates/wp-admin/settings/tab-addons.php:260
4508
  msgid "UpdraftVault storage"
4509
  msgstr ""
4510
 
5091
  msgid "For more options, use the \"%s\" add-on."
5092
  msgstr ""
5093
 
5094
+ #: src/methods/email.php:97, src/templates/wp-admin/settings/form-contents.php:243, src/templates/wp-admin/settings/tab-addons.php:207, src/templates/wp-admin/settings/tab-addons.php:208
5095
  msgid "Reporting"
5096
  msgstr ""
5097
 
5417
  msgid "Local write failed: Failed to download"
5418
  msgstr ""
5419
 
5420
+ #: src/methods/updraftvault.php:71, src/templates/wp-admin/settings/tab-addons.php:259
5421
  msgid "UpdraftVault"
5422
  msgstr ""
5423
 
5944
  msgid "required for some remote storage providers"
5945
  msgstr ""
5946
 
5947
+ #: src/templates/wp-admin/advanced/site-info.php:63, src/templates/wp-admin/advanced/site-info.php:66, src/templates/wp-admin/settings/tab-addons.php:53, src/templates/wp-admin/settings/tab-addons.php:66, src/templates/wp-admin/settings/tab-addons.php:69, src/templates/wp-admin/settings/tab-addons.php:82, src/templates/wp-admin/settings/tab-addons.php:98, src/templates/wp-admin/settings/tab-addons.php:111, src/templates/wp-admin/settings/tab-addons.php:124, src/templates/wp-admin/settings/tab-addons.php:137, src/templates/wp-admin/settings/tab-addons.php:150, src/templates/wp-admin/settings/tab-addons.php:163, src/templates/wp-admin/settings/tab-addons.php:176, src/templates/wp-admin/settings/tab-addons.php:189, src/templates/wp-admin/settings/tab-addons.php:202, src/templates/wp-admin/settings/tab-addons.php:215, src/templates/wp-admin/settings/tab-addons.php:228, src/templates/wp-admin/settings/tab-addons.php:241, src/templates/wp-admin/settings/tab-addons.php:254, src/templates/wp-admin/settings/tab-addons.php:271, src/templates/wp-admin/settings/tab-addons.php:277
5948
  msgid "Yes"
5949
  msgstr ""
5950
 
5951
+ #: src/templates/wp-admin/advanced/site-info.php:66, src/templates/wp-admin/settings/tab-addons.php:79, src/templates/wp-admin/settings/tab-addons.php:95, src/templates/wp-admin/settings/tab-addons.php:108, src/templates/wp-admin/settings/tab-addons.php:121, src/templates/wp-admin/settings/tab-addons.php:134, src/templates/wp-admin/settings/tab-addons.php:147, src/templates/wp-admin/settings/tab-addons.php:160, src/templates/wp-admin/settings/tab-addons.php:173, src/templates/wp-admin/settings/tab-addons.php:186, src/templates/wp-admin/settings/tab-addons.php:199, src/templates/wp-admin/settings/tab-addons.php:212, src/templates/wp-admin/settings/tab-addons.php:225, src/templates/wp-admin/settings/tab-addons.php:238, src/templates/wp-admin/settings/tab-addons.php:251, src/templates/wp-admin/settings/tab-addons.php:268
5952
  msgid "No"
5953
  msgstr ""
5954
 
6000
  msgid "log results to console"
6001
  msgstr ""
6002
 
6003
+ #: src/templates/wp-admin/advanced/tools-menu.php:10, src/templates/wp-admin/settings/tab-addons.php:246, src/templates/wp-admin/settings/tab-addons.php:247
6004
  msgid "Lock settings"
6005
  msgstr ""
6006
 
6140
  msgid "Free two-factor security plugin"
6141
  msgstr ""
6142
 
6143
+ #: src/templates/wp-admin/settings/backupnow-modal.php:8
6144
+ msgid "All WordPress tables will be backed up."
6145
+ msgstr ""
6146
+
6147
+ #: src/templates/wp-admin/settings/backupnow-modal.php:8
6148
+ msgid "With UpdraftPlus Premium, you can choose to backup non-WordPress tables, backup only specified tables, and backup other databases too."
6149
+ msgstr ""
6150
+
6151
+ #: src/templates/wp-admin/settings/backupnow-modal.php:12
6152
+ msgid "Take a new backup"
6153
+ msgstr ""
6154
+
6155
+ #: src/templates/wp-admin/settings/backupnow-modal.php:13
6156
+ msgid "Take an incremental backup"
6157
+ msgstr ""
6158
+
6159
+ #: src/templates/wp-admin/settings/backupnow-modal.php:17
6160
+ msgid "Incremental backups are a feature of %s (upgrade by following this link)."
6161
+ msgstr ""
6162
+
6163
+ #: src/templates/wp-admin/settings/backupnow-modal.php:20, src/templates/wp-admin/settings/backupnow-modal.php:67
6164
+ msgid "Find out more about incremental backups here."
6165
+ msgstr ""
6166
+
6167
+ #: src/templates/wp-admin/settings/backupnow-modal.php:26
6168
+ msgid "Include your database in the backup"
6169
+ msgstr ""
6170
+
6171
+ #: src/templates/wp-admin/settings/backupnow-modal.php:45
6172
+ msgid "Your saved settings also affect what is backed up - e.g. files excluded."
6173
+ msgstr ""
6174
+
6175
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:8
6176
  msgid "Delete backup set"
6177
  msgstr ""
6197
  msgstr ""
6198
 
6199
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:30
6200
+ msgid "Restore files from"
6201
  msgstr ""
6202
 
6203
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:34
6328
  msgid "Add an exclusion rule"
6329
  msgstr ""
6330
 
6331
+ #: src/templates/wp-admin/settings/existing-backups-table.php:17, src/templates/wp-admin/settings/existing-backups-table.php:62
6332
  msgid "Backup date"
6333
  msgstr ""
6334
 
6335
+ #: src/templates/wp-admin/settings/existing-backups-table.php:18, src/templates/wp-admin/settings/existing-backups-table.php:95
6336
  msgid "Backup data (click to download)"
6337
  msgstr ""
6338
 
6339
+ #: src/templates/wp-admin/settings/existing-backups-table.php:85
6340
  msgid "remote site"
6341
  msgstr ""
6342
 
6343
+ #: src/templates/wp-admin/settings/existing-backups-table.php:87
6344
  msgid "Remote storage: %s"
6345
  msgstr ""
6346
 
6347
+ #: src/templates/wp-admin/settings/existing-backups-table.php:152
6348
  msgid "Actions upon selected backups"
6349
  msgstr ""
6350
 
6351
+ #: src/templates/wp-admin/settings/existing-backups-table.php:154
6352
  msgid "Select all"
6353
  msgstr ""
6354
 
6355
+ #: src/templates/wp-admin/settings/existing-backups-table.php:155
6356
  msgid "Deselect"
6357
  msgstr ""
6358
 
6359
+ #: src/templates/wp-admin/settings/existing-backups-table.php:156
6360
  msgid "Use ctrl / cmd + press to select several items"
6361
  msgstr ""
6362
 
6363
+ #: src/templates/wp-admin/settings/existing-backups-table.php:159
6364
  msgid "Please allow time for the communications with the remote storage to complete."
6365
  msgstr ""
6366
 
6388
  msgid "e.g. if your server is busy at day and you want to run overnight"
6389
  msgstr ""
6390
 
6391
+ #: src/templates/wp-admin/settings/form-contents.php:87
6392
+ msgid "to take incremental backups"
6393
+ msgstr ""
6394
+
6395
  #: src/templates/wp-admin/settings/form-contents.php:87
6396
  msgid "or to configure more complex schedules"
6397
  msgstr ""
6605
  msgid "Save Changes"
6606
  msgstr ""
6607
 
6608
+ #: src/templates/wp-admin/settings/header.php:11, src/templates/wp-admin/settings/tab-addons.php:47, src/templates/wp-admin/settings/tab-addons.php:68, src/templates/wp-admin/settings/tab-addons.php:81, src/templates/wp-admin/settings/tab-addons.php:97, src/templates/wp-admin/settings/tab-addons.php:110, src/templates/wp-admin/settings/tab-addons.php:123, src/templates/wp-admin/settings/tab-addons.php:136, src/templates/wp-admin/settings/tab-addons.php:149, src/templates/wp-admin/settings/tab-addons.php:162, src/templates/wp-admin/settings/tab-addons.php:175, src/templates/wp-admin/settings/tab-addons.php:188, src/templates/wp-admin/settings/tab-addons.php:201, src/templates/wp-admin/settings/tab-addons.php:214, src/templates/wp-admin/settings/tab-addons.php:227, src/templates/wp-admin/settings/tab-addons.php:240, src/templates/wp-admin/settings/tab-addons.php:253, src/templates/wp-admin/settings/tab-addons.php:270
6609
  msgid "Premium"
6610
  msgstr ""
6611
 
6677
  msgid "If you have purchased from UpdraftPlus.Com, then follow this link to the installation instructions (particularly step 1)."
6678
  msgstr ""
6679
 
6680
+ #: src/templates/wp-admin/settings/tab-addons.php:43, src/templates/wp-admin/settings/tab-addons.php:65, src/templates/wp-admin/settings/tab-addons.php:78, src/templates/wp-admin/settings/tab-addons.php:94, src/templates/wp-admin/settings/tab-addons.php:107, src/templates/wp-admin/settings/tab-addons.php:120, src/templates/wp-admin/settings/tab-addons.php:133, src/templates/wp-admin/settings/tab-addons.php:146, src/templates/wp-admin/settings/tab-addons.php:159, src/templates/wp-admin/settings/tab-addons.php:172, src/templates/wp-admin/settings/tab-addons.php:185, src/templates/wp-admin/settings/tab-addons.php:198, src/templates/wp-admin/settings/tab-addons.php:211, src/templates/wp-admin/settings/tab-addons.php:224, src/templates/wp-admin/settings/tab-addons.php:237, src/templates/wp-admin/settings/tab-addons.php:250, src/templates/wp-admin/settings/tab-addons.php:267
6681
  msgid "Free"
6682
  msgstr ""
6683
 
6684
+ #: src/templates/wp-admin/settings/tab-addons.php:53, src/templates/wp-admin/settings/tab-addons.php:277
6685
  msgid "Installed"
6686
  msgstr ""
6687
 
6688
+ #: src/templates/wp-admin/settings/tab-addons.php:56, src/templates/wp-admin/settings/tab-addons.php:280
6689
  msgid "Upgrade now"
6690
  msgstr ""
6691
 
6709
  msgid "UpdraftPlus Migrator clones your WordPress site and moves it to a new domain directly and simply."
6710
  msgstr ""
6711
 
6712
+ #: src/templates/wp-admin/settings/tab-addons.php:87, src/templates/wp-admin/settings/tab-addons.php:88
6713
+ msgid "Incremental backups"
6714
+ msgstr ""
6715
+
6716
+ #: src/templates/wp-admin/settings/tab-addons.php:90
6717
+ msgid "Incremental backups are backups of just the changes since your last full backup. As a result, they are faster and need less space and resources to process."
6718
+ msgstr ""
6719
+
6720
+ #: src/templates/wp-admin/settings/tab-addons.php:104
6721
  msgid "Fast, personal support"
6722
  msgstr ""
6723
 
6724
+ #: src/templates/wp-admin/settings/tab-addons.php:105
6725
  msgid "Provides expert help and support from the developers whenever you need it."
6726
  msgstr ""
6727
 
6728
+ #: src/templates/wp-admin/settings/tab-addons.php:116, src/templates/wp-admin/settings/tab-addons.php:117
6729
  msgid "Pre-update backups"
6730
  msgstr ""
6731
 
6732
+ #: src/templates/wp-admin/settings/tab-addons.php:118
6733
  msgid "Automatically backs up your website before any updates to plugins, themes and WordPress core."
6734
  msgstr ""
6735
 
6736
+ #: src/templates/wp-admin/settings/tab-addons.php:129, src/templates/wp-admin/settings/tab-addons.php:130
6737
  msgid "Backup non-WordPress files and databases"
6738
  msgstr ""
6739
 
6740
+ #: src/templates/wp-admin/settings/tab-addons.php:131
6741
  msgid "Backup WordPress core and non-WP files and databases."
6742
  msgstr ""
6743
 
6744
+ #: src/templates/wp-admin/settings/tab-addons.php:142
6745
  msgid "Network and multisite"
6746
  msgstr ""
6747
 
6748
+ #: src/templates/wp-admin/settings/tab-addons.php:143
6749
  msgid "Network / multisite"
6750
  msgstr ""
6751
 
6752
+ #: src/templates/wp-admin/settings/tab-addons.php:144
6753
  msgid "Backup WordPress multisites (i.e, networks), securely."
6754
  msgstr ""
6755
 
6756
+ #: src/templates/wp-admin/settings/tab-addons.php:155, src/templates/wp-admin/settings/tab-addons.php:156
6757
  msgid "Backup time and scheduling"
6758
  msgstr ""
6759
 
6760
+ #: src/templates/wp-admin/settings/tab-addons.php:157
6761
  msgid "Set exact times to create or delete backups."
6762
  msgstr ""
6763
 
6764
+ #: src/templates/wp-admin/settings/tab-addons.php:168
6765
  msgid "WP CLI"
6766
  msgstr ""
6767
 
6768
+ #: src/templates/wp-admin/settings/tab-addons.php:169
6769
  msgid "WP-CLI support"
6770
  msgstr ""
6771
 
6772
+ #: src/templates/wp-admin/settings/tab-addons.php:170
6773
  msgid "WP-CLI commands to take, list and delete backups."
6774
  msgstr ""
6775
 
6776
+ #: src/templates/wp-admin/settings/tab-addons.php:181, src/templates/wp-admin/settings/tab-addons.php:182
6777
  msgid "More database options"
6778
  msgstr ""
6779
 
6780
+ #: src/templates/wp-admin/settings/tab-addons.php:183
6781
  msgid "Encrypt your sensitive databases (e.g. customer information or passwords); Backup external databases too."
6782
  msgstr ""
6783
 
6784
+ #: src/templates/wp-admin/settings/tab-addons.php:194
6785
  msgid "Additional storage"
6786
  msgstr ""
6787
 
6788
+ #: src/templates/wp-admin/settings/tab-addons.php:195
6789
  msgid "Additional and enhanced remote storage locations"
6790
  msgstr ""
6791
 
6792
+ #: src/templates/wp-admin/settings/tab-addons.php:196
6793
  msgid "Get enhanced versions of the free remote storage options (Dropbox, Google Drive & S3) and even more remote storage options like OneDrive, SFTP, Azure, WebDAV and more with UpdraftPlus Premium."
6794
  msgstr ""
6795
 
6796
+ #: src/templates/wp-admin/settings/tab-addons.php:209
6797
  msgid "Sophisticated reporting and emailing capabilities."
6798
  msgstr ""
6799
 
6800
+ #: src/templates/wp-admin/settings/tab-addons.php:220, src/templates/wp-admin/settings/tab-addons.php:221
6801
  msgid "No ads"
6802
  msgstr ""
6803
 
6804
+ #: src/templates/wp-admin/settings/tab-addons.php:222
6805
  msgid "Tidy things up for clients and remove all adverts for our other products."
6806
  msgstr ""
6807
 
6808
+ #: src/templates/wp-admin/settings/tab-addons.php:233, src/templates/wp-admin/settings/tab-addons.php:234
6809
  msgid "Importer"
6810
  msgstr ""
6811
 
6812
+ #: src/templates/wp-admin/settings/tab-addons.php:235
6813
  msgid "Some backup plugins can't restore a backup, so Premium allows you to restore backups from other plugins."
6814
  msgstr ""
6815
 
6816
+ #: src/templates/wp-admin/settings/tab-addons.php:248
6817
  msgid "Lock access to UpdraftPlus via a password so you choose which admin users can access backups."
6818
  msgstr ""
6819
 
6820
+ #: src/templates/wp-admin/settings/tab-addons.php:262
6821
  msgid "UpdraftPlus has its own embedded storage option, providing a zero-hassle way to download, store and manage all your backups from one place."
6822
  msgstr ""
6823
 
6824
+ #: src/templates/wp-admin/settings/tab-addons.php:263
6825
  msgid "Premium / Find out more"
6826
  msgstr ""
6827
 
6828
+ #: src/templates/wp-admin/settings/take-backup.php:6
6829
  msgid "JavaScript warning"
6830
  msgstr ""
6831
 
6832
+ #: src/templates/wp-admin/settings/take-backup.php:6
6833
  msgid "This admin interface uses JavaScript heavily. You either need to activate it within your browser, or to use a JavaScript-capable browser."
6834
  msgstr ""
6835
 
6836
+ #: src/templates/wp-admin/settings/take-backup.php:19
6837
  msgid "Next scheduled backups"
6838
  msgstr ""
6839
 
6840
+ #: src/templates/wp-admin/settings/take-backup.php:46
6841
  msgid "Time now"
6842
  msgstr ""
6843
 
6844
+ #: src/templates/wp-admin/settings/take-backup.php:81
6845
  msgid "Remote storage authentication"
6846
  msgstr ""
6847
 
6848
+ #: src/templates/wp-admin/settings/take-backup.php:82
6849
  msgid "You have selected a remote storage option which has an authorization step to complete:"
6850
  msgstr ""
6851
 
6852
+ #: src/templates/wp-admin/settings/take-backup.php:87
6853
+ msgid "Perform a backup"
6854
  msgstr ""
6855
 
6856
+ #: src/templates/wp-admin/settings/take-backup.php:92
6857
  msgid "Multisite"
6858
  msgstr ""
6859
 
6860
+ #: src/templates/wp-admin/settings/take-backup.php:96
6861
  msgid "Do you need WordPress Multisite support?"
6862
  msgstr ""
6863
 
6864
+ #: src/templates/wp-admin/settings/take-backup.php:96
6865
  msgid "Please check out UpdraftPlus Premium, or the stand-alone Multisite add-on."
6866
  msgstr ""
6867
 
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:408
7105
  msgid "An error occurred when trying to retrieve your add-ons."
7106
  msgstr ""
7107
 
7108
+ #: src/udaddons/options.php:424
7109
  msgid "UpdraftPlus Support"
7110
  msgstr ""
7111
 
7112
+ #: src/udaddons/options.php:426
7113
  msgid "Need to get support?"
7114
  msgstr ""
7115
 
7116
+ #: src/udaddons/options.php:426
7117
  msgid "Go here"
7118
  msgstr ""
7119
 
7120
+ #: src/udaddons/options.php:463, src/udaddons/options.php:463
7121
  msgid "You've got it"
7122
  msgstr ""
7123
 
7124
+ #: src/udaddons/options.php:465
7125
  msgid "Your version: %s"
7126
  msgstr ""
7127
 
7128
+ #: src/udaddons/options.php:467, src/udaddons/options.php:469
7129
  msgid "latest"
7130
  msgstr ""
7131
 
7132
+ #: src/udaddons/options.php:471
7133
  msgid "(apparently a pre-release or withdrawn release)"
7134
  msgstr ""
7135
 
7136
+ #: src/udaddons/options.php:477
7137
  msgid "Available for this site (via your all-addons purchase)"
7138
  msgstr ""
7139
 
7140
+ #: src/udaddons/options.php:477
7141
  msgid "please follow this link to update the plugin in order to get it"
7142
  msgstr ""
7143
 
7144
+ #: src/udaddons/options.php:480
7145
  msgid "Assigned to this site"
7146
  msgstr ""
7147
 
7148
+ #: src/udaddons/options.php:480
7149
  msgid "please follow this link to update the plugin in order to activate it"
7150
  msgstr ""
7151
 
7152
+ #: src/udaddons/options.php:486
7153
  msgid "Available to claim on this site"
7154
  msgstr ""
7155
 
7156
+ #: src/udaddons/options.php:486, src/udaddons/options.php:488
7157
  msgid "activate it on this site"
7158
  msgstr ""
7159
 
7160
+ #: src/udaddons/options.php:488
7161
  msgid "You have an inactive purchase"
7162
  msgstr ""
7163
 
7164
+ #: src/udaddons/options.php:492
7165
  msgid "Get it from the UpdraftPlus.Com Store"
7166
  msgstr ""
7167
 
7168
+ #: src/udaddons/options.php:492
7169
  msgid "(or connect using the form on this page if you have already purchased it)"
7170
  msgstr ""
7171
 
7172
+ #: src/udaddons/options.php:493, src/udaddons/options.php:493
7173
  msgid "Buy It"
7174
  msgstr ""
7175
 
7176
+ #: src/udaddons/options.php:515
7177
  msgid "Manage Addons"
7178
  msgstr ""
7179
 
readme.txt CHANGED
@@ -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.15.6
7
  Author URI: https://updraftplus.com
8
  Donate link: https://david.dw-perspective.org.uk/donate
9
  License: GPLv3 or later
@@ -161,7 +161,22 @@ 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.15.6.x of the free version correspond to changes made in 2.15.6.x of the paid version.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
 
166
  = 1.15.6 - 06/Dec/2018 =
167
 
@@ -692,5 +707,5 @@ Furthermore, reliance upon any non-English translation is at your own risk. Updr
692
  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/
693
 
694
  == Upgrade Notice ==
695
- * 1.15.6: Various small/minor improvements, including ability to clone a WP 5.0 site, and scheduling improvements on some very large sites. A recommended update for all.
696
 
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.0
7
  Author URI: https://updraftplus.com
8
  Donate link: https://david.dw-perspective.org.uk/donate
9
  License: GPLv3 or later
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.0.x of the free version correspond to changes made in 2.16.0.x of the paid version.
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
172
+ * TWEAK: Fork a method UpdraftPlus_Filesystem_Functions::unzip_file() to allow for future enhancements
173
+ * TWEAK: Periodic purging of obsolete job data that didn't get cleaned when expected was not happening on multisite
174
+ * TWEAK: Improve logging when the initial call to jobdata_set_multi fails
175
+ * TWEAK: Any stored backup/restore progress log files will now be deleted after 40 days. (Since they are attached to email reports, you can keep and retrieve them from those if needed). Over-ride this with the filter updraftplus_log_delete_age if desired.
176
+
177
+ = 1.15.7 - 06/Dec/2018 =
178
+
179
+ * FIX: a method call on an incorrect class which caused a fatal error
180
 
181
  = 1.15.6 - 06/Dec/2018 =
182
 
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.0: Added the ability to create and restore Incremental Backups (Premium version), work around an issue with 'SSH2 Server Host Key Algorithm Mismatch' and various small/minor improvements. A recommended update for all.
711
 
restorer.php CHANGED
@@ -584,7 +584,7 @@ class Updraft_Restorer {
584
 
585
  // Unzip package to working directory
586
  if ('.zip' == strtolower(substr($package, -4, 4))) {
587
- $result = unzip_file($package, $working_dir);
588
  } elseif ('.tar' == strtolower(substr($package, -4, 4)) || '.tar.gz' == strtolower(substr($package, -7, 7)) || '.tar.bz2' == strtolower(substr($package, -8, 8))) {
589
  if (!class_exists('UpdraftPlus_Archive_Tar')) {
590
  if (false === strpos(get_include_path(), UPDRAFTPLUS_DIR.'/includes/PEAR')) set_include_path(UPDRAFTPLUS_DIR.'/includes/PEAR'.PATH_SEPARATOR.get_include_path());
@@ -665,7 +665,7 @@ class Updraft_Restorer {
665
  return $working_dir;
666
  }
667
 
668
- public function tar_wrote($result, $file) {
669
  if (0 !== strpos($file, $this->ud_extract_dir)) return false;
670
  global $wp_filesystem, $updraftplus;
671
  if (!is_a($wp_filesystem, 'WP_Filesystem_Direct')) {
@@ -1928,17 +1928,17 @@ ENDHERE;
1928
 
1929
  }
1930
 
1931
- public function option_filter_permalink_structure($val) {
1932
  global $updraftplus;
1933
  return $updraftplus->option_filter_get('permalink_structure');
1934
  }
1935
 
1936
- public function option_filter_page_on_front($val) {
1937
  global $updraftplus;
1938
  return $updraftplus->option_filter_get('page_on_front');
1939
  }
1940
 
1941
- public function option_filter_rewrite_rules($val) {
1942
  global $updraftplus;
1943
  return $updraftplus->option_filter_get('rewrite_rules');
1944
  }
584
 
585
  // Unzip package to working directory
586
  if ('.zip' == strtolower(substr($package, -4, 4))) {
587
+ $result = UpdraftPlus_Filesystem_Functions::unzip_file($package, $working_dir);
588
  } elseif ('.tar' == strtolower(substr($package, -4, 4)) || '.tar.gz' == strtolower(substr($package, -7, 7)) || '.tar.bz2' == strtolower(substr($package, -8, 8))) {
589
  if (!class_exists('UpdraftPlus_Archive_Tar')) {
590
  if (false === strpos(get_include_path(), UPDRAFTPLUS_DIR.'/includes/PEAR')) set_include_path(UPDRAFTPLUS_DIR.'/includes/PEAR'.PATH_SEPARATOR.get_include_path());
665
  return $working_dir;
666
  }
667
 
668
+ public function tar_wrote($result, $file) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
669
  if (0 !== strpos($file, $this->ud_extract_dir)) return false;
670
  global $wp_filesystem, $updraftplus;
671
  if (!is_a($wp_filesystem, 'WP_Filesystem_Direct')) {
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');
1944
  }
templates/wp-admin/settings/backupnow-modal.php ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if (!defined('UPDRAFTPLUS_DIR')) die('No direct access.');
3
+
4
+ global $updraftplus;
5
+
6
+ $premium_link = apply_filters('updraftplus_com_link', 'https://updraftplus.com/landing/updraftplus-premium');
7
+
8
+ $free_ret = '<em>'.__('All WordPress tables will be backed up.', 'updraftplus').' <a href="'.$premium_link.'">'. __('With UpdraftPlus Premium, you can choose to backup non-WordPress tables, backup only specified tables, and backup other databases too.', 'updraftplus').'</a></em>'."\n";
9
+ ?>
10
+
11
+ <p>
12
+ <h3 class="new-backups-only"><?php _e('Take a new backup', 'updraftplus');?></h3>
13
+ <h3 class="incremental-backups-only"><?php _e('Take an incremental backup', 'updraftplus');?></h3>
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>
21
+ </div>
22
+
23
+ <p id="backupnow_database_container" class="new-backups-only">
24
+
25
+ <input type="checkbox" id="backupnow_includedb" checked="checked">
26
+ <label for="backupnow_includedb"><?php _e('Include your database in the backup', 'updraftplus'); ?></label>
27
+
28
+ (<a href="#" id="backupnow_database_showmoreoptions">...</a>)<br>
29
+
30
+ <div id="backupnow_database_moreoptions" class="updraft-hidden" style="display:none;">
31
+
32
+ <?php echo apply_filters('updraft_backupnow_database_showmoreoptions', $free_ret, '');?>
33
+
34
+ </div>
35
+
36
+ </p>
37
+
38
+ <p>
39
+ <input type="checkbox" class="new-backups-only" id="backupnow_includefiles" checked="checked">
40
+ <label id="backupnow_includefiles_label" for="backupnow_includefiles"><?php _e("Include your files in the backup", 'updraftplus'); ?></label>
41
+
42
+ (<a href="<?php echo $updraftplus->get_current_clean_url(); ?>" id="backupnow_includefiles_showmoreoptions">...</a>)<br>
43
+
44
+ <div id="backupnow_includefiles_moreoptions" class="updraft-hidden" style="display:none;">
45
+ <em><?php _e('Your saved settings also affect what is backed up - e.g. files excluded.', 'updraftplus'); ?></em><br>
46
+
47
+ <?php echo $updraftplus_admin->files_selector_widgetry('backupnow_files_', false, 'sometimes'); ?>
48
+ </div>
49
+
50
+ </p>
51
+
52
+ <div class="backupnow_modal_afterfileoptions">
53
+ <?php echo apply_filters('updraft_backupnow_modal_afterfileoptions', '', ''); ?>
54
+ </div>
55
+
56
+ <span id="backupnow_remote_container"><?php echo $this->backup_now_remote_message(); ?></span>
57
+
58
+ <p id="backupnow_always_keep_container" class="new-backups-only">
59
+ <input type="checkbox" id="always_keep">
60
+ <label for="always_keep"><?php _e('Only allow this backup to be deleted manually (i.e. keep it even if retention limits are hit).', 'updraftplus'); ?></label>
61
+ </p>
62
+
63
+ <div class="backupnow_modal_afteroptions">
64
+ <?php echo apply_filters('updraft_backupnow_modal_afteroptions', '', ''); ?>
65
+ </div>
66
+ <p class="incremental-backups-only">
67
+ <a href="https://updraftplus.com/tell-me-more-about-incremental-backups/" target="_blank"><?php _e('Find out more about incremental backups here.', 'updraftplus'); ?></a>
68
+ </p>
templates/wp-admin/settings/delete-and-restore-modals.php CHANGED
@@ -27,7 +27,7 @@
27
  </div>
28
 
29
  <div id="updraft-restore-modal" title="UpdraftPlus - <?php _e('Restore backup', 'updraftplus');?>">
30
- <p><strong><?php _e('Restore backup from', 'updraftplus');?>:</strong> <span class="updraft_restore_date"></span></p>
31
 
32
  <div id="updraft-restore-modal-stage2">
33
 
27
  </div>
28
 
29
  <div id="updraft-restore-modal" title="UpdraftPlus - <?php _e('Restore backup', 'updraftplus');?>">
30
+ <p><strong><?php _e('Restore files from', 'updraftplus');?>:</strong> <span class="updraft_restore_date"></span></p>
31
 
32
  <div id="updraft-restore-modal-stage2">
33
 
templates/wp-admin/settings/existing-backups-table.php CHANGED
@@ -22,12 +22,9 @@ $image_folder_url = UPDRAFTPLUS_URL.'/images/icons/';
22
  <tbody>
23
  <?php
24
 
25
- // Reverse date sort - i.e. most recent first
26
- krsort($backup_history);
27
-
28
  foreach ($backup_history as $key => $backup) {
29
 
30
- $remote_sent = (!empty($backup['service']) && ((is_array($backup['service']) && in_array('remotesend', $backup['service'])) || 'remotesend' === $backup['service'])) ? true : false;
31
 
32
  // https://core.trac.wordpress.org/ticket/25331 explains why the following line is wrong
33
  // $pretty_date = date_i18n('Y-m-d G:i',$key);
@@ -39,13 +36,14 @@ $image_folder_url = UPDRAFTPLUS_URL.'/images/icons/';
39
  $entities = '';
40
 
41
  $nonce = $backup['nonce'];
42
- $rawbackup = $updraftplus_admin->raw_backup_info($backup_history, $key, $nonce);
43
 
44
- $jobdata = $updraftplus->jobdata_getarray($nonce);
 
 
45
 
46
  $delete_button = $updraftplus_admin->delete_button($key, $nonce, $backup);
47
 
48
- $upload_button = $updraftplus_admin->upload_button($key, $nonce, $backup);
49
 
50
  $date_label = $updraftplus_admin->date_label($pretty_date, $key, $backup, $jobdata, $nonce);
51
 
22
  <tbody>
23
  <?php
24
 
 
 
 
25
  foreach ($backup_history as $key => $backup) {
26
 
27
+ $remote_sent = !empty($backup['service']) && ((is_array($backup['service']) && in_array('remotesend', $backup['service'])) || 'remotesend' === $backup['service']);
28
 
29
  // https://core.trac.wordpress.org/ticket/25331 explains why the following line is wrong
30
  // $pretty_date = date_i18n('Y-m-d G:i',$key);
36
  $entities = '';
37
 
38
  $nonce = $backup['nonce'];
 
39
 
40
+ $jobdata = isset($backup['jobdata']) ? $backup['jobdata'] : $updraftplus->jobdata_getarray($nonce);
41
+
42
+ $rawbackup = $updraftplus_admin->raw_backup_info($backup_history, $key, $nonce, $jobdata);
43
 
44
  $delete_button = $updraftplus_admin->delete_button($key, $nonce, $backup);
45
 
46
+ $upload_button = $updraftplus_admin->upload_button($key, $nonce, $backup, $jobdata);
47
 
48
  $date_label = $updraftplus_admin->date_label($pretty_date, $key, $backup, $jobdata, $nonce);
49
 
templates/wp-admin/settings/form-contents.php CHANGED
@@ -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').'), '.__('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>
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>
templates/wp-admin/settings/tab-addons.php CHANGED
@@ -82,6 +82,22 @@ $premv = UPDRAFTPLUS_URL.'/images/updraft_premv.png';
82
  <p><span class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'updraftplus');?>"></span></p>
83
  </td>
84
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  <tr>
86
  <td>
87
  <img src="<?php echo UPDRAFTPLUS_URL.'/images/notices/support.png';?>" alt="<?php esc_attr_e('Support', 'updraftplus');?>" width="80" height="80" class="udp-premium-image">
82
  <p><span class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'updraftplus');?>"></span></p>
83
  </td>
84
  </tr>
85
+ <tr>
86
+ <td>
87
+ <img src="<?php echo UPDRAFTPLUS_URL . '/images/addons-images/incremental.png'; ?>" alt="<?php esc_attr_e('Incremental backups', 'updraftplus'); ?>" width="100" height="100" class="udp-premium-image">
88
+ <h4><?php _e('Incremental backups', 'updraftplus'); ?></h4>
89
+ <p>
90
+ <?php _e('Incremental backups are backups of just the changes since your last full backup. As a result, they are faster and need less space and resources to process.', 'updraftplus'); ?>
91
+ </p>
92
+
93
+ </td>
94
+ <td data-colname="<?php _e('Free', 'updraftplus'); ?>">
95
+ <p><span class="dashicons dashicons-no-alt" aria-label="<?php esc_attr_e('No', 'updraftplus'); ?>"></span></span></p>
96
+ </td>
97
+ <td data-colname="<?php _e('Premium', 'updraftplus'); ?>">
98
+ <p><span class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'updraftplus'); ?>"></span></p>
99
+ </td>
100
+ </tr>
101
  <tr>
102
  <td>
103
  <img src="<?php echo UPDRAFTPLUS_URL.'/images/notices/support.png';?>" alt="<?php esc_attr_e('Support', 'updraftplus');?>" width="80" height="80" class="udp-premium-image">
templates/wp-admin/settings/take-backup.php CHANGED
@@ -1,3 +1,4 @@
 
1
  <div class="updraft_backup_content">
2
  <div id="updraft-insert-admin-warning"></div>
3
  <noscript>
@@ -47,7 +48,11 @@
47
  </div>
48
  </div>
49
  <div class="updraft_backup_btn_wrapper">
50
- <button id="updraft-backupnow-button" type="button" <?php echo $backup_disabled; ?> class="button button-primary button-large button-hero" <?php if ($backup_disabled) echo 'title="'.esc_attr(__('This button is disabled because your backup directory is not writable (see the settings).', 'updraftplus')).'" ';?> onclick="updraft_backup_dialog_open();"><?php echo str_ireplace('Back Up', 'Backup', __('Backup Now', 'updraftplus'));?></button>
 
 
 
 
51
  </div>
52
  <div id="updraft_activejobs_table">
53
  <?php
@@ -79,7 +84,7 @@
79
  </div>
80
  </div>
81
 
82
- <div id="updraft-backupnow-modal" title="UpdraftPlus - <?php _e('Perform a one-time backup', 'updraftplus'); ?>">
83
  <?php echo $updraftplus_admin->backupnow_modal_contents(); ?>
84
  </div>
85
 
1
+ <?php if (!defined('UPDRAFTPLUS_DIR')) die('No direct access.'); ?>
2
  <div class="updraft_backup_content">
3
  <div id="updraft-insert-admin-warning"></div>
4
  <noscript>
48
  </div>
49
  </div>
50
  <div class="updraft_backup_btn_wrapper">
51
+ <button id="updraft-backupnow-button" type="button" <?php echo $backup_disabled; ?> class="button button-primary button-large button-hero" <?php if ($backup_disabled) echo 'title="'.esc_attr(__('This button is disabled because your backup directory is not writable (see the settings).', 'updraftplus')).'" ';?> onclick="updraft_backup_dialog_open(); return false;"><?php echo str_ireplace('Back Up', 'Backup', __('Backup Now', 'updraftplus'));?></button>
52
+ <?php
53
+ $link = '<p><a href="#" id="updraftplus_incremental_backup_link" onclick="updraft_backup_dialog_open(\'incremental\'); return false;" data-incremental="0">'.__('Add changed files (incremental backup) ...', ' updraftplus ') . '</a></p>';
54
+ echo apply_filters('updraftplus_incremental_backup_link', $link);
55
+ ?>
56
  </div>
57
  <div id="updraft_activejobs_table">
58
  <?php
84
  </div>
85
  </div>
86
 
87
+ <div id="updraft-backupnow-modal" title="UpdraftPlus - <?php _e('Perform a backup', 'updraftplus'); ?>">
88
  <?php echo $updraftplus_admin->backupnow_modal_contents(); ?>
89
  </div>
90
 
updraftplus.php CHANGED
@@ -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.15.6
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.0
9
  Donate link: https://david.dw-perspective.org.uk/donate
10
  License: GPLv3 or later
11
  Text Domain: updraftplus
vendor/composer/installed.json CHANGED
@@ -379,17 +379,17 @@
379
  },
380
  {
381
  "name": "phpseclib/phpseclib",
382
- "version": "1.0.12",
383
- "version_normalized": "1.0.12.0",
384
  "source": {
385
  "type": "git",
386
  "url": "https://github.com/phpseclib/phpseclib.git",
387
- "reference": "20c35d9c7592dfef140b6d8dc299cb2647605e0a"
388
  },
389
  "dist": {
390
  "type": "zip",
391
- "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/20c35d9c7592dfef140b6d8dc299cb2647605e0a",
392
- "reference": "20c35d9c7592dfef140b6d8dc299cb2647605e0a",
393
  "shasum": ""
394
  },
395
  "require": {
@@ -406,9 +406,9 @@
406
  "ext-mcrypt": "Install the Mcrypt extension in order to speed up a wide variety of cryptographic operations.",
407
  "pear-pear/PHP_Compat": "Install PHP_Compat to get phpseclib working on PHP < 5.0.0."
408
  },
409
- "time": "2018-11-04T05:38:52+00:00",
410
  "type": "library",
411
- "installation-source": "dist",
412
  "autoload": {
413
  "psr-0": {
414
  "Crypt": "phpseclib/",
@@ -646,8 +646,8 @@
646
  },
647
  {
648
  "name": "symfony/event-dispatcher",
649
- "version": "v2.8.48",
650
- "version_normalized": "2.8.48.0",
651
  "source": {
652
  "type": "git",
653
  "url": "https://github.com/symfony/event-dispatcher.git",
@@ -708,8 +708,8 @@
708
  },
709
  {
710
  "name": "symfony/process",
711
- "version": "v3.4.19",
712
- "version_normalized": "3.4.19.0",
713
  "source": {
714
  "type": "git",
715
  "url": "https://github.com/symfony/process.git",
379
  },
380
  {
381
  "name": "phpseclib/phpseclib",
382
+ "version": "1.0.11",
383
+ "version_normalized": "1.0.11.0",
384
  "source": {
385
  "type": "git",
386
  "url": "https://github.com/phpseclib/phpseclib.git",
387
+ "reference": "fd33675e483b887fc59834ab69e33ef7f2706425"
388
  },
389
  "dist": {
390
  "type": "zip",
391
+ "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/fd33675e483b887fc59834ab69e33ef7f2706425",
392
+ "reference": "fd33675e483b887fc59834ab69e33ef7f2706425",
393
  "shasum": ""
394
  },
395
  "require": {
406
  "ext-mcrypt": "Install the Mcrypt extension in order to speed up a wide variety of cryptographic operations.",
407
  "pear-pear/PHP_Compat": "Install PHP_Compat to get phpseclib working on PHP < 5.0.0."
408
  },
409
+ "time": "2018-04-15T16:51:35+00:00",
410
  "type": "library",
411
+ "installation-source": "source",
412
  "autoload": {
413
  "psr-0": {
414
  "Crypt": "phpseclib/",
646
  },
647
  {
648
  "name": "symfony/event-dispatcher",
649
+ "version": "v2.8.49",
650
+ "version_normalized": "2.8.49.0",
651
  "source": {
652
  "type": "git",
653
  "url": "https://github.com/symfony/event-dispatcher.git",
708
  },
709
  {
710
  "name": "symfony/process",
711
+ "version": "v3.4.20",
712
+ "version_normalized": "3.4.20.0",
713
  "source": {
714
  "type": "git",
715
  "url": "https://github.com/symfony/process.git",
vendor/phpseclib/phpseclib/CHANGELOG.md ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Changelog
2
+
3
+ ## 1.0.11 - 2018-04-15
4
+
5
+ - X509: auto download intermediate certs
6
+ - BigInteger: fix for (new BigInteger(48))->toString(true)) (#1264)
7
+ - ASN1: class is never set as key in _decode_ber
8
+
9
+ ## 1.0.10 - 2018-02-08
10
+
11
+ - BigInteger: fix issue with bitwise_xor (#1245)
12
+ - Crypt: some of the minimum lengths were off
13
+ - SFTP: update stat cache accordingly when file becomes a directory (#1235)
14
+ - SFTP: fix issue with extended attributes on 64-bit PHP installs (#1248)
15
+ - SSH2: more channel handling updates (#1200)
16
+ - X509: use anonymous functions in PHP >= 5.3.0
17
+ - X509: revise logic for validateSignature (#1213)
18
+ - X509: fix 7.2 error when extensions were removed and new ones added (#1243)
19
+ - fix float to int conversions on ARM CPU's (#1220)
20
+
21
+ ## 1.0.9 - 2017-11-29
22
+
23
+ - SSH2: fix issue with key re-exchange
24
+ - SSH2: updates to dealing with extraneous channel packets
25
+ - X509: URL validation didn't work (#1203)
26
+
27
+ ## 1.0.8 - 2017-10-22
28
+
29
+ - SSH2:
30
+ - add new READ_NEXT mode (#1140)
31
+ - add sendIdentificationStringFirst()
32
+ - add sendKEXINITFirst()
33
+ - add sendIdentificationStringLast()
34
+ - add sendKEXINITLast() (#1162)
35
+ - assume any SSH server >= 1.99 supports SSH2 (#1170)
36
+ - workaround for bad arcfour256 implementations (#1171)
37
+ - don't choke when getting response from diff channel in exec() (#1167)
38
+ - SFTP:
39
+ - add enablePathCanonicalization()
40
+ - add disablePathCanonicalization() (#1137)
41
+ - fix put() with remote file stream resource (#1177)
42
+ - ANSI: misc fixes (#1150, #1161)
43
+ - X509: use DateTime instead of unix time (#1166)
44
+ - Ciphers: use eval() instead of create_function() for >= 5.3
45
+
46
+ ## 1.0.7 - 2017-06-05
47
+
48
+ - Crypt: fix OpenSSL engine on <= PHP 5.3.6 (#1122)
49
+ - Random: suppress possible E_DEPRECATED errors
50
+ - RSA: reset variables if bad key was loaded
51
+
52
+ ## 1.0.6 - 2017-05-07
53
+
54
+ - SSH2: don't use timeout value of 0 for fsockopen (#775)
55
+ - SSH2: make it so disabling PTY closes exec() channel if it's open (#1009)
56
+ - SSH2: include `<pre>` tags in getLog result when SAPI isn't CLI
57
+ - SFTP: don't assume current directory when $path parameter for delete is null (#1059)
58
+ - SFTP: fix put() with php://input as source (#1119)
59
+ - ASN1: fix UTCTime parsing (#1110)
60
+ - X509: ignore certificate transparency extension (#1073)
61
+ - Crypt: OpenSSL apparently supports variable size keys (#1085)
62
+
63
+ ## 1.0.5 - 2016-10-22
64
+
65
+ - fix issue preventing installation of 1.0.x via Composer (#1048)
66
+
67
+ ## 1.0.4 - 2016-10-03
68
+
69
+ - fix E_DEPRECATED errors on PHP 7.0 and 7.1 (#1041)
70
+ - fix float to int conversions on 32-bit Linux pre-PHP 5.3 (#1038, #1034)
71
+ - SFTP: speed up downloads (#945)
72
+ - SFTP: fix infinite loop when uploading empty file (#995)
73
+ - ASN1: fix possible infinite loop in decode (#1027)
74
+
75
+ ## 1.0.3 - 2016-08-18
76
+
77
+ - BigInteger/RSA: don't compare openssl versions > 1.0 (#946)
78
+ - RSA: don't attempt to use the CRT when zero value components exist (#980)
79
+ - RSA: zero salt length RSA signatures don't work (#1002)
80
+ - ASN1: fix PHP Warning on PHP 7.1 (#1013)
81
+ - X509: set parameter fields to null for CSR's / RSA (#914)
82
+ - CRL optimizations (#1000)
83
+ - SSH2: fix "Expected SSH_FXP_STATUS or ..." error (#999)
84
+ - SFTP: make symlinks support relative target's (#1004)
85
+ - SFTP: fix sending stream resulting in zero byte file (#995)
86
+
87
+ ## 1.0.2 - 2016-05-07
88
+
89
+ - All Ciphers: fix issue with CBC mode / OpenSSL / continuous buffers / decryption (#938)
90
+ - Random: fix issues with serialize() (#932)
91
+ - RC2: fix issue with decrypting
92
+ - RC4: fix issue with key not being truncated correctly
93
+ - SFTP: nlist() on a non-existent directory resulted in error
94
+ - SFTP: add is_writable, is_writeable, is_readable
95
+ - RSA: fix PHP4 compatibility issue
96
+
97
+ ## 1.0.1 - 2016-01-18
98
+
99
+ - RSA: fix regression in PSS mode ([#769](https://github.com/phpseclib/phpseclib/pull/769))
100
+ - RSA: fix issue loading PKCS8 specific keys ([#861](https://github.com/phpseclib/phpseclib/pull/861))
101
+ - X509: add getOID() method ([#789](https://github.com/phpseclib/phpseclib/pull/789))
102
+ - X509: improve base64-encoded detection rules ([#855](https://github.com/phpseclib/phpseclib/pull/855))
103
+ - SFTP: fix quirky behavior with put() ([#830](https://github.com/phpseclib/phpseclib/pull/830))
104
+ - SFTP: fix E_NOTICE ([#883](https://github.com/phpseclib/phpseclib/pull/883))
105
+ - SFTP/Stream: fix issue with filenames with hashes ([#901](https://github.com/phpseclib/phpseclib/pull/901))
106
+ - SSH2: add isAuthenticated() method ([#897](https://github.com/phpseclib/phpseclib/pull/897))
107
+ - SSH/Agent: fix possible PHP warning ([#923](https://github.com/phpseclib/phpseclib/issues/923))
108
+ - BigInteger: add __debugInfo() magic method ([#881](https://github.com/phpseclib/phpseclib/pull/881))
109
+ - BigInteger: fix issue with doing bitwise not on 0
110
+ - add getBlockLength() method to symmetric ciphers
111
+
112
+ ## 1.0.0 - 2015-08-02
113
+
114
+ - OpenSSL support for symmetric ciphers ([#507](https://github.com/phpseclib/phpseclib/pull/507))
115
+ - rewritten vt100 terminal emulator (File_ANSI) ([#689](https://github.com/phpseclib/phpseclib/pull/689))
116
+ - agent-forwarding support (System_SSH_Agent) ([#592](https://github.com/phpseclib/phpseclib/pull/592))
117
+ - Net_SSH2 improvements
118
+ - diffie-hellman-group-exchange-sha1/sha256 support ([#714](https://github.com/phpseclib/phpseclib/pull/714))
119
+ - window size handling updates ([#717](https://github.com/phpseclib/phpseclib/pull/717))
120
+ - Net_SFTP improvements
121
+ - add callback support to put() ([#655](https://github.com/phpseclib/phpseclib/pull/655))
122
+ - stat cache fixes ([#743](https://github.com/phpseclib/phpseclib/issues/743), [#730](https://github.com/phpseclib/phpseclib/issues/730), [#709](https://github.com/phpseclib/phpseclib/issues/709), [#726](https://github.com/phpseclib/phpseclib/issues/726))
123
+ - add "none" encryption mode to Crypt_RSA ([#692](https://github.com/phpseclib/phpseclib/pull/692))
124
+ - misc ASN.1 / X.509 parsing fixes ([#721](https://github.com/phpseclib/phpseclib/pull/721), [#627](https://github.com/phpseclib/phpseclib/pull/627))
125
+ - use a random serial number for new X509 certs ([#740](https://github.com/phpseclib/phpseclib/pull/740))
126
+ - add getPublicKeyFingerprint() to Crypt_RSA ([#677](https://github.com/phpseclib/phpseclib/pull/677))
127
+
128
+ ## 0.3.10 - 2015-02-04
129
+
130
+ - simplify SSH2 window size handling ([#538](https://github.com/phpseclib/phpseclib/pull/538))
131
+ - slightly relax the conditions under which OpenSSL is used ([#598](https://github.com/phpseclib/phpseclib/pull/598))
132
+ - fix issue with empty constructed context-specific tags in ASN1 ([#606](https://github.com/phpseclib/phpseclib/pull/606))
133
+
134
+ ## 0.3.9 - 2014-11-09
135
+
136
+ - PHP 5.6 improvements ([#482](https://github.com/phpseclib/phpseclib/pull/482), [#491](https://github.com/phpseclib/phpseclib/issues/491))
137
+
138
+ ## 0.3.8 - 2014-09-12
139
+
140
+ - improve support for indef lengths in File_ASN1
141
+ - add hmac-sha2-256 support to Net_SSH2
142
+ - make it so negotiated algorithms can be seen before Net_SSH2 login
143
+ - add sha256-96 and sha512-96 to Crypt_Hash
144
+ - window size handling adjustments in Net_SSH2
145
+
146
+ ## 0.3.7 - 2014-07-05
147
+
148
+ - auto-detect public vs private keys
149
+ - add file_exists, is_dir, is_file, readlink and symlink to Net_SFTP
150
+ - add support for recursive nlist and rawlist
151
+ - make it so nlist and rawlist can return pre-sorted output
152
+ - make it so callback functions can make exec() return early
153
+ - add signSPKAC and saveSPKAC methods to File_X509
154
+ - add support for PKCS8 keys in Crypt_RSA
155
+ - add pbkdf1 support to setPassword() in Crypt_Base
156
+ - add getWindowColumns, getWindowRows, setWindowColumns, setWindowRows to Net_SSH2
157
+ - add support for filenames with spaces in them to Net_SCP
158
+
159
+ ## 0.3.6 - 2014-02-23
160
+
161
+ - add preliminary support for custom SSH subsystems
162
+ - add ssh-agent support
163
+
164
+ ## 0.3.5 - 2013-07-11
165
+
166
+ - numerous SFTP changes:
167
+ - chown
168
+ - chgrp
169
+ - truncate
170
+ - improved file type detection
171
+ - put() can write to the middle of a file
172
+ - mkdir accepts the same parameters that PHP's mkdir does
173
+ - the ability to upload/download 2GB files
174
+ - across-the-board speedups for the various encryption algorithms
175
+ - multi-factor authentication support for Net_SSH2
176
+ - a $callback parameter for Net_SSH2::exec
177
+ - new classes:
178
+ - Net_SFTP_StreamWrapper
179
+ - Net_SCP
180
+ - Crypt_Twofish
181
+ - Crypt_Blowfish
182
+
183
+ ## 0.3.1 - 2012-11-20
184
+
185
+ - add Net_SSH2::enableQuietMode() for suppressing stderr
186
+ - add Crypt_RSA::__toString() and Crypt_RSA::getSize()
187
+ - fix problems with File_X509::validateDate(), File_X509::sign() and Crypt_RSA::verify()
188
+ - use OpenSSL to speed up modular exponention in Math_BigInteger
189
+ - improved timeout functionality in Net_SSH2
190
+ - add support for SFTPv2
191
+ - add support for CRLs in File_X509
192
+ - SSH-2.0-SSH doesn't implement hmac-*-96 correctly
193
+
194
+ ## 0.3.0 - 2012-07-08
195
+
196
+ - add support for reuming Net_SFTP::put()
197
+ - add support for recursive deletes and recursive chmods to Net_SFTP
198
+ - add setTimeout() to Net_SSH2
199
+ - add support for PBKDF2 to the various Crypt_* classes via setPassword()
200
+ - add File_X509 and File_ASN1
201
+ - add the ability to decode various formats in Crypt_RSA
202
+ - make Net_SSH2::getServerPublicHostKey() return a printer-friendly version of the public key
203
+
204
+ ## 0.2.2 - 2011-05-09
205
+
206
+ - CFB and OFB modes were added to all block ciphers
207
+ - support for interactive mode was added to Net_SSH2
208
+ - Net_SSH2 now has limited keyboard_interactive authentication support
209
+ - support was added for PuTTY formatted RSA private keys and XML formatted RSA private keys
210
+ - Crypt_RSA::loadKey() will now try all key types automatically
211
+ - add support for AES-128-CBC and DES-EDE3-CFB encrypted RSA private keys
212
+ - add Net_SFTP::stat(), Net_SFTP::lstat() and Net_SFTP::rawlist()
213
+ - logging was added to Net_SSH1
214
+ - the license was changed to the less restrictive MIT license
vendor/phpseclib/phpseclib/README.md CHANGED
@@ -36,7 +36,7 @@ AES, Blowfish, Twofish, SSH-1, SSH-2, SFTP, and X.509
36
  * Composer compatible (PSR-0 autoloading)
37
  * Install using Composer: `composer require phpseclib/phpseclib ~1.0`
38
  * Install using PEAR: See [phpseclib PEAR Channel Documentation](http://phpseclib.sourceforge.net/pear.htm)
39
- * [Download 1.0.12 as ZIP](http://sourceforge.net/projects/phpseclib/files/phpseclib1.0.12.zip/download)
40
 
41
  ## Support
42
 
36
  * Composer compatible (PSR-0 autoloading)
37
  * Install using Composer: `composer require phpseclib/phpseclib ~1.0`
38
  * Install using PEAR: See [phpseclib PEAR Channel Documentation](http://phpseclib.sourceforge.net/pear.htm)
39
+ * [Download 1.0.11 as ZIP](http://sourceforge.net/projects/phpseclib/files/phpseclib1.0.11.zip/download)
40
 
41
  ## Support
42
 
vendor/phpseclib/phpseclib/appveyor.yml DELETED
@@ -1,27 +0,0 @@
1
- build: false
2
- shallow_clone: false
3
- platform:
4
- - x86
5
- - x64
6
- clone_folder: C:\projects\phpseclib
7
-
8
- install:
9
- - cinst -y OpenSSL.Light
10
- - SET PATH=C:\Program Files\OpenSSL;%PATH%
11
- - sc config wuauserv start= auto
12
- - net start wuauserv
13
- - cinst -y php --version 5.6.30
14
- - cd c:\tools\php56
15
- - copy php.ini-production php.ini
16
- - echo date.timezone="UTC" >> php.ini
17
- - echo extension_dir=ext >> php.ini
18
- - echo extension=php_openssl.dll >> php.ini
19
- - echo extension=php_gmp.dll >> php.ini
20
- - cd C:\projects\phpseclib
21
- - SET PATH=C:\tools\php56;%PATH%
22
- - php.exe -r "readfile('http://getcomposer.org/installer');" | php.exe
23
- - php.exe composer.phar install --prefer-source --no-interaction
24
-
25
- test_script:
26
- - cd C:\projects\phpseclib
27
- - vendor\bin\phpunit.bat tests/Windows32Test.php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpseclib/phpseclib/build/build.xml ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project name="phpseclib"
3
+ description="PHP Secure Communications Library"
4
+ default="all"
5
+ >
6
+
7
+ <target name="all" depends="sniff,api" />
8
+
9
+ <!-- Code Sniffer -->
10
+ <target name="sniff" depends="sniff-php-code,sniff-php-tests" />
11
+ <target name="sniff-php-code">
12
+ <exec command="vendor/bin/phpcs -s
13
+ --extensions=php
14
+ --standard=build/code-sniffer-ruleset.xml
15
+ phpseclib/"
16
+ dir=".." checkreturn="true" passthru="true" />
17
+ </target>
18
+ <target name="sniff-php-tests">
19
+ <exec command="vendor/bin/phpcs -s
20
+ --extensions=php
21
+ --standard=build/code-sniffer-ruleset-tests.xml
22
+ tests/"
23
+ dir=".." checkreturn="true" passthru="true" />
24
+ </target>
25
+
26
+ <!-- API Generation -->
27
+ <target name="api">
28
+ <exec command="vendor/bin/sami.php update build/sami.conf.php"
29
+ dir=".." passthru="true" />
30
+ </target>
31
+
32
+ </project>
vendor/phpseclib/phpseclib/build/code-sniffer-ruleset-tests.xml ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <ruleset name="phpseclib Test Standard">
3
+
4
+ <description>phpseclib coding standard for tests</description>
5
+
6
+ <!-- In general rules that apply to library code also apply to tests. -->
7
+ <rule ref="./code-sniffer-ruleset.xml">
8
+ <!-- Exceptions to the library coding standard follow. -->
9
+ </rule>
10
+
11
+ </ruleset>
vendor/phpseclib/phpseclib/build/code-sniffer-ruleset.xml ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <ruleset name="phpseclib Standard">
3
+
4
+ <description>phpseclib coding standard</description>
5
+
6
+ <!-- We are using the PSR2 standard as a base -->
7
+ <rule ref="PSR2">
8
+ <!-- Exceptions for PHP4 compatibility -->
9
+ <exclude name="PSR1.Classes.ClassDeclaration.MissingNamespace" />
10
+ <exclude name="PSR2.Classes.PropertyDeclaration.ScopeMissing" />
11
+ <exclude name="PSR2.Classes.PropertyDeclaration.VarUsed" />
12
+ <exclude name="Squiz.Scope.MethodScope.Missing" />
13
+
14
+ <!-- Exceptions for backward compatibility -->
15
+ <exclude name="PSR1.Classes.ClassDeclaration.MultipleClasses" />
16
+ <exclude name="PSR1.Files.SideEffects.FoundWithSymbols" />
17
+ <exclude name="PSR1.Methods.CamelCapsMethodName.NotCamelCaps" />
18
+ <exclude name="PSR2.Methods.MethodDeclaration.Underscore" />
19
+ <exclude name="Squiz.Classes.ValidClassName.NotCamelCaps" />
20
+
21
+ <!-- Exceptions for whitespacing -->
22
+ <exclude name="Generic.Functions.FunctionCallArgumentSpacing.TooMuchSpaceAfterComma" />
23
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.SpaceBeforeColonCASE" />
24
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.SpaceBeforeColonDEFAULT" />
25
+
26
+ <!-- Other Exceptions -->
27
+ <exclude name="Generic.Files.LineLength.TooLong" />
28
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.TerminatingComment" />
29
+ </rule>
30
+
31
+ <!-- Useful additional rules follow -->
32
+
33
+ <!-- "for (; bar; )" should be "while (bar)" instead -->
34
+ <rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop" />
35
+
36
+ <!-- A method MUST not only call its parent -->
37
+ <rule ref="Generic.CodeAnalysis.UselessOverridingMethod" />
38
+
39
+ </ruleset>
vendor/phpseclib/phpseclib/build/sami.conf.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Prevent e.g. 'Notice: Constant MATH_BIGINTEGER_MONTGOMERY already defined'.
4
+ class MyArrayStore extends Sami\Store\ArrayStore
5
+ {
6
+ public function removeClass(Sami\Project $project, $name)
7
+ {
8
+ unset($this->classes[$name]);
9
+ }
10
+ }
11
+
12
+ $iterator = Symfony\Component\Finder\Finder::create()
13
+ ->files()
14
+ ->name('*.php')
15
+ ->in(__DIR__ . '/../phpseclib/')
16
+ ;
17
+
18
+ $versions = Sami\Version\GitVersionCollection::create(__DIR__ . '/../')
19
+ ->add('1.0')
20
+ ->add('2.0')
21
+ ->add('master')
22
+ ;
23
+
24
+ return new Sami\Sami($iterator, array(
25
+ 'theme' => 'enhanced',
26
+ 'versions' => $versions,
27
+ 'title' => 'phpseclib API Documentation',
28
+ 'build_dir' => __DIR__.'/api/output/%version%',
29
+ 'cache_dir' => __DIR__.'/api/cache/%version%',
30
+ 'default_opened_level' => 2,
31
+ 'store' => new MyArrayStore,
32
+ ));
vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php CHANGED
@@ -661,7 +661,7 @@ class Crypt_Base
661
  $count = isset($func_args[4]) ? $func_args[4] : 1000;
662
 
663
  // Keylength
664
- if (isset($func_args[5]) && $func_args[5] > 0) {
665
  $dkLen = $func_args[5];
666
  } else {
667
  $dkLen = $method == 'pbkdf1' ? 2 * $this->key_length : $this->key_length;
@@ -696,10 +696,10 @@ class Crypt_Base
696
  include_once 'Crypt/Hash.php';
697
  }
698
  $i = 1;
699
- $hmac = new Crypt_Hash();
700
- $hmac->setHash($hash);
701
- $hmac->setKey($password);
702
  while (strlen($key) < $dkLen) {
 
 
 
703
  $f = $u = $hmac->hash($salt . pack('N', $i++));
704
  for ($j = 2; $j <= $count; ++$j) {
705
  $u = $hmac->hash($u);
661
  $count = isset($func_args[4]) ? $func_args[4] : 1000;
662
 
663
  // Keylength
664
+ if (isset($func_args[5])) {
665
  $dkLen = $func_args[5];
666
  } else {
667
  $dkLen = $method == 'pbkdf1' ? 2 * $this->key_length : $this->key_length;
696
  include_once 'Crypt/Hash.php';
697
  }
698
  $i = 1;
 
 
 
699
  while (strlen($key) < $dkLen) {
700
+ $hmac = new Crypt_Hash();
701
+ $hmac->setHash($hash);
702
+ $hmac->setKey($password);
703
  $f = $u = $hmac->hash($salt . pack('N', $i++));
704
  for ($j = 2; $j <= $count; ++$j) {
705
  $u = $hmac->hash($u);
vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php CHANGED
@@ -126,15 +126,6 @@ class Crypt_Hash
126
  */
127
  var $key = false;
128
 
129
- /**
130
- * Computed Key
131
- *
132
- * @see self::_computeKey()
133
- * @var string
134
- * @access private
135
- */
136
- var $computedKey = false;
137
-
138
  /**
139
  * Outer XOR (Internal HMAC)
140
  *
@@ -201,43 +192,6 @@ class Crypt_Hash
201
  function setKey($key = false)
202
  {
203
  $this->key = $key;
204
- $this->_computeKey();
205
- }
206
-
207
- /**
208
- * Pre-compute the key used by the HMAC
209
- *
210
- * Quoting http://tools.ietf.org/html/rfc2104#section-2, "Applications that use keys longer than B bytes
211
- * will first hash the key using H and then use the resultant L byte string as the actual key to HMAC."
212
- *
213
- * As documented in https://www.reddit.com/r/PHP/comments/9nct2l/symfonypolyfill_hash_pbkdf2_correct_fix_for/
214
- * when doing an HMAC multiple times it's faster to compute the hash once instead of computing it during
215
- * every call
216
- *
217
- * @access private
218
- */
219
- function _computeKey()
220
- {
221
- if ($this->key === false) {
222
- $this->computedKey = false;
223
- return;
224
- }
225
-
226
- if (strlen($this->key) <= $this->b) {
227
- $this->computedKey = $this->key;
228
- return;
229
- }
230
-
231
- switch ($mode) {
232
- case CRYPT_HASH_MODE_MHASH:
233
- $this->computedKey = mhash($this->hash, $this->key);
234
- break;
235
- case CRYPT_HASH_MODE_HASH:
236
- $this->computedKey = hash($this->hash, $this->key, true);
237
- break;
238
- case CRYPT_HASH_MODE_INTERNAL:
239
- $this->computedKey = call_user_func($this->hash, $this->key);
240
- }
241
  }
242
 
243
  /**
@@ -287,25 +241,6 @@ class Crypt_Hash
287
  $this->l = 64;
288
  }
289
 
290
- switch ($hash) {
291
- case 'md2-96':
292
- case 'md2':
293
- $this->b = 16;
294
- case 'md5-96':
295
- case 'sha1-96':
296
- case 'sha224-96':
297
- case 'sha256-96':
298
- case 'md2':
299
- case 'md5':
300
- case 'sha1':
301
- case 'sha224':
302
- case 'sha256':
303
- $this->b = 64;
304
- break;
305
- default:
306
- $this->b = 128;
307
- }
308
-
309
  switch ($hash) {
310
  case 'md2':
311
  $mode = CRYPT_HASH_MODE == CRYPT_HASH_MODE_HASH && in_array('md2', hash_algos()) ?
@@ -332,7 +267,6 @@ class Crypt_Hash
332
  default:
333
  $this->hash = MHASH_SHA1;
334
  }
335
- $this->_computeKey();
336
  return;
337
  case CRYPT_HASH_MODE_HASH:
338
  switch ($hash) {
@@ -349,33 +283,35 @@ class Crypt_Hash
349
  default:
350
  $this->hash = 'sha1';
351
  }
352
- $this->_computeKey();
353
  return;
354
  }
355
 
356
  switch ($hash) {
357
  case 'md2':
 
358
  $this->hash = array($this, '_md2');
359
  break;
360
  case 'md5':
 
361
  $this->hash = array($this, '_md5');
362
  break;
363
  case 'sha256':
 
364
  $this->hash = array($this, '_sha256');
365
  break;
366
  case 'sha384':
367
  case 'sha512':
 
368
  $this->hash = array($this, '_sha512');
369
  break;
370
  case 'sha1':
371
  default:
 
372
  $this->hash = array($this, '_sha1');
373
  }
374
 
375
  $this->ipad = str_repeat(chr(0x36), $this->b);
376
  $this->opad = str_repeat(chr(0x5C), $this->b);
377
-
378
- $this->_computeKey();
379
  }
380
 
381
  /**
@@ -392,19 +328,25 @@ class Crypt_Hash
392
  if (!empty($this->key) || is_string($this->key)) {
393
  switch ($mode) {
394
  case CRYPT_HASH_MODE_MHASH:
395
- $output = mhash($this->hash, $text, $this->computedKey);
396
  break;
397
  case CRYPT_HASH_MODE_HASH:
398
- $output = hash_hmac($this->hash, $text, $this->computedKey, true);
399
  break;
400
  case CRYPT_HASH_MODE_INTERNAL:
401
- $key = str_pad($this->computedKey, $this->b, chr(0)); // step 1
402
- $temp = $this->ipad ^ $key; // step 2
403
- $temp .= $text; // step 3
404
- $temp = call_user_func($this->hash, $temp); // step 4
405
- $output = $this->opad ^ $key; // step 5
406
- $output.= $temp; // step 6
407
- $output = call_user_func($this->hash, $output); // step 7
 
 
 
 
 
 
408
  }
409
  } else {
410
  switch ($mode) {
126
  */
127
  var $key = false;
128
 
 
 
 
 
 
 
 
 
 
129
  /**
130
  * Outer XOR (Internal HMAC)
131
  *
192
  function setKey($key = false)
193
  {
194
  $this->key = $key;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
195
  }
196
 
197
  /**
241
  $this->l = 64;
242
  }
243
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
244
  switch ($hash) {
245
  case 'md2':
246
  $mode = CRYPT_HASH_MODE == CRYPT_HASH_MODE_HASH && in_array('md2', hash_algos()) ?
267
  default:
268
  $this->hash = MHASH_SHA1;
269
  }
 
270
  return;
271
  case CRYPT_HASH_MODE_HASH:
272
  switch ($hash) {
283
  default:
284
  $this->hash = 'sha1';
285
  }
 
286
  return;
287
  }
288
 
289
  switch ($hash) {
290
  case 'md2':
291
+ $this->b = 16;
292
  $this->hash = array($this, '_md2');
293
  break;
294
  case 'md5':
295
+ $this->b = 64;
296
  $this->hash = array($this, '_md5');
297
  break;
298
  case 'sha256':
299
+ $this->b = 64;
300
  $this->hash = array($this, '_sha256');
301
  break;
302
  case 'sha384':
303
  case 'sha512':
304
+ $this->b = 128;
305
  $this->hash = array($this, '_sha512');
306
  break;
307
  case 'sha1':
308
  default:
309
+ $this->b = 64;
310
  $this->hash = array($this, '_sha1');
311
  }
312
 
313
  $this->ipad = str_repeat(chr(0x36), $this->b);
314
  $this->opad = str_repeat(chr(0x5C), $this->b);
 
 
315
  }
316
 
317
  /**
328
  if (!empty($this->key) || is_string($this->key)) {
329
  switch ($mode) {
330
  case CRYPT_HASH_MODE_MHASH:
331
+ $output = mhash($this->hash, $text, $this->key);
332
  break;
333
  case CRYPT_HASH_MODE_HASH:
334
+ $output = hash_hmac($this->hash, $text, $this->key, true);
335
  break;
336
  case CRYPT_HASH_MODE_INTERNAL:
337
+ /* "Applications that use keys longer than B bytes will first hash the key using H and then use the
338
+ resultant L byte string as the actual key to HMAC."
339
+
340
+ -- http://tools.ietf.org/html/rfc2104#section-2 */
341
+ $key = strlen($this->key) > $this->b ? call_user_func($this->hash, $this->key) : $this->key;
342
+
343
+ $key = str_pad($key, $this->b, chr(0)); // step 1
344
+ $temp = $this->ipad ^ $key; // step 2
345
+ $temp .= $text; // step 3
346
+ $temp = call_user_func($this->hash, $temp); // step 4
347
+ $output = $this->opad ^ $key; // step 5
348
+ $output.= $temp; // step 6
349
+ $output = call_user_func($this->hash, $output); // step 7
350
  }
351
  } else {
352
  switch ($mode) {
vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php CHANGED
@@ -390,9 +390,6 @@ class File_ASN1
390
  $remainingLength = $length;
391
  while ($remainingLength > 0) {
392
  $temp = $this->_decode_ber($content, $start, $content_pos);
393
- if ($temp === false) {
394
- break;
395
- }
396
  $length = $temp['length'];
397
  // end-of-content octets - see paragraph 8.1.5
398
  if (substr($content, $content_pos + $length, 2) == "\0\0") {
@@ -444,9 +441,6 @@ class File_ASN1
444
  $current['content'] = substr($content, $content_pos);
445
  } else {
446
  $temp = $this->_decode_ber($content, $start, $content_pos);
447
- if ($temp === false) {
448
- return false;
449
- }
450
  $length-= (strlen($content) - $content_pos);
451
  $last = count($temp) - 1;
452
  for ($i = 0; $i < $last; $i++) {
@@ -471,9 +465,6 @@ class File_ASN1
471
  $length = 0;
472
  while (substr($content, $content_pos, 2) != "\0\0") {
473
  $temp = $this->_decode_ber($content, $length + $start, $content_pos);
474
- if ($temp === false) {
475
- return false;
476
- }
477
  $content_pos += $temp['length'];
478
  // all subtags should be octet strings
479
  //if ($temp['type'] != FILE_ASN1_TYPE_OCTET_STRING) {
@@ -506,9 +497,6 @@ class File_ASN1
506
  break 2;
507
  }
508
  $temp = $this->_decode_ber($content, $start + $offset, $content_pos);
509
- if ($temp === false) {
510
- return false;
511
- }
512
  $content_pos += $temp['length'];
513
  $current['content'][] = $temp;
514
  $offset+= $temp['length'];
390
  $remainingLength = $length;
391
  while ($remainingLength > 0) {
392
  $temp = $this->_decode_ber($content, $start, $content_pos);
 
 
 
393
  $length = $temp['length'];
394
  // end-of-content octets - see paragraph 8.1.5
395
  if (substr($content, $content_pos + $length, 2) == "\0\0") {
441
  $current['content'] = substr($content, $content_pos);
442
  } else {
443
  $temp = $this->_decode_ber($content, $start, $content_pos);
 
 
 
444
  $length-= (strlen($content) - $content_pos);
445
  $last = count($temp) - 1;
446
  for ($i = 0; $i < $last; $i++) {
465
  $length = 0;
466
  while (substr($content, $content_pos, 2) != "\0\0") {
467
  $temp = $this->_decode_ber($content, $length + $start, $content_pos);
 
 
 
468
  $content_pos += $temp['length'];
469
  // all subtags should be octet strings
470
  //if ($temp['type'] != FILE_ASN1_TYPE_OCTET_STRING) {
497
  break 2;
498
  }
499
  $temp = $this->_decode_ber($content, $start + $offset, $content_pos);
 
 
 
500
  $content_pos += $temp['length'];
501
  $current['content'][] = $temp;
502
  $offset+= $temp['length'];
vendor/phpseclib/phpseclib/phpseclib/File/X509.php CHANGED
@@ -2122,7 +2122,7 @@ class File_X509
2122
  *
2123
  * If $date isn't defined it is assumed to be the current date.
2124
  *
2125
- * @param \DateTime|int|string $date optional
2126
  * @access public
2127
  */
2128
  function validateDate($date = null)
@@ -2133,7 +2133,7 @@ class File_X509
2133
 
2134
  if (!isset($date)) {
2135
  $date = class_exists('DateTime') ?
2136
- new DateTime(null, new DateTimeZone(@date_default_timezone_get())) :
2137
  time();
2138
  }
2139
 
@@ -2143,18 +2143,12 @@ class File_X509
2143
  $notAfter = $this->currentCert['tbsCertificate']['validity']['notAfter'];
2144
  $notAfter = isset($notAfter['generalTime']) ? $notAfter['generalTime'] : $notAfter['utcTime'];
2145
 
2146
- switch (true) {
2147
- case is_string($date) && class_exists('DateTime'):
2148
- $date = new DateTime($date, new DateTimeZone(@date_default_timezone_get()));
2149
- case is_object($date) && strtolower(get_class($date)) == 'datetime':
2150
- $notBefore = new DateTime($notBefore, new DateTimeZone(@date_default_timezone_get()));
2151
- $notAfter = new DateTime($notAfter, new DateTimeZone(@date_default_timezone_get()));
2152
- break;
2153
- case is_string($date):
2154
- $date = @strtotime($date);
2155
- default:
2156
- $notBefore = @strtotime($notBefore);
2157
- $notAfter = @strtotime($notAfter);
2158
  }
2159
 
2160
  switch (true) {
2122
  *
2123
  * If $date isn't defined it is assumed to be the current date.
2124
  *
2125
+ * @param int $date optional
2126
  * @access public
2127
  */
2128
  function validateDate($date = null)
2133
 
2134
  if (!isset($date)) {
2135
  $date = class_exists('DateTime') ?
2136
+ new DateTime($date, new DateTimeZone(@date_default_timezone_get())) :
2137
  time();
2138
  }
2139
 
2143
  $notAfter = $this->currentCert['tbsCertificate']['validity']['notAfter'];
2144
  $notAfter = isset($notAfter['generalTime']) ? $notAfter['generalTime'] : $notAfter['utcTime'];
2145
 
2146
+ if (class_exists('DateTime')) {
2147
+ $notBefore = new DateTime($notBefore, new DateTimeZone(@date_default_timezone_get()));
2148
+ $notAfter = new DateTime($notAfter, new DateTimeZone(@date_default_timezone_get()));
2149
+ } else {
2150
+ $notBefore = @strtotime($notBefore);
2151
+ $notAfter = @strtotime($notAfter);
 
 
 
 
 
 
2152
  }
2153
 
2154
  switch (true) {
vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php CHANGED
@@ -65,6 +65,7 @@
65
  * @author Jim Wigginton <terrafrost@php.net>
66
  * @copyright 2006 Jim Wigginton
67
  * @license http://www.opensource.org/licenses/mit-license.html MIT License
 
68
  */
69
 
70
  /**#@+
65
  * @author Jim Wigginton <terrafrost@php.net>
66
  * @copyright 2006 Jim Wigginton
67
  * @license http://www.opensource.org/licenses/mit-license.html MIT License
68
+ * @link http://pear.php.net/package/Math_BigInteger
69
  */
70
 
71
  /**#@+
vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php CHANGED
@@ -919,17 +919,7 @@ class Net_SFTP extends Net_SSH2
919
  unset($files[$key]);
920
  continue;
921
  }
922
- $is_directory = false;
923
- if ($key != '.' && $key != '..') {
924
- if ($this->use_stat_cache) {
925
- $is_directory = is_array($this->_query_stat_cache($this->_realpath($dir . '/' . $key)));
926
- } else {
927
- $stat = $this->lstat($dir . '/' . $key);
928
- $is_directory = $stat && $stat['type'] === NET_SFTP_TYPE_DIRECTORY;
929
- }
930
- }
931
-
932
- if ($is_directory) {
933
  $depth++;
934
  $files[$key] = $this->rawlist($dir . '/' . $key, true);
935
  $depth--;
919
  unset($files[$key]);
920
  continue;
921
  }
922
+ if ($key != '.' && $key != '..' && is_array($this->_query_stat_cache($this->_realpath($dir . '/' . $key)))) {
 
 
 
 
 
 
 
 
 
 
923
  $depth++;
924
  $files[$key] = $this->rawlist($dir . '/' . $key, true);
925
  $depth--;
vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php CHANGED
@@ -923,22 +923,6 @@ class Net_SSH2
923
  */
924
  var $binary_packet_buffer = false;
925
 
926
- /**
927
- * Preferred Signature Format
928
- *
929
- * @var string|false
930
- * @access private
931
- */
932
- var $preferred_signature_format = false;
933
-
934
- /**
935
- * Authentication Credentials
936
- *
937
- * @var array
938
- * @access private
939
- */
940
- var $auth = array();
941
-
942
  /**
943
  * Default Constructor.
944
  *
@@ -1175,12 +1159,11 @@ class Net_SSH2
1175
  }
1176
  $elapsed = strtok(microtime(), ' ') + strtok('') - $start;
1177
 
1178
- if ($this->curTimeout) {
1179
- $this->curTimeout-= $elapsed;
1180
- if ($this->curTimeout < 0) {
1181
- $this->is_timeout = true;
1182
- return false;
1183
- }
1184
  }
1185
  }
1186
 
@@ -1229,7 +1212,6 @@ class Net_SSH2
1229
  }
1230
 
1231
  if (feof($this->fsock)) {
1232
- $this->bitmap = 0;
1233
  user_error('Connection closed by server');
1234
  return false;
1235
  }
@@ -1241,7 +1223,7 @@ class Net_SSH2
1241
 
1242
  $this->server_identifier = trim($temp, "\r\n");
1243
  if (strlen($extra)) {
1244
- $this->errors[] = $extra;
1245
  }
1246
 
1247
  if (version_compare($matches[1], '1.99', '<')) {
@@ -1256,7 +1238,6 @@ class Net_SSH2
1256
  if (!$this->send_kex_first) {
1257
  $response = $this->_get_binary_packet();
1258
  if ($response === false) {
1259
- $this->bitmap = 0;
1260
  user_error('Connection closed by server');
1261
  return false;
1262
  }
@@ -1328,8 +1309,6 @@ class Net_SSH2
1328
  );
1329
 
1330
  static $server_host_key_algorithms = array(
1331
- 'rsa-sha2-256', // RFC 8332
1332
- 'rsa-sha2-512', // RFC 8332
1333
  'ssh-rsa', // RECOMMENDED sign Raw RSA Key
1334
  'ssh-dss' // REQUIRED sign Raw DSS Key
1335
  );
@@ -1489,7 +1468,6 @@ class Net_SSH2
1489
 
1490
  $kexinit_payload_server = $this->_get_binary_packet();
1491
  if ($kexinit_payload_server === false) {
1492
- $this->bitmap = 0;
1493
  user_error('Connection closed by server');
1494
  return false;
1495
  }
@@ -1617,7 +1595,6 @@ class Net_SSH2
1617
 
1618
  $response = $this->_get_binary_packet();
1619
  if ($response === false) {
1620
- $this->bitmap = 0;
1621
  user_error('Connection closed by server');
1622
  return false;
1623
  }
@@ -1713,14 +1690,12 @@ class Net_SSH2
1713
  $data = pack('CNa*', $clientKexInitMessage, strlen($eBytes), $eBytes);
1714
 
1715
  if (!$this->_send_binary_packet($data)) {
1716
- $this->bitmap = 0;
1717
  user_error('Connection closed by server');
1718
  return false;
1719
  }
1720
 
1721
  $response = $this->_get_binary_packet();
1722
  if ($response === false) {
1723
- $this->bitmap = 0;
1724
  user_error('Connection closed by server');
1725
  return false;
1726
  }
@@ -1801,18 +1776,7 @@ class Net_SSH2
1801
  return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
1802
  }
1803
 
1804
- switch ($server_host_key_algorithm) {
1805
- case 'ssh-dss':
1806
- $expected_key_format = 'ssh-dss';
1807
- break;
1808
- //case 'rsa-sha2-256':
1809
- //case 'rsa-sha2-512':
1810
- //case 'ssh-rsa':
1811
- default:
1812
- $expected_key_format = 'ssh-rsa';
1813
- }
1814
-
1815
- if ($public_key_format != $expected_key_format || $this->signature_format != $server_host_key_algorithm) {
1816
  user_error('Server Host Key Algorithm Mismatch');
1817
  return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
1818
  }
@@ -1829,7 +1793,6 @@ class Net_SSH2
1829
  $response = $this->_get_binary_packet();
1830
 
1831
  if ($response === false) {
1832
- $this->bitmap = 0;
1833
  user_error('Connection closed by server');
1834
  return false;
1835
  }
@@ -2004,7 +1967,7 @@ class Net_SSH2
2004
 
2005
  if ($this->encrypt) {
2006
  if ($this->crypto_engine) {
2007
- $this->encrypt->setPreferredEngine($this->crypto_engine);
2008
  }
2009
  $this->encrypt->enableContinuousBuffer();
2010
  $this->encrypt->disablePadding();
@@ -2024,7 +1987,7 @@ class Net_SSH2
2024
 
2025
  if ($this->decrypt) {
2026
  if ($this->crypto_engine) {
2027
- $this->decrypt->setPreferredEngine($this->crypto_engine);
2028
  }
2029
  $this->decrypt->enableContinuousBuffer();
2030
  $this->decrypt->disablePadding();
@@ -2228,7 +2191,6 @@ class Net_SSH2
2228
  function login($username)
2229
  {
2230
  $args = func_get_args();
2231
- $this->auth[] = $args;
2232
  return call_user_func_array(array(&$this, '_login'), $args);
2233
  }
2234
 
@@ -2300,7 +2262,6 @@ class Net_SSH2
2300
  }
2301
  return $this->_login_helper($username, $password);
2302
  }
2303
- $this->bitmap = 0;
2304
  user_error('Connection closed by server');
2305
  return false;
2306
  }
@@ -2357,7 +2318,6 @@ class Net_SSH2
2357
 
2358
  $response = $this->_get_binary_packet();
2359
  if ($response === false) {
2360
- $this->bitmap = 0;
2361
  user_error('Connection closed by server');
2362
  return false;
2363
  }
@@ -2416,7 +2376,6 @@ class Net_SSH2
2416
 
2417
  $response = $this->_get_binary_packet();
2418
  if ($response === false) {
2419
- $this->bitmap = 0;
2420
  user_error('Connection closed by server');
2421
  return false;
2422
  }
@@ -2435,7 +2394,7 @@ class Net_SSH2
2435
  return false;
2436
  }
2437
  extract(unpack('Nlength', $this->_string_shift($response, 4)));
2438
- $this->errors[] = 'SSH_MSG_USERAUTH_PASSWD_CHANGEREQ: ' . $this->_string_shift($response, $length);
2439
  return $this->_disconnect(NET_SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER);
2440
  case NET_SSH2_MSG_USERAUTH_FAILURE:
2441
  // can we use keyboard-interactive authentication? if not then either the login is bad or the server employees
@@ -2517,7 +2476,6 @@ class Net_SSH2
2517
  } else {
2518
  $orig = $response = $this->_get_binary_packet();
2519
  if ($response === false) {
2520
- $this->bitmap = 0;
2521
  user_error('Connection closed by server');
2522
  return false;
2523
  }
@@ -2706,7 +2664,6 @@ class Net_SSH2
2706
 
2707
  $response = $this->_get_binary_packet();
2708
  if ($response === false) {
2709
- $this->bitmap = 0;
2710
  user_error('Connection closed by server');
2711
  return false;
2712
  }
@@ -2738,23 +2695,8 @@ class Net_SSH2
2738
 
2739
  $packet = $part1 . chr(1) . $part2;
2740
  $privatekey->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
2741
- switch ($this->signature_format) {
2742
- case 'rsa-sha2-512':
2743
- $hash = 'sha512';
2744
- $type = 'rsa-sha2-512';
2745
- break;
2746
- case 'rsa-sha2-256':
2747
- $hash = 'sha256';
2748
- $type = 'rsa-sha2-256';
2749
- break;
2750
- //case 'ssh-rsa':
2751
- default:
2752
- $hash = 'sha1';
2753
- $type = 'ssh-rsa';
2754
- }
2755
- $privatekey->setHash($hash);
2756
  $signature = $privatekey->sign(pack('Na*a*', strlen($this->session_id), $this->session_id, $packet));
2757
- $signature = pack('Na*Na*', strlen($type), $type, strlen($signature), $signature);
2758
  $packet.= pack('Na*', strlen($signature), $signature);
2759
 
2760
  if (!$this->_send_binary_packet($packet)) {
@@ -2763,7 +2705,6 @@ class Net_SSH2
2763
 
2764
  $response = $this->_get_binary_packet();
2765
  if ($response === false) {
2766
- $this->bitmap = 0;
2767
  user_error('Connection closed by server');
2768
  return false;
2769
  }
@@ -2890,7 +2831,6 @@ class Net_SSH2
2890
 
2891
  $response = $this->_get_binary_packet();
2892
  if ($response === false) {
2893
- $this->bitmap = 0;
2894
  user_error('Connection closed by server');
2895
  return false;
2896
  }
@@ -3031,7 +2971,6 @@ class Net_SSH2
3031
 
3032
  $response = $this->_get_binary_packet();
3033
  if ($response === false) {
3034
- $this->bitmap = 0;
3035
  user_error('Connection closed by server');
3036
  return false;
3037
  }
@@ -3346,66 +3285,6 @@ class Net_SSH2
3346
  return (bool) ($this->bitmap & NET_SSH2_MASK_LOGIN);
3347
  }
3348
 
3349
- /**
3350
- * Pings a server connection, or tries to reconnect if the connection has gone down
3351
- *
3352
- * Inspired by http://php.net/manual/en/mysqli.ping.php
3353
- *
3354
- * @return bool
3355
- * @access public
3356
- */
3357
- function ping()
3358
- {
3359
- if (!$this->isAuthenticated()) {
3360
- return false;
3361
- }
3362
-
3363
- $this->window_size_server_to_client[NET_SSH2_CHANNEL_KEEP_ALIVE] = $this->window_size;
3364
- $packet_size = 0x4000;
3365
- $packet = pack(
3366
- 'CNa*N3',
3367
- NET_SSH2_MSG_CHANNEL_OPEN,
3368
- strlen('session'),
3369
- 'session',
3370
- NET_SSH2_CHANNEL_KEEP_ALIVE,
3371
- $this->window_size_server_to_client[NET_SSH2_CHANNEL_KEEP_ALIVE],
3372
- $packet_size
3373
- );
3374
-
3375
- if (!@$this->_send_binary_packet($packet)) {
3376
- return $this->_reconnect();
3377
- }
3378
-
3379
- $this->channel_status[NET_SSH2_CHANNEL_KEEP_ALIVE] = NET_SSH2_MSG_CHANNEL_OPEN;
3380
-
3381
- $response = @$this->_get_channel_packet(NET_SSH2_CHANNEL_KEEP_ALIVE);
3382
- if ($response !== false) {
3383
- $this->_close_channel(NET_SSH2_CHANNEL_KEEP_ALIVE);
3384
- return true;
3385
- }
3386
-
3387
- return $this->_reconnect();
3388
- }
3389
-
3390
- /**
3391
- * In situ reconnect method
3392
- *
3393
- * @return boolean
3394
- * @access private
3395
- */
3396
- function _reconnect()
3397
- {
3398
- $this->_reset_connection(NET_SSH2_DISCONNECT_CONNECTION_LOST);
3399
- $this->retry_connect = true;
3400
- if (!$this->_connect()) {
3401
- return false;
3402
- }
3403
- foreach ($this->auth as $auth) {
3404
- $result = call_user_func_array(array(&$this, 'parent::login'), $auth);
3405
- }
3406
- return $result;
3407
- }
3408
-
3409
  /**
3410
  * Resets a connection for re-use
3411
  *
@@ -3436,8 +3315,8 @@ class Net_SSH2
3436
  function _get_binary_packet($skip_channel_filter = false)
3437
  {
3438
  if (!is_resource($this->fsock) || feof($this->fsock)) {
3439
- $this->bitmap = 0;
3440
  user_error('Connection closed prematurely');
 
3441
  return false;
3442
  }
3443
 
@@ -3480,8 +3359,8 @@ class Net_SSH2
3480
  while ($remaining_length > 0) {
3481
  $temp = fread($this->fsock, $remaining_length);
3482
  if ($temp === false || feof($this->fsock)) {
3483
- $this->bitmap = 0;
3484
  user_error('Error reading from socket');
 
3485
  return false;
3486
  }
3487
  $buffer.= $temp;
@@ -3499,8 +3378,8 @@ class Net_SSH2
3499
  if ($this->hmac_check !== false) {
3500
  $hmac = fread($this->fsock, $this->hmac_size);
3501
  if ($hmac === false || strlen($hmac) != $this->hmac_size) {
3502
- $this->bitmap = 0;
3503
  user_error('Error reading socket');
 
3504
  return false;
3505
  } elseif ($hmac != $this->hmac_check->hash(pack('NNCa*', $this->get_seq_no, $packet_length, $padding_length, $payload . $padding))) {
3506
  user_error('Invalid HMAC');
@@ -3544,7 +3423,7 @@ class Net_SSH2
3544
  return false;
3545
  }
3546
  extract(unpack('Nreason_code/Nlength', $this->_string_shift($payload, 8)));
3547
- $this->errors[] = 'SSH_MSG_DISCONNECT: ' . $this->disconnect_reasons[$reason_code] . "\r\n" . $this->_string_shift($payload, $length);
3548
  $this->bitmap = 0;
3549
  return false;
3550
  case NET_SSH2_MSG_IGNORE:
@@ -3556,7 +3435,7 @@ class Net_SSH2
3556
  return false;
3557
  }
3558
  extract(unpack('Nlength', $this->_string_shift($payload, 4)));
3559
- $this->errors[] = 'SSH_MSG_DEBUG: ' . $this->_string_shift($payload, $length);
3560
  $payload = $this->_get_binary_packet($skip_channel_filter);
3561
  break;
3562
  case NET_SSH2_MSG_UNIMPLEMENTED:
@@ -3579,7 +3458,7 @@ class Net_SSH2
3579
  return false;
3580
  }
3581
  extract(unpack('Nlength', $this->_string_shift($payload, 4)));
3582
- $this->banner_message = $this->_string_shift($payload, $length);
3583
  $payload = $this->_get_binary_packet();
3584
  }
3585
 
@@ -3808,7 +3687,6 @@ class Net_SSH2
3808
 
3809
  $response = $this->_get_binary_packet(true);
3810
  if ($response === false) {
3811
- $this->bitmap = 0;
3812
  user_error('Connection closed by server');
3813
  return false;
3814
  }
@@ -3817,6 +3695,10 @@ class Net_SSH2
3817
  if ($client_channel == -1 && $response === true) {
3818
  return true;
3819
  }
 
 
 
 
3820
  if (!strlen($response)) {
3821
  return false;
3822
  }
@@ -4701,8 +4583,6 @@ class Net_SSH2
4701
 
4702
  break;
4703
  case 'ssh-rsa':
4704
- case 'rsa-sha2-256':
4705
- case 'rsa-sha2-512':
4706
  if (strlen($server_public_host_key) < 4) {
4707
  return false;
4708
  }
@@ -4729,18 +4609,6 @@ class Net_SSH2
4729
  }
4730
 
4731
  $rsa = new Crypt_RSA();
4732
- switch ($this->signature_format) {
4733
- case 'rsa-sha2-512':
4734
- $hash = 'sha512';
4735
- break;
4736
- case 'rsa-sha2-256':
4737
- $hash = 'sha256';
4738
- break;
4739
- //case 'ssh-rsa':
4740
- default:
4741
- $hash = 'sha1';
4742
- }
4743
- $rsa->setHash($hash);
4744
  $rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
4745
  $rsa->loadKey(array('e' => $e, 'n' => $n), CRYPT_RSA_PUBLIC_FORMAT_RAW);
4746
  if (!$rsa->verify($this->exchange_hash, $signature)) {
@@ -4769,30 +4637,7 @@ class Net_SSH2
4769
  $s = $s->modPow($e, $n);
4770
  $s = $s->toBytes();
4771
 
4772
- switch ($this->signature_format) {
4773
- case 'rsa-sha2-512':
4774
- $hash = 'sha512';
4775
- break;
4776
- case 'rsa-sha2-256':
4777
- $hash = 'sha256';
4778
- break;
4779
- //case 'ssh-rsa':
4780
- default:
4781
- $hash = 'sha1';
4782
- }
4783
- $hashObj = new Crypt_Hash($hash);
4784
- switch ($this->signature_format) {
4785
- case 'rsa-sha2-512':
4786
- $h = pack('N5a*', 0x00305130, 0x0D060960, 0x86480165, 0x03040203, 0x05000440, $hashObj->hash($this->exchange_hash));
4787
- break;
4788
- case 'rsa-sha2-256':
4789
- $h = pack('N5a*', 0x00303130, 0x0D060960, 0x86480165, 0x03040201, 0x05000420, $hashObj->hash($this->exchange_hash));
4790
- break;
4791
- //case 'ssh-rsa':
4792
- default:
4793
- $hash = 'sha1';
4794
- $h = pack('N4a*', 0x00302130, 0x0906052B, 0x0E03021A, 0x05000414, $hashObj->hash($this->exchange_hash));
4795
- }
4796
  $h = chr(0x01) . str_repeat(chr(0xFF), $nLength - 2 - strlen($h)) . $h;
4797
 
4798
  if ($s != $h) {
923
  */
924
  var $binary_packet_buffer = false;
925
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
926
  /**
927
  * Default Constructor.
928
  *
1159
  }
1160
  $elapsed = strtok(microtime(), ' ') + strtok('') - $start;
1161
 
1162
+ $this->curTimeout-= $elapsed;
1163
+
1164
+ if ($this->curTimeout <= 0) {
1165
+ $this->is_timeout = true;
1166
+ return false;
 
1167
  }
1168
  }
1169
 
1212
  }
1213
 
1214
  if (feof($this->fsock)) {
 
1215
  user_error('Connection closed by server');
1216
  return false;
1217
  }
1223
 
1224
  $this->server_identifier = trim($temp, "\r\n");
1225
  if (strlen($extra)) {
1226
+ $this->errors[] = utf8_decode($extra);
1227
  }
1228
 
1229
  if (version_compare($matches[1], '1.99', '<')) {
1238
  if (!$this->send_kex_first) {
1239
  $response = $this->_get_binary_packet();
1240
  if ($response === false) {
 
1241
  user_error('Connection closed by server');
1242
  return false;
1243
  }
1309
  );
1310
 
1311
  static $server_host_key_algorithms = array(
 
 
1312
  'ssh-rsa', // RECOMMENDED sign Raw RSA Key
1313
  'ssh-dss' // REQUIRED sign Raw DSS Key
1314
  );
1468
 
1469
  $kexinit_payload_server = $this->_get_binary_packet();
1470
  if ($kexinit_payload_server === false) {
 
1471
  user_error('Connection closed by server');
1472
  return false;
1473
  }
1595
 
1596
  $response = $this->_get_binary_packet();
1597
  if ($response === false) {
 
1598
  user_error('Connection closed by server');
1599
  return false;
1600
  }
1690
  $data = pack('CNa*', $clientKexInitMessage, strlen($eBytes), $eBytes);
1691
 
1692
  if (!$this->_send_binary_packet($data)) {
 
1693
  user_error('Connection closed by server');
1694
  return false;
1695
  }
1696
 
1697
  $response = $this->_get_binary_packet();
1698
  if ($response === false) {
 
1699
  user_error('Connection closed by server');
1700
  return false;
1701
  }
1776
  return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
1777
  }
1778
 
1779
+ if ($public_key_format != $server_host_key_algorithm || $this->signature_format != $server_host_key_algorithm) {
 
 
 
 
 
 
 
 
 
 
 
1780
  user_error('Server Host Key Algorithm Mismatch');
1781
  return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
1782
  }
1793
  $response = $this->_get_binary_packet();
1794
 
1795
  if ($response === false) {
 
1796
  user_error('Connection closed by server');
1797
  return false;
1798
  }
1967
 
1968
  if ($this->encrypt) {
1969
  if ($this->crypto_engine) {
1970
+ $this->encrypt->setEngine($this->crypto_engine);
1971
  }
1972
  $this->encrypt->enableContinuousBuffer();
1973
  $this->encrypt->disablePadding();
1987
 
1988
  if ($this->decrypt) {
1989
  if ($this->crypto_engine) {
1990
+ $this->decrypt->setEngine($this->crypto_engine);
1991
  }
1992
  $this->decrypt->enableContinuousBuffer();
1993
  $this->decrypt->disablePadding();
2191
  function login($username)
2192
  {
2193
  $args = func_get_args();
 
2194
  return call_user_func_array(array(&$this, '_login'), $args);
2195
  }
2196
 
2262
  }
2263
  return $this->_login_helper($username, $password);
2264
  }
 
2265
  user_error('Connection closed by server');
2266
  return false;
2267
  }
2318
 
2319
  $response = $this->_get_binary_packet();
2320
  if ($response === false) {
 
2321
  user_error('Connection closed by server');
2322
  return false;
2323
  }
2376
 
2377
  $response = $this->_get_binary_packet();
2378
  if ($response === false) {
 
2379
  user_error('Connection closed by server');
2380
  return false;
2381
  }
2394
  return false;
2395
  }
2396
  extract(unpack('Nlength', $this->_string_shift($response, 4)));
2397
+ $this->errors[] = 'SSH_MSG_USERAUTH_PASSWD_CHANGEREQ: ' . utf8_decode($this->_string_shift($response, $length));
2398
  return $this->_disconnect(NET_SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER);
2399
  case NET_SSH2_MSG_USERAUTH_FAILURE:
2400
  // can we use keyboard-interactive authentication? if not then either the login is bad or the server employees
2476
  } else {
2477
  $orig = $response = $this->_get_binary_packet();
2478
  if ($response === false) {
 
2479
  user_error('Connection closed by server');
2480
  return false;
2481
  }
2664
 
2665
  $response = $this->_get_binary_packet();
2666
  if ($response === false) {
 
2667
  user_error('Connection closed by server');
2668
  return false;
2669
  }
2695
 
2696
  $packet = $part1 . chr(1) . $part2;
2697
  $privatekey->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2698
  $signature = $privatekey->sign(pack('Na*a*', strlen($this->session_id), $this->session_id, $packet));
2699
+ $signature = pack('Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($signature), $signature);
2700
  $packet.= pack('Na*', strlen($signature), $signature);
2701
 
2702
  if (!$this->_send_binary_packet($packet)) {
2705
 
2706
  $response = $this->_get_binary_packet();
2707
  if ($response === false) {
 
2708
  user_error('Connection closed by server');
2709
  return false;
2710
  }
2831
 
2832
  $response = $this->_get_binary_packet();
2833
  if ($response === false) {
 
2834
  user_error('Connection closed by server');
2835
  return false;
2836
  }
2971
 
2972
  $response = $this->_get_binary_packet();
2973
  if ($response === false) {
 
2974
  user_error('Connection closed by server');
2975
  return false;
2976
  }
3285
  return (bool) ($this->bitmap & NET_SSH2_MASK_LOGIN);
3286
  }
3287
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3288
  /**
3289
  * Resets a connection for re-use
3290
  *
3315
  function _get_binary_packet($skip_channel_filter = false)
3316
  {
3317
  if (!is_resource($this->fsock) || feof($this->fsock)) {
 
3318
  user_error('Connection closed prematurely');
3319
+ $this->bitmap = 0;
3320
  return false;
3321
  }
3322
 
3359
  while ($remaining_length > 0) {
3360
  $temp = fread($this->fsock, $remaining_length);
3361
  if ($temp === false || feof($this->fsock)) {
 
3362
  user_error('Error reading from socket');
3363
+ $this->bitmap = 0;
3364
  return false;
3365
  }
3366
  $buffer.= $temp;
3378
  if ($this->hmac_check !== false) {
3379
  $hmac = fread($this->fsock, $this->hmac_size);
3380
  if ($hmac === false || strlen($hmac) != $this->hmac_size) {
 
3381
  user_error('Error reading socket');
3382
+ $this->bitmap = 0;
3383
  return false;
3384
  } elseif ($hmac != $this->hmac_check->hash(pack('NNCa*', $this->get_seq_no, $packet_length, $padding_length, $payload . $padding))) {
3385
  user_error('Invalid HMAC');
3423
  return false;
3424
  }
3425
  extract(unpack('Nreason_code/Nlength', $this->_string_shift($payload, 8)));
3426
+ $this->errors[] = 'SSH_MSG_DISCONNECT: ' . $this->disconnect_reasons[$reason_code] . "\r\n" . utf8_decode($this->_string_shift($payload, $length));
3427
  $this->bitmap = 0;
3428
  return false;
3429
  case NET_SSH2_MSG_IGNORE:
3435
  return false;
3436
  }
3437
  extract(unpack('Nlength', $this->_string_shift($payload, 4)));
3438
+ $this->errors[] = 'SSH_MSG_DEBUG: ' . utf8_decode($this->_string_shift($payload, $length));
3439
  $payload = $this->_get_binary_packet($skip_channel_filter);
3440
  break;
3441
  case NET_SSH2_MSG_UNIMPLEMENTED:
3458
  return false;
3459
  }
3460
  extract(unpack('Nlength', $this->_string_shift($payload, 4)));
3461
+ $this->banner_message = utf8_decode($this->_string_shift($payload, $length));
3462
  $payload = $this->_get_binary_packet();
3463
  }
3464
 
3687
 
3688
  $response = $this->_get_binary_packet(true);
3689
  if ($response === false) {
 
3690
  user_error('Connection closed by server');
3691
  return false;
3692
  }
3695
  if ($client_channel == -1 && $response === true) {
3696
  return true;
3697
  }
3698
+ if (!strlen($response)) {
3699
+ return '';
3700
+ }
3701
+
3702
  if (!strlen($response)) {
3703
  return false;
3704
  }
4583
 
4584
  break;
4585
  case 'ssh-rsa':
 
 
4586
  if (strlen($server_public_host_key) < 4) {
4587
  return false;
4588
  }
4609
  }
4610
 
4611
  $rsa = new Crypt_RSA();
 
 
 
 
 
 
 
 
 
 
 
 
4612
  $rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
4613
  $rsa->loadKey(array('e' => $e, 'n' => $n), CRYPT_RSA_PUBLIC_FORMAT_RAW);
4614
  if (!$rsa->verify($this->exchange_hash, $signature)) {
4637
  $s = $s->modPow($e, $n);
4638
  $s = $s->toBytes();
4639
 
4640
+ $h = pack('N4H*', 0x00302130, 0x0906052B, 0x0E03021A, 0x05000414, sha1($this->exchange_hash));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4641
  $h = chr(0x01) . str_repeat(chr(0xFF), $nLength - 2 - strlen($h)) . $h;
4642
 
4643
  if ($s != $h) {
vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php CHANGED
@@ -202,18 +202,6 @@ class System_SSH_Agent_Identity
202
  {
203
  }
204
 
205
- /**
206
- * Set Hash
207
- *
208
- * ssh-agent doesn't support using hashes for RSA other than SHA1
209
- *
210
- * @param string $hash
211
- * @access public
212
- */
213
- function setHash($hash)
214
- {
215
- }
216
-
217
  /**
218
  * Create a signature
219
  *
@@ -342,14 +330,12 @@ class System_SSH_Agent
342
  $packet = pack('NC', 1, SYSTEM_SSH_AGENTC_REQUEST_IDENTITIES);
343
  if (strlen($packet) != fputs($this->fsock, $packet)) {
344
  user_error('Connection closed while requesting identities');
345
- return array();
346
  }
347
 
348
  $length = current(unpack('N', fread($this->fsock, 4)));
349
  $type = ord(fread($this->fsock, 1));
350
  if ($type != SYSTEM_SSH_AGENT_IDENTITIES_ANSWER) {
351
  user_error('Unable to request identities');
352
- return array();
353
  }
354
 
355
  $identities = array();
202
  {
203
  }
204
 
 
 
 
 
 
 
 
 
 
 
 
 
205
  /**
206
  * Create a signature
207
  *
330
  $packet = pack('NC', 1, SYSTEM_SSH_AGENTC_REQUEST_IDENTITIES);
331
  if (strlen($packet) != fputs($this->fsock, $packet)) {
332
  user_error('Connection closed while requesting identities');
 
333
  }
334
 
335
  $length = current(unpack('N', fread($this->fsock, 4)));
336
  $type = ord(fread($this->fsock, 1));
337
  if ($type != SYSTEM_SSH_AGENT_IDENTITIES_ANSWER) {
338
  user_error('Unable to request identities');
 
339
  }
340
 
341
  $identities = array();
vendor/phpseclib/phpseclib/phpunit.xml.dist ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <phpunit bootstrap="tests/bootstrap.php"
4
+ colors="true"
5
+ >
6
+ <testsuites>
7
+ <testsuite name="phpseclib Unit Test Suite">
8
+ <directory>./tests/Unit/</directory>
9
+ </testsuite>
10
+ <testsuite name="phpseclib Functional Test Suite">
11
+ <directory>./tests/Functional/</directory>
12
+ </testsuite>
13
+ </testsuites>
14
+
15
+ <!-- Code Coverage -->
16
+ <filter>
17
+ <whitelist>
18
+ <directory>./phpseclib/</directory>
19
+ </whitelist>
20
+ </filter>
21
+ </phpunit>
vendor/phpseclib/phpseclib/tests/Functional/Net/SCPSSH2UserStoryTest.php ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @author Andreas Fischer <bantu@phpbb.com>
5
+ * @copyright 2014 Andreas Fischer
6
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
7
+ */
8
+
9
+ class Functional_Net_SCPSSH2UserStoryTest extends PhpseclibFunctionalTestCase
10
+ {
11
+ static protected $remoteFile;
12
+ static protected $exampleData;
13
+ static protected $exampleDataLength;
14
+
15
+ public static function setUpBeforeClass()
16
+ {
17
+ parent::setUpBeforeClass();
18
+ self::$remoteFile = uniqid('phpseclib-scp-ssh2-') . '.txt';
19
+ self::$exampleData = str_repeat('abscp12345', 1000);
20
+ self::$exampleDataLength = 10000;
21
+ }
22
+
23
+ public function testConstructSSH2()
24
+ {
25
+ $ssh = new Net_SSH2($this->getEnv('SSH_HOSTNAME'));
26
+ $this->assertTrue(
27
+ $ssh->login(
28
+ $this->getEnv('SSH_USERNAME'),
29
+ $this->getEnv('SSH_PASSWORD')
30
+ )
31
+ );
32
+ return $ssh;
33
+ }
34
+
35
+ /** @depends testConstructSSH2 */
36
+ public function testConstructor($ssh)
37
+ {
38
+ $scp = new Net_SCP($ssh);
39
+ $this->assertTrue(
40
+ is_object($scp),
41
+ 'Could not construct Net_SCP object.'
42
+ );
43
+ return $scp;
44
+ }
45
+
46
+ /** @depends testConstructor */
47
+ public function testPutGetString($scp)
48
+ {
49
+ $this->assertTrue(
50
+ $scp->put(self::$remoteFile, self::$exampleData),
51
+ 'Failed asserting that data could successfully be put() into file.'
52
+ );
53
+ $content = $scp->get(self::$remoteFile);
54
+ // TODO: Address https://github.com/phpseclib/phpseclib/issues/146
55
+ $this->assertContains(
56
+ strlen($content),
57
+ array(self::$exampleDataLength, self::$exampleDataLength + 1),
58
+ 'Failed asserting that string length matches expected length.'
59
+ );
60
+ $this->assertContains(
61
+ $content,
62
+ array(self::$exampleData, self::$exampleData . "\0"),
63
+ 'Failed asserting that string content matches expected content.'
64
+ );
65
+ return $scp;
66
+ }
67
+
68
+ /** @depends testPutGetString */
69
+ public function testGetFile($scp)
70
+ {
71
+ $localFilename = $this->createTempFile();
72
+ $this->assertTrue(
73
+ $scp->get(self::$remoteFile, $localFilename),
74
+ 'Failed asserting that get() into file was successful.'
75
+ );
76
+ // TODO: Address https://github.com/phpseclib/phpseclib/issues/146
77
+ $this->assertContains(
78
+ filesize($localFilename),
79
+ array(self::$exampleDataLength, self::$exampleDataLength + 1),
80
+ 'Failed asserting that filesize matches expected data size.'
81
+ );
82
+ $this->assertContains(
83
+ file_get_contents($localFilename),
84
+ array(self::$exampleData, self::$exampleData . "\0"),
85
+ 'Failed asserting that file content matches expected content.'
86
+ );
87
+ }
88
+ }
vendor/phpseclib/phpseclib/tests/Functional/Net/SFTPLargeFileTest.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @author Andreas Fischer <bantu@phpbb.com>
5
+ * @copyright 2014 Andreas Fischer
6
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
7
+ */
8
+
9
+ require_once 'Crypt/Base.php';
10
+
11
+ class Functional_Net_SFTPLargeFileTest extends Functional_Net_SFTPTestCase
12
+ {
13
+ public static function setUpBeforeClass()
14
+ {
15
+ if (!extension_loaded('mcrypt') && !extension_loaded('openssl')) {
16
+ self::markTestSkipped('This test depends on mcrypt or openssl for performance.');
17
+ }
18
+ parent::setUpBeforeClass();
19
+ }
20
+
21
+ /**
22
+ * @group github298
23
+ * @group github455
24
+ * @group github457
25
+ */
26
+ public function testPutSizeLocalFile()
27
+ {
28
+ $tmp_filename = $this->createTempFile(128, 1024 * 1024);
29
+ $filename = 'file-large-from-local.txt';
30
+
31
+ $this->assertTrue(
32
+ $this->sftp->put($filename, $tmp_filename, NET_SFTP_LOCAL_FILE),
33
+ 'Failed asserting that local file could be successfully put().'
34
+ );
35
+
36
+ $this->assertSame(
37
+ 128 * 1024 * 1024,
38
+ $this->sftp->size($filename),
39
+ 'Failed asserting that uploaded local file has the expected length.'
40
+ );
41
+ }
42
+ }
vendor/phpseclib/phpseclib/tests/Functional/Net/SFTPStreamTest.php ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @author Andreas Fischer <bantu@phpbb.com>
5
+ * @copyright 2015 Andreas Fischer
6
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
7
+ */
8
+
9
+ // Registers sftp:// as a side effect.
10
+ require_once 'Net/SFTP/Stream.php';
11
+
12
+ class Functional_Net_SFTPStreamTest extends Functional_Net_SFTPTestCase
13
+ {
14
+ public function testFopenFcloseCreatesFile()
15
+ {
16
+ $context = stream_context_create(array(
17
+ 'sftp' => array('session' => $this->sftp),
18
+ ));
19
+ $fp = fopen($this->buildUrl('fooo.txt'), 'wb', false, $context);
20
+ $this->assertTrue(is_resource($fp));
21
+ fclose($fp);
22
+ $this->assertSame(0, $this->sftp->size('fooo.txt'));
23
+ }
24
+
25
+ /**
26
+ * @group github778
27
+ */
28
+ public function testFilenameWithHash()
29
+ {
30
+ $context = stream_context_create(array(
31
+ 'sftp' => array('session' => $this->sftp),
32
+ ));
33
+ $fp = fopen($this->buildUrl('te#st.txt'), 'wb', false, $context);
34
+ fputs($fp, 'zzzz');
35
+ fclose($fp);
36
+
37
+ $this->assertTrue(in_array('te#st.txt', $this->sftp->nlist()));
38
+ }
39
+
40
+ protected function buildUrl($suffix)
41
+ {
42
+ return sprintf(
43
+ 'sftp://via-context/%s/%s',
44
+ $this->sftp->pwd(),
45
+ $suffix
46
+ );
47
+ }
48
+ }
vendor/phpseclib/phpseclib/tests/Functional/Net/SFTPTestCase.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @author Andreas Fischer <bantu@phpbb.com>
5
+ * @copyright 2015 Andreas Fischer
6
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
7
+ */
8
+
9
+ /**
10
+ * This class provides each test method with a new and empty $this->scratchDir.
11
+ */
12
+ abstract class Functional_Net_SFTPTestCase extends PhpseclibFunctionalTestCase
13
+ {
14
+ protected $sftp;
15
+ protected $scratchDir;
16
+
17
+ public function setUp()
18
+ {
19
+ parent::setUp();
20
+ $this->scratchDir = uniqid('phpseclib-sftp-scratch-');
21
+
22
+ $this->sftp = new Net_SFTP($this->getEnv('SSH_HOSTNAME'));
23
+ $this->assertTrue($this->sftp->login(
24
+ $this->getEnv('SSH_USERNAME'),
25
+ $this->getEnv('SSH_PASSWORD')
26
+ ));
27
+ $this->assertTrue($this->sftp->mkdir($this->scratchDir));
28
+ $this->assertTrue($this->sftp->chdir($this->scratchDir));
29
+ }
30
+
31
+ public function tearDown()
32
+ {
33
+ if ($this->sftp) {
34
+ $this->sftp->chdir($this->getEnv('SSH_HOME'));
35
+ $this->sftp->delete($this->scratchDir);
36
+ }
37
+ parent::tearDown();
38
+ }
39
+ }
vendor/phpseclib/phpseclib/tests/Functional/Net/SFTPUserStoryTest.php ADDED
@@ -0,0 +1,726 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @author Andreas Fischer <bantu@phpbb.com>
5
+ * @copyright 2014 Andreas Fischer
6
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
7
+ */
8
+
9
+ class Functional_Net_SFTPUserStoryTest extends PhpseclibFunctionalTestCase
10
+ {
11
+ static protected $scratchDir;
12
+ static protected $exampleData;
13
+ static protected $exampleDataLength;
14
+ static protected $buffer;
15
+
16
+ public static function setUpBeforeClass()
17
+ {
18
+ parent::setUpBeforeClass();
19
+
20
+ self::$scratchDir = uniqid('phpseclib-sftp-scratch-');
21
+
22
+ self::$exampleData = str_repeat('abcde12345', 1000);
23
+ self::$exampleDataLength = 10000;
24
+ }
25
+
26
+ public function testConstructor()
27
+ {
28
+ $sftp = new Net_SFTP($this->getEnv('SSH_HOSTNAME'));
29
+
30
+ $this->assertTrue(
31
+ is_object($sftp),
32
+ 'Could not construct NET_SFTP object.'
33
+ );
34
+
35
+ return $sftp;
36
+ }
37
+
38
+ /**
39
+ * @depends testConstructor
40
+ */
41
+ public function testPasswordLogin($sftp)
42
+ {
43
+ $username = $this->getEnv('SSH_USERNAME');
44
+ $password = $this->getEnv('SSH_PASSWORD');
45
+ $this->assertTrue(
46
+ $sftp->login($username, $password),
47
+ 'SSH2/SFTP login using password failed.'
48
+ );
49
+
50
+ return $sftp;
51
+ }
52
+
53
+ /**
54
+ * @depends testPasswordLogin
55
+ */
56
+ public function testPwdHome($sftp)
57
+ {
58
+ $this->assertEquals(
59
+ $this->getEnv('SSH_HOME'),
60
+ $sftp->pwd(),
61
+ 'Failed asserting that pwd() returns home directory after login.'
62
+ );
63
+
64
+ return $sftp;
65
+ }
66
+
67
+ /**
68
+ * @depends testPwdHome
69
+ */
70
+ public function testMkDirScratch($sftp)
71
+ {
72
+ $dirname = self::$scratchDir;
73
+
74
+ $this->assertTrue(
75
+ $sftp->mkdir($dirname),
76
+ "Failed asserting that a new scratch directory $dirname could " .
77
+ 'be created.'
78
+ );
79
+
80
+ $this->assertFalse(
81
+ $sftp->mkdir($dirname),
82
+ "Failed asserting that a new scratch directory $dirname could " .
83
+ 'not be created (because it already exists).'
84
+ );
85
+
86
+ return $sftp;
87
+ }
88
+
89
+ /**
90
+ * @depends testMkDirScratch
91
+ */
92
+ public function testChDirScratch($sftp)
93
+ {
94
+ $this->assertTrue(
95
+ $sftp->chdir(self::$scratchDir),
96
+ sprintf(
97
+ 'Failed asserting that working directory could be changed ' .
98
+ 'to scratch directory %s.',
99
+ self::$scratchDir
100
+ )
101
+ );
102
+
103
+ $pwd = $sftp->pwd();
104
+
105
+ $this->assertStringStartsWith(
106
+ $this->getEnv('SSH_HOME'),
107
+ $pwd,
108
+ 'Failed asserting that the home directory is a prefix of the ' .
109
+ 'current working directory.'
110
+ );
111
+
112
+ $this->assertStringEndsWith(
113
+ self::$scratchDir,
114
+ $pwd,
115
+ 'Failed asserting that the scratch directory name is a suffix ' .
116
+ 'of the current working directory.'
117
+ );
118
+
119
+ return $sftp;
120
+ }
121
+
122
+ /**
123
+ * @depends testChDirScratch
124
+ */
125
+ public function testStatOnDir($sftp)
126
+ {
127
+ $this->assertNotSame(
128
+ array(),
129
+ $sftp->stat('.'),
130
+ 'Failed asserting that the cwd has a non-empty stat.'
131
+ );
132
+
133
+ return $sftp;
134
+ }
135
+
136
+ static function callback($length)
137
+ {
138
+ $r = substr(self::$buffer, 0, $length);
139
+ self::$buffer = substr(self::$buffer, $length);
140
+ if (strlen($r)) {
141
+ return $r;
142
+ }
143
+ return null;
144
+ }
145
+
146
+ /**
147
+ * @depends testStatOnDir
148
+ */
149
+ public function testPutSizeGetFileCallback($sftp)
150
+ {
151
+ self::$buffer = self::$exampleData;
152
+ $this->assertTrue(
153
+ $sftp->put('file1.txt', array(__CLASS__, 'callback'), NET_SFTP_CALLBACK),
154
+ 'Failed asserting that example data could be successfully put().'
155
+ );
156
+
157
+ $this->assertSame(
158
+ self::$exampleDataLength,
159
+ $sftp->size('file1.txt'),
160
+ 'Failed asserting that put example data has the expected length'
161
+ );
162
+
163
+ $this->assertSame(
164
+ self::$exampleData,
165
+ $sftp->get('file1.txt'),
166
+ 'Failed asserting that get() returns expected example data.'
167
+ );
168
+
169
+ return $sftp;
170
+ }
171
+
172
+ /**
173
+ * @depends testStatOnDir
174
+ */
175
+ public function testPutSizeGetFile($sftp)
176
+ {
177
+ $this->assertTrue(
178
+ $sftp->put('file1.txt', self::$exampleData),
179
+ 'Failed asserting that example data could be successfully put().'
180
+ );
181
+
182
+ $this->assertSame(
183
+ self::$exampleDataLength,
184
+ $sftp->size('file1.txt'),
185
+ 'Failed asserting that put example data has the expected length'
186
+ );
187
+
188
+ $this->assertSame(
189
+ self::$exampleData,
190
+ $sftp->get('file1.txt'),
191
+ 'Failed asserting that get() returns expected example data.'
192
+ );
193
+
194
+ return $sftp;
195
+ }
196
+
197
+ /**
198
+ * @depends testPutSizeGetFile
199
+ */
200
+ public function testTouch($sftp)
201
+ {
202
+ $this->assertTrue(
203
+ $sftp->touch('file2.txt'),
204
+ 'Failed asserting that touch() successfully ran.'
205
+ );
206
+
207
+ $this->assertTrue(
208
+ $sftp->file_exists('file2.txt'),
209
+ 'Failed asserting that touch()\'d file exists'
210
+ );
211
+
212
+ return $sftp;
213
+ }
214
+
215
+ /**
216
+ * @depends testTouch
217
+ */
218
+ public function testTruncate($sftp)
219
+ {
220
+ $this->assertTrue(
221
+ $sftp->touch('file3.txt'),
222
+ 'Failed asserting that touch() successfully ran.'
223
+ );
224
+
225
+ $this->assertTrue(
226
+ $sftp->truncate('file3.txt', 1024 * 1024),
227
+ 'Failed asserting that touch() successfully ran.'
228
+ );
229
+
230
+ $this->assertSame(
231
+ 1024 * 1024,
232
+ $sftp->size('file3.txt'),
233
+ 'Failed asserting that truncate()\'d file has the expected length'
234
+ );
235
+
236
+ return $sftp;
237
+ }
238
+
239
+ /**
240
+ * @depends testTruncate
241
+ * @group github850
242
+ */
243
+ public function testChModOnFile($sftp)
244
+ {
245
+ $this->assertNotFalse(
246
+ $sftp->chmod(0755, 'file1.txt'),
247
+ 'Failed asserting that chmod() was successful.'
248
+ );
249
+
250
+ return $sftp;
251
+ }
252
+
253
+ /**
254
+ * @depends testChModOnFile
255
+ */
256
+ public function testChDirOnFile($sftp)
257
+ {
258
+ $this->assertFalse(
259
+ $sftp->chdir('file1.txt'),
260
+ 'Failed to assert that the cwd cannot be changed to a file'
261
+ );
262
+
263
+ return $sftp;
264
+ }
265
+
266
+ /**
267
+ * @depends testChDirOnFile
268
+ */
269
+ public function testFileExistsIsFileIsDirFile($sftp)
270
+ {
271
+ $this->assertTrue(
272
+ $sftp->file_exists('file1.txt'),
273
+ 'Failed asserting that file_exists() on example file returns true.'
274
+ );
275
+
276
+ $this->assertTrue(
277
+ $sftp->is_file('file1.txt'),
278
+ 'Failed asserting that is_file() on example file returns true.'
279
+ );
280
+
281
+ $this->assertFalse(
282
+ $sftp->is_dir('file1.txt'),
283
+ 'Failed asserting that is_dir() on example file returns false.'
284
+ );
285
+
286
+ return $sftp;
287
+ }
288
+
289
+ /**
290
+ * @depends testFileExistsIsFileIsDirFile
291
+ */
292
+ public function testFileExistsIsFileIsDirFileNonexistent($sftp)
293
+ {
294
+ $this->assertFalse(
295
+ $sftp->file_exists('file4.txt'),
296
+ 'Failed asserting that a nonexistent file does not exist.'
297
+ );
298
+
299
+ $this->assertFalse(
300
+ $sftp->is_file('file4.txt'),
301
+ 'Failed asserting that is_file() on nonexistent file returns false.'
302
+ );
303
+
304
+ $this->assertFalse(
305
+ $sftp->is_dir('file4.txt'),
306
+ 'Failed asserting that is_dir() on nonexistent file returns false.'
307
+ );
308
+
309
+ return $sftp;
310
+ }
311
+
312
+ /**
313
+ * @depends testFileExistsIsFileIsDirFileNonexistent
314
+ */
315
+ public function testSortOrder($sftp)
316
+ {
317
+ $this->assertTrue(
318
+ $sftp->mkdir('temp'),
319
+ "Failed asserting that a new scratch directory temp could " .
320
+ 'be created.'
321
+ );
322
+
323
+ $sftp->setListOrder('filename', SORT_DESC);
324
+
325
+ $list = $sftp->nlist();
326
+ $expected = array('.', '..', 'temp', 'file3.txt', 'file2.txt', 'file1.txt');
327
+
328
+ $this->assertSame(
329
+ $list,
330
+ $expected,
331
+ 'Failed asserting that list sorted correctly.'
332
+ );
333
+
334
+ $sftp->setListOrder('filename', SORT_ASC);
335
+
336
+ $list = $sftp->nlist();
337
+ $expected = array('.', '..', 'temp', 'file1.txt', 'file2.txt', 'file3.txt');
338
+
339
+ $this->assertSame(
340
+ $list,
341
+ $expected,
342
+ 'Failed asserting that list sorted correctly.'
343
+ );
344
+
345
+ $sftp->setListOrder('size', SORT_DESC);
346
+
347
+ $files = $sftp->nlist();
348
+
349
+ $last_size = 0x7FFFFFFF;
350
+ foreach ($files as $file) {
351
+ if ($sftp->is_file($file)) {
352
+ $cur_size = $sftp->size($file);
353
+ $this->assertLessThanOrEqual(
354
+ $last_size,
355
+ $cur_size,
356
+ 'Failed asserting that nlist() is in descending order'
357
+ );
358
+ $last_size = $cur_size;
359
+ }
360
+ }
361
+
362
+ return $sftp;
363
+ }
364
+
365
+ /**
366
+ * @depends testSortOrder
367
+ */
368
+ public function testResourceXfer($sftp)
369
+ {
370
+ $fp = fopen('res.txt', 'w+');
371
+ $sftp->get('file1.txt', $fp);
372
+ rewind($fp);
373
+ $sftp->put('file4.txt', $fp);
374
+ fclose($fp);
375
+
376
+ $this->assertSame(
377
+ self::$exampleData,
378
+ $sftp->get('file4.txt'),
379
+ 'Failed asserting that a file downloaded into a resource and reuploaded from a resource has the correct data'
380
+ );
381
+
382
+ return $sftp;
383
+ }
384
+
385
+ /**
386
+ * @depends testResourceXfer
387
+ */
388
+ public function testSymlink($sftp)
389
+ {
390
+ $this->assertTrue(
391
+ $sftp->symlink('file3.txt', 'symlink'),
392
+ 'Failed asserting that a symlink could be created'
393
+ );
394
+
395
+ return $sftp;
396
+ }
397
+
398
+ /**
399
+ * @depends testSymlink
400
+ */
401
+ public function testStatLstatCache($sftp)
402
+ {
403
+ $stat = $sftp->stat('symlink');
404
+ $lstat = $sftp->lstat('symlink');
405
+ $this->assertNotEquals(
406
+ $stat,
407
+ $lstat,
408
+ 'Failed asserting that stat and lstat returned different output for a symlink'
409
+ );
410
+
411
+ return $sftp;
412
+ }
413
+
414
+ /**
415
+ * @depends testStatLstatCache
416
+ */
417
+ public function testLinkFile($sftp)
418
+ {
419
+ $this->assertTrue(
420
+ $sftp->is_link('symlink'),
421
+ 'Failed asserting that symlink is a link'
422
+ );
423
+ $this->assertTrue(
424
+ $sftp->is_file('symlink'),
425
+ 'Failed asserting that symlink is a file'
426
+ );
427
+ $this->assertFalse(
428
+ $sftp->is_dir('symlink'),
429
+ 'Failed asserting that symlink is not a directory'
430
+ );
431
+
432
+ return $sftp;
433
+ }
434
+
435
+ /**
436
+ * @depends testLinkFile
437
+ */
438
+ public function testReadlink($sftp)
439
+ {
440
+ $this->assertInternalType(
441
+ 'string',
442
+ $sftp->readlink('symlink'),
443
+ 'Failed asserting that a symlink\'s target could be read'
444
+ );
445
+
446
+ return $sftp;
447
+ }
448
+
449
+ /**
450
+ * @depends testReadlink
451
+ * @group github716
452
+ */
453
+ public function testStatOnCWD($sftp)
454
+ {
455
+ $stat = $sftp->stat('.');
456
+ $this->assertInternalType(
457
+ 'array',
458
+ $stat,
459
+ 'Failed asserting that stat on . returns an array'
460
+ );
461
+ $lstat = $sftp->lstat('.');
462
+ $this->assertInternalType(
463
+ 'array',
464
+ $lstat,
465
+ 'Failed asserting that lstat on . returns an array'
466
+ );
467
+
468
+ return $sftp;
469
+ }
470
+
471
+ /**
472
+ * on older versions this would result in a fatal error
473
+ * @depends testStatOnCWD
474
+ * @group github402
475
+ */
476
+ public function testStatcacheFix($sftp)
477
+ {
478
+ // Name used for both directory and file.
479
+ $name = 'stattestdir';
480
+ $this->assertTrue($sftp->mkdir($name));
481
+ $this->assertTrue($sftp->is_dir($name));
482
+ $this->assertTrue($sftp->chdir($name));
483
+ $this->assertStringEndsWith(self::$scratchDir . '/' . $name, $sftp->pwd());
484
+ $this->assertFalse($sftp->file_exists($name));
485
+ $this->assertTrue($sftp->touch($name));
486
+ $this->assertTrue($sftp->is_file($name));
487
+ $this->assertTrue($sftp->chdir('..'));
488
+ $this->assertStringEndsWith(self::$scratchDir, $sftp->pwd());
489
+ $this->assertTrue($sftp->is_dir($name));
490
+ $this->assertTrue($sftp->is_file("$name/$name"));
491
+ $this->assertTrue($sftp->delete($name, true));
492
+
493
+ return $sftp;
494
+ }
495
+
496
+ /**
497
+ * @depends testStatcacheFix
498
+ */
499
+ public function testChDirUpHome($sftp)
500
+ {
501
+ $this->assertTrue(
502
+ $sftp->chdir('../'),
503
+ 'Failed asserting that directory could be changed one level up.'
504
+ );
505
+
506
+ $this->assertEquals(
507
+ $this->getEnv('SSH_HOME'),
508
+ $sftp->pwd(),
509
+ 'Failed asserting that pwd() returns home directory.'
510
+ );
511
+
512
+ return $sftp;
513
+ }
514
+
515
+ /**
516
+ * @depends testChDirUpHome
517
+ */
518
+ public function testFileExistsIsFileIsDirDir($sftp)
519
+ {
520
+ $this->assertTrue(
521
+ $sftp->file_exists(self::$scratchDir),
522
+ 'Failed asserting that file_exists() on scratch dir returns true.'
523
+ );
524
+
525
+ $this->assertFalse(
526
+ $sftp->is_file(self::$scratchDir),
527
+ 'Failed asserting that is_file() on example file returns false.'
528
+ );
529
+
530
+ $this->assertTrue(
531
+ $sftp->is_dir(self::$scratchDir),
532
+ 'Failed asserting that is_dir() on example file returns true.'
533
+ );
534
+
535
+ return $sftp;
536
+ }
537
+
538
+ /**
539
+ * @depends testFileExistsIsFileIsDirDir
540
+ */
541
+ public function testTruncateLargeFile($sftp)
542
+ {
543
+ $filesize = (4 * 1024 + 16) * 1024 * 1024;
544
+ $filename = 'file-large-from-truncate-4112MiB.txt';
545
+ $this->assertTrue($sftp->touch($filename));
546
+ $this->assertTrue($sftp->truncate($filename, $filesize));
547
+ $this->assertSame($filesize, $sftp->size($filename));
548
+
549
+ return $sftp;
550
+ }
551
+
552
+ /**
553
+ * @depends testTruncateLargeFile
554
+ */
555
+ public function testRmDirScratch($sftp)
556
+ {
557
+ $this->assertFalse(
558
+ $sftp->rmdir(self::$scratchDir),
559
+ 'Failed asserting that non-empty scratch directory could ' .
560
+ 'not be deleted using rmdir().'
561
+ );
562
+
563
+ return $sftp;
564
+ }
565
+
566
+ /**
567
+ * @depends testRmDirScratch
568
+ */
569
+ public function testDeleteRecursiveScratch($sftp)
570
+ {
571
+ $this->assertTrue(
572
+ $sftp->delete(self::$scratchDir),
573
+ 'Failed asserting that non-empty scratch directory could ' .
574
+ 'be deleted using recursive delete().'
575
+ );
576
+
577
+ return $sftp;
578
+ }
579
+
580
+ /**
581
+ * @depends testDeleteRecursiveScratch
582
+ */
583
+ public function testRmDirScratchNonexistent($sftp)
584
+ {
585
+ $this->assertFalse(
586
+ $sftp->rmdir(self::$scratchDir),
587
+ 'Failed asserting that nonexistent scratch directory could ' .
588
+ 'not be deleted using rmdir().'
589
+ );
590
+
591
+ return $sftp;
592
+ }
593
+
594
+ /**
595
+ * @depends testRmDirScratchNonexistent
596
+ * @group github706
597
+ */
598
+ public function testDeleteEmptyDir($sftp)
599
+ {
600
+ $this->assertTrue(
601
+ $sftp->mkdir(self::$scratchDir),
602
+ 'Failed asserting that scratch directory could ' .
603
+ 'be created.'
604
+ );
605
+ $this->assertInternalType(
606
+ 'array',
607
+ $sftp->stat(self::$scratchDir),
608
+ 'Failed asserting that stat on an existant empty directory returns an array'
609
+ );
610
+ $this->assertTrue(
611
+ $sftp->delete(self::$scratchDir),
612
+ 'Failed asserting that empty scratch directory could ' .
613
+ 'be deleted using recursive delete().'
614
+ );
615
+ $this->assertFalse(
616
+ $sftp->stat(self::$scratchDir),
617
+ 'Failed asserting that stat on a deleted directory returns false'
618
+ );
619
+
620
+ return $sftp;
621
+ }
622
+
623
+ /**
624
+ * @depends testDeleteEmptyDir
625
+ * @group github735
626
+ */
627
+ public function testStatVsLstat($sftp)
628
+ {
629
+ $this->assertTrue($sftp->mkdir(self::$scratchDir));
630
+ $this->assertTrue($sftp->chdir(self::$scratchDir));
631
+ $this->assertTrue($sftp->put('text.txt', 'zzzzz'));
632
+ $this->assertTrue($sftp->symlink('text.txt', 'link.txt'));
633
+ $this->assertTrue($sftp->mkdir('subdir'));
634
+ $this->assertTrue($sftp->symlink('subdir', 'linkdir'));
635
+
636
+ $sftp->clearStatCache();
637
+
638
+ // pre-populate the stat cache
639
+ $sftp->nlist();
640
+
641
+ $stat = $sftp->stat('link.txt');
642
+ $this->assertSame($stat['type'], NET_SFTP_TYPE_REGULAR);
643
+ $stat = $sftp->lstat('link.txt');
644
+ $this->assertSame($stat['type'], NET_SFTP_TYPE_SYMLINK);
645
+
646
+ $stat = $sftp->stat('linkdir');
647
+ $this->assertSame($stat['type'], NET_SFTP_TYPE_DIRECTORY);
648
+ $stat = $sftp->lstat('link.txt');
649
+ $this->assertSame($stat['type'], NET_SFTP_TYPE_SYMLINK);
650
+
651
+ $sftp->disableStatCache();
652
+
653
+ $sftp->nlist();
654
+
655
+ $stat = $sftp->stat('link.txt');
656
+ $this->assertSame($stat['type'], NET_SFTP_TYPE_REGULAR);
657
+ $stat = $sftp->lstat('link.txt');
658
+ $this->assertSame($stat['type'], NET_SFTP_TYPE_SYMLINK);
659
+
660
+ $stat = $sftp->stat('linkdir');
661
+ $this->assertSame($stat['type'], NET_SFTP_TYPE_DIRECTORY);
662
+ $stat = $sftp->lstat('link.txt');
663
+ $this->assertSame($stat['type'], NET_SFTP_TYPE_SYMLINK);
664
+
665
+ $sftp->enableStatCache();
666
+
667
+ return $sftp;
668
+ }
669
+
670
+ /**
671
+ * @depends testStatVsLstat
672
+ * @group github830
673
+ */
674
+ public function testUploadOffsets($sftp)
675
+ {
676
+ $sftp->put('offset.txt', 'res.txt', NET_SFTP_LOCAL_FILE, 0, 10);
677
+ $this->assertSame(
678
+ substr(self::$exampleData, 10),
679
+ $sftp->get('offset.txt'),
680
+ 'Failed asserting that portions of a file could be uploaded.'
681
+ );
682
+
683
+ $sftp->put('offset.txt', 'res.txt', NET_SFTP_LOCAL_FILE, self::$exampleDataLength - 100);
684
+ $this->assertSame(
685
+ substr(self::$exampleData, 10, -90) . self::$exampleData,
686
+ $sftp->get('offset.txt'),
687
+ 'Failed asserting that you could upload into the middle of a file.'
688
+ );
689
+
690
+ return $sftp;
691
+ }
692
+
693
+ /**
694
+ * @depends testUploadOffsets
695
+ */
696
+ public function testReadableWritable($sftp)
697
+ {
698
+ $sftp->chmod(0000, 'offset.txt');
699
+ $this->assertFalse($sftp->is_writable('offset.txt'));
700
+ $this->assertFalse($sftp->is_writeable('offset.txt'));
701
+ $this->assertFalse($sftp->is_readable('offset.txt'));
702
+
703
+ $sftp->chmod(0777, 'offset.txt');
704
+ $this->assertTrue($sftp->is_writable('offset.txt'));
705
+ $this->assertTrue($sftp->is_writeable('offset.txt'));
706
+ $this->assertTrue($sftp->is_readable('offset.txt'));
707
+
708
+ $this->assertFalse($sftp->is_writable('nonexistantfile.ext'));
709
+ $this->assertFalse($sftp->is_writeable('nonexistantfile.ext'));
710
+ $this->assertFalse($sftp->is_readable('nonexistantfile.ext'));
711
+
712
+ return $sftp;
713
+ }
714
+
715
+ /**
716
+ * @depends testReadableWritable
717
+ * @group github999
718
+ */
719
+ public function testExecNlist($sftp)
720
+ {
721
+ $sftp->enablePTY();
722
+ $sftp->exec('ping google.com -c 5');
723
+ sleep(5);
724
+ $sftp->nlist();
725
+ }
726
+ }
vendor/phpseclib/phpseclib/tests/Functional/Net/SSH2AgentTest.php ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @author Andreas Fischer <bantu@phpbb.com>
5
+ * @copyright 2014 Andreas Fischer
6
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
7
+ */
8
+
9
+ class Functional_Net_SSH2AgentTest extends PhpseclibFunctionalTestCase
10
+ {
11
+ public static function setUpBeforeClass()
12
+ {
13
+ if (!isset($_SERVER['SSH_AUTH_SOCK'])) {
14
+ self::markTestSkipped(
15
+ 'This test requires an SSH Agent (SSH_AUTH_SOCK env variable).'
16
+ );
17
+ }
18
+ parent::setUpBeforeClass();
19
+ }
20
+
21
+ public function testAgentLogin()
22
+ {
23
+ $ssh = new Net_SSH2($this->getEnv('SSH_HOSTNAME'));
24
+ $agent = new System_SSH_Agent;
25
+
26
+ $this->assertTrue(
27
+ $ssh->login($this->getEnv('SSH_USERNAME'), $agent),
28
+ 'SSH2 login using Agent failed.'
29
+ );
30
+
31
+ return array('ssh' => $ssh, 'ssh-agent' => $agent);
32
+ }
33
+
34
+ /**
35
+ * @depends testAgentLogin
36
+ */
37
+ public function testAgentForward($args)
38
+ {
39
+ $ssh = $args['ssh'];
40
+ $agent = $args['ssh-agent'];
41
+
42
+ $hostname = $this->getEnv('SSH_HOSTNAME');
43
+ $username = $this->getEnv('SSH_USERNAME');
44
+
45
+ $this->assertEquals($username, trim($ssh->exec('whoami')));
46
+
47
+ $agent->startSSHForwarding($ssh);
48
+ $this->assertEquals($username, trim($ssh->exec("ssh " . $username . "@" . $hostname . ' \'whoami\'')));
49
+
50
+ return $args;
51
+ }
52
+ }
vendor/phpseclib/phpseclib/tests/Functional/Net/SSH2Test.php ADDED
@@ -0,0 +1,172 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @author Andreas Fischer <bantu@phpbb.com>
5
+ * @copyright 2014 Andreas Fischer
6
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
7
+ */
8
+
9
+ class Functional_Net_SSH2Test extends PhpseclibFunctionalTestCase
10
+ {
11
+ public function testConstructor()
12
+ {
13
+ $ssh = new Net_SSH2($this->getEnv('SSH_HOSTNAME'));
14
+
15
+ $this->assertTrue(
16
+ is_object($ssh),
17
+ 'Could not construct NET_SSH2 object.'
18
+ );
19
+
20
+ return $ssh;
21
+ }
22
+
23
+ /**
24
+ * @depends testConstructor
25
+ * @group github408
26
+ * @group github412
27
+ */
28
+ public function testPreLogin($ssh)
29
+ {
30
+ $this->assertFalse(
31
+ $ssh->isConnected(),
32
+ 'Failed asserting that SSH2 is not connected after construction.'
33
+ );
34
+
35
+ $this->assertFalse(
36
+ $ssh->isAuthenticated(),
37
+ 'Failed asserting that SSH2 is not authenticated after construction.'
38
+ );
39
+
40
+ $this->assertNotEmpty(
41
+ $ssh->getServerPublicHostKey(),
42
+ 'Failed asserting that a non-empty public host key was fetched.'
43
+ );
44
+
45
+ $this->assertTrue(
46
+ $ssh->isConnected(),
47
+ 'Failed asserting that SSH2 is connected after public key fetch.'
48
+ );
49
+
50
+ $this->assertNotEmpty(
51
+ $ssh->getServerIdentification(),
52
+ 'Failed asserting that the server identifier was set after connect.'
53
+ );
54
+
55
+ return $ssh;
56
+ }
57
+
58
+ /**
59
+ * @depends testPreLogin
60
+ */
61
+ public function testBadPassword($ssh)
62
+ {
63
+ $username = $this->getEnv('SSH_USERNAME');
64
+ $password = $this->getEnv('SSH_PASSWORD');
65
+ $this->assertFalse(
66
+ $ssh->login($username, 'zzz' . $password),
67
+ 'SSH2 login using password succeeded.'
68
+ );
69
+
70
+ $this->assertTrue(
71
+ $ssh->isConnected(),
72
+ 'Failed asserting that SSH2 is connected after bad login attempt.'
73
+ );
74
+
75
+ $this->assertFalse(
76
+ $ssh->isAuthenticated(),
77
+ 'Failed asserting that SSH2 is not authenticated after bad login attempt.'
78
+ );
79
+
80
+ return $ssh;
81
+ }
82
+
83
+ /**
84
+ * @depends testBadPassword
85
+ */
86
+ public function testPasswordLogin($ssh)
87
+ {
88
+ $username = $this->getEnv('SSH_USERNAME');
89
+ $password = $this->getEnv('SSH_PASSWORD');
90
+ $this->assertTrue(
91
+ $ssh->login($username, $password),
92
+ 'SSH2 login using password failed.'
93
+ );
94
+
95
+ $this->assertTrue(
96
+ $ssh->isAuthenticated(),
97
+ 'Failed asserting that SSH2 is authenticated after good login attempt.'
98
+ );
99
+
100
+ return $ssh;
101
+ }
102
+
103
+ /**
104
+ * @depends testPasswordLogin
105
+ * @group github280
106
+ */
107
+ public function testExecWithMethodCallback($ssh)
108
+ {
109
+ $callbackObject = $this->getMockBuilder('stdClass')
110
+ ->setMethods(array('callbackMethod'))
111
+ ->getMock();
112
+ $callbackObject
113
+ ->expects($this->atLeastOnce())
114
+ ->method('callbackMethod')
115
+ ->will($this->returnValue(true));
116
+ $ssh->exec('pwd', array($callbackObject, 'callbackMethod'));
117
+
118
+ return $ssh;
119
+ }
120
+
121
+ public function testGetServerPublicHostKey()
122
+ {
123
+ $ssh = new Net_SSH2($this->getEnv('SSH_HOSTNAME'));
124
+
125
+ $this->assertInternalType('string', $ssh->getServerPublicHostKey());
126
+ }
127
+
128
+ public function testOpenSocketConnect()
129
+ {
130
+ $fsock = fsockopen($this->getEnv('SSH_HOSTNAME'), 22);
131
+ $ssh = new Net_SSH2($fsock);
132
+
133
+ $username = $this->getEnv('SSH_USERNAME');
134
+ $password = $this->getEnv('SSH_PASSWORD');
135
+ $this->assertTrue(
136
+ $ssh->login($username, $password),
137
+ 'SSH2 login using an open socket failed.'
138
+ );
139
+ }
140
+
141
+ /**
142
+ * @depends testExecWithMethodCallback
143
+ * @group github1009
144
+ */
145
+ public function testDisablePTY($ssh)
146
+ {
147
+ $ssh->enablePTY();
148
+ $ssh->exec('ls -latr');
149
+ $ssh->disablePTY();
150
+ $ssh->exec('pwd');
151
+
152
+ return $ssh;
153
+ }
154
+
155
+ /**
156
+ * @depends testDisablePTY
157
+ * @group github1167
158
+ */
159
+ public function testChannelDataAfterOpen($ssh)
160
+ {
161
+ $ssh->write("ping 127.0.0.1\n");
162
+
163
+ $ssh->enablePTY();
164
+ $ssh->exec('bash');
165
+
166
+ $ssh->write("ls -latr\n");
167
+
168
+ $ssh->setTimeout(1);
169
+
170
+ $ssh->read();
171
+ }
172
+ }
vendor/phpseclib/phpseclib/tests/PhpseclibFunctionalTestCase.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Andreas Fischer <bantu@phpbb.com>
4
+ * @copyright 2014 Andreas Fischer
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ abstract class PhpseclibFunctionalTestCase extends PhpseclibTestCase
9
+ {
10
+ public static function setUpBeforeClass()
11
+ {
12
+ if (extension_loaded('runkit')) {
13
+ if (extension_loaded('gmp')) {
14
+ self::ensureConstant(
15
+ 'MATH_BIGINTEGER_MODE',
16
+ MATH_BIGINTEGER_MODE_GMP
17
+ );
18
+ } elseif (extension_loaded('bcmath')) {
19
+ self::ensureConstant(
20
+ 'MATH_BIGINTEGER_MODE',
21
+ MATH_BIGINTEGER_MODE_BCMATH
22
+ );
23
+ } else {
24
+ self::markTestSkipped(
25
+ 'Should have gmp or bcmath extension for functional test.'
26
+ );
27
+ }
28
+ self::ensureConstant('CRYPT_HASH_MODE', CRYPT_HASH_MODE_HASH);
29
+ self::reRequireFile('Math/BigInteger.php');
30
+ self::reRequireFile('Crypt/Hash.php');
31
+ }
32
+ parent::setUpBeforeClass();
33
+ }
34
+
35
+ /**
36
+ * @param string $variable
37
+ * @param string|null $message
38
+ *
39
+ * @return null
40
+ */
41
+ protected function requireEnv($variable, $message = null)
42
+ {
43
+ if ($this->_getEnv($variable) === false) {
44
+ $msg = $message ? $message : sprintf(
45
+ "This test requires the '%s' environment variable.",
46
+ $this->_prefixEnvVariable($variable)
47
+ );
48
+ $this->markTestSkipped($msg);
49
+ }
50
+ }
51
+
52
+ /**
53
+ * @param string $variable
54
+ *
55
+ * @return string
56
+ */
57
+ protected function getEnv($variable)
58
+ {
59
+ $this->requireEnv($variable);
60
+ return $this->_getEnv($variable);
61
+ }
62
+
63
+ private function _getEnv($variable)
64
+ {
65
+ return getenv($this->_prefixEnvVariable($variable));
66
+ }
67
+
68
+ private function _prefixEnvVariable($variable)
69
+ {
70
+ return 'PHPSECLIB_' . $variable;
71
+ }
72
+ }
vendor/phpseclib/phpseclib/tests/PhpseclibTestCase.php ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Andreas Fischer <bantu@phpbb.com>
4
+ * @copyright 2013 Andreas Fischer
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ abstract class PhpseclibTestCase extends PHPUnit\Framework\TestCase
9
+ {
10
+ protected $tempFilesToUnlinkOnTearDown = array();
11
+
12
+ public function tearDown()
13
+ {
14
+ foreach ($this->tempFilesToUnlinkOnTearDown as $filename) {
15
+ if (!file_exists($filename) || unlink($filename)) {
16
+ unset($this->tempFilesToUnlinkOnTearDown[$filename]);
17
+ }
18
+ }
19
+ parent::tearDown();
20
+ }
21
+
22
+ /**
23
+ * Creates a temporary file on the local filesystem and returns its path.
24
+ * The $number_of_writes and $bytes_per_write parameters can be used to
25
+ * write $number_of_writes * $bytes_per_write times the character 'a' to the
26
+ * temporary file. All files created using this method will be deleted from
27
+ * the filesystem on tearDown(), i.e. after each test method was run.
28
+ *
29
+ * @param int $number_of_writes
30
+ * @param int $bytes_per_write
31
+ *
32
+ * @return string
33
+ */
34
+ protected function createTempFile($number_of_writes = 0, $bytes_per_write = 0)
35
+ {
36
+ $filename = tempnam(sys_get_temp_dir(), 'phpseclib-test-');
37
+ $this->assertTrue(file_exists($filename));
38
+ $this->tempFilesToUnlinkOnTearDown[] = $filename;
39
+ if ($number_of_writes > 0 && $bytes_per_write > 0) {
40
+ $fp = fopen($filename, 'wb');
41
+ for ($i = 0; $i < $number_of_writes; ++$i) {
42
+ fwrite($fp, str_repeat('a', $bytes_per_write));
43
+ }
44
+ fclose($fp);
45
+ $this->assertSame($number_of_writes * $bytes_per_write, filesize($filename));
46
+ }
47
+ return $filename;
48
+ }
49
+
50
+ /**
51
+ * @param string $constant
52
+ * @param mixed $expected
53
+ *
54
+ * @return null
55
+ */
56
+ protected static function ensureConstant($constant, $expected)
57
+ {
58
+ if (defined($constant)) {
59
+ $value = constant($constant);
60
+
61
+ if ($value !== $expected) {
62
+ if (extension_loaded('runkit')) {
63
+ if (!runkit_constant_redefine($constant, $expected)) {
64
+ self::markTestSkipped(sprintf(
65
+ "Failed to redefine constant %s to %s",
66
+ $constant,
67
+ $expected
68
+ ));
69
+ }
70
+ } else {
71
+ self::markTestSkipped(sprintf(
72
+ "Skipping test because constant %s is %s instead of %s",
73
+ $constant,
74
+ $value,
75
+ $expected
76
+ ));
77
+ }
78
+ }
79
+ } else {
80
+ define($constant, $expected);
81
+ }
82
+ }
83
+
84
+ /**
85
+ * @param string $filename
86
+ *
87
+ * @return null
88
+ */
89
+ protected static function reRequireFile($filename)
90
+ {
91
+ if (extension_loaded('runkit')) {
92
+ $result = runkit_import(
93
+ $filename,
94
+ RUNKIT_IMPORT_FUNCTIONS |
95
+ RUNKIT_IMPORT_CLASS_METHODS |
96
+ RUNKIT_IMPORT_OVERRIDE
97
+ );
98
+
99
+ if (!$result) {
100
+ self::markTestSkipped("Failed to reimport file $filename");
101
+ }
102
+ }
103
+ }
104
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/AES/InternalTest.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Andreas Fischer <bantu@phpbb.com>
4
+ * @copyright 2013 Andreas Fischer
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ class Unit_Crypt_AES_InternalTest extends Unit_Crypt_AES_TestCase
9
+ {
10
+ protected function setUp()
11
+ {
12
+ $this->engine = CRYPT_ENGINE_INTERNAL;
13
+ }
14
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/AES/McryptTest.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Andreas Fischer <bantu@phpbb.com>
4
+ * @copyright 2013 Andreas Fischer
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ class Unit_Crypt_AES_McryptTest extends Unit_Crypt_AES_TestCase
9
+ {
10
+ protected function setUp()
11
+ {
12
+ $this->engine = CRYPT_ENGINE_MCRYPT;
13
+ }
14
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/AES/OpenSSLTest.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Andreas Fischer <bantu@phpbb.com>
4
+ * @copyright MMXIII Andreas Fischer
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ class Unit_Crypt_AES_OpenSSLTest extends Unit_Crypt_AES_TestCase
9
+ {
10
+ protected function setUp()
11
+ {
12
+ $this->engine = CRYPT_ENGINE_OPENSSL;
13
+ }
14
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/AES/TestCase.php ADDED
@@ -0,0 +1,388 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Andreas Fischer <bantu@phpbb.com>
4
+ * @copyright 2013 Andreas Fischer
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ require_once 'Crypt/AES.php';
9
+
10
+ abstract class Unit_Crypt_AES_TestCase extends PhpseclibTestCase
11
+ {
12
+ protected $engine;
13
+
14
+ private function _checkEngine($aes)
15
+ {
16
+ if ($aes->getEngine() != $this->engine) {
17
+ $engine = 'internal';
18
+ switch ($this->engine) {
19
+ case CRYPT_ENGINE_OPENSSL:
20
+ $engine = 'OpenSSL';
21
+ break;
22
+ case CRYPT_ENGINE_MCRYPT:
23
+ $engine = 'mcrypt';
24
+ }
25
+ self::markTestSkipped('Unable to initialize ' . $engine . ' engine');
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Produces all combinations of test values.
31
+ *
32
+ * @return array
33
+ */
34
+ public function continuousBufferCombos()
35
+ {
36
+ $modes = array(
37
+ 'CRYPT_MODE_CTR',
38
+ 'CRYPT_MODE_OFB',
39
+ 'CRYPT_MODE_CFB',
40
+ );
41
+ $plaintexts = array(
42
+ '',
43
+ '12345678901234567', // https://github.com/phpseclib/phpseclib/issues/39
44
+ "\xDE\xAD\xBE\xAF",
45
+ ':-):-):-):-):-):-)', // https://github.com/phpseclib/phpseclib/pull/43
46
+ );
47
+ $ivs = array(
48
+ '',
49
+ 'test123',
50
+ );
51
+ $keys = array(
52
+ '',
53
+ ':-8', // https://github.com/phpseclib/phpseclib/pull/43
54
+ 'FOOBARZ',
55
+ );
56
+
57
+ $result = array();
58
+
59
+ foreach ($modes as $mode) {
60
+ foreach ($plaintexts as $plaintext) {
61
+ foreach ($ivs as $iv) {
62
+ foreach ($keys as $key) {
63
+ $result[] = array($mode, $plaintext, $iv, $key);
64
+ }
65
+ }
66
+ }
67
+ }
68
+
69
+ return $result;
70
+ }
71
+
72
+ /**
73
+ * @dataProvider continuousBufferCombos
74
+ */
75
+ public function testEncryptDecryptWithContinuousBuffer($mode, $plaintext, $iv, $key)
76
+ {
77
+ $aes = new Crypt_AES(constant($mode));
78
+ $aes->setPreferredEngine($this->engine);
79
+ $aes->enableContinuousBuffer();
80
+ $aes->setIV($iv);
81
+ $aes->setKey($key);
82
+
83
+ $this->_checkEngine($aes);
84
+
85
+ $actual = '';
86
+ for ($i = 0, $strlen = strlen($plaintext); $i < $strlen; ++$i) {
87
+ $actual .= $aes->decrypt($aes->encrypt($plaintext[$i]));
88
+ }
89
+
90
+ $this->assertEquals($plaintext, $actual);
91
+ }
92
+
93
+ /**
94
+ * @group github451
95
+ */
96
+ public function testKeyPaddingRijndael()
97
+ {
98
+ // this test case is from the following URL:
99
+ // https://web.archive.org/web/20070209120224/http://fp.gladman.plus.com/cryptography_technology/rijndael/aesdvec.zip
100
+
101
+ $aes = new Crypt_Rijndael();
102
+ $aes->setPreferredEngine($this->engine);
103
+ $aes->disablePadding();
104
+ $aes->setKey(pack('H*', '2b7e151628aed2a6abf7158809cf4f3c762e7160')); // 160-bit key. Valid in Rijndael.
105
+ //$this->_checkEngine($aes); // should only work in internal mode
106
+ $ciphertext = $aes->encrypt(pack('H*', '3243f6a8885a308d313198a2e0370734'));
107
+ $this->assertEquals($ciphertext, pack('H*', '231d844639b31b412211cfe93712b880'));
108
+ }
109
+
110
+ /**
111
+ * @group github451
112
+ */
113
+ public function testKeyPaddingAES()
114
+ {
115
+ // same as the above - just with a different ciphertext
116
+
117
+ $aes = new Crypt_AES();
118
+ $aes->setPreferredEngine($this->engine);
119
+ $aes->disablePadding();
120
+ $aes->setKey(pack('H*', '2b7e151628aed2a6abf7158809cf4f3c762e7160')); // 160-bit key. AES should null pad to 192-bits
121
+ $this->_checkEngine($aes);
122
+ $ciphertext = $aes->encrypt(pack('H*', '3243f6a8885a308d313198a2e0370734'));
123
+ $this->assertEquals($ciphertext, pack('H*', 'c109292b173f841b88e0ee49f13db8c0'));
124
+ }
125
+
126
+ /**
127
+ * Produces all combinations of test values.
128
+ *
129
+ * @return array
130
+ */
131
+ public function continuousBufferBatteryCombos()
132
+ {
133
+ $modes = array(
134
+ 'CRYPT_MODE_CTR',
135
+ 'CRYPT_MODE_OFB',
136
+ 'CRYPT_MODE_CFB',
137
+ );
138
+
139
+ $combos = array(
140
+ array(16),
141
+ array(17),
142
+ array(1, 16),
143
+ array(3, 6, 7), // (3 to test the openssl_encrypt call and the buffer creation, 6 to test the exclusive use of the buffer and 7 to test the buffer's exhaustion and recreation)
144
+ array(15, 4), // (15 to test openssl_encrypt call and buffer creation and 4 to test something that spans multpile bloc
145
+ array(3, 6, 10, 16), // this is why the strlen check in the buffer-only code was needed
146
+ array(16, 16), // two full size blocks
147
+ array(3, 6, 7, 16), // partial block + full size block
148
+ array(16, 3, 6, 7),
149
+ // a few others just for fun
150
+ array(32,32),
151
+ array(31,31),
152
+ array(17,17),
153
+ array(99, 99)
154
+ );
155
+
156
+ $result = array();
157
+
158
+ foreach ($modes as $mode) {
159
+ foreach ($combos as $combo) {
160
+ foreach (array('encrypt', 'decrypt') as $op) {
161
+ $result[] = array($op, $mode, $combo);
162
+ }
163
+ }
164
+ }
165
+
166
+ return $result;
167
+ }
168
+
169
+ /**
170
+ * @dataProvider continuousBufferBatteryCombos
171
+ */
172
+ public function testContinuousBufferBattery($op, $mode, $test)
173
+ {
174
+ $iv = str_repeat('x', 16);
175
+ $key = str_repeat('a', 16);
176
+
177
+ $aes = new Crypt_AES(constant($mode));
178
+ $aes->setPreferredEngine($this->engine);
179
+ $aes->setKey($key);
180
+ $aes->setIV($iv);
181
+
182
+ $this->_checkEngine($aes);
183
+
184
+ $str = '';
185
+ $result = '';
186
+ foreach ($test as $len) {
187
+ $temp = str_repeat('d', $len);
188
+ $str.= $temp;
189
+ }
190
+
191
+ $c1 = $aes->$op($str);
192
+
193
+ $aes = new Crypt_AES(constant($mode));
194
+ $aes->setPreferredEngine($this->engine);
195
+ $aes->enableContinuousBuffer();
196
+ $aes->setKey($key);
197
+ $aes->setIV($iv);
198
+
199
+ if (!$this->_checkEngine($aes)) {
200
+ return;
201
+ }
202
+
203
+ foreach ($test as $len) {
204
+ $temp = str_repeat('d', $len);
205
+ $output = $aes->$op($temp);
206
+ $result.= $output;
207
+ }
208
+
209
+ $c2 = $result;
210
+
211
+ $this->assertSame(bin2hex($c1), bin2hex($c2));
212
+ }
213
+
214
+ /**
215
+ * Pretty much the same as testContinuousBufferBattery with the caveat that continuous mode is not enabled.
216
+ *
217
+ * @dataProvider continuousBufferBatteryCombos
218
+ */
219
+ public function testNonContinuousBufferBattery($op, $mode, $test)
220
+ {
221
+ if (count($test) == 1) {
222
+ return;
223
+ }
224
+
225
+ $iv = str_repeat('x', 16);
226
+ $key = str_repeat('a', 16);
227
+
228
+ $aes = new Crypt_AES(constant($mode));
229
+ $aes->setPreferredEngine($this->engine);
230
+ $aes->setKey($key);
231
+ $aes->setIV($iv);
232
+
233
+ $this->_checkEngine($aes);
234
+
235
+ $str = '';
236
+ $result = '';
237
+ foreach ($test as $len) {
238
+ $temp = str_repeat('d', $len);
239
+ $str.= $temp;
240
+ }
241
+
242
+ $c1 = $aes->$op($str);
243
+
244
+ $aes = new Crypt_AES(constant($mode));
245
+ $aes->setPreferredEngine($this->engine);
246
+ $aes->setKey($key);
247
+ $aes->setIV($iv);
248
+
249
+ $this->_checkEngine($aes);
250
+
251
+ foreach ($test as $len) {
252
+ $temp = str_repeat('d', $len);
253
+ $output = $aes->$op($temp);
254
+ $result.= $output;
255
+ }
256
+
257
+ $c2 = $result;
258
+
259
+ $this->assertNotSame(bin2hex($c1), bin2hex($c2));
260
+ }
261
+
262
+ // from http://csrc.nist.gov/groups/STM/cavp/documents/aes/AESAVS.pdf#page=16
263
+ public function testGFSBox128()
264
+ {
265
+ $aes = new Crypt_AES();
266
+
267
+ $aes->setKey(pack('H*', '00000000000000000000000000000000'));
268
+ $aes->setIV(pack('H*', '00000000000000000000000000000000'));
269
+ $aes->disablePadding();
270
+
271
+ $aes->setPreferredEngine($this->engine);
272
+ $this->_checkEngine($aes);
273
+
274
+ $result = bin2hex($aes->encrypt(pack('H*', 'f34481ec3cc627bacd5dc3fb08f273e6')));
275
+ $this->assertSame($result, '0336763e966d92595a567cc9ce537f5e');
276
+ $result = bin2hex($aes->encrypt(pack('H*', '9798c4640bad75c7c3227db910174e72')));
277
+ $this->assertSame($result, 'a9a1631bf4996954ebc093957b234589');
278
+ $result = bin2hex($aes->encrypt(pack('H*', '96ab5c2ff612d9dfaae8c31f30c42168')));
279
+ $this->assertSame($result, 'ff4f8391a6a40ca5b25d23bedd44a597');
280
+ $result = bin2hex($aes->encrypt(pack('H*', '6a118a874519e64e9963798a503f1d35')));
281
+ $this->assertSame($result, 'dc43be40be0e53712f7e2bf5ca707209');
282
+ $result = bin2hex($aes->encrypt(pack('H*', 'cb9fceec81286ca3e989bd979b0cb284')));
283
+ $this->assertSame($result, '92beedab1895a94faa69b632e5cc47ce');
284
+ $result = bin2hex($aes->encrypt(pack('H*', 'b26aeb1874e47ca8358ff22378f09144')));
285
+ $this->assertSame($result, '459264f4798f6a78bacb89c15ed3d601');
286
+ $result = bin2hex($aes->encrypt(pack('H*', '58c8e00b2631686d54eab84b91f0aca1')));
287
+ $this->assertSame($result, '08a4e2efec8a8e3312ca7460b9040bbf');
288
+ }
289
+
290
+ public function testGFSBox192()
291
+ {
292
+ $aes = new Crypt_AES();
293
+
294
+ $aes->setKey(pack('H*', '000000000000000000000000000000000000000000000000'));
295
+ $aes->setIV(pack('H*', '00000000000000000000000000000000'));
296
+ $aes->disablePadding();
297
+
298
+ $aes->setPreferredEngine($this->engine);
299
+ $this->_checkEngine($aes);
300
+
301
+ $result = bin2hex($aes->encrypt(pack('H*', '1b077a6af4b7f98229de786d7516b639')));
302
+ $this->assertSame($result, '275cfc0413d8ccb70513c3859b1d0f72');
303
+ $result = bin2hex($aes->encrypt(pack('H*', '9c2d8842e5f48f57648205d39a239af1')));
304
+ $this->assertSame($result, 'c9b8135ff1b5adc413dfd053b21bd96d');
305
+ $result = bin2hex($aes->encrypt(pack('H*', 'bff52510095f518ecca60af4205444bb')));
306
+ $this->assertSame($result, '4a3650c3371ce2eb35e389a171427440');
307
+ $result = bin2hex($aes->encrypt(pack('H*', '51719783d3185a535bd75adc65071ce1')));
308
+ $this->assertSame($result, '4f354592ff7c8847d2d0870ca9481b7c');
309
+ $result = bin2hex($aes->encrypt(pack('H*', '26aa49dcfe7629a8901a69a9914e6dfd')));
310
+ $this->assertSame($result, 'd5e08bf9a182e857cf40b3a36ee248cc');
311
+ $result = bin2hex($aes->encrypt(pack('H*', '941a4773058224e1ef66d10e0a6ee782')));
312
+ $this->assertSame($result, '067cd9d3749207791841562507fa9626');
313
+ }
314
+
315
+ public function testGFSBox256()
316
+ {
317
+ $aes = new Crypt_AES();
318
+
319
+ $aes->setKey(pack('H*', '00000000000000000000000000000000' . '00000000000000000000000000000000'));
320
+ $aes->setIV(pack('H*', '00000000000000000000000000000000'));
321
+ $aes->disablePadding();
322
+
323
+ $aes->setPreferredEngine($this->engine);
324
+ $this->_checkEngine($aes);
325
+
326
+ $result = bin2hex($aes->encrypt(pack('H*', '014730f80ac625fe84f026c60bfd547d')));
327
+ $this->assertSame($result, '5c9d844ed46f9885085e5d6a4f94c7d7');
328
+ $result = bin2hex($aes->encrypt(pack('H*', '0b24af36193ce4665f2825d7b4749c98')));
329
+ $this->assertSame($result, 'a9ff75bd7cf6613d3731c77c3b6d0c04');
330
+ $result = bin2hex($aes->encrypt(pack('H*', '761c1fe41a18acf20d241650611d90f1')));
331
+ $this->assertSame($result, '623a52fcea5d443e48d9181ab32c7421');
332
+ $result = bin2hex($aes->encrypt(pack('H*', '8a560769d605868ad80d819bdba03771')));
333
+ $this->assertSame($result, '38f2c7ae10612415d27ca190d27da8b4');
334
+ $result = bin2hex($aes->encrypt(pack('H*', '91fbef2d15a97816060bee1feaa49afe')));
335
+ $this->assertSame($result, '1bc704f1bce135ceb810341b216d7abe');
336
+ }
337
+
338
+ public function testGetKeyLengthDefault()
339
+ {
340
+ $aes = new Crypt_AES();
341
+ $this->assertSame($aes->getKeyLength(), 128);
342
+ }
343
+
344
+ public function testGetKeyLengthWith192BitKey()
345
+ {
346
+ $aes = new Crypt_AES();
347
+ $aes->setKey(str_repeat('a', 24));
348
+ $this->assertSame($aes->getKeyLength(), 192);
349
+ }
350
+
351
+ public function testSetKeyLengthWithLargerKey()
352
+ {
353
+ $aes = new Crypt_AES();
354
+ $aes->setKeyLength(128);
355
+ $aes->setKey(str_repeat('a', 24));
356
+ $this->assertSame($aes->getKeyLength(), 128);
357
+ $ciphertext = bin2hex($aes->encrypt('a'));
358
+ $this->assertSame($ciphertext, '82b7b068dfc60ed2a46893b69fecd6c2');
359
+ $this->assertSame($aes->getKeyLength(), 128);
360
+ }
361
+
362
+ public function testSetKeyLengthWithSmallerKey()
363
+ {
364
+ $aes = new Crypt_AES();
365
+ $aes->setKeyLength(256);
366
+ $aes->setKey(str_repeat('a', 16));
367
+ $this->assertSame($aes->getKeyLength(), 256);
368
+ $ciphertext = bin2hex($aes->encrypt('a'));
369
+ $this->assertSame($ciphertext, 'fd4250c0d234aa7e1aa592820aa8406b');
370
+ $this->assertSame($aes->getKeyLength(), 256);
371
+ }
372
+
373
+ /**
374
+ * @group github938
375
+ */
376
+ public function testContinuousBuffer()
377
+ {
378
+ $aes = new Crypt_AES();
379
+ $aes->disablePadding();
380
+ $aes->enableContinuousBuffer();
381
+ $aes->setIV(pack('H*', '0457bdb4a6712986688349a29eb82535'));
382
+ $aes->setKey(pack('H*', '00d596e2c8189b2592fac358e7396ad2'));
383
+ $aes->decrypt(pack('H*', '9aa234ea7c750a8109a0f32d768b964e'));
384
+ $plaintext = $aes->decrypt(pack('H*', '0457bdb4a6712986688349a29eb82535'));
385
+ $expected = pack('H*', '6572617574689e1be8d2d8d43c594cf3');
386
+ $this->assertSame($plaintext, $expected);
387
+ }
388
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/BlowfishTest.php ADDED
@@ -0,0 +1,130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Andreas Fischer <bantu@phpbb.com>
4
+ * @copyright MMXIII Andreas Fischer
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ require_once 'Crypt/Blowfish.php';
9
+ require_once 'Crypt/Random.php';
10
+
11
+ class Unit_Crypt_BlowfishTest extends PhpseclibTestCase
12
+ {
13
+ public function engineVectors()
14
+ {
15
+ $engines = array(
16
+ CRYPT_ENGINE_INTERNAL => 'internal',
17
+ CRYPT_ENGINE_MCRYPT => 'mcrypt',
18
+ CRYPT_ENGINE_OPENSSL => 'OpenSSL',
19
+ );
20
+
21
+ // tests from https://www.schneier.com/code/vectors.txt
22
+ $tests = array(
23
+ // key, plaintext, ciphertext
24
+ array(pack('H*', '0000000000000000'), pack('H*', '0000000000000000'), pack('H*', '4EF997456198DD78')),
25
+ array(pack('H*', 'FFFFFFFFFFFFFFFF'), pack('H*', 'FFFFFFFFFFFFFFFF'), pack('H*', '51866FD5B85ECB8A')),
26
+ array(pack('H*', '3000000000000000'), pack('H*', '1000000000000001'), pack('H*', '7D856F9A613063F2')),
27
+ array(pack('H*', '1111111111111111'), pack('H*', '1111111111111111'), pack('H*', '2466DD878B963C9D')),
28
+ array(pack('H*', '0123456789ABCDEF'), pack('H*', '1111111111111111'), pack('H*', '61F9C3802281B096')),
29
+ array(pack('H*', '1111111111111111'), pack('H*', '0123456789ABCDEF'), pack('H*', '7D0CC630AFDA1EC7')),
30
+ array(pack('H*', '0000000000000000'), pack('H*', '0000000000000000'), pack('H*', '4EF997456198DD78')),
31
+ array(pack('H*', 'FEDCBA9876543210'), pack('H*', '0123456789ABCDEF'), pack('H*', '0ACEAB0FC6A0A28D')),
32
+ array(pack('H*', '7CA110454A1A6E57'), pack('H*', '01A1D6D039776742'), pack('H*', '59C68245EB05282B')),
33
+ array(pack('H*', '0131D9619DC1376E'), pack('H*', '5CD54CA83DEF57DA'), pack('H*', 'B1B8CC0B250F09A0')),
34
+ array(pack('H*', '07A1133E4A0B2686'), pack('H*', '0248D43806F67172'), pack('H*', '1730E5778BEA1DA4')),
35
+ array(pack('H*', '3849674C2602319E'), pack('H*', '51454B582DDF440A'), pack('H*', 'A25E7856CF2651EB')),
36
+ array(pack('H*', '04B915BA43FEB5B6'), pack('H*', '42FD443059577FA2'), pack('H*', '353882B109CE8F1A')),
37
+ array(pack('H*', '0113B970FD34F2CE'), pack('H*', '059B5E0851CF143A'), pack('H*', '48F4D0884C379918')),
38
+ array(pack('H*', '0170F175468FB5E6'), pack('H*', '0756D8E0774761D2'), pack('H*', '432193B78951FC98')),
39
+ array(pack('H*', '43297FAD38E373FE'), pack('H*', '762514B829BF486A'), pack('H*', '13F04154D69D1AE5')),
40
+ array(pack('H*', '07A7137045DA2A16'), pack('H*', '3BDD119049372802'), pack('H*', '2EEDDA93FFD39C79')),
41
+ array(pack('H*', '04689104C2FD3B2F'), pack('H*', '26955F6835AF609A'), pack('H*', 'D887E0393C2DA6E3')),
42
+ array(pack('H*', '37D06BB516CB7546'), pack('H*', '164D5E404F275232'), pack('H*', '5F99D04F5B163969')),
43
+ array(pack('H*', '1F08260D1AC2465E'), pack('H*', '6B056E18759F5CCA'), pack('H*', '4A057A3B24D3977B')),
44
+ array(pack('H*', '584023641ABA6176'), pack('H*', '004BD6EF09176062'), pack('H*', '452031C1E4FADA8E')),
45
+ array(pack('H*', '025816164629B007'), pack('H*', '480D39006EE762F2'), pack('H*', '7555AE39F59B87BD')),
46
+ array(pack('H*', '49793EBC79B3258F'), pack('H*', '437540C8698F3CFA'), pack('H*', '53C55F9CB49FC019')),
47
+ array(pack('H*', '4FB05E1515AB73A7'), pack('H*', '072D43A077075292'), pack('H*', '7A8E7BFA937E89A3')),
48
+ array(pack('H*', '49E95D6D4CA229BF'), pack('H*', '02FE55778117F12A'), pack('H*', 'CF9C5D7A4986ADB5')),
49
+ array(pack('H*', '018310DC409B26D6'), pack('H*', '1D9D5C5018F728C2'), pack('H*', 'D1ABB290658BC778')),
50
+ array(pack('H*', '1C587F1C13924FEF'), pack('H*', '305532286D6F295A'), pack('H*', '55CB3774D13EF201')),
51
+ array(pack('H*', '0101010101010101'), pack('H*', '0123456789ABCDEF'), pack('H*', 'FA34EC4847B268B2')),
52
+ array(pack('H*', '1F1F1F1F0E0E0E0E'), pack('H*', '0123456789ABCDEF'), pack('H*', 'A790795108EA3CAE')),
53
+ array(pack('H*', 'E0FEE0FEF1FEF1FE'), pack('H*', '0123456789ABCDEF'), pack('H*', 'C39E072D9FAC631D')),
54
+ array(pack('H*', '0000000000000000'), pack('H*', 'FFFFFFFFFFFFFFFF'), pack('H*', '014933E0CDAFF6E4')),
55
+ array(pack('H*', 'FFFFFFFFFFFFFFFF'), pack('H*', '0000000000000000'), pack('H*', 'F21E9A77B71C49BC')),
56
+ array(pack('H*', '0123456789ABCDEF'), pack('H*', '0000000000000000'), pack('H*', '245946885754369A')),
57
+ array(pack('H*', 'FEDCBA9876543210'), pack('H*', 'FFFFFFFFFFFFFFFF'), pack('H*', '6B5C5A9C5D9E0A5A'))
58
+ );
59
+
60
+ $result = array();
61
+
62
+ foreach ($engines as $engine => $engineName) {
63
+ foreach ($tests as $test) {
64
+ $result[] = array($engine, $engineName, $test[0], $test[1], $test[2]);
65
+ }
66
+ }
67
+
68
+ return $result;
69
+ }
70
+
71
+ /**
72
+ * @dataProvider engineVectors
73
+ */
74
+ public function testVectors($engine, $engineName, $key, $plaintext, $expected)
75
+ {
76
+ $bf = new Crypt_Blowfish();
77
+ $bf->setKey($key);
78
+ if (!$bf->isValidEngine($engine)) {
79
+ self::markTestSkipped('Unable to initialize ' . $engineName . ' engine');
80
+ }
81
+ $bf->setPreferredEngine($engine);
82
+ $bf->disablePadding();
83
+ $result = $bf->encrypt($plaintext);
84
+ $plaintext = bin2hex($plaintext);
85
+ $this->assertEquals($result, $expected, "Failed asserting that $plaintext yielded expected output in $engineName engine");
86
+ }
87
+
88
+ public function testKeySizes()
89
+ {
90
+ $objects = $engines = array();
91
+ $temp = new Crypt_Blowfish(CRYPT_MODE_CTR);
92
+ $temp->setPreferredEngine(CRYPT_ENGINE_INTERNAL);
93
+ $objects[] = $temp;
94
+ $engines[] = 'internal';
95
+
96
+ if ($temp->isValidEngine(CRYPT_ENGINE_MCRYPT)) {
97
+ $temp = new Crypt_Blowfish(CRYPT_MODE_CTR);
98
+ $temp->setPreferredEngine(CRYPT_ENGINE_MCRYPT);
99
+ $objects[] = $temp;
100
+ $engines[] = 'mcrypt';
101
+ }
102
+
103
+ if ($temp->isValidEngine(CRYPT_ENGINE_OPENSSL)) {
104
+ $temp = new Crypt_Blowfish(CRYPT_MODE_CTR);
105
+ $temp->setPreferredEngine(CRYPT_ENGINE_OPENSSL);
106
+ $objects[] = $temp;
107
+ $engines[] = 'OpenSSL';
108
+ }
109
+
110
+ if (count($objects) < 2) {
111
+ self::markTestSkipped('Unable to initialize two or more engines');
112
+ }
113
+
114
+ for ($i = 0; $i < count($objects); $i++) {
115
+ $objects[$i]->setIV(str_repeat('x', $objects[$i]->getBlockLength() >> 3));
116
+ }
117
+
118
+ $plaintext = str_repeat('.', 100);
119
+
120
+ for ($keyLen = 4; $keyLen <= 56; $keyLen++) {
121
+ $key = crypt_random_string($keyLen);
122
+ $objects[0]->setKey($key);
123
+ $ref = $objects[0]->encrypt($plaintext);
124
+ for ($i = 1; $i < count($objects); $i++) {
125
+ $objects[$i]->setKey($key);
126
+ $this->assertEquals($ref, $objects[$i]->encrypt($plaintext), "Failed asserting that {$engines[$i]} yields the same output as the internal engine with a key size of $keyLen");
127
+ }
128
+ }
129
+ }
130
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/DESTest.php ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Andreas Fischer <bantu@phpbb.com>
4
+ * @copyright MMXIII Andreas Fischer
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ require_once 'Crypt/DES.php';
9
+
10
+ // the AES tests establish the correctness of the modes of operation. this test is inteded to establish the consistency of
11
+ // key and iv padding between the multiple engines
12
+ class Unit_Crypt_DESTest extends PhpseclibTestCase
13
+ {
14
+ public function testEncryptPadding()
15
+ {
16
+ $des = new Crypt_DES(CRYPT_MODE_CBC);
17
+ $des->setKey('d');
18
+ $des->setIV('d');
19
+
20
+ $des->setPreferredEngine(CRYPT_ENGINE_INTERNAL);
21
+
22
+ $result = pack('H*', '3e7613642049af1e');
23
+
24
+ $internal = $des->encrypt('d');
25
+ $this->assertEquals($result, $internal, 'Failed asserting that the internal engine produced the correct result');
26
+
27
+ $des->setPreferredEngine(CRYPT_ENGINE_MCRYPT);
28
+ if ($des->getEngine() == CRYPT_ENGINE_MCRYPT) {
29
+ $mcrypt = $des->encrypt('d');
30
+ $this->assertEquals($result, $mcrypt, 'Failed asserting that the mcrypt engine produced the correct result');
31
+ } else {
32
+ self::markTestSkipped('Unable to initialize mcrypt engine');
33
+ }
34
+
35
+ $des->setPreferredEngine(CRYPT_ENGINE_OPENSSL);
36
+ if ($des->getEngine() == CRYPT_ENGINE_OPENSSL) {
37
+ $openssl = $des->encrypt('d');
38
+ $this->assertEquals($result, $openssl, 'Failed asserting that the OpenSSL engine produced the correct result');
39
+ } else {
40
+ self::markTestSkipped('Unable to initialize OpenSSL engine');
41
+ }
42
+ }
43
+
44
+ // phpseclib null pads ciphertext's if they're not long enough and you're in ecb / cbc mode. this silent failure mode is consistent
45
+ // with mcrypt's behavior. maybe throwing an exception would be better but whatever. this test is more intended to establish consistent
46
+ // behavior between the various engine's
47
+ public function testDecryptPadding()
48
+ {
49
+ $des = new Crypt_DES(CRYPT_MODE_CBC);
50
+ $des->disablePadding();
51
+ // when the key and iv are not specified they should be null padded
52
+ //$des->setKey();
53
+ //$des->setIV();
54
+
55
+ $des->setPreferredEngine(CRYPT_ENGINE_INTERNAL);
56
+ $internal = $des->decrypt('d');
57
+
58
+ $result = pack('H*', '79b305d1ce555221');
59
+ $this->assertEquals($result, $internal, 'Failed asserting that the internal engine produced the correct result');
60
+
61
+ $des->setPreferredEngine(CRYPT_ENGINE_MCRYPT);
62
+ if ($des->getEngine() == CRYPT_ENGINE_MCRYPT) {
63
+ $mcrypt = $des->decrypt('d');
64
+ $this->assertEquals($result, $mcrypt, 'Failed asserting that the mcrypt engine produced the correct result');
65
+ } else {
66
+ self::markTestSkipped('Unable to initialize mcrypt engine');
67
+ }
68
+
69
+ $des->setPreferredEngine(CRYPT_ENGINE_OPENSSL);
70
+ if ($des->getEngine() == CRYPT_ENGINE_OPENSSL) {
71
+ $openssl = $des->decrypt('d');
72
+ $this->assertEquals($result, $openssl, 'Failed asserting that the OpenSSL engine produced the correct result');
73
+ } else {
74
+ self::markTestSkipped('Unable to initialize OpenSSL engine');
75
+ }
76
+ }
77
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/MD5Test.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Andreas Fischer <bantu@phpbb.com>
4
+ * @copyright 2012 Andreas Fischer
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ class Unit_Crypt_Hash_MD5Test extends Unit_Crypt_Hash_TestCase
9
+ {
10
+ public function getInstance()
11
+ {
12
+ return new Crypt_Hash('md5');
13
+ }
14
+
15
+ /**
16
+ * @dataProvider hashData()
17
+ */
18
+ public function testHash($message, $result)
19
+ {
20
+ $this->assertHashesTo($this->getInstance(), $message, $result);
21
+ }
22
+
23
+ public static function hashData()
24
+ {
25
+ return array(
26
+ array('', 'd41d8cd98f00b204e9800998ecf8427e'),
27
+ array('The quick brown fox jumps over the lazy dog', '9e107d9d372bb6826bd81d3542a419d6'),
28
+ array('The quick brown fox jumps over the lazy dog.', 'e4d909c290d0fb1ca068ffaddf22cbd0'),
29
+ );
30
+ }
31
+
32
+ /**
33
+ * @dataProvider hmacData()
34
+ */
35
+ public function testHMAC($key, $message, $result)
36
+ {
37
+ $this->assertHMACsTo($this->getInstance(), $key, $message, $result);
38
+ }
39
+
40
+ public static function hmacData()
41
+ {
42
+ return array(
43
+ array('', '', '74e6f7298a9c2d168935f58c001bad88'),
44
+ array('key', 'The quick brown fox jumps over the lazy dog', '80070713463e7749b90c2dc24911e275'),
45
+ );
46
+ }
47
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/SHA256Test.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Andreas Fischer <bantu@phpbb.com>
4
+ * @copyright 2014 Andreas Fischer
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ class Unit_Crypt_Hash_SHA256Test extends Unit_Crypt_Hash_TestCase
9
+ {
10
+ public function getInstance()
11
+ {
12
+ return new Crypt_Hash('sha256');
13
+ }
14
+
15
+ /**
16
+ * @dataProvider hashData()
17
+ */
18
+ public function testHash($message, $result)
19
+ {
20
+ $this->assertHashesTo($this->getInstance(), $message, $result);
21
+ }
22
+
23
+ public static function hashData()
24
+ {
25
+ return array(
26
+ array(
27
+ '',
28
+ 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
29
+ ),
30
+ array(
31
+ 'The quick brown fox jumps over the lazy dog',
32
+ 'd7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592',
33
+ ),
34
+ array(
35
+ 'The quick brown fox jumps over the lazy dog.',
36
+ 'ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c',
37
+ ),
38
+ );
39
+ }
40
+
41
+ /**
42
+ * @dataProvider hmacData()
43
+ */
44
+ public function testHMAC($key, $message, $result)
45
+ {
46
+ $this->assertHMACsTo($this->getInstance(), $key, $message, $result);
47
+ }
48
+
49
+ public static function hmacData()
50
+ {
51
+ return array(
52
+ // RFC 4231
53
+ // Test Case 1
54
+ array(
55
+ pack('H*', '0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b'),
56
+ pack('H*', '4869205468657265'),
57
+ 'b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7',
58
+ ),
59
+ // Test Case 2
60
+ array(
61
+ pack('H*', '4a656665'),
62
+ pack('H*', '7768617420646f2079612077616e7420666f72206e6f7468696e673f'),
63
+ '5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843',
64
+ ),
65
+ // Test Case 3
66
+ array(
67
+ pack('H*', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'),
68
+ pack('H*', 'dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'),
69
+ '773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565fe',
70
+ ),
71
+ // Test Case 4
72
+ array(
73
+ pack('H*', '0102030405060708090a0b0c0d0e0f10111213141516171819'),
74
+ pack('H*', 'cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd'),
75
+ '82558a389a443c0ea4cc819899f2083a85f0faa3e578f8077a2e3ff46729665b',
76
+ ),
77
+ );
78
+ }
79
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/SHA256_96Test.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Andreas Fischer <bantu@phpbb.com>
4
+ * @copyright 2014 Andreas Fischer
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ class Unit_Crypt_Hash_SHA256_96Test extends Unit_Crypt_Hash_SHA256Test
9
+ {
10
+ public function getInstance()
11
+ {
12
+ return new Crypt_Hash('sha256-96');
13
+ }
14
+
15
+ /**
16
+ * @dataProvider hashData()
17
+ */
18
+ public function testHash($message, $longResult)
19
+ {
20
+ parent::testHash($message, substr($longResult, 0, 24));
21
+ }
22
+
23
+ /**
24
+ * @dataProvider hmacData()
25
+ */
26
+ public function testHMAC($key, $message, $longResult)
27
+ {
28
+ parent::testHMAC($key, $message, substr($longResult, 0, 24));
29
+ }
30
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/SHA512Test.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Andreas Fischer <bantu@phpbb.com>
4
+ * @copyright 2014 Andreas Fischer
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ class Unit_Crypt_Hash_SHA512Test extends Unit_Crypt_Hash_TestCase
9
+ {
10
+ public function getInstance()
11
+ {
12
+ return new Crypt_Hash('sha512');
13
+ }
14
+
15
+ /**
16
+ * @dataProvider hashData()
17
+ */
18
+ public function testHash($message, $result)
19
+ {
20
+ $this->assertHashesTo($this->getInstance(), $message, $result);
21
+ }
22
+
23
+ public static function hashData()
24
+ {
25
+ return array(
26
+ array(
27
+ '',
28
+ 'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'
29
+ ),
30
+ array(
31
+ 'The quick brown fox jumps over the lazy dog',
32
+ '07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6',
33
+ ),
34
+ array(
35
+ 'The quick brown fox jumps over the lazy dog.',
36
+ '91ea1245f20d46ae9a037a989f54f1f790f0a47607eeb8a14d12890cea77a1bbc6c7ed9cf205e67b7f2b8fd4c7dfd3a7a8617e45f3c463d481c7e586c39ac1ed',
37
+ ),
38
+ );
39
+ }
40
+
41
+ /**
42
+ * @dataProvider hmacData()
43
+ */
44
+ public function testHMAC($key, $message, $result)
45
+ {
46
+ $this->assertHMACsTo($this->getInstance(), $key, $message, $result);
47
+ }
48
+
49
+ public static function hmacData()
50
+ {
51
+ return array(
52
+ // RFC 4231
53
+ // Test Case 1
54
+ array(
55
+ pack('H*', '0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b'),
56
+ pack('H*', '4869205468657265'),
57
+ '87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cdedaa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854',
58
+ ),
59
+ // Test Case 2
60
+ array(
61
+ pack('H*', '4a656665'),
62
+ pack('H*', '7768617420646f2079612077616e7420666f72206e6f7468696e673f'),
63
+ '164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea2505549758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737',
64
+ ),
65
+ // Test Case 3
66
+ array(
67
+ pack('H*', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'),
68
+ pack('H*', 'dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'),
69
+ 'fa73b0089d56a284efb0f0756c890be9b1b5dbdd8ee81a3655f83e33b2279d39bf3e848279a722c806b485a47e67c807b946a337bee8942674278859e13292fb',
70
+ ),
71
+ // Test Case 4
72
+ array(
73
+ pack('H*', '0102030405060708090a0b0c0d0e0f10111213141516171819'),
74
+ pack('H*', 'cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd'),
75
+ 'b0ba465637458c6990e5a8c5f61d4af7e576d97ff94b872de76f8050361ee3dba91ca5c11aa25eb4d679275cc5788063a5f19741120c4f2de2adebeb10a298dd',
76
+ ),
77
+ );
78
+ }
79
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/SHA512_96Test.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Andreas Fischer <bantu@phpbb.com>
4
+ * @copyright 2014 Andreas Fischer
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ class Unit_Crypt_Hash_SHA512_96Test extends Unit_Crypt_Hash_SHA512Test
9
+ {
10
+ public function getInstance()
11
+ {
12
+ return new Crypt_Hash('sha512-96');
13
+ }
14
+
15
+ /**
16
+ * @dataProvider hashData()
17
+ */
18
+ public function testHash($message, $longResult)
19
+ {
20
+ parent::testHash($message, substr($longResult, 0, 24));
21
+ }
22
+
23
+ /**
24
+ * @dataProvider hmacData()
25
+ */
26
+ public function testHMAC($key, $message, $longResult)
27
+ {
28
+ parent::testHMAC($key, $message, substr($longResult, 0, 24));
29
+ }
30
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/TestCase.php ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Andreas Fischer <bantu@phpbb.com>
4
+ * @copyright 2012 Andreas Fischer
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ require_once 'Crypt/Hash.php';
9
+
10
+ abstract class Unit_Crypt_Hash_TestCase extends PhpseclibTestCase
11
+ {
12
+ public static function setUpBeforeClass()
13
+ {
14
+ if (!defined('CRYPT_HASH_MODE')) {
15
+ define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_INTERNAL);
16
+ }
17
+ }
18
+
19
+ public function setUp()
20
+ {
21
+ if (defined('CRYPT_HASH_MODE') && CRYPT_HASH_MODE !== CRYPT_HASH_MODE_INTERNAL) {
22
+ $this->markTestSkipped(
23
+ 'Skipping test because CRYPT_HASH_MODE is not defined as CRYPT_HASH_MODE_INTERNAL.'
24
+ );
25
+ }
26
+ }
27
+
28
+ protected function assertHashesTo(Crypt_Hash $hash, $message, $expected)
29
+ {
30
+ $this->assertEquals(
31
+ strtolower($expected),
32
+ bin2hex($hash->hash($message)),
33
+ sprintf("Failed asserting that '%s' hashes to '%s'.", $message, $expected)
34
+ );
35
+ }
36
+
37
+ protected function assertHMACsTo(Crypt_Hash $hash, $key, $message, $expected)
38
+ {
39
+ $hash->setKey($key);
40
+
41
+ $this->assertEquals(
42
+ strtolower($expected),
43
+ bin2hex($hash->hash($message)),
44
+ sprintf(
45
+ "Failed asserting that '%s' HMACs to '%s' with key '%s'.",
46
+ $message,
47
+ $expected,
48
+ $key
49
+ )
50
+ );
51
+ }
52
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/RC2Test.php ADDED
@@ -0,0 +1,127 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Andreas Fischer <bantu@phpbb.com>
4
+ * @copyright MMXIII Andreas Fischer
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ require_once 'Crypt/RC2.php';
9
+
10
+ class Unit_Crypt_RC2Test extends PhpseclibTestCase
11
+ {
12
+ var $engines = array(
13
+ CRYPT_ENGINE_INTERNAL => 'internal',
14
+ CRYPT_ENGINE_MCRYPT => 'mcrypt',
15
+ CRYPT_ENGINE_OPENSSL => 'OpenSSL',
16
+ );
17
+
18
+ public function engineVectors()
19
+ {
20
+ // tests from https://tools.ietf.org/html/rfc2268#page-8
21
+ $tests = array(
22
+ // key, effective key length, plaintext, ciphertext
23
+ array('0000000000000000', 63, '0000000000000000', 'ebb773f993278eff'),
24
+ array('ffffffffffffffff', 64, 'ffffffffffffffff', '278b27e42e2f0d49'),
25
+ array('3000000000000000', 64, '1000000000000001', '30649edf9be7d2c2'),
26
+ array('88', 64, '0000000000000000', '61a8a244adacccf0'),
27
+ array('88bca90e90875a', 64, '0000000000000000', '6ccf4308974c267f'),
28
+ array('88bca90e90875a7f0f79c384627bafb2', 64, '0000000000000000', '1a807d272bbe5db1'),
29
+ array('88bca90e90875a7f0f79c384627bafb2', 128, '0000000000000000', '2269552ab0f85ca6'),
30
+ array('88bca90e90875a7f0f79c384627bafb216f80a6f85920584c42fceb0be255daf1e', 129, '0000000000000000', '5b78d3a43dfff1f1')
31
+ );
32
+
33
+ $result = array();
34
+
35
+ foreach ($this->engines as $engine => $engineName) {
36
+ foreach ($tests as $test) {
37
+ $result[] = array($engine, $engineName, $test[0], $test[1], $test[2], $test[3]);
38
+ }
39
+ }
40
+
41
+ return $result;
42
+ }
43
+
44
+ // this test is just confirming RC2's key expansion
45
+ public function testEncryptPadding()
46
+ {
47
+ $rc2 = new Crypt_RC2(CRYPT_MODE_ECB);
48
+
49
+ // unlike Crypt_AES / Crypt_Rijndael, when you tell Crypt_RC2 that the key length is 128-bits the key isn't null padded to that length.
50
+ // instead, RC2 key expansion is used to extend it out to that length. this isn't done for AES / Rijndael since that doesn't define any
51
+ // sort of key expansion algorithm.
52
+
53
+ // admittedly, phpseclib is inconsistent in this regard. RC4 and Blowfish support arbitrary key lengths between a certain range, as well,
54
+ // and they don't have any way to set the key length. but then again, neither do those algorithms have their own key expansion algorithm,
55
+ // whereas RC2 does. and technically, AES / Rijndael (and even Twofish) don't support arbitrary key lengths - they support variable key
56
+ // lengths. so in some ways, i suppose this inconsistency somewhat makes sense, although the fact that Crypt_Twofish doesn't have a
57
+ // setKeyLength() function whereas Crypt_AES / Crypt_Rijndael do not is, itself, an inconsistency.
58
+
59
+ // but that said, Crypt_RC2 is inconsistent in other ways: if you pass a 128-bit (16-byte) key to it via setKey() the key is not treated
60
+ // as a 128-bit key but rather as a 1024-bit key and is expanded accordingly, not via null padding, but via RC2's key expansion algorithm.
61
+
62
+ // this behavior is in contrast to mcrypt, which extends keys via null padding to 1024 bits. it is also in contrast to OpenSSL, which
63
+ // extends keys, via null padding, to 128 bits. mcrypt's approach seems preferable as one can simulate 128 bit keys by using RC2's
64
+ // key expansion algorithm to extend the key to 1024 bits and then changing the first byte of the new key with an inverse pitable mapping.
65
+ // in contrast, to my knowledge, there is no technique for expanding a key less than 128 bits to 128 bits, via RC2 key expansion. the only
66
+ // scenario in that regard is null padding.
67
+
68
+ // simple truncation is insufficient, since, quoting RFC2268, "the purpose of the key-expansion algorithm [in RC2] is to modify the key buffer
69
+ // so that each bit of the expanded key depends in a complicated way on every bit of the supplied input key".
70
+
71
+ // now, to OpenSSL's credit, null padding is internally consistent with OpenSSL. OpenSSL only supports fixed length keys. For rc2, rc4 and
72
+ // bf (blowfish), all keys are 128 bits (or are null padded / truncated accordingly). to use 40-bit or 64-bit keys with RC4 with OpenSSL you
73
+ // don't use the rc4 algorithm - you use the rc4-40 or rc4-64 algorithm. and similarly, it's not aes-cbc that you use - it's either aes-128-cbc
74
+ // or aes-192-cbc or aes-256-cbc. this is in contrast to mcrypt, which (with the exception of RC2) actually supports variable and arbitrary
75
+ // length keys.
76
+
77
+ // superficially, it seens like Rijndael would be another exception to mcrypt's key length handling, but it in fact is not. the reason being that,
78
+ // with mcrypt, when you specify MCRYPT_RIJNDAEL_128 or MCRYPT_RIJNDAEL_192 or MCRYPT_RIJNDAEL_256 the numbers at the end aren't referring to the
79
+ // key length, but rather, the block length. ie. Rijndael, unlike most block ciphers, doesn't just have a variable (but not arbitrary) key length -
80
+ // it also has a variable block length. AES's block length, however, is not variable, so technically, only MCRYPT_RIJNDAEL_128 is AES.
81
+
82
+ $rc2->setKey(str_repeat('d', 16), 128);
83
+
84
+ $rc2->setPreferredEngine(CRYPT_ENGINE_INTERNAL);
85
+ $internal = $rc2->encrypt('d');
86
+
87
+ $result = pack('H*', 'e3b36057f4821346');
88
+ $this->assertEquals($result, $internal, 'Failed asserting that the internal engine produced the correct result');
89
+
90
+ $rc2->setPreferredEngine(CRYPT_ENGINE_MCRYPT);
91
+ if ($rc2->getEngine() == CRYPT_ENGINE_MCRYPT) {
92
+ $mcrypt = $rc2->encrypt('d');
93
+ $this->assertEquals($result, $mcrypt, 'Failed asserting that the mcrypt engine produced the correct result');
94
+ } else {
95
+ self::markTestSkipped('Unable to initialize mcrypt engine');
96
+ }
97
+
98
+ $rc2->setPreferredEngine(CRYPT_ENGINE_OPENSSL);
99
+ if ($rc2->getEngine() == CRYPT_ENGINE_OPENSSL) {
100
+ $openssl = $rc2->encrypt('d');
101
+ $this->assertEquals($result, $openssl, 'Failed asserting that the OpenSSL engine produced the correct result');
102
+ } else {
103
+ self::markTestSkipped('Unable to initialize OpenSSL engine');
104
+ }
105
+ }
106
+
107
+ /**
108
+ * @dataProvider engineVectors
109
+ */
110
+ public function testVectors($engine, $engineName, $key, $keyLen, $plaintext, $ciphertext)
111
+ {
112
+ $rc2 = new Crypt_RC2();
113
+ $rc2->disablePadding();
114
+ $rc2->setKeyLength($keyLen);
115
+ $rc2->setKey(pack('H*', $key)); // could also do $rc2->setKey(pack('H*', $key), $keyLen)
116
+ if (!$rc2->isValidEngine($engine)) {
117
+ self::markTestSkipped('Unable to initialize ' . $engineName . ' engine');
118
+ }
119
+ $rc2->setPreferredEngine($engine);
120
+
121
+ $result = bin2hex($rc2->encrypt(pack('H*', $plaintext)));
122
+ $this->assertEquals($result, $ciphertext, "Failed asserting that $plaintext yielded expected output in $engineName engine");
123
+
124
+ $result = bin2hex($rc2->decrypt(pack('H*', $ciphertext)));
125
+ $this->assertEquals($result, $plaintext, "Failed asserting that decrypted result yielded $plaintext as a result in $engineName engine");
126
+ }
127
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/RC4Test.php ADDED
@@ -0,0 +1,250 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Jim Wigginton <terrafrost@php.net>
4
+ * @copyright 2014 Jim Wigginton
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ require_once 'Crypt/RC4.php';
9
+
10
+ class Unit_Crypt_RC4Test extends PhpseclibTestCase
11
+ {
12
+ public function engineVectors()
13
+ {
14
+ $engines = array(
15
+ CRYPT_ENGINE_INTERNAL => 'internal',
16
+ CRYPT_ENGINE_MCRYPT => 'mcrypt',
17
+ CRYPT_ENGINE_OPENSSL => 'OpenSSL',
18
+ );
19
+ // tests from https://tools.ietf.org/html/rfc6229
20
+ $tests = array(
21
+ array(
22
+ 'key' => pack('H*', '0102030405'), // 40-bit key
23
+ 'output' => array(
24
+ array('offset' => 0, 'result' => 'b2396305f03dc027ccc3524a0a1118a8'),
25
+ array('offset' => 16, 'result' => '6982944f18fc82d589c403a47a0d0919'),
26
+ array('offset' => 240, 'result' => '28cb1132c96ce286421dcaadb8b69eae'),
27
+ array('offset' => 256, 'result' => '1cfcf62b03eddb641d77dfcf7f8d8c93'),
28
+ array('offset' => 496, 'result' => '42b7d0cdd918a8a33dd51781c81f4041'),
29
+ array('offset' => 512, 'result' => '6459844432a7da923cfb3eb4980661f6'),
30
+ array('offset' => 752, 'result' => 'ec10327bde2beefd18f9277680457e22'),
31
+ array('offset' => 768, 'result' => 'eb62638d4f0ba1fe9fca20e05bf8ff2b'),
32
+ array('offset' => 1008, 'result' => '45129048e6a0ed0b56b490338f078da5'),
33
+ array('offset' => 1024, 'result' => '30abbcc7c20b01609f23ee2d5f6bb7df'),
34
+ array('offset' => 1520, 'result' => '3294f744d8f9790507e70f62e5bbceea'),
35
+ array('offset' => 1536, 'result' => 'd8729db41882259bee4f825325f5a130'),
36
+ array('offset' => 2032, 'result' => '1eb14a0c13b3bf47fa2a0ba93ad45b8b'),
37
+ array('offset' => 2048, 'result' => 'cc582f8ba9f265e2b1be9112e975d2d7'),
38
+ array('offset' => 3056, 'result' => 'f2e30f9bd102ecbf75aaade9bc35c43c'),
39
+ array('offset' => 3072, 'result' => 'ec0e11c479dc329dc8da7968fe965681'),
40
+ array('offset' => 4080, 'result' => '068326a2118416d21f9d04b2cd1ca050'),
41
+ array('offset' => 4096, 'result' => 'ff25b58995996707e51fbdf08b34d875')
42
+ )
43
+ ),
44
+ array(
45
+ 'key' => pack('H*', '01020304050607'), // 56-bit key
46
+ 'output' => array(
47
+ array('offset' => 0, 'result' => '293f02d47f37c9b633f2af5285feb46b'),
48
+ array('offset' => 16, 'result' => 'e620f1390d19bd84e2e0fd752031afc1'),
49
+ array('offset' => 240, 'result' => '914f02531c9218810df60f67e338154c'),
50
+ array('offset' => 256, 'result' => 'd0fdb583073ce85ab83917740ec011d5'),
51
+ array('offset' => 496, 'result' => '75f81411e871cffa70b90c74c592e454'),
52
+ array('offset' => 512, 'result' => '0bb87202938dad609e87a5a1b079e5e4'),
53
+ array('offset' => 752, 'result' => 'c2911246b612e7e7b903dfeda1dad866'),
54
+ array('offset' => 768, 'result' => '32828f91502b6291368de8081de36fc2'),
55
+ array('offset' => 1008, 'result' => 'f3b9a7e3b297bf9ad804512f9063eff1'),
56
+ array('offset' => 1024, 'result' => '8ecb67a9ba1f55a5a067e2b026a3676f'),
57
+ array('offset' => 1520, 'result' => 'd2aa902bd42d0d7cfd340cd45810529f'),
58
+ array('offset' => 1536, 'result' => '78b272c96e42eab4c60bd914e39d06e3'),
59
+ array('offset' => 2032, 'result' => 'f4332fd31a079396ee3cee3f2a4ff049'),
60
+ array('offset' => 2048, 'result' => '05459781d41fda7f30c1be7e1246c623'),
61
+ array('offset' => 3056, 'result' => 'adfd3868b8e51485d5e610017e3dd609'),
62
+ array('offset' => 3072, 'result' => 'ad26581c0c5be45f4cea01db2f3805d5'),
63
+ array('offset' => 4080, 'result' => 'f3172ceffc3b3d997c85ccd5af1a950c'),
64
+ array('offset' => 4096, 'result' => 'e74b0b9731227fd37c0ec08a47ddd8b8')
65
+ )
66
+ ),
67
+ array(
68
+ 'key' => pack('H*', '0102030405060708'), // 64-bit key
69
+ 'output' => array(
70
+ array('offset' => 0, 'result' => '97ab8a1bf0afb96132f2f67258da15a8'),
71
+ array('offset' => 16, 'result' => '8263efdb45c4a18684ef87e6b19e5b09'),
72
+ array('offset' => 240, 'result' => '9636ebc9841926f4f7d1f362bddf6e18'),
73
+ array('offset' => 256, 'result' => 'd0a990ff2c05fef5b90373c9ff4b870a'),
74
+ array('offset' => 496, 'result' => '73239f1db7f41d80b643c0c52518ec63'),
75
+ array('offset' => 512, 'result' => '163b319923a6bdb4527c626126703c0f'),
76
+ array('offset' => 752, 'result' => '49d6c8af0f97144a87df21d91472f966'),
77
+ array('offset' => 768, 'result' => '44173a103b6616c5d5ad1cee40c863d0'),
78
+ array('offset' => 1008, 'result' => '273c9c4b27f322e4e716ef53a47de7a4'),
79
+ array('offset' => 1024, 'result' => 'c6d0e7b226259fa9023490b26167ad1d'),
80
+ array('offset' => 1520, 'result' => '1fe8986713f07c3d9ae1c163ff8cf9d3'),
81
+ array('offset' => 1536, 'result' => '8369e1a965610be887fbd0c79162aafb'),
82
+ array('offset' => 2032, 'result' => '0a0127abb44484b9fbef5abcae1b579f'),
83
+ array('offset' => 2048, 'result' => 'c2cdadc6402e8ee866e1f37bdb47e42c'),
84
+ array('offset' => 3056, 'result' => '26b51ea37df8e1d6f76fc3b66a7429b3'),
85
+ array('offset' => 3072, 'result' => 'bc7683205d4f443dc1f29dda3315c87b'),
86
+ array('offset' => 4080, 'result' => 'd5fa5a3469d29aaaf83d23589db8c85b'),
87
+ array('offset' => 4096, 'result' => '3fb46e2c8f0f068edce8cdcd7dfc5862')
88
+ )
89
+ ),
90
+ array(
91
+ 'key' => pack('H*', '0102030405060708090a'), // 80-bit key
92
+ 'output' => array(
93
+ array('offset' => 0, 'result' => 'ede3b04643e586cc907dc21851709902'),
94
+ array('offset' => 16, 'result' => '03516ba78f413beb223aa5d4d2df6711'),
95
+ array('offset' => 240, 'result' => '3cfd6cb58ee0fdde640176ad0000044d'),
96
+ array('offset' => 256, 'result' => '48532b21fb6079c9114c0ffd9c04a1ad'),
97
+ array('offset' => 496, 'result' => '3e8cea98017109979084b1ef92f99d86'),
98
+ array('offset' => 512, 'result' => 'e20fb49bdb337ee48b8d8dc0f4afeffe'),
99
+ array('offset' => 752, 'result' => '5c2521eacd7966f15e056544bea0d315'),
100
+ array('offset' => 768, 'result' => 'e067a7031931a246a6c3875d2f678acb'),
101
+ array('offset' => 1008, 'result' => 'a64f70af88ae56b6f87581c0e23e6b08'),
102
+ array('offset' => 1024, 'result' => 'f449031de312814ec6f319291f4a0516'),
103
+ array('offset' => 1520, 'result' => 'bdae85924b3cb1d0a2e33a30c6d79599'),
104
+ array('offset' => 1536, 'result' => '8a0feddbac865a09bcd127fb562ed60a'),
105
+ array('offset' => 2032, 'result' => 'b55a0a5b51a12a8be34899c3e047511a'),
106
+ array('offset' => 2048, 'result' => 'd9a09cea3ce75fe39698070317a71339'),
107
+ array('offset' => 3056, 'result' => '552225ed1177f44584ac8cfa6c4eb5fc'),
108
+ array('offset' => 3072, 'result' => '7e82cbabfc95381b080998442129c2f8'),
109
+ array('offset' => 4080, 'result' => '1f135ed14ce60a91369d2322bef25e3c'),
110
+ array('offset' => 4096, 'result' => '08b6be45124a43e2eb77953f84dc8553')
111
+ )
112
+ ),
113
+ array(
114
+ 'key' => pack('H*', '0102030405060708090a0b0c0d0e0f10'), // 128-bit key
115
+ 'output' => array(
116
+ array('offset' => 0, 'result' => '9ac7cc9a609d1ef7b2932899cde41b97'),
117
+ array('offset' => 16, 'result' => '5248c4959014126a6e8a84f11d1a9e1c'),
118
+ array('offset' => 240, 'result' => '065902e4b620f6cc36c8589f66432f2b'),
119
+ array('offset' => 256, 'result' => 'd39d566bc6bce3010768151549f3873f'),
120
+ array('offset' => 496, 'result' => 'b6d1e6c4a5e4771cad79538df295fb11'),
121
+ array('offset' => 512, 'result' => 'c68c1d5c559a974123df1dbc52a43b89'),
122
+ array('offset' => 752, 'result' => 'c5ecf88de897fd57fed301701b82a259'),
123
+ array('offset' => 768, 'result' => 'eccbe13de1fcc91c11a0b26c0bc8fa4d'),
124
+ array('offset' => 1008, 'result' => 'e7a72574f8782ae26aabcf9ebcd66065'),
125
+ array('offset' => 1024, 'result' => 'bdf0324e6083dcc6d3cedd3ca8c53c16'),
126
+ array('offset' => 1520, 'result' => 'b40110c4190b5622a96116b0017ed297'),
127
+ array('offset' => 1536, 'result' => 'ffa0b514647ec04f6306b892ae661181'),
128
+ array('offset' => 2032, 'result' => 'd03d1bc03cd33d70dff9fa5d71963ebd'),
129
+ array('offset' => 2048, 'result' => '8a44126411eaa78bd51e8d87a8879bf5'),
130
+ array('offset' => 3056, 'result' => 'fabeb76028ade2d0e48722e46c4615a3'),
131
+ array('offset' => 3072, 'result' => 'c05d88abd50357f935a63c59ee537623'),
132
+ array('offset' => 4080, 'result' => 'ff38265c1642c1abe8d3c2fe5e572bf8'),
133
+ array('offset' => 4096, 'result' => 'a36a4c301ae8ac13610ccbc12256cacc')
134
+ )
135
+ ),
136
+ array(
137
+ 'key' => pack('H*', '0102030405060708090a0b0c0d0e0f101112131415161718'), // 192-bit key
138
+ 'output' => array(
139
+ array('offset' => 0, 'result' => '0595e57fe5f0bb3c706edac8a4b2db11'),
140
+ array('offset' => 16, 'result' => 'dfde31344a1af769c74f070aee9e2326'),
141
+ array('offset' => 240, 'result' => 'b06b9b1e195d13d8f4a7995c4553ac05'),
142
+ array('offset' => 256, 'result' => '6bd2378ec341c9a42f37ba79f88a32ff'),
143
+ array('offset' => 496, 'result' => 'e70bce1df7645adb5d2c4130215c3522'),
144
+ array('offset' => 512, 'result' => '9a5730c7fcb4c9af51ffda89c7f1ad22'),
145
+ array('offset' => 752, 'result' => '0485055fd4f6f0d963ef5ab9a5476982'),
146
+ array('offset' => 768, 'result' => '591fc66bcda10e452b03d4551f6b62ac'),
147
+ array('offset' => 1008, 'result' => '2753cc83988afa3e1688a1d3b42c9a02'),
148
+ array('offset' => 1024, 'result' => '93610d523d1d3f0062b3c2a3bbc7c7f0'),
149
+ array('offset' => 1520, 'result' => '96c248610aadedfeaf8978c03de8205a'),
150
+ array('offset' => 1536, 'result' => '0e317b3d1c73b9e9a4688f296d133a19'),
151
+ array('offset' => 2032, 'result' => 'bdf0e6c3cca5b5b9d533b69c56ada120'),
152
+ array('offset' => 2048, 'result' => '88a218b6e2ece1e6246d44c759d19b10'),
153
+ array('offset' => 3056, 'result' => '6866397e95c140534f94263421006e40'),
154
+ array('offset' => 3072, 'result' => '32cb0a1e9542c6b3b8b398abc3b0f1d5'),
155
+ array('offset' => 4080, 'result' => '29a0b8aed54a132324c62e423f54b4c8'),
156
+ array('offset' => 4096, 'result' => '3cb0f3b5020a98b82af9fe154484a168')
157
+ )
158
+ ),
159
+ array(
160
+ 'key' => pack('H*', '0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20'), // 256-bit key
161
+ 'output' => array(
162
+ array('offset' => 0, 'result' => 'eaa6bd25880bf93d3f5d1e4ca2611d91'),
163
+ array('offset' => 16, 'result' => 'cfa45c9f7e714b54bdfa80027cb14380'),
164
+ array('offset' => 240, 'result' => '114ae344ded71b35f2e60febad727fd8'),
165
+ array('offset' => 256, 'result' => '02e1e7056b0f623900496422943e97b6'),
166
+ array('offset' => 496, 'result' => '91cb93c787964e10d9527d999c6f936b'),
167
+ array('offset' => 512, 'result' => '49b18b42f8e8367cbeb5ef104ba1c7cd'),
168
+ array('offset' => 752, 'result' => '87084b3ba700bade955610672745b374'),
169
+ array('offset' => 768, 'result' => 'e7a7b9e9ec540d5ff43bdb12792d1b35'),
170
+ array('offset' => 1008, 'result' => 'c799b596738f6b018c76c74b1759bd90'),
171
+ array('offset' => 1024, 'result' => '7fec5bfd9f9b89ce6548309092d7e958'),
172
+ array('offset' => 1520, 'result' => '40f250b26d1f096a4afd4c340a588815'),
173
+ array('offset' => 1536, 'result' => '3e34135c79db010200767651cf263073'),
174
+ array('offset' => 2032, 'result' => 'f656abccf88dd827027b2ce917d464ec'),
175
+ array('offset' => 2048, 'result' => '18b62503bfbc077fbabb98f20d98ab34'),
176
+ array('offset' => 3056, 'result' => '8aed95ee5b0dcbfbef4eb21d3a3f52f9'),
177
+ array('offset' => 3072, 'result' => '625a1ab00ee39a5327346bddb01a9c18'),
178
+ array('offset' => 4080, 'result' => 'a13a7c79c7e119b5ab0296ab28c300b9'),
179
+ array('offset' => 4096, 'result' => 'f3e4c0a2e02d1d01f7f0a74618af2b48')
180
+ )
181
+ )
182
+ );
183
+
184
+ $result = array();
185
+
186
+ foreach ($engines as $engine => $engineName) {
187
+ foreach ($tests as $test) {
188
+ foreach ($test['output'] as $output) {
189
+ $result[] = array($engine, $engineName, $test['key'], $output['offset'], $output['result']);
190
+ }
191
+ }
192
+ }
193
+
194
+ return $result;
195
+ }
196
+
197
+ /**
198
+ * @dataProvider engineVectors
199
+ */
200
+ public function testVectors($engine, $engineName, $key, $offset, $expected)
201
+ {
202
+ $rc4 = new Crypt_RC4();
203
+ $rc4->setPreferredEngine($engine);
204
+ $rc4->setKey($key);
205
+ if ($rc4->getEngine() != $engine) {
206
+ self::markTestSkipped('Unable to initialize ' . $engineName . ' engine for ' . (strlen($key) * 8) . '-bit key');
207
+ }
208
+ $result = $rc4->encrypt(str_repeat("\0", $offset + 16));
209
+ $this->assertEquals(bin2hex(substr($result, -16)), $expected, "Failed asserting that key $key yielded expected output at offset $offset in $engineName engine");
210
+ }
211
+
212
+ public function testKeySizes()
213
+ {
214
+ $objects = $engines = array();
215
+ $temp = new Crypt_RC4(CRYPT_MODE_CTR);
216
+ $temp->setPreferredEngine(CRYPT_ENGINE_INTERNAL);
217
+ $objects[] = $temp;
218
+ $engines[] = 'internal';
219
+
220
+ if ($temp->isValidEngine(CRYPT_ENGINE_MCRYPT)) {
221
+ $temp = new Crypt_RC4(CRYPT_MODE_CTR);
222
+ $temp->setPreferredEngine(CRYPT_ENGINE_MCRYPT);
223
+ $objects[] = $temp;
224
+ $engines[] = 'mcrypt';
225
+ }
226
+
227
+ if ($temp->isValidEngine(CRYPT_ENGINE_OPENSSL)) {
228
+ $temp = new Crypt_RC4(CRYPT_MODE_CTR);
229
+ $temp->setPreferredEngine(CRYPT_ENGINE_OPENSSL);
230
+ $objects[] = $temp;
231
+ $engines[] = 'OpenSSL';
232
+ }
233
+
234
+ if (count($objects) < 2) {
235
+ self::markTestSkipped('Unable to initialize two or more engines');
236
+ }
237
+
238
+ $plaintext = str_repeat('.', 100);
239
+
240
+ for ($keyLen = 5; $keyLen <= 256; $keyLen++) {
241
+ $key = crypt_random_string($keyLen);
242
+ $objects[0]->setKey($key);
243
+ $ref = $objects[0]->encrypt($plaintext);
244
+ for ($i = 1; $i < count($objects); $i++) {
245
+ $objects[$i]->setKey($key);
246
+ $this->assertEquals($ref, $objects[$i]->encrypt($plaintext), "Failed asserting that {$engines[$i]} yields the same output as the internal engine with a key size of $keyLen");
247
+ }
248
+ }
249
+ }
250
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/RSA/LoadKeyTest.php ADDED
@@ -0,0 +1,422 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Jim Wigginton <terrafrost@php.net>
4
+ * @copyright 2013 Jim Wigginton
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ require_once 'Crypt/RSA.php' ;
9
+
10
+ class Unit_Crypt_RSA_LoadKeyTest extends PhpseclibTestCase
11
+ {
12
+ public function testBadKey()
13
+ {
14
+ $rsa = new Crypt_RSA();
15
+
16
+ $key = 'zzzzzzzzzzzzzz';
17
+
18
+ $this->assertFalse($rsa->loadKey($key));
19
+ }
20
+
21
+ public function testPKCS1Key()
22
+ {
23
+ $rsa = new Crypt_RSA();
24
+
25
+ $key = '-----BEGIN RSA PRIVATE KEY-----
26
+ MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
27
+ wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
28
+ 1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
29
+ 3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2
30
+ pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX
31
+ GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il
32
+ AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF
33
+ L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k
34
+ X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
35
+ U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
36
+ 37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=
37
+ -----END RSA PRIVATE KEY-----';
38
+
39
+ $this->assertTrue($rsa->loadKey($key));
40
+ $this->assertInternalType('string', $rsa->getPrivateKey());
41
+ }
42
+
43
+ public function testPKCS1SpacesKey()
44
+ {
45
+ $rsa = new Crypt_RSA();
46
+
47
+ $key = '-----BEGIN RSA PRIVATE KEY-----
48
+ MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
49
+ wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
50
+ 1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
51
+ 3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2
52
+ pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX
53
+ GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il
54
+ AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF
55
+ L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k
56
+ X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
57
+ U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
58
+ 37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=
59
+ -----END RSA PRIVATE KEY-----';
60
+ $key = str_replace(array("\r", "\n", "\r\n"), ' ', $key);
61
+
62
+ $this->assertTrue($rsa->loadKey($key));
63
+ $this->assertInternalType('string', $rsa->getPrivateKey());
64
+ }
65
+
66
+ public function testPKCS1NoHeaderKey()
67
+ {
68
+ $rsa = new Crypt_RSA();
69
+
70
+ $key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
71
+ wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
72
+ 1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
73
+ 3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2
74
+ pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX
75
+ GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il
76
+ AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF
77
+ L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k
78
+ X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
79
+ U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
80
+ 37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=';
81
+
82
+ $this->assertTrue($rsa->loadKey($key));
83
+ $this->assertInternalType('string', $rsa->getPrivateKey());
84
+ }
85
+
86
+ public function testPKCS1NoWhitespaceNoHeaderKey()
87
+ {
88
+ $rsa = new Crypt_RSA();
89
+
90
+ $key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp' .
91
+ 'wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5' .
92
+ '1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh' .
93
+ '3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2' .
94
+ 'pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX' .
95
+ 'GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il' .
96
+ 'AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF' .
97
+ 'L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k' .
98
+ 'X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl' .
99
+ 'U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ' .
100
+ '37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=';
101
+
102
+ $this->assertTrue($rsa->loadKey($key));
103
+ $this->assertInternalType('string', $rsa->getPrivateKey());
104
+ }
105
+
106
+ public function testRawPKCS1Key()
107
+ {
108
+ $rsa = new Crypt_RSA();
109
+
110
+ $key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp' .
111
+ 'wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5' .
112
+ '1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh' .
113
+ '3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2' .
114
+ 'pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX' .
115
+ 'GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il' .
116
+ 'AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF' .
117
+ 'L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k' .
118
+ 'X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl' .
119
+ 'U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ' .
120
+ '37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=';
121
+ $key = base64_decode($key);
122
+
123
+ $this->assertTrue($rsa->loadKey($key));
124
+ $this->assertInternalType('string', $rsa->getPrivateKey());
125
+ }
126
+
127
+ public function testLoadPKCS8PrivateKey()
128
+ {
129
+ $rsa = new Crypt_RSA();
130
+ $rsa->setPassword('password');
131
+
132
+ $key = '-----BEGIN ENCRYPTED PRIVATE KEY-----
133
+ MIIE6TAbBgkqhkiG9w0BBQMwDgQIcWWgZeQYPTcCAggABIIEyLoa5b3ktcPmy4VB
134
+ hHkpHzVSEsKJPmQTUaQvUwIp6+hYZeuOk78EPehrYJ/QezwJRdyBoD51oOxqWCE2
135
+ fZ5Wf6Mi/9NIuPyqQccP2ouErcMAcDLaAx9C0Ot37yoG0S6hOZgaxqwnCdGYKHgS
136
+ 7cYUv40kLOJmTOJlHJbatfXHocrHcHkCBJ1q8wApA1KVQIZsqmyBUBuwbrfFwpC9
137
+ d/R674XxCWJpXvU63VNZRFYUvd7YEWCrdSeleb99p0Vn1kxI5463PXurgs/7GPiO
138
+ SLSdX44DESP9l7lXenC4gbuT8P0xQRDzGrB5l9HHoV3KMXFODWTMnLcp1nuhA0OT
139
+ fPS2yzT9zJgqHiVKWgcUUJ5uDelVfnsmDhnh428p0GBFbniH07qREC9kq78UqQNI
140
+ Kybp4jQ4sPs64zdYm/VyLWtAYz8QNAKHLcnPwmTPr/XlJmox8rlQhuSQTK8E+lDr
141
+ TOKpydrijN3lF+pgyUuUj6Ha8TLMcOOwqcrpBig4SGYoB56gjAO0yTE9uCPdBakj
142
+ yxi3ksn51ErigGM2pGMNcVdwkpJ/x+DEBBO0auy3t9xqM6LK8pwNcOT1EWO+16zY
143
+ 79LVSavc49t+XxMc3Xasz/G5xQgD1FBp6pEnsg5JhTTG/ih6Y/DQD8z3prjC3qKc
144
+ rpL4NA9KBI/IF1iIXlrfmN/zCKbBuEOEGqwcHBDHPySZbhL2XLSpGcK/NBl1bo1Z
145
+ G+2nUTauoC67Qb0+fnzTcvOiMNAbHMiqkirs4anHX33MKL2gR/3dp8ca9hhWWXZz
146
+ Mkk2FK9sC/ord9F6mTtvTiOSDzpiEhb94uTxXqBhIbsrGXCUUd0QQN5s2dmW2MfS
147
+ M35KeSv2rwDGzC1+Qf3MhHGIZDqoQwuZEzM5yHHafCatAbZd2sjaFWegg0r2ca7a
148
+ eZkZFj3ZuDYXJFnL82guOASh7rElWO2Ys7ncXAKnaV3WkkF+JDv/CUHr+Q/h6Ae5
149
+ qEvgubTCVSYHzRP37XJItlcdywTIcTY+t6jymmyEBJ66LmUoD47gt/vDUSbhT6Oa
150
+ GlcZ+MZGlUnPOSq4YknOgwKH8izboY4UgVCrmXvlaZYQhZemNDkVbpYVDf+s6cPf
151
+ tJwVoZf+qf2SsRTUsI10isoIzCyGw2ie8kmipdP434Z/99uVU3zxD6raNDlyp33q
152
+ FWMgpr2JU6NVAla7N51g7Jk8VjIIn7SvCYyWkmvv4kLB1UHl3NFqYb9YuIZUaDyt
153
+ j/NMcKMLLOaEorRZ2N2mDNoihMxMf8J3J9APnzUigAtaalGKNOrd2Fom5OVADePv
154
+ Tb5sg1uVQzfcpFrjIlLVh+2cekX0JM84phbMpHmm5vCjjfYvUvcMy0clCf0x3jz6
155
+ LZf5Fzc8xbZmpse5OnOrsDLCNh+SlcYOzsagSZq4TgvSeI9Tr4lv48dLJHCCcYKL
156
+ eymS9nhlCFuuHbi7zI7edcI49wKUW1Sj+kvKq3LMIEkMlgzqGKA6JqSVxHP51VH5
157
+ FqV4aKq70H6dNJ43bLVRPhtF5Bip5P7k/6KIsGTPUd54PHey+DuWRjitfheL0G2w
158
+ GF/qoZyC1mbqdtyyeWgHtVbJVUORmpbNnXOII9duEqBUNDiO9VSZNn/8h/VsYeAB
159
+ xryZaRDVmtMuf/OZBQ==
160
+ -----END ENCRYPTED PRIVATE KEY-----';
161
+
162
+ $this->assertTrue($rsa->loadKey($key));
163
+ $this->assertInternalType('string', $rsa->getPrivateKey());
164
+ }
165
+
166
+ public function testSavePKCS8PrivateKey()
167
+ {
168
+ $rsa = new Crypt_RSA();
169
+
170
+ $key = '-----BEGIN RSA PRIVATE KEY-----
171
+ MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
172
+ wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
173
+ 1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
174
+ 3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2
175
+ pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX
176
+ GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il
177
+ AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF
178
+ L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k
179
+ X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
180
+ U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
181
+ 37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=
182
+ -----END RSA PRIVATE KEY-----';
183
+ $rsa->setPassword('password');
184
+
185
+ $this->assertTrue($rsa->loadKey($key));
186
+
187
+ $key = $rsa->getPrivateKey(CRYPT_RSA_PRIVATE_FORMAT_PKCS8);
188
+ $this->assertInternalType('string', $key);
189
+
190
+ $this->assertTrue($rsa->loadKey($key));
191
+ }
192
+
193
+ public function testPubKey1()
194
+ {
195
+ $rsa = new Crypt_RSA();
196
+
197
+ $key = '-----BEGIN RSA PUBLIC KEY-----
198
+ MIIBCgKCAQEA61BjmfXGEvWmegnBGSuS+rU9soUg2FnODva32D1AqhwdziwHINFa
199
+ D1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBSEVCgJjtHAGZIm5GL/KA86KDp/CwDFMSw
200
+ luowcXwDwoyinmeOY9eKyh6aY72xJh7noLBBq1N0bWi1e2i+83txOCg4yV2oVXhB
201
+ o8pYEJ8LT3el6Smxol3C1oFMVdwPgc0vTl25XucMcG/ALE/KNY6pqC2AQ6R2ERlV
202
+ gPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeulmCpGSynXNcpZ/06+vofGi/2MlpQZNhH
203
+ Ao8eayMp6FcvNucIpUndo1X8dKMv3Y26ZQIDAQAB
204
+ -----END RSA PUBLIC KEY-----';
205
+
206
+ $this->assertTrue($rsa->loadKey($key));
207
+ $this->assertInternalType('string', $rsa->getPublicKey());
208
+ $this->assertFalse($rsa->getPrivateKey());
209
+ }
210
+
211
+ public function testPubKey2()
212
+ {
213
+ $rsa = new Crypt_RSA();
214
+
215
+ $key = '-----BEGIN PUBLIC KEY-----
216
+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA61BjmfXGEvWmegnBGSuS
217
+ +rU9soUg2FnODva32D1AqhwdziwHINFaD1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBS
218
+ EVCgJjtHAGZIm5GL/KA86KDp/CwDFMSwluowcXwDwoyinmeOY9eKyh6aY72xJh7n
219
+ oLBBq1N0bWi1e2i+83txOCg4yV2oVXhBo8pYEJ8LT3el6Smxol3C1oFMVdwPgc0v
220
+ Tl25XucMcG/ALE/KNY6pqC2AQ6R2ERlVgPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeu
221
+ lmCpGSynXNcpZ/06+vofGi/2MlpQZNhHAo8eayMp6FcvNucIpUndo1X8dKMv3Y26
222
+ ZQIDAQAB
223
+ -----END PUBLIC KEY-----';
224
+
225
+ $this->assertTrue($rsa->loadKey($key));
226
+ $this->assertInternalType('string', $rsa->getPublicKey());
227
+ $this->assertFalse($rsa->getPrivateKey());
228
+ }
229
+
230
+ public function testSSHPubKey()
231
+ {
232
+ $rsa = new Crypt_RSA();
233
+
234
+ $key = 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4e' .
235
+ 'CZ0FPqri0cb2JZfXJ/DgYSF6vUpwmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMS' .
236
+ 'GkVb1/3j+skZ6UtW+5u09lHNsj6tQ51s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZw== ' .
237
+ 'phpseclib-generated-key';
238
+
239
+ $this->assertTrue($rsa->loadKey($key));
240
+ $this->assertInternalType('string', $rsa->getPublicKey());
241
+ $this->assertFalse($rsa->getPrivateKey());
242
+ }
243
+
244
+
245
+ public function testSSHPubKeyFingerprint()
246
+ {
247
+ $rsa = new Crypt_RSA();
248
+ $key = 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD9K+ebJRMN10kGanhi6kDz6EYFqZttZWZh0'.
249
+ 'YoEbIbbere9N2Yvfc7oIoCTHYowhXND9WSJaIs1E4bx0085CZnofWaqf4NbZTzAh18iZup08ec'.
250
+ 'COB5gJVS1efpgVSviDF2L7jxMsBVoOBfqsmA8m0RwDDVezyWvw4y+STSuVzu2jI8EfwN7ZFGC6'.
251
+ 'Yo8m/Z94qIGzqPYGKJLuCeidB0TnUE0ZtzOJTiOc/WoTm/NOpCdfQZEJggd1MOTi+QUnqRu4Wu'.
252
+ 'b6wYtY/q/WtUFr3nK+x0lgOtokhnJfRR/6fnmC1CztPnIT4BWK81VGKWONAxuhMyQ5XChyu6S9'.
253
+ 'mWG5tUlUI/5';
254
+ $this->assertTrue($rsa->loadKey($key));
255
+ $this->assertSame($rsa->getPublicKeyFingerprint('md5'), 'bd:2c:2f:31:b9:ef:b8:f8:ad:fc:40:a6:94:4f:28:82');
256
+ $this->assertSame($rsa->getPublicKeyFingerprint('sha256'), 'N9sV2uSNZEe8TITODku0pRI27l+Zk0IY0TrRTw3ozwM');
257
+ }
258
+
259
+ public function testSetPrivate()
260
+ {
261
+ $rsa = new Crypt_RSA();
262
+
263
+ $key = '-----BEGIN RSA PUBLIC KEY-----
264
+ MIIBCgKCAQEA61BjmfXGEvWmegnBGSuS+rU9soUg2FnODva32D1AqhwdziwHINFa
265
+ D1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBSEVCgJjtHAGZIm5GL/KA86KDp/CwDFMSw
266
+ luowcXwDwoyinmeOY9eKyh6aY72xJh7noLBBq1N0bWi1e2i+83txOCg4yV2oVXhB
267
+ o8pYEJ8LT3el6Smxol3C1oFMVdwPgc0vTl25XucMcG/ALE/KNY6pqC2AQ6R2ERlV
268
+ gPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeulmCpGSynXNcpZ/06+vofGi/2MlpQZNhH
269
+ Ao8eayMp6FcvNucIpUndo1X8dKMv3Y26ZQIDAQAB
270
+ -----END RSA PUBLIC KEY-----';
271
+
272
+ $this->assertTrue($rsa->loadKey($key));
273
+ $this->assertTrue($rsa->setPrivateKey());
274
+ $this->assertGreaterThanOrEqual(1, strlen("$rsa"));
275
+ $this->assertFalse($rsa->getPublicKey());
276
+ }
277
+
278
+ /**
279
+ * make phpseclib generated XML keys be unsigned. this may need to be reverted
280
+ * if it is later learned that XML keys are, in fact, supposed to be signed
281
+ * @group github468
282
+ */
283
+ public function testUnsignedXML()
284
+ {
285
+ $rsa = new Crypt_RSA();
286
+
287
+ $key = '<RSAKeyValue>
288
+ <Modulus>v5OxcEgxPUfa701NpxnScCmlRkbwSGBiTWobHkIWZEB+AlRTHaVoZg/D8l6YzR7VdQidG6gF+nuUMjY75dBXgY/XcyVq0Hccf1jTfgARuNuq4GGG3hnCJVi2QsOgcf9R7TeXn+p1RKIhjQoWCiEQeEBTotNbJhcabNcPGSEJw+s=</Modulus>
289
+ <Exponent>AQAB</Exponent>
290
+ </RSAKeyValue>';
291
+
292
+ $rsa->loadKey($key);
293
+ $rsa->setPublicKey();
294
+ $newkey = $rsa->getPublicKey(CRYPT_RSA_PUBLIC_FORMAT_XML);
295
+
296
+ $this->assertSame(preg_replace('#\s#', '', $key), preg_replace('#\s#', '', $newkey));
297
+ }
298
+
299
+ /**
300
+ * @group github468
301
+ */
302
+ public function testSignedPKCS1()
303
+ {
304
+ $rsa = new Crypt_RSA();
305
+
306
+ $key = '-----BEGIN PUBLIC KEY-----
307
+ MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/k7FwSDE9R9rvTU2nGdJwKaVG
308
+ RvBIYGJNahseQhZkQH4CVFMdpWhmD8PyXpjNHtV1CJ0bqAX6e5QyNjvl0FeBj9dz
309
+ JWrQdxx/WNN+ABG426rgYYbeGcIlWLZCw6Bx/1HtN5ef6nVEoiGNChYKIRB4QFOi
310
+ 01smFxps1w8ZIQnD6wIDAQAB
311
+ -----END PUBLIC KEY-----';
312
+
313
+ $rsa->loadKey($key);
314
+ $rsa->setPublicKey();
315
+ $newkey = $rsa->getPublicKey();
316
+
317
+ $this->assertSame(preg_replace('#\s#', '', $key), preg_replace('#\s#', '', $newkey));
318
+ }
319
+
320
+ /**
321
+ * @group github861
322
+ */
323
+ public function testPKCS8Only()
324
+ {
325
+ $rsa = new Crypt_RSA();
326
+
327
+ $key = '-----BEGIN PRIVATE KEY-----
328
+ MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKB0yPMAbUHKqJxP
329
+ 5sjG9AOrQSAYNDc34NsnZ1tsi7fZ9lHlBaKZ6gjm2U9q+/qCKv2BuGINxWo2CMJp
330
+ DHNY0QTt7hThr3B4U62z1CWWGnfLhFtHKH6jNYYOGc4x0jgT88uSrKFvUOLhjkjW
331
+ bURmJMpN+OjLJuZQZ7uwoqtT3IEDAgMBAAECgYBaElS/fEzYst/Fp2DA8lYGPTs4
332
+ vf2JxbdWrp7phlxEH3mTbUGljkr/Jj90wnSiojFpz0jm2h4oyh5Oq9OOaJwkCYcu
333
+ 2lcHJvFlhR2XEJpd1bHHcvDwZHdUjSpnO8kvwQtjuTnho2ntRzAA4wIJVSd7Tynj
334
+ 0IFEKmzhSKIvIIeN8QJBANLa10R1vs+YqpLdpAuc6Z9GYhHuh1TysBPw2xNtw3Xf
335
+ tGPx4/53eQ0RwiHdw9Opgt8CBHErD6KzziflfxUrIXkCQQDCz4t01qYWT43kxS6k
336
+ TcnZb/obho6akGc8C1hSxFIIGUa9hAhMpY2W6GXeGpv5TZtEJZIJE1VHTLvcLSGm
337
+ ILNbAkEAgq9mWqULxYket3Yt1ZDEb5Zk9C49rJXaMhHHBoyyZ51mJcfngnE0Erid
338
+ 9PWJCOf4GBYdALMqtrHwpWOlV05rKQJAd6Tz50w1MRqm8MvRe4Ny5qIJH4Kibncl
339
+ kBD/q8V7BBJSCe7fEgPTU81jUudQx+pL46yXZg+DnoiYD/9/3QHUZQJBAMBiKiZ7
340
+ qMnD/pkHR/NFcYSYShUJS0cHyryVl7/eCclsQlZTRdnVTtKF9xPGTQC8fK0G7BDN
341
+ Z2sKniRCcDT1ZP4=
342
+ -----END PRIVATE KEY-----';
343
+
344
+ $result = $rsa->loadKey($key, CRYPT_RSA_PRIVATE_FORMAT_PKCS8);
345
+
346
+ $this->assertTrue($result);
347
+ }
348
+
349
+ /**
350
+ * @group github960
351
+ */
352
+ public function testSetLoad()
353
+ {
354
+ $key = 'PuTTY-User-Key-File-2: ssh-rsa
355
+ Encryption: aes256-cbc
356
+ Comment: phpseclib-generated-key
357
+ Public-Lines: 4
358
+ AAAAB3NzaC1yc2EAAAADAQABAAAAgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4
359
+ eCZ0FPqri0cb2JZfXJ/DgYSF6vUpwmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RK
360
+ NUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ51s1SPrCBkedbNf0Tp0GbMJDy
361
+ R4e9T04ZZw==
362
+ Private-Lines: 8
363
+ llx04QMegql0/nE5RvcJSrGrodxt6ytuv/JX2caeZBUyQwQc2WBNYagLHyHPM9jI
364
+ 9OUWz59FLhjFXZMDNMoUXxVmjwQpOAaVPYNxxFM9AF6/NXFji64K7huD9n4A+kLn
365
+ sHwMLWPR5a/tZA0r05DZNz9ULA3mQu7Hz4EQ8ifu3uTPJuTmL51x6RmudYKysb20
366
+ fM8VzC3ukvzzRh0pujUVTr/yQdmciASVFnZlt4xQy+ZEOVUAOfwjd//AFfXTvk6x
367
+ 7A45rNlU/uicHwLgoY1APvRHCFxw7F+uVW5L4mSX7NNzqBKkZ+1qpQTAfQvIfEIb
368
+ 444+CXsgIyOpqt6VxJH2u6elAtE1wau3YaFR8Alm8m97rFYzRi3oDP5NZYkTCWSV
369
+ EOpSeghXSs7IilJu8I6/sB1w5dakdeBSFkIynrlFXkO0uUw+QJJWjxY8SypzgIuP
370
+ DzduF6XsQrCyo6dnIpGQCQ==
371
+ Private-MAC: 35134b7434bf828b21404099861d455e660e8740';
372
+
373
+ $rsa = new Crypt_RSA();
374
+ $rsa->setPrivateKey($key);
375
+ $rsa->loadKey($key);
376
+
377
+ $rsa = new Crypt_RSA();
378
+ $rsa->loadKey($key);
379
+ $rsa->setPrivateKey();
380
+ $rsa->loadKey($rsa);
381
+ }
382
+
383
+ /**
384
+ * @group github980
385
+ */
386
+ public function testZeroComponents()
387
+ {
388
+ $key = '-----BEGIN RSA PRIVATE KEY-----
389
+ MIGaAgEAAkEAt5yrcHAAjhglnCEn6yecMWPeUXcMyo0+itXrLlkpcKIIyqPw546b
390
+ GThhlb1ppX1ySX/OUA4jSakHekNP5eWPawIBAAJAW6/aVD05qbsZHMvZuS2Aa5Fp
391
+ NNj0BDlf38hOtkhDzz/hkYb+EBYLLvldhgsD0OvRNy8yhz7EjaUqLCB0juIN4QIB
392
+ AAIBAAIBAAIBAAIBAA==
393
+ -----END RSA PRIVATE KEY-----';
394
+
395
+ $rsa = new Crypt_RSA();
396
+ $rsa->loadKey($key);
397
+ $rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
398
+ $rsa->setHash('md5');
399
+ $rsa->setMGFHash('md5');
400
+
401
+ $rsa->sign('zzzz');
402
+ }
403
+
404
+ public function testGoodBad()
405
+ {
406
+ $rsa = new Crypt_RSA();
407
+
408
+ $key = '-----BEGIN RSA PUBLIC KEY-----
409
+ MIIBCgKCAQEA61BjmfXGEvWmegnBGSuS+rU9soUg2FnODva32D1AqhwdziwHINFa
410
+ D1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBSEVCgJjtHAGZIm5GL/KA86KDp/CwDFMSw
411
+ luowcXwDwoyinmeOY9eKyh6aY72xJh7noLBBq1N0bWi1e2i+83txOCg4yV2oVXhB
412
+ o8pYEJ8LT3el6Smxol3C1oFMVdwPgc0vTl25XucMcG/ALE/KNY6pqC2AQ6R2ERlV
413
+ gPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeulmCpGSynXNcpZ/06+vofGi/2MlpQZNhH
414
+ Ao8eayMp6FcvNucIpUndo1X8dKMv3Y26ZQIDAQAB
415
+ -----END RSA PUBLIC KEY-----';
416
+
417
+ $this->assertTrue($rsa->loadKey($key));
418
+ $this->assertInternalType('string', $rsa->getPublicKey());
419
+ $this->assertFalse($rsa->loadKey('zzz'));
420
+ $this->assertFalse($rsa->getPublicKey());
421
+ }
422
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/RSA/ModeTest.php ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Jim Wigginton <terrafrost@php.net>
4
+ * @copyright 2013 Jim Wigginton
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ require_once 'Crypt/RSA.php' ;
9
+
10
+ class Unit_Crypt_RSA_ModeTest extends PhpseclibTestCase
11
+ {
12
+ public function testEncryptionModeNone()
13
+ {
14
+ $plaintext = 'a';
15
+
16
+ $rsa = new Crypt_RSA();
17
+
18
+ $privatekey = '-----BEGIN RSA PRIVATE KEY-----
19
+ MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
20
+ wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
21
+ 1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
22
+ 3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2
23
+ pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX
24
+ GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il
25
+ AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF
26
+ L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k
27
+ X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
28
+ U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
29
+ 37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=
30
+ -----END RSA PRIVATE KEY-----';
31
+ $rsa->loadKey($privatekey);
32
+ $rsa->loadKey($rsa->getPublicKey());
33
+
34
+ $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_NONE);
35
+ $expected = '105b92f59a87a8ad4da52c128b8c99491790ef5a54770119e0819060032fb9e772ed6772828329567f3d7e9472154c1530f8156ba7fd732f52ca1c06' .
36
+ '5a3f5ed8a96c442e4662e0464c97f133aed31262170201993085a589565d67cc9e727e0d087e3b225c8965203b271e38a499c92fc0d6502297eca712' .
37
+ '4d04bd467f6f1e7c';
38
+ $expected = pack('H*', $expected);
39
+ $result = $rsa->encrypt($plaintext);
40
+
41
+ $this->assertEquals($result, $expected);
42
+
43
+ $rsa->loadKey($privatekey);
44
+ $this->assertEquals(trim($rsa->decrypt($result), "\0"), $plaintext);
45
+ }
46
+
47
+ /**
48
+ * @group github768
49
+ */
50
+ public function testPSSSigs()
51
+ {
52
+ $rsa = new Crypt_RSA();
53
+ $rsa->loadKey('-----BEGIN PUBLIC KEY-----
54
+ MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVx
55
+ wTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUpwmJG8wVQZKjeGcjDOL5UlsuusFnc
56
+ CzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ51s1SPrCBkedbNf0T
57
+ p0GbMJDyR4e9T04ZZwIDAQAB
58
+ -----END PUBLIC KEY-----');
59
+
60
+ $sig = pack('H*', '1bd29a1d704a906cd7f726370ce1c63d8fb7b9a620871a05f3141a311c0d6e75fefb5d36dfb50d3ea2d37cd67992471419bfadd35da6e13b494' .
61
+ '058ddc9b568d4cfea13ddc3c62b86a6256f5f296980d1131d3eaec6089069a3de79983f73eae20198a18721338b4a66e9cfe80e4f8e4fcef7a5bead5cbb' .
62
+ 'b8ac4c76adffbc178c');
63
+
64
+ $this->assertTrue($rsa->verify('zzzz', $sig));
65
+ }
66
+
67
+ public function testZeroLengthSalt()
68
+ {
69
+ $plaintext = 'a';
70
+
71
+ $rsa = new Crypt_RSA();
72
+
73
+ $privatekey = '-----BEGIN RSA PRIVATE KEY-----
74
+ MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
75
+ wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
76
+ 1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
77
+ 3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2
78
+ pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX
79
+ GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il
80
+ AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF
81
+ L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k
82
+ X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
83
+ U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
84
+ 37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=
85
+ -----END RSA PRIVATE KEY-----';
86
+ $rsa->loadKey($privatekey);
87
+ $rsa->setSaltLength(0);
88
+
89
+ // Check we generate the correct signature.
90
+ $sig = pack('H*', '0ddfc93548e21d015c0a289a640b3b79aecfdfae045f583c5925b91cc5c399bba181616ad6ae20d9662d966f0eb2fddb550f4733268e34d640f4c9dadcaf25b3c82c42130a5081c6ebad7883331c65b25b6a37ffa7c4233a468dae56180787e2718ed87c48d8d50b72f5850e4a40963b4f36710be250ecef6fe0bb91249261a3');
91
+ $this->assertEquals($sig, $rsa->sign($plaintext));
92
+
93
+ // Check we can verify the signature correctly.
94
+ $rsa->loadKey($rsa->getPublicKey());
95
+ $this->assertTrue($rsa->verify($plaintext, $sig));
96
+ }
97
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/RandomTest.php ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Andreas Fischer <bantu@phpbb.com>
4
+ * @copyright 2014 Andreas Fischer
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ class Unit_Crypt_RandomTest extends PhpseclibTestCase
9
+ {
10
+ public function stringLengthData()
11
+ {
12
+ return array_map(array($this, 'wrap'), array(
13
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 17, 19, 20, 23, 29, 31, 37,
14
+ 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 111, 128, 1000,
15
+ 1024, 10000, 12345, 100000, 123456
16
+ ));
17
+ }
18
+
19
+ /** @dataProvider stringLengthData */
20
+ public function testStringLength($length)
21
+ {
22
+ $this->assertSame(
23
+ $length,
24
+ strlen(crypt_random_string($length)),
25
+ 'Failed asserting that a string of expected length was generated.'
26
+ );
27
+ }
28
+
29
+ /**
30
+ * Takes a set of random values of length 128 bits and asserts all taken
31
+ * values are unique.
32
+ */
33
+ public function testStringUniqueness()
34
+ {
35
+ $values = array();
36
+ for ($i = 0; $i < 10000; ++$i) {
37
+ $rand = crypt_random_string(16);
38
+ $this->assertSame(16, strlen($rand));
39
+ $this->assertArrayNotHasKey(
40
+ $rand,
41
+ $values,
42
+ 'Failed asserting that generated value does not exist in set.'
43
+ );
44
+ $values[$rand] = true;
45
+ }
46
+ }
47
+
48
+ protected function wrap($x)
49
+ {
50
+ // array() is not a function, but $this->wrap() is.
51
+ return array($x);
52
+ }
53
+ }
vendor/phpseclib/phpseclib/tests/Unit/Crypt/TripleDESTest.php ADDED
@@ -0,0 +1,188 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @author Jim Wigginton <terrafrost@php.net>
4
+ * @copyright 2014 Jim Wigginton
5
+ * @license http://www.opensource.org/licenses/mit-license.html MIT License
6
+ */
7
+
8
+ require_once 'Crypt/TripleDES.php';
9
+
10
+ class Unit_Crypt_TripleDESTest extends PhpseclibTestCase
11
+ {
12
+ var $engines = array(
13
+ CRYPT_ENGINE_INTERNAL => 'internal',
14
+ CRYPT_ENGINE_MCRYPT => 'mcrypt',
15
+ CRYPT_ENGINE_OPENSSL => 'OpenSSL',
16
+ );
17
+
18
+ public function engineVectors()
19
+ {
20
+ // tests from http://csrc.nist.gov/publications/nistpubs/800-20/800-20.pdf#page=273
21
+ $tests = array(
22
+ // Table A.1
23
+ // key, plaintext, ciphertext
24
+ array(str_repeat("\x01", 24), pack('H*', '8000000000000000'), pack('H*', '95F8A5E5DD31D900')),
25
+ array(str_repeat("\x01", 24), pack('H*', '4000000000000000'), pack('H*', 'DD7F121CA5015619')),
26
+ array(str_repeat("\x01", 24), pack('H*', '2000000000000000'), pack('H*', '2E8653104F3834EA')),
27
+ array(str_repeat("\x01", 24), pack('H*', '1000000000000000'), pack('H*', '4BD388FF6CD81D4F')),
28
+ array(str_repeat("\x01", 24), pack('H*', '0800000000000000'), pack('H*', '20B9E767B2FB1456')),
29
+ array(str_repeat("\x01", 24), pack('H*', '0400000000000000'), pack('H*', '55579380D77138EF')),
30
+ array(str_repeat("\x01", 24), pack('H*', '0200000000000000'), pack('H*', '6CC5DEFAAF04512F')),
31
+ array(str_repeat("\x01", 24), pack('H*', '0100000000000000'), pack('H*', '0D9F279BA5D87260')),
32
+ array(str_repeat("\x01", 24), pack('H*', '0080000000000000'), pack('H*', 'D9031B0271BD5A0A')),
33
+ array(str_repeat("\x01", 24), pack('H*', '0040000000000000'), pack('H*', '424250B37C3DD951')),
34
+ array(str_repeat("\x01", 24), pack('H*', '0020000000000000'), pack('H*', 'B8061B7ECD9A21E5')),
35
+ array(str_repeat("\x01", 24), pack('H*', '0010000000000000'), pack('H*', 'F15D0F286B65BD28')),
36
+ array(str_repeat("\x01", 24), pack('H*', '0008000000000000'), pack('H*', 'ADD0CC8D6E5DEBA1')),
37
+ array(str_repeat("\x01", 24), pack('H*', '0004000000000000'), pack('H*', 'E6D5F82752AD63D1')),
38
+ array(str_repeat("\x01", 24), pack('H*', '0002000000000000'), pack('H*', 'ECBFE3BD3F591A5E')),
39
+ array(str_repeat("\x01", 24), pack('H*', '0001000000000000'), pack('H*', 'F356834379D165CD')),
40
+ array(str_repeat("\x01", 24), pack('H*', '0000800000000000'), pack('H*', '2B9F982F20037FA9')),
41
+ array(str_repeat("\x01", 24), pack('H*', '0000400000000000'), pack('H*', '889DE068A16F0BE6')),
42
+ array(str_repeat("\x01", 24), pack('H*', '0000200000000000'), pack('H*', 'E19E275D846A1298')),
43
+ array(str_repeat("\x01", 24), pack('H*', '0000100000000000'), pack('H*', '329A8ED523D71AEC')),
44
+ array(str_repeat("\x01", 24), pack('H*', '0000080000000000'), pack('H*', 'E7FCE22557D23C97')),
45
+ array(str_repeat("\x01", 24), pack('H*', '0000040000000000'), pack('H*', '12A9F5817FF2D65D')),
46
+ array(str_repeat("\x01", 24), pack('H*', '0000020000000000'), pack('H*', 'A484C3AD38DC9C19')),
47
+ array(str_repeat("\x01", 24), pack('H*', '0000010000000000'), pack('H*', 'FBE00A8A1EF8AD72')),
48
+ array(str_repeat("\x01", 24), pack('H*', '0000008000000000'), pack('H*', '750D079407521363')),
49
+ array(str_repeat("\x01", 24), pack('H*', '0000004000000000'), pack('H*', '64FEED9C724C2FAF')),
50
+ array(str_repeat("\x01", 24), pack('H*', '0000002000000000'), pack('H*', 'F02B263B328E2B60')),
51
+ array(str_repeat("\x01", 24), pack('H*', '0000001000000000'), pack('H*', '9D64555A9A10B852')),
52
+ array(str_repeat("\x01", 24), pack('H*', '0000000800000000'), pack('H*', 'D106FF0BED5255D7')),
53
+ array(str_repeat("\x01", 24), pack('H*', '0000000400000000'), pack('H*', 'E1652C6B138C64A5')),
54
+ array(str_repeat("\x01", 24), pack('H*', '0000000200000000'), pack('H*', 'E428581186EC8F46')),
55
+ array(str_repeat("\x01", 24), pack('H*', '0000000100000000'), pack('H*', 'AEB5F5EDE22D1A36')),
56
+ array(str_repeat("\x01", 24), pack('H*', '0000000080000000'), pack('H*', 'E943D7568AEC0C5C')),
57
+ array(str_repeat("\x01", 24), pack('H*', '0000000040000000'), pack('H*', 'DF98C8276F54B04B')),
58
+ array(str_repeat("\x01", 24), pack('H*', '0000000020000000'), pack('H*', 'B160E4680F6C696F')),
59
+ array(str_repeat("\x01", 24), pack('H*', '0000000010000000'), pack('H*', 'FA0752B07D9C4AB8')),
60
+ array(str_repeat("\x01", 24), pack('H*', '0000000008000000'), pack('H*', 'CA3A2B036DBC8502')),
61
+ array(str_repeat("\x01", 24), pack('H*', '0000000004000000'), pack('H*', '5E0905517BB59BCF')),
62
+ array(str_repeat("\x01", 24), pack('H*', '0000000002000000'), pack('H*', '814EEB3B91D90726')),
63
+ array(str_repeat("\x01", 24), pack('H*', '0000000001000000'), pack('H*', '4D49DB1532919C9F')),
64
+ array(str_repeat("\x01", 24), pack('H*', '0000000000800000'), pack('H*', '25EB5FC3F8CF0621')),
65
+ array(str_repeat("\x01", 24), pack('H*', '0000000000400000'), pack('H*', 'AB6A20C0620D1C6F')),
66
+ array(str_repeat("\x01", 24), pack('H*', '0000000000200000'), pack('H*', '79E90DBC98F92CCA')),
67
+ array(str_repeat("\x01", 24), pack('H*', '0000000000100000'), pack('H*', '866ECEDD8072BB0E')),
68
+ array(str_repeat("\x01", 24), pack('H*', '0000000000080000'), pack('H*', '8B54536F2F3E64A8')),
69
+ array(str_repeat("\x01", 24), pack('H*', '0000000000040000'), pack('H*', 'EA51D3975595B86B')),
70
+ array(str_repeat("\x01", 24), pack('H*', '0000000000020000'), pack('H*', 'CAFFC6AC4542DE31')),
71
+ array(str_repeat("\x01", 24), pack('H*', '0000000000010000'), pack('H*', '8DD45A2DDF90796C')),
72
+ array(str_repeat("\x01", 24), pack('H*', '0000000000008000'), pack('H*', '1029D55E880EC2D0')),
73
+ array(str_repeat("\x01", 24), pack('H*', '0000000000004000'), pack('H*', '5D86CB23639DBEA9')),
74
+ array(str_repeat("\x01", 24), pack('H*', '0000000000002000'), pack('H*', '1D1CA853AE7C0C5F')),
75
+ array(str_repeat("\x01", 24), pack('H*', '0000000000001000'), pack('H*', 'CE332329248F3228')),
76
+ array(str_repeat("\x01", 24), pack('H*', '0000000000000800'), pack('H*', '8405D1ABE24FB942')),
77
+ array(str_repeat("\x01", 24), pack('H*', '0000000000000400'), pack('H*', 'E643D78090CA4207')),
78
+ array(str_repeat("\x01", 24), pack('H*', '0000000000000200'), pack('H*', '48221B9937748A23')),
79
+ array(str_repeat("\x01", 24), pack('H*', '0000000000000100'), pack('H*', 'DD7C0BBD61FAFD54')),
80
+ array(str_repeat("\x01", 24), pack('H*', '0000000000000080'), pack('H*', '2FBC291A570DB5C4')),
81
+ array(str_repeat("\x01", 24), pack('H*', '0000000000000040'), pack('H*', 'E07C30D7E4E26E12')),
82
+ array(str_repeat("\x01", 24), pack('H*', '0000000000000020'), pack('H*', '0953E2258E8E90A1')),
83
+ array(str_repeat("\x01", 24), pack('H*', '0000000000000010'), pack('H*', '5B711BC4CEEBF2EE')),
84
+ array(str_repeat("\x01", 24), pack('H*', '0000000000000008'), pack('H*', 'CC083F1E6D9E85F6')),
85
+ array(str_repeat("\x01", 24), pack('H*', '0000000000000004'), pack('H*', 'D2FD8867D50D2DFE')),
86
+ array(str_repeat("\x01", 24), pack('H*', '0000000000000002'), pack('H*', '06E7EA22CE92708F')),
87
+ array(str_repeat("\x01", 24), pack('H*', '0000000000000001'), pack('H*', '166B40B44ABA4BD6'))
88
+ );
89
+
90
+ $result = array();
91
+
92
+ foreach ($this->engines as $engine => $engineName) {
93
+ foreach ($tests as $test) {
94
+ $result[] = array($engine, $engineName, $test[0], $test[1], $test[2]);
95
+ }
96
+ }
97
+
98
+ return $result;
99
+ }
100
+
101
+ /**
102
+ * @dataProvider engineVectors
103
+ */
104
+ public function testVectors($engine, $engineName, $key, $plaintext, $expected)
105
+ {
106
+ $des = new Crypt_TripleDES();
107
+ if (!$des->isValidEngine($engine)) {
108
+ self::markTestSkipped('Unable to initialize ' . $engineName . ' engine');
109
+ }
110
+ $des->setPreferredEngine($engine);
111
+ $des->setKey($key);
112
+ $des->disablePadding();
113
+ $result = $des->encrypt($plaintext);
114
+ $plaintext = bin2hex($plaintext);
115
+ $this->assertEquals($result, $expected, "Failed asserting that $plaintext yielded expected output in $engineName engine");
116
+ }
117
+
118
+ public function engineIVVectors()
119
+ {
120
+ $engines = array(
121
+ CRYPT_ENGINE_INTERNAL => 'internal',
122
+ CRYPT_ENGINE_MCRYPT => 'mcrypt',
123
+ CRYPT_ENGINE_OPENSSL => 'OpenSSL',
124
+ );
125
+
126
+ // tests from http://csrc.nist.gov/groups/STM/cavp/documents/des/DESMMT.pdf
127
+ $tests = array(
128
+ // key, iv, plaintext, ciphertext
129
+ array(
130
+ pack('H*', '627f460e08104a10' . '43cd265d5840eaf1' . '313edf97df2a8a8c'),
131
+ pack('H*', '8e29f75ea77e5475'),
132
+ pack('H*', '326a494cd33fe756'),
133
+ pack('H*', 'b22b8d66de970692')),
134
+ array(
135
+ pack('H*', '37ae5ebf46dff2dc' . '0754b94f31cbb385' . '5e7fd36dc870bfae'),
136
+ pack('H*', '3d1de3cc132e3b65'),
137
+ pack('H*', '84401f78fe6c10876d8ea23094ea5309'),
138
+ pack('H*', '7b1f7c7e3b1c948ebd04a75ffba7d2f5'))
139
+ );
140
+
141
+ $result = array();
142
+
143
+ foreach ($engines as $engine => $engineName) {
144
+ foreach ($tests as $test) {
145
+ $result[] = array($engine, $engineName, $test[0], $test[1], $test[2], $test[3]);
146
+ }
147
+ }
148
+
149
+ return $result;
150
+ }
151
+
152
+ /**
153
+ * @dataProvider engineIVVectors
154
+ */
155
+ public function testVectorsWithIV($engine, $engineName, $key, $iv, $plaintext, $expected)
156
+ {
157
+ $des = new Crypt_TripleDES();
158
+ if (!$des->isValidEngine($engine)) {
159
+ self::markTestSkipped('Unable to initialize ' . $engineName . ' engine');
160
+ }
161
+ $des->setPreferredEngine($engine);
162
+ $des->setKey($key);
163
+ $des->setIV($iv);
164
+ $des->disablePadding();
165
+ $result = $des->encrypt($plaintext);
166
+ $plaintext = bin2hex($plaintext);
167
+ $this->assertEquals($result, $expected, "Failed asserting that $plaintext yielded expected output in $engineName engine");
168
+ }
169
+
170
+ public function testInnerChaining()
171
+ {
172
+ // regular CBC returns
173
+ // e089b6d84708c6bc80be6c2da82bd19a79ffe11f02933ac1
174
+ $expected = 'e089b6d84708c6bc6f04c8971121603d7be2861efae0f3f5';
175
+
176
+ $des = new Crypt_TripleDES(CRYPT_DES_MODE_3CBC);
177
+ $des->setKey('abcdefghijklmnopqrstuvwx');
178
+
179
+ foreach ($this->engines as $engine => $engineName) {
180
+ $des->setPreferredEngine($engine);
181
+ if (!$des->isValidEngine($engine)) {
182
+ self::markTestSkipped('Unable to initialize ' . $engineName . ' engine');
183
+ }
184
+ $result = bin2hex($des->encrypt(str_repeat('a', 16)));
185
+ $this->assertEquals($result, $expected, "Failed asserting inner chainin worked correctly in $engineName engine");
186
+ }
187
+