');
+ ob_end_clean();
+
+ $request_filesystem_credentials = ('direct' != $filesystem_method && !$filesystem_credentials_are_stored);
+
+ return array(
+ 'request_filesystem_credentials' => $request_filesystem_credentials,
+ 'filesystem_form' => base64_encode($filesystem_form),
+ );
+ }
+
+ /**
+ * Retrieves the backup progress in terms of entities completed. Used primarily by UpdraftCentral
+ * for polling backup progress in the background.
+ *
+ * @param array $params Submitted arguments for the current request
+ * @return array
+ */
+ public function get_backup_progress($params) {
+
+ $nonce = isset($params['nonce']) ? $params['nonce'] : false;
+ $response = array('nonce' => $params['nonce']);
+
+ if (!current_user_can('manage_options')) {
+ $response['status'] = 'error';
+ $response['error_code'] = 'insufficient_permission';
+ } else {
+ global $updraftplus;
+
+ if ($nonce && $updraftplus && is_a($updraftplus, 'UpdraftPlus')) {
+
+ // Check the job is not still running.
+ $jobdata = $updraftplus->jobdata_getarray($nonce);
+
+ if (!empty($jobdata)) {
+ $response['status'] = 'in-progress';
+
+ $file_entities = 0;
+ $db_entities = 0;
+ $processed = 0;
+
+ if (isset($jobdata['backup_database']) && 'no' != $jobdata['backup_database']) {
+ $backup_database = $jobdata['backup_database'];
+ $db_entities += count($backup_database);
+
+ foreach ($backup_database as $whichdb => $info) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable -- In this check we only need the status contained in the $info for now.
+ $status = $info; // For default: 'wp'
+ if (is_array($info)) {
+ $status = $info['status'];
+ }
+
+ if ('finished' == $status) {
+ $processed++;
+ }
+ }
+ }
+
+ if (isset($jobdata['backup_files']) && 'no' != $jobdata['backup_files']) {
+ $file_entities = count($jobdata['job_file_entities']);
+
+ $backup_files = $jobdata['backup_files'];
+ if ('finished' == $backup_files) {
+ $processed += $file_entities;
+ } elseif (isset($jobdata['filecreating_substatus'])) {
+ $substatus = $jobdata['filecreating_substatus'];
+ $processed += max(0, intval($substatus['i']) - 1);
+ }
+ }
+
+ $response['progress'] = array(
+ 'file_entities' => $file_entities,
+ 'db_entities' => $db_entities,
+ 'total_entities' => $file_entities+$db_entities,
+ 'processed' => $processed,
+ 'percentage' => floor(($processed/($file_entities+$db_entities))*100),
+ 'nonce' => $nonce,
+ );
+
+ UpdraftPlus_Options::update_updraft_option('updraft_central_last_backup_progress', $response['progress'], false);
+ } else {
+ $last_backup = UpdraftPlus_Options::get_updraft_option('updraft_last_backup');
+ if ($nonce == $last_backup['backup_nonce']) {
+ $response['status'] = 'finished';
+ $response['progress'] = array('percentage' => 100);
+ $response['progress']['errors'] = $last_backup['errors'];
+ $response['progress']['backup_time'] = $last_backup['backup_time'];
+ $response['progress']['completed_time'] = gmdate('g:ia', $last_backup['backup_time']);
+ $response['progress']['completed_date'] = gmdate('M d, Y', $last_backup['backup_time']);
+
+ $errors = 0;
+ $warnings = 0;
+
+ if (!empty($last_backup['errors']) && is_array($last_backup['errors'])) {
+ foreach ($last_backup['errors'] as $err) {
+ $level = (is_array($err)) ? $err['level'] : 'error';
+ if ('warning' == $level) {
+ $warnings++;
+ } elseif ('error' == $level) {
+ $errors++;
+ }
+ }
+ }
+
+ $response['progress']['has_errors'] = ($errors > 0) ? true : false;
+ $response['progress']['has_warnings'] = ($warnings > 0) ? true : false;
+ } else {
+ // We might be too early to check the `updraft_last_backup` thus, we'll
+ // give it a few rounds to check by setting the status to "in-progress"
+ // and returning the last backup progress (if applicable).
+ $last_progress = UpdraftPlus_Options::get_updraft_option('updraft_central_last_backup_progress');
+
+ $response['status'] = 'in-progress';
+ if (!empty($last_progress) && isset($last_progress['nonce'])) {
+ $response['progress'] = $last_progress;
+
+ if ($nonce == $last_progress['nonce']) {
+ UpdraftPlus_Options::delete_updraft_option('updraft_central_last_backup_progress');
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return $this->_response($response);
+ }
+}
diff --git a/wp-content/plugins/updraftplus/central/modules/comments.php b/wp-content/plugins/updraftplus/central/modules/comments.php
index ca4f3d91..26f97983 100644
--- a/wp-content/plugins/updraftplus/central/modules/comments.php
+++ b/wp-content/plugins/updraftplus/central/modules/comments.php
@@ -347,16 +347,16 @@ public function get_comments($query) {
public function get_comment_filters() {
// Options for comment_types field
$comment_types = apply_filters('admin_comment_types_dropdown', array(
- 'comment' => __('Comments'),
- 'pings' => __('Pings'),
+ 'comment' => __('Comments'),// phpcs:ignore WordPress.WP.I18n.MissingArgDomain -- The string exists within the WordPress core.
+ 'pings' => __('Pings'),// phpcs:ignore WordPress.WP.I18n.MissingArgDomain -- The string exists within the WordPress core.
));
// Options for comment_status field
$comment_statuses = array(
- 'approve' => __('Approve'),
- 'hold' => __('Hold or Unapprove'),
- 'trash' => __('Trash'),
- 'spam' => __('Spam'),
+ 'approve' => __('Approve'),// phpcs:ignore WordPress.WP.I18n.MissingArgDomain -- The string exists within the WordPress core.
+ 'hold' => __('Hold or Unapprove', 'updraftplus'),
+ 'trash' => __('Trash', 'updraftplus'),
+ 'spam' => __('Spam', 'updraftplus'),
);
// Pull sites options if available.
@@ -641,7 +641,7 @@ public function reply_comment($params) {
* The edit_comment function saves new information for the
* currently selected comment.
*
- * @param array $params Specific params for editing a coment
+ * @param array $params Specific params for editing a comment
* @return array
*/
public function edit_comment($params) {
@@ -721,7 +721,7 @@ public function edit_comment($params) {
* - approve comment
* - unapprove comment
* - set comment as spam
- * - move commment to trash
+ * - move comment to trash
* - delete comment permanently
* - unset comment as spam
* - restore comment
diff --git a/wp-content/plugins/updraftplus/central/modules/core.php b/wp-content/plugins/updraftplus/central/modules/core.php
index 9aa8d284..99e1e276 100644
--- a/wp-content/plugins/updraftplus/central/modules/core.php
+++ b/wp-content/plugins/updraftplus/central/modules/core.php
@@ -10,6 +10,70 @@
*/
class UpdraftCentral_Core_Commands extends UpdraftCentral_Commands {
+ /**
+ * Retrieve site icon (favicon)
+ *
+ * @return array An array containing the site icon (favicon) byte string if available
+ */
+ public function get_site_icon() {
+
+ if (!function_exists('get_site_icon_url')) {
+ include_once(ABSPATH.'wp-includes/general-template.php');
+ }
+
+ $site_icon_url = get_site_icon_url();
+
+ // If none is set in WordPress, let's try to search for the default favicon
+ // within the site's directory
+ if (empty($site_icon_url)) {
+
+ if (!function_exists('get_site_url')) {
+ include_once(ABSPATH.'wp-includes/link-template.php');
+ }
+
+ // Common favicon locations to check
+ $potential_locations = array(
+ '/favicon.ico',
+ '/favicon.png',
+ '/favicon.svg',
+ '/assets/favicon.ico',
+ '/assets/images/favicon.ico',
+ '/apple-touch-icon.png',
+ '/apple-touch-icon-precomposed.png',
+ );
+
+ foreach ($potential_locations as $location) {
+ $path = rtrim(ABSPATH, '/\\').$location;
+ if (file_exists($path)) {
+ $site_icon_url = get_site_url().$location;
+ break;
+ }
+ }
+ }
+
+ // We are returning the site icon as byte string instead of URL in order to avoid
+ // any hotlink protection that might prevent us to show the icon in UpdraftCentral
+ // dashboard successfully.
+ $site_icon = '';
+ if (!empty($site_icon_url)) {
+ $content = file_get_contents($site_icon_url);
+
+ $mime_type = '';
+ foreach ($http_response_header as $value) {
+ if (false !== stripos($value, 'content-type:')) {
+ list(, $mime_type) = explode(':', preg_replace('/\s+/', '', $value));
+ break;
+ }
+ }
+
+ if ($content && !empty($mime_type)) {
+ $site_icon = 'data: '.$mime_type.';base64,'.base64_encode($content);
+ }
+ }
+
+ return $this->_response(array('site_icon' => $site_icon));
+ }
+
/**
* Executes a list of submitted commands (multiplexer)
*
@@ -344,7 +408,7 @@ public function site_info() {
global $wpdb;
// THis is included so we can get $wp_version
- @include(ABSPATH.WPINC.'/version.php');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @include(ABSPATH.WPINC.'/version.php');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
$ud_version = is_a($this->ud, 'UpdraftPlus') ? $this->ud->version : 'none';
@@ -352,7 +416,7 @@ public function site_info() {
'versions' => array(
'ud' => $ud_version,
'php' => PHP_VERSION,
- 'wp' => $wp_version,// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
+ 'wp' => $wp_version,// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable -- The variable is defined inside the ABSPATH.WPINC.'/version.php'.
'mysql' => $wpdb->db_version(),
'udrpc_php' => $this->rc->udrpc_version,
),
diff --git a/wp-content/plugins/updraftplus/central/modules/media.php b/wp-content/plugins/updraftplus/central/modules/media.php
index a1790ad3..6f6249f8 100644
--- a/wp-content/plugins/updraftplus/central/modules/media.php
+++ b/wp-content/plugins/updraftplus/central/modules/media.php
@@ -37,7 +37,7 @@ public function _pre_action($command, $data, $extra_info) {// phpcs:ignore Varia
*
* link to udrpc_action main function in class UpdraftCentral_Listener
*/
- public function _post_action($command, $data, $extra_info) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ public function _post_action($command, $data, $extra_info) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable -- Unused parameter is present because the caller from UpdraftCentral_Listener class uses 3 arguments.
// Here, we're restoring to the current (default) blog before we switched
if ($this->switched) restore_current_blog();
}
@@ -118,7 +118,6 @@ public function get_media_items($params) {
$response = array(
'items' => $media_items,
- 'has_image_editor' => $this->has_image_editor(isset($media_items[0]) ? $media_items[0] : null),
'info' => $info,
'options' => array(
'date' => $this->get_date_options(),
@@ -265,6 +264,8 @@ public function get_media_item($params, $extra_info = null, $raw = false) {
'can_restore' => $can_restore,
'image_edit_overwrite' => $image_edit_overwrite
);
+
+ $media->has_image_editor = $this->has_image_editor($media);
}
}
diff --git a/wp-content/plugins/updraftplus/central/modules/plugin.php b/wp-content/plugins/updraftplus/central/modules/plugin.php
index a0ded3f8..0db2ec29 100644
--- a/wp-content/plugins/updraftplus/central/modules/plugin.php
+++ b/wp-content/plugins/updraftplus/central/modules/plugin.php
@@ -19,7 +19,7 @@ class UpdraftCentral_Plugin_Commands extends UpdraftCentral_Commands {
*
* link to udrpc_action main function in class UpdraftCentral_Listener
*/
- public function _pre_action($command, $data, $extra_info) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable -- This function is called from listner.php and $extra_info is being sent.
+ public function _pre_action($command, $data, $extra_info) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable -- This function is called from listener.php and $extra_info is being sent.
// Here we assign the current blog_id to a variable $blog_id
$blog_id = get_current_blog_id();
if (!empty($data['site_id'])) $blog_id = $data['site_id'];
@@ -38,7 +38,7 @@ public function _pre_action($command, $data, $extra_info) {// phpcs:ignore Varia
*
* link to udrpc_action main function in class UpdraftCentral_Listener
*/
- public function _post_action($command, $data, $extra_info) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ public function _post_action($command, $data, $extra_info) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable -- Unused parameter is present because the caller from UpdraftCentral_Listener class uses 3 arguments.
// Here, we're restoring to the current (default) blog before we switched
if ($this->switched) restore_current_blog();
}
@@ -123,7 +123,7 @@ private function _apply_plugin_action($action, $query) {
$result = $this->_generic_error_response('deactivate_plugin_failed', array(
'plugin' => $query['plugin'],
'error_code' => 'deactivate_plugin_failed',
- 'error_message' => __('There appears to be a problem deactivating the intended plugin. Please kindly check your permission and try again.', 'updraftplus'),
+ 'error_message' => __('There appears to be a problem deactivating the intended plugin.', 'updraftplus').' '.__('Please check your permissions and try again.', 'updraftplus'),
'info' => $this->_get_plugin_info($query)
));
}
@@ -207,7 +207,7 @@ private function _apply_plugin_action($action, $query) {
$error_message = end($messages);
} else {
$error_code = 'unable_to_connect_to_filesystem';
- $error_message = __('Unable to connect to the filesystem. Please confirm your credentials.');
+ $error_message = __('Unable to connect to the filesystem.', 'updraftplus').' '.__('Please confirm your credentials.', 'updraftplus');
}
}
}
@@ -564,7 +564,17 @@ private function extract_slug_from_info($key, $info) {
if (!is_array($info) || empty($info) || empty($key)) return '';
$temp = explode('/', $key);
- $slug = !empty($info['TextDomain']) ? $info['TextDomain'] : basename($temp[0], '.php');
+
+ // With WP standards textdomain must always be equal to the plugin's folder name
+ // but for premium plugins this may not always be the case thus, we extract the folder
+ // name from the key as the default slug.
+ $slug = basename($temp[0], '.php');
+
+ if (!empty($info['TextDomain']) && 1 === count($temp)) {
+ // For plugin without folder we compare the extracted slug with the 'TextDomain'
+ // and if they're not equal then 'TextDomain' will assume as slug.
+ if ($slug != $info['TextDomain']) $slug = $info['TextDomain'];
+ }
// If in case the user kept the hello-dolly plugin then we'll make sure that it gets
// the proper slug for it, otherwise, we'll end up with the wrong slug 'hello' instead of
diff --git a/wp-content/plugins/updraftplus/central/modules/posts.php b/wp-content/plugins/updraftplus/central/modules/posts.php
index 5f850bc3..82a652c4 100644
--- a/wp-content/plugins/updraftplus/central/modules/posts.php
+++ b/wp-content/plugins/updraftplus/central/modules/posts.php
@@ -584,7 +584,16 @@ protected function get_editor_styles($timeout) {
require_once($resolver);
}
- if (class_exists('WP_Theme_JSON_Resolver') && WP_Theme_JSON_Resolver::theme_has_support()) {
+ $theme_has_support = false;
+ if (function_exists('wp_theme_has_theme_json')) {
+ $theme_has_support = wp_theme_has_theme_json();
+ } else {
+ if (class_exists('WP_Theme_JSON_Resolver')) {
+ $theme_has_support = WP_Theme_JSON_Resolver::theme_has_support();
+ }
+ }
+
+ if (class_exists('WP_Theme_JSON_Resolver') && $theme_has_support) {
$theme_json = ABSPATH.WPINC.'/class-wp-theme-json.php';
if (!class_exists('WP_Theme_JSON') && file_exists($theme_json)) require_once($theme_json);
@@ -1062,7 +1071,7 @@ public function get_postdata($param, $encode = true) {
$editor = get_userdata($editor_id);
if (!$editor) {
// The user with lock does not exist. This can happen if you created a backup or clone
- // where you excluded the users table during the proces and you restore this backup to
+ // where you excluded the users table during the process and you restore this backup to
// a different site or the user was deleted or removed more recently. Thus, we will
// release the lock so that other users with the right permission can edit the post.
delete_post_meta($post->ID, '_edit_lock');
@@ -1387,14 +1396,14 @@ private function pre_validation($post, $params) {
if (!empty($params['password'])) {
if (!empty($params['sticky'])) {
return $this->_generic_error_response('post_save_failed', array(
- 'message' => __('A post can not be sticky and have a password.'),
+ 'message' => __('A post can not be sticky and have a password.'),// phpcs:ignore WordPress.WP.I18n.MissingArgDomain -- The string exists within the WordPress core.
'args' => $params
));
}
if (!isset($params['sticky']) && is_sticky($post->ID)) {
return $this->_generic_error_response('post_save_failed', array(
- 'message' => __('A sticky post can not be password protected.'),
+ 'message' => __('A sticky post can not be password protected.'),// phpcs:ignore WordPress.WP.I18n.MissingArgDomain -- The string exists within the WordPress core.
'args' => $params
));
}
@@ -1403,7 +1412,7 @@ private function pre_validation($post, $params) {
if (!empty($params['sticky'])) {
if (!isset($params['password']) && post_password_required($post->ID)) {
return $this->_generic_error_response('post_save_failed', array(
- 'message' => __('A password protected post can not be set to sticky.'),
+ 'message' => __('A password protected post can not be set to sticky.'),// phpcs:ignore WordPress.WP.I18n.MissingArgDomain -- The string exists within the WordPress core.
'args' => $params
));
}
diff --git a/wp-content/plugins/updraftplus/central/modules/theme.php b/wp-content/plugins/updraftplus/central/modules/theme.php
index 64a7d581..5f235813 100644
--- a/wp-content/plugins/updraftplus/central/modules/theme.php
+++ b/wp-content/plugins/updraftplus/central/modules/theme.php
@@ -38,7 +38,7 @@ public function _pre_action($command, $data, $extra_info) {// phpcs:ignore Varia
*
* link to udrpc_action main function in class UpdraftCentral_Listener
*/
- public function _post_action($command, $data, $extra_info) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ public function _post_action($command, $data, $extra_info) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable -- Unused parameter is present because the caller from UpdraftCentral_Listener class uses 3 arguments.
// Here, we're restoring to the current (default) blog before we switched
if ($this->switched) restore_current_blog();
}
@@ -98,7 +98,7 @@ private function _apply_theme_action($action, $query) {
$result = $this->_generic_error_response('theme_not_activated', array(
'theme' => $query['theme'],
'error_code' => 'theme_not_activated',
- 'error_message' => __('There appears to be a problem activating or switching to the intended theme. Please kindly check your permission and try again.', 'updraftplus'),
+ 'error_message' => __('There appears to be a problem activating or switching to the intended theme.', 'updraftplus').' '.__('Please check your permissions and try again.', 'updraftplus'),
'info' => $this->_get_theme_info($query['theme'])
));
}
@@ -134,7 +134,7 @@ private function _apply_theme_action($action, $query) {
$result = $this->_generic_error_response('theme_not_enabled', array(
'theme' => $query['theme'],
'error_code' => 'theme_not_enabled',
- 'error_message' => __('There appears to be a problem enabling the intended theme on your network. Please kindly check your permission and try again.', 'updraftplus'),
+ 'error_message' => __('There appears to be a problem enabling the intended theme on your network.', 'updraftplus').' '.__('Please kindly check your permission and try again.', 'updraftplus'),
'info' => $this->_get_theme_info($query['theme'])
));
}
@@ -172,7 +172,7 @@ private function _apply_theme_action($action, $query) {
$result = $this->_generic_error_response('theme_not_disabled', array(
'theme' => $query['theme'],
'error_code' => 'theme_not_disabled',
- 'error_message' => __('There appears to be a problem disabling the intended theme from your network. Please kindly check your permission and try again.', 'updraftplus'),
+ 'error_message' => __('There appears to be a problem disabling the intended theme from your network.', 'updraftplus').' '.__('Please kindly check your permission and try again.', 'updraftplus'),
'info' => $this->_get_theme_info($query['theme'])
));
}
@@ -253,7 +253,7 @@ private function _apply_theme_action($action, $query) {
$error_message = end($messages);
} else {
$error_code = 'unable_to_connect_to_filesystem';
- $error_message = __('Unable to connect to the filesystem. Please confirm your credentials.');
+ $error_message = __('Unable to connect to the filesystem.', 'updraftplus').' '.__('Please confirm your credentials.', 'updraftplus');
}
}
}
diff --git a/wp-content/plugins/updraftplus/central/modules/updates.php b/wp-content/plugins/updraftplus/central/modules/updates.php
index a02d5abe..27c2a944 100644
--- a/wp-content/plugins/updraftplus/central/modules/updates.php
+++ b/wp-content/plugins/updraftplus/central/modules/updates.php
@@ -217,7 +217,7 @@ private function _update_plugin($plugin, $slug) {
return $status;
} else {
- // An unhandled error occured
+ // An unhandled error occurred
$status['error'] = 'update_failed';
return $status;
}
@@ -243,7 +243,7 @@ private function _update_core($core) {
// THis is included so we can get $wp_version
include(ABSPATH.WPINC.'/version.php');
- $status['oldVersion'] = $wp_version;// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
+ $status['oldVersion'] = $wp_version;// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable -- The variable is defined inside the ABSPATH.WPINC.'/version.php'.
if (!current_user_can('update_core')) {
$status['error'] = 'updates_permission_denied';
@@ -254,7 +254,7 @@ private function _update_core($core) {
wp_version_check();
- $locale = get_locale();// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ $locale = get_locale();// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable -- Unused variable is for future use.
$core_update_key = false;
$core_update_latest_version = false;
@@ -262,10 +262,10 @@ private function _update_core($core) {
$get_core_updates = get_core_updates();
// THis is included so we can get $wp_version
- @include(ABSPATH.WPINC.'/version.php');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @include(ABSPATH.WPINC.'/version.php');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
foreach ($get_core_updates as $k => $core_update) {
- if (isset($core_update->version) && version_compare($core_update->version, $wp_version, '>') && version_compare($core_update->version, $core_update_latest_version, '>')) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
+ if (isset($core_update->version) && version_compare($core_update->version, $wp_version, '>') && version_compare($core_update->version, $core_update_latest_version, '>')) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable -- The variable is defined inside the ABSPATH.WPINC.'/version.php'.
$core_update_latest_version = $core_update->version;
$core_update_key = $k;
}
@@ -312,7 +312,7 @@ private function _update_core($core) {
return $status;
} else {
- // An unhandled error occured
+ // An unhandled error occurred
$status['error'] = 'update_failed';
return $status;
}
@@ -408,7 +408,7 @@ private function _update_theme($theme) {
return $status;
} else {
- // An unhandled error occured
+ // An unhandled error occurred
$status['error'] = 'update_failed';
return $status;
}
@@ -448,7 +448,7 @@ private function _update_translation() {
} elseif (is_bool($result) && $result) {
$status['error'] = 'up_to_date';
} else {
- // An unhandled error occured
+ // An unhandled error occurred
$status['error'] = 'update_failed';
}
@@ -663,6 +663,145 @@ private function user_can_update_translations() {
return false;
}
+ /**
+ * Checks basic WP and PHP compatibility for plugins and themes
+ *
+ * @param string $type The type of the entity to check (e.g. 'plugin' or 'theme')
+ * @param array $info Data or information to check
+ * @return array
+ */
+ private function is_compatible($type, $info) {
+ global $updraftcentral_main;
+ $wp_version = $updraftcentral_main->get_wordpress_version();
+
+ $is_compatible = null;
+ $message = '';
+
+ if (isset($info['update'])) {
+
+ // Check for WP Compatibility based from the update information
+ if (!empty($info['update']['requires'])) {
+ if (version_compare($wp_version, $info['update']['requires'], '<')) {
+ $is_compatible = false;
+
+ /* translators: %s: Plugin/theme type */
+ $message1 = sprintf(
+ __('The latest update for this %s is not compatible with the WordPress version installed on the remote site.', 'updraftplus'),
+ $type
+ );
+
+ /* translators: 1: Plugin/theme type, 2: Required WordPress version */
+ $message2 = sprintf(
+ __('The minimum WordPress version supported by this %1$s is %2$s.', 'updraftplus'),
+ $type,
+ $info['update']['requires']
+ );
+
+ $message = esc_attr($message1 . ' ' . $message2);
+ } else {
+ $is_compatible = true;
+ }
+ }
+
+ // Check for PHP Compatibility based from the update information
+ if (!empty($info['update']['requires_php'])) {
+ if (version_compare(PHP_VERSION, $info['update']['requires_php'], '<')) {
+ $is_compatible = false;
+
+ /* translators: %s: Plugin/theme type */
+ $message1 = sprintf(
+ __('The latest update for this %s is not compatible with the PHP version installed on the remote site.', 'updraftplus'),
+ $type
+ );
+
+ /* translators: 1: Plugin/theme type, 2: Required PHP version */
+ $message2 = sprintf(
+ __('The minimum PHP version supported by this %1$s is %2$s.', 'updraftplus'),
+ $type,
+ $info['update']['requires_php']
+ );
+
+ $message = esc_attr($message1 . ' ' . $message2);
+ } else {
+ $is_compatible = true;
+ }
+ }
+
+ // Check whether Plugin/Theme has been tested based from the update information
+ if (!empty($info['update']['tested'])) {
+ if (version_compare($wp_version, $info['update']['tested'], '>')) {
+ $is_compatible = false;
+ // translators: %s: Plugin/theme type
+ $message = esc_attr(sprintf(__('The latest update for this %s has not been tested with the WordPress version installed on the remote site and may have compatibility issues when used.', 'updraftplus'), $type));
+ } else {
+ $is_compatible = true;
+ }
+ }
+ }
+
+ if (is_null($is_compatible)) {
+ $is_compatible = false;
+ $message = esc_attr(sprintf(__('This % does not provide information to allow determining whether the latest version is compatible with your WordPress or PHP installation.', 'updraftplus'), $type).' '.__('If installing, then proceed with caution by first doing a backup.', 'updraftplus'));
+ }
+
+ return array(
+ 'compatible' => $is_compatible,
+ 'compatible_message' => $message,
+ );
+ }
+
+ /**
+ * Retrieve icons for plugin and screenshot for theme
+ *
+ * @param string $type The type of the entity to process (e.g. 'plugin' or 'theme')
+ * @param string $slug The entity slug
+ * @return string
+ */
+ private function get_icons_screenshot($type, $slug) {
+ if (!in_array($type, array('plugin', 'theme'))) return '';
+
+ if ('plugin' == $type) {
+ if (!function_exists('plugins_api') && file_exists(ABSPATH.'wp-admin/includes/plugin-install.php')) {
+ include_once(ABSPATH.'wp-admin/includes/plugin-install.php');
+ }
+
+ // We make sure that the function now exists before we use it because
+ // the definition of this function maybe located in other places given
+ // the varying versions and changes to the WordPress platform.
+ if (function_exists('plugins_api')) {
+ $api = plugins_api('plugin_information', array(
+ 'slug' => $slug,
+ 'fields' => array('icons' => true),
+ ));
+
+ if (!is_wp_error($api) && property_exists($api, 'icons')) {
+ return $api->icons;
+ }
+ }
+
+ } elseif ('theme' == $type) {
+ if (!function_exists('themes_api') && file_exists(ABSPATH.'wp-admin/includes/theme.php')) {
+ include_once(ABSPATH.'wp-admin/includes/theme.php');
+ }
+
+ // We make sure that the function now exists before we use it because
+ // the definition of this function maybe located in other places given
+ // the varying versions and changes to the WordPress platform.
+ if (function_exists('themes_api')) {
+ $api = themes_api('theme_information', array(
+ 'slug' => $slug,
+ 'fields' => array('screenshot_url' => true),
+ ));
+
+ if (!is_wp_error($api) && property_exists($api, 'screenshot_url')) {
+ return $api->screenshot_url;
+ }
+ }
+ }
+
+ return '';
+ }
+
public function get_updates($options) {
// Forcing Elegant Themes (Divi) updates component to load if it exist.
@@ -695,7 +834,7 @@ public function get_updates($options) {
// only return those items for update that has new versions greater than the currently installed version.
if (version_compare($update->Version, $update->update->new_version, '>=')) continue;
- $plugin_updates[] = array(
+ $info = array(
'name' => $update->Name,
'plugin_uri' => $update->PluginURI,
'version' => $update->Version,
@@ -713,8 +852,15 @@ public function get_updates($options) {
'tested' => isset($update->update->tested) ? $update->update->tested : null,
'compatibility' => isset($update->update->compatibility) ? (array) $update->update->compatibility : null,
'sections' => isset($update->update->sections) ? (array) $update->update->sections : null,
+ 'requires' => isset($update->update->requires) ? $update->update->requires : null,
+ 'requires_php' => isset($update->update->requires_php) ? $update->update->requires_php : null,
+ 'icons' => isset($update->update->icons) ? $update->update->icons : $this->get_icons_screenshot('plugin', $update->update->slug),
),
);
+
+ // Check for compatibility and merge result into info
+ $result = $this->is_compatible('plugin', $info);
+ $plugin_updates[] = array_merge($info, $result);
}
}
}
@@ -739,7 +885,7 @@ public function get_updates($options) {
$name = $update->Name;
$theme_name = !empty($name) ? $name : $update->update['theme'];
- $theme_updates[] = array(
+ $info = array(
'name' => $theme_name,
'theme_uri' => $update->ThemeURI,
'version' => $update->Version,
@@ -751,9 +897,16 @@ public function get_updates($options) {
'new_version' => $update->update['new_version'],
'package' => $update->update['package'],
'url' => $update->update['url'],
+ 'tested' => isset($update->update['tested']) ? $update->update['tested'] : null,
+ 'requires' => $update->update['requires'],
+ 'requires_php' => $update->update['requires_php'],
+ 'screenshot_url' => isset($update->update['screenshot_url']) ? $update->update['screenshot_url'] : $this->get_icons_screenshot('theme', $update->update['theme']),
),
);
+ // Check for compatibility and merge result into info
+ $result = $this->is_compatible('theme', $info);
+ $theme_updates[] = array_merge($info, $result);
}
}
}
@@ -777,10 +930,10 @@ public function get_updates($options) {
$core_update_latest_version = false;
// THis is included so we can get $wp_version
- @include(ABSPATH.WPINC.'/version.php');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @include(ABSPATH.WPINC.'/version.php');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
foreach ($get_core_updates as $k => $core_update) {
- if (isset($core_update->version) && version_compare($core_update->version, $wp_version, '>') && version_compare($core_update->version, $core_update_latest_version, '>')) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
+ if (isset($core_update->version) && version_compare($core_update->version, $wp_version, '>') && version_compare($core_update->version, $core_update_latest_version, '>')) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable -- The variable is defined inside the ABSPATH.WPINC.'/version.php'.
$core_update_latest_version = $core_update->version;
$core_update_key = $k;
}
@@ -798,14 +951,14 @@ public function get_updates($options) {
// We're making sure here to only return those items for update that has new
// versions greater than the currently installed version.
- if (version_compare($wp_version, $update->version, '<')) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
+ if (version_compare($wp_version, $update->version, '<')) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable -- The variable is defined inside the ABSPATH.WPINC.'/version.php'.
$core_updates[] = array(
'download' => $update->download,
'version' => $update->version,
'php_version' => $update->php_version,
'mysql_version' => $update->mysql_version,
'installed' => array(
- 'version' => $wp_version,// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
+ 'version' => $wp_version,// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable -- The variable is defined inside the ABSPATH.WPINC.'/version.php'.
'mysql' => $mysql_version,
'php' => PHP_VERSION,
'is_mysql' => $is_mysql,
diff --git a/wp-content/plugins/updraftplus/central/modules/users.php b/wp-content/plugins/updraftplus/central/modules/users.php
index dee61b4d..2679eb18 100644
--- a/wp-content/plugins/updraftplus/central/modules/users.php
+++ b/wp-content/plugins/updraftplus/central/modules/users.php
@@ -475,7 +475,7 @@ public function add_user($user) {
* This function is used to check to make sure the user_id is valid and that it has has user delete permissions.
* If there are no issues, the user is deleted.
*
- * current_user_can: This check the user permissons from UCP
+ * current_user_can: This check the user permissions from UCP
* get_userdata: This get the user data on the data from user_id in the $user_id array
* wp_delete_user: Deleting users on the User ID (user_id) and, IF Specified, the Assigner ID (assign_user_id).
*
diff --git a/wp-content/plugins/updraftplus/central/translations-central.php b/wp-content/plugins/updraftplus/central/translations-central.php
index 981f498a..80cc8ff6 100644
--- a/wp-content/plugins/updraftplus/central/translations-central.php
+++ b/wp-content/plugins/updraftplus/central/translations-central.php
@@ -2,8 +2,6 @@
if (!defined('UPDRAFTCENTRAL_CLIENT_DIR')) die('Security check');
-// Developer note: Please avoid using the 'updraftplus' string within the actual text unless it is being used as a translation domain (e.g. __('TEXT_THAT_NEEDS_TO_BE_TRANSLATED', 'updraftplus'))
-
// Translations for UpdraftCentral
return array(
'updraftcentral_connection' => __('UpdraftCentral Connection', 'updraftplus'),
@@ -12,7 +10,7 @@
'unknown_key' => __('The key referred to was unknown.', 'updraftplus'),
'not_logged_in' => __('You are not logged into this WordPress site in your web browser.', 'updraftplus'),
'must_visit_url' => __('You must visit this URL in the same browser and login session as you created the key in.', 'updraftplus'),
- 'security_check' => __('Security check. ', 'updraftplus'),
+ 'security_check' => __('Security check.', 'updraftplus'),
'must_visit_link' => __('You must visit this link in the same browser and login session as you created the key in.', 'updraftplus'),
'connection_already_made' => __('This connection appears to already have been made.', 'updraftplus'),
'close' => __('Close', 'updraftplus'),
@@ -23,7 +21,7 @@
'press_add_site_button' => __('At your UpdraftCentral dashboard you should press the "Add Site" button then paste the key in the input box.', 'updraftplus'),
'detailed_instructions' => __('Detailed instructions for this can be found at %s', 'updraftplus'),
'control_this_site' => __('You can now control this site via your UpdraftCentral dashboard at %s.', 'updraftplus'),
- 'attempt_to_register_failed' => __('A key was created, but the attempt to register it with %1$s was unsuccessful. You can try again, or try using the alternative connection method if the problem persists. For more information visit %2$s', 'updraftplus'),
+ 'attempt_to_register_failed' => __('A key was created, but the attempt to register it with %1$s was unsuccessful.', 'updraftplus').' '.__('You can try again, or try using the alternative connection method if the problem persists.', 'updraftplus').' '.__('For more information visit %2$s', 'updraftplus'),
'key_created_successfully' => __('Key created successfully.', 'updraftplus'),
'copy_paste_key' => __('You must copy and paste this key now - it cannot be shown again.', 'updraftplus'),
'no_updraftcentral_dashboards' => __('There are no UpdraftCentral dashboards that can currently control this site.', 'updraftplus'),
@@ -69,8 +67,8 @@
'read_more' => __('Read more about it here.', 'updraftplus'),
'create_another_key' => __('Create another key', 'updraftplus'),
'unable_to_connect' => __('Unable to connect to the filesystem', 'updraftplus'),
- 'unable_to_activate' => __('Unable to activate %s successfully. Make sure that this %s is compatible with your remote WordPress version. WordPress version currently installed in your remote website is %s.', 'updraftplus'),
- 'unable_to_install' => __('Unable to install %s. Make sure that the zip file is a valid %s file and a previous version of this %s does not exist. If you wish to overwrite an existing %s then you will have to manually delete it from the %s folder on the remote website and try uploading the file again.', 'updraftplus'),
+ 'unable_to_activate' => __('Unable to activate %s successfully.', 'updraftplus').' '.__('Make sure that this %s is compatible with your remote WordPress version.', 'updraftplus').' '.__('WordPress version currently installed in your remote website is %s.', 'updraftplus'),
+ 'unable_to_install' => __('Unable to install %s.', 'updraftplus').' '.__('Make sure you upload the correct file and that the zip file is a valid %s file (not corrupted) and try uploading the file again.', 'updraftplus'),
'failed_to_attach_media' => __('Failed to attach media.', 'updraftplus'),
'media_attached' => __('Media has been attached to post.', 'updraftplus'),
'failed_to_detach_media' => __('Failed to detach media.', 'updraftplus'),
@@ -88,4 +86,14 @@
'updraftcentral_wizard_empty_url' => __('Please enter the URL where your UpdraftCentral dashboard is hosted.', 'updraftplus'),
'updraftcentral_wizard_invalid_url' => __('Please enter a valid URL e.g http://example.com', 'updraftplus'),
'insufficient_privilege' => __('Sorry, you do not have enough privilege to execute the requested action.', 'updraftplus'),
+ 'copy_to_clipboard' => __('Copy to clipboard', 'updraftplus'),
+ 'key_copied' => __('The key was copied to the clipboard.', 'updraftplus'),
+ 'unable_to_copy' => __('The attempt to copy to the clipboard failed.', 'updraftplus'),
+ 'wpo_not_active' => __('WP_Optimize is not installed or active.', 'updraftplus'),
+ 'log_file_not_exist' => __('Log file does not exist or could not be read.', 'updraftplus'),
+ 'security_check_failed' => __('Security check failed; try refreshing the page.', 'updraftplus').' '.__('If refreshing the page does not help then perhaps you do not have sufficient privilege to manage WP-Optimize.', 'updraftplus'),
+ 'no_such_command' => __('No such command found.', 'updraftplus'),
+ 'command_not_allowed' => __('You are not allowed to run this command.', 'updraftplus'),
+ 'command_not_found' => __('The command is either not found or not allowed.', 'updraftplus'),
+ 'network_admin_only' => __('The command can only be executed by a network admin.', 'updraftplus'),
);
diff --git a/wp-content/plugins/updraftplus/central/updraftplus.php b/wp-content/plugins/updraftplus/central/updraftplus.php
index 1daae5e3..d460053e 100644
--- a/wp-content/plugins/updraftplus/central/updraftplus.php
+++ b/wp-content/plugins/updraftplus/central/updraftplus.php
@@ -39,6 +39,7 @@ public function __construct() {
parent::__construct();
add_action('updraftplus_debugtools_dashboard', array($this, 'debugtools_dashboard'), 20);
+ add_action('updraftplus_load_translations_for_udcentral', array($this, 'load_updraftplus_translations'));
$this->maybe_initialize_required_objects();
}
@@ -267,10 +268,15 @@ private function maybe_initialize_required_objects() {
updraft_try_include_file('includes/class-filesystem-functions.php', 'require_once');
}
}
+ }
+ /**
+ * Load translations which are based on UpdraftPlus domain text
+ */
+ public function load_updraftplus_translations() {
// Load updraftplus translations
if (defined('UPDRAFTCENTRAL_CLIENT_DIR') && file_exists(UPDRAFTCENTRAL_CLIENT_DIR.'/translations-central.php')) {
- $this->translations = include_once(UPDRAFTCENTRAL_CLIENT_DIR.'/translations-central.php');
+ $this->translations = include(UPDRAFTCENTRAL_CLIENT_DIR.'/translations-central.php');
}
}
}
diff --git a/wp-content/plugins/updraftplus/central/wp-optimize.php b/wp-content/plugins/updraftplus/central/wp-optimize.php
index e32ab862..7d4f4d3b 100644
--- a/wp-content/plugins/updraftplus/central/wp-optimize.php
+++ b/wp-content/plugins/updraftplus/central/wp-optimize.php
@@ -37,11 +37,7 @@ public static function instance() {
*/
public function __construct() {
parent::__construct();
-
- // Load wp-optimize translations
- if (defined('UPDRAFTCENTRAL_CLIENT_DIR') && file_exists(UPDRAFTCENTRAL_CLIENT_DIR.'/translations-central.php')) {
- $this->translations = include_once(UPDRAFTCENTRAL_CLIENT_DIR.'/translations-central.php');
- }
+ add_action('updraftplus_load_translations_for_udcentral', array($this, 'load_updraftplus_translations'));
}
/**
@@ -126,7 +122,7 @@ public function get_debug_mode() {
*
* @return void
*/
- public function log($line, $level = 'notice', $uniq_id = false) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ public function log($line, $level = 'notice', $uniq_id = false) {// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable -- Unused parameter is present because the the abstract UpdraftCentral_Host class uses 3 arguments.
global $wp_optimize;
if ($wp_optimize) {
@@ -136,6 +132,16 @@ public function log($line, $level = 'notice', $uniq_id = false) {// phpcs:ignore
}
}
+ /**
+ * Load translations which are based on UpdraftPlus domain text
+ */
+ public function load_updraftplus_translations() {
+ // Load wp-optimize translations
+ if (defined('UPDRAFTCENTRAL_CLIENT_DIR') && file_exists(UPDRAFTCENTRAL_CLIENT_DIR.'/translations-central.php')) {
+ $this->translations = include(UPDRAFTCENTRAL_CLIENT_DIR.'/translations-central.php');
+ }
+ }
+
/**
* Developer Note:
*
diff --git a/wp-content/plugins/updraftplus/changelog-old.txt b/wp-content/plugins/updraftplus/changelog-old.txt
index 6ccb1fda..a9d66df4 100644
--- a/wp-content/plugins/updraftplus/changelog-old.txt
+++ b/wp-content/plugins/updraftplus/changelog-old.txt
@@ -151,7 +151,7 @@ This file contains changelog entries that are not contained in the main readme.t
* TWEAK: If PHP reports the current memory limit as a non-positive integer, do not display any message to the user about a low memory limit
* TWEAK: If the user deletes their Google API project, then show clearer information on what to do when a backup fails
* TWEAK: If you changed your OneDrive client ID, UD will now more clearly advise you of the need to re-authenticate
-* COMPATABILITY: Updated the OneDrive authentication procedure to make it compatible with the new Microsoft Developer Apps
+* COMPATIBILITY: Updated the OneDrive authentication procedure to make it compatible with the new Microsoft Developer Apps
= 1.12.18 - 03/Aug/2016 =
@@ -176,7 +176,7 @@ This file contains changelog entries that are not contained in the main readme.t
* TWEAK: Log FTP progress upload less often (slight resource usage improvement)
* TWEAK: For multi-archive backup sets, the HTML title attribute of download buttons had unnecessary duplicated information
-* TWEAK: Improve OneDrive performance by cacheing directory listings
+* TWEAK: Improve OneDrive performance by caching directory listings
* TWEAK: Detect and handle a case in which OneDrive incorrectly reports a file as incompletely uploaded
* FIX: OneDrive scanning of large directories for existing backup sets was only detecting the first 200 files
@@ -185,7 +185,7 @@ This file contains changelog entries that are not contained in the main readme.t
* TWEAK: S3 now supports the new Mumbai region
* TWEAK: If the user enters an AWS/S3 access key that looks prima facie invalid, then mention this in the error output
* TWEAK: Make the message that the user is shown in the case of no network connectivity to updraftplus.com when connecting for updates (paid versions) clearer
-* TWEAK: Extend cacheing of enumeration of uploads that was introduced in 1.11.1 to other data in wp-content also
+* TWEAK: Extend caching of enumeration of uploads that was introduced in 1.11.1 to other data in wp-content also
* TWEAK: Avoid fatal error in Migrator if running via WP-CLI with the USER environment variable unset
* TWEAK: When DB_CHARSET is defined but empty, treat it the same as if undefined
* TWEAK: Add updraftplus_remotesend_udrpc_object_obtained action hook, allowing customisation of HTTP transport options for remote sending
@@ -195,7 +195,7 @@ This file contains changelog entries that are not contained in the main readme.t
* TWEAK: Patch Labelauty to be friendly to screen-readers
* TWEAK: Suppress the UD updates check on paid versions that immediately follows a WP automatic core security update
* TWEAK: Handle missing UpdraftCentral command classes more elegantly
-* FEATURE: Endpoint handlers for forthcoming updates and user mangement features in UpdraftCentral
+* FEATURE: Endpoint handlers for forthcoming updates and user management features in UpdraftCentral
* TRANSLATIONS: Remove bundled German (de_DE) translation, since this is now retrieved from wordpress.org
* FIX: Fix inaccurate reporting of the current Vault quota usage in the report email
* FIX: Fix logic errors in processing return codes when no direct MySQL/MySQLi connection was possible in restoring that could cause UpdraftPlus to wrongly conclude that restoring was not possible
@@ -776,7 +776,7 @@ https://updraftplus.com/shop/updraftplus-premium/)
button
* TWEAK: Detect select/poll lengthy timeouts when uploading to Dropbox, and
prevent overlapping activity
-* TWEAK: Add constant UPDRAFTPLUS_NOAUTOBACKUPS to programatically disable the
+* TWEAK: Add constant UPDRAFTPLUS_NOAUTOBACKUPS to programmatically disable the
automatic backups add-on
* TWEAK: Rename UpdraftPlus Dropbox class, to avoid clash with Ninja Forms
upload add-on
@@ -1187,7 +1187,7 @@ term_relationships table (which can never have URLs in it)
* FIX: Various small fixes to the initial release of 1.8.1
* TWEAK: Restorer now switches theme if database is restored to indicate a
-non-existent theme, and Migrator temporarily disables cacheing plugins during
+non-existent theme, and Migrator temporarily disables caching plugins during
Migration
* TWEAK: Improve handling of MySQL's maximum packet size - attempt to raise
it, and leave some margin
@@ -1488,7 +1488,7 @@ error (rather than continue and likely have many more)
some faulty PHP installs
* TWEAK: Allow an extra attempt if in "over-time" - allows recovery from
transient errors (e.g. cloud service temporary outage) in over-time.
-* TWEAK: Work-around WP installs with broken cacheing setups where cache
+* TWEAK: Work-around WP installs with broken caching setups where cache
deletion is not working
* TWEAK: If ZipArchive::close() fails, then log the list of files we were
trying to add at the time
@@ -1847,7 +1847,7 @@ cancelled
operation on it, which may not be permitted)
* Use WordPress's native HTTP functions for greater reliability when
performing Google Drive authorisation
-* Deal with WP-Cron racey double events (abort superceeded backups)
+* Deal with WP-Cron racey double events (abort superseded backups)
* Allow user to download logs from admin interface
= 1.0.5 - 12/13/2012 =
diff --git a/wp-content/plugins/updraftplus/class-updraftplus.php b/wp-content/plugins/updraftplus/class-updraftplus.php
index bd5ca9e4..2d158378 100644
--- a/wp-content/plugins/updraftplus/class-updraftplus.php
+++ b/wp-content/plugins/updraftplus/class-updraftplus.php
@@ -10,7 +10,7 @@ class UpdraftPlus {
// Choices will be shown in the admin menu in the order used here
public $backup_methods = array(
- 'updraftvault' => 'UpdraftPlus Vault',
+ 'updraftvault' => 'UpdraftVault',
'dropbox' => 'Dropbox',
's3' => 'Amazon S3',
'cloudfiles' => 'Rackspace Cloud Files',
@@ -94,6 +94,7 @@ public function __construct() {
global $pagenow;
// Initialisation actions - takes place on plugin load
+ // phpcs:disable WordPress.WP.AlternativeFunctions.file_system_operations_fopen,WordPress.WP.AlternativeFunctions.file_system_operations_fread,WordPress.WP.AlternativeFunctions.file_system_operations_fclose,WordPress.WP.AlternativeFunctions.file_system_operations_readfile,WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents,WordPress.WP.AlternativeFunctions.file_system_operations_fwrite -- suggesting using the interactive WP Filesystem API (or any other API) for read-access to files is absurd; and all write operations in this file are non-interactive, to known-writable directories
if ($fp = fopen(UPDRAFTPLUS_DIR.'/updraftplus.php', 'r')) {
$file_data = fread($fp, 1024);
if (preg_match("/Version: ([\d\.]+)(\r|\n)/", $file_data, $matches)) {
@@ -110,15 +111,20 @@ public function __construct() {
'UpdraftPlus_Storage_Methods_Interface' => 'includes/class-storage-methods-interface.php',
'UpdraftPlus_Job_Scheduler' => 'includes/class-job-scheduler.php',
'UpdraftPlus_HTTP_Error_Descriptions' => 'includes/class-http-error-descriptions.php',
+ 'UpdraftPlus_Database_Utility' => 'includes/class-database-utility.php',
+ 'UpdraftPlus_Migrator_Lite' => 'includes/migrator-lite.php',
);
foreach ($load_classes as $class => $relative_path) {
if (!class_exists($class)) updraft_try_include_file(''.$relative_path, 'include_once');
}
-
+
+ if (!class_exists('UpdraftPlus_Addons_Migrator')) {
+ new UpdraftPlus_Migrator_Lite();
+ }
+
// Create admin page
- add_action('init', array($this, 'handle_url_actions'));
- add_action('init', array($this, 'updraftplus_single_site_maintenance_init'));
+ add_action('init', array($this, 'initialize_required_settings'));
// Run earlier than default - hence earlier than other components
// admin_menu runs earlier, and we need it because options.php wants to use $updraftplus_admin before admin_init happens
add_action(apply_filters('updraft_admin_menu_hook', 'admin_menu'), array($this, 'admin_menu'), 9);
@@ -182,6 +188,7 @@ public function __construct() {
if (!wp_next_scheduled('updraftplus_clean_temporary_files')) {
wp_schedule_event(time(), 'twicedaily', 'updraftplus_clean_temporary_files');
}
+ // phpcs:enable
}
/**
@@ -236,7 +243,7 @@ public function upgrader_source_selection($source, $remote_source, $upgrader_obj
if (!$properties->isPublic() || !is_array($upgrader_object->strings) || empty($upgrader_object->strings['folder_exists'])) return $source;
- $upgrader_object->strings['folder_exists'] .= ' '.__('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.', 'updraftplus');
+ $upgrader_object->strings['folder_exists'] .= ' '.__('A version of UpdraftPlus is already installed.', 'updraftplus').' '.__('WordPress will only allow you to install your new version after first de-installing the existing one.', 'updraftplus').' '.__('That is safe - all your settings and backups will be retained.', 'updraftplus').' '.__('So, go to the "Plugins" page, de-activate and de-install UpdraftPlus, and then try again.', 'updraftplus');
return $source;
@@ -283,14 +290,14 @@ public function wp_loaded_vault_disconnect() {
$site_id = $this->siteid();
$hash = hash('sha256', $site_id.':::'.$storage_options['token']);
if ($hash == $_POST['reset_hash']) {
- $this->log('This site has been remotely disconnected from UpdraftPlus Vault');
+ $this->log('This site has been remotely disconnected from UpdraftVault');
updraft_try_include_file('methods/updraftvault.php', 'include_once');
$vault = new UpdraftPlus_BackupModule_updraftvault();
$vault->ajax_vault_disconnect();
// Die, as the vault method has already sent output
die;
} else {
- $this->log('An invalid request was received to disconnect this site from UpdraftPlus Vault');
+ $this->log('An invalid request was received to disconnect this site from UpdraftVault');
}
}
echo json_encode(array('disconnected' => 0));
@@ -306,8 +313,9 @@ public function wp_loaded_vault_disconnect() {
* @return array
*/
public function get_udrpc($indicator_name = 'migrator.updraftplus.com') {
- if (!class_exists('UpdraftPlus_Remote_Communications')) include_once(apply_filters('updraftplus_class_udrpc_path', UPDRAFTPLUS_DIR.'/vendor/team-updraft/common-libs/src/updraft-rpc/class-udrpc.php', $this->version));
- $ud_rpc = new UpdraftPlus_Remote_Communications($indicator_name);
+ $this->ensure_phpseclib();
+ if (!class_exists('UpdraftPlus_Remote_Communications_V2')) include_once(apply_filters('updraftplus_class_udrpc_path', UPDRAFTPLUS_DIR.'/vendor/team-updraft/common-libs/src/updraft-rpc/class-udrpc2.php', $this->version));
+ $ud_rpc = new UpdraftPlus_Remote_Communications_V2($indicator_name);
$ud_rpc->set_can_generate(true);
return $ud_rpc;
}
@@ -315,28 +323,16 @@ public function get_udrpc($indicator_name = 'migrator.updraftplus.com') {
/**
* Ensure that the indicated phpseclib classes are available
*
- * @param String|Array $classes - a class, or list of classes. There used to be a second parameter with paths to include; but this is now inferred from $classes; and there's no backwards compatibility problem because sending more parameters than are used is acceptable in PHP.
- *
- * @return Boolean|WP_Error
+ * @return Boolean|WP_Error Boolean true if the given classes is already included or autoloader is successfully registered, otherwise WP Error
*/
- public function ensure_phpseclib($classes = array()) {
+ public function ensure_phpseclib() {
if (!$this->phpseclib_requirements_met()) {
$this->maybe_log_phpseclib_warnings();
// return new WP_Error('phpseclib_php_version', "PHP Secure Communication Library doesn't meet the minimum PHP requirements.");
}
-
- $classes = (array) $classes;
$this->no_deprecation_warnings_on_php7();
-
- $any_missing = false;
-
- foreach ($classes as $cl) {
- if (!class_exists($cl)) $any_missing = true;
- }
-
- if (!$any_missing) return true;
$ret = true;
@@ -353,14 +349,29 @@ public function ensure_phpseclib($classes = array()) {
$phpseclib_dir = UPDRAFTPLUS_DIR.'/vendor/phpseclib/phpseclib/phpseclib';
if (false === strpos(get_include_path(), $phpseclib_dir)) set_include_path(get_include_path().PATH_SEPARATOR.$phpseclib_dir);
- foreach ($classes as $cl) {
- $path = str_replace('_', '/', $cl);
- if (!class_exists($cl)) include_once($phpseclib_dir.'/'.$path.'.php');
- }
-
+ spl_autoload_register(array($this, 'autoload_phpseclib_class'));
return $ret;
}
+ /**
+ * Load phpseclib class automatically. Note that this method is hooked into the PHP's spl_auto_register and this is exclusively used for phpseclib only
+ *
+ * @param String $class A class name that's going to be used for instantiating an object
+ * @return Void
+ */
+ public function autoload_phpseclib_class($class) {
+ if (!preg_match('#^phpseclib_#', $class)) return; // only deals with class prefixed with "phpseclib_", because we use that prefix to our customised phpseclib class and to call/instantiate object of phpseclib classes (e.g. new phpseclib_Crypt_RSA = new phpseclib\Crypt\RSA)
+ $phpseclib_dir = UPDRAFTPLUS_DIR.'/vendor/phpseclib/phpseclib/phpseclib';
+ $class = str_replace('_', '/', $class); // turn the class name into paths by replacing underscores from the given class with slashes, this is to change our customised phpseclib class name to a fully qualified phpseclib v2 namespace
+ $class = preg_replace('#^phpseclib/(.+)$#', "$1", $class); // take out the 'phpseclib' from the beginning of the class name as we already have the root directory of phpseclib defined in the $phpseclib_dir variable
+ if (file_exists($phpseclib_dir.'/'.$class.'.php') == true) { // check whether the class name that has been transformed into directory paths mathces with one of the phpseclib class files
+ $phpseclib_class_v2 = 'phpseclib\\'.str_replace('/', '\\', $class);
+ $phpseclib_updraft_class = 'phpseclib_'.str_replace('/', '_', $class);
+ updraft_try_include_file('vendor/autoload.php', 'require_once'); // load the composer autoload.php every time our customised phpseclib class is called (if not already loaded)
+ if (class_exists($phpseclib_class_v2) && !class_exists($phpseclib_updraft_class)) class_alias($phpseclib_class_v2, $phpseclib_updraft_class); // phpcs:ignore PHPCompatibility.FunctionUse.NewFunctions.class_aliasFound -- the use of class_alias here to map our customised phpseclib class to the real one owned by the phpseclib v2 class (e.g. phpseclib_Crypt_RSA => phpseclib\Crypt\RSA)
+ }
+ }
+
/**
* Ugly, but necessary to prevent debug output breaking the conversation when the user has debug turned on
*/
@@ -380,16 +391,16 @@ private function no_deprecation_warnings_on_php7() {
/**
* Attempt to close the connection to the browser, optionally with some output sent first, whilst continuing execution
*
- * @param String $txt - output to send
+ * @param String $txt - JSON-encoded output to send
*/
public function close_browser_connection($txt = '') {
// Close browser connection so that it can resume AJAX polling
header('Content-Length: '.(empty($txt) ? '0' : 4+strlen($txt)));
header('Connection: close');
- header('Content-Encoding: none');
+ header('Content-Type: application/json'); // Used to be 'none', but all inputs to this method are JSON-encoded
if (function_exists('session_id') && session_id()) session_write_close();
echo "\r\n\r\n";
- echo $txt;
+ echo $txt; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- All inputs to this method are already JSON-encoded, and the output context is not HTML
// These two added - 19-Feb-15 - started being required on local dev machine, for unknown reason (probably some plugin that started an output buffer).
$ob_level = ob_get_level();
while ($ob_level > 0) {
@@ -398,6 +409,7 @@ public function close_browser_connection($txt = '') {
}
flush();
if (function_exists('fastcgi_finish_request')) fastcgi_finish_request();
+ if (function_exists('litespeed_finish_request')) litespeed_finish_request();
}
/**
@@ -405,13 +417,14 @@ public function close_browser_connection($txt = '') {
* Presently, we only detect CPanel. If you know of others, then feel free to contribute!
*/
public function get_hosting_disk_quota_free() {
- if (!@is_dir('/usr/local/cpanel') || $this->detect_safe_mode() || !function_exists('popen') || (!@is_executable('/usr/local/bin/perl') && !@is_executable('/usr/local/cpanel/3rdparty/bin/perl')) || (defined('UPDRAFTPLUS_SKIP_CPANEL_QUOTA_CHECK') && UPDRAFTPLUS_SKIP_CPANEL_QUOTA_CHECK)) return false;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if ((defined('UPDRAFTPLUS_SKIP_CPANEL_QUOTA_CHECK') && UPDRAFTPLUS_SKIP_CPANEL_QUOTA_CHECK) || $this->detect_safe_mode() || !@is_dir('/usr/local/cpanel') || !function_exists('popen') || (!@is_executable('/usr/local/bin/perl') && !@is_executable('/usr/local/cpanel/3rdparty/bin/perl'))) return false;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
- $perl = (@is_executable('/usr/local/cpanel/3rdparty/bin/perl')) ? '/usr/local/cpanel/3rdparty/bin/perl' : '/usr/local/bin/perl';// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ $perl = (@is_executable('/usr/local/cpanel/3rdparty/bin/perl')) ? '/usr/local/cpanel/3rdparty/bin/perl' : '/usr/local/bin/perl';// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
$exec = "UPDRAFTPLUSKEY=updraftplus $perl ".UPDRAFTPLUS_DIR."/includes/get-cpanel-quota-usage.pl";
- $handle = function_exists('popen') ? @popen($exec, 'r') : false; // phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ // A case was seen of a web hosting company that disabled pclose() but not popen()
+ $handle = (function_exists('popen') && function_exists('pclose')) ? @popen($exec, 'r') : false; // phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
if (!is_resource($handle)) return false;
$found = false;
@@ -447,7 +460,7 @@ public function last_modified_log() {
$mod_time = false;
$nonce = '';
- if ($handle = @opendir($updraft_dir)) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if ($handle = @opendir($updraft_dir)) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
while (false !== ($entry = readdir($handle))) {
// The latter match is for files created internally by zipArchive::addFile
if (preg_match('/^log\.([a-z0-9]+)\.txt$/i', $entry, $matches)) {
@@ -459,7 +472,7 @@ public function last_modified_log() {
}
}
}
- @closedir($handle);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @closedir($handle);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
}
return array($mod_time, $log_file, $nonce);
@@ -475,7 +488,7 @@ public function admin_menu() {
if (isset($_GET['wpnonce']) && isset($_GET['page']) && isset($_GET['action']) && 'updraftplus' == $_GET['page'] && 'downloadlatestmodlog' == $_GET['action'] && wp_verify_nonce($_GET['wpnonce'], 'updraftplus_download')) {
- list($mod_time, $log_file, $nonce) = $this->last_modified_log();// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ list($mod_time, $log_file, $nonce) = $this->last_modified_log();// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable -- Unused parameter is present because the method returns an array.
if ($mod_time >0) {
if (is_readable($log_file)) {
@@ -540,6 +553,17 @@ public function modify_http_options($opts) {
}
+ /**
+ * Initialize all settings required for the plugin to work properly
+ */
+ public function initialize_required_settings() {
+ // Tell WordPress where to find the translations
+ load_plugin_textdomain('updraftplus', false, basename(dirname(__FILE__)).'/languages/');
+ do_action('updraftplus_load_translations_for_udcentral');
+ $this->handle_url_actions();
+ $this->updraftplus_single_site_maintenance_init();
+ }
+
/**
* Handle actions passed on to method plugins; e.g. Google OAuth 2.0 - ?action=updraftmethod-googledrive-auth&page=updraftplus
* Nov 2013: Google's new cloud console, for reasons as yet unknown, only allows you to enter a redirect_uri with a single URL parameter... thus, we put page second, and re-add it if necessary. Apr 2014: Bitcasa already do this, so perhaps it is part of the OAuth2 standard or best practice somewhere.
@@ -547,11 +571,11 @@ public function modify_http_options($opts) {
*
* @return Void - may not necessarily return at all, depending on the action
*/
- public function handle_url_actions() {
+ private function handle_url_actions() {
// First, basic security check: must be an admin page, with ability to manage options, with the right parameters
// Also, only on GET because WordPress on the options page repeats parameters sometimes when POST-ing via the _wp_referer field
- if (isset($_SERVER['REQUEST_METHOD']) && ('GET' == $_SERVER['REQUEST_METHOD'] || 'POST' == $_SERVER['REQUEST_METHOD']) && isset($_GET['action'])) {
+ if (isset($_SERVER['REQUEST_METHOD']) && ('GET' == $_SERVER['REQUEST_METHOD'] || 'POST' == $_SERVER['REQUEST_METHOD']) && (isset($_GET['action']) && is_string($_GET['action']))) {
if (preg_match("/^updraftmethod-([a-z]+)-([a-z]+)$/", $_GET['action'], $matches) && file_exists(UPDRAFTPLUS_DIR.'/methods/'.$matches[1].'.php') && UpdraftPlus_Options::user_can_manage()) {
$_GET['page'] = 'updraftplus';
$_REQUEST['page'] = 'updraftplus';
@@ -559,11 +583,11 @@ public function handle_url_actions() {
$call_method = "action_".$matches[2];
$storage_objects_and_ids = UpdraftPlus_Storage_Methods_Interface::get_storage_objects_and_ids(array($method));
- $instance_id = isset($_GET['updraftplus_instance']) ? $_GET['updraftplus_instance'] : '';
+ $instance_id = (isset($_GET['updraftplus_instance']) && is_string($_GET['updraftplus_instance'])) ? $_GET['updraftplus_instance'] : '';
- if ("POST" == $_SERVER['REQUEST_METHOD'] && isset($_POST['state'])) {
+ if ('POST' == $_SERVER['REQUEST_METHOD'] && isset($_POST['state']) && is_string($_POST['state'])) {
$state = urldecode($_POST['state']);
- } elseif (isset($_GET['state'])) {
+ } elseif (isset($_GET['state']) && is_string($_GET['state'])) {
$state = $_GET['state'];
}
@@ -573,15 +597,21 @@ public function handle_url_actions() {
$instance_id = $parts[1];
}
- if (isset($storage_objects_and_ids[$method]['instance_settings'][$instance_id])) {
- $opts = $storage_objects_and_ids[$method]['instance_settings'][$instance_id];
- $backup_obj = $storage_objects_and_ids[$method]['object'];
- $backup_obj->set_options($opts, false, $instance_id);
- } else {
+ if (!preg_match('/^[-A-Z0-9]+$/i', $instance_id)) die('Invalid input.');
+ if (empty($storage_objects_and_ids[$method]['instance_settings'][$instance_id])) {
+ error_log("UpdraftPlus::handle_url_actions(): no such instance ID found in settings.");
+ return;
+ }
+ $opts = $storage_objects_and_ids[$method]['instance_settings'][$instance_id];
+ if (!isset($storage_objects_and_ids[$method]['object']) || !is_object($storage_objects_and_ids[$method]['object'])) {
updraft_try_include_file('methods/'.$method.'.php', 'include_once');
$call_class = "UpdraftPlus_BackupModule_".$method;
+ if (!class_exists($call_class)) die(esc_html($call_class)." class couldn't be found");
$backup_obj = new $call_class;
+ } else {
+ $backup_obj = $storage_objects_and_ids[$method]['object'];
}
+ $backup_obj->set_options($opts, false, $instance_id);
$this->register_wp_http_option_hooks();
@@ -593,7 +623,7 @@ public function handle_url_actions() {
$this->log(sprintf(__("%s error: %s", 'updraftplus'), $method, $e->getMessage().' ('.$e->getCode().')', 'error'));
}
$this->register_wp_http_option_hooks(false);
- } elseif (isset($_GET['page']) && 'updraftplus' == $_GET['page'] && 'downloadlog' == $_GET['action'] && isset($_GET['updraftplus_backup_nonce']) && preg_match("/^[0-9a-f]{12}$/", $_GET['updraftplus_backup_nonce']) && UpdraftPlus_Options::user_can_manage()) {
+ } elseif (isset($_GET['page']) && 'updraftplus' === $_GET['page'] && 'downloadlog' === $_GET['action'] && isset($_GET['updraftplus_backup_nonce']) && is_string($_GET['updraftplus_backup_nonce']) && preg_match("/^[0-9a-f]{12}$/", $_GET['updraftplus_backup_nonce']) && UpdraftPlus_Options::user_can_manage()) {
// No WordPress nonce is needed here or for the next, since the backup is already nonce-based
$updraft_dir = $this->backups_dir_location();
$log_file = $updraft_dir.'/log.'.$_GET['updraftplus_backup_nonce'].'.txt';
@@ -605,25 +635,25 @@ public function handle_url_actions() {
} else {
add_action('all_admin_notices', array($this, 'show_admin_warning_unreadablelog'));
}
- } elseif (isset($_GET['page']) && 'updraftplus' == $_GET['page'] && 'downloadfile' == $_GET['action'] && isset($_GET['updraftplus_file']) && preg_match('/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-db([0-9]+)?+\.(gz\.crypt)$/i', $_GET['updraftplus_file']) && UpdraftPlus_Options::user_can_manage()) {
+ } elseif (isset($_GET['page']) && 'updraftplus' === $_GET['page'] && 'downloadfile' == $_GET['action'] && isset($_GET['updraftplus_file']) && is_string($_GET['updraftplus_file']) && preg_match('/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-db([0-9]+)?+\.(gz\.crypt)$/i', $_GET['updraftplus_file']) && UpdraftPlus_Options::user_can_manage()) {
// Though this (venerable) code uses the action 'downloadfile', in fact, it's not that general: it's just for downloading a decrypted copy of encrypted databases, and nothing else
$updraft_dir = $this->backups_dir_location();
$file = $_GET['updraftplus_file'];
$spool_file = $updraft_dir.'/'.basename($file);
if (is_readable($spool_file)) {
- $dkey = isset($_GET['decrypt_key']) ? stripslashes($_GET['decrypt_key']) : '';
+ $dkey = (isset($_GET['decrypt_key']) && is_string($_GET['decrypt_key'])) ? stripslashes($_GET['decrypt_key']) : '';
$this->spool_file($spool_file, $dkey);
exit;
} else {
add_action('all_admin_notices', array($this, 'show_admin_warning_unreadablefile'));
}
- } elseif ('updraftplus_spool_file' == $_GET['action'] && !empty($_GET['what']) && !empty($_GET['backup_timestamp']) && is_numeric($_GET['backup_timestamp']) && UpdraftPlus_Options::user_can_manage()) {
+ } elseif ('updraftplus_spool_file' === $_GET['action'] && !empty($_GET['what']) && !empty($_GET['backup_timestamp']) && is_numeric($_GET['backup_timestamp']) && UpdraftPlus_Options::user_can_manage()) {
// At some point, it may be worth merging this with the previous section
$updraft_dir = $this->backups_dir_location();
- $findex = isset($_GET['findex']) ? (int) $_GET['findex'] : 0;
- $backup_timestamp = $_GET['backup_timestamp'];
- $what = $_GET['what'];
+ $findex = isset($_GET['findex']) ? (int) stripslashes((string) $_GET['findex']) : 0;
+ $backup_timestamp = stripslashes((string) $_GET['backup_timestamp']);
+ $what = stripslashes((string) $_GET['what']);
$backup_set = UpdraftPlus_Backup_History::get_history($backup_timestamp);
@@ -646,7 +676,7 @@ public function handle_url_actions() {
exit;
}
- $dkey = isset($_GET['decrypt_key']) ? stripslashes($_GET['decrypt_key']) : "";
+ $dkey = (isset($_GET['decrypt_key']) && is_string($_GET['decrypt_key'])) ? stripslashes($_GET['decrypt_key']) : "";
$this->spool_file($updraft_dir.'/'.basename($filename), $dkey);
exit;
@@ -660,7 +690,7 @@ public function handle_url_actions() {
*
* @return void
*/
- public function updraftplus_single_site_maintenance_init() {
+ private function updraftplus_single_site_maintenance_init() {
if (!is_multisite()) return;
@@ -677,7 +707,7 @@ public function updraftplus_single_site_maintenance_init() {
return;
}
- wp_die(''.__('Under Maintenance', 'updraftplus') .' '.__('Briefly unavailable for scheduled maintenance. Check back in a minute.', 'updraftplus').'
');
+ wp_die(''.esc_html__('Under Maintenance', 'updraftplus') .' '.esc_html(__('Briefly unavailable for scheduled maintenance.', 'updraftplus').' '.__('Check back in a minute.', 'updraftplus')).'
');
}
/**
@@ -731,15 +761,12 @@ public function show_admin_warning_unreadablefile() {
* Runs upon the WP action plugins_loaded
*/
public function plugins_loaded() {
-
- // Tell WordPress where to find the translations
- load_plugin_textdomain('updraftplus', false, basename(dirname(__FILE__)).'/languages/');
// The Google Analyticator plugin does something horrible: loads an old version of the Google SDK on init, always - which breaks us
if ((defined('DOING_CRON') && DOING_CRON) || (defined('DOING_AJAX') && DOING_AJAX && isset($_REQUEST['subaction']) && 'backupnow' == $_REQUEST['subaction']) || (isset($_GET['page']) && 'updraftplus' == $_GET['page'] )) {
remove_action('init', 'ganalyticator_stats_init');
// Appointments+ does the same; but provides a cleaner way to disable it
- @define('APP_GCAL_DISABLE', true);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @define('APP_GCAL_DISABLE', true);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
}
add_filter('updraftcentral_remotecontrol_command_classes', array($this, 'updraftcentral_remotecontrol_command_classes'));
@@ -871,8 +898,9 @@ public function backup_time_nonce($nonce = false, $timestamp = false) {
public function get_wordpress_version() {
static $got_wp_version = false;
if (!$got_wp_version) {
+ // This doesn't need to be global, but is kept just in case version.php changes its way of doing things in a future WP core release
global $wp_version;
- @include(ABSPATH.WPINC.'/version.php');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ include(ABSPATH.WPINC.'/version.php');
$got_wp_version = $wp_version;
}
return $got_wp_version;
@@ -937,7 +965,7 @@ public function found_backup_complete_in_logfile($nonce, $use_existing_result =
$handle = fopen($logfile_name, 'r');
if (is_resource($handle)) {
// Returns 0 on success
- if (0 === @fseek($handle, $seek_to)) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if (0 === @fseek($handle, $seek_to)) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
$bytes_back = filesize($logfile_name) - $seek_to;
// Return to the end of the file
$read_recent = fread($handle, $bytes_back);
@@ -984,16 +1012,18 @@ public function write_log_header($logging_function) {
$safe_mode = $this->detect_safe_mode();
$memory_limit = ini_get('memory_limit');
- $memory_usage = round(@memory_get_usage(false)/1048576, 1);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- $memory_usage2 = round(@memory_get_usage(true)/1048576, 1);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ $memory_usage = round(@memory_get_usage(false)/1048576, 1);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
+ $memory_usage2 = round(@memory_get_usage(true)/1048576, 1);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
// Attempt to raise limit to avoid false positives
- if (function_exists('set_time_limit')) @set_time_limit(UPDRAFTPLUS_SET_TIME_LIMIT);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- $max_execution_time = (int) @ini_get("max_execution_time");// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if (function_exists('set_time_limit')) @set_time_limit(UPDRAFTPLUS_SET_TIME_LIMIT);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
+ $max_execution_time = (int) @ini_get("max_execution_time");// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
$mp = (int) $wpdb->get_var("SELECT @@session.max_allowed_packet");
- $logline = "UpdraftPlus WordPress backup plugin (https://updraftplus.com): ".$this->version." WP: ".$wp_version." PHP: ".phpversion()." (".PHP_SAPI.", ".(function_exists('php_uname') ? @php_uname() : PHP_OS).") MySQL: $mysql_version (max packet size=$mp) WPLANG: ".get_locale()." Server: ".$_SERVER["SERVER_SOFTWARE"]." safe_mode: $safe_mode max_execution_time: $max_execution_time memory_limit: $memory_limit (used: ${memory_usage}M | ${memory_usage2}M) multisite: ".(is_multisite() ? (is_subdomain_install() ? 'Y (sub-domain)' : 'Y (sub-folder)') : 'N')." openssl: ".(defined('OPENSSL_VERSION_TEXT') ? OPENSSL_VERSION_TEXT : 'N')." mcrypt: ".(function_exists('mcrypt_encrypt') ? 'Y' : 'N')." LANG: ".getenv('LANG')." ZipArchive::addFile: ";// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ $proxy = new WP_HTTP_Proxy();
+
+ $logline = "UpdraftPlus WordPress backup plugin (https://updraftplus.com): ".$this->version." WP: ".$wp_version." PHP: ".phpversion()." (".PHP_SAPI.", ".(function_exists('php_uname') ? @php_uname() : PHP_OS).") MySQL: $mysql_version (max packet size=$mp) WPLANG: ".get_locale()." Server: ".$_SERVER["SERVER_SOFTWARE"]." safe_mode: $safe_mode max_execution_time: $max_execution_time memory_limit: $memory_limit (used: {$memory_usage}M | {$memory_usage2}M) multisite: ".(is_multisite() ? (is_subdomain_install() ? 'Y (sub-domain)' : 'Y (sub-folder)') : 'N')." openssl: ".(defined('OPENSSL_VERSION_TEXT') ? OPENSSL_VERSION_TEXT : 'N')." mcrypt: ".(function_exists('mcrypt_encrypt') ? 'Y' : 'N')." LANG: ".getenv('LANG')." WP Proxy: ".($proxy->is_enabled() ? 'enabled' : 'disabled')." ZipArchive::addFile: ";// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
// method_exists causes some faulty PHP installations to segfault, leading to support requests
if (version_compare(phpversion(), '5.2.0', '>=') && extension_loaded('zip')) {
@@ -1027,7 +1057,7 @@ public function write_log_header($logging_function) {
$quota_free = '';
}
- $disk_free_space = function_exists('disk_free_space') ? @disk_free_space($updraft_dir) : false;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ $disk_free_space = function_exists('disk_free_space') ? @disk_free_space($updraft_dir) : false;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
// == rather than === here is deliberate; support experience shows that a result of (int)0 is not reliable. i.e. 0 can be returned when the real result should be false.
if (false == $disk_free_space) {
call_user_func($logging_function, "Free space on disk containing Updraft's temporary directory: Unknown".$quota_free);
@@ -1057,7 +1087,7 @@ public function get_last_log_chunk($nonce) {
$handle = fopen($this->logfile_name, 'r');
if (is_resource($handle)) {
// Returns 0 on success
- if (0 === @fseek($handle, $seek_to)) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if (0 === @fseek($handle, $seek_to)) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
while (strlen($contents) < 1048576 && ($buffer = fgets($handle, 262144)) !== false) {
$contents .= $buffer;
$seek_to += 262144;
@@ -1084,8 +1114,8 @@ public function verify_free_memory($how_many_bytes_needed) {
$memory_limit = $this->memory_check_current();
if (!is_numeric($memory_limit)) return false;
$memory_limit = $memory_limit * 1048576;
- $memory_usage = round(@memory_get_usage(false), 1);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- $memory_usage2 = round(@memory_get_usage(true), 1);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ $memory_usage = round(@memory_get_usage(false), 1);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
+ $memory_usage2 = round(@memory_get_usage(true), 1);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
if ($memory_limit - $memory_usage > $how_many_bytes_needed && $memory_limit - $memory_usage2 > $how_many_bytes_needed) return true;
return false;
}
@@ -1160,8 +1190,8 @@ public function log($line, $level = 'notice', $uniq_id = false, $skip_dblog = fa
break;
}
- if (defined('UPDRAFTPLUS_CONSOLELOG') && UPDRAFTPLUS_CONSOLELOG) echo $line."\n";
- if (defined('UPDRAFTPLUS_BROWSERLOG') && UPDRAFTPLUS_BROWSERLOG) echo htmlentities($line)." \n";
+ if (defined('UPDRAFTPLUS_CONSOLELOG') && UPDRAFTPLUS_CONSOLELOG) echo $line."\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- This constant can only be set deliberately by a user who is indicating he requires raw output on in a console (i.e. non-HTML) context
+ if (defined('UPDRAFTPLUS_BROWSERLOG') && UPDRAFTPLUS_BROWSERLOG) echo esc_html($line)." \n";
}
/**
@@ -1246,12 +1276,15 @@ public function log_restore_update($restore_information) {
* Outputs data to the browser.
* Will also fill the buffer on nginx systems after a specified amount of time.
*
- * @param String $line The text to output
+ * @param String $line The text to output. This may validly include HTML.
+ *
* @return void
*/
public function output_to_browser($line) {
- echo $line;
+ echo wp_kses_post($line);
if (false === stripos($_SERVER['SERVER_SOFTWARE'], 'nginx')) return;
+ // Change it to what was actually output
+ $line = wp_kses_post($line);
static $strcount = 0;
static $time = 0;
$buffer_size = 65536; // The default NGINX config uses a buffer size of 32 or 64k, depending on the system. So we use 64K.
@@ -1264,7 +1297,7 @@ public function output_to_browser($line) {
$strcount = $strcount - $buffer_size;
return;
}
- echo str_repeat(" ", ($buffer_size-$strcount));
+ echo str_repeat(' ', $buffer_size-$strcount); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Absurd false positive
// reset values
$time = time();
$strcount = 0;
@@ -1287,7 +1320,7 @@ public function max_packet_size($first_raise = true, $log_it = true) {
// 32MB
if ($first_raise && $mp < 33554432) {
$save = $wpdb->show_errors(false);
- $req = @$wpdb->query("SET GLOBAL max_allowed_packet=33554432");// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ $req = @$wpdb->query("SET GLOBAL max_allowed_packet=33554432");// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the method.
$wpdb->show_errors($save);
if (!$req) $this->log("Tried to raise max_allowed_packet from ".round($mp/1048576, 1)." MB to 32 MB, but failed (".$wpdb->last_error.", ".serialize($req).")");
$mp = (int) $wpdb->get_var("SELECT @@session.max_allowed_packet");
@@ -1388,7 +1421,7 @@ public function chunked_upload($caller, $file, $cloudpath, $logname, $chunk_size
// We have multiple chunks
if ($uploaded_size < $orig_file_size) {
- if (false == ($fp = @fopen($fullpath, 'rb'))) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if (false == ($fp = @fopen($fullpath, 'rb'))) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
$this->log("$logname: failed to open file: $fullpath");
$this->log("$file: ".sprintf(__('%s Error: Failed to open local file', 'updraftplus'), $logname), 'error');
return false;
@@ -1485,14 +1518,14 @@ public function chunked_upload($caller, $file, $cloudpath, $logname, $chunk_size
}
if ($errors_on_this_chunk >= 3) {
- @fclose($fp);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @fclose($fp);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
return false;
}
}
}
- @fclose($fp);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @fclose($fp);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
}
@@ -1566,7 +1599,7 @@ public function chunked_download($file, $method, $remote_size, $manually_break_u
if ($expected_bytes_delivered_so_far) {
$this->log("$file: local file is status: $start_offset/$remote_size bytes; requesting next $requested_bytes bytes");
} else {
- $this->log("$file: local file is status: $start_offset/$remote_size bytes; requesting next chunk (${start_offset}-)");
+ $this->log("$file: local file is status: $start_offset/$remote_size bytes; requesting next chunk ({$start_offset}-)");
}
if ($start_offset > 0 || $last_byte<$remote_size) {
@@ -1661,7 +1694,7 @@ public function find_working_sqldump($log_it = true, $cacheit = true) {
}
$existing = $this->jobdata_get('binsqldump', null);
// Theoretically, we could have moved machines, due to a migration
- if (null !== $existing && (!is_string($existing) || @is_executable($existing))) return $existing;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if (null !== $existing && (!is_string($existing) || @is_executable($existing))) return $existing;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
$updraft_dir = $this->backups_dir_location();
global $wpdb;
@@ -1672,7 +1705,7 @@ public function find_working_sqldump($log_it = true, $cacheit = true) {
$result = false;
foreach (explode(',', UPDRAFTPLUS_MYSQLDUMP_EXECUTABLE) as $potsql) {
- if (!@is_executable($potsql)) continue;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if (!@is_executable($potsql)) continue;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
if ($log_it) $this->log("Testing potential mysqldump binary: $potsql");
@@ -1713,7 +1746,7 @@ public function find_working_sqldump($log_it = true, $cacheit = true) {
$exec .= DB_NAME." ".escapeshellarg($table_name);
- $handle = function_exists('popen') ? popen($exec, "r") : false;
+ $handle = (function_exists('popen') && function_exists('pclose')) ? popen($exec, "r") : false;
if ($handle) {
$output = '';
// We expect the INSERT statement in the first 100KB
@@ -1785,16 +1818,16 @@ public function find_working_bin_zip($log_it = true, $cacheit = true) {
$existing = $this->jobdata_get('binzip', null);
// Theoretically, we could have moved machines, due to a migration
- if (null !== $existing && (!is_string($existing) || @is_executable($existing))) return $existing;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if (null !== $existing && (!is_string($existing) || @is_executable($existing))) return $existing;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
$updraft_dir = $this->backups_dir_location();
foreach (explode(',', UPDRAFTPLUS_ZIP_EXECUTABLE) as $potzip) {
- if (!@is_executable($potzip)) continue;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if (!@is_executable($potzip)) continue;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
if ($log_it) $this->log("Testing: $potzip");
// Test it, see if it is compatible with Info-ZIP
// If you have another kind of zip, then feel free to tell me about it
- @mkdir($updraft_dir.'/binziptest/subdir1/subdir2', 0777, true);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @mkdir($updraft_dir.'/binziptest/subdir1/subdir2', 0777, true);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
if (!file_exists($updraft_dir.'/binziptest/subdir1/subdir2')) return false;
@@ -1809,7 +1842,7 @@ public function find_working_bin_zip($log_it = true, $cacheit = true) {
$exec .= " -v -u -r binziptest/test.zip binziptest/subdir1";
$all_ok=true;
- $handle = function_exists('popen') ? popen($exec, "r") : false;
+ $handle = (function_exists('popen') && function_exists('pclose')) ? popen($exec, "r") : false;
if ($handle) {
while (!feof($handle)) {
$w = fgets($handle);
@@ -1844,9 +1877,9 @@ public function find_working_bin_zip($log_it = true, $cacheit = true) {
$handle = proc_open($exec, $descriptorspec, $pipes, $updraft_dir);
if (is_resource($handle)) {
if (!fwrite($pipes[0], "binziptest/subdir1/subdir2/test2.html\n")) {
- @fclose($pipes[0]);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- @fclose($pipes[1]);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- @fclose($pipes[2]);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @fclose($pipes[0]);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
+ @fclose($pipes[1]);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
+ @fclose($pipes[2]);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
$all_ok = false;
} else {
fclose($pipes[0]);
@@ -1921,12 +1954,12 @@ public function find_working_bin_zip($log_it = true, $cacheit = true) {
* @param String $updraft_dir - directory to find the files in
*/
private function remove_binzip_test_files($updraft_dir) {
- @unlink($updraft_dir.'/binziptest/subdir1/subdir2/test.html');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- @unlink($updraft_dir.'/binziptest/subdir1/subdir2/test2.html');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- @rmdir($updraft_dir.'/binziptest/subdir1/subdir2');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- @rmdir($updraft_dir.'/binziptest/subdir1');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- @unlink($updraft_dir.'/binziptest/test.zip');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- @rmdir($updraft_dir.'/binziptest');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @unlink($updraft_dir.'/binziptest/subdir1/subdir2/test.html');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise if the file doesn't exist.
+ @unlink($updraft_dir.'/binziptest/subdir1/subdir2/test2.html');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise if the file doesn't exist.
+ @rmdir($updraft_dir.'/binziptest/subdir1/subdir2');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
+ @rmdir($updraft_dir.'/binziptest/subdir1');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
+ @unlink($updraft_dir.'/binziptest/test.zip');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise if the file doesn't exist.
+ @rmdir($updraft_dir.'/binziptest');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
}
public function option_filter_get($which) {
@@ -2057,9 +2090,10 @@ public function get_entity_row($file, $history, $entity, $checksums, $jobdata, $
/**
* This important function returns a list of file entities that can potentially be backed up (subject to users settings), and optionally further meta-data about them
*
- * @param boolean $include_others
- * @param boolean $full_info
- * @return array
+ * @param boolean $include_others Whether to include "Others" in the list of entities to backup.
+ * @param boolean $full_info Whether to include additional metadata about each entity.
+ *
+ * @return array An associative array containing information about the backupable file entities.
*/
public function get_backupable_file_entities($include_others = true, $full_info = false) {
@@ -2069,13 +2103,15 @@ public function get_backupable_file_entities($include_others = true, $full_info
$arr = array(
'plugins' => array('path' => untrailingslashit(WP_PLUGIN_DIR), 'description' => __('Plugins', 'updraftplus'), 'singular_description' => __('Plugin', 'updraftplus')),
'themes' => array('path' => WP_CONTENT_DIR.'/themes', 'description' => __('Themes', 'updraftplus'), 'singular_description' => __('Theme', 'updraftplus')),
- 'uploads' => array('path' => untrailingslashit($wp_upload_dir['basedir']), 'description' => __('Uploads', 'updraftplus'))
+ 'uploads' => array('path' => untrailingslashit($wp_upload_dir['basedir']), 'description' => __('Uploads', 'updraftplus')),
+ 'mu-plugins' => array('path' => WPMU_PLUGIN_DIR, 'description' => __('Must-use plugins', 'updraftplus'))
);
} else {
$arr = array(
'plugins' => untrailingslashit(WP_PLUGIN_DIR),
'themes' => WP_CONTENT_DIR.'/themes',
- 'uploads' => untrailingslashit($wp_upload_dir['basedir'])
+ 'uploads' => untrailingslashit($wp_upload_dir['basedir']),
+ 'mu-plugins' => WPMU_PLUGIN_DIR
);
}
@@ -2097,6 +2133,25 @@ public function get_backupable_file_entities($include_others = true, $full_info
}
+ /**
+ * This function returns a list of specific php error messages and their action block
+ *
+ * @return array An associative array containing information about certain specific php errors and their error messages.
+ */
+ private function php_specific_error_handler_data(){
+ $handle_specific_messages = array(
+ 'open_basedir restriction.*/cpanel' => array(
+ 'action' => 'replace',
+ 'action_data' => 'Could not ask cPanel about disk space (open_basedir) - this is not an error',
+ ),
+ 'ftp_nb_fput\(\): php_connect_nonb\(\) failed: Operation now in progress' => array(
+ 'action' => 'append',
+ 'action_data' => "\nPHP logs this condition if a firewall blocked your FTP data channel from your webserver to your FTP server (but allowed your FTP control channel). You will need to speak to one or both of the administrators of those two servers to investigate (note that UpdraftPlus support cannot access any more information about the network than this PHP notice gives - talking to the administrators who can access that information is the next step)."
+ )
+ );
+ return $handle_specific_messages;
+ }
+
public function php_error_to_logline($errno, $errstr, $errfile, $errline) {
switch ($errno) {
case 1:
@@ -2162,7 +2217,25 @@ public function php_error_to_logline($errno, $errstr, $errfile, $errline) {
return false;
}
- return "PHP event: code $e_type: $errstr (line $errline, $errfile)";
+ $error_string = "PHP event: code $e_type: $errstr";
+
+ foreach ($this->php_specific_error_handler_data() as $pattern => $action_block) {
+
+ if (preg_match('#'.$pattern.'#i', $error_string)) {
+ if ('replace' == $action_block['action']) {
+ $error_string = 'PHP event: '. $action_block['action_data'];
+ }
+
+ if ('append' == $action_block['action']) {
+ $error_string = $error_string." ".$action_block['action_data'];
+ }
+ }
+ }
+
+ $error_string .= " (line $errline, $errfile)";
+
+ return $error_string;
+
}
@@ -2187,12 +2260,13 @@ public function backup_resume($resumption_no, $bnonce) {
if ($last_bnonce) $this->jobdata_reset();
$last_bnonce = $bnonce;
- set_error_handler(array($this, 'php_error'), E_ALL & ~E_STRICT);
+ $error_levels = version_compare(PHP_VERSION, '8.4.0', '>=') ? E_ALL : E_ALL & ~E_STRICT;
+ set_error_handler(array($this, 'php_error'), $error_levels);
$this->current_resumption = $resumption_no;
- if (function_exists('set_time_limit')) @set_time_limit(UPDRAFTPLUS_SET_TIME_LIMIT);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- if (function_exists('ignore_user_abort')) @ignore_user_abort(true);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if (function_exists('set_time_limit')) @set_time_limit(UPDRAFTPLUS_SET_TIME_LIMIT);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
+ if (function_exists('ignore_user_abort')) @ignore_user_abort(true);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
$runs_started = array();
$time_now = microtime(true);
@@ -2305,7 +2379,7 @@ public function backup_resume($resumption_no, $bnonce) {
$time_ago = time()-$btime;
- $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);
+ $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);
// 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.
// 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.
@@ -2617,7 +2691,14 @@ public function backup_resume($resumption_no, $bnonce) {
}
$total_size = 0;
-
+
+ $service = $this->just_one($this->jobdata_get('service'));
+ if (empty($service)) {
+ $message = 'This file has already been successfully processed';
+ } else {
+ $message = 'This file has already been successfully uploaded';
+ }
+
// Queue files for upload
foreach ($our_files as $key => $files) {
// Only continue if the stored info was about a dump
@@ -2638,7 +2719,7 @@ public function backup_resume($resumption_no, $bnonce) {
}
if ($this->is_uploaded($file)) {
- $this->log("$file: $key: This file has already been successfully uploaded");
+ $this->log("$file: $key: $message");
} elseif (is_file($updraft_dir.'/'.$file)) {
if (!in_array($file, $undone_files)) {
$this->log("$file: $key: This file has not yet been successfully uploaded: will queue");
@@ -3036,7 +3117,7 @@ public function backup_database() {
* @param array $options
* @return Boolean|Void - as for UpdraftPlus::boot_backup()
*/
- public function backup_all($options) {
+ public function backup_all($options = array()) {
$skip_cloud = empty($options['nocloud']) ? false : true;
return $this->boot_backup(1, 1, false, false, $skip_cloud ? 'none' : false, $options);
}
@@ -3047,7 +3128,7 @@ public function backup_all($options) {
* @param array $options
* @return Boolean|Void - as for UpdraftPlus::boot_backup()
*/
- public function backupnow_files($options) {
+ public function backupnow_files($options = array()) {
$skip_cloud = empty($options['nocloud']) ? false : true;
return $this->boot_backup(1, 0, false, false, $skip_cloud ? 'none' : false, $options);
}
@@ -3058,7 +3139,7 @@ public function backupnow_files($options) {
* @param array $options
* @return Boolean|Void - as for UpdraftPlus::boot_backup()
*/
- public function backupnow_database($options) {
+ public function backupnow_database($options = array()) {
$skip_cloud = empty($options['nocloud']) ? false : true;
return $this->boot_backup(0, 1, false, false, ($skip_cloud) ? 'none' : false, $options);
}
@@ -3083,7 +3164,7 @@ public function get_semaphore_lock($backup_files, $backup_database) {
// doing_action() was added in WP 3.9
// wp_cron() can be called from the 'init' action
- if (function_exists('doing_action') && (doing_action('init') || (defined('DOING_CRON') && DOING_CRON)) && (doing_action('updraft_backup_database') || doing_action('updraft_backup'))) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if (function_exists('doing_action') && (doing_action('init') || (defined('DOING_CRON') && DOING_CRON)) && (doing_action('updraft_backup_database') || doing_action('updraft_backup'))) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
$last_scheduled_action_called_at = get_option("updraft_last_scheduled_$semaphore");
// 11 minutes - so, we're assuming that they haven't custom-modified their schedules to run scheduled backups more often than that. If they have, they need also to use the filter to over-ride this check.
$seconds_ago = time() - $last_scheduled_action_called_at;
@@ -3168,13 +3249,13 @@ public function is_backup_running() {
$time_passed = $jobdata['run_times'];
// No runtime found so return
- if (!is_array($time_passed)) return "job_scheduled_${nonce}_no_run_times";
+ if (!is_array($time_passed)) return "job_scheduled_{$nonce}_no_run_times";
// Runtime has been found so make sure last activity is over an hour
$time_passed = end($time_passed);
if (strtotime($time_passed) <= time() - (3600)) continue;
- return "job_scheduled_${nonce}_run_time_activity";
+ return "job_scheduled_{$nonce}_run_time_activity";
}
}
@@ -3225,8 +3306,8 @@ private function get_initial_resume_interval() {
*/
public function boot_backup($backup_files, $backup_database, $restrict_files_to_override = false, $one_shot = false, $service = false, $options = array()) {
- if (function_exists('ignore_user_abort')) @ignore_user_abort(true);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- if (function_exists('set_time_limit')) @set_time_limit(UPDRAFTPLUS_SET_TIME_LIMIT);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if (function_exists('ignore_user_abort')) @ignore_user_abort(true);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
+ if (function_exists('set_time_limit')) @set_time_limit(UPDRAFTPLUS_SET_TIME_LIMIT);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
$is_scheduled_backup = is_bool($backup_files) || is_bool($backup_database);
@@ -3250,7 +3331,13 @@ public function boot_backup($backup_files, $backup_database, $restrict_files_to_
if (!is_file($this->logfile_name)) {
$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.');
- $this->log(__('Could not create files in the backup directory. Backup aborted - check your UpdraftPlus settings.', 'updraftplus'), 'error');
+ $this->log(__('Could not create files in the backup directory.', 'updraftplus').' '.__('Backup aborted - check your UpdraftPlus settings.', 'updraftplus'), 'error');
+
+ if (!defined('UPDRAFTPLUS_SEND_UNWRITABLE_BACKUP_DIRECTORY_EMAIL') || UPDRAFTPLUS_SEND_UNWRITABLE_BACKUP_DIRECTORY_EMAIL) {
+ $final_message = __('UpdraftPlus is unable to perform backups as your backup directory is not writable or the disk space is full.', 'updraftplus').' '.__('Please check the backup directory and ensure it is writable so that backups may continue.', 'updraftplus');
+ $this->send_results_email($final_message, $this->jobdata);
+ }
+
return false;
}
@@ -3309,7 +3396,7 @@ public function boot_backup($backup_files, $backup_database, $restrict_files_to_
}
}
}
- $this->log("Processed schedules. ${sched_log_extra}Tasks now: Backup files: $backup_files Backup DB: $backup_database");
+ $this->log("Processed schedules. {$sched_log_extra}Tasks now: Backup files: $backup_files Backup DB: $backup_database");
}
if (false == apply_filters('updraftplus_boot_backup', true, $backup_files, $backup_database, $one_shot)) {
@@ -3603,15 +3690,15 @@ public function backup_finish($do_cleanup, $allow_email, $force_abort = false) {
$service = $this->jobdata_get('service');
$remote_sent = (!empty($service) && ((is_array($service) && in_array('remotesend', $service)) || 'remotesend' === $service)) ? true : false;
if (0 == $this->error_count('warning')) {
- $final_message = __('The backup apparently succeeded and is now complete', 'updraftplus');
+ $final_message = __('The backup succeeded and is now complete', 'updraftplus');
// Ensure it is logged in English. Not hugely important; but helps with a tiny number of really broken setups in which the options cacheing is broken
- if ('The backup apparently succeeded and is now complete' != $final_message) {
- $this->log('The backup apparently succeeded and is now complete');
+ if ('The backup succeeded and is now complete' != $final_message) {
+ $this->log('The backup succeeded and is now complete');
}
} else {
- $final_message = __('The backup apparently succeeded (with warnings) and is now complete', 'updraftplus');
- if ('The backup apparently succeeded (with warnings) and is now complete' != $final_message) {
- $this->log('The backup apparently succeeded (with warnings) and is now complete');
+ $final_message = __('The backup succeeded (with warnings) and is now complete', 'updraftplus');
+ if ('The backup succeeded (with warnings) and is now complete' != $final_message) {
+ $this->log('The backup succeeded (with warnings) and is now complete');
}
}
if ($remote_sent && !$force_abort) {
@@ -3676,7 +3763,7 @@ public function backup_finish($do_cleanup, $allow_email, $force_abort = false) {
// Make sure this is the final message logged (so it remains on the dashboard)
$this->log($final_message);
- @fclose($this->logfile_handle);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @fclose($this->logfile_handle);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
$this->logfile_handle = null;
// This is left until last for the benefit of the front-end UI, which then gets maximum chance to display the 'finished' status
@@ -3747,7 +3834,11 @@ private function send_results_email($final_message, $jobdata) {
}
$warnings = (isset($jobdata['warnings'])) ? $jobdata['warnings'] : array();
if (is_array($warnings) && count($warnings) >0) {
- $append_log .= __('Warnings encountered:', 'updraftplus')."\r\n";
+ if ('finished' == $jobdata['jobstatus'] && 0 == $this->error_count()) {
+ $append_log .= __('Warnings encountered (note: this is for information; the backup has completed successfully)', 'updraftplus')."\r\n";
+ } else {
+ $append_log .= __('Warnings encountered:', 'updraftplus')."\r\n";
+ }
$attachments[0] = $this->logfile_name;
foreach ($warnings as $err) {
$append_log .= "* ".rtrim($err)."\r\n";
@@ -3800,7 +3891,7 @@ private function send_results_email($final_message, $jobdata) {
if (!class_exists('UpdraftPlus_Notices')) updraft_try_include_file('includes/updraftplus-notices.php', 'include_once');
global $updraftplus_notices;
- $ws_advert = $updraftplus_notices->do_notice(false, 'report-plain', true);
+ $ws_notice = $updraftplus_notices->do_notice(false, 'report-plain', true);
$body = apply_filters('updraft_report_body',
__('Backup of:', 'updraftplus').' '.site_url()."\r\n".
@@ -3810,7 +3901,7 @@ private function send_results_email($final_message, $jobdata) {
$extra_msg.
"\r\n".
$feed.
- $ws_advert."\r\n".
+ $ws_notice."\r\n".
$append_log,
$final_message,
$backup_contains,
@@ -3834,8 +3925,8 @@ private function send_results_email($final_message, $jobdata) {
if (!$whandle = gzopen($attach.'.gz', 'w')) {
$this->log("Error: Failed to open log file for reading: ".$attach.".gz");
} else {
- while (false !== ($line = @stream_get_line($handle, 131072, "\n"))) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- @gzwrite($whandle, $line."\n");// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ while (false !== ($line = @stream_get_line($handle, 131072, "\n"))) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
+ @gzwrite($whandle, $line."\n");// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
}
fclose($handle);
gzclose($whandle);
@@ -3881,7 +3972,7 @@ private function send_results_email($final_message, $jobdata) {
}
}
- foreach ($unlink_files as $file) @unlink($file);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ foreach ($unlink_files as $file) @unlink($file);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise if the file doesn't exist.
do_action('updraft_report_finished');
@@ -4025,14 +4116,14 @@ public function list_errors() {
foreach ($this->errors as $err) {
if (is_wp_error($err)) {
foreach ($err->get_error_messages() as $msg) {
- echo ''.htmlspecialchars($msg).' ';
+ echo ' '.esc_html($msg).' ';
}
} elseif (is_array($err) && ('error' == $err['level'] || 'warning' == $err['level'])) {
- echo " ".htmlspecialchars($err['message'])." ";
+ echo "".esc_html($err['message'])." ";
} elseif (is_string($err)) {
- echo "".htmlspecialchars($err)." ";
+ echo "".esc_html($err)." ";
} else {
- print "".print_r($err, true)." ";
+ print "".esc_html(print_r($err, true))." ";
}
}
echo '';
@@ -4044,7 +4135,7 @@ public function list_errors() {
* @param Array $backup_array An array of backup information
*/
private function save_last_backup($backup_array) {
- $success = ($this->error_count() == 0) ? 1 : 0;
+ $success = (0 == $this->error_count()) ? 1 : 0;
$last_backup = UpdraftPlus_Options::get_updraft_option('updraft_last_backup', array());
if (empty($last_backup)) $last_backup = array();
if ('incremental' === $this->jobdata_get('job_type')) {
@@ -4090,7 +4181,7 @@ public function check_db_connection($handle = false, $log_it = false, $reschedul
if ('mysql link' == $type || 'mysqli' == $type) {
if ('mysql link' == $type && @mysql_ping($handle)) return true;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged, PHPCompatibility.Extensions.RemovedExtensions.mysql_DeprecatedRemoved -- Needed to add this as the old ignores no longer work
- if ('mysqli' == $type && @mysqli_ping($handle)) return true;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if ('mysqli' == $type && @mysqli_ping($handle)) return true;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
for ($tries = 1; $tries <= 5; $tries++) {
// to do, if ever needed
@@ -4313,7 +4404,7 @@ private function delete_local($file) {
*/
public function check_recent_modification($file) {
if (file_exists($file)) {
- $time_mod = (int) @filemtime($file);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ $time_mod = (int) @filemtime($file);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
$time_now = time();
if ($time_mod > 100 && ($time_now - $time_mod) < 30) {
UpdraftPlus_Job_Scheduler::terminate_due_to_activity($file, $time_now, $time_mod);
@@ -4459,7 +4550,7 @@ public function compile_folder_list_for_backup($backup_from_inside_dir, $avoid_t
}
}
}
- @closedir($handle);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @closedir($handle);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
if ($log_skipped > 0) {
$this->log("finding files: $log_skipped_last: adding to list ($added, last; $log_skipped log lines skipped)");
}
@@ -4481,7 +4572,7 @@ private function save_backup_to_history($backup_array) {
if (!is_array($backup_array)) {
$this->log('Could not save backup history because we have no backup array. Backup probably failed.');
- $this->log(__('Could not save backup history because we have no backup array. Backup probably failed.', 'updraftplus'), 'error');
+ $this->log(__('Could not save backup history because we have no backup array.', 'updraftplus').' '.__('Backup probably failed.', 'updraftplus'), 'error');
return;
}
@@ -4699,8 +4790,10 @@ public function storage_options_filter($options, $option_name) {
public function backups_dir_location($allow_cache = true) {
if ($allow_cache && !empty($this->backup_dir)) return $this->backup_dir;
+ $updraft_dir = UpdraftPlus_Options::get_updraft_option('updraft_dir');
+ if (!is_string($updraft_dir)) $updraft_dir = '';
+ $updraft_dir = untrailingslashit($updraft_dir);
- $updraft_dir = untrailingslashit(UpdraftPlus_Options::get_updraft_option('updraft_dir'));
// When newly installing, if someone had (e.g.) wp-content/updraft in their database from a previous, deleted pre-1.7.18 install but had removed the updraft directory before re-installing, without this fix they'd end up with wp-content/wp-content/updraft.
if (preg_match('/^wp-content\/(.*)$/', $updraft_dir, $matches) && ABSPATH.'wp-content' === WP_CONTENT_DIR) {
UpdraftPlus_Options::update_updraft_option('updraft_dir', $matches[1]);
@@ -4724,10 +4817,10 @@ public function backups_dir_location($allow_cache = true) {
// Check for the existence of the dir and prevent enumeration
// index.php is for a sanity check - make sure that we're not somewhere unexpected
if ((!is_dir($updraft_dir) || !is_file($updraft_dir.'/index.html') || !is_file($updraft_dir.'/.htaccess')) && !is_file($updraft_dir.'/index.php') || !is_file($updraft_dir.'/web.config')) {
- @mkdir($updraft_dir, 0775, true);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- @file_put_contents($updraft_dir.'/index.html', "WordPress backups by UpdraftPlus ");// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- if (!is_file($updraft_dir.'/.htaccess')) @file_put_contents($updraft_dir.'/.htaccess', 'deny from all');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
- if (!is_file($updraft_dir.'/web.config')) @file_put_contents($updraft_dir.'/web.config', "\n\n\n \n \n \n \n");// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @mkdir($updraft_dir, 0775, true);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
+ @file_put_contents($updraft_dir.'/index.html', "WordPress backups by UpdraftPlus ");// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
+ if (!is_file($updraft_dir.'/.htaccess')) @file_put_contents($updraft_dir.'/.htaccess', 'deny from all');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
+ if (!is_file($updraft_dir.'/web.config')) @file_put_contents($updraft_dir.'/web.config', "\n\n\n \n \n \n \n");// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
}
$this->backup_dir = $updraft_dir;
@@ -4763,10 +4856,10 @@ public function get_total_backup_size($backup) {
}
public function spool_file($fullpath, $encryption = '') {
- if (function_exists('set_time_limit')) @set_time_limit(900);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if (function_exists('set_time_limit')) @set_time_limit(900);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
if (!file_exists($fullpath) || filesize($fullpath) < 1) {
- _e('File not found', 'updraftplus');
+ esc_html_e('File not found', 'updraftplus');
return;
}
@@ -4778,7 +4871,7 @@ public function spool_file($fullpath, $encryption = '') {
if (ob_get_level()) {
$flush_max = min(5, (int) ob_get_level());
for ($i=1; $i<=$flush_max; $i++) {
- @ob_end_clean();// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @ob_end_clean();// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
}
}
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
@@ -4795,7 +4888,7 @@ public function spool_file($fullpath, $encryption = '') {
if (ob_get_level()) {
$flush_max = min(5, (int) ob_get_level());
for ($i=1; $i<=$flush_max; $i++) {
- @ob_end_clean();// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @ob_end_clean();// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
}
}
if (ob_get_level()) @ob_end_clean(); // phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged --Twice - see HS#6673 - someone at least needed it
@@ -4979,9 +5072,9 @@ public function analyse_db_file($timestamp, $res, $db_file = false, $header_only
if (!$encryption) {
if (class_exists('UpdraftPlus_Addon_MoreDatabase')) {
- $err[] = sprintf(__('Error: %s', 'updraftplus'), __('Decryption failed. The database file is encrypted, but you have no encryption key entered.', 'updraftplus'));
+ $err[] = sprintf(__('Error: %s', 'updraftplus'), __('Decryption failed.', 'updraftplus').' '.__('The database file is encrypted, but you have no encryption key entered.', 'updraftplus'));
} else {
- $err[] = sprintf(__('Error: %s', 'updraftplus'), __('Decryption failed. The database file is encrypted.', 'updraftplus'));
+ $err[] = sprintf(__('Error: %s', 'updraftplus'), __('Decryption failed.', 'updraftplus').' '.__('The database file is encrypted.', 'updraftplus'));
}
return array($mess, $warn, $err, $info);
}
@@ -4991,7 +5084,7 @@ public function analyse_db_file($timestamp, $res, $db_file = false, $header_only
if (is_array($decrypted_file)) {
$db_file = $decrypted_file['fullpath'];
} else {
- $err[] = __('Decryption failed. The most likely cause is that you used the wrong key.', 'updraftplus');
+ $err[] = __('Decryption failed.', 'updraftplus').' '.__('The most likely cause is that you used the wrong key.', 'updraftplus');
return array($mess, $warn, $err, $info);
}
}
@@ -5049,7 +5142,7 @@ public function analyse_db_file($timestamp, $res, $db_file = false, $header_only
// "120 or 240" is a first attempt at something more useful than just fixed at 90 - but should be sufficient (as 90 was for everyone without ~1GB databases)
$default_dbscan_timeout = (filesize($db_file) < 31457280) ? 120 : 240;
$dbscan_timeout = (defined('UPDRAFTPLUS_DBSCAN_TIMEOUT') && is_numeric(UPDRAFTPLUS_DBSCAN_TIMEOUT)) ? UPDRAFTPLUS_DBSCAN_TIMEOUT : $default_dbscan_timeout;
- if (function_exists('set_time_limit')) @set_time_limit($dbscan_timeout);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if (function_exists('set_time_limit')) @set_time_limit($dbscan_timeout);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
// We limit the time that we spend scanning the file for character sets
$db_charset_collate_scan_timeout = (defined('UPDRAFTPLUS_DB_CHARSET_COLLATE_SCAN_TIMEOUT') && is_numeric(UPDRAFTPLUS_DB_CHARSET_COLLATE_SCAN_TIMEOUT)) ? UPDRAFTPLUS_DB_CHARSET_COLLATE_SCAN_TIMEOUT : 10;
@@ -5084,16 +5177,16 @@ public function analyse_db_file($timestamp, $res, $db_file = false, $header_only
$old_siteurl_parsed = parse_url($old_siteurl);
$actual_siteurl_parsed = parse_url(site_url());
if ((stripos($old_siteurl_parsed['host'], 'www.') === 0 && stripos($actual_siteurl_parsed['host'], 'www.') !== 0) || (stripos($old_siteurl_parsed['host'], 'www.') !== 0 && stripos($actual_siteurl_parsed['host'], 'www.') === 0)) {
- $powarn = sprintf(__('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.', 'updraftplus'), $old_siteurl, site_url()).' ';
+ $powarn = sprintf(__('The website address in the backup set (%s) is slightly different from that of the site now (%s).', 'updraftplus'), $old_siteurl, site_url()).' '.__('This is not expected to be a problem for restoring the site, as long as visits to the former address still reach the site.', 'updraftplus').' ';
} else {
$powarn = '';
}
if (('https' == $old_siteurl_parsed['scheme'] && 'http' == $actual_siteurl_parsed['scheme']) || ('http' == $old_siteurl_parsed['scheme'] && 'https' == $actual_siteurl_parsed['scheme'])) {
$powarn .= sprintf(__('This backup set is of this site, but at the time of the backup you were using %s, whereas the site now uses %s.', 'updraftplus'), $old_siteurl_parsed['scheme'], $actual_siteurl_parsed['scheme']);
if ('https' == $old_siteurl_parsed['scheme']) {
- $powarn .= ' '.apply_filters('updraftplus_https_to_http_additional_warning', sprintf(__('This restoration will work if you still have an SSL certificate (i.e. can use https) to access the site. Otherwise, you will want to use %s to search/replace the site address so that the site can be visited without https.', 'updraftplus'), ''.__('the migrator add-on', 'updraftplus').' '));
+ $powarn .= ' '.apply_filters('updraftplus_https_to_http_additional_warning', '');
} else {
- $powarn .= ' '.apply_filters('updraftplus_http_to_https_additional_warning', sprintf(__('As long as your web hosting allows http (i.e. non-SSL access) or will forward requests to https (which is almost always the case), this is no problem. If that is not yet set up, then you should set it up, or use %s so that the non-https links are automatically replaced.', 'updraftplus'), apply_filters('updraftplus_migrator_addon_link', ''.__('the migrator add-on', 'updraftplus').' ')));
+ $powarn .= ' '.apply_filters('updraftplus_http_to_https_additional_warning', '');
}
} else {
$powarn .= apply_filters('updraftplus_dbscan_urlchange_www_append_warning', '');
@@ -5103,10 +5196,7 @@ public function analyse_db_file($timestamp, $res, $db_file = false, $header_only
// For completely different site migration
$info['same_url'] = false;
$info['url_scheme_change'] = false;
- $warn[] = apply_filters('updraftplus_dbscan_urlchange', ''.sprintf(__('This backup set is from a different site (%s) - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work.', 'updraftplus'), htmlspecialchars($old_siteurl.' / '.untrailingslashit(site_url()))).' ', $old_siteurl, $res);
- }
- if (!class_exists('UpdraftPlus_Addons_Migrator')) {
- $warn[] .= ''.__('You can search and replace your database (for migrating a website to a new location/URL) with the Migrator add-on - follow this link for more information', 'updraftplus').' ';
+ $warn[] = apply_filters('updraftplus_dbscan_urlchange', ''.sprintf(__('This backup set is from a different site (%s) - this is not a restoration, but a migration.', 'updraftplus'), htmlspecialchars($old_siteurl.' / '.untrailingslashit(site_url()))).' '.__('You need the Migrator add-on in order to make this work.', 'updraftplus').' ', $old_siteurl, $res);
}
}
@@ -5124,7 +5214,7 @@ public function analyse_db_file($timestamp, $res, $db_file = false, $header_only
// Check for should-be migration
if (!$migration_warning && UpdraftPlus_Manipulation_Functions::normalise_url(home_url()) != UpdraftPlus_Manipulation_Functions::normalise_url($old_home)) {
$migration_warning = true;
- $powarn = apply_filters('updraftplus_dbscan_urlchange', ''.sprintf(__('This backup set is from a different site (%s) - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work.', 'updraftplus'), htmlspecialchars($old_home.' / '.home_url())).' ', $old_home, $res);
+ $powarn = apply_filters('updraftplus_dbscan_urlchange', ''.sprintf(__('This backup set is from a different site (%s) - this is not a restoration, but a migration.', 'updraftplus'), htmlspecialchars($old_home.' / '.home_url())).' '.__('You need the Migrator add-on in order to make this work.', 'updraftplus').' ', $old_home, $res);
if (!empty($powarn)) $warn[] = $powarn;
}
} elseif (!isset($info['created_by_version']) && preg_match('/^\# Created by UpdraftPlus version ([\d\.]+)/', $buffer, $matches)) {
@@ -5134,16 +5224,15 @@ public function analyse_db_file($timestamp, $res, $db_file = false, $header_only
if (!empty($matches[3])) $old_wp_version .= substr($matches[3], 0, strlen($matches[3])-1);
if (version_compare($old_wp_version, $wp_version, '>')) {
// $mess[] = sprintf(__('%s version: %s', 'updraftplus'), 'WordPress', $old_wp_version);
- $warn[] = sprintf(__('You are importing from a newer version of WordPress (%s) into an older one (%s). There are no guarantees that WordPress can handle this.', 'updraftplus'), $old_wp_version, $wp_version);
+ $warn[] = sprintf(__('You are importing from a newer version of WordPress (%s) into an older one (%s).', 'updraftplus'), $old_wp_version, $wp_version).' '.__('There are no guarantees that WordPress can handle this.', 'updraftplus');
}
if (preg_match('/running on PHP ([0-9]+\.[0-9]+)(\s|\.)/', $matches[4], $nmatches) && preg_match('/^([0-9]+\.[0-9]+)(\s|\.)/', PHP_VERSION, $cmatches)) {
$old_php_version = $nmatches[1];
$current_php_version = $cmatches[1];
if (version_compare($old_php_version, $current_php_version, '>')) {
- // $mess[] = sprintf(__('%s version: %s', 'updraftplus'), 'WordPress', $old_wp_version);
- $warn[] = sprintf(__('The site in this backup was running on a webserver with version %s of %s. ', 'updraftplus'), $old_php_version, 'PHP').' '.sprintf(__('This is significantly newer than the server which you are now restoring onto (version %s).', 'updraftplus'), PHP_VERSION).' '.sprintf(__('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.', 'updraftplus'), 'PHP').' '.sprintf(__('Any support requests to do with %s should be raised with your web hosting company.', 'updraftplus'), 'PHP');
+ $warn[] = sprintf(__('The site in this backup was running on a webserver with version %s of %s.', 'updraftplus'), $old_php_version, 'PHP').' '.sprintf(__('This is significantly newer than the server which you are now restoring onto (version %s).', 'updraftplus'), PHP_VERSION).' '.sprintf(__('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.', 'updraftplus'), 'PHP').' '.sprintf(__('Any support requests to do with %s should be raised with your web hosting company.', 'updraftplus'), 'PHP');
} elseif (version_compare($old_php_version, $current_php_version, '<')) {
- $warn[] = sprintf(__('The site in this backup was running on a webserver with version %s of %s. ', 'updraftplus'), $old_php_version, 'PHP').' '.sprintf(__('This is older than the server which you are now restoring onto (version %s).', 'updraftplus'), PHP_VERSION).' '.sprintf(__('You should only proceed if you have checked and are confident (or willing to risk) that your plugins/themes/etc. are compatible with the new %s version.', 'updraftplus'), 'PHP').' '.sprintf(__('Any support requests to do with %s should be raised with your web hosting company.', 'updraftplus'), 'PHP');
+ $warn[] = sprintf(__('The site in this backup was running on a webserver with version %s of %s.', 'updraftplus'), $old_php_version, 'PHP').' '.sprintf(__('This is older than the server which you are now restoring onto (version %s).', 'updraftplus'), PHP_VERSION).' '.sprintf(__('You should only proceed if you have checked and are confident (or willing to risk) that your plugins/themes/etc are compatible with the new %s version.', 'updraftplus'), 'PHP').' '.sprintf(__('Any support requests to do with %s should be raised with your web hosting company.', 'updraftplus'), 'PHP');
}
}
} elseif (null === $old_table_prefix && (preg_match('/^\# Table prefix: ?(\S*)$/', $buffer, $matches) || preg_match('/^-- Table prefix: ?(\S*)$/i', $buffer, $matches))) {
@@ -5170,7 +5259,7 @@ public function analyse_db_file($timestamp, $res, $db_file = false, $header_only
return array($mess, $warn, $err, $info);
}
} elseif (isset($old_siteinfo['multisite']) && $old_siteinfo['multisite'] && !is_multisite()) {
- $warn[] = __('Warning:', 'updraftplus').' '.__('Your backup is of a WordPress multisite install; but this site is not. Only the first site of the network will be accessible.', 'updraftplus').' '.__('If you want to restore a multisite backup, you should first set up your WordPress installation as a multisite.', 'updraftplus').' ';
+ $warn[] = __('Warning:', 'updraftplus').' '.__('Your backup is of a WordPress multisite install; but this site is not.', 'updraftplus').' '.__('Only the first site of the network will be accessible.', 'updraftplus').' '.__('If you want to restore a multisite backup, you should first set up your WordPress installation as a multisite.', 'updraftplus').' ';
}
} elseif (preg_match('/^([^=]+)=(.*)$/', $matches[1], $kvmatches)) {
$key = $kvmatches[1];
@@ -5182,7 +5271,7 @@ public function analyse_db_file($timestamp, $res, $db_file = false, $header_only
$old_siteinfo[$key] = $val;
}
} elseif (preg_match('/^\# Skipped tables: (.*)$/', $buffer, $matches)) {
- $skipped_tables = explode(',', $matches[1]);
+ $skipped_tables = array_map('trim', explode(',', $matches[1]));
}
} elseif (preg_match('#^\s*/\*\!40\d+ SET NAMES (.*)\*\/#i', $buffer, $smatches)) {
@@ -5251,10 +5340,10 @@ public function analyse_db_file($timestamp, $res, $db_file = false, $header_only
}
if ($is_plain) {
if (!feof($dbhandle)) $db_scan_timed_out = true;
- @fclose($dbhandle);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @fclose($dbhandle);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
} else {
if (!gzeof($dbhandle)) $db_scan_timed_out = true;
- @gzclose($dbhandle);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ @gzclose($dbhandle);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
}
if (!empty($db_supported_character_sets)) {
$db_charsets_found_unique = array_unique($db_charsets_found);
@@ -5326,7 +5415,7 @@ public function analyse_db_file($timestamp, $res, $db_file = false, $header_only
$similar_type_collate = UpdraftPlus_Manipulation_Functions::get_matching_str_from_array_elems($db_unsupported_collate_unique, array_keys($db_supported_collations), false);
}
- $collate_select_html = ''.__('Your chosen replacement collation', 'updraftplus').': ';
+ $collate_select_html = '
'.__('Your chosen replacement collation', 'updraftplus').': ';
$collate_select_html .= '
';
$db_charsets_found_unique = array_unique($db_charsets_found);
foreach ($db_supported_collations as $collate => $collate_info_obj) {
@@ -5401,7 +5490,8 @@ public function analyse_db_file($timestamp, $res, $db_file = false, $header_only
foreach ($missing_tables as $key => $value) {
if (in_array($old_table_prefix.$value, $skipped_tables)) {
- unset($missing_tables[$key]);
+ $key_to_unset_skipped_tables = array_search($old_table_prefix.$value, $skipped_tables);
+ unset($skipped_tables[$key_to_unset_skipped_tables]);
}
}
@@ -5409,7 +5499,7 @@ public function analyse_db_file($timestamp, $res, $db_file = false, $header_only
$warn[] = sprintf(__('This database backup is missing core WordPress tables: %s', 'updraftplus'), implode(', ', $missing_tables));
}
if (count($skipped_tables)>0) {
- $warn[] = sprintf(__('This database backup has the following WordPress tables excluded: %s', 'updraftplus'), implode(', ', $skipped_tables));
+ $warn[] = sprintf(__('This database backup has the following non-core WordPress database tables excluded: %s', 'updraftplus'), implode(', ', $skipped_tables));
}
}
} else {
@@ -5446,14 +5536,14 @@ public function analyse_db_file($timestamp, $res, $db_file = false, $header_only
if (empty($tables_found)) {
$warn[] = __('UpdraftPlus was unable to find any tables when scanning the database backup; it maybe corrupt.', 'updraftplus');
} else {
- $select_restore_tables = '';
+ $select_restore_tables = '
';
$select_restore_tables .= '
'.__('If you do not want to restore all your database tables, then choose some to exclude here.', 'updraftplus').'(... )
';
$select_restore_tables .= '
';
if ($db_scan_timed_out || $php_max_input_vars_exceeded) {
- if ($db_scan_timed_out) $all_other_table_title = __('The database scan was taking too long and consequently the list of all tables in the database could not be completed. This option will ensure all tables not found will be backed up.', 'updraftplus');
- if ($php_max_input_vars_exceeded) $all_other_table_title = __('The amount of database tables scanned is near or over the php_max_input_vars value so some tables maybe truncated. This option will ensure all tables not found will be backed up.', 'updraftplus');
+ if ($db_scan_timed_out) $all_other_table_title = __('The database scan was taking too long and consequently the list of all tables in the database could not be completed.', 'updraftplus').' '.__('This option will ensure all tables not found will be backed up.', 'updraftplus');
+ if ($php_max_input_vars_exceeded) $all_other_table_title = __('The amount of database tables scanned is near or over the php_max_input_vars value so some tables maybe truncated.', 'updraftplus').' '.__('This option will ensure all tables not found will be backed up.', 'updraftplus');
$select_restore_tables .= '
';
$select_restore_tables .= '
'.__('Include all tables not listed below', 'updraftplus').' ';
}
@@ -5697,6 +5787,7 @@ public function get_settings_keys() {
'updraftplus_tour_cancelled_on',
'updraftplus_version',
'updraft_dismiss_admin_warning_litespeed',
+ 'updraft_dismiss_admin_warning_pclzip',
'updraft_dismiss_phpseclib_notice',
);
}
@@ -5747,8 +5838,8 @@ public function get_database_tables($dbsinfo = array('wp' => array())) {
}
// Put the options table first
- $updraftplus_database_utility = new UpdraftPlus_Database_Utility($key, $table_prefix_raw, $dbhandle);
- usort($all_tables, array($updraftplus_database_utility, 'backup_db_sorttables'));
+ UpdraftPlus_Database_Utility::init($key, $table_prefix_raw, $dbhandle);
+ usort($all_tables, array('UpdraftPlus_Database_Utility', 'backup_db_sorttables'));
$all_table_names = array_map(array($this, 'cb_get_name'), $all_tables);
$db_tables_array[$key] = $all_table_names;
@@ -5806,38 +5897,71 @@ public function get_url($which_page = false) {
return apply_filters('updraftplus_com_shop', 'https://updraftplus.com/shop/');
break;
case 'premium':
- return apply_filters('updraftplus_com_premium', 'https://updraftplus.com/shop/updraftplus-premium/');
+ return apply_filters('updraftplus_com_premium', 'https://teamupdraft.com/updraftplus/pricing?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=updraftplus-premium&utm_creative_format=text');
break;
case 'buy-tokens':
return apply_filters('updraftplus_com_updraftclone_tokens', 'https://updraftplus.com/shop/updraftclone-tokens/');
break;
case 'lost-password':
- return apply_filters('updraftplus_com_myaccount_lostpassword', 'https://updraftplus.com/my-account/lost-password/');
+ return apply_filters('updraftplus_com_myaccount_lostpassword', 'https://teamupdraft.com/my-account/lost-password/?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=forgotten-details&utm_creative_format=text');
break;
case 'mothership':
return apply_filters('updraftplus_com_mothership', 'https://updraftplus.com/plugin-info');
break;
case 'shop_premium':
- return apply_filters('updraftplus_com_shop_premium', 'https://updraftplus.com/shop/updraftplus-premium/');
+ return apply_filters('updraftplus_com_shop_premium', 'https://teamupdraft.com/updraftplus/pricing?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=updraftplus-premium&utm_creative_format=text#pricing-block');
break;
case 'shop_vault_5':
- return apply_filters('updraftplus_com_shop_vault_5', 'https://updraftplus.com/shop/updraftplus-vault-storage-5-gb/');
+ return apply_filters('updraftplus_com_shop_vault_5', 'https://teamupdraft.com/cart/?add-to-cart=1431&variation_id=1441?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=updraftplus-vault-storage-$1-trial&utm_creative_format=button');
break;
case 'shop_vault_15':
- return apply_filters('updraftplus_com_shop_vault_15', 'https://updraftplus.com/shop/updraftplus-vault-storage-15-gb/');
+ return apply_filters('updraftplus_com_shop_vault_15', 'https://teamupdraft.com/cart/?add-to-cart=1434&variation_id=1441?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=updraftplus-vault-storage-15-gb&utm_creative_format=button');
break;
case 'shop_vault_50':
- return apply_filters('updraftplus_com_shop_vault_50', 'https://updraftplus.com/shop/updraftplus-vault-storage-50-gb/');
+ return apply_filters('updraftplus_com_shop_vault_50', 'https://teamupdraft.com/cart/?add-to-cart=1440&variation_id=1441?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=updraftplus-vault-storage-50-gb&utm_creative_format=button');
break;
case 'shop_vault_250':
- return apply_filters('updraftplus_com_shop_vault_250', 'https://updraftplus.com/shop/updraftplus-vault-storage-250-gb/');
+ return apply_filters('updraftplus_com_shop_vault_250', 'https://teamupdraft.com/cart/?add-to-cart=1437&variation_id=1441?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=updraftplus-vault-storage-250-gb&utm_creative_format=button');
break;
case 'anon_backups':
- return apply_filters('updraftplus_com_anon_backups', 'https://updraftplus.com/upcoming-updraftplus-feature-clone-data-anonymisation/');
+ return apply_filters('updraftplus_com_anon_backups', 'https://teamupdraft.com/blog/upcoming-updraftplus-feature-anonymise-data-before-cloning-your-site/?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=unknown&utm_creative_format=unknown');
break;
case 'clone_packages':
return apply_filters('updraftplus_com_clone_packages', 'https://updraftplus.com/faqs/what-is-the-largest-site-that-i-can-clone-with-updraftclone/');
break;
+ case 'premium_more_than_one_storage':
+ return apply_filters('updraftplus_premium_more_than_one_storage', 'https://teamupdraft.com/updraftplus/pricing?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=more-than-one&utm_creative_format=text');
+ break;
+ case 'premium_rackspace':
+ return apply_filters('updraftplus_premium_rackspace', 'https://teamupdraft.com/updraftplus/features/rackspace-cloudfiles?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=rackspace-container&utm_creative_format=text');
+ break;
+ case 'premium_onedrive':
+ return apply_filters('updraftplus_premium_onedrive', 'https://teamupdraft.com/updraftplus/wordpress-cloud-storage-options?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=back-up-to-onedrive&utm_creative_format=text');
+ break;
+ case 'premium_azure':
+ return apply_filters('updraftplus_premium_azure', 'https://teamupdraft.com/updraftplus/wordpress-cloud-storage-options?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=backup-to-microsoft-azure&utm_creative_format=text');
+ break;
+ case 'premium_sftp':
+ return apply_filters('updraftplus_premium_sftp', 'https://teamupdraft.com/updraftplus/wordpress-cloud-storage-options?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=backup-via-sftp-and-scp&utm_creative_format=text');
+ break;
+ case 'premium_googlecloud':
+ return apply_filters('updraftplus_premium_googlecloud', 'https://teamupdraft.com/updraftplus/wordpress-cloud-storage-options?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=backup-to-google-cloud&utm_creative_format=text');
+ break;
+ case 'premium_backblaze':
+ return apply_filters('updraftplus_premium_backblaze', 'https://teamupdraft.com/updraftplus/wordpress-cloud-storage-options?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=backup-to-backblaze&utm_creative_format=text');
+ break;
+ case 'premium_webdav':
+ return apply_filters('updraftplus_premium_webdav', 'https://teamupdraft.com/updraftplus/wordpress-cloud-storage-options?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=backup-to-webdav&utm_creative_format=text');
+ break;
+ case 'premium_pcloud':
+ return apply_filters('updraftplus_premium_pcloud', 'https://teamupdraft.com/updraftplus/wordpress-cloud-storage-options?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=backup-to-pcloud&utm_creative_format=text');
+ break;
+ case 'premium_email':
+ return apply_filters('updraftplus_premium_email', 'https://teamupdraft.com/updraftplus/features/advanced-wordpress-backup-reports?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=for-more-email-options&utm_creative_format=notice');
+ break;
+ case 'buy_clone_tokens':
+ return apply_filters('updraftplus_buy_clone_tokens', 'https://teamupdraft.com/updraftplus/updraftclone/?utm_source=udp-plugin&utm_medium=referral&utm_campaign=paac&utm_content=to-clone-your-site&utm_creative_format=text#pricing-block');
+ break;
default:
return 'URL not found ('.$which_page.')';
}
@@ -6040,7 +6164,7 @@ public function server_configuration_file_list() {
'.htaccess',
);
// the default value for user_ini.filename setting in PHP.ini file is '.user.ini' but this could be set to use different file name
- $server_config_filenames[] = ini_get('user_ini.filename'); // phpcs:ignore PHPCompatibility.IniDirectives.NewIniDirectives.user_ini_filenameFound
+ $server_config_filenames[] = ini_get('user_ini.filename'); // phpcs:ignore PHPCompatibility.IniDirectives.NewIniDirectives.user_ini_filenameFound -- Ignore ini_get function compatibility.
$server_config_filenames = array_unique($server_config_filenames);
return $server_config_filenames;
}
@@ -6187,6 +6311,7 @@ public function if_cond($value1, $operator, $value2) {
return $value1 != $value2;
break;
default:
+ // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error messages should be escaped when caught and printed.
throw new Exception(__METHOD__.": Unsupported (".$operator.") operator", 1);
break;
}
@@ -6278,7 +6403,39 @@ protected function list_active_features_requiring_phpseclib() {
private function get_site_name() {
return preg_replace('/^www\./i', '', strtolower(parse_url(network_site_url(), PHP_URL_HOST)));
}
-
+
+ /**
+ * Function to load Updraft_Checkout_Embed
+ *
+ * @return void
+ */
+ public static function load_checkout_embed() {
+ global $updraftplus_checkout_embed;
+ if (!class_exists('Updraft_Checkout_Embed')) updraft_try_include_file('includes/checkout-embed/class-udp-checkout-embed.php', 'include_once');
+
+ // Create an empty list (useful for testing, thanks to the filter below)
+ $checkout_embed_products = array();
+
+ // get products from JSON file.
+ $checkout_embed_product_file = UPDRAFTPLUS_DIR.'/includes/checkout-embed/products.json';
+ if (file_exists($checkout_embed_product_file)) {
+ $checkout_embed_products = json_decode(file_get_contents($checkout_embed_product_file));
+ } else {
+ throw new Exception(sprintf("The %s file is missing.", $checkout_embed_product_file)); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error messages should be escaped when caught and printed.
+ }
+
+ $checkout_embed_products = apply_filters('updraftplus_checkout_embed_products', $checkout_embed_products);
+
+ if (!empty($checkout_embed_products)) {
+ $updraftplus_checkout_embed = new Updraft_Checkout_Embed(
+ 'updraftplus', // plugin name
+ UpdraftPlus_Options::admin_page_url().'?page=updraftplus', // return url
+ $checkout_embed_products, // products list
+ UPDRAFTPLUS_URL.'/includes' // base_url
+ );
+ }
+ }
+
/**
* Function to replace avatar with default image in UpdraftClone environment
*
@@ -6290,4 +6447,44 @@ public function get_avatar_url($url) {
if (preg_match('/gravatar.com/i', $url)) return UPDRAFTPLUS_URL.'/images/default-avatar.jpg';
return $url;
}
+
+ /**
+ * Modifies the parent file value.
+ *
+ * This modification is necessary to prevent the active menu selection from pointing to the
+ * old "Settings" menu and to ensure correct menu highlighting.
+ *
+ * @param string $parent_file The current parent file value.
+ *
+ * @return string The modified parent file value.
+ */
+ public static function parent_file($parent_file) {
+ // Set the global variable 'self' and update the parent file to UpdraftPlus_Options::PARENT_FILE
+ $GLOBALS['self'] = $parent_file = UpdraftPlus_Options::PARENT_FILE;
+
+ return $parent_file;
+ }
+
+ /**
+ * Unserialize data while maintaining compatibility across PHP versions due to different number of arguments required by PHP's "unserialize" function
+ *
+ * @param string $serialized_data Data to be unserialized, should be one that is already serialized
+ * @param boolean|array $allowed_classes Either an array of class names which should be accepted, false to accept no classes, or true to accept all classes
+ * @param integer $max_depth The maximum depth of structures permitted during unserialization, and is intended to prevent stack overflows
+ * @return mixed Unserialized data can be any of types (integer, float, boolean, string, array or object)
+ */
+ public static function unserialize($serialized_data, $allowed_classes = false, $max_depth = 0) {
+ static $polyfill_unserialize_loaded = false;
+ if (version_compare(PHP_VERSION, '5.2', '<=')) {
+ $result = unserialize($serialized_data); // For PHP 5.2 users, the search-replace feature has been removed, meaning that any input provided in this context will not undergo search-replace processing
+ } else {
+ if (!$polyfill_unserialize_loaded) {
+ if (!class_exists('Brumann\Polyfill\DisallowedClassesSubstitutor')) updraft_try_include_file('vendor/brumann/polyfill-unserialize/src/DisallowedClassesSubstitutor.php', 'require_once');
+ if (!class_exists('Brumann\Polyfill\Unserialize')) updraft_try_include_file('vendor/brumann/polyfill-unserialize/src/Unserialize.php', 'require_once');
+ $polyfill_unserialize_loaded = true;
+ }
+ $result = call_user_func(array('Brumann\Polyfill\Unserialize', 'unserialize'), $serialized_data, array('allowed_classes' => $allowed_classes, 'max_depth' => $max_depth));
+ }
+ return $result;
+ }
}
diff --git a/wp-content/plugins/updraftplus/css/updraftplus-admin-1-25-5.min.css b/wp-content/plugins/updraftplus/css/updraftplus-admin-1-25-5.min.css
new file mode 100644
index 00000000..4601b82e
--- /dev/null
+++ b/wp-content/plugins/updraftplus/css/updraftplus-admin-1-25-5.min.css
@@ -0,0 +1,2 @@
+@-webkit-keyframes udp_blink{from{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:.4;-webkit-transform:scale(0.85);transform:scale(0.85)}}@keyframes udp_blink{from{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:.4;-webkit-transform:scale(0.85);transform:scale(0.85)}}@-webkit-keyframes udp_rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes udp_rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.max-width-600{max-width:600px}.max-width-700{max-width:700px}.width-900{max-width:900px}.width-80{width:80%}.updraft--flex{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft--flex>*{-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-sizing:border-box;box-sizing:border-box}.updraft--flex>.updraft--one-half{width:50%;-webkit-box-flex:1;-ms-flex:auto;flex:auto}.updraft--flex>.updraft--two-halves{width:100%;-webkit-box-flex:1;-ms-flex:auto;flex:auto}.updraft-file-ready-label{padding:5px}.updraft-color--very-light-grey{background:#f8f8f8}.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{-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);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;-webkit-transition:all .2s;transition:all .2s;vertical-align:baseline;-webkit-box-sizing:border-box;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}.button-ud-google{text-decoration:none !important;-webkit-transition:background-color .3s,-webkit-box-shadow .3s;transition:background-color .3s,-webkit-box-shadow .3s;transition:background-color .3s,box-shadow .3s;transition:background-color .3s,box-shadow .3s,-webkit-box-shadow .3s;padding:12px 16px 12px 42px !important;border:0;border-radius:3px;-webkit-box-shadow:0 -1px 0 rgba(0,0,0,.04),0 1px 1px rgba(0,0,0,.25);box-shadow:0 -1px 0 rgba(0,0,0,.04),0 1px 1px rgba(0,0,0,.25);color:#757575;font-size:14px;font-weight:500;font-family:"Roboto";background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTcuNiA5LjJsLS4xLTEuOEg5djMuNGg0LjhDMTMuNiAxMiAxMyAxMyAxMiAxMy42djIuMmgzYTguOCA4LjggMCAwIDAgMi42LTYuNnoiIGZpbGw9IiM0Mjg1RjQiIGZpbGwtcnVsZT0ibm9uemVybyIvPjxwYXRoIGQ9Ik05IDE4YzIuNCAwIDQuNS0uOCA2LTIuMmwtMy0yLjJhNS40IDUuNCAwIDAgMS04LTIuOUgxVjEzYTkgOSAwIDAgMCA4IDV6IiBmaWxsPSIjMzRBODUzIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48cGF0aCBkPSJNNCAxMC43YTUuNCA1LjQgMCAwIDEgMC0zLjRWNUgxYTkgOSAwIDAgMCAwIDhsMy0yLjN6IiBmaWxsPSIjRkJCQzA1IiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48cGF0aCBkPSJNOSAzLjZjMS4zIDAgMi41LjQgMy40IDEuM0wxNSAyLjNBOSA5IDAgMCAwIDEgNWwzIDIuNGE1LjQgNS40IDAgMCAxIDUtMy43eiIgZmlsbD0iI0VBNDMzNSIgZmlsbC1ydWxlPSJub256ZXJvIi8+PHBhdGggZD0iTTAgMGgxOHYxOEgweiIvPjwvZz48L3N2Zz4=);background-color:#FFF;background-repeat:no-repeat;background-position:12px 11px}.button-ud-google:hover{-webkit-box-shadow:0 -1px 0 rgba(0,0,0,.04),0 2px 4px rgba(0,0,0,.25);box-shadow:0 -1px 0 rgba(0,0,0,.04),0 2px 4px rgba(0,0,0,.25)}.button-ud-google:active{background-color:#EEE}.button-ud-google:focus{outline:0;-webkit-box-shadow:0 -1px 0 rgba(0,0,0,.04),0 2px 4px rgba(0,0,0,.25),0 0 0 3px #c8dafc;box-shadow:0 -1px 0 rgba(0,0,0,.04),0 2px 4px rgba(0,0,0,.25),0 0 0 3px #c8dafc}.button-ud-google:disabled{-webkit-filter:grayscale(100%);filter:grayscale(100%);background-color:#ebebeb;-webkit-box-shadow:0 -1px 0 rgba(0,0,0,.04),0 1px 1px rgba(0,0,0,.25);box-shadow:0 -1px 0 rgba(0,0,0,.04),0 1px 1px rgba(0,0,0,.25);cursor:not-allowed}.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:-webkit-box;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;-webkit-box-flex:1;-ms-flex:1;flex:1}.updraftclone_action_box p:first-child{margin-top:0}.updraftclone_action_box p:last-child{margin-bottom:0}.updraftclone_action_box #ud_downloadstatus3{margin-top:10px}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:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-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{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft_migrate_widget_temporary_clone_stage0_box{-ms-flex-preferred-size:45%;flex-basis:45%}.updraft_migrate_widget_temporary_clone_stage0_box iframe,.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js{float:right}}.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons{text-decoration:none;font-size:20px}.opened .button.updraft_migrate_widget_temporary_clone_show_stage0{display:inline-block}.opened .updraft_migrate_widget_temporary_clone_stage0{background:#f5f5f5;padding:20px;border-radius:8px;margin-bottom:21px}.clone-list{clear:both;width:100%;margin-top:40px}.clone-list table{width:100%;text-align:left}.clone-list table tr th{background:#e4e4e4}.clone-list table tr td{background:#f5f5f5;word-break:break-word}.clone-list table tr:nth-child(odd) td{background:#fafafa}.clone-list table td,.clone-list table th{padding:6px}.updraftplus-clone .updraft_row{padding-left:0;padding-right:0}button#updraft_migrate_createclone+.updraftplus_spinner{margin-top:13px}.button.button-hero.updraftclone_show_step_1{white-space:normal;height:auto;line-height:14px;padding-top:10px;padding-bottom:10px}.button.button-hero.updraftclone_show_step_1 span.dashicons{height:auto}.updraftplus_clone_status{color:red}a.updraft_migrate_add_site--trigger span.dashicons{text-decoration:none}.button-restore:hover,.button-migrate:hover,.button-backup:hover,.button-view-log:hover,.button-mass-selectors:hover,.button-delete:hover,.button-entity-backup:hover,.udp-button-primary:hover{border-color:#df6926;color:#df6926}.button-migrate{color:#eea920;border-color:#eea920}#updraft_migrate_tab_main{padding:8px}.updraft_migrate_widget_module_content{background:#FFF;border-radius:0;position:relative}body.js #updraft_migrate .updraft_migrate_widget_module_content{display:none}.updraft_migrate_widget_module_content>h3,div[class*="updraft_migrate_widget_temporary_clone_stage"]>h3{margin-top:0}.updraft_migrate_widget_module_content header,#updraft_migrate_tab_alt header{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content: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,#updraft_migrate_tab_alt header h3,#updraft_migrate_tab_alt header button.button.close{padding:10px;line-height:20px;height:auto;margin:0}.updraft_migrate_widget_module_content button.button.close,#updraft_migrate_tab_alt button.button.close{text-decoration:none;padding-left:5px;border-right:1px solid #CCC}.updraft_migrate_widget_module_content button.button.close .dashicons,#updraft_migrate_tab_alt button.button.close .dashicons{margin-top:1px}.updraft_migrate_widget_module_content header h3,#updraft_migrate_tab_alt 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_tab_alt #updraft_migrate_send_existing_button{margin-right:6px}#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;-webkit-box-shadow:0 0 0 1px rgba(91,157,217,0.22),0 0 2px 1px rgba(30,140,190,0.3);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;-webkit-box-shadow:1px 6px 12px -5px rgba(0,0,0,0.3);box-shadow:1px 6px 12px -5px rgba(0,0,0,0.3)}#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active:focus{-webkit-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);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;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);z-index:1}button.ui-dialog-titlebar-close:before{content:none !important}.updraft_next_scheduled_backups_wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;background:#FFF;justify-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft_next_scheduled_backups_wrapper>div{width:50%;background:#FFF;height:auto;padding:33px;-webkit-box-sizing:border-box;box-sizing:border-box}.updraft_backup_btn_wrapper{text-align:center;border-left:1px solid #f1f1f1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align: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;-webkit-box-shadow:none;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;-webkit-transition:.3s all;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:inline-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}.updraft-fs-italic{font-style:italic}@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;-webkit-box-shadow:none;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-settings-content table.form-table .notice p{max-width:none}#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}label[for=updraft_servicecheckbox_updraftvault]{position:relative}#updraft-wrap .udp-info{position:absolute;right:10px;top:calc(50% - 10px)}#updraft-wrap span.info-trigger{display:inline-block;width:20px;height:20px;background:#FFF;color:#72777c;border-radius:30px;text-align:center;line-height:20px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.15);box-shadow:0 1px 3px rgba(0,0,0,0.15)}#updraft-wrap .info-content-wrapper{display:none;position:absolute;bottom:20px;-webkit-transform:translatex(calc(-50% + 10px));transform:translatex(calc(-50% + 10px));width:330px;padding-bottom:10px}#updraft-wrap .info-content-wrapper::before{content:'';position:absolute;bottom:-10px;border:10px solid transparent;border-top-color:#FFF;left:calc(50% - 10px)}#updraft-wrap .info-content{padding:20px;background:#FFF;border-radius:4px;-webkit-box-shadow:0 3px 10px rgba(0,0,0,0.1);box-shadow:0 3px 10px rgba(0,0,0,0.1);color:#72777c}#updraft-wrap .info-content h3{margin-top:0}#updraft-wrap .info-content p{margin-top:10px}#updraft-wrap .udp-info:hover .info-content-wrapper{display:block}div.conditional_remote_backup select.logic_type{vertical-align:inherit !important}div.conditional_remote_backup label.updraft_toggle_instance_label.radio_group{display:block;margin-top:7px}div.conditional_remote_backup div.logic ul.rules input.rule_value{vertical-align:middle}div.conditional_remote_backup p{margin-bottom:10px}div.conditional_remote_backup div.logic ul.rules span svg{width:20px;vertical-align:middle;cursor:pointer}div.conditional_remote_backup div.logic ul.rules span svg{margin-left:3px}div.conditional_remote_backup div.logic select.logic_type{vertical-align:unset}.updraft_jstree .jstree-container-ul>.jstree-node,div[id^="updraft_more_files_jstree_"] .jstree-container-ul>.jstree-node{background:transparent}.updraft_jstree .jstree-container-ul>.jstree-open>.jstree-ocl,div[id^="updraft_more_files_jstree_"] .jstree-container-ul>.jstree-open>.jstree-ocl{background-position:-36px -4px}.updraft_jstree .jstree-container-ul>.jstree-closed>.jstree-ocl,div[id^="updraft_more_files_jstree_"] .jstree-container-ul>.jstree-closed>.jstree-ocl{background-position:-4px -4px}.updraft_jstree .jstree-container-ul>.jstree-leaf>.jstree-ocl,div[id^="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,#updraft_exclude_files_folders_wildcards_jstree{max-height:200px;overflow-y:scroll}.updraft_jstree{position:relative;border:1px dotted;height:80%;width:100%;overflow:auto}div[id^="updraft_more_files_container_"],div.updraft_googledrive_container{position:relative;display:none;width:100%;border:1px solid #CCC;background:#fafafa;margin-bottom:5px;margin-top:4px;-webkit-box-shadow:0 5px 8px rgba(0,0,0,0.1);box-shadow:0 5px 8px rgba(0,0,0,0.1)}div.updraft_googledrive_container ul.jstree-container-ul{overflow-y:scroll;max-height:200px}div[id^="updraft_more_files_container_"]::before,div.updraft_googledrive_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;-webkit-transform:translatey(-7px) rotate(45deg);transform:translatey(-7px) rotate(45deg)}input.updraft_more_path_editing{border-color:#0285ba}input.updraft_more_path_editing ~ a.dashicons{display:none}div[id^="updraft_jstree_buttons_"]{padding:10px;background:#e6e6e6}div[id^="updraft_jstree_container_"]{height:300px;width:100%;overflow:auto}div[id^="updraft_more_files_container_"] button{line-height:20px}button[id^="updraft_parent_directory_"]{margin:10px 10px 4px 10px;padding-left:3px}button[id^="updraft_jstree_confirm_"],button[id^="updraft_jstree_cancel_"]{display:none}input[id^="updraft_include_more_path_restore_"]{text-align:right}.updraftplus-morefiles-row-delete,.updraftplus-morefiles-row-edit{cursor:pointer}#updraft_include_more_paths_error{color:#de3c3c}p[id^="updraftplus_manual_authentication_error_"]{color:#de3c3c}#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;margin-left:4px}.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;-webkit-box-shadow:0 1px 0 #c10100;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;-webkit-box-shadow:0 1px 0 #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{-webkit-box-shadow:inherit;box-shadow:inherit;-webkit-box-shadow:0 0 3px rgba(0,115,170,0.8);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{margin-top:30px;width:100%}#filelist .file,#filelist2 .file,.ud_downloadstatus .file,#ud_downloadstatus2 .file,#ud_downloadstatus3 .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__action{position:relative;text-align:center}.updraft_premium_cta a.button.button-primary.button-hero{font-size:1.3em;letter-spacing:.03rem;text-transform:uppercase;margin-bottom:7px}.updraft_premium_cta a.button.button-primary.button-hero+small{display:block;max-width:100%;text-align:center;color:#afafaf}.updraft_premium_cta a.button.button-primary.button-hero+small .dashicons{width:12px;height:12px}.updraft_premium_cta__top{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-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{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:center;-webkit-box-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;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.1);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;align-self:center;background:0;-webkit-box-shadow:none;box-shadow:none}.updraft-more-plugins{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;flex-wrap:wrap}.updraft-more-plugins img{max-width:80%;max-height:30%;display:inline-block}.updraft-more-plugins .udp-box{-webkit-box-sizing:border-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;background:#FFF;border-left:4px solid #FFF;border-left-color:#dc3232;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 0 15px 0;padding:5px 12px}.updraftplus_com_login_status.success{border-left-color:green}#updraft-wrap strong.success{color:green}.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,#ud_downloadstatus3 .dlfileprogress{width:0;background:#0572aa;height:8px;-webkit-transition:width .3s;transition:width .3s}.ud_downloadstatus .raw,#ud_downloadstatus2 .raw,#ud_downloadstatus3 .raw{margin-top:8px;clear:left}.ud_downloadstatus .file,#ud_downloadstatus2 .file,#ud_downloadstatus3 .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;-webkit-transform:translatey(3px);transform:translatey(3px)}.updraft_saving_popup img{-webkit-animation-name:udp_blink;animation-name:udp_blink;-webkit-animation-duration:610ms;animation-duration:610ms;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-direction:alternate;animation-direction:alternate;-webkit-animation-timing-function:ease-out;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}.updated.backup-restored{padding-top:15px;padding-bottom:15px}.backup-restored span{font-size:120%}.memory-limit{padding:8px}.updraft_list_errors{padding:8px}.updraftplus-nav-tab.nav-tab-active,.updraftplus-nav-tab.nav-tab-active:hover,.updraftplus-nav-tab.nav-tab-active:focus,.updraftplus-nav-tab.nav-tab-active:focus:active{border-bottom:1px solid #f0f0f1;background:#f0f0f1 !important;color:#000}.updraftplus-nav-tab.nav-tab-active{margin-bottom:-1px;color:#3c434a}.updraftplus-nav-tab.nav-tab-active,.updraftplus-nav-tab:focus:active{-webkit-box-shadow:none;box-shadow:none}.updraftplus-nav-tab{float:left;border:1px solid #c3c4c7;border-bottom-color:#c3c4c7;border-bottom-style:solid;border-bottom-width:1px;border-bottom:0;margin-left:.5em;padding:5px 10px;font-size:14px;line-height:1.71428571;font-weight:600;background:#dcdcde;color:#50575e;text-decoration:none;white-space:nowrap}.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}section.premium-upgrade-purchase-success{padding:2em;background:#fafafa;text-align:center;-webkit-box-shadow:0 14px 40px rgba(0,0,0,0.1);box-shadow:0 14px 40px rgba(0,0,0,0.1)}section.premium-upgrade-purchase-success h3{font-size:2em;color:green}section.premium-upgrade-purchase-success h3 .dashicons{display:block;margin:0 auto;font-size:60px;width:60px;height:60px;border-radius:50%;background:green;color:#FFF;margin-bottom:20px}section.premium-upgrade-purchase-success h3 .dashicons::before{display:inline-block;margin-left:-4px;margin-top:2px}section.premium-upgrade-purchase-success p{font-size:120%}.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,#backupnow_includecloud_moreoptions{margin:4px 16px 6px 16px;border:1px dotted;padding:6px 10px}#backupnow_database_moreoptions{max-height:250px;overflow:auto}#backupnow_database_moreoptions div.backupnow-db-tables{margin-bottom:5px}#backupnow_database_moreoptions div.backupnow-db-tables>a{color:#0073aa}.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}div.ui-dialog.ui-widget.ui-widget-content{z-index:99999 !important}#updraft_delete_form p{margin-top:3px;padding-top:0}#updraft_restore_form .cannot-restore{margin:8px 0}.notice.updraft-restore-option{padding:12px;margin:8px 0 4px 0;border-left-color:#CCC}#updraft_restorer_dboptions h4{margin:0 0 6px 0;padding:0}.updraftplus_restore_tables_options_container{max-height:250px;overflow:auto}.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;-webkit-transition:width .3s;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{padding:10px 40px;text-align:center;font-style:italic}.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{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:140px;width:25%}.line-break-tr{height:2px;padding:1px;margin:0}.line-break-td{margin:0;padding:0}.td-line-color{height:2px;background-color:#888}.raw-backup{max-width:140px}.existing-backups-actions{padding:1px;margin:0}.existing-backups-border{height:2px;padding:1px;margin:0}.existing-backups-border>td{margin:0;padding:0}.existing-backups-border>div{height:2px;background-color:#AAA}.updraft_existing_backup_date{max-width:140px}.updraftplus-upload{margin-right:6px;float:left;clear:none}.before-restore-button{padding:1px;margin:0}.before-restore-button div{float:none;display:inline-block}.table-separator-tr{height:2px;padding:1px;margin:0}.table-separator-td{margin:0;padding:0}.end-of-table-div{height:2px;background-color:#AAA}.last-backup-job{padding-top:3% !important}.line-height-03{line-height:.3 !important}.line-height-13{line-height:1.3 !important}.line-height-23{line-height:2.3 !important}#updraft_diskspaceused{color:#df6926}#updraft_delete_old_dirs_pagediv{padding-bottom:10px}.fix-time{width:70px}.retain-files{width:70px}.number-input{min-width:50px;max-width:70px}.additional-rule-width{min-width:60px;max-width:70px}#updraft-wrap .dashicons.dashicons-adapt-size{line-height:inherit;font-size:inherit}#updraft-wrap .button span.dashicons:not(.dashicons-adapt-size){vertical-align:middle;margin-top:-3px}.addon-logo-150{margin-left:30px;margin-top:33px;height:125px;width:150px}.margin-bottom-50{margin-bottom:50px}.premium-container{width:80%}.main-header{background-color:#df6926;height:200px;width:100%}.button-add-to-cart{color:white;border-color:white;float:none;margin-right:17px}.button-add-to-cart:hover,.button-add-to-cart:focus,.button-add-to-cart:active{border-color:#a0a5aa;color:#a0a5aa}.addon-title{margin-top:25px}.addon-text{margin-top:75px}.image-main-div{width:25%;float:left}.text-main-div{width:60%;float:left;text-align:center;color:white;margin-top:16px}.text-main-div-title{font-weight:bold !important;color:white;text-align:center}.text-main-div-paragraph{color:white}.updraftplus-vault-cta{width:100%;text-align:center;margin-bottom:50px}.updraftplus-vault-cta h1{font-weight:bold}.updraftvault-buy{width:225px;height:225px;border:2px solid #777;display:inline-table;margin:0 auto;margin-right:50px;position:relative}.updraftplus-vault-cta>.vault-options>.center-vault{width:275px;height:275px}.updraftplus-vault-cta>.vault-options>.center-vault>a{right:21%;font-size:16px;border-width:4px !important}.updraftplus-vault-cta>.vault-options>.center-vault>p{font-size:16px}.updraftvault-buy .button-purchase{right:24%;margin-left:0;line-height:1.7em}.updraftvault-buy hr{height:2px;background-color:#777;margin-top:18px}.right{margin-right:0}.updraftvault-buy .addon-logo-100{height:100px;width:125px;margin-top:7px}.updraftvault-buy .addon-logo-large{margin-top:7px}.updraftvault-buy .button-buy-vault{font-size:12px;color:#df6926;border-color:#df6926;border-width:2px !important;position:absolute;right:29%;bottom:2%}.premium-addon-div .button-purchase{line-height:1.7em}.updraftvault-buy .button-buy-vault:hover{border-color:darkgrey;color:darkgrey}.premium-addons{margin-top:80px;width:100%;margin:0 auto;display:table}.addon-list{display:table;text-align:center}.premium-addons h1{text-align:center;font-weight:bold}.premium-addons p{text-align:center}.premium-addons .premium-addon-div{width:200px;height:250px;border:2px solid #777;display:inline-table;margin:0 auto;margin-right:25px;margin-top:25px;text-align:center;position:relative}.premium-addons .premium-addon-div p{margin-left:2px;margin-right:2px}.premium-addons .premium-addon-div img{width:auto;height:50px;margin-top:7px}.premium-addons .premium-addon-div .hr-alignment{margin-top:44px}.premium-addons .premium-addon-div .dropbox-logo{height:39px;width:150px}.premium-addons .premium-addon-div .azure-logo,.premium-addons .premium-addon-div .onedrive-logo{width:75%;height:24px}.button-purchase{font-size:12px;color:#df6926;border-color:#df6926;border-width:2px !important;position:absolute;right:25%;bottom:2%}.button-purchase:hover{color:darkgrey;border-color:darkgrey}.premium-addons .premium-addon-div hr{height:2px;background-color:#777;margin-top:18px}.premium-addon-div p{font-style:italic}.addon-list>.premium-addon-div>.onedrive-fix,.addon-list>.premium-addon-div>.azure-logo{margin-top:33px}.addon-list>.premium-addon-div>.dropbox-fix{margin-top:18px}.premium-forgotton-something{margin-top:5%}.premium-forgotton-something h1{text-align:center;font-weight:bold}.premium-forgotton-something p{text-align:center;font-weight:normal}.premium-forgotton-something .button-faq{color:#df6926;border-color:#df6926;margin:0 auto;display:table}.premium-forgotton-something .button-faq:hover{color:#777;border-color:#777}.updraftplusmethod.updraftvault #vaultlogo{padding-left:40px}.updraftplusmethod.updraftvault .vault_primary_option{float:left;width:50%;text-align:center;padding-bottom:20px}.updraftplusmethod.updraftvault .vault_primary_option div{clear:right;padding-top:20px}.updraftplusmethod.updraftvault .clear-left{clear:left}.updraftplusmethod.updraftvault .padding-top-20px{padding-top:20px}.updraftplusmethod.updraftvault .padding-top-14px{padding-top:14px}.updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary,.updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary{font-size:18px !important}.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-container{text-align:center}.updraftplusmethod.updraftvault .vault-purchase-option{width:40%;text-align:center;padding-top:20px;display:inline-block}.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;width:auto}.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{-webkit-box-orient:vertical;-webkit-box-direction:normal;-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%;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.1);box-shadow:0 1px 2px rgba(0,0,0,0.1)}#updraft_inpage_backup div#updraft_activejobsrow{background:#fafafa;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.1);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}body.update-core-php #updraft_inpage_backup h2:nth-child(1){margin-top:1em !important}.updraft_restore_container{display:block;position:fixed;top:0;left:0;right:0;bottom:0;z-index:99999;padding-top:30px;background:#f1f1f1;overflow:auto}.updraft-modal-is-opened .select2-container{z-index:99999}body.updraft-modal-is-opened{overflow:hidden}.updraft_restore_container h2{margin:0}.updraft_restore_container .updraftmessage{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:860px;margin-left:auto;margin-right:auto}.updraft_restore_main{max-width:860px;margin:0 auto;margin-top:20px;background:#FFF;-webkit-box-shadow:0 3px 3px rgba(0,0,0,0.1);box-shadow:0 3px 3px rgba(0,0,0,0.1);position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-sizing:border-box;box-sizing:border-box}.updraft_restore_main--header{font-size:20px;font-weight:bold;text-align:center;padding-top:16px;line-height:20px;width:100%;max-width:100%;padding-right:30px;padding-left:30px;-webkit-box-sizing:border-box;box-sizing:border-box}.updraft_restore_main--activity{position:relative;width:calc(100% - 350px);-webkit-box-sizing:border-box;box-sizing:border-box}.updraft_restore_main--activity-title{padding:20px;margin:0}.show-credentials-form.updraft_restore_main .updraft_restore_main--activity-title{display:none}.updraft_restore_main--components{width:350px;padding:20px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#f8f8f8;min-height:350px}.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output{background:#23282d;color:#e3e3e3;font-family:monospace;padding:19px;overflow:auto;position:absolute;top:60px;bottom:0;right:0;left:0}#updraftplus_ajax_restore_output form{white-space:normal;font-family:-apple-system,blinkmacsystemfont,"Segoe UI",roboto,oxygen-sans,ubuntu,cantarell,"Helvetica Neue",sans-serif}#updraftplus_ajax_restore_output .updraft_restore_errors{border:1px solid #dc3232;padding:10px 20px;white-space:normal}.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output h2{color:#00a0d2;padding-top:10px;padding-bottom:5px}.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output{padding:20px;border-left:1px solid #EEE}.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output #message{margin-left:0;margin-right:0}.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output .form-table td,.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output .form-table th{padding-bottom:0}.updraft_restore_main.show-credentials-form .updraft_restore_main--components{opacity:.2}.updraft_restore_main.show-credentials-form div.error .restore-credential-errors--list p{margin:0;list-style-type:disc;display:list-item;list-style-position:inside}.restore-credential-errors>:first-child{margin-top:0}.restore-credential-errors>:last-child{margin-bottom:0}ul.updraft_restore_components_list li{color:#bababa;font-size:1.2em;margin-bottom:1em}ul.updraft_restore_components_list li::before{content:'\f469';font-family:dashicons;font-size:20px;vertical-align:middle;display:inline-block;margin-right:7px}ul.updraft_restore_components_list li span{vertical-align:middle}ul.updraft_restore_components_list li.done{color:green}ul.updraft_restore_components_list li.done::before{content:"\f147"}ul.updraft_restore_components_list li.active{color:inherit}ul.updraft_restore_components_list li.active::before{content:"\f463";-webkit-animation:udp_rotate 1s linear infinite;animation:udp_rotate 1s linear infinite}ul.updraft_restore_components_list li.error{color:#dc3232}ul.updraft_restore_components_list li.error::before{content:"\f335"}.updraft_restore_result{padding:10px 0;font-size:1.3em;margin-bottom:1em;vertical-align:middle;display:none}.updraft_restore_result.restore-error{color:#dc3232}.updraft_restore_result.restore-success{color:green}.updraft_restore_result .dashicons{font-size:35px;height:35px;line-height:33px;width:35px}.updraft_restore_result span{vertical-align:middle}#updraft-restore-modal{width:100%}div#updraft-restore-modal .notice{background:#f8f8f8}.updraft-restore-modal--stage .updraft--two-halves,.updraft-restore-modal--stage .updraft--one-half{padding:20px 30px}.updraft-restore-modal--header{padding:20px;padding-bottom:0;text-align:center;border-bottom:1px solid #EEE}.updraft-restore-modal--header h3{margin:0;padding:0}.updraft-restore-item{padding-bottom:4px}.updraft-restore-buttons{padding-top:10px}ul.updraft-restore--stages{display:inline-block;margin:0;height:28px}ul.updraft-restore--stages li{display:inline-block;position:relative;width:12px;height:12px;background:#d2d2d2;border-radius:20px;line-height:1;margin:0 4px;vertical-align:middle}ul.updraft-restore--stages li.active{background:#444}.updraft-restore--footer{border-top:1px solid #EEE;padding:20px;text-align:center;position:sticky;bottom:0;background:#FFF;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;z-index:999999}.updraft-restore--footer .updraft-restore--cancel{position:absolute;left:20px;top:auto}.updraft-restore--footer .updraft-restore--next-step{position:absolute;right:20px;top:auto}ul.updraft-restore--stages li span{position:absolute;width:120px;bottom:calc(100% + 14px);left:-55px;background:rgba(0,0,0,0.85882);padding:5px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;color:#FFF;text-align:center;display:none}ul.updraft-restore--stages li:hover span{display:inline-block}.updraft-restore-item input[type=checkbox]{margin-bottom:-5px}.updraft-restore-item input[type=checkbox]:checked+label{font-weight:bold}div#updraft-restore-modal .ud_downloadstatus__close{display:none}#ud_downloadstatus2:not(:empty){margin-top:15px}.dashicons.rotate{-webkit-animation:udp_rotate 1s linear infinite;animation:udp_rotate 1s linear infinite}span#updraftplus_ajax_restore_last_activity{font-size:.8rem;font-weight:normal;float:right}.updraft_restore_main--components .updated.show_admin_restore_in_progress_notice{margin:-20px -20px 20px;padding:19px}.updraft_restore_main--components .updated.show_admin_restore_in_progress_notice button{margin-right:5px}#updraft_migrate_receivingsites .updraftplus-remote-sites-selector .button-primary,.updraft_migrate_add_site .input-field input,.updraft_migrate_add_site button{vertical-align:middle}#updraft_migrate_receivingsites .text-link-menu a:not(:last-child){padding-right:10px}#updraft_migrate_receivingsites a.updraft_migrate_clear_sites span.dashicons-trash:before{font-size:17px}#updraft_migrate_receivingsites .updraft_migrate_add_site{clear:both}.rtl .advanced_tools.total_size table td{direction:ltr;text-align:right}.rtl #plupload-upload-ui2.drag-drop #drag-drop-area2{margin-bottom:20px}.rtl #updraft_lastlogmessagerow .updraft-log-link{float:left}.rtl label.updraft_checkbox>input[type=checkbox]{margin-right:-25px;margin-left:inherit}.rtl .ud_downloadstatus__close{float:left !important}.rtl #updraft_backupextradbs_another_container{float:right}.rtl input.labelauty+label{direction:ltr;position:relative;min-height:29px}.rtl input.labelauty+label>span.labelauty-checked-image,.rtl input.labelauty+label>span.labelauty-unchecked-image{right:8px;top:11px;position:absolute}.rtl .button.updraft-close-overlay .dashicons{margin-right:-5px;margin-left:inherit}.rtl label.updraft_checkbox{margin-right:26px;margin-left:inherit}.rtl #updraft-wrap .udp-info{left:10px;right:inherit}.rtl input.labelauty+label>span.labelauty-unchecked-image+span.labelauty-unchecked,.rtl input.labelauty+label>span.labelauty-checked-image+span.labelauty-checked{margin-right:7px;margin-left:inherit;padding:7px 7px 7px 26px;width:141px;text-align:right}.rtl #updraft_report_cell button.updraft_reportbox_delete,.rtl .updraft_box_delete_button,.rtl .updraft_small_box .updraft_box_delete_button{left:4px;right:inherit}#updraft_exclude_modal .clause-input-container{overflow:auto}#updraft_exclude_modal .clause-input-container select,#updraft_exclude_modal .clause-input-container input{float:left}#updraft_exclude_modal .clause-input-container .wildcards-input{margin:7px 7px 0 0}#updraft_exclude_modal .updraft-exclude-panel .contain-clause-sub-label{margin-top:10px;display:block}.udp-notice{border:1px solid #c3c4c7;border-left-width:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#FFF;margin:5px 0 15px 0;padding:1px 12px}.udp-notice p{margin:.5em 0;padding:2px}.udp-notice.notice-warning{border-left-color:#dba617}.udp-notice.notice-error{border-left-color:#d63638}.udp-notice.updraft-restore-option{border-left-color:#CCC;margin:8px 0 4px 0;padding:12px}div#updraft-restore-modal .udp-notice,.udp-notice.updraft-restore-option{background:#f8f8f8}@media only screen and (min-width:1024px){#updraft_activejobsrow .updraft_row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}#updraft_activejobsrow .updraft_row .updraft_col{-webkit-box-flex:1;-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;-webkit-box-shadow:0 0 10px rgba(0,0,0,0.2);box-shadow:0 0 10px rgba(0,0,0,0.2)}.rtl #ud_massactions.active,.rtl #updraft-delete-waitwarning.active{left:0;right:160px}body.folded #ud_massactions.active,body.folded #updraft-delete-waitwarning.active{left:36px}.updraft-after-form-table{margin-left:250px}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.range-selection:not(.backuprowselected) .updraft_existingbackup_date .backup_date_label{color:#FFF}}@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%;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center}#ud_massactions.active{position:fixed;top:auto;bottom:0;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;-webkit-box-shadow:0 -3px 15px rgba(0,0,0,0.08);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;-webkit-box-shadow:none;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;-webkit-box-shadow:0 2px 3px rgba(0,0,0,0.1);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{-webkit-box-orient:vertical;-webkit-box-direction:normal;-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;-webkit-box-sizing:border-box;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{-webkit-box-orient:vertical;-webkit-box-direction:normal;-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}.updraft--flex{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.updraft_restore_main{-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.updraft_restore_main--components{width:100%;min-height:0}.updraft_restore_main--activity{width:100%}div#updraftplus_ajax_restore_output,.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output{position:relative;top:0;bottom:auto}.updraft--flex>.updraft--two-halves,.updraft--flex>.updraft--one-half{width:100%}.updraft-restore-item{padding-bottom:10px;padding-top: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.range-selection:hover,.existing-backups-table tbody tr.range-selection{background:#0572aa}.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:-webkit-box;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%;-webkit-box-sizing:border-box;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}}
+/*# sourceMappingURL=updraftplus-admin-1-25-5.min.css.map */
diff --git a/wp-content/plugins/updraftplus/css/updraftplus-admin-1-25-5.min.css.map b/wp-content/plugins/updraftplus/css/updraftplus-admin-1-25-5.min.css.map
new file mode 100644
index 00000000..156909f7
--- /dev/null
+++ b/wp-content/plugins/updraftplus/css/updraftplus-admin-1-25-5.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["css/updraftplus-admin.css"],"names":[],"mappings":"AAAA;;CAEC;EACC,UAAU;EACV,2BAAmB;UAAnB,mBAAmB;CACpB;;CAEA;EACC,YAAY;EACZ,8BAAsB;UAAtB,sBAAsB;CACvB;;AAED;;AAZA;;CAEC;EACC,UAAU;EACV,2BAAmB;UAAnB,mBAAmB;CACpB;;CAEA;EACC,YAAY;EACZ,8BAAsB;UAAtB,sBAAsB;CACvB;;AAED;;AAEA;;CAEC;EACC,4BAAoB;UAApB,oBAAoB;CACrB;;CAEA;EACC,iCAAyB;UAAzB,yBAAyB;CAC1B;;AAED;;AAVA;;CAEC;EACC,4BAAoB;UAApB,oBAAoB;CACrB;;CAEA;EACC,iCAAyB;UAAzB,yBAAyB;CAC1B;;AAED;;AAEA,sBAAsB;AACtB;CACC,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,UAAU;AACX;;AAEA;CACC,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,mBAAe;KAAf,eAAe;AAChB;;AAEA;CACC,mBAAO;KAAP,WAAO;SAAP,OAAO;CACP,8BAAsB;SAAtB,sBAAsB;AACvB;;AAEA;CACC,UAAU;CACV,mBAAU;KAAV,cAAU;SAAV,UAAU;AACX;;AAEA;CACC,WAAW;CACX,mBAAU;KAAV,cAAU;SAAV,UAAU;AACX;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,mBAAmB;AACpB;;AAEA,0BAA0B;;AAE1B,iBAAiB;AACjB;CACC,qBAAqB;AACtB;;AAEA;CACC,iBAAiB;AAClB;;AAEA,qBAAqB;AACrB,cAAc;AACd;CACC,kBAAkB;AACnB;;AAEA,qBAAqB;AACrB,YAAY;AACZ;CACC,qBAAqB;AACtB;;AAEA,mBAAmB;;AAEnB;CACC,kBAAkB;AACnB;;AAEA;CACC,YAAY;CACZ,eAAe;AAChB;;AAEA;CACC,uBAAuB;AACxB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,8CAAsC;SAAtC,sCAAsC;AACvC;;AAEA;CACC,qBAAqB;AACtB;;AAEA;;CAEC,cAAc;CACd,gBAAgB;CAChB,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA,gBAAgB;AAChB;CACC,cAAc;CACd,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;AACnB;;AAEA,gBAAgB;AAChB;CACC,YAAY;AACb;;AAEA;CACC,oBAAoB;AACrB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,kBAAkB;CAClB,eAAe;AAChB;;AAEA;;CAEC,gBAAgB;CAChB,WAAW;AACZ;;AAEA;CACC,gBAAgB;AACjB;;AAEA,oBAAoB;;AAEpB,iBAAiB;AACjB;CACC,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB,eAAe;CACf,iBAAiB;CACjB,mBAAmB;CACnB,kBAAkB;CAClB,kBAAkB;CAClB,kBAAkB;CAClB,uBAAuB;CACvB,kBAAkB;CAClB,iBAAiB;CACjB,4BAAoB;CAApB,oBAAoB;CACpB,wBAAwB;CACxB,8BAAsB;SAAtB,sBAAsB;CACtB,kBAAkB;CAClB,kBAAkB;CAClB,iBAAiB;CACjB,oBAAoB;CACpB,cAAc;CACd,qBAAqB;AACtB;;AAEA;CACC,+BAA+B;CAC/B,wBAAwB;AACzB;;AAEA;CACC,gCAAgC;CAChC,gEAAgD;CAAhD,wDAAgD;CAAhD,gDAAgD;CAAhD,wEAAgD;CAChD,uCAAuC;CACvC,YAAY;CACZ,kBAAkB;CAClB,6EAAqE;SAArE,qEAAqE;CACrE,cAAc;CACd,eAAe;CACf,gBAAgB;CAChB,qBAAqB;CACrB,60BAA60B;CAC70B,sBAAsB;CACtB,4BAA4B;CAC5B,8BAA8B;AAC/B;;AAEA;CACC,6EAAqE;SAArE,qEAAqE;AACtE;;AAEA;CACC,sBAAsB;AACvB;;AAEA;CACC,aAAa;CACb,gGAAwF;SAAxF,wFAAwF;AACzF;;AAEA;CACC,+BAAuB;SAAvB,uBAAuB;CACvB,yBAAyB;CACzB,6EAAqE;SAArE,qEAAqE;CACrE,mBAAmB;AACpB;;AAEA;CACC,iBAAiB;CACjB,YAAY;CACZ,kBAAkB;AACnB;;AAEA;CACC,aAAa;CACb,kBAAkB;AACnB;;AAEA;CACC,qBAAqB;CACrB,mBAAmB;AACpB;;AAEA;CACC,cAAc;AACf;;AAEA;;CAEC;;AAED;CACC,aAAa;AACd;;AAEA,eAAe;;AAEf;CACC,oBAAa;CAAb,oBAAa;CAAb,aAAa;AACd;;AAEA;CACC,mBAAmB;CACnB,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB,gBAAgB;AACjB;;AAEA;CACC,SAAS;AACV;;AAEA;CACC,mBAAmB;CACnB,aAAa;CACb,mBAAmB;CACnB,mBAAO;KAAP,WAAO;SAAP,OAAO;AACR;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,eAAe;CACf,cAAc;AACf;;AAEA,wBAAwB;AACxB;CACC,aAAa;CACb,kBAAkB;CAClB,QAAQ;CACR,MAAM;CACN,YAAY;CACZ,2BAA2B;CAC3B,kBAAkB;CAClB,mBAAmB;AACpB;;AAEA;CACC,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,4BAAsB;CAAtB,6BAAsB;KAAtB,0BAAsB;SAAtB,sBAAsB;AACvB;;AAEA;CACC,kBAAkB;CAClB,WAAW;CACX,6BAAgB;KAAhB,gBAAgB;AACjB;;AAEA;;CAEC,WAAW;AACZ;;AAEA;;CAEC;EACC,8BAAmB;EAAnB,6BAAmB;MAAnB,uBAAmB;UAAnB,mBAAmB;EACnB,mBAAe;MAAf,eAAe;CAChB;;CAEA;EACC,4BAAe;MAAf,eAAe;CAChB;;CAEA;;EAEC,YAAY;CACb;;AAED;;AAEA;CACC,qBAAqB;CACrB,eAAe;AAChB;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,mBAAmB;CACnB,aAAa;CACb,kBAAkB;CAClB,mBAAmB;AACpB;;AAEA,qBAAqB;AACrB;CACC,WAAW;CACX,WAAW;CACX,gBAAgB;AACjB;;AAEA;CACC,WAAW;CACX,gBAAgB;AACjB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,mBAAmB;CACnB,sBAAsB;AACvB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;;CAEC,YAAY;AACb;;AAEA,mBAAmB;AACnB;CACC,eAAe;CACf,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;AACjB;;AAEA,oCAAoC;AACpC;CACC,mBAAmB;CACnB,YAAY;CACZ,iBAAiB;CACjB,iBAAiB;CACjB,oBAAoB;AACrB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,UAAU;AACX;;AAEA,YAAY;;AAEZ;CACC,qBAAqB;AACtB;;AAEA;;;CAGC,qBAAqB;CACrB,cAAc;AACf;;AAEA;CACC,wBAAwB;CACxB,+BAA+B;AAChC;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,gBAAgB;CAChB,gBAAgB;CAChB,kBAAkB;AACnB;;AAEA;CACC,aAAa;AACd;;AAEA;;CAEC,aAAa;AACd;;AAEA,4BAA4B;AAC5B;;CAEC,kBAAkB;CAClB,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,0BAAqB;KAArB,qBAAqB;CACrB,qBAAqB;CACrB,iBAAiB;CACjB,kBAAkB;CAClB,mBAAmB;CACnB,mBAAmB;CACnB,6BAA6B;AAC9B;;AAEA;;;;CAIC,aAAa;CACb,iBAAiB;CACjB,YAAY;CACZ,SAAS;AACV;;AAEA;;CAEC,qBAAqB;CACrB,iBAAiB;CACjB,4BAA4B;AAC7B;;AAEA;;CAEC,eAAe;AAChB;;AAEA;;CAEC,SAAS;AACV;;AAEA;CACC,gBAAgB;CAChB,iBAAiB;CACjB,mBAAmB;CACnB,cAAc;CACd,YAAY;CACZ,iBAAiB;CACjB,oBAAoB;CACpB,gBAAgB;CAChB,kBAAkB;CAClB,kBAAkB;CAClB,mBAAmB;AACpB;;AAEA;CACC,kBAAkB;CAClB,UAAU;CACV,oBAAoB;AACrB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;;CAEC;AACD;CACC,cAAc;AACf;;AAEA;CACC,mBAAmB;CACnB,SAAS;CACT,gBAAgB;CAChB,mBAAmB;CACnB,oBAAoB;AACrB;;AAEA;CACC,oBAAoB;AACrB;;AAEA;CACC,8BAA8B;AAC/B;;AAEA;CACC,4BAA4B;AAC7B;;AAEA;CACC,UAAU;CACV,UAAU;AACX;;AAEA;CACC,aAAa;CACb,2FAAmF;SAAnF,mFAAmF;CACnF,gBAAgB;AACjB;;AAEA;CACC,cAAc;CACd,UAAU;AACX;;AAEA;CACC,mBAAmB;CACnB,gCAAgC;CAChC,wDAAgD;SAAhD,gDAAgD;AACjD;;AAEA;CACC,+GAAuG;SAAvG,uGAAuG;AACxG;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,YAAY;CACZ,kBAAkB;AACnB;;AAEA;CACC,aAAa;CACb,yEAAiE;SAAjE,iEAAiE;CACjE,UAAU;AACX;;AAEA;CACC,uBAAuB;AACxB;;AAEA;CACC,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,gBAAgB;CAChB,qBAAqB;CACrB,mBAAe;KAAf,eAAe;AAChB;;AAEA;CACC,UAAU;CACV,gBAAgB;CAChB,YAAY;CACZ,wBAAwB;CACxB,aAAa;CACb,8BAAsB;SAAtB,sBAAsB;AACvB;;AAEA;CACC,kBAAkB;CAClB,8BAA8B;CAC9B,wBAAuB;KAAvB,qBAAuB;SAAvB,uBAAuB;CACvB,yBAAmB;KAAnB,sBAAmB;SAAnB,mBAAmB;AACpB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,YAAY;CACZ,iCAAiC;CACjC,yBAAyB;AAC1B;;AAEA;CACC,mBAAmB;CACnB,WAAW;CACX,SAAS;CACT,kBAAkB;AACnB;;AAEA;;CAEC,aAAa;AACd;;AAEA;CACC,qBAAqB;CACrB,mBAAmB;CACnB,gBAAgB;CAChB,eAAe;AAChB;;AAEA;CACC,yBAAyB;CACzB,kBAAkB;CAClB,yFAAyF;CACzF,wBAAgB;SAAhB,gBAAgB;AACjB;;AAEA;CACC,qBAAqB;CACrB,mBAAmB;CACnB,eAAe;CACf,eAAe;CACf,eAAe;AAChB;;AAEA;CACC,UAAU;CACV,qBAAqB;CACrB,WAAW;CACX;;EAEC;AACF;;AAEA;CACC,WAAW;CACX,eAAe;AAChB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,gBAAgB;CAChB,WAAW;AACZ;;AAEA;CACC,qBAAqB;CACrB,YAAY;AACb;;AAEA;CACC,mBAAmB;CACnB,2BAA2B;CAC3B,8BAA8B;CAC9B,WAAW;CACX,eAAe;CACf,yCAAyC;AAC1C;;AAEA;CACC,mBAAmB;CACnB,4BAA4B;CAC5B,+BAA+B;CAC/B,iBAAiB;AAClB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,WAAW;CACX,iBAAiB;AAClB;;AAEA;CACC,YAAY;CACZ,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,WAAW;CACX,gBAAgB;CAChB,aAAa;AACd;;AAEA;CACC,gBAAgB;CAChB,WAAW;CACX,mBAAmB;CACnB,UAAU;AACX;;AAEA;CACC,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,mBAAmB;CACnB,WAAW;CACX,sBAAsB;CACtB,gBAAgB;AACjB;;AAEA;CACC,YAAY;CACZ,cAAc;CACd,qBAAqB;AACtB;;AAEA;CACC,WAAW;CACX,4BAAoB;CAApB,oBAAoB;CACpB,kBAAkB;AACnB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;CAChB,eAAe;CACf,mBAAmB;CACnB,WAAW;CACX,iBAAiB;CACjB,mBAAmB;AACpB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,WAAW;CACX,UAAU;CACV,gBAAgB;AACjB;;AAEA;CACC,eAAe;CACf,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,eAAe;CACf,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,cAAc;CACd,qBAAqB;CACrB,eAAe;CACf,kBAAkB;CAClB,iBAAiB;CACjB,kBAAkB;AACnB;;AAEA;CACC,eAAe;CACf,sBAAsB;CACtB,eAAe;CACf,kBAAkB;CAClB,iBAAiB;CACjB,gBAAgB;AACjB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,eAAe;CACf,kBAAkB;CAClB,iBAAiB;CACjB,YAAY;AACb;;AAEA;CACC,gBAAgB;CAChB,eAAe;AAChB;;AAEA;CACC,WAAW;CACX,kBAAkB;CAClB,eAAe;CACf,kBAAkB;CAClB,iBAAiB;CACjB,iBAAiB;AAClB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,iBAAiB;CACjB,cAAc;CACd,qBAAqB;CACrB,eAAe;CACf,YAAY;AACb;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,kBAAkB;CAClB,yBAAyB;CACzB,wBAAwB;CACxB,WAAW;CACX,cAAc;AACf;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,aAAa;CACb,kBAAkB;CAClB,UAAU;AACX;;AAEA;CACC,sBAAsB;AACvB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,iBAAiB;AAClB;;AAEA,qBAAqB;;AAErB,2BAA2B;;AAE3B;CACC,WAAW;CACX,YAAY;CACZ,WAAW;CACX,mBAAmB;AACpB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,gBAAgB;CAChB,eAAe;CACf,iBAAiB;CACjB,aAAa;CACb,WAAW;AACZ;;AAEA;CACC,YAAY;CACZ,kBAAkB;CAClB,UAAU;AACX;;AAEA;;CAEC,iBAAiB;CACjB,eAAe;CACf,mBAAmB;CACnB,aAAa;CACb,sBAAsB;AACvB;;AAEA;CACC,gBAAgB;CAChB,kBAAkB;CAClB,qBAAqB;AACtB;;AAEA;;CAEC,qBAAqB;CACrB,gBAAgB;AACjB;;AAEA;;;CAGC,wBAAwB;CACxB,gBAAgB;AACjB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;;CAEC;;EAEC,qBAAqB;CACtB;;AAED;;AAEA;CACC,eAAe;CACf,eAAe;CACf,wBAAgB;SAAhB,gBAAgB;CAChB,cAAc;CACd,YAAY;CACZ,iBAAiB;AAClB;;AAEA;;;CAGC,cAAc;AACf;;AAEA;CACC,cAAc;CACd,iBAAiB;CACjB,eAAe;CACf,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,uBAAuB;AACxB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;;CAEC,aAAa;CACb,aAAa;CACb,sBAAsB;CACtB,kBAAkB;AACnB;;AAEA;;;CAGC,YAAY;CACZ,gBAAgB;CAChB,YAAY;CACZ,uBAAuB;CACvB,kBAAkB;CAClB,QAAQ;CACR,UAAU;CACV,eAAe;AAChB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,qBAAqB;CACrB,eAAe;AAChB;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,0BAA0B;AAC3B;;AAEA;CACC,cAAc;CACd,wBAAwB;CACxB,kBAAkB;AACnB;;AAEA;CACC,WAAW;AACZ;;AAEA,kCAAkC;;AAElC;CACC,gBAAgB;AACjB;;AAEA;CACC,eAAe;AAChB;;AAEA;;CAEC,yBAAyB;AAC1B;;AAEA;CACC,yBAAyB;AAC1B;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,6BAA6B;CAC7B,YAAY;CACZ,cAAc;CACd,0BAA0B;CAC1B,eAAe;CACf,WAAW;CACX,WAAW;AACZ;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,2BAA2B;CAC3B,6BAA6B;CAC7B,0BAA0B;CAC1B,gBAAgB;CAChB,gBAAgB;AACjB;;AAEA;CACC,0BAA0B;AAC3B;;AAEA;CACC,YAAY;CACZ,YAAY;CACZ,6BAA6B;AAC9B;;AAEA;CACC,8BAA8B;AAC/B;;AAEA;CACC,YAAY;CACZ,iBAAiB;CACjB,iBAAiB;CACjB,kBAAkB;CAClB,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;CAChB,sBAAsB;AACvB;;AAEA;CACC,UAAU;AACX;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;CAClB,WAAW;CACX,qBAAqB;AACtB;;AAEA;CACC,qBAAqB;CACrB,WAAW;CACX,YAAY;CACZ,gBAAgB;CAChB,cAAc;CACd,mBAAmB;CACnB,kBAAkB;CAClB,iBAAiB;CACjB,iDAAyC;SAAzC,yCAAyC;AAC1C;;AAEA;CACC,aAAa;CACb,kBAAkB;CAClB,YAAY;CACZ,gDAAwC;SAAxC,wCAAwC;CACxC,YAAY;CACZ,oBAAoB;AACrB;;AAEA;CACC,WAAW;CACX,kBAAkB;CAClB,aAAa;CACb,8BAA8B;CAC9B,sBAAsB;CACtB,sBAAsB;AACvB;;AAEA;CACC,aAAa;CACb,gBAAgB;CAChB,kBAAkB;CAClB,iDAAyC;SAAzC,yCAAyC;CACzC,cAAc;AACf;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,kCAAkC;AACnC;;AAEA;CACC,cAAc;CACd,eAAe;AAChB;;AAEA;CACC,sBAAsB;AACvB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,WAAW;CACX,sBAAsB;CACtB,eAAe;AAChB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,qBAAqB;AACtB;;AAEA,kBAAkB;;AAElB,mEAAmE;AACnE;;CAEC,uBAAuB;AACxB;;AAEA;;CAEC,+BAA+B;AAChC;;AAEA;;CAEC,8BAA8B;AAC/B;;AAEA;;CAEC,uBAAuB;AACxB;;AAEA,8BAA8B;AAC9B;CACC,kBAAkB;CAClB,aAAa;CACb,cAAc;AACf;;AAEA;CACC,kBAAkB;CAClB,YAAY;CACZ,WAAW;CACX,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,WAAW;CACX,kBAAkB;CAClB,eAAe;AAChB;;AAEA;CACC,aAAa;CACb,cAAc;CACd,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,iBAAiB;CACjB,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;CAClB,kBAAkB;CAClB,WAAW;CACX,WAAW;CACX,cAAc;AACf;;AAEA,6BAA6B;AAC7B;CACC,kBAAkB;CAClB,aAAa;CACb,WAAW;CACX,sBAAsB;CACtB,mBAAmB;CACnB,kBAAkB;CAClB,eAAe;CACf,gDAAwC;SAAxC,wCAAwC;AACzC;;AAEA;CACC,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,YAAY;CACZ,WAAW;CACX,YAAY;CACZ,cAAc;CACd,mBAAmB;CACnB,kBAAkB;CAClB,MAAM;CACN,UAAU;CACV,0BAA0B;CAC1B,2BAA2B;CAC3B,iDAAyC;SAAzC,yCAAyC;AAC1C;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,aAAa;CACb,mBAAmB;AACpB;;AAEA;CACC,aAAa;CACb,WAAW;CACX,cAAc;AACf;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,0BAA0B;CAC1B,iBAAiB;AAClB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,iBAAiB;AAClB;;AAEA;;CAEC,eAAe;AAChB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,SAAS;CACT,UAAU;AACX;;AAEA;CACC,qBAAqB;CACrB,gBAAgB;AACjB;;AAEA;CACC,YAAY;CACZ,6BAA6B;CAC7B,WAAW;CACX,WAAW;CACX,gBAAgB;CAChB,eAAe;CACf,iBAAiB;AAClB;;AAEA;CACC,WAAW;CACX,eAAe;AAChB;;AAEA;CACC,YAAY;CACZ,yBAAyB;CACzB,qBAAqB;CACrB,mCAA2B;SAA3B,2BAA2B;AAC5B;;AAEA;;CAEC,kBAAkB;CAClB,WAAW;CACX,gBAAgB;AACjB;;AAEA,kDAAkD;AAClD;CACC,cAAc;CACd,yBAAyB;CACzB,kBAAkB;CAClB,gCAAwB;SAAxB,wBAAwB;AACzB;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,2BAAmB;SAAnB,mBAAmB;CACnB,kDAA0C;SAA1C,0CAA0C;AAC3C;;AAEA;CACC,uBAAuB;CACvB,aAAa;AACd;;AAEA;CACC,mBAAmB;CACnB,YAAY;AACb;;AAEA;CACC,gBAAgB;CAChB,WAAW;AACZ;;AAEA;CACC,YAAY;CACZ,mBAAmB;CACnB,sBAAsB;CACtB,aAAa;AACd;;AAEA;CACC,mBAAmB;AACpB;;AAEA;;CAEC;AACD;CACC,gBAAgB;CAChB,gBAAgB;CAChB,UAAU;CACV,8BAA8B;AAC/B;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,gBAAgB;CAChB,uBAAuB;CACvB,yBAAyB;CACzB,kBAAkB;AACnB;;AAEA;CACC,cAAc;CACd,eAAe;CACf,kBAAkB;CAClB,cAAc;AACf;;AAEA;CACC,WAAW;CACX,YAAY;AACb;;AAEA;CACC,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,yBAAmB;KAAnB,sBAAmB;SAAnB,mBAAmB;CACnB,yBAA8B;KAA9B,sBAA8B;SAA9B,8BAA8B;CAC9B,kBAAkB;AACnB;;AAEA;CACC,mBAAmB;CACnB,iBAAiB;AAClB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,eAAe;CACf,gBAAgB;CAChB,cAAc;CACd,SAAS;CACT,kBAAkB;CAClB,uBAAuB;CACvB,cAAc;AACf;;AAEA;CACC,WAAW;AACZ;;AAEA;;CAEC;EACC,4BAAsB;EAAtB,6BAAsB;MAAtB,0BAAsB;UAAtB,sBAAsB;EACtB,kBAAkB;EAClB,yBAAmB;MAAnB,sBAAmB;UAAnB,mBAAmB;CACpB;;CAEA;EACC,eAAe;EACf,mBAAmB;CACpB;;AAED;;AAEA;;CAEC;AACD;CACC,gBAAgB;CAChB,aAAa;CACb,gDAAwC;SAAxC,wCAAwC;CACxC,kBAAkB;AACnB;;AAEA;CACC,SAAS;AACV;;AAEA;CACC,2BAAkB;KAAlB,kBAAkB;CAClB,gBAAgB;CAChB,wBAAgB;SAAhB,gBAAgB;AACjB;;AAEA;;CAEC;AACD;CACC,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,8BAAmB;CAAnB,6BAAmB;KAAnB,uBAAmB;SAAnB,mBAAmB;CACnB,mBAAe;KAAf,eAAe;CACf,yBAA8B;KAA9B,sBAA8B;SAA9B,8BAA8B;CAC9B,eAAe;AAChB;;AAEA;CACC,cAAc;CACd,eAAe;CACf,qBAAqB;AACtB;;AAEA;CACC,8BAAsB;SAAtB,sBAAsB;CACtB,UAAU;AACX;;AAEA;CACC,gBAAgB;CAChB,iBAAiB;AAClB;;AAEA;;CAEC;AACD;CACC,gBAAgB;CAChB,SAAS;CACT,eAAe;AAChB;;AAEA;CACC,uBAAuB;AACxB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,oCAAoC;CACpC,iBAAiB;AAClB;;AAEA;CACC,aAAa;CACb,gBAAgB;CAChB,2BAA2B;CAC3B,0BAA0B;CAC1B,8CAAsC;SAAtC,sCAAsC;CACtC,oBAAoB;CACpB,iBAAiB;AAClB;;AAEA;CACC,wBAAwB;AACzB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,YAAY;CACZ,yBAAyB;CACzB,eAAe;CACf,uBAAuB;CACvB,kBAAkB;AACnB;;AAEA;CACC,yBAAyB;CACzB,yBAAyB;CACzB,eAAe;CACf,uBAAuB;CACvB,kBAAkB;CAClB,aAAa;AACd;;AAEA;CACC,wBAAwB;AACzB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;;CAEC,2CAA2C;CAC3C,YAAY;AACb;;AAEA;CACC,cAAc;CACd,cAAc;AACf;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,iBAAiB;CACjB,eAAe;CACf,eAAe;AAChB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,eAAe;CACf,cAAc;AACf;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,UAAU;AACX;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,aAAa;CACb,YAAY;AACb;;AAEA;CACC,YAAY;CACZ,uBAAuB;CACvB,WAAW;CACX,eAAe;CACf,UAAU;CACV,eAAe;AAChB;;AAEA;CACC,SAAS;CACT,mBAAmB;CACnB,WAAW;CACX,6BAAqB;CAArB,qBAAqB;AACtB;;AAEA;CACC,eAAe;CACf,WAAW;AACZ;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,eAAe;CACf,UAAU;CACV,eAAe;CACf,iBAAiB;CACjB,WAAW;CACX,kBAAkB;CAClB,YAAY;CACZ,aAAa;CACb,qBAAqB;CACrB,qBAAqB;AACtB;;AAEA;CACC,eAAe;CACf,YAAY;CACZ,eAAe;AAChB;;AAEA;CACC,gBAAgB;CAChB,eAAe;CACf,iBAAiB;CACjB,aAAa;CACb,WAAW;AACZ;;AAEA,oBAAoB;AACpB;CACC,gBAAgB;AACjB;;AAEA;CACC,kBAAkB;CAClB,oBAAoB;AACrB;;AAEA;CACC,gBAAgB;CAChB,YAAY;CACZ,aAAa;CACb,kBAAkB;CAClB,YAAY;CACZ,kBAAkB;CAClB,gBAAgB;CAChB,cAAc;CACd,iBAAiB;CACjB,kBAAkB;CAClB,mBAAmB;AACpB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,qBAAqB;CACrB,eAAe;CACf,iBAAiB;CACjB,UAAU;CACV,kCAA0B;SAA1B,0BAA0B;AAC3B;;AAEA;CACC,iCAAyB;SAAzB,yBAAyB;CACzB,iCAAyB;SAAzB,yBAAyB;CACzB,2CAAmC;SAAnC,mCAAmC;CACnC,sCAA8B;SAA9B,8BAA8B;CAC9B,2CAAmC;SAAnC,mCAAmC;AACpC;;AAEA;CACC,aAAa;AACd;;AAEA;;CAEC;EACC,cAAc;EACd,WAAW;EACX,kBAAkB;CACnB;;AAED;;AAEA,mCAAmC;AACnC;CACC,UAAU;AACX;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,iBAAiB;CACjB,oBAAoB;AACrB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,YAAY;AACb;;AAEA;;;;CAIC,gCAAgC;CAChC,6BAA6B;CAC7B,WAAW;AACZ;;AAEA;CACC,mBAAmB;CACnB,cAAc;AACf;;AAEA;CACC,wBAAgB;SAAhB,gBAAgB;AACjB;;AAEA;CACC,WAAW;CACX,yBAAyB;CACzB,uCAAuC;CACvC,0BAA0B;CAC1B,wBAAwB;CACxB,mBAAmB;CACnB,kBAAkB;CAClB,iBAAiB;CACjB,eAAe;CACf,uBAAuB;CACvB,gBAAgB;CAChB,mBAAmB;CACnB,cAAc;CACd,qBAAqB;CACrB,mBAAmB;AACpB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,kBAAkB;AACnB;;AAEA;CACC,8BAA8B;CAC9B,sBAAsB;CACtB,uBAAuB;AACxB;;AAEA;CACC,iBAAiB;CACjB,WAAW;CACX,wBAAwB;AACzB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,YAAY;CACZ,mBAAmB;CACnB,kBAAkB;CAClB,oDAA4C;SAA5C,4CAA4C;AAC7C;;AAEA;CACC,cAAc;CACd,YAAY;AACb;;AAEA;CACC,cAAc;CACd,cAAc;CACd,eAAe;CACf,WAAW;CACX,YAAY;CACZ,kBAAkB;CAClB,iBAAiB;CACjB,WAAW;CACX,mBAAmB;AACpB;;AAEA;CACC,qBAAqB;CACrB,iBAAiB;CACjB,eAAe;AAChB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,yBAAyB;CACzB,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,iBAAiB;CACjB,cAAc;AACf;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,gBAAgB;CAChB,SAAS;CACT,mBAAmB;AACpB;;AAEA;CACC,iBAAiB;CACjB,cAAc;AACf;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,sBAAsB;CACtB,YAAY;CACZ,WAAW;CACX,kBAAkB;AACnB;;AAEA;CACC,uBAAuB;CACvB,gBAAgB;CAChB,eAAe;CACf,mBAAmB;AACpB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,aAAa;CACb,8BAA8B;CAC9B,kBAAkB;CAClB,OAAO;CACP,SAAS;AACV;;AAEA;CACC,sBAAsB;AACvB;;AAEA;CACC,qBAAqB;CACrB,eAAe;AAChB;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,qBAAqB;CACrB,kBAAkB;AACnB;;AAEA;CACC,qBAAqB;CACrB,YAAY;CACZ,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,mBAAmB;CACnB,kBAAkB;AACnB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,kBAAkB;CAClB,0BAA0B;AAC3B;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,yBAAyB;AAC1B;;AAEA;CACC,eAAe;CACf,cAAc;AACf;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,aAAa;CACb,mBAAmB;CACnB,uBAAuB;AACxB;;AAEA,8BAA8B;AAC9B;CACC,uBAAuB;CACvB,YAAY;AACb;;AAEA;CACC,iBAAiB;CACjB,cAAc;AACf;;AAEA;CACC,mBAAmB;CACnB,gBAAgB;CAChB,gBAAgB;AACjB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,YAAY;CACZ,YAAY;AACb;;AAEA;CACC,WAAW;CACX,gBAAgB;AACjB;;AAEA;CACC,WAAW;CACX,gBAAgB;AACjB;;AAEA;CACC,YAAY;CACZ,oBAAoB;AACrB;;AAEA;CACC,WAAW;CACX,kBAAkB;CAClB,aAAa;AACd;;AAEA;CACC,aAAa;CACb,kBAAkB;AACnB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,WAAW;CACX,kBAAkB;CAClB,SAAS;CACT,QAAQ;CACR,kBAAkB;CAClB,yBAAyB;CACzB,8BAAsB;CAAtB,sBAAsB;AACvB;;AAEA;CACC,UAAU;CACV,kBAAkB;CAClB,eAAe;CACf,WAAW;CACX,YAAY;CACZ,iBAAiB;CACjB,kBAAkB;CAClB,kBAAkB;CAClB,kBAAkB;CAClB,WAAW;CACX,yBAAyB;CACzB,yCAAyC;AAC1C;;AAEA;CACC,qBAAqB;CACrB,UAAU;AACX;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,UAAU;CACV,WAAW;CACX,kBAAkB;AACnB;;AAEA;CACC,eAAe;CACf,iBAAiB;AAClB;;AAEA;CACC,iBAAiB;CACjB,YAAY;AACb;;AAEA;CACC,kBAAkB;CAClB,iBAAiB;CACjB,eAAe;AAChB;;AAEA;CACC,UAAU;CACV,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;CAChB,0BAA0B;AAC3B;;AAEA;CACC,kBAAkB;CAClB,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,8BAA8B;CAE9B,sBAAsB;CACtB,gBAAgB;CAChB,UAAU;AACX;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,WAAW;AACZ;;AAEA;CACC,SAAS;CACT,UAAU;AACX;;AAEA;CACC,WAAW;CACX,sBAAsB;AACvB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,YAAY;CACZ,WAAW;AACZ;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,WAAW;AACZ;;AAEA;CACC,SAAS;CACT,UAAU;AACX;;AAEA;CACC,WAAW;CACX,sBAAsB;AACvB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,iBAAiB;CACjB,WAAW;CACX,WAAW;AACZ;;AAEA;CACC,YAAY;CACZ,WAAW;AACZ;;AAEA;CACC,WAAW;CACX,qBAAqB;AACtB;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,WAAW;AACZ;;AAEA;CACC,WAAW;CACX,YAAY;AACb;;AAEA;CACC,WAAW;CACX,sBAAsB;AACvB;;AAEA;CACC,0BAA0B;AAC3B;;AAEA;CACC,2BAA2B;AAC5B;;AAEA;CACC,2BAA2B;AAC5B;;AAEA;CACC,2BAA2B;AAC5B;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,oBAAoB;AACrB;;AAEA;;EAEE;;AAEF,4BAA4B;AAC5B;CACC,WAAW;AACZ;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,eAAe;CACf,eAAe;AAChB;;AAEA;CACC,eAAe;CACf,eAAe;AAChB;;AAEA,YAAY;AACZ,mHAAmH;;AAEnH;CACC,oBAAoB;CACpB,kBAAkB;AACnB;;AAEA;CACC,sBAAsB;CACtB,gBAAgB;AACjB;;AAEA;CACC,iBAAiB;CACjB,gBAAgB;CAChB,aAAa;CACb,YAAY;AACb;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,UAAU;AACX;;AAEA,gBAAgB;;AAEhB;CACC,yBAAyB;CACzB,aAAa;CACb,WAAW;AACZ;;AAEA;CACC,YAAY;CACZ,mBAAmB;CACnB,WAAW;CACX,kBAAkB;AACnB;;AAEA;CACC,qBAAqB;CACrB,cAAc;AACf;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,UAAU;CACV,WAAW;AACZ;;AAEA;CACC,UAAU;CACV,WAAW;CACX,kBAAkB;CAClB,YAAY;CACZ,gBAAgB;AACjB;;AAEA;CACC,4BAA4B;CAC5B,YAAY;CACZ,kBAAkB;AACnB;;AAEA;CACC,YAAY;AACb;;AAEA,oBAAoB;;AAEpB,gBAAgB;;AAEhB;CACC,WAAW;CACX,kBAAkB;CAClB,mBAAmB;AACpB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,YAAY;CACZ,aAAa;CACb,sBAAsB;CACtB,qBAAqB;CACrB,cAAc;CACd,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,YAAY;CACZ,aAAa;AACd;;AAEA;CACC,UAAU;CACV,eAAe;CACf,4BAA4B;AAC7B;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,UAAU;CACV,cAAc;CACd,kBAAkB;AACnB;;AAEA;CACC,WAAW;CACX,sBAAsB;CACtB,gBAAgB;AACjB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,aAAa;CACb,YAAY;CACZ,eAAe;AAChB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,eAAe;CACf,cAAc;CACd,qBAAqB;CACrB,4BAA4B;CAC5B,kBAAkB;CAClB,UAAU;CACV,UAAU;AACX;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,sBAAsB;CACtB,eAAe;AAChB;;AAEA,oBAAoB;;AAEpB,mBAAmB;;AAEnB;CACC,gBAAgB;CAChB,WAAW;CACX,cAAc;CACd,cAAc;AACf;;AAEA;CACC,uBAAuB;CACvB,cAAc;CACd,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,YAAY;CACZ,aAAa;CACb,sBAAsB;CACtB,qBAAqB;CACrB,cAAc;CACd,kBAAkB;CAClB,gBAAgB;CAChB,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,gBAAgB;CAChB,iBAAiB;AAClB;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,eAAe;AAChB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,YAAY;CACZ,YAAY;AACb;;AAEA;CACC,UAAU;CACV,YAAY;AACb;;AAEA;CACC,eAAe;CACf,cAAc;CACd,qBAAqB;CACrB,4BAA4B;CAC5B,kBAAkB;CAClB,UAAU;CACV,UAAU;AACX;;AAEA;CACC,eAAe;CACf,sBAAsB;AACvB;;AAEA;CACC,WAAW;CACX,sBAAsB;CACtB,gBAAgB;AACjB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;;CAEC,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;AACjB;;AAEA,uBAAuB;;;AAGvB,kFAAkF;;AAElF;CACC,cAAc;AACf;;AAEA;CACC,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,kBAAkB;CAClB,mBAAmB;AACpB;;AAEA;CACC,cAAc;CACd,qBAAqB;CACrB,cAAc;CACd,cAAc;AACf;;AAEA;CACC,WAAW;CACX,kBAAkB;AACnB;;AAEA,+BAA+B;;AAE/B;CACC,kBAAkB;AACnB;;AAEA;CACC,WAAW;CACX,UAAU;CACV,kBAAkB;CAClB,oBAAoB;AACrB;;AAEA;CACC,YAAY;CACZ,iBAAiB;AAClB;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,0BAA0B;AAC3B;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,SAAS;CACT,UAAU;AACX;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,UAAU;CACV,kBAAkB;CAClB,iBAAiB;CACjB,qBAAqB;AACtB;;AAEA;CACC,eAAe;CACf,iBAAiB;AAClB;;AAEA;CACC,WAAW;CACX,eAAe;AAChB;;AAEA;CACC,WAAW;CACX,eAAe;CACf,kBAAkB;AACnB;;AAEA,kCAAkC;AAClC;AACA,4BAA4B;AAC5B;gBACgB;AAChB,gBAAgB;CACf,WAAW;CACX,WAAW;CACX,YAAY;CACZ,aAAa;AACd;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,0BAA0B;CAC1B,UAAU;CACV,YAAY;CACZ,mBAAmB;AACpB;;AAEA;CACC,qBAAqB;CACrB,cAAc;CACd,mBAAmB;CACnB,kBAAkB;AACnB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,cAAc;CACd,eAAe;AAChB;;AAEA;CACC,gBAAgB;CAChB,yBAAyB;CACzB,kBAAkB;CAClB,cAAc;CACd,qBAAqB;CACrB,4BAA4B;CAC5B,6BAA6B;CAC7B,0BAA0B;CAC1B,iBAAiB;CACjB,gBAAgB;CAChB,2BAA2B;CAC3B,yBAAyB;CACzB,qBAAqB;AACtB;;AAEA;CACC,yBAAyB;CACzB,mBAAmB;CACnB,qBAAqB;CACrB,eAAe;CACf,iBAAiB;CACjB,gBAAgB;CAChB,WAAW;CACX,YAAY;CACZ,kBAAkB;AACnB;;AAEA,sCAAsC;AACtC,4CAA4C;AAC5C;CACC,YAAY;CACZ,gBAAgB;AACjB;;AAEA;CACC,WAAW;CACX,2CAA2C;AAC5C;;AAEA;CACC,gBAAgB;CAChB,WAAW;CACX,WAAW;CACX,cAAc;AACf;;AAEA;CACC,0BAA0B;AAC3B;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,qBAAqB;CACrB,eAAe;CACf,YAAY;CACZ,WAAW;AACZ;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,yBAAyB;AAC1B;;AAEA;CACC,yBAAyB;CACzB,WAAW;AACZ;;AAEA;CACC,yBAAyB;CACzB,WAAW;AACZ;;AAEA;CACC,uBAAuB;AACxB;;AAEA;CACC,0BAA0B;AAC3B;;AAEA;CACC,UAAU;CACV,WAAW;CACX,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,iBAAiB;CACjB,kBAAkB;CAClB,oBAAoB;CACpB,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;CAClB,sBAAsB;CACtB,eAAe;CACf,gBAAgB;CAChB,sBAAsB;AACvB;;AAEA;CACC,sBAAsB;CACtB,iBAAiB;CACjB,2BAA2B;CAC3B,sBAAsB;CACtB,mBAAmB;AACpB;;AAEA;CACC,sBAAsB;CACtB,iBAAiB;CACjB,8BAA8B;CAC9B,sBAAsB;CACtB,mBAAmB;AACpB;;AAEA;CACC,kBAAkB;CAClB,WAAW;AACZ;;AAEA;CACC,mBAAmB;CACnB,WAAW;AACZ;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,eAAe;CACf,iBAAiB;CACjB,mBAAmB;AACpB;;AAEA;;CAEC,gBAAgB;AACjB;;AAEA;CACC,eAAe;CACf,mBAAmB;AACpB;;AAEA;CACC,WAAW;CACX,gBAAgB;CAChB,kBAAkB;AACnB;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,uBAAuB;AACxB;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,4BAAsB;CAAtB,6BAAsB;KAAtB,0BAAsB;SAAtB,sBAAsB;CACtB,kBAAkB;CAClB,mBAAmB;AACpB;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,aAAa;CACb,mBAAmB;CACnB,cAAc;CACd,cAAc;CACd,kDAA0C;SAA1C,0CAA0C;AAC3C;;AAEA;CACC,mBAAmB;CACnB,kDAA0C;SAA1C,0CAA0C;AAC3C;;AAEA;CACC,uBAAuB;CACvB,UAAU;AACX;;AAEA;CACC,cAAc;CACd,gBAAgB;AACjB;;AAEA;CACC,0BAA0B;AAC3B;;AAEA,qBAAqB;;AAErB;CACC,cAAc;CACd,eAAe;CACf,MAAM;CACN,OAAO;CACP,QAAQ;CACR,SAAS;CACT,cAAc;CACd,iBAAiB;CACjB,mBAAmB;CACnB,cAAc;AACf;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,SAAS;AACV;;AAEA;CACC,8BAAsB;SAAtB,sBAAsB;CACtB,gBAAgB;CAChB,iBAAiB;CACjB,kBAAkB;AACnB;;AAEA;CACC,gBAAgB;CAChB,cAAc;CACd,gBAAgB;CAChB,gBAAgB;CAChB,gDAAwC;SAAxC,wCAAwC;CACxC,kBAAkB;CAClB,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,mBAAe;KAAf,eAAe;CACf,8BAAsB;SAAtB,sBAAsB;AACvB;;AAEA;CACC,eAAe;CACf,iBAAiB;CACjB,kBAAkB;CAClB,iBAAiB;CACjB,iBAAiB;CACjB,WAAW;CACX,eAAe;CACf,mBAAmB;CACnB,kBAAkB;CAClB,8BAAsB;SAAtB,sBAAsB;AACvB;;AAEA;CACC,kBAAkB;CAClB,yBAAyB;CACzB,8BAAsB;SAAtB,sBAAsB;AACvB;;AAEA;CACC,aAAa;CACb,SAAS;AACV;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,YAAY;CACZ,aAAa;CACb,8BAAsB;SAAtB,sBAAsB;CACtB,mBAAmB;CACnB,iBAAiB;AAClB;;AAEA;CACC,mBAAmB;CACnB,cAAc;CACd,sBAAsB;CACtB,aAAa;CACb,cAAc;CACd,kBAAkB;CAClB,SAAS;CACT,SAAS;CACT,QAAQ;CACR,OAAO;AACR;;AAEA;CACC,mBAAmB;CACnB,gIAAgI;AACjI;;AAEA;CACC,yBAAyB;CACzB,kBAAkB;CAClB,mBAAmB;AACpB;;AAEA;CACC,cAAc;CACd,iBAAiB;CACjB,mBAAmB;AACpB;;AAEA;CACC,aAAa;CACb,2BAA2B;AAC5B;;AAEA;CACC,cAAc;CACd,eAAe;AAChB;;AAEA;;CAEC,iBAAiB;AAClB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,SAAS;CACT,qBAAqB;CACrB,kBAAkB;CAClB,2BAA2B;AAC5B;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,cAAc;CACd,gBAAgB;CAChB,kBAAkB;AACnB;;AAEA;CACC,gBAAgB;CAChB,sBAAsB;CACtB,eAAe;CACf,sBAAsB;CACtB,qBAAqB;CACrB,iBAAiB;AAClB;;AAEA;CACC,sBAAsB;AACvB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,gBAAgB;CAChB,gDAAwC;SAAxC,wCAAwC;AACzC;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,eAAe;CACf,gBAAgB;CAChB,kBAAkB;CAClB,sBAAsB;CACtB,aAAa;AACd;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,eAAe;CACf,YAAY;CACZ,iBAAiB;CACjB,WAAW;AACZ;;AAEA;CACC,sBAAsB;AACvB;;AAEA,kBAAkB;;AAElB;CACC,WAAW;AACZ;;AAEA;CACC,mBAAmB;AACpB;;AAEA;;CAEC,kBAAkB;AACnB;;AAEA;CACC,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB,6BAA6B;AAC9B;;AAEA;CACC,SAAS;CACT,UAAU;AACX;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,qBAAqB;CACrB,SAAS;CACT,YAAY;AACb;;AAEA;CACC,qBAAqB;CACrB,kBAAkB;CAClB,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB,mBAAmB;CACnB,cAAc;CACd,aAAa;CACb,sBAAsB;AACvB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,0BAA0B;CAC1B,aAAa;CACb,kBAAkB;CAClB,gBAAgB;CAChB,SAAS;CACT,gBAAgB;CAChB,WAAW;CACX,8BAAsB;SAAtB,sBAAsB;CACtB,eAAe;AAChB;;AAEA;CACC,kBAAkB;CAClB,UAAU;CACV,SAAS;AACV;;AAEA;CACC,kBAAkB;CAClB,WAAW;CACX,SAAS;AACV;;AAEA;CACC,kBAAkB;CAClB,YAAY;CACZ,yBAAyB;CACzB,WAAW;CACX,+BAAqB;CACrB,YAAY;CACZ,8BAAsB;SAAtB,sBAAsB;CACtB,kBAAkB;CAClB,WAAW;CACX,kBAAkB;CAClB,aAAa;AACd;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,iBAAiB;AAClB;;AAEA,yCAAyC;AACzC;CACC,aAAa;AACd;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,gDAAwC;SAAxC,wCAAwC;AACzC;;AAEA,qBAAqB;;AAErB;CACC,gBAAgB;CAChB,mBAAmB;CACnB,YAAY;AACb;;AAEA;CACC,wBAAwB;CACxB,aAAa;AACd;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,sBAAsB;AACvB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,WAAW;AACZ;;AAEA,gBAAgB;;AAEhB;CACC,cAAc;CACd,iBAAiB;AAClB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,mBAAmB;CACnB,oBAAoB;AACrB;;AAEA;CACC,sBAAsB;AACvB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,cAAc;CACd,kBAAkB;CAClB,gBAAgB;AACjB;;AAEA;CACC,UAAU;CACV,SAAS;CACT,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;CAClB,oBAAoB;AACrB;;AAEA;CACC,kBAAkB;CAClB,oBAAoB;AACrB;;AAEA;CACC,UAAU;CACV,cAAc;AACf;;AAEA;;CAEC,iBAAiB;CACjB,oBAAoB;CACpB,yBAAyB;CACzB,YAAY;CACZ,iBAAiB;AAClB;;AAEA;;;CAGC,SAAS;CACT,cAAc;AACf;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,gBAAgB;CAChB,cAAc;AACf;;AAEA,+BAA+B;AAC/B;CACC,yBAAyB;CACzB,sBAAsB;CACtB,gDAAwC;SAAxC,wCAAwC;CACxC,gBAAgB;CAChB,oBAAoB;CACpB,iBAAiB;AAClB;;AAEA;CACC,cAAc;CACd,YAAY;AACb;;AAEA;CACC,0BAA0B;AAC3B;;AAEA;CACC,0BAA0B;AAC3B;;AAEA;CACC,uBAAuB;CACvB,mBAAmB;CACnB,aAAa;AACd;;AAEA;CACC,mBAAmB;AACpB;;AAEA;;CAEC;EACC,oBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,2BAAqB;MAArB,wBAAqB;UAArB,qBAAqB;CACtB;;CAEA;EACC,mBAAU;MAAV,cAAU;UAAV,UAAU;CACX;;CAEA;EACC,yBAAyB;CAC1B;;AAED;;AAEA;;CAEC;;;EAGC,wBAAwB;EACxB,iBAAiB;EACjB,4BAA4B;EAC5B,YAAY;EACZ,gBAAgB;EAChB,WAAW;CACZ;;CAEA;EACC,YAAY;CACb;;CAEA;EACC,eAAe;EACf,SAAS;EACT,WAAW;EACX,QAAQ;EACR,SAAS;EACT,gBAAgB;EAChB,UAAU;EACV,+CAAuC;UAAvC,uCAAuC;CACxC;;CAEA;EACC,SAAS;EACT,YAAY;CACb;;CAEA;EACC,UAAU;CACX;;CAEA;EACC,kBAAkB;CACnB;;CAEA;EACC,WAAW;CACZ;;AAED;;AAEA;;CAEC;EACC,UAAU;CACX;;AAED;;AAEA;;CAEC;EACC,eAAe;CAChB;;CAEA;EACC,gBAAgB;CACjB;;CAEA;EACC,kBAAkB;EAClB,eAAe;EACf,iBAAiB;CAClB;;CAEA;EACC,kBAAkB;EAClB,eAAe;EACf,sBAAsB;EACtB,YAAY;EACZ,mBAAmB;CACpB;;CAEA;EACC,kBAAkB;EAClB,QAAQ;EACR,QAAQ;CACT;;CAEA;EACC,cAAc;EACd,yBAAyB;CAC1B;;CAEA;EACC,kBAAkB;CACnB;;CAEA;EACC,SAAS;EACT,cAAc;EACd,WAAW;CACZ;;CAEA;EACC,cAAc;CACf;;CAEA;EACC,WAAW;EACX,8BAAsB;UAAtB,sBAAsB;EACtB,kBAAkB;CACnB;;CAEA;EACC,eAAe;EACf,SAAS;EACT,SAAS;EACT,WAAW;EACX,8BAAsB;UAAtB,sBAAsB;EACtB,kBAAkB;EAClB,mDAA2C;UAA3C,2CAA2C;EAC3C,gBAAgB;EAChB,UAAU;CACX;;CAEA;EACC,cAAc;EACd,kBAAkB;CACnB;;CAEA;EACC,cAAc;CACf;;AAED;;;;;;;;;GASG;;CAEF;EACC,mBAAmB;CACpB;;CAEA;EACC,qBAAqB;CACtB;;CAEA;EACC,SAAS;EACT,wBAAgB;UAAhB,gBAAgB;EAChB,uBAAuB;CACxB;;CAEA;EACC,YAAY;EACZ,mBAAmB;EACnB,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,UAAU;EACV,kBAAkB;EAClB,UAAU;EACV,UAAU;EACV,SAAS;CACV;;CAEA;EACC,cAAc;EACd,qBAAqB;EACrB,wBAAwB;EACxB,WAAW;EACX,UAAU;EACV,SAAS;EACT,mBAAmB;EACnB,gBAAgB;EAChB,gDAAwC;UAAxC,wCAAwC;CACzC;;CAEA;EACC,6BAA6B;EAC7B,cAAc;EACd,eAAe;EACf,gBAAgB;EAChB,WAAW;EACX,aAAa;EACb,SAAS;CACV;;CAEA;EACC;;;GAGC;EACD,yBAAyB;EACzB,iBAAiB;EACjB,cAAc;EACd,kBAAkB;EAClB,UAAU;EACV,oBAAoB;EACpB,WAAW;EACX,gBAAgB;CACjB;;CAEA;EACC,gBAAgB;CACjB;;CAEA;EACC,cAAc;EACd,eAAe;CAChB;;CAEA;EACC,gBAAgB;CACjB;;CAEA;EACC,4BAAsB;EAAtB,6BAAsB;MAAtB,0BAAsB;UAAtB,sBAAsB;CACvB;;CAEA;EACC,WAAW;CACZ;;CAEA;EACC,gBAAgB;CACjB;;CAEA;EACC,kBAAkB;CACnB;;CAEA;EACC,sBAAsB;EACtB,8BAA8B;CAC/B;;CAEA;EACC,iBAAiB;CAClB;;CAEA;EACC,sBAAsB;EACtB,kBAAkB;EAClB,OAAO;EACP,MAAM;EACN,8BAAsB;UAAtB,sBAAsB;EACtB,YAAY;EACZ,UAAU;EACV,YAAY;EACZ,2CAA2C;CAC5C;;CAEA;EACC,YAAY;CACb;;CAEA;EACC,cAAc;EACd,eAAe;EACf,WAAW;EACX,eAAe;CAChB;;CAEA;EACC,4BAAsB;EAAtB,6BAAsB;MAAtB,0BAAsB;UAAtB,sBAAsB;CACvB;;CAEA;EACC,WAAW;EACX,eAAe;EACf,eAAe;EACf,mBAAmB;CACpB;;CAEA;EACC,oBAAoB;CACrB;;CAEA;EACC,4BAAsB;EAAtB,6BAAsB;MAAtB,0BAAsB;UAAtB,sBAAsB;CACvB;;CAEA;EACC,mBAAe;MAAf,eAAe;EACf,4BAAsB;EAAtB,6BAAsB;MAAtB,0BAAsB;UAAtB,sBAAsB;CACvB;;CAEA;EACC,WAAW;EACX,aAAa;CACd;;CAEA;EACC,WAAW;CACZ;;CAEA;;EAEC,kBAAkB;EAClB,MAAM;EACN,YAAY;CACb;;CAEA;;EAEC,WAAW;CACZ;;CAEA;EACC,oBAAoB;EACpB,iBAAiB;CAClB;;AAED;;AAEA;;CAEC;CACA;;CAEA;EACC,WAAW;EACX,WAAW;EACX,kBAAkB;CACnB;;CAEA;EACC,aAAa;CACd;;CAEA;EACC,kBAAkB;CACnB;;CAEA;EACC,cAAc;EACd,WAAW;EACX,SAAS;EACT,mBAAmB;CACpB;;AAED;;AAEA;AACA;;AAEA;;CAEC;EACC,UAAU;CACX;;CAEA;EACC,mBAAmB,EAAE,YAAY;CAClC;;CAEA;EACC,mBAAmB;CACpB;;CAEA;EACC,kBAAkB;CACnB;;CAEA;EACC,iBAAiB;CAClB;;CAEA;EACC,kCAAkC;CACnC;;CAEA;EACC,0BAA0B;CAC3B;;AAED;;AAEA;;CAEC;EACC,WAAW;EACX,YAAY;EACZ,0CAA0C;EAC1C,mBAAmB;CACpB;;CAEA;EACC,kBAAkB;EAClB,gBAAgB;CACjB;;CAEA;EACC,cAAc;CACf;;AAED;;AAEA;;CAEC;EACC,uBAAuB;EACvB,mBAAmB;CACpB;;CAEA;EACC,YAAY;CACb;;AAED;;AAEA;;CAEC;EACC,WAAW;EACX,mBAAmB;CACpB;;CAEA;EACC,WAAW;CACZ;;CAEA;EACC,cAAc;CACf;;CAEA;EACC,oBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,mBAAe;MAAf,eAAe;CAChB;;CAEA;EACC,cAAc;CACf;;CAEA;EACC,WAAW;EACX,mBAAmB;CACpB;;CAEA;EACC,UAAU;EACV,8BAAsB;UAAtB,sBAAsB;CACvB;;CAEA;EACC,aAAa;CACd;;CAEA;EACC,2BAA2B;EAC3B,iBAAiB;EACjB,WAAW;EACX,cAAc;CACf;;AAED","file":"updraftplus-admin-1-25-5.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@keyframes udp_rotate {\n\n\tfrom {\n\t\ttransform: rotate(0);\n\t}\n\n\tto {\n\t\ttransform: rotate(360deg);\n\t}\n\n}\n\n/* Widths and sizing */\n.max-width-600 {\n\tmax-width: 600px;\n}\n\n.max-width-700 {\n\tmax-width: 700px;\n}\n\n.width-900 {\n\tmax-width: 900px;\n}\n\n.width-80 {\n\twidth: 80%;\n}\n\n.updraft--flex {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n}\n\n.updraft--flex > * {\n\tflex: 1;\n\tbox-sizing: border-box;\n}\n\n.updraft--flex > .updraft--one-half {\n\twidth: 50%;\n\tflex: auto;\n}\n\n.updraft--flex > .updraft--two-halves {\n\twidth: 100%;\n\tflex: auto;\n}\n\n.updraft-file-ready-label {\n\tpadding: 5px;\n}\n\n.updraft-color--very-light-grey {\n\tbackground: #F8F8F8;\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.button-ud-google {\n\ttext-decoration: none !important;\n\ttransition: background-color .3s, box-shadow .3s;\n\tpadding: 12px 16px 12px 42px !important;\n\tborder: none;\n\tborder-radius: 3px;\n\tbox-shadow: 0 -1px 0 rgba(0, 0, 0, .04), 0 1px 1px rgba(0, 0, 0, .25);\n\tcolor: #757575;\n\tfont-size: 14px;\n\tfont-weight: 500;\n\tfont-family: \"Roboto\";\n\tbackground-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTcuNiA5LjJsLS4xLTEuOEg5djMuNGg0LjhDMTMuNiAxMiAxMyAxMyAxMiAxMy42djIuMmgzYTguOCA4LjggMCAwIDAgMi42LTYuNnoiIGZpbGw9IiM0Mjg1RjQiIGZpbGwtcnVsZT0ibm9uemVybyIvPjxwYXRoIGQ9Ik05IDE4YzIuNCAwIDQuNS0uOCA2LTIuMmwtMy0yLjJhNS40IDUuNCAwIDAgMS04LTIuOUgxVjEzYTkgOSAwIDAgMCA4IDV6IiBmaWxsPSIjMzRBODUzIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48cGF0aCBkPSJNNCAxMC43YTUuNCA1LjQgMCAwIDEgMC0zLjRWNUgxYTkgOSAwIDAgMCAwIDhsMy0yLjN6IiBmaWxsPSIjRkJCQzA1IiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48cGF0aCBkPSJNOSAzLjZjMS4zIDAgMi41LjQgMy40IDEuM0wxNSAyLjNBOSA5IDAgMCAwIDEgNWwzIDIuNGE1LjQgNS40IDAgMCAxIDUtMy43eiIgZmlsbD0iI0VBNDMzNSIgZmlsbC1ydWxlPSJub256ZXJvIi8+PHBhdGggZD0iTTAgMGgxOHYxOEgweiIvPjwvZz48L3N2Zz4=);\n\tbackground-color: #FFF;\n\tbackground-repeat: no-repeat;\n\tbackground-position: 12px 11px;\n}\n\n.button-ud-google:hover {\n\tbox-shadow: 0 -1px 0 rgba(0, 0, 0, .04), 0 2px 4px rgba(0, 0, 0, .25);\n}\n\n.button-ud-google:active {\n\tbackground-color: #EEE;\n}\n\n.button-ud-google:focus {\n\toutline: none;\n\tbox-shadow: 0 -1px 0 rgba(0, 0, 0, .04), 0 2px 4px rgba(0, 0, 0, .25), 0 0 0 3px #C8DAFC;\n}\n\n.button-ud-google:disabled {\n\tfilter: grayscale(100%);\n\tbackground-color: #EBEBEB;\n\tbox-shadow: 0 -1px 0 rgba(0, 0, 0, .04), 0 1px 1px rgba(0, 0, 0, .25);\n\tcursor: not-allowed;\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\n.updraftclone_action_box #ud_downloadstatus3 {\n\tmargin-top: 10px;\n}\n\nspan.tokens-number {\n\tfont-size: 46px;\n\tdisplay: block;\n}\n\n/* Clone header button */\n.button.updraft_migrate_widget_temporary_clone_show_stage0 {\n\tdisplay: none;\n\tposition: absolute;\n\tright: 0;\n\ttop: 0;\n\theight: 100%;\n\tborder-left: 1px solid #CCC;\n\tpadding-left: 10px;\n\tpadding-right: 10px;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_container {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_box {\n\tmargin-right: 20px;\n\twidth: 100%;\n\tflex-basis: 100%;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_box iframe,\n.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js {\n\tfloat: none;\n}\n\n@media (min-width: 1024px) {\n\n\t.updraft_migrate_widget_temporary_clone_stage0_container {\n\t\tflex-direction: row;\n\t\tflex-wrap: wrap;\n\t}\n\n\t.updraft_migrate_widget_temporary_clone_stage0_box {\n\t\tflex-basis: 45%;\n\t}\n\n\t.updraft_migrate_widget_temporary_clone_stage0_box iframe,\n\t.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js {\n\t\tfloat: right;\n\t}\n\n}\n\n.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons {\n\ttext-decoration: none;\n\tfont-size: 20px;\n}\n\n.opened .button.updraft_migrate_widget_temporary_clone_show_stage0 {\n\tdisplay: inline-block;\n}\n\n.opened .updraft_migrate_widget_temporary_clone_stage0 {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 8px;\n\tmargin-bottom: 21px;\n}\n\n/* Clone list table */\n.clone-list {\n\tclear: both;\n\twidth: 100%;\n\tmargin-top: 40px;\n}\n\n.clone-list table {\n\twidth: 100%;\n\ttext-align: left;\n}\n\n.clone-list table tr th {\n\tbackground: #E4E4E4;\n}\n\n.clone-list table tr td {\n\tbackground: #F5F5F5;\n\tword-break: break-word;\n}\n\n.clone-list table tr:nth-child(odd) td {\n\tbackground: #FAFAFA;\n}\n\n.clone-list table td,\n.clone-list table th {\n\tpadding: 6px;\n}\n\n/* Clone Progress */\n.updraftplus-clone .updraft_row {\n\tpadding-left: 0;\n\tpadding-right: 0;\n}\n\nbutton#updraft_migrate_createclone + .updraftplus_spinner {\n\tmargin-top: 13px;\n}\n\n/* Clone - Show step 1 info button */\n.button.button-hero.updraftclone_show_step_1 {\n\twhite-space: normal;\n\theight: auto;\n\tline-height: 14px;\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n}\n\n.button.button-hero.updraftclone_show_step_1 span.dashicons {\n\theight: auto;\n}\n\n.updraftplus_clone_status {\n\tcolor: red;\n}\n\n/* MIGRATE */\n\na.updraft_migrate_add_site--trigger span.dashicons {\n\ttext-decoration: none;\n}\n\n.button-restore:hover, .button-migrate:hover, .button-backup:hover,\n.button-view-log:hover, .button-mass-selectors:hover,\n.button-delete:hover, .button-entity-backup:hover, .udp-button-primary:hover {\n\tborder-color: #DF6926;\n\tcolor: #DF6926;\n}\n\n.button-migrate {\n\tcolor: rgb(238, 169, 32);\n\tborder-color: rgb(238, 169, 32);\n}\n\n#updraft_migrate_tab_main {\n\tpadding: 8px;\n}\n\n.updraft_migrate_widget_module_content {\n\tbackground: #FFF;\n\tborder-radius: 0;\n\tposition: relative;\n}\n\nbody.js #updraft_migrate .updraft_migrate_widget_module_content {\n\tdisplay: none;\n}\n\n.updraft_migrate_widget_module_content > h3,\ndiv[class*=\"updraft_migrate_widget_temporary_clone_stage\"] > h3 {\n\tmargin-top: 0;\n}\n\n/* Migrate / Clone headers */\n.updraft_migrate_widget_module_content header,\n#updraft_migrate_tab_alt 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#updraft_migrate_tab_alt header h3,\n#updraft_migrate_tab_alt 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#updraft_migrate_tab_alt 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#updraft_migrate_tab_alt button.button.close .dashicons {\n\tmargin-top: 1px;\n}\n\n.updraft_migrate_widget_module_content header h3,\n#updraft_migrate_tab_alt 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#updraft_migrate_tab_alt #updraft_migrate_send_existing_button {\n\tmargin-right: 6px;\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\nbutton.ui-dialog-titlebar-close:before {\n\tcontent: none!important;\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: inline-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.updraft-fs-italic {\n\tfont-style: italic;\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-settings-content table.form-table .notice p {\n\tmax-width: none;\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\nlabel[for=updraft_servicecheckbox_updraftvault] {\n\tposition: relative;\n}\n\n#updraft-wrap .udp-info {\n\tposition: absolute;\n\tright: 10px;\n\ttop: calc(50% - 10px);\n}\n\n#updraft-wrap span.info-trigger {\n\tdisplay: inline-block;\n\twidth: 20px;\n\theight: 20px;\n\tbackground: #FFF;\n\tcolor: #72777C;\n\tborder-radius: 30px;\n\ttext-align: center;\n\tline-height: 20px;\n\tbox-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n}\n\n#updraft-wrap .info-content-wrapper {\n\tdisplay: none;\n\tposition: absolute;\n\tbottom: 20px;\n\ttransform: translatex(calc(-50% + 10px));\n\twidth: 330px;\n\tpadding-bottom: 10px;\n}\n\n#updraft-wrap .info-content-wrapper::before {\n\tcontent: '';\n\tposition: absolute;\n\tbottom: -10px;\n\tborder: 10px solid transparent;\n\tborder-top-color: #FFF;\n\tleft: calc(50% - 10px);\n}\n\n#updraft-wrap .info-content {\n\tpadding: 20px;\n\tbackground: #FFF;\n\tborder-radius: 4px;\n\tbox-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);\n\tcolor: #72777C;\n}\n\n#updraft-wrap .info-content h3 {\n\tmargin-top: 0;\n}\n\n#updraft-wrap .info-content p {\n\tmargin-top: 10px;\n}\n\n#updraft-wrap .udp-info:hover .info-content-wrapper {\n\tdisplay: block;\n}\n\ndiv.conditional_remote_backup select.logic_type {\n\tvertical-align: inherit !important;\n}\n\ndiv.conditional_remote_backup label.updraft_toggle_instance_label.radio_group {\n\tdisplay: block;\n\tmargin-top: 7px;\n}\n\ndiv.conditional_remote_backup div.logic ul.rules input.rule_value {\n\tvertical-align: middle;\n}\n\ndiv.conditional_remote_backup p {\n\tmargin-bottom: 10px;\n}\n\ndiv.conditional_remote_backup div.logic ul.rules span svg {\n\twidth: 20px;\n\tvertical-align: middle;\n\tcursor: pointer;\n}\n\ndiv.conditional_remote_backup div.logic ul.rules span svg {\n\tmargin-left: 3px;\n}\n\ndiv.conditional_remote_backup div.logic select.logic_type {\n\tvertical-align: unset;\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,\ndiv[id^=\"updraft_more_files_jstree_\"] .jstree-container-ul > .jstree-node {\n\tbackground: transparent;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-open > .jstree-ocl,\ndiv[id^=\"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,\ndiv[id^=\"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,\ndiv[id^=\"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, #updraft_exclude_files_folders_wildcards_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 */\ndiv[id^=\"updraft_more_files_container_\"], div.updraft_googledrive_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_googledrive_container ul.jstree-container-ul {\n\toverflow-y: scroll;\n\tmax-height: 200px;\n}\n\ndiv[id^=\"updraft_more_files_container_\"]::before, div.updraft_googledrive_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\ndiv[id^=\"updraft_jstree_buttons_\"] {\n\tpadding: 10px;\n\tbackground: #E6E6E6;\n}\n\ndiv[id^=\"updraft_jstree_container_\"] {\n\theight: 300px;\n\twidth: 100%;\n\toverflow: auto;\n}\n\ndiv[id^=\"updraft_more_files_container_\"] button {\n\tline-height: 20px;\n}\n\nbutton[id^=\"updraft_parent_directory_\"] {\n\tmargin: 10px 10px 4px 10px;\n\tpadding-left: 3px;\n}\n\nbutton[id^=\"updraft_jstree_confirm_\"], button[id^=\"updraft_jstree_cancel_\"] {\n\tdisplay: none;\n}\n\ninput[id^=\"updraft_include_more_path_restore_\"] {\n\ttext-align: right;\n}\n\n.updraftplus-morefiles-row-delete,\n.updraftplus-morefiles-row-edit {\n\tcursor: pointer;\n}\n\n#updraft_include_more_paths_error {\n\tcolor: #DE3C3C;\n}\n\np[id^=\"updraftplus_manual_authentication_error_\"] {\n\tcolor: #DE3C3C;\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\tmargin-left: 4px;\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\tmargin-top: 30px;\n\twidth: 100%;\n}\n\n#filelist .file, #filelist2 .file, .ud_downloadstatus .file, #ud_downloadstatus2 .file, #ud_downloadstatus3 .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__action {\n\tposition: relative;\n\ttext-align: center;\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\tmargin-bottom: 7px;\n}\n\n.updraft_premium_cta a.button.button-primary.button-hero + small {\n\tdisplay: block;\n\tmax-width: 100%;\n\ttext-align: center;\n\tcolor: #AFAFAF;\n}\n\n.updraft_premium_cta a.button.button-primary.button-hero + small .dashicons {\n\twidth: 12px;\n\theight: 12px;\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: 80%;\n\tmax-height: 30%;\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\tbackground: #FFF;\n\tborder-left: 4px solid #FFF;\n\tborder-left-color: #DC3232;\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.updraftplus_com_login_status.success {\n\tborder-left-color: green;\n}\n\n#updraft-wrap strong.success {\n\tcolor: green;\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, #ud_downloadstatus3 .dlfileprogress {\n\twidth: 0%;\n\tbackground: #0572AA;\n\theight: 8px;\n\ttransition: width .3s;\n}\n\n.ud_downloadstatus .raw, #ud_downloadstatus2 .raw, #ud_downloadstatus3 .raw {\n\tmargin-top: 8px;\n\tclear: left;\n}\n\n.ud_downloadstatus .file, #ud_downloadstatus2 .file, #ud_downloadstatus3 .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\ttransform: translatey(3px);\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.updated.backup-restored {\n\tpadding-top: 15px;\n\tpadding-bottom: 15px;\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.updraftplus-nav-tab.nav-tab-active,\n.updraftplus-nav-tab.nav-tab-active:hover,\n.updraftplus-nav-tab.nav-tab-active:focus,\n.updraftplus-nav-tab.nav-tab-active:focus:active {\n\tborder-bottom: 1px solid #F0F0F1;\n\tbackground: #F0F0F1!important;\n\tcolor: #000;\n}\n\n.updraftplus-nav-tab.nav-tab-active {\n\tmargin-bottom: -1px;\n\tcolor: #3C434A;\n}\n\n.updraftplus-nav-tab.nav-tab-active, .updraftplus-nav-tab:focus:active {\n\tbox-shadow: none;\n}\n\n.updraftplus-nav-tab {\n\tfloat: left;\n\tborder: 1px solid #C3C4C7;\n\tborder-bottom-color: rgb(195, 196, 199);\n\tborder-bottom-style: solid;\n\tborder-bottom-width: 1px;\n\tborder-bottom: none;\n\tmargin-left: 0.5em;\n\tpadding: 5px 10px;\n\tfont-size: 14px;\n\tline-height: 1.71428571;\n\tfont-weight: 600;\n\tbackground: #DCDCDE;\n\tcolor: #50575E;\n\ttext-decoration: none;\n\twhite-space: nowrap;\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\nsection.premium-upgrade-purchase-success {\n\tpadding: 2em;\n\tbackground: #FAFAFA;\n\ttext-align: center;\n\tbox-shadow: 0px 14px 40px rgba(0, 0, 0, 0.1);\n}\n\nsection.premium-upgrade-purchase-success h3 {\n\tfont-size: 2em;\n\tcolor: green;\n}\n\nsection.premium-upgrade-purchase-success h3 .dashicons {\n\tdisplay: block;\n\tmargin: 0 auto;\n\tfont-size: 60px;\n\twidth: 60px;\n\theight: 60px;\n\tborder-radius: 50%;\n\tbackground: green;\n\tcolor: #FFF;\n\tmargin-bottom: 20px;\n}\n\nsection.premium-upgrade-purchase-success h3 .dashicons::before {\n\tdisplay: inline-block;\n\tmargin-left: -4px;\n\tmargin-top: 2px;\n}\n\nsection.premium-upgrade-purchase-success p {\n\tfont-size: 120%;\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, #backupnow_includecloud_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#backupnow_database_moreoptions div.backupnow-db-tables {\n\tmargin-bottom: 5px;\n}\n\n#backupnow_database_moreoptions div.backupnow-db-tables > a {\n\tcolor: #0073AA;\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\ndiv.ui-dialog.ui-widget.ui-widget-content {\n\tz-index: 99999 !important;\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.notice.updraft-restore-option {\n\tpadding: 12px;\n\tmargin: 8px 0 4px 0;\n\tborder-left-color: #CCC;\n}\n\n/* updraft_restore_crypteddb */\n#updraft_restorer_dboptions h4 {\n\tmargin: 0px 0px 6px 0px;\n\tpadding: 0px;\n}\n\n.updraftplus_restore_tables_options_container {\n\tmax-height: 250px;\n\toverflow: auto;\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\tpadding: 10px 40px;\n\ttext-align: center;\n\tfont-style: italic;\n}\n\n.tr-bottom-4 {\n\tmargin-bottom: 4px;\n}\n\n.existing-backups-table th {\n\tpadding: 8px 10px;\n}\n\n.form-table .backup-date {\n\twidth: 172px;\n}\n\n.form-table .backup-data {\n\twidth: 426px;\n}\n\n.form-table .updraft_backup_actions {\n\twidth: 272px;\n}\n\n.existing-date {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n\tmax-width: 140px;\n\twidth: 25%;\n}\n\n.line-break-tr {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.line-break-td {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.td-line-color {\n\theight: 2px;\n\tbackground-color: #888;\n}\n\n.raw-backup {\n\tmax-width: 140px;\n}\n\n.existing-backups-actions {\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.existing-backups-border {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.existing-backups-border > td {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.existing-backups-border > div {\n\theight: 2px;\n\tbackground-color: #AAA;\n}\n\n.updraft_existing_backup_date {\n\tmax-width: 140px;\n}\n\n.updraftplus-upload {\n\tmargin-right: 6px;\n\tfloat: left;\n\tclear: none;\n}\n\n.before-restore-button {\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.before-restore-button div {\n\tfloat: none;\n\tdisplay: inline-block;\n}\n\n.table-separator-tr {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.table-separator-td {\n\tmargin: 0px;\n\tpadding: 0px;\n}\n\n.end-of-table-div {\n\theight: 2px;\n\tbackground-color: #AAA;\n}\n\n.last-backup-job {\n\tpadding-top: 3% !important;\n}\n\n.line-height-03 {\n\tline-height: 0.3 !important;\n}\n\n.line-height-13 {\n\tline-height: 1.3 !important;\n}\n\n.line-height-23 {\n\tline-height: 2.3 !important;\n}\n\n#updraft_diskspaceused {\n\tcolor: #DF6926;\n}\n\n#updraft_delete_old_dirs_pagediv {\n\tpadding-bottom: 10px;\n}\n\n/*#updraft_lastlogmessagerow > td, #updraft_last_backup > td {\n\tpadding: 0;\n}*/\n\n/* Time + scheduling add-on*/\n.fix-time {\n\twidth: 70px;\n}\n\n.retain-files {\n\twidth: 70px;\n}\n\n.number-input {\n\tmin-width: 50px;\n\tmax-width: 70px;\n}\n\n.additional-rule-width {\n\tmin-width: 60px;\n\tmax-width: 70px;\n}\n\n/* Add-ons */\n/* Want to fix the WordPress icons so that they fit inline with the text, and don't push everything out of place. */\n\n#updraft-wrap .dashicons.dashicons-adapt-size {\n\tline-height: inherit;\n\tfont-size: inherit;\n}\n\n#updraft-wrap .button span.dashicons:not(.dashicons-adapt-size) {\n\tvertical-align: middle;\n\tmargin-top: -3px;\n}\n\n.addon-logo-150 {\n\tmargin-left: 30px;\n\tmargin-top: 33px;\n\theight: 125px;\n\twidth: 150px;\n}\n\n.margin-bottom-50 {\n\tmargin-bottom: 50px;\n}\n\n.premium-container {\n\twidth: 80%;\n}\n\n/* Main Header */\n\n.main-header {\n\tbackground-color: #DF6926;\n\theight: 200px;\n\twidth: 100%;\n}\n\n.button-add-to-cart {\n\tcolor: white;\n\tborder-color: white;\n\tfloat: none;\n\tmargin-right: 17px;\n}\n\n.button-add-to-cart:hover, .button-add-to-cart:focus, .button-add-to-cart:active {\n\tborder-color: #A0A5AA;\n\tcolor: #A0A5AA;\n}\n\n.addon-title {\n\tmargin-top: 25px;\n}\n\n.addon-text {\n\tmargin-top: 75px;\n}\n\n.image-main-div {\n\twidth: 25%;\n\tfloat: left;\n}\n\n.text-main-div {\n\twidth: 60%;\n\tfloat: left;\n\ttext-align: center;\n\tcolor: white;\n\tmargin-top: 16px;\n}\n\n.text-main-div-title {\n\tfont-weight: bold !important;\n\tcolor: white;\n\ttext-align: center;\n}\n\n.text-main-div-paragraph {\n\tcolor: white;\n}\n\n/* End main header */\n\n/* Vault icons */\n\n.updraftplus-vault-cta {\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 50px;\n}\n\n.updraftplus-vault-cta h1 {\n\tfont-weight: bold;\n}\n\n.updraftvault-buy {\n\twidth: 225px;\n\theight: 225px;\n\tborder: 2px solid #777;\n\tdisplay: inline-table;\n\tmargin: 0 auto;\n\tmargin-right: 50px;\n\tposition: relative;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault {\n\twidth: 275px;\n\theight: 275px;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault > a {\n\tright: 21%;\n\tfont-size: 16px;\n\tborder-width: 4px !important;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault > p {\n\tfont-size: 16px;\n}\n\n.updraftvault-buy .button-purchase {\n\tright: 24%;\n\tmargin-left: 0;\n\tline-height: 1.7em;\n}\n\n.updraftvault-buy hr {\n\theight: 2px;\n\tbackground-color: #777;\n\tmargin-top: 18px;\n}\n\n.right {\n\tmargin-right: 0px;\n}\n\n.updraftvault-buy .addon-logo-100 {\n\theight: 100px;\n\twidth: 125px;\n\tmargin-top: 7px;\n}\n\n.updraftvault-buy .addon-logo-large {\n\tmargin-top: 7px;\n}\n\n.updraftvault-buy .button-buy-vault {\n\tfont-size: 12px;\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tborder-width: 2px !important;\n\tposition: absolute;\n\tright: 29%;\n\tbottom: 2%;\n}\n\n.premium-addon-div .button-purchase {\n\tline-height: 1.7em;\n}\n\n.updraftvault-buy .button-buy-vault:hover {\n\tborder-color: darkgrey;\n\tcolor: darkgrey;\n}\n\n/* End Vault icons */\n\n/* Premium addons */\n\n.premium-addons {\n\tmargin-top: 80px;\n\twidth: 100%;\n\tmargin: 0 auto;\n\tdisplay: table;\n}\n\n.addon-list {\n\t/* margin-left: 32px; */\n\tdisplay: table;\n\ttext-align: center;\n}\n\n.premium-addons h1 {\n\ttext-align: center;\n\tfont-weight: bold;\n}\n\n.premium-addons p {\n\ttext-align: center;\n}\n\n.premium-addons .premium-addon-div {\n\twidth: 200px;\n\theight: 250px;\n\tborder: 2px solid #777;\n\tdisplay: inline-table;\n\tmargin: 0 auto;\n\tmargin-right: 25px;\n\tmargin-top: 25px;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.premium-addons .premium-addon-div p {\n\tmargin-left: 2px;\n\tmargin-right: 2px;\n}\n\n.premium-addons .premium-addon-div img {\n\twidth: auto;\n\theight: 50px;\n\tmargin-top: 7px;\n}\n\n.premium-addons .premium-addon-div .hr-alignment {\n\tmargin-top: 44px;\n}\n\n.premium-addons .premium-addon-div .dropbox-logo {\n\theight: 39px;\n\twidth: 150px;\n}\n\n.premium-addons .premium-addon-div .azure-logo, .premium-addons .premium-addon-div .onedrive-logo {\n\twidth: 75%;\n\theight: 24px;\n}\n\n.button-purchase {\n\tfont-size: 12px;\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tborder-width: 2px !important;\n\tposition: absolute;\n\tright: 25%;\n\tbottom: 2%;\n}\n\n.button-purchase:hover {\n\tcolor: darkgrey;\n\tborder-color: darkgrey;\n}\n\n.premium-addons .premium-addon-div hr {\n\theight: 2px;\n\tbackground-color: #777;\n\tmargin-top: 18px;\n}\n\n.premium-addon-div p {\n\tfont-style: italic;\n}\n\n.addon-list > .premium-addon-div > .onedrive-fix,\n.addon-list > .premium-addon-div > .azure-logo {\n\tmargin-top: 33px;\n}\n\n.addon-list > .premium-addon-div > .dropbox-fix {\n\tmargin-top: 18px;\n}\n\n/* End premium addons */\n\n\n/* Forgotton something (that is the name of the div rather than a mental note!) */\n\n.premium-forgotton-something {\n\tmargin-top: 5%;\n}\n\n.premium-forgotton-something h1 {\n\ttext-align: center;\n\tfont-weight: bold;\n}\n\n.premium-forgotton-something p {\n\ttext-align: center;\n\tfont-weight: normal;\n}\n\n.premium-forgotton-something .button-faq {\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tmargin: 0 auto;\n\tdisplay: table;\n}\n\n.premium-forgotton-something .button-faq:hover {\n\tcolor: #777;\n\tborder-color: #777;\n}\n\n/* End of forgotton something */\n\n.updraftplusmethod.updraftvault #vaultlogo {\n\tpadding-left: 40px;\n}\n\n.updraftplusmethod.updraftvault .vault_primary_option {\n\tfloat: left;\n\twidth: 50%;\n\ttext-align: center;\n\tpadding-bottom: 20px;\n}\n\n.updraftplusmethod.updraftvault .vault_primary_option div {\n\tclear: right;\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .clear-left {\n\tclear: left;\n}\n\n.updraftplusmethod.updraftvault .padding-top-20px {\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .padding-top-14px {\n\tpadding-top: 14px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary, .updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary {\n\tfont-size: 18px !important;\n}\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-container {\n\ttext-align: center;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option {\n\twidth: 40%;\n\ttext-align: center;\n\tpadding-top: 20px;\n\tdisplay: inline-block;\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\twidth: auto;\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\nbody.update-core-php #updraft_inpage_backup h2:nth-child(1) {\n\tmargin-top: 1em !important;\n}\n\n/* Restoration page */\n\n.updraft_restore_container {\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tz-index: 99999;\n\tpadding-top: 30px;\n\tbackground: #F1F1F1;\n\toverflow: auto;\n}\n\n.updraft-modal-is-opened .select2-container {\n\tz-index: 99999;\n}\n\nbody.updraft-modal-is-opened {\n\toverflow: hidden;\n}\n\n.updraft_restore_container h2 {\n\tmargin: 0;\n}\n\n.updraft_restore_container .updraftmessage {\n\tbox-sizing: border-box;\n\tmax-width: 860px;\n\tmargin-left: auto;\n\tmargin-right: auto;\n}\n\n.updraft_restore_main {\n\tmax-width: 860px;\n\tmargin: 0 auto;\n\tmargin-top: 20px;\n\tbackground: #FFF;\n\tbox-shadow: 0 3px 3px rgba(0, 0, 0, 0.1);\n\tposition: relative;\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tbox-sizing: border-box;\n}\n\n.updraft_restore_main--header {\n\tfont-size: 20px;\n\tfont-weight: bold;\n\ttext-align: center;\n\tpadding-top: 16px;\n\tline-height: 20px;\n\twidth: 100%;\n\tmax-width: 100%;\n\tpadding-right: 30px;\n\tpadding-left: 30px;\n\tbox-sizing: border-box;\n}\n\n.updraft_restore_main--activity {\n\tposition: relative;\n\twidth: calc(100% - 350px);\n\tbox-sizing: border-box;\n}\n\n.updraft_restore_main--activity-title {\n\tpadding: 20px;\n\tmargin: 0;\n}\n\n.show-credentials-form.updraft_restore_main .updraft_restore_main--activity-title {\n\tdisplay: none;\n}\n\n.updraft_restore_main--components {\n\twidth: 350px;\n\tpadding: 20px;\n\tbox-sizing: border-box;\n\tbackground: #F8F8F8;\n\tmin-height: 350px;\n}\n\n.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output {\n\tbackground: #23282D;\n\tcolor: #E3E3E3;\n\tfont-family: monospace;\n\tpadding: 19px;\n\toverflow: auto;\n\tposition: absolute;\n\ttop: 60px;\n\tbottom: 0;\n\tright: 0;\n\tleft: 0;\n}\n\n#updraftplus_ajax_restore_output form {\n\twhite-space: normal;\n\tfont-family: -apple-system, blinkmacsystemfont, \"Segoe UI\", roboto, oxygen-sans, ubuntu, cantarell, \"Helvetica Neue\", sans-serif;\n}\n\n#updraftplus_ajax_restore_output .updraft_restore_errors {\n\tborder: 1px solid #DC3232;\n\tpadding: 10px 20px;\n\twhite-space: normal;\n}\n\n.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output h2 {\n\tcolor: #00A0D2;\n\tpadding-top: 10px;\n\tpadding-bottom: 5px;\n}\n\n.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output {\n\tpadding: 20px;\n\tborder-left: 1px solid #EEE;\n}\n\n.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output #message {\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n\n.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output .form-table td,\n.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output .form-table th {\n\tpadding-bottom: 0;\n}\n\n.updraft_restore_main.show-credentials-form .updraft_restore_main--components {\n\topacity: 0.2;\n}\n\n.updraft_restore_main.show-credentials-form div.error .restore-credential-errors--list p {\n\tmargin: 0;\n\tlist-style-type: disc;\n\tdisplay: list-item;\n\tlist-style-position: inside;\n}\n\n.restore-credential-errors > :first-child {\n\tmargin-top: 0;\n}\n\n.restore-credential-errors > :last-child {\n\tmargin-bottom: 0;\n}\n\nul.updraft_restore_components_list li {\n\tcolor: #BABABA;\n\tfont-size: 1.2em;\n\tmargin-bottom: 1em;\n}\n\nul.updraft_restore_components_list li::before {\n\tcontent: '\\f469';\n\tfont-family: dashicons;\n\tfont-size: 20px;\n\tvertical-align: middle;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\nul.updraft_restore_components_list li span {\n\tvertical-align: middle;\n}\n\nul.updraft_restore_components_list li.done {\n\tcolor: green;\n}\n\nul.updraft_restore_components_list li.done::before {\n\tcontent: \"\\f147\";\n}\n\nul.updraft_restore_components_list li.active {\n\tcolor: inherit;\n}\n\nul.updraft_restore_components_list li.active::before {\n\tcontent: \"\\f463\";\n\tanimation: udp_rotate 1s linear infinite;\n}\n\nul.updraft_restore_components_list li.error {\n\tcolor: #DC3232;\n}\n\nul.updraft_restore_components_list li.error::before {\n\tcontent: \"\\f335\";\n}\n\n.updraft_restore_result {\n\tpadding: 10px 0;\n\tfont-size: 1.3em;\n\tmargin-bottom: 1em;\n\tvertical-align: middle;\n\tdisplay: none;\n}\n\n.updraft_restore_result.restore-error {\n\tcolor: #DC3232;\n}\n\n.updraft_restore_result.restore-success {\n\tcolor: green;\n}\n\n.updraft_restore_result .dashicons {\n\tfont-size: 35px;\n\theight: 35px;\n\tline-height: 33px;\n\twidth: 35px;\n}\n\n.updraft_restore_result span {\n\tvertical-align: middle;\n}\n\n/* Restore modal */\n\n#updraft-restore-modal {\n\twidth: 100%;\n}\n\ndiv#updraft-restore-modal .notice {\n\tbackground: #F8F8F8;\n}\n\n.updraft-restore-modal--stage .updraft--two-halves,\n.updraft-restore-modal--stage .updraft--one-half {\n\tpadding: 20px 30px;\n}\n\n.updraft-restore-modal--header {\n\tpadding: 20px;\n\tpadding-bottom: 0px;\n\ttext-align: center;\n\tborder-bottom: 1px solid #EEE;\n}\n\n.updraft-restore-modal--header h3 {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.updraft-restore-item {\n\tpadding-bottom: 4px;\n}\n\n.updraft-restore-buttons {\n\tpadding-top: 10px;\n}\n\nul.updraft-restore--stages {\n\tdisplay: inline-block;\n\tmargin: 0;\n\theight: 28px;\n}\n\nul.updraft-restore--stages li {\n\tdisplay: inline-block;\n\tposition: relative;\n\twidth: 12px;\n\theight: 12px;\n\tbackground: #D2D2D2;\n\tborder-radius: 20px;\n\tline-height: 1;\n\tmargin: 0 4px;\n\tvertical-align: middle;\n}\n\nul.updraft-restore--stages li.active {\n\tbackground: #444;\n}\n\n.updraft-restore--footer {\n\tborder-top: 1px solid #EEE;\n\tpadding: 20px;\n\ttext-align: center;\n\tposition: sticky;\n\tbottom: 0;\n\tbackground: #FFF;\n\twidth: 100%;\n\tbox-sizing: border-box;\n\tz-index: 999999;\n}\n\n.updraft-restore--footer .updraft-restore--cancel {\n\tposition: absolute;\n\tleft: 20px;\n\ttop: auto;\n}\n\n.updraft-restore--footer .updraft-restore--next-step {\n\tposition: absolute;\n\tright: 20px;\n\ttop: auto;\n}\n\nul.updraft-restore--stages li span {\n\tposition: absolute;\n\twidth: 120px;\n\tbottom: calc(100% + 14px);\n\tleft: -55px;\n\tbackground: #000000DB;\n\tpadding: 5px;\n\tbox-sizing: border-box;\n\tborder-radius: 4px;\n\tcolor: #FFF;\n\ttext-align: center;\n\tdisplay: none;\n}\n\nul.updraft-restore--stages li:hover span {\n\tdisplay: inline-block;\n}\n\n.updraft-restore-item input[type=checkbox] {\n\tmargin-bottom: -5px;\n}\n\n.updraft-restore-item input[type=checkbox]:checked + label {\n\tfont-weight: bold;\n}\n\n/* Hide close button on download window */\ndiv#updraft-restore-modal .ud_downloadstatus__close {\n\tdisplay: none;\n}\n\n#ud_downloadstatus2:not(:empty) {\n\tmargin-top: 15px;\n}\n\n.dashicons.rotate {\n\tanimation: udp_rotate 1s linear infinite;\n}\n\n/* Activity stalled */\n\nspan#updraftplus_ajax_restore_last_activity {\n\tfont-size: .8rem;\n\tfont-weight: normal;\n\tfloat: right;\n}\n\n.updraft_restore_main--components .updated.show_admin_restore_in_progress_notice {\n\tmargin: -20px -20px 20px;\n\tpadding: 19px;\n}\n\n.updraft_restore_main--components .updated.show_admin_restore_in_progress_notice button {\n\tmargin-right: 5px;\n}\n\n#updraft_migrate_receivingsites .updraftplus-remote-sites-selector .button-primary, .updraft_migrate_add_site .input-field input, .updraft_migrate_add_site button {\n\tvertical-align: middle;\n}\n\n#updraft_migrate_receivingsites .text-link-menu a:not(:last-child) {\n\tpadding-right: 10px;\n}\n\n#updraft_migrate_receivingsites a.updraft_migrate_clear_sites span.dashicons-trash:before {\n\tfont-size: 17px;\n}\n\n#updraft_migrate_receivingsites .updraft_migrate_add_site {\n\tclear: both;\n}\n\n/* RTL Support */\n\n.rtl .advanced_tools.total_size table td {\n\tdirection: ltr;\n\ttext-align: right;\n}\n\n.rtl #plupload-upload-ui2.drag-drop #drag-drop-area2 {\n\tmargin-bottom: 20px;\n}\n\n.rtl #updraft_lastlogmessagerow .updraft-log-link {\n\tfloat: left;\n}\n\n.rtl label.updraft_checkbox > input[type=checkbox] {\n\tmargin-right: -25px;\n\tmargin-left: inherit;\n}\n\n.rtl .ud_downloadstatus__close {\n\tfloat: left !important;\n}\n\n.rtl #updraft_backupextradbs_another_container {\n\tfloat: right;\n}\n\n.rtl input.labelauty + label {\n\tdirection: ltr;\n\tposition: relative;\n\tmin-height: 29px;\n}\n\n.rtl input.labelauty + label > span.labelauty-checked-image, .rtl input.labelauty + label > span.labelauty-unchecked-image {\n\tright: 8px;\n\ttop: 11px;\n\tposition: absolute;\n}\n\n.rtl .button.updraft-close-overlay .dashicons {\n\tmargin-right: -5px;\n\tmargin-left: inherit;\n}\n\n.rtl label.updraft_checkbox {\n\tmargin-right: 26px;\n\tmargin-left: inherit;\n}\n\n.rtl #updraft-wrap .udp-info {\n\tleft: 10px;\n\tright: inherit;\n}\n\n.rtl input.labelauty + label > span.labelauty-unchecked-image + span.labelauty-unchecked,\n.rtl input.labelauty + label > span.labelauty-checked-image + span.labelauty-checked {\n\tmargin-right: 7px;\n\tmargin-left: inherit;\n\tpadding: 7px 7px 7px 26px;\n\twidth: 141px;\n\ttext-align: right;\n}\n\n.rtl #updraft_report_cell button.updraft_reportbox_delete,\n.rtl .updraft_box_delete_button,\n.rtl .updraft_small_box .updraft_box_delete_button {\n\tleft: 4px;\n\tright: inherit;\n}\n\n#updraft_exclude_modal .clause-input-container {\n\toverflow: auto;\n}\n\n#updraft_exclude_modal .clause-input-container select, #updraft_exclude_modal .clause-input-container input {\n\tfloat: left;\n}\n\n#updraft_exclude_modal .clause-input-container .wildcards-input {\n\tmargin: 7px 7px 0 0;\n}\n\n#updraft_exclude_modal .updraft-exclude-panel .contain-clause-sub-label {\n\tmargin-top: 10px;\n\tdisplay: block;\n}\n\n/* UpdraftPlus Notice Styling */\n.udp-notice {\n\tborder: 1px solid #C3C4C7;\n\tborder-left-width: 4px;\n\tbox-shadow: 0 1px 1px rgba(0, 0, 0, .04);\n\tbackground: #FFF;\n\tmargin: 5px 0 15px 0;\n\tpadding: 1px 12px;\n}\n\n.udp-notice p {\n\tmargin: .5em 0;\n\tpadding: 2px;\n}\n\n.udp-notice.notice-warning {\n\tborder-left-color: #DBA617;\n}\n\n.udp-notice.notice-error {\n\tborder-left-color: #D63638;\n}\n\n.udp-notice.updraft-restore-option {\n\tborder-left-color: #CCC;\n\tmargin: 8px 0 4px 0;\n\tpadding: 12px;\n}\n\ndiv#updraft-restore-modal .udp-notice, .udp-notice.updraft-restore-option {\n\tbackground: #F8F8F8;\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\t\n\t.rtl #ud_massactions.active, .rtl #updraft-delete-waitwarning.active {\n\t\tleft: 0px;\n\t\tright: 160px;\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\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.range-selection:not(.backuprowselected) .updraft_existingbackup_date .backup_date_label {\n\t\tcolor: #FFF;\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\t.updraft--flex {\n\t\tflex-direction: column;\n\t}\n\n\t.updraft_restore_main {\n\t\tflex-wrap: wrap;\n\t\tflex-direction: column;\n\t}\n\n\t.updraft_restore_main--components {\n\t\twidth: 100%;\n\t\tmin-height: 0;\n\t}\n\n\t.updraft_restore_main--activity {\n\t\twidth: 100%;\n\t}\n\n\tdiv#updraftplus_ajax_restore_output,\n\t.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output {\n\t\tposition: relative;\n\t\ttop: 0;\n\t\tbottom: auto;\n\t}\n\n\t.updraft--flex > .updraft--two-halves,\n\t.updraft--flex > .updraft--one-half {\n\t\twidth: 100%;\n\t}\n\n\t.updraft-restore-item {\n\t\tpadding-bottom: 10px;\n\t\tpadding-top: 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.range-selection:hover, .existing-backups-table tbody tr.range-selection {\n\t\tbackground: #0572AA; /* #2b7fd9 */\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"]}
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/css/updraftplus-admin-2-23-3.min.css b/wp-content/plugins/updraftplus/css/updraftplus-admin-2-23-3.min.css
deleted file mode 100644
index 6231deae..00000000
--- a/wp-content/plugins/updraftplus/css/updraftplus-admin-2-23-3.min.css
+++ /dev/null
@@ -1,2 +0,0 @@
-@-webkit-keyframes udp_blink{from{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:.4;-webkit-transform:scale(0.85);transform:scale(0.85)}}@keyframes udp_blink{from{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:.4;-webkit-transform:scale(0.85);transform:scale(0.85)}}@-webkit-keyframes udp_rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes udp_rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.max-width-600{max-width:600px}.max-width-700{max-width:700px}.width-900{max-width:900px}.width-80{width:80%}.updraft--flex{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft--flex>*{-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-sizing:border-box;box-sizing:border-box}.updraft--flex>.updraft--one-half{width:50%;-webkit-box-flex:1;-ms-flex:auto;flex:auto}.updraft--flex>.updraft--two-halves{width:100%;-webkit-box-flex:1;-ms-flex:auto;flex:auto}.updraft-color--very-light-grey{background:#f8f8f8}.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{-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);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;-webkit-transition:all .2s;transition:all .2s;vertical-align:baseline;-webkit-box-sizing:border-box;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}.button-ud-google{text-decoration:none !important;-webkit-transition:background-color .3s,-webkit-box-shadow .3s;transition:background-color .3s,-webkit-box-shadow .3s;transition:background-color .3s,box-shadow .3s;transition:background-color .3s,box-shadow .3s,-webkit-box-shadow .3s;padding:12px 16px 12px 42px !important;border:0;border-radius:3px;-webkit-box-shadow:0 -1px 0 rgba(0,0,0,.04),0 1px 1px rgba(0,0,0,.25);box-shadow:0 -1px 0 rgba(0,0,0,.04),0 1px 1px rgba(0,0,0,.25);color:#757575;font-size:14px;font-weight:500;font-family:"Roboto";background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTcuNiA5LjJsLS4xLTEuOEg5djMuNGg0LjhDMTMuNiAxMiAxMyAxMyAxMiAxMy42djIuMmgzYTguOCA4LjggMCAwIDAgMi42LTYuNnoiIGZpbGw9IiM0Mjg1RjQiIGZpbGwtcnVsZT0ibm9uemVybyIvPjxwYXRoIGQ9Ik05IDE4YzIuNCAwIDQuNS0uOCA2LTIuMmwtMy0yLjJhNS40IDUuNCAwIDAgMS04LTIuOUgxVjEzYTkgOSAwIDAgMCA4IDV6IiBmaWxsPSIjMzRBODUzIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48cGF0aCBkPSJNNCAxMC43YTUuNCA1LjQgMCAwIDEgMC0zLjRWNUgxYTkgOSAwIDAgMCAwIDhsMy0yLjN6IiBmaWxsPSIjRkJCQzA1IiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48cGF0aCBkPSJNOSAzLjZjMS4zIDAgMi41LjQgMy40IDEuM0wxNSAyLjNBOSA5IDAgMCAwIDEgNWwzIDIuNGE1LjQgNS40IDAgMCAxIDUtMy43eiIgZmlsbD0iI0VBNDMzNSIgZmlsbC1ydWxlPSJub256ZXJvIi8+PHBhdGggZD0iTTAgMGgxOHYxOEgweiIvPjwvZz48L3N2Zz4=);background-color:#FFF;background-repeat:no-repeat;background-position:12px 11px}.button-ud-google:hover{-webkit-box-shadow:0 -1px 0 rgba(0,0,0,.04),0 2px 4px rgba(0,0,0,.25);box-shadow:0 -1px 0 rgba(0,0,0,.04),0 2px 4px rgba(0,0,0,.25)}.button-ud-google:active{background-color:#EEE}.button-ud-google:focus{outline:0;-webkit-box-shadow:0 -1px 0 rgba(0,0,0,.04),0 2px 4px rgba(0,0,0,.25),0 0 0 3px #c8dafc;box-shadow:0 -1px 0 rgba(0,0,0,.04),0 2px 4px rgba(0,0,0,.25),0 0 0 3px #c8dafc}.button-ud-google:disabled{-webkit-filter:grayscale(100%);filter:grayscale(100%);background-color:#ebebeb;-webkit-box-shadow:0 -1px 0 rgba(0,0,0,.04),0 1px 1px rgba(0,0,0,.25);box-shadow:0 -1px 0 rgba(0,0,0,.04),0 1px 1px rgba(0,0,0,.25);cursor:not-allowed}.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:-webkit-box;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;-webkit-box-flex:1;-ms-flex:1;flex:1}.updraftclone_action_box p:first-child{margin-top:0}.updraftclone_action_box p:last-child{margin-bottom:0}.updraftclone_action_box #ud_downloadstatus3{margin-top:10px}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:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-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{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft_migrate_widget_temporary_clone_stage0_box{-ms-flex-preferred-size:45%;flex-basis:45%}.updraft_migrate_widget_temporary_clone_stage0_box iframe,.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js{float:right}}.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons{text-decoration:none;font-size:20px}.opened .button.updraft_migrate_widget_temporary_clone_show_stage0{display:inline-block}.opened .updraft_migrate_widget_temporary_clone_stage0{background:#f5f5f5;padding:20px;border-radius:8px;margin-bottom:21px}.clone-list{clear:both;width:100%;margin-top:40px}.clone-list table{width:100%;text-align:left}.clone-list table tr th{background:#e4e4e4}.clone-list table tr td{background:#f5f5f5;word-break:break-word}.clone-list table tr:nth-child(odd) td{background:#fafafa}.clone-list table td,.clone-list table th{padding:6px}.updraftplus-clone .updraft_row{padding-left:0;padding-right:0}button#updraft_migrate_createclone+.updraftplus_spinner{margin-top:13px}.button.button-hero.updraftclone_show_step_1{white-space:normal;height:auto;line-height:14px;padding-top:10px;padding-bottom:10px}.button.button-hero.updraftclone_show_step_1 span.dashicons{height:auto}.updraftplus_clone_status{color:red}a.updraft_migrate_add_site--trigger span.dashicons{text-decoration:none}.button-restore:hover,.button-migrate:hover,.button-backup:hover,.button-view-log:hover,.button-mass-selectors:hover,.button-delete:hover,.button-entity-backup:hover,.udp-button-primary:hover{border-color:#df6926;color:#df6926}.button-migrate{color:#eea920;border-color:#eea920}#updraft_migrate_tab_main{padding:8px}.updraft_migrate_widget_module_content{background:#FFF;border-radius:0;position:relative}body.js #updraft_migrate .updraft_migrate_widget_module_content{display:none}.updraft_migrate_widget_module_content>h3,div[class*="updraft_migrate_widget_temporary_clone_stage"]>h3{margin-top:0}.updraft_migrate_widget_module_content header,#updraft_migrate_tab_alt header{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content: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,#updraft_migrate_tab_alt header h3,#updraft_migrate_tab_alt header button.button.close{padding:10px;line-height:20px;height:auto;margin:0}.updraft_migrate_widget_module_content button.button.close,#updraft_migrate_tab_alt button.button.close{text-decoration:none;padding-left:5px;border-right:1px solid #CCC}.updraft_migrate_widget_module_content button.button.close .dashicons,#updraft_migrate_tab_alt button.button.close .dashicons{margin-top:1px}.updraft_migrate_widget_module_content header h3,#updraft_migrate_tab_alt 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_tab_alt #updraft_migrate_send_existing_button{margin-right:6px}#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;-webkit-box-shadow:0 0 0 1px rgba(91,157,217,0.22),0 0 2px 1px rgba(30,140,190,0.3);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;-webkit-box-shadow:1px 6px 12px -5px rgba(0,0,0,0.3);box-shadow:1px 6px 12px -5px rgba(0,0,0,0.3)}#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active:focus{-webkit-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);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;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);z-index:1}button.ui-dialog-titlebar-close:before{content:none !important}.updraft_next_scheduled_backups_wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;background:#FFF;justify-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft_next_scheduled_backups_wrapper>div{width:50%;background:#FFF;height:auto;padding:33px;-webkit-box-sizing:border-box;box-sizing:border-box}.updraft_backup_btn_wrapper{text-align:center;border-left:1px solid #f1f1f1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align: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;-webkit-box-shadow:none;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;-webkit-transition:.3s all;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:inline-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}.updraft-fs-italic{font-style:italic}@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;-webkit-box-shadow:none;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-settings-content table.form-table .notice p{max-width:none}#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}label[for=updraft_servicecheckbox_updraftvault]{position:relative}#updraft-wrap .udp-info{position:absolute;right:10px;top:calc(50% - 10px)}#updraft-wrap span.info-trigger{display:inline-block;width:20px;height:20px;background:#FFF;color:#72777c;border-radius:30px;text-align:center;line-height:20px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.15);box-shadow:0 1px 3px rgba(0,0,0,0.15)}#updraft-wrap .info-content-wrapper{display:none;position:absolute;bottom:20px;-webkit-transform:translatex(calc(-50% + 10px));transform:translatex(calc(-50% + 10px));width:330px;padding-bottom:10px}#updraft-wrap .info-content-wrapper::before{content:'';position:absolute;bottom:-10px;border:10px solid transparent;border-top-color:#FFF;left:calc(50% - 10px)}#updraft-wrap .info-content{padding:20px;background:#FFF;border-radius:4px;-webkit-box-shadow:0 3px 10px rgba(0,0,0,0.1);box-shadow:0 3px 10px rgba(0,0,0,0.1);color:#72777c}#updraft-wrap .info-content h3{margin-top:0}#updraft-wrap .info-content p{margin-top:10px}#updraft-wrap .udp-info:hover .info-content-wrapper{display:block}div.conditional_remote_backup select.logic_type{vertical-align:inherit !important}div.conditional_remote_backup label.updraft_toggle_instance_label.radio_group{display:block;margin-top:7px}div.conditional_remote_backup div.logic ul.rules input.rule_value{vertical-align:middle}div.conditional_remote_backup p{margin-bottom:10px}div.conditional_remote_backup div.logic ul.rules span svg{width:20px;vertical-align:middle;cursor:pointer}div.conditional_remote_backup div.logic ul.rules span svg{margin-left:3px}div.conditional_remote_backup div.logic select.logic_type{vertical-align:unset}.updraft_jstree .jstree-container-ul>.jstree-node,div[id^="updraft_more_files_jstree_"] .jstree-container-ul>.jstree-node{background:transparent}.updraft_jstree .jstree-container-ul>.jstree-open>.jstree-ocl,div[id^="updraft_more_files_jstree_"] .jstree-container-ul>.jstree-open>.jstree-ocl{background-position:-36px -4px}.updraft_jstree .jstree-container-ul>.jstree-closed>.jstree-ocl,div[id^="updraft_more_files_jstree_"] .jstree-container-ul>.jstree-closed>.jstree-ocl{background-position:-4px -4px}.updraft_jstree .jstree-container-ul>.jstree-leaf>.jstree-ocl,div[id^="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,#updraft_exclude_files_folders_wildcards_jstree{max-height:200px;overflow-y:scroll}.updraft_jstree{position:relative;border:1px dotted;height:80%;width:100%;overflow:auto}div[id^="updraft_more_files_container_"]{position:relative;display:none;width:100%;border:1px solid #CCC;background:#fafafa;margin-bottom:5px;margin-top:4px;-webkit-box-shadow:0 5px 8px rgba(0,0,0,0.1);box-shadow:0 5px 8px rgba(0,0,0,0.1)}div[id^="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;-webkit-transform:translatey(-7px) rotate(45deg);transform:translatey(-7px) rotate(45deg)}input.updraft_more_path_editing{border-color:#0285ba}input.updraft_more_path_editing ~ a.dashicons{display:none}div[id^="updraft_jstree_buttons_"]{padding:10px;background:#e6e6e6}div[id^="updraft_jstree_container_"]{height:300px;width:100%;overflow:auto}div[id^="updraft_more_files_container_"] button{line-height:20px}button[id^="updraft_parent_directory_"]{margin:10px 10px 4px 10px;padding-left:3px}button[id^="updraft_jstree_confirm_"],button[id^="updraft_jstree_cancel_"]{display:none}input[id^="updraft_include_more_path_restore_"]{text-align:right}.updraftplus-morefiles-row-delete,.updraftplus-morefiles-row-edit{cursor:pointer}#updraft_include_more_paths_error{color:#de3c3c}p[id^="updraftplus_manual_authentication_error_"]{color:#de3c3c}#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;-webkit-box-shadow:0 1px 0 #c10100;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;-webkit-box-shadow:0 1px 0 #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{-webkit-box-shadow:inherit;box-shadow:inherit;-webkit-box-shadow:0 0 3px rgba(0,115,170,0.8);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,#ud_downloadstatus3 .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__action{position:relative;text-align:center}.updraft_premium_cta a.button.button-primary.button-hero{font-size:1.3em;letter-spacing:.03rem;text-transform:uppercase;margin-bottom:7px}.updraft_premium_cta a.button.button-primary.button-hero+small{display:block;max-width:100%;text-align:center;color:#afafaf}.updraft_premium_cta a.button.button-primary.button-hero+small .dashicons{width:12px;height:12px}.updraft_premium_cta__top{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-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{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:center;-webkit-box-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;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.1);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;align-self:center;background:0;-webkit-box-shadow:none;box-shadow:none}.updraft-more-plugins{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;flex-wrap:wrap}.updraft-more-plugins img{max-width:80%;max-height:30%;display:inline-block}.updraft-more-plugins .udp-box{-webkit-box-sizing:border-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;background:#FFF;border-left:4px solid #FFF;border-left-color:#dc3232;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 0 15px 0;padding:5px 12px}.updraftplus_com_login_status.success{border-left-color:green}#updraft-wrap strong.success{color:green}.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,#ud_downloadstatus3 .dlfileprogress{width:0;background:#0572aa;height:8px;-webkit-transition:width .3s;transition:width .3s}.ud_downloadstatus .raw,#ud_downloadstatus2 .raw,#ud_downloadstatus3 .raw{margin-top:8px;clear:left}.ud_downloadstatus .file,#ud_downloadstatus2 .file,#ud_downloadstatus3 .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;-webkit-transform:translatey(3px);transform:translatey(3px)}.updraft_saving_popup img{-webkit-animation-name:udp_blink;animation-name:udp_blink;-webkit-animation-duration:610ms;animation-duration:610ms;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-direction:alternate;animation-direction:alternate;-webkit-animation-timing-function:ease-out;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}.updated.backup-restored{padding-top:15px;padding-bottom:15px}.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}section.premium-upgrade-purchase-success{padding:2em;background:#fafafa;text-align:center;-webkit-box-shadow:0 14px 40px rgba(0,0,0,0.1);box-shadow:0 14px 40px rgba(0,0,0,0.1)}section.premium-upgrade-purchase-success h3{font-size:2em;color:green}section.premium-upgrade-purchase-success h3 .dashicons{display:block;margin:0 auto;font-size:60px;width:60px;height:60px;border-radius:50%;background:green;color:#FFF;margin-bottom:20px}section.premium-upgrade-purchase-success h3 .dashicons::before{display:inline-block;margin-left:-4px;margin-top:2px}section.premium-upgrade-purchase-success p{font-size:120%}.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,#backupnow_includecloud_moreoptions{margin:4px 16px 6px 16px;border:1px dotted;padding:6px 10px}#backupnow_database_moreoptions{max-height:250px;overflow:auto}#backupnow_database_moreoptions div.backupnow-db-tables{margin-bottom:5px}#backupnow_database_moreoptions div.backupnow-db-tables>a{color:#0073aa}.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}div.ui-dialog.ui-widget.ui-widget-content{z-index:99999 !important}#updraft_delete_form p{margin-top:3px;padding-top:0}#updraft_restore_form .cannot-restore{margin:8px 0}.notice.updraft-restore-option{padding:12px;margin:8px 0 4px 0;border-left-color:#CCC}#updraft_restorer_dboptions h4{margin:0 0 6px 0;padding:0}.updraftplus_restore_tables_options_container{max-height:250px;overflow:auto}.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;-webkit-transition:width .3s;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{padding:10px 40px;text-align:center;font-style:italic}.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{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:140px;width:25%}.line-break-tr{height:2px;padding:1px;margin:0}.line-break-td{margin:0;padding:0}.td-line-color{height:2px;background-color:#888}.raw-backup{max-width:140px}.existing-backups-actions{padding:1px;margin:0}.existing-backups-border{height:2px;padding:1px;margin:0}.existing-backups-border>td{margin:0;padding:0}.existing-backups-border>div{height:2px;background-color:#AAA}.updraft_existing_backup_date{max-width:140px}.updraftplus-upload{margin-right:6px;float:left;clear:none}.before-restore-button{padding:1px;margin:0}.before-restore-button div{float:none;display:inline-block}.table-separator-tr{height:2px;padding:1px;margin:0}.table-separator-td{margin:0;padding:0}.end-of-table-div{height:2px;background-color:#AAA}.last-backup-job{padding-top:3% !important}.line-height-03{line-height:.3 !important}.line-height-13{line-height:1.3 !important}.line-height-23{line-height:2.3 !important}#updraft_diskspaceused{color:#df6926}#updraft_delete_old_dirs_pagediv{padding-bottom:10px}.fix-time{width:70px}.retain-files{width:70px}.number-input{min-width:50px;max-width:70px}.additional-rule-width{min-width:60px;max-width:70px}#updraft-wrap .dashicons.dashicons-adapt-size{line-height:inherit;font-size:inherit}#updraft-wrap .button span.dashicons:not(.dashicons-adapt-size){vertical-align:middle;margin-top:-3px}.addon-logo-150{margin-left:30px;margin-top:33px;height:125px;width:150px}.margin-bottom-50{margin-bottom:50px}.premium-container{width:80%}.main-header{background-color:#df6926;height:200px;width:100%}.button-add-to-cart{color:white;border-color:white;float:none;margin-right:17px}.button-add-to-cart:hover,.button-add-to-cart:focus,.button-add-to-cart:active{border-color:#a0a5aa;color:#a0a5aa}.addon-title{margin-top:25px}.addon-text{margin-top:75px}.image-main-div{width:25%;float:left}.text-main-div{width:60%;float:left;text-align:center;color:white;margin-top:16px}.text-main-div-title{font-weight:bold !important;color:white;text-align:center}.text-main-div-paragraph{color:white}.updraftplus-vault-cta{width:100%;text-align:center;margin-bottom:50px}.updraftplus-vault-cta h1{font-weight:bold}.updraftvault-buy{width:225px;height:225px;border:2px solid #777;display:inline-table;margin:0 auto;margin-right:50px;position:relative}.updraftplus-vault-cta>.vault-options>.center-vault{width:275px;height:275px}.updraftplus-vault-cta>.vault-options>.center-vault>a{right:21%;font-size:16px;border-width:4px !important}.updraftplus-vault-cta>.vault-options>.center-vault>p{font-size:16px}.updraftvault-buy .button-purchase{right:24%;margin-left:0;line-height:1.7em}.updraftvault-buy hr{height:2px;background-color:#777;margin-top:18px}.right{margin-right:0}.updraftvault-buy .addon-logo-100{height:100px;width:125px;margin-top:7px}.updraftvault-buy .addon-logo-large{margin-top:7px}.updraftvault-buy .button-buy-vault{font-size:12px;color:#df6926;border-color:#df6926;border-width:2px !important;position:absolute;right:29%;bottom:2%}.premium-addon-div .button-purchase{line-height:1.7em}.updraftvault-buy .button-buy-vault:hover{border-color:darkgrey;color:darkgrey}.premium-addons{margin-top:80px;width:100%;margin:0 auto;display:table}.addon-list{display:table;text-align:center}.premium-addons h1{text-align:center;font-weight:bold}.premium-addons p{text-align:center}.premium-addons .premium-addon-div{width:200px;height:250px;border:2px solid #777;display:inline-table;margin:0 auto;margin-right:25px;margin-top:25px;text-align:center;position:relative}.premium-addons .premium-addon-div p{margin-left:2px;margin-right:2px}.premium-addons .premium-addon-div img{width:auto;height:50px;margin-top:7px}.premium-addons .premium-addon-div .hr-alignment{margin-top:44px}.premium-addons .premium-addon-div .dropbox-logo{height:39px;width:150px}.premium-addons .premium-addon-div .azure-logo,.premium-addons .premium-addon-div .onedrive-logo{width:75%;height:24px}.button-purchase{font-size:12px;color:#df6926;border-color:#df6926;border-width:2px !important;position:absolute;right:25%;bottom:2%}.button-purchase:hover{color:darkgrey;border-color:darkgrey}.premium-addons .premium-addon-div hr{height:2px;background-color:#777;margin-top:18px}.premium-addon-div p{font-style:italic}.addon-list>.premium-addon-div>.onedrive-fix,.addon-list>.premium-addon-div>.azure-logo{margin-top:33px}.addon-list>.premium-addon-div>.dropbox-fix{margin-top:18px}.premium-forgotton-something{margin-top:5%}.premium-forgotton-something h1{text-align:center;font-weight:bold}.premium-forgotton-something p{text-align:center;font-weight:normal}.premium-forgotton-something .button-faq{color:#df6926;border-color:#df6926;margin:0 auto;display:table}.premium-forgotton-something .button-faq:hover{color:#777;border-color:#777}.updraftplusmethod.updraftvault #vaultlogo{padding-left:40px}.updraftplusmethod.updraftvault .vault_primary_option{float:left;width:50%;text-align:center;padding-bottom:20px}.updraftplusmethod.updraftvault .vault_primary_option div{clear:right;padding-top:20px}.updraftplusmethod.updraftvault .clear-left{clear:left}.updraftplusmethod.updraftvault .padding-top-20px{padding-top:20px}.updraftplusmethod.updraftvault .padding-top-14px{padding-top:14px}.updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary,.updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary{font-size:18px !important}.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-container{text-align:center}.updraftplusmethod.updraftvault .vault-purchase-option{width:40%;text-align:center;padding-top:20px;display:inline-block}.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;width:auto}.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{-webkit-box-orient:vertical;-webkit-box-direction:normal;-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%;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.1);box-shadow:0 1px 2px rgba(0,0,0,0.1)}#updraft_inpage_backup div#updraft_activejobsrow{background:#fafafa;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.1);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}body.update-core-php #updraft_inpage_backup h2:nth-child(1){margin-top:1em !important}.updraft_restore_container{display:block;position:fixed;top:0;left:0;right:0;bottom:0;z-index:99999;padding-top:30px;background:#f1f1f1;overflow:auto}.updraft-modal-is-opened .select2-container{z-index:99999}body.updraft-modal-is-opened{overflow:hidden}.updraft_restore_container h2{margin:0}.updraft_restore_container .updraftmessage{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:860px;margin-left:auto;margin-right:auto}.updraft_restore_main{max-width:860px;margin:0 auto;margin-top:20px;background:#FFF;-webkit-box-shadow:0 3px 3px rgba(0,0,0,0.1);box-shadow:0 3px 3px rgba(0,0,0,0.1);position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-sizing:border-box;box-sizing:border-box}.updraft_restore_main--header{font-size:20px;font-weight:bold;text-align:center;padding-top:16px;line-height:20px;width:100%;max-width:100%;padding-right:30px;padding-left:30px;-webkit-box-sizing:border-box;box-sizing:border-box}.updraft_restore_main--activity{position:relative;width:calc(100% - 350px);-webkit-box-sizing:border-box;box-sizing:border-box}.updraft_restore_main--activity-title{padding:20px;margin:0}.show-credentials-form.updraft_restore_main .updraft_restore_main--activity-title{display:none}.updraft_restore_main--components{width:350px;padding:20px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#f8f8f8;min-height:350px}.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output{background:#23282d;color:#e3e3e3;font-family:monospace;padding:19px;overflow:auto;position:absolute;top:60px;bottom:0;right:0;left:0}#updraftplus_ajax_restore_output form{white-space:normal;font-family:-apple-system,blinkmacsystemfont,"Segoe UI",roboto,oxygen-sans,ubuntu,cantarell,"Helvetica Neue",sans-serif}#updraftplus_ajax_restore_output .updraft_restore_errors{border:1px solid #dc3232;padding:10px 20px;white-space:normal}.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output h2{color:#00a0d2;padding-top:10px;padding-bottom:5px}.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output{padding:20px;border-left:1px solid #EEE}.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output #message{margin-left:0;margin-right:0}.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output .form-table td,.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output .form-table th{padding-bottom:0}.updraft_restore_main.show-credentials-form .updraft_restore_main--components{opacity:.2}.updraft_restore_main.show-credentials-form div.error .restore-credential-errors--list p{margin:0;list-style-type:disc;display:list-item;list-style-position:inside}.restore-credential-errors>:first-child{margin-top:0}.restore-credential-errors>:last-child{margin-bottom:0}ul.updraft_restore_components_list li{color:#bababa;font-size:1.2em;margin-bottom:1em}ul.updraft_restore_components_list li::before{content:'\f469';font-family:dashicons;font-size:20px;vertical-align:middle;display:inline-block;margin-right:7px}ul.updraft_restore_components_list li span{vertical-align:middle}ul.updraft_restore_components_list li.done{color:green}ul.updraft_restore_components_list li.done::before{content:"\f147"}ul.updraft_restore_components_list li.active{color:inherit}ul.updraft_restore_components_list li.active::before{content:"\f463";-webkit-animation:udp_rotate 1s linear infinite;animation:udp_rotate 1s linear infinite}ul.updraft_restore_components_list li.error{color:#dc3232}ul.updraft_restore_components_list li.error::before{content:"\f335"}.updraft_restore_result{padding:10px 0;font-size:1.3em;margin-bottom:1em;vertical-align:middle;display:none}.updraft_restore_result.restore-error{color:#dc3232}.updraft_restore_result.restore-success{color:green}.updraft_restore_result .dashicons{font-size:35px;height:35px;line-height:33px;width:35px}.updraft_restore_result span{vertical-align:middle}#updraft-restore-modal{width:100%}div#updraft-restore-modal .notice{background:#f8f8f8}.updraft-restore-modal--stage .updraft--two-halves,.updraft-restore-modal--stage .updraft--one-half{padding:20px 30px}.updraft-restore-modal--header{padding:20px;padding-bottom:0;text-align:center;border-bottom:1px solid #EEE}.updraft-restore-modal--header h3{margin:0;padding:0}.updraft-restore-item{padding-bottom:4px}.updraft-restore-buttons{padding-top:10px}ul.updraft-restore--stages{display:inline-block;margin:0;height:28px}ul.updraft-restore--stages li{display:inline-block;position:relative;width:12px;height:12px;background:#d2d2d2;border-radius:20px;line-height:1;margin:0 4px;vertical-align:middle}ul.updraft-restore--stages li.active{background:#444}.updraft-restore--footer{border-top:1px solid #EEE;padding:20px;text-align:center;position:sticky;bottom:0;background:#FFF;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.updraft-restore--footer .updraft-restore--cancel{position:absolute;left:20px;top:auto}.updraft-restore--footer .updraft-restore--next-step{position:absolute;right:20px;top:auto}ul.updraft-restore--stages li span{position:absolute;width:120px;bottom:calc(100% + 14px);left:-55px;background:rgba(0,0,0,0.85882);padding:5px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;color:#FFF;text-align:center;display:none}ul.updraft-restore--stages li:hover span{display:inline-block}.updraft-restore-item input[type=checkbox]{margin-bottom:-5px}.updraft-restore-item input[type=checkbox]:checked+label{font-weight:bold}div#updraft-restore-modal .ud_downloadstatus__close{display:none}#ud_downloadstatus2:not(:empty){margin-top:15px}.dashicons.rotate{-webkit-animation:udp_rotate 1s linear infinite;animation:udp_rotate 1s linear infinite}span#updraftplus_ajax_restore_last_activity{font-size:.8rem;font-weight:normal;float:right}.updraft_restore_main--components .updated.show_admin_restore_in_progress_notice{margin:-20px -20px 20px;padding:19px}.updraft_restore_main--components .updated.show_admin_restore_in_progress_notice button{margin-right:5px}#updraft_migrate_receivingsites .updraftplus-remote-sites-selector .button-primary,.updraft_migrate_add_site .input-field input,.updraft_migrate_add_site button{vertical-align:middle}#updraft_migrate_receivingsites .text-link-menu a:not(:last-child){padding-right:10px}#updraft_migrate_receivingsites a.updraft_migrate_clear_sites span.dashicons-trash:before{font-size:17px}#updraft_migrate_receivingsites .updraft_migrate_add_site{clear:both}.rtl .advanced_tools.total_size table td{direction:ltr;text-align:right}.rtl #plupload-upload-ui2.drag-drop #drag-drop-area2{margin-bottom:20px}.rtl #updraft_lastlogmessagerow .updraft-log-link{float:left}.rtl label.updraft_checkbox>input[type=checkbox]{margin-right:-25px;margin-left:inherit}.rtl .ud_downloadstatus__close{float:left !important}.rtl #updraft_backupextradbs_another_container{float:right}.rtl input.labelauty+label{direction:ltr;position:relative;min-height:29px}.rtl input.labelauty+label>span.labelauty-checked-image,.rtl input.labelauty+label>span.labelauty-unchecked-image{right:8px;top:11px;position:absolute}.rtl .button.updraft-close-overlay .dashicons{margin-right:-5px;margin-left:inherit}.rtl label.updraft_checkbox{margin-right:26px;margin-left:inherit}.rtl #updraft-wrap .udp-info{left:10px;right:inherit}.rtl input.labelauty+label>span.labelauty-unchecked-image+span.labelauty-unchecked,.rtl input.labelauty+label>span.labelauty-checked-image+span.labelauty-checked{margin-right:7px;margin-left:inherit;padding:7px 7px 7px 26px;width:141px;text-align:right}.rtl #updraft_report_cell button.updraft_reportbox_delete,.rtl .updraft_box_delete_button,.rtl .updraft_small_box .updraft_box_delete_button{left:4px;right:inherit}#updraft_exclude_modal .clause-input-container{overflow:auto}#updraft_exclude_modal .clause-input-container select,#updraft_exclude_modal .clause-input-container input{float:left}#updraft_exclude_modal .clause-input-container .wildcards-input{margin:7px 7px 0 0}#updraft_exclude_modal .updraft-exclude-panel .contain-clause-sub-label{margin-top:10px;display:block}@media only screen and (min-width:1024px){#updraft_activejobsrow .updraft_row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}#updraft_activejobsrow .updraft_row .updraft_col{-webkit-box-flex:1;-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;-webkit-box-shadow:0 0 10px rgba(0,0,0,0.2);box-shadow:0 0 10px rgba(0,0,0,0.2)}.rtl #ud_massactions.active,.rtl #updraft-delete-waitwarning.active{left:0;right:160px}body.folded #ud_massactions.active,body.folded #updraft-delete-waitwarning.active{left:36px}.updraft-after-form-table{margin-left:250px}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.range-selection:not(.backuprowselected) .updraft_existingbackup_date .backup_date_label{color:#FFF}}@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%;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center}#ud_massactions.active{position:fixed;top:auto;bottom:0;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;-webkit-box-shadow:0 -3px 15px rgba(0,0,0,0.08);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;-webkit-box-shadow:none;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;-webkit-box-shadow:0 2px 3px rgba(0,0,0,0.1);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{-webkit-box-orient:vertical;-webkit-box-direction:normal;-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;-webkit-box-sizing:border-box;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{-webkit-box-orient:vertical;-webkit-box-direction:normal;-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}.updraft--flex{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.updraft_restore_main{-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.updraft_restore_main--components{width:100%;min-height:0}.updraft_restore_main--activity{width:100%}div#updraftplus_ajax_restore_output,.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output{position:relative;top:0;bottom:auto}.updraft--flex>.updraft--two-halves,.updraft--flex>.updraft--one-half{width:100%}.updraft-restore-item{padding-bottom:10px;padding-top: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.range-selection:hover,.existing-backups-table tbody tr.range-selection{background:#0572aa}.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:-webkit-box;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%;-webkit-box-sizing:border-box;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}}
-/*# sourceMappingURL=updraftplus-admin-2-23-3.min.css.map */
diff --git a/wp-content/plugins/updraftplus/css/updraftplus-admin-2-23-3.min.css.map b/wp-content/plugins/updraftplus/css/updraftplus-admin-2-23-3.min.css.map
deleted file mode 100644
index 3c47e7b5..00000000
--- a/wp-content/plugins/updraftplus/css/updraftplus-admin-2-23-3.min.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["css/updraftplus-admin.css"],"names":[],"mappings":"AAAA;;CAEC;EACC,UAAU;EACV,2BAAmB;UAAnB,mBAAmB;CACpB;;CAEA;EACC,YAAY;EACZ,8BAAsB;UAAtB,sBAAsB;CACvB;;AAED;;AAZA;;CAEC;EACC,UAAU;EACV,2BAAmB;UAAnB,mBAAmB;CACpB;;CAEA;EACC,YAAY;EACZ,8BAAsB;UAAtB,sBAAsB;CACvB;;AAED;;AAEA;;CAEC;EACC,4BAAoB;UAApB,oBAAoB;CACrB;;CAEA;EACC,iCAAyB;UAAzB,yBAAyB;CAC1B;;AAED;;AAVA;;CAEC;EACC,4BAAoB;UAApB,oBAAoB;CACrB;;CAEA;EACC,iCAAyB;UAAzB,yBAAyB;CAC1B;;AAED;;AAEA,sBAAsB;AACtB;CACC,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,UAAU;AACX;;AAEA;CACC,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,mBAAe;KAAf,eAAe;AAChB;;AAEA;CACC,mBAAO;KAAP,WAAO;SAAP,OAAO;CACP,8BAAsB;SAAtB,sBAAsB;AACvB;;AAEA;CACC,UAAU;CACV,mBAAU;KAAV,cAAU;SAAV,UAAU;AACX;;AAEA;CACC,WAAW;CACX,mBAAU;KAAV,cAAU;SAAV,UAAU;AACX;;AAEA;CACC,mBAAmB;AACpB;;AAEA,0BAA0B;;AAE1B,iBAAiB;AACjB;CACC,qBAAqB;AACtB;;AAEA;CACC,iBAAiB;AAClB;;AAEA,qBAAqB;AACrB,cAAc;AACd;CACC,kBAAkB;AACnB;;AAEA,qBAAqB;AACrB,YAAY;AACZ;CACC,qBAAqB;AACtB;;AAEA,mBAAmB;;AAEnB;CACC,kBAAkB;AACnB;;AAEA;CACC,YAAY;CACZ,eAAe;AAChB;;AAEA;CACC,uBAAuB;AACxB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,8CAAsC;SAAtC,sCAAsC;AACvC;;AAEA;CACC,qBAAqB;AACtB;;AAEA;;CAEC,cAAc;CACd,gBAAgB;CAChB,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA,gBAAgB;AAChB;CACC,cAAc;CACd,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;AACnB;;AAEA,gBAAgB;AAChB;CACC,YAAY;AACb;;AAEA;CACC,oBAAoB;AACrB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,kBAAkB;CAClB,eAAe;AAChB;;AAEA;;CAEC,gBAAgB;CAChB,WAAW;AACZ;;AAEA;CACC,gBAAgB;AACjB;;AAEA,oBAAoB;;AAEpB,iBAAiB;AACjB;CACC,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB,eAAe;CACf,iBAAiB;CACjB,mBAAmB;CACnB,kBAAkB;CAClB,kBAAkB;CAClB,kBAAkB;CAClB,uBAAuB;CACvB,kBAAkB;CAClB,iBAAiB;CACjB,4BAAoB;CAApB,oBAAoB;CACpB,wBAAwB;CACxB,8BAAsB;SAAtB,sBAAsB;CACtB,kBAAkB;CAClB,kBAAkB;CAClB,iBAAiB;CACjB,oBAAoB;CACpB,cAAc;CACd,qBAAqB;AACtB;;AAEA;CACC,+BAA+B;CAC/B,wBAAwB;AACzB;;AAEA;CACC,gCAAgC;CAChC,gEAAgD;CAAhD,wDAAgD;CAAhD,gDAAgD;CAAhD,wEAAgD;CAChD,uCAAuC;CACvC,YAAY;CACZ,kBAAkB;CAClB,6EAAqE;SAArE,qEAAqE;CACrE,cAAc;CACd,eAAe;CACf,gBAAgB;CAChB,qBAAqB;CACrB,60BAA60B;CAC70B,sBAAsB;CACtB,4BAA4B;CAC5B,8BAA8B;AAC/B;;AAEA;CACC,6EAAqE;SAArE,qEAAqE;AACtE;;AAEA;CACC,sBAAsB;AACvB;;AAEA;CACC,aAAa;CACb,gGAAwF;SAAxF,wFAAwF;AACzF;;AAEA;CACC,+BAAuB;SAAvB,uBAAuB;CACvB,yBAAyB;CACzB,6EAAqE;SAArE,qEAAqE;CACrE,mBAAmB;AACpB;;AAEA;CACC,iBAAiB;CACjB,YAAY;CACZ,kBAAkB;AACnB;;AAEA;CACC,aAAa;CACb,kBAAkB;AACnB;;AAEA;CACC,qBAAqB;CACrB,mBAAmB;AACpB;;AAEA;CACC,cAAc;AACf;;AAEA;;CAEC;;AAED;CACC,aAAa;AACd;;AAEA,eAAe;;AAEf;CACC,oBAAa;CAAb,oBAAa;CAAb,aAAa;AACd;;AAEA;CACC,mBAAmB;CACnB,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB,gBAAgB;AACjB;;AAEA;CACC,SAAS;AACV;;AAEA;CACC,mBAAmB;CACnB,aAAa;CACb,mBAAmB;CACnB,mBAAO;KAAP,WAAO;SAAP,OAAO;AACR;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,eAAe;CACf,cAAc;AACf;;AAEA,wBAAwB;AACxB;CACC,aAAa;CACb,kBAAkB;CAClB,QAAQ;CACR,MAAM;CACN,YAAY;CACZ,2BAA2B;CAC3B,kBAAkB;CAClB,mBAAmB;AACpB;;AAEA;CACC,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,4BAAsB;CAAtB,6BAAsB;KAAtB,0BAAsB;SAAtB,sBAAsB;AACvB;;AAEA;CACC,kBAAkB;CAClB,WAAW;CACX,6BAAgB;KAAhB,gBAAgB;AACjB;;AAEA;;CAEC,WAAW;AACZ;;AAEA;;CAEC;EACC,8BAAmB;EAAnB,6BAAmB;MAAnB,uBAAmB;UAAnB,mBAAmB;EACnB,mBAAe;MAAf,eAAe;CAChB;;CAEA;EACC,4BAAe;MAAf,eAAe;CAChB;;CAEA;;EAEC,YAAY;CACb;;AAED;;AAEA;CACC,qBAAqB;CACrB,eAAe;AAChB;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,mBAAmB;CACnB,aAAa;CACb,kBAAkB;CAClB,mBAAmB;AACpB;;AAEA,qBAAqB;AACrB;CACC,WAAW;CACX,WAAW;CACX,gBAAgB;AACjB;;AAEA;CACC,WAAW;CACX,gBAAgB;AACjB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,mBAAmB;CACnB,sBAAsB;AACvB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;;CAEC,YAAY;AACb;;AAEA,mBAAmB;AACnB;CACC,eAAe;CACf,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;AACjB;;AAEA,oCAAoC;AACpC;CACC,mBAAmB;CACnB,YAAY;CACZ,iBAAiB;CACjB,iBAAiB;CACjB,oBAAoB;AACrB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,UAAU;AACX;;AAEA,YAAY;;AAEZ;CACC,qBAAqB;AACtB;;AAEA;;;CAGC,qBAAqB;CACrB,cAAc;AACf;;AAEA;CACC,wBAAwB;CACxB,+BAA+B;AAChC;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,gBAAgB;CAChB,gBAAgB;CAChB,kBAAkB;AACnB;;AAEA;CACC,aAAa;AACd;;AAEA;;CAEC,aAAa;AACd;;AAEA,4BAA4B;AAC5B;;CAEC,kBAAkB;CAClB,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,0BAAqB;KAArB,qBAAqB;CACrB,qBAAqB;CACrB,iBAAiB;CACjB,kBAAkB;CAClB,mBAAmB;CACnB,mBAAmB;CACnB,6BAA6B;AAC9B;;AAEA;;;;CAIC,aAAa;CACb,iBAAiB;CACjB,YAAY;CACZ,SAAS;AACV;;AAEA;;CAEC,qBAAqB;CACrB,iBAAiB;CACjB,4BAA4B;AAC7B;;AAEA;;CAEC,eAAe;AAChB;;AAEA;;CAEC,SAAS;AACV;;AAEA;CACC,gBAAgB;CAChB,iBAAiB;CACjB,mBAAmB;CACnB,cAAc;CACd,YAAY;CACZ,iBAAiB;CACjB,oBAAoB;CACpB,gBAAgB;CAChB,kBAAkB;CAClB,kBAAkB;CAClB,mBAAmB;AACpB;;AAEA;CACC,kBAAkB;CAClB,UAAU;CACV,oBAAoB;AACrB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;;CAEC;AACD;CACC,cAAc;AACf;;AAEA;CACC,mBAAmB;CACnB,SAAS;CACT,gBAAgB;CAChB,mBAAmB;CACnB,oBAAoB;AACrB;;AAEA;CACC,oBAAoB;AACrB;;AAEA;CACC,8BAA8B;AAC/B;;AAEA;CACC,4BAA4B;AAC7B;;AAEA;CACC,UAAU;CACV,UAAU;AACX;;AAEA;CACC,aAAa;CACb,2FAAmF;SAAnF,mFAAmF;CACnF,gBAAgB;AACjB;;AAEA;CACC,cAAc;CACd,UAAU;AACX;;AAEA;CACC,mBAAmB;CACnB,gCAAgC;CAChC,wDAAgD;SAAhD,gDAAgD;AACjD;;AAEA;CACC,+GAAuG;SAAvG,uGAAuG;AACxG;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,YAAY;CACZ,kBAAkB;AACnB;;AAEA;CACC,aAAa;CACb,yEAAiE;SAAjE,iEAAiE;CACjE,UAAU;AACX;;AAEA;CACC,uBAAuB;AACxB;;AAEA;CACC,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,gBAAgB;CAChB,qBAAqB;CACrB,mBAAe;KAAf,eAAe;AAChB;;AAEA;CACC,UAAU;CACV,gBAAgB;CAChB,YAAY;CACZ,wBAAwB;CACxB,aAAa;CACb,8BAAsB;SAAtB,sBAAsB;AACvB;;AAEA;CACC,kBAAkB;CAClB,8BAA8B;CAC9B,wBAAuB;KAAvB,qBAAuB;SAAvB,uBAAuB;CACvB,yBAAmB;KAAnB,sBAAmB;SAAnB,mBAAmB;AACpB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,YAAY;CACZ,iCAAiC;CACjC,yBAAyB;AAC1B;;AAEA;CACC,mBAAmB;CACnB,WAAW;CACX,SAAS;CACT,kBAAkB;AACnB;;AAEA;;CAEC,aAAa;AACd;;AAEA;CACC,qBAAqB;CACrB,mBAAmB;CACnB,gBAAgB;CAChB,eAAe;AAChB;;AAEA;CACC,yBAAyB;CACzB,kBAAkB;CAClB,yFAAyF;CACzF,wBAAgB;SAAhB,gBAAgB;AACjB;;AAEA;CACC,qBAAqB;CACrB,mBAAmB;CACnB,eAAe;CACf,eAAe;CACf,eAAe;AAChB;;AAEA;CACC,UAAU;CACV,qBAAqB;CACrB,WAAW;CACX;;EAEC;AACF;;AAEA;CACC,WAAW;CACX,eAAe;AAChB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,gBAAgB;CAChB,WAAW;AACZ;;AAEA;CACC,qBAAqB;CACrB,YAAY;AACb;;AAEA;CACC,mBAAmB;CACnB,2BAA2B;CAC3B,8BAA8B;CAC9B,WAAW;CACX,eAAe;CACf,yCAAyC;AAC1C;;AAEA;CACC,mBAAmB;CACnB,4BAA4B;CAC5B,+BAA+B;CAC/B,iBAAiB;AAClB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,WAAW;CACX,iBAAiB;AAClB;;AAEA;CACC,YAAY;CACZ,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,WAAW;CACX,gBAAgB;CAChB,aAAa;AACd;;AAEA;CACC,gBAAgB;CAChB,WAAW;CACX,mBAAmB;CACnB,UAAU;AACX;;AAEA;CACC,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,mBAAmB;CACnB,WAAW;CACX,sBAAsB;CACtB,gBAAgB;AACjB;;AAEA;CACC,YAAY;CACZ,cAAc;CACd,qBAAqB;AACtB;;AAEA;CACC,WAAW;CACX,4BAAoB;CAApB,oBAAoB;CACpB,kBAAkB;AACnB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;CAChB,eAAe;CACf,mBAAmB;CACnB,WAAW;CACX,iBAAiB;CACjB,mBAAmB;AACpB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,WAAW;CACX,UAAU;CACV,gBAAgB;AACjB;;AAEA;CACC,eAAe;CACf,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,eAAe;CACf,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,cAAc;CACd,qBAAqB;CACrB,eAAe;CACf,kBAAkB;CAClB,iBAAiB;CACjB,kBAAkB;AACnB;;AAEA;CACC,eAAe;CACf,sBAAsB;CACtB,eAAe;CACf,kBAAkB;CAClB,iBAAiB;CACjB,gBAAgB;AACjB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,eAAe;CACf,kBAAkB;CAClB,iBAAiB;CACjB,YAAY;AACb;;AAEA;CACC,gBAAgB;CAChB,eAAe;AAChB;;AAEA;CACC,WAAW;CACX,kBAAkB;CAClB,eAAe;CACf,kBAAkB;CAClB,iBAAiB;CACjB,iBAAiB;AAClB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,iBAAiB;CACjB,cAAc;CACd,qBAAqB;CACrB,eAAe;CACf,YAAY;AACb;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,kBAAkB;CAClB,yBAAyB;CACzB,wBAAwB;CACxB,WAAW;CACX,cAAc;AACf;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,aAAa;CACb,kBAAkB;CAClB,UAAU;AACX;;AAEA;CACC,sBAAsB;AACvB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,iBAAiB;AAClB;;AAEA,qBAAqB;;AAErB,2BAA2B;;AAE3B;CACC,WAAW;CACX,YAAY;CACZ,WAAW;CACX,mBAAmB;AACpB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,gBAAgB;CAChB,eAAe;CACf,iBAAiB;CACjB,aAAa;CACb,WAAW;AACZ;;AAEA;CACC,YAAY;CACZ,kBAAkB;CAClB,UAAU;AACX;;AAEA;;CAEC,iBAAiB;CACjB,eAAe;CACf,mBAAmB;CACnB,aAAa;CACb,sBAAsB;AACvB;;AAEA;CACC,gBAAgB;CAChB,kBAAkB;CAClB,qBAAqB;AACtB;;AAEA;;CAEC,qBAAqB;CACrB,gBAAgB;AACjB;;AAEA;;;CAGC,wBAAwB;CACxB,gBAAgB;AACjB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;;CAEC;;EAEC,qBAAqB;CACtB;;AAED;;AAEA;CACC,eAAe;CACf,eAAe;CACf,wBAAgB;SAAhB,gBAAgB;CAChB,cAAc;CACd,YAAY;CACZ,iBAAiB;AAClB;;AAEA;;;CAGC,cAAc;AACf;;AAEA;CACC,cAAc;CACd,iBAAiB;CACjB,eAAe;CACf,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,uBAAuB;AACxB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;;CAEC,aAAa;CACb,aAAa;CACb,sBAAsB;CACtB,kBAAkB;AACnB;;AAEA;;;CAGC,YAAY;CACZ,gBAAgB;CAChB,YAAY;CACZ,uBAAuB;CACvB,kBAAkB;CAClB,QAAQ;CACR,UAAU;CACV,eAAe;AAChB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,qBAAqB;CACrB,eAAe;AAChB;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,0BAA0B;AAC3B;;AAEA;CACC,cAAc;CACd,wBAAwB;CACxB,kBAAkB;AACnB;;AAEA;CACC,WAAW;AACZ;;AAEA,kCAAkC;;AAElC;CACC,gBAAgB;AACjB;;AAEA;CACC,eAAe;AAChB;;AAEA;;CAEC,yBAAyB;AAC1B;;AAEA;CACC,yBAAyB;AAC1B;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,6BAA6B;CAC7B,YAAY;CACZ,cAAc;CACd,0BAA0B;CAC1B,eAAe;CACf,WAAW;CACX,WAAW;AACZ;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,2BAA2B;CAC3B,6BAA6B;CAC7B,0BAA0B;CAC1B,gBAAgB;CAChB,gBAAgB;AACjB;;AAEA;CACC,0BAA0B;AAC3B;;AAEA;CACC,YAAY;CACZ,YAAY;CACZ,6BAA6B;AAC9B;;AAEA;CACC,8BAA8B;AAC/B;;AAEA;CACC,YAAY;CACZ,iBAAiB;CACjB,iBAAiB;CACjB,kBAAkB;CAClB,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;CAChB,sBAAsB;AACvB;;AAEA;CACC,UAAU;AACX;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;CAClB,WAAW;CACX,qBAAqB;AACtB;;AAEA;CACC,qBAAqB;CACrB,WAAW;CACX,YAAY;CACZ,gBAAgB;CAChB,cAAc;CACd,mBAAmB;CACnB,kBAAkB;CAClB,iBAAiB;CACjB,iDAAyC;SAAzC,yCAAyC;AAC1C;;AAEA;CACC,aAAa;CACb,kBAAkB;CAClB,YAAY;CACZ,gDAAwC;SAAxC,wCAAwC;CACxC,YAAY;CACZ,oBAAoB;AACrB;;AAEA;CACC,WAAW;CACX,kBAAkB;CAClB,aAAa;CACb,8BAA8B;CAC9B,sBAAsB;CACtB,sBAAsB;AACvB;;AAEA;CACC,aAAa;CACb,gBAAgB;CAChB,kBAAkB;CAClB,iDAAyC;SAAzC,yCAAyC;CACzC,cAAc;AACf;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,kCAAkC;AACnC;;AAEA;CACC,cAAc;CACd,eAAe;AAChB;;AAEA;CACC,sBAAsB;AACvB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,WAAW;CACX,sBAAsB;CACtB,eAAe;AAChB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,qBAAqB;AACtB;;AAEA,kBAAkB;;AAElB,mEAAmE;AACnE;;CAEC,uBAAuB;AACxB;;AAEA;;CAEC,+BAA+B;AAChC;;AAEA;;CAEC,8BAA8B;AAC/B;;AAEA;;CAEC,uBAAuB;AACxB;;AAEA,8BAA8B;AAC9B;CACC,kBAAkB;CAClB,aAAa;CACb,cAAc;AACf;;AAEA;CACC,kBAAkB;CAClB,YAAY;CACZ,WAAW;CACX,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,WAAW;CACX,kBAAkB;CAClB,eAAe;AAChB;;AAEA;CACC,aAAa;CACb,cAAc;CACd,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,iBAAiB;CACjB,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;CAClB,kBAAkB;CAClB,WAAW;CACX,WAAW;CACX,cAAc;AACf;;AAEA,6BAA6B;AAC7B;CACC,kBAAkB;CAClB,aAAa;CACb,WAAW;CACX,sBAAsB;CACtB,mBAAmB;CACnB,kBAAkB;CAClB,eAAe;CACf,gDAAwC;SAAxC,wCAAwC;AACzC;;AAEA;CACC,YAAY;CACZ,WAAW;CACX,YAAY;CACZ,cAAc;CACd,mBAAmB;CACnB,kBAAkB;CAClB,MAAM;CACN,UAAU;CACV,0BAA0B;CAC1B,2BAA2B;CAC3B,iDAAyC;SAAzC,yCAAyC;AAC1C;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,aAAa;CACb,mBAAmB;AACpB;;AAEA;CACC,aAAa;CACb,WAAW;CACX,cAAc;AACf;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,0BAA0B;CAC1B,iBAAiB;AAClB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,iBAAiB;AAClB;;AAEA;;CAEC,eAAe;AAChB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,SAAS;CACT,UAAU;AACX;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,YAAY;CACZ,6BAA6B;CAC7B,WAAW;CACX,WAAW;CACX,gBAAgB;CAChB,eAAe;CACf,iBAAiB;AAClB;;AAEA;CACC,WAAW;CACX,eAAe;AAChB;;AAEA;CACC,YAAY;CACZ,yBAAyB;CACzB,qBAAqB;CACrB,mCAA2B;SAA3B,2BAA2B;AAC5B;;AAEA;;CAEC,kBAAkB;CAClB,WAAW;CACX,gBAAgB;AACjB;;AAEA,kDAAkD;AAClD;CACC,cAAc;CACd,yBAAyB;CACzB,kBAAkB;CAClB,gCAAwB;SAAxB,wBAAwB;AACzB;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,2BAAmB;SAAnB,mBAAmB;CACnB,kDAA0C;SAA1C,0CAA0C;AAC3C;;AAEA;CACC,uBAAuB;CACvB,aAAa;AACd;;AAEA;CACC,mBAAmB;CACnB,YAAY;AACb;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,YAAY;CACZ,mBAAmB;CACnB,sBAAsB;CACtB,aAAa;AACd;;AAEA;CACC,mBAAmB;AACpB;;AAEA;;CAEC;AACD;CACC,gBAAgB;CAChB,gBAAgB;CAChB,UAAU;CACV,8BAA8B;AAC/B;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,gBAAgB;CAChB,uBAAuB;CACvB,yBAAyB;CACzB,kBAAkB;AACnB;;AAEA;CACC,cAAc;CACd,eAAe;CACf,kBAAkB;CAClB,cAAc;AACf;;AAEA;CACC,WAAW;CACX,YAAY;AACb;;AAEA;CACC,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,yBAAmB;KAAnB,sBAAmB;SAAnB,mBAAmB;CACnB,yBAA8B;KAA9B,sBAA8B;SAA9B,8BAA8B;CAC9B,kBAAkB;AACnB;;AAEA;CACC,mBAAmB;CACnB,iBAAiB;AAClB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,eAAe;CACf,gBAAgB;CAChB,cAAc;CACd,SAAS;CACT,kBAAkB;CAClB,uBAAuB;CACvB,cAAc;AACf;;AAEA;CACC,WAAW;AACZ;;AAEA;;CAEC;EACC,4BAAsB;EAAtB,6BAAsB;MAAtB,0BAAsB;UAAtB,sBAAsB;EACtB,kBAAkB;EAClB,yBAAmB;MAAnB,sBAAmB;UAAnB,mBAAmB;CACpB;;CAEA;EACC,eAAe;EACf,mBAAmB;CACpB;;AAED;;AAEA;;CAEC;AACD;CACC,gBAAgB;CAChB,aAAa;CACb,gDAAwC;SAAxC,wCAAwC;CACxC,kBAAkB;AACnB;;AAEA;CACC,SAAS;AACV;;AAEA;CACC,2BAAkB;KAAlB,kBAAkB;CAClB,gBAAgB;CAChB,wBAAgB;SAAhB,gBAAgB;AACjB;;AAEA;;CAEC;AACD;CACC,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,8BAAmB;CAAnB,6BAAmB;KAAnB,uBAAmB;SAAnB,mBAAmB;CACnB,mBAAe;KAAf,eAAe;CACf,yBAA8B;KAA9B,sBAA8B;SAA9B,8BAA8B;CAC9B,eAAe;AAChB;;AAEA;CACC,cAAc;CACd,eAAe;CACf,qBAAqB;AACtB;;AAEA;CACC,8BAAsB;SAAtB,sBAAsB;CACtB,UAAU;AACX;;AAEA;CACC,gBAAgB;CAChB,iBAAiB;AAClB;;AAEA;;CAEC;AACD;CACC,gBAAgB;CAChB,SAAS;CACT,eAAe;AAChB;;AAEA;CACC,uBAAuB;AACxB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,oCAAoC;CACpC,iBAAiB;AAClB;;AAEA;CACC,aAAa;CACb,gBAAgB;CAChB,2BAA2B;CAC3B,0BAA0B;CAC1B,8CAAsC;SAAtC,sCAAsC;CACtC,oBAAoB;CACpB,iBAAiB;AAClB;;AAEA;CACC,wBAAwB;AACzB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,YAAY;CACZ,yBAAyB;CACzB,eAAe;CACf,uBAAuB;CACvB,kBAAkB;AACnB;;AAEA;CACC,yBAAyB;CACzB,yBAAyB;CACzB,eAAe;CACf,uBAAuB;CACvB,kBAAkB;CAClB,aAAa;AACd;;AAEA;CACC,wBAAwB;AACzB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;;CAEC,2CAA2C;CAC3C,YAAY;AACb;;AAEA;CACC,cAAc;CACd,cAAc;AACf;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,iBAAiB;CACjB,eAAe;CACf,eAAe;AAChB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,eAAe;CACf,cAAc;AACf;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,UAAU;AACX;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,aAAa;CACb,YAAY;AACb;;AAEA;CACC,YAAY;CACZ,uBAAuB;CACvB,WAAW;CACX,eAAe;CACf,UAAU;CACV,eAAe;AAChB;;AAEA;CACC,SAAS;CACT,mBAAmB;CACnB,WAAW;CACX,6BAAqB;CAArB,qBAAqB;AACtB;;AAEA;CACC,eAAe;CACf,WAAW;AACZ;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,eAAe;CACf,UAAU;CACV,eAAe;CACf,iBAAiB;CACjB,WAAW;CACX,kBAAkB;CAClB,YAAY;CACZ,aAAa;CACb,qBAAqB;CACrB,qBAAqB;AACtB;;AAEA;CACC,eAAe;CACf,YAAY;CACZ,eAAe;AAChB;;AAEA;CACC,gBAAgB;CAChB,eAAe;CACf,iBAAiB;CACjB,aAAa;CACb,WAAW;AACZ;;AAEA,oBAAoB;AACpB;CACC,gBAAgB;AACjB;;AAEA;CACC,kBAAkB;CAClB,oBAAoB;AACrB;;AAEA;CACC,gBAAgB;CAChB,YAAY;CACZ,aAAa;CACb,kBAAkB;CAClB,YAAY;CACZ,kBAAkB;CAClB,gBAAgB;CAChB,cAAc;CACd,iBAAiB;CACjB,kBAAkB;CAClB,mBAAmB;AACpB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,qBAAqB;CACrB,eAAe;CACf,iBAAiB;CACjB,UAAU;CACV,kCAA0B;SAA1B,0BAA0B;AAC3B;;AAEA;CACC,iCAAyB;SAAzB,yBAAyB;CACzB,iCAAyB;SAAzB,yBAAyB;CACzB,2CAAmC;SAAnC,mCAAmC;CACnC,sCAA8B;SAA9B,8BAA8B;CAC9B,2CAAmC;SAAnC,mCAAmC;AACpC;;AAEA;CACC,aAAa;AACd;;AAEA;;CAEC;EACC,cAAc;EACd,WAAW;EACX,kBAAkB;CACnB;;AAED;;AAEA,mCAAmC;AACnC;CACC,UAAU;AACX;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,iBAAiB;CACjB,oBAAoB;AACrB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,YAAY;AACb;;AAEA;;;;;;;;;;;;;;;;;;;;EAoBE;;AAEF;CACC,gBAAgB;AACjB;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,kBAAkB;AACnB;;AAEA;CACC,8BAA8B;CAC9B,sBAAsB;CACtB,uBAAuB;AACxB;;AAEA;CACC,iBAAiB;CACjB,WAAW;CACX,wBAAwB;AACzB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,YAAY;CACZ,mBAAmB;CACnB,kBAAkB;CAClB,oDAA4C;SAA5C,4CAA4C;AAC7C;;AAEA;CACC,cAAc;CACd,YAAY;AACb;;AAEA;CACC,cAAc;CACd,cAAc;CACd,eAAe;CACf,WAAW;CACX,YAAY;CACZ,kBAAkB;CAClB,iBAAiB;CACjB,WAAW;CACX,mBAAmB;AACpB;;AAEA;CACC,qBAAqB;CACrB,iBAAiB;CACjB,eAAe;AAChB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,yBAAyB;CACzB,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,iBAAiB;CACjB,cAAc;AACf;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,gBAAgB;CAChB,SAAS;CACT,mBAAmB;AACpB;;AAEA;CACC,iBAAiB;CACjB,cAAc;AACf;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,sBAAsB;CACtB,YAAY;CACZ,WAAW;CACX,kBAAkB;AACnB;;AAEA;CACC,uBAAuB;CACvB,gBAAgB;CAChB,eAAe;CACf,mBAAmB;AACpB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,aAAa;CACb,8BAA8B;CAC9B,kBAAkB;CAClB,OAAO;CACP,SAAS;AACV;;AAEA;CACC,sBAAsB;AACvB;;AAEA;CACC,qBAAqB;CACrB,eAAe;AAChB;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,qBAAqB;CACrB,kBAAkB;AACnB;;AAEA;CACC,qBAAqB;CACrB,YAAY;CACZ,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,mBAAmB;CACnB,kBAAkB;AACnB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,kBAAkB;CAClB,0BAA0B;AAC3B;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,yBAAyB;AAC1B;;AAEA;CACC,eAAe;CACf,cAAc;AACf;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,aAAa;CACb,mBAAmB;CACnB,uBAAuB;AACxB;;AAEA,8BAA8B;AAC9B;CACC,uBAAuB;CACvB,YAAY;AACb;;AAEA;CACC,iBAAiB;CACjB,cAAc;AACf;;AAEA;CACC,mBAAmB;CACnB,gBAAgB;CAChB,gBAAgB;AACjB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,YAAY;CACZ,YAAY;AACb;;AAEA;CACC,WAAW;CACX,gBAAgB;AACjB;;AAEA;CACC,WAAW;CACX,gBAAgB;AACjB;;AAEA;CACC,YAAY;CACZ,oBAAoB;AACrB;;AAEA;CACC,WAAW;CACX,kBAAkB;CAClB,aAAa;AACd;;AAEA;CACC,aAAa;CACb,kBAAkB;AACnB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,WAAW;CACX,kBAAkB;CAClB,SAAS;CACT,QAAQ;CACR,kBAAkB;CAClB,yBAAyB;CACzB,8BAAsB;CAAtB,sBAAsB;AACvB;;AAEA;CACC,UAAU;CACV,kBAAkB;CAClB,eAAe;CACf,WAAW;CACX,YAAY;CACZ,iBAAiB;CACjB,kBAAkB;CAClB,kBAAkB;CAClB,kBAAkB;CAClB,WAAW;CACX,yBAAyB;CACzB,yCAAyC;AAC1C;;AAEA;CACC,qBAAqB;CACrB,UAAU;AACX;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,UAAU;CACV,WAAW;CACX,kBAAkB;AACnB;;AAEA;CACC,eAAe;CACf,iBAAiB;AAClB;;AAEA;CACC,iBAAiB;CACjB,YAAY;AACb;;AAEA;CACC,kBAAkB;CAClB,iBAAiB;CACjB,eAAe;AAChB;;AAEA;CACC,UAAU;CACV,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;CAChB,0BAA0B;AAC3B;;AAEA;CACC,kBAAkB;CAClB,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,8BAA8B;CAE9B,sBAAsB;CACtB,gBAAgB;CAChB,UAAU;AACX;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,WAAW;AACZ;;AAEA;CACC,SAAS;CACT,UAAU;AACX;;AAEA;CACC,WAAW;CACX,sBAAsB;AACvB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,YAAY;CACZ,WAAW;AACZ;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,WAAW;AACZ;;AAEA;CACC,SAAS;CACT,UAAU;AACX;;AAEA;CACC,WAAW;CACX,sBAAsB;AACvB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,iBAAiB;CACjB,WAAW;CACX,WAAW;AACZ;;AAEA;CACC,YAAY;CACZ,WAAW;AACZ;;AAEA;CACC,WAAW;CACX,qBAAqB;AACtB;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,WAAW;AACZ;;AAEA;CACC,WAAW;CACX,YAAY;AACb;;AAEA;CACC,WAAW;CACX,sBAAsB;AACvB;;AAEA;CACC,0BAA0B;AAC3B;;AAEA;CACC,2BAA2B;AAC5B;;AAEA;CACC,2BAA2B;AAC5B;;AAEA;CACC,2BAA2B;AAC5B;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,oBAAoB;AACrB;;AAEA;;EAEE;;AAEF,4BAA4B;AAC5B;CACC,WAAW;AACZ;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,eAAe;CACf,eAAe;AAChB;;AAEA;CACC,eAAe;CACf,eAAe;AAChB;;AAEA,YAAY;AACZ,mHAAmH;;AAEnH;CACC,oBAAoB;CACpB,kBAAkB;AACnB;;AAEA;CACC,sBAAsB;CACtB,gBAAgB;AACjB;;AAEA;CACC,iBAAiB;CACjB,gBAAgB;CAChB,aAAa;CACb,YAAY;AACb;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,UAAU;AACX;;AAEA,gBAAgB;;AAEhB;CACC,yBAAyB;CACzB,aAAa;CACb,WAAW;AACZ;;AAEA;CACC,YAAY;CACZ,mBAAmB;CACnB,WAAW;CACX,kBAAkB;AACnB;;AAEA;CACC,qBAAqB;CACrB,cAAc;AACf;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,UAAU;CACV,WAAW;AACZ;;AAEA;CACC,UAAU;CACV,WAAW;CACX,kBAAkB;CAClB,YAAY;CACZ,gBAAgB;AACjB;;AAEA;CACC,4BAA4B;CAC5B,YAAY;CACZ,kBAAkB;AACnB;;AAEA;CACC,YAAY;AACb;;AAEA,oBAAoB;;AAEpB,gBAAgB;;AAEhB;CACC,WAAW;CACX,kBAAkB;CAClB,mBAAmB;AACpB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,YAAY;CACZ,aAAa;CACb,sBAAsB;CACtB,qBAAqB;CACrB,cAAc;CACd,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,YAAY;CACZ,aAAa;AACd;;AAEA;CACC,UAAU;CACV,eAAe;CACf,4BAA4B;AAC7B;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,UAAU;CACV,cAAc;CACd,kBAAkB;AACnB;;AAEA;CACC,WAAW;CACX,sBAAsB;CACtB,gBAAgB;AACjB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,aAAa;CACb,YAAY;CACZ,eAAe;AAChB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,eAAe;CACf,cAAc;CACd,qBAAqB;CACrB,4BAA4B;CAC5B,kBAAkB;CAClB,UAAU;CACV,UAAU;AACX;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,sBAAsB;CACtB,eAAe;AAChB;;AAEA,oBAAoB;;AAEpB,mBAAmB;;AAEnB;CACC,gBAAgB;CAChB,WAAW;CACX,cAAc;CACd,cAAc;AACf;;AAEA;CACC,uBAAuB;CACvB,cAAc;CACd,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,YAAY;CACZ,aAAa;CACb,sBAAsB;CACtB,qBAAqB;CACrB,cAAc;CACd,kBAAkB;CAClB,gBAAgB;CAChB,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,gBAAgB;CAChB,iBAAiB;AAClB;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,eAAe;AAChB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,YAAY;CACZ,YAAY;AACb;;AAEA;CACC,UAAU;CACV,YAAY;AACb;;AAEA;CACC,eAAe;CACf,cAAc;CACd,qBAAqB;CACrB,4BAA4B;CAC5B,kBAAkB;CAClB,UAAU;CACV,UAAU;AACX;;AAEA;CACC,eAAe;CACf,sBAAsB;AACvB;;AAEA;CACC,WAAW;CACX,sBAAsB;CACtB,gBAAgB;AACjB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;;CAEC,gBAAgB;AACjB;;AAEA;CACC,gBAAgB;AACjB;;AAEA,uBAAuB;;;AAGvB,kFAAkF;;AAElF;CACC,cAAc;AACf;;AAEA;CACC,kBAAkB;CAClB,iBAAiB;AAClB;;AAEA;CACC,kBAAkB;CAClB,mBAAmB;AACpB;;AAEA;CACC,cAAc;CACd,qBAAqB;CACrB,cAAc;CACd,cAAc;AACf;;AAEA;CACC,WAAW;CACX,kBAAkB;AACnB;;AAEA,+BAA+B;;AAE/B;CACC,kBAAkB;AACnB;;AAEA;CACC,WAAW;CACX,UAAU;CACV,kBAAkB;CAClB,oBAAoB;AACrB;;AAEA;CACC,YAAY;CACZ,iBAAiB;AAClB;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,0BAA0B;AAC3B;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,SAAS;CACT,UAAU;AACX;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,UAAU;CACV,kBAAkB;CAClB,iBAAiB;CACjB,qBAAqB;AACtB;;AAEA;CACC,eAAe;CACf,iBAAiB;AAClB;;AAEA;CACC,WAAW;CACX,eAAe;AAChB;;AAEA;CACC,WAAW;CACX,eAAe;CACf,kBAAkB;AACnB;;AAEA,kCAAkC;AAClC;AACA,4BAA4B;AAC5B;gBACgB;AAChB,gBAAgB;CACf,WAAW;CACX,WAAW;CACX,YAAY;CACZ,aAAa;AACd;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,0BAA0B;CAC1B,UAAU;CACV,YAAY;CACZ,mBAAmB;AACpB;;AAEA;CACC,qBAAqB;CACrB,cAAc;CACd,mBAAmB;CACnB,kBAAkB;AACnB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,cAAc;CACd,eAAe;AAChB;;AAEA;CACC,gBAAgB;CAChB,yBAAyB;CACzB,kBAAkB;CAClB,cAAc;CACd,qBAAqB;CACrB,4BAA4B;CAC5B,6BAA6B;CAC7B,0BAA0B;CAC1B,iBAAiB;CACjB,gBAAgB;CAChB,2BAA2B;CAC3B,yBAAyB;CACzB,qBAAqB;AACtB;;AAEA;CACC,yBAAyB;CACzB,mBAAmB;CACnB,qBAAqB;CACrB,eAAe;CACf,iBAAiB;CACjB,gBAAgB;CAChB,WAAW;CACX,YAAY;CACZ,kBAAkB;AACnB;;AAEA,sCAAsC;AACtC,4CAA4C;AAC5C;CACC,YAAY;CACZ,gBAAgB;AACjB;;AAEA;CACC,WAAW;CACX,2CAA2C;AAC5C;;AAEA;CACC,gBAAgB;CAChB,WAAW;CACX,WAAW;CACX,cAAc;AACf;;AAEA;CACC,0BAA0B;AAC3B;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,qBAAqB;CACrB,eAAe;CACf,YAAY;CACZ,WAAW;AACZ;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,yBAAyB;AAC1B;;AAEA;CACC,yBAAyB;CACzB,WAAW;AACZ;;AAEA;CACC,yBAAyB;CACzB,WAAW;AACZ;;AAEA;CACC,uBAAuB;AACxB;;AAEA;CACC,0BAA0B;AAC3B;;AAEA;CACC,UAAU;CACV,WAAW;CACX,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,iBAAiB;CACjB,kBAAkB;CAClB,oBAAoB;CACpB,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;CAClB,sBAAsB;CACtB,eAAe;CACf,gBAAgB;CAChB,sBAAsB;AACvB;;AAEA;CACC,sBAAsB;CACtB,iBAAiB;CACjB,2BAA2B;CAC3B,sBAAsB;CACtB,mBAAmB;AACpB;;AAEA;CACC,sBAAsB;CACtB,iBAAiB;CACjB,8BAA8B;CAC9B,sBAAsB;CACtB,mBAAmB;AACpB;;AAEA;CACC,kBAAkB;CAClB,WAAW;AACZ;;AAEA;CACC,mBAAmB;CACnB,WAAW;AACZ;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,eAAe;CACf,iBAAiB;CACjB,mBAAmB;AACpB;;AAEA;;CAEC,gBAAgB;AACjB;;AAEA;CACC,eAAe;CACf,mBAAmB;AACpB;;AAEA;CACC,WAAW;CACX,gBAAgB;CAChB,kBAAkB;AACnB;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,uBAAuB;AACxB;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,4BAAsB;CAAtB,6BAAsB;KAAtB,0BAAsB;SAAtB,sBAAsB;CACtB,kBAAkB;CAClB,mBAAmB;AACpB;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,aAAa;CACb,mBAAmB;CACnB,cAAc;CACd,cAAc;CACd,kDAA0C;SAA1C,0CAA0C;AAC3C;;AAEA;CACC,mBAAmB;CACnB,kDAA0C;SAA1C,0CAA0C;AAC3C;;AAEA;CACC,uBAAuB;CACvB,UAAU;AACX;;AAEA;CACC,cAAc;CACd,gBAAgB;AACjB;;AAEA;CACC,0BAA0B;AAC3B;;AAEA,qBAAqB;;AAErB;CACC,cAAc;CACd,eAAe;CACf,MAAM;CACN,OAAO;CACP,QAAQ;CACR,SAAS;CACT,cAAc;CACd,iBAAiB;CACjB,mBAAmB;CACnB,cAAc;AACf;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,SAAS;AACV;;AAEA;CACC,8BAAsB;SAAtB,sBAAsB;CACtB,gBAAgB;CAChB,iBAAiB;CACjB,kBAAkB;AACnB;;AAEA;CACC,gBAAgB;CAChB,cAAc;CACd,gBAAgB;CAChB,gBAAgB;CAChB,gDAAwC;SAAxC,wCAAwC;CACxC,kBAAkB;CAClB,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,mBAAe;KAAf,eAAe;CACf,8BAAsB;SAAtB,sBAAsB;AACvB;;AAEA;CACC,eAAe;CACf,iBAAiB;CACjB,kBAAkB;CAClB,iBAAiB;CACjB,iBAAiB;CACjB,WAAW;CACX,eAAe;CACf,mBAAmB;CACnB,kBAAkB;CAClB,8BAAsB;SAAtB,sBAAsB;AACvB;;AAEA;CACC,kBAAkB;CAClB,yBAAyB;CACzB,8BAAsB;SAAtB,sBAAsB;AACvB;;AAEA;CACC,aAAa;CACb,SAAS;AACV;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,YAAY;CACZ,aAAa;CACb,8BAAsB;SAAtB,sBAAsB;CACtB,mBAAmB;CACnB,iBAAiB;AAClB;;AAEA;CACC,mBAAmB;CACnB,cAAc;CACd,sBAAsB;CACtB,aAAa;CACb,cAAc;CACd,kBAAkB;CAClB,SAAS;CACT,SAAS;CACT,QAAQ;CACR,OAAO;AACR;;AAEA;CACC,mBAAmB;CACnB,gIAAgI;AACjI;;AAEA;CACC,yBAAyB;CACzB,kBAAkB;CAClB,mBAAmB;AACpB;;AAEA;CACC,cAAc;CACd,iBAAiB;CACjB,mBAAmB;AACpB;;AAEA;CACC,aAAa;CACb,2BAA2B;AAC5B;;AAEA;CACC,cAAc;CACd,eAAe;AAChB;;AAEA;;CAEC,iBAAiB;AAClB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,SAAS;CACT,qBAAqB;CACrB,kBAAkB;CAClB,2BAA2B;AAC5B;;AAEA;CACC,aAAa;AACd;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,cAAc;CACd,gBAAgB;CAChB,kBAAkB;AACnB;;AAEA;CACC,gBAAgB;CAChB,sBAAsB;CACtB,eAAe;CACf,sBAAsB;CACtB,qBAAqB;CACrB,iBAAiB;AAClB;;AAEA;CACC,sBAAsB;AACvB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,gBAAgB;CAChB,gDAAwC;SAAxC,wCAAwC;AACzC;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,eAAe;CACf,gBAAgB;CAChB,kBAAkB;CAClB,sBAAsB;CACtB,aAAa;AACd;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,eAAe;CACf,YAAY;CACZ,iBAAiB;CACjB,WAAW;AACZ;;AAEA;CACC,sBAAsB;AACvB;;AAEA,kBAAkB;;AAElB;CACC,WAAW;AACZ;;AAEA;CACC,mBAAmB;AACpB;;AAEA;;CAEC,kBAAkB;AACnB;;AAEA;CACC,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB,6BAA6B;AAC9B;;AAEA;CACC,SAAS;CACT,UAAU;AACX;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,qBAAqB;CACrB,SAAS;CACT,YAAY;AACb;;AAEA;CACC,qBAAqB;CACrB,kBAAkB;CAClB,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB,mBAAmB;CACnB,cAAc;CACd,aAAa;CACb,sBAAsB;AACvB;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,0BAA0B;CAC1B,aAAa;CACb,kBAAkB;CAClB,gBAAgB;CAChB,SAAS;CACT,gBAAgB;CAChB,WAAW;CACX,8BAAsB;SAAtB,sBAAsB;AACvB;;AAEA;CACC,kBAAkB;CAClB,UAAU;CACV,SAAS;AACV;;AAEA;CACC,kBAAkB;CAClB,WAAW;CACX,SAAS;AACV;;AAEA;CACC,kBAAkB;CAClB,YAAY;CACZ,yBAAyB;CACzB,WAAW;CACX,+BAAqB;CACrB,YAAY;CACZ,8BAAsB;SAAtB,sBAAsB;CACtB,kBAAkB;CAClB,WAAW;CACX,kBAAkB;CAClB,aAAa;AACd;;AAEA;CACC,qBAAqB;AACtB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,iBAAiB;AAClB;;AAEA,yCAAyC;AACzC;CACC,aAAa;AACd;;AAEA;CACC,gBAAgB;AACjB;;AAEA;CACC,gDAAwC;SAAxC,wCAAwC;AACzC;;AAEA,qBAAqB;;AAErB;CACC,gBAAgB;CAChB,mBAAmB;CACnB,YAAY;AACb;;AAEA;CACC,wBAAwB;CACxB,aAAa;AACd;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,sBAAsB;AACvB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,WAAW;AACZ;;AAEA,gBAAgB;;AAEhB;CACC,cAAc;CACd,iBAAiB;AAClB;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,mBAAmB;CACnB,oBAAoB;AACrB;;AAEA;CACC,sBAAsB;AACvB;;AAEA;CACC,YAAY;AACb;;AAEA;CACC,cAAc;CACd,kBAAkB;CAClB,gBAAgB;AACjB;;AAEA;CACC,UAAU;CACV,SAAS;CACT,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;CAClB,oBAAoB;AACrB;;AAEA;CACC,kBAAkB;CAClB,oBAAoB;AACrB;;AAEA;CACC,UAAU;CACV,cAAc;AACf;;AAEA;;CAEC,iBAAiB;CACjB,oBAAoB;CACpB,yBAAyB;CACzB,YAAY;CACZ,iBAAiB;AAClB;;AAEA;;;CAGC,SAAS;CACT,cAAc;AACf;;AAEA;CACC,cAAc;AACf;;AAEA;CACC,WAAW;AACZ;;AAEA;CACC,mBAAmB;AACpB;;AAEA;CACC,gBAAgB;CAChB,cAAc;AACf;;AAEA;;CAEC;EACC,oBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,2BAAqB;MAArB,wBAAqB;UAArB,qBAAqB;CACtB;;CAEA;EACC,mBAAU;MAAV,cAAU;UAAV,UAAU;CACX;;CAEA;EACC,yBAAyB;CAC1B;;AAED;;AAEA;;CAEC;;;EAGC,wBAAwB;EACxB,iBAAiB;EACjB,4BAA4B;EAC5B,YAAY;EACZ,gBAAgB;EAChB,WAAW;CACZ;;CAEA;EACC,YAAY;CACb;;CAEA;EACC,eAAe;EACf,SAAS;EACT,WAAW;EACX,QAAQ;EACR,SAAS;EACT,gBAAgB;EAChB,UAAU;EACV,+CAAuC;UAAvC,uCAAuC;CACxC;;CAEA;EACC,SAAS;EACT,YAAY;CACb;;CAEA;EACC,UAAU;CACX;;CAEA;EACC,kBAAkB;CACnB;;CAEA;EACC,WAAW;CACZ;;AAED;;AAEA;;CAEC;EACC,UAAU;CACX;;AAED;;AAEA;;CAEC;EACC,eAAe;CAChB;;CAEA;EACC,gBAAgB;CACjB;;CAEA;EACC,kBAAkB;EAClB,eAAe;EACf,iBAAiB;CAClB;;CAEA;EACC,kBAAkB;EAClB,eAAe;EACf,sBAAsB;EACtB,YAAY;EACZ,mBAAmB;CACpB;;CAEA;EACC,kBAAkB;EAClB,QAAQ;EACR,QAAQ;CACT;;CAEA;EACC,cAAc;EACd,yBAAyB;CAC1B;;CAEA;EACC,kBAAkB;CACnB;;CAEA;EACC,SAAS;EACT,cAAc;EACd,WAAW;CACZ;;CAEA;EACC,cAAc;CACf;;CAEA;EACC,WAAW;EACX,8BAAsB;UAAtB,sBAAsB;EACtB,kBAAkB;CACnB;;CAEA;EACC,eAAe;EACf,SAAS;EACT,SAAS;EACT,WAAW;EACX,8BAAsB;UAAtB,sBAAsB;EACtB,kBAAkB;EAClB,mDAA2C;UAA3C,2CAA2C;EAC3C,gBAAgB;EAChB,UAAU;CACX;;CAEA;EACC,cAAc;EACd,kBAAkB;CACnB;;CAEA;EACC,cAAc;CACf;;AAED;;;;;;;;;GASG;;CAEF;EACC,mBAAmB;CACpB;;CAEA;EACC,qBAAqB;CACtB;;CAEA;EACC,SAAS;EACT,wBAAgB;UAAhB,gBAAgB;EAChB,uBAAuB;CACxB;;CAEA;EACC,YAAY;EACZ,mBAAmB;EACnB,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,UAAU;EACV,kBAAkB;EAClB,UAAU;EACV,UAAU;EACV,SAAS;CACV;;CAEA;EACC,cAAc;EACd,qBAAqB;EACrB,wBAAwB;EACxB,WAAW;EACX,UAAU;EACV,SAAS;EACT,mBAAmB;EACnB,gBAAgB;EAChB,gDAAwC;UAAxC,wCAAwC;CACzC;;CAEA;EACC,6BAA6B;EAC7B,cAAc;EACd,eAAe;EACf,gBAAgB;EAChB,WAAW;EACX,aAAa;EACb,SAAS;CACV;;CAEA;EACC;;;GAGC;EACD,yBAAyB;EACzB,iBAAiB;EACjB,cAAc;EACd,kBAAkB;EAClB,UAAU;EACV,oBAAoB;EACpB,WAAW;EACX,gBAAgB;CACjB;;CAEA;EACC,gBAAgB;CACjB;;CAEA;EACC,cAAc;EACd,eAAe;CAChB;;CAEA;EACC,gBAAgB;CACjB;;CAEA;EACC,4BAAsB;EAAtB,6BAAsB;MAAtB,0BAAsB;UAAtB,sBAAsB;CACvB;;CAEA;EACC,WAAW;CACZ;;CAEA;EACC,gBAAgB;CACjB;;CAEA;EACC,kBAAkB;CACnB;;CAEA;EACC,sBAAsB;EACtB,8BAA8B;CAC/B;;CAEA;EACC,iBAAiB;CAClB;;CAEA;EACC,sBAAsB;EACtB,kBAAkB;EAClB,OAAO;EACP,MAAM;EACN,8BAAsB;UAAtB,sBAAsB;EACtB,YAAY;EACZ,UAAU;EACV,YAAY;EACZ,2CAA2C;CAC5C;;CAEA;EACC,YAAY;CACb;;CAEA;EACC,cAAc;EACd,eAAe;EACf,WAAW;EACX,eAAe;CAChB;;CAEA;EACC,4BAAsB;EAAtB,6BAAsB;MAAtB,0BAAsB;UAAtB,sBAAsB;CACvB;;CAEA;EACC,WAAW;EACX,eAAe;EACf,eAAe;EACf,mBAAmB;CACpB;;CAEA;EACC,oBAAoB;CACrB;;CAEA;EACC,4BAAsB;EAAtB,6BAAsB;MAAtB,0BAAsB;UAAtB,sBAAsB;CACvB;;CAEA;EACC,mBAAe;MAAf,eAAe;EACf,4BAAsB;EAAtB,6BAAsB;MAAtB,0BAAsB;UAAtB,sBAAsB;CACvB;;CAEA;EACC,WAAW;EACX,aAAa;CACd;;CAEA;EACC,WAAW;CACZ;;CAEA;;EAEC,kBAAkB;EAClB,MAAM;EACN,YAAY;CACb;;CAEA;;EAEC,WAAW;CACZ;;CAEA;EACC,oBAAoB;EACpB,iBAAiB;CAClB;;AAED;;AAEA;;CAEC;CACA;;CAEA;EACC,WAAW;EACX,WAAW;EACX,kBAAkB;CACnB;;CAEA;EACC,aAAa;CACd;;CAEA;EACC,kBAAkB;CACnB;;CAEA;EACC,cAAc;EACd,WAAW;EACX,SAAS;EACT,mBAAmB;CACpB;;AAED;;AAEA;AACA;;AAEA;;CAEC;EACC,UAAU;CACX;;CAEA;EACC,mBAAmB,EAAE,YAAY;CAClC;;CAEA;EACC,mBAAmB;CACpB;;CAEA;EACC,kBAAkB;CACnB;;CAEA;EACC,iBAAiB;CAClB;;CAEA;EACC,kCAAkC;CACnC;;CAEA;EACC,0BAA0B;CAC3B;;AAED;;AAEA;;CAEC;EACC,WAAW;EACX,YAAY;EACZ,0CAA0C;EAC1C,mBAAmB;CACpB;;CAEA;EACC,kBAAkB;EAClB,gBAAgB;CACjB;;CAEA;EACC,cAAc;CACf;;AAED;;AAEA;;CAEC;EACC,uBAAuB;EACvB,mBAAmB;CACpB;;CAEA;EACC,YAAY;CACb;;AAED;;AAEA;;CAEC;EACC,WAAW;EACX,mBAAmB;CACpB;;CAEA;EACC,WAAW;CACZ;;CAEA;EACC,cAAc;CACf;;CAEA;EACC,oBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,mBAAe;MAAf,eAAe;CAChB;;CAEA;EACC,cAAc;CACf;;CAEA;EACC,WAAW;EACX,mBAAmB;CACpB;;CAEA;EACC,UAAU;EACV,8BAAsB;UAAtB,sBAAsB;CACvB;;CAEA;EACC,aAAa;CACd;;CAEA;EACC,2BAA2B;EAC3B,iBAAiB;EACjB,WAAW;EACX,cAAc;CACf;;AAED","file":"updraftplus-admin-2-23-3.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@keyframes udp_rotate {\n\n\tfrom {\n\t\ttransform: rotate(0);\n\t}\n\n\tto {\n\t\ttransform: rotate(360deg);\n\t}\n\n}\n\n/* Widths and sizing */\n.max-width-600 {\n\tmax-width: 600px;\n}\n\n.max-width-700 {\n\tmax-width: 700px;\n}\n\n.width-900 {\n\tmax-width: 900px;\n}\n\n.width-80 {\n\twidth: 80%;\n}\n\n.updraft--flex {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n}\n\n.updraft--flex > * {\n\tflex: 1;\n\tbox-sizing: border-box;\n}\n\n.updraft--flex > .updraft--one-half {\n\twidth: 50%;\n\tflex: auto;\n}\n\n.updraft--flex > .updraft--two-halves {\n\twidth: 100%;\n\tflex: auto;\n}\n\n.updraft-color--very-light-grey {\n\tbackground: #F8F8F8;\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.button-ud-google {\n\ttext-decoration: none !important;\n\ttransition: background-color .3s, box-shadow .3s;\n\tpadding: 12px 16px 12px 42px !important;\n\tborder: none;\n\tborder-radius: 3px;\n\tbox-shadow: 0 -1px 0 rgba(0, 0, 0, .04), 0 1px 1px rgba(0, 0, 0, .25);\n\tcolor: #757575;\n\tfont-size: 14px;\n\tfont-weight: 500;\n\tfont-family: \"Roboto\";\n\tbackground-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTcuNiA5LjJsLS4xLTEuOEg5djMuNGg0LjhDMTMuNiAxMiAxMyAxMyAxMiAxMy42djIuMmgzYTguOCA4LjggMCAwIDAgMi42LTYuNnoiIGZpbGw9IiM0Mjg1RjQiIGZpbGwtcnVsZT0ibm9uemVybyIvPjxwYXRoIGQ9Ik05IDE4YzIuNCAwIDQuNS0uOCA2LTIuMmwtMy0yLjJhNS40IDUuNCAwIDAgMS04LTIuOUgxVjEzYTkgOSAwIDAgMCA4IDV6IiBmaWxsPSIjMzRBODUzIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48cGF0aCBkPSJNNCAxMC43YTUuNCA1LjQgMCAwIDEgMC0zLjRWNUgxYTkgOSAwIDAgMCAwIDhsMy0yLjN6IiBmaWxsPSIjRkJCQzA1IiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48cGF0aCBkPSJNOSAzLjZjMS4zIDAgMi41LjQgMy40IDEuM0wxNSAyLjNBOSA5IDAgMCAwIDEgNWwzIDIuNGE1LjQgNS40IDAgMCAxIDUtMy43eiIgZmlsbD0iI0VBNDMzNSIgZmlsbC1ydWxlPSJub256ZXJvIi8+PHBhdGggZD0iTTAgMGgxOHYxOEgweiIvPjwvZz48L3N2Zz4=);\n\tbackground-color: #FFF;\n\tbackground-repeat: no-repeat;\n\tbackground-position: 12px 11px;\n}\n\n.button-ud-google:hover {\n\tbox-shadow: 0 -1px 0 rgba(0, 0, 0, .04), 0 2px 4px rgba(0, 0, 0, .25);\n}\n\n.button-ud-google:active {\n\tbackground-color: #EEE;\n}\n\n.button-ud-google:focus {\n\toutline: none;\n\tbox-shadow: 0 -1px 0 rgba(0, 0, 0, .04), 0 2px 4px rgba(0, 0, 0, .25), 0 0 0 3px #C8DAFC;\n}\n\n.button-ud-google:disabled {\n\tfilter: grayscale(100%);\n\tbackground-color: #EBEBEB;\n\tbox-shadow: 0 -1px 0 rgba(0, 0, 0, .04), 0 1px 1px rgba(0, 0, 0, .25);\n\tcursor: not-allowed;\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\n.updraftclone_action_box #ud_downloadstatus3 {\n\tmargin-top: 10px;\n}\n\nspan.tokens-number {\n\tfont-size: 46px;\n\tdisplay: block;\n}\n\n/* Clone header button */\n.button.updraft_migrate_widget_temporary_clone_show_stage0 {\n\tdisplay: none;\n\tposition: absolute;\n\tright: 0;\n\ttop: 0;\n\theight: 100%;\n\tborder-left: 1px solid #CCC;\n\tpadding-left: 10px;\n\tpadding-right: 10px;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_container {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_box {\n\tmargin-right: 20px;\n\twidth: 100%;\n\tflex-basis: 100%;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_box iframe,\n.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js {\n\tfloat: none;\n}\n\n@media (min-width: 1024px) {\n\n\t.updraft_migrate_widget_temporary_clone_stage0_container {\n\t\tflex-direction: row;\n\t\tflex-wrap: wrap;\n\t}\n\n\t.updraft_migrate_widget_temporary_clone_stage0_box {\n\t\tflex-basis: 45%;\n\t}\n\n\t.updraft_migrate_widget_temporary_clone_stage0_box iframe,\n\t.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js {\n\t\tfloat: right;\n\t}\n\n}\n\n.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons {\n\ttext-decoration: none;\n\tfont-size: 20px;\n}\n\n.opened .button.updraft_migrate_widget_temporary_clone_show_stage0 {\n\tdisplay: inline-block;\n}\n\n.opened .updraft_migrate_widget_temporary_clone_stage0 {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 8px;\n\tmargin-bottom: 21px;\n}\n\n/* Clone list table */\n.clone-list {\n\tclear: both;\n\twidth: 100%;\n\tmargin-top: 40px;\n}\n\n.clone-list table {\n\twidth: 100%;\n\ttext-align: left;\n}\n\n.clone-list table tr th {\n\tbackground: #E4E4E4;\n}\n\n.clone-list table tr td {\n\tbackground: #F5F5F5;\n\tword-break: break-word;\n}\n\n.clone-list table tr:nth-child(odd) td {\n\tbackground: #FAFAFA;\n}\n\n.clone-list table td,\n.clone-list table th {\n\tpadding: 6px;\n}\n\n/* Clone Progress */\n.updraftplus-clone .updraft_row {\n\tpadding-left: 0;\n\tpadding-right: 0;\n}\n\nbutton#updraft_migrate_createclone + .updraftplus_spinner {\n\tmargin-top: 13px;\n}\n\n/* Clone - Show step 1 info button */\n.button.button-hero.updraftclone_show_step_1 {\n\twhite-space: normal;\n\theight: auto;\n\tline-height: 14px;\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n}\n\n.button.button-hero.updraftclone_show_step_1 span.dashicons {\n\theight: auto;\n}\n\n.updraftplus_clone_status {\n\tcolor: red;\n}\n\n/* MIGRATE */\n\na.updraft_migrate_add_site--trigger span.dashicons {\n\ttext-decoration: none;\n}\n\n.button-restore:hover, .button-migrate:hover, .button-backup:hover,\n.button-view-log:hover, .button-mass-selectors:hover,\n.button-delete:hover, .button-entity-backup:hover, .udp-button-primary:hover {\n\tborder-color: #DF6926;\n\tcolor: #DF6926;\n}\n\n.button-migrate {\n\tcolor: rgb(238, 169, 32);\n\tborder-color: rgb(238, 169, 32);\n}\n\n#updraft_migrate_tab_main {\n\tpadding: 8px;\n}\n\n.updraft_migrate_widget_module_content {\n\tbackground: #FFF;\n\tborder-radius: 0;\n\tposition: relative;\n}\n\nbody.js #updraft_migrate .updraft_migrate_widget_module_content {\n\tdisplay: none;\n}\n\n.updraft_migrate_widget_module_content > h3,\ndiv[class*=\"updraft_migrate_widget_temporary_clone_stage\"] > h3 {\n\tmargin-top: 0;\n}\n\n/* Migrate / Clone headers */\n.updraft_migrate_widget_module_content header,\n#updraft_migrate_tab_alt 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#updraft_migrate_tab_alt header h3,\n#updraft_migrate_tab_alt 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#updraft_migrate_tab_alt 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#updraft_migrate_tab_alt button.button.close .dashicons {\n\tmargin-top: 1px;\n}\n\n.updraft_migrate_widget_module_content header h3,\n#updraft_migrate_tab_alt 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#updraft_migrate_tab_alt #updraft_migrate_send_existing_button {\n\tmargin-right: 6px;\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\nbutton.ui-dialog-titlebar-close:before {\n\tcontent: none!important;\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: inline-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.updraft-fs-italic {\n\tfont-style: italic;\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-settings-content table.form-table .notice p {\n\tmax-width: none;\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\nlabel[for=updraft_servicecheckbox_updraftvault] {\n\tposition: relative;\n}\n\n#updraft-wrap .udp-info {\n\tposition: absolute;\n\tright: 10px;\n\ttop: calc(50% - 10px);\n}\n\n#updraft-wrap span.info-trigger {\n\tdisplay: inline-block;\n\twidth: 20px;\n\theight: 20px;\n\tbackground: #FFF;\n\tcolor: #72777C;\n\tborder-radius: 30px;\n\ttext-align: center;\n\tline-height: 20px;\n\tbox-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n}\n\n#updraft-wrap .info-content-wrapper {\n\tdisplay: none;\n\tposition: absolute;\n\tbottom: 20px;\n\ttransform: translatex(calc(-50% + 10px));\n\twidth: 330px;\n\tpadding-bottom: 10px;\n}\n\n#updraft-wrap .info-content-wrapper::before {\n\tcontent: '';\n\tposition: absolute;\n\tbottom: -10px;\n\tborder: 10px solid transparent;\n\tborder-top-color: #FFF;\n\tleft: calc(50% - 10px);\n}\n\n#updraft-wrap .info-content {\n\tpadding: 20px;\n\tbackground: #FFF;\n\tborder-radius: 4px;\n\tbox-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);\n\tcolor: #72777C;\n}\n\n#updraft-wrap .info-content h3 {\n\tmargin-top: 0;\n}\n\n#updraft-wrap .info-content p {\n\tmargin-top: 10px;\n}\n\n#updraft-wrap .udp-info:hover .info-content-wrapper {\n\tdisplay: block;\n}\n\ndiv.conditional_remote_backup select.logic_type {\n\tvertical-align: inherit !important;\n}\n\ndiv.conditional_remote_backup label.updraft_toggle_instance_label.radio_group {\n\tdisplay: block;\n\tmargin-top: 7px;\n}\n\ndiv.conditional_remote_backup div.logic ul.rules input.rule_value {\n\tvertical-align: middle;\n}\n\ndiv.conditional_remote_backup p {\n\tmargin-bottom: 10px;\n}\n\ndiv.conditional_remote_backup div.logic ul.rules span svg {\n\twidth: 20px;\n\tvertical-align: middle;\n\tcursor: pointer;\n}\n\ndiv.conditional_remote_backup div.logic ul.rules span svg {\n\tmargin-left: 3px;\n}\n\ndiv.conditional_remote_backup div.logic select.logic_type {\n\tvertical-align: unset;\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,\ndiv[id^=\"updraft_more_files_jstree_\"] .jstree-container-ul > .jstree-node {\n\tbackground: transparent;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-open > .jstree-ocl,\ndiv[id^=\"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,\ndiv[id^=\"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,\ndiv[id^=\"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, #updraft_exclude_files_folders_wildcards_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 */\ndiv[id^=\"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[id^=\"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\ndiv[id^=\"updraft_jstree_buttons_\"] {\n\tpadding: 10px;\n\tbackground: #E6E6E6;\n}\n\ndiv[id^=\"updraft_jstree_container_\"] {\n\theight: 300px;\n\twidth: 100%;\n\toverflow: auto;\n}\n\ndiv[id^=\"updraft_more_files_container_\"] button {\n\tline-height: 20px;\n}\n\nbutton[id^=\"updraft_parent_directory_\"] {\n\tmargin: 10px 10px 4px 10px;\n\tpadding-left: 3px;\n}\n\nbutton[id^=\"updraft_jstree_confirm_\"], button[id^=\"updraft_jstree_cancel_\"] {\n\tdisplay: none;\n}\n\ninput[id^=\"updraft_include_more_path_restore_\"] {\n\ttext-align: right;\n}\n\n.updraftplus-morefiles-row-delete,\n.updraftplus-morefiles-row-edit {\n\tcursor: pointer;\n}\n\n#updraft_include_more_paths_error {\n\tcolor: #DE3C3C;\n}\n\np[id^=\"updraftplus_manual_authentication_error_\"] {\n\tcolor: #DE3C3C;\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, #ud_downloadstatus3 .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__action {\n\tposition: relative;\n\ttext-align: center;\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\tmargin-bottom: 7px;\n}\n\n.updraft_premium_cta a.button.button-primary.button-hero + small {\n\tdisplay: block;\n\tmax-width: 100%;\n\ttext-align: center;\n\tcolor: #AFAFAF;\n}\n\n.updraft_premium_cta a.button.button-primary.button-hero + small .dashicons {\n\twidth: 12px;\n\theight: 12px;\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: 80%;\n\tmax-height: 30%;\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\tbackground: #FFF;\n\tborder-left: 4px solid #FFF;\n\tborder-left-color: #DC3232;\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.updraftplus_com_login_status.success {\n\tborder-left-color: green;\n}\n\n#updraft-wrap strong.success {\n\tcolor: green;\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, #ud_downloadstatus3 .dlfileprogress {\n\twidth: 0%;\n\tbackground: #0572AA;\n\theight: 8px;\n\ttransition: width .3s;\n}\n\n.ud_downloadstatus .raw, #ud_downloadstatus2 .raw, #ud_downloadstatus3 .raw {\n\tmargin-top: 8px;\n\tclear: left;\n}\n\n.ud_downloadstatus .file, #ud_downloadstatus2 .file, #ud_downloadstatus3 .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\ttransform: translatey(3px);\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.updated.backup-restored {\n\tpadding-top: 15px;\n\tpadding-bottom: 15px;\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\nsection.premium-upgrade-purchase-success {\n\tpadding: 2em;\n\tbackground: #FAFAFA;\n\ttext-align: center;\n\tbox-shadow: 0px 14px 40px rgba(0, 0, 0, 0.1);\n}\n\nsection.premium-upgrade-purchase-success h3 {\n\tfont-size: 2em;\n\tcolor: green;\n}\n\nsection.premium-upgrade-purchase-success h3 .dashicons {\n\tdisplay: block;\n\tmargin: 0 auto;\n\tfont-size: 60px;\n\twidth: 60px;\n\theight: 60px;\n\tborder-radius: 50%;\n\tbackground: green;\n\tcolor: #FFF;\n\tmargin-bottom: 20px;\n}\n\nsection.premium-upgrade-purchase-success h3 .dashicons::before {\n\tdisplay: inline-block;\n\tmargin-left: -4px;\n\tmargin-top: 2px;\n}\n\nsection.premium-upgrade-purchase-success p {\n\tfont-size: 120%;\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, #backupnow_includecloud_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#backupnow_database_moreoptions div.backupnow-db-tables {\n\tmargin-bottom: 5px;\n}\n\n#backupnow_database_moreoptions div.backupnow-db-tables > a {\n\tcolor: #0073AA;\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\ndiv.ui-dialog.ui-widget.ui-widget-content {\n\tz-index: 99999 !important;\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.notice.updraft-restore-option {\n\tpadding: 12px;\n\tmargin: 8px 0 4px 0;\n\tborder-left-color: #CCC;\n}\n\n/* updraft_restore_crypteddb */\n#updraft_restorer_dboptions h4 {\n\tmargin: 0px 0px 6px 0px;\n\tpadding: 0px;\n}\n\n.updraftplus_restore_tables_options_container {\n\tmax-height: 250px;\n\toverflow: auto;\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\tpadding: 10px 40px;\n\ttext-align: center;\n\tfont-style: italic;\n}\n\n.tr-bottom-4 {\n\tmargin-bottom: 4px;\n}\n\n.existing-backups-table th {\n\tpadding: 8px 10px;\n}\n\n.form-table .backup-date {\n\twidth: 172px;\n}\n\n.form-table .backup-data {\n\twidth: 426px;\n}\n\n.form-table .updraft_backup_actions {\n\twidth: 272px;\n}\n\n.existing-date {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n\tmax-width: 140px;\n\twidth: 25%;\n}\n\n.line-break-tr {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.line-break-td {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.td-line-color {\n\theight: 2px;\n\tbackground-color: #888;\n}\n\n.raw-backup {\n\tmax-width: 140px;\n}\n\n.existing-backups-actions {\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.existing-backups-border {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.existing-backups-border > td {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.existing-backups-border > div {\n\theight: 2px;\n\tbackground-color: #AAA;\n}\n\n.updraft_existing_backup_date {\n\tmax-width: 140px;\n}\n\n.updraftplus-upload {\n\tmargin-right: 6px;\n\tfloat: left;\n\tclear: none;\n}\n\n.before-restore-button {\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.before-restore-button div {\n\tfloat: none;\n\tdisplay: inline-block;\n}\n\n.table-separator-tr {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.table-separator-td {\n\tmargin: 0px;\n\tpadding: 0px;\n}\n\n.end-of-table-div {\n\theight: 2px;\n\tbackground-color: #AAA;\n}\n\n.last-backup-job {\n\tpadding-top: 3% !important;\n}\n\n.line-height-03 {\n\tline-height: 0.3 !important;\n}\n\n.line-height-13 {\n\tline-height: 1.3 !important;\n}\n\n.line-height-23 {\n\tline-height: 2.3 !important;\n}\n\n#updraft_diskspaceused {\n\tcolor: #DF6926;\n}\n\n#updraft_delete_old_dirs_pagediv {\n\tpadding-bottom: 10px;\n}\n\n/*#updraft_lastlogmessagerow > td, #updraft_last_backup > td {\n\tpadding: 0;\n}*/\n\n/* Time + scheduling add-on*/\n.fix-time {\n\twidth: 70px;\n}\n\n.retain-files {\n\twidth: 70px;\n}\n\n.number-input {\n\tmin-width: 50px;\n\tmax-width: 70px;\n}\n\n.additional-rule-width {\n\tmin-width: 60px;\n\tmax-width: 70px;\n}\n\n/* Add-ons */\n/* Want to fix the WordPress icons so that they fit inline with the text, and don't push everything out of place. */\n\n#updraft-wrap .dashicons.dashicons-adapt-size {\n\tline-height: inherit;\n\tfont-size: inherit;\n}\n\n#updraft-wrap .button span.dashicons:not(.dashicons-adapt-size) {\n\tvertical-align: middle;\n\tmargin-top: -3px;\n}\n\n.addon-logo-150 {\n\tmargin-left: 30px;\n\tmargin-top: 33px;\n\theight: 125px;\n\twidth: 150px;\n}\n\n.margin-bottom-50 {\n\tmargin-bottom: 50px;\n}\n\n.premium-container {\n\twidth: 80%;\n}\n\n/* Main Header */\n\n.main-header {\n\tbackground-color: #DF6926;\n\theight: 200px;\n\twidth: 100%;\n}\n\n.button-add-to-cart {\n\tcolor: white;\n\tborder-color: white;\n\tfloat: none;\n\tmargin-right: 17px;\n}\n\n.button-add-to-cart:hover, .button-add-to-cart:focus, .button-add-to-cart:active {\n\tborder-color: #A0A5AA;\n\tcolor: #A0A5AA;\n}\n\n.addon-title {\n\tmargin-top: 25px;\n}\n\n.addon-text {\n\tmargin-top: 75px;\n}\n\n.image-main-div {\n\twidth: 25%;\n\tfloat: left;\n}\n\n.text-main-div {\n\twidth: 60%;\n\tfloat: left;\n\ttext-align: center;\n\tcolor: white;\n\tmargin-top: 16px;\n}\n\n.text-main-div-title {\n\tfont-weight: bold !important;\n\tcolor: white;\n\ttext-align: center;\n}\n\n.text-main-div-paragraph {\n\tcolor: white;\n}\n\n/* End main header */\n\n/* Vault icons */\n\n.updraftplus-vault-cta {\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 50px;\n}\n\n.updraftplus-vault-cta h1 {\n\tfont-weight: bold;\n}\n\n.updraftvault-buy {\n\twidth: 225px;\n\theight: 225px;\n\tborder: 2px solid #777;\n\tdisplay: inline-table;\n\tmargin: 0 auto;\n\tmargin-right: 50px;\n\tposition: relative;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault {\n\twidth: 275px;\n\theight: 275px;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault > a {\n\tright: 21%;\n\tfont-size: 16px;\n\tborder-width: 4px !important;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault > p {\n\tfont-size: 16px;\n}\n\n.updraftvault-buy .button-purchase {\n\tright: 24%;\n\tmargin-left: 0;\n\tline-height: 1.7em;\n}\n\n.updraftvault-buy hr {\n\theight: 2px;\n\tbackground-color: #777;\n\tmargin-top: 18px;\n}\n\n.right {\n\tmargin-right: 0px;\n}\n\n.updraftvault-buy .addon-logo-100 {\n\theight: 100px;\n\twidth: 125px;\n\tmargin-top: 7px;\n}\n\n.updraftvault-buy .addon-logo-large {\n\tmargin-top: 7px;\n}\n\n.updraftvault-buy .button-buy-vault {\n\tfont-size: 12px;\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tborder-width: 2px !important;\n\tposition: absolute;\n\tright: 29%;\n\tbottom: 2%;\n}\n\n.premium-addon-div .button-purchase {\n\tline-height: 1.7em;\n}\n\n.updraftvault-buy .button-buy-vault:hover {\n\tborder-color: darkgrey;\n\tcolor: darkgrey;\n}\n\n/* End Vault icons */\n\n/* Premium addons */\n\n.premium-addons {\n\tmargin-top: 80px;\n\twidth: 100%;\n\tmargin: 0 auto;\n\tdisplay: table;\n}\n\n.addon-list {\n\t/* margin-left: 32px; */\n\tdisplay: table;\n\ttext-align: center;\n}\n\n.premium-addons h1 {\n\ttext-align: center;\n\tfont-weight: bold;\n}\n\n.premium-addons p {\n\ttext-align: center;\n}\n\n.premium-addons .premium-addon-div {\n\twidth: 200px;\n\theight: 250px;\n\tborder: 2px solid #777;\n\tdisplay: inline-table;\n\tmargin: 0 auto;\n\tmargin-right: 25px;\n\tmargin-top: 25px;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.premium-addons .premium-addon-div p {\n\tmargin-left: 2px;\n\tmargin-right: 2px;\n}\n\n.premium-addons .premium-addon-div img {\n\twidth: auto;\n\theight: 50px;\n\tmargin-top: 7px;\n}\n\n.premium-addons .premium-addon-div .hr-alignment {\n\tmargin-top: 44px;\n}\n\n.premium-addons .premium-addon-div .dropbox-logo {\n\theight: 39px;\n\twidth: 150px;\n}\n\n.premium-addons .premium-addon-div .azure-logo, .premium-addons .premium-addon-div .onedrive-logo {\n\twidth: 75%;\n\theight: 24px;\n}\n\n.button-purchase {\n\tfont-size: 12px;\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tborder-width: 2px !important;\n\tposition: absolute;\n\tright: 25%;\n\tbottom: 2%;\n}\n\n.button-purchase:hover {\n\tcolor: darkgrey;\n\tborder-color: darkgrey;\n}\n\n.premium-addons .premium-addon-div hr {\n\theight: 2px;\n\tbackground-color: #777;\n\tmargin-top: 18px;\n}\n\n.premium-addon-div p {\n\tfont-style: italic;\n}\n\n.addon-list > .premium-addon-div > .onedrive-fix,\n.addon-list > .premium-addon-div > .azure-logo {\n\tmargin-top: 33px;\n}\n\n.addon-list > .premium-addon-div > .dropbox-fix {\n\tmargin-top: 18px;\n}\n\n/* End premium addons */\n\n\n/* Forgotton something (that is the name of the div rather than a mental note!) */\n\n.premium-forgotton-something {\n\tmargin-top: 5%;\n}\n\n.premium-forgotton-something h1 {\n\ttext-align: center;\n\tfont-weight: bold;\n}\n\n.premium-forgotton-something p {\n\ttext-align: center;\n\tfont-weight: normal;\n}\n\n.premium-forgotton-something .button-faq {\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tmargin: 0 auto;\n\tdisplay: table;\n}\n\n.premium-forgotton-something .button-faq:hover {\n\tcolor: #777;\n\tborder-color: #777;\n}\n\n/* End of forgotton something */\n\n.updraftplusmethod.updraftvault #vaultlogo {\n\tpadding-left: 40px;\n}\n\n.updraftplusmethod.updraftvault .vault_primary_option {\n\tfloat: left;\n\twidth: 50%;\n\ttext-align: center;\n\tpadding-bottom: 20px;\n}\n\n.updraftplusmethod.updraftvault .vault_primary_option div {\n\tclear: right;\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .clear-left {\n\tclear: left;\n}\n\n.updraftplusmethod.updraftvault .padding-top-20px {\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .padding-top-14px {\n\tpadding-top: 14px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary, .updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary {\n\tfont-size: 18px !important;\n}\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-container {\n\ttext-align: center;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option {\n\twidth: 40%;\n\ttext-align: center;\n\tpadding-top: 20px;\n\tdisplay: inline-block;\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\twidth: auto;\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\nbody.update-core-php #updraft_inpage_backup h2:nth-child(1) {\n\tmargin-top: 1em !important;\n}\n\n/* Restoration page */\n\n.updraft_restore_container {\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tz-index: 99999;\n\tpadding-top: 30px;\n\tbackground: #F1F1F1;\n\toverflow: auto;\n}\n\n.updraft-modal-is-opened .select2-container {\n\tz-index: 99999;\n}\n\nbody.updraft-modal-is-opened {\n\toverflow: hidden;\n}\n\n.updraft_restore_container h2 {\n\tmargin: 0;\n}\n\n.updraft_restore_container .updraftmessage {\n\tbox-sizing: border-box;\n\tmax-width: 860px;\n\tmargin-left: auto;\n\tmargin-right: auto;\n}\n\n.updraft_restore_main {\n\tmax-width: 860px;\n\tmargin: 0 auto;\n\tmargin-top: 20px;\n\tbackground: #FFF;\n\tbox-shadow: 0 3px 3px rgba(0, 0, 0, 0.1);\n\tposition: relative;\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tbox-sizing: border-box;\n}\n\n.updraft_restore_main--header {\n\tfont-size: 20px;\n\tfont-weight: bold;\n\ttext-align: center;\n\tpadding-top: 16px;\n\tline-height: 20px;\n\twidth: 100%;\n\tmax-width: 100%;\n\tpadding-right: 30px;\n\tpadding-left: 30px;\n\tbox-sizing: border-box;\n}\n\n.updraft_restore_main--activity {\n\tposition: relative;\n\twidth: calc(100% - 350px);\n\tbox-sizing: border-box;\n}\n\n.updraft_restore_main--activity-title {\n\tpadding: 20px;\n\tmargin: 0;\n}\n\n.show-credentials-form.updraft_restore_main .updraft_restore_main--activity-title {\n\tdisplay: none;\n}\n\n.updraft_restore_main--components {\n\twidth: 350px;\n\tpadding: 20px;\n\tbox-sizing: border-box;\n\tbackground: #F8F8F8;\n\tmin-height: 350px;\n}\n\n.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output {\n\tbackground: #23282D;\n\tcolor: #E3E3E3;\n\tfont-family: monospace;\n\tpadding: 19px;\n\toverflow: auto;\n\tposition: absolute;\n\ttop: 60px;\n\tbottom: 0;\n\tright: 0;\n\tleft: 0;\n}\n\n#updraftplus_ajax_restore_output form {\n\twhite-space: normal;\n\tfont-family: -apple-system, blinkmacsystemfont, \"Segoe UI\", roboto, oxygen-sans, ubuntu, cantarell, \"Helvetica Neue\", sans-serif;\n}\n\n#updraftplus_ajax_restore_output .updraft_restore_errors {\n\tborder: 1px solid #DC3232;\n\tpadding: 10px 20px;\n\twhite-space: normal;\n}\n\n.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output h2 {\n\tcolor: #00A0D2;\n\tpadding-top: 10px;\n\tpadding-bottom: 5px;\n}\n\n.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output {\n\tpadding: 20px;\n\tborder-left: 1px solid #EEE;\n}\n\n.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output #message {\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n\n.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output .form-table td,\n.updraft_restore_main.show-credentials-form div#updraftplus_ajax_restore_output .form-table th {\n\tpadding-bottom: 0;\n}\n\n.updraft_restore_main.show-credentials-form .updraft_restore_main--components {\n\topacity: 0.2;\n}\n\n.updraft_restore_main.show-credentials-form div.error .restore-credential-errors--list p {\n\tmargin: 0;\n\tlist-style-type: disc;\n\tdisplay: list-item;\n\tlist-style-position: inside;\n}\n\n.restore-credential-errors > :first-child {\n\tmargin-top: 0;\n}\n\n.restore-credential-errors > :last-child {\n\tmargin-bottom: 0;\n}\n\nul.updraft_restore_components_list li {\n\tcolor: #BABABA;\n\tfont-size: 1.2em;\n\tmargin-bottom: 1em;\n}\n\nul.updraft_restore_components_list li::before {\n\tcontent: '\\f469';\n\tfont-family: dashicons;\n\tfont-size: 20px;\n\tvertical-align: middle;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\nul.updraft_restore_components_list li span {\n\tvertical-align: middle;\n}\n\nul.updraft_restore_components_list li.done {\n\tcolor: green;\n}\n\nul.updraft_restore_components_list li.done::before {\n\tcontent: \"\\f147\";\n}\n\nul.updraft_restore_components_list li.active {\n\tcolor: inherit;\n}\n\nul.updraft_restore_components_list li.active::before {\n\tcontent: \"\\f463\";\n\tanimation: udp_rotate 1s linear infinite;\n}\n\nul.updraft_restore_components_list li.error {\n\tcolor: #DC3232;\n}\n\nul.updraft_restore_components_list li.error::before {\n\tcontent: \"\\f335\";\n}\n\n.updraft_restore_result {\n\tpadding: 10px 0;\n\tfont-size: 1.3em;\n\tmargin-bottom: 1em;\n\tvertical-align: middle;\n\tdisplay: none;\n}\n\n.updraft_restore_result.restore-error {\n\tcolor: #DC3232;\n}\n\n.updraft_restore_result.restore-success {\n\tcolor: green;\n}\n\n.updraft_restore_result .dashicons {\n\tfont-size: 35px;\n\theight: 35px;\n\tline-height: 33px;\n\twidth: 35px;\n}\n\n.updraft_restore_result span {\n\tvertical-align: middle;\n}\n\n/* Restore modal */\n\n#updraft-restore-modal {\n\twidth: 100%;\n}\n\ndiv#updraft-restore-modal .notice {\n\tbackground: #F8F8F8;\n}\n\n.updraft-restore-modal--stage .updraft--two-halves,\n.updraft-restore-modal--stage .updraft--one-half {\n\tpadding: 20px 30px;\n}\n\n.updraft-restore-modal--header {\n\tpadding: 20px;\n\tpadding-bottom: 0px;\n\ttext-align: center;\n\tborder-bottom: 1px solid #EEE;\n}\n\n.updraft-restore-modal--header h3 {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.updraft-restore-item {\n\tpadding-bottom: 4px;\n}\n\n.updraft-restore-buttons {\n\tpadding-top: 10px;\n}\n\nul.updraft-restore--stages {\n\tdisplay: inline-block;\n\tmargin: 0;\n\theight: 28px;\n}\n\nul.updraft-restore--stages li {\n\tdisplay: inline-block;\n\tposition: relative;\n\twidth: 12px;\n\theight: 12px;\n\tbackground: #D2D2D2;\n\tborder-radius: 20px;\n\tline-height: 1;\n\tmargin: 0 4px;\n\tvertical-align: middle;\n}\n\nul.updraft-restore--stages li.active {\n\tbackground: #444;\n}\n\n.updraft-restore--footer {\n\tborder-top: 1px solid #EEE;\n\tpadding: 20px;\n\ttext-align: center;\n\tposition: sticky;\n\tbottom: 0;\n\tbackground: #FFF;\n\twidth: 100%;\n\tbox-sizing: border-box;\n}\n\n.updraft-restore--footer .updraft-restore--cancel {\n\tposition: absolute;\n\tleft: 20px;\n\ttop: auto;\n}\n\n.updraft-restore--footer .updraft-restore--next-step {\n\tposition: absolute;\n\tright: 20px;\n\ttop: auto;\n}\n\nul.updraft-restore--stages li span {\n\tposition: absolute;\n\twidth: 120px;\n\tbottom: calc(100% + 14px);\n\tleft: -55px;\n\tbackground: #000000DB;\n\tpadding: 5px;\n\tbox-sizing: border-box;\n\tborder-radius: 4px;\n\tcolor: #FFF;\n\ttext-align: center;\n\tdisplay: none;\n}\n\nul.updraft-restore--stages li:hover span {\n\tdisplay: inline-block;\n}\n\n.updraft-restore-item input[type=checkbox] {\n\tmargin-bottom: -5px;\n}\n\n.updraft-restore-item input[type=checkbox]:checked + label {\n\tfont-weight: bold;\n}\n\n/* Hide close button on download window */\ndiv#updraft-restore-modal .ud_downloadstatus__close {\n\tdisplay: none;\n}\n\n#ud_downloadstatus2:not(:empty) {\n\tmargin-top: 15px;\n}\n\n.dashicons.rotate {\n\tanimation: udp_rotate 1s linear infinite;\n}\n\n/* Activity stalled */\n\nspan#updraftplus_ajax_restore_last_activity {\n\tfont-size: .8rem;\n\tfont-weight: normal;\n\tfloat: right;\n}\n\n.updraft_restore_main--components .updated.show_admin_restore_in_progress_notice {\n\tmargin: -20px -20px 20px;\n\tpadding: 19px;\n}\n\n.updraft_restore_main--components .updated.show_admin_restore_in_progress_notice button {\n\tmargin-right: 5px;\n}\n\n#updraft_migrate_receivingsites .updraftplus-remote-sites-selector .button-primary, .updraft_migrate_add_site .input-field input, .updraft_migrate_add_site button {\n\tvertical-align: middle;\n}\n\n#updraft_migrate_receivingsites .text-link-menu a:not(:last-child) {\n\tpadding-right: 10px;\n}\n\n#updraft_migrate_receivingsites a.updraft_migrate_clear_sites span.dashicons-trash:before {\n\tfont-size: 17px;\n}\n\n#updraft_migrate_receivingsites .updraft_migrate_add_site {\n\tclear: both;\n}\n\n/* RTL Support */\n\n.rtl .advanced_tools.total_size table td {\n\tdirection: ltr;\n\ttext-align: right;\n}\n\n.rtl #plupload-upload-ui2.drag-drop #drag-drop-area2 {\n\tmargin-bottom: 20px;\n}\n\n.rtl #updraft_lastlogmessagerow .updraft-log-link {\n\tfloat: left;\n}\n\n.rtl label.updraft_checkbox > input[type=checkbox] {\n\tmargin-right: -25px;\n\tmargin-left: inherit;\n}\n\n.rtl .ud_downloadstatus__close {\n\tfloat: left !important;\n}\n\n.rtl #updraft_backupextradbs_another_container {\n\tfloat: right;\n}\n\n.rtl input.labelauty + label {\n\tdirection: ltr;\n\tposition: relative;\n\tmin-height: 29px;\n}\n\n.rtl input.labelauty + label > span.labelauty-checked-image, .rtl input.labelauty + label > span.labelauty-unchecked-image {\n\tright: 8px;\n\ttop: 11px;\n\tposition: absolute;\n}\n\n.rtl .button.updraft-close-overlay .dashicons {\n\tmargin-right: -5px;\n\tmargin-left: inherit;\n}\n\n.rtl label.updraft_checkbox {\n\tmargin-right: 26px;\n\tmargin-left: inherit;\n}\n\n.rtl #updraft-wrap .udp-info {\n\tleft: 10px;\n\tright: inherit;\n}\n\n.rtl input.labelauty + label > span.labelauty-unchecked-image + span.labelauty-unchecked,\n.rtl input.labelauty + label > span.labelauty-checked-image + span.labelauty-checked {\n\tmargin-right: 7px;\n\tmargin-left: inherit;\n\tpadding: 7px 7px 7px 26px;\n\twidth: 141px;\n\ttext-align: right;\n}\n\n.rtl #updraft_report_cell button.updraft_reportbox_delete,\n.rtl .updraft_box_delete_button,\n.rtl .updraft_small_box .updraft_box_delete_button {\n\tleft: 4px;\n\tright: inherit;\n}\n\n#updraft_exclude_modal .clause-input-container {\n\toverflow: auto;\n}\n\n#updraft_exclude_modal .clause-input-container select, #updraft_exclude_modal .clause-input-container input {\n\tfloat: left;\n}\n\n#updraft_exclude_modal .clause-input-container .wildcards-input {\n\tmargin: 7px 7px 0 0;\n}\n\n#updraft_exclude_modal .updraft-exclude-panel .contain-clause-sub-label {\n\tmargin-top: 10px;\n\tdisplay: block;\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\t\n\t.rtl #ud_massactions.active, .rtl #updraft-delete-waitwarning.active {\n\t\tleft: 0px;\n\t\tright: 160px;\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\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.range-selection:not(.backuprowselected) .updraft_existingbackup_date .backup_date_label {\n\t\tcolor: #FFF;\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\t.updraft--flex {\n\t\tflex-direction: column;\n\t}\n\n\t.updraft_restore_main {\n\t\tflex-wrap: wrap;\n\t\tflex-direction: column;\n\t}\n\n\t.updraft_restore_main--components {\n\t\twidth: 100%;\n\t\tmin-height: 0;\n\t}\n\n\t.updraft_restore_main--activity {\n\t\twidth: 100%;\n\t}\n\n\tdiv#updraftplus_ajax_restore_output,\n\t.updraft_restore_main:not(.show-credentials-form) div#updraftplus_ajax_restore_output {\n\t\tposition: relative;\n\t\ttop: 0;\n\t\tbottom: auto;\n\t}\n\n\t.updraft--flex > .updraft--two-halves,\n\t.updraft--flex > .updraft--one-half {\n\t\twidth: 100%;\n\t}\n\n\t.updraft-restore-item {\n\t\tpadding-bottom: 10px;\n\t\tpadding-top: 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.range-selection:hover, .existing-backups-table tbody tr.range-selection {\n\t\tbackground: #0572AA; /* #2b7fd9 */\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"]}
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/css/updraftplus-admin.css b/wp-content/plugins/updraftplus/css/updraftplus-admin.css
index 7982008b..a8fade57 100644
--- a/wp-content/plugins/updraftplus/css/updraftplus-admin.css
+++ b/wp-content/plugins/updraftplus/css/updraftplus-admin.css
@@ -105,6 +105,10 @@
flex: auto;
}
+.updraft-file-ready-label {
+ padding: 5px;
+}
+
.updraft-color--very-light-grey {
background: #F8F8F8;
}
@@ -1411,7 +1415,7 @@ div[id^="updraft_more_files_jstree_"] .jstree-container-ul > .jstree-leaf> .jstr
}
/* More files jstree styles */
-div[id^="updraft_more_files_container_"] {
+div[id^="updraft_more_files_container_"], div.updraft_googledrive_container {
position: relative;
display: none;
width: 100%;
@@ -1423,7 +1427,12 @@ div[id^="updraft_more_files_container_"] {
box-shadow: 0 5px 8px rgba(0, 0, 0, 0.1);
}
-div[id^="updraft_more_files_container_"]::before {
+div.updraft_googledrive_container ul.jstree-container-ul {
+ overflow-y: scroll;
+ max-height: 200px;
+}
+
+div[id^="updraft_more_files_container_"]::before, div.updraft_googledrive_container::before {
content: ' ';
width: 11px;
height: 11px;
@@ -1502,6 +1511,7 @@ p[id^="updraftplus_manual_authentication_error_"] {
.updraft-viewlogdiv {
display: inline-block;
+ margin-left: 4px;
}
.updraft-viewlogdiv input, .updraft-viewlogdiv a {
@@ -1565,6 +1575,7 @@ body.admin-color-midnight .button.button-remove:focus {
}
#filelist, #filelist2 {
+ margin-top: 30px;
width: 100%;
}
@@ -2034,27 +2045,42 @@ tr.updraftplusmethod img {
padding: 8px;
}
-/*.nav-tab {
- border-radius: 20px 20px 0 0;
- border-color: grey;
- border-width: 2px;
- margin-top: 34px;
+.updraftplus-nav-tab.nav-tab-active,
+.updraftplus-nav-tab.nav-tab-active:hover,
+.updraftplus-nav-tab.nav-tab-active:focus,
+.updraftplus-nav-tab.nav-tab-active:focus:active {
+ border-bottom: 1px solid #F0F0F1;
+ background: #F0F0F1!important;
+ color: #000;
}
-.nav-tab:hover {
- border-bottom: 0;
+.updraftplus-nav-tab.nav-tab-active {
+ margin-bottom: -1px;
+ color: #3C434A;
}
-.nav-tab-active, .nav-tab-active:active {
- color: #df6926;
- border-color: #D3D3D3;
- border-width: 1px;
- border-bottom: 0;
+.updraftplus-nav-tab.nav-tab-active, .updraftplus-nav-tab:focus:active {
+ -webkit-box-shadow: none;
+ box-shadow: none;
}
-.nav-tab-active:focus {
- color: #df6926;
-}*/
+.updraftplus-nav-tab {
+ float: left;
+ border: 1px solid #C3C4C7;
+ border-bottom-color: rgb(195, 196, 199);
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ border-bottom: none;
+ margin-left: 0.5em;
+ padding: 5px 10px;
+ font-size: 14px;
+ line-height: 1.71428571;
+ font-weight: 600;
+ background: #DCDCDE;
+ color: #50575E;
+ text-decoration: none;
+ white-space: nowrap;
+}
.nav-tab-wrapper {
margin: 14px 0px;
@@ -3530,6 +3556,7 @@ ul.updraft-restore--stages li.active {
width: 100%;
-webkit-box-sizing: border-box;
box-sizing: border-box;
+ z-index: 999999;
}
.updraft-restore--footer .updraft-restore--cancel {
@@ -3706,6 +3733,40 @@ span#updraftplus_ajax_restore_last_activity {
display: block;
}
+/* UpdraftPlus Notice Styling */
+.udp-notice {
+ border: 1px solid #C3C4C7;
+ border-left-width: 4px;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
+ background: #FFF;
+ margin: 5px 0 15px 0;
+ padding: 1px 12px;
+}
+
+.udp-notice p {
+ margin: .5em 0;
+ padding: 2px;
+}
+
+.udp-notice.notice-warning {
+ border-left-color: #DBA617;
+}
+
+.udp-notice.notice-error {
+ border-left-color: #D63638;
+}
+
+.udp-notice.updraft-restore-option {
+ border-left-color: #CCC;
+ margin: 8px 0 4px 0;
+ padding: 12px;
+}
+
+div#updraft-restore-modal .udp-notice, .udp-notice.updraft-restore-option {
+ background: #F8F8F8;
+}
+
@media only screen and (min-width: 1024px) {
#updraft_activejobsrow .updraft_row {
diff --git a/wp-content/plugins/updraftplus/css/updraftplus-notices-1-25-5.min.css b/wp-content/plugins/updraftplus/css/updraftplus-notices-1-25-5.min.css
new file mode 100644
index 00000000..edbbc3cc
--- /dev/null
+++ b/wp-content/plugins/updraftplus/css/updraftplus-notices-1-25-5.min.css
@@ -0,0 +1,2 @@
+.updraft_notice_container{height:auto;overflow:hidden}.updraft_review_notice_container{padding:12px;display:-webkit-box;display:-ms-flexbox;display:flex}.updraft_advert_button_container{margin-bottom:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.updraft_advert_button_container .dashicons{margin-left:10px}.updraft_advert_content_left{float:none;width:80px;padding-top:9px;margin-right:9px}.updraft_advert_content_left_extra{float:none;width:100px;padding-right:15px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.updraft_advert_content_left img{min-height:72px;min-width:72px}.updraft_advert_content_right{float:none;width:auto;overflow:hidden;font-size:16px}.updraft_advert_content_right p{font-size:16px !important}.updraft_advert_bottom{margin:10px 0;padding:10px;font-size:140%;background-color:white;border-color:#e6db55;border:1px solid;border-radius:4px}.updraft-advert-dismiss{float:right;font-size:13px;font-weight:normal}h3.updraft_advert_heading{margin-top:5px !important;margin-bottom:5px !important}h4.updraft_advert_heading{margin-top:2px !important;margin-bottom:3px !important}.updraft_center_content{text-align:center;margin-bottom:5px}.updraft_notice_link{padding-left:5px}.updraft_text_center{text-align:center}@media screen and (min-width:560px){.updraft_advert_content_left,.updraft_advert_content_left_extra{float:left}}
+/*# sourceMappingURL=updraftplus-notices-1-25-5.min.css.map */
diff --git a/wp-content/plugins/updraftplus/css/updraftplus-notices-1-25-5.min.css.map b/wp-content/plugins/updraftplus/css/updraftplus-notices-1-25-5.min.css.map
new file mode 100644
index 00000000..41b9deaf
--- /dev/null
+++ b/wp-content/plugins/updraftplus/css/updraftplus-notices-1-25-5.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["css/updraftplus-notices.css"],"names":[],"mappings":"AAAA,oBAAoB;;AAEpB;CACC,YAAY;CACZ,gBAAgB;AACjB;;AAEA;CACC,aAAa;CACb,oBAAa;CAAb,oBAAa;CAAb,aAAa;AACd;;AAEA;CACC,mBAAmB;CACnB,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,yBAAmB;KAAnB,sBAAmB;SAAnB,mBAAmB;AACpB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,WAAW;CACX,WAAW;CACX,gBAAgB;CAChB,iBAAiB;AAClB;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,yBAAmB;KAAnB,sBAAmB;SAAnB,mBAAmB;AACpB;;AAEA;CACC,gBAAgB;CAChB,eAAe;AAChB;;AAEA;CACC,WAAW;CACX,WAAW;CACX,gBAAgB;CAChB,eAAe;AAChB;;AAEA;CACC,yBAAyB;AAC1B;;AAEA;CACC,cAAc;CACd,aAAa;CACb,eAAe;CACf,uBAAuB;CACvB,qBAAqB;CACrB,iBAAiB;CACjB,kBAAkB;AACnB;;AAEA;CACC,YAAY;CACZ,eAAe;CACf,mBAAmB;AACpB;;AAEA;CACC,0BAA0B;CAC1B,6BAA6B;AAC9B;;AAEA;CACC,0BAA0B;CAC1B,6BAA6B;AAC9B;;AAEA;CACC,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;;CAEC;EACC,WAAW;CACZ;;AAED","file":"updraftplus-notices-1-25-5.min.css","sourcesContent":["/* CSS for adverts */\n\n.updraft_notice_container {\n\theight: auto;\n\toverflow: hidden;\n}\n\n.updraft_review_notice_container {\n\tpadding: 12px;\n\tdisplay: flex;\n}\n\n.updraft_advert_button_container {\n\tmargin-bottom: 10px;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.updraft_advert_button_container .dashicons {\n\tmargin-left: 10px;\n}\n\n.updraft_advert_content_left {\n\tfloat: none;\n\twidth: 80px;\n\tpadding-top: 9px;\n\tmargin-right: 9px;\n}\n\n.updraft_advert_content_left_extra {\n\tfloat: none;\n\twidth: 100px;\n\tpadding-right: 15px;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.updraft_advert_content_left img {\n\tmin-height: 72px;\n\tmin-width: 72px;\n}\n\n.updraft_advert_content_right {\n\tfloat: none;\n\twidth: auto;\n\toverflow: hidden;\n\tfont-size: 16px;\n}\n\n.updraft_advert_content_right p {\n\tfont-size: 16px!important;\n}\n\n.updraft_advert_bottom {\n\tmargin: 10px 0;\n\tpadding: 10px;\n\tfont-size: 140%;\n\tbackground-color: white;\n\tborder-color: #E6DB55;\n\tborder: 1px solid;\n\tborder-radius: 4px;\n}\n\n.updraft-advert-dismiss {\n\tfloat: right;\n\tfont-size: 13px;\n\tfont-weight: normal;\n}\n\nh3.updraft_advert_heading {\n\tmargin-top: 5px !important;\n\tmargin-bottom: 5px !important;\n}\n\nh4.updraft_advert_heading {\n\tmargin-top: 2px !important;\n\tmargin-bottom: 3px !important;\n}\n\n.updraft_center_content {\n\ttext-align: center;\n\tmargin-bottom: 5px;\n}\n\n.updraft_notice_link {\n\tpadding-left: 5px;\n}\n\n.updraft_text_center {\n\ttext-align: center;\n}\n\n@media screen and (min-width: 560px) {\n\n\t.updraft_advert_content_left, .updraft_advert_content_left_extra {\n\t\tfloat: left;\n\t}\n\n}\n"]}
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/css/updraftplus-notices-2-23-3.min.css b/wp-content/plugins/updraftplus/css/updraftplus-notices-2-23-3.min.css
deleted file mode 100644
index 4952c0a6..00000000
--- a/wp-content/plugins/updraftplus/css/updraftplus-notices-2-23-3.min.css
+++ /dev/null
@@ -1,2 +0,0 @@
-.updraft_notice_container{height:auto;overflow:hidden}.updraft_review_notice_container{padding:12px;display:-webkit-box;display:-ms-flexbox;display:flex}.updraft_advert_button_container{margin-bottom:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.updraft_advert_button_container .dashicons{margin-left:10px}.updraft_advert_content_left{float:none;width:65px}.updraft_advert_content_left_extra{float:none;width:100px;padding-right:15px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.updraft_advert_content_right{float:none;width:auto;overflow:hidden}.updraft_advert_bottom{margin:10px 0;padding:10px;font-size:140%;background-color:white;border-color:#e6db55;border:1px solid;border-radius:4px}.updraft-advert-dismiss{float:right;font-size:13px;font-weight:normal}h3.updraft_advert_heading{margin-top:5px !important;margin-bottom:5px !important}h4.updraft_advert_heading{margin-top:2px !important;margin-bottom:3px !important}.updraft_center_content{text-align:center;margin-bottom:5px}.updraft_notice_link{padding-left:5px}.updraft_text_center{text-align:center}@media screen and (min-width:560px){.updraft_advert_content_left,.updraft_advert_content_left_extra{float:left}}
-/*# sourceMappingURL=updraftplus-notices-2-23-3.min.css.map */
diff --git a/wp-content/plugins/updraftplus/css/updraftplus-notices-2-23-3.min.css.map b/wp-content/plugins/updraftplus/css/updraftplus-notices-2-23-3.min.css.map
deleted file mode 100644
index 12ab3f46..00000000
--- a/wp-content/plugins/updraftplus/css/updraftplus-notices-2-23-3.min.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["css/updraftplus-notices.css"],"names":[],"mappings":"AAAA,oBAAoB;;AAEpB;CACC,YAAY;CACZ,gBAAgB;AACjB;;AAEA;CACC,aAAa;CACb,oBAAa;CAAb,oBAAa;CAAb,aAAa;AACd;;AAEA;CACC,mBAAmB;CACnB,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,yBAAmB;KAAnB,sBAAmB;SAAnB,mBAAmB;AACpB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,WAAW;CACX,WAAW;AACZ;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB,oBAAa;CAAb,oBAAa;CAAb,aAAa;CACb,yBAAmB;KAAnB,sBAAmB;SAAnB,mBAAmB;AACpB;;AAEA;CACC,WAAW;CACX,WAAW;CACX,gBAAgB;AACjB;;AAEA;CACC,cAAc;CACd,aAAa;CACb,eAAe;CACf,uBAAuB;CACvB,qBAAqB;CACrB,iBAAiB;CACjB,kBAAkB;AACnB;;AAEA;CACC,YAAY;CACZ,eAAe;CACf,mBAAmB;AACpB;;AAEA;CACC,0BAA0B;CAC1B,6BAA6B;AAC9B;;AAEA;CACC,0BAA0B;CAC1B,6BAA6B;AAC9B;;AAEA;CACC,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,iBAAiB;AAClB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;;CAEC;EACC,WAAW;CACZ;;AAED","file":"updraftplus-notices-2-23-3.min.css","sourcesContent":["/* CSS for adverts */\n\n.updraft_notice_container {\n\theight: auto;\n\toverflow: hidden;\n}\n\n.updraft_review_notice_container {\n\tpadding: 12px;\n\tdisplay: flex;\n}\n\n.updraft_advert_button_container {\n\tmargin-bottom: 10px;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.updraft_advert_button_container .dashicons {\n\tmargin-left: 10px;\n}\n\n.updraft_advert_content_left {\n\tfloat: none;\n\twidth: 65px;\n}\n\n.updraft_advert_content_left_extra {\n\tfloat: none;\n\twidth: 100px;\n\tpadding-right: 15px;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.updraft_advert_content_right {\n\tfloat: none;\n\twidth: auto;\n\toverflow: hidden;\n}\n\n.updraft_advert_bottom {\n\tmargin: 10px 0;\n\tpadding: 10px;\n\tfont-size: 140%;\n\tbackground-color: white;\n\tborder-color: #E6DB55;\n\tborder: 1px solid;\n\tborder-radius: 4px;\n}\n\n.updraft-advert-dismiss {\n\tfloat: right;\n\tfont-size: 13px;\n\tfont-weight: normal;\n}\n\nh3.updraft_advert_heading {\n\tmargin-top: 5px !important;\n\tmargin-bottom: 5px !important;\n}\n\nh4.updraft_advert_heading {\n\tmargin-top: 2px !important;\n\tmargin-bottom: 3px !important;\n}\n\n.updraft_center_content {\n\ttext-align: center;\n\tmargin-bottom: 5px;\n}\n\n.updraft_notice_link {\n\tpadding-left: 5px;\n}\n\n.updraft_text_center {\n\ttext-align: center;\n}\n\n@media screen and (min-width: 560px) {\n\n\t.updraft_advert_content_left, .updraft_advert_content_left_extra {\n\t\tfloat: left;\n\t}\n\n}\n"]}
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/css/updraftplus-notices.css b/wp-content/plugins/updraftplus/css/updraftplus-notices.css
index 4081afce..8d52abc7 100644
--- a/wp-content/plugins/updraftplus/css/updraftplus-notices.css
+++ b/wp-content/plugins/updraftplus/css/updraftplus-notices.css
@@ -28,7 +28,9 @@
.updraft_advert_content_left {
float: none;
- width: 65px;
+ width: 80px;
+ padding-top: 9px;
+ margin-right: 9px;
}
.updraft_advert_content_left_extra {
@@ -43,10 +45,20 @@
align-items: center;
}
+.updraft_advert_content_left img {
+ min-height: 72px;
+ min-width: 72px;
+}
+
.updraft_advert_content_right {
float: none;
width: auto;
overflow: hidden;
+ font-size: 16px;
+}
+
+.updraft_advert_content_right p {
+ font-size: 16px!important;
}
.updraft_advert_bottom {
diff --git a/wp-content/plugins/updraftplus/css/updraftplus-tour-1-25-5.min.css b/wp-content/plugins/updraftplus/css/updraftplus-tour-1-25-5.min.css
new file mode 100644
index 00000000..3bbe0665
--- /dev/null
+++ b/wp-content/plugins/updraftplus/css/updraftplus-tour-1-25-5.min.css
@@ -0,0 +1,2 @@
+.shepherd-theme-arrows-plain-buttons{z-index:9999;max-width:390px !important}.shepherd-theme-arrows-plain-buttons.super-index{z-index:999999}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content{border-radius:3px;-webkit-filter:none;filter:none;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.15),0 10px 40px rgba(0,0,0,0.15);box-shadow:0 1px 3px rgba(0,0,0,0.15),0 10px 40px rgba(0,0,0,0.15)}.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before{display:none}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before,.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before,.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before{border-bottom-color:#dd6823}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header{background-color:#dd6823;border-radius:3px 3px 0 0;padding-right:90px}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content header h3{color:#FFF;font-size:1.2em;float:none}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link{opacity:.7;color:rgba(255,255,255,0);font-size:.8em;border:1px solid #FFF;border-radius:50%;width:22px;height:22px;line-height:20px;padding:0;text-align:center;float:none;position:absolute;right:11px;top:12px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link::before{color:#FFF;content:attr(data-btntext);position:absolute;right:20px;padding-right:10px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link::after{content:"\f335";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:dashicons;color:#FFF;position:absolute;left:2px;line-height:21px;font-size:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link:hover,.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link:focus{border:1px solid #a04e00;opacity:1}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link:hover::before,.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link:focus::before{color:#a04e00}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link:hover::after,.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link:focus::after{color:#a04e00}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before{top:44px}.shepherd-content .ud-notice{background:#f0f0f0;padding:14px;border-radius:4px;font-size:90% !important;line-height:1.5}.shepherd-content .ud-notice h3{margin-top:0;padding-top:0;margin-bottom:.5em}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content .shepherd-text p{margin-top:.5em;margin-bottom:1.3em}.ud-notice span.ud-special-offer{font-weight:bold;display:inline-block;padding:1px 6px;border-radius:3px;background:rgba(217,105,0,0.09)}label[for=updraft_servicecheckbox_updraftvault]{border:1px solid rgba(204,204,204,0.4);-webkit-transition:border .5s;transition:border .5s}label[for=updraft_servicecheckbox_updraftvault].emphasize{border-color:#dd6823}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button.udp-tour-back,.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button.udp-tour-end{float:left;position:relative;padding-left:10px}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button.udp-tour-end{padding-left:0;color:#b7b7b7}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button.udp-tour-back::before{content:' ';width:6px;height:6px;display:block;border-left:1px solid;border-bottom:1px solid;position:absolute;left:0;top:8px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}a.shepherd-button.udp-tour-end::before{display:inline-block;position:relative;content:"\f335";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:dashicons;font-size:20px;line-height:20px;vertical-align:middle;margin-top:-2px}.updraftplus-welcome-logo{display:block;width:70px;float:left;margin-top:-11px;margin-right:12px}.updraftplus-welcome-logo img{display:block;width:auto;max-width:100%}.highlight-udp .plugins #the-list tr:not([data-slug="updraftplus"]){opacity:.3}@media(max-width:790px){.shepherd-element.shepherd-theme-arrows-plain-buttons{display:none}}
+/*# sourceMappingURL=updraftplus-tour-1-25-5.min.css.map */
diff --git a/wp-content/plugins/updraftplus/css/updraftplus-tour-1-25-5.min.css.map b/wp-content/plugins/updraftplus/css/updraftplus-tour-1-25-5.min.css.map
new file mode 100644
index 00000000..981af98c
--- /dev/null
+++ b/wp-content/plugins/updraftplus/css/updraftplus-tour-1-25-5.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["css/updraftplus-tour.scss"],"names":[],"mappings":"AAEA;CACC,aAAa;CACb,0BAA0B;AAC3B;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,kBAAkB;CAClB,oBAAY;SAAZ,YAAY;CACZ,sFAA8E;SAA9E,8EAA8E;AAC/E;;AAEA;;;;CAIC,aAAa;AACd;;AAEA;;;CAGC,4BAAiC;AAClC;;AAEA;CACC,yBAA8B;CAC9B,0BAA0B;CAC1B,mBAAmB;AACpB;;AAEA;CACC,WAAW;CACX,gBAAgB;CAChB,WAAW;AACZ;;AAEA;CACC,YAAY;CACZ,6BAA6B;CAC7B,gBAAgB;CAChB,sBAAsB;CACtB,kBAAkB;CAClB,WAAW;CACX,YAAY;CACZ,iBAAiB;CACjB,UAAU;CACV,kBAAkB;CAClB,WAAW;CACX,kBAAkB;CAClB,WAAW;CACX;AAoBD;;AAlBC;EACC,WAAW;EACX,2BAA2B;EAC3B,kBAAkB;EAClB,WAAW;EACX,mBAAmB;CACpB;;AACA;EACC,gBAAgB;EAChB,mCAAmC;EACnC,kCAAkC;EAClC,sBAAsB;EACtB,WAAW;EACX,kBAAkB;EAClB,SAAS;EACT,iBAAiB;EACjB,eAAe;CAChB;;AAGD;;CAEC,yBAAyB;CACzB;AAOD;;AANC;EACC,cAAc;CACf;;AACA;EACC,cAAc;CACf;;AAGD;CACC,SAAS;AACV;;AAEA;;CAEC,mBAAmB;CACnB,aAAa;CACb,kBAAkB;CAClB,yBAAyB;CACzB,gBAAgB;;AAOjB;;AANC;EACC,aAAa;EACb,cAAc;EACd,mBAAmB;CACpB;;AAID;CACC,iBAAiB;CACjB,oBAAoB;AACrB;;AAEA;CACC,iBAAiB;CACjB,qBAAqB;CACrB,gBAAgB;CAChB,kBAAkB;CAClB,mCAAmC;AACpC;;AAEA;;CAEC,0CAA0C;CAC1C,8BAAsB;CAAtB;;AAKD;;AAJC;EACC,qBAA0B;CAC3B;;AAID;;CAEC,WAAW;CACX,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,eAAe;CACf,cAAc;AACf;;AAEA;CACC,YAAY;CACZ,UAAU;CACV,WAAW;CACX,cAAc;CACd,sBAAsB;CACtB,wBAAwB;CACxB,kBAAkB;CAClB,SAAS;CACT,QAAQ;CACR,gCAAwB;SAAxB,wBAAwB;AACzB;;AAEA;CACC,qBAAqB;CACrB,kBAAkB;CAClB,gBAAgB;CAChB,mCAAmC;CACnC,kCAAkC;CAClC,sBAAsB;CACtB,eAAe;CACf,iBAAiB;CACjB,sBAAsB;CACtB,gBAAgB;AACjB;;AAEA;CACC,cAAc;CACd,WAAW;CACX,WAAW;CACX,iBAAiB;CACjB,kBAAkB;AACnB;;AAEA;CACC,cAAc;CACd,WAAW;CACX,eAAe;AAChB;;AAEA;CACC,YAAY;AACb;;AAEA;;CAEC;EACC,aAAa;CACd;;AAED","file":"updraftplus-tour-1-25-5.min.css","sourcesContent":["$udp_primary: #DD6823;\n$wp_blue: #0073AA;\n.shepherd-theme-arrows-plain-buttons {\n\tz-index: 9999;\n\tmax-width: 390px!important;\n}\n\n.shepherd-theme-arrows-plain-buttons.super-index {\n\tz-index: 999999;\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content {\n\tborder-radius: 3px;\n\tfilter: none;\n\tbox-shadow: 0px 1px 3px rgba(0, 0, 0, 0.15), 0px 10px 40px rgba(0, 0, 0, 0.15);\n}\n\n.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,\n.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,\n.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,\n.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before {\n\tdisplay: none;\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before,\n.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before,\n.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before {\n\tborder-bottom-color: $udp_primary;\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header {\n\tbackground-color: $udp_primary;\n\tborder-radius: 3px 3px 0 0;\n\tpadding-right: 90px;\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content header h3 {\n\tcolor: #FFF;\n\tfont-size: 1.2em;\n\tfloat: none;\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link {\n\topacity: 0.7;\n\tcolor: rgba(255, 255, 255, 0);\n\tfont-size: 0.8em;\n\tborder: 1px solid #FFF;\n\tborder-radius: 50%;\n\twidth: 22px;\n\theight: 22px;\n\tline-height: 20px;\n\tpadding: 0;\n\ttext-align: center;\n\tfloat: none;\n\tposition: absolute;\n\tright: 11px;\n\ttop: 12px;\n\n\t&::before {\n\t\tcolor: #FFF;\n\t\tcontent: attr(data-btntext);\n\t\tposition: absolute;\n\t\tright: 20px;\n\t\tpadding-right: 10px;\n\t}\n\t&::after {\n\t\tcontent: \"\\f335\";\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tfont-family: dashicons;\n\t\tcolor: #FFF;\n\t\tposition: absolute;\n\t\tleft: 2px;\n\t\tline-height: 21px;\n\t\tfont-size: 16px;\n\t}\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link:hover,\n.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link:focus {\n\tborder: 1px solid #A04E00;\n\topacity: 1;\n\t&::before {\n\t\tcolor: #A04E00;\n\t}\n\t&::after {\n\t\tcolor: #A04E00;\n\t}\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before {\n\ttop: 44px;\n}\n\n.shepherd-content .ud-notice {\n\n\tbackground: #F0F0F0;\n\tpadding: 14px;\n\tborder-radius: 4px;\n\tfont-size: 90% !important;\n\tline-height: 1.5;\n\th3 {\n\t\tmargin-top: 0;\n\t\tpadding-top: 0;\n\t\tmargin-bottom: .5em;\n\t}\n\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content .shepherd-text p {\n\tmargin-top: 0.5em;\n\tmargin-bottom: 1.3em;\n}\n\n.ud-notice span.ud-special-offer {\n\tfont-weight: bold;\n\tdisplay: inline-block;\n\tpadding: 1px 6px;\n\tborder-radius: 3px;\n\tbackground: rgba(217, 105, 0, 0.09);\n}\n\nlabel[for=updraft_servicecheckbox_updraftvault] {\n\n\tborder: 1px solid rgba(204, 204, 204, 0.4);\n\ttransition: border .5s;\n\t&.emphasize {\n\t\tborder-color: $udp_primary;\n\t}\n\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button.udp-tour-back,\n.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button.udp-tour-end {\n\tfloat: left;\n\tposition: relative;\n\tpadding-left: 10px;\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button.udp-tour-end {\n\tpadding-left: 0;\n\tcolor: #B7B7B7;\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button.udp-tour-back::before {\n\tcontent: ' ';\n\twidth: 6px;\n\theight: 6px;\n\tdisplay: block;\n\tborder-left: 1px solid;\n\tborder-bottom: 1px solid;\n\tposition: absolute;\n\tleft: 0px;\n\ttop: 8px;\n\ttransform: rotate(45deg);\n}\n\na.shepherd-button.udp-tour-end::before {\n\tdisplay: inline-block;\n\tposition: relative;\n\tcontent: \"\\f335\";\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n\tfont-family: dashicons;\n\tfont-size: 20px;\n\tline-height: 20px;\n\tvertical-align: middle;\n\tmargin-top: -2px;\n}\n\n.updraftplus-welcome-logo {\n\tdisplay: block;\n\twidth: 70px;\n\tfloat: left;\n\tmargin-top: -11px;\n\tmargin-right: 12px;\n}\n\n.updraftplus-welcome-logo img {\n\tdisplay: block;\n\twidth: auto;\n\tmax-width: 100%;\n}\n\n.highlight-udp .plugins #the-list tr:not([data-slug=\"updraftplus\"]) {\n\topacity: 0.3;\n}\n\n@media(max-width: 790px) {\n\n\t.shepherd-element.shepherd-theme-arrows-plain-buttons {\n\t\tdisplay: none;\n\t}\n\n}\n"]}
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/css/updraftplus-tour-2-23-3.min.css b/wp-content/plugins/updraftplus/css/updraftplus-tour-2-23-3.min.css
deleted file mode 100644
index 47801ee9..00000000
--- a/wp-content/plugins/updraftplus/css/updraftplus-tour-2-23-3.min.css
+++ /dev/null
@@ -1,2 +0,0 @@
-.shepherd-theme-arrows-plain-buttons{z-index:9999;max-width:390px !important}.shepherd-theme-arrows-plain-buttons.super-index{z-index:999999}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content{border-radius:3px;-webkit-filter:none;filter:none;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.15),0 10px 40px rgba(0,0,0,0.15);box-shadow:0 1px 3px rgba(0,0,0,0.15),0 10px 40px rgba(0,0,0,0.15)}.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before{display:none}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before,.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before,.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before{border-bottom-color:#dd6823}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header{background-color:#dd6823;border-radius:3px 3px 0 0;padding-right:90px}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content header h3{color:#FFF;font-size:1.2em;float:none}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link{opacity:.7;color:rgba(255,255,255,0);font-size:.8em;border:1px solid #FFF;border-radius:50%;width:22px;height:22px;line-height:20px;padding:0;text-align:center;float:none;position:absolute;right:11px;top:12px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link::before{color:#FFF;content:attr(data-btntext);position:absolute;right:20px;padding-right:10px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link::after{content:"\f335";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:dashicons;color:#FFF;position:absolute;left:2px;line-height:21px;font-size:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link:hover,.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link:focus{border:1px solid #a04e00;opacity:1}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link:hover::before,.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link:focus::before{color:#a04e00}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link:hover::after,.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link:focus::after{color:#a04e00}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before{top:44px}.shepherd-content .ud-notice{background:#f0f0f0;padding:14px;border-radius:4px;font-size:90% !important;line-height:1.5}.shepherd-content .ud-notice h3{margin-top:0;padding-top:0;margin-bottom:.5em}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content .shepherd-text p{margin-top:.5em;margin-bottom:1.3em}.ud-notice span.ud-special-offer{font-weight:bold;display:inline-block;padding:1px 6px;border-radius:3px;background:rgba(217,105,0,0.09)}label[for=updraft_servicecheckbox_updraftvault]{border:1px solid rgba(204,204,204,0.4);-webkit-transition:border .5s;transition:border .5s}label[for=updraft_servicecheckbox_updraftvault].emphasize{border-color:#dd6823}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button.udp-tour-back,.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button.udp-tour-end{float:left;position:relative;padding-left:10px}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button.udp-tour-end{padding-left:0;color:#b7b7b7}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button.udp-tour-back::before{content:' ';width:6px;height:6px;display:block;border-left:1px solid;border-bottom:1px solid;position:absolute;left:0;top:8px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}a.shepherd-button.udp-tour-end::before{display:inline-block;position:relative;content:"\f335";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:dashicons;font-size:20px;line-height:20px;vertical-align:middle;margin-top:-2px}.updraftplus-welcome-logo{display:block;width:70px;float:left;margin-top:-11px;margin-right:12px}.updraftplus-welcome-logo img{display:block;width:auto;max-width:100%}.highlight-udp .plugins #the-list tr:not([data-slug="updraftplus"]){opacity:.3}@media(max-width:790px){.shepherd-element.shepherd-theme-arrows-plain-buttons{display:none}}
-/*# sourceMappingURL=updraftplus-tour-2-23-3.min.css.map */
diff --git a/wp-content/plugins/updraftplus/css/updraftplus-tour-2-23-3.min.css.map b/wp-content/plugins/updraftplus/css/updraftplus-tour-2-23-3.min.css.map
deleted file mode 100644
index a42e3724..00000000
--- a/wp-content/plugins/updraftplus/css/updraftplus-tour-2-23-3.min.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["css/updraftplus-tour.scss"],"names":[],"mappings":"AAEA;CACC,aAAa;CACb,0BAA0B;AAC3B;;AAEA;CACC,eAAe;AAChB;;AAEA;CACC,kBAAkB;CAClB,oBAAY;SAAZ,YAAY;CACZ,sFAA8E;SAA9E,8EAA8E;AAC/E;;AAEA;;;;CAIC,aAAa;AACd;;AAEA;;;CAGC,4BAAiC;AAClC;;AAEA;CACC,yBAA8B;CAC9B,0BAA0B;CAC1B,mBAAmB;AACpB;;AAEA;CACC,WAAW;CACX,gBAAgB;CAChB,WAAW;AACZ;;AAEA;CACC,YAAY;CACZ,6BAA6B;CAC7B,gBAAgB;CAChB,sBAAsB;CACtB,kBAAkB;CAClB,WAAW;CACX,YAAY;CACZ,iBAAiB;CACjB,UAAU;CACV,kBAAkB;CAClB,WAAW;CACX,kBAAkB;CAClB,WAAW;CACX;AAoBD;;AAlBC;EACC,WAAW;EACX,2BAA2B;EAC3B,kBAAkB;EAClB,WAAW;EACX,mBAAmB;CACpB;;AACA;EACC,gBAAgB;EAChB,mCAAmC;EACnC,kCAAkC;EAClC,sBAAsB;EACtB,WAAW;EACX,kBAAkB;EAClB,SAAS;EACT,iBAAiB;EACjB,eAAe;CAChB;;AAGD;;CAEC,yBAAyB;CACzB;AAOD;;AANC;EACC,cAAc;CACf;;AACA;EACC,cAAc;CACf;;AAGD;CACC,SAAS;AACV;;AAEA;;CAEC,mBAAmB;CACnB,aAAa;CACb,kBAAkB;CAClB,yBAAyB;CACzB,gBAAgB;;AAOjB;;AANC;EACC,aAAa;EACb,cAAc;EACd,mBAAmB;CACpB;;AAID;CACC,iBAAiB;CACjB,oBAAoB;AACrB;;AAEA;CACC,iBAAiB;CACjB,qBAAqB;CACrB,gBAAgB;CAChB,kBAAkB;CAClB,mCAAmC;AACpC;;AAEA;;CAEC,0CAA0C;CAC1C,8BAAsB;CAAtB;;AAKD;;AAJC;EACC,qBAA0B;CAC3B;;AAID;;CAEC,WAAW;CACX,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,eAAe;CACf,cAAc;AACf;;AAEA;CACC,YAAY;CACZ,UAAU;CACV,WAAW;CACX,cAAc;CACd,sBAAsB;CACtB,wBAAwB;CACxB,kBAAkB;CAClB,SAAS;CACT,QAAQ;CACR,gCAAwB;SAAxB,wBAAwB;AACzB;;AAEA;CACC,qBAAqB;CACrB,kBAAkB;CAClB,gBAAgB;CAChB,mCAAmC;CACnC,kCAAkC;CAClC,sBAAsB;CACtB,eAAe;CACf,iBAAiB;CACjB,sBAAsB;CACtB,gBAAgB;AACjB;;AAEA;CACC,cAAc;CACd,WAAW;CACX,WAAW;CACX,iBAAiB;CACjB,kBAAkB;AACnB;;AAEA;CACC,cAAc;CACd,WAAW;CACX,eAAe;AAChB;;AAEA;CACC,YAAY;AACb;;AAEA;;CAEC;EACC,aAAa;CACd;;AAED","file":"updraftplus-tour-2-23-3.min.css","sourcesContent":["$udp_primary: #DD6823;\n$wp_blue: #0073AA;\n.shepherd-theme-arrows-plain-buttons {\n\tz-index: 9999;\n\tmax-width: 390px!important;\n}\n\n.shepherd-theme-arrows-plain-buttons.super-index {\n\tz-index: 999999;\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content {\n\tborder-radius: 3px;\n\tfilter: none;\n\tbox-shadow: 0px 1px 3px rgba(0, 0, 0, 0.15), 0px 10px 40px rgba(0, 0, 0, 0.15);\n}\n\n.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,\n.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,\n.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,\n.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before {\n\tdisplay: none;\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before,\n.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before,\n.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before {\n\tborder-bottom-color: $udp_primary;\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header {\n\tbackground-color: $udp_primary;\n\tborder-radius: 3px 3px 0 0;\n\tpadding-right: 90px;\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content header h3 {\n\tcolor: #FFF;\n\tfont-size: 1.2em;\n\tfloat: none;\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link {\n\topacity: 0.7;\n\tcolor: rgba(255, 255, 255, 0);\n\tfont-size: 0.8em;\n\tborder: 1px solid #FFF;\n\tborder-radius: 50%;\n\twidth: 22px;\n\theight: 22px;\n\tline-height: 20px;\n\tpadding: 0;\n\ttext-align: center;\n\tfloat: none;\n\tposition: absolute;\n\tright: 11px;\n\ttop: 12px;\n\n\t&::before {\n\t\tcolor: #FFF;\n\t\tcontent: attr(data-btntext);\n\t\tposition: absolute;\n\t\tright: 20px;\n\t\tpadding-right: 10px;\n\t}\n\t&::after {\n\t\tcontent: \"\\f335\";\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tfont-family: dashicons;\n\t\tcolor: #FFF;\n\t\tposition: absolute;\n\t\tleft: 2px;\n\t\tline-height: 21px;\n\t\tfont-size: 16px;\n\t}\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link:hover,\n.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link:focus {\n\tborder: 1px solid #A04E00;\n\topacity: 1;\n\t&::before {\n\t\tcolor: #A04E00;\n\t}\n\t&::after {\n\t\tcolor: #A04E00;\n\t}\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before {\n\ttop: 44px;\n}\n\n.shepherd-content .ud-notice {\n\n\tbackground: #F0F0F0;\n\tpadding: 14px;\n\tborder-radius: 4px;\n\tfont-size: 90% !important;\n\tline-height: 1.5;\n\th3 {\n\t\tmargin-top: 0;\n\t\tpadding-top: 0;\n\t\tmargin-bottom: .5em;\n\t}\n\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content .shepherd-text p {\n\tmargin-top: 0.5em;\n\tmargin-bottom: 1.3em;\n}\n\n.ud-notice span.ud-special-offer {\n\tfont-weight: bold;\n\tdisplay: inline-block;\n\tpadding: 1px 6px;\n\tborder-radius: 3px;\n\tbackground: rgba(217, 105, 0, 0.09);\n}\n\nlabel[for=updraft_servicecheckbox_updraftvault] {\n\n\tborder: 1px solid rgba(204, 204, 204, 0.4);\n\ttransition: border .5s;\n\t&.emphasize {\n\t\tborder-color: $udp_primary;\n\t}\n\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button.udp-tour-back,\n.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button.udp-tour-end {\n\tfloat: left;\n\tposition: relative;\n\tpadding-left: 10px;\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button.udp-tour-end {\n\tpadding-left: 0;\n\tcolor: #B7B7B7;\n}\n\n.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button.udp-tour-back::before {\n\tcontent: ' ';\n\twidth: 6px;\n\theight: 6px;\n\tdisplay: block;\n\tborder-left: 1px solid;\n\tborder-bottom: 1px solid;\n\tposition: absolute;\n\tleft: 0px;\n\ttop: 8px;\n\ttransform: rotate(45deg);\n}\n\na.shepherd-button.udp-tour-end::before {\n\tdisplay: inline-block;\n\tposition: relative;\n\tcontent: \"\\f335\";\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n\tfont-family: dashicons;\n\tfont-size: 20px;\n\tline-height: 20px;\n\tvertical-align: middle;\n\tmargin-top: -2px;\n}\n\n.updraftplus-welcome-logo {\n\tdisplay: block;\n\twidth: 70px;\n\tfloat: left;\n\tmargin-top: -11px;\n\tmargin-right: 12px;\n}\n\n.updraftplus-welcome-logo img {\n\tdisplay: block;\n\twidth: auto;\n\tmax-width: 100%;\n}\n\n.highlight-udp .plugins #the-list tr:not([data-slug=\"updraftplus\"]) {\n\topacity: 0.3;\n}\n\n@media(max-width: 790px) {\n\n\t.shepherd-element.shepherd-theme-arrows-plain-buttons {\n\t\tdisplay: none;\n\t}\n\n}\n"]}
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/example-decrypt.php b/wp-content/plugins/updraftplus/example-decrypt.php
index fb2e8079..edea174d 100644
--- a/wp-content/plugins/updraftplus/example-decrypt.php
+++ b/wp-content/plugins/updraftplus/example-decrypt.php
@@ -38,6 +38,6 @@ function rijndael_decrypt_file($file, $key) {
$ciphertext = file_get_contents($file);
- print $rijndael->decrypt($ciphertext);
+ print $rijndael->decrypt($ciphertext);// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- intentional binary output
}
diff --git a/wp-content/plugins/updraftplus/images/dashicon-white.png b/wp-content/plugins/updraftplus/images/dashicon-white.png
new file mode 100644
index 00000000..0729c188
Binary files /dev/null and b/wp-content/plugins/updraftplus/images/dashicon-white.png differ
diff --git a/wp-content/plugins/updraftplus/images/notices/aios_logo.png b/wp-content/plugins/updraftplus/images/notices/aios_logo.png
new file mode 100644
index 00000000..dd698a64
Binary files /dev/null and b/wp-content/plugins/updraftplus/images/notices/aios_logo.png differ
diff --git a/wp-content/plugins/updraftplus/images/notices/black_friday_sale_24.png b/wp-content/plugins/updraftplus/images/notices/black_friday_sale_24.png
new file mode 100644
index 00000000..20a65cd0
Binary files /dev/null and b/wp-content/plugins/updraftplus/images/notices/black_friday_sale_24.png differ
diff --git a/wp-content/plugins/updraftplus/images/notices/collection_sale_24.png b/wp-content/plugins/updraftplus/images/notices/collection_sale_24.png
new file mode 100644
index 00000000..e1bf1a2e
Binary files /dev/null and b/wp-content/plugins/updraftplus/images/notices/collection_sale_24.png differ
diff --git a/wp-content/plugins/updraftplus/images/notices/new_year_sale_24.png b/wp-content/plugins/updraftplus/images/notices/new_year_sale_24.png
new file mode 100644
index 00000000..b72f9e7f
Binary files /dev/null and b/wp-content/plugins/updraftplus/images/notices/new_year_sale_24.png differ
diff --git a/wp-content/plugins/updraftplus/images/notices/sale_20_24.png b/wp-content/plugins/updraftplus/images/notices/sale_20_24.png
new file mode 100644
index 00000000..ef088810
Binary files /dev/null and b/wp-content/plugins/updraftplus/images/notices/sale_20_24.png differ
diff --git a/wp-content/plugins/updraftplus/images/notices/sale_20_25.png b/wp-content/plugins/updraftplus/images/notices/sale_20_25.png
new file mode 100644
index 00000000..b85ee12e
Binary files /dev/null and b/wp-content/plugins/updraftplus/images/notices/sale_20_25.png differ
diff --git a/wp-content/plugins/updraftplus/images/notices/spring_sale_24.png b/wp-content/plugins/updraftplus/images/notices/spring_sale_24.png
new file mode 100644
index 00000000..a3a4fbdd
Binary files /dev/null and b/wp-content/plugins/updraftplus/images/notices/spring_sale_24.png differ
diff --git a/wp-content/plugins/updraftplus/images/notices/summer_sale_24.png b/wp-content/plugins/updraftplus/images/notices/summer_sale_24.png
new file mode 100644
index 00000000..0f50faf1
Binary files /dev/null and b/wp-content/plugins/updraftplus/images/notices/summer_sale_24.png differ
diff --git a/wp-content/plugins/updraftplus/images/notices/teamupdraft_logo.png b/wp-content/plugins/updraftplus/images/notices/teamupdraft_logo.png
new file mode 100644
index 00000000..c4d16fc6
Binary files /dev/null and b/wp-content/plugins/updraftplus/images/notices/teamupdraft_logo.png differ
diff --git a/wp-content/plugins/updraftplus/images/notices/updraft_logo.png b/wp-content/plugins/updraftplus/images/notices/updraft_logo.png
index ab76d63b..664d6558 100644
Binary files a/wp-content/plugins/updraftplus/images/notices/updraft_logo.png and b/wp-content/plugins/updraftplus/images/notices/updraft_logo.png differ
diff --git a/wp-content/plugins/updraftplus/images/notices/updraftcentral_logo.png b/wp-content/plugins/updraftplus/images/notices/updraftcentral_logo.png
new file mode 100644
index 00000000..1fdedfab
Binary files /dev/null and b/wp-content/plugins/updraftplus/images/notices/updraftcentral_logo.png differ
diff --git a/wp-content/plugins/updraftplus/images/notices/wp_optimize_logo.png b/wp-content/plugins/updraftplus/images/notices/wp_optimize_logo.png
index b02fd58c..30ea2949 100644
Binary files a/wp-content/plugins/updraftplus/images/notices/wp_optimize_logo.png and b/wp-content/plugins/updraftplus/images/notices/wp_optimize_logo.png differ
diff --git a/wp-content/plugins/updraftplus/images/updraftvault-150.png b/wp-content/plugins/updraftplus/images/updraftvault-150.png
deleted file mode 100644
index e0c24c69..00000000
Binary files a/wp-content/plugins/updraftplus/images/updraftvault-150.png and /dev/null differ
diff --git a/wp-content/plugins/updraftplus/includes/Backblaze/CurlClient.php b/wp-content/plugins/updraftplus/includes/Backblaze/CurlClient.php
deleted file mode 100644
index 873b0783..00000000
--- a/wp-content/plugins/updraftplus/includes/Backblaze/CurlClient.php
+++ /dev/null
@@ -1,839 +0,0 @@
-accountId = $accountId;
- $this->applicationKey = $applicationKey;
- $this->singleBucketKeyId = $singleBucketKeyId;
- if (isset($options['ssl_verify'])) $this->sslVerify = $options['ssl_verify'];
- if (isset($options['ssl_ca_certs'])) $this->useCACerts = $options['ssl_ca_certs'];
- $this->authorizeAccount();
- }
-
- protected function request($method = 'GET', $uri = '', array $options = array(), $as_json = true) {
- $session = curl_init($uri);
-
- $headers = array();
-
- if (isset($options['auth'])) {
- $account_id = empty($this->singleBucketKeyId) ? $this->accountId : $this->singleBucketKeyId;
- $headers[] = 'Authorization: Basic ' . base64_encode($account_id . ':' . $this->applicationKey);
- }
-
- if (isset($options['headers'])) {
- foreach ($options['headers'] as $key => $header) {
- $headers[] = $key . ': ' . $header;
- }
- }
-
- if ($this->sslVerify) {
- curl_setopt($session, CURLOPT_SSL_VERIFYPEER, true);
- curl_setopt($session, CURLOPT_SSL_VERIFYHOST, 2);
- } else {
- curl_setopt($session, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($session, CURLOPT_SSL_VERIFYHOST, 0);
- }
-
- if ($this->useCACerts) {
- curl_setopt($session, CURLOPT_CAINFO, $this->useCACerts);
- }
-
- if ('GET' == $method) {
-
- curl_setopt($session, CURLOPT_HTTPGET, true);
-
- } else {
-
- $data = array();
-
- if (isset($options['json'])) {
-
- $headers[] = "Accept: application/json";
- $data = json_encode($options['json']);
-
- }
-
- if (isset($options['body'])) {
-
- $data = $options['body'];
-
- }
-
- curl_setopt($session, CURLOPT_POSTFIELDS, $data);
- curl_setopt($session, CURLOPT_POST, true);
- }
-
- curl_setopt($session, CURLOPT_HTTPHEADER, $headers);
- curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
-
- if (isset($options['sink'])) {
- $sink = fopen($options['sink'], 'w+');
- curl_setopt($session, CURLOPT_FILE, $sink);
- curl_setopt($session, CURLOPT_FOLLOWLOCATION, true);
- }
-
- if (isset($options['session'])) {
- return $session;
- }
-
- $response = curl_exec($session);
-
- if (0 != ($curl_error = curl_errno($session))) {
- throw new Exception("Curl error ($curl_error): ".curl_error($session), $curl_error);
- }
-
- $decode_response = json_decode($response, true);
-
- if (isset($decode_response['status']) && 200 !== $decode_response['status']) {
-
- throw new Exception($decode_response['message'], $decode_response['status']);
-
- }
-
- curl_close($session);
-
- if (!empty($sink)) @fclose($sink);
-
- if ($as_json) return $decode_response;
-
- return $response;
- }
-
- public function uploadLargeStart($options) {
- // Request body parameters
- if ('/' === substr($options['FileName'], 0, 1)) {
- $options['FileName'] = ltrim($options['FileName'], '/');
- }
-
- if (!isset($options['BucketId']) && isset($options['BucketName'])) {
- $options['BucketId'] = $this->getBucketIdFromName($options['BucketName']);
- }
-
- if (!isset($options['FileContentType'])) {
- $options['FileContentType'] = 'b2/x-auto';
- }
-
- // Request start large file upload
- $response = $this->request('POST', $this->apiUrl . '/b2_start_large_file', array(
- 'headers' => array(
- 'Authorization' => $this->authToken,
- ),
- 'json' => array(
- 'bucketId' => $options['BucketId'],
- 'fileName' => $options['FileName'],
- 'contentType' => $options['FileContentType'],
- ),
- ));
-
- /*
- * fileId
- * fileName
- * accountId
- * bucketId
- * contentType
- * fileInfo
- * uploadTimestamp
- */
- return $response;
- }
-
- public function uploadLargeUrl($options) {
- if (!isset($options['FileId'])) {
- throw new Exception('FileId required');
- }
-
- $response = $this->request('POST', $this->apiUrl . '/b2_get_upload_part_url', array(
- 'headers' => array(
- 'Authorization' => $this->authToken,
- ),
- 'json' => array(
- 'fileId' => $options['FileId'],
- ),
- ));
-
- /*
- * authorizationToken
- * fileId
- * uploadUrl
- */
- return $response;
- }
-
- public function uploadLargePart($options) {
-
- if (!isset($options['AuthorizationToken'])) {
- throw new Exception('AuthorizationToken required');
- }
-
- if (!isset($options['FilePartNo'])) {
- throw new Exception('FilePartNo required');
- }
-
- if (!isset($options['UploadUrl'])) {
- throw new Exception('UploadUrl required');
- }
-
- if (!isset($options['Body'])) {
- throw new Exception('Body required');
- }
-
- if (is_resource($options['Body'])) {
- // We need to calculate the file's hash incrementally from the stream.
- $context = hash_init('sha1');
- hash_update_stream($context, $options['Body']);
- $hash = hash_final($context);
-
- // Similarly, we have to use fstat to get the size of the stream.
- $fstat = fstat($options['Body']);
- $size = $fstat['size'];
-
- // Rewind the stream before passing it to the HTTP client.
- rewind($options['Body']);
- } else {
- // We've been given a simple string body, it's super simple to calculate the hash and size.
- $hash = sha1($options['Body']);
- $size = mb_strlen($options['Body'], '8bit');
- }
-
- $response = $this->request('POST', $options['UploadUrl'], array(
- 'headers' => array(
- 'Authorization' => $options['AuthorizationToken'],
- 'X-Bz-Part-Number' => $options['FilePartNo'],
- 'Content-Length' => $size,
- 'X-Bz-Content-Sha1' => $hash,
- ),
- 'body' => $options['Body'],
- ));
-
- /*
- * fileId
- * partNumber
- * contentLength
- * contentSha1
- */
- return $response;
- }
-
- public function uploadLargeFinish($options) {
-
- if (!isset($options['FileId'])) {
- throw new Exception('FileId required');
- }
-
- if (!isset($options['FilePartSha1Array'])) {
- throw new Exception('FilePartSha1Array required');
- }
-
- if (!is_array($options['FilePartSha1Array'])) {
- throw new Exception("FilePartSha1Array must be an array");
-
- }
-
- $response = $this->request('POST', $this->apiUrl . '/b2_finish_large_file', array(
- 'headers' => array(
- 'Authorization' => $this->authToken,
- ),
- 'json' => array(
- 'fileId' => (string) $options['FileId'],
- 'partSha1Array' => $options['FilePartSha1Array'],
- ),
- ));
-
- if (empty($response['contentLength'])) {
- throw new Exception('B2: uploadLargeFinish error: contentLength returned was empty ('.serialize($response).')');
- }
-
- return new UpdraftPlus_Backblaze_File(
- $response['fileId'],
- $response['fileName'],
- $response['contentSha1'],
- $response['contentLength'],
- $response['contentType'],
- $response['fileInfo']
- );
- }
-
- protected function authorizeAccount() {
- $response = $this->request("GET", 'https://api.backblazeb2.com/b2api/v1/b2_authorize_account', array(
- 'auth' => array($this->accountId, $this->applicationKey),
- ));
-
- $this->authToken = $response['authorizationToken'];
- $this->apiUrl = $response['apiUrl'] . '/b2api/v1';
- $this->downloadUrl = $response['downloadUrl'];
- }
-
- public function listBuckets() {
- $buckets = array();
-
- $response = $this->request('POST', $this->apiUrl . '/b2_list_buckets', array(
- 'headers' => array(
- 'Authorization' => $this->authToken,
- ),
- 'json' => array(
- 'accountId' => $this->accountId,
- ),
- ));
-
- if (!isset($response['buckets'])) throw new Exception('Failed to list buckets: '.serialize($response));
-
- foreach ($response['buckets'] as $bucket) {
- $buckets[] = new UpdraftPlus_Backblaze_Bucket($bucket['bucketId'], $bucket['bucketName'], $bucket['bucketType']);
- }
-
-
- return $buckets;
- }
-
- protected function getBucketIdFromName($name) {
- $buckets = $this->listBuckets();
-
- foreach ($buckets as $bucket) {
- if ($bucket->getName() === $name) {
- return $bucket->getId();
- }
- }
-
- return null;
- }
-
- protected function getBucketNameFromId($id) {
- $buckets = $this->listBuckets();
-
- foreach ($buckets as $bucket) {
- if ($bucket->getId() === $id) {
- return $bucket->getName();
- }
- }
-
- return null;
- }
-
- protected function getFileIdFromBucketAndFileName($bucketName, $fileName) {
- $files = $this->listFiles(array(
- 'BucketName' => $bucketName,
- 'FileName' => $fileName,
- ));
-
- foreach ($files as $file) {
- if ($file->getName() === $fileName) {
- return $file->getId();
- }
- }
-
- return null;
- }
-
- public function listFiles($options) {
- // if FileName is set, we only attempt to retrieve information about that single file.
- $fileName = !empty($options['FileName']) ? $options['FileName'] : null;
-
- $nextFileName = null;
- $maxFileCount = 1000;
- $files = array();
-
- if (!isset($options['BucketId']) && isset($options['BucketName'])) {
- $options['BucketId'] = $this->getBucketIdFromName($options['BucketName']);
- }
-
- if ($fileName) {
- $nextFileName = $fileName;
- $maxFileCount = 1;
- }
-
- $json = array(
- 'bucketId' => $options['BucketId'],
- 'startFileName' => $nextFileName,
- 'maxFileCount' => $maxFileCount,
- );
-
- if (!empty($options['Prefix'])) $json['prefix'] = $options['Prefix'];
-
- // B2 returns, at most, 1000 files per "page". Loop through the pages and compile an array of File objects.
- while (true) {
- $response = $this->request('POST', $this->apiUrl . '/b2_list_file_names', array(
- 'headers' => array(
- 'Authorization' => $this->authToken,
- ),
- 'json' => $json
- ));
-
- if (!isset($response['files'])) throw new Exception('Failed to list files. '.serialize($files));
-
- foreach ($response['files'] as $file) {
- // if we have a file name set, only retrieve information if the file name matches
- if (!$fileName || ($fileName === $file['fileName'])) {
- $files[] = new UpdraftPlus_Backblaze_File($file['fileId'], $file['fileName'], null, $file['size']);
- }
- }
-
- if ($fileName || $response['nextFileName'] === null) {
- // We've got all the files - break out of loop.
- break;
- }
-
- $json['startFileName'] = $response['nextFileName'];
- }
-
- return $files;
- }
-
- public function upload($options) {
- // Clean the path if it starts with /.
- if (substr($options['FileName'], 0, 1) === '/') {
- $options['FileName'] = ltrim($options['FileName'], '/');
- }
-
- if (!isset($options['BucketId']) && isset($options['BucketName'])) {
- $options['BucketId'] = $this->getBucketIdFromName($options['BucketName']);
- }
-
- // Retrieve the URL that we should be uploading to.
- $response = $this->request('POST', $this->apiUrl . '/b2_get_upload_url', array(
- 'headers' => array(
- 'Authorization' => $this->authToken,
- ),
- 'json' => array(
- 'bucketId' => $options['BucketId'],
- ),
- ));
-
- $uploadEndpoint = $response['uploadUrl'];
- $uploadAuthToken = $response['authorizationToken'];
-
- if (is_resource($options['Body'])) {
- // We need to calculate the file's hash incrementally from the stream.
- $context = hash_init('sha1');
- hash_update_stream($context, $options['Body']);
- $hash = hash_final($context);
-
- // Similarly, we have to use fstat to get the size of the stream.
- $fstat = fstat($options['Body']);
- $size = $fstat['size'];
-
- // Rewind the stream before passing it to the HTTP client.
- rewind($options['Body']);
- } else {
- // We've been given a simple string body, it's super simple to calculate the hash and size.
- $hash = sha1($options['Body']);
- $size = mb_strlen($options['Body'], '8bit');
- }
-
- if (!isset($options['FileLastModified'])) {
- $options['FileLastModified'] = round(microtime(true) * 1000);
- }
-
- if (!isset($options['FileContentType'])) {
- $options['FileContentType'] = 'b2/x-auto';
- }
-
- $response = $this->request('POST', $uploadEndpoint, array(
- 'headers' => array(
- 'Authorization' => $uploadAuthToken,
- 'Content-Type' => $options['FileContentType'],
- 'Content-Length' => $size,
- 'X-Bz-File-Name' => $options['FileName'],
- 'X-Bz-Content-Sha1' => $hash,
- 'X-Bz-Info-src_last_modified_millis' => $options['FileLastModified'],
- ),
- 'body' => $options['Body'],
- ));
-
- return new UpdraftPlus_Backblaze_File(
- $response['fileId'],
- $response['fileName'],
- $response['contentSha1'],
- $response['contentLength'],
- $response['contentType'],
- $response['fileInfo']
- );
- }
-
- public function download($options) {
- $requestUrl = null;
- $requestOptions = array(
- 'headers' => array(
- 'Authorization' => $this->authToken,
- ),
- 'sink' => isset($options['SaveAs']) ? $options['SaveAs'] : null,
- );
-
- if (isset($options['FileId'])) {
- $requestOptions['query'] = array('fileId' => $options['FileId']);
- $requestUrl = $this->downloadUrl . '/b2api/v1/b2_download_file_by_id';
- } else {
- if (!isset($options['BucketName']) && isset($options['BucketId'])) {
- $options['BucketName'] = $this->getBucketNameFromId($options['BucketId']);
- }
-
- $requestUrl = sprintf('%s/file/%s/%s', $this->downloadUrl, $options['BucketName'], $options['FileName']);
- }
-
- if (isset($options['headers'])) {
- $requestOptions['headers'] = array_merge($requestOptions['headers'], $options['headers']);
- }
-
- $response = $this->request('GET', $requestUrl, $requestOptions, false);
-
- return isset($options['SaveAs']) ? true : $response;
- }
-
- public function getFile($options) {
- if (!isset($options['FileId']) && isset($options['BucketName']) && isset($options['FileName'])) {
- $options['FileId'] = $this->getFileIdFromBucketAndFileName($options['BucketName'], $options['FileName']);
-
- if (!$options['FileId']) {
- throw new UpdraftPlus_Backblaze_NotFoundException();
- }
- }
-
- $response = $this->request('POST', $this->apiUrl . '/b2_get_file_info', array(
- 'headers' => array(
- 'Authorization' => $this->authToken,
- ),
- 'json' => array(
- 'fileId' => $options['FileId'],
- ),
- ));
-
- return new UpdraftPlus_Backblaze_File(
- $response['fileId'],
- $response['fileName'],
- $response['contentSha1'],
- $response['contentLength'],
- $response['contentType'],
- $response['fileInfo'],
- $response['bucketId'],
- $response['action'],
- $response['uploadTimestamp']
- );
- }
-
- /**
- * Delete a file
- *
- * @param Array $options - possible keys are FileName, FileId, BucketName
- *
- * @return Boolean. Can also throw an exception; including UpdraftPlus_Backblaze_NotFoundException if the file was not found.
- */
- public function deleteFile($options) {
- if (!isset($options['FileName'])) {
- $file = $this->getFile($options);
-
- $options['FileName'] = $file->getName();
- }
-
- if (!isset($options['FileId']) && isset($options['BucketName']) && isset($options['FileName'])) {
- $file = $this->getFile($options);
-
- $options['FileId'] = $file->getId();
- }
-
- $delete_result = $this->request('POST', $this->apiUrl . '/b2_delete_file_version', array(
- 'headers' => array(
- 'Authorization' => $this->authToken,
- ),
- 'json' => array(
- 'fileName' => $options['FileName'],
- 'fileId' => $options['FileId'],
- ),
- ));
-
- return (is_array($delete_result) && !empty($delete_result['fileId'])) ? true : false;
- }
-
- /**
- * Delete multiple files
- *
- * @param Array $files_to_delete - array of possible files to delete; sub-keys are FileName, FileId, BucketName
- * @param String $bucket_name - the bucket that files are being deleted from
- * @param String|Null - path prefix (to prevent unnecessary scanning of other paths)
- *
- * @return Array|Boolean
- */
- public function deleteMultipleFiles($files_to_delete, $bucket_name, $path_prefix = null) {
- if (count($files_to_delete) == 0) {
- return false;
- }
-
- $active = null;
- $sessions = [];
- $result = [];
- $bulk_session = curl_multi_init();
-
- $list_options = array(
- 'BucketName' => $bucket_name
- );
-
- if (is_string($path_prefix) && '' !== $path_prefix) $list_options['Prefix'] = $path_prefix;
-
- $files = $this->listFiles($list_options);
-
- $files_lookup = array();
-
- foreach ($files as $file_object) {
- $file_name = $file_object->getName();
- $file_id = $file_object->getId();
- $files_lookup[$file_name] = $file_id;
- }
-
- foreach ($files_to_delete as $file_identification) {
-
- try {
- if (!isset($file_identification['FileName'])) {
- // We should not enter here as we always pass a file name but just in case
- $file = $this->getFile($file_identification);
- $file_identification['FileName'] = $file->getName();
- $file_identification['FileId'] = $file->getId();
- } elseif (!isset($file_identification['FileId'])) {
- if (isset($files_lookup[$file_identification['FileName']])) {
- $file_identification['FileId'] = $files_lookup[$file_identification['FileName']];
- } else {
- // We should not enter here as all the files should be in the same bucket but just in case
- $file = $this->getFile($file_identification);
- $file_identification['FileId'] = $file->getId();
- }
- }
- } catch (UpdraftPlus_Backblaze_NotFoundException $e) {
- array_push($sessions, true);
- continue;
- }
-
- $session = $this->request('POST', $this->apiUrl . '/b2_delete_file_version', array(
- 'headers' => array(
- 'Authorization' => $this->authToken,
- ),
- 'json' => array(
- 'fileName' => $file_identification['FileName'],
- 'fileId' => $file_identification['FileId'],
- ),
- 'session' => true
- ));
- array_push($sessions, $session);
- curl_multi_add_handle($bulk_session, $session);
- }
-
- do {
- $status = curl_multi_exec($bulk_session, $active);
- if ($active) {
- curl_multi_select($bulk_session);
- }
- } while ($active && $status == CURLM_OK);
-
- foreach ($sessions as $session) {
- if (is_bool($session)) {
- array_push($result, $session);
- continue;
- }
- $response = curl_multi_getcontent($session);
- array_push($result, $response);
- curl_multi_remove_handle($bulk_session, $session);
- }
- curl_multi_close($bulk_session);
-
- return (is_array($result) && !empty($result)) ? $result : false;
- }
-
- /**
- * Create a private bucket with the given name.
- *
- * @param String $bucket_name - valid bucket name
- * @throws Exception
- *
- * @return boolean - If bucket created successfully, it returns true otherwise false.
- */
- public function createPrivateBucket($bucket_name) {
- try {
- $response = $this->request('POST', $this->apiUrl.'/b2_create_bucket',
- array(
- 'headers' => array(
- 'Authorization' => $this->authToken,
- ),
- 'json' => array(
- 'accountId' => $this->accountId,
- 'bucketName' => $bucket_name,
- 'bucketType' => 'allPrivate'
- )
- )
- );
- } catch (Exception $e) {
- if (400 == $e->getCode()) {
- throw new Exception("Bucket can't be created because Bucket name is already in use.", $e->getCode());
- } else {
- throw $e;
- }
- return false;
- }
- if (isset($response['bucketId']) && isset($response['bucketName']) && isset($response['bucketType'])) {
- return true;
- }
- return false;
- }
-
-}
-
-final class UpdraftPlus_Backblaze_Bucket {
- const TYPE_PUBLIC = 'allPublic';
- const TYPE_PRIVATE = 'allPrivate';
-
- protected $id;
- protected $name;
- protected $type;
-
- /**
- * Bucket constructor.
- *
- * @param $id
- * @param $name
- * @param $type
- */
- public function __construct($id, $name, $type) {
- $this->id = $id;
- $this->name = $name;
- $this->type = $type;
- }
-
- public function getId() {
- return $this->id;
- }
-
- public function getName() {
- return $this->name;
- }
-
- public function getType() {
- return $this->type;
- }
-}
-
-final class UpdraftPlus_Backblaze_File {
- protected $id;
- protected $name;
- protected $hash;
- protected $size;
- protected $type;
- protected $info;
- protected $bucketId;
- protected $action;
- protected $uploadTimestamp;
-
- /**
- * File constructor.
- *
- * @param $id
- * @param $name
- * @param $hash
- * @param $size
- * @param $type
- * @param $info
- * @param $bucketId
- * @param $action
- * @param $uploadTimestamp
- */
- public function __construct($id, $name, $hash = null, $size = null, $type = null, $info = null, $bucketId = null, $action = null, $uploadTimestamp = null) {
- $this->id = $id;
- $this->name = $name;
- $this->hash = $hash;
- $this->size = $size;
- $this->type = $type;
- $this->info = $info;
- $this->bucketId = $bucketId;
- $this->action = $action;
- $this->uploadTimestamp = $uploadTimestamp;
- }
-
- /**
- * @return string
- */
- public function getId() {
- return $this->id;
- }
-
- /**
- * @return string
- */
- public function getName() {
- return $this->name;
- }
-
- /**
- * @return string
- */
- public function getHash() {
- return $this->hash;
- }
-
- /**
- * @return int
- */
- public function getSize() {
- return $this->size;
- }
-
- /**
- * @return string
- */
- public function getType() {
- return $this->type;
- }
-
- /**
- * @return array
- */
- public function getInfo()
- {
- return $this->info;
- }
-
- /**
- * @return string
- */
- public function getBucketId() {
- return $this->bucketId;
- }
-
- /**
- * @return string
- */
- public function getAction() {
- return $this->action;
- }
-
- /**
- * @return string
- */
- public function getUploadTimestamp() {
- return $this->uploadTimestamp;
- }
-}
-
-class UpdraftPlus_Backblaze_NotFoundException extends Exception {
-}
diff --git a/wp-content/plugins/updraftplus/includes/Dropbox2/API.php b/wp-content/plugins/updraftplus/includes/Dropbox2/API.php
index 87ed4d34..8dd3995e 100644
--- a/wp-content/plugins/updraftplus/includes/Dropbox2/API.php
+++ b/wp-content/plugins/updraftplus/includes/Dropbox2/API.php
@@ -1,5 +1,5 @@
@@ -203,16 +203,23 @@ private function append_upload($params, $last_call) {
}
} catch (Exception $e) {
$responseCheck = json_decode($e->getMessage());
- if (isset($responseCheck) && strpos($responseCheck[0] , 'incorrect_offset') !== false) {
+ if (empty($responseCheck)) {
+ throw $e;
+ } else {
+
+ $extract_message = (is_object($responseCheck[0]) && isset($responseCheck[0]->{'.tag'})) ? $responseCheck[0]->{'.tag'} : $responseCheck[0];
+
+ if (strpos($extract_message, 'incorrect_offset') !== false) {
$expected_offset = $responseCheck[1];
throw new Exception('Submitted input out of alignment: got ['.$params['cursor']['offset'].'] expected ['.$expected_offset.']');
// $params['cursor']['offset'] = $responseCheck[1];
// $response = $this->append_upload($params, $last_call);
- } elseif (isset($responseCheck) && strpos($responseCheck[0], 'closed') !== false) {
- throw new Exception("Upload with upload_id {$params['cursor']['session_id']} already completed");
- } else {
- throw $e;
+ } elseif (strpos($extract_message, 'closed') !== false) {
+ throw new Exception("Upload with upload_id {$params['cursor']['session_id']} already completed");
+ } elseif (strpos($extract_message, 'too_many_requests') !== false) {
+ throw new Exception("Dropbox API error: too_many_requests");
+ }
}
}
return $response;
@@ -287,6 +294,7 @@ private function start_search($query, $path, $limit) {
'query' => $query,
'options' => array(
'path' => $path,
+ 'filename_only' => true,
'max_results' => ($limit < 1) ? 1 : (($limit > 1000) ? 1000 : (int) $limit),
),
'api_v2' => true,
@@ -401,3 +409,4 @@ private function encodePath($path) {
return $this->normalisePath($path);
}
}
+// phpcs:enable
diff --git a/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Consumer/ConsumerAbstract.php b/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Consumer/ConsumerAbstract.php
index 47f1d3d5..ed0892ce 100644
--- a/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Consumer/ConsumerAbstract.php
+++ b/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Consumer/ConsumerAbstract.php
@@ -126,7 +126,8 @@ private function authorise()
header('Location: ' . $url);
exit;
} else {
- throw new Dropbox_Exception(sprintf(__('The %s authentication could not go ahead, because something else on your site is breaking it. Try disabling your other plugins and switching to a default theme. (Specifically, you are looking for the component that sends output (most likely PHP warnings/errors) before the page begins. Turning off any debugging settings may also help).', 'updraftplus'), 'Dropbox'));
+ /* translators: %s: Authentication service name (e.g., Dropbox) */
+ throw new Dropbox_Exception(sprintf(__('The %s authentication could not go ahead, because something else on your site is breaking it.', 'updraftplus'), 'Dropbox').' '.__('Try disabling your other plugins and switching to a default theme.', 'updraftplus').' ('.__('Specifically, you are looking for the component that sends output (most likely PHP warnings/errors) before the page begins.', 'updraftplus').' '.__('Turning off any debugging settings may also help.', 'updraftplus').')'); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- The escaping should be happening when the exception is printed
}
?>log('Dropbox reauthorisation needed; but we are running from cron, AJAX or the CLI, so this is not possible');
$this->storage->do_unset('access_token');
- throw new Dropbox_Exception(sprintf(__('You need to re-authenticate with %s, as your existing credentials are not working.', 'updraftplus'), 'Dropbox'));
+ /* translators: %s: Authentication service name (e.g., Dropbox) */
+ throw new Dropbox_Exception(sprintf(__('You need to re-authenticate with %s, as your existing credentials are not working.', 'updraftplus'), 'Dropbox')); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- The escaping should be happening when the exception is printed
#$updraftplus->log(sprintf(__('You need to re-authenticate with %s, as your existing credentials are not working.', 'updraftplus'), 'Dropbox'), 'error');
return false;
}
@@ -151,9 +153,9 @@ public function getAuthoriseUrl()
*/
global $updraftplus;
- if (!function_exists('crypt_random_string')) $updraftplus->ensure_phpseclib('Crypt_Random');
+ $updraftplus->ensure_phpseclib();
- $CSRF = base64_encode(crypt_random_string(16));
+ $CSRF = base64_encode(phpseclib_Crypt_Random::string(16));
$this->storage->set($CSRF,'CSRF');
// Prepare request parameters
/*
@@ -506,7 +508,7 @@ public function setSignatureMethod($method)
$this->sigMethod = $method;
break;
default:
- throw new Dropbox_Exception('Unsupported signature method ' . $method);
+ throw new Dropbox_Exception('Unsupported signature method ' . $method); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- The escaping should be happening when the exception is printed
}
}
diff --git a/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Consumer/Curl.php b/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Consumer/Curl.php
index e7d92eb5..b2c83440 100644
--- a/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Consumer/Curl.php
+++ b/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Consumer/Curl.php
@@ -1,5 +1,5 @@
@@ -9,7 +9,49 @@
*/
class Dropbox_Curl extends Dropbox_ConsumerAbstract
-{
+{
+ /**
+ * Dropbox consumer key
+ * @var String
+ */
+ protected $consumerKey;
+
+ /**
+ * Dropbox oauth2_id
+ * @var String
+ */
+ protected $oauth2_id;
+
+ /**
+ * Dropbox consumer secret
+ * @var String
+ */
+ protected $consumerSecret;
+
+ /**
+ * Dropbox storage object
+ * @var \Dropbox\OAuth\Consumer\StorageInterface|Dropbox_StorageInterface
+ */
+ protected $storage;
+
+ /**
+ * Not used anywhere but it is set
+ * @var Callable|Null
+ */
+ protected $callback;
+
+ /**
+ * Callback URL
+ * @var String|null
+ */
+ protected $callbackhome;
+
+ /**
+ * Dropbox storage instance id
+ * @var String
+ */
+ protected $instance_id;
+
/**
* Default cURL options
* @var array
@@ -194,10 +236,11 @@ public function fetch($method, $url, $call, array $additional = array(), $retry_
// Dropbox returns error messages inconsistently...
if (!empty($response['body']->error) && $response['body']->error instanceof stdClass) {
$array = array_values((array) $response['body']->error);
- //Dropbox API v2 only throws 409 errors if this error is a incorrect_offset then we need the entire error array not just the message. PHP Exception messages have to be a string so JSON encode the array.
- if (strpos($array[0] , 'incorrect_offset') !== false) {
+ // Dropbox API v2 only throws 409 errors if this error is a incorrect_offset then we need the entire error array not just the message. PHP Exception messages have to be a string so JSON encode the array.
+ $extract_message = (is_object($array[0]) && isset($array[0]->{'.tag'})) ? $array[0]->{'.tag'} : $array[0];
+ if (strpos($extract_message, 'incorrect_offset') !== false) {
$message = json_encode($array);
- } elseif (strpos($array[0] , 'lookup_failed') !== false ) {
+ } elseif (strpos($extract_message, 'lookup_failed') !== false ) {
// re-structure the array so it is correctly formatted for API
// Note: Dropbox v2 returns different errors at different stages hence this fix
$correctOffset = array(
@@ -208,13 +251,24 @@ public function fetch($method, $url, $call, array $additional = array(), $retry_
$message = json_encode($correctOffset);
} else {
- $message = $array[0];
+ $message = '';
+ $property = 'error';
+ $resp = $response['body'];
+ while (isset($resp->$property)) {
+ if (is_string($resp->$property)) $message .= $resp->$property.'/';
+ if (!is_object($resp->$property) || empty($resp->$property->{'.tag'})) break;
+ $property = $resp->$property->{'.tag'};
+ $message .= $property.'/';
+ $resp = $response['body']->error;
+ }
}
} elseif (!empty($response['body']->error)) {
$message = $response['body']->error;
} elseif (is_string($response['body'])) {
// 31 Mar 2017 - This case has been found to exist; though the docs imply that there's always an 'error' property and that what is returned in JSON, we found a case of this being returned just as a simple string, but detectable via an HTTP 400: Error in call to API function "files/upload_session/append_v2": HTTP header "Dropbox-API-Arg": cursor.offset: expected integer, got string
$message = $response['body'];
+ } elseif (!empty($response['body']->error_summary)) {
+ $message = $response['body']->error_summary;
} else {
$message = "HTTP bad response code: $code";
}
@@ -305,3 +359,4 @@ public function getlastResponse()
return $this->lastResponse;
}
}
+// phpcs:enable
diff --git a/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Consumer/WordPress.php b/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Consumer/WordPress.php
index 309b2918..266aa547 100644
--- a/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Consumer/WordPress.php
+++ b/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Consumer/WordPress.php
@@ -65,12 +65,12 @@ public function fetch($method, $url, $call, array $additional = array())
// Check if an error occurred and throw an Exception. This is part of the authentication process - don't modify.
if (!empty($body->error)) {
$message = $body->error . ' (Status Code: ' . wp_remote_retrieve_response_code($response) . ')';
- throw new Dropbox_Exception($message);
+ throw new Dropbox_Exception($message); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- The escaping should happen when the exception is caught and printed
}
if (is_wp_error($response)) {
$message = $response->get_error_message();
- throw new Dropbox_Exception($message);
+ throw new Dropbox_Exception($message); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- The escaping should happen when the exception is caught and printed
}
$results = array ( 'body' => $body, 'code' => wp_remote_retrieve_response_code($response), 'headers' => $response['headers'] );
diff --git a/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Storage/Encrypter.php b/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Storage/Encrypter.php
index da7ae412..1e5100f6 100644
--- a/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Storage/Encrypter.php
+++ b/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Storage/Encrypter.php
@@ -41,7 +41,7 @@ public function __construct($key)
# Short-cut so that the mbstring extension is not required
$this->key = $key;
} elseif (($length = mb_strlen($key, '8bit')) !== self::KEY_SIZE) {
- throw new Dropbox_Exception('Expecting a ' . self::KEY_SIZE . ' byte key, got ' . $length);
+ throw new Dropbox_Exception('Expecting a ' . self::KEY_SIZE . ' byte key, got ' . $length); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- The escaping should happen when the exception is caught and printed
} else {
// Set the encryption key
$this->key = $key;
@@ -58,7 +58,7 @@ public function encrypt($token)
// Encryption: we always use phpseclib for this
global $updraftplus;
- $ensure_phpseclib = $updraftplus->ensure_phpseclib('Crypt_AES');
+ $ensure_phpseclib = $updraftplus->ensure_phpseclib();
if (is_wp_error($ensure_phpseclib)) {
$updraftplus->log("Failed to load phpseclib classes (".$ensure_phpseclib->get_error_code()."): ".$ensure_phpseclib->get_error_message());
@@ -66,14 +66,12 @@ public function encrypt($token)
return false;
}
- $updraftplus->ensure_phpseclib('Crypt_Rijndael');
-
- if (!function_exists('crypt_random_string')) updraft_try_include_file('vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php', 'require_once');
+ $updraftplus->ensure_phpseclib();
- $iv = crypt_random_string(self::IV_SIZE);
+ $iv = phpseclib_Crypt_Random::string(self::IV_SIZE);
// Defaults to CBC mode
- $rijndael = new Crypt_Rijndael();
+ $rijndael = new phpseclib_Crypt_Rijndael();
$rijndael->setKey($this->key);
@@ -109,9 +107,9 @@ public function decrypt($cipherText)
if (!$decrypted) {
global $updraftplus;
- $updraftplus->ensure_phpseclib('Crypt_Rijndael');
+ $updraftplus->ensure_phpseclib();
- $rijndael = new Crypt_Rijndael();
+ $rijndael = new phpseclib_Crypt_Rijndael();
$rijndael->setKey($this->key);
$rijndael->setIV($iv);
$token = $rijndael->decrypt($cipherText);
diff --git a/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Storage/WordPress.php b/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Storage/WordPress.php
index 5ff6103a..07fbe482 100644
--- a/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Storage/WordPress.php
+++ b/wp-content/plugins/updraftplus/includes/Dropbox2/OAuth/Storage/WordPress.php
@@ -64,7 +64,7 @@ public function __construct(Dropbox_Encrypter $encrypter = null, $option_name_pr
public function get($type)
{
if ($type != 'request_token' && $type != 'access_token' && $type != 'appkey' && $type != 'CSRF' && $type != 'code') {
- throw new Dropbox_Exception("Expected a type of either 'request_token', 'access_token', 'CSRF' or 'code', got '$type'");
+ throw new Dropbox_Exception("Expected a type of either 'request_token', 'access_token', 'CSRF' or 'code', got '$type'"); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- The escaping should happen when the exception is caught and printed
} else {
if (false !== ($opts = $this->backup_module_object->get_options())) {
if ($type == 'request_token' || $type == 'access_token'){
@@ -93,7 +93,7 @@ public function get($type)
public function set($token, $type)
{
if ($type != 'request_token' && $type != 'access_token' && $type != 'upgraded' && $type != 'CSRF' && $type != 'code') {
- throw new Dropbox_Exception("Expected a type of either 'request_token', 'access_token', 'CSRF', 'upgraded' or 'code', got '$type'");
+ throw new Dropbox_Exception("Expected a type of either 'request_token', 'access_token', 'CSRF', 'upgraded' or 'code', got '$type'"); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- The escaping should happen when the exception is caught and printed
} else {
$opts = $this->backup_module_object->get_options();
@@ -125,7 +125,7 @@ public function set($token, $type)
public function do_unset($type)
{
if ($type != 'request_token' && $type != 'access_token' && $type != 'upgraded' && $type != 'CSRF' && $type != 'code') {
- throw new Dropbox_Exception("Expected a type of either 'request_token', 'access_token', 'CSRF', 'upgraded' or 'code', got '$type'");
+ throw new Dropbox_Exception("Expected a type of either 'request_token', 'access_token', 'CSRF', 'upgraded' or 'code', got '$type'"); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- The escaping should happen when the exception is caught and printed
} else {
$opts = $this->backup_module_object->get_options();
diff --git a/wp-content/plugins/updraftplus/includes/Google/Auth/ComputeEngine.php b/wp-content/plugins/updraftplus/includes/Google/Auth/ComputeEngine.php
index 8e80a7b8..3439d6a4 100644
--- a/wp-content/plugins/updraftplus/includes/Google/Auth/ComputeEngine.php
+++ b/wp-content/plugins/updraftplus/includes/Google/Auth/ComputeEngine.php
@@ -99,9 +99,9 @@ public function acquireAccessToken()
throw new Google_Auth_Exception(
sprintf(
"Error fetching service account access token, message: '%s'",
- $response->getResponseBody()
+ $response->getResponseBody() // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error messages should be escaped when caught and printed.
),
- $response->getResponseHttpCode()
+ $response->getResponseHttpCode() // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- HTTP code should be escaped when caught and printed.
);
}
}
diff --git a/wp-content/plugins/updraftplus/includes/Google/Auth/OAuth2.php b/wp-content/plugins/updraftplus/includes/Google/Auth/OAuth2.php
index 57997fa5..e5aaf032 100644
--- a/wp-content/plugins/updraftplus/includes/Google/Auth/OAuth2.php
+++ b/wp-content/plugins/updraftplus/includes/Google/Auth/OAuth2.php
@@ -15,6 +15,8 @@
* limitations under the License.
*/
+// phpcs:disable WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
+
if (!class_exists('UDP_Google_Client')) {
require_once dirname(__FILE__) . '/../autoload.php';
}
diff --git a/wp-content/plugins/updraftplus/includes/Google/Cache/Apc.php b/wp-content/plugins/updraftplus/includes/Google/Cache/Apc.php
index e508223a..90f99cea 100644
--- a/wp-content/plugins/updraftplus/includes/Google/Cache/Apc.php
+++ b/wp-content/plugins/updraftplus/includes/Google/Cache/Apc.php
@@ -40,7 +40,7 @@ public function __construct(UDP_Google_Client $client)
$error = "Apc functions not available";
$client->getLogger()->error($error);
- throw new Google_Cache_Exception($error);
+ throw new Google_Cache_Exception($error); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
$this->client = $client;
diff --git a/wp-content/plugins/updraftplus/includes/Google/Cache/File.php b/wp-content/plugins/updraftplus/includes/Google/Cache/File.php
index 9a6ee5b0..c2fb1ed9 100644
--- a/wp-content/plugins/updraftplus/includes/Google/Cache/File.php
+++ b/wp-content/plugins/updraftplus/includes/Google/Cache/File.php
@@ -151,7 +151,7 @@ private function getCacheDir($file, $forWrite)
'File cache creation failed',
array('dir' => $storageDir)
);
- throw new Google_Cache_Exception("Could not create storage directory: $storageDir");
+ throw new Google_Cache_Exception("Could not create storage directory: $storageDir"); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
}
return $storageDir;
diff --git a/wp-content/plugins/updraftplus/includes/Google/Cache/Memcache.php b/wp-content/plugins/updraftplus/includes/Google/Cache/Memcache.php
index d55c5974..30c9aa33 100644
--- a/wp-content/plugins/updraftplus/includes/Google/Cache/Memcache.php
+++ b/wp-content/plugins/updraftplus/includes/Google/Cache/Memcache.php
@@ -47,7 +47,7 @@ public function __construct(UDP_Google_Client $client)
$error = "Memcache functions not available";
$client->getLogger()->error($error);
- throw new Google_Cache_Exception($error);
+ throw new Google_Cache_Exception($error); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
$this->client = $client;
@@ -63,7 +63,7 @@ public function __construct(UDP_Google_Client $client)
$error = "You need to supply a valid memcache host and port";
$client->getLogger()->error($error);
- throw new Google_Cache_Exception($error);
+ throw new Google_Cache_Exception($error); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
}
}
@@ -178,7 +178,7 @@ private function connect()
$error = "Couldn't connect to memcache server";
$this->client->getLogger()->error($error);
- throw new Google_Cache_Exception($error);
+ throw new Google_Cache_Exception($error); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
}
}
diff --git a/wp-content/plugins/updraftplus/includes/Google/Http/MediaFileUpload.php b/wp-content/plugins/updraftplus/includes/Google/Http/MediaFileUpload.php
index c7d11e58..1f8c0bd9 100644
--- a/wp-content/plugins/updraftplus/includes/Google/Http/MediaFileUpload.php
+++ b/wp-content/plugins/updraftplus/includes/Google/Http/MediaFileUpload.php
@@ -301,6 +301,6 @@ private function getResumeUri()
$error = "Failed to start the resumable upload (HTTP {$message})";
$this->client->getLogger()->error($error);
- throw new Google_Exception($error);
+ throw new Google_Exception($error); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
}
diff --git a/wp-content/plugins/updraftplus/includes/Google/Http/REST.php b/wp-content/plugins/updraftplus/includes/Google/Http/REST.php
index f324d6d2..2a5bce9b 100644
--- a/wp-content/plugins/updraftplus/includes/Google/Http/REST.php
+++ b/wp-content/plugins/updraftplus/includes/Google/Http/REST.php
@@ -39,7 +39,7 @@ public static function execute(UDP_Google_Client $client, UDP_Google_Http_Reques
$runner = new UDP_Google_Task_Runner(
$client,
sprintf('%s %s', $req->getRequestMethod(), $req->getUrl()),
- array(get_class(), 'doExecute'),
+ array(__CLASS__, 'doExecute'),
array($client, $req)
);
@@ -107,7 +107,7 @@ public static function decodeHttpResponse($response, UDP_Google_Client $client =
'retry_map'
);
}
- throw new UDP_Google_Service_Exception($err, $code, null, $errors, $map);
+ throw new UDP_Google_Service_Exception($err, $code, null, $errors, $map); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
// Only attempt to decode the response, if the response code wasn't (204) 'no content'
@@ -123,7 +123,7 @@ public static function decodeHttpResponse($response, UDP_Google_Client $client =
if ($client) {
$client->getLogger()->error($error);
}
- throw new UDP_Google_Service_Exception($error);
+ throw new UDP_Google_Service_Exception($error); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
if ($response->getExpectedClass()) {
diff --git a/wp-content/plugins/updraftplus/includes/Google/IO/Curl.php b/wp-content/plugins/updraftplus/includes/Google/IO/Curl.php
index dff22f39..347fa750 100644
--- a/wp-content/plugins/updraftplus/includes/Google/IO/Curl.php
+++ b/wp-content/plugins/updraftplus/includes/Google/IO/Curl.php
@@ -37,7 +37,7 @@ public function __construct(UDP_Google_Client $client)
if (!extension_loaded('curl')) {
$error = 'The cURL IO handler requires the cURL extension to be enabled';
$client->getLogger()->critical($error);
- throw new UDP_Google_IO_Exception($error);
+ throw new UDP_Google_IO_Exception($error); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
parent::__construct($client);
@@ -114,7 +114,7 @@ public function executeRequest(UDP_Google_Http_Request $request)
$map = $this->client->getClassConfig('UDP_Google_IO_Exception', 'retry_map');
$this->client->getLogger()->error('cURL ' . $error);
- throw new UDP_Google_IO_Exception($error, $code, null, $map);
+ throw new UDP_Google_IO_Exception($error, $code, null, $map); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
$headerSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
diff --git a/wp-content/plugins/updraftplus/includes/Google/IO/Stream.php b/wp-content/plugins/updraftplus/includes/Google/IO/Stream.php
index 3d7b0d3f..87e1e016 100644
--- a/wp-content/plugins/updraftplus/includes/Google/IO/Stream.php
+++ b/wp-content/plugins/updraftplus/includes/Google/IO/Stream.php
@@ -48,7 +48,7 @@ public function __construct(UDP_Google_Client $client)
$error = 'The stream IO handler requires the allow_url_fopen runtime ' .
'configuration to be enabled';
$client->getLogger()->critical($error);
- throw new UDP_Google_IO_Exception($error);
+ throw new UDP_Google_IO_Exception($error); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
parent::__construct($client);
@@ -112,7 +112,10 @@ public function executeRequest(UDP_Google_Http_Request $request)
$requestSslContext['allow_self_signed'] = true;
}
if (!empty($this->options['cafile'])) $requestSslContext['cafile'] = $this->options['cafile'];
-
+if (!empty($this->options['proxy'])) {
+ $requestHttpContext['proxy'] = $this->options['proxy'];
+ $requestHttpContext['request_fulluri'] = true;
+}
$options = array(
"http" => array_merge(
self::$DEFAULT_HTTP_CONTEXT,
@@ -176,7 +179,7 @@ public function executeRequest(UDP_Google_Http_Request $request)
);
$this->client->getLogger()->error('Stream ' . $error);
- throw new UDP_Google_IO_Exception($error, $this->trappedErrorNumber);
+ throw new UDP_Google_IO_Exception($error, $this->trappedErrorNumber); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
$response_data = false;
@@ -199,7 +202,7 @@ public function executeRequest(UDP_Google_Http_Request $request)
);
$this->client->getLogger()->error('Stream ' . $error);
- throw new UDP_Google_IO_Exception($error, $respHttpCode);
+ throw new UDP_Google_IO_Exception($error, $respHttpCode); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
$responseHeaders = $this->getHttpResponseHeaders($http_response_header);
diff --git a/wp-content/plugins/updraftplus/includes/Google/Logger/Abstract.php b/wp-content/plugins/updraftplus/includes/Google/Logger/Abstract.php
index 4627c957..aa03d6b0 100644
--- a/wp-content/plugins/updraftplus/includes/Google/Logger/Abstract.php
+++ b/wp-content/plugins/updraftplus/includes/Google/Logger/Abstract.php
@@ -397,7 +397,7 @@ protected function normalizeLevel($level)
}
throw new Google_Logger_Exception(
- sprintf("Unknown LogLevel: '%s'", $level)
+ sprintf("Unknown LogLevel: '%s'", $level) // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
);
}
diff --git a/wp-content/plugins/updraftplus/includes/Google/Logger/File.php b/wp-content/plugins/updraftplus/includes/Google/Logger/File.php
index 61b46803..4586ba1d 100644
--- a/wp-content/plugins/updraftplus/includes/Google/Logger/File.php
+++ b/wp-content/plugins/updraftplus/includes/Google/Logger/File.php
@@ -116,9 +116,9 @@ private function open()
throw new Google_Logger_Exception(
sprintf(
"Logger Error: '%s'",
- $this->trappedErrorString
+ $this->trappedErrorString // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
),
- $this->trappedErrorNumber
+ $this->trappedErrorNumber // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
);
}
diff --git a/wp-content/plugins/updraftplus/includes/Google/Model.php b/wp-content/plugins/updraftplus/includes/Google/Model.php
index 87769420..b3db06ff 100644
--- a/wp-content/plugins/updraftplus/includes/Google/Model.php
+++ b/wp-content/plugins/updraftplus/includes/Google/Model.php
@@ -241,7 +241,7 @@ public function assertIsArray($obj, $method)
{
if ($obj && !is_array($obj)) {
throw new Google_Exception(
- "Incorrect parameter type passed to $method(). Expected an array."
+ "Incorrect parameter type passed to $method(). Expected an array." // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
);
}
}
diff --git a/wp-content/plugins/updraftplus/includes/Google/Service/CloudMonitoring.php b/wp-content/plugins/updraftplus/includes/Google/Service/CloudMonitoring.php
deleted file mode 100644
index 04dd1c93..00000000
--- a/wp-content/plugins/updraftplus/includes/Google/Service/CloudMonitoring.php
+++ /dev/null
@@ -1,1167 +0,0 @@
-
- * API for accessing Google Cloud and API monitoring data.
- *
- *
- * For more information about this service, see the API
- * Documentation
- *
- *
- * @author Google, Inc.
- */
-class Google_Service_CloudMonitoring extends UDP_Google_Service
-{
- /** View and write monitoring data for all of your Google and third-party Cloud and API projects. */
- const MONITORING =
- "https://www.googleapis.com/auth/monitoring";
-
- public $metricDescriptors;
- public $timeseries;
- public $timeseriesDescriptors;
-
-
- /**
- * Constructs the internal representation of the CloudMonitoring service.
- *
- * @param Google_Client $client
- */
- public function __construct(UDP_Google_Client $client)
- {
- parent::__construct($client);
- $this->servicePath = 'cloudmonitoring/v2beta2/projects/';
- $this->version = 'v2beta2';
- $this->serviceName = 'cloudmonitoring';
-
- $this->metricDescriptors = new Google_Service_CloudMonitoring_MetricDescriptors_Resource(
- $this,
- $this->serviceName,
- 'metricDescriptors',
- array(
- 'methods' => array(
- 'create' => array(
- 'path' => '{project}/metricDescriptors',
- 'httpMethod' => 'POST',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- ),
- ),'delete' => array(
- 'path' => '{project}/metricDescriptors/{metric}',
- 'httpMethod' => 'DELETE',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'metric' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- ),
- ),'list' => array(
- 'path' => '{project}/metricDescriptors',
- 'httpMethod' => 'GET',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'count' => array(
- 'location' => 'query',
- 'type' => 'integer',
- ),
- 'pageToken' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- 'query' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- ),
- ),
- )
- )
- );
- $this->timeseries = new Google_Service_CloudMonitoring_Timeseries_Resource(
- $this,
- $this->serviceName,
- 'timeseries',
- array(
- 'methods' => array(
- 'list' => array(
- 'path' => '{project}/timeseries/{metric}',
- 'httpMethod' => 'GET',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'metric' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'youngest' => array(
- 'location' => 'query',
- 'type' => 'string',
- 'required' => true,
- ),
- 'count' => array(
- 'location' => 'query',
- 'type' => 'integer',
- ),
- 'timespan' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- 'aggregator' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- 'labels' => array(
- 'location' => 'query',
- 'type' => 'string',
- 'repeated' => true,
- ),
- 'pageToken' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- 'window' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- 'oldest' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- ),
- ),'write' => array(
- 'path' => '{project}/timeseries:write',
- 'httpMethod' => 'POST',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- ),
- ),
- )
- )
- );
- $this->timeseriesDescriptors = new Google_Service_CloudMonitoring_TimeseriesDescriptors_Resource(
- $this,
- $this->serviceName,
- 'timeseriesDescriptors',
- array(
- 'methods' => array(
- 'list' => array(
- 'path' => '{project}/timeseriesDescriptors/{metric}',
- 'httpMethod' => 'GET',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'metric' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'youngest' => array(
- 'location' => 'query',
- 'type' => 'string',
- 'required' => true,
- ),
- 'count' => array(
- 'location' => 'query',
- 'type' => 'integer',
- ),
- 'timespan' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- 'aggregator' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- 'labels' => array(
- 'location' => 'query',
- 'type' => 'string',
- 'repeated' => true,
- ),
- 'pageToken' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- 'window' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- 'oldest' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- ),
- ),
- )
- )
- );
- }
-}
-
-
-/**
- * The "metricDescriptors" collection of methods.
- * Typical usage is:
- *
- * $cloudmonitoringService = new Google_Service_CloudMonitoring(...);
- * $metricDescriptors = $cloudmonitoringService->metricDescriptors;
- *
- */
-class Google_Service_CloudMonitoring_MetricDescriptors_Resource extends UDP_Google_Service_Resource
-{
-
- /**
- * Create a new metric. (metricDescriptors.create)
- *
- * @param string $project The project id. The value can be the numeric project
- * ID or string-based project name.
- * @param Google_MetricDescriptor $postBody
- * @param array $optParams Optional parameters.
- * @return Google_Service_CloudMonitoring_MetricDescriptor
- */
- public function create($project, Google_Service_CloudMonitoring_MetricDescriptor $postBody, $optParams = array())
- {
- $params = array('project' => $project, 'postBody' => $postBody);
- $params = array_merge($params, $optParams);
- return $this->call('create', array($params), "Google_Service_CloudMonitoring_MetricDescriptor");
- }
-
- /**
- * Delete an existing metric. (metricDescriptors.delete)
- *
- * @param string $project The project ID to which the metric belongs.
- * @param string $metric Name of the metric.
- * @param array $optParams Optional parameters.
- * @return Google_Service_CloudMonitoring_DeleteMetricDescriptorResponse
- */
- public function delete($project, $metric, $optParams = array())
- {
- $params = array('project' => $project, 'metric' => $metric);
- $params = array_merge($params, $optParams);
- return $this->call('delete', array($params), "Google_Service_CloudMonitoring_DeleteMetricDescriptorResponse");
- }
-
- /**
- * List metric descriptors that match the query. If the query is not set, then
- * all of the metric descriptors will be returned. Large responses will be
- * paginated, use the nextPageToken returned in the response to request
- * subsequent pages of results by setting the pageToken query parameter to the
- * value of the nextPageToken. (metricDescriptors.listMetricDescriptors)
- *
- * @param string $project The project id. The value can be the numeric project
- * ID or string-based project name.
- * @param array $optParams Optional parameters.
- *
- * @opt_param int count Maximum number of metric descriptors per page. Used for
- * pagination. If not specified, count = 100.
- * @opt_param string pageToken The pagination token, which is used to page
- * through large result sets. Set this value to the value of the nextPageToken
- * to retrieve the next page of results.
- * @opt_param string query The query used to search against existing metrics.
- * Separate keywords with a space; the service joins all keywords with AND,
- * meaning that all keywords must match for a metric to be returned. If this
- * field is omitted, all metrics are returned. If an empty string is passed with
- * this field, no metrics are returned.
- * @return Google_Service_CloudMonitoring_ListMetricDescriptorsResponse
- */
- public function listMetricDescriptors($project, $optParams = array())
- {
- $params = array('project' => $project);
- $params = array_merge($params, $optParams);
- return $this->call('list', array($params), "Google_Service_CloudMonitoring_ListMetricDescriptorsResponse");
- }
-}
-
-/**
- * The "timeseries" collection of methods.
- * Typical usage is:
- *
- * $cloudmonitoringService = new Google_Service_CloudMonitoring(...);
- * $timeseries = $cloudmonitoringService->timeseries;
- *
- */
-class Google_Service_CloudMonitoring_Timeseries_Resource extends UDP_Google_Service_Resource
-{
-
- /**
- * List the data points of the time series that match the metric and labels
- * values and that have data points in the interval. Large responses are
- * paginated; use the nextPageToken returned in the response to request
- * subsequent pages of results by setting the pageToken query parameter to the
- * value of the nextPageToken. (timeseries.listTimeseries)
- *
- * @param string $project The project ID to which this time series belongs. The
- * value can be the numeric project ID or string-based project name.
- * @param string $metric Metric names are protocol-free URLs as listed in the
- * Supported Metrics page. For example,
- * compute.googleapis.com/instance/disk/read_ops_count.
- * @param string $youngest End of the time interval (inclusive), which is
- * expressed as an RFC 3339 timestamp.
- * @param array $optParams Optional parameters.
- *
- * @opt_param int count Maximum number of data points per page, which is used
- * for pagination of results.
- * @opt_param string timespan Length of the time interval to query, which is an
- * alternative way to declare the interval: (youngest - timespan, youngest]. The
- * timespan and oldest parameters should not be used together. Units: - s:
- * second - m: minute - h: hour - d: day - w: week Examples: 2s, 3m, 4w.
- * Only one unit is allowed, for example: 2w3d is not allowed; you should use
- * 17d instead.
- *
- * If neither oldest nor timespan is specified, the default time interval will
- * be (youngest - 4 hours, youngest].
- * @opt_param string aggregator The aggregation function that will reduce the
- * data points in each window to a single point. This parameter is only valid
- * for non-cumulative metrics with a value type of INT64 or DOUBLE.
- * @opt_param string labels A collection of labels for the matching time series,
- * which are represented as: - key==value: key equals the value - key=~value:
- * key regex matches the value - key!=value: key does not equal the value -
- * key!~value: key regex does not match the value For example, to list all of
- * the time series descriptors for the region us-central1, you could specify:
- * label=cloud.googleapis.com%2Flocation=~us-central1.*
- * @opt_param string pageToken The pagination token, which is used to page
- * through large result sets. Set this value to the value of the nextPageToken
- * to retrieve the next page of results.
- * @opt_param string window The sampling window. At most one data point will be
- * returned for each window in the requested time interval. This parameter is
- * only valid for non-cumulative metric types. Units: - m: minute - h: hour -
- * d: day - w: week Examples: 3m, 4w. Only one unit is allowed, for example:
- * 2w3d is not allowed; you should use 17d instead.
- * @opt_param string oldest Start of the time interval (exclusive), which is
- * expressed as an RFC 3339 timestamp. If neither oldest nor timespan is
- * specified, the default time interval will be (youngest - 4 hours, youngest]
- * @return Google_Service_CloudMonitoring_ListTimeseriesResponse
- */
- public function listTimeseries($project, $metric, $youngest, $optParams = array())
- {
- $params = array('project' => $project, 'metric' => $metric, 'youngest' => $youngest);
- $params = array_merge($params, $optParams);
- return $this->call('list', array($params), "Google_Service_CloudMonitoring_ListTimeseriesResponse");
- }
-
- /**
- * Put data points to one or more time series for one or more metrics. If a time
- * series does not exist, a new time series will be created. It is not allowed
- * to write a time series point that is older than the existing youngest point
- * of that time series. Points that are older than the existing youngest point
- * of that time series will be discarded silently. Therefore, users should make
- * sure that points of a time series are written sequentially in the order of
- * their end time. (timeseries.write)
- *
- * @param string $project The project ID. The value can be the numeric project
- * ID or string-based project name.
- * @param Google_WriteTimeseriesRequest $postBody
- * @param array $optParams Optional parameters.
- * @return Google_Service_CloudMonitoring_WriteTimeseriesResponse
- */
- public function write($project, Google_Service_CloudMonitoring_WriteTimeseriesRequest $postBody, $optParams = array())
- {
- $params = array('project' => $project, 'postBody' => $postBody);
- $params = array_merge($params, $optParams);
- return $this->call('write', array($params), "Google_Service_CloudMonitoring_WriteTimeseriesResponse");
- }
-}
-
-/**
- * The "timeseriesDescriptors" collection of methods.
- * Typical usage is:
- *
- * $cloudmonitoringService = new Google_Service_CloudMonitoring(...);
- * $timeseriesDescriptors = $cloudmonitoringService->timeseriesDescriptors;
- *
- */
-class Google_Service_CloudMonitoring_TimeseriesDescriptors_Resource extends UDP_Google_Service_Resource
-{
-
- /**
- * List the descriptors of the time series that match the metric and labels
- * values and that have data points in the interval. Large responses are
- * paginated; use the nextPageToken returned in the response to request
- * subsequent pages of results by setting the pageToken query parameter to the
- * value of the nextPageToken. (timeseriesDescriptors.listTimeseriesDescriptors)
- *
- * @param string $project The project ID to which this time series belongs. The
- * value can be the numeric project ID or string-based project name.
- * @param string $metric Metric names are protocol-free URLs as listed in the
- * Supported Metrics page. For example,
- * compute.googleapis.com/instance/disk/read_ops_count.
- * @param string $youngest End of the time interval (inclusive), which is
- * expressed as an RFC 3339 timestamp.
- * @param array $optParams Optional parameters.
- *
- * @opt_param int count Maximum number of time series descriptors per page. Used
- * for pagination. If not specified, count = 100.
- * @opt_param string timespan Length of the time interval to query, which is an
- * alternative way to declare the interval: (youngest - timespan, youngest]. The
- * timespan and oldest parameters should not be used together. Units: - s:
- * second - m: minute - h: hour - d: day - w: week Examples: 2s, 3m, 4w.
- * Only one unit is allowed, for example: 2w3d is not allowed; you should use
- * 17d instead.
- *
- * If neither oldest nor timespan is specified, the default time interval will
- * be (youngest - 4 hours, youngest].
- * @opt_param string aggregator The aggregation function that will reduce the
- * data points in each window to a single point. This parameter is only valid
- * for non-cumulative metrics with a value type of INT64 or DOUBLE.
- * @opt_param string labels A collection of labels for the matching time series,
- * which are represented as: - key==value: key equals the value - key=~value:
- * key regex matches the value - key!=value: key does not equal the value -
- * key!~value: key regex does not match the value For example, to list all of
- * the time series descriptors for the region us-central1, you could specify:
- * label=cloud.googleapis.com%2Flocation=~us-central1.*
- * @opt_param string pageToken The pagination token, which is used to page
- * through large result sets. Set this value to the value of the nextPageToken
- * to retrieve the next page of results.
- * @opt_param string window The sampling window. At most one data point will be
- * returned for each window in the requested time interval. This parameter is
- * only valid for non-cumulative metric types. Units: - m: minute - h: hour -
- * d: day - w: week Examples: 3m, 4w. Only one unit is allowed, for example:
- * 2w3d is not allowed; you should use 17d instead.
- * @opt_param string oldest Start of the time interval (exclusive), which is
- * expressed as an RFC 3339 timestamp. If neither oldest nor timespan is
- * specified, the default time interval will be (youngest - 4 hours, youngest]
- * @return Google_Service_CloudMonitoring_ListTimeseriesDescriptorsResponse
- */
- public function listTimeseriesDescriptors($project, $metric, $youngest, $optParams = array())
- {
- $params = array('project' => $project, 'metric' => $metric, 'youngest' => $youngest);
- $params = array_merge($params, $optParams);
- return $this->call('list', array($params), "Google_Service_CloudMonitoring_ListTimeseriesDescriptorsResponse");
- }
-}
-
-
-
-
-class Google_Service_CloudMonitoring_DeleteMetricDescriptorResponse extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $kind;
-
-
- public function setKind($kind)
- {
- $this->kind = $kind;
- }
- public function getKind()
- {
- return $this->kind;
- }
-}
-
-class Google_Service_CloudMonitoring_ListMetricDescriptorsRequest extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $kind;
-
-
- public function setKind($kind)
- {
- $this->kind = $kind;
- }
- public function getKind()
- {
- return $this->kind;
- }
-}
-
-class Google_Service_CloudMonitoring_ListMetricDescriptorsResponse extends Google_Collection
-{
- protected $collection_key = 'metrics';
- protected $internal_gapi_mappings = array(
- );
- public $kind;
- protected $metricsType = 'Google_Service_CloudMonitoring_MetricDescriptor';
- protected $metricsDataType = 'array';
- public $nextPageToken;
-
-
- public function setKind($kind)
- {
- $this->kind = $kind;
- }
- public function getKind()
- {
- return $this->kind;
- }
- public function setMetrics($metrics)
- {
- $this->metrics = $metrics;
- }
- public function getMetrics()
- {
- return $this->metrics;
- }
- public function setNextPageToken($nextPageToken)
- {
- $this->nextPageToken = $nextPageToken;
- }
- public function getNextPageToken()
- {
- return $this->nextPageToken;
- }
-}
-
-class Google_Service_CloudMonitoring_ListTimeseriesDescriptorsRequest extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $kind;
-
-
- public function setKind($kind)
- {
- $this->kind = $kind;
- }
- public function getKind()
- {
- return $this->kind;
- }
-}
-
-class Google_Service_CloudMonitoring_ListTimeseriesDescriptorsResponse extends Google_Collection
-{
- protected $collection_key = 'timeseries';
- protected $internal_gapi_mappings = array(
- );
- public $kind;
- public $nextPageToken;
- public $oldest;
- protected $timeseriesType = 'Google_Service_CloudMonitoring_TimeseriesDescriptor';
- protected $timeseriesDataType = 'array';
- public $youngest;
-
-
- public function setKind($kind)
- {
- $this->kind = $kind;
- }
- public function getKind()
- {
- return $this->kind;
- }
- public function setNextPageToken($nextPageToken)
- {
- $this->nextPageToken = $nextPageToken;
- }
- public function getNextPageToken()
- {
- return $this->nextPageToken;
- }
- public function setOldest($oldest)
- {
- $this->oldest = $oldest;
- }
- public function getOldest()
- {
- return $this->oldest;
- }
- public function setTimeseries($timeseries)
- {
- $this->timeseries = $timeseries;
- }
- public function getTimeseries()
- {
- return $this->timeseries;
- }
- public function setYoungest($youngest)
- {
- $this->youngest = $youngest;
- }
- public function getYoungest()
- {
- return $this->youngest;
- }
-}
-
-class Google_Service_CloudMonitoring_ListTimeseriesRequest extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $kind;
-
-
- public function setKind($kind)
- {
- $this->kind = $kind;
- }
- public function getKind()
- {
- return $this->kind;
- }
-}
-
-class Google_Service_CloudMonitoring_ListTimeseriesResponse extends Google_Collection
-{
- protected $collection_key = 'timeseries';
- protected $internal_gapi_mappings = array(
- );
- public $kind;
- public $nextPageToken;
- public $oldest;
- protected $timeseriesType = 'Google_Service_CloudMonitoring_Timeseries';
- protected $timeseriesDataType = 'array';
- public $youngest;
-
-
- public function setKind($kind)
- {
- $this->kind = $kind;
- }
- public function getKind()
- {
- return $this->kind;
- }
- public function setNextPageToken($nextPageToken)
- {
- $this->nextPageToken = $nextPageToken;
- }
- public function getNextPageToken()
- {
- return $this->nextPageToken;
- }
- public function setOldest($oldest)
- {
- $this->oldest = $oldest;
- }
- public function getOldest()
- {
- return $this->oldest;
- }
- public function setTimeseries($timeseries)
- {
- $this->timeseries = $timeseries;
- }
- public function getTimeseries()
- {
- return $this->timeseries;
- }
- public function setYoungest($youngest)
- {
- $this->youngest = $youngest;
- }
- public function getYoungest()
- {
- return $this->youngest;
- }
-}
-
-class Google_Service_CloudMonitoring_MetricDescriptor extends Google_Collection
-{
- protected $collection_key = 'labels';
- protected $internal_gapi_mappings = array(
- );
- public $description;
- protected $labelsType = 'Google_Service_CloudMonitoring_MetricDescriptorLabelDescriptor';
- protected $labelsDataType = 'array';
- public $name;
- public $project;
- protected $typeDescriptorType = 'Google_Service_CloudMonitoring_MetricDescriptorTypeDescriptor';
- protected $typeDescriptorDataType = '';
-
-
- public function setDescription($description)
- {
- $this->description = $description;
- }
- public function getDescription()
- {
- return $this->description;
- }
- public function setLabels($labels)
- {
- $this->labels = $labels;
- }
- public function getLabels()
- {
- return $this->labels;
- }
- public function setName($name)
- {
- $this->name = $name;
- }
- public function getName()
- {
- return $this->name;
- }
- public function setProject($project)
- {
- $this->project = $project;
- }
- public function getProject()
- {
- return $this->project;
- }
- public function setTypeDescriptor(Google_Service_CloudMonitoring_MetricDescriptorTypeDescriptor $typeDescriptor)
- {
- $this->typeDescriptor = $typeDescriptor;
- }
- public function getTypeDescriptor()
- {
- return $this->typeDescriptor;
- }
-}
-
-class Google_Service_CloudMonitoring_MetricDescriptorLabelDescriptor extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $description;
- public $key;
-
-
- public function setDescription($description)
- {
- $this->description = $description;
- }
- public function getDescription()
- {
- return $this->description;
- }
- public function setKey($key)
- {
- $this->key = $key;
- }
- public function getKey()
- {
- return $this->key;
- }
-}
-
-class Google_Service_CloudMonitoring_MetricDescriptorTypeDescriptor extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $metricType;
- public $valueType;
-
-
- public function setMetricType($metricType)
- {
- $this->metricType = $metricType;
- }
- public function getMetricType()
- {
- return $this->metricType;
- }
- public function setValueType($valueType)
- {
- $this->valueType = $valueType;
- }
- public function getValueType()
- {
- return $this->valueType;
- }
-}
-
-class Google_Service_CloudMonitoring_Point extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $boolValue;
- protected $distributionValueType = 'Google_Service_CloudMonitoring_PointDistribution';
- protected $distributionValueDataType = '';
- public $doubleValue;
- public $end;
- public $int64Value;
- public $start;
- public $stringValue;
-
-
- public function setBoolValue($boolValue)
- {
- $this->boolValue = $boolValue;
- }
- public function getBoolValue()
- {
- return $this->boolValue;
- }
- public function setDistributionValue(Google_Service_CloudMonitoring_PointDistribution $distributionValue)
- {
- $this->distributionValue = $distributionValue;
- }
- public function getDistributionValue()
- {
- return $this->distributionValue;
- }
- public function setDoubleValue($doubleValue)
- {
- $this->doubleValue = $doubleValue;
- }
- public function getDoubleValue()
- {
- return $this->doubleValue;
- }
- public function setEnd($end)
- {
- $this->end = $end;
- }
- public function getEnd()
- {
- return $this->end;
- }
- public function setInt64Value($int64Value)
- {
- $this->int64Value = $int64Value;
- }
- public function getInt64Value()
- {
- return $this->int64Value;
- }
- public function setStart($start)
- {
- $this->start = $start;
- }
- public function getStart()
- {
- return $this->start;
- }
- public function setStringValue($stringValue)
- {
- $this->stringValue = $stringValue;
- }
- public function getStringValue()
- {
- return $this->stringValue;
- }
-}
-
-class Google_Service_CloudMonitoring_PointDistribution extends Google_Collection
-{
- protected $collection_key = 'buckets';
- protected $internal_gapi_mappings = array(
- );
- protected $bucketsType = 'Google_Service_CloudMonitoring_PointDistributionBucket';
- protected $bucketsDataType = 'array';
- protected $overflowBucketType = 'Google_Service_CloudMonitoring_PointDistributionOverflowBucket';
- protected $overflowBucketDataType = '';
- protected $underflowBucketType = 'Google_Service_CloudMonitoring_PointDistributionUnderflowBucket';
- protected $underflowBucketDataType = '';
-
-
- public function setBuckets($buckets)
- {
- $this->buckets = $buckets;
- }
- public function getBuckets()
- {
- return $this->buckets;
- }
- public function setOverflowBucket(Google_Service_CloudMonitoring_PointDistributionOverflowBucket $overflowBucket)
- {
- $this->overflowBucket = $overflowBucket;
- }
- public function getOverflowBucket()
- {
- return $this->overflowBucket;
- }
- public function setUnderflowBucket(Google_Service_CloudMonitoring_PointDistributionUnderflowBucket $underflowBucket)
- {
- $this->underflowBucket = $underflowBucket;
- }
- public function getUnderflowBucket()
- {
- return $this->underflowBucket;
- }
-}
-
-class Google_Service_CloudMonitoring_PointDistributionBucket extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $count;
- public $lowerBound;
- public $upperBound;
-
-
- public function setCount($count)
- {
- $this->count = $count;
- }
- public function getCount()
- {
- return $this->count;
- }
- public function setLowerBound($lowerBound)
- {
- $this->lowerBound = $lowerBound;
- }
- public function getLowerBound()
- {
- return $this->lowerBound;
- }
- public function setUpperBound($upperBound)
- {
- $this->upperBound = $upperBound;
- }
- public function getUpperBound()
- {
- return $this->upperBound;
- }
-}
-
-class Google_Service_CloudMonitoring_PointDistributionOverflowBucket extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $count;
- public $lowerBound;
-
-
- public function setCount($count)
- {
- $this->count = $count;
- }
- public function getCount()
- {
- return $this->count;
- }
- public function setLowerBound($lowerBound)
- {
- $this->lowerBound = $lowerBound;
- }
- public function getLowerBound()
- {
- return $this->lowerBound;
- }
-}
-
-class Google_Service_CloudMonitoring_PointDistributionUnderflowBucket extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $count;
- public $upperBound;
-
-
- public function setCount($count)
- {
- $this->count = $count;
- }
- public function getCount()
- {
- return $this->count;
- }
- public function setUpperBound($upperBound)
- {
- $this->upperBound = $upperBound;
- }
- public function getUpperBound()
- {
- return $this->upperBound;
- }
-}
-
-class Google_Service_CloudMonitoring_Timeseries extends Google_Collection
-{
- protected $collection_key = 'points';
- protected $internal_gapi_mappings = array(
- );
- protected $pointsType = 'Google_Service_CloudMonitoring_Point';
- protected $pointsDataType = 'array';
- protected $timeseriesDescType = 'Google_Service_CloudMonitoring_TimeseriesDescriptor';
- protected $timeseriesDescDataType = '';
-
-
- public function setPoints($points)
- {
- $this->points = $points;
- }
- public function getPoints()
- {
- return $this->points;
- }
- public function setTimeseriesDesc(Google_Service_CloudMonitoring_TimeseriesDescriptor $timeseriesDesc)
- {
- $this->timeseriesDesc = $timeseriesDesc;
- }
- public function getTimeseriesDesc()
- {
- return $this->timeseriesDesc;
- }
-}
-
-class Google_Service_CloudMonitoring_TimeseriesDescriptor extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $labels;
- public $metric;
- public $project;
-
-
- public function setLabels($labels)
- {
- $this->labels = $labels;
- }
- public function getLabels()
- {
- return $this->labels;
- }
- public function setMetric($metric)
- {
- $this->metric = $metric;
- }
- public function getMetric()
- {
- return $this->metric;
- }
- public function setProject($project)
- {
- $this->project = $project;
- }
- public function getProject()
- {
- return $this->project;
- }
-}
-
-class Google_Service_CloudMonitoring_TimeseriesDescriptorLabel extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $key;
- public $value;
-
-
- public function setKey($key)
- {
- $this->key = $key;
- }
- public function getKey()
- {
- return $this->key;
- }
- public function setValue($value)
- {
- $this->value = $value;
- }
- public function getValue()
- {
- return $this->value;
- }
-}
-
-class Google_Service_CloudMonitoring_TimeseriesDescriptorLabels extends Google_Model
-{
-}
-
-class Google_Service_CloudMonitoring_TimeseriesPoint extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- protected $pointType = 'Google_Service_CloudMonitoring_Point';
- protected $pointDataType = '';
- protected $timeseriesDescType = 'Google_Service_CloudMonitoring_TimeseriesDescriptor';
- protected $timeseriesDescDataType = '';
-
-
- public function setPoint(Google_Service_CloudMonitoring_Point $point)
- {
- $this->point = $point;
- }
- public function getPoint()
- {
- return $this->point;
- }
- public function setTimeseriesDesc(Google_Service_CloudMonitoring_TimeseriesDescriptor $timeseriesDesc)
- {
- $this->timeseriesDesc = $timeseriesDesc;
- }
- public function getTimeseriesDesc()
- {
- return $this->timeseriesDesc;
- }
-}
-
-class Google_Service_CloudMonitoring_WriteTimeseriesRequest extends Google_Collection
-{
- protected $collection_key = 'timeseries';
- protected $internal_gapi_mappings = array(
- );
- public $commonLabels;
- protected $timeseriesType = 'Google_Service_CloudMonitoring_TimeseriesPoint';
- protected $timeseriesDataType = 'array';
-
-
- public function setCommonLabels($commonLabels)
- {
- $this->commonLabels = $commonLabels;
- }
- public function getCommonLabels()
- {
- return $this->commonLabels;
- }
- public function setTimeseries($timeseries)
- {
- $this->timeseries = $timeseries;
- }
- public function getTimeseries()
- {
- return $this->timeseries;
- }
-}
-
-class Google_Service_CloudMonitoring_WriteTimeseriesRequestCommonLabels extends Google_Model
-{
-}
-
-class Google_Service_CloudMonitoring_WriteTimeseriesResponse extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $kind;
-
-
- public function setKind($kind)
- {
- $this->kind = $kind;
- }
- public function getKind()
- {
- return $this->kind;
- }
-}
diff --git a/wp-content/plugins/updraftplus/includes/Google/Service/Cloudsearch.php b/wp-content/plugins/updraftplus/includes/Google/Service/Cloudsearch.php
deleted file mode 100644
index cadbc988..00000000
--- a/wp-content/plugins/updraftplus/includes/Google/Service/Cloudsearch.php
+++ /dev/null
@@ -1,57 +0,0 @@
-
- * The Google Cloud Search API defines an application interface to index
- * documents that contain structured data and to search those indexes. It
- * supports full text search.
- *
- *
- * For more information about this service, see the API
- * Documentation
- *
- *
- * @author Google, Inc.
- */
-class Google_Service_Cloudsearch extends UDP_Google_Service
-{
-
-
-
-
-
- /**
- * Constructs the internal representation of the Cloudsearch service.
- *
- * @param Google_Client $client
- */
- public function __construct(UDP_Google_Client $client)
- {
- parent::__construct($client);
- $this->servicePath = '';
- $this->version = 'v1';
- $this->serviceName = 'cloudsearch';
-
- }
-}
-
-
-
-
diff --git a/wp-content/plugins/updraftplus/includes/Google/Service/Deploymentmanager.php b/wp-content/plugins/updraftplus/includes/Google/Service/Deploymentmanager.php
deleted file mode 100644
index 1f2ac3ff..00000000
--- a/wp-content/plugins/updraftplus/includes/Google/Service/Deploymentmanager.php
+++ /dev/null
@@ -1,1194 +0,0 @@
-
- * The Deployment Manager API allows users to declaratively configure, deploy
- * and run complex solutions on the Google Cloud Platform.
- *
- *
- * For more information about this service, see the API
- * Documentation
- *
- *
- * @author Google, Inc.
- */
-class Google_Service_Deploymentmanager extends UDP_Google_Service
-{
- /** View and manage your data across Google Cloud Platform services. */
- const CLOUD_PLATFORM =
- "https://www.googleapis.com/auth/cloud-platform";
- /** View and manage your Google Cloud Platform management resources and deployment status information. */
- const NDEV_CLOUDMAN =
- "https://www.googleapis.com/auth/ndev.cloudman";
- /** View your Google Cloud Platform management resources and deployment status information. */
- const NDEV_CLOUDMAN_READONLY =
- "https://www.googleapis.com/auth/ndev.cloudman.readonly";
-
- public $deployments;
- public $manifests;
- public $operations;
- public $resources;
- public $types;
-
-
- /**
- * Constructs the internal representation of the Deploymentmanager service.
- *
- * @param Google_Client $client
- */
- public function __construct(UDP_Google_Client $client)
- {
- parent::__construct($client);
- $this->servicePath = 'deploymentmanager/v2beta1/projects/';
- $this->version = 'v2beta1';
- $this->serviceName = 'deploymentmanager';
-
- $this->deployments = new Google_Service_Deploymentmanager_Deployments_Resource(
- $this,
- $this->serviceName,
- 'deployments',
- array(
- 'methods' => array(
- 'delete' => array(
- 'path' => '{project}/global/deployments/{deployment}',
- 'httpMethod' => 'DELETE',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'deployment' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- ),
- ),'get' => array(
- 'path' => '{project}/global/deployments/{deployment}',
- 'httpMethod' => 'GET',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'deployment' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- ),
- ),'insert' => array(
- 'path' => '{project}/global/deployments',
- 'httpMethod' => 'POST',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- ),
- ),'list' => array(
- 'path' => '{project}/global/deployments',
- 'httpMethod' => 'GET',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'pageToken' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- 'maxResults' => array(
- 'location' => 'query',
- 'type' => 'integer',
- ),
- ),
- ),
- )
- )
- );
- $this->manifests = new Google_Service_Deploymentmanager_Manifests_Resource(
- $this,
- $this->serviceName,
- 'manifests',
- array(
- 'methods' => array(
- 'get' => array(
- 'path' => '{project}/global/deployments/{deployment}/manifests/{manifest}',
- 'httpMethod' => 'GET',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'deployment' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'manifest' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- ),
- ),'list' => array(
- 'path' => '{project}/global/deployments/{deployment}/manifests',
- 'httpMethod' => 'GET',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'deployment' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'pageToken' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- 'maxResults' => array(
- 'location' => 'query',
- 'type' => 'integer',
- ),
- ),
- ),
- )
- )
- );
- $this->operations = new Google_Service_Deploymentmanager_Operations_Resource(
- $this,
- $this->serviceName,
- 'operations',
- array(
- 'methods' => array(
- 'get' => array(
- 'path' => '{project}/global/operations/{operation}',
- 'httpMethod' => 'GET',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'operation' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- ),
- ),'list' => array(
- 'path' => '{project}/global/operations',
- 'httpMethod' => 'GET',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'pageToken' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- 'maxResults' => array(
- 'location' => 'query',
- 'type' => 'integer',
- ),
- ),
- ),
- )
- )
- );
- $this->resources = new Google_Service_Deploymentmanager_Resources_Resource(
- $this,
- $this->serviceName,
- 'resources',
- array(
- 'methods' => array(
- 'get' => array(
- 'path' => '{project}/global/deployments/{deployment}/resources/{resource}',
- 'httpMethod' => 'GET',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'deployment' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'resource' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- ),
- ),'list' => array(
- 'path' => '{project}/global/deployments/{deployment}/resources',
- 'httpMethod' => 'GET',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'deployment' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'pageToken' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- 'maxResults' => array(
- 'location' => 'query',
- 'type' => 'integer',
- ),
- ),
- ),
- )
- )
- );
- $this->types = new Google_Service_Deploymentmanager_Types_Resource(
- $this,
- $this->serviceName,
- 'types',
- array(
- 'methods' => array(
- 'list' => array(
- 'path' => '{project}/global/types',
- 'httpMethod' => 'GET',
- 'parameters' => array(
- 'project' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'pageToken' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- 'maxResults' => array(
- 'location' => 'query',
- 'type' => 'integer',
- ),
- ),
- ),
- )
- )
- );
- }
-}
-
-
-/**
- * The "deployments" collection of methods.
- * Typical usage is:
- *
- * $deploymentmanagerService = new Google_Service_Deploymentmanager(...);
- * $deployments = $deploymentmanagerService->deployments;
- *
- */
-class Google_Service_Deploymentmanager_Deployments_Resource extends UDP_Google_Service_Resource
-{
-
- /**
- * ! Deletes a deployment and all of the resources in the deployment.
- * (deployments.delete)
- *
- * @param string $project ! The project ID for this request.
- * @param string $deployment ! The name of the deployment for this request.
- * @param array $optParams Optional parameters.
- * @return Google_Service_Deploymentmanager_Operation
- */
- public function delete($project, $deployment, $optParams = array())
- {
- $params = array('project' => $project, 'deployment' => $deployment);
- $params = array_merge($params, $optParams);
- return $this->call('delete', array($params), "Google_Service_Deploymentmanager_Operation");
- }
-
- /**
- * ! Gets information about a specific deployment. (deployments.get)
- *
- * @param string $project ! The project ID for this request.
- * @param string $deployment ! The name of the deployment for this request.
- * @param array $optParams Optional parameters.
- * @return Google_Service_Deploymentmanager_Deployment
- */
- public function get($project, $deployment, $optParams = array())
- {
- $params = array('project' => $project, 'deployment' => $deployment);
- $params = array_merge($params, $optParams);
- return $this->call('get', array($params), "Google_Service_Deploymentmanager_Deployment");
- }
-
- /**
- * ! Creates a deployment and all of the resources described by the ! deployment
- * manifest. (deployments.insert)
- *
- * @param string $project ! The project ID for this request.
- * @param Google_Deployment $postBody
- * @param array $optParams Optional parameters.
- * @return Google_Service_Deploymentmanager_Operation
- */
- public function insert($project, Google_Service_Deploymentmanager_Deployment $postBody, $optParams = array())
- {
- $params = array('project' => $project, 'postBody' => $postBody);
- $params = array_merge($params, $optParams);
- return $this->call('insert', array($params), "Google_Service_Deploymentmanager_Operation");
- }
-
- /**
- * ! Lists all deployments for a given project. (deployments.listDeployments)
- *
- * @param string $project ! The project ID for this request.
- * @param array $optParams Optional parameters.
- *
- * @opt_param string pageToken ! Specifies a nextPageToken returned by a
- * previous list request. This ! token can be used to request the next page of
- * results from a previous ! list request.
- * @opt_param int maxResults ! Maximum count of results to be returned. !
- * Acceptable values are 0 to 100, inclusive. (Default: 50)
- * @return Google_Service_Deploymentmanager_DeploymentsListResponse
- */
- public function listDeployments($project, $optParams = array())
- {
- $params = array('project' => $project);
- $params = array_merge($params, $optParams);
- return $this->call('list', array($params), "Google_Service_Deploymentmanager_DeploymentsListResponse");
- }
-}
-
-/**
- * The "manifests" collection of methods.
- * Typical usage is:
- *
- * $deploymentmanagerService = new Google_Service_Deploymentmanager(...);
- * $manifests = $deploymentmanagerService->manifests;
- *
- */
-class Google_Service_Deploymentmanager_Manifests_Resource extends UDP_Google_Service_Resource
-{
-
- /**
- * ! Gets information about a specific manifest. (manifests.get)
- *
- * @param string $project ! The project ID for this request.
- * @param string $deployment ! The name of the deployment for this request.
- * @param string $manifest ! The name of the manifest for this request.
- * @param array $optParams Optional parameters.
- * @return Google_Service_Deploymentmanager_Manifest
- */
- public function get($project, $deployment, $manifest, $optParams = array())
- {
- $params = array('project' => $project, 'deployment' => $deployment, 'manifest' => $manifest);
- $params = array_merge($params, $optParams);
- return $this->call('get', array($params), "Google_Service_Deploymentmanager_Manifest");
- }
-
- /**
- * ! Lists all manifests for a given deployment. (manifests.listManifests)
- *
- * @param string $project ! The project ID for this request.
- * @param string $deployment ! The name of the deployment for this request.
- * @param array $optParams Optional parameters.
- *
- * @opt_param string pageToken ! Specifies a nextPageToken returned by a
- * previous list request. This ! token can be used to request the next page of
- * results from a previous ! list request.
- * @opt_param int maxResults ! Maximum count of results to be returned. !
- * Acceptable values are 0 to 100, inclusive. (Default: 50)
- * @return Google_Service_Deploymentmanager_ManifestsListResponse
- */
- public function listManifests($project, $deployment, $optParams = array())
- {
- $params = array('project' => $project, 'deployment' => $deployment);
- $params = array_merge($params, $optParams);
- return $this->call('list', array($params), "Google_Service_Deploymentmanager_ManifestsListResponse");
- }
-}
-
-/**
- * The "operations" collection of methods.
- * Typical usage is:
- *
- * $deploymentmanagerService = new Google_Service_Deploymentmanager(...);
- * $operations = $deploymentmanagerService->operations;
- *
- */
-class Google_Service_Deploymentmanager_Operations_Resource extends UDP_Google_Service_Resource
-{
-
- /**
- * ! Gets information about a specific Operation. (operations.get)
- *
- * @param string $project ! The project ID for this request.
- * @param string $operation ! The name of the operation for this request.
- * @param array $optParams Optional parameters.
- * @return Google_Service_Deploymentmanager_Operation
- */
- public function get($project, $operation, $optParams = array())
- {
- $params = array('project' => $project, 'operation' => $operation);
- $params = array_merge($params, $optParams);
- return $this->call('get', array($params), "Google_Service_Deploymentmanager_Operation");
- }
-
- /**
- * ! Lists all Operations for a project. (operations.listOperations)
- *
- * @param string $project ! The project ID for this request.
- * @param array $optParams Optional parameters.
- *
- * @opt_param string pageToken ! Specifies a nextPageToken returned by a
- * previous list request. This ! token can be used to request the next page of
- * results from a previous ! list request.
- * @opt_param int maxResults ! Maximum count of results to be returned. !
- * Acceptable values are 0 to 100, inclusive. (Default: 50)
- * @return Google_Service_Deploymentmanager_OperationsListResponse
- */
- public function listOperations($project, $optParams = array())
- {
- $params = array('project' => $project);
- $params = array_merge($params, $optParams);
- return $this->call('list', array($params), "Google_Service_Deploymentmanager_OperationsListResponse");
- }
-}
-
-/**
- * The "resources" collection of methods.
- * Typical usage is:
- *
- * $deploymentmanagerService = new Google_Service_Deploymentmanager(...);
- * $resources = $deploymentmanagerService->resources;
- *
- */
-class Google_Service_Deploymentmanager_Resources_Resource extends UDP_Google_Service_Resource
-{
-
- /**
- * ! Gets information about a single resource. (resources.get)
- *
- * @param string $project ! The project ID for this request.
- * @param string $deployment ! The name of the deployment for this request.
- * @param string $resource ! The name of the resource for this request.
- * @param array $optParams Optional parameters.
- * @return Google_Service_Deploymentmanager_DeploymentmanagerResource
- */
- public function get($project, $deployment, $resource, $optParams = array())
- {
- $params = array('project' => $project, 'deployment' => $deployment, 'resource' => $resource);
- $params = array_merge($params, $optParams);
- return $this->call('get', array($params), "Google_Service_Deploymentmanager_DeploymentmanagerResource");
- }
-
- /**
- * ! Lists all resources in a given deployment. (resources.listResources)
- *
- * @param string $project ! The project ID for this request.
- * @param string $deployment ! The name of the deployment for this request.
- * @param array $optParams Optional parameters.
- *
- * @opt_param string pageToken ! Specifies a nextPageToken returned by a
- * previous list request. This ! token can be used to request the next page of
- * results from a previous ! list request.
- * @opt_param int maxResults ! Maximum count of results to be returned. !
- * Acceptable values are 0 to 100, inclusive. (Default: 50)
- * @return Google_Service_Deploymentmanager_ResourcesListResponse
- */
- public function listResources($project, $deployment, $optParams = array())
- {
- $params = array('project' => $project, 'deployment' => $deployment);
- $params = array_merge($params, $optParams);
- return $this->call('list', array($params), "Google_Service_Deploymentmanager_ResourcesListResponse");
- }
-}
-
-/**
- * The "types" collection of methods.
- * Typical usage is:
- *
- * $deploymentmanagerService = new Google_Service_Deploymentmanager(...);
- * $types = $deploymentmanagerService->types;
- *
- */
-class Google_Service_Deploymentmanager_Types_Resource extends UDP_Google_Service_Resource
-{
-
- /**
- * ! Lists all Types for Deployment Manager. (types.listTypes)
- *
- * @param string $project ! The project ID for this request.
- * @param array $optParams Optional parameters.
- *
- * @opt_param string pageToken ! Specifies a nextPageToken returned by a
- * previous list request. This ! token can be used to request the next page of
- * results from a previous ! list request.
- * @opt_param int maxResults ! Maximum count of results to be returned. !
- * Acceptable values are 0 to 100, inclusive. (Default: 50)
- * @return Google_Service_Deploymentmanager_TypesListResponse
- */
- public function listTypes($project, $optParams = array())
- {
- $params = array('project' => $project);
- $params = array_merge($params, $optParams);
- return $this->call('list', array($params), "Google_Service_Deploymentmanager_TypesListResponse");
- }
-}
-
-
-
-
-class Google_Service_Deploymentmanager_Deployment extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $description;
- public $id;
- public $manifest;
- public $name;
- public $targetConfig;
-
-
- public function setDescription($description)
- {
- $this->description = $description;
- }
- public function getDescription()
- {
- return $this->description;
- }
- public function setId($id)
- {
- $this->id = $id;
- }
- public function getId()
- {
- return $this->id;
- }
- public function setManifest($manifest)
- {
- $this->manifest = $manifest;
- }
- public function getManifest()
- {
- return $this->manifest;
- }
- public function setName($name)
- {
- $this->name = $name;
- }
- public function getName()
- {
- return $this->name;
- }
- public function setTargetConfig($targetConfig)
- {
- $this->targetConfig = $targetConfig;
- }
- public function getTargetConfig()
- {
- return $this->targetConfig;
- }
-}
-
-class Google_Service_Deploymentmanager_DeploymentmanagerResource extends Google_Collection
-{
- protected $collection_key = 'errors';
- protected $internal_gapi_mappings = array(
- );
- public $errors;
- public $id;
- public $intent;
- public $manifest;
- public $name;
- public $state;
- public $type;
- public $url;
-
-
- public function setErrors($errors)
- {
- $this->errors = $errors;
- }
- public function getErrors()
- {
- return $this->errors;
- }
- public function setId($id)
- {
- $this->id = $id;
- }
- public function getId()
- {
- return $this->id;
- }
- public function setIntent($intent)
- {
- $this->intent = $intent;
- }
- public function getIntent()
- {
- return $this->intent;
- }
- public function setManifest($manifest)
- {
- $this->manifest = $manifest;
- }
- public function getManifest()
- {
- return $this->manifest;
- }
- public function setName($name)
- {
- $this->name = $name;
- }
- public function getName()
- {
- return $this->name;
- }
- public function setState($state)
- {
- $this->state = $state;
- }
- public function getState()
- {
- return $this->state;
- }
- public function setType($type)
- {
- $this->type = $type;
- }
- public function getType()
- {
- return $this->type;
- }
- public function setUrl($url)
- {
- $this->url = $url;
- }
- public function getUrl()
- {
- return $this->url;
- }
-}
-
-class Google_Service_Deploymentmanager_DeploymentsListResponse extends Google_Collection
-{
- protected $collection_key = 'deployments';
- protected $internal_gapi_mappings = array(
- );
- protected $deploymentsType = 'Google_Service_Deploymentmanager_Deployment';
- protected $deploymentsDataType = 'array';
- public $nextPageToken;
-
-
- public function setDeployments($deployments)
- {
- $this->deployments = $deployments;
- }
- public function getDeployments()
- {
- return $this->deployments;
- }
- public function setNextPageToken($nextPageToken)
- {
- $this->nextPageToken = $nextPageToken;
- }
- public function getNextPageToken()
- {
- return $this->nextPageToken;
- }
-}
-
-class Google_Service_Deploymentmanager_Manifest extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $config;
- public $evaluatedConfig;
- public $id;
- public $name;
- public $selfLink;
-
-
- public function setConfig($config)
- {
- $this->config = $config;
- }
- public function getConfig()
- {
- return $this->config;
- }
- public function setEvaluatedConfig($evaluatedConfig)
- {
- $this->evaluatedConfig = $evaluatedConfig;
- }
- public function getEvaluatedConfig()
- {
- return $this->evaluatedConfig;
- }
- public function setId($id)
- {
- $this->id = $id;
- }
- public function getId()
- {
- return $this->id;
- }
- public function setName($name)
- {
- $this->name = $name;
- }
- public function getName()
- {
- return $this->name;
- }
- public function setSelfLink($selfLink)
- {
- $this->selfLink = $selfLink;
- }
- public function getSelfLink()
- {
- return $this->selfLink;
- }
-}
-
-class Google_Service_Deploymentmanager_ManifestsListResponse extends Google_Collection
-{
- protected $collection_key = 'manifests';
- protected $internal_gapi_mappings = array(
- );
- protected $manifestsType = 'Google_Service_Deploymentmanager_Manifest';
- protected $manifestsDataType = 'array';
- public $nextPageToken;
-
-
- public function setManifests($manifests)
- {
- $this->manifests = $manifests;
- }
- public function getManifests()
- {
- return $this->manifests;
- }
- public function setNextPageToken($nextPageToken)
- {
- $this->nextPageToken = $nextPageToken;
- }
- public function getNextPageToken()
- {
- return $this->nextPageToken;
- }
-}
-
-class Google_Service_Deploymentmanager_Operation extends Google_Collection
-{
- protected $collection_key = 'warnings';
- protected $internal_gapi_mappings = array(
- );
- public $creationTimestamp;
- public $endTime;
- protected $errorType = 'Google_Service_Deploymentmanager_OperationError';
- protected $errorDataType = '';
- public $httpErrorMessage;
- public $httpErrorStatusCode;
- public $id;
- public $insertTime;
- public $name;
- public $operationType;
- public $progress;
- public $selfLink;
- public $startTime;
- public $status;
- public $statusMessage;
- public $targetId;
- public $targetLink;
- public $user;
- protected $warningsType = 'Google_Service_Deploymentmanager_OperationWarnings';
- protected $warningsDataType = 'array';
-
-
- public function setCreationTimestamp($creationTimestamp)
- {
- $this->creationTimestamp = $creationTimestamp;
- }
- public function getCreationTimestamp()
- {
- return $this->creationTimestamp;
- }
- public function setEndTime($endTime)
- {
- $this->endTime = $endTime;
- }
- public function getEndTime()
- {
- return $this->endTime;
- }
- public function setError(Google_Service_Deploymentmanager_OperationError $error)
- {
- $this->error = $error;
- }
- public function getError()
- {
- return $this->error;
- }
- public function setHttpErrorMessage($httpErrorMessage)
- {
- $this->httpErrorMessage = $httpErrorMessage;
- }
- public function getHttpErrorMessage()
- {
- return $this->httpErrorMessage;
- }
- public function setHttpErrorStatusCode($httpErrorStatusCode)
- {
- $this->httpErrorStatusCode = $httpErrorStatusCode;
- }
- public function getHttpErrorStatusCode()
- {
- return $this->httpErrorStatusCode;
- }
- public function setId($id)
- {
- $this->id = $id;
- }
- public function getId()
- {
- return $this->id;
- }
- public function setInsertTime($insertTime)
- {
- $this->insertTime = $insertTime;
- }
- public function getInsertTime()
- {
- return $this->insertTime;
- }
- public function setName($name)
- {
- $this->name = $name;
- }
- public function getName()
- {
- return $this->name;
- }
- public function setOperationType($operationType)
- {
- $this->operationType = $operationType;
- }
- public function getOperationType()
- {
- return $this->operationType;
- }
- public function setProgress($progress)
- {
- $this->progress = $progress;
- }
- public function getProgress()
- {
- return $this->progress;
- }
- public function setSelfLink($selfLink)
- {
- $this->selfLink = $selfLink;
- }
- public function getSelfLink()
- {
- return $this->selfLink;
- }
- public function setStartTime($startTime)
- {
- $this->startTime = $startTime;
- }
- public function getStartTime()
- {
- return $this->startTime;
- }
- public function setStatus($status)
- {
- $this->status = $status;
- }
- public function getStatus()
- {
- return $this->status;
- }
- public function setStatusMessage($statusMessage)
- {
- $this->statusMessage = $statusMessage;
- }
- public function getStatusMessage()
- {
- return $this->statusMessage;
- }
- public function setTargetId($targetId)
- {
- $this->targetId = $targetId;
- }
- public function getTargetId()
- {
- return $this->targetId;
- }
- public function setTargetLink($targetLink)
- {
- $this->targetLink = $targetLink;
- }
- public function getTargetLink()
- {
- return $this->targetLink;
- }
- public function setUser($user)
- {
- $this->user = $user;
- }
- public function getUser()
- {
- return $this->user;
- }
- public function setWarnings($warnings)
- {
- $this->warnings = $warnings;
- }
- public function getWarnings()
- {
- return $this->warnings;
- }
-}
-
-class Google_Service_Deploymentmanager_OperationError extends Google_Collection
-{
- protected $collection_key = 'errors';
- protected $internal_gapi_mappings = array(
- );
- protected $errorsType = 'Google_Service_Deploymentmanager_OperationErrorErrors';
- protected $errorsDataType = 'array';
-
-
- public function setErrors($errors)
- {
- $this->errors = $errors;
- }
- public function getErrors()
- {
- return $this->errors;
- }
-}
-
-class Google_Service_Deploymentmanager_OperationErrorErrors extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $code;
- public $location;
- public $message;
-
-
- public function setCode($code)
- {
- $this->code = $code;
- }
- public function getCode()
- {
- return $this->code;
- }
- public function setLocation($location)
- {
- $this->location = $location;
- }
- public function getLocation()
- {
- return $this->location;
- }
- public function setMessage($message)
- {
- $this->message = $message;
- }
- public function getMessage()
- {
- return $this->message;
- }
-}
-
-class Google_Service_Deploymentmanager_OperationWarnings extends Google_Collection
-{
- protected $collection_key = 'data';
- protected $internal_gapi_mappings = array(
- );
- public $code;
- protected $dataType = 'Google_Service_Deploymentmanager_OperationWarningsData';
- protected $dataDataType = 'array';
- public $message;
-
-
- public function setCode($code)
- {
- $this->code = $code;
- }
- public function getCode()
- {
- return $this->code;
- }
- public function setData($data)
- {
- $this->data = $data;
- }
- public function getData()
- {
- return $this->data;
- }
- public function setMessage($message)
- {
- $this->message = $message;
- }
- public function getMessage()
- {
- return $this->message;
- }
-}
-
-class Google_Service_Deploymentmanager_OperationWarningsData extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $key;
- public $value;
-
-
- public function setKey($key)
- {
- $this->key = $key;
- }
- public function getKey()
- {
- return $this->key;
- }
- public function setValue($value)
- {
- $this->value = $value;
- }
- public function getValue()
- {
- return $this->value;
- }
-}
-
-class Google_Service_Deploymentmanager_OperationsListResponse extends Google_Collection
-{
- protected $collection_key = 'operations';
- protected $internal_gapi_mappings = array(
- );
- public $nextPageToken;
- protected $operationsType = 'Google_Service_Deploymentmanager_Operation';
- protected $operationsDataType = 'array';
-
-
- public function setNextPageToken($nextPageToken)
- {
- $this->nextPageToken = $nextPageToken;
- }
- public function getNextPageToken()
- {
- return $this->nextPageToken;
- }
- public function setOperations($operations)
- {
- $this->operations = $operations;
- }
- public function getOperations()
- {
- return $this->operations;
- }
-}
-
-class Google_Service_Deploymentmanager_ResourcesListResponse extends Google_Collection
-{
- protected $collection_key = 'resources';
- protected $internal_gapi_mappings = array(
- );
- public $nextPageToken;
- protected $resourcesType = 'Google_Service_Deploymentmanager_DeploymentmanagerResource';
- protected $resourcesDataType = 'array';
-
-
- public function setNextPageToken($nextPageToken)
- {
- $this->nextPageToken = $nextPageToken;
- }
- public function getNextPageToken()
- {
- return $this->nextPageToken;
- }
- public function setResources($resources)
- {
- $this->resources = $resources;
- }
- public function getResources()
- {
- return $this->resources;
- }
-}
-
-class Google_Service_Deploymentmanager_Type extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $name;
-
-
- public function setName($name)
- {
- $this->name = $name;
- }
- public function getName()
- {
- return $this->name;
- }
-}
-
-class Google_Service_Deploymentmanager_TypesListResponse extends Google_Collection
-{
- protected $collection_key = 'types';
- protected $internal_gapi_mappings = array(
- );
- protected $typesType = 'Google_Service_Deploymentmanager_Type';
- protected $typesDataType = 'array';
-
-
- public function setTypes($types)
- {
- $this->types = $types;
- }
- public function getTypes()
- {
- return $this->types;
- }
-}
diff --git a/wp-content/plugins/updraftplus/includes/Google/Service/Drive.php b/wp-content/plugins/updraftplus/includes/Google/Service/Drive.php
index 4a8bc394..9fcecc67 100644
--- a/wp-content/plugins/updraftplus/includes/Google/Service/Drive.php
+++ b/wp-content/plugins/updraftplus/includes/Google/Service/Drive.php
@@ -68,6 +68,12 @@ class UDP_Google_Service_Drive extends UDP_Google_Service
public $realtime;
public $replies;
public $revisions;
+
+ /**
+ * Google Drive service name. The default value is drive.
+ * @var String
+ */
+ protected $serviceName;
/**
@@ -4035,6 +4041,14 @@ class UDP_Google_Service_Drive_DriveFile extends Google_Collection
protected $userPermissionDataType = '';
public $version;
protected $videoMediaMetadataType = 'UDP_Google_Service_Drive_DriveFileVideoMediaMetadata';
+
+ /**
+ * Parent resource
+ *
+ * @var Google_Service_Drive_Parents_Resource
+ */
+ public $parents;
+
protected $videoMediaMetadataDataType = '';
public $webContentLink;
public $webViewLink;
diff --git a/wp-content/plugins/updraftplus/includes/Google/Service/Manager.php b/wp-content/plugins/updraftplus/includes/Google/Service/Manager.php
deleted file mode 100644
index 8aca36b1..00000000
--- a/wp-content/plugins/updraftplus/includes/Google/Service/Manager.php
+++ /dev/null
@@ -1,1857 +0,0 @@
-
- * The Deployment Manager API allows users to declaratively configure, deploy
- * and run complex solutions on the Google Cloud Platform.
- *
- *
- * For more information about this service, see the API
- * Documentation
- *
- *
- * @author Google, Inc.
- */
-class Google_Service_Manager extends UDP_Google_Service
-{
- /** View and manage your applications deployed on Google App Engine. */
- const APPENGINE_ADMIN =
- "https://www.googleapis.com/auth/appengine.admin";
- /** View and manage your data across Google Cloud Platform services. */
- const CLOUD_PLATFORM =
- "https://www.googleapis.com/auth/cloud-platform";
- /** View and manage your Google Compute Engine resources. */
- const COMPUTE =
- "https://www.googleapis.com/auth/compute";
- /** Manage your data in Google Cloud Storage. */
- const DEVSTORAGE_READ_WRITE =
- "https://www.googleapis.com/auth/devstorage.read_write";
- /** View and manage your Google Cloud Platform management resources and deployment status information. */
- const NDEV_CLOUDMAN =
- "https://www.googleapis.com/auth/ndev.cloudman";
- /** View your Google Cloud Platform management resources and deployment status information. */
- const NDEV_CLOUDMAN_READONLY =
- "https://www.googleapis.com/auth/ndev.cloudman.readonly";
-
- public $deployments;
- public $templates;
-
-
- /**
- * Constructs the internal representation of the Manager service.
- *
- * @param Google_Client $client
- */
- public function __construct(UDP_Google_Client $client)
- {
- parent::__construct($client);
- $this->servicePath = 'manager/v1beta2/projects/';
- $this->version = 'v1beta2';
- $this->serviceName = 'manager';
-
- $this->deployments = new Google_Service_Manager_Deployments_Resource(
- $this,
- $this->serviceName,
- 'deployments',
- array(
- 'methods' => array(
- 'delete' => array(
- 'path' => '{projectId}/regions/{region}/deployments/{deploymentName}',
- 'httpMethod' => 'DELETE',
- 'parameters' => array(
- 'projectId' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'region' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'deploymentName' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- ),
- ),'get' => array(
- 'path' => '{projectId}/regions/{region}/deployments/{deploymentName}',
- 'httpMethod' => 'GET',
- 'parameters' => array(
- 'projectId' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'region' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'deploymentName' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- ),
- ),'insert' => array(
- 'path' => '{projectId}/regions/{region}/deployments',
- 'httpMethod' => 'POST',
- 'parameters' => array(
- 'projectId' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'region' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- ),
- ),'list' => array(
- 'path' => '{projectId}/regions/{region}/deployments',
- 'httpMethod' => 'GET',
- 'parameters' => array(
- 'projectId' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'region' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'pageToken' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- 'maxResults' => array(
- 'location' => 'query',
- 'type' => 'integer',
- ),
- ),
- ),
- )
- )
- );
- $this->templates = new Google_Service_Manager_Templates_Resource(
- $this,
- $this->serviceName,
- 'templates',
- array(
- 'methods' => array(
- 'delete' => array(
- 'path' => '{projectId}/templates/{templateName}',
- 'httpMethod' => 'DELETE',
- 'parameters' => array(
- 'projectId' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'templateName' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- ),
- ),'get' => array(
- 'path' => '{projectId}/templates/{templateName}',
- 'httpMethod' => 'GET',
- 'parameters' => array(
- 'projectId' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'templateName' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- ),
- ),'insert' => array(
- 'path' => '{projectId}/templates',
- 'httpMethod' => 'POST',
- 'parameters' => array(
- 'projectId' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- ),
- ),'list' => array(
- 'path' => '{projectId}/templates',
- 'httpMethod' => 'GET',
- 'parameters' => array(
- 'projectId' => array(
- 'location' => 'path',
- 'type' => 'string',
- 'required' => true,
- ),
- 'pageToken' => array(
- 'location' => 'query',
- 'type' => 'string',
- ),
- 'maxResults' => array(
- 'location' => 'query',
- 'type' => 'integer',
- ),
- ),
- ),
- )
- )
- );
- }
-}
-
-
-/**
- * The "deployments" collection of methods.
- * Typical usage is:
- *
- * $managerService = new Google_Service_Manager(...);
- * $deployments = $managerService->deployments;
- *
- */
-class Google_Service_Manager_Deployments_Resource extends UDP_Google_Service_Resource
-{
-
- /**
- * (deployments.delete)
- *
- * @param string $projectId
- * @param string $region
- * @param string $deploymentName
- * @param array $optParams Optional parameters.
- */
- public function delete($projectId, $region, $deploymentName, $optParams = array())
- {
- $params = array('projectId' => $projectId, 'region' => $region, 'deploymentName' => $deploymentName);
- $params = array_merge($params, $optParams);
- return $this->call('delete', array($params));
- }
-
- /**
- * (deployments.get)
- *
- * @param string $projectId
- * @param string $region
- * @param string $deploymentName
- * @param array $optParams Optional parameters.
- * @return Google_Service_Manager_Deployment
- */
- public function get($projectId, $region, $deploymentName, $optParams = array())
- {
- $params = array('projectId' => $projectId, 'region' => $region, 'deploymentName' => $deploymentName);
- $params = array_merge($params, $optParams);
- return $this->call('get', array($params), "Google_Service_Manager_Deployment");
- }
-
- /**
- * (deployments.insert)
- *
- * @param string $projectId
- * @param string $region
- * @param Google_Deployment $postBody
- * @param array $optParams Optional parameters.
- * @return Google_Service_Manager_Deployment
- */
- public function insert($projectId, $region, Google_Service_Manager_Deployment $postBody, $optParams = array())
- {
- $params = array('projectId' => $projectId, 'region' => $region, 'postBody' => $postBody);
- $params = array_merge($params, $optParams);
- return $this->call('insert', array($params), "Google_Service_Manager_Deployment");
- }
-
- /**
- * (deployments.listDeployments)
- *
- * @param string $projectId
- * @param string $region
- * @param array $optParams Optional parameters.
- *
- * @opt_param string pageToken Specifies a nextPageToken returned by a previous
- * list request. This token can be used to request the next page of results from
- * a previous list request.
- * @opt_param int maxResults Maximum count of results to be returned. Acceptable
- * values are 0 to 100, inclusive. (Default: 50)
- * @return Google_Service_Manager_DeploymentsListResponse
- */
- public function listDeployments($projectId, $region, $optParams = array())
- {
- $params = array('projectId' => $projectId, 'region' => $region);
- $params = array_merge($params, $optParams);
- return $this->call('list', array($params), "Google_Service_Manager_DeploymentsListResponse");
- }
-}
-
-/**
- * The "templates" collection of methods.
- * Typical usage is:
- *
- * $managerService = new Google_Service_Manager(...);
- * $templates = $managerService->templates;
- *
- */
-class Google_Service_Manager_Templates_Resource extends UDP_Google_Service_Resource
-{
-
- /**
- * (templates.delete)
- *
- * @param string $projectId
- * @param string $templateName
- * @param array $optParams Optional parameters.
- */
- public function delete($projectId, $templateName, $optParams = array())
- {
- $params = array('projectId' => $projectId, 'templateName' => $templateName);
- $params = array_merge($params, $optParams);
- return $this->call('delete', array($params));
- }
-
- /**
- * (templates.get)
- *
- * @param string $projectId
- * @param string $templateName
- * @param array $optParams Optional parameters.
- * @return Google_Service_Manager_Template
- */
- public function get($projectId, $templateName, $optParams = array())
- {
- $params = array('projectId' => $projectId, 'templateName' => $templateName);
- $params = array_merge($params, $optParams);
- return $this->call('get', array($params), "Google_Service_Manager_Template");
- }
-
- /**
- * (templates.insert)
- *
- * @param string $projectId
- * @param Google_Template $postBody
- * @param array $optParams Optional parameters.
- * @return Google_Service_Manager_Template
- */
- public function insert($projectId, Google_Service_Manager_Template $postBody, $optParams = array())
- {
- $params = array('projectId' => $projectId, 'postBody' => $postBody);
- $params = array_merge($params, $optParams);
- return $this->call('insert', array($params), "Google_Service_Manager_Template");
- }
-
- /**
- * (templates.listTemplates)
- *
- * @param string $projectId
- * @param array $optParams Optional parameters.
- *
- * @opt_param string pageToken Specifies a nextPageToken returned by a previous
- * list request. This token can be used to request the next page of results from
- * a previous list request.
- * @opt_param int maxResults Maximum count of results to be returned. Acceptable
- * values are 0 to 100, inclusive. (Default: 50)
- * @return Google_Service_Manager_TemplatesListResponse
- */
- public function listTemplates($projectId, $optParams = array())
- {
- $params = array('projectId' => $projectId);
- $params = array_merge($params, $optParams);
- return $this->call('list', array($params), "Google_Service_Manager_TemplatesListResponse");
- }
-}
-
-
-
-
-class Google_Service_Manager_AccessConfig extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $name;
- public $natIp;
- public $type;
-
-
- public function setName($name)
- {
- $this->name = $name;
- }
- public function getName()
- {
- return $this->name;
- }
- public function setNatIp($natIp)
- {
- $this->natIp = $natIp;
- }
- public function getNatIp()
- {
- return $this->natIp;
- }
- public function setType($type)
- {
- $this->type = $type;
- }
- public function getType()
- {
- return $this->type;
- }
-}
-
-class Google_Service_Manager_Action extends Google_Collection
-{
- protected $collection_key = 'commands';
- protected $internal_gapi_mappings = array(
- );
- public $commands;
- public $timeoutMs;
-
-
- public function setCommands($commands)
- {
- $this->commands = $commands;
- }
- public function getCommands()
- {
- return $this->commands;
- }
- public function setTimeoutMs($timeoutMs)
- {
- $this->timeoutMs = $timeoutMs;
- }
- public function getTimeoutMs()
- {
- return $this->timeoutMs;
- }
-}
-
-class Google_Service_Manager_AllowedRule extends Google_Collection
-{
- protected $collection_key = 'ports';
- protected $internal_gapi_mappings = array(
- "iPProtocol" => "IPProtocol",
- );
- public $iPProtocol;
- public $ports;
-
-
- public function setIPProtocol($iPProtocol)
- {
- $this->iPProtocol = $iPProtocol;
- }
- public function getIPProtocol()
- {
- return $this->iPProtocol;
- }
- public function setPorts($ports)
- {
- $this->ports = $ports;
- }
- public function getPorts()
- {
- return $this->ports;
- }
-}
-
-class Google_Service_Manager_AutoscalingModule extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $coolDownPeriodSec;
- public $description;
- public $maxNumReplicas;
- public $minNumReplicas;
- public $signalType;
- public $targetModule;
- public $targetUtilization;
-
-
- public function setCoolDownPeriodSec($coolDownPeriodSec)
- {
- $this->coolDownPeriodSec = $coolDownPeriodSec;
- }
- public function getCoolDownPeriodSec()
- {
- return $this->coolDownPeriodSec;
- }
- public function setDescription($description)
- {
- $this->description = $description;
- }
- public function getDescription()
- {
- return $this->description;
- }
- public function setMaxNumReplicas($maxNumReplicas)
- {
- $this->maxNumReplicas = $maxNumReplicas;
- }
- public function getMaxNumReplicas()
- {
- return $this->maxNumReplicas;
- }
- public function setMinNumReplicas($minNumReplicas)
- {
- $this->minNumReplicas = $minNumReplicas;
- }
- public function getMinNumReplicas()
- {
- return $this->minNumReplicas;
- }
- public function setSignalType($signalType)
- {
- $this->signalType = $signalType;
- }
- public function getSignalType()
- {
- return $this->signalType;
- }
- public function setTargetModule($targetModule)
- {
- $this->targetModule = $targetModule;
- }
- public function getTargetModule()
- {
- return $this->targetModule;
- }
- public function setTargetUtilization($targetUtilization)
- {
- $this->targetUtilization = $targetUtilization;
- }
- public function getTargetUtilization()
- {
- return $this->targetUtilization;
- }
-}
-
-class Google_Service_Manager_AutoscalingModuleStatus extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $autoscalingConfigUrl;
-
-
- public function setAutoscalingConfigUrl($autoscalingConfigUrl)
- {
- $this->autoscalingConfigUrl = $autoscalingConfigUrl;
- }
- public function getAutoscalingConfigUrl()
- {
- return $this->autoscalingConfigUrl;
- }
-}
-
-class Google_Service_Manager_DeployState extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $details;
- public $status;
-
-
- public function setDetails($details)
- {
- $this->details = $details;
- }
- public function getDetails()
- {
- return $this->details;
- }
- public function setStatus($status)
- {
- $this->status = $status;
- }
- public function getStatus()
- {
- return $this->status;
- }
-}
-
-class Google_Service_Manager_Deployment extends Google_Collection
-{
- protected $collection_key = 'overrides';
- protected $internal_gapi_mappings = array(
- );
- public $creationDate;
- public $description;
- protected $modulesType = 'Google_Service_Manager_ModuleStatus';
- protected $modulesDataType = 'map';
- public $name;
- protected $overridesType = 'Google_Service_Manager_ParamOverride';
- protected $overridesDataType = 'array';
- protected $stateType = 'Google_Service_Manager_DeployState';
- protected $stateDataType = '';
- public $templateName;
-
-
- public function setCreationDate($creationDate)
- {
- $this->creationDate = $creationDate;
- }
- public function getCreationDate()
- {
- return $this->creationDate;
- }
- public function setDescription($description)
- {
- $this->description = $description;
- }
- public function getDescription()
- {
- return $this->description;
- }
- public function setModules($modules)
- {
- $this->modules = $modules;
- }
- public function getModules()
- {
- return $this->modules;
- }
- public function setName($name)
- {
- $this->name = $name;
- }
- public function getName()
- {
- return $this->name;
- }
- public function setOverrides($overrides)
- {
- $this->overrides = $overrides;
- }
- public function getOverrides()
- {
- return $this->overrides;
- }
- public function setState(Google_Service_Manager_DeployState $state)
- {
- $this->state = $state;
- }
- public function getState()
- {
- return $this->state;
- }
- public function setTemplateName($templateName)
- {
- $this->templateName = $templateName;
- }
- public function getTemplateName()
- {
- return $this->templateName;
- }
-}
-
-class Google_Service_Manager_DeploymentModules extends Google_Model
-{
-}
-
-class Google_Service_Manager_DeploymentsListResponse extends Google_Collection
-{
- protected $collection_key = 'resources';
- protected $internal_gapi_mappings = array(
- );
- public $nextPageToken;
- protected $resourcesType = 'Google_Service_Manager_Deployment';
- protected $resourcesDataType = 'array';
-
-
- public function setNextPageToken($nextPageToken)
- {
- $this->nextPageToken = $nextPageToken;
- }
- public function getNextPageToken()
- {
- return $this->nextPageToken;
- }
- public function setResources($resources)
- {
- $this->resources = $resources;
- }
- public function getResources()
- {
- return $this->resources;
- }
-}
-
-class Google_Service_Manager_DiskAttachment extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $deviceName;
- public $index;
-
-
- public function setDeviceName($deviceName)
- {
- $this->deviceName = $deviceName;
- }
- public function getDeviceName()
- {
- return $this->deviceName;
- }
- public function setIndex($index)
- {
- $this->index = $index;
- }
- public function getIndex()
- {
- return $this->index;
- }
-}
-
-class Google_Service_Manager_EnvVariable extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $hidden;
- public $value;
-
-
- public function setHidden($hidden)
- {
- $this->hidden = $hidden;
- }
- public function getHidden()
- {
- return $this->hidden;
- }
- public function setValue($value)
- {
- $this->value = $value;
- }
- public function getValue()
- {
- return $this->value;
- }
-}
-
-class Google_Service_Manager_ExistingDisk extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- protected $attachmentType = 'Google_Service_Manager_DiskAttachment';
- protected $attachmentDataType = '';
- public $source;
-
-
- public function setAttachment(Google_Service_Manager_DiskAttachment $attachment)
- {
- $this->attachment = $attachment;
- }
- public function getAttachment()
- {
- return $this->attachment;
- }
- public function setSource($source)
- {
- $this->source = $source;
- }
- public function getSource()
- {
- return $this->source;
- }
-}
-
-class Google_Service_Manager_FirewallModule extends Google_Collection
-{
- protected $collection_key = 'targetTags';
- protected $internal_gapi_mappings = array(
- );
- protected $allowedType = 'Google_Service_Manager_AllowedRule';
- protected $allowedDataType = 'array';
- public $description;
- public $network;
- public $sourceRanges;
- public $sourceTags;
- public $targetTags;
-
-
- public function setAllowed($allowed)
- {
- $this->allowed = $allowed;
- }
- public function getAllowed()
- {
- return $this->allowed;
- }
- public function setDescription($description)
- {
- $this->description = $description;
- }
- public function getDescription()
- {
- return $this->description;
- }
- public function setNetwork($network)
- {
- $this->network = $network;
- }
- public function getNetwork()
- {
- return $this->network;
- }
- public function setSourceRanges($sourceRanges)
- {
- $this->sourceRanges = $sourceRanges;
- }
- public function getSourceRanges()
- {
- return $this->sourceRanges;
- }
- public function setSourceTags($sourceTags)
- {
- $this->sourceTags = $sourceTags;
- }
- public function getSourceTags()
- {
- return $this->sourceTags;
- }
- public function setTargetTags($targetTags)
- {
- $this->targetTags = $targetTags;
- }
- public function getTargetTags()
- {
- return $this->targetTags;
- }
-}
-
-class Google_Service_Manager_FirewallModuleStatus extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $firewallUrl;
-
-
- public function setFirewallUrl($firewallUrl)
- {
- $this->firewallUrl = $firewallUrl;
- }
- public function getFirewallUrl()
- {
- return $this->firewallUrl;
- }
-}
-
-class Google_Service_Manager_HealthCheckModule extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $checkIntervalSec;
- public $description;
- public $healthyThreshold;
- public $host;
- public $path;
- public $port;
- public $timeoutSec;
- public $unhealthyThreshold;
-
-
- public function setCheckIntervalSec($checkIntervalSec)
- {
- $this->checkIntervalSec = $checkIntervalSec;
- }
- public function getCheckIntervalSec()
- {
- return $this->checkIntervalSec;
- }
- public function setDescription($description)
- {
- $this->description = $description;
- }
- public function getDescription()
- {
- return $this->description;
- }
- public function setHealthyThreshold($healthyThreshold)
- {
- $this->healthyThreshold = $healthyThreshold;
- }
- public function getHealthyThreshold()
- {
- return $this->healthyThreshold;
- }
- public function setHost($host)
- {
- $this->host = $host;
- }
- public function getHost()
- {
- return $this->host;
- }
- public function setPath($path)
- {
- $this->path = $path;
- }
- public function getPath()
- {
- return $this->path;
- }
- public function setPort($port)
- {
- $this->port = $port;
- }
- public function getPort()
- {
- return $this->port;
- }
- public function setTimeoutSec($timeoutSec)
- {
- $this->timeoutSec = $timeoutSec;
- }
- public function getTimeoutSec()
- {
- return $this->timeoutSec;
- }
- public function setUnhealthyThreshold($unhealthyThreshold)
- {
- $this->unhealthyThreshold = $unhealthyThreshold;
- }
- public function getUnhealthyThreshold()
- {
- return $this->unhealthyThreshold;
- }
-}
-
-class Google_Service_Manager_HealthCheckModuleStatus extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $healthCheckUrl;
-
-
- public function setHealthCheckUrl($healthCheckUrl)
- {
- $this->healthCheckUrl = $healthCheckUrl;
- }
- public function getHealthCheckUrl()
- {
- return $this->healthCheckUrl;
- }
-}
-
-class Google_Service_Manager_LbModule extends Google_Collection
-{
- protected $collection_key = 'targetModules';
- protected $internal_gapi_mappings = array(
- );
- public $description;
- public $healthChecks;
- public $ipAddress;
- public $ipProtocol;
- public $portRange;
- public $sessionAffinity;
- public $targetModules;
-
-
- public function setDescription($description)
- {
- $this->description = $description;
- }
- public function getDescription()
- {
- return $this->description;
- }
- public function setHealthChecks($healthChecks)
- {
- $this->healthChecks = $healthChecks;
- }
- public function getHealthChecks()
- {
- return $this->healthChecks;
- }
- public function setIpAddress($ipAddress)
- {
- $this->ipAddress = $ipAddress;
- }
- public function getIpAddress()
- {
- return $this->ipAddress;
- }
- public function setIpProtocol($ipProtocol)
- {
- $this->ipProtocol = $ipProtocol;
- }
- public function getIpProtocol()
- {
- return $this->ipProtocol;
- }
- public function setPortRange($portRange)
- {
- $this->portRange = $portRange;
- }
- public function getPortRange()
- {
- return $this->portRange;
- }
- public function setSessionAffinity($sessionAffinity)
- {
- $this->sessionAffinity = $sessionAffinity;
- }
- public function getSessionAffinity()
- {
- return $this->sessionAffinity;
- }
- public function setTargetModules($targetModules)
- {
- $this->targetModules = $targetModules;
- }
- public function getTargetModules()
- {
- return $this->targetModules;
- }
-}
-
-class Google_Service_Manager_LbModuleStatus extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $forwardingRuleUrl;
- public $targetPoolUrl;
-
-
- public function setForwardingRuleUrl($forwardingRuleUrl)
- {
- $this->forwardingRuleUrl = $forwardingRuleUrl;
- }
- public function getForwardingRuleUrl()
- {
- return $this->forwardingRuleUrl;
- }
- public function setTargetPoolUrl($targetPoolUrl)
- {
- $this->targetPoolUrl = $targetPoolUrl;
- }
- public function getTargetPoolUrl()
- {
- return $this->targetPoolUrl;
- }
-}
-
-class Google_Service_Manager_Metadata extends Google_Collection
-{
- protected $collection_key = 'items';
- protected $internal_gapi_mappings = array(
- );
- public $fingerPrint;
- protected $itemsType = 'Google_Service_Manager_MetadataItem';
- protected $itemsDataType = 'array';
-
-
- public function setFingerPrint($fingerPrint)
- {
- $this->fingerPrint = $fingerPrint;
- }
- public function getFingerPrint()
- {
- return $this->fingerPrint;
- }
- public function setItems($items)
- {
- $this->items = $items;
- }
- public function getItems()
- {
- return $this->items;
- }
-}
-
-class Google_Service_Manager_MetadataItem extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $key;
- public $value;
-
-
- public function setKey($key)
- {
- $this->key = $key;
- }
- public function getKey()
- {
- return $this->key;
- }
- public function setValue($value)
- {
- $this->value = $value;
- }
- public function getValue()
- {
- return $this->value;
- }
-}
-
-class Google_Service_Manager_Module extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- protected $autoscalingModuleType = 'Google_Service_Manager_AutoscalingModule';
- protected $autoscalingModuleDataType = '';
- protected $firewallModuleType = 'Google_Service_Manager_FirewallModule';
- protected $firewallModuleDataType = '';
- protected $healthCheckModuleType = 'Google_Service_Manager_HealthCheckModule';
- protected $healthCheckModuleDataType = '';
- protected $lbModuleType = 'Google_Service_Manager_LbModule';
- protected $lbModuleDataType = '';
- protected $networkModuleType = 'Google_Service_Manager_NetworkModule';
- protected $networkModuleDataType = '';
- protected $replicaPoolModuleType = 'Google_Service_Manager_ReplicaPoolModule';
- protected $replicaPoolModuleDataType = '';
- public $type;
-
-
- public function setAutoscalingModule(Google_Service_Manager_AutoscalingModule $autoscalingModule)
- {
- $this->autoscalingModule = $autoscalingModule;
- }
- public function getAutoscalingModule()
- {
- return $this->autoscalingModule;
- }
- public function setFirewallModule(Google_Service_Manager_FirewallModule $firewallModule)
- {
- $this->firewallModule = $firewallModule;
- }
- public function getFirewallModule()
- {
- return $this->firewallModule;
- }
- public function setHealthCheckModule(Google_Service_Manager_HealthCheckModule $healthCheckModule)
- {
- $this->healthCheckModule = $healthCheckModule;
- }
- public function getHealthCheckModule()
- {
- return $this->healthCheckModule;
- }
- public function setLbModule(Google_Service_Manager_LbModule $lbModule)
- {
- $this->lbModule = $lbModule;
- }
- public function getLbModule()
- {
- return $this->lbModule;
- }
- public function setNetworkModule(Google_Service_Manager_NetworkModule $networkModule)
- {
- $this->networkModule = $networkModule;
- }
- public function getNetworkModule()
- {
- return $this->networkModule;
- }
- public function setReplicaPoolModule(Google_Service_Manager_ReplicaPoolModule $replicaPoolModule)
- {
- $this->replicaPoolModule = $replicaPoolModule;
- }
- public function getReplicaPoolModule()
- {
- return $this->replicaPoolModule;
- }
- public function setType($type)
- {
- $this->type = $type;
- }
- public function getType()
- {
- return $this->type;
- }
-}
-
-class Google_Service_Manager_ModuleStatus extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- protected $autoscalingModuleStatusType = 'Google_Service_Manager_AutoscalingModuleStatus';
- protected $autoscalingModuleStatusDataType = '';
- protected $firewallModuleStatusType = 'Google_Service_Manager_FirewallModuleStatus';
- protected $firewallModuleStatusDataType = '';
- protected $healthCheckModuleStatusType = 'Google_Service_Manager_HealthCheckModuleStatus';
- protected $healthCheckModuleStatusDataType = '';
- protected $lbModuleStatusType = 'Google_Service_Manager_LbModuleStatus';
- protected $lbModuleStatusDataType = '';
- protected $networkModuleStatusType = 'Google_Service_Manager_NetworkModuleStatus';
- protected $networkModuleStatusDataType = '';
- protected $replicaPoolModuleStatusType = 'Google_Service_Manager_ReplicaPoolModuleStatus';
- protected $replicaPoolModuleStatusDataType = '';
- protected $stateType = 'Google_Service_Manager_DeployState';
- protected $stateDataType = '';
- public $type;
-
-
- public function setAutoscalingModuleStatus(Google_Service_Manager_AutoscalingModuleStatus $autoscalingModuleStatus)
- {
- $this->autoscalingModuleStatus = $autoscalingModuleStatus;
- }
- public function getAutoscalingModuleStatus()
- {
- return $this->autoscalingModuleStatus;
- }
- public function setFirewallModuleStatus(Google_Service_Manager_FirewallModuleStatus $firewallModuleStatus)
- {
- $this->firewallModuleStatus = $firewallModuleStatus;
- }
- public function getFirewallModuleStatus()
- {
- return $this->firewallModuleStatus;
- }
- public function setHealthCheckModuleStatus(Google_Service_Manager_HealthCheckModuleStatus $healthCheckModuleStatus)
- {
- $this->healthCheckModuleStatus = $healthCheckModuleStatus;
- }
- public function getHealthCheckModuleStatus()
- {
- return $this->healthCheckModuleStatus;
- }
- public function setLbModuleStatus(Google_Service_Manager_LbModuleStatus $lbModuleStatus)
- {
- $this->lbModuleStatus = $lbModuleStatus;
- }
- public function getLbModuleStatus()
- {
- return $this->lbModuleStatus;
- }
- public function setNetworkModuleStatus(Google_Service_Manager_NetworkModuleStatus $networkModuleStatus)
- {
- $this->networkModuleStatus = $networkModuleStatus;
- }
- public function getNetworkModuleStatus()
- {
- return $this->networkModuleStatus;
- }
- public function setReplicaPoolModuleStatus(Google_Service_Manager_ReplicaPoolModuleStatus $replicaPoolModuleStatus)
- {
- $this->replicaPoolModuleStatus = $replicaPoolModuleStatus;
- }
- public function getReplicaPoolModuleStatus()
- {
- return $this->replicaPoolModuleStatus;
- }
- public function setState(Google_Service_Manager_DeployState $state)
- {
- $this->state = $state;
- }
- public function getState()
- {
- return $this->state;
- }
- public function setType($type)
- {
- $this->type = $type;
- }
- public function getType()
- {
- return $this->type;
- }
-}
-
-class Google_Service_Manager_NetworkInterface extends Google_Collection
-{
- protected $collection_key = 'accessConfigs';
- protected $internal_gapi_mappings = array(
- );
- protected $accessConfigsType = 'Google_Service_Manager_AccessConfig';
- protected $accessConfigsDataType = 'array';
- public $name;
- public $network;
- public $networkIp;
-
-
- public function setAccessConfigs($accessConfigs)
- {
- $this->accessConfigs = $accessConfigs;
- }
- public function getAccessConfigs()
- {
- return $this->accessConfigs;
- }
- public function setName($name)
- {
- $this->name = $name;
- }
- public function getName()
- {
- return $this->name;
- }
- public function setNetwork($network)
- {
- $this->network = $network;
- }
- public function getNetwork()
- {
- return $this->network;
- }
- public function setNetworkIp($networkIp)
- {
- $this->networkIp = $networkIp;
- }
- public function getNetworkIp()
- {
- return $this->networkIp;
- }
-}
-
-class Google_Service_Manager_NetworkModule extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- "iPv4Range" => "IPv4Range",
- );
- public $iPv4Range;
- public $description;
- public $gatewayIPv4;
-
-
- public function setIPv4Range($iPv4Range)
- {
- $this->iPv4Range = $iPv4Range;
- }
- public function getIPv4Range()
- {
- return $this->iPv4Range;
- }
- public function setDescription($description)
- {
- $this->description = $description;
- }
- public function getDescription()
- {
- return $this->description;
- }
- public function setGatewayIPv4($gatewayIPv4)
- {
- $this->gatewayIPv4 = $gatewayIPv4;
- }
- public function getGatewayIPv4()
- {
- return $this->gatewayIPv4;
- }
-}
-
-class Google_Service_Manager_NetworkModuleStatus extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $networkUrl;
-
-
- public function setNetworkUrl($networkUrl)
- {
- $this->networkUrl = $networkUrl;
- }
- public function getNetworkUrl()
- {
- return $this->networkUrl;
- }
-}
-
-class Google_Service_Manager_NewDisk extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- protected $attachmentType = 'Google_Service_Manager_DiskAttachment';
- protected $attachmentDataType = '';
- public $autoDelete;
- public $boot;
- protected $initializeParamsType = 'Google_Service_Manager_NewDiskInitializeParams';
- protected $initializeParamsDataType = '';
-
-
- public function setAttachment(Google_Service_Manager_DiskAttachment $attachment)
- {
- $this->attachment = $attachment;
- }
- public function getAttachment()
- {
- return $this->attachment;
- }
- public function setAutoDelete($autoDelete)
- {
- $this->autoDelete = $autoDelete;
- }
- public function getAutoDelete()
- {
- return $this->autoDelete;
- }
- public function setBoot($boot)
- {
- $this->boot = $boot;
- }
- public function getBoot()
- {
- return $this->boot;
- }
- public function setInitializeParams(Google_Service_Manager_NewDiskInitializeParams $initializeParams)
- {
- $this->initializeParams = $initializeParams;
- }
- public function getInitializeParams()
- {
- return $this->initializeParams;
- }
-}
-
-class Google_Service_Manager_NewDiskInitializeParams extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $diskSizeGb;
- public $diskType;
- public $sourceImage;
-
-
- public function setDiskSizeGb($diskSizeGb)
- {
- $this->diskSizeGb = $diskSizeGb;
- }
- public function getDiskSizeGb()
- {
- return $this->diskSizeGb;
- }
- public function setDiskType($diskType)
- {
- $this->diskType = $diskType;
- }
- public function getDiskType()
- {
- return $this->diskType;
- }
- public function setSourceImage($sourceImage)
- {
- $this->sourceImage = $sourceImage;
- }
- public function getSourceImage()
- {
- return $this->sourceImage;
- }
-}
-
-class Google_Service_Manager_ParamOverride extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $path;
- public $value;
-
-
- public function setPath($path)
- {
- $this->path = $path;
- }
- public function getPath()
- {
- return $this->path;
- }
- public function setValue($value)
- {
- $this->value = $value;
- }
- public function getValue()
- {
- return $this->value;
- }
-}
-
-class Google_Service_Manager_ReplicaPoolModule extends Google_Collection
-{
- protected $collection_key = 'healthChecks';
- protected $internal_gapi_mappings = array(
- );
- protected $envVariablesType = 'Google_Service_Manager_EnvVariable';
- protected $envVariablesDataType = 'map';
- public $healthChecks;
- public $numReplicas;
- protected $replicaPoolParamsType = 'Google_Service_Manager_ReplicaPoolParams';
- protected $replicaPoolParamsDataType = '';
- public $resourceView;
-
-
- public function setEnvVariables($envVariables)
- {
- $this->envVariables = $envVariables;
- }
- public function getEnvVariables()
- {
- return $this->envVariables;
- }
- public function setHealthChecks($healthChecks)
- {
- $this->healthChecks = $healthChecks;
- }
- public function getHealthChecks()
- {
- return $this->healthChecks;
- }
- public function setNumReplicas($numReplicas)
- {
- $this->numReplicas = $numReplicas;
- }
- public function getNumReplicas()
- {
- return $this->numReplicas;
- }
- public function setReplicaPoolParams(Google_Service_Manager_ReplicaPoolParams $replicaPoolParams)
- {
- $this->replicaPoolParams = $replicaPoolParams;
- }
- public function getReplicaPoolParams()
- {
- return $this->replicaPoolParams;
- }
- public function setResourceView($resourceView)
- {
- $this->resourceView = $resourceView;
- }
- public function getResourceView()
- {
- return $this->resourceView;
- }
-}
-
-class Google_Service_Manager_ReplicaPoolModuleEnvVariables extends Google_Model
-{
-}
-
-class Google_Service_Manager_ReplicaPoolModuleStatus extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- public $replicaPoolUrl;
- public $resourceViewUrl;
-
-
- public function setReplicaPoolUrl($replicaPoolUrl)
- {
- $this->replicaPoolUrl = $replicaPoolUrl;
- }
- public function getReplicaPoolUrl()
- {
- return $this->replicaPoolUrl;
- }
- public function setResourceViewUrl($resourceViewUrl)
- {
- $this->resourceViewUrl = $resourceViewUrl;
- }
- public function getResourceViewUrl()
- {
- return $this->resourceViewUrl;
- }
-}
-
-class Google_Service_Manager_ReplicaPoolParams extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- protected $v1beta1Type = 'Google_Service_Manager_ReplicaPoolParamsV1Beta1';
- protected $v1beta1DataType = '';
-
-
- public function setV1beta1(Google_Service_Manager_ReplicaPoolParamsV1Beta1 $v1beta1)
- {
- $this->v1beta1 = $v1beta1;
- }
- public function getV1beta1()
- {
- return $this->v1beta1;
- }
-}
-
-class Google_Service_Manager_ReplicaPoolParamsV1Beta1 extends Google_Collection
-{
- protected $collection_key = 'serviceAccounts';
- protected $internal_gapi_mappings = array(
- );
- public $autoRestart;
- public $baseInstanceName;
- public $canIpForward;
- public $description;
- protected $disksToAttachType = 'Google_Service_Manager_ExistingDisk';
- protected $disksToAttachDataType = 'array';
- protected $disksToCreateType = 'Google_Service_Manager_NewDisk';
- protected $disksToCreateDataType = 'array';
- public $initAction;
- public $machineType;
- protected $metadataType = 'Google_Service_Manager_Metadata';
- protected $metadataDataType = '';
- protected $networkInterfacesType = 'Google_Service_Manager_NetworkInterface';
- protected $networkInterfacesDataType = 'array';
- public $onHostMaintenance;
- protected $serviceAccountsType = 'Google_Service_Manager_ServiceAccount';
- protected $serviceAccountsDataType = 'array';
- protected $tagsType = 'Google_Service_Manager_Tag';
- protected $tagsDataType = '';
- public $zone;
-
-
- public function setAutoRestart($autoRestart)
- {
- $this->autoRestart = $autoRestart;
- }
- public function getAutoRestart()
- {
- return $this->autoRestart;
- }
- public function setBaseInstanceName($baseInstanceName)
- {
- $this->baseInstanceName = $baseInstanceName;
- }
- public function getBaseInstanceName()
- {
- return $this->baseInstanceName;
- }
- public function setCanIpForward($canIpForward)
- {
- $this->canIpForward = $canIpForward;
- }
- public function getCanIpForward()
- {
- return $this->canIpForward;
- }
- public function setDescription($description)
- {
- $this->description = $description;
- }
- public function getDescription()
- {
- return $this->description;
- }
- public function setDisksToAttach($disksToAttach)
- {
- $this->disksToAttach = $disksToAttach;
- }
- public function getDisksToAttach()
- {
- return $this->disksToAttach;
- }
- public function setDisksToCreate($disksToCreate)
- {
- $this->disksToCreate = $disksToCreate;
- }
- public function getDisksToCreate()
- {
- return $this->disksToCreate;
- }
- public function setInitAction($initAction)
- {
- $this->initAction = $initAction;
- }
- public function getInitAction()
- {
- return $this->initAction;
- }
- public function setMachineType($machineType)
- {
- $this->machineType = $machineType;
- }
- public function getMachineType()
- {
- return $this->machineType;
- }
- public function setMetadata(Google_Service_Manager_Metadata $metadata)
- {
- $this->metadata = $metadata;
- }
- public function getMetadata()
- {
- return $this->metadata;
- }
- public function setNetworkInterfaces($networkInterfaces)
- {
- $this->networkInterfaces = $networkInterfaces;
- }
- public function getNetworkInterfaces()
- {
- return $this->networkInterfaces;
- }
- public function setOnHostMaintenance($onHostMaintenance)
- {
- $this->onHostMaintenance = $onHostMaintenance;
- }
- public function getOnHostMaintenance()
- {
- return $this->onHostMaintenance;
- }
- public function setServiceAccounts($serviceAccounts)
- {
- $this->serviceAccounts = $serviceAccounts;
- }
- public function getServiceAccounts()
- {
- return $this->serviceAccounts;
- }
- public function setTags(Google_Service_Manager_Tag $tags)
- {
- $this->tags = $tags;
- }
- public function getTags()
- {
- return $this->tags;
- }
- public function setZone($zone)
- {
- $this->zone = $zone;
- }
- public function getZone()
- {
- return $this->zone;
- }
-}
-
-class Google_Service_Manager_ServiceAccount extends Google_Collection
-{
- protected $collection_key = 'scopes';
- protected $internal_gapi_mappings = array(
- );
- public $email;
- public $scopes;
-
-
- public function setEmail($email)
- {
- $this->email = $email;
- }
- public function getEmail()
- {
- return $this->email;
- }
- public function setScopes($scopes)
- {
- $this->scopes = $scopes;
- }
- public function getScopes()
- {
- return $this->scopes;
- }
-}
-
-class Google_Service_Manager_Tag extends Google_Collection
-{
- protected $collection_key = 'items';
- protected $internal_gapi_mappings = array(
- );
- public $fingerPrint;
- public $items;
-
-
- public function setFingerPrint($fingerPrint)
- {
- $this->fingerPrint = $fingerPrint;
- }
- public function getFingerPrint()
- {
- return $this->fingerPrint;
- }
- public function setItems($items)
- {
- $this->items = $items;
- }
- public function getItems()
- {
- return $this->items;
- }
-}
-
-class Google_Service_Manager_Template extends Google_Model
-{
- protected $internal_gapi_mappings = array(
- );
- protected $actionsType = 'Google_Service_Manager_Action';
- protected $actionsDataType = 'map';
- public $description;
- protected $modulesType = 'Google_Service_Manager_Module';
- protected $modulesDataType = 'map';
- public $name;
-
-
- public function setActions($actions)
- {
- $this->actions = $actions;
- }
- public function getActions()
- {
- return $this->actions;
- }
- public function setDescription($description)
- {
- $this->description = $description;
- }
- public function getDescription()
- {
- return $this->description;
- }
- public function setModules($modules)
- {
- $this->modules = $modules;
- }
- public function getModules()
- {
- return $this->modules;
- }
- public function setName($name)
- {
- $this->name = $name;
- }
- public function getName()
- {
- return $this->name;
- }
-}
-
-class Google_Service_Manager_TemplateActions extends Google_Model
-{
-}
-
-class Google_Service_Manager_TemplateModules extends Google_Model
-{
-}
-
-class Google_Service_Manager_TemplatesListResponse extends Google_Collection
-{
- protected $collection_key = 'resources';
- protected $internal_gapi_mappings = array(
- );
- public $nextPageToken;
- protected $resourcesType = 'Google_Service_Manager_Template';
- protected $resourcesDataType = 'array';
-
-
- public function setNextPageToken($nextPageToken)
- {
- $this->nextPageToken = $nextPageToken;
- }
- public function getNextPageToken()
- {
- return $this->nextPageToken;
- }
- public function setResources($resources)
- {
- $this->resources = $resources;
- }
- public function getResources()
- {
- return $this->resources;
- }
-}
diff --git a/wp-content/plugins/updraftplus/includes/Google/Service/Oauth2.php b/wp-content/plugins/updraftplus/includes/Google/Service/Oauth2.php
index 79f849e8..8be9c20f 100644
--- a/wp-content/plugins/updraftplus/includes/Google/Service/Oauth2.php
+++ b/wp-content/plugins/updraftplus/includes/Google/Service/Oauth2.php
@@ -45,6 +45,8 @@ class UDP_Google_Service_Oauth2 extends UDP_Google_Service
public $userinfo;
public $userinfo_v2_me;
+
+ private $serviceName;
private $base_methods;
/**
diff --git a/wp-content/plugins/updraftplus/includes/Google/Service/Resource.php b/wp-content/plugins/updraftplus/includes/Google/Service/Resource.php
index 3dde8915..6dcaefe7 100644
--- a/wp-content/plugins/updraftplus/includes/Google/Service/Resource.php
+++ b/wp-content/plugins/updraftplus/includes/Google/Service/Resource.php
@@ -93,7 +93,7 @@ public function call($name, $arguments, $expected_class = null)
throw new Google_Exception(
"Unknown function: " .
- "{$this->serviceName}->{$this->resourceName}->{$name}()"
+ "{$this->serviceName}->{$this->resourceName}->{$name}()" // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
);
}
$method = $this->methods[$name];
@@ -145,7 +145,7 @@ public function call($name, $arguments, $expected_class = null)
'parameter' => $key
)
);
- throw new Google_Exception("($name) unknown parameter: '$key'");
+ throw new Google_Exception("($name) unknown parameter: '$key'"); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
}
@@ -163,7 +163,7 @@ public function call($name, $arguments, $expected_class = null)
'parameter' => $paramName
)
);
- throw new Google_Exception("($name) missing required param: '$paramName'");
+ throw new Google_Exception("($name) missing required param: '$paramName'"); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
if (isset($parameters[$paramName])) {
$value = $parameters[$paramName];
diff --git a/wp-content/plugins/updraftplus/includes/Google/Service/Storage.php b/wp-content/plugins/updraftplus/includes/Google/Service/Storage.php
index f9cfc4cd..ea78bd18 100644
--- a/wp-content/plugins/updraftplus/includes/Google/Service/Storage.php
+++ b/wp-content/plugins/updraftplus/includes/Google/Service/Storage.php
@@ -43,6 +43,12 @@ class UDP_Google_Service_Storage extends UDP_Google_Service
const DEVSTORAGE_READ_WRITE =
"https://www.googleapis.com/auth/devstorage.read_write";
+ /**
+ * Google storage service name. The default value is drive.
+ * @var String
+ */
+ protected $serviceName;
+
public $bucketAccessControls;
public $buckets;
public $channels;
diff --git a/wp-content/plugins/updraftplus/includes/Google/Signer/P12.php b/wp-content/plugins/updraftplus/includes/Google/Signer/P12.php
index 1fb9ec00..c0026a97 100644
--- a/wp-content/plugins/updraftplus/includes/Google/Signer/P12.php
+++ b/wp-content/plugins/updraftplus/includes/Google/Signer/P12.php
@@ -55,7 +55,7 @@ public function __construct($p12, $password)
throw new Google_Auth_Exception(
"Unable to parse the p12 file. " .
"Is this a .p12 file? Is the password correct? OpenSSL error: " .
- openssl_error_string()
+ openssl_error_string() // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
);
}
// TODO(beaton): is this part of the contract for the openssl_pkcs12_read
diff --git a/wp-content/plugins/updraftplus/includes/Google/Verifier/Pem.php b/wp-content/plugins/updraftplus/includes/Google/Verifier/Pem.php
index 6fa46f13..03bbda5e 100644
--- a/wp-content/plugins/updraftplus/includes/Google/Verifier/Pem.php
+++ b/wp-content/plugins/updraftplus/includes/Google/Verifier/Pem.php
@@ -43,7 +43,7 @@ public function __construct($pem)
}
$this->publicKey = openssl_x509_read($pem);
if (!$this->publicKey) {
- throw new Google_Auth_Exception("Unable to parse PEM: $pem");
+ throw new Google_Auth_Exception("Unable to parse PEM: $pem"); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
}
@@ -69,7 +69,7 @@ public function verify($data, $signature)
$hash = defined("OPENSSL_ALGO_SHA256") ? OPENSSL_ALGO_SHA256 : "sha256";
$status = openssl_verify($data, $signature, $this->publicKey, $hash);
if ($status === -1) {
- throw new Google_Auth_Exception('Signature verification error: ' . openssl_error_string());
+ throw new Google_Auth_Exception('Signature verification error: ' . openssl_error_string()); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Error message to be escaped when caught and printed.
}
return $status === 1;
}
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/Archive/Tar.php b/wp-content/plugins/updraftplus/includes/PEAR/Archive/Tar.php
deleted file mode 100644
index 0bd1c6ca..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/Archive/Tar.php
+++ /dev/null
@@ -1,2421 +0,0 @@
-
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * @category File_Formats
- * @package Archive_Tar
- * @author Vincent Blavet
- * @copyright 1997-2010 The Authors
- * @license http://www.opensource.org/licenses/bsd-license.php New BSD License
- * @version CVS: $Id$
- * @link http://pear.php.net/package/Archive_Tar
- */
-
-// If the PEAR class cannot be loaded via the autoloader,
-// then try to require_once it from the PHP include path.
-if (!class_exists('PEAR')) {
- require_once 'PEAR.php';
-}
-
-define('ARCHIVE_TAR_ATT_SEPARATOR', 90001);
-define('ARCHIVE_TAR_END_BLOCK', pack("a512", ''));
-
-if (!function_exists('gzopen') && function_exists('gzopen64')) {
- function gzopen($filename, $mode, $use_include_path = 0)
- {
- return gzopen64($filename, $mode, $use_include_path);
- }
-}
-
-if (!function_exists('gztell') && function_exists('gztell64')) {
- function gztell($zp)
- {
- return gztell64($zp);
- }
-}
-
-if (!function_exists('gzseek') && function_exists('gzseek64')) {
- function gzseek($zp, $offset, $whence = SEEK_SET)
- {
- return gzseek64($zp, $offset, $whence);
- }
-}
-
-/**
- * Creates a (compressed) Tar archive
- *
- * @package Archive_Tar
- * @author Vincent Blavet
- * @license http://www.opensource.org/licenses/bsd-license.php New BSD License
- * @version $Revision$
- */
-class Archive_Tar extends PEAR
-{
- /**
- * @var string Name of the Tar
- */
- public $_tarname = '';
-
- /**
- * @var boolean if true, the Tar file will be gzipped
- */
- public $_compress = false;
-
- /**
- * @var string Type of compression : 'none', 'gz', 'bz2' or 'lzma2'
- */
- public $_compress_type = 'none';
-
- /**
- * @var string Explode separator
- */
- public $_separator = ' ';
-
- /**
- * @var file descriptor
- */
- public $_file = 0;
-
- /**
- * @var string Local Tar name of a remote Tar (http:// or ftp://)
- */
- public $_temp_tarname = '';
-
- /**
- * @var string regular expression for ignoring files or directories
- */
- public $_ignore_regexp = '';
-
- /**
- * @var object PEAR_Error object
- */
- public $error_object = null;
-
- /**
- * Format for data extraction
- *
- * @var string
- */
- public $_fmt ='';
- /**
- * Archive_Tar Class constructor. This flavour of the constructor only
- * declare a new Archive_Tar object, identifying it by the name of the
- * tar file.
- * If the compress argument is set the tar will be read or created as a
- * gzip or bz2 compressed TAR file.
- *
- * @param string $p_tarname The name of the tar archive to create
- * @param string $p_compress can be null, 'gz', 'bz2' or 'lzma2'. This
- * parameter indicates if gzip, bz2 or lzma2 compression
- * is required. For compatibility reason the
- * boolean value 'true' means 'gz'.
- *
- * @return bool
- */
- public function __construct($p_tarname, $p_compress = null)
- {
- parent::__construct();
-
- $this->_compress = false;
- $this->_compress_type = 'none';
- if (($p_compress === null) || ($p_compress == '')) {
- if (@file_exists($p_tarname)) {
- if ($fp = @fopen($p_tarname, "rb")) {
- // look for gzip magic cookie
- $data = fread($fp, 2);
- fclose($fp);
- if ($data == "\37\213") {
- $this->_compress = true;
- $this->_compress_type = 'gz';
- // No sure it's enought for a magic code ....
- } elseif ($data == "BZ") {
- $this->_compress = true;
- $this->_compress_type = 'bz2';
- } elseif (file_get_contents($p_tarname, false, null, 1, 4) == '7zXZ') {
- $this->_compress = true;
- $this->_compress_type = 'lzma2';
- }
- }
- } else {
- // probably a remote file or some file accessible
- // through a stream interface
- if (substr($p_tarname, -2) == 'gz') {
- $this->_compress = true;
- $this->_compress_type = 'gz';
- } elseif ((substr($p_tarname, -3) == 'bz2') ||
- (substr($p_tarname, -2) == 'bz')
- ) {
- $this->_compress = true;
- $this->_compress_type = 'bz2';
- } else {
- if (substr($p_tarname, -2) == 'xz') {
- $this->_compress = true;
- $this->_compress_type = 'lzma2';
- }
- }
- }
- } else {
- if (($p_compress === true) || ($p_compress == 'gz')) {
- $this->_compress = true;
- $this->_compress_type = 'gz';
- } else {
- if ($p_compress == 'bz2') {
- $this->_compress = true;
- $this->_compress_type = 'bz2';
- } else {
- if ($p_compress == 'lzma2') {
- $this->_compress = true;
- $this->_compress_type = 'lzma2';
- } else {
- $this->_error(
- "Unsupported compression type '$p_compress'\n" .
- "Supported types are 'gz', 'bz2' and 'lzma2'.\n"
- );
- return false;
- }
- }
- }
- }
- $this->_tarname = $p_tarname;
- if ($this->_compress) { // assert zlib or bz2 or xz extension support
- if ($this->_compress_type == 'gz') {
- $extname = 'zlib';
- } else {
- if ($this->_compress_type == 'bz2') {
- $extname = 'bz2';
- } else {
- if ($this->_compress_type == 'lzma2') {
- $extname = 'xz';
- }
- }
- }
-
- if (!extension_loaded($extname)) {
- PEAR::loadExtension($extname);
- }
- if (!extension_loaded($extname)) {
- $this->_error(
- "The extension '$extname' couldn't be found.\n" .
- "Please make sure your version of PHP was built " .
- "with '$extname' support.\n"
- );
- return false;
- }
- }
-
-
- if (version_compare(PHP_VERSION, "5.5.0-dev") < 0) {
- $this->_fmt = "a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/" .
- "a8checksum/a1typeflag/a100link/a6magic/a2version/" .
- "a32uname/a32gname/a8devmajor/a8devminor/a131prefix";
- } else {
- $this->_fmt = "Z100filename/Z8mode/Z8uid/Z8gid/Z12size/Z12mtime/" .
- "Z8checksum/Z1typeflag/Z100link/Z6magic/Z2version/" .
- "Z32uname/Z32gname/Z8devmajor/Z8devminor/Z131prefix";
- }
-
-
- }
-
- public function __destruct()
- {
- $this->_close();
- // ----- Look for a local copy to delete
- if ($this->_temp_tarname != '') {
- @unlink($this->_temp_tarname);
- }
- }
-
- /**
- * This method creates the archive file and add the files / directories
- * that are listed in $p_filelist.
- * If a file with the same name exist and is writable, it is replaced
- * by the new tar.
- * The method return false and a PEAR error text.
- * The $p_filelist parameter can be an array of string, each string
- * representing a filename or a directory name with their path if
- * needed. It can also be a single string with names separated by a
- * single blank.
- * For each directory added in the archive, the files and
- * sub-directories are also added.
- * See also createModify() method for more details.
- *
- * @param array $p_filelist An array of filenames and directory names, or a
- * single string with names separated by a single
- * blank space.
- *
- * @return true on success, false on error.
- * @see createModify()
- */
- public function create($p_filelist)
- {
- return $this->createModify($p_filelist, '', '');
- }
-
- /**
- * This method add the files / directories that are listed in $p_filelist in
- * the archive. If the archive does not exist it is created.
- * The method return false and a PEAR error text.
- * The files and directories listed are only added at the end of the archive,
- * even if a file with the same name is already archived.
- * See also createModify() method for more details.
- *
- * @param array $p_filelist An array of filenames and directory names, or a
- * single string with names separated by a single
- * blank space.
- *
- * @return true on success, false on error.
- * @see createModify()
- * @access public
- */
- public function add($p_filelist)
- {
- return $this->addModify($p_filelist, '', '');
- }
-
- /**
- * @param string $p_path
- * @param bool $p_preserve
- * @return bool
- */
- public function extract($p_path = '', $p_preserve = false)
- {
- return $this->extractModify($p_path, '', $p_preserve);
- }
-
- /**
- * @return array|int
- */
- public function listContent()
- {
- $v_list_detail = array();
-
- if ($this->_openRead()) {
- if (!$this->_extractList('', $v_list_detail, "list", '', '')) {
- unset($v_list_detail);
- $v_list_detail = 0;
- }
- $this->_close();
- }
-
- return $v_list_detail;
- }
-
- /**
- * This method creates the archive file and add the files / directories
- * that are listed in $p_filelist.
- * If the file already exists and is writable, it is replaced by the
- * new tar. It is a create and not an add. If the file exists and is
- * read-only or is a directory it is not replaced. The method return
- * false and a PEAR error text.
- * The $p_filelist parameter can be an array of string, each string
- * representing a filename or a directory name with their path if
- * needed. It can also be a single string with names separated by a
- * single blank.
- * The path indicated in $p_remove_dir will be removed from the
- * memorized path of each file / directory listed when this path
- * exists. By default nothing is removed (empty path '')
- * The path indicated in $p_add_dir will be added at the beginning of
- * the memorized path of each file / directory listed. However it can
- * be set to empty ''. The adding of a path is done after the removing
- * of path.
- * The path add/remove ability enables the user to prepare an archive
- * for extraction in a different path than the origin files are.
- * See also addModify() method for file adding properties.
- *
- * @param array $p_filelist An array of filenames and directory names,
- * or a single string with names separated by
- * a single blank space.
- * @param string $p_add_dir A string which contains a path to be added
- * to the memorized path of each element in
- * the list.
- * @param string $p_remove_dir A string which contains a path to be
- * removed from the memorized path of each
- * element in the list, when relevant.
- *
- * @return boolean true on success, false on error.
- * @see addModify()
- */
- public function createModify($p_filelist, $p_add_dir, $p_remove_dir = '')
- {
- $v_result = true;
-
- if (!$this->_openWrite()) {
- return false;
- }
-
- if ($p_filelist != '') {
- if (is_array($p_filelist)) {
- $v_list = $p_filelist;
- } elseif (is_string($p_filelist)) {
- $v_list = explode($this->_separator, $p_filelist);
- } else {
- $this->_cleanFile();
- $this->_error('Invalid file list');
- return false;
- }
-
- $v_result = $this->_addList($v_list, $p_add_dir, $p_remove_dir);
- }
-
- if ($v_result) {
- $this->_writeFooter();
- $this->_close();
- } else {
- $this->_cleanFile();
- }
-
- return $v_result;
- }
-
- /**
- * This method add the files / directories listed in $p_filelist at the
- * end of the existing archive. If the archive does not yet exists it
- * is created.
- * The $p_filelist parameter can be an array of string, each string
- * representing a filename or a directory name with their path if
- * needed. It can also be a single string with names separated by a
- * single blank.
- * The path indicated in $p_remove_dir will be removed from the
- * memorized path of each file / directory listed when this path
- * exists. By default nothing is removed (empty path '')
- * The path indicated in $p_add_dir will be added at the beginning of
- * the memorized path of each file / directory listed. However it can
- * be set to empty ''. The adding of a path is done after the removing
- * of path.
- * The path add/remove ability enables the user to prepare an archive
- * for extraction in a different path than the origin files are.
- * If a file/dir is already in the archive it will only be added at the
- * end of the archive. There is no update of the existing archived
- * file/dir. However while extracting the archive, the last file will
- * replace the first one. This results in a none optimization of the
- * archive size.
- * If a file/dir does not exist the file/dir is ignored. However an
- * error text is send to PEAR error.
- * If a file/dir is not readable the file/dir is ignored. However an
- * error text is send to PEAR error.
- *
- * @param array $p_filelist An array of filenames and directory
- * names, or a single string with names
- * separated by a single blank space.
- * @param string $p_add_dir A string which contains a path to be
- * added to the memorized path of each
- * element in the list.
- * @param string $p_remove_dir A string which contains a path to be
- * removed from the memorized path of
- * each element in the list, when
- * relevant.
- *
- * @return true on success, false on error.
- */
- public function addModify($p_filelist, $p_add_dir, $p_remove_dir = '')
- {
- $v_result = true;
-
- if (!$this->_isArchive()) {
- $v_result = $this->createModify(
- $p_filelist,
- $p_add_dir,
- $p_remove_dir
- );
- } else {
- if (is_array($p_filelist)) {
- $v_list = $p_filelist;
- } elseif (is_string($p_filelist)) {
- $v_list = explode($this->_separator, $p_filelist);
- } else {
- $this->_error('Invalid file list');
- return false;
- }
-
- $v_result = $this->_append($v_list, $p_add_dir, $p_remove_dir);
- }
-
- return $v_result;
- }
-
- /**
- * This method add a single string as a file at the
- * end of the existing archive. If the archive does not yet exists it
- * is created.
- *
- * @param string $p_filename A string which contains the full
- * filename path that will be associated
- * with the string.
- * @param string $p_string The content of the file added in
- * the archive.
- * @param bool|int $p_datetime A custom date/time (unix timestamp)
- * for the file (optional).
- * @param array $p_params An array of optional params:
- * stamp => the datetime (replaces
- * datetime above if it exists)
- * mode => the permissions on the
- * file (600 by default)
- * type => is this a link? See the
- * tar specification for details.
- * (default = regular file)
- * uid => the user ID of the file
- * (default = 0 = root)
- * gid => the group ID of the file
- * (default = 0 = root)
- *
- * @return true on success, false on error.
- */
- public function addString($p_filename, $p_string, $p_datetime = false, $p_params = array())
- {
- $p_stamp = @$p_params["stamp"] ? $p_params["stamp"] : ($p_datetime ? $p_datetime : time());
- $p_mode = @$p_params["mode"] ? $p_params["mode"] : 0600;
- $p_type = @$p_params["type"] ? $p_params["type"] : "";
- $p_uid = @$p_params["uid"] ? $p_params["uid"] : "";
- $p_gid = @$p_params["gid"] ? $p_params["gid"] : "";
- $v_result = true;
-
- if (!$this->_isArchive()) {
- if (!$this->_openWrite()) {
- return false;
- }
- $this->_close();
- }
-
- if (!$this->_openAppend()) {
- return false;
- }
-
- // Need to check the get back to the temporary file ? ....
- $v_result = $this->_addString($p_filename, $p_string, $p_datetime, $p_params);
-
- $this->_writeFooter();
-
- $this->_close();
-
- return $v_result;
- }
-
- /**
- * This method extract all the content of the archive in the directory
- * indicated by $p_path. When relevant the memorized path of the
- * files/dir can be modified by removing the $p_remove_path path at the
- * beginning of the file/dir path.
- * While extracting a file, if the directory path does not exists it is
- * created.
- * While extracting a file, if the file already exists it is replaced
- * without looking for last modification date.
- * While extracting a file, if the file already exists and is write
- * protected, the extraction is aborted.
- * While extracting a file, if a directory with the same name already
- * exists, the extraction is aborted.
- * While extracting a directory, if a file with the same name already
- * exists, the extraction is aborted.
- * While extracting a file/directory if the destination directory exist
- * and is write protected, or does not exist but can not be created,
- * the extraction is aborted.
- * If after extraction an extracted file does not show the correct
- * stored file size, the extraction is aborted.
- * When the extraction is aborted, a PEAR error text is set and false
- * is returned. However the result can be a partial extraction that may
- * need to be manually cleaned.
- *
- * @param string $p_path The path of the directory where the
- * files/dir need to by extracted.
- * @param string $p_remove_path Part of the memorized path that can be
- * removed if present at the beginning of
- * the file/dir path.
- * @param boolean $p_preserve Preserve user/group ownership of files
- *
- * @return boolean true on success, false on error.
- * @see extractList()
- */
- public function extractModify($p_path, $p_remove_path, $p_preserve = false)
- {
- $v_result = true;
- $v_list_detail = array();
-
- if ($v_result = $this->_openRead()) {
- $v_result = $this->_extractList(
- $p_path,
- $v_list_detail,
- "complete",
- 0,
- $p_remove_path,
- $p_preserve
- );
- $this->_close();
- }
-
- return $v_result;
- }
-
- /**
- * This method extract from the archive one file identified by $p_filename.
- * The return value is a string with the file content, or NULL on error.
- *
- * @param string $p_filename The path of the file to extract in a string.
- *
- * @return a string with the file content or NULL.
- */
- public function extractInString($p_filename)
- {
- if ($this->_openRead()) {
- $v_result = $this->_extractInString($p_filename);
- $this->_close();
- } else {
- $v_result = null;
- }
-
- return $v_result;
- }
-
- /**
- * This method extract from the archive only the files indicated in the
- * $p_filelist. These files are extracted in the current directory or
- * in the directory indicated by the optional $p_path parameter.
- * If indicated the $p_remove_path can be used in the same way as it is
- * used in extractModify() method.
- *
- * @param array $p_filelist An array of filenames and directory names,
- * or a single string with names separated
- * by a single blank space.
- * @param string $p_path The path of the directory where the
- * files/dir need to by extracted.
- * @param string $p_remove_path Part of the memorized path that can be
- * removed if present at the beginning of
- * the file/dir path.
- * @param boolean $p_preserve Preserve user/group ownership of files
- *
- * @return true on success, false on error.
- * @see extractModify()
- */
- public function extractList($p_filelist, $p_path = '', $p_remove_path = '', $p_preserve = false)
- {
- $v_result = true;
- $v_list_detail = array();
-
- if (is_array($p_filelist)) {
- $v_list = $p_filelist;
- } elseif (is_string($p_filelist)) {
- $v_list = explode($this->_separator, $p_filelist);
- } else {
- $this->_error('Invalid string list');
- return false;
- }
-
- if ($v_result = $this->_openRead()) {
- $v_result = $this->_extractList(
- $p_path,
- $v_list_detail,
- "partial",
- $v_list,
- $p_remove_path,
- $p_preserve
- );
- $this->_close();
- }
-
- return $v_result;
- }
-
- /**
- * This method set specific attributes of the archive. It uses a variable
- * list of parameters, in the format attribute code + attribute values :
- * $arch->setAttribute(ARCHIVE_TAR_ATT_SEPARATOR, ',');
- *
- * @return true on success, false on error.
- */
- public function setAttribute()
- {
- $v_result = true;
-
- // ----- Get the number of variable list of arguments
- if (($v_size = func_num_args()) == 0) {
- return true;
- }
-
- // ----- Get the arguments
- $v_att_list = func_get_args();
-
- // ----- Read the attributes
- $i = 0;
- while ($i < $v_size) {
-
- // ----- Look for next option
- switch ($v_att_list[$i]) {
- // ----- Look for options that request a string value
- case ARCHIVE_TAR_ATT_SEPARATOR :
- // ----- Check the number of parameters
- if (($i + 1) >= $v_size) {
- $this->_error(
- 'Invalid number of parameters for '
- . 'attribute ARCHIVE_TAR_ATT_SEPARATOR'
- );
- return false;
- }
-
- // ----- Get the value
- $this->_separator = $v_att_list[$i + 1];
- $i++;
- break;
-
- default :
- $this->_error('Unknown attribute code ' . $v_att_list[$i] . '');
- return false;
- }
-
- // ----- Next attribute
- $i++;
- }
-
- return $v_result;
- }
-
- /**
- * This method sets the regular expression for ignoring files and directories
- * at import, for example:
- * $arch->setIgnoreRegexp("#CVS|\.svn#");
- *
- * @param string $regexp regular expression defining which files or directories to ignore
- */
- public function setIgnoreRegexp($regexp)
- {
- $this->_ignore_regexp = $regexp;
- }
-
- /**
- * This method sets the regular expression for ignoring all files and directories
- * matching the filenames in the array list at import, for example:
- * $arch->setIgnoreList(array('CVS', '.svn', 'bin/tool'));
- *
- * @param array $list a list of file or directory names to ignore
- *
- * @access public
- */
- public function setIgnoreList($list)
- {
- $regexp = str_replace(array('#', '.', '^', '$'), array('\#', '\.', '\^', '\$'), $list);
- $regexp = '#/' . join('$|/', $list) . '#';
- $this->setIgnoreRegexp($regexp);
- }
-
- /**
- * @param string $p_message
- */
- public function _error($p_message)
- {
- $this->error_object = $this->raiseError($p_message);
- }
-
- /**
- * @param string $p_message
- */
- public function _warning($p_message)
- {
- $this->error_object = $this->raiseError($p_message);
- }
-
- /**
- * @param string $p_filename
- * @return bool
- */
- public function _isArchive($p_filename = null)
- {
- if ($p_filename == null) {
- $p_filename = $this->_tarname;
- }
- clearstatcache();
- return @is_file($p_filename) && !@is_link($p_filename);
- }
-
- /**
- * @return bool
- */
- public function _openWrite()
- {
- if ($this->_compress_type == 'gz' && function_exists('gzopen')) {
- $this->_file = @gzopen($this->_tarname, "wb9");
- } else {
- if ($this->_compress_type == 'bz2' && function_exists('bzopen')) {
- $this->_file = @bzopen($this->_tarname, "w");
- } else {
- if ($this->_compress_type == 'lzma2' && function_exists('xzopen')) {
- $this->_file = @xzopen($this->_tarname, 'w');
- } else {
- if ($this->_compress_type == 'none') {
- $this->_file = @fopen($this->_tarname, "wb");
- } else {
- $this->_error(
- 'Unknown or missing compression type ('
- . $this->_compress_type . ')'
- );
- return false;
- }
- }
- }
- }
-
- if ($this->_file == 0) {
- $this->_error(
- 'Unable to open in write mode \''
- . $this->_tarname . '\''
- );
- return false;
- }
-
- return true;
- }
-
- /**
- * @return bool
- */
- public function _openRead()
- {
- if (strtolower(substr($this->_tarname, 0, 7)) == 'http://') {
-
- // ----- Look if a local copy need to be done
- if ($this->_temp_tarname == '') {
- $this->_temp_tarname = uniqid('tar') . '.tmp';
- if (!$v_file_from = @fopen($this->_tarname, 'rb')) {
- $this->_error(
- 'Unable to open in read mode \''
- . $this->_tarname . '\''
- );
- $this->_temp_tarname = '';
- return false;
- }
- if (!$v_file_to = @fopen($this->_temp_tarname, 'wb')) {
- $this->_error(
- 'Unable to open in write mode \''
- . $this->_temp_tarname . '\''
- );
- $this->_temp_tarname = '';
- return false;
- }
- while ($v_data = @fread($v_file_from, 1024)) {
- @fwrite($v_file_to, $v_data);
- }
- @fclose($v_file_from);
- @fclose($v_file_to);
- }
-
- // ----- File to open if the local copy
- $v_filename = $this->_temp_tarname;
- } else {
- // ----- File to open if the normal Tar file
-
- $v_filename = $this->_tarname;
- }
-
- if ($this->_compress_type == 'gz' && function_exists('gzopen')) {
- $this->_file = @gzopen($v_filename, "rb");
- } else {
- if ($this->_compress_type == 'bz2' && function_exists('bzopen')) {
- $this->_file = @bzopen($v_filename, "r");
- } else {
- if ($this->_compress_type == 'lzma2' && function_exists('xzopen')) {
- $this->_file = @xzopen($v_filename, "r");
- } else {
- if ($this->_compress_type == 'none') {
- $this->_file = @fopen($v_filename, "rb");
- } else {
- $this->_error(
- 'Unknown or missing compression type ('
- . $this->_compress_type . ')'
- );
- return false;
- }
- }
- }
- }
-
- if ($this->_file == 0) {
- $this->_error('Unable to open in read mode \'' . $v_filename . '\'');
- return false;
- }
-
- return true;
- }
-
- /**
- * @return bool
- */
- public function _openReadWrite()
- {
- if ($this->_compress_type == 'gz') {
- $this->_file = @gzopen($this->_tarname, "r+b");
- } else {
- if ($this->_compress_type == 'bz2') {
- $this->_error(
- 'Unable to open bz2 in read/write mode \''
- . $this->_tarname . '\' (limitation of bz2 extension)'
- );
- return false;
- } else {
- if ($this->_compress_type == 'lzma2') {
- $this->_error(
- 'Unable to open lzma2 in read/write mode \''
- . $this->_tarname . '\' (limitation of lzma2 extension)'
- );
- return false;
- } else {
- if ($this->_compress_type == 'none') {
- $this->_file = @fopen($this->_tarname, "r+b");
- } else {
- $this->_error(
- 'Unknown or missing compression type ('
- . $this->_compress_type . ')'
- );
- return false;
- }
- }
- }
- }
-
- if ($this->_file == 0) {
- $this->_error(
- 'Unable to open in read/write mode \''
- . $this->_tarname . '\''
- );
- return false;
- }
-
- return true;
- }
-
- /**
- * @return bool
- */
- public function _close()
- {
- //if (isset($this->_file)) {
- if (is_resource($this->_file)) {
- if ($this->_compress_type == 'gz') {
- @gzclose($this->_file);
- } else {
- if ($this->_compress_type == 'bz2') {
- @bzclose($this->_file);
- } else {
- if ($this->_compress_type == 'lzma2') {
- @xzclose($this->_file);
- } else {
- if ($this->_compress_type == 'none') {
- @fclose($this->_file);
- } else {
- $this->_error(
- 'Unknown or missing compression type ('
- . $this->_compress_type . ')'
- );
- }
- }
- }
- }
-
- $this->_file = 0;
- }
-
- // ----- Look if a local copy need to be erase
- // Note that it might be interesting to keep the url for a time : ToDo
- if ($this->_temp_tarname != '') {
- @unlink($this->_temp_tarname);
- $this->_temp_tarname = '';
- }
-
- return true;
- }
-
- /**
- * @return bool
- */
- public function _cleanFile()
- {
- $this->_close();
-
- // ----- Look for a local copy
- if ($this->_temp_tarname != '') {
- // ----- Remove the local copy but not the remote tarname
- @unlink($this->_temp_tarname);
- $this->_temp_tarname = '';
- } else {
- // ----- Remove the local tarname file
- @unlink($this->_tarname);
- }
- $this->_tarname = '';
-
- return true;
- }
-
- /**
- * @param mixed $p_binary_data
- * @param integer $p_len
- * @return bool
- */
- public function _writeBlock($p_binary_data, $p_len = null)
- {
- if (is_resource($this->_file)) {
- if ($p_len === null) {
- if ($this->_compress_type == 'gz') {
- @gzputs($this->_file, $p_binary_data);
- } else {
- if ($this->_compress_type == 'bz2') {
- @bzwrite($this->_file, $p_binary_data);
- } else {
- if ($this->_compress_type == 'lzma2') {
- @xzwrite($this->_file, $p_binary_data);
- } else {
- if ($this->_compress_type == 'none') {
- @fputs($this->_file, $p_binary_data);
- } else {
- $this->_error(
- 'Unknown or missing compression type ('
- . $this->_compress_type . ')'
- );
- }
- }
- }
- }
- } else {
- if ($this->_compress_type == 'gz') {
- @gzputs($this->_file, $p_binary_data, $p_len);
- } else {
- if ($this->_compress_type == 'bz2') {
- @bzwrite($this->_file, $p_binary_data, $p_len);
- } else {
- if ($this->_compress_type == 'lzma2') {
- @xzwrite($this->_file, $p_binary_data, $p_len);
- } else {
- if ($this->_compress_type == 'none') {
- @fputs($this->_file, $p_binary_data, $p_len);
- } else {
- $this->_error(
- 'Unknown or missing compression type ('
- . $this->_compress_type . ')'
- );
- }
- }
- }
- }
- }
- }
- return true;
- }
-
- /**
- * @return null|string
- */
- public function _readBlock()
- {
- $v_block = null;
- if (is_resource($this->_file)) {
- if ($this->_compress_type == 'gz') {
- $v_block = @gzread($this->_file, 512);
- } else {
- if ($this->_compress_type == 'bz2') {
- $v_block = @bzread($this->_file, 512);
- } else {
- if ($this->_compress_type == 'lzma2') {
- $v_block = @xzread($this->_file, 512);
- } else {
- if ($this->_compress_type == 'none') {
- $v_block = @fread($this->_file, 512);
- } else {
- $this->_error(
- 'Unknown or missing compression type ('
- . $this->_compress_type . ')'
- );
- }
- }
- }
- }
- }
- return $v_block;
- }
-
- /**
- * @param null $p_len
- * @return bool
- */
- public function _jumpBlock($p_len = null)
- {
- if (is_resource($this->_file)) {
- if ($p_len === null) {
- $p_len = 1;
- }
-
- if ($this->_compress_type == 'gz') {
- @gzseek($this->_file, gztell($this->_file) + ($p_len * 512));
- } else {
- if ($this->_compress_type == 'bz2') {
- // ----- Replace missing bztell() and bzseek()
- for ($i = 0; $i < $p_len; $i++) {
- $this->_readBlock();
- }
- } else {
- if ($this->_compress_type == 'lzma2') {
- // ----- Replace missing xztell() and xzseek()
- for ($i = 0; $i < $p_len; $i++) {
- $this->_readBlock();
- }
- } else {
- if ($this->_compress_type == 'none') {
- @fseek($this->_file, $p_len * 512, SEEK_CUR);
- } else {
- $this->_error(
- 'Unknown or missing compression type ('
- . $this->_compress_type . ')'
- );
- }
- }
- }
- }
- }
- return true;
- }
-
- /**
- * @return bool
- */
- public function _writeFooter()
- {
- if (is_resource($this->_file)) {
- // ----- Write the last 0 filled block for end of archive
- $v_binary_data = pack('a1024', '');
- $this->_writeBlock($v_binary_data);
- }
- return true;
- }
-
- /**
- * @param array $p_list
- * @param string $p_add_dir
- * @param string $p_remove_dir
- * @return bool
- */
- public function _addList($p_list, $p_add_dir, $p_remove_dir)
- {
- $v_result = true;
- $v_header = array();
-
- // ----- Remove potential windows directory separator
- $p_add_dir = $this->_translateWinPath($p_add_dir);
- $p_remove_dir = $this->_translateWinPath($p_remove_dir, false);
-
- if (!$this->_file) {
- $this->_error('Invalid file descriptor');
- return false;
- }
-
- if (sizeof($p_list) == 0) {
- return true;
- }
-
- foreach ($p_list as $v_filename) {
- if (!$v_result) {
- break;
- }
-
- // ----- Skip the current tar name
- if ($v_filename == $this->_tarname) {
- continue;
- }
-
- if ($v_filename == '') {
- continue;
- }
-
- // ----- ignore files and directories matching the ignore regular expression
- if ($this->_ignore_regexp && preg_match($this->_ignore_regexp, '/' . $v_filename)) {
- $this->_warning("File '$v_filename' ignored");
- continue;
- }
-
- if (!file_exists($v_filename) && !is_link($v_filename)) {
- $this->_warning("File '$v_filename' does not exist");
- continue;
- }
-
- // ----- Add the file or directory header
- if (!$this->_addFile($v_filename, $v_header, $p_add_dir, $p_remove_dir)) {
- return false;
- }
-
- if (@is_dir($v_filename) && !@is_link($v_filename)) {
- if (!($p_hdir = opendir($v_filename))) {
- $this->_warning("Directory '$v_filename' can not be read");
- continue;
- }
- while (false !== ($p_hitem = readdir($p_hdir))) {
- if (($p_hitem != '.') && ($p_hitem != '..')) {
- if ($v_filename != ".") {
- $p_temp_list[0] = $v_filename . '/' . $p_hitem;
- } else {
- $p_temp_list[0] = $p_hitem;
- }
-
- $v_result = $this->_addList(
- $p_temp_list,
- $p_add_dir,
- $p_remove_dir
- );
- }
- }
-
- unset($p_temp_list);
- unset($p_hdir);
- unset($p_hitem);
- }
- }
-
- return $v_result;
- }
-
- /**
- * @param string $p_filename
- * @param mixed $p_header
- * @param string $p_add_dir
- * @param string $p_remove_dir
- * @param null $v_stored_filename
- * @return bool
- */
- public function _addFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir, $v_stored_filename = null)
- {
- if (!$this->_file) {
- $this->_error('Invalid file descriptor');
- return false;
- }
-
- if ($p_filename == '') {
- $this->_error('Invalid file name');
- return false;
- }
-
- if (is_null($v_stored_filename)) {
- // ----- Calculate the stored filename
- $p_filename = $this->_translateWinPath($p_filename, false);
- $v_stored_filename = $p_filename;
-
- if (strcmp($p_filename, $p_remove_dir) == 0) {
- return true;
- }
-
- if ($p_remove_dir != '') {
- if (substr($p_remove_dir, -1) != '/') {
- $p_remove_dir .= '/';
- }
-
- if (substr($p_filename, 0, strlen($p_remove_dir)) == $p_remove_dir) {
- $v_stored_filename = substr($p_filename, strlen($p_remove_dir));
- }
- }
-
- $v_stored_filename = $this->_translateWinPath($v_stored_filename);
- if ($p_add_dir != '') {
- if (substr($p_add_dir, -1) == '/') {
- $v_stored_filename = $p_add_dir . $v_stored_filename;
- } else {
- $v_stored_filename = $p_add_dir . '/' . $v_stored_filename;
- }
- }
-
- $v_stored_filename = $this->_pathReduction($v_stored_filename);
- }
-
- if ($this->_isArchive($p_filename)) {
- if (($v_file = @fopen($p_filename, "rb")) == 0) {
- $this->_warning(
- "Unable to open file '" . $p_filename
- . "' in binary read mode"
- );
- return true;
- }
-
- if (!$this->_writeHeader($p_filename, $v_stored_filename)) {
- return false;
- }
-
- while (($v_buffer = fread($v_file, 512)) != '') {
- $v_binary_data = pack("a512", "$v_buffer");
- $this->_writeBlock($v_binary_data);
- }
-
- fclose($v_file);
- } else {
- // ----- Only header for dir
- if (!$this->_writeHeader($p_filename, $v_stored_filename)) {
- return false;
- }
- }
-
- return true;
- }
-
- /**
- * @param string $p_filename
- * @param string $p_string
- * @param bool $p_datetime
- * @param array $p_params
- * @return bool
- */
- public function _addString($p_filename, $p_string, $p_datetime = false, $p_params = array())
- {
- $p_stamp = @$p_params["stamp"] ? $p_params["stamp"] : ($p_datetime ? $p_datetime : time());
- $p_mode = @$p_params["mode"] ? $p_params["mode"] : 0600;
- $p_type = @$p_params["type"] ? $p_params["type"] : "";
- $p_uid = @$p_params["uid"] ? $p_params["uid"] : 0;
- $p_gid = @$p_params["gid"] ? $p_params["gid"] : 0;
- if (!$this->_file) {
- $this->_error('Invalid file descriptor');
- return false;
- }
-
- if ($p_filename == '') {
- $this->_error('Invalid file name');
- return false;
- }
-
- // ----- Calculate the stored filename
- $p_filename = $this->_translateWinPath($p_filename, false);
-
- // ----- If datetime is not specified, set current time
- if ($p_datetime === false) {
- $p_datetime = time();
- }
-
- if (!$this->_writeHeaderBlock(
- $p_filename,
- strlen($p_string),
- $p_stamp,
- $p_mode,
- $p_type,
- $p_uid,
- $p_gid
- )
- ) {
- return false;
- }
-
- $i = 0;
- while (($v_buffer = substr($p_string, (($i++) * 512), 512)) != '') {
- $v_binary_data = pack("a512", $v_buffer);
- $this->_writeBlock($v_binary_data);
- }
-
- return true;
- }
-
- /**
- * @param string $p_filename
- * @param string $p_stored_filename
- * @return bool
- */
- public function _writeHeader($p_filename, $p_stored_filename)
- {
- if ($p_stored_filename == '') {
- $p_stored_filename = $p_filename;
- }
- $v_reduce_filename = $this->_pathReduction($p_stored_filename);
-
- if (strlen($v_reduce_filename) > 99) {
- if (!$this->_writeLongHeader($v_reduce_filename)) {
- return false;
- }
- }
-
- $v_info = lstat($p_filename);
- $v_uid = sprintf("%07s", DecOct($v_info[4]));
- $v_gid = sprintf("%07s", DecOct($v_info[5]));
- $v_perms = sprintf("%07s", DecOct($v_info['mode'] & 000777));
-
- $v_mtime = sprintf("%011s", DecOct($v_info['mtime']));
-
- $v_linkname = '';
-
- if (@is_link($p_filename)) {
- $v_typeflag = '2';
- $v_linkname = readlink($p_filename);
- $v_size = sprintf("%011s", DecOct(0));
- } elseif (@is_dir($p_filename)) {
- $v_typeflag = "5";
- $v_size = sprintf("%011s", DecOct(0));
- } else {
- $v_typeflag = '0';
- clearstatcache();
- $v_size = sprintf("%011s", DecOct($v_info['size']));
- }
-
- $v_magic = 'ustar ';
-
- $v_version = ' ';
-
- if (function_exists('posix_getpwuid')) {
- $userinfo = posix_getpwuid($v_info[4]);
- $groupinfo = posix_getgrgid($v_info[5]);
-
- $v_uname = $userinfo['name'];
- $v_gname = $groupinfo['name'];
- } else {
- $v_uname = '';
- $v_gname = '';
- }
-
- $v_devmajor = '';
-
- $v_devminor = '';
-
- $v_prefix = '';
-
- $v_binary_data_first = pack(
- "a100a8a8a8a12a12",
- $v_reduce_filename,
- $v_perms,
- $v_uid,
- $v_gid,
- $v_size,
- $v_mtime
- );
- $v_binary_data_last = pack(
- "a1a100a6a2a32a32a8a8a155a12",
- $v_typeflag,
- $v_linkname,
- $v_magic,
- $v_version,
- $v_uname,
- $v_gname,
- $v_devmajor,
- $v_devminor,
- $v_prefix,
- ''
- );
-
- // ----- Calculate the checksum
- $v_checksum = 0;
- // ..... First part of the header
- for ($i = 0; $i < 148; $i++) {
- $v_checksum += ord(substr($v_binary_data_first, $i, 1));
- }
- // ..... Ignore the checksum value and replace it by ' ' (space)
- for ($i = 148; $i < 156; $i++) {
- $v_checksum += ord(' ');
- }
- // ..... Last part of the header
- for ($i = 156, $j = 0; $i < 512; $i++, $j++) {
- $v_checksum += ord(substr($v_binary_data_last, $j, 1));
- }
-
- // ----- Write the first 148 bytes of the header in the archive
- $this->_writeBlock($v_binary_data_first, 148);
-
- // ----- Write the calculated checksum
- $v_checksum = sprintf("%06s ", DecOct($v_checksum));
- $v_binary_data = pack("a8", $v_checksum);
- $this->_writeBlock($v_binary_data, 8);
-
- // ----- Write the last 356 bytes of the header in the archive
- $this->_writeBlock($v_binary_data_last, 356);
-
- return true;
- }
-
- /**
- * @param string $p_filename
- * @param int $p_size
- * @param int $p_mtime
- * @param int $p_perms
- * @param string $p_type
- * @param int $p_uid
- * @param int $p_gid
- * @return bool
- */
- public function _writeHeaderBlock(
- $p_filename,
- $p_size,
- $p_mtime = 0,
- $p_perms = 0,
- $p_type = '',
- $p_uid = 0,
- $p_gid = 0
- ) {
- $p_filename = $this->_pathReduction($p_filename);
-
- if (strlen($p_filename) > 99) {
- if (!$this->_writeLongHeader($p_filename)) {
- return false;
- }
- }
-
- if ($p_type == "5") {
- $v_size = sprintf("%011s", DecOct(0));
- } else {
- $v_size = sprintf("%011s", DecOct($p_size));
- }
-
- $v_uid = sprintf("%07s", DecOct($p_uid));
- $v_gid = sprintf("%07s", DecOct($p_gid));
- $v_perms = sprintf("%07s", DecOct($p_perms & 000777));
-
- $v_mtime = sprintf("%11s", DecOct($p_mtime));
-
- $v_linkname = '';
-
- $v_magic = 'ustar ';
-
- $v_version = ' ';
-
- if (function_exists('posix_getpwuid')) {
- $userinfo = posix_getpwuid($p_uid);
- $groupinfo = posix_getgrgid($p_gid);
-
- $v_uname = $userinfo['name'];
- $v_gname = $groupinfo['name'];
- } else {
- $v_uname = '';
- $v_gname = '';
- }
-
- $v_devmajor = '';
-
- $v_devminor = '';
-
- $v_prefix = '';
-
- $v_binary_data_first = pack(
- "a100a8a8a8a12A12",
- $p_filename,
- $v_perms,
- $v_uid,
- $v_gid,
- $v_size,
- $v_mtime
- );
- $v_binary_data_last = pack(
- "a1a100a6a2a32a32a8a8a155a12",
- $p_type,
- $v_linkname,
- $v_magic,
- $v_version,
- $v_uname,
- $v_gname,
- $v_devmajor,
- $v_devminor,
- $v_prefix,
- ''
- );
-
- // ----- Calculate the checksum
- $v_checksum = 0;
- // ..... First part of the header
- for ($i = 0; $i < 148; $i++) {
- $v_checksum += ord(substr($v_binary_data_first, $i, 1));
- }
- // ..... Ignore the checksum value and replace it by ' ' (space)
- for ($i = 148; $i < 156; $i++) {
- $v_checksum += ord(' ');
- }
- // ..... Last part of the header
- for ($i = 156, $j = 0; $i < 512; $i++, $j++) {
- $v_checksum += ord(substr($v_binary_data_last, $j, 1));
- }
-
- // ----- Write the first 148 bytes of the header in the archive
- $this->_writeBlock($v_binary_data_first, 148);
-
- // ----- Write the calculated checksum
- $v_checksum = sprintf("%06s ", DecOct($v_checksum));
- $v_binary_data = pack("a8", $v_checksum);
- $this->_writeBlock($v_binary_data, 8);
-
- // ----- Write the last 356 bytes of the header in the archive
- $this->_writeBlock($v_binary_data_last, 356);
-
- return true;
- }
-
- /**
- * @param string $p_filename
- * @return bool
- */
- public function _writeLongHeader($p_filename)
- {
- $v_size = sprintf("%11s ", DecOct(strlen($p_filename)));
-
- $v_typeflag = 'L';
-
- $v_linkname = '';
-
- $v_magic = '';
-
- $v_version = '';
-
- $v_uname = '';
-
- $v_gname = '';
-
- $v_devmajor = '';
-
- $v_devminor = '';
-
- $v_prefix = '';
-
- $v_binary_data_first = pack(
- "a100a8a8a8a12a12",
- '././@LongLink',
- 0,
- 0,
- 0,
- $v_size,
- 0
- );
- $v_binary_data_last = pack(
- "a1a100a6a2a32a32a8a8a155a12",
- $v_typeflag,
- $v_linkname,
- $v_magic,
- $v_version,
- $v_uname,
- $v_gname,
- $v_devmajor,
- $v_devminor,
- $v_prefix,
- ''
- );
-
- // ----- Calculate the checksum
- $v_checksum = 0;
- // ..... First part of the header
- for ($i = 0; $i < 148; $i++) {
- $v_checksum += ord(substr($v_binary_data_first, $i, 1));
- }
- // ..... Ignore the checksum value and replace it by ' ' (space)
- for ($i = 148; $i < 156; $i++) {
- $v_checksum += ord(' ');
- }
- // ..... Last part of the header
- for ($i = 156, $j = 0; $i < 512; $i++, $j++) {
- $v_checksum += ord(substr($v_binary_data_last, $j, 1));
- }
-
- // ----- Write the first 148 bytes of the header in the archive
- $this->_writeBlock($v_binary_data_first, 148);
-
- // ----- Write the calculated checksum
- $v_checksum = sprintf("%06s ", DecOct($v_checksum));
- $v_binary_data = pack("a8", $v_checksum);
- $this->_writeBlock($v_binary_data, 8);
-
- // ----- Write the last 356 bytes of the header in the archive
- $this->_writeBlock($v_binary_data_last, 356);
-
- // ----- Write the filename as content of the block
- $i = 0;
- while (($v_buffer = substr($p_filename, (($i++) * 512), 512)) != '') {
- $v_binary_data = pack("a512", "$v_buffer");
- $this->_writeBlock($v_binary_data);
- }
-
- return true;
- }
-
- /**
- * @param mixed $v_binary_data
- * @param mixed $v_header
- * @return bool
- */
- public function _readHeader($v_binary_data, &$v_header)
- {
- if (strlen($v_binary_data) == 0) {
- $v_header['filename'] = '';
- return true;
- }
-
- if (strlen($v_binary_data) != 512) {
- $v_header['filename'] = '';
- $this->_error('Invalid block size : ' . strlen($v_binary_data));
- return false;
- }
-
- if (!is_array($v_header)) {
- $v_header = array();
- }
- // ----- Calculate the checksum
- $v_checksum = 0;
- // ..... First part of the header
- $v_binary_split = str_split($v_binary_data);
- $v_checksum += array_sum(array_map('ord', array_slice($v_binary_split, 0, 148)));
- $v_checksum += array_sum(array_map('ord', array(' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',)));
- $v_checksum += array_sum(array_map('ord', array_slice($v_binary_split, 156, 512)));
-
-
- $v_data = unpack($this->_fmt, $v_binary_data);
-
- if (strlen($v_data["prefix"]) > 0) {
- $v_data["filename"] = "$v_data[prefix]/$v_data[filename]";
- }
-
- // ----- Extract the checksum
- $v_header['checksum'] = OctDec(trim($v_data['checksum']));
- if ($v_header['checksum'] != $v_checksum) {
- $v_header['filename'] = '';
-
- // ----- Look for last block (empty block)
- if (($v_checksum == 256) && ($v_header['checksum'] == 0)) {
- return true;
- }
-
- $this->_error(
- 'Invalid checksum for file "' . $v_data['filename']
- . '" : ' . $v_checksum . ' calculated, '
- . $v_header['checksum'] . ' expected'
- );
- return false;
- }
-
- // ----- Extract the properties
- $v_header['filename'] = rtrim($v_data['filename'], "\0");
- if ($this->_maliciousFilename($v_header['filename'])) {
- $this->_error(
- 'Malicious .tar detected, file "' . $v_header['filename'] .
- '" will not install in desired directory tree'
- );
- return false;
- }
- $v_header['mode'] = OctDec(trim($v_data['mode']));
- $v_header['uid'] = OctDec(trim($v_data['uid']));
- $v_header['gid'] = OctDec(trim($v_data['gid']));
- $v_header['size'] = $this->_tarRecToSize($v_data['size']);
- $v_header['mtime'] = OctDec(trim($v_data['mtime']));
- if (($v_header['typeflag'] = $v_data['typeflag']) == "5") {
- $v_header['size'] = 0;
- }
- $v_header['link'] = trim($v_data['link']);
- /* ----- All these fields are removed form the header because
- they do not carry interesting info
- $v_header[magic] = trim($v_data[magic]);
- $v_header[version] = trim($v_data[version]);
- $v_header[uname] = trim($v_data[uname]);
- $v_header[gname] = trim($v_data[gname]);
- $v_header[devmajor] = trim($v_data[devmajor]);
- $v_header[devminor] = trim($v_data[devminor]);
- */
-
- return true;
- }
-
- /**
- * Convert Tar record size to actual size
- *
- * @param string $tar_size
- * @return size of tar record in bytes
- */
- private function _tarRecToSize($tar_size)
- {
- /*
- * First byte of size has a special meaning if bit 7 is set.
- *
- * Bit 7 indicates base-256 encoding if set.
- * Bit 6 is the sign bit.
- * Bits 5:0 are most significant value bits.
- */
- $ch = ord($tar_size[0]);
- if ($ch & 0x80) {
- // Full 12-bytes record is required.
- $rec_str = $tar_size . "\x00";
-
- $size = ($ch & 0x40) ? -1 : 0;
- $size = ($size << 6) | ($ch & 0x3f);
-
- for ($num_ch = 1; $num_ch < 12; ++$num_ch) {
- $size = ($size * 256) + ord($rec_str[$num_ch]);
- }
-
- return $size;
-
- } else {
- return OctDec(trim($tar_size));
- }
- }
-
- /**
- * Detect and report a malicious file name
- *
- * @param string $file
- *
- * @return bool
- */
- private function _maliciousFilename($file)
- {
- if (strpos($file, '/../') !== false) {
- return true;
- }
- if (strpos($file, '../') === 0) {
- return true;
- }
- return false;
- }
-
- /**
- * @param $v_header
- * @return bool
- */
- public function _readLongHeader(&$v_header)
- {
- $v_filename = '';
- $v_filesize = $v_header['size'];
- $n = floor($v_header['size'] / 512);
- for ($i = 0; $i < $n; $i++) {
- $v_content = $this->_readBlock();
- $v_filename .= $v_content;
- }
- if (($v_header['size'] % 512) != 0) {
- $v_content = $this->_readBlock();
- $v_filename .= $v_content;
- }
-
- // ----- Read the next header
- $v_binary_data = $this->_readBlock();
-
- if (!$this->_readHeader($v_binary_data, $v_header)) {
- return false;
- }
-
- $v_filename = rtrim(substr($v_filename, 0, $v_filesize), "\0");
- $v_header['filename'] = $v_filename;
- if ($this->_maliciousFilename($v_filename)) {
- $this->_error(
- 'Malicious .tar detected, file "' . $v_filename .
- '" will not install in desired directory tree'
- );
- return false;
- }
-
- return true;
- }
-
- /**
- * This method extract from the archive one file identified by $p_filename.
- * The return value is a string with the file content, or null on error.
- *
- * @param string $p_filename The path of the file to extract in a string.
- *
- * @return a string with the file content or null.
- */
- private function _extractInString($p_filename)
- {
- $v_result_str = "";
-
- while (strlen($v_binary_data = $this->_readBlock()) != 0) {
- if (!$this->_readHeader($v_binary_data, $v_header)) {
- return null;
- }
-
- if ($v_header['filename'] == '') {
- continue;
- }
-
- // ----- Look for long filename
- if ($v_header['typeflag'] == 'L') {
- if (!$this->_readLongHeader($v_header)) {
- return null;
- }
- }
-
- if ($v_header['filename'] == $p_filename) {
- if ($v_header['typeflag'] == "5") {
- $this->_error(
- 'Unable to extract in string a directory '
- . 'entry {' . $v_header['filename'] . '}'
- );
- return null;
- } else {
- $n = floor($v_header['size'] / 512);
- for ($i = 0; $i < $n; $i++) {
- $v_result_str .= $this->_readBlock();
- }
- if (($v_header['size'] % 512) != 0) {
- $v_content = $this->_readBlock();
- $v_result_str .= substr(
- $v_content,
- 0,
- ($v_header['size'] % 512)
- );
- }
- return $v_result_str;
- }
- } else {
- $this->_jumpBlock(ceil(($v_header['size'] / 512)));
- }
- }
-
- return null;
- }
-
- /**
- * @param string $p_path
- * @param string $p_list_detail
- * @param string $p_mode
- * @param string $p_file_list
- * @param string $p_remove_path
- * @param bool $p_preserve
- * @return bool
- */
- public function _extractList(
- $p_path,
- &$p_list_detail,
- $p_mode,
- $p_file_list,
- $p_remove_path,
- $p_preserve = false
- ) {
- $v_result = true;
- $v_nb = 0;
- $v_extract_all = true;
- $v_listing = false;
-
- $p_path = $this->_translateWinPath($p_path, false);
- if ($p_path == '' || (substr($p_path, 0, 1) != '/'
- && substr($p_path, 0, 3) != "../" && !strpos($p_path, ':'))
- ) {
- $p_path = "./" . $p_path;
- }
- $p_remove_path = $this->_translateWinPath($p_remove_path);
-
- // ----- Look for path to remove format (should end by /)
- if (($p_remove_path != '') && (substr($p_remove_path, -1) != '/')) {
- $p_remove_path .= '/';
- }
- $p_remove_path_size = strlen($p_remove_path);
-
- switch ($p_mode) {
- case "complete" :
- $v_extract_all = true;
- $v_listing = false;
- break;
- case "partial" :
- $v_extract_all = false;
- $v_listing = false;
- break;
- case "list" :
- $v_extract_all = false;
- $v_listing = true;
- break;
- default :
- $this->_error('Invalid extract mode (' . $p_mode . ')');
- return false;
- }
-
- clearstatcache();
-
- while (strlen($v_binary_data = $this->_readBlock()) != 0) {
- $v_extract_file = false;
- $v_extraction_stopped = 0;
-
- if (!$this->_readHeader($v_binary_data, $v_header)) {
- return false;
- }
-
- if ($v_header['filename'] == '') {
- continue;
- }
-
- // ----- Look for long filename
- if ($v_header['typeflag'] == 'L') {
- if (!$this->_readLongHeader($v_header)) {
- return false;
- }
- }
-
- // ignore extended / pax headers
- if ($v_header['typeflag'] == 'x' || $v_header['typeflag'] == 'g') {
- $this->_jumpBlock(ceil(($v_header['size'] / 512)));
- continue;
- }
-
- if ((!$v_extract_all) && (is_array($p_file_list))) {
- // ----- By default no unzip if the file is not found
- $v_extract_file = false;
-
- for ($i = 0; $i < sizeof($p_file_list); $i++) {
- // ----- Look if it is a directory
- if (substr($p_file_list[$i], -1) == '/') {
- // ----- Look if the directory is in the filename path
- if ((strlen($v_header['filename']) > strlen($p_file_list[$i]))
- && (substr($v_header['filename'], 0, strlen($p_file_list[$i]))
- == $p_file_list[$i])
- ) {
- $v_extract_file = true;
- break;
- }
- } // ----- It is a file, so compare the file names
- elseif ($p_file_list[$i] == $v_header['filename']) {
- $v_extract_file = true;
- break;
- }
- }
- } else {
- $v_extract_file = true;
- }
-
- // ----- Look if this file need to be extracted
- if (($v_extract_file) && (!$v_listing)) {
- if (($p_remove_path != '')
- && (substr($v_header['filename'] . '/', 0, $p_remove_path_size)
- == $p_remove_path)
- ) {
- $v_header['filename'] = substr(
- $v_header['filename'],
- $p_remove_path_size
- );
- if ($v_header['filename'] == '') {
- continue;
- }
- }
- if (($p_path != './') && ($p_path != '/')) {
- while (substr($p_path, -1) == '/') {
- $p_path = substr($p_path, 0, strlen($p_path) - 1);
- }
-
- if (substr($v_header['filename'], 0, 1) == '/') {
- $v_header['filename'] = $p_path . $v_header['filename'];
- } else {
- $v_header['filename'] = $p_path . '/' . $v_header['filename'];
- }
- }
- if (file_exists($v_header['filename'])) {
- if ((@is_dir($v_header['filename']))
- && ($v_header['typeflag'] == '')
- ) {
- $this->_error(
- 'File ' . $v_header['filename']
- . ' already exists as a directory'
- );
- return false;
- }
- if (($this->_isArchive($v_header['filename']))
- && ($v_header['typeflag'] == "5")
- ) {
- $this->_error(
- 'Directory ' . $v_header['filename']
- . ' already exists as a file'
- );
- return false;
- }
- if (!is_writeable($v_header['filename'])) {
- $this->_error(
- 'File ' . $v_header['filename']
- . ' already exists and is write protected'
- );
- return false;
- }
- if (filemtime($v_header['filename']) > $v_header['mtime']) {
- // To be completed : An error or silent no replace ?
- }
- } // ----- Check the directory availability and create it if necessary
- elseif (($v_result
- = $this->_dirCheck(
- ($v_header['typeflag'] == "5"
- ? $v_header['filename']
- : dirname($v_header['filename']))
- )) != 1
- ) {
- $this->_error('Unable to create path for ' . $v_header['filename']);
- return false;
- }
-
- if ($v_extract_file) {
- if ($v_header['typeflag'] == "5") {
- if (!@file_exists($v_header['filename'])) {
- if (!@mkdir($v_header['filename'], 0777)) {
- $this->_error(
- 'Unable to create directory {'
- . $v_header['filename'] . '}'
- );
- return false;
- }
- }
- } elseif ($v_header['typeflag'] == "2") {
- if (@file_exists($v_header['filename'])) {
- @unlink($v_header['filename']);
- }
- if (!@symlink($v_header['link'], $v_header['filename'])) {
- $this->_error(
- 'Unable to extract symbolic link {'
- . $v_header['filename'] . '}'
- );
- return false;
- }
- } else {
- if (($v_dest_file = @fopen($v_header['filename'], "wb")) == 0) {
- $this->_error(
- 'Error while opening {' . $v_header['filename']
- . '} in write binary mode'
- );
- return false;
- } else {
- $n = floor($v_header['size'] / 512);
- for ($i = 0; $i < $n; $i++) {
- $v_content = $this->_readBlock();
- fwrite($v_dest_file, $v_content, 512);
- }
- if (($v_header['size'] % 512) != 0) {
- $v_content = $this->_readBlock();
- fwrite($v_dest_file, $v_content, ($v_header['size'] % 512));
- }
-
- @fclose($v_dest_file);
-
- if ($p_preserve) {
- @chown($v_header['filename'], $v_header['uid']);
- @chgrp($v_header['filename'], $v_header['gid']);
- }
-
- // ----- Change the file mode, mtime
- @touch($v_header['filename'], $v_header['mtime']);
- if ($v_header['mode'] & 0111) {
- // make file executable, obey umask
- $mode = fileperms($v_header['filename']) | (~umask() & 0111);
- @chmod($v_header['filename'], $mode);
- }
- }
-
- // ----- Check the file size
- clearstatcache();
- if (!is_file($v_header['filename'])) {
- $this->_error(
- 'Extracted file ' . $v_header['filename']
- . 'does not exist. Archive may be corrupted.'
- );
- return false;
- }
-
- $filesize = filesize($v_header['filename']);
- if ($filesize != $v_header['size']) {
- $this->_error(
- 'Extracted file ' . $v_header['filename']
- . ' does not have the correct file size \''
- . $filesize
- . '\' (' . $v_header['size']
- . ' expected). Archive may be corrupted.'
- );
- return false;
- }
- }
- } else {
- $this->_jumpBlock(ceil(($v_header['size'] / 512)));
- }
- } else {
- $this->_jumpBlock(ceil(($v_header['size'] / 512)));
- }
-
- /* TBC : Seems to be unused ...
- if ($this->_compress)
- $v_end_of_file = @gzeof($this->_file);
- else
- $v_end_of_file = @feof($this->_file);
- */
-
- if ($v_listing || $v_extract_file || $v_extraction_stopped) {
- // ----- Log extracted files
- if (($v_file_dir = dirname($v_header['filename']))
- == $v_header['filename']
- ) {
- $v_file_dir = '';
- }
- if ((substr($v_header['filename'], 0, 1) == '/') && ($v_file_dir == '')) {
- $v_file_dir = '/';
- }
-
- $p_list_detail[$v_nb++] = $v_header;
- if (is_array($p_file_list) && (count($p_list_detail) == count($p_file_list))) {
- return true;
- }
- }
- }
-
- return true;
- }
-
- /**
- * @return bool
- */
- public function _openAppend()
- {
- if (filesize($this->_tarname) == 0) {
- return $this->_openWrite();
- }
-
- if ($this->_compress) {
- $this->_close();
-
- if (!@rename($this->_tarname, $this->_tarname . ".tmp")) {
- $this->_error(
- 'Error while renaming \'' . $this->_tarname
- . '\' to temporary file \'' . $this->_tarname
- . '.tmp\''
- );
- return false;
- }
-
- if ($this->_compress_type == 'gz') {
- $v_temp_tar = @gzopen($this->_tarname . ".tmp", "rb");
- } elseif ($this->_compress_type == 'bz2') {
- $v_temp_tar = @bzopen($this->_tarname . ".tmp", "r");
- } elseif ($this->_compress_type == 'lzma2') {
- $v_temp_tar = @xzopen($this->_tarname . ".tmp", "r");
- }
-
-
- if ($v_temp_tar == 0) {
- $this->_error(
- 'Unable to open file \'' . $this->_tarname
- . '.tmp\' in binary read mode'
- );
- @rename($this->_tarname . ".tmp", $this->_tarname);
- return false;
- }
-
- if (!$this->_openWrite()) {
- @rename($this->_tarname . ".tmp", $this->_tarname);
- return false;
- }
-
- if ($this->_compress_type == 'gz') {
- $end_blocks = 0;
-
- while (!@gzeof($v_temp_tar)) {
- $v_buffer = @gzread($v_temp_tar, 512);
- if ($v_buffer == ARCHIVE_TAR_END_BLOCK || strlen($v_buffer) == 0) {
- $end_blocks++;
- // do not copy end blocks, we will re-make them
- // after appending
- continue;
- } elseif ($end_blocks > 0) {
- for ($i = 0; $i < $end_blocks; $i++) {
- $this->_writeBlock(ARCHIVE_TAR_END_BLOCK);
- }
- $end_blocks = 0;
- }
- $v_binary_data = pack("a512", $v_buffer);
- $this->_writeBlock($v_binary_data);
- }
-
- @gzclose($v_temp_tar);
- } elseif ($this->_compress_type == 'bz2') {
- $end_blocks = 0;
-
- while (strlen($v_buffer = @bzread($v_temp_tar, 512)) > 0) {
- if ($v_buffer == ARCHIVE_TAR_END_BLOCK || strlen($v_buffer) == 0) {
- $end_blocks++;
- // do not copy end blocks, we will re-make them
- // after appending
- continue;
- } elseif ($end_blocks > 0) {
- for ($i = 0; $i < $end_blocks; $i++) {
- $this->_writeBlock(ARCHIVE_TAR_END_BLOCK);
- }
- $end_blocks = 0;
- }
- $v_binary_data = pack("a512", $v_buffer);
- $this->_writeBlock($v_binary_data);
- }
-
- @bzclose($v_temp_tar);
- } elseif ($this->_compress_type == 'lzma2') {
- $end_blocks = 0;
-
- while (strlen($v_buffer = @xzread($v_temp_tar, 512)) > 0) {
- if ($v_buffer == ARCHIVE_TAR_END_BLOCK || strlen($v_buffer) == 0) {
- $end_blocks++;
- // do not copy end blocks, we will re-make them
- // after appending
- continue;
- } elseif ($end_blocks > 0) {
- for ($i = 0; $i < $end_blocks; $i++) {
- $this->_writeBlock(ARCHIVE_TAR_END_BLOCK);
- }
- $end_blocks = 0;
- }
- $v_binary_data = pack("a512", $v_buffer);
- $this->_writeBlock($v_binary_data);
- }
-
- @xzclose($v_temp_tar);
- }
-
- if (!@unlink($this->_tarname . ".tmp")) {
- $this->_error(
- 'Error while deleting temporary file \''
- . $this->_tarname . '.tmp\''
- );
- }
- } else {
- // ----- For not compressed tar, just add files before the last
- // one or two 512 bytes block
- if (!$this->_openReadWrite()) {
- return false;
- }
-
- clearstatcache();
- $v_size = filesize($this->_tarname);
-
- // We might have zero, one or two end blocks.
- // The standard is two, but we should try to handle
- // other cases.
- fseek($this->_file, $v_size - 1024);
- if (fread($this->_file, 512) == ARCHIVE_TAR_END_BLOCK) {
- fseek($this->_file, $v_size - 1024);
- } elseif (fread($this->_file, 512) == ARCHIVE_TAR_END_BLOCK) {
- fseek($this->_file, $v_size - 512);
- }
- }
-
- return true;
- }
-
- /**
- * @param $p_filelist
- * @param string $p_add_dir
- * @param string $p_remove_dir
- * @return bool
- */
- public function _append($p_filelist, $p_add_dir = '', $p_remove_dir = '')
- {
- if (!$this->_openAppend()) {
- return false;
- }
-
- if ($this->_addList($p_filelist, $p_add_dir, $p_remove_dir)) {
- $this->_writeFooter();
- }
-
- $this->_close();
-
- return true;
- }
-
- /**
- * Check if a directory exists and create it (including parent
- * dirs) if not.
- *
- * @param string $p_dir directory to check
- *
- * @return bool true if the directory exists or was created
- */
- public function _dirCheck($p_dir)
- {
- clearstatcache();
- if ((@is_dir($p_dir)) || ($p_dir == '')) {
- return true;
- }
-
- $p_parent_dir = dirname($p_dir);
-
- if (($p_parent_dir != $p_dir) &&
- ($p_parent_dir != '') &&
- (!$this->_dirCheck($p_parent_dir))
- ) {
- return false;
- }
-
- if (!@mkdir($p_dir, 0777)) {
- $this->_error("Unable to create directory '$p_dir'");
- return false;
- }
-
- return true;
- }
-
- /**
- * Compress path by changing for example "/dir/foo/../bar" to "/dir/bar",
- * rand emove double slashes.
- *
- * @param string $p_dir path to reduce
- *
- * @return string reduced path
- */
- private function _pathReduction($p_dir)
- {
- $v_result = '';
-
- // ----- Look for not empty path
- if ($p_dir != '') {
- // ----- Explode path by directory names
- $v_list = explode('/', $p_dir);
-
- // ----- Study directories from last to first
- for ($i = sizeof($v_list) - 1; $i >= 0; $i--) {
- // ----- Look for current path
- if ($v_list[$i] == ".") {
- // ----- Ignore this directory
- // Should be the first $i=0, but no check is done
- } else {
- if ($v_list[$i] == "..") {
- // ----- Ignore it and ignore the $i-1
- $i--;
- } else {
- if (($v_list[$i] == '')
- && ($i != (sizeof($v_list) - 1))
- && ($i != 0)
- ) {
- // ----- Ignore only the double '//' in path,
- // but not the first and last /
- } else {
- $v_result = $v_list[$i] . ($i != (sizeof($v_list) - 1) ? '/'
- . $v_result : '');
- }
- }
- }
- }
- }
-
- if (defined('OS_WINDOWS') && OS_WINDOWS) {
- $v_result = strtr($v_result, '\\', '/');
- }
-
- return $v_result;
- }
-
- /**
- * @param $p_path
- * @param bool $p_remove_disk_letter
- * @return string
- */
- public function _translateWinPath($p_path, $p_remove_disk_letter = true)
- {
- if (defined('OS_WINDOWS') && OS_WINDOWS) {
- // ----- Look for potential disk letter
- if (($p_remove_disk_letter)
- && (($v_position = strpos($p_path, ':')) != false)
- ) {
- $p_path = substr($p_path, $v_position + 1);
- }
- // ----- Change potential windows directory separator
- if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0, 1) == '\\')) {
- $p_path = strtr($p_path, '\\', '/');
- }
- }
- return $p_path;
- }
-}
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2.php
deleted file mode 100644
index 66afce09..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2.php
+++ /dev/null
@@ -1,1053 +0,0 @@
-
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-/**
- * A class representing an URL as per RFC 3986.
- */
-require_once 'Net/URL2.php';
-
-/**
- * Exception class for HTTP_Request2 package
- */
-require_once 'HTTP/Request2/Exception.php';
-
-/**
- * Class representing a HTTP request message
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: 2.5.1
- * @link http://pear.php.net/package/HTTP_Request2
- * @link http://tools.ietf.org/html/rfc2616#section-5
- */
-class HTTP_Request2 implements SplSubject
-{
- /**
- * #@+
- * Constants for HTTP request methods
- *
- * @link http://tools.ietf.org/html/rfc2616#section-5.1.1
- */
- const METHOD_OPTIONS = 'OPTIONS';
- const METHOD_GET = 'GET';
- const METHOD_HEAD = 'HEAD';
- const METHOD_POST = 'POST';
- const METHOD_PUT = 'PUT';
- const METHOD_DELETE = 'DELETE';
- const METHOD_TRACE = 'TRACE';
- const METHOD_CONNECT = 'CONNECT';
- /**
- * #@-
- */
-
- /**
- * #@+
- * Constants for HTTP authentication schemes
- *
- * @link http://tools.ietf.org/html/rfc2617
- */
- const AUTH_BASIC = 'basic';
- const AUTH_DIGEST = 'digest';
- /**
- * #@-
- */
-
- /**
- * Regular expression used to check for invalid symbols in RFC 2616 tokens
- *
- * @link http://pear.php.net/bugs/bug.php?id=15630
- */
- const REGEXP_INVALID_TOKEN = '![\x00-\x1f\x7f-\xff()<>@,;:\\\\"/\[\]?={}\s]!';
-
- /**
- * Regular expression used to check for invalid symbols in cookie strings
- *
- * @link http://pear.php.net/bugs/bug.php?id=15630
- * @link http://web.archive.org/web/20080331104521/http://cgi.netscape.com/newsref/std/cookie_spec.html
- */
- const REGEXP_INVALID_COOKIE = '/[\s,;]/';
-
- /**
- * Fileinfo magic database resource
- *
- * @var resource
- * @see detectMimeType()
- */
- private static $_fileinfoDb;
-
- /**
- * Observers attached to the request (instances of SplObserver)
- *
- * @var array
- */
- protected $observers = [];
-
- /**
- * Request URL
- *
- * @var Net_URL2
- */
- protected $url;
-
- /**
- * Request method
- *
- * @var string
- */
- protected $method = self::METHOD_GET;
-
- /**
- * Authentication data
- *
- * @var array
- * @see getAuth()
- */
- protected $auth;
-
- /**
- * Request headers
- *
- * @var array
- */
- protected $headers = [];
-
- /**
- * Configuration parameters
- *
- * @var array
- * @see setConfig()
- */
- protected $config = [
- 'adapter' => 'HTTP_Request2_Adapter_Socket',
- 'connect_timeout' => 10,
- 'timeout' => 0,
- 'use_brackets' => true,
- 'protocol_version' => '1.1',
- 'buffer_size' => 16384,
- 'store_body' => true,
- 'local_ip' => null,
-
- 'proxy_host' => '',
- 'proxy_port' => '',
- 'proxy_user' => '',
- 'proxy_password' => '',
- 'proxy_auth_scheme' => self::AUTH_BASIC,
- 'proxy_type' => 'http',
-
- 'ssl_verify_peer' => true,
- 'ssl_verify_host' => true,
- 'ssl_cafile' => null,
- 'ssl_capath' => null,
- 'ssl_local_cert' => null,
- 'ssl_passphrase' => null,
-
- 'digest_compat_ie' => false,
-
- 'follow_redirects' => false,
- 'max_redirects' => 5,
- 'strict_redirects' => false
- ];
-
- /**
- * Last event in request / response handling, intended for observers
- *
- * @var array
- * @see getLastEvent()
- */
- protected $lastEvent = [
- 'name' => 'start',
- 'data' => null
- ];
-
- /**
- * Request body
- *
- * @var string|resource
- * @see setBody()
- */
- protected $body = '';
-
- /**
- * Array of POST parameters
- *
- * @var array
- */
- protected $postParams = [];
-
- /**
- * Array of file uploads (for multipart/form-data POST requests)
- *
- * @var array
- */
- protected $uploads = [];
-
- /**
- * Adapter used to perform actual HTTP request
- *
- * @var HTTP_Request2_Adapter
- */
- protected $adapter;
-
- /**
- * Cookie jar to persist cookies between requests
- *
- * @var HTTP_Request2_CookieJar
- */
- protected $cookieJar = null;
-
- /**
- * Constructor. Can set request URL, method and configuration array.
- *
- * Also sets a default value for User-Agent header.
- *
- * @param string|Net_Url2 $url Request URL
- * @param string $method Request method
- * @param array $config Configuration for this Request instance
- */
- public function __construct(
- $url = null, $method = self::METHOD_GET, array $config = []
- ) {
- $this->setConfig($config);
- if (!empty($url)) {
- $this->setUrl($url);
- }
- if (!empty($method)) {
- $this->setMethod($method);
- }
- $this->setHeader(
- 'user-agent', 'HTTP_Request2/2.5.1 ' .
- '(https://github.com/pear/HTTP_Request2) PHP/' . phpversion()
- );
- }
-
- /**
- * Sets the URL for this request
- *
- * If the URL has userinfo part (username & password) these will be removed
- * and converted to auth data. If the URL does not have a path component,
- * that will be set to '/'.
- *
- * @param string|Net_URL2 $url Request URL
- *
- * @return $this
- * @throws HTTP_Request2_LogicException
- */
- public function setUrl($url)
- {
- if (is_string($url)) {
- $url = new Net_URL2(
- $url, [Net_URL2::OPTION_USE_BRACKETS => $this->config['use_brackets']]
- );
- }
- if (!$url instanceof Net_URL2) {
- throw new HTTP_Request2_LogicException(
- 'Parameter is not a valid HTTP URL',
- HTTP_Request2_Exception::INVALID_ARGUMENT
- );
- }
- // URL contains username / password?
- if ($url->getUserinfo()) {
- $username = $url->getUser();
- $password = $url->getPassword();
- $this->setAuth(rawurldecode($username), $password? rawurldecode($password): '');
- $url->setUserinfo('');
- }
- if ('' == $url->getPath()) {
- $url->setPath('/');
- }
- $this->url = $url;
-
- return $this;
- }
-
- /**
- * Returns the request URL
- *
- * @return Net_URL2
- */
- public function getUrl()
- {
- return $this->url;
- }
-
- /**
- * Sets the request method
- *
- * @param string $method one of the methods defined in RFC 2616
- *
- * @return $this
- * @throws HTTP_Request2_LogicException if the method name is invalid
- */
- public function setMethod($method)
- {
- // Method name should be a token: http://tools.ietf.org/html/rfc2616#section-5.1.1
- if (preg_match(self::REGEXP_INVALID_TOKEN, $method)) {
- throw new HTTP_Request2_LogicException(
- "Invalid request method '{$method}'",
- HTTP_Request2_Exception::INVALID_ARGUMENT
- );
- }
- $this->method = $method;
-
- return $this;
- }
-
- /**
- * Returns the request method
- *
- * @return string
- */
- public function getMethod()
- {
- return $this->method;
- }
-
- /**
- * Sets the configuration parameter(s)
- *
- * The following parameters are available:
- *
- * 'adapter' - adapter to use (string)
- * 'connect_timeout' - Connection timeout in seconds (integer)
- * 'timeout' - Total number of seconds a request can take.
- * Use 0 for no limit, should be greater than
- * 'connect_timeout' if set (integer)
- * 'use_brackets' - Whether to append [] to array variable names (bool)
- * 'protocol_version' - HTTP Version to use, '1.0' or '1.1' (string)
- * 'buffer_size' - Buffer size to use for reading and writing (int)
- * 'store_body' - Whether to store response body in response object.
- * Set to false if receiving a huge response and
- * using an Observer to save it (boolean)
- * 'local_ip' - Specifies the IP address that will be used for accessing
- * the network (string)
- * 'proxy_type' - Proxy type, 'http' or 'socks5' (string)
- * 'proxy_host' - Proxy server host (string)
- * 'proxy_port' - Proxy server port (integer)
- * 'proxy_user' - Proxy auth username (string)
- * 'proxy_password' - Proxy auth password (string)
- * 'proxy_auth_scheme' - Proxy auth scheme, one of HTTP_Request2::AUTH_* constants (string)
- * 'proxy' - Shorthand for proxy_* parameters, proxy given as URL,
- * e.g. 'socks5://localhost:1080/' (string)
- * 'ssl_verify_peer' - Whether to verify peer's SSL certificate (bool)
- * 'ssl_verify_host' - Whether to check that Common Name in SSL
- * certificate matches host name (bool)
- * 'ssl_cafile' - Cerificate Authority file to verify the peer
- * with (use with 'ssl_verify_peer') (string)
- * 'ssl_capath' - Directory holding multiple Certificate
- * Authority files (string)
- * 'ssl_local_cert' - Name of a file containing local cerificate (string)
- * 'ssl_passphrase' - Passphrase with which local certificate
- * was encoded (string)
- * 'digest_compat_ie' - Whether to imitate behaviour of MSIE 5 and 6
- * in using URL without query string in digest
- * authentication (boolean)
- * 'follow_redirects' - Whether to automatically follow HTTP Redirects (boolean)
- * 'max_redirects' - Maximum number of redirects to follow (integer)
- * 'strict_redirects' - Whether to keep request method on redirects via status 301 and
- * 302 (true, needed for compatibility with RFC 2616)
- * or switch to GET (false, needed for compatibility with most
- * browsers) (boolean)
- *
- *
- * @param string|array $nameOrConfig configuration parameter name or array
- * ('parameter name' => 'parameter value')
- * @param mixed $value parameter value if $nameOrConfig is not an array
- *
- * @return $this
- * @throws HTTP_Request2_LogicException If the parameter is unknown
- */
- public function setConfig($nameOrConfig, $value = null)
- {
- if (is_array($nameOrConfig)) {
- foreach ($nameOrConfig as $name => $value) {
- $this->setConfig($name, $value);
- }
-
- } elseif ('proxy' == $nameOrConfig) {
- $url = new Net_URL2($value);
- $this->setConfig(
- [
- 'proxy_type' => $url->getScheme(),
- 'proxy_host' => $url->getHost(),
- 'proxy_port' => $url->getPort(),
- 'proxy_user' => rawurldecode($url->getUser()),
- 'proxy_password' => rawurldecode($url->getPassword())
- ]
- );
-
- } else {
- if (!array_key_exists($nameOrConfig, $this->config)) {
- throw new HTTP_Request2_LogicException(
- "Unknown configuration parameter '{$nameOrConfig}'",
- HTTP_Request2_Exception::INVALID_ARGUMENT
- );
- }
- $this->config[$nameOrConfig] = $value;
- }
-
- return $this;
- }
-
- /**
- * Returns the value(s) of the configuration parameter(s)
- *
- * @param string $name parameter name
- *
- * @return mixed value of $name parameter, array of all configuration
- * parameters if $name is not given
- * @throws HTTP_Request2_LogicException If the parameter is unknown
- */
- public function getConfig($name = null)
- {
- if (null === $name) {
- return $this->config;
- } elseif (!array_key_exists($name, $this->config)) {
- throw new HTTP_Request2_LogicException(
- "Unknown configuration parameter '{$name}'",
- HTTP_Request2_Exception::INVALID_ARGUMENT
- );
- }
- return $this->config[$name];
- }
-
- /**
- * Sets the authentication data
- *
- * @param string $user user name
- * @param string $password password
- * @param string $scheme authentication scheme
- *
- * @return $this
- */
- public function setAuth($user, $password = '', $scheme = self::AUTH_BASIC)
- {
- if (empty($user)) {
- $this->auth = null;
- } else {
- $this->auth = [
- 'user' => (string)$user,
- 'password' => (string)$password,
- 'scheme' => $scheme
- ];
- }
-
- return $this;
- }
-
- /**
- * Returns the authentication data
- *
- * The array has the keys 'user', 'password' and 'scheme', where 'scheme'
- * is one of the HTTP_Request2::AUTH_* constants.
- *
- * @return array
- */
- public function getAuth()
- {
- return $this->auth;
- }
-
- /**
- * Sets request header(s)
- *
- * The first parameter may be either a full header string 'header: value' or
- * header name. In the former case $value parameter is ignored, in the latter
- * the header's value will either be set to $value or the header will be
- * removed if $value is null. The first parameter can also be an array of
- * headers, in that case method will be called recursively.
- *
- * Note that headers are treated case insensitively as per RFC 2616.
- *
- *
- * $req->setHeader('Foo: Bar'); // sets the value of 'Foo' header to 'Bar'
- * $req->setHeader('FoO', 'Baz'); // sets the value of 'Foo' header to 'Baz'
- * $req->setHeader(array('foo' => 'Quux')); // sets the value of 'Foo' header to 'Quux'
- * $req->setHeader('FOO'); // removes 'Foo' header from request
- *
- *
- * @param string|array $name header name, header string ('Header: value')
- * or an array of headers
- * @param string|array|null $value header value if $name is not an array,
- * header will be removed if value is null
- * @param bool $replace whether to replace previous header with the
- * same name or append to its value
- *
- * @return $this
- * @throws HTTP_Request2_LogicException
- */
- public function setHeader($name, $value = null, $replace = true)
- {
- if (is_array($name)) {
- foreach ($name as $k => $v) {
- if (is_string($k)) {
- $this->setHeader($k, $v, $replace);
- } else {
- $this->setHeader($v, null, $replace);
- }
- }
- } else {
- if (null === $value && strpos($name, ':')) {
- list($name, $value) = array_map('trim', explode(':', $name, 2));
- }
- // Header name should be a token: http://tools.ietf.org/html/rfc2616#section-4.2
- if (preg_match(self::REGEXP_INVALID_TOKEN, $name)) {
- throw new HTTP_Request2_LogicException(
- "Invalid header name '{$name}'",
- HTTP_Request2_Exception::INVALID_ARGUMENT
- );
- }
- // Header names are case insensitive anyway
- $name = strtolower($name);
- if (null === $value) {
- unset($this->headers[$name]);
-
- } else {
- if (is_array($value)) {
- $value = implode(', ', array_map('trim', $value));
- } elseif (is_string($value)) {
- $value = trim($value);
- }
- if (!isset($this->headers[$name]) || $replace) {
- $this->headers[$name] = $value;
- } else {
- $this->headers[$name] .= ', ' . $value;
- }
- }
- }
-
- return $this;
- }
-
- /**
- * Returns the request headers
- *
- * The array is of the form ('header name' => 'header value'), header names
- * are lowercased
- *
- * @return array
- */
- public function getHeaders()
- {
- return $this->headers;
- }
-
- /**
- * Adds a cookie to the request
- *
- * If the request does not have a CookieJar object set, this method simply
- * appends a cookie to "Cookie:" header.
- *
- * If a CookieJar object is available, the cookie is stored in that object.
- * Data from request URL will be used for setting its 'domain' and 'path'
- * parameters, 'expires' and 'secure' will be set to null and false,
- * respectively. If you need further control, use CookieJar's methods.
- *
- * @param string $name cookie name
- * @param string $value cookie value
- *
- * @return $this
- * @throws HTTP_Request2_LogicException
- * @see setCookieJar()
- */
- public function addCookie($name, $value)
- {
- if (!empty($this->cookieJar)) {
- $this->cookieJar->store(
- ['name' => $name, 'value' => $value], $this->url
- );
-
- } else {
- $cookie = $name . '=' . $value;
- if (preg_match(self::REGEXP_INVALID_COOKIE, $cookie)) {
- throw new HTTP_Request2_LogicException(
- "Invalid cookie: '{$cookie}'",
- HTTP_Request2_Exception::INVALID_ARGUMENT
- );
- }
- $cookies = empty($this->headers['cookie'])? '': $this->headers['cookie'] . '; ';
- $this->setHeader('cookie', $cookies . $cookie);
- }
-
- return $this;
- }
-
- /**
- * Sets the request body
- *
- * If you provide file pointer rather than file name, it should support
- * fstat() and rewind() operations.
- *
- * @param string|resource|HTTP_Request2_MultipartBody $body Either a
- * string with the body or filename containing body or
- * pointer to an open file or object with multipart body data
- * @param bool $isFilename Whether
- * first parameter is a filename
- *
- * @return $this
- * @throws HTTP_Request2_LogicException
- */
- public function setBody($body, $isFilename = false)
- {
- if (!$isFilename && !is_resource($body)) {
- if (!$body instanceof HTTP_Request2_MultipartBody) {
- $this->body = (string)$body;
- } else {
- $this->body = $body;
- }
- } else {
- $fileData = $this->fopenWrapper($body, empty($this->headers['content-type']));
- $this->body = $fileData['fp'];
- if (empty($this->headers['content-type'])) {
- $this->setHeader('content-type', $fileData['type']);
- }
- }
- $this->postParams = $this->uploads = [];
-
- return $this;
- }
-
- /**
- * Returns the request body
- *
- * @return string|resource|HTTP_Request2_MultipartBody
- */
- public function getBody()
- {
- if (self::METHOD_POST == $this->method
- && (!empty($this->postParams) || !empty($this->uploads))
- ) {
- if (0 === strpos($this->headers['content-type'], 'application/x-www-form-urlencoded')) {
- $body = http_build_query($this->postParams, '', '&');
- if (!$this->getConfig('use_brackets')) {
- $body = preg_replace('/%5B\d+%5D=/', '=', $body);
- }
- // support RFC 3986 by not encoding '~' symbol (request #15368)
- return str_replace('%7E', '~', $body);
-
- } elseif (0 === strpos($this->headers['content-type'], 'multipart/form-data')) {
- require_once 'HTTP/Request2/MultipartBody.php';
- return new HTTP_Request2_MultipartBody(
- $this->postParams, $this->uploads, $this->getConfig('use_brackets')
- );
- }
- }
- return $this->body;
- }
-
- /**
- * Adds a file to form-based file upload
- *
- * Used to emulate file upload via a HTML form. The method also sets
- * Content-Type of HTTP request to 'multipart/form-data'.
- *
- * If you just want to send the contents of a file as the body of HTTP
- * request you should use setBody() method.
- *
- * If you provide file pointers rather than file names, they should support
- * fstat() and rewind() operations.
- *
- * @param string $fieldName name of file-upload field
- * @param string|resource|array $filename full name of local file,
- * pointer to open file or an array of files
- * @param string $sendFilename filename to send in the request
- * @param string $contentType content-type of file being uploaded
- *
- * @return $this
- * @throws HTTP_Request2_LogicException
- */
- public function addUpload(
- $fieldName, $filename, $sendFilename = null, $contentType = null
- ) {
- if (!is_array($filename)) {
- $fileData = $this->fopenWrapper($filename, empty($contentType));
- $this->uploads[$fieldName] = [
- 'fp' => $fileData['fp'],
- 'filename' => !empty($sendFilename)? $sendFilename
- :(is_string($filename)? basename($filename): 'anonymous.blob') ,
- 'size' => $fileData['size'],
- 'type' => empty($contentType)? $fileData['type']: $contentType
- ];
- } else {
- $fps = $names = $sizes = $types = [];
- foreach ($filename as $f) {
- if (!is_array($f)) {
- $f = [$f];
- }
- $fileData = $this->fopenWrapper($f[0], empty($f[2]));
- $fps[] = $fileData['fp'];
- $names[] = !empty($f[1])? $f[1]
- :(is_string($f[0])? basename($f[0]): 'anonymous.blob');
- $sizes[] = $fileData['size'];
- $types[] = empty($f[2])? $fileData['type']: $f[2];
- }
- $this->uploads[$fieldName] = [
- 'fp' => $fps, 'filename' => $names, 'size' => $sizes, 'type' => $types
- ];
- }
- if (empty($this->headers['content-type'])
- || 'application/x-www-form-urlencoded' == $this->headers['content-type']
- ) {
- $this->setHeader('content-type', 'multipart/form-data');
- }
-
- return $this;
- }
-
- /**
- * Adds POST parameter(s) to the request.
- *
- * @param string|array $name parameter name or array ('name' => 'value')
- * @param mixed $value parameter value (can be an array)
- *
- * @return $this
- */
- public function addPostParameter($name, $value = null)
- {
- if (!is_array($name)) {
- $this->postParams[$name] = $value;
- } else {
- foreach ($name as $k => $v) {
- $this->addPostParameter($k, $v);
- }
- }
- if (empty($this->headers['content-type'])) {
- $this->setHeader('content-type', 'application/x-www-form-urlencoded');
- }
-
- return $this;
- }
-
- #[ReturnTypeWillChange]
- /**
- * Attaches a new observer
- *
- * @param SplObserver $observer any object implementing SplObserver
- *
- * @return void
- */
- public function attach(SplObserver $observer)
- {
- foreach ($this->observers as $attached) {
- if ($attached === $observer) {
- return;
- }
- }
- $this->observers[] = $observer;
- }
-
- #[ReturnTypeWillChange]
- /**
- * Detaches an existing observer
- *
- * @param SplObserver $observer any object implementing SplObserver
- *
- * @return void
- */
- public function detach(SplObserver $observer)
- {
- foreach ($this->observers as $key => $attached) {
- if ($attached === $observer) {
- unset($this->observers[$key]);
- return;
- }
- }
- }
-
- #[ReturnTypeWillChange]
- /**
- * Notifies all observers
- *
- * @return void
- */
- public function notify()
- {
- foreach ($this->observers as $observer) {
- $observer->update($this);
- }
- }
-
- /**
- * Sets the last event
- *
- * Adapters should use this method to set the current state of the request
- * and notify the observers.
- *
- * @param string $name event name
- * @param mixed $data event data
- *
- * @return void
- */
- public function setLastEvent($name, $data = null)
- {
- $this->lastEvent = [
- 'name' => $name,
- 'data' => $data
- ];
- $this->notify();
- }
-
- /**
- * Returns the last event
- *
- * Observers should use this method to access the last change in request.
- * The following event names are possible:
- *
- * 'connect' - after connection to remote server,
- * data is the destination (string)
- * 'disconnect' - after disconnection from server
- * 'sentHeaders' - after sending the request headers,
- * data is the headers sent (string)
- * 'sentBodyPart' - after sending a part of the request body,
- * data is the length of that part (int)
- * 'sentBody' - after sending the whole request body,
- * data is request body length (int)
- * 'receivedHeaders' - after receiving the response headers,
- * data is HTTP_Request2_Response object
- * 'receivedBodyPart' - after receiving a part of the response
- * body, data is that part (string)
- * 'receivedEncodedBodyPart' - as 'receivedBodyPart', but data is still
- * encoded by Content-Encoding
- * 'receivedBody' - after receiving the complete response
- * body, data is HTTP_Request2_Response object
- * 'warning' - a problem arose during the request
- * that is not severe enough to throw
- * an Exception, data is the warning
- * message (string). Currently dispatched if
- * response body was received incompletely.
- *
- * Different adapters may not send all the event types. Mock adapter does
- * not send any events to the observers.
- *
- * @return array The array has two keys: 'name' and 'data'
- */
- public function getLastEvent()
- {
- return $this->lastEvent;
- }
-
- /**
- * Sets the adapter used to actually perform the request
- *
- * You can pass either an instance of a class implementing HTTP_Request2_Adapter
- * or a class name. The method will only try to include a file if the class
- * name starts with HTTP_Request2_Adapter_, it will also try to prepend this
- * prefix to the class name if it doesn't contain any underscores, so that
- *
- * $request->setAdapter('curl');
- *
- * will work.
- *
- * @param string|HTTP_Request2_Adapter $adapter Adapter to use
- *
- * @return $this
- * @throws HTTP_Request2_LogicException
- */
- public function setAdapter($adapter)
- {
- if (is_string($adapter)) {
- if (!class_exists($adapter, false)) {
- if (false === strpos($adapter, '_')) {
- $adapter = 'HTTP_Request2_Adapter_' . ucfirst($adapter);
- }
- if (!class_exists($adapter, true)
- && preg_match('/^HTTP_Request2_Adapter_([a-zA-Z0-9]+)$/', $adapter)
- ) {
- include_once str_replace('_', DIRECTORY_SEPARATOR, $adapter) . '.php';
- }
- if (!class_exists($adapter, false)) {
- throw new HTTP_Request2_LogicException(
- "Class {$adapter} not found",
- HTTP_Request2_Exception::MISSING_VALUE
- );
- }
- }
- $adapter = new $adapter;
- }
- if (!$adapter instanceof HTTP_Request2_Adapter) {
- throw new HTTP_Request2_LogicException(
- 'Parameter is not a HTTP request adapter',
- HTTP_Request2_Exception::INVALID_ARGUMENT
- );
- }
- $this->adapter = $adapter;
-
- return $this;
- }
-
- /**
- * Sets the cookie jar
- *
- * A cookie jar is used to maintain cookies across HTTP requests and
- * responses. Cookies from jar will be automatically added to the request
- * headers based on request URL.
- *
- * @param HTTP_Request2_CookieJar|bool $jar Existing CookieJar object, true to
- * create a new one, false to remove
- *
- * @return $this
- * @throws HTTP_Request2_LogicException
- */
- public function setCookieJar($jar = true)
- {
- require_once 'HTTP/Request2/CookieJar.php';
-
- if ($jar instanceof HTTP_Request2_CookieJar) {
- $this->cookieJar = $jar;
- } elseif (true === $jar) {
- $this->cookieJar = new HTTP_Request2_CookieJar();
- } elseif (!$jar) {
- $this->cookieJar = null;
- } else {
- throw new HTTP_Request2_LogicException(
- 'Invalid parameter passed to setCookieJar()',
- HTTP_Request2_Exception::INVALID_ARGUMENT
- );
- }
-
- return $this;
- }
-
- /**
- * Returns current CookieJar object or null if none
- *
- * @return HTTP_Request2_CookieJar|null
- */
- public function getCookieJar()
- {
- return $this->cookieJar;
- }
-
- /**
- * Sends the request and returns the response
- *
- * @throws HTTP_Request2_Exception
- * @return HTTP_Request2_Response
- */
- public function send()
- {
- // Sanity check for URL
- if (!$this->url instanceof Net_URL2
- || !$this->url->isAbsolute()
- || !in_array(strtolower($this->url->getScheme()), ['https', 'http'])
- ) {
- throw new HTTP_Request2_LogicException(
- 'HTTP_Request2 needs an absolute HTTP(S) request URL, '
- . ($this->url instanceof Net_URL2
- ? "'" . $this->url->__toString() . "'" : 'none')
- . ' given',
- HTTP_Request2_Exception::INVALID_ARGUMENT
- );
- }
- if (empty($this->adapter)) {
- $this->setAdapter($this->getConfig('adapter'));
- }
- // force using single byte encoding if mbstring extension overloads
- // strlen() and substr(); see bug #1781, bug #10605
- if (extension_loaded('mbstring') && (2 & ini_get('mbstring.func_overload'))) {
- $oldEncoding = mb_internal_encoding();
- mb_internal_encoding('8bit');
- }
-
- try {
- return $this->adapter->sendRequest($this);
- } finally { // phpcs:ignore PHPCompatibility.Keywords.NewKeywords.t_finallyFound
- if (!empty($oldEncoding)) {
- mb_internal_encoding($oldEncoding);
- }
- }
- }
-
- /**
- * Wrapper around fopen()/fstat() used by setBody() and addUpload()
- *
- * @param string|resource $file file name or pointer to open file
- * @param bool $detectType whether to try autodetecting MIME
- * type of file, will only work if $file is a
- * filename, not pointer
- *
- * @return array array('fp' => file pointer, 'size' => file size, 'type' => MIME type)
- * @throws HTTP_Request2_LogicException
- */
- protected function fopenWrapper($file, $detectType = false)
- {
- if (!is_string($file) && !is_resource($file)) {
- throw new HTTP_Request2_LogicException(
- "Filename or file pointer resource expected",
- HTTP_Request2_Exception::INVALID_ARGUMENT
- );
- }
- $fileData = [
- 'fp' => is_string($file)? null: $file,
- 'type' => 'application/octet-stream',
- 'size' => 0
- ];
- if (is_string($file)) {
- if (!($fileData['fp'] = @fopen($file, 'rb'))) {
- $error = error_get_last();
- throw new HTTP_Request2_LogicException(
- $error['message'], HTTP_Request2_Exception::READ_ERROR
- );
- }
- if ($detectType) {
- $fileData['type'] = self::detectMimeType($file);
- }
- }
- if (!($stat = fstat($fileData['fp']))) {
- throw new HTTP_Request2_LogicException(
- "fstat() call failed", HTTP_Request2_Exception::READ_ERROR
- );
- }
- $fileData['size'] = $stat['size'];
-
- return $fileData;
- }
-
- /**
- * Tries to detect MIME type of a file
- *
- * The method will try to use fileinfo extension if it is available,
- * deprecated mime_content_type() function in the other case. If neither
- * works, default 'application/octet-stream' MIME type is returned
- *
- * @param string $filename file name
- *
- * @return string file MIME type
- */
- protected static function detectMimeType($filename)
- {
- // finfo extension from PECL available
- if (function_exists('finfo_open')) {
- if (!isset(self::$_fileinfoDb)) {
- self::$_fileinfoDb = @finfo_open(FILEINFO_MIME);
- }
- if (self::$_fileinfoDb) {
- $info = finfo_file(self::$_fileinfoDb, $filename);
- }
- }
- // (deprecated) mime_content_type function available
- if (empty($info) && function_exists('mime_content_type')) {
- $info = mime_content_type($filename);
- }
- return empty($info)? 'application/octet-stream': $info;
- }
-}
-?>
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Adapter.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Adapter.php
deleted file mode 100644
index 28bb1b0b..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Adapter.php
+++ /dev/null
@@ -1,143 +0,0 @@
-
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-/**
- * Class representing a HTTP response
- */
-require_once 'HTTP/Request2/Response.php';
-
-/**
- * Base class for HTTP_Request2 adapters
- *
- * HTTP_Request2 class itself only defines methods for aggregating the request
- * data, all actual work of sending the request to the remote server and
- * receiving its response is performed by adapters.
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: 2.5.1
- * @link http://pear.php.net/package/HTTP_Request2
- */
-abstract class HTTP_Request2_Adapter
-{
- /**
- * A list of methods that MUST NOT have a request body, per RFC 2616
- *
- * @var array
- */
- protected static $bodyDisallowed = ['TRACE'];
-
- /**
- * Methods having defined semantics for request body
- *
- * Content-Length header (indicating that the body follows, section 4.3 of
- * RFC 2616) will be sent for these methods even if no body was added
- *
- * @var array
- * @link http://pear.php.net/bugs/bug.php?id=12900
- * @link http://pear.php.net/bugs/bug.php?id=14740
- */
- protected static $bodyRequired = ['POST', 'PUT'];
-
- /**
- * Request being sent
- *
- * @var HTTP_Request2
- */
- protected $request;
-
- /**
- * Request body
- *
- * @var string|resource|HTTP_Request2_MultipartBody
- * @see HTTP_Request2::getBody()
- */
- protected $requestBody;
-
- /**
- * Length of the request body
- *
- * @var integer
- */
- protected $contentLength;
-
- /**
- * Sends request to the remote server and returns its response
- *
- * @param HTTP_Request2 $request HTTP request message
- *
- * @return HTTP_Request2_Response
- * @throws HTTP_Request2_Exception
- */
- abstract public function sendRequest(HTTP_Request2 $request);
-
- /**
- * Calculates length of the request body, adds proper headers
- *
- * @param array $headers associative array of request headers, this method
- * will add proper 'Content-Length' and 'Content-Type'
- * headers to this array (or remove them if not needed)
- *
- * @return void
- */
- protected function calculateRequestLength(&$headers)
- {
- $this->requestBody = $this->request->getBody();
-
- if (is_string($this->requestBody)) {
- $this->contentLength = strlen($this->requestBody);
- } elseif (is_resource($this->requestBody)) {
- $stat = fstat($this->requestBody);
- $this->contentLength = $stat['size'];
- rewind($this->requestBody);
- } else {
- $this->contentLength = $this->requestBody->getLength();
- $headers['content-type'] = 'multipart/form-data; boundary=' .
- $this->requestBody->getBoundary();
- $this->requestBody->rewind();
- }
-
- if (in_array($this->request->getMethod(), self::$bodyDisallowed)
- || 0 == $this->contentLength
- ) {
- // No body: send a Content-Length header nonetheless (request #12900),
- // but do that only for methods that require a body (bug #14740)
- if (in_array($this->request->getMethod(), self::$bodyRequired)) {
- $headers['content-length'] = 0;
- } else {
- unset($headers['content-length']);
- // if the method doesn't require a body and doesn't have a
- // body, don't send a Content-Type header. (request #16799)
- unset($headers['content-type']);
- }
- } else {
- if (empty($headers['content-type'])) {
- $headers['content-type'] = 'application/x-www-form-urlencoded';
- }
- // Content-Length should not be sent for chunked Transfer-Encoding (bug #20125)
- if (!isset($headers['transfer-encoding'])) {
- $headers['content-length'] = $this->contentLength;
- }
- }
- }
-}
-?>
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Adapter/Curl.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Adapter/Curl.php
deleted file mode 100644
index fe9b8e39..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Adapter/Curl.php
+++ /dev/null
@@ -1,585 +0,0 @@
-
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-/**
- * Base class for HTTP_Request2 adapters
- */
-require_once 'HTTP/Request2/Adapter.php';
-
-/**
- * Adapter for HTTP_Request2 wrapping around cURL extension
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: 2.5.1
- * @link http://pear.php.net/package/HTTP_Request2
- */
-class HTTP_Request2_Adapter_Curl extends HTTP_Request2_Adapter
-{
- /**
- * Mapping of header names to cURL options
- *
- * @var array
- */
- protected static $headerMap = [
- 'accept-encoding' => CURLOPT_ENCODING,
- 'cookie' => CURLOPT_COOKIE,
- 'referer' => CURLOPT_REFERER,
- 'user-agent' => CURLOPT_USERAGENT
- ];
-
- /**
- * Mapping of SSL context options to cURL options
- *
- * @var array
- */
- protected static $sslContextMap = [
- 'ssl_verify_peer' => CURLOPT_SSL_VERIFYPEER,
- 'ssl_cafile' => CURLOPT_CAINFO,
- 'ssl_capath' => CURLOPT_CAPATH,
- 'ssl_local_cert' => CURLOPT_SSLCERT,
- 'ssl_passphrase' => CURLOPT_SSLCERTPASSWD
- ];
-
- /**
- * Mapping of CURLE_* constants to Exception subclasses and error codes
- *
- * @var array
- */
- protected static $errorMap = [
- CURLE_UNSUPPORTED_PROTOCOL => ['HTTP_Request2_MessageException',
- HTTP_Request2_Exception::NON_HTTP_REDIRECT],
- CURLE_COULDNT_RESOLVE_PROXY => ['HTTP_Request2_ConnectionException'],
- CURLE_COULDNT_RESOLVE_HOST => ['HTTP_Request2_ConnectionException'],
- CURLE_COULDNT_CONNECT => ['HTTP_Request2_ConnectionException'],
- // error returned from write callback
- CURLE_WRITE_ERROR => ['HTTP_Request2_MessageException',
- HTTP_Request2_Exception::NON_HTTP_REDIRECT],
- CURLE_OPERATION_TIMEOUTED => ['HTTP_Request2_MessageException',
- HTTP_Request2_Exception::TIMEOUT],
- CURLE_HTTP_RANGE_ERROR => ['HTTP_Request2_MessageException'],
- CURLE_SSL_CONNECT_ERROR => ['HTTP_Request2_ConnectionException'],
- CURLE_LIBRARY_NOT_FOUND => ['HTTP_Request2_LogicException',
- HTTP_Request2_Exception::MISCONFIGURATION],
- CURLE_FUNCTION_NOT_FOUND => ['HTTP_Request2_LogicException',
- HTTP_Request2_Exception::MISCONFIGURATION],
- CURLE_ABORTED_BY_CALLBACK => ['HTTP_Request2_MessageException',
- HTTP_Request2_Exception::NON_HTTP_REDIRECT],
- CURLE_TOO_MANY_REDIRECTS => ['HTTP_Request2_MessageException',
- HTTP_Request2_Exception::TOO_MANY_REDIRECTS],
- CURLE_SSL_PEER_CERTIFICATE => ['HTTP_Request2_ConnectionException'],
- CURLE_GOT_NOTHING => ['HTTP_Request2_MessageException'],
- CURLE_SSL_ENGINE_NOTFOUND => ['HTTP_Request2_LogicException',
- HTTP_Request2_Exception::MISCONFIGURATION],
- CURLE_SSL_ENGINE_SETFAILED => ['HTTP_Request2_LogicException',
- HTTP_Request2_Exception::MISCONFIGURATION],
- CURLE_SEND_ERROR => ['HTTP_Request2_MessageException'],
- CURLE_RECV_ERROR => ['HTTP_Request2_MessageException'],
- CURLE_SSL_CERTPROBLEM => ['HTTP_Request2_LogicException',
- HTTP_Request2_Exception::INVALID_ARGUMENT],
- CURLE_SSL_CIPHER => ['HTTP_Request2_ConnectionException'],
- CURLE_SSL_CACERT => ['HTTP_Request2_ConnectionException'],
- CURLE_BAD_CONTENT_ENCODING => ['HTTP_Request2_MessageException'],
- ];
-
- /**
- * Response being received
- *
- * @var HTTP_Request2_Response
- */
- protected $response;
-
- /**
- * Whether 'sentHeaders' event was sent to observers
- *
- * @var boolean
- */
- protected $eventSentHeaders = false;
-
- /**
- * Whether 'receivedHeaders' event was sent to observers
- *
- * @var boolean
- */
- protected $eventReceivedHeaders = false;
-
- /**
- * Whether 'sentBoody' event was sent to observers
- *
- * @var boolean
- */
- protected $eventSentBody = false;
-
- /**
- * Position within request body
- *
- * @var integer
- * @see callbackReadBody()
- */
- protected $position = 0;
-
- /**
- * Information about last transfer, as returned by curl_getinfo()
- *
- * @var array
- */
- protected $lastInfo;
-
- /**
- * Creates a subclass of HTTP_Request2_Exception from curl error data
- *
- * @param resource $ch curl handle
- *
- * @return HTTP_Request2_Exception
- */
- protected static function wrapCurlError($ch)
- {
- $nativeCode = curl_errno($ch);
- $message = 'Curl error: ' . curl_error($ch);
- if (!isset(self::$errorMap[$nativeCode])) {
- return new HTTP_Request2_Exception($message, 0, $nativeCode);
- } else {
- $class = self::$errorMap[$nativeCode][0];
- $code = empty(self::$errorMap[$nativeCode][1])
- ? 0 : self::$errorMap[$nativeCode][1];
- return new $class($message, $code, $nativeCode);
- }
- }
-
- /**
- * Sends request to the remote server and returns its response
- *
- * @param HTTP_Request2 $request HTTP request message
- *
- * @return HTTP_Request2_Response
- * @throws HTTP_Request2_Exception
- */
- public function sendRequest(HTTP_Request2 $request)
- {
- if (!extension_loaded('curl')) {
- throw new HTTP_Request2_LogicException(
- 'cURL extension not available', HTTP_Request2_Exception::MISCONFIGURATION
- );
- }
-
- $this->request = $request;
- $this->response = null;
- $this->position = 0;
- $this->eventSentHeaders = false;
- $this->eventReceivedHeaders = false;
- $this->eventSentBody = false;
-
- try {
- if (false === curl_exec($ch = $this->createCurlHandle())) {
- throw self::wrapCurlError($ch);
- }
- } finally { // phpcs:ignore PHPCompatibility.Keywords.NewKeywords.t_finallyFound
- if (isset($ch)) {
- $this->lastInfo = curl_getinfo($ch);
- if (CURLE_OK !== curl_errno($ch)) {
- $this->request->setLastEvent('warning', curl_error($ch));
- }
- curl_close($ch);
- }
- $response = $this->response;
- unset($this->request, $this->requestBody, $this->response);
- }
-
- if ($jar = $request->getCookieJar()) {
- $jar->addCookiesFromResponse($response);
- }
-
- if (0 < $this->lastInfo['size_download']) {
- $request->setLastEvent('receivedBody', $response);
- }
- return $response;
- }
-
- /**
- * Returns information about last transfer
- *
- * @return array associative array as returned by curl_getinfo()
- */
- public function getInfo()
- {
- return $this->lastInfo;
- }
-
- /**
- * Creates a new cURL handle and populates it with data from the request
- *
- * @return resource a cURL handle, as created by curl_init()
- * @throws HTTP_Request2_LogicException
- * @throws HTTP_Request2_NotImplementedException
- */
- protected function createCurlHandle()
- {
- $ch = curl_init();
-
- curl_setopt_array(
- $ch, [
- // setup write callbacks
- CURLOPT_HEADERFUNCTION => [$this, 'callbackWriteHeader'],
- CURLOPT_WRITEFUNCTION => [$this, 'callbackWriteBody'],
- // buffer size
- CURLOPT_BUFFERSIZE => $this->request->getConfig('buffer_size'),
- // connection timeout
- CURLOPT_CONNECTTIMEOUT => $this->request->getConfig('connect_timeout'),
- // save full outgoing headers, in case someone is interested
- CURLINFO_HEADER_OUT => true,
- // request url
- CURLOPT_URL => $this->request->getUrl()->getUrl()
- ]
- );
-
- // set up redirects
- if (!$this->request->getConfig('follow_redirects')) {
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
- } else {
- if (!@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true)) {
- throw new HTTP_Request2_LogicException(
- 'Redirect support in curl is unavailable due to open_basedir or safe_mode setting',
- HTTP_Request2_Exception::MISCONFIGURATION
- );
- }
- curl_setopt($ch, CURLOPT_MAXREDIRS, $this->request->getConfig('max_redirects'));
- // limit redirects to http(s), works in 5.2.10+
- if (defined('CURLOPT_REDIR_PROTOCOLS')) {
- curl_setopt($ch, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
- }
- // works in 5.3.2+, http://bugs.php.net/bug.php?id=49571
- if ($this->request->getConfig('strict_redirects') && defined('CURLOPT_POSTREDIR')) {
- curl_setopt($ch, CURLOPT_POSTREDIR, 3);
- }
- }
-
- // set local IP via CURLOPT_INTERFACE (request #19515)
- if ($ip = $this->request->getConfig('local_ip')) {
- curl_setopt($ch, CURLOPT_INTERFACE, $ip);
- }
-
- // request timeout
- if ($timeout = $this->request->getConfig('timeout')) {
- curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
- }
-
- // set HTTP version
- switch ($this->request->getConfig('protocol_version')) {
- case '1.0':
- curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
- break;
- case '1.1':
- curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
- }
-
- // set request method
- switch ($this->request->getMethod()) {
- case HTTP_Request2::METHOD_GET:
- curl_setopt($ch, CURLOPT_HTTPGET, true);
- break;
- case HTTP_Request2::METHOD_POST:
- curl_setopt($ch, CURLOPT_POST, true);
- break;
- case HTTP_Request2::METHOD_HEAD:
- curl_setopt($ch, CURLOPT_NOBODY, true);
- break;
- case HTTP_Request2::METHOD_PUT:
- curl_setopt($ch, CURLOPT_UPLOAD, true);
- break;
- default:
- curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $this->request->getMethod());
- }
-
- // set proxy, if needed
- if ($host = $this->request->getConfig('proxy_host')) {
- if (!($port = $this->request->getConfig('proxy_port'))) {
- throw new HTTP_Request2_LogicException(
- 'Proxy port not provided', HTTP_Request2_Exception::MISSING_VALUE
- );
- }
- curl_setopt($ch, CURLOPT_PROXY, $host . ':' . $port);
- if ($user = $this->request->getConfig('proxy_user')) {
- curl_setopt(
- $ch, CURLOPT_PROXYUSERPWD,
- $user . ':' . $this->request->getConfig('proxy_password')
- );
- switch ($this->request->getConfig('proxy_auth_scheme')) {
- case HTTP_Request2::AUTH_BASIC:
- curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
- break;
- case HTTP_Request2::AUTH_DIGEST:
- curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_DIGEST);
- }
- }
- if ($type = $this->request->getConfig('proxy_type')) {
- switch ($type) {
- case 'http':
- curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
- break;
- case 'socks5':
- curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
- break;
- default:
- throw new HTTP_Request2_NotImplementedException(
- "Proxy type '{$type}' is not supported"
- );
- }
- }
- }
-
- // set authentication data
- if ($auth = $this->request->getAuth()) {
- curl_setopt($ch, CURLOPT_USERPWD, $auth['user'] . ':' . $auth['password']);
- switch ($auth['scheme']) {
- case HTTP_Request2::AUTH_BASIC:
- curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
- break;
- case HTTP_Request2::AUTH_DIGEST:
- curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
- }
- }
-
- // set SSL options
- foreach ($this->request->getConfig() as $name => $value) {
- if ('ssl_verify_host' == $name && null !== $value) {
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $value? 2: 0);
- } elseif (isset(self::$sslContextMap[$name]) && null !== $value) {
- curl_setopt($ch, self::$sslContextMap[$name], $value);
- }
- }
-
- $headers = $this->request->getHeaders();
- // make cURL automagically send proper header
- if (!isset($headers['accept-encoding'])) {
- $headers['accept-encoding'] = '';
- }
-
- if (($jar = $this->request->getCookieJar())
- && ($cookies = $jar->getMatching($this->request->getUrl(), true))
- ) {
- $headers['cookie'] = (empty($headers['cookie'])? '': $headers['cookie'] . '; ') . $cookies;
- }
-
- // set headers having special cURL keys
- foreach (self::$headerMap as $name => $option) {
- if (isset($headers[$name])) {
- curl_setopt($ch, $option, $headers[$name]);
- unset($headers[$name]);
- }
- }
-
- $this->calculateRequestLength($headers);
- if (isset($headers['content-length']) || isset($headers['transfer-encoding'])) {
- $this->workaroundPhpBug47204($ch, $headers);
- }
-
- // set headers not having special keys
- $headersFmt = [];
- foreach ($headers as $name => $value) {
- $canonicalName = implode('-', array_map('ucfirst', explode('-', $name)));
- $headersFmt[] = $canonicalName . ': ' . $value;
- }
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headersFmt);
-
- return $ch;
- }
-
- /**
- * Workaround for PHP bug #47204 that prevents rewinding request body
- *
- * The workaround consists of reading the entire request body into memory
- * and setting it as CURLOPT_POSTFIELDS, so it isn't recommended for large
- * file uploads, use Socket adapter instead.
- *
- * @param resource $ch cURL handle
- * @param array $headers Request headers
- *
- * @return void
- */
- protected function workaroundPhpBug47204($ch, &$headers)
- {
- // no redirects, no digest auth -> probably no rewind needed
- // also apply workaround only for POSTs, othrerwise we get
- // https://pear.php.net/bugs/bug.php?id=20440 for PUTs
- if (!$this->request->getConfig('follow_redirects')
- && (!($auth = $this->request->getAuth())
- || HTTP_Request2::AUTH_DIGEST !== $auth['scheme'])
- || HTTP_Request2::METHOD_POST !== $this->request->getMethod()
- ) {
- curl_setopt($ch, CURLOPT_READFUNCTION, [$this, 'callbackReadBody']);
-
- } else {
- // rewind may be needed, read the whole body into memory
- if ($this->requestBody instanceof HTTP_Request2_MultipartBody) {
- $this->requestBody = $this->requestBody->__toString();
-
- } elseif (is_resource($this->requestBody)) {
- $fp = $this->requestBody;
- $this->requestBody = '';
- while (!feof($fp)) {
- $this->requestBody .= fread($fp, 16384);
- }
- }
- // curl hangs up if content-length is present
- unset($headers['content-length']);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $this->requestBody);
- }
- }
-
- /**
- * Callback function called by cURL for reading the request body
- *
- * @param resource $ch cURL handle
- * @param resource $fd file descriptor (not used)
- * @param integer $length maximum length of data to return
- *
- * @return string part of the request body, up to $length bytes
- */
- protected function callbackReadBody($ch, $fd, $length)
- {
- if (!$this->eventSentHeaders) {
- $this->request->setLastEvent(
- 'sentHeaders', curl_getinfo($ch, CURLINFO_HEADER_OUT)
- );
- $this->eventSentHeaders = true;
- }
- if (in_array($this->request->getMethod(), self::$bodyDisallowed)
- || 0 == $this->contentLength || $this->position >= $this->contentLength
- ) {
- return '';
- }
- if (is_string($this->requestBody)) {
- $string = substr($this->requestBody, $this->position, $length);
- } elseif (is_resource($this->requestBody)) {
- $string = fread($this->requestBody, $length);
- } else {
- $string = $this->requestBody->read($length);
- }
- $this->request->setLastEvent('sentBodyPart', strlen($string));
- $this->position += strlen($string);
- return $string;
- }
-
- /**
- * Callback function called by cURL for saving the response headers
- *
- * @param resource $ch cURL handle
- * @param string $string response header (with trailing CRLF)
- *
- * @return integer number of bytes saved
- * @see HTTP_Request2_Response::parseHeaderLine()
- */
- protected function callbackWriteHeader($ch, $string)
- {
- if (!$this->eventSentHeaders
- // we may receive a second set of headers if doing e.g. digest auth
- // but don't bother with 100-Continue responses (bug #15785)
- || $this->eventReceivedHeaders && $this->response->getStatus() >= 200
- ) {
- $this->request->setLastEvent(
- 'sentHeaders', curl_getinfo($ch, CURLINFO_HEADER_OUT)
- );
- }
- if (!$this->eventSentBody) {
- $upload = curl_getinfo($ch, CURLINFO_SIZE_UPLOAD);
- // if body wasn't read by the callback, send event with total body size
- if ($upload > $this->position) {
- $this->request->setLastEvent(
- 'sentBodyPart', $upload - $this->position
- );
- }
- if ($upload > 0) {
- $this->request->setLastEvent('sentBody', $upload);
- }
- }
- $this->eventSentHeaders = true;
- $this->eventSentBody = true;
-
- if ($this->eventReceivedHeaders || empty($this->response)) {
- $this->eventReceivedHeaders = false;
- $this->response = new HTTP_Request2_Response(
- $string, false, curl_getinfo($ch, CURLINFO_EFFECTIVE_URL)
- );
-
- } else {
- $this->response->parseHeaderLine($string);
- if ('' == trim($string)) {
- // don't bother with 100-Continue responses (bug #15785)
- if (200 <= $this->response->getStatus()) {
- $this->request->setLastEvent('receivedHeaders', $this->response);
- }
-
- if ($this->request->getConfig('follow_redirects') && $this->response->isRedirect()) {
- $redirectUrl = new Net_URL2($this->response->getHeader('location'));
-
- // for versions lower than 5.2.10, check the redirection URL protocol
- if (!defined('CURLOPT_REDIR_PROTOCOLS') && $redirectUrl->isAbsolute()
- && !in_array($redirectUrl->getScheme(), ['http', 'https'])
- ) {
- return -1;
- }
-
- if ($jar = $this->request->getCookieJar()) {
- $jar->addCookiesFromResponse($this->response);
- if (!$redirectUrl->isAbsolute()) {
- $redirectUrl = $this->request->getUrl()->resolve($redirectUrl);
- }
- if ($cookies = $jar->getMatching($redirectUrl, true)) {
- curl_setopt($ch, CURLOPT_COOKIE, $cookies);
- }
- }
- }
- $this->eventReceivedHeaders = true;
- $this->eventSentBody = false;
- }
- }
- return strlen($string);
- }
-
- /**
- * Callback function called by cURL for saving the response body
- *
- * @param resource $ch cURL handle (not used)
- * @param string $string part of the response body
- *
- * @return integer number of bytes saved
- * @throws HTTP_Request2_MessageException
- * @see HTTP_Request2_Response::appendBody()
- */
- protected function callbackWriteBody($ch, $string)
- {
- // cURL calls WRITEFUNCTION callback without calling HEADERFUNCTION if
- // response doesn't start with proper HTTP status line (see bug #15716)
- if (empty($this->response)) {
- throw new HTTP_Request2_MessageException(
- "Malformed response: {$string}",
- HTTP_Request2_Exception::MALFORMED_RESPONSE
- );
- }
- if ($this->request->getConfig('store_body')) {
- $this->response->appendBody($string);
- }
- $this->request->setLastEvent('receivedBodyPart', $string);
- return strlen($string);
- }
-}
-?>
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Adapter/Mock.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Adapter/Mock.php
deleted file mode 100644
index 7ac09b03..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Adapter/Mock.php
+++ /dev/null
@@ -1,168 +0,0 @@
-
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-/**
- * Base class for HTTP_Request2 adapters
- */
-require_once 'HTTP/Request2/Adapter.php';
-
-/**
- * Mock adapter intended for testing
- *
- * Can be used to test applications depending on HTTP_Request2 package without
- * actually performing any HTTP requests. This adapter will return responses
- * previously added via addResponse()
- *
- * $mock = new HTTP_Request2_Adapter_Mock();
- * $mock->addResponse("HTTP/1.1 ... ");
- *
- * $request = new HTTP_Request2();
- * $request->setAdapter($mock);
- *
- * // This will return the response set above
- * $response = $req->send();
- *
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: 2.5.1
- * @link http://pear.php.net/package/HTTP_Request2
- */
-class HTTP_Request2_Adapter_Mock extends HTTP_Request2_Adapter
-{
- /**
- * A queue of responses to be returned by sendRequest()
- *
- * @var array
- */
- protected $responses = [];
-
- /**
- * Returns the next response from the queue built by addResponse()
- *
- * Only responses without explicit URLs or with URLs equal to request URL
- * will be considered. If matching response is not found or the queue is
- * empty then default empty response with status 400 will be returned,
- * if an Exception object was added to the queue it will be thrown.
- *
- * @param HTTP_Request2 $request HTTP request message
- *
- * @return HTTP_Request2_Response
- * @throws Exception
- */
- public function sendRequest(HTTP_Request2 $request)
- {
- $requestUrl = (string)$request->getUrl();
- $response = null;
- foreach ($this->responses as $k => $v) {
- if (!$v[1] || $requestUrl == $v[1]) {
- $response = $v[0];
- array_splice($this->responses, $k, 1);
- break;
- }
- }
- if (!$response) {
- return self::createResponseFromString("HTTP/1.1 400 Bad Request\r\n\r\n");
-
- } elseif ($response instanceof HTTP_Request2_Response) {
- return $response;
-
- } else {
- // rethrow the exception
- $class = get_class($response);
- $message = $response->getMessage();
- $code = $response->getCode();
- throw new $class($message, $code);
- }
- }
-
- /**
- * Adds response to the queue
- *
- * @param mixed $response either a string, a pointer to an open file,
- * an instance of HTTP_Request2_Response or Exception
- * @param string $url A request URL this response should be valid for
- * (see {@link http://pear.php.net/bugs/bug.php?id=19276})
- *
- * @return void
- * @throws HTTP_Request2_Exception
- */
- public function addResponse($response, $url = null)
- {
- if (is_string($response)) {
- $response = self::createResponseFromString($response);
- } elseif (is_resource($response)) {
- $response = self::createResponseFromFile($response);
- } elseif (!$response instanceof HTTP_Request2_Response
- && !$response instanceof Exception
- ) {
- throw new HTTP_Request2_Exception('Parameter is not a valid response');
- }
- $this->responses[] = [$response, $url];
- }
-
- /**
- * Creates a new HTTP_Request2_Response object from a string
- *
- * @param string $str string containing HTTP response message
- *
- * @return HTTP_Request2_Response
- * @throws HTTP_Request2_Exception
- */
- public static function createResponseFromString($str)
- {
- $parts = preg_split('!(\r?\n){2}!m', $str, 2);
- $headerLines = explode("\n", $parts[0]);
- $response = new HTTP_Request2_Response(array_shift($headerLines));
- foreach ($headerLines as $headerLine) {
- $response->parseHeaderLine($headerLine);
- }
- $response->parseHeaderLine('');
- if (isset($parts[1])) {
- $response->appendBody($parts[1]);
- }
- return $response;
- }
-
- /**
- * Creates a new HTTP_Request2_Response object from a file
- *
- * @param resource $fp file pointer returned by fopen()
- *
- * @return HTTP_Request2_Response
- * @throws HTTP_Request2_Exception
- */
- public static function createResponseFromFile($fp)
- {
- $response = new HTTP_Request2_Response(fgets($fp));
- do {
- $headerLine = fgets($fp);
- $response->parseHeaderLine($headerLine);
- } while ('' != trim($headerLine));
-
- while (!feof($fp)) {
- $response->appendBody(fread($fp, 8192));
- }
- return $response;
- }
-}
-?>
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Adapter/Socket.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Adapter/Socket.php
deleted file mode 100644
index 2fab066a..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Adapter/Socket.php
+++ /dev/null
@@ -1,1146 +0,0 @@
-
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-/** Base class for HTTP_Request2 adapters */
-require_once 'HTTP/Request2/Adapter.php';
-
-/** Socket wrapper class */
-require_once 'HTTP/Request2/SocketWrapper.php';
-
-/**
- * Socket-based adapter for HTTP_Request2
- *
- * This adapter uses only PHP sockets and will work on almost any PHP
- * environment. Code is based on original HTTP_Request PEAR package.
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: 2.5.1
- * @link http://pear.php.net/package/HTTP_Request2
- */
-class HTTP_Request2_Adapter_Socket extends HTTP_Request2_Adapter
-{
- /**
- * Regular expression for 'token' rule from RFC 2616
- */
- const REGEXP_TOKEN = '[^\x00-\x1f\x7f-\xff()<>@,;:\\\\"/\[\]?={}\s]+';
-
- /**
- * Regular expression for 'quoted-string' rule from RFC 2616
- */
- const REGEXP_QUOTED_STRING = '"(?>[^"\\\\]+|\\\\.)*"';
-
- /**
- * Connected sockets, needed for Keep-Alive support
- *
- * @var array
- * @see connect()
- */
- protected static $sockets = [];
-
- /**
- * Data for digest authentication scheme
- *
- * The keys for the array are URL prefixes.
- *
- * The values are associative arrays with data (realm, nonce, nonce-count,
- * opaque...) needed for digest authentication. Stored here to prevent making
- * duplicate requests to digest-protected resources after we have already
- * received the challenge.
- *
- * @var array
- */
- protected static $challenges = [];
-
- /**
- * Connected socket
- *
- * @var HTTP_Request2_SocketWrapper
- * @see connect()
- */
- protected $socket;
-
- /**
- * Challenge used for server digest authentication
- *
- * @var array
- */
- protected $serverChallenge;
-
- /**
- * Challenge used for proxy digest authentication
- *
- * @var array
- */
- protected $proxyChallenge;
-
- /**
- * Remaining length of the current chunk, when reading chunked response
- *
- * @var integer
- * @see readChunked()
- */
- protected $chunkLength = 0;
-
- /**
- * Remaining amount of redirections to follow
- *
- * Starts at 'max_redirects' configuration parameter and is reduced on each
- * subsequent redirect. An Exception will be thrown once it reaches zero.
- *
- * @var integer
- */
- protected $redirectCountdown = null;
-
- /**
- * Whether to wait for "100 Continue" response before sending request body
- *
- * @var bool
- */
- protected $expect100Continue = false;
-
- /**
- * Sends request to the remote server and returns its response
- *
- * @param HTTP_Request2 $request HTTP request message
- *
- * @return HTTP_Request2_Response
- * @throws HTTP_Request2_Exception
- */
- public function sendRequest(HTTP_Request2 $request)
- {
- $this->request = $request;
-
- try {
- $keepAlive = $this->connect();
- $headers = $this->prepareHeaders();
- $this->socket->write($headers);
- // provide request headers to the observer, see request #7633
- $this->request->setLastEvent('sentHeaders', $headers);
-
- if (!$this->expect100Continue) {
- $this->writeBody();
- $response = $this->readResponse();
-
- } else {
- $response = $this->readResponse();
- if (!$response || 100 == $response->getStatus()) {
- $this->expect100Continue = false;
- // either got "100 Continue" or timed out -> send body
- $this->writeBody();
- $response = $this->readResponse();
- }
- }
-
-
- if ($jar = $request->getCookieJar()) {
- $jar->addCookiesFromResponse($response);
- }
-
- if (!$this->canKeepAlive($keepAlive, $response)) {
- $this->disconnect();
- }
-
- if ($this->shouldUseProxyDigestAuth($response)) {
- return $this->sendRequest($request);
- }
- if ($this->shouldUseServerDigestAuth($response)) {
- return $this->sendRequest($request);
- }
- if ($authInfo = $response->getHeader('authentication-info')) {
- $this->updateChallenge($this->serverChallenge, $authInfo);
- }
- if ($proxyInfo = $response->getHeader('proxy-authentication-info')) {
- $this->updateChallenge($this->proxyChallenge, $proxyInfo);
- }
-
- } catch (Exception $e) {
- $this->disconnect();
- $this->redirectCountdown = null;
- throw $e;
-
- } finally { // phpcs:ignore PHPCompatibility.Keywords.NewKeywords.t_finallyFound
- unset($this->request, $this->requestBody);
- }
-
- if (!$request->getConfig('follow_redirects') || !$response->isRedirect()) {
- $this->redirectCountdown = null;
- return $response;
- } else {
- return $this->handleRedirect($request, $response);
- }
- }
-
- /**
- * Connects to the remote server
- *
- * @return bool whether the connection can be persistent
- * @throws HTTP_Request2_Exception
- */
- protected function connect()
- {
- $secure = 0 == strcasecmp($this->request->getUrl()->getScheme(), 'https');
- $tunnel = HTTP_Request2::METHOD_CONNECT == $this->request->getMethod();
- $headers = $this->request->getHeaders();
- $reqHost = $this->request->getUrl()->getHost();
- if (!($reqPort = $this->request->getUrl()->getPort())) {
- $reqPort = $secure? 443: 80;
- }
-
- $httpProxy = $socksProxy = false;
- if (!($host = $this->request->getConfig('proxy_host'))) {
- $host = $reqHost;
- $port = $reqPort;
- } else {
- if (!($port = $this->request->getConfig('proxy_port'))) {
- throw new HTTP_Request2_LogicException(
- 'Proxy port not provided',
- HTTP_Request2_Exception::MISSING_VALUE
- );
- }
- if ('http' == ($type = $this->request->getConfig('proxy_type'))) {
- $httpProxy = true;
- } elseif ('socks5' == $type) {
- $socksProxy = true;
- } else {
- throw new HTTP_Request2_NotImplementedException(
- "Proxy type '{$type}' is not supported"
- );
- }
- }
-
- if ($tunnel && !$httpProxy) {
- throw new HTTP_Request2_LogicException(
- "Trying to perform CONNECT request without proxy",
- HTTP_Request2_Exception::MISSING_VALUE
- );
- }
- if ($secure && !in_array('ssl', stream_get_transports())) {
- throw new HTTP_Request2_LogicException(
- 'Need OpenSSL support for https:// requests',
- HTTP_Request2_Exception::MISCONFIGURATION
- );
- }
-
- // RFC 2068, section 19.7.1: A client MUST NOT send the Keep-Alive
- // connection token to a proxy server...
- if ($httpProxy && !$secure && !empty($headers['connection'])
- && 'Keep-Alive' == $headers['connection']
- ) {
- $this->request->setHeader('connection');
- }
-
- $keepAlive = ('1.1' == $this->request->getConfig('protocol_version') &&
- empty($headers['connection'])) ||
- (!empty($headers['connection']) &&
- 'Keep-Alive' == $headers['connection']);
-
- $options = [];
- if ($ip = $this->request->getConfig('local_ip')) {
- $options['socket'] = [
- 'bindto' => (false === strpos($ip, ':') ? $ip : '[' . $ip . ']') . ':0'
- ];
- }
- if ($secure || $tunnel) {
- $options['ssl'] = [];
- foreach ($this->request->getConfig() as $name => $value) {
- if ('ssl_' == substr($name, 0, 4) && null !== $value) {
- if ('ssl_verify_host' == $name) {
- $options['ssl']['verify_peer_name'] = $value;
- $options['ssl']['peer_name'] = $reqHost;
-
- } else {
- $options['ssl'][substr($name, 4)] = $value;
- }
- }
- }
- ksort($options['ssl']);
- }
-
- // Use global request timeout if given, see feature requests #5735, #8964
- if ($timeout = $this->request->getConfig('timeout')) {
- $deadline = microtime(true) + $timeout;
- } else {
- $deadline = null;
- }
-
- // Changing SSL context options after connection is established does *not*
- // work, we need a new connection if options change
- $remote = ((!$secure || $httpProxy || $socksProxy)? 'tcp://': 'tls://')
- . $host . ':' . $port;
- $socketKey = $remote . (
- ($secure && $httpProxy || $socksProxy)
- ? "->{$reqHost}:{$reqPort}" : ''
- ) . (empty($options)? '': ':' . serialize($options));
- unset($this->socket);
-
- // We use persistent connections and have a connected socket?
- // Ensure that the socket is still connected, see bug #16149
- if ($keepAlive && !empty(self::$sockets[$socketKey])
- && !self::$sockets[$socketKey]->eof()
- ) {
- $this->socket =& self::$sockets[$socketKey];
-
- } else {
- if ($socksProxy) {
- require_once 'HTTP/Request2/SOCKS5.php';
-
- $this->socket = new HTTP_Request2_SOCKS5(
- $remote, $this->request->getConfig('connect_timeout'),
- $options, $this->request->getConfig('proxy_user'),
- $this->request->getConfig('proxy_password')
- );
- // handle request timeouts ASAP
- $this->socket->setDeadline($deadline, $this->request->getConfig('timeout'));
- $this->socket->connect($reqHost, $reqPort);
- if (!$secure) {
- $conninfo = "tcp://{$reqHost}:{$reqPort} via {$remote}";
- } else {
- $this->socket->enableCrypto();
- $conninfo = "tls://{$reqHost}:{$reqPort} via {$remote}";
- }
-
- } elseif ($secure && $httpProxy && !$tunnel) {
- $this->establishTunnel();
- $conninfo = "tls://{$reqHost}:{$reqPort} via {$remote}";
-
- } else {
- $this->socket = new HTTP_Request2_SocketWrapper(
- $remote, $this->request->getConfig('connect_timeout'), $options
- );
- }
- $this->request->setLastEvent('connect', empty($conninfo)? $remote: $conninfo);
- self::$sockets[$socketKey] =& $this->socket;
- }
- $this->socket->setDeadline($deadline, $this->request->getConfig('timeout'));
- return $keepAlive;
- }
-
- /**
- * Establishes a tunnel to a secure remote server via HTTP CONNECT request
- *
- * This method will fail if 'ssl_verify_peer' is enabled. Probably because PHP
- * sees that we are connected to a proxy server (duh!) rather than the server
- * that presents its certificate.
- *
- * @link http://tools.ietf.org/html/rfc2817#section-5.2
- *
- * @return void
- * @throws HTTP_Request2_Exception
- */
- protected function establishTunnel()
- {
- $donor = new self;
- $connect = new HTTP_Request2(
- $this->request->getUrl(), HTTP_Request2::METHOD_CONNECT,
- array_merge($this->request->getConfig(), ['adapter' => $donor])
- );
- $response = $connect->send();
- // Need any successful (2XX) response
- if (200 > $response->getStatus() || 300 <= $response->getStatus()) {
- throw new HTTP_Request2_ConnectionException(
- 'Failed to connect via HTTPS proxy. Proxy response: ' .
- $response->getStatus() . ' ' . $response->getReasonPhrase()
- );
- }
- $this->socket = $donor->socket;
- $this->socket->enableCrypto();
- }
-
- /**
- * Checks whether current connection may be reused or should be closed
- *
- * @param boolean $requestKeepAlive whether connection could
- * be persistent in the first place
- * @param HTTP_Request2_Response $response response object to check
- *
- * @return boolean
- */
- protected function canKeepAlive($requestKeepAlive, HTTP_Request2_Response $response)
- {
- // Do not close socket on successful CONNECT request
- if (HTTP_Request2::METHOD_CONNECT === $this->request->getMethod()
- && 200 <= $response->getStatus() && 300 > $response->getStatus()
- ) {
- return true;
- }
-
- $lengthKnown = 'chunked' === strtolower($response->getHeader('transfer-encoding') ?: '')
- || null !== $response->getHeader('content-length')
- // no body possible for such responses, see also request #17031
- || HTTP_Request2::METHOD_HEAD === $this->request->getMethod()
- || in_array($response->getStatus(), [204, 304]);
- $persistent = 'keep-alive' === strtolower($response->getHeader('connection') ?: '') ||
- (null === $response->getHeader('connection') &&
- '1.1' === $response->getVersion());
- return $requestKeepAlive && $lengthKnown && $persistent;
- }
-
- /**
- * Disconnects from the remote server
- *
- * @return void
- */
- protected function disconnect()
- {
- if (!empty($this->socket)) {
- $this->socket = null;
- $this->request->setLastEvent('disconnect');
- }
- }
-
- /**
- * Handles HTTP redirection
- *
- * This method will throw an Exception if redirect to a non-HTTP(S) location
- * is attempted, also if number of redirects performed already is equal to
- * 'max_redirects' configuration parameter.
- *
- * @param HTTP_Request2 $request Original request
- * @param HTTP_Request2_Response $response Response containing redirect
- *
- * @return HTTP_Request2_Response Response from a new location
- * @throws HTTP_Request2_Exception
- */
- protected function handleRedirect(
- HTTP_Request2 $request, HTTP_Request2_Response $response
- ) {
- if (is_null($this->redirectCountdown)) {
- $this->redirectCountdown = $request->getConfig('max_redirects');
- }
- if (0 == $this->redirectCountdown) {
- $this->redirectCountdown = null;
- // Copying cURL behaviour
- throw new HTTP_Request2_MessageException(
- 'Maximum (' . $request->getConfig('max_redirects') . ') redirects followed',
- HTTP_Request2_Exception::TOO_MANY_REDIRECTS
- );
- }
- $redirectUrl = new Net_URL2(
- $response->getHeader('location'),
- [Net_URL2::OPTION_USE_BRACKETS => $request->getConfig('use_brackets')]
- );
- // refuse non-HTTP redirect
- if ($redirectUrl->isAbsolute()
- && !in_array($redirectUrl->getScheme(), ['http', 'https'])
- ) {
- $this->redirectCountdown = null;
- throw new HTTP_Request2_MessageException(
- 'Refusing to redirect to a non-HTTP URL ' . $redirectUrl->__toString(),
- HTTP_Request2_Exception::NON_HTTP_REDIRECT
- );
- }
- // Theoretically URL should be absolute (see http://tools.ietf.org/html/rfc2616#section-14.30),
- // but in practice it is often not
- if (!$redirectUrl->isAbsolute()) {
- $redirectUrl = $request->getUrl()->resolve($redirectUrl);
- }
- $redirect = clone $request;
- $redirect->setUrl($redirectUrl);
- if (303 == $response->getStatus()
- || (!$request->getConfig('strict_redirects')
- && in_array($response->getStatus(), [301, 302]))
- ) {
- $redirect->setMethod(HTTP_Request2::METHOD_GET);
- $redirect->setBody('');
- }
-
- if (0 < $this->redirectCountdown) {
- $this->redirectCountdown--;
- }
- return $this->sendRequest($redirect);
- }
-
- /**
- * Checks whether another request should be performed with server digest auth
- *
- * Several conditions should be satisfied for it to return true:
- * - response status should be 401
- * - auth credentials should be set in the request object
- * - response should contain WWW-Authenticate header with digest challenge
- * - there is either no challenge stored for this URL or new challenge
- * contains stale=true parameter (in other case we probably just failed
- * due to invalid username / password)
- *
- * The method stores challenge values in $challenges static property
- *
- * @param HTTP_Request2_Response $response response to check
- *
- * @return boolean whether another request should be performed
- * @throws HTTP_Request2_Exception in case of unsupported challenge parameters
- */
- protected function shouldUseServerDigestAuth(HTTP_Request2_Response $response)
- {
- // no sense repeating a request if we don't have credentials
- if (401 != $response->getStatus() || !$this->request->getAuth()) {
- return false;
- }
- if (!$challenge = $this->parseDigestChallenge($response->getHeader('www-authenticate'))) {
- return false;
- }
-
- $url = $this->request->getUrl();
- $scheme = $url->getScheme();
- $host = $scheme . '://' . $url->getHost();
- if ($port = $url->getPort()) {
- if ((0 == strcasecmp($scheme, 'http') && 80 != $port)
- || (0 == strcasecmp($scheme, 'https') && 443 != $port)
- ) {
- $host .= ':' . $port;
- }
- }
-
- if (!empty($challenge['domain'])) {
- $prefixes = [];
- foreach (preg_split('/\\s+/', $challenge['domain']) as $prefix) {
- // don't bother with different servers
- if ('/' == substr($prefix, 0, 1)) {
- $prefixes[] = $host . $prefix;
- }
- }
- }
- if (empty($prefixes)) {
- $prefixes = [$host . '/'];
- }
-
- $ret = true;
- foreach ($prefixes as $prefix) {
- if (!empty(self::$challenges[$prefix])
- && (empty($challenge['stale']) || strcasecmp('true', $challenge['stale']))
- ) {
- // probably credentials are invalid
- $ret = false;
- }
- self::$challenges[$prefix] =& $challenge;
- }
- return $ret;
- }
-
- /**
- * Checks whether another request should be performed with proxy digest auth
- *
- * Several conditions should be satisfied for it to return true:
- * - response status should be 407
- * - proxy auth credentials should be set in the request object
- * - response should contain Proxy-Authenticate header with digest challenge
- * - there is either no challenge stored for this proxy or new challenge
- * contains stale=true parameter (in other case we probably just failed
- * due to invalid username / password)
- *
- * The method stores challenge values in $challenges static property
- *
- * @param HTTP_Request2_Response $response response to check
- *
- * @return boolean whether another request should be performed
- * @throws HTTP_Request2_Exception in case of unsupported challenge parameters
- */
- protected function shouldUseProxyDigestAuth(HTTP_Request2_Response $response)
- {
- if (407 != $response->getStatus() || !$this->request->getConfig('proxy_user')) {
- return false;
- }
- if (!($challenge = $this->parseDigestChallenge($response->getHeader('proxy-authenticate')))) {
- return false;
- }
-
- $key = 'proxy://' . $this->request->getConfig('proxy_host') .
- ':' . $this->request->getConfig('proxy_port');
-
- if (!empty(self::$challenges[$key])
- && (empty($challenge['stale']) || strcasecmp('true', $challenge['stale']))
- ) {
- $ret = false;
- } else {
- $ret = true;
- }
- self::$challenges[$key] = $challenge;
- return $ret;
- }
-
- /**
- * Extracts digest method challenge from (WWW|Proxy)-Authenticate header value
- *
- * There is a problem with implementation of RFC 2617: several of the parameters
- * are defined as quoted-string there and thus may contain backslash escaped
- * double quotes (RFC 2616, section 2.2). However, RFC 2617 defines unq(X) as
- * just value of quoted-string X without surrounding quotes, it doesn't speak
- * about removing backslash escaping.
- *
- * Now realm parameter is user-defined and human-readable, strange things
- * happen when it contains quotes:
- * - Apache allows quotes in realm, but apparently uses realm value without
- * backslashes for digest computation
- * - Squid allows (manually escaped) quotes there, but it is impossible to
- * authorize with either escaped or unescaped quotes used in digest,
- * probably it can't parse the response (?)
- * - Both IE and Firefox display realm value with backslashes in
- * the password popup and apparently use the same value for digest
- *
- * HTTP_Request2 follows IE and Firefox (and hopefully RFC 2617) in
- * quoted-string handling, unfortunately that means failure to authorize
- * sometimes
- *
- * @param string $headerValue value of WWW-Authenticate or Proxy-Authenticate header
- *
- * @return mixed associative array with challenge parameters, false if
- * no challenge is present in header value
- * @throws HTTP_Request2_NotImplementedException in case of unsupported challenge parameters
- */
- protected function parseDigestChallenge($headerValue)
- {
- $authParam = '(' . self::REGEXP_TOKEN . ')\\s*=\\s*(' .
- self::REGEXP_TOKEN . '|' . self::REGEXP_QUOTED_STRING . ')';
- $challenge = "!(?<=^|\\s|,)Digest ({$authParam}\\s*(,\\s*|$))+!";
- if (!preg_match($challenge, $headerValue, $matches)) {
- return false;
- }
-
- preg_match_all('!' . $authParam . '!', $matches[0], $params);
- $paramsAry = [];
- $knownParams = ['realm', 'domain', 'nonce', 'opaque', 'stale',
- 'algorithm', 'qop'];
- for ($i = 0; $i < count($params[0]); $i++) {
- // section 3.2.1: Any unrecognized directive MUST be ignored.
- if (in_array($params[1][$i], $knownParams)) {
- if ('"' == substr($params[2][$i], 0, 1)) {
- $paramsAry[$params[1][$i]] = substr($params[2][$i], 1, -1);
- } else {
- $paramsAry[$params[1][$i]] = $params[2][$i];
- }
- }
- }
- // we only support qop=auth
- if (!empty($paramsAry['qop'])
- && !in_array('auth', array_map('trim', explode(',', $paramsAry['qop'])))
- ) {
- throw new HTTP_Request2_NotImplementedException(
- "Only 'auth' qop is currently supported in digest authentication, " .
- "server requested '{$paramsAry['qop']}'"
- );
- }
- // we only support algorithm=MD5
- if (!empty($paramsAry['algorithm']) && 'MD5' != $paramsAry['algorithm']) {
- throw new HTTP_Request2_NotImplementedException(
- "Only 'MD5' algorithm is currently supported in digest authentication, " .
- "server requested '{$paramsAry['algorithm']}'"
- );
- }
-
- return $paramsAry;
- }
-
- /**
- * Parses [Proxy-]Authentication-Info header value and updates challenge
- *
- * @param array $challenge challenge to update
- * @param string $headerValue value of [Proxy-]Authentication-Info header
- *
- * @return void
- *
- * @todo validate server rspauth response
- */
- protected function updateChallenge(&$challenge, $headerValue)
- {
- $authParam = '!(' . self::REGEXP_TOKEN . ')\\s*=\\s*(' .
- self::REGEXP_TOKEN . '|' . self::REGEXP_QUOTED_STRING . ')!';
- $paramsAry = [];
-
- preg_match_all($authParam, $headerValue, $params);
- for ($i = 0; $i < count($params[0]); $i++) {
- if ('"' == substr($params[2][$i], 0, 1)) {
- $paramsAry[$params[1][$i]] = substr($params[2][$i], 1, -1);
- } else {
- $paramsAry[$params[1][$i]] = $params[2][$i];
- }
- }
- // for now, just update the nonce value
- if (!empty($paramsAry['nextnonce'])) {
- $challenge['nonce'] = $paramsAry['nextnonce'];
- $challenge['nc'] = 1;
- }
- }
-
- /**
- * Creates a value for [Proxy-]Authorization header when using digest authentication
- *
- * @param string $user user name
- * @param string $password password
- * @param string $url request URL
- * @param array $challenge digest challenge parameters
- *
- * @return string value of [Proxy-]Authorization request header
- * @link http://tools.ietf.org/html/rfc2617#section-3.2.2
- */
- protected function createDigestResponse($user, $password, $url, &$challenge)
- {
- if (false !== ($q = strpos($url, '?'))
- && $this->request->getConfig('digest_compat_ie')
- ) {
- $url = substr($url, 0, $q);
- }
-
- $a1 = md5($user . ':' . $challenge['realm'] . ':' . $password);
- $a2 = md5($this->request->getMethod() . ':' . $url);
-
- if (empty($challenge['qop'])) {
- $digest = md5($a1 . ':' . $challenge['nonce'] . ':' . $a2);
- } else {
- $challenge['cnonce'] = 'Req2.' . rand();
- if (empty($challenge['nc'])) {
- $challenge['nc'] = 1;
- }
- $nc = sprintf('%08x', $challenge['nc']++);
- $digest = md5(
- $a1 . ':' . $challenge['nonce'] . ':' . $nc . ':' .
- $challenge['cnonce'] . ':auth:' . $a2
- );
- }
- return 'Digest username="' . str_replace(['\\', '"'], ['\\\\', '\\"'], $user) . '", ' .
- 'realm="' . $challenge['realm'] . '", ' .
- 'nonce="' . $challenge['nonce'] . '", ' .
- 'uri="' . $url . '", ' .
- 'response="' . $digest . '"' .
- (!empty($challenge['opaque'])?
- ', opaque="' . $challenge['opaque'] . '"':
- '') .
- (!empty($challenge['qop'])?
- ', qop="auth", nc=' . $nc . ', cnonce="' . $challenge['cnonce'] . '"':
- '');
- }
-
- /**
- * Adds 'Authorization' header (if needed) to request headers array
- *
- * @param array $headers request headers
- * @param string $requestHost request host (needed for digest authentication)
- * @param string $requestUrl request URL (needed for digest authentication)
- *
- * @return void
- * @throws HTTP_Request2_NotImplementedException
- */
- protected function addAuthorizationHeader(&$headers, $requestHost, $requestUrl)
- {
- if (!($auth = $this->request->getAuth())) {
- return;
- }
- switch ($auth['scheme']) {
- case HTTP_Request2::AUTH_BASIC:
- $headers['authorization'] = 'Basic ' . base64_encode(
- $auth['user'] . ':' . $auth['password']
- );
- break;
-
- case HTTP_Request2::AUTH_DIGEST:
- unset($this->serverChallenge);
- $fullUrl = ('/' == $requestUrl[0])?
- $this->request->getUrl()->getScheme() . '://' .
- $requestHost . $requestUrl:
- $requestUrl;
- foreach (array_keys(self::$challenges) as $key) {
- if ($key == substr($fullUrl, 0, strlen($key))) {
- $headers['authorization'] = $this->createDigestResponse(
- $auth['user'], $auth['password'],
- $requestUrl, self::$challenges[$key]
- );
- $this->serverChallenge =& self::$challenges[$key];
- break;
- }
- }
- break;
-
- default:
- throw new HTTP_Request2_NotImplementedException(
- "Unknown HTTP authentication scheme '{$auth['scheme']}'"
- );
- }
- }
-
- /**
- * Adds 'Proxy-Authorization' header (if needed) to request headers array
- *
- * @param array $headers request headers
- * @param string $requestUrl request URL (needed for digest authentication)
- *
- * @return void
- * @throws HTTP_Request2_NotImplementedException
- */
- protected function addProxyAuthorizationHeader(&$headers, $requestUrl)
- {
- if (!$this->request->getConfig('proxy_host')
- || !($user = $this->request->getConfig('proxy_user'))
- || (0 == strcasecmp('https', $this->request->getUrl()->getScheme())
- && HTTP_Request2::METHOD_CONNECT != $this->request->getMethod())
- ) {
- return;
- }
-
- $password = $this->request->getConfig('proxy_password');
- switch ($this->request->getConfig('proxy_auth_scheme')) {
- case HTTP_Request2::AUTH_BASIC:
- $headers['proxy-authorization'] = 'Basic ' . base64_encode(
- $user . ':' . $password
- );
- break;
-
- case HTTP_Request2::AUTH_DIGEST:
- unset($this->proxyChallenge);
- $proxyUrl = 'proxy://' . $this->request->getConfig('proxy_host') .
- ':' . $this->request->getConfig('proxy_port');
- if (!empty(self::$challenges[$proxyUrl])) {
- $headers['proxy-authorization'] = $this->createDigestResponse(
- $user, $password,
- $requestUrl, self::$challenges[$proxyUrl]
- );
- $this->proxyChallenge =& self::$challenges[$proxyUrl];
- }
- break;
-
- default:
- throw new HTTP_Request2_NotImplementedException(
- "Unknown HTTP authentication scheme '" .
- $this->request->getConfig('proxy_auth_scheme') . "'"
- );
- }
- }
-
-
- /**
- * Creates the string with the Request-Line and request headers
- *
- * @return string
- * @throws HTTP_Request2_Exception
- */
- protected function prepareHeaders()
- {
- $headers = $this->request->getHeaders();
- $url = $this->request->getUrl();
- $connect = HTTP_Request2::METHOD_CONNECT == $this->request->getMethod();
- $host = $url->getHost();
-
- $defaultPort = 0 == strcasecmp($url->getScheme(), 'https')? 443: 80;
- if (($port = $url->getPort()) && $port != $defaultPort || $connect) {
- $host .= ':' . (empty($port)? $defaultPort: $port);
- }
- // Do not overwrite explicitly set 'Host' header, see bug #16146
- if (!isset($headers['host'])) {
- $headers['host'] = $host;
- }
-
- if ($connect) {
- $requestUrl = $host;
-
- } else {
- if (!$this->request->getConfig('proxy_host')
- || 'http' != $this->request->getConfig('proxy_type')
- || 0 == strcasecmp($url->getScheme(), 'https')
- ) {
- $requestUrl = '';
- } else {
- $requestUrl = $url->getScheme() . '://' . $host;
- }
- $path = $url->getPath();
- $query = $url->getQuery();
- $requestUrl .= (empty($path)? '/': $path) . (empty($query)? '': '?' . $query);
- }
-
- if ('1.1' == $this->request->getConfig('protocol_version')
- && extension_loaded('zlib') && !isset($headers['accept-encoding'])
- ) {
- $headers['accept-encoding'] = 'gzip, deflate';
- }
- if (($jar = $this->request->getCookieJar())
- && ($cookies = $jar->getMatching($this->request->getUrl(), true))
- ) {
- $headers['cookie'] = (empty($headers['cookie'])? '': $headers['cookie'] . '; ') . $cookies;
- }
-
- $this->addAuthorizationHeader($headers, $host, $requestUrl);
- $this->addProxyAuthorizationHeader($headers, $requestUrl);
- $this->calculateRequestLength($headers);
- if ('1.1' == $this->request->getConfig('protocol_version')) {
- $this->updateExpectHeader($headers);
- } else {
- $this->expect100Continue = false;
- }
-
- $headersStr = $this->request->getMethod() . ' ' . $requestUrl . ' HTTP/' .
- $this->request->getConfig('protocol_version') . "\r\n";
- foreach ($headers as $name => $value) {
- $canonicalName = implode('-', array_map('ucfirst', explode('-', $name)));
- $headersStr .= $canonicalName . ': ' . $value . "\r\n";
- }
- return $headersStr . "\r\n";
- }
-
- /**
- * Adds or removes 'Expect: 100-continue' header from request headers
- *
- * Also sets the $expect100Continue property. Parsing of existing header
- * is somewhat needed due to its complex structure and due to the
- * requirement in section 8.2.3 of RFC 2616:
- * > A client MUST NOT send an Expect request-header field (section
- * > 14.20) with the "100-continue" expectation if it does not intend
- * > to send a request body.
- *
- * @param array $headers Array of headers prepared for the request
- *
- * @return void
- * @throws HTTP_Request2_LogicException
- *
- * @link http://pear.php.net/bugs/bug.php?id=19233
- * @link http://tools.ietf.org/html/rfc2616#section-8.2.3
- */
- protected function updateExpectHeader(&$headers)
- {
- $this->expect100Continue = false;
- $expectations = [];
- if (isset($headers['expect'])) {
- if ('' === $headers['expect']) {
- // empty 'Expect' header is technically invalid, so just get rid of it
- unset($headers['expect']);
- return;
- }
- // build regexp to parse the value of existing Expect header
- $expectParam = ';\s*' . self::REGEXP_TOKEN . '(?:\s*=\s*(?:'
- . self::REGEXP_TOKEN . '|'
- . self::REGEXP_QUOTED_STRING . '))?\s*';
- $expectExtension = self::REGEXP_TOKEN . '(?:\s*=\s*(?:'
- . self::REGEXP_TOKEN . '|'
- . self::REGEXP_QUOTED_STRING . ')\s*(?:'
- . $expectParam . ')*)?';
- $expectItem = '!(100-continue|' . $expectExtension . ')!A';
-
- $pos = 0;
- $length = strlen($headers['expect']);
-
- while ($pos < $length) {
- $pos += strspn($headers['expect'], " \t", $pos);
- if (',' === substr($headers['expect'], $pos, 1)) {
- $pos++;
- continue;
-
- } elseif (!preg_match($expectItem, $headers['expect'], $m, 0, $pos)) {
- throw new HTTP_Request2_LogicException(
- "Cannot parse value '{$headers['expect']}' of Expect header",
- HTTP_Request2_Exception::INVALID_ARGUMENT
- );
-
- } else {
- $pos += strlen($m[0]);
- if (strcasecmp('100-continue', $m[0])) {
- $expectations[] = $m[0];
- }
- }
- }
- }
-
- if (1024 < $this->contentLength) {
- $expectations[] = '100-continue';
- $this->expect100Continue = true;
- }
-
- if (empty($expectations)) {
- unset($headers['expect']);
- } else {
- $headers['expect'] = implode(',', $expectations);
- }
- }
-
- /**
- * Sends the request body
- *
- * @return void
- * @throws HTTP_Request2_MessageException
- */
- protected function writeBody()
- {
- if (in_array($this->request->getMethod(), self::$bodyDisallowed)
- || 0 == $this->contentLength
- ) {
- return;
- }
-
- $position = 0;
- $bufferSize = $this->request->getConfig('buffer_size');
- $headers = $this->request->getHeaders();
- $chunked = isset($headers['transfer-encoding']);
- while ($position < $this->contentLength) {
- if (is_string($this->requestBody)) {
- $str = substr($this->requestBody, $position, $bufferSize);
- } elseif (is_resource($this->requestBody)) {
- $str = fread($this->requestBody, $bufferSize);
- } else {
- $str = $this->requestBody->read($bufferSize);
- }
- if (!$chunked) {
- $this->socket->write($str);
- } else {
- $this->socket->write(dechex(strlen($str)) . "\r\n{$str}\r\n");
- }
- // Provide the length of written string to the observer, request #7630
- $this->request->setLastEvent('sentBodyPart', strlen($str));
- $position += strlen($str);
- }
-
- // write zero-length chunk
- if ($chunked) {
- $this->socket->write("0\r\n\r\n");
- }
- $this->request->setLastEvent('sentBody', $this->contentLength);
- }
-
- /**
- * Reads the remote server's response
- *
- * @return HTTP_Request2_Response
- * @throws HTTP_Request2_Exception
- */
- protected function readResponse()
- {
- $bufferSize = $this->request->getConfig('buffer_size');
- // http://tools.ietf.org/html/rfc2616#section-8.2.3
- // ...the client SHOULD NOT wait for an indefinite period before sending the request body
- $timeout = $this->expect100Continue ? 1 : null;
-
- do {
- try {
- $response = new HTTP_Request2_Response(
- $this->socket->readLine($bufferSize, $timeout), true, $this->request->getUrl()
- );
- do {
- $headerLine = $this->socket->readLine($bufferSize);
- $response->parseHeaderLine($headerLine);
- } while ('' != $headerLine);
-
- } catch (HTTP_Request2_MessageException $e) {
- if (HTTP_Request2_Exception::TIMEOUT === $e->getCode()
- && $this->expect100Continue
- ) {
- return null;
- }
- throw $e;
- }
- if ($this->expect100Continue && 100 == $response->getStatus()) {
- return $response;
- }
- } while (in_array($response->getStatus(), [100, 101]));
-
- $this->request->setLastEvent('receivedHeaders', $response);
-
- // No body possible in such responses
- if (HTTP_Request2::METHOD_HEAD == $this->request->getMethod()
- || (HTTP_Request2::METHOD_CONNECT == $this->request->getMethod()
- && 200 <= $response->getStatus() && 300 > $response->getStatus())
- || in_array($response->getStatus(), [204, 304])
- ) {
- return $response;
- }
-
- $chunked = 'chunked' == $response->getHeader('transfer-encoding');
- $length = $response->getHeader('content-length');
- $hasBody = false;
- // RFC 2616, section 4.4:
- // 3. ... If a message is received with both a
- // Transfer-Encoding header field and a Content-Length header field,
- // the latter MUST be ignored.
- $toRead = ($chunked || null === $length)? null: $length;
- $this->chunkLength = 0;
-
- if ($chunked || null === $length || 0 < intval($length)) {
- while (!$this->socket->eof() && (is_null($toRead) || 0 < $toRead)) {
- if ($chunked) {
- $data = $this->readChunked($bufferSize);
- } elseif (is_null($toRead)) {
- $data = $this->socket->read($bufferSize);
- } else {
- $data = $this->socket->read(min($toRead, $bufferSize));
- $toRead -= strlen($data);
- }
- if ('' == $data && (!$this->chunkLength || $this->socket->eof())) {
- break;
- }
-
- $hasBody = true;
- if ($this->request->getConfig('store_body')) {
- $response->appendBody($data);
- }
- if (!in_array($response->getHeader('content-encoding'), ['identity', null])) {
- $this->request->setLastEvent('receivedEncodedBodyPart', $data);
- } else {
- $this->request->setLastEvent('receivedBodyPart', $data);
- }
- }
- }
- if (0 !== $this->chunkLength || null !== $toRead && $toRead > 0) {
- $this->request->setLastEvent(
- 'warning', 'transfer closed with outstanding read data remaining'
- );
- }
-
- if ($hasBody) {
- $this->request->setLastEvent('receivedBody', $response);
- }
- return $response;
- }
-
- /**
- * Reads a part of response body encoded with chunked Transfer-Encoding
- *
- * @param int $bufferSize buffer size to use for reading
- *
- * @return string
- * @throws HTTP_Request2_MessageException
- */
- protected function readChunked($bufferSize)
- {
- // at start of the next chunk?
- if (0 == $this->chunkLength) {
- $line = $this->socket->readLine($bufferSize);
- if ('' === $line && $this->socket->eof()) {
- $this->chunkLength = -1; // indicate missing chunk
- return '';
-
- } elseif (!preg_match('/^([0-9a-f]+)/i', $line, $matches)) {
- throw new HTTP_Request2_MessageException(
- "Cannot decode chunked response, invalid chunk length '{$line}'",
- HTTP_Request2_Exception::DECODE_ERROR
- );
-
- } else {
- $this->chunkLength = hexdec($matches[1]);
- // Chunk with zero length indicates the end
- if (0 == $this->chunkLength) {
- $this->socket->readLine($bufferSize);
- return '';
- }
- }
- }
- $data = $this->socket->read(min($this->chunkLength, $bufferSize));
- $this->chunkLength -= strlen($data);
- if (0 == $this->chunkLength) {
- $this->socket->readLine($bufferSize); // Trailing CRLF
- }
- return $data;
- }
-}
-
-?>
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/ConnectionException.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/ConnectionException.php
deleted file mode 100644
index 3e06c939..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/ConnectionException.php
+++ /dev/null
@@ -1,38 +0,0 @@
-
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-/**
- * Exception thrown when connection to a web or proxy server fails
- *
- * The exception will not contain a package error code, but will contain
- * native error code, as returned by stream_socket_client() or curl_errno().
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: 2.5.1
- * @link http://pear.php.net/package/HTTP_Request2
- */
-class HTTP_Request2_ConnectionException extends HTTP_Request2_Exception
-{
-}
-
-?>
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/CookieJar.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/CookieJar.php
deleted file mode 100644
index 8d1829ec..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/CookieJar.php
+++ /dev/null
@@ -1,578 +0,0 @@
-
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-/** Class representing a HTTP request message */
-require_once 'HTTP/Request2.php';
-
-/**
- * Stores cookies and passes them between HTTP requests
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: @package_version@
- * @link http://pear.php.net/package/HTTP_Request2
- */
-class HTTP_Request2_CookieJar implements Serializable
-{
- /**
- * Array of stored cookies
- *
- * The array is indexed by domain, path and cookie name
- * .example.com
- * /
- * some_cookie => cookie data
- * /subdir
- * other_cookie => cookie data
- * .example.org
- * ...
- *
- * @var array
- */
- protected $cookies = [];
-
- /**
- * Whether session cookies should be serialized when serializing the jar
- *
- * @var bool
- */
- protected $serializeSession = false;
-
- /**
- * Whether Public Suffix List should be used for domain matching
- *
- * @var bool
- */
- protected $useList = true;
-
- /**
- * Whether an attempt to store an invalid cookie should be ignored, rather than cause an Exception
- *
- * @var bool
- */
- protected $ignoreInvalid = false;
-
- /**
- * Array with Public Suffix List data
- *
- * @var array
- * @link http://publicsuffix.org/
- */
- protected static $psl = [];
-
- /**
- * Class constructor, sets various options
- *
- * @param bool $serializeSessionCookies Controls serializing session cookies,
- * see {@link serializeSessionCookies()}
- * @param bool $usePublicSuffixList Controls using Public Suffix List,
- * see {@link usePublicSuffixList()}
- * @param bool $ignoreInvalidCookies Whether invalid cookies should be ignored,
- * see {@link ignoreInvalidCookies()}
- */
- public function __construct(
- $serializeSessionCookies = false, $usePublicSuffixList = true,
- $ignoreInvalidCookies = false
- ) {
- $this->serializeSessionCookies($serializeSessionCookies);
- $this->usePublicSuffixList($usePublicSuffixList);
- $this->ignoreInvalidCookies($ignoreInvalidCookies);
- }
-
- /**
- * Returns current time formatted in ISO-8601 at UTC timezone
- *
- * @return string
- */
- protected function now()
- {
- $dt = new DateTime();
- $dt->setTimezone(new DateTimeZone('UTC'));
- return $dt->format(DateTime::ISO8601);
- }
-
- /**
- * Checks cookie array for correctness, possibly updating its 'domain', 'path' and 'expires' fields
- *
- * The checks are as follows:
- * - cookie array should contain 'name' and 'value' fields;
- * - name and value should not contain disallowed symbols;
- * - 'expires' should be either empty parseable by DateTime;
- * - 'domain' and 'path' should be either not empty or an URL where
- * cookie was set should be provided.
- * - if $setter is provided, then document at that URL should be allowed
- * to set a cookie for that 'domain'. If $setter is not provided,
- * then no domain checks will be made.
- *
- * 'expires' field will be converted to ISO8601 format from COOKIE format,
- * 'domain' and 'path' will be set from setter URL if empty.
- *
- * @param array $cookie cookie data, as returned by
- * {@link HTTP_Request2_Response::getCookies()}
- * @param Net_URL2 $setter URL of the document that sent Set-Cookie header
- *
- * @return array Updated cookie array
- * @throws HTTP_Request2_LogicException
- * @throws HTTP_Request2_MessageException
- */
- protected function checkAndUpdateFields(array $cookie, Net_URL2 $setter = null)
- {
- if ($missing = array_diff(['name', 'value'], array_keys($cookie))) {
- throw new HTTP_Request2_LogicException(
- "Cookie array should contain 'name' and 'value' fields",
- HTTP_Request2_Exception::MISSING_VALUE
- );
- }
- if (preg_match(HTTP_Request2::REGEXP_INVALID_COOKIE, $cookie['name'])) {
- throw new HTTP_Request2_LogicException(
- "Invalid cookie name: '{$cookie['name']}'",
- HTTP_Request2_Exception::INVALID_ARGUMENT
- );
- }
- if (preg_match(HTTP_Request2::REGEXP_INVALID_COOKIE, $cookie['value'])) {
- throw new HTTP_Request2_LogicException(
- "Invalid cookie value: '{$cookie['value']}'",
- HTTP_Request2_Exception::INVALID_ARGUMENT
- );
- }
- $cookie += ['domain' => '', 'path' => '', 'expires' => null, 'secure' => false];
-
- // Need ISO-8601 date @ UTC timezone
- if (!empty($cookie['expires'])
- && !preg_match('/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\+0000$/', $cookie['expires'])
- ) {
- try {
- $dt = new DateTime($cookie['expires']);
- $dt->setTimezone(new DateTimeZone('UTC'));
- $cookie['expires'] = $dt->format(DateTime::ISO8601);
- } catch (Exception $e) {
- throw new HTTP_Request2_LogicException($e->getMessage());
- }
- }
-
- if (empty($cookie['domain']) || empty($cookie['path'])) {
- if (!$setter) {
- throw new HTTP_Request2_LogicException(
- 'Cookie misses domain and/or path component, cookie setter URL needed',
- HTTP_Request2_Exception::MISSING_VALUE
- );
- }
- if (empty($cookie['domain'])) {
- if ($host = $setter->getHost()) {
- $cookie['domain'] = $host;
- } else {
- throw new HTTP_Request2_LogicException(
- 'Setter URL does not contain host part, can\'t set cookie domain',
- HTTP_Request2_Exception::MISSING_VALUE
- );
- }
- }
- if (empty($cookie['path'])) {
- $path = $setter->getPath();
- $cookie['path'] = empty($path)? '/': substr($path, 0, strrpos($path, '/') + 1);
- }
- }
-
- if ($setter && !$this->domainMatch($setter->getHost(), $cookie['domain'])) {
- throw new HTTP_Request2_MessageException(
- "Domain " . $setter->getHost() . " cannot set cookies for "
- . $cookie['domain']
- );
- }
-
- return $cookie;
- }
-
- /**
- * Stores a cookie in the jar
- *
- * @param array $cookie cookie data, as returned by
- * {@link HTTP_Request2_Response::getCookies()}
- * @param Net_URL2 $setter URL of the document that sent Set-Cookie header
- *
- * @return bool whether the cookie was successfully stored
- * @throws HTTP_Request2_Exception
- */
- public function store(array $cookie, Net_URL2 $setter = null)
- {
- try {
- $cookie = $this->checkAndUpdateFields($cookie, $setter);
- } catch (HTTP_Request2_Exception $e) {
- if ($this->ignoreInvalid) {
- return false;
- } else {
- throw $e;
- }
- }
-
- if (strlen($cookie['value'])
- && (is_null($cookie['expires']) || $cookie['expires'] > $this->now())
- ) {
- if (!isset($this->cookies[$cookie['domain']])) {
- $this->cookies[$cookie['domain']] = [];
- }
- if (!isset($this->cookies[$cookie['domain']][$cookie['path']])) {
- $this->cookies[$cookie['domain']][$cookie['path']] = [];
- }
- $this->cookies[$cookie['domain']][$cookie['path']][$cookie['name']] = $cookie;
-
- } elseif (isset($this->cookies[$cookie['domain']][$cookie['path']][$cookie['name']])) {
- unset($this->cookies[$cookie['domain']][$cookie['path']][$cookie['name']]);
- }
-
- return true;
- }
-
- /**
- * Adds cookies set in HTTP response to the jar
- *
- * @param HTTP_Request2_Response $response HTTP response message
- * @param Net_URL2 $setter original request URL, needed for
- * setting default domain/path. If not given,
- * effective URL from response will be used.
- *
- * @return bool whether all cookies were successfully stored
- * @throws HTTP_Request2_LogicException
- */
- public function addCookiesFromResponse(HTTP_Request2_Response $response, Net_URL2 $setter = null)
- {
- if (null === $setter) {
- if (!($effectiveUrl = $response->getEffectiveUrl())) {
- throw new HTTP_Request2_LogicException(
- 'Response URL required for adding cookies from response',
- HTTP_Request2_Exception::MISSING_VALUE
- );
- }
- $setter = new Net_URL2($effectiveUrl);
- }
-
- $success = true;
- foreach ($response->getCookies() as $cookie) {
- $success = $this->store($cookie, $setter) && $success;
- }
- return $success;
- }
-
- /**
- * Returns all cookies matching a given request URL
- *
- * The following checks are made:
- * - cookie domain should match request host
- * - cookie path should be a prefix for request path
- * - 'secure' cookies will only be sent for HTTPS requests
- *
- * @param Net_URL2 $url Request url
- * @param bool $asString Whether to return cookies as string for "Cookie: " header
- *
- * @return array|string Matching cookies
- */
- public function getMatching(Net_URL2 $url, $asString = false)
- {
- $host = $url->getHost();
- $path = $url->getPath();
- $secure = 0 == strcasecmp($url->getScheme(), 'https');
-
- $matched = $ret = [];
- foreach (array_keys($this->cookies) as $domain) {
- if ($this->domainMatch($host, $domain)) {
- foreach (array_keys($this->cookies[$domain]) as $cPath) {
- if (0 === strpos($path, $cPath)) {
- foreach ($this->cookies[$domain][$cPath] as $name => $cookie) {
- if (!$cookie['secure'] || $secure) {
- $matched[$name][strlen($cookie['path'])] = $cookie;
- }
- }
- }
- }
- }
- }
- foreach ($matched as $cookies) {
- krsort($cookies);
- $ret = array_merge($ret, $cookies);
- }
- if (!$asString) {
- return $ret;
- } else {
- $str = '';
- foreach ($ret as $c) {
- $str .= (empty($str)? '': '; ') . $c['name'] . '=' . $c['value'];
- }
- return $str;
- }
- }
-
- /**
- * Returns all cookies stored in a jar
- *
- * @return array
- */
- public function getAll()
- {
- $cookies = [];
- foreach (array_keys($this->cookies) as $domain) {
- foreach (array_keys($this->cookies[$domain]) as $path) {
- foreach ($this->cookies[$domain][$path] as $name => $cookie) {
- $cookies[] = $cookie;
- }
- }
- }
- return $cookies;
- }
-
- /**
- * Sets whether session cookies should be serialized when serializing the jar
- *
- * @param boolean $serialize serialize?
- *
- * @return void
- */
- public function serializeSessionCookies($serialize)
- {
- $this->serializeSession = (bool)$serialize;
- }
-
- /**
- * Sets whether invalid cookies should be silently ignored or cause an Exception
- *
- * @param boolean $ignore ignore?
- *
- * @return void
- *
- * @link http://pear.php.net/bugs/bug.php?id=19937
- * @link http://pear.php.net/bugs/bug.php?id=20401
- */
- public function ignoreInvalidCookies($ignore)
- {
- $this->ignoreInvalid = (bool)$ignore;
- }
-
- /**
- * Sets whether Public Suffix List should be used for restricting cookie-setting
- *
- * Without PSL {@link domainMatch()} will only prevent setting cookies for
- * top-level domains like '.com' or '.org'. However, it will not prevent
- * setting a cookie for '.co.uk' even though only third-level registrations
- * are possible in .uk domain.
- *
- * With the List it is possible to find the highest level at which a domain
- * may be registered for a particular top-level domain and consequently
- * prevent cookies set for '.co.uk' or '.msk.ru'. The same list is used by
- * Firefox, Chrome and Opera browsers to restrict cookie setting.
- *
- * Note that PSL is licensed differently to HTTP_Request2 package (refer to
- * the license information in public-suffix-list.php), so you can disable
- * its use if this is an issue for you.
- *
- * @param boolean $useList use the list?
- *
- * @return void
- *
- * @link http://publicsuffix.org/learn/
- */
- public function usePublicSuffixList($useList)
- {
- $this->useList = (bool)$useList;
- }
-
- /**
- * Returns string representation of object
- *
- * @return string
- *
- * @see Serializable::serialize()
- */
- public function serialize()
- {
- return serialize($this->__serialize());
- }
-
- /**
- * Returns an associative array of key/value pairs that represent the serialized form of the object
- *
- * @return array
- */
- public function __serialize() // phpcs:ignore PHPCompatibility.FunctionNameRestrictions.NewMagicMethods.__serializeFound
- {
- $cookies = $this->getAll();
- if (!$this->serializeSession) {
- for ($i = count($cookies) - 1; $i >= 0; $i--) {
- if (empty($cookies[$i]['expires'])) {
- unset($cookies[$i]);
- }
- }
- }
- return [
- 'cookies' => $cookies,
- 'serializeSession' => $this->serializeSession,
- 'useList' => $this->useList,
- 'ignoreInvalid' => $this->ignoreInvalid
- ];
- }
-
- /**
- * Constructs the object from serialized string
- *
- * @param string $serialized string representation
- *
- * @return void
- */
- public function unserialize($serialized)
- {
- $this->__unserialize(unserialize($serialized));
- }
-
- /**
- * Constructs the object from array serialized form
- *
- * @param array $data serialized form (as generated by {@see __serialize()}
- *
- * @return void
- */
- public function __unserialize(array $data) // phpcs:ignore PHPCompatibility.FunctionNameRestrictions.NewMagicMethods.__unserializeFound
- {
- $now = $this->now();
- $this->serializeSessionCookies($data['serializeSession']);
- $this->usePublicSuffixList($data['useList']);
- if (array_key_exists('ignoreInvalid', $data)) {
- $this->ignoreInvalidCookies($data['ignoreInvalid']);
- }
- foreach ($data['cookies'] as $cookie) {
- if (!empty($cookie['expires']) && $cookie['expires'] <= $now) {
- continue;
- }
- if (!isset($this->cookies[$cookie['domain']])) {
- $this->cookies[$cookie['domain']] = [];
- }
- if (!isset($this->cookies[$cookie['domain']][$cookie['path']])) {
- $this->cookies[$cookie['domain']][$cookie['path']] = [];
- }
- $this->cookies[$cookie['domain']][$cookie['path']][$cookie['name']] = $cookie;
- }
- }
-
- /**
- * Checks whether a cookie domain matches a request host.
- *
- * The method is used by {@link store()} to check for whether a document
- * at given URL can set a cookie with a given domain attribute and by
- * {@link getMatching()} to find cookies matching the request URL.
- *
- * @param string $requestHost request host
- * @param string $cookieDomain cookie domain
- *
- * @return bool match success
- */
- public function domainMatch($requestHost, $cookieDomain)
- {
- if ($requestHost == $cookieDomain) {
- return true;
- }
- // IP address, we require exact match
- if (preg_match('/^(?:\d{1,3}\.){3}\d{1,3}$/', $requestHost)) {
- return false;
- }
- if ('.' != $cookieDomain[0]) {
- $cookieDomain = '.' . $cookieDomain;
- }
- // prevents setting cookies for '.com' and similar domains
- if (!$this->useList && substr_count($cookieDomain, '.') < 2
- || $this->useList && !self::getRegisteredDomain($cookieDomain)
- ) {
- return false;
- }
- return substr('.' . $requestHost, -strlen($cookieDomain)) == $cookieDomain;
- }
-
- /**
- * Removes subdomains to get the registered domain (the first after top-level)
- *
- * The method will check Public Suffix List to find out where top-level
- * domain ends and registered domain starts. It will remove domain parts
- * to the left of registered one.
- *
- * @param string $domain domain name
- *
- * @return string|bool registered domain, will return false if $domain is
- * either invalid or a TLD itself
- */
- public static function getRegisteredDomain($domain)
- {
- $domainParts = explode('.', ltrim($domain, '.'));
-
- // load the list if needed
- if (empty(self::$psl)) {
- $path = '@data_dir@' . DIRECTORY_SEPARATOR . 'HTTP_Request2';
- if (0 === strpos($path, '@' . 'data_dir@')) {
- $path = realpath(
- __DIR__ . DIRECTORY_SEPARATOR . '..'
- . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'data'
- );
- }
- self::$psl = include_once $path . DIRECTORY_SEPARATOR . 'public-suffix-list.php';
- }
-
- if (!($result = self::checkDomainsList($domainParts, self::$psl))) {
- // known TLD, invalid domain name
- return false;
- }
-
- // unknown TLD
- if (!strpos($result, '.')) {
- // fallback to checking that domain "has at least two dots"
- if (2 > ($count = count($domainParts))) {
- return false;
- }
- return $domainParts[$count - 2] . '.' . $domainParts[$count - 1];
- }
- return $result;
- }
-
- /**
- * Recursive helper method for {@link getRegisteredDomain()}
- *
- * @param array $domainParts remaining domain parts
- * @param mixed $listNode node in {@link HTTP_Request2_CookieJar::$psl} to check
- *
- * @return string|null concatenated domain parts, null in case of error
- */
- protected static function checkDomainsList(array $domainParts, $listNode)
- {
- $sub = array_pop($domainParts);
-
- if (!is_array($listNode) || is_null($sub)
- || array_key_exists('!' . $sub, $listNode)
- ) {
- return $sub;
-
- } elseif (array_key_exists($sub, $listNode)) {
- $result = self::checkDomainsList($domainParts, $listNode[$sub]);
-
- } elseif (array_key_exists('*', $listNode)) {
- $result = self::checkDomainsList($domainParts, $listNode['*']);
-
- } else {
- return $sub;
- }
-
- return (strlen($result ?: '') > 0) ? ($result . '.' . $sub) : null;
- }
-}
-?>
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Exception.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Exception.php
deleted file mode 100644
index 018408cb..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Exception.php
+++ /dev/null
@@ -1,118 +0,0 @@
-
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-/**
- * Base class for exceptions in PEAR
- */
-require_once 'PEAR/Exception.php';
-
-/**
- * Base exception class for HTTP_Request2 package
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: 2.5.1
- * @link http://pear.php.net/package/HTTP_Request2
- * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=132
- */
-class HTTP_Request2_Exception extends PEAR_Exception
-{
- /**
- * An invalid argument was passed to a method
- */
- const INVALID_ARGUMENT = 1;
- /**
- * Some required value was not available
- */
- const MISSING_VALUE = 2;
- /**
- * Request cannot be processed due to errors in PHP configuration
- */
- const MISCONFIGURATION = 3;
- /**
- * Error reading the local file
- */
- const READ_ERROR = 4;
-
- /**
- * Server returned a response that does not conform to HTTP protocol
- */
- const MALFORMED_RESPONSE = 10;
- /**
- * Failure decoding Content-Encoding or Transfer-Encoding of response
- */
- const DECODE_ERROR = 20;
- /**
- * Operation timed out
- */
- const TIMEOUT = 30;
- /**
- * Number of redirects exceeded 'max_redirects' configuration parameter
- */
- const TOO_MANY_REDIRECTS = 40;
- /**
- * Redirect to a protocol other than http(s)://
- */
- const NON_HTTP_REDIRECT = 50;
-
- /**
- * Native error code
- *
- * @var int
- */
- private $_nativeCode;
-
- /**
- * Constructor, can set package error code and native error code
- *
- * @param string $message exception message
- * @param int $code package error code, one of class constants
- * @param int $nativeCode error code from underlying PHP extension
- */
- public function __construct($message = null, $code = null, $nativeCode = null)
- {
- parent::__construct($message, $code);
- $this->_nativeCode = $nativeCode;
- }
-
- /**
- * Returns error code produced by underlying PHP extension
- *
- * For Socket Adapter this may contain error number returned by
- * stream_socket_client(), for Curl Adapter this will contain error number
- * returned by curl_errno()
- *
- * @return integer
- */
- public function getNativeCode()
- {
- return $this->_nativeCode;
- }
-}
-
-// backwards compatibility, include the child exceptions if installed with PEAR installer
-require_once 'HTTP/Request2/ConnectionException.php';
-require_once 'HTTP/Request2/LogicException.php';
-require_once 'HTTP/Request2/MessageException.php';
-require_once 'HTTP/Request2/NotImplementedException.php';
-
-?>
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/LogicException.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/LogicException.php
deleted file mode 100644
index ba165aa7..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/LogicException.php
+++ /dev/null
@@ -1,42 +0,0 @@
-
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-/**
- * Exception that represents error in the program logic
- *
- * This exception usually implies a programmer's error, like passing invalid
- * data to methods or trying to use PHP extensions that weren't installed or
- * enabled. Usually exceptions of this kind will be thrown before request even
- * starts.
- *
- * The exception will usually contain a package error code.
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: 2.5.1
- * @link http://pear.php.net/package/HTTP_Request2
- */
-class HTTP_Request2_LogicException extends HTTP_Request2_Exception
-{
-}
-
-?>
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/MessageException.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/MessageException.php
deleted file mode 100644
index b92cf943..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/MessageException.php
+++ /dev/null
@@ -1,37 +0,0 @@
-
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-/**
- * Exception thrown when sending or receiving HTTP message fails
- *
- * The exception may contain both package error code and native error code.
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: 2.5.1
- * @link http://pear.php.net/package/HTTP_Request2
- */
-class HTTP_Request2_MessageException extends HTTP_Request2_Exception
-{
-}
-
-?>
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/MultipartBody.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/MultipartBody.php
deleted file mode 100644
index eb28faf5..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/MultipartBody.php
+++ /dev/null
@@ -1,275 +0,0 @@
-
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-/** Exception class for HTTP_Request2 package */
-require_once 'HTTP/Request2/Exception.php';
-
-/**
- * Class for building multipart/form-data request body
- *
- * The class helps to reduce memory consumption by streaming large file uploads
- * from disk, it also allows monitoring of upload progress (see request #7630)
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: 2.5.1
- * @link http://pear.php.net/package/HTTP_Request2
- * @link http://tools.ietf.org/html/rfc1867
- */
-class HTTP_Request2_MultipartBody
-{
- /**
- * MIME boundary
- *
- * @var string
- */
- private $_boundary;
-
- /**
- * Form parameters added via {@link HTTP_Request2::addPostParameter()}
- *
- * @var array
- */
- private $_params = [];
-
- /**
- * File uploads added via {@link HTTP_Request2::addUpload()}
- *
- * @var array
- */
- private $_uploads = [];
-
- /**
- * Header for parts with parameters
- *
- * @var string
- */
- private $_headerParam = "--%s\r\nContent-Disposition: form-data; name=\"%s\"\r\n\r\n";
-
- /**
- * Header for parts with uploads
- *
- * @var string
- */
- private $_headerUpload = "--%s\r\nContent-Disposition: form-data; name=\"%s\"; filename=\"%s\"\r\nContent-Type: %s\r\n\r\n";
-
- /**
- * Current position in parameter and upload arrays
- *
- * First number is index of "current" part, second number is position within
- * "current" part
- *
- * @var array
- */
- private $_pos = [0, 0];
-
-
- /**
- * Constructor. Sets the arrays with POST data.
- *
- * @param array $params values of form fields set via
- * {@link HTTP_Request2::addPostParameter()}
- * @param array $uploads file uploads set via
- * {@link HTTP_Request2::addUpload()}
- * @param bool $useBrackets whether to append brackets to array variable names
- */
- public function __construct(array $params, array $uploads, $useBrackets = true)
- {
- $this->_params = self::_flattenArray('', $params, $useBrackets);
- foreach ($uploads as $fieldName => $f) {
- if (!is_array($f['fp'])) {
- $this->_uploads[] = $f + ['name' => $fieldName];
- } else {
- for ($i = 0; $i < count($f['fp']); $i++) {
- $upload = [
- 'name' => ($useBrackets? $fieldName . '[' . $i . ']': $fieldName)
- ];
- foreach (['fp', 'filename', 'size', 'type'] as $key) {
- $upload[$key] = $f[$key][$i];
- }
- $this->_uploads[] = $upload;
- }
- }
- }
- }
-
- /**
- * Returns the length of the body to use in Content-Length header
- *
- * @return integer
- */
- public function getLength()
- {
- $boundaryLength = strlen($this->getBoundary());
- $headerParamLength = strlen($this->_headerParam) - 4 + $boundaryLength;
- $headerUploadLength = strlen($this->_headerUpload) - 8 + $boundaryLength;
- $length = $boundaryLength + 6;
- foreach ($this->_params as $p) {
- $length += $headerParamLength + strlen($p[0]) + strlen($p[1]) + 2;
- }
- foreach ($this->_uploads as $u) {
- $length += $headerUploadLength + strlen($u['name']) + strlen($u['type']) +
- strlen($u['filename']) + $u['size'] + 2;
- }
- return $length;
- }
-
- /**
- * Returns the boundary to use in Content-Type header
- *
- * @return string
- */
- public function getBoundary()
- {
- if (empty($this->_boundary)) {
- $this->_boundary = '--' . md5('PEAR-HTTP_Request2-' . microtime());
- }
- return $this->_boundary;
- }
-
- /**
- * Returns next chunk of request body
- *
- * @param integer $length Number of bytes to read
- *
- * @return string Up to $length bytes of data, empty string if at end
- * @throws HTTP_Request2_LogicException
- */
- public function read($length)
- {
- $ret = '';
- $boundary = $this->getBoundary();
- $paramCount = count($this->_params);
- $uploadCount = count($this->_uploads);
- while ($length > 0 && $this->_pos[0] <= $paramCount + $uploadCount) {
- $oldLength = $length;
- if ($this->_pos[0] < $paramCount) {
- $param = sprintf(
- $this->_headerParam, $boundary, $this->_params[$this->_pos[0]][0]
- ) . $this->_params[$this->_pos[0]][1] . "\r\n";
- $ret .= substr($param, $this->_pos[1], $length);
- $length -= min(strlen($param) - $this->_pos[1], $length);
-
- } elseif ($this->_pos[0] < $paramCount + $uploadCount) {
- $pos = $this->_pos[0] - $paramCount;
- $header = sprintf(
- $this->_headerUpload, $boundary, $this->_uploads[$pos]['name'],
- $this->_uploads[$pos]['filename'], $this->_uploads[$pos]['type']
- );
- if ($this->_pos[1] < strlen($header)) {
- $ret .= substr($header, $this->_pos[1], $length);
- $length -= min(strlen($header) - $this->_pos[1], $length);
- }
- $filePos = max(0, $this->_pos[1] - strlen($header));
- if ($filePos < $this->_uploads[$pos]['size']) {
- while ($length > 0 && !feof($this->_uploads[$pos]['fp'])) {
- if (false === ($chunk = fread($this->_uploads[$pos]['fp'], $length))) {
- throw new HTTP_Request2_LogicException(
- 'Failed reading file upload', HTTP_Request2_Exception::READ_ERROR
- );
- }
- $ret .= $chunk;
- $length -= strlen($chunk);
- }
- }
- if ($length > 0) {
- $start = $this->_pos[1] + ($oldLength - $length) -
- strlen($header) - $this->_uploads[$pos]['size'];
- $ret .= substr("\r\n", $start, $length);
- $length -= min(2 - $start, $length);
- }
-
- } else {
- $closing = '--' . $boundary . "--\r\n";
- $ret .= substr($closing, $this->_pos[1], $length);
- $length -= min(strlen($closing) - $this->_pos[1], $length);
- }
- if ($length > 0) {
- $this->_pos = [$this->_pos[0] + 1, 0];
- } else {
- $this->_pos[1] += $oldLength;
- }
- }
- return $ret;
- }
-
- /**
- * Sets the current position to the start of the body
- *
- * This allows reusing the same body in another request
- *
- * @return void
- */
- public function rewind()
- {
- $this->_pos = [0, 0];
- foreach ($this->_uploads as $u) {
- rewind($u['fp']);
- }
- }
-
- /**
- * Returns the body as string
- *
- * Note that it reads all file uploads into memory so it is a good idea not
- * to use this method with large file uploads and rely on read() instead.
- *
- * @return string
- */
- public function __toString()
- {
- $this->rewind();
- return $this->read($this->getLength());
- }
-
-
- /**
- * Helper function to change the (probably multidimensional) associative array
- * into the simple one.
- *
- * @param string $name name for item
- * @param mixed $values item's values
- * @param bool $useBrackets whether to append [] to array variables' names
- *
- * @return array array with the following items: array('item name', 'item value');
- */
- private static function _flattenArray($name, $values, $useBrackets)
- {
- if (!is_array($values)) {
- return [[$name, $values]];
- } else {
- $ret = [];
- foreach ($values as $k => $v) {
- if (empty($name)) {
- $newName = $k;
- } elseif ($useBrackets) {
- $newName = $name . '[' . $k . ']';
- } else {
- $newName = $name;
- }
- $ret = array_merge($ret, self::_flattenArray($newName, $v, $useBrackets));
- }
- return $ret;
- }
- }
-}
-?>
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/NotImplementedException.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/NotImplementedException.php
deleted file mode 100644
index 289b8591..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/NotImplementedException.php
+++ /dev/null
@@ -1,35 +0,0 @@
-
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-/**
- * Exception thrown in case of missing features
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: 2.5.1
- * @link http://pear.php.net/package/HTTP_Request2
- */
-class HTTP_Request2_NotImplementedException extends HTTP_Request2_Exception
-{
-}
-
-?>
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Observer/Log.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Observer/Log.php
deleted file mode 100644
index 319107aa..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Observer/Log.php
+++ /dev/null
@@ -1,195 +0,0 @@
-
- * @author Alexey Borzov
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-/**
- * Exception class for HTTP_Request2 package
- */
-require_once 'HTTP/Request2/Exception.php';
-
-/**
- * A debug observer useful for debugging / testing.
- *
- * This observer logs to a log target data corresponding to the various request
- * and response events, it logs by default to php://output but can be configured
- * to log to a file or via the PEAR Log package.
- *
- * A simple example:
- *
- * require_once 'HTTP/Request2.php';
- * require_once 'HTTP/Request2/Observer/Log.php';
- *
- * $request = new HTTP_Request2('http://www.example.com');
- * $observer = new HTTP_Request2_Observer_Log();
- * $request->attach($observer);
- * $request->send();
- *
- *
- * A more complex example with PEAR Log:
- *
- * require_once 'HTTP/Request2.php';
- * require_once 'HTTP/Request2/Observer/Log.php';
- * require_once 'Log.php';
- *
- * $request = new HTTP_Request2('http://www.example.com');
- * // we want to log with PEAR log
- * $observer = new HTTP_Request2_Observer_Log(Log::factory('console'));
- *
- * // we only want to log received headers
- * $observer->events = array('receivedHeaders');
- *
- * $request->attach($observer);
- * $request->send();
- *
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author David Jean Louis
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: 2.5.1
- * @link http://pear.php.net/package/HTTP_Request2
- */
-class HTTP_Request2_Observer_Log implements SplObserver
-{
- // properties {{{
-
- /**
- * The log target, it can be a a resource or a PEAR Log instance.
- *
- * @var resource|Log $target
- */
- protected $target = null;
-
- /**
- * The events to log.
- *
- * @var array $events
- */
- public $events = [
- 'connect',
- 'sentHeaders',
- 'sentBody',
- 'receivedHeaders',
- 'receivedBody',
- 'disconnect',
- ];
-
- // }}}
- // __construct() {{{
-
- /**
- * Constructor.
- *
- * @param mixed $target Can be a file path (default: php://output), a resource,
- * or an instance of the PEAR Log class.
- * @param array $events Array of events to listen to (default: all events)
- *
- * @return void
- */
- public function __construct($target = 'php://output', array $events = [])
- {
- if (!empty($events)) {
- $this->events = $events;
- }
- if (is_resource($target) || $target instanceof Log) {
- $this->target = $target;
- } elseif (false === ($this->target = @fopen($target, 'ab'))) {
- throw new HTTP_Request2_Exception("Unable to open '{$target}'");
- }
- }
-
- // }}}
- // update() {{{
-
- #[ReturnTypeWillChange]
- /**
- * Called when the request notifies us of an event.
- *
- * @param HTTP_Request2 $subject The HTTP_Request2 instance
- *
- * @return void
- */
- public function update(SplSubject $subject)
- {
- $event = $subject->getLastEvent();
- if (!in_array($event['name'], $this->events)) {
- return;
- }
-
- switch ($event['name']) {
- case 'connect':
- $this->log('* Connected to ' . $event['data']);
- break;
- case 'sentHeaders':
- $headers = explode("\r\n", $event['data']);
- array_pop($headers);
- foreach ($headers as $header) {
- $this->log('> ' . $header);
- }
- break;
- case 'sentBody':
- $this->log('> ' . $event['data'] . ' byte(s) sent');
- break;
- case 'receivedHeaders':
- $this->log(
- sprintf(
- '< HTTP/%s %s %s', $event['data']->getVersion(),
- $event['data']->getStatus(), $event['data']->getReasonPhrase()
- )
- );
- $headers = $event['data']->getHeader();
- foreach ($headers as $key => $val) {
- $this->log('< ' . $key . ': ' . $val);
- }
- $this->log('< ');
- break;
- case 'receivedBody':
- $this->log($event['data']->getBody());
- break;
- case 'disconnect':
- $this->log('* Disconnected');
- break;
- }
- }
-
- // }}}
- // log() {{{
-
- /**
- * Logs the given message to the configured target.
- *
- * @param string $message Message to display
- *
- * @return void
- */
- protected function log($message)
- {
- if ($this->target instanceof Log) {
- $this->target->debug($message);
- } elseif (is_resource($this->target)) {
- fwrite($this->target, $message . "\r\n");
- }
- }
-
- // }}}
-}
-
-?>
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Observer/UncompressingDownload.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Observer/UncompressingDownload.php
deleted file mode 100644
index ef1b729a..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Observer/UncompressingDownload.php
+++ /dev/null
@@ -1,276 +0,0 @@
-
- * @author Alexey Borzov
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-require_once 'HTTP/Request2/Response.php';
-
-/**
- * An observer that saves response body to stream, possibly uncompressing it
- *
- * This Observer is written in compliment to pear's HTTP_Request2 in order to
- * avoid reading the whole response body in memory. Instead it writes the body
- * to a stream. If the body is transferred with content-encoding set to
- * "deflate" or "gzip" it is decoded on the fly.
- *
- * The constructor accepts an already opened (for write) stream (file_descriptor).
- * If the response is deflate/gzip encoded a "zlib.inflate" filter is applied
- * to the stream. When the body has been read from the request and written to
- * the stream ("receivedBody" event) the filter is removed from the stream.
- *
- * The "zlib.inflate" filter works fine with pure "deflate" encoding. It does
- * not understand the "deflate+zlib" and "gzip" headers though, so they have to
- * be removed prior to being passed to the stream. This is done in the "update"
- * method.
- *
- * It is also possible to limit the size of written extracted bytes by passing
- * "max_bytes" to the constructor. This is important because e.g. 1GB of
- * zeroes take about a MB when compressed.
- *
- * Exceptions are being thrown if data could not be written to the stream or
- * the written bytes have already exceeded the requested maximum. If the "gzip"
- * header is malformed or could not be parsed an exception will be thrown too.
- *
- * Example usage follows:
- *
- *
- * require_once 'HTTP/Request2.php';
- * require_once 'HTTP/Request2/Observer/UncompressingDownload.php';
- *
- * #$inPath = 'http://carsten.codimi.de/gzip.yaws/daniels.html';
- * #$inPath = 'http://carsten.codimi.de/gzip.yaws/daniels.html?deflate=on';
- * $inPath = 'http://carsten.codimi.de/gzip.yaws/daniels.html?deflate=on&zlib=on';
- * #$outPath = "/dev/null";
- * $outPath = "delme";
- *
- * $stream = fopen($outPath, 'wb');
- * if (!$stream) {
- * throw new Exception('fopen failed');
- * }
- *
- * $request = new HTTP_Request2(
- * $inPath,
- * HTTP_Request2::METHOD_GET,
- * array(
- * 'store_body' => false,
- * 'connect_timeout' => 5,
- * 'timeout' => 10,
- * 'ssl_verify_peer' => true,
- * 'ssl_verify_host' => true,
- * 'ssl_cafile' => null,
- * 'ssl_capath' => '/etc/ssl/certs',
- * 'max_redirects' => 10,
- * 'follow_redirects' => true,
- * 'strict_redirects' => false
- * )
- * );
- *
- * $observer = new HTTP_Request2_Observer_UncompressingDownload($stream, 9999999);
- * $request->attach($observer);
- *
- * $response = $request->send();
- *
- * fclose($stream);
- * echo "OK\n";
- *
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author Delian Krustev
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: 2.5.1
- * @link http://pear.php.net/package/HTTP_Request2
- */
-class HTTP_Request2_Observer_UncompressingDownload implements SplObserver
-{
- /**
- * The stream to write response body to
- *
- * @var resource
- */
- private $_stream;
-
- /**
- * 'zlib.inflate' filter possibly added to stream
- *
- * @var resource
- */
- private $_streamFilter;
-
- /**
- * The value of response's Content-Encoding header
- *
- * @var string
- */
- private $_encoding;
-
- /**
- * Whether the observer is still waiting for gzip/deflate header
- *
- * @var bool
- */
- private $_processingHeader = true;
-
- /**
- * Starting position in the stream observer writes to
- *
- * @var int
- */
- private $_startPosition = 0;
-
- /**
- * Maximum bytes to write
- *
- * @var int|null
- */
- private $_maxDownloadSize;
-
- /**
- * Whether response being received is a redirect
- *
- * @var bool
- */
- private $_redirect = false;
-
- /**
- * Accumulated body chunks that may contain (gzip) header
- *
- * @var string
- */
- private $_possibleHeader = '';
-
- /**
- * Class constructor
- *
- * Note that there might be problems with max_bytes and files bigger
- * than 2 GB on 32bit platforms
- *
- * @param resource $stream a stream (or file descriptor) opened for writing.
- * @param int $maxDownloadSize maximum bytes to write
- */
- public function __construct($stream, $maxDownloadSize = null)
- {
- $this->_stream = $stream;
- if ($maxDownloadSize) {
- $this->_maxDownloadSize = $maxDownloadSize;
- $this->_startPosition = ftell($this->_stream);
- }
- }
-
- #[ReturnTypeWillChange]
- /**
- * Called when the request notifies us of an event.
- *
- * @param SplSubject $request The HTTP_Request2 instance
- *
- * @return void
- * @throws HTTP_Request2_MessageException
- */
- public function update(SplSubject $request)
- {
- /* @var $request HTTP_Request2 */
- $event = $request->getLastEvent();
- $encoded = false;
-
- /* @var $event['data'] HTTP_Request2_Response */
- switch ($event['name']) {
- case 'receivedHeaders':
- $this->_processingHeader = true;
- $this->_redirect = $event['data']->isRedirect();
- $this->_encoding = strtolower($event['data']->getHeader('content-encoding') ?: '');
- $this->_possibleHeader = '';
- break;
-
- case 'receivedEncodedBodyPart':
- if (!$this->_streamFilter
- && ($this->_encoding === 'deflate' || $this->_encoding === 'gzip')
- ) {
- $this->_streamFilter = stream_filter_append(
- $this->_stream, 'zlib.inflate', STREAM_FILTER_WRITE
- );
- }
- $encoded = true;
- // fall-through is intentional
-
- case 'receivedBodyPart':
- if ($this->_redirect) {
- break;
- }
-
- if (!$encoded || !$this->_processingHeader) {
- $bytes = fwrite($this->_stream, $event['data']);
-
- } else {
- $offset = 0;
- $this->_possibleHeader .= $event['data'];
- if ('deflate' === $this->_encoding) {
- if (2 > strlen($this->_possibleHeader)) {
- break;
- }
- $header = unpack('n', substr($this->_possibleHeader, 0, 2));
- if (0 == $header[1] % 31) {
- $offset = 2;
- }
-
- } elseif ('gzip' === $this->_encoding) {
- if (10 > strlen($this->_possibleHeader)) {
- break;
- }
- try {
- $offset = HTTP_Request2_Response::parseGzipHeader($this->_possibleHeader, false);
-
- } catch (HTTP_Request2_MessageException $e) {
- // need more data?
- if (false !== strpos($e->getMessage(), 'data too short')) {
- break;
- }
- throw $e;
- }
- }
-
- $this->_processingHeader = false;
- $bytes = fwrite($this->_stream, substr($this->_possibleHeader, $offset));
- }
-
- if (false === $bytes) {
- throw new HTTP_Request2_MessageException('fwrite failed.');
- }
-
- if ($this->_maxDownloadSize
- && ftell($this->_stream) - $this->_startPosition > $this->_maxDownloadSize
- ) {
- throw new HTTP_Request2_MessageException(
- sprintf(
- 'Body length limit (%d bytes) reached',
- $this->_maxDownloadSize
- )
- );
- }
- break;
-
- case 'receivedBody':
- if ($this->_streamFilter) {
- stream_filter_remove($this->_streamFilter);
- $this->_streamFilter = null;
- }
- break;
- }
- }
-}
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Response.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Response.php
deleted file mode 100644
index 74e5e87d..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/Response.php
+++ /dev/null
@@ -1,692 +0,0 @@
-
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-/**
- * Exception class for HTTP_Request2 package
- */
-require_once 'HTTP/Request2/Exception.php';
-
-/**
- * Class representing a HTTP response
- *
- * The class is designed to be used in "streaming" scenario, building the
- * response as it is being received:
- *
- * $statusLine = read_status_line();
- * $response = new HTTP_Request2_Response($statusLine);
- * do {
- * $headerLine = read_header_line();
- * $response->parseHeaderLine($headerLine);
- * } while ($headerLine != '');
- *
- * while ($chunk = read_body()) {
- * $response->appendBody($chunk);
- * }
- *
- * var_dump($response->getHeader(), $response->getCookies(), $response->getBody());
- *
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: 2.5.1
- * @link http://pear.php.net/package/HTTP_Request2
- * @link http://tools.ietf.org/html/rfc2616#section-6
- */
-class HTTP_Request2_Response
-{
- /**
- * HTTP protocol version (e.g. 1.0, 1.1)
- *
- * @var string
- */
- protected $version;
-
- /**
- * Status code
- *
- * @var integer
- * @link http://tools.ietf.org/html/rfc2616#section-6.1.1
- */
- protected $code;
-
- /**
- * Reason phrase
- *
- * @var string
- * @link http://tools.ietf.org/html/rfc2616#section-6.1.1
- */
- protected $reasonPhrase;
-
- /**
- * Effective URL (may be different from original request URL in case of redirects)
- *
- * @var string
- */
- protected $effectiveUrl;
-
- /**
- * Associative array of response headers
- *
- * @var array
- */
- protected $headers = [];
-
- /**
- * Cookies set in the response
- *
- * @var array
- */
- protected $cookies = [];
-
- /**
- * Name of last header processed by parseHederLine()
- *
- * Used to handle the headers that span multiple lines
- *
- * @var string
- */
- protected $lastHeader = null;
-
- /**
- * Response body
- *
- * @var string
- */
- protected $body = '';
-
- /**
- * Whether the body is still encoded by Content-Encoding
- *
- * cURL provides the decoded body to the callback; if we are reading from
- * socket the body is still gzipped / deflated
- *
- * @var bool
- */
- protected $bodyEncoded;
-
- /**
- * Associative array of HTTP status code / reason phrase.
- *
- * @var array
- * @link http://tools.ietf.org/html/rfc2616#section-10
- */
- protected static $phrases = [
-
- // 1xx: Informational - Request received, continuing process
- 100 => 'Continue',
- 101 => 'Switching Protocols',
-
- // 2xx: Success - The action was successfully received, understood and
- // accepted
- 200 => 'OK',
- 201 => 'Created',
- 202 => 'Accepted',
- 203 => 'Non-Authoritative Information',
- 204 => 'No Content',
- 205 => 'Reset Content',
- 206 => 'Partial Content',
-
- // 3xx: Redirection - Further action must be taken in order to complete
- // the request
- 300 => 'Multiple Choices',
- 301 => 'Moved Permanently',
- 302 => 'Found', // 1.1
- 303 => 'See Other',
- 304 => 'Not Modified',
- 305 => 'Use Proxy',
- 307 => 'Temporary Redirect',
-
- // 4xx: Client Error - The request contains bad syntax or cannot be
- // fulfilled
- 400 => 'Bad Request',
- 401 => 'Unauthorized',
- 402 => 'Payment Required',
- 403 => 'Forbidden',
- 404 => 'Not Found',
- 405 => 'Method Not Allowed',
- 406 => 'Not Acceptable',
- 407 => 'Proxy Authentication Required',
- 408 => 'Request Timeout',
- 409 => 'Conflict',
- 410 => 'Gone',
- 411 => 'Length Required',
- 412 => 'Precondition Failed',
- 413 => 'Request Entity Too Large',
- 414 => 'Request-URI Too Long',
- 415 => 'Unsupported Media Type',
- 416 => 'Requested Range Not Satisfiable',
- 417 => 'Expectation Failed',
-
- // 5xx: Server Error - The server failed to fulfill an apparently
- // valid request
- 500 => 'Internal Server Error',
- 501 => 'Not Implemented',
- 502 => 'Bad Gateway',
- 503 => 'Service Unavailable',
- 504 => 'Gateway Timeout',
- 505 => 'HTTP Version Not Supported',
- 509 => 'Bandwidth Limit Exceeded',
-
- ];
-
- /**
- * Returns the default reason phrase for the given code or all reason phrases
- *
- * @param int $code Response code
- *
- * @return string|array|null Default reason phrase for $code if $code is given
- * (null if no phrase is available), array of all
- * reason phrases if $code is null
- * @link http://pear.php.net/bugs/18716
- */
- public static function getDefaultReasonPhrase($code = null)
- {
- if (null === $code) {
- return self::$phrases;
- } else {
- return isset(self::$phrases[$code]) ? self::$phrases[$code] : null;
- }
- }
-
- /**
- * Constructor, parses the response status line
- *
- * @param string $statusLine Response status line (e.g. "HTTP/1.1 200 OK")
- * @param bool $bodyEncoded Whether body is still encoded by Content-Encoding
- * @param string $effectiveUrl Effective URL of the response
- *
- * @throws HTTP_Request2_MessageException if status line is invalid according to spec
- */
- public function __construct($statusLine, $bodyEncoded = true, $effectiveUrl = null)
- {
- if (!preg_match('!^HTTP/(\d\.\d) (\d{3})(?: (.+))?!', $statusLine, $m)) {
- throw new HTTP_Request2_MessageException(
- "Malformed response: {$statusLine}",
- HTTP_Request2_Exception::MALFORMED_RESPONSE
- );
- }
- $this->version = $m[1];
- $this->code = intval($m[2]);
- $this->reasonPhrase = !empty($m[3]) ? trim($m[3]) : self::getDefaultReasonPhrase($this->code);
- $this->bodyEncoded = (bool)$bodyEncoded;
- $this->effectiveUrl = (string)$effectiveUrl;
- }
-
- /**
- * Parses the line from HTTP response filling $headers array
- *
- * The method should be called after reading the line from socket or receiving
- * it into cURL callback. Passing an empty string here indicates the end of
- * response headers and triggers additional processing, so be sure to pass an
- * empty string in the end.
- *
- * @param string $headerLine Line from HTTP response
- *
- * @return void
- */
- public function parseHeaderLine($headerLine)
- {
- $headerLine = trim($headerLine, "\r\n");
-
- if ('' == $headerLine) {
- // empty string signals the end of headers, process the received ones
- if (!empty($this->headers['set-cookie'])) {
- $cookies = is_array($this->headers['set-cookie'])?
- $this->headers['set-cookie']:
- [$this->headers['set-cookie']];
- foreach ($cookies as $cookieString) {
- $this->parseCookie($cookieString);
- }
- unset($this->headers['set-cookie']);
- }
- foreach (array_keys($this->headers) as $k) {
- if (is_array($this->headers[$k])) {
- $this->headers[$k] = implode(', ', $this->headers[$k]);
- }
- }
-
- } elseif (preg_match('!^([^\x00-\x1f\x7f-\xff()<>@,;:\\\\"/\[\]?={}\s]+):(.+)$!', $headerLine, $m)) {
- // string of the form header-name: header value
- $name = strtolower($m[1]);
- $value = trim($m[2]);
- if (empty($this->headers[$name])) {
- $this->headers[$name] = $value;
- } else {
- if (!is_array($this->headers[$name])) {
- $this->headers[$name] = [$this->headers[$name]];
- }
- $this->headers[$name][] = $value;
- }
- $this->lastHeader = $name;
-
- } elseif (preg_match('!^\s+(.+)$!', $headerLine, $m) && $this->lastHeader) {
- // continuation of a previous header
- if (!is_array($this->headers[$this->lastHeader])) {
- $this->headers[$this->lastHeader] .= ' ' . trim($m[1]);
- } else {
- $key = count($this->headers[$this->lastHeader]) - 1;
- $this->headers[$this->lastHeader][$key] .= ' ' . trim($m[1]);
- }
- }
- }
-
- /**
- * Parses a Set-Cookie header to fill $cookies array
- *
- * @param string $cookieString value of Set-Cookie header
- *
- * @return void
- *
- * @link http://web.archive.org/web/20080331104521/http://cgi.netscape.com/newsref/std/cookie_spec.html
- */
- protected function parseCookie($cookieString)
- {
- $cookie = [
- 'expires' => null,
- 'domain' => null,
- 'path' => null,
- 'secure' => false
- ];
-
- if (!strpos($cookieString, ';')) {
- // Only a name=value pair
- $pos = strpos($cookieString, '=');
- $cookie['name'] = trim(substr($cookieString, 0, $pos));
- $cookie['value'] = trim(substr($cookieString, $pos + 1));
-
- } else {
- // Some optional parameters are supplied
- $elements = explode(';', $cookieString);
- $pos = strpos($elements[0], '=');
- $cookie['name'] = trim(substr($elements[0], 0, $pos));
- $cookie['value'] = trim(substr($elements[0], $pos + 1));
-
- for ($i = 1; $i < count($elements); $i++) {
- if (false === strpos($elements[$i], '=')) {
- $elName = trim($elements[$i]);
- $elValue = null;
- } else {
- list ($elName, $elValue) = array_map('trim', explode('=', $elements[$i]));
- }
- $elName = strtolower($elName);
- if ('secure' == $elName) {
- $cookie['secure'] = true;
- } elseif ('expires' == $elName) {
- $cookie['expires'] = str_replace('"', '', $elValue);
- } elseif ('path' == $elName || 'domain' == $elName) {
- $cookie[$elName] = urldecode($elValue);
- } else {
- $cookie[$elName] = $elValue;
- }
- }
- }
- $this->cookies[] = $cookie;
- }
-
- /**
- * Appends a string to the response body
- *
- * @param string $bodyChunk part of response body
- *
- * @return void
- */
- public function appendBody($bodyChunk)
- {
- $this->body .= $bodyChunk;
- }
-
- /**
- * Returns the effective URL of the response
- *
- * This may be different from the request URL if redirects were followed.
- *
- * @return string
- * @link http://pear.php.net/bugs/bug.php?id=18412
- */
- public function getEffectiveUrl()
- {
- return $this->effectiveUrl;
- }
-
- /**
- * Returns the status code
- *
- * @return integer
- */
- public function getStatus()
- {
- return $this->code;
- }
-
- /**
- * Returns the reason phrase
- *
- * @return string
- */
- public function getReasonPhrase()
- {
- return $this->reasonPhrase;
- }
-
- /**
- * Whether response is a redirect that can be automatically handled by HTTP_Request2
- *
- * @return bool
- */
- public function isRedirect()
- {
- return in_array($this->code, [300, 301, 302, 303, 307])
- && isset($this->headers['location']);
- }
-
- /**
- * Returns either the named header or all response headers
- *
- * @param string $headerName Name of header to return
- *
- * @return string|array Value of $headerName header (null if header is
- * not present), array of all response headers if
- * $headerName is null
- */
- public function getHeader($headerName = null)
- {
- if (null === $headerName) {
- return $this->headers;
- } else {
- $headerName = strtolower($headerName);
- return isset($this->headers[$headerName])? $this->headers[$headerName]: null;
- }
- }
-
- /**
- * Returns cookies set in response
- *
- * @return array
- */
- public function getCookies()
- {
- return $this->cookies;
- }
-
- /**
- * Returns the body of the response
- *
- * @return string
- * @throws HTTP_Request2_Exception if body cannot be decoded
- */
- public function getBody()
- {
- if (0 == strlen($this->body) || !$this->bodyEncoded
- || !in_array(strtolower($this->getHeader('content-encoding') ?: ''), ['gzip', 'deflate'])
- ) {
- return $this->body;
-
- } else {
- if (extension_loaded('mbstring') && (2 & ini_get('mbstring.func_overload'))) {
- $oldEncoding = mb_internal_encoding();
- mb_internal_encoding('8bit');
- }
-
- try {
- switch (strtolower($this->getHeader('content-encoding'))) {
- case 'gzip':
- return self::decodeGzip($this->body);
- break;
- case 'deflate':
- return self::decodeDeflate($this->body);
- }
- } finally { // phpcs:ignore PHPCompatibility.Keywords.NewKeywords.t_finallyFound
- if (!empty($oldEncoding)) {
- mb_internal_encoding($oldEncoding);
- }
- }
- }
- }
-
- /**
- * Get the HTTP version of the response
- *
- * @return string
- */
- public function getVersion()
- {
- return $this->version;
- }
-
- /**
- * Checks whether data starts with GZIP format identification bytes from RFC 1952
- *
- * @param string $data gzip-encoded (presumably) data
- *
- * @return bool
- */
- public static function hasGzipIdentification($data)
- {
- return 0 === strcmp(substr($data, 0, 2), "\x1f\x8b");
- }
-
- /**
- * Tries to parse GZIP format header in the given string
- *
- * If the header conforms to RFC 1952, its length is returned. If any
- * sanity check fails, HTTP_Request2_MessageException is thrown.
- *
- * Note: This function might be usable outside of HTTP_Request2 so it might
- * be good idea to be moved to some common package. (Delian Krustev)
- *
- * @param string $data Either the complete response body or
- * the leading part of it
- * @param boolean $dataComplete Whether $data contains complete response body
- *
- * @return int gzip header length in bytes
- * @throws HTTP_Request2_MessageException
- * @link http://tools.ietf.org/html/rfc1952
- */
- public static function parseGzipHeader($data, $dataComplete = false)
- {
- // if data is complete, trailing 8 bytes should be present for size and crc32
- $length = strlen($data) - ($dataComplete ? 8 : 0);
-
- if ($length < 10 || !self::hasGzipIdentification($data)) {
- throw new HTTP_Request2_MessageException(
- 'The data does not seem to contain a valid gzip header',
- HTTP_Request2_Exception::DECODE_ERROR
- );
- }
-
- $method = ord(substr($data, 2, 1));
- if (8 != $method) {
- throw new HTTP_Request2_MessageException(
- 'Error parsing gzip header: unknown compression method',
- HTTP_Request2_Exception::DECODE_ERROR
- );
- }
- $flags = ord(substr($data, 3, 1));
- if ($flags & 224) {
- throw new HTTP_Request2_MessageException(
- 'Error parsing gzip header: reserved bits are set',
- HTTP_Request2_Exception::DECODE_ERROR
- );
- }
-
- // header is 10 bytes minimum. may be longer, though.
- $headerLength = 10;
- // extra fields, need to skip 'em
- if ($flags & 4) {
- if ($length - $headerLength - 2 < 0) {
- throw new HTTP_Request2_MessageException(
- 'Error parsing gzip header: data too short',
- HTTP_Request2_Exception::DECODE_ERROR
- );
- }
- $extraLength = unpack('v', substr($data, 10, 2));
- if ($length - $headerLength - 2 - $extraLength[1] < 0) {
- throw new HTTP_Request2_MessageException(
- 'Error parsing gzip header: data too short',
- HTTP_Request2_Exception::DECODE_ERROR
- );
- }
- $headerLength += $extraLength[1] + 2;
- }
- // file name, need to skip that
- if ($flags & 8) {
- if ($length - $headerLength - 1 < 0) {
- throw new HTTP_Request2_MessageException(
- 'Error parsing gzip header: data too short',
- HTTP_Request2_Exception::DECODE_ERROR
- );
- }
- $filenameLength = strpos(substr($data, $headerLength), chr(0));
- if (false === $filenameLength
- || $length - $headerLength - $filenameLength - 1 < 0
- ) {
- throw new HTTP_Request2_MessageException(
- 'Error parsing gzip header: data too short',
- HTTP_Request2_Exception::DECODE_ERROR
- );
- }
- $headerLength += $filenameLength + 1;
- }
- // comment, need to skip that also
- if ($flags & 16) {
- if ($length - $headerLength - 1 < 0) {
- throw new HTTP_Request2_MessageException(
- 'Error parsing gzip header: data too short',
- HTTP_Request2_Exception::DECODE_ERROR
- );
- }
- $commentLength = strpos(substr($data, $headerLength), chr(0));
- if (false === $commentLength
- || $length - $headerLength - $commentLength - 1 < 0
- ) {
- throw new HTTP_Request2_MessageException(
- 'Error parsing gzip header: data too short',
- HTTP_Request2_Exception::DECODE_ERROR
- );
- }
- $headerLength += $commentLength + 1;
- }
- // have a CRC for header. let's check
- if ($flags & 2) {
- if ($length - $headerLength - 2 < 0) {
- throw new HTTP_Request2_MessageException(
- 'Error parsing gzip header: data too short',
- HTTP_Request2_Exception::DECODE_ERROR
- );
- }
- $crcReal = 0xffff & crc32(substr($data, 0, $headerLength));
- $crcStored = unpack('v', substr($data, $headerLength, 2));
- if ($crcReal != $crcStored[1]) {
- throw new HTTP_Request2_MessageException(
- 'Header CRC check failed',
- HTTP_Request2_Exception::DECODE_ERROR
- );
- }
- $headerLength += 2;
- }
- return $headerLength;
- }
-
- /**
- * Decodes the message-body encoded by gzip
- *
- * The real decoding work is done by gzinflate() built-in function, this
- * method only parses the header and checks data for compliance with
- * RFC 1952
- *
- * @param string $data gzip-encoded data
- *
- * @return string decoded data
- * @throws HTTP_Request2_LogicException
- * @throws HTTP_Request2_MessageException
- * @link http://tools.ietf.org/html/rfc1952
- */
- public static function decodeGzip($data)
- {
- // If it doesn't look like gzip-encoded data, don't bother
- if (!self::hasGzipIdentification($data)) {
- return $data;
- }
- if (!function_exists('gzinflate')) {
- throw new HTTP_Request2_LogicException(
- 'Unable to decode body: gzip extension not available',
- HTTP_Request2_Exception::MISCONFIGURATION
- );
- }
-
- // unpacked data CRC and size at the end of encoded data
- $tmp = unpack('V2', substr($data, -8));
- $dataCrc = $tmp[1];
- $dataSize = $tmp[2];
-
- $headerLength = self::parseGzipHeader($data, true);
-
- // don't pass $dataSize to gzinflate, see bugs #13135, #14370
- $unpacked = gzinflate(substr($data, $headerLength, -8));
- if (false === $unpacked) {
- throw new HTTP_Request2_MessageException(
- 'gzinflate() call failed',
- HTTP_Request2_Exception::DECODE_ERROR
- );
-
- // GZIP stores the size of the compressed data in bytes modulo
- // 2^32. To accommodate large file transfers, apply this to the
- // observed data size. This allows file downloads above 4 GiB.
- } elseif ((0xffffffff & $dataSize) !== (0xffffffff & strlen($unpacked))) {
- throw new HTTP_Request2_MessageException(
- 'Data size check failed',
- HTTP_Request2_Exception::DECODE_ERROR
- );
- } elseif ((0xffffffff & $dataCrc) !== (0xffffffff & crc32($unpacked))) {
- throw new HTTP_Request2_MessageException(
- 'Data CRC check failed',
- HTTP_Request2_Exception::DECODE_ERROR
- );
- }
- return $unpacked;
- }
-
- /**
- * Decodes the message-body encoded by deflate
- *
- * @param string $data deflate-encoded data
- *
- * @return string decoded data
- * @throws HTTP_Request2_LogicException
- */
- public static function decodeDeflate($data)
- {
- if (!function_exists('gzuncompress')) {
- throw new HTTP_Request2_LogicException(
- 'Unable to decode body: gzip extension not available',
- HTTP_Request2_Exception::MISCONFIGURATION
- );
- }
- // RFC 2616 defines 'deflate' encoding as zlib format from RFC 1950,
- // while many applications send raw deflate stream from RFC 1951.
- // We should check for presence of zlib header and use gzuncompress() or
- // gzinflate() as needed. See bug #15305
- $header = unpack('n', substr($data, 0, 2));
- return (0 == $header[1] % 31)? gzuncompress($data): gzinflate($data);
- }
-}
-?>
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/SOCKS5.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/SOCKS5.php
deleted file mode 100644
index ac519b55..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/SOCKS5.php
+++ /dev/null
@@ -1,137 +0,0 @@
-
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-/** Socket wrapper class used by Socket Adapter */
-require_once 'HTTP/Request2/SocketWrapper.php';
-
-/**
- * SOCKS5 proxy connection class (used by Socket Adapter)
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: 2.5.1
- * @link http://pear.php.net/package/HTTP_Request2
- * @link http://pear.php.net/bugs/bug.php?id=19332
- * @link http://tools.ietf.org/html/rfc1928
- */
-class HTTP_Request2_SOCKS5 extends HTTP_Request2_SocketWrapper
-{
- /**
- * Constructor, tries to connect and authenticate to a SOCKS5 proxy
- *
- * @param string $address Proxy address, e.g. 'tcp://localhost:1080'
- * @param int $timeout Connection timeout (seconds)
- * @param array $contextOptions Stream context options
- * @param string $username Proxy user name
- * @param string $password Proxy password
- *
- * @throws HTTP_Request2_LogicException
- * @throws HTTP_Request2_ConnectionException
- * @throws HTTP_Request2_MessageException
- */
- public function __construct(
- $address, $timeout = 10, array $contextOptions = [],
- $username = null, $password = null
- ) {
- parent::__construct($address, $timeout, $contextOptions);
-
- if (strlen($username)) {
- $request = pack('C4', 5, 2, 0, 2);
- } else {
- $request = pack('C3', 5, 1, 0);
- }
- $this->write($request);
- $response = unpack('Cversion/Cmethod', $this->read(3));
- if (5 != $response['version']) {
- throw new HTTP_Request2_MessageException(
- 'Invalid version received from SOCKS5 proxy: ' . $response['version'],
- HTTP_Request2_Exception::MALFORMED_RESPONSE
- );
- }
- switch ($response['method']) {
- case 2:
- $this->performAuthentication($username, $password);
- case 0:
- break;
- default:
- throw new HTTP_Request2_ConnectionException(
- "Connection rejected by proxy due to unsupported auth method"
- );
- }
- }
-
- /**
- * Performs username/password authentication for SOCKS5
- *
- * @param string $username Proxy user name
- * @param string $password Proxy password
- *
- * @return void
- * @throws HTTP_Request2_ConnectionException
- * @throws HTTP_Request2_MessageException
- * @link http://tools.ietf.org/html/rfc1929
- */
- protected function performAuthentication($username, $password)
- {
- $request = pack('C2', 1, strlen($username)) . $username
- . pack('C', strlen($password)) . $password;
-
- $this->write($request);
- $response = unpack('Cvn/Cstatus', $this->read(3));
- if (1 != $response['vn'] || 0 != $response['status']) {
- throw new HTTP_Request2_ConnectionException(
- 'Connection rejected by proxy due to invalid username and/or password'
- );
- }
- }
-
- /**
- * Connects to a remote host via proxy
- *
- * @param string $remoteHost Remote host
- * @param int $remotePort Remote port
- *
- * @return void
- * @throws HTTP_Request2_ConnectionException
- * @throws HTTP_Request2_MessageException
- */
- public function connect($remoteHost, $remotePort)
- {
- $request = pack('C5', 0x05, 0x01, 0x00, 0x03, strlen($remoteHost))
- . $remoteHost . pack('n', $remotePort);
-
- $this->write($request);
- $response = unpack('Cversion/Creply/Creserved', $this->read(1024));
- if (5 != $response['version'] || 0 != $response['reserved']) {
- throw new HTTP_Request2_MessageException(
- 'Invalid response received from SOCKS5 proxy',
- HTTP_Request2_Exception::MALFORMED_RESPONSE
- );
- } elseif (0 != $response['reply']) {
- throw new HTTP_Request2_ConnectionException(
- "Unable to connect to {$remoteHost}:{$remotePort} through SOCKS5 proxy",
- 0, $response['reply']
- );
- }
- }
-}
-?>
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/SocketWrapper.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/SocketWrapper.php
deleted file mode 100644
index fcda2b81..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/Request2/SocketWrapper.php
+++ /dev/null
@@ -1,390 +0,0 @@
-
- * @copyright 2008-2022 Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @link http://pear.php.net/package/HTTP_Request2
- */
-
-/** Exception classes for HTTP_Request2 package */
-require_once 'HTTP/Request2/Exception.php';
-
-/**
- * Socket wrapper class used by Socket Adapter
- *
- * Needed to properly handle connection errors, global timeout support and
- * similar things. Loosely based on Net_Socket used by older HTTP_Request.
- *
- * @category HTTP
- * @package HTTP_Request2
- * @author Alexey Borzov
- * @license http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
- * @version Release: 2.5.1
- * @link http://pear.php.net/package/HTTP_Request2
- * @link http://pear.php.net/bugs/bug.php?id=19332
- * @link http://tools.ietf.org/html/rfc1928
- */
-class HTTP_Request2_SocketWrapper
-{
- /**
- * PHP warning messages raised during stream_socket_client() call
- *
- * @var array
- */
- protected $connectionWarnings = [];
-
- /**
- * Connected socket
- *
- * @var resource
- */
- protected $socket;
-
- /**
- * Sum of start time and global timeout, exception will be thrown if request continues past this time
- *
- * @var float
- */
- protected $deadline;
-
- /**
- * Global timeout value, mostly for exception messages
- *
- * @var integer
- */
- protected $timeout;
-
- /**
- * Class constructor, tries to establish connection
- *
- * @param string $address Address for stream_socket_client() call,
- * e.g. 'tcp://localhost:80'
- * @param int $timeout Connection timeout (seconds)
- * @param array $contextOptions Context options
- *
- * @throws HTTP_Request2_LogicException
- * @throws HTTP_Request2_ConnectionException
- */
- public function __construct($address, $timeout, array $contextOptions = [])
- {
- if (!empty($contextOptions)
- && !isset($contextOptions['socket']) && !isset($contextOptions['ssl'])
- ) {
- // Backwards compatibility with 2.1.0 and 2.1.1 releases
- $contextOptions = ['ssl' => $contextOptions];
- }
- if (isset($contextOptions['ssl'])) {
- $cryptoMethod = STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT; // phpcs:ignore PHPCompatibility.Constants.NewConstants.stream_crypto_method_tlsv1_2_clientFound
- if (defined('STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT')) {
- $cryptoMethod |= STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT;
- }
- $contextOptions['ssl'] += [
- // Using "Intermediate compatibility" cipher bundle from
- // https://wiki.mozilla.org/Security/Server_Side_TLS
- 'ciphers' => 'TLS_AES_128_GCM_SHA256:'
- . 'TLS_AES_256_GCM_SHA384:'
- . 'TLS_CHACHA20_POLY1305_SHA256:'
- . 'ECDHE-ECDSA-AES128-GCM-SHA256:'
- . 'ECDHE-RSA-AES128-GCM-SHA256:'
- . 'ECDHE-ECDSA-AES256-GCM-SHA384:'
- . 'ECDHE-RSA-AES256-GCM-SHA384:'
- . 'ECDHE-ECDSA-CHACHA20-POLY1305:'
- . 'ECDHE-RSA-CHACHA20-POLY1305:'
- . 'DHE-RSA-AES128-GCM-SHA256:'
- . 'DHE-RSA-AES256-GCM-SHA384',
- 'disable_compression' => true,
- 'crypto_method' => $cryptoMethod
- ];
- }
- $context = stream_context_create();
- foreach ($contextOptions as $wrapper => $options) {
- foreach ($options as $name => $value) {
- if (!stream_context_set_option($context, $wrapper, $name, $value)) {
- throw new HTTP_Request2_LogicException(
- "Error setting '{$wrapper}' wrapper context option '{$name}'"
- );
- }
- }
- }
- set_error_handler([$this, 'connectionWarningsHandler']);
- $this->socket = stream_socket_client(
- $address, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $context
- );
- restore_error_handler();
- // if we fail to bind to a specified local address (see request #19515),
- // connection still succeeds, albeit with a warning. Throw an Exception
- // with the warning text in this case as that connection is unlikely
- // to be what user wants and as Curl throws an error in similar case.
- if ($this->connectionWarnings) {
- if ($this->socket) {
- fclose($this->socket);
- }
- $error = $errstr ? $errstr : implode("\n", $this->connectionWarnings);
- throw new HTTP_Request2_ConnectionException(
- "Unable to connect to {$address}. Error: {$error}", 0, $errno
- );
- }
- // Run socket in non-blocking mode, to prevent possible problems with
- // HTTPS requests not timing out properly (see bug #21229)
- stream_set_blocking($this->socket, false);
- }
-
- /**
- * Destructor, disconnects socket
- */
- public function __destruct()
- {
- fclose($this->socket);
- }
-
- /**
- * Wrapper around fread(), handles global request timeout
- *
- * @param int $length Reads up to this number of bytes
- *
- * @return string|false Data read from socket by fread()
- * @throws HTTP_Request2_MessageException In case of timeout
- */
- public function read($length)
- {
- // Looks like stream_select() may return true, but then fread() will return an empty string...
- // For some reason or other happens mostly with servers behind Cloudflare.
- // Let's do the fread() call in a loop until either an error/eof or non-empty string:
- do {
- $data = false;
- $timeouts = $this->_getTimeoutsForStreamSelect();
-
- $r = [$this->socket];
- $w = [];
- $e = [];
- if (stream_select($r, $w, $e, $timeouts[0], $timeouts[1])) {
- $data = fread($this->socket, $length);
- }
-
- $this->checkTimeout();
- } while ('' === $data && !$this->eof());
-
- return $data;
- }
-
- /**
- * Reads until either the end of the socket or a newline, whichever comes first
- *
- * Strips the trailing newline from the returned data, handles global
- * request timeout. Method idea borrowed from Net_Socket PEAR package.
- *
- * @param int $bufferSize buffer size to use for reading
- * @param int $localTimeout timeout value to use just for this call
- * (used when waiting for "100 Continue" response)
- *
- * @return string Available data up to the newline (not including newline)
- * @throws HTTP_Request2_MessageException In case of timeout
- */
- public function readLine($bufferSize, $localTimeout = null)
- {
- $line = '';
- while (!feof($this->socket)) {
- if (null !== $localTimeout) {
- $timeouts = [$localTimeout, 0];
- $started = microtime(true);
- } else {
- $timeouts = $this->_getTimeoutsForStreamSelect();
- }
-
- $r = [$this->socket];
- $w = [];
- $e = [];
- if (stream_select($r, $w, $e, $timeouts[0], $timeouts[1])) {
- $line .= @fgets($this->socket, $bufferSize);
- }
-
- if (null === $localTimeout) {
- $this->checkTimeout();
- } elseif (microtime(true) - $started > $localTimeout) {
- throw new HTTP_Request2_MessageException(
- "readLine() call timed out", HTTP_Request2_Exception::TIMEOUT
- );
- }
- if (substr($line, -1) == "\n") {
- return rtrim($line, "\r\n");
- }
- }
- return $line;
- }
-
- /**
- * Wrapper around fwrite(), handles global request timeout
- *
- * @param string $data String to be written
- *
- * @return int
- * @throws HTTP_Request2_MessageException
- */
- public function write($data)
- {
- $totalWritten = 0;
- while (strlen($data) && !$this->eof()) {
- $written = 0;
- $error = null;
- $timeouts = $this->_getTimeoutsForStreamSelect();
-
- $r = null;
- $w = [$this->socket];
- $e = null;
- if (stream_select($r, $w, $e, $timeouts[0], $timeouts[1])) {
- set_error_handler(
- static function ($errNo, $errStr) use (&$error) {
- if (0 !== (E_NOTICE | E_WARNING) & $errNo) {
- $error = $errStr;
- }
- }
- );
- $written = fwrite($this->socket, $data);
- restore_error_handler();
- }
- $this->checkTimeout();
-
- // php_sockop_write() defined in /main/streams/xp_socket.c may return zero written bytes for non-blocking
- // sockets in case of transient errors. These writes will not have notices raised and should be retried
- if (false === $written || 0 === $written && null !== $error) {
- throw new HTTP_Request2_MessageException(
- 'Error writing request' . (null === $error ? '' : ': ' . $error)
- );
- }
- $data = substr($data, $written);
- $totalWritten += $written;
- }
- return $totalWritten;
- }
-
- /**
- * Tests for end-of-file on a socket
- *
- * @return bool
- */
- public function eof()
- {
- return feof($this->socket);
- }
-
- /**
- * Sets request deadline
- *
- * If null is passed for $deadline then deadline will be calculated based
- * on default_socket_timeout PHP setting. This is done to keep BC with previous
- * versions that used blocking sockets.
- *
- * @param float|null $deadline Exception will be thrown if request continues
- * past this time
- * @param int $timeout Original request timeout value, to use in
- * Exception message
- *
- * @return void
- */
- public function setDeadline($deadline, $timeout)
- {
- if (null === $deadline && 0 < ($defaultTimeout = (int)ini_get('default_socket_timeout'))) {
- $deadline = microtime(true) + $defaultTimeout;
- }
- $this->deadline = $deadline;
- $this->timeout = $timeout;
- }
-
- /**
- * Turns on encryption on a socket
- *
- * @return void
- * @throws HTTP_Request2_ConnectionException
- */
- public function enableCrypto()
- {
- $cryptoMethod = STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT; // phpcs:ignore PHPCompatibility.Constants.NewConstants.stream_crypto_method_tlsv1_2_clientFound
- if (defined('STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT')) {
- $cryptoMethod |= STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT;
- }
-
- try {
- stream_set_blocking($this->socket, true);
- if (!stream_socket_enable_crypto($this->socket, true, $cryptoMethod)) {
- throw new HTTP_Request2_ConnectionException(
- 'Failed to enable secure connection when connecting through proxy'
- );
- }
- } finally { // phpcs:ignore PHPCompatibility.Keywords.NewKeywords.t_finallyFound
- stream_set_blocking($this->socket, false);
- }
- }
-
- /**
- * Throws an Exception if stream timed out
- *
- * @return void
- * @throws HTTP_Request2_MessageException
- */
- protected function checkTimeout()
- {
- $info = stream_get_meta_data($this->socket);
- if ($info['timed_out'] || $this->deadline && microtime(true) > $this->deadline) {
- $reason = $this->timeout
- ? "after {$this->timeout} second(s)"
- : 'due to default_socket_timeout php.ini setting';
- throw new HTTP_Request2_MessageException(
- "Request timed out {$reason}", HTTP_Request2_Exception::TIMEOUT
- );
- }
- }
-
- /**
- * Returns timeouts based on deadline for use with stream_select()
- *
- * @return array First element is $tv_sec parameter for stream_select(),
- * second element is $tv_usec
- */
- private function _getTimeoutsForStreamSelect()
- {
- if (!$this->deadline) {
- return [null, null];
- }
- $parts = array_map(
- 'intval',
- explode('.', sprintf('%.6F', $this->deadline - microtime(true)))
- );
- if (0 > $parts[0] || 0 === $parts[0] && $parts[1] < 50000) {
- return [0, 50000];
- }
- return $parts;
- }
-
- /**
- * Error handler to use during stream_socket_client() call
- *
- * One stream_socket_client() call may produce *multiple* PHP warnings
- * (especially OpenSSL-related), we keep them in an array to later use for
- * the message of HTTP_Request2_ConnectionException
- *
- * @param int $errno error level
- * @param string $errstr error message
- *
- * @return bool
- */
- protected function connectionWarningsHandler($errno, $errstr)
- {
- if ($errno & E_WARNING) {
- array_unshift($this->connectionWarnings, $errstr);
- }
- return true;
- }
-}
-?>
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/WebDAV/Tools/_parse_lock_response.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/WebDAV/Tools/_parse_lock_response.php
deleted file mode 100644
index f14ce8da..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/WebDAV/Tools/_parse_lock_response.php
+++ /dev/null
@@ -1,75 +0,0 @@
-success = xml_parse($xml_parser, $response, true);
-
- xml_parser_free($xml_parser);
- }
-
-
- private function _startElement($parser, $name, $attrs)
- {
- if (strstr($name, " ")) {
- list($ns, $tag) = explode(" ", $name);
- } else {
- $ns = "";
- $tag = $name;
- }
-
- if ($ns == "DAV:") {
- switch ($tag) {
- case "locktoken":
- $this->collect_locktoken = true;
- break;
- }
- }
- }
-
- private function _data($parser, $data)
- {
- if ($this->collect_locktoken) {
- $this->locktoken .= $data;
- }
- }
-
- private function _endElement($parser, $name)
- {
- if (strstr($name, " ")) {
- list($ns, $tag) = explode(" ", $name);
- } else {
- $ns = "";
- $tag = $name;
- }
-
- switch ($tag) {
- case "locktoken":
- $this->collect_locktoken = false;
- $this->locktoken = trim($this->locktoken);
- break;
- }
- }
-}
-
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * indent-tabs-mode:nil
- * End:
- */
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/WebDAV/Tools/_parse_propfind_response.php b/wp-content/plugins/updraftplus/includes/PEAR/HTTP/WebDAV/Tools/_parse_propfind_response.php
deleted file mode 100644
index 4ba1a3bf..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/HTTP/WebDAV/Tools/_parse_propfind_response.php
+++ /dev/null
@@ -1,157 +0,0 @@
-urls = array();
-
- $this->_depth = 0;
-
- $xml_parser = xml_parser_create_ns("UTF-8", " ");
- xml_set_element_handler($xml_parser,
- array($this, "_startElement"),
- array($this, "_endElement"));
- xml_set_character_data_handler($xml_parser,
- array($this, "_data"));
- xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING,
- false);
- $this->success = xml_parse($xml_parser, $response, true);
- xml_parser_free($xml_parser);
-
- unset($this->_depth);
- }
-
- private function _startElement($parser, $name, $attrs)
- {
- if (strstr($name, " ")) {
- list($ns, $tag) = explode(" ", $name);
- if ($ns == "")
- $this->success = false;
- } else {
- $ns = "";
- $tag = $name;
- }
-
- switch ($this->_depth) {
- case '2':
- switch ($tag) {
- case 'propstat':
- // TODO check is_executable, lockinfo ...
- $this->_tmpprop = array("mode" => 0100666 /* all may read and write (for now) */);
- break;
- }
- }
-
- $this->_depth++;
- }
-
- private function _endElement($parser, $name)
- {
- if (strstr($name, " ")) {
- list($ns, $tag) = explode(" ", $name);
- if ($ns == "")
- $this->success = false;
- } else {
- $ns = "";
- $tag = $name;
- }
-
- $this->_depth--;
-
- switch ($this->_depth) {
- case '1':
- switch ($tag) {
- case 'response':
- $this->urls[$this->_tmphref] = $this->_tmpvals;
- unset($this->_tmphref);
- unset($this->_tmpvals);
- break;
- }
- break;
- case '2':
- switch ($tag) {
- case 'href':
- $this->_tmphref = $this->_tmpdata;
- break;
- }
- case 'propstat':
- if (isset($this->_tmpstat) && strstr($this->_tmpstat, " 200 ")) {
- $this->_tmpvals = $this->_tmpprop;
- }
- unset($this->_tmpstat);
- unset($this->_tmpprop);
- break;
- case '3':
- switch ($tag) {
- case 'status':
- $this->_tmpstat = $this->_tmpdata;
- break;
- }
- case '4':
- if (!isset($this->_tmpdata)) {
- return;
- }
- switch ($tag) {
- case 'getlastmodified':
- $this->_tmpprop['atime'] = strtotime($this->_tmpdata);
- $this->_tmpprop['mtime'] = strtotime($this->_tmpdata);
- break;
- case 'creationdate':
- $t = preg_split("/[^[:digit:]]/", $this->_tmpdata);
- $this->_tmpprop['ctime'] = mktime((int) $t[3], (int) $t[4], (int) $t[5], (int) $t[1], (int) $t[2], (int) $t[0]);
- unset($t);
- break;
- case 'getcontentlength':
- $this->_tmpprop['size'] = $this->_tmpdata;
- break;
- }
- case '5':
- switch ($tag) {
- case 'collection':
- $this->_tmpprop['mode'] &= ~0100000; // clear S_IFREG
- $this->_tmpprop['mode'] |= 040000; // set S_IFDIR
- break;
- }
- }
-
- unset($this->_tmpdata);
- }
-
- private function _data($parser, $data)
- {
- $this->_tmpdata = $data;
- }
-
- public function stat($href = false)
- {
- if ($href) {
- // TODO
- } else {
- reset($this->urls);
- return current($this->urls);
- }
- }
-}
-
-
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * indent-tabs-mode:nil
- * End:
- */
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/Net/Socket.php b/wp-content/plugins/updraftplus/includes/PEAR/Net/Socket.php
deleted file mode 100644
index 0905bdf6..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/Net/Socket.php
+++ /dev/null
@@ -1,686 +0,0 @@
-
- * Chuck Hagenbuch
- *
- * @category Net
- * @package Net_Socket
- * @author Stig Bakken
- * @author Chuck Hagenbuch
- * @copyright 1997-2003 The PHP Group
- * @license http://www.php.net/license/2_02.txt PHP 2.02
- * @version CVS: $Id: Socket.php 304428 2010-10-15 13:51:46Z clockwerx $
- * @link http://pear.php.net/packages/Net_Socket
- */
-
-if (!class_exists('PEAR')) require_once 'PEAR.php';
-
-define('NET_SOCKET_READ', 1);
-define('NET_SOCKET_WRITE', 2);
-define('NET_SOCKET_ERROR', 4);
-
-/**
- * Generalized Socket class.
- *
- * @category Net
- * @package Net_Socket
- * @author Stig Bakken
- * @author Chuck Hagenbuch
- * @copyright 1997-2003 The PHP Group
- * @license http://www.php.net/license/2_02.txt PHP 2.02
- * @link http://pear.php.net/packages/Net_Socket
- */
-class Net_Socket extends PEAR
-{
- /**
- * Socket file pointer.
- * @var resource $fp
- */
- var $fp = null;
-
- /**
- * Whether the socket is blocking. Defaults to true.
- * @var boolean $blocking
- */
- var $blocking = true;
-
- /**
- * Whether the socket is persistent. Defaults to false.
- * @var boolean $persistent
- */
- var $persistent = false;
-
- /**
- * The IP address to connect to.
- * @var string $addr
- */
- var $addr = '';
-
- /**
- * The port number to connect to.
- * @var integer $port
- */
- var $port = 0;
-
- /**
- * Number of seconds to wait on socket connections before assuming
- * there's no more data. Defaults to no timeout.
- * @var integer $timeout
- */
- var $timeout = false;
-
- /**
- * Number of bytes to read at a time in readLine() and
- * readAll(). Defaults to 2048.
- * @var integer $lineLength
- */
- var $lineLength = 2048;
-
- /**
- * The string to use as a newline terminator. Usually "\r\n" or "\n".
- * @var string $newline
- */
- var $newline = "\r\n";
-
- /**
- * Connect to the specified port. If called when the socket is
- * already connected, it disconnects and connects again.
- *
- * @param string $addr IP address or host name.
- * @param integer $port TCP port number.
- * @param boolean $persistent (optional) Whether the connection is
- * persistent (kept open between requests
- * by the web server).
- * @param integer $timeout (optional) How long to wait for data.
- * @param array $options See options for stream_context_create.
- *
- * @access public
- *
- * @return boolean | PEAR_Error True on success or a PEAR_Error on failure.
- */
- function connect($addr, $port = 0, $persistent = null,
- $timeout = null, $options = null)
- {
- if (defined('UPDRAFTPLUS_SSL_DISABLE_VERIFY_SSL')) {
- $ssl_disable_verify = UPDRAFTPLUS_SSL_DISABLE_VERIFY_SSL;
- } else {
- $ssl_disable_verify = UpdraftPlus_Options::get_updraft_option('updraft_ssl_disableverify', false);
- }
-
- if (is_resource($this->fp)) {
- @fclose($this->fp);
- $this->fp = null;
- }
-
- if (!$addr) {
- return $this->raiseError('$addr cannot be empty');
- } elseif (strspn($addr, '.0123456789') == strlen($addr) ||
- strstr($addr, '/') !== false) {
- $this->addr = $addr;
- } else {
- $this->addr = @gethostbyname($addr);
- }
-
- $this->port = $port % 65536;
-
- if ($persistent !== null) {
- $this->persistent = $persistent;
- }
-
- if ($timeout !== null) {
- $this->timeout = $timeout;
- }
-
- $openfunc = $this->persistent ? 'pfsockopen' : 'fsockopen';
- $errno = 0;
- $errstr = '';
-
- $old_track_errors = @ini_set('track_errors', 1);
-
- //Check if Options are set and sslverify is true if so set options so that stream context can be used to disable ssl
- if (!$options && $ssl_disable_verify){
- $options = 1;
- }
- if ($options && function_exists('stream_context_create')) {
- if ($this->timeout) {
- $timeout = $this->timeout;
- } else {
- $timeout = 100;
- }
-
- if ($ssl_disable_verify){
- if (is_array($options)) {
- if (empty($options['ssl'])) {
- $options['ssl'] = array(
- 'verify_peer' => false,
- 'verify_peer_name' => false,
- );
- } else {
- $options['ssl']['verify_peer'] = false;
- $options['ssl']['verify_peer_name'] = false;
- }
- } else {
- $options = array(
- 'ssl' => array(
- 'verify_peer' => false,
- 'verify_peer_name' => false,
- )
- );
- }
- }
- $context = stream_context_create($options);
-
- // Since PHP 5 fsockopen doesn't allow context specification
- if (function_exists('stream_socket_client')) {
- $flags = STREAM_CLIENT_CONNECT;
-
- if ($this->persistent) {
- $flags = STREAM_CLIENT_PERSISTENT;
- }
-
- $addr = $this->addr . ':' . $this->port;
- $fp = stream_socket_client($addr, $errno, $errstr,
- $timeout, $flags, $context);
- } else {
- $fp = @$openfunc($this->addr, $this->port, $errno,
- $errstr, $timeout, $context);
- }
- } else {
- if ($this->timeout) {
- $fp = @$openfunc($this->addr, $this->port, $errno,
- $errstr, $this->timeout);
- } else {
- $fp = @$openfunc($this->addr, $this->port, $errno, $errstr);
- }
- }
-
- if (!$fp) {
- // @codingStandardsIgnoreLine
- if ($errno == 0 && !strlen($errstr) && isset($php_errormsg)) {
- // @codingStandardsIgnoreLine
- $errstr = $php_errormsg;
- }
- @ini_set('track_errors', $old_track_errors);
- return $this->raiseError($errstr, $errno);
- }
-
- @ini_set('track_errors', $old_track_errors);
- $this->fp = $fp;
-
- return $this->setBlocking($this->blocking);
- }
-
- /**
- * Disconnects from the peer, closes the socket.
- *
- * @access public
- * @return mixed true on success or a PEAR_Error instance otherwise
- */
- function disconnect()
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- @fclose($this->fp);
- $this->fp = null;
- return true;
- }
-
- /**
- * Set the newline character/sequence to use.
- *
- * @param string $newline Newline character(s)
- * @return boolean True
- */
- function setNewline($newline)
- {
- $this->newline = $newline;
- return true;
- }
-
- /**
- * Find out if the socket is in blocking mode.
- *
- * @access public
- * @return boolean The current blocking mode.
- */
- function isBlocking()
- {
- return $this->blocking;
- }
-
- /**
- * Sets whether the socket connection should be blocking or
- * not. A read call to a non-blocking socket will return immediately
- * if there is no data available, whereas it will block until there
- * is data for blocking sockets.
- *
- * @param boolean $mode True for blocking sockets, false for nonblocking.
- *
- * @access public
- * @return mixed true on success or a PEAR_Error instance otherwise
- */
- function setBlocking($mode)
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- $this->blocking = $mode;
- stream_set_blocking($this->fp, (int)$this->blocking);
- return true;
- }
-
- /**
- * Sets the timeout value on socket descriptor,
- * expressed in the sum of seconds and microseconds
- *
- * @param integer $seconds Seconds.
- * @param integer $microseconds Microseconds.
- *
- * @access public
- * @return mixed true on success or a PEAR_Error instance otherwise
- */
- function setTimeout($seconds, $microseconds)
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- return socket_set_timeout($this->fp, $seconds, $microseconds);
- }
-
- /**
- * Sets the file buffering size on the stream.
- * See php's stream_set_write_buffer for more information.
- *
- * @param integer $size Write buffer size.
- *
- * @access public
- * @return mixed on success or an PEAR_Error object otherwise
- */
- function setWriteBuffer($size)
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- $returned = stream_set_write_buffer($this->fp, $size);
- if ($returned == 0) {
- return true;
- }
- return $this->raiseError('Cannot set write buffer.');
- }
-
- /**
- * Returns information about an existing socket resource.
- * Currently returns four entries in the result array:
- *
- *
- * timed_out (bool) - The socket timed out waiting for data
- * blocked (bool) - The socket was blocked
- * eof (bool) - Indicates EOF event
- * unread_bytes (int) - Number of bytes left in the socket buffer
- *
- *
- * @access public
- * @return mixed Array containing information about existing socket
- * resource or a PEAR_Error instance otherwise
- */
- function getStatus()
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- return socket_get_status($this->fp);
- }
-
- /**
- * Get a specified line of data
- *
- * @param int $size ??
- *
- * @access public
- * @return $size bytes of data from the socket, or a PEAR_Error if
- * not connected.
- */
- function gets($size = null)
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- if (is_null($size)) {
- return @fgets($this->fp);
- } else {
- return @fgets($this->fp, $size);
- }
- }
-
- /**
- * Read a specified amount of data. This is guaranteed to return,
- * and has the added benefit of getting everything in one fread()
- * chunk; if you know the size of the data you're getting
- * beforehand, this is definitely the way to go.
- *
- * @param integer $size The number of bytes to read from the socket.
- *
- * @access public
- * @return $size bytes of data from the socket, or a PEAR_Error if
- * not connected.
- */
- function read($size)
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- return @fread($this->fp, $size);
- }
-
- /**
- * Write a specified amount of data.
- *
- * @param string $data Data to write.
- * @param integer $blocksize Amount of data to write at once.
- * NULL means all at once.
- *
- * @access public
- * @return mixed If the socket is not connected, returns an instance of
- * PEAR_Error
- * If the write succeeds, returns the number of bytes written
- * If the write fails, returns false.
- */
- function write($data, $blocksize = null)
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- if (is_null($blocksize) && !OS_WINDOWS) {
- return @fwrite($this->fp, $data);
- } else {
- if (is_null($blocksize)) {
- $blocksize = 1024;
- }
-
- $pos = 0;
- $size = strlen($data);
- while ($pos < $size) {
- $written = @fwrite($this->fp, substr($data, $pos, $blocksize));
- if (!$written) {
- return $written;
- }
- $pos += $written;
- }
-
- return $pos;
- }
- }
-
- /**
- * Write a line of data to the socket, followed by a trailing newline.
- *
- * @param string $data Data to write
- *
- * @access public
- * @return mixed fputs result, or an error
- */
- function writeLine($data)
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- return fwrite($this->fp, $data . $this->newline);
- }
-
- /**
- * Tests for end-of-file on a socket descriptor.
- *
- * Also returns true if the socket is disconnected.
- *
- * @access public
- * @return bool
- */
- function eof()
- {
- return (!is_resource($this->fp) || feof($this->fp));
- }
-
- /**
- * Reads a byte of data
- *
- * @access public
- * @return 1 byte of data from the socket, or a PEAR_Error if
- * not connected.
- */
- function readByte()
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- return ord(@fread($this->fp, 1));
- }
-
- /**
- * Reads a word of data
- *
- * @access public
- * @return 1 word of data from the socket, or a PEAR_Error if
- * not connected.
- */
- function readWord()
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- $buf = @fread($this->fp, 2);
- return (ord($buf[0]) + (ord($buf[1]) << 8));
- }
-
- /**
- * Reads an int of data
- *
- * @access public
- * @return integer 1 int of data from the socket, or a PEAR_Error if
- * not connected.
- */
- function readInt()
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- $buf = @fread($this->fp, 4);
- return (ord($buf[0]) + (ord($buf[1]) << 8) +
- (ord($buf[2]) << 16) + (ord($buf[3]) << 24));
- }
-
- /**
- * Reads a zero-terminated string of data
- *
- * @access public
- * @return string, or a PEAR_Error if
- * not connected.
- */
- function readString()
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- $string = '';
- while (($char = @fread($this->fp, 1)) != "\x00") {
- $string .= $char;
- }
- return $string;
- }
-
- /**
- * Reads an IP Address and returns it in a dot formatted string
- *
- * @access public
- * @return Dot formatted string, or a PEAR_Error if
- * not connected.
- */
- function readIPAddress()
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- $buf = @fread($this->fp, 4);
- return sprintf('%d.%d.%d.%d', ord($buf[0]), ord($buf[1]),
- ord($buf[2]), ord($buf[3]));
- }
-
- /**
- * Read until either the end of the socket or a newline, whichever
- * comes first. Strips the trailing newline from the returned data.
- *
- * @access public
- * @return All available data up to a newline, without that
- * newline, or until the end of the socket, or a PEAR_Error if
- * not connected.
- */
- function readLine()
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- $line = '';
-
- $timeout = time() + $this->timeout;
-
- while (!feof($this->fp) && (!$this->timeout || time() < $timeout)) {
- $line .= @fgets($this->fp, $this->lineLength);
- if (substr($line, -1) == "\n") {
- return rtrim($line, $this->newline);
- }
- }
- return $line;
- }
-
- /**
- * Read until the socket closes, or until there is no more data in
- * the inner PHP buffer. If the inner buffer is empty, in blocking
- * mode we wait for at least 1 byte of data. Therefore, in
- * blocking mode, if there is no data at all to be read, this
- * function will never exit (unless the socket is closed on the
- * remote end).
- *
- * @access public
- *
- * @return string All data until the socket closes, or a PEAR_Error if
- * not connected.
- */
- function readAll()
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- $data = '';
- while (!feof($this->fp)) {
- $data .= @fread($this->fp, $this->lineLength);
- }
- return $data;
- }
-
- /**
- * Runs the equivalent of the select() system call on the socket
- * with a timeout specified by tv_sec and tv_usec.
- *
- * @param integer $state Which of read/write/error to check for.
- * @param integer $tv_sec Number of seconds for timeout.
- * @param integer $tv_usec Number of microseconds for timeout.
- *
- * @access public
- * @return False if select fails, integer describing which of read/write/error
- * are ready, or PEAR_Error if not connected.
- */
- function select($state, $tv_sec, $tv_usec = 0)
- {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
-
- $read = null;
- $write = null;
- $except = null;
- if ($state & NET_SOCKET_READ) {
- $read[] = $this->fp;
- }
- if ($state & NET_SOCKET_WRITE) {
- $write[] = $this->fp;
- }
- if ($state & NET_SOCKET_ERROR) {
- $except[] = $this->fp;
- }
- if (false === ($sr = stream_select($read, $write, $except,
- $tv_sec, $tv_usec))) {
- return false;
- }
-
- $result = 0;
- if (count($read)) {
- $result |= NET_SOCKET_READ;
- }
- if (count($write)) {
- $result |= NET_SOCKET_WRITE;
- }
- if (count($except)) {
- $result |= NET_SOCKET_ERROR;
- }
- return $result;
- }
-
- /**
- * Turns encryption on/off on a connected socket.
- *
- * @param bool $enabled Set this parameter to true to enable encryption
- * and false to disable encryption.
- * @param integer $type Type of encryption. See stream_socket_enable_crypto()
- * for values.
- *
- * @see http://se.php.net/manual/en/function.stream-socket-enable-crypto.php
- * @access public
- * @return false on error, true on success and 0 if there isn't enough data
- * and the user should try again (non-blocking sockets only).
- * A PEAR_Error object is returned if the socket is not
- * connected
- */
- function enableCrypto($enabled, $type)
- {
- if (version_compare(phpversion(), "5.1.0", ">=")) {
- if (!is_resource($this->fp)) {
- return $this->raiseError('not connected');
- }
- return @stream_socket_enable_crypto($this->fp, $enabled, $type);
- } else {
- $msg = 'Net_Socket::enableCrypto() requires php version >= 5.1.0';
- return $this->raiseError($msg);
- }
- }
-
-}
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/Net/URL.php b/wp-content/plugins/updraftplus/includes/PEAR/Net/URL.php
deleted file mode 100644
index f9456167..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/Net/URL.php
+++ /dev/null
@@ -1,475 +0,0 @@
- |
-// +-----------------------------------------------------------------------+
-//
-// $Id: URL.php,v 1.49 2007/06/28 14:43:07 davidc Exp $
-//
-// Net_URL Class
-
-
-class Net_URL
-{
- var $options = array('encode_query_keys' => false);
- /**
- * Full url
- * @var string
- */
- var $url;
-
- /**
- * Protocol
- * @var string
- */
- var $protocol;
-
- /**
- * Username
- * @var string
- */
- var $username;
-
- /**
- * Password
- * @var string
- */
- var $password;
-
- /**
- * Host
- * @var string
- */
- var $host;
-
- /**
- * Port
- * @var integer
- */
- var $port;
-
- /**
- * Path
- * @var string
- */
- var $path;
-
- /**
- * Query string
- * @var array
- */
- var $querystring;
-
- /**
- * Anchor
- * @var string
- */
- var $anchor;
-
- /**
- * Whether to use []
- * @var bool
- */
- var $useBrackets;
-
- /**
- * PHP5 Constructor
- *
- * Parses the given url and stores the various parts
- * Defaults are used in certain cases
- *
- * @param string $url Optional URL
- * @param bool $useBrackets Whether to use square brackets when
- * multiple querystrings with the same name
- * exist
- */
- public function __construct($url = null, $useBrackets = true)
- {
- $this->url = $url;
- $this->useBrackets = $useBrackets;
-
- $this->initialize();
- }
-
- function initialize()
- {
- $HTTP_SERVER_VARS = !empty($_SERVER) ? $_SERVER : $GLOBALS['HTTP_SERVER_VARS'];
-
- $this->user = '';
- $this->pass = '';
- $this->host = '';
- $this->port = 80;
- $this->path = '';
- $this->querystring = array();
- $this->anchor = '';
-
- // Only use defaults if not an absolute URL given
- if (!preg_match('/^[a-z0-9]+:\/\//i', $this->url)) {
- $this->protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https' : 'http');
-
- /**
- * Figure out host/port
- */
- if (!empty($HTTP_SERVER_VARS['HTTP_HOST']) &&
- preg_match('/^(.*)(:([0-9]+))?$/U', $HTTP_SERVER_VARS['HTTP_HOST'], $matches))
- {
- $host = $matches[1];
- if (!empty($matches[3])) {
- $port = $matches[3];
- } else {
- $port = $this->getStandardPort($this->protocol);
- }
- }
-
- $this->user = '';
- $this->pass = '';
- $this->host = !empty($host) ? $host : (isset($HTTP_SERVER_VARS['SERVER_NAME']) ? $HTTP_SERVER_VARS['SERVER_NAME'] : 'localhost');
- $this->port = !empty($port) ? $port : (isset($HTTP_SERVER_VARS['SERVER_PORT']) ? $HTTP_SERVER_VARS['SERVER_PORT'] : $this->getStandardPort($this->protocol));
- $this->path = !empty($HTTP_SERVER_VARS['PHP_SELF']) ? $HTTP_SERVER_VARS['PHP_SELF'] : '/';
- $this->querystring = isset($HTTP_SERVER_VARS['QUERY_STRING']) ? $this->_parseRawQuerystring($HTTP_SERVER_VARS['QUERY_STRING']) : null;
- $this->anchor = '';
- }
-
- // Parse the url and store the various parts
- if (!empty($this->url)) {
- $urlinfo = parse_url($this->url);
-
- // Default querystring
- $this->querystring = array();
-
- foreach ($urlinfo as $key => $value) {
- switch ($key) {
- case 'scheme':
- $this->protocol = $value;
- $this->port = $this->getStandardPort($value);
- break;
-
- case 'user':
- case 'pass':
- case 'host':
- case 'port':
- $this->$key = $value;
- break;
-
- case 'path':
- if ($value[0] == '/') {
- $this->path = $value;
- } else {
- $path = dirname($this->path) == DIRECTORY_SEPARATOR ? '' : dirname($this->path);
- $this->path = sprintf('%s/%s', $path, $value);
- }
- break;
-
- case 'query':
- $this->querystring = $this->_parseRawQueryString($value);
- break;
-
- case 'fragment':
- $this->anchor = $value;
- break;
- }
- }
- }
- }
- /**
- * Returns full url
- *
- * @return string Full url
- * @access public
- */
- function getURL()
- {
- $querystring = $this->getQueryString();
-
- $this->url = $this->protocol . '://'
- . $this->user . (!empty($this->pass) ? ':' : '')
- . $this->pass . (!empty($this->user) ? '@' : '')
- . $this->host . ($this->port == $this->getStandardPort($this->protocol) ? '' : ':' . $this->port)
- . $this->path
- . (!empty($querystring) ? '?' . $querystring : '')
- . (!empty($this->anchor) ? '#' . $this->anchor : '');
-
- return $this->url;
- }
-
- /**
- * Adds or updates a querystring item (URL parameter).
- * Automatically encodes parameters with rawurlencode() if $preencoded
- * is false.
- * You can pass an array to $value, it gets mapped via [] in the URL if
- * $this->useBrackets is activated.
- *
- * @param string $name Name of item
- * @param string $value Value of item
- * @param bool $preencoded Whether value is urlencoded or not, default = not
- * @access public
- */
- function addQueryString($name, $value, $preencoded = false)
- {
- if ($this->getOption('encode_query_keys')) {
- $name = rawurlencode($name);
- }
-
- if ($preencoded) {
- $this->querystring[$name] = $value;
- } else {
- $this->querystring[$name] = is_array($value) ? array_map('rawurlencode', $value): rawurlencode($value);
- }
- }
-
- /**
- * Removes a querystring item
- *
- * @param string $name Name of item
- * @access public
- */
- function removeQueryString($name)
- {
- if ($this->getOption('encode_query_keys')) {
- $name = rawurlencode($name);
- }
-
- if (isset($this->querystring[$name])) {
- unset($this->querystring[$name]);
- }
- }
-
- /**
- * Sets the querystring to literally what you supply
- *
- * @param string $querystring The querystring data. Should be of the format foo=bar&x=y etc
- * @access public
- */
- function addRawQueryString($querystring)
- {
- $this->querystring = $this->_parseRawQueryString($querystring);
- }
-
- /**
- * Returns flat querystring
- *
- * @return string Querystring
- * @access public
- */
- function getQueryString()
- {
- if (!empty($this->querystring)) {
- foreach ($this->querystring as $name => $value) {
- // Encode var name
- $name = rawurlencode($name);
-
- if (is_array($value)) {
- foreach ($value as $k => $v) {
- $querystring[] = $this->useBrackets ? sprintf('%s[%s]=%s', $name, $k, $v) : ($name . '=' . $v);
- }
- } elseif (!is_null($value)) {
- $querystring[] = $name . '=' . $value;
- } else {
- $querystring[] = $name;
- }
- }
- $querystring = implode(ini_get('arg_separator.output'), $querystring);
- } else {
- $querystring = '';
- }
-
- return $querystring;
- }
-
- /**
- * Parses raw querystring and returns an array of it
- *
- * @param string $querystring The querystring to parse
- * @return array An array of the querystring data
- * @access private
- */
- function _parseRawQuerystring($querystring)
- {
- $parts = preg_split('/[' . preg_quote(ini_get('arg_separator.input'), '/') . ']/', $querystring, -1, PREG_SPLIT_NO_EMPTY);
- $return = array();
-
- foreach ($parts as $part) {
- if (strpos($part, '=') !== false) {
- $value = substr($part, strpos($part, '=') + 1);
- $key = substr($part, 0, strpos($part, '='));
- } else {
- $value = null;
- $key = $part;
- }
-
- if (!$this->getOption('encode_query_keys')) {
- $key = rawurldecode($key);
- }
-
- if (preg_match('#^(.*)\[([0-9a-z_-]*)\]#i', $key, $matches)) {
- $key = $matches[1];
- $idx = $matches[2];
-
- // Ensure is an array
- if (empty($return[$key]) || !is_array($return[$key])) {
- $return[$key] = array();
- }
-
- // Add data
- if ($idx === '') {
- $return[$key][] = $value;
- } else {
- $return[$key][$idx] = $value;
- }
- } elseif (!$this->useBrackets AND !empty($return[$key])) {
- $return[$key] = (array)$return[$key];
- $return[$key][] = $value;
- } else {
- $return[$key] = $value;
- }
- }
-
- return $return;
- }
-
- /**
- * Resolves //, ../ and ./ from a path and returns
- * the result. Eg:
- *
- * /foo/bar/../boo.php => /foo/boo.php
- * /foo/bar/../../boo.php => /boo.php
- * /foo/bar/.././/boo.php => /foo/boo.php
- *
- * This method can also be called statically.
- *
- * @param string $path URL path to resolve
- * @return string The result
- */
- function resolvePath($path)
- {
- $path = explode('/', str_replace('//', '/', $path));
-
- for ($i=0; $i 1 OR ($i == 1 AND $path[0] != '') ) ) {
- unset($path[$i]);
- unset($path[$i-1]);
- $path = array_values($path);
- $i -= 2;
-
- } elseif ($path[$i] == '..' AND $i == 1 AND $path[0] == '') {
- unset($path[$i]);
- $path = array_values($path);
- $i--;
-
- } else {
- continue;
- }
- }
-
- return implode('/', $path);
- }
-
- /**
- * Returns the standard port number for a protocol
- *
- * @param string $scheme The protocol to lookup
- * @return integer Port number or NULL if no scheme matches
- *
- * @author Philippe Jausions
- */
- function getStandardPort($scheme)
- {
- switch (strtolower($scheme)) {
- case 'http': return 80;
- case 'https': return 443;
- case 'ftp': return 21;
- case 'imap': return 143;
- case 'imaps': return 993;
- case 'pop3': return 110;
- case 'pop3s': return 995;
- default: return null;
- }
- }
-
- /**
- * Forces the URL to a particular protocol
- *
- * @param string $protocol Protocol to force the URL to
- * @param integer $port Optional port (standard port is used by default)
- */
- function setProtocol($protocol, $port = null)
- {
- $this->protocol = $protocol;
- $this->port = is_null($port) ? $this->getStandardPort($protocol) : $port;
- }
-
- /**
- * Set an option
- *
- * This function set an option
- * to be used thorough the script.
- *
- * @access public
- * @param string $optionName The optionname to set
- * @param string $value The value of this option.
- */
- function setOption($optionName, $value)
- {
- if (!array_key_exists($optionName, $this->options)) {
- return false;
- }
-
- $this->options[$optionName] = $value;
- $this->initialize();
- }
-
- /**
- * Get an option
- *
- * This function gets an option
- * from the $this->options array
- * and return it's value.
- *
- * @access public
- * @param string $opionName The name of the option to retrieve
- * @see $this->options
- */
- function getOption($optionName)
- {
- if (!isset($this->options[$optionName])) {
- return false;
- }
-
- return $this->options[$optionName];
- }
-
-}
-?>
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/Net/URL2.php b/wp-content/plugins/updraftplus/includes/PEAR/Net/URL2.php
deleted file mode 100644
index 8841ed76..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/Net/URL2.php
+++ /dev/null
@@ -1,1219 +0,0 @@
-
- * @copyright 2007-2009 Peytz & Co. A/S
- * @license https://spdx.org/licenses/BSD-3-Clause BSD-3-Clause
- * @version CVS: $Id$
- * @link https://tools.ietf.org/html/rfc3986
- */
-
-/**
- * Represents a URL as per RFC 3986.
- *
- * @category Networking
- * @package Net_URL2
- * @author Christian Schmidt
- * @copyright 2007-2009 Peytz & Co. A/S
- * @license https://spdx.org/licenses/BSD-3-Clause BSD-3-Clause
- * @version Release: 2.2.0
- * @link https://pear.php.net/package/Net_URL2
- */
-class Net_URL2
-{
- /**
- * Do strict parsing in resolve() (see RFC 3986, section 5.2.2). Default
- * is true.
- */
- const OPTION_STRICT = 'strict';
-
- /**
- * Represent arrays in query using PHP's [] notation. Default is true.
- */
- const OPTION_USE_BRACKETS = 'use_brackets';
-
- /**
- * Drop zero-based integer sequences in query using PHP's [] notation. Default
- * is true.
- */
- const OPTION_DROP_SEQUENCE = 'drop_sequence';
-
- /**
- * URL-encode query variable keys. Default is true.
- */
- const OPTION_ENCODE_KEYS = 'encode_keys';
-
- /**
- * Query variable separators when parsing the query string. Every character
- * is considered a separator. Default is "&".
- */
- const OPTION_SEPARATOR_INPUT = 'input_separator';
-
- /**
- * Query variable separator used when generating the query string. Default
- * is "&".
- */
- const OPTION_SEPARATOR_OUTPUT = 'output_separator';
-
- /**
- * Default options corresponds to how PHP handles $_GET.
- */
- private $_options = array(
- self::OPTION_STRICT => true,
- self::OPTION_USE_BRACKETS => true,
- self::OPTION_DROP_SEQUENCE => true,
- self::OPTION_ENCODE_KEYS => true,
- self::OPTION_SEPARATOR_INPUT => '&',
- self::OPTION_SEPARATOR_OUTPUT => '&',
- );
-
- /**
- * @var string|bool
- */
- private $_scheme = false;
-
- /**
- * @var string|bool
- */
- private $_userinfo = false;
-
- /**
- * @var string|bool
- */
- private $_host = false;
-
- /**
- * @var string|bool
- */
- private $_port = false;
-
- /**
- * @var string
- */
- private $_path = '';
-
- /**
- * @var string|bool
- */
- private $_query = false;
-
- /**
- * @var string|bool
- */
- private $_fragment = false;
-
- /**
- * Constructor.
- *
- * @param string $url an absolute or relative URL
- * @param array $options an array of OPTION_xxx constants
- *
- * @uses self::parseUrl()
- */
- public function __construct($url, array $options = array())
- {
- foreach ($options as $optionName => $value) {
- if (array_key_exists($optionName, $this->_options)) {
- $this->_options[$optionName] = $value;
- }
- }
-
- $this->parseUrl($url);
- }
-
- /**
- * Magic Setter.
- *
- * This method will magically set the value of a private variable ($var)
- * with the value passed as the args
- *
- * @param string $var The private variable to set.
- * @param mixed $arg An argument of any type.
- *
- * @return void
- */
- public function __set($var, $arg)
- {
- $method = 'set' . $var;
- if (method_exists($this, $method)) {
- $this->$method($arg);
- }
- }
-
- /**
- * Magic Getter.
- *
- * This is the magic get method to retrieve the private variable
- * that was set by either __set() or it's setter...
- *
- * @param string $var The property name to retrieve.
- *
- * @return mixed $this->$var Either a boolean false if the
- * property is not set or the value
- * of the private property.
- */
- public function __get($var)
- {
- $method = 'get' . $var;
- if (method_exists($this, $method)) {
- return $this->$method();
- }
-
- return false;
- }
-
- /**
- * Returns the scheme, e.g. "http" or "urn", or false if there is no
- * scheme specified, i.e. if this is a relative URL.
- *
- * @return string|bool
- */
- public function getScheme()
- {
- return $this->_scheme;
- }
-
- /**
- * Sets the scheme, e.g. "http" or "urn". Specify false if there is no
- * scheme specified, i.e. if this is a relative URL.
- *
- * @param string|bool $scheme e.g. "http" or "urn", or false if there is no
- * scheme specified, i.e. if this is a relative
- * URL
- *
- * @return $this
- * @see getScheme
- */
- public function setScheme($scheme)
- {
- $this->_scheme = $scheme;
- return $this;
- }
-
- /**
- * Returns the user part of the userinfo part (the part preceding the first
- * ":"), or false if there is no userinfo part.
- *
- * @return string|bool
- */
- public function getUser()
- {
- return $this->_userinfo !== false
- ? preg_replace('(:.*$)', '', $this->_userinfo)
- : false;
- }
-
- /**
- * Returns the password part of the userinfo part (the part after the first
- * ":"), or false if there is no userinfo part (i.e. the URL does not
- * contain "@" in front of the hostname) or the userinfo part does not
- * contain ":".
- *
- * @return string|bool
- */
- public function getPassword()
- {
- return $this->_userinfo !== false
- ? substr(strstr($this->_userinfo, ':'), 1)
- : false;
- }
-
- /**
- * Returns the userinfo part, or false if there is none, i.e. if the
- * authority part does not contain "@".
- *
- * @return string|bool
- */
- public function getUserinfo()
- {
- return $this->_userinfo;
- }
-
- /**
- * Sets the userinfo part. If two arguments are passed, they are combined
- * in the userinfo part as username ":" password.
- *
- * @param string|bool $userinfo userinfo or username
- * @param string|bool $password optional password, or false
- *
- * @return $this
- */
- public function setUserinfo($userinfo, $password = false)
- {
- if ($password !== false) {
- $userinfo .= ':' . $password;
- }
-
- if ($userinfo !== false) {
- $userinfo = $this->_encodeData($userinfo);
- }
-
- $this->_userinfo = $userinfo;
- return $this;
- }
-
- /**
- * Returns the host part, or false if there is no authority part, e.g.
- * relative URLs.
- *
- * @return string|bool a hostname, an IP address, or false
- */
- public function getHost()
- {
- return $this->_host;
- }
-
- /**
- * Sets the host part. Specify false if there is no authority part, e.g.
- * relative URLs.
- *
- * @param string|bool $host a hostname, an IP address, or false
- *
- * @return $this
- */
- public function setHost($host)
- {
- $this->_host = $host;
- return $this;
- }
-
- /**
- * Returns the port number, or false if there is no port number specified,
- * i.e. if the default port is to be used.
- *
- * @return string|bool
- */
- public function getPort()
- {
- return $this->_port;
- }
-
- /**
- * Sets the port number. Specify false if there is no port number specified,
- * i.e. if the default port is to be used.
- *
- * @param string|bool $port a port number, or false
- *
- * @return $this
- */
- public function setPort($port)
- {
- $this->_port = $port;
- return $this;
- }
-
- /**
- * Returns the authority part, i.e. [ userinfo "@" ] host [ ":" port ], or
- * false if there is no authority.
- *
- * @return string|bool
- */
- public function getAuthority()
- {
- if (false === $this->_host) {
- return false;
- }
-
- $authority = '';
-
- if (strlen($this->_userinfo)) {
- $authority .= $this->_userinfo . '@';
- }
-
- $authority .= $this->_host;
-
- if ($this->_port !== false) {
- $authority .= ':' . $this->_port;
- }
-
- return $authority;
- }
-
- /**
- * Sets the authority part, i.e. [ userinfo "@" ] host [ ":" port ]. Specify
- * false if there is no authority.
- *
- * @param string|bool $authority a hostname or an IP address, possibly
- * with userinfo prefixed and port number
- * appended, e.g. "foo:bar@example.org:81".
- *
- * @return $this
- */
- public function setAuthority($authority)
- {
- $this->_userinfo = false;
- $this->_host = false;
- $this->_port = false;
-
- if ('' === $authority) {
- $this->_host = $authority;
- return $this;
- }
-
- if (!preg_match('(^(([^\@]*)\@)?(.+?)(:(\d*))?$)', $authority, $matches)) {
- return $this;
- }
-
- if ($matches[1]) {
- $this->_userinfo = $this->_encodeData($matches[2]);
- }
-
- $this->_host = $matches[3];
-
- if (isset($matches[5]) && strlen($matches[5])) {
- $this->_port = $matches[5];
- }
- return $this;
- }
-
- /**
- * Returns the path part (possibly an empty string).
- *
- * @return string
- */
- public function getPath()
- {
- return $this->_path;
- }
-
- /**
- * Sets the path part (possibly an empty string).
- *
- * @param string $path a path
- *
- * @return $this
- */
- public function setPath($path)
- {
- $this->_path = $path;
- return $this;
- }
-
- /**
- * Returns the query string (excluding the leading "?"), or false if "?"
- * is not present in the URL.
- *
- * @return string|bool
- * @see getQueryVariables
- */
- public function getQuery()
- {
- return $this->_query;
- }
-
- /**
- * Sets the query string (excluding the leading "?"). Specify false if "?"
- * is not present in the URL.
- *
- * @param string|bool $query a query string, e.g. "foo=1&bar=2"
- *
- * @return $this
- * @see setQueryVariables
- */
- public function setQuery($query)
- {
- $this->_query = $query;
- return $this;
- }
-
- /**
- * Returns the fragment name, or false if "#" is not present in the URL.
- *
- * @return string|bool
- */
- public function getFragment()
- {
- return $this->_fragment;
- }
-
- /**
- * Sets the fragment name. Specify false if "#" is not present in the URL.
- *
- * @param string|bool $fragment a fragment excluding the leading "#", or
- * false
- *
- * @return $this
- */
- public function setFragment($fragment)
- {
- $this->_fragment = $fragment;
- return $this;
- }
-
- /**
- * Returns the query string like an array as the variables would appear in
- * $_GET in a PHP script. If the URL does not contain a "?", an empty array
- * is returned.
- *
- * @return array
- */
- public function getQueryVariables()
- {
- $separator = $this->getOption(self::OPTION_SEPARATOR_INPUT);
- $encodeKeys = $this->getOption(self::OPTION_ENCODE_KEYS);
- $useBrackets = $this->getOption(self::OPTION_USE_BRACKETS);
-
- $return = array();
-
- for ($part = strtok($this->_query, $separator);
- strlen($part);
- $part = strtok($separator)
- ) {
- list($key, $value) = explode('=', $part, 2) + array(1 => '');
-
- if ($encodeKeys) {
- $key = rawurldecode($key);
- }
- $value = rawurldecode($value);
-
- if ($useBrackets) {
- $return = $this->_queryArrayByKey($key, $value, $return);
- } else {
- if (isset($return[$key])) {
- $return[$key] = (array) $return[$key];
- $return[$key][] = $value;
- } else {
- $return[$key] = $value;
- }
- }
- }
-
- return $return;
- }
-
- /**
- * Parse a single query key=value pair into an existing php array
- *
- * @param string $key query-key
- * @param string $value query-value
- * @param array $array of existing query variables (if any)
- *
- * @return mixed
- */
- private function _queryArrayByKey($key, $value, array $array = array())
- {
- if (!strlen($key)) {
- return $array;
- }
-
- $offset = $this->_queryKeyBracketOffset($key);
- if ($offset === false) {
- $name = $key;
- } else {
- $name = substr($key, 0, $offset);
- }
-
- if (!strlen($name)) {
- return $array;
- }
-
- if (!$offset) {
- // named value
- $array[$name] = $value;
- } else {
- // array
- $brackets = substr($key, $offset);
- if (!isset($array[$name])) {
- $array[$name] = null;
- }
- $array[$name] = $this->_queryArrayByBrackets(
- $brackets, $value, $array[$name]
- );
- }
-
- return $array;
- }
-
- /**
- * Parse a key-buffer to place value in array
- *
- * @param string $buffer to consume all keys from
- * @param string $value to be set/add
- * @param array $array to traverse and set/add value in
- *
- * @throws Exception
- * @return array
- */
- private function _queryArrayByBrackets($buffer, $value, array $array = null)
- {
- $entry = &$array;
-
- for ($iteration = 0; strlen($buffer); $iteration++) {
- $open = $this->_queryKeyBracketOffset($buffer);
- if ($open !== 0) {
- // Opening bracket [ must exist at offset 0, if not, there is
- // no bracket to parse and the value dropped.
- // if this happens in the first iteration, this is flawed, see
- // as well the second exception below.
- if ($iteration) {
- break;
- }
- // @codeCoverageIgnoreStart
- throw new Exception(
- 'Net_URL2 Internal Error: '. __METHOD__ .'(): ' .
- 'Opening bracket [ must exist at offset 0'
- );
- // @codeCoverageIgnoreEnd
- }
-
- $close = strpos($buffer, ']', 1);
- if (!$close) {
- // this error condition should never be reached as this is a
- // private method and bracket pairs are checked beforehand.
- // See as well the first exception for the opening bracket.
- // @codeCoverageIgnoreStart
- throw new Exception(
- 'Net_URL2 Internal Error: '. __METHOD__ .'(): ' .
- 'Closing bracket ] must exist, not found'
- );
- // @codeCoverageIgnoreEnd
- }
-
- $index = substr($buffer, 1, $close - 1);
- if (strlen($index)) {
- $entry = &$entry[$index];
- } else {
- if (!is_array($entry)) {
- $entry = array();
- }
- $entry[] = &$new;
- $entry = &$new;
- unset($new);
- }
- $buffer = substr($buffer, $close + 1);
- }
-
- $entry = $value;
-
- return $array;
- }
-
- /**
- * Query-key has brackets ("...[]")
- *
- * @param string $key query-key
- *
- * @return bool|int offset of opening bracket, false if no brackets
- */
- private function _queryKeyBracketOffset($key)
- {
- if (false !== $open = strpos($key, '[')
- and false === strpos($key, ']', $open + 1)
- ) {
- $open = false;
- }
-
- return $open;
- }
-
- /**
- * Sets the query string to the specified variable in the query string.
- *
- * @param array $array (name => value) array
- *
- * @return $this
- */
- public function setQueryVariables(array $array)
- {
- if (!$array) {
- $this->_query = false;
- } else {
- $this->_query = $this->buildQuery(
- $array,
- $this->getOption(self::OPTION_SEPARATOR_OUTPUT)
- );
- }
- return $this;
- }
-
- /**
- * Sets the specified variable in the query string.
- *
- * @param string $name variable name
- * @param mixed $value variable value
- *
- * @return $this
- */
- public function setQueryVariable($name, $value)
- {
- $array = $this->getQueryVariables();
- $array[$name] = $value;
- $this->setQueryVariables($array);
- return $this;
- }
-
- /**
- * Removes the specified variable from the query string.
- *
- * @param string $name a query string variable, e.g. "foo" in "?foo=1"
- *
- * @return void
- */
- public function unsetQueryVariable($name)
- {
- $array = $this->getQueryVariables();
- unset($array[$name]);
- $this->setQueryVariables($array);
- }
-
- /**
- * Returns a string representation of this URL.
- *
- * @return string
- */
- public function getURL()
- {
- // See RFC 3986, section 5.3
- $url = '';
-
- if ($this->_scheme !== false) {
- $url .= $this->_scheme . ':';
- }
-
- $authority = $this->getAuthority();
- if ($authority === false && strtolower($this->_scheme) === 'file') {
- $authority = '';
- }
-
- $url .= $this->_buildAuthorityAndPath($authority, $this->_path);
-
- if ($this->_query !== false) {
- $url .= '?' . $this->_query;
- }
-
- if ($this->_fragment !== false) {
- $url .= '#' . $this->_fragment;
- }
-
- return $url;
- }
-
- /**
- * Put authority and path together, wrapping authority
- * into proper separators/terminators.
- *
- * @param string|bool $authority authority
- * @param string $path path
- *
- * @return string
- */
- private function _buildAuthorityAndPath($authority, $path)
- {
- if ($authority === false) {
- return $path;
- }
-
- $terminator = ($path !== '' && $path[0] !== '/') ? '/' : '';
-
- return '//' . $authority . $terminator . $path;
- }
-
- /**
- * Returns a string representation of this URL.
- *
- * @return string
- * @link https://php.net/language.oop5.magic#object.tostring
- */
- public function __toString()
- {
- return $this->getURL();
- }
-
- /**
- * Returns a normalized string representation of this URL. This is useful
- * for comparison of URLs.
- *
- * @return string
- */
- public function getNormalizedURL()
- {
- $url = clone $this;
- $url->normalize();
- return $url->getUrl();
- }
-
- /**
- * Normalizes the URL
- *
- * See RFC 3986, Section 6. Normalization and Comparison
- *
- * @link https://tools.ietf.org/html/rfc3986#section-6
- *
- * @return void
- */
- public function normalize()
- {
- // See RFC 3986, section 6
-
- // Scheme is case-insensitive
- if ($this->_scheme) {
- $this->_scheme = strtolower($this->_scheme);
- }
-
- // Hostname is case-insensitive
- if ($this->_host) {
- $this->_host = strtolower($this->_host);
- }
-
- // Remove default port number for known schemes (RFC 3986, section 6.2.3)
- if ('' === $this->_port
- || $this->_port
- && $this->_scheme
- && $this->_port == getservbyname($this->_scheme, 'tcp')
- ) {
- $this->_port = false;
- }
-
- // Normalize case of %XX percentage-encodings (RFC 3986, section 6.2.2.1)
- // Normalize percentage-encoded unreserved characters (section 6.2.2.2)
- $fields = array(&$this->_userinfo, &$this->_host, &$this->_path,
- &$this->_query, &$this->_fragment);
- foreach ($fields as &$field) {
- if ($field !== false) {
- $field = $this->_normalize("$field");
- }
- }
- unset($field);
-
- // Path segment normalization (RFC 3986, section 6.2.2.3)
- $this->_path = self::removeDotSegments($this->_path);
-
- // Scheme based normalization (RFC 3986, section 6.2.3)
- if (false !== $this->_host && '' === $this->_path) {
- $this->_path = '/';
- }
-
- // path should start with '/' if there is authority (section 3.3.)
- if (strlen($this->getAuthority())
- && strlen($this->_path)
- && $this->_path[0] !== '/'
- ) {
- $this->_path = '/' . $this->_path;
- }
- }
-
- /**
- * Normalize case of %XX percentage-encodings (RFC 3986, section 6.2.2.1)
- * Normalize percentage-encoded unreserved characters (section 6.2.2.2)
- *
- * @param string|array $mixed string or array of strings to normalize
- *
- * @return string|array
- * @see normalize
- * @see _normalizeCallback()
- */
- private function _normalize($mixed)
- {
- return preg_replace_callback(
- '((?:%[0-9a-fA-Z]{2})+)', array($this, '_normalizeCallback'),
- $mixed
- );
- }
-
- /**
- * Callback for _normalize() of %XX percentage-encodings
- *
- * @param array $matches as by preg_replace_callback
- *
- * @return string
- * @see normalize
- * @see _normalize
- * @SuppressWarnings(PHPMD.UnusedPrivateMethod)
- */
- private function _normalizeCallback($matches)
- {
- return self::urlencode(urldecode($matches[0]));
- }
-
- /**
- * Returns whether this instance represents an absolute URL.
- *
- * @return bool
- */
- public function isAbsolute()
- {
- return (bool) $this->_scheme;
- }
-
- /**
- * Returns an Net_URL2 instance representing an absolute URL relative to
- * this URL.
- *
- * @param Net_URL2|string $reference relative URL
- *
- * @throws Exception
- * @return $this
- */
- public function resolve($reference)
- {
- if (!$reference instanceof Net_URL2) {
- $reference = new self($reference);
- }
- if (!$reference->_isFragmentOnly() && !$this->isAbsolute()) {
- throw new Exception(
- 'Base-URL must be absolute if reference is not fragment-only'
- );
- }
-
- // A non-strict parser may ignore a scheme in the reference if it is
- // identical to the base URI's scheme.
- if (!$this->getOption(self::OPTION_STRICT)
- && $reference->_scheme == $this->_scheme
- ) {
- $reference->_scheme = false;
- }
-
- $target = new self('');
- if ($reference->_scheme !== false) {
- $target->_scheme = $reference->_scheme;
- $target->setAuthority($reference->getAuthority());
- $target->_path = self::removeDotSegments($reference->_path);
- $target->_query = $reference->_query;
- } else {
- $authority = $reference->getAuthority();
- if ($authority !== false) {
- $target->setAuthority($authority);
- $target->_path = self::removeDotSegments($reference->_path);
- $target->_query = $reference->_query;
- } else {
- if ($reference->_path == '') {
- $target->_path = $this->_path;
- if ($reference->_query !== false) {
- $target->_query = $reference->_query;
- } else {
- $target->_query = $this->_query;
- }
- } else {
- if (substr($reference->_path, 0, 1) == '/') {
- $target->_path = self::removeDotSegments($reference->_path);
- } else {
- // Merge paths (RFC 3986, section 5.2.3)
- if ($this->_host !== false && $this->_path == '') {
- $target->_path = '/' . $reference->_path;
- } else {
- $i = strrpos($this->_path, '/');
- if ($i !== false) {
- $target->_path = substr($this->_path, 0, $i + 1);
- }
- $target->_path .= $reference->_path;
- }
- $target->_path = self::removeDotSegments($target->_path);
- }
- $target->_query = $reference->_query;
- }
- $target->setAuthority($this->getAuthority());
- }
- $target->_scheme = $this->_scheme;
- }
-
- $target->_fragment = $reference->_fragment;
-
- return $target;
- }
-
- /**
- * URL is fragment-only
- *
- * @SuppressWarnings(PHPMD.UnusedPrivateMethod)
- * @return bool
- */
- private function _isFragmentOnly()
- {
- return (
- $this->_fragment !== false
- && $this->_query === false
- && $this->_path === ''
- && $this->_port === false
- && $this->_host === false
- && $this->_userinfo === false
- && $this->_scheme === false
- );
- }
-
- /**
- * Removes dots as described in RFC 3986, section 5.2.4, e.g.
- * "/foo/../bar/baz" => "/bar/baz"
- *
- * @param string $path a path
- *
- * @return string a path
- */
- public static function removeDotSegments($path)
- {
- $path = (string) $path;
- $output = '';
-
- // Make sure not to be trapped in an infinite loop due to a bug in this
- // method
- $loopLimit = 256;
- $j = 0;
- while ('' !== $path && $j++ < $loopLimit) {
- if (substr($path, 0, 2) === './') {
- // Step 2.A
- $path = substr($path, 2);
- } elseif (substr($path, 0, 3) === '../') {
- // Step 2.A
- $path = substr($path, 3);
- } elseif (substr($path, 0, 3) === '/./' || $path === '/.') {
- // Step 2.B
- $path = '/' . substr($path, 3);
- } elseif (substr($path, 0, 4) === '/../' || $path === '/..') {
- // Step 2.C
- $path = '/' . substr($path, 4);
- $i = strrpos($output, '/');
- $output = $i === false ? '' : substr($output, 0, $i);
- } elseif ($path === '.' || $path === '..') {
- // Step 2.D
- $path = '';
- } else {
- // Step 2.E
- $i = strpos($path, '/', $path[0] === '/');
- if ($i === false) {
- $output .= $path;
- $path = '';
- break;
- }
- $output .= substr($path, 0, $i);
- $path = substr($path, $i);
- }
- }
-
- if ($path !== '') {
- $message = sprintf(
- 'Unable to remove dot segments; hit loop limit %d (left: %s)',
- $j, var_export($path, true)
- );
- trigger_error($message, E_USER_WARNING);
- }
-
- return $output;
- }
-
- /**
- * Percent-encodes all non-alphanumeric characters except these: _ . - ~
- * Similar to PHP's rawurlencode(), except that it also encodes ~ in PHP
- * 5.2.x and earlier.
- *
- * @param string $string string to encode
- *
- * @return string
- */
- public static function urlencode($string)
- {
- $encoded = rawurlencode($string);
-
- // This is only necessary in PHP < 5.3.
- $encoded = str_replace('%7E', '~', $encoded);
- return $encoded;
- }
-
- /**
- * Returns a Net_URL2 instance representing the canonical URL of the
- * currently executing PHP script.
- *
- * @throws Exception
- * @return string
- */
- public static function getCanonical()
- {
- if (!isset($_SERVER['REQUEST_METHOD'])) {
- // ALERT - no current URL
- throw new Exception('Script was not called through a webserver');
- }
-
- // Begin with a relative URL
- $url = new self($_SERVER['PHP_SELF']);
- $url->_scheme = isset($_SERVER['HTTPS']) ? 'https' : 'http';
- $url->_host = $_SERVER['SERVER_NAME'];
- $port = $_SERVER['SERVER_PORT'];
- if ($url->_scheme == 'http' && $port != 80
- || $url->_scheme == 'https' && $port != 443
- ) {
- $url->_port = $port;
- }
- return $url;
- }
-
- /**
- * Returns the URL used to retrieve the current request.
- *
- * @return string
- */
- public static function getRequestedURL()
- {
- return self::getRequested()->getUrl();
- }
-
- /**
- * Returns a Net_URL2 instance representing the URL used to retrieve the
- * current request.
- *
- * @throws Exception
- * @return $this
- */
- public static function getRequested()
- {
- if (!isset($_SERVER['REQUEST_METHOD'])) {
- // ALERT - no current URL
- throw new Exception('Script was not called through a webserver');
- }
-
- // Begin with a relative URL
- $url = new self($_SERVER['REQUEST_URI']);
- $url->_scheme = isset($_SERVER['HTTPS']) ? 'https' : 'http';
- // Set host and possibly port
- $url->setAuthority($_SERVER['HTTP_HOST']);
- return $url;
- }
-
- /**
- * Returns the value of the specified option.
- *
- * @param string $optionName The name of the option to retrieve
- *
- * @return mixed
- */
- public function getOption($optionName)
- {
- return isset($this->_options[$optionName])
- ? $this->_options[$optionName] : false;
- }
-
- /**
- * A simple version of http_build_query in userland. The encoded string is
- * percentage encoded according to RFC 3986.
- *
- * @param array $data An array, which has to be converted into
- * QUERY_STRING. Anything is possible.
- * @param string $separator Separator {@link self::OPTION_SEPARATOR_OUTPUT}
- * @param string $key For stacked values (arrays in an array).
- *
- * @return string
- */
- protected function buildQuery(array $data, $separator, $key = null)
- {
- $query = array();
- $drop_names = (
- $this->_options[self::OPTION_DROP_SEQUENCE] === true
- && array_keys($data) === array_keys(array_values($data))
- );
- foreach ($data as $name => $value) {
- if ($this->getOption(self::OPTION_ENCODE_KEYS) === true) {
- $name = rawurlencode($name);
- }
- if ($key !== null) {
- if ($this->getOption(self::OPTION_USE_BRACKETS) === true) {
- $drop_names && $name = '';
- $name = $key . '[' . $name . ']';
- } else {
- $name = $key;
- }
- }
- if (is_array($value)) {
- $query[] = $this->buildQuery($value, $separator, $name);
- } else {
- $query[] = $name . '=' . rawurlencode($value);
- }
- }
- return implode($separator, $query);
- }
-
- /**
- * This method uses a regex to parse the url into the designated parts.
- *
- * @param string $url URL
- *
- * @return void
- * @uses self::$_scheme, self::setAuthority(), self::$_path, self::$_query,
- * self::$_fragment
- * @see __construct
- */
- protected function parseUrl($url)
- {
- // The regular expression is copied verbatim from RFC 3986, appendix B.
- // The expression does not validate the URL but matches any string.
- preg_match(
- '(^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?)',
- $url, $matches
- );
-
- // "path" is always present (possibly as an empty string); the rest
- // are optional.
- $this->_scheme = !empty($matches[1]) ? $matches[2] : false;
- $this->setAuthority(!empty($matches[3]) ? $matches[4] : false);
- $this->_path = $this->_encodeData($matches[5]);
- $this->_query = !empty($matches[6])
- ? $this->_encodeData($matches[7])
- : false
- ;
- $this->_fragment = !empty($matches[8]) ? $matches[9] : false;
- }
-
- /**
- * Encode characters that might have been forgotten to encode when passing
- * in an URL. Applied onto Userinfo, Path and Query.
- *
- * @param string $url URL
- *
- * @return string
- * @see parseUrl
- * @see setAuthority
- * @link https://pear.php.net/bugs/bug.php?id=20425
- */
- private function _encodeData($url)
- {
- return preg_replace_callback(
- '([\x-\x20\x22\x3C\x3E\x7F-\xFF]+)',
- array($this, '_encodeCallback'), $url
- );
- }
-
- /**
- * callback for encoding character data
- *
- * @param array $matches Matches
- *
- * @return string
- * @see _encodeData
- * @SuppressWarnings(PHPMD.UnusedPrivateMethod)
- */
- private function _encodeCallback(array $matches)
- {
- return rawurlencode($matches[0]);
- }
-}
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/PEAR.php b/wp-content/plugins/updraftplus/includes/PEAR/PEAR.php
deleted file mode 100644
index 34c6aaf5..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/PEAR.php
+++ /dev/null
@@ -1,1060 +0,0 @@
-
- * @author Stig Bakken
- * @author Tomas V.V.Cox
- * @author Greg Beaver
- * @copyright 1997-2010 The Authors
- * @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version CVS: $Id: PEAR.php 313023 2011-07-06 19:17:11Z dufuz $
- * @link http://pear.php.net/package/PEAR
- * @since File available since Release 0.1
- */
-
-/**#@+
- * ERROR constants
- */
-define('PEAR_ERROR_RETURN', 1);
-define('PEAR_ERROR_PRINT', 2);
-define('PEAR_ERROR_TRIGGER', 4);
-define('PEAR_ERROR_DIE', 8);
-define('PEAR_ERROR_CALLBACK', 16);
-/**
- * WARNING: obsolete
- * @deprecated
- */
-define('PEAR_ERROR_EXCEPTION', 32);
-/**#@-*/
-define('PEAR_ZE2', (function_exists('version_compare') &&
- version_compare(zend_version(), "2-dev", "ge")));
-
-if (substr(PHP_OS, 0, 3) == 'WIN') {
- define('OS_WINDOWS', true);
- define('OS_UNIX', false);
- define('PEAR_OS', 'Windows');
-} else {
- define('OS_WINDOWS', false);
- define('OS_UNIX', true);
- define('PEAR_OS', 'Unix'); // blatant assumption
-}
-
-$GLOBALS['_PEAR_default_error_mode'] = PEAR_ERROR_RETURN;
-$GLOBALS['_PEAR_default_error_options'] = E_USER_NOTICE;
-$GLOBALS['_PEAR_destructor_object_list'] = array();
-$GLOBALS['_PEAR_shutdown_funcs'] = array();
-$GLOBALS['_PEAR_error_handler_stack'] = array();
-
-/**
- * Base class for other PEAR classes. Provides rudimentary
- * emulation of destructors.
- *
- * If you want a destructor in your class, inherit PEAR and make a
- * destructor method called _yourclassname (same name as the
- * constructor, but with a "_" prefix). Also, in your constructor you
- * have to call the PEAR constructor: parent::_construct();.
- * The destructor method will be called without parameters. Note that
- * at in some SAPI implementations (such as Apache), any output during
- * the request shutdown (in which destructors are called) seems to be
- * discarded. If you need to get any debug information from your
- * destructor, use error_log(), syslog() or something similar.
- *
- * IMPORTANT! To use the emulated destructors you need to create the
- * objects by reference: $obj =& new PEAR_child;
- *
- * @category pear
- * @package PEAR
- * @author Stig Bakken
- * @author Tomas V.V. Cox
- * @author Greg Beaver
- * @copyright 1997-2006 The PHP Group
- * @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.9.4
- * @link http://pear.php.net/package/PEAR
- * @see PEAR_Error
- * @since Class available since PHP 4.0.2
- * @link http://pear.php.net/manual/en/core.pear.php#core.pear.pear
- */
-class PEAR
-{
- /**
- * Whether to enable internal debug messages.
- *
- * @var bool
- * @access private
- */
- var $_debug = false;
-
- /**
- * Default error mode for this object.
- *
- * @var int
- * @access private
- */
- var $_default_error_mode = null;
-
- /**
- * Default error options used for this object when error mode
- * is PEAR_ERROR_TRIGGER.
- *
- * @var int
- * @access private
- */
- var $_default_error_options = null;
-
- /**
- * Default error handler (callback) for this object, if error mode is
- * PEAR_ERROR_CALLBACK.
- *
- * @var string
- * @access private
- */
- var $_default_error_handler = '';
-
- /**
- * Which class to use for error objects.
- *
- * @var string
- * @access private
- */
- var $_error_class = 'PEAR_Error';
-
- /**
- * An array of expected errors.
- *
- * @var array
- * @access private
- */
- var $_expected_errors = array();
-
- /**
- * Constructor. Registers this object in
- * $_PEAR_destructor_object_list for destructor emulation if a
- * destructor object exists.
- *
- * @param string $error_class (optional) which class to use for
- * error objects, defaults to PEAR_Error.
- * @access public
- * @return self
- */
- public function __construct($error_class = null) {
- $classname = strtolower(get_class($this));
- if ($this->_debug) {
- print "PEAR constructor called, class=$classname\n";
- }
-
- if ($error_class !== null) {
- $this->_error_class = $error_class;
- }
-
- while ($classname && strcasecmp($classname, "pear")) {
- $destructor = "_$classname";
- if (method_exists($this, $destructor)) {
- global $_PEAR_destructor_object_list;
- $_PEAR_destructor_object_list[] = &$this;
- if (!isset($GLOBALS['_PEAR_SHUTDOWN_REGISTERED'])) {
- register_shutdown_function("_PEAR_call_destructors");
- $GLOBALS['_PEAR_SHUTDOWN_REGISTERED'] = true;
- }
- break;
- } else {
- $classname = get_parent_class($classname);
- }
- }
- }
-
- /**
- * Destructor (the emulated type of...). Does nothing right now,
- * but is included for forward compatibility, so subclass
- * destructors should always call it.
- *
- * See the note in the class desciption about output from
- * destructors.
- *
- * @access public
- * @return void
- */
- public function __destruct() {
- if ($this->_debug) {
- printf("PEAR destructor called, class=%s\n", strtolower(get_class($this)));
- }
- }
-
- /**
- * If you have a class that's mostly/entirely static, and you need static
- * properties, you can use this method to simulate them. Eg. in your method(s)
- * do this: $myVar = &PEAR::getStaticProperty('myclass', 'myVar');
- * You MUST use a reference, or they will not persist!
- *
- * @access public
- * @param string $class The calling classname, to prevent clashes
- * @param string $var The variable to retrieve.
- * @return mixed A reference to the variable. If not set it will be
- * auto initialised to NULL.
- */
- static function &getStaticProperty($class, $var)
- {
- static $properties;
- if (!isset($properties[$class])) {
- $properties[$class] = array();
- }
-
- if (!array_key_exists($var, $properties[$class])) {
- $properties[$class][$var] = null;
- }
-
- return $properties[$class][$var];
- }
-
- /**
- * Use this function to register a shutdown method for static
- * classes.
- *
- * @access public
- * @param mixed $func The function name (or array of class/method) to call
- * @param mixed $args The arguments to pass to the function
- * @return void
- */
- function registerShutdownFunc($func, $args = array())
- {
- // if we are called statically, there is a potential
- // that no shutdown func is registered. Bug #6445
- if (!isset($GLOBALS['_PEAR_SHUTDOWN_REGISTERED'])) {
- register_shutdown_function("_PEAR_call_destructors");
- $GLOBALS['_PEAR_SHUTDOWN_REGISTERED'] = true;
- }
- $GLOBALS['_PEAR_shutdown_funcs'][] = array($func, $args);
- }
-
- /**
- * Tell whether a value is a PEAR error.
- *
- * @param mixed $data the value to test
- * @param int $code if $data is an error object, return true
- * only if $code is a string and
- * $obj->getMessage() == $code or
- * $code is an integer and $obj->getCode() == $code
- * @access public
- * @return bool true if parameter is an error
- */
- static function isError($data, $code = null)
- {
- if (!is_a($data, 'PEAR_Error')) {
- return false;
- }
-
- if (is_null($code)) {
- return true;
- } elseif (is_string($code)) {
- return $data->getMessage() == $code;
- }
-
- return $data->getCode() == $code;
- }
-
- /**
- * Sets how errors generated by this object should be handled.
- * Can be invoked both in objects and statically. If called
- * statically, setErrorHandling sets the default behaviour for all
- * PEAR objects. If called in an object, setErrorHandling sets
- * the default behaviour for that object.
- *
- * @param int $mode
- * One of PEAR_ERROR_RETURN, PEAR_ERROR_PRINT,
- * PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE,
- * PEAR_ERROR_CALLBACK or PEAR_ERROR_EXCEPTION.
- *
- * @param mixed $options
- * When $mode is PEAR_ERROR_TRIGGER, this is the error level (one
- * of E_USER_NOTICE, E_USER_WARNING or E_USER_ERROR).
- *
- * When $mode is PEAR_ERROR_CALLBACK, this parameter is expected
- * to be the callback function or method. A callback
- * function is a string with the name of the function, a
- * callback method is an array of two elements: the element
- * at index 0 is the object, and the element at index 1 is
- * the name of the method to call in the object.
- *
- * When $mode is PEAR_ERROR_PRINT or PEAR_ERROR_DIE, this is
- * a printf format string used when printing the error
- * message.
- *
- * @access public
- * @return void
- * @see PEAR_ERROR_RETURN
- * @see PEAR_ERROR_PRINT
- * @see PEAR_ERROR_TRIGGER
- * @see PEAR_ERROR_DIE
- * @see PEAR_ERROR_CALLBACK
- * @see PEAR_ERROR_EXCEPTION
- *
- * @since PHP 4.0.5
- */
- function setErrorHandling($mode = null, $options = null)
- {
- if (isset($this) && is_a($this, 'PEAR')) {
- $setmode = &$this->_default_error_mode;
- $setoptions = &$this->_default_error_options;
- } else {
- $setmode = &$GLOBALS['_PEAR_default_error_mode'];
- $setoptions = &$GLOBALS['_PEAR_default_error_options'];
- }
-
- switch ($mode) {
- case PEAR_ERROR_EXCEPTION:
- case PEAR_ERROR_RETURN:
- case PEAR_ERROR_PRINT:
- case PEAR_ERROR_TRIGGER:
- case PEAR_ERROR_DIE:
- case null:
- $setmode = $mode;
- $setoptions = $options;
- break;
-
- case PEAR_ERROR_CALLBACK:
- $setmode = $mode;
- // class/object method callback
- if (is_callable($options)) {
- $setoptions = $options;
- } else {
- trigger_error("invalid error callback", E_USER_WARNING);
- }
- break;
-
- default:
- trigger_error("invalid error mode", E_USER_WARNING);
- break;
- }
- }
-
- /**
- * This method is used to tell which errors you expect to get.
- * Expected errors are always returned with error mode
- * PEAR_ERROR_RETURN. Expected error codes are stored in a stack,
- * and this method pushes a new element onto it. The list of
- * expected errors are in effect until they are popped off the
- * stack with the popExpect() method.
- *
- * Note that this method can not be called statically
- *
- * @param mixed $code a single error code or an array of error codes to expect
- *
- * @return int the new depth of the "expected errors" stack
- * @access public
- */
- function expectError($code = '*')
- {
- if (is_array($code)) {
- array_push($this->_expected_errors, $code);
- } else {
- array_push($this->_expected_errors, array($code));
- }
- return count($this->_expected_errors);
- }
-
- /**
- * This method pops one element off the expected error codes
- * stack.
- *
- * @return array the list of error codes that were popped
- */
- function popExpect()
- {
- return array_pop($this->_expected_errors);
- }
-
- /**
- * This method checks unsets an error code if available
- *
- * @param mixed error code
- * @return bool true if the error code was unset, false otherwise
- * @access private
- * @since PHP 4.3.0
- */
- function _checkDelExpect($error_code)
- {
- $deleted = false;
- foreach ($this->_expected_errors as $key => $error_array) {
- if (in_array($error_code, $error_array)) {
- unset($this->_expected_errors[$key][array_search($error_code, $error_array)]);
- $deleted = true;
- }
-
- // clean up empty arrays
- if (0 == count($this->_expected_errors[$key])) {
- unset($this->_expected_errors[$key]);
- }
- }
-
- return $deleted;
- }
-
- /**
- * This method deletes all occurences of the specified element from
- * the expected error codes stack.
- *
- * @param mixed $error_code error code that should be deleted
- * @return mixed list of error codes that were deleted or error
- * @access public
- * @since PHP 4.3.0
- */
- function delExpect($error_code)
- {
- $deleted = false;
- if ((is_array($error_code) && (0 != count($error_code)))) {
- // $error_code is a non-empty array here; we walk through it trying
- // to unset all values
- foreach ($error_code as $key => $error) {
- $deleted = $this->_checkDelExpect($error) ? true : false;
- }
-
- return $deleted ? true : PEAR::raiseError("The expected error you submitted does not exist"); // IMPROVE ME
- } elseif (!empty($error_code)) {
- // $error_code comes alone, trying to unset it
- if ($this->_checkDelExpect($error_code)) {
- return true;
- }
-
- return PEAR::raiseError("The expected error you submitted does not exist"); // IMPROVE ME
- }
-
- // $error_code is empty
- return PEAR::raiseError("The expected error you submitted is empty"); // IMPROVE ME
- }
-
- /**
- * This method is a wrapper that returns an instance of the
- * configured error class with this object's default error
- * handling applied. If the $mode and $options parameters are not
- * specified, the object's defaults are used.
- *
- * @param mixed $message a text error message or a PEAR error object
- *
- * @param int $code a numeric error code (it is up to your class
- * to define these if you want to use codes)
- *
- * @param int $mode One of PEAR_ERROR_RETURN, PEAR_ERROR_PRINT,
- * PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE,
- * PEAR_ERROR_CALLBACK, PEAR_ERROR_EXCEPTION.
- *
- * @param mixed $options If $mode is PEAR_ERROR_TRIGGER, this parameter
- * specifies the PHP-internal error level (one of
- * E_USER_NOTICE, E_USER_WARNING or E_USER_ERROR).
- * If $mode is PEAR_ERROR_CALLBACK, this
- * parameter specifies the callback function or
- * method. In other error modes this parameter
- * is ignored.
- *
- * @param string $userinfo If you need to pass along for example debug
- * information, this parameter is meant for that.
- *
- * @param string $error_class The returned error object will be
- * instantiated from this class, if specified.
- *
- * @param bool $skipmsg If true, raiseError will only pass error codes,
- * the error message parameter will be dropped.
- *
- * @access public
- * @return object a PEAR error object
- * @see PEAR::setErrorHandling
- * @since PHP 4.0.5
- */
- function &raiseError($message = null,
- $code = null,
- $mode = null,
- $options = null,
- $userinfo = null,
- $error_class = null,
- $skipmsg = false)
- {
- // The error is yet a PEAR error object
- if (is_object($message)) {
- $code = $message->getCode();
- $userinfo = $message->getUserInfo();
- $error_class = $message->getType();
- $message->error_message_prefix = '';
- $message = $message->getMessage();
- }
-
- if (
- isset($this) &&
- isset($this->_expected_errors) &&
- count($this->_expected_errors) > 0 &&
- count($exp = end($this->_expected_errors))
- ) {
- if ($exp[0] == "*" ||
- (is_int(reset($exp)) && in_array($code, $exp)) ||
- (is_string(reset($exp)) && in_array($message, $exp))
- ) {
- $mode = PEAR_ERROR_RETURN;
- }
- }
-
- // No mode given, try global ones
- if ($mode === null) {
- // Class error handler
- if (isset($this) && isset($this->_default_error_mode)) {
- $mode = $this->_default_error_mode;
- $options = $this->_default_error_options;
- // Global error handler
- } elseif (isset($GLOBALS['_PEAR_default_error_mode'])) {
- $mode = $GLOBALS['_PEAR_default_error_mode'];
- $options = $GLOBALS['_PEAR_default_error_options'];
- }
- }
-
- if ($error_class !== null) {
- $ec = $error_class;
- } elseif (isset($this) && isset($this->_error_class)) {
- $ec = $this->_error_class;
- } else {
- $ec = 'PEAR_Error';
- }
-
- if (intval(PHP_VERSION) < 5) {
- // little non-eval hack to fix bug #12147
- include 'PEAR/FixPHP5PEARWarnings.php';
- return $a;
- }
-
- if ($skipmsg) {
- $a = new $ec($code, $mode, $options, $userinfo);
- } else {
- $a = new $ec($message, $code, $mode, $options, $userinfo);
- }
-
- return $a;
- }
-
- /**
- * Simpler form of raiseError with fewer options. In most cases
- * message, code and userinfo are enough.
- *
- * @param mixed $message a text error message or a PEAR error object
- *
- * @param int $code a numeric error code (it is up to your class
- * to define these if you want to use codes)
- *
- * @param string $userinfo If you need to pass along for example debug
- * information, this parameter is meant for that.
- *
- * @access public
- * @return object a PEAR error object
- * @see PEAR::raiseError
- */
- function &throwError($message = null, $code = null, $userinfo = null)
- {
- if (isset($this) && is_a($this, 'PEAR')) {
- $a = &$this->raiseError($message, $code, null, null, $userinfo);
- return $a;
- }
-
- $a = &PEAR::raiseError($message, $code, null, null, $userinfo);
- return $a;
- }
-
- function staticPushErrorHandling($mode, $options = null)
- {
- $stack = &$GLOBALS['_PEAR_error_handler_stack'];
- $def_mode = &$GLOBALS['_PEAR_default_error_mode'];
- $def_options = &$GLOBALS['_PEAR_default_error_options'];
- $stack[] = array($def_mode, $def_options);
- switch ($mode) {
- case PEAR_ERROR_EXCEPTION:
- case PEAR_ERROR_RETURN:
- case PEAR_ERROR_PRINT:
- case PEAR_ERROR_TRIGGER:
- case PEAR_ERROR_DIE:
- case null:
- $def_mode = $mode;
- $def_options = $options;
- break;
-
- case PEAR_ERROR_CALLBACK:
- $def_mode = $mode;
- // class/object method callback
- if (is_callable($options)) {
- $def_options = $options;
- } else {
- trigger_error("invalid error callback", E_USER_WARNING);
- }
- break;
-
- default:
- trigger_error("invalid error mode", E_USER_WARNING);
- break;
- }
- $stack[] = array($mode, $options);
- return true;
- }
-
- function staticPopErrorHandling()
- {
- $stack = &$GLOBALS['_PEAR_error_handler_stack'];
- $setmode = &$GLOBALS['_PEAR_default_error_mode'];
- $setoptions = &$GLOBALS['_PEAR_default_error_options'];
- array_pop($stack);
- list($mode, $options) = $stack[sizeof($stack) - 1];
- array_pop($stack);
- switch ($mode) {
- case PEAR_ERROR_EXCEPTION:
- case PEAR_ERROR_RETURN:
- case PEAR_ERROR_PRINT:
- case PEAR_ERROR_TRIGGER:
- case PEAR_ERROR_DIE:
- case null:
- $setmode = $mode;
- $setoptions = $options;
- break;
-
- case PEAR_ERROR_CALLBACK:
- $setmode = $mode;
- // class/object method callback
- if (is_callable($options)) {
- $setoptions = $options;
- } else {
- trigger_error("invalid error callback", E_USER_WARNING);
- }
- break;
-
- default:
- trigger_error("invalid error mode", E_USER_WARNING);
- break;
- }
- return true;
- }
-
- /**
- * Push a new error handler on top of the error handler options stack. With this
- * you can easily override the actual error handler for some code and restore
- * it later with popErrorHandling.
- *
- * @param mixed $mode (same as setErrorHandling)
- * @param mixed $options (same as setErrorHandling)
- *
- * @return bool Always true
- *
- * @see PEAR::setErrorHandling
- */
- function pushErrorHandling($mode, $options = null)
- {
- $stack = &$GLOBALS['_PEAR_error_handler_stack'];
- if (isset($this) && is_a($this, 'PEAR')) {
- $def_mode = &$this->_default_error_mode;
- $def_options = &$this->_default_error_options;
- } else {
- $def_mode = &$GLOBALS['_PEAR_default_error_mode'];
- $def_options = &$GLOBALS['_PEAR_default_error_options'];
- }
- $stack[] = array($def_mode, $def_options);
-
- if (isset($this) && is_a($this, 'PEAR')) {
- $this->setErrorHandling($mode, $options);
- } else {
- PEAR::setErrorHandling($mode, $options);
- }
- $stack[] = array($mode, $options);
- return true;
- }
-
- /**
- * Pop the last error handler used
- *
- * @return bool Always true
- *
- * @see PEAR::pushErrorHandling
- */
- function popErrorHandling()
- {
- $stack = &$GLOBALS['_PEAR_error_handler_stack'];
- array_pop($stack);
- list($mode, $options) = $stack[sizeof($stack) - 1];
- array_pop($stack);
- if (isset($this) && is_a($this, 'PEAR')) {
- $this->setErrorHandling($mode, $options);
- } else {
- PEAR::setErrorHandling($mode, $options);
- }
- return true;
- }
-
- /**
- * OS independant PHP extension load. Remember to take care
- * on the correct extension name for case sensitive OSes.
- *
- * @param string $ext The extension name
- * @return bool Success or not on the dl() call
- */
- function loadExtension($ext)
- {
- if (extension_loaded($ext)) {
- return true;
- }
-
- // if either returns true dl() will produce a FATAL error, stop that
- if (
- function_exists('dl') === false ||
- ini_get('enable_dl') != 1 ||
- ini_get('safe_mode') == 1
- ) {
- return false;
- }
-
- if (OS_WINDOWS) {
- $suffix = '.dll';
- } elseif (PHP_OS == 'HP-UX') {
- $suffix = '.sl';
- } elseif (PHP_OS == 'AIX') {
- $suffix = '.a';
- } elseif (PHP_OS == 'OSX') {
- $suffix = '.bundle';
- } else {
- $suffix = '.so';
- }
-
- return @dl('php_'.$ext.$suffix) || @dl($ext.$suffix);
- }
-}
-
-if (PEAR_ZE2) {
- include_once 'PEAR5.php';
-}
-
-function _PEAR_call_destructors()
-{
- global $_PEAR_destructor_object_list;
- if (is_array($_PEAR_destructor_object_list) &&
- sizeof($_PEAR_destructor_object_list))
- {
- reset($_PEAR_destructor_object_list);
- if (PEAR_ZE2) {
- $destructLifoExists = PEAR5::getStaticProperty('PEAR', 'destructlifo');
- } else {
- $destructLifoExists = PEAR::getStaticProperty('PEAR', 'destructlifo');
- }
-
- if ($destructLifoExists) {
- $_PEAR_destructor_object_list = array_reverse($_PEAR_destructor_object_list);
- }
-
- foreach ($_PEAR_destructor_object_list as $k => $objref) {
- $classname = get_class($objref);
- while ($classname) {
- $destructor = "_$classname";
- if (method_exists($objref, $destructor)) {
- $objref->$destructor();
- break;
- } else {
- $classname = get_parent_class($classname);
- }
- }
- }
- // Empty the object list to ensure that destructors are
- // not called more than once.
- $_PEAR_destructor_object_list = array();
- }
-
- // Now call the shutdown functions
- if (
- isset($GLOBALS['_PEAR_shutdown_funcs']) &&
- is_array($GLOBALS['_PEAR_shutdown_funcs']) &&
- !empty($GLOBALS['_PEAR_shutdown_funcs'])
- ) {
- foreach ($GLOBALS['_PEAR_shutdown_funcs'] as $value) {
- call_user_func_array($value[0], $value[1]);
- }
- }
-}
-
-/**
- * Standard PEAR error class for PHP 4
- *
- * This class is supserseded by {@link PEAR_Exception} in PHP 5
- *
- * @category pear
- * @package PEAR
- * @author Stig Bakken
- * @author Tomas V.V. Cox
- * @author Gregory Beaver
- * @copyright 1997-2006 The PHP Group
- * @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.9.4
- * @link http://pear.php.net/manual/en/core.pear.pear-error.php
- * @see PEAR::raiseError(), PEAR::throwError()
- * @since Class available since PHP 4.0.2
- */
-class PEAR_Error
-{
- var $error_message_prefix = '';
- var $mode = PEAR_ERROR_RETURN;
- var $level = E_USER_NOTICE;
- var $code = -1;
- var $message = '';
- var $userinfo = '';
- var $backtrace = null;
-
- /**
- * PEAR_Error constructor
- *
- * @param string $message message
- *
- * @param int $code (optional) error code
- *
- * @param int $mode (optional) error mode, one of: PEAR_ERROR_RETURN,
- * PEAR_ERROR_PRINT, PEAR_ERROR_DIE, PEAR_ERROR_TRIGGER,
- * PEAR_ERROR_CALLBACK or PEAR_ERROR_EXCEPTION
- *
- * @param mixed $options (optional) error level, _OR_ in the case of
- * PEAR_ERROR_CALLBACK, the callback function or object/method
- * tuple.
- *
- * @param string $userinfo (optional) additional user/debug info
- *
- * @access public
- *
- */
- function __construct($message = 'unknown error', $code = null,
- $mode = null, $options = null, $userinfo = null)
- {
- if ($mode === null) {
- $mode = PEAR_ERROR_RETURN;
- }
- $this->message = $message;
- $this->code = $code;
- $this->mode = $mode;
- $this->userinfo = $userinfo;
-
- if (PEAR_ZE2) {
- $skiptrace = PEAR5::getStaticProperty('PEAR_Error', 'skiptrace');
- } else {
- $skiptrace = PEAR::getStaticProperty('PEAR_Error', 'skiptrace');
- }
-
- if (!$skiptrace) {
- $this->backtrace = debug_backtrace();
- if (isset($this->backtrace[0]) && isset($this->backtrace[0]['object'])) {
- unset($this->backtrace[0]['object']);
- }
- }
-
- if ($mode & PEAR_ERROR_CALLBACK) {
- $this->level = E_USER_NOTICE;
- $this->callback = $options;
- } else {
- if ($options === null) {
- $options = E_USER_NOTICE;
- }
-
- $this->level = $options;
- $this->callback = null;
- }
-
- if ($this->mode & PEAR_ERROR_PRINT) {
- if (is_null($options) || is_int($options)) {
- $format = "%s";
- } else {
- $format = $options;
- }
-
- printf($format, $this->getMessage());
- }
-
- if ($this->mode & PEAR_ERROR_TRIGGER) {
- trigger_error($this->getMessage(), $this->level);
- }
-
- if ($this->mode & PEAR_ERROR_DIE) {
- $msg = $this->getMessage();
- if (is_null($options) || is_int($options)) {
- $format = "%s";
- if (substr($msg, -1) != "\n") {
- $msg .= "\n";
- }
- } else {
- $format = $options;
- }
- die(sprintf($format, $msg));
- }
-
- if ($this->mode & PEAR_ERROR_CALLBACK && is_callable($this->callback)) {
- call_user_func($this->callback, $this);
- }
-
- if ($this->mode & PEAR_ERROR_EXCEPTION) {
- trigger_error("PEAR_ERROR_EXCEPTION is obsolete, use class PEAR_Exception for exceptions", E_USER_WARNING);
- eval('$e = new Exception($this->message, $this->code);throw($e);');
- }
- }
-
- /**
- * Get the error mode from an error object.
- *
- * @return int error mode
- * @access public
- */
- function getMode()
- {
- return $this->mode;
- }
-
- /**
- * Get the callback function/method from an error object.
- *
- * @return mixed callback function or object/method array
- * @access public
- */
- function getCallback()
- {
- return $this->callback;
- }
-
- /**
- * Get the error message from an error object.
- *
- * @return string full error message
- * @access public
- */
- function getMessage()
- {
- return ($this->error_message_prefix . $this->message);
- }
-
- /**
- * Get error code from an error object
- *
- * @return int error code
- * @access public
- */
- function getCode()
- {
- return $this->code;
- }
-
- /**
- * Get the name of this error/exception.
- *
- * @return string error/exception name (type)
- * @access public
- */
- function getType()
- {
- return get_class($this);
- }
-
- /**
- * Get additional user-supplied information.
- *
- * @return string user-supplied information
- * @access public
- */
- function getUserInfo()
- {
- return $this->userinfo;
- }
-
- /**
- * Get additional debug information supplied by the application.
- *
- * @return string debug information
- * @access public
- */
- function getDebugInfo()
- {
- return $this->getUserInfo();
- }
-
- /**
- * Get the call backtrace from where the error was generated.
- * Supported with PHP 4.3.0 or newer.
- *
- * @param int $frame (optional) what frame to fetch
- * @return array Backtrace, or NULL if not available.
- * @access public
- */
- function getBacktrace($frame = null)
- {
- if (defined('PEAR_IGNORE_BACKTRACE')) {
- return null;
- }
- if ($frame === null) {
- return $this->backtrace;
- }
- return $this->backtrace[$frame];
- }
-
- function addUserInfo($info)
- {
- if (empty($this->userinfo)) {
- $this->userinfo = $info;
- } else {
- $this->userinfo .= " ** $info";
- }
- }
-
- function __toString()
- {
- return $this->getMessage();
- }
-
- /**
- * Make a string representation of this object.
- *
- * @return string a string with an object summary
- * @access public
- */
- function toString()
- {
- $modes = array();
- $levels = array(E_USER_NOTICE => 'notice',
- E_USER_WARNING => 'warning',
- E_USER_ERROR => 'error');
- if ($this->mode & PEAR_ERROR_CALLBACK) {
- if (is_array($this->callback)) {
- $callback = (is_object($this->callback[0]) ?
- strtolower(get_class($this->callback[0])) :
- $this->callback[0]) . '::' .
- $this->callback[1];
- } else {
- $callback = $this->callback;
- }
- return sprintf('[%s: message="%s" code=%d mode=callback '.
- 'callback=%s prefix="%s" info="%s"]',
- strtolower(get_class($this)), $this->message, $this->code,
- $callback, $this->error_message_prefix,
- $this->userinfo);
- }
- if ($this->mode & PEAR_ERROR_PRINT) {
- $modes[] = 'print';
- }
- if ($this->mode & PEAR_ERROR_TRIGGER) {
- $modes[] = 'trigger';
- }
- if ($this->mode & PEAR_ERROR_DIE) {
- $modes[] = 'die';
- }
- if ($this->mode & PEAR_ERROR_RETURN) {
- $modes[] = 'return';
- }
- return sprintf('[%s: message="%s" code=%d mode=%s level=%s '.
- 'prefix="%s" info="%s"]',
- strtolower(get_class($this)), $this->message, $this->code,
- implode("|", $modes), $levels[$this->level],
- $this->error_message_prefix,
- $this->userinfo);
- }
-}
-
-/*
- * Local Variables:
- * mode: php
- * tab-width: 4
- * c-basic-offset: 4
- * End:
- */
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/PEAR/Exception.php b/wp-content/plugins/updraftplus/includes/PEAR/PEAR/Exception.php
deleted file mode 100644
index 21851905..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/PEAR/Exception.php
+++ /dev/null
@@ -1,389 +0,0 @@
-
- * @author Hans Lellelid
- * @author Bertrand Mansion
- * @author Greg Beaver
- * @copyright 1997-2009 The Authors
- * @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @link http://pear.php.net/package/PEAR
- * @since File available since Release 1.3.3
- */
-
-
-/**
- * Base PEAR_Exception Class
- *
- * 1) Features:
- *
- * - Nestable exceptions (throw new PEAR_Exception($msg, $prev_exception))
- * - Definable triggers, shot when exceptions occur
- * - Pretty and informative error messages
- * - Added more context info available (like class, method or cause)
- * - cause can be a PEAR_Exception or an array of mixed
- * PEAR_Exceptions/PEAR_ErrorStack warnings
- * - callbacks for specific exception classes and their children
- *
- * 2) Ideas:
- *
- * - Maybe a way to define a 'template' for the output
- *
- * 3) Inherited properties from PHP Exception Class:
- *
- * protected $message
- * protected $code
- * protected $line
- * protected $file
- * private $trace
- *
- * 4) Inherited methods from PHP Exception Class:
- *
- * __clone
- * __construct
- * getMessage
- * getCode
- * getFile
- * getLine
- * getTraceSafe
- * getTraceSafeAsString
- * __toString
- *
- * 5) Usage example
- *
- *
- * require_once 'PEAR/Exception.php';
- *
- * class Test {
- * function foo() {
- * throw new PEAR_Exception('Error Message', ERROR_CODE);
- * }
- * }
- *
- * function myLogger($pear_exception) {
- * echo $pear_exception->getMessage();
- * }
- * // each time a exception is thrown the 'myLogger' will be called
- * // (its use is completely optional)
- * PEAR_Exception::addObserver('myLogger');
- * $test = new Test;
- * try {
- * $test->foo();
- * } catch (PEAR_Exception $e) {
- * print $e;
- * }
- *
- *
- * @category pear
- * @package PEAR
- * @author Tomas V.V.Cox
- * @author Hans Lellelid
- * @author Bertrand Mansion
- * @author Greg Beaver
- * @copyright 1997-2009 The Authors
- * @license http://opensource.org/licenses/bsd-license.php New BSD License
- * @version Release: 1.10.1
- * @link http://pear.php.net/package/PEAR
- * @since Class available since Release 1.3.3
- *
- */
-class PEAR_Exception extends Exception
-{
- const OBSERVER_PRINT = -2;
- const OBSERVER_TRIGGER = -4;
- const OBSERVER_DIE = -8;
- protected $cause;
- private static $_observers = array();
- private static $_uniqueid = 0;
- private $_trace;
-
- /**
- * Supported signatures:
- * - PEAR_Exception(string $message);
- * - PEAR_Exception(string $message, int $code);
- * - PEAR_Exception(string $message, Exception $cause);
- * - PEAR_Exception(string $message, Exception $cause, int $code);
- * - PEAR_Exception(string $message, PEAR_Error $cause);
- * - PEAR_Exception(string $message, PEAR_Error $cause, int $code);
- * - PEAR_Exception(string $message, array $causes);
- * - PEAR_Exception(string $message, array $causes, int $code);
- * @param string exception message
- * @param int|Exception|PEAR_Error|array|null exception cause
- * @param int|null exception code or null
- * @throws PEAR_Exception if PEAR_Error class not exists or Exception not type of PEAR_Error
- */
- public function __construct($message, $p2 = null, $p3 = null)
- {
- if (is_int($p2)) {
- $code = $p2;
- $this->cause = null;
- } elseif (is_object($p2) || is_array($p2)) {
- // using is_object allows both Exception and PEAR_Error
- if (is_object($p2) && !($p2 instanceof Exception)) {
- if (!class_exists('PEAR_Error') || !($p2 instanceof PEAR_Error)) {
- throw new PEAR_Exception('exception cause must be Exception, ' .
- 'array, or PEAR_Error');
- }
- }
- $code = $p3;
- if (is_array($p2) && isset($p2['message'])) {
- // fix potential problem of passing in a single warning
- $p2 = array($p2);
- }
- $this->cause = $p2;
- } else {
- $code = null;
- $this->cause = null;
- }
- parent::__construct($message, $code);
- $this->signal();
- }
-
- /**
- * @param mixed $callback - A valid php callback, see php func is_callable()
- * - A PEAR_Exception::OBSERVER_* constant
- * - An array(const PEAR_Exception::OBSERVER_*,
- * mixed $options)
- * @param string $label The name of the observer. Use this if you want
- * to remove it later with removeObserver()
- */
- public static function addObserver($callback, $label = 'default')
- {
- self::$_observers[$label] = $callback;
- }
-
- public static function removeObserver($label = 'default')
- {
- unset(self::$_observers[$label]);
- }
-
- /**
- * @return int unique identifier for an observer
- */
- public static function getUniqueId()
- {
- return self::$_uniqueid++;
- }
-
- private function signal()
- {
- foreach (self::$_observers as $func) {
- if (is_callable($func)) {
- call_user_func($func, $this);
- continue;
- }
- settype($func, 'array');
- switch ($func[0]) {
- case self::OBSERVER_PRINT :
- $f = (isset($func[1])) ? $func[1] : '%s';
- printf($f, $this->getMessage());
- break;
- case self::OBSERVER_TRIGGER :
- $f = (isset($func[1])) ? $func[1] : E_USER_NOTICE;
- trigger_error($this->getMessage(), $f);
- break;
- case self::OBSERVER_DIE :
- $f = (isset($func[1])) ? $func[1] : '%s';
- die(printf($f, $this->getMessage()));
- break;
- default:
- trigger_error('invalid observer type', E_USER_WARNING);
- }
- }
- }
-
- /**
- * Return specific error information that can be used for more detailed
- * error messages or translation.
- *
- * This method may be overridden in child exception classes in order
- * to add functionality not present in PEAR_Exception and is a placeholder
- * to define API
- *
- * The returned array must be an associative array of parameter => value like so:
- *
- * array('name' => $name, 'context' => array(...))
- *
- * @return array
- */
- public function getErrorData()
- {
- return array();
- }
-
- /**
- * Returns the exception that caused this exception to be thrown
- * @access public
- * @return Exception|array The context of the exception
- */
- public function getCause()
- {
- return $this->cause;
- }
-
- /**
- * Function must be public to call on caused exceptions
- * @param array
- */
- public function getCauseMessage(&$causes)
- {
- $trace = $this->getTraceSafe();
- $cause = array('class' => get_class($this),
- 'message' => $this->message,
- 'file' => 'unknown',
- 'line' => 'unknown');
- if (isset($trace[0])) {
- if (isset($trace[0]['file'])) {
- $cause['file'] = $trace[0]['file'];
- $cause['line'] = $trace[0]['line'];
- }
- }
- $causes[] = $cause;
- if ($this->cause instanceof PEAR_Exception) {
- $this->cause->getCauseMessage($causes);
- } elseif ($this->cause instanceof Exception) {
- $causes[] = array('class' => get_class($this->cause),
- 'message' => $this->cause->getMessage(),
- 'file' => $this->cause->getFile(),
- 'line' => $this->cause->getLine());
- } elseif (class_exists('PEAR_Error') && $this->cause instanceof PEAR_Error) {
- $causes[] = array('class' => get_class($this->cause),
- 'message' => $this->cause->getMessage(),
- 'file' => 'unknown',
- 'line' => 'unknown');
- } elseif (is_array($this->cause)) {
- foreach ($this->cause as $cause) {
- if ($cause instanceof PEAR_Exception) {
- $cause->getCauseMessage($causes);
- } elseif ($cause instanceof Exception) {
- $causes[] = array('class' => get_class($cause),
- 'message' => $cause->getMessage(),
- 'file' => $cause->getFile(),
- 'line' => $cause->getLine());
- } elseif (class_exists('PEAR_Error') && $cause instanceof PEAR_Error) {
- $causes[] = array('class' => get_class($cause),
- 'message' => $cause->getMessage(),
- 'file' => 'unknown',
- 'line' => 'unknown');
- } elseif (is_array($cause) && isset($cause['message'])) {
- // PEAR_ErrorStack warning
- $causes[] = array(
- 'class' => $cause['package'],
- 'message' => $cause['message'],
- 'file' => isset($cause['context']['file']) ?
- $cause['context']['file'] :
- 'unknown',
- 'line' => isset($cause['context']['line']) ?
- $cause['context']['line'] :
- 'unknown',
- );
- }
- }
- }
- }
-
- public function getTraceSafe()
- {
- if (!isset($this->_trace)) {
- $this->_trace = $this->getTrace();
- if (empty($this->_trace)) {
- $backtrace = debug_backtrace();
- $this->_trace = array($backtrace[count($backtrace)-1]);
- }
- }
- return $this->_trace;
- }
-
- public function getErrorClass()
- {
- $trace = $this->getTraceSafe();
- return $trace[0]['class'];
- }
-
- public function getErrorMethod()
- {
- $trace = $this->getTraceSafe();
- return $trace[0]['function'];
- }
-
- public function __toString()
- {
- if (isset($_SERVER['REQUEST_URI'])) {
- return $this->toHtml();
- }
- return $this->toText();
- }
-
- public function toHtml()
- {
- $trace = $this->getTraceSafe();
- $causes = array();
- $this->getCauseMessage($causes);
- $html = '' . "\n";
- foreach ($causes as $i => $cause) {
- $html .= ''
- . str_repeat('-', $i) . ' ' . $cause['class'] . ' : '
- . htmlspecialchars($cause['message']) . ' in ' . $cause['file'] . ' '
- . 'on line ' . $cause['line'] . ' '
- . " \n";
- }
- $html .= 'Exception trace ' . "\n"
- . '# '
- . 'Function '
- . 'Location ' . "\n";
-
- foreach ($trace as $k => $v) {
- $html .= '' . $k . ' '
- . '';
- if (!empty($v['class'])) {
- $html .= $v['class'] . $v['type'];
- }
- $html .= $v['function'];
- $args = array();
- if (!empty($v['args'])) {
- foreach ($v['args'] as $arg) {
- if (is_null($arg)) $args[] = 'null';
- elseif (is_array($arg)) $args[] = 'Array';
- elseif (is_object($arg)) $args[] = 'Object('.get_class($arg).')';
- elseif (is_bool($arg)) $args[] = $arg ? 'true' : 'false';
- elseif (is_int($arg) || is_double($arg)) $args[] = $arg;
- else {
- $arg = (string)$arg;
- $str = htmlspecialchars(substr($arg, 0, 16));
- if (strlen($arg) > 16) $str .= '…';
- $args[] = "'" . $str . "'";
- }
- }
- }
- $html .= '(' . implode(', ',$args) . ')'
- . ' '
- . '' . (isset($v['file']) ? $v['file'] : 'unknown')
- . ':' . (isset($v['line']) ? $v['line'] : 'unknown')
- . ' ' . "\n";
- }
- $html .= '' . ($k+1) . ' '
- . '{main} '
- . ' ' . "\n"
- . '
';
- return $html;
- }
-
- public function toText()
- {
- $causes = array();
- $this->getCauseMessage($causes);
- $causeMsg = '';
- foreach ($causes as $i => $cause) {
- $causeMsg .= str_repeat(' ', $i) . $cause['class'] . ': '
- . $cause['message'] . ' in ' . $cause['file']
- . ' on line ' . $cause['line'] . "\n";
- }
- return $causeMsg . $this->getTraceAsString();
- }
-}
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/PEAR/PEAR5.php b/wp-content/plugins/updraftplus/includes/PEAR/PEAR5.php
deleted file mode 100644
index 42860678..00000000
--- a/wp-content/plugins/updraftplus/includes/PEAR/PEAR5.php
+++ /dev/null
@@ -1,33 +0,0 @@
-__signingKeyResource) {
+ if (false !== $this->__signingKeyResource && (!defined('PHP_MAJOR_VERSION') || PHP_MAJOR_VERSION < 8)) { // @phpcs:ignore PHPCompatibility.Constants.NewConstants.php_major_versionFound
openssl_free_key($this->__signingKeyResource);
}
}
@@ -323,9 +323,9 @@ public function setSignatureVersion($version = 'v2') {
*/
private function _triggerError($message, $file, $line, $code = 0) {
if ($this->useExceptions) {
- throw new UpdraftPlus_S3Exception($message, $file, $line, $code);
+ throw new UpdraftPlus_S3Exception($message, $file, $line, $code); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- The escaping should happen when the exception is caught and printed
} else {
- trigger_error($message, E_USER_WARNING);
+ trigger_error(esc_html($message), E_USER_WARNING);
}
}
@@ -1272,68 +1272,6 @@ public function getAuthenticatedURL($bucket, $uri, $lifetime, $hostBucket = fals
urlencode($this->__getHash("GET\n\n\n{$expires}\n/{$bucket}/{$uri}")));
}
- /**
- * Get upload POST parameters for form uploads
- *
- * @param string $bucket Bucket name
- * @param string $uriPrefix Object URI prefix
- * @param string $acl ACL constant
- * @param integer $lifetime Lifetime in seconds
- * @param integer $maxFileSize Maximum file size in bytes (default 5MB)
- * @param string $successRedirect Redirect URL or 200 / 201 status code
- * @param array $amzHeaders Array of x-amz-meta-* headers
- * @param array $headers Array of request headers or content type as a string
- * @param boolean $flashVars Includes additional "Filename" variable posted by Flash
- *
- * @return object
- */
- public function getHttpUploadPostParams($bucket, $uriPrefix = '', $acl = self::ACL_PRIVATE, $lifetime = 3600,
- $maxFileSize = 5242880, $successRedirect = "201", $amzHeaders = array(), $headers = array(), $flashVars = false) {
- // Create policy object
- $policy = new stdClass;
- $policy->expiration = gmdate('Y-m-d\TH:i:s\Z', (time() + $lifetime));
- $policy->conditions = array();
- $obj = new stdClass; $obj->bucket = $bucket; array_push($policy->conditions, $obj);
- $obj = new stdClass; $obj->acl = $acl; array_push($policy->conditions, $obj);
-
- $obj = new stdClass; // 200 for non-redirect uploads
- if (is_numeric($successRedirect) && in_array((int)$successRedirect, array(200, 201)))
- $obj->success_action_status = (string)$successRedirect;
- else // URL
- $obj->success_action_redirect = $successRedirect;
- array_push($policy->conditions, $obj);
-
- if (self::ACL_PUBLIC_READ !== $acl)
- array_push($policy->conditions, array('eq', '$acl', $acl));
-
- array_push($policy->conditions, array('starts-with', '$key', $uriPrefix));
- if ($flashVars) array_push($policy->conditions, array('starts-with', '$Filename', ''));
- foreach (array_keys($headers) as $headerKey)
- array_push($policy->conditions, array('starts-with', '$'.$headerKey, ''));
- foreach ($amzHeaders as $headerKey => $headerVal) {
- $obj = new stdClass;
- $obj->{$headerKey} = (string)$headerVal;
- array_push($policy->conditions, $obj);
- }
- array_push($policy->conditions, array('content-length-range', 0, $maxFileSize));
- $policy = base64_encode(str_replace('\/', '/', json_encode($policy)));
-
- // Create parameters
- $params = new stdClass;
- $params->AWSAccessKeyId = $this->__accessKey;
- $params->key = $uriPrefix.'${filename}';
- $params->acl = $acl;
- $params->policy = $policy; unset($policy);
- $params->signature = $this->__getHash($params->policy);
- if (is_numeric($successRedirect) && in_array((int)$successRedirect, array(200, 201)))
- $params->success_action_status = (string)$successRedirect;
- else
- $params->success_action_redirect = $successRedirect;
- foreach ($headers as $headerKey => $headerVal) $params->{$headerKey} = (string)$headerVal;
- foreach ($amzHeaders as $headerKey => $headerVal) $params->{$headerKey} = (string)$headerVal;
- return $params;
- }
-
/**
* Get MIME type for file
*
@@ -1451,10 +1389,11 @@ public function __getSignatureV4($aHeaders, $headers, $method = 'GET', $uri = ''
foreach ($aHeaders as $k => $v) {
$amzHeaders[strtolower($k)] = trim($v);
}
- uksort($amzHeaders, 'strcmp');
// payload
$payloadHash = isset($amzHeaders['x-amz-content-sha256']) ? $amzHeaders['x-amz-content-sha256'] : hash('sha256', $data);
+ if (!isset($amzHeaders['x-amz-content-sha256']) && (!defined('UPDRAFTPLUS_S3_EXCLUDE_SIGV4_CONTENT_SHA256_HEADER') || !UPDRAFTPLUS_S3_EXCLUDE_SIGV4_CONTENT_SHA256_HEADER)) $amzHeaders['x-amz-content-sha256'] = $payloadHash;
+ uksort($amzHeaders, 'strcmp');
// parameters
$parameters = array();
@@ -1471,7 +1410,13 @@ public function __getSignatureV4($aHeaders, $headers, $method = 'GET', $uri = ''
$amzRequests[] = $method;
$uriQmPos = strpos($uri, '?');
$amzRequests[] = (false === $uriQmPos ? $uri : substr($uri, 0, $uriQmPos));
- $amzRequests[] = http_build_query($parameters);
+ $built_queries = '';
+ foreach ($parameters as $query => $val) {
+ if (!empty($built_queries)) $built_queries .= '&';
+ $built_queries .= "$query=".rawurlencode($val);
+ }
+ $amzRequests[] = $built_queries;
+
// add headers as string to requests
foreach ($amzHeaders as $k => $v) {
@@ -1618,7 +1563,7 @@ abstract class UpdraftPlus_AWSRequest {
);
public $fp = false, $size = 0, $data = false, $response;
- private $s3;
+ protected $s3;
/**
* Set request parameter
@@ -1901,6 +1846,8 @@ public function getResponse() {
);
} else {
// Use V4
+ if (isset($this->headers['Content-MD5']) && '' == $this->headers['Content-MD5']) unset($this->headers['Content-MD5']); // content-md5 is part of v2 signature, but it may be presented in the HTTP headers whilst doing PUT requests, we've seen this happening on Amazon S3 storage when testing credentials, but it shouldn't be added to v4's SignedHeaders if it's empty so we unset it
+ if (isset($this->headers['Content-Type']) && '' == $this->headers['Content-Type']) unset($this->headers['Content-Type']); // content-type may get included in the HTTP headers, but if it's not presented then it shouldn't be added to SignedHeaders
$amzHeaders = $this->s3->__getSignatureV4(
$this->amzHeaders,
$this->headers,
@@ -1964,6 +1911,24 @@ public function getResponse() {
@curl_close($curl);
+ if (false !== $this->response->error && preg_match('/\.amazonaws\.com$/i', $this->endpoint) && 'PUT' === $this->verb) {
+ $curl = curl_init();
+ curl_setopt($curl, CURLOPT_URL, 'https://tls12.browserleaks.com/');
+ curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
+ curl_setopt($curl, CURLOPT_FAILONERROR, true);
+ curl_setopt($curl, CURLOPT_HEADER, false);
+ curl_setopt($curl, CURLOPT_TIMEOUT, 10);
+ curl_setopt($curl, CURLOPT_VERBOSE, true);
+ $response = curl_exec($curl);
+ $info = curl_getinfo($curl);
+ curl_close($curl);
+
+ if (200 === $info['http_code'] && 'TLS 1.2' !== $response) {
+ $updraftplus->log('Connecting to Amazon S3 failed. Your PHP installation failed a TLS v1.2 connection test, which is the minimum version required by Amazon. Please ask your webserver support how to upgrade your PHP and cURL library versions to use non-obsolete TLS versions.');
+ $updraftplus->log(__('Connecting to Amazon S3 failed.', 'updraftplus').' '.__('Your PHP installation failed a TLS v1.2 connection test, which is the minimum version required by Amazon.', 'updraftplus').' '.__('Please ask your webserver support how to upgrade your PHP and cURL library versions to use non-obsolete TLS versions.', 'updraftplus'), 'warning');
+ }
+ }
+
// Parse body into XML
// The case in which there is not application/xml content-type header is to support a DreamObjects case seen, April 2018
if (false === $this->response->error && isset($this->response->body) && ((isset($this->response->headers['type']) && false !== strpos($this->response->headers['type'], 'application/xml')) || (!isset($this->response->headers['type']) && 0 === strpos($this->response->body, 'response->error['body_xml'] = $this->response->body->asXML();
- if (isset($this->response->body->Region)) $this->response->error['region'] = $this->response->body->Region;
+ if (isset($this->response->body->Region)) {
+ $this->response->error['region'] = $this->response->body->Region;
+ } elseif (false !== stripos($this->response->body->Code, 'AuthorizationHeaderMalformed') && !empty($this->response->body->Message) && preg_match("#the region '[^']+' is wrong; expecting '([^']+)'#i", $this->response->body->Message, $matches)) {
+ $this->response->error['region'] = $matches[1];
+ }
$this->response->error['message'] = isset($this->response->body->Message) ? $this->response->body->Message : '';
if (isset($this->response->body->Resource))
$this->response->error['resource'] = (string)$this->response->body->Resource;
diff --git a/wp-content/plugins/updraftplus/includes/S3compat.php b/wp-content/plugins/updraftplus/includes/S3compat.php
index 269647eb..31fe9cff 100644
--- a/wp-content/plugins/updraftplus/includes/S3compat.php
+++ b/wp-content/plugins/updraftplus/includes/S3compat.php
@@ -58,8 +58,11 @@ class UpdraftPlus_S3_Compat {
const ACL_AUTHENTICATED_READ = 'authenticated-read';
const STORAGE_CLASS_STANDARD = 'STANDARD';
+
+ // AWS S3 client
+ private $client;
- private $config = array('scheme' => 'https', 'service' => 's3');
+ private $config;
private $__access_key = null; // AWS Access key
@@ -82,9 +85,9 @@ class UpdraftPlus_S3_Compat {
public $use_ssl_validation = true;
- public $use_exceptions = false;
+ public $useExceptions = false;
- private $_server_side_encryption = null;
+ private $_serverSideEncryption = null;
// SSL CURL SSL options - only needed if you are experiencing problems with your OpenSSL configuration
public $ssl_key = null;
@@ -132,13 +135,13 @@ public function __construct($access_key = null, $secret_key = null, $use_ssl = t
// AWS SDK V3 requires we specify a version. String 'latest' can be used but not recommended, a full list of versions for each API found here: https://docs.aws.amazon.com/aws-sdk-php/v3/api/index.html
// latest S3Client version as of 16/09/21 is version 2006-03-01
- $opts = array(
+ $this->config = array(
'credentials' => $credentials,
'version' => '2006-03-01',
'scheme' => ($use_ssl) ? 'https' : 'http',
'ua_append' => 'UpdraftPlus/'.$updraftplus->version,
// Using signature v4 requires a region (but see the note below)
- // 'signature' => 'v4',
+ // 'signature_version' => 'v4',
// 'region' => $this->region
// 'endpoint' => 'somethingorother.s3.amazonaws.com'
);
@@ -147,16 +150,16 @@ public function __construct($access_key = null, $secret_key = null, $use_ssl = t
// Can't specify signature v4, as that requires stating the region - which we don't necessarily yet know.
// Later comment: however, it looks to me like in current UD (Sep 2017), $endpoint is never used for Amazon S3/Vault, and there may be cases (e.g. DigitalOcean Spaces) where we might prefer v4 (DO support v2 too, currently) without knowing a region.
$this->endpoint = $endpoint;
- $opts['endpoint'] = $endpoint;
+ $this->config['endpoint'] = $endpoint;
} else {
// Using signature v4 requires a region. Also, some regions (EU Central 1, China) require signature v4 - and all support it, so we may as well use it if we can.
- $opts['signature'] = 'v4';
- $opts['region'] = $this->region;
+ $this->config['signature_version'] = 'v4';
+ $this->config['region'] = $this->region;
}
- if ($use_ssl) $opts['ssl.certificate_authority'] = $ssl_ca_cert;
+ if ($use_ssl) $this->config['http']['verify'] = $ssl_ca_cert;
- $this->client = new S3MultiRegionClient($opts);
+ $this->client = new S3MultiRegionClient($this->config);
}
/**
@@ -246,25 +249,14 @@ public function return_provider() {
public function setSSL($enabled, $validate = true) {
$this->use_ssl = $enabled;
$this->use_ssl_validation = $validate;
- // http://guzzle.readthedocs.org/en/latest/clients.html#verify
- if ($enabled) {
-
- // Do nothing - in UpdraftPlus, setSSLAuth will be called later, and we do the calls there
-// $verify_peer = ($validate) ? true : false;
-// $verify_host = ($validate) ? 2 : 0;
-//
-// $this->config['scheme'] = 'https';
-// $this->client->setConfig($this->config);
-//
-// $this->client->setSslVerification($validate, $verify_peer, $verify_host);
+ $scheme = ($enabled) ? 'https' : 'http';
-
- } else {
- $this->config['scheme'] = 'http';
-// $this->client->setConfig($this->config);
+ // The AWS SDK V3 client doesn't have the 'setConfig' method, so we must recreate the client instance to update the configs. However, we only do it when the '$config' variable is changed.
+ if ($this->config['scheme'] != $scheme) {
+ $this->config['scheme'] = $scheme;
+ $this->client = new S3MultiRegionClient($this->config);
}
- $this->client->setConfig($this->config);
}
public function getuseSSL() {
@@ -288,27 +280,21 @@ public function getUseSSLValidation() {
* @param string $ssl_ca_cert SSL CA cert (only required if you are having problems with your system CA cert)
* @return void
*/
- public function setSSLAuth($ssl_cert = null, $ssl_key = null, $ssl_ca_cert = null) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
+ public function setSSLAuth($ssl_cert = null, $ssl_key = null, $ssl_ca_cert = null) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Unused parameters are for future use.
if (!$this->use_ssl) return;
- if (!$this->use_ssl_validation) {
- $this->client->setSslVerification(false);
+ if (!$this->use_ssl_validation || !$ssl_ca_cert) {
+ $verify = false;
} else {
- if (!$ssl_ca_cert) {
- $client = $this->client;
- // "Static class properties and methods, as well as class constants, could not be accessed using a dynamic (variable) classname in PHP 5.2 or earlier." But the present file is not loaded in PHP 5.2.
- // @codingStandardsIgnoreLine
- $this->config[$client::SSL_CERT_AUTHORITY] = false;
- $this->client->setConfig($this->config);
- } else {
- $this->client->setSslVerification(realpath($ssl_ca_cert), true, 2);
- }
+ $verify = ('system' === $ssl_ca_cert) ? true : realpath($ssl_ca_cert);
}
-// $this->client->setSslVerification($ssl_ca_cert, $verify_peer, $verify_host);
-// $this->config['ssl.certificate_authority'] = $ssl_ca_cert;
-// $this->client->setConfig($this->config);
+ // The AWS SDK V3 client doesn't have the 'setConfig' method, so we must recreate the client instance to update the configs. However, we only do it when the '$config' variable is changed.
+ if ($this->config['http']['verify'] != $verify) {
+ $this->config['http']['verify'] = $verify;
+ $this->client = new S3MultiRegionClient($this->config);
+ }
}
/**
@@ -542,7 +528,7 @@ public function putBucket($bucket, $acl = self::ACL_PRIVATE, $location = false)
* @param constant $storage_class Storage class constant
* @return string | false
*/
- public function initiateMultipartUpload($bucket, $uri, $acl = self::ACL_PRIVATE, $meta_headers = array(), $request_headers = array(), $storage_class = self::STORAGE_CLASS_STANDARD) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
+ public function initiateMultipartUpload($bucket, $uri, $acl = self::ACL_PRIVATE, $meta_headers = array(), $request_headers = array(), $storage_class = self::STORAGE_CLASS_STANDARD) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Unused parameter is present because the caller from UpdraftPlus_BackupModule_s3 class uses 6 arguments.
$vars = array(
'ACL' => $acl,
'Bucket' => $bucket,
@@ -763,13 +749,13 @@ public function getObject($bucket, $uri, $save_to = false, $resume = false) {
$fp = $save_to;
if (!is_bool($resume)) $range_header = $resume;
} elseif (file_exists($save_to)) {
- if ($resume && ($fp = @fopen($save_to, 'ab')) !== false) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if ($resume && ($fp = @fopen($save_to, 'ab')) !== false) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
$range_header = "bytes=".filesize($save_to).'-';
} else {
throw new Exception('Unable to open save file for writing: '.$save_to);
}
} else {
- if (($fp = @fopen($save_to, 'wb')) !== false) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
+ if (($fp = @fopen($save_to, 'wb')) !== false) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function.
$range_header = false;
} else {
throw new Exception('Unable to open save file for writing: '.$save_to);
@@ -827,7 +813,7 @@ public function getBucketLocation($bucket) {
}
private function trigger_from_exception($e) {
- trigger_error($e->getMessage().' ('.get_class($e).') (line: '.$e->getLine().', file: '.$e->getFile().')', E_USER_WARNING);
+ trigger_error(esc_html($e->getMessage().' ('.get_class($e).') (line: '.$e->getLine().', file: '.$e->getFile().')'), E_USER_WARNING);
return false;
}
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/BlobRestProxy.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/BlobRestProxy.php
deleted file mode 100644
index ed425fb4..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/BlobRestProxy.php
+++ /dev/null
@@ -1,2461 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Models\ServiceProperties;
-use WindowsAzure\Common\Internal\ServiceRestProxy;
-use WindowsAzure\Blob\Internal\IBlob;
-use WindowsAzure\Blob\Models\BlobServiceOptions;
-use WindowsAzure\Common\Models\GetServicePropertiesResult;
-use WindowsAzure\Blob\Models\ListContainersOptions;
-use WindowsAzure\Blob\Models\ListContainersResult;
-use WindowsAzure\Blob\Models\CreateContainerOptions;
-use WindowsAzure\Blob\Models\GetContainerPropertiesResult;
-use WindowsAzure\Blob\Models\GetContainerACLResult;
-use WindowsAzure\Blob\Models\SetContainerMetadataOptions;
-use WindowsAzure\Blob\Models\DeleteContainerOptions;
-use WindowsAzure\Blob\Models\ListBlobsOptions;
-use WindowsAzure\Blob\Models\ListBlobsResult;
-use WindowsAzure\Blob\Models\BlobType;
-use WindowsAzure\Blob\Models\Block;
-use WindowsAzure\Blob\Models\CreateBlobOptions;
-use WindowsAzure\Blob\Models\BlobProperties;
-use WindowsAzure\Blob\Models\GetBlobPropertiesOptions;
-use WindowsAzure\Blob\Models\GetBlobPropertiesResult;
-use WindowsAzure\Blob\Models\SetBlobPropertiesOptions;
-use WindowsAzure\Blob\Models\SetBlobPropertiesResult;
-use WindowsAzure\Blob\Models\GetBlobMetadataOptions;
-use WindowsAzure\Blob\Models\GetBlobMetadataResult;
-use WindowsAzure\Blob\Models\SetBlobMetadataOptions;
-use WindowsAzure\Blob\Models\SetBlobMetadataResult;
-use WindowsAzure\Blob\Models\GetBlobOptions;
-use WindowsAzure\Blob\Models\GetBlobResult;
-use WindowsAzure\Blob\Models\DeleteBlobOptions;
-use WindowsAzure\Blob\Models\LeaseMode;
-use WindowsAzure\Blob\Models\AcquireLeaseOptions;
-use WindowsAzure\Blob\Models\AcquireLeaseResult;
-use WindowsAzure\Blob\Models\CreateBlobPagesOptions;
-use WindowsAzure\Blob\Models\CreateBlobPagesResult;
-use WindowsAzure\Blob\Models\PageWriteOption;
-use WindowsAzure\Blob\Models\ListPageBlobRangesOptions;
-use WindowsAzure\Blob\Models\ListPageBlobRangesResult;
-use WindowsAzure\Blob\Models\CreateBlobBlockOptions;
-use WindowsAzure\Blob\Models\CommitBlobBlocksOptions;
-use WindowsAzure\Blob\Models\BlockList;
-use WindowsAzure\Blob\Models\ListBlobBlocksOptions;
-use WindowsAzure\Blob\Models\ListBlobBlocksResult;
-use WindowsAzure\Blob\Models\CopyBlobOptions;
-use WindowsAzure\Blob\Models\CreateBlobSnapshotOptions;
-use WindowsAzure\Blob\Models\CreateBlobSnapshotResult;
-use WindowsAzure\Blob\Models\PageRange;
-use WindowsAzure\Blob\Models\CopyBlobResult;
-use WindowsAzure\Blob\Models\BreakLeaseResult;
-
-/**
- * This class constructs HTTP requests and receive HTTP responses for blob
- * service layer.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class BlobRestProxy extends ServiceRestProxy implements IBlob
-{
- /**
- * @var int Defaults to 32MB
- */
- private $_SingleBlobUploadThresholdInBytes = 33554432 ;
-
- /**
- * Get the value for SingleBlobUploadThresholdInBytes
- *
- * @return int
- */
- public function getSingleBlobUploadThresholdInBytes()
- {
- return $this->_SingleBlobUploadThresholdInBytes;
- }
-
- /**
- * Set the value for SingleBlobUploadThresholdInBytes, Max 64MB
- *
- * @param int $val The max size to send as a single blob block
- *
- * @return none
- */
- public function setSingleBlobUploadThresholdInBytes($val)
- {
- if ($val > 67108864) {
- // What should the proper action here be?
- $val = 67108864;
- } elseif ($val < 1) {
- // another spot that could use looking at
- $val = 33554432;
- }
- $this->_SingleBlobUploadThresholdInBytes = $val;
- }
-
- /**
- * Gets the copy blob source name with specified parameters.
- *
- * @param string $containerName The name of the container.
- * @param string $blobName The name of the blob.
- * @param Models\CopyBlobOptions $options The optional parameters.
- *
- * @return string
- */
- private function _getCopyBlobSourceName($containerName, $blobName, $options)
- {
- $sourceName = $this->_getBlobUrl($containerName, $blobName);
-
- if (!is_null($options->getSourceSnapshot())) {
- $sourceName .= '?snapshot=' . $options->getSourceSnapshot();
- }
-
- return $sourceName;
- }
-
- /**
- * Creates URI path for blob.
- *
- * @param string $container The container name.
- * @param string $blob The blob name.
- *
- * @return string
- */
- private function _createPath($container, $blob)
- {
- $encodedBlob = urlencode($blob);
- // Unencode the forward slashes to match what the server expects.
- $encodedBlob = str_replace('%2F', '/', $encodedBlob);
- // Unencode the backward slashes to match what the server expects.
- $encodedBlob = str_replace('%5C', '/', $encodedBlob);
- // Re-encode the spaces (encoded as space) to the % encoding.
- $encodedBlob = str_replace('+', '%20', $encodedBlob);
-
- // Empty container means accessing default container
- if (empty($container)) {
- return $encodedBlob;
- } else {
- return $container . '/' . $encodedBlob;
- }
- }
-
- /**
- * Creates full URI to the given blob.
- *
- * @param string $container The container name.
- * @param string $blob The blob name.
- *
- * @return string
- */
- private function _getBlobUrl($container, $blob)
- {
- $encodedBlob = urlencode($blob);
- // Unencode the forward slashes to match what the server expects.
- $encodedBlob = str_replace('%2F', '/', $encodedBlob);
- // Unencode the backward slashes to match what the server expects.
- $encodedBlob = str_replace('%5C', '/', $encodedBlob);
- // Re-encode the spaces (encoded as space) to the % encoding.
- $encodedBlob = str_replace('+', '%20', $encodedBlob);
-
- // Empty container means accessing default container
- if (empty($container)) {
- $encodedBlob = $encodedBlob;
- } else {
- $encodedBlob = $container . '/' . $encodedBlob;
- }
-
- return $this->getUri() . '/' . $encodedBlob;
- }
-
- /**
- * Creates GetBlobPropertiesResult from headers array.
- *
- * @param array $headers The HTTP response headers array.
- *
- * @return GetBlobPropertiesResult
- */
- private function _getBlobPropertiesResultFromResponse($headers)
- {
- $result = new GetBlobPropertiesResult();
- $properties = new BlobProperties();
- $d = $headers[Resources::LAST_MODIFIED];
- $bType = $headers[Resources::X_MS_BLOB_TYPE];
- $cLength = intval($headers[Resources::CONTENT_LENGTH]);
- $lStatus = Utilities::tryGetValue($headers, Resources::X_MS_LEASE_STATUS);
- $cType = Utilities::tryGetValue($headers, Resources::CONTENT_TYPE);
- $cMD5 = Utilities::tryGetValue($headers, Resources::CONTENT_MD5);
- $cEncoding = Utilities::tryGetValue($headers, Resources::CONTENT_ENCODING);
- $cLanguage = Utilities::tryGetValue($headers, Resources::CONTENT_LANGUAGE);
- $cControl = Utilities::tryGetValue($headers, Resources::CACHE_CONTROL);
- $etag = $headers[Resources::ETAG];
- $metadata = $this->getMetadataArray($headers);
-
- if (array_key_exists(Resources::X_MS_BLOB_SEQUENCE_NUMBER, $headers)) {
- $sNumber = intval($headers[Resources::X_MS_BLOB_SEQUENCE_NUMBER]);
- $properties->setSequenceNumber($sNumber);
- }
-
- $properties->setBlobType($bType);
- $properties->setCacheControl($cControl);
- $properties->setContentEncoding($cEncoding);
- $properties->setContentLanguage($cLanguage);
- $properties->setContentLength($cLength);
- $properties->setContentMD5($cMD5);
- $properties->setContentType($cType);
- $properties->setETag($etag);
- $properties->setLastModified(Utilities::rfc1123ToDateTime($d));
- $properties->setLeaseStatus($lStatus);
-
- $result->setProperties($properties);
- $result->setMetadata($metadata);
-
- return $result;
- }
-
- /**
- * Helper method for getContainerProperties and getContainerMetadata.
- *
- * @param string $container The container name.
- * @param Models\BlobServiceOptions $options The optional parameters.
- * @param string $operation The operation string. Should be
- * 'metadata' to get metadata.
- *
- * @return Models\GetContainerPropertiesResult
- */
- private function _getContainerPropertiesImpl($container, $options = null,
- $operation = null
- ) {
- Validate::isString($container, 'container');
-
- $method = Resources::HTTP_GET;
- $headers = array();
- $queryParams = array();
- $postParams = array();
- $path = $container;
- $statusCode = Resources::STATUS_OK;
-
- if (is_null($options)) {
- $options = new BlobServiceOptions();
- }
-
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_REST_TYPE,
- 'container'
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_COMP,
- $operation
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
-
- $result = new GetContainerPropertiesResult();
- $metadata = $this->getMetadataArray($response->getHeader());
- $date = $response->getHeader(Resources::LAST_MODIFIED);
- $date = Utilities::rfc1123ToDateTime($date);
- $result->setETag($response->getHeader(Resources::ETAG));
- $result->setMetadata($metadata);
- $result->setLastModified($date);
-
- return $result;
- }
-
- /**
- * Adds optional create blob headers.
- *
- * @param CreateBlobOptions $options The optional parameters.
- * @param array $headers The HTTP request headers.
- *
- * @return array
- */
- private function _addCreateBlobOptionalHeaders($options, $headers)
- {
- $contentType = $options->getContentType();
- $metadata = $options->getMetadata();
- $blobContentType = $options->getBlobContentType();
- $blobContentEncoding = $options->getBlobContentEncoding();
- $blobContentLanguage = $options->getBlobContentLanguage();
- $blobContentMD5 = $options->getBlobContentMD5();
- $blobCacheControl = $options->getBlobCacheControl();
- $leaseId = $options->getLeaseId();
-
- if (!is_null($contentType)) {
- $this->addOptionalHeader(
- $headers,
- Resources::CONTENT_TYPE,
- $options->getContentType()
- );
- } else {
- $this->addOptionalHeader(
- $headers,
- Resources::CONTENT_TYPE,
- Resources::BINARY_FILE_TYPE
- );
- }
- $headers = $this->addMetadataHeaders($headers, $metadata);
- $headers = $this->addOptionalAccessConditionHeader(
- $headers, $options->getAccessCondition()
- );
-
- $this->addOptionalHeader(
- $headers,
- Resources::CONTENT_ENCODING,
- $options->getContentEncoding()
- );
- $this->addOptionalHeader(
- $headers,
- Resources::CONTENT_LANGUAGE,
- $options->getContentLanguage()
- );
- $this->addOptionalHeader(
- $headers,
- Resources::CONTENT_MD5,
- $options->getContentMD5()
- );
- $this->addOptionalHeader(
- $headers,
- Resources::CACHE_CONTROL,
- $options->getCacheControl()
- );
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_LEASE_ID,
- $leaseId
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CONTENT_TYPE,
- $blobContentType
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CONTENT_ENCODING,
- $blobContentEncoding
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CONTENT_LANGUAGE,
- $blobContentLanguage
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CONTENT_MD5,
- $blobContentMD5
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CACHE_CONTROL,
- $blobCacheControl
- );
-
- return $headers;
- }
-
- /**
- * Adds Range header to the headers array.
- *
- * @param array $headers The HTTP request headers.
- * @param integer $start The start byte.
- * @param integer $end The end byte.
- *
- * @return array
- */
- private function _addOptionalRangeHeader($headers, $start, $end)
- {
- if (!is_null($start) || !is_null($end)) {
- $range = $start . '-' . $end;
- $rangeValue = 'bytes=' . $range;
- $this->addOptionalHeader($headers, Resources::RANGE, $rangeValue);
- }
-
- return $headers;
- }
-
- /**
- * Does the actual work for leasing a blob.
- *
- * @param string $leaseAction The lease action string.
- * @param string $container The container name.
- * @param string $blob The blob to lease name.
- * @param string $leaseId The existing lease id.
- * @param BlobServiceOptions $options The optional parameters.
- * @param AccessCondition $accessCondition The access conditions.
- *
- * @return array
- */
- private function _putLeaseImpl($leaseAction, $container, $blob, $leaseId,
- $options, $accessCondition = null
- ) {
- Validate::isString($blob, 'blob');
- Validate::notNullOrEmpty($blob, 'blob');
- Validate::isString($container, 'container');
-
- $method = Resources::HTTP_PUT;
- $headers = array();
- $queryParams = array();
- $postParams = array();
- $path = $this->_createPath($container, $blob);
- $statusCode = Resources::EMPTY_STRING;
-
- switch ($leaseAction) {
- case LeaseMode::ACQUIRE_ACTION:
- $this->addOptionalHeader($headers, Resources::X_MS_LEASE_DURATION, -1);
- $statusCode = Resources::STATUS_CREATED;
- break;
- case LeaseMode::RENEW_ACTION:
- $statusCode = Resources::STATUS_OK;
- break;
- case LeaseMode::RELEASE_ACTION:
- $statusCode = Resources::STATUS_OK;
- break;
- case LeaseMode::BREAK_ACTION:
- $statusCode = Resources::STATUS_ACCEPTED;
- break;
- default:
- throw new \Exception(Resources::NOT_IMPLEMENTED_MSG);
- }
-
- if (!is_null($options)) {
- $options = new BlobServiceOptions();
- }
-
- $headers = $this->addOptionalAccessConditionHeader(
- $headers, $accessCondition
- );
-
- $this->addOptionalHeader($headers, Resources::X_MS_LEASE_ID, $leaseId);
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_LEASE_ACTION,
- $leaseAction
- );
- $this->addOptionalQueryParam($queryParams, Resources::QP_COMP, 'lease');
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
-
- return $response->getHeader();
- }
-
- /**
- * Does actual work for create and clear blob pages.
- *
- * @param string $action Either clear or create.
- * @param string $container The container name.
- * @param string $blob The blob name.
- * @param PageRange $range The page ranges.
- * @param string|resource $content The content stream.
- * @param CreateBlobPagesOptions $options The optional parameters.
- *
- * @return CreateBlobPagesResult
- */
- private function _updatePageBlobPagesImpl($action, $container, $blob, $range,
- $content, $options = null
- ) {
- Validate::isString($blob, 'blob');
- Validate::notNullOrEmpty($blob, 'blob');
- Validate::isString($container, 'container');
- Validate::isTrue(
- $range instanceof PageRange,
- sprintf(
- Resources::INVALID_PARAM_MSG,
- 'range',
- get_class(new PageRange())
- )
- );
- Validate::isTrue(
- is_string($content) || is_resource($content),
- sprintf(Resources::INVALID_PARAM_MSG, 'content', 'string|resource')
- );
-
- $method = Resources::HTTP_PUT;
- $headers = array();
- $queryParams = array();
- $postParams = array();
- $path = $this->_createPath($container, $blob);
- $statusCode = Resources::STATUS_CREATED;
- // If read file failed for any reason it will throw an exception.
- $body = is_resource($content) ? stream_get_contents($content) : $content;
-
- if (is_null($options)) {
- $options = new CreateBlobPagesOptions();
- }
-
- $headers = $this->_addOptionalRangeHeader(
- $headers, $range->getStart(), $range->getEnd()
- );
-
- $headers = $this->addOptionalAccessConditionHeader(
- $headers, $options->getAccessCondition()
- );
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_LEASE_ID,
- $options->getLeaseId()
- );
- $this->addOptionalHeader(
- $headers,
- Resources::CONTENT_MD5,
- $options->getContentMD5()
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_PAGE_WRITE,
- $action
- );
- $this->addOptionalHeader(
- $headers,
- Resources::CONTENT_TYPE,
- Resources::URL_ENCODED_CONTENT_TYPE
- );
- $this->addOptionalQueryParam($queryParams, Resources::QP_COMP, 'page');
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode,
- $body
- );
-
- return CreateBlobPagesResult::create($response->getHeader());
- }
-
- /**
- * Gets the properties of the Blob service.
- *
- * @param Models\BlobServiceOptions $options The optional parameters.
- *
- * @return WindowsAzure\Common\Models\GetServicePropertiesResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/hh452239.aspx
- */
- public function getServiceProperties($options = null)
- {
- $method = Resources::HTTP_GET;
- $headers = array();
- $queryParams = array();
- $postParams = array();
- $path = Resources::EMPTY_STRING;
- $statusCode = Resources::STATUS_OK;
-
- if (is_null($options)) {
- $options = new BlobServiceOptions();
- }
-
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_REST_TYPE,
- 'service'
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_COMP,
- 'properties'
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
- $parsed = $this->dataSerializer->unserialize($response->getBody());
-
- return GetServicePropertiesResult::create($parsed);
- }
-
- /**
- * Sets the properties of the Blob service.
- *
- * It's recommended to use getServiceProperties, alter the returned object and
- * then use setServiceProperties with this altered object.
- *
- * @param ServiceProperties $serviceProperties The service properties.
- * @param Models\BlobServiceOptions $options The optional parameters.
- *
- * @return none
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/hh452235.aspx
- */
- public function setServiceProperties($serviceProperties, $options = null)
- {
- Validate::isTrue(
- $serviceProperties instanceof ServiceProperties,
- Resources::INVALID_SVC_PROP_MSG
- );
-
- $method = Resources::HTTP_PUT;
- $headers = array();
- $queryParams = array();
- $postParams = array();
- $statusCode = Resources::STATUS_ACCEPTED;
- $path = Resources::EMPTY_STRING;
- $body = $serviceProperties->toXml($this->dataSerializer);
-
- if (is_null($options)) {
- $options = new BlobServiceOptions();
- }
-
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_REST_TYPE,
- 'service'
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_COMP,
- 'properties'
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
- $this->addOptionalHeader(
- $headers,
- Resources::CONTENT_TYPE,
- Resources::URL_ENCODED_CONTENT_TYPE
- );
-
- $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode,
- $body
- );
- }
-
- /**
- * Lists all of the containers in the given storage account.
- *
- * @param Models\ListContainersOptions $options The optional parameters.
- *
- * @return WindowsAzure\Blob\Models\ListContainersResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179352.aspx
- */
- public function listContainers($options = null)
- {
- $method = Resources::HTTP_GET;
- $headers = array();
- $queryParams = array();
- $postParams = array();
- $path = Resources::EMPTY_STRING;
- $statusCode = Resources::STATUS_OK;
-
- if (is_null($options)) {
- $options = new ListContainersOptions();
- }
-
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_COMP,
- 'list'
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_PREFIX,
- $options->getPrefix()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_MARKER,
- $options->getMarker()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_MAX_RESULTS,
- $options->getMaxResults()
- );
- $isInclude = $options->getIncludeMetadata();
- $isInclude = $isInclude ? 'metadata' : null;
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_INCLUDE,
- $isInclude
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
-
- $parsed = $this->dataSerializer->unserialize($response->getBody());
-
- return ListContainersResult::create($parsed);
- }
-
- /**
- * Creates a new container in the given storage account.
- *
- * @param string $container The container name.
- * @param Models\CreateContainerOptions $options The optional parameters.
- *
- * @return none
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179468.aspx
- */
- public function createContainer($container, $options = null)
- {
- Validate::isString($container, 'container');
- Validate::notNullOrEmpty($container, 'container');
-
- $method = Resources::HTTP_PUT;
- $headers = array();
- $postParams = array();
- $queryParams = array(Resources::QP_REST_TYPE => 'container');
- $path = $container;
- $statusCode = Resources::STATUS_CREATED;
-
- if (is_null($options)) {
- $options = new CreateContainerOptions();
- }
-
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
-
- $metadata = $options->getMetadata();
- $headers = $this->generateMetadataHeaders($metadata);
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_PUBLIC_ACCESS,
- $options->getPublicAccess()
- );
-
- $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
- }
-
- /**
- * Creates a new container in the given storage account.
- *
- * @param string $container The container name.
- * @param Models\DeleteContainerOptions $options The optional parameters.
- *
- * @return none
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179408.aspx
- */
- public function deleteContainer($container, $options = null)
- {
- Validate::isString($container, 'container');
- Validate::notNullOrEmpty($container, 'container');
-
- $method = Resources::HTTP_DELETE;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $path = $container;
- $statusCode = Resources::STATUS_ACCEPTED;
-
- if (is_null($options)) {
- $options = new DeleteContainerOptions();
- }
-
- $headers = $this->addOptionalAccessConditionHeader(
- $headers, $options->getAccessCondition()
- );
-
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_REST_TYPE,
- 'container'
- );
-
- $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
- }
-
- /**
- * Returns all properties and metadata on the container.
- *
- * @param string $container name
- * @param Models\BlobServiceOptions $options optional parameters
- *
- * @return Models\GetContainerPropertiesResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179370.aspx
- */
- public function getContainerProperties($container, $options = null)
- {
- return $this->_getContainerPropertiesImpl($container, $options);
- }
-
- /**
- * Returns only user-defined metadata for the specified container.
- *
- * @param string $container name
- * @param Models\BlobServiceOptions $options optional parameters
- *
- * @return Models\GetContainerPropertiesResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691976.aspx
- */
- public function getContainerMetadata($container, $options = null)
- {
- return $this->_getContainerPropertiesImpl($container, $options, 'metadata');
- }
-
- /**
- * Gets the access control list (ACL) and any container-level access policies
- * for the container.
- *
- * @param string $container The container name.
- * @param Models\BlobServiceOptions $options The optional parameters.
- *
- * @return Models\GetContainerAclResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179469.aspx
- */
- public function getContainerAcl($container, $options = null)
- {
- Validate::isString($container, 'container');
-
- $method = Resources::HTTP_GET;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $path = $container;
- $statusCode = Resources::STATUS_OK;
-
- if (is_null($options)) {
- $options = new BlobServiceOptions();
- }
-
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_REST_TYPE,
- 'container'
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_COMP,
- 'acl'
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
-
- $access = $response->getHeader(Resources::X_MS_BLOB_PUBLIC_ACCESS);
- $etag = $response->getHeader(Resources::ETAG);
- $modified = $response->getHeader(Resources::LAST_MODIFIED);
- $modifiedDate = Utilities::convertToDateTime($modified);
- $parsed = $this->dataSerializer->unserialize($response->getBody());
-
- return GetContainerAclResult::create($access, $etag, $modifiedDate, $parsed);
- }
-
- /**
- * Sets the ACL and any container-level access policies for the container.
- *
- * @param string $container name
- * @param Models\ContainerAcl $acl access control list for container
- * @param Models\BlobServiceOptions $options optional parameters
- *
- * @return none
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179391.aspx
- */
- public function setContainerAcl($container, $acl, $options = null)
- {
- Validate::isString($container, 'container');
- Validate::notNullOrEmpty($acl, 'acl');
-
- $method = Resources::HTTP_PUT;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $path = $container;
- $statusCode = Resources::STATUS_OK;
- $body = $acl->toXml($this->dataSerializer);
-
- if (is_null($options)) {
- $options = new BlobServiceOptions();
- }
-
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_REST_TYPE,
- 'container'
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_COMP,
- 'acl'
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_PUBLIC_ACCESS,
- $acl->getPublicAccess()
- );
- $this->addOptionalHeader(
- $headers,
- Resources::CONTENT_TYPE,
- Resources::URL_ENCODED_CONTENT_TYPE
- );
-
- $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode,
- $body
- );
- }
-
- /**
- * Sets metadata headers on the container.
- *
- * @param string $container name
- * @param array $metadata metadata key/value pair.
- * @param Models\SetContainerMetadataOptions $options optional parameters
- *
- * @return none
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179362.aspx
- */
- public function setContainerMetadata($container, $metadata, $options = null)
- {
- Validate::isString($container, 'container');
- $this->validateMetadata($metadata);
-
- $method = Resources::HTTP_PUT;
- $headers = $this->generateMetadataHeaders($metadata);
- $postParams = array();
- $queryParams = array();
- $path = $container;
- $statusCode = Resources::STATUS_OK;
-
- if (is_null($options)) {
- $options = new SetContainerMetadataOptions();
- }
-
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_REST_TYPE,
- 'container'
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_COMP,
- 'metadata'
- );
-
- $headers = $this->addOptionalAccessConditionHeader(
- $headers,
- $options->getAccessCondition()
- );
-
- $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
- }
-
- /**
- * Lists all of the blobs in the given container.
- *
- * @param string $container The container name.
- * @param Models\ListBlobsOptions $options The optional parameters.
- *
- * @return Models\ListBlobsResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd135734.aspx
- */
- public function listBlobs($container, $options = null)
- {
- Validate::isString($container, 'container');
-
- $method = Resources::HTTP_GET;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $path = $container;
- $statusCode = Resources::STATUS_OK;
-
- if (is_null($options)) {
- $options = new ListBlobsOptions();
- }
-
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_REST_TYPE,
- 'container'
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_COMP,
- 'list'
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_PREFIX,
- str_replace('\\', '/', $options->getPrefix())
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_MARKER,
- $options->getMarker()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_DELIMITER,
- $options->getDelimiter()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_MAX_RESULTS,
- $options->getMaxResults()
- );
-
- $includeMetadata = $options->getIncludeMetadata();
- $includeSnapshots = $options->getIncludeSnapshots();
- $includeUncommittedBlobs = $options->getIncludeUncommittedBlobs();
-
- $includeValue = $this->groupQueryValues(
- array(
- $includeMetadata ? 'metadata' : null,
- $includeSnapshots ? 'snapshots' : null,
- $includeUncommittedBlobs ? 'uncommittedblobs' : null
- )
- );
-
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_INCLUDE,
- $includeValue
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
-
- $parsed = $this->dataSerializer->unserialize($response->getBody());
-
- return ListBlobsResult::create($parsed);
- }
-
- /**
- * Creates a new page blob. Note that calling createPageBlob to create a page
- * blob only initializes the blob.
- * To add content to a page blob, call createBlobPages method.
- *
- * @param string $container The container name.
- * @param string $blob The blob name.
- * @param integer $length Specifies the maximum size for the
- * page blob, up to 1 TB. The page blob size must be aligned to a 512-byte
- * boundary.
- * @param Models\CreateBlobOptions $options The optional parameters.
- *
- * @return CopyBlobResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179451.aspx
- */
- public function createPageBlob($container, $blob, $length, $options = null)
- {
- Validate::isString($container, 'container');
- Validate::isString($blob, 'blob');
- Validate::notNullOrEmpty($blob, 'blob');
- Validate::isInteger($length, 'length');
- Validate::notNull($length, 'length');
-
- $method = Resources::HTTP_PUT;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $path = $this->_createPath($container, $blob);
- $statusCode = Resources::STATUS_CREATED;
-
- if (is_null($options)) {
- $options = new CreateBlobOptions();
- }
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_TYPE,
- BlobType::PAGE_BLOB
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CONTENT_LENGTH,
- $length
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_SEQUENCE_NUMBER,
- $options->getSequenceNumber()
- );
- $headers = $this->_addCreateBlobOptionalHeaders($options, $headers);
-
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
-
- return CopyBlobResult::create($response->getHeader());
- }
-
- /**
- * Creates a new block blob or updates the content of an existing block blob.
- *
- * Updating an existing block blob overwrites any existing metadata on the blob.
- * Partial updates are not supported with createBlockBlob the content of the
- * existing blob is overwritten with the content of the new blob. To perform a
- * partial update of the content o f a block blob, use the createBlockList
- * method.
- * Note that the default content type is application/octet-stream.
- *
- * @param string $container The name of the container.
- * @param string $blob The name of the blob.
- * @param string|resource $content The content of the blob.
- * @param Models\CreateBlobOptions $options The optional parameters.
- *
- * @return CopyBlobResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179451.aspx
- */
- public function createBlockBlob($container, $blob, $content, $options = null)
- {
- Validate::isString($container, 'container');
- Validate::isString($blob, 'blob');
- Validate::notNullOrEmpty($blob, 'blob');
- Validate::isTrue(
- is_string($content) || is_resource($content),
- sprintf(Resources::INVALID_PARAM_MSG, 'content', 'string|resource')
- );
-
- $method = Resources::HTTP_PUT;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $bodySize = false;
- $path = $this->_createPath($container, $blob);
- $statusCode = Resources::STATUS_CREATED;
-
- if (is_null($options)) {
- $options = new CreateBlobOptions();
- }
-
- if (is_resource($content)) {
- $cStat = fstat($content);
- // if the resource is a remote file, $cStat will be false
- if ($cStat) {
- $bodySize = $cStat['size'];
- }
- } else {
- $bodySize = strlen($content);
- }
-
- // if we have a size we can try to one shot this, else failsafe on block upload
- if (is_int($bodySize) && $bodySize <= $this->_SingleBlobUploadThresholdInBytes) {
- $headers = $this->_addCreateBlobOptionalHeaders($options, $headers);
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_TYPE,
- BlobType::BLOCK_BLOB
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
-
- // If read file failed for any reason it will throw an exception.
- $body = is_resource($content) ? stream_get_contents($content) : $content;
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode,
- $body
- );
- } else {
- // This is for large or failsafe upload
- $end = 0;
- $counter = 0;
- $body = '';
- $blockIds = array();
- // if threshold is lower than 4mb, honor threshold, else use 4mb
- $blockSize = ($this->_SingleBlobUploadThresholdInBytes < 4194304) ? $this->_SingleBlobUploadThresholdInBytes : 4194304;
- while(!$end) {
- if (is_resource($content)) {
- $body = fread($content, $blockSize);
- if (feof($content)) {
- $end = 1;
- }
- } else {
- if (strlen($content) <= $blockSize) {
- $body = $content;
- $end = 1;
- } else {
- $body = substr($content, 0, $blockSize);
- $content = substr_replace($content, '', 0, $blockSize);
- }
- }
- $block = new Block();
- $block->setBlockId(base64_encode(str_pad($counter++, '0', 6)));
- $block->setType('Uncommitted');
- array_push($blockIds, $block);
- $this->createBlobBlock($container, $blob, $block->getBlockId(), $body);
- }
- $response = $this->commitBlobBlocks($container, $blob, $blockIds, $options);
- }
- return CopyBlobResult::create($response->getHeader());
- }
-
- /**
- * Clears a range of pages from the blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\PageRange $range Can be up to the value of the
- * blob's full size. Note that ranges must be aligned to 512 (0-511, 512-1023)
- * @param Models\CreateBlobPagesOptions $options optional parameters
- *
- * @return Models\CreateBlobPagesResult.
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691975.aspx
- */
- public function clearBlobPages($container, $blob, $range, $options = null)
- {
- return $this->_updatePageBlobPagesImpl(
- PageWriteOption::CLEAR_OPTION,
- $container,
- $blob,
- $range,
- Resources::EMPTY_STRING,
- $options
- );
- }
-
- /**
- * Creates a range of pages to a page blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\PageRange $range Can be up to 4 MB in size
- * Note that ranges must be aligned to 512 (0-511, 512-1023)
- * @param string $content the blob contents.
- * @param Models\CreateBlobPagesOptions $options optional parameters
- *
- * @return Models\CreateBlobPagesResult.
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691975.aspx
- */
- public function createBlobPages($container, $blob, $range, $content,
- $options = null
- ) {
- return $this->_updatePageBlobPagesImpl(
- PageWriteOption::UPDATE_OPTION,
- $container,
- $blob,
- $range,
- $content,
- $options
- );
- }
-
- /**
- * Creates a new block to be committed as part of a block blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param string $blockId must be less than or equal to
- * 64 bytes in size. For a given blob, the length of the value specified for the
- * blockid parameter must be the same size for each block.
- * @param string $content the blob block contents
- * @param Models\CreateBlobBlockOptions $options optional parameters
- *
- * @return none
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd135726.aspx
- */
- public function createBlobBlock($container, $blob, $blockId, $content,
- $options = null
- ) {
- Validate::isString($container, 'container');
- Validate::isString($blob, 'blob');
- Validate::notNullOrEmpty($blob, 'blob');
- Validate::isString($blockId, 'blockId');
- Validate::notNullOrEmpty($blockId, 'blockId');
- Validate::isTrue(
- is_string($content) || is_resource($content),
- sprintf(Resources::INVALID_PARAM_MSG, 'content', 'string|resource')
- );
-
- $method = Resources::HTTP_PUT;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $path = $this->_createPath($container, $blob);
- $statusCode = Resources::STATUS_CREATED;
- $body = $content;
-
- if (is_null($options)) {
- $options = new CreateBlobBlockOptions();
- }
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_LEASE_ID,
- $options->getLeaseId()
- );
- $this->addOptionalHeader(
- $headers,
- Resources::CONTENT_MD5,
- $options->getContentMD5()
- );
- $this->addOptionalHeader(
- $headers,
- Resources::CONTENT_TYPE,
- Resources::URL_ENCODED_CONTENT_TYPE
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_COMP,
- 'block'
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_BLOCKID,
- base64_encode($blockId)
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode,
- $body
- );
-
- return CopyBlobResult::create($response->getHeader());
- }
-
- /**
- * This method writes a blob by specifying the list of block IDs that make up the
- * blob. In order to be written as part of a blob, a block must have been
- * successfully written to the server in a prior createBlobBlock method.
- *
- * You can call Put Block List to update a blob by uploading only those blocks
- * that have changed, then committing the new and existing blocks together.
- * You can do this by specifying whether to commit a block from the committed
- * block list or from the uncommitted block list, or to commit the most recently
- * uploaded version of the block, whichever list it may belong to.
- *
- * @param string $container The container name.
- * @param string $blob The blob name.
- * @param Models\BlockList|array $blockList The block entries.
- * @param Models\CommitBlobBlocksOptions $options The optional parameters.
- *
- * @return CopyBlobResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179467.aspx
- */
- public function commitBlobBlocks($container, $blob, $blockList, $options = null)
- {
- Validate::isString($container, 'container');
- Validate::isString($blob, 'blob');
- Validate::notNullOrEmpty($blob, 'blob');
- Validate::isTrue(
- $blockList instanceof BlockList || is_array($blockList),
- sprintf(
- Resources::INVALID_PARAM_MSG,
- 'blockList',
- get_class(new BlockList())
- )
- );
-
- $method = Resources::HTTP_PUT;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $path = $this->_createPath($container, $blob);
- $statusCode = Resources::STATUS_CREATED;
- $isArray = is_array($blockList);
- $blockList = $isArray ? BlockList::create($blockList) : $blockList;
- $body = $blockList->toXml($this->dataSerializer);
-
- if (is_null($options)) {
- $options = new CommitBlobBlocksOptions();
- }
-
- $blobContentType = $options->getBlobContentType();
- $blobContentEncoding = $options->getBlobContentEncoding();
- $blobContentLanguage = $options->getBlobContentLanguage();
- $blobContentMD5 = $options->getBlobContentMD5();
- $blobCacheControl = $options->getBlobCacheControl();
- $leaseId = $options->getLeaseId();
- $contentType = Resources::URL_ENCODED_CONTENT_TYPE;
-
- $metadata = $options->getMetadata();
- $headers = $this->generateMetadataHeaders($metadata);
- $headers = $this->addOptionalAccessConditionHeader(
- $headers, $options->getAccessCondition()
- );
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_LEASE_ID,
- $leaseId
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CACHE_CONTROL,
- $blobCacheControl
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CONTENT_TYPE,
- $blobContentType
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CONTENT_ENCODING,
- $blobContentEncoding
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CONTENT_LANGUAGE,
- $blobContentLanguage
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CONTENT_MD5,
- $blobContentMD5
- );
- $this->addOptionalHeader(
- $headers,
- Resources::CONTENT_TYPE,
- $contentType
- );
-
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_COMP,
- 'blocklist'
- );
-
- return $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode,
- $body
- );
- }
-
- /**
- * Retrieves the list of blocks that have been uploaded as part of a block blob.
- *
- * There are two block lists maintained for a blob:
- * 1) Committed Block List: The list of blocks that have been successfully
- * committed to a given blob with commitBlobBlocks.
- * 2) Uncommitted Block List: The list of blocks that have been uploaded for a
- * blob using Put Block (REST API), but that have not yet been committed.
- * These blocks are stored in Windows Azure in association with a blob, but do
- * not yet form part of the blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\ListBlobBlocksOptions $options optional parameters
- *
- * @return Models\ListBlobBlocksResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179400.aspx
- */
- public function listBlobBlocks($container, $blob, $options = null)
- {
- Validate::isString($container, 'container');
- Validate::isString($blob, 'blob');
- Validate::notNullOrEmpty($blob, 'blob');
-
- $method = Resources::HTTP_GET;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $path = $this->_createPath($container, $blob);
- $statusCode = Resources::STATUS_OK;
-
- if (is_null($options)) {
- $options = new ListBlobBlocksOptions();
- }
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_LEASE_ID,
- $options->getLeaseId()
- );
-
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_BLOCK_LIST_TYPE,
- $options->getBlockListType()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_SNAPSHOT,
- $options->getSnapshot()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_COMP,
- 'blocklist'
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
-
- $parsed = $this->dataSerializer->unserialize($response->getBody());
-
- return ListBlobBlocksResult::create($response->getHeader(), $parsed);
- }
-
- /**
- * Returns all properties and metadata on the blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\GetBlobPropertiesOptions $options optional parameters
- *
- * @return Models\GetBlobPropertiesResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179394.aspx
- */
- public function getBlobProperties($container, $blob, $options = null)
- {
- Validate::isString($container, 'container');
- Validate::isString($blob, 'blob');
- Validate::notNullOrEmpty($blob, 'blob');
-
- $method = Resources::HTTP_HEAD;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $path = $this->_createPath($container, $blob);
- $statusCode = Resources::STATUS_OK;
-
- if (is_null($options)) {
- $options = new GetBlobPropertiesOptions();
- }
-
- $headers = $this->addOptionalAccessConditionHeader(
- $headers, $options->getAccessCondition()
- );
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_LEASE_ID,
- $options->getLeaseId()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_SNAPSHOT,
- $options->getSnapshot()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
-
- return $this->_getBlobPropertiesResultFromResponse($response->getHeader());
- }
-
- /**
- * Returns all properties and metadata on the blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\GetBlobMetadataOptions $options optional parameters
- *
- * @return Models\GetBlobMetadataResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179350.aspx
- */
- public function getBlobMetadata($container, $blob, $options = null)
- {
- Validate::isString($container, 'container');
- Validate::isString($blob, 'blob');
- Validate::notNullOrEmpty($blob, 'blob');
-
- $method = Resources::HTTP_HEAD;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $path = $this->_createPath($container, $blob);
- $statusCode = Resources::STATUS_OK;
-
- if (is_null($options)) {
- $options = new GetBlobMetadataOptions();
- }
-
- $headers = $this->addOptionalAccessConditionHeader(
- $headers, $options->getAccessCondition()
- );
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_LEASE_ID,
- $options->getLeaseId()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_SNAPSHOT,
- $options->getSnapshot()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_COMP,
- 'metadata'
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
- $metadata = $this->getMetadataArray($response->getHeader());
-
- return GetBlobMetadataResult::create($response->getHeader(), $metadata);
- }
-
- /**
- * Returns a list of active page ranges for a page blob. Active page ranges are
- * those that have been populated with data.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\ListPageBlobRangesOptions $options optional parameters
- *
- * @return Models\ListPageBlobRangesResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691973.aspx
- */
- public function listPageBlobRanges($container, $blob, $options = null)
- {
- Validate::isString($container, 'container');
- Validate::isString($blob, 'blob');
- Validate::notNullOrEmpty($blob, 'blob');
-
- $method = Resources::HTTP_GET;
- $headers = array();
- $queryParams = array();
- $postParams = array();
- $path = $this->_createPath($container, $blob);
- $statusCode = Resources::STATUS_OK;
-
- if (is_null($options)) {
- $options = new ListPageBlobRangesOptions();
- }
-
- $headers = $this->addOptionalAccessConditionHeader(
- $headers, $options->getAccessCondition()
- );
-
- $headers = $this->_addOptionalRangeHeader(
- $headers, $options->getRangeStart(), $options->getRangeEnd()
- );
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_LEASE_ID,
- $options->getLeaseId()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_SNAPSHOT,
- $options->getSnapshot()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_COMP,
- 'pagelist'
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
- $parsed = $this->dataSerializer->unserialize($response->getBody());
-
- return ListPageBlobRangesResult::create($response->getHeader(), $parsed);
- }
-
- /**
- * Sets system properties defined for a blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\SetBlobPropertiesOptions $options optional parameters
- *
- * @return Models\SetBlobPropertiesResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691966.aspx
- */
- public function setBlobProperties($container, $blob, $options = null)
- {
- Validate::isString($container, 'container');
- Validate::isString($blob, 'blob');
- Validate::notNullOrEmpty($blob, 'blob');
-
- $method = Resources::HTTP_PUT;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $path = $this->_createPath($container, $blob);
- $statusCode = Resources::STATUS_OK;
-
- if (is_null($options)) {
- $options = new SetBlobPropertiesOptions();
- }
-
- $blobContentType = $options->getBlobContentType();
- $blobContentEncoding = $options->getBlobContentEncoding();
- $blobContentLanguage = $options->getBlobContentLanguage();
- $blobContentLength = $options->getBlobContentLength();
- $blobContentMD5 = $options->getBlobContentMD5();
- $blobCacheControl = $options->getBlobCacheControl();
- $leaseId = $options->getLeaseId();
- $sNumberAction = $options->getSequenceNumberAction();
- $sNumber = $options->getSequenceNumber();
-
- $headers = $this->addOptionalAccessConditionHeader(
- $headers, $options->getAccessCondition()
- );
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_LEASE_ID,
- $leaseId
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CACHE_CONTROL,
- $blobCacheControl
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CONTENT_TYPE,
- $blobContentType
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CONTENT_ENCODING,
- $blobContentEncoding
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CONTENT_LANGUAGE,
- $blobContentLanguage
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CONTENT_LENGTH,
- $blobContentLength
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_CONTENT_MD5,
- $blobContentMD5
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_SEQUENCE_NUMBER_ACTION,
- $sNumberAction
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_BLOB_SEQUENCE_NUMBER,
- $sNumber
- );
-
- $this->addOptionalQueryParam($queryParams, Resources::QP_COMP, 'properties');
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
-
- return SetBlobPropertiesResult::create($response->getHeader());
- }
-
- /**
- * Sets metadata headers on the blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param array $metadata key/value pair representation
- * @param Models\SetBlobMetadataOptions $options optional parameters
- *
- * @return Models\SetBlobMetadataResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179414.aspx
- */
- public function setBlobMetadata($container, $blob, $metadata, $options = null)
- {
- Validate::isString($container, 'container');
- Validate::isString($blob, 'blob');
- Validate::notNullOrEmpty($blob, 'blob');
- $this->validateMetadata($metadata);
-
- $method = Resources::HTTP_PUT;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $path = $this->_createPath($container, $blob);
- $statusCode = Resources::STATUS_OK;
-
- if (is_null($options)) {
- $options = new SetBlobMetadataOptions();
- }
-
- $headers = $this->addOptionalAccessConditionHeader(
- $headers, $options->getAccessCondition()
- );
- $headers = $this->addMetadataHeaders($headers, $metadata);
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_LEASE_ID,
- $options->getLeaseId()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_COMP,
- 'metadata'
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
-
- return SetBlobMetadataResult::create($response->getHeader());
- }
-
- /**
- * Reads or downloads a blob from the system, including its metadata and
- * properties.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\GetBlobOptions $options optional parameters
- *
- * @return Models\GetBlobResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179440.aspx
- */
- public function getBlob($container, $blob, $options = null)
- {
- Validate::isString($container, 'container');
- Validate::isString($blob, 'blob');
-
- $method = Resources::HTTP_GET;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $path = $this->_createPath($container, $blob);
- $statusCode = array(
- Resources::STATUS_OK,
- Resources::STATUS_PARTIAL_CONTENT
- );
-
- if (is_null($options)) {
- $options = new GetBlobOptions();
- }
-
- $getMD5 = $options->getComputeRangeMD5();
- $headers = $this->addOptionalAccessConditionHeader(
- $headers, $options->getAccessCondition()
- );
- $headers = $this->_addOptionalRangeHeader(
- $headers, $options->getRangeStart(), $options->getRangeEnd()
- );
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_LEASE_ID,
- $options->getLeaseId()
- );
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_RANGE_GET_CONTENT_MD5,
- $getMD5 ? 'true' : null
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_SNAPSHOT,
- $options->getSnapshot()
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
- $metadata = $this->getMetadataArray($response->getHeader());
-
- return GetBlobResult::create(
- $response->getHeader(),
- $response->getBody(),
- $metadata
- );
- }
-
- /**
- * Deletes a blob or blob snapshot.
- *
- * Note that if the snapshot entry is specified in the $options then only this
- * blob snapshot is deleted. To delete all blob snapshots, do not set Snapshot
- * and just set getDeleteSnaphotsOnly to true.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\DeleteBlobOptions $options optional parameters
- *
- * @return none
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179413.aspx
- */
- public function deleteBlob($container, $blob, $options = null)
- {
- Validate::isString($container, 'container');
- Validate::isString($blob, 'blob');
- Validate::notNullOrEmpty($blob, 'blob');
-
- $method = Resources::HTTP_DELETE;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $path = $this->_createPath($container, $blob);
- $statusCode = Resources::STATUS_ACCEPTED;
-
- if (is_null($options)) {
- $options = new DeleteBlobOptions();
- }
-
- if (is_null($options->getSnapshot())) {
- $delSnapshots = $options->getDeleteSnaphotsOnly() ? 'only' : 'include';
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_DELETE_SNAPSHOTS,
- $delSnapshots
- );
- } else {
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_SNAPSHOT,
- $options->getSnapshot()
- );
- }
-
- $headers = $this->addOptionalAccessConditionHeader(
- $headers, $options->getAccessCondition()
- );
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_LEASE_ID,
- $options->getLeaseId()
- );
-
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
-
- $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $statusCode
- );
- }
-
- /**
- * Creates a snapshot of a blob.
- *
- * @param string $container The name of the container.
- * @param string $blob The name of the blob.
- * @param Models\CreateBlobSnapshotOptions $options The optional parameters.
- *
- * @return Models\CreateBlobSnapshotResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691971.aspx
- */
- public function createBlobSnapshot($container, $blob, $options = null)
- {
- Validate::isString($container, 'container');
- Validate::isString($blob, 'blob');
- Validate::notNullOrEmpty($blob, 'blob');
-
- $method = Resources::HTTP_PUT;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $path = $this->_createPath($container, $blob);
- $expectedStatusCode = Resources::STATUS_CREATED;
-
- if (is_null($options)) {
- $options = new CreateBlobSnapshotOptions();
- }
-
- $queryParams[Resources::QP_COMP] = 'snapshot';
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
-
- $headers = $this->addOptionalAccessConditionHeader(
- $headers,
- $options->getAccessCondition()
- );
- $headers = $this->addMetadataHeaders($headers, $options->getMetadata());
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_LEASE_ID,
- $options->getLeaseId()
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $path,
- $expectedStatusCode
- );
-
- return CreateBlobSnapshotResult::create($response->getHeader());
- }
-
- /**
- * Copies a source blob to a destination blob within the same storage account.
- *
- * @param string $destinationContainer name of the destination
- * container
- * @param string $destinationBlob name of the destination
- * blob
- * @param string $sourceContainer name of the source
- * container
- * @param string $sourceBlob name of the source
- * blob
- * @param Models\CopyBlobOptions $options optional parameters
- *
- * @return CopyBlobResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd894037.aspx
- */
- public function copyBlob(
- $destinationContainer,
- $destinationBlob,
- $sourceContainer,
- $sourceBlob,
- $options = null
- ) {
-
- $method = Resources::HTTP_PUT;
- $headers = array();
- $postParams = array();
- $queryParams = array();
- $destinationBlobPath = $this->_createPath(
- $destinationContainer,
- $destinationBlob
- );
- $statusCode = Resources::STATUS_ACCEPTED;
-
- if (is_null($options)) {
- $options = new CopyBlobOptions();
- }
-
- $this->addOptionalQueryParam(
- $queryParams,
- Resources::QP_TIMEOUT,
- $options->getTimeout()
- );
-
- $sourceBlobPath = $this->_getCopyBlobSourceName(
- $sourceContainer,
- $sourceBlob,
- $options
- );
-
- $headers = $this->addOptionalAccessConditionHeader(
- $headers,
- $options->getAccessCondition()
- );
-
- $headers = $this->addOptionalSourceAccessConditionHeader(
- $headers,
- $options->getSourceAccessCondition()
- );
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_COPY_SOURCE,
- $sourceBlobPath
- );
-
- $headers = $this->addMetadataHeaders($headers, $options->getMetadata());
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_LEASE_ID,
- $options->getLeaseId()
- );
-
- $this->addOptionalHeader(
- $headers,
- Resources::X_MS_SOURCE_LEASE_ID,
- $options->getSourceLeaseId()
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParams,
- $destinationBlobPath,
- $statusCode
- );
-
- return CopyBlobResult::create($response->getHeader());
- }
-
- /**
- * Establishes an exclusive one-minute write lock on a blob. To write to a locked
- * blob, a client must provide a lease ID.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\AcquireLeaseOptions $options optional parameters
- *
- * @return Models\AcquireLeaseResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691972.aspx
- */
- public function acquireLease($container, $blob, $options = null)
- {
- $headers = $this->_putLeaseImpl(
- LeaseMode::ACQUIRE_ACTION,
- $container,
- $blob,
- null /* leaseId */,
- is_null($options) ? new AcquireLeaseOptions() : $options,
- is_null($options) ? null : $options->getAccessCondition()
- );
-
- return AcquireLeaseResult::create($headers);
- }
-
- /**
- * Renews an existing lease
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param string $leaseId lease id when acquiring
- * @param Models\BlobServiceOptions $options optional parameters
- *
- * @return Models\AcquireLeaseResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691972.aspx
- */
- public function renewLease($container, $blob, $leaseId, $options = null)
- {
- $headers = $this->_putLeaseImpl(
- LeaseMode::RENEW_ACTION,
- $container,
- $blob,
- $leaseId,
- is_null($options) ? new BlobServiceOptions() : $options
- );
-
- return AcquireLeaseResult::create($headers);
- }
-
- /**
- * Frees the lease if it is no longer needed so that another client may
- * immediately acquire a lease against the blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param string $leaseId lease id when acquiring
- * @param Models\BlobServiceOptions $options optional parameters
- *
- * @return none
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691972.aspx
- */
- public function releaseLease($container, $blob, $leaseId, $options = null)
- {
- $this->_putLeaseImpl(
- LeaseMode::RELEASE_ACTION,
- $container,
- $blob,
- $leaseId,
- is_null($options) ? new BlobServiceOptions() : $options
- );
- }
-
- /**
- * Ends the lease but ensure that another client cannot acquire a new lease until
- * the current lease period has expired.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\BlobServiceOptions $options optional parameters
- *
- * @return BreakLeaseResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691972.aspx
- */
- public function breakLease($container, $blob, $options = null)
- {
- $headers = $this->_putLeaseImpl(
- LeaseMode::BREAK_ACTION,
- $container,
- $blob,
- null,
- is_null($options) ? new BlobServiceOptions() : $options
- );
-
- return BreakLeaseResult::create($headers);
- }
-}
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Internal/IBlob.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Internal/IBlob.php
deleted file mode 100644
index c3be961e..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Internal/IBlob.php
+++ /dev/null
@@ -1,491 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Internal;
-use WindowsAzure\Common\Internal\FilterableService;
-
-/**
- * This interface has all REST APIs provided by Windows Azure for Blob service.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd135733.aspx
- */
-interface IBlob extends FilterableService
-{
- /**
- * Gets the properties of the Blob service.
- *
- * @param Models\BlobServiceOptions $options optional blob service options.
- *
- * @return WindowsAzure\Common\Models\GetServicePropertiesResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/hh452239.aspx
- */
- public function getServiceProperties($options = null);
-
- /**
- * Sets the properties of the Blob service.
- *
- * @param ServiceProperties $serviceProperties new service properties
- * @param Models\BlobServiceOptions $options optional parameters
- *
- * @return none.
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/hh452235.aspx
- */
- public function setServiceProperties($serviceProperties, $options = null);
-
- /**
- * Lists all of the containers in the given storage account.
- *
- * @param Models\ListContainersOptions $options optional parameters
- *
- * @return WindowsAzure\Blob\Models\ListContainersResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179352.aspx
- */
- public function listContainers($options = null);
-
- /**
- * Creates a new container in the given storage account.
- *
- * @param string $container name
- * @param Models\CreateContainerOptions $options optional parameters
- *
- * @return none.
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179468.aspx
- */
- public function createContainer($container, $options = null);
-
- /**
- * Creates a new container in the given storage account.
- *
- * @param string $container name
- * @param Models\DeleteContainerOptions $options optional parameters
- *
- * @return none.
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179408.aspx
- */
- public function deleteContainer($container, $options = null);
-
- /**
- * Returns all properties and metadata on the container.
- *
- * @param string $container name
- * @param Models\BlobServiceOptions $options optional parameters
- *
- * @return Models\GetContainerPropertiesResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179370.aspx
- */
- public function getContainerProperties($container, $options = null);
-
- /**
- * Returns only user-defined metadata for the specified container.
- *
- * @param string $container name
- * @param Models\BlobServiceOptions $options optional parameters
- *
- * @return Models\GetContainerPropertiesResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691976.aspx
- */
- public function getContainerMetadata($container, $options = null);
-
- /**
- * Gets the access control list (ACL) and any container-level access policies
- * for the container.
- *
- * @param string $container name
- * @param Models\BlobServiceOptions $options optional parameters
- *
- * @return Models\GetContainerAclResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179469.aspx
- */
- public function getContainerAcl($container, $options = null);
-
- /**
- * Sets the ACL and any container-level access policies for the container.
- *
- * @param string $container name
- * @param Models\ContainerAcl $acl access control list for container
- * @param Models\BlobServiceOptions $options optional parameters
- *
- * @return none.
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179391.aspx
- */
- public function setContainerAcl($container, $acl, $options = null);
-
- /**
- * Sets metadata headers on the container.
- *
- * @param string $container name
- * @param array $metadata metadata key/value pair.
- * @param Models\SetContainerMetadataOptions $options optional parameters
- *
- * @return none.
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179362.aspx
- */
- public function setContainerMetadata($container, $metadata, $options = null);
-
- /**
- * Lists all of the blobs in the given container.
- *
- * @param string $container name
- * @param Models\ListBlobsOptions $options optional parameters
- *
- * @return Models\ListBlobsResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd135734.aspx
- */
- public function listBlobs($container, $options = null);
-
- /**
- * Creates a new page blob. Note that calling createPageBlob to create a page
- * blob only initializes the blob.
- * To add content to a page blob, call createBlobPages method.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param int $length specifies the maximum size for the
- * page blob, up to 1 TB. The page blob size must be aligned to a 512-byte
- * boundary.
- * @param Models\CreateBlobOptions $options optional parameters
- *
- * @return CopyBlobResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179451.aspx
- */
- public function createPageBlob($container, $blob, $length, $options = null);
-
- /**
- * Creates a new block blob or updates the content of an existing block blob.
- * Updating an existing block blob overwrites any existing metadata on the blob.
- * Partial updates are not supported with createBlockBlob; the content of the
- * existing blob is overwritten with the content of the new blob. To perform a
- * partial update of the content of a block blob, use the createBlockList method.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param string $content content of the blob
- * @param Models\CreateBlobOptions $options optional parameters
- *
- * @return CopyBlobResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179451.aspx
- */
- public function createBlockBlob($container, $blob, $content, $options = null);
-
- /**
- * Clears a range of pages from the blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\PageRange $range Can be up to the value of the
- * blob's full size.
- * @param Models\CreateBlobPagesOptions $options optional parameters
- *
- * @return Models\CreateBlobPagesResult.
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691975.aspx
- */
- public function clearBlobPages($container, $blob, $range, $options = null);
-
- /**
- * Creates a range of pages to a page blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\PageRange $range Can be up to 4 MB in size
- * @param string $content the blob contents
- * @param Models\CreateBlobPagesOptions $options optional parameters
- *
- * @return Models\CreateBlobPagesResult.
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691975.aspx
- */
- public function createBlobPages($container, $blob, $range, $content,
- $options = null
- );
-
- /**
- * Creates a new block to be committed as part of a block blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param string $blockId must be less than or equal to
- * 64 bytes in size. For a given blob, the length of the value specified for the
- * blockid parameter must be the same size for each block.
- * @param string $content the blob block contents
- * @param Models\CreateBlobBlockOptions $options optional parameters
- *
- * @return none.
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd135726.aspx
- */
- public function createBlobBlock($container, $blob, $blockId, $content,
- $options = null
- );
-
- /**
- * This method writes a blob by specifying the list of block IDs that make up the
- * blob. In order to be written as part of a blob, a block must have been
- * successfully written to the server in a prior createBlobBlock method.
- *
- * You can call Put Block List to update a blob by uploading only those blocks
- * that have changed, then committing the new and existing blocks together.
- * You can do this by specifying whether to commit a block from the committed
- * block list or from the uncommitted block list, or to commit the most recently
- * uploaded version of the block, whichever list it may belong to.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\BlockList $blockList the block list entries
- * @param Models\CommitBlobBlocksOptions $options optional parameters
- *
- * @return none.
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179467.aspx
- */
- public function commitBlobBlocks($container, $blob, $blockList, $options = null);
-
- /**
- * Retrieves the list of blocks that have been uploaded as part of a block blob.
- *
- * There are two block lists maintained for a blob:
- * 1) Committed Block List: The list of blocks that have been successfully
- * committed to a given blob with commitBlobBlocks.
- * 2) Uncommitted Block List: The list of blocks that have been uploaded for a
- * blob using Put Block (REST API), but that have not yet been committed.
- * These blocks are stored in Windows Azure in association with a blob, but do
- * not yet form part of the blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\ListBlobBlocksOptions $options optional parameters
- *
- * @return Models\ListBlobBlocksResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179400.aspx
- */
- public function listBlobBlocks($container, $blob, $options = null);
-
- /**
- * Returns all properties and metadata on the blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\GetBlobPropertiesOptions $options optional parameters
- *
- * @return Models\GetBlobPropertiesResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179394.aspx
- */
- public function getBlobProperties($container, $blob, $options = null);
-
- /**
- * Returns all properties and metadata on the blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\GetBlobMetadataOptions $options optional parameters
- *
- * @return Models\GetBlobMetadataResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179350.aspx
- */
- public function getBlobMetadata($container, $blob, $options = null);
-
- /**
- * Returns a list of active page ranges for a page blob. Active page ranges are
- * those that have been populated with data.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\ListPageBlobRangesOptions $options optional parameters
- *
- * @return Models\ListPageBlobRangesResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691973.aspx
- */
- public function listPageBlobRanges($container, $blob, $options = null);
-
- /**
- * Sets system properties defined for a blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\SetBlobPropertiesOptions $options optional parameters
- *
- * @return Models\SetBlobPropertiesResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691966.aspx
- */
- public function setBlobProperties($container, $blob, $options = null);
-
- /**
- * Sets metadata headers on the blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param array $metadata key/value pair representation
- * @param Models\SetBlobMetadataOptions $options optional parameters
- *
- * @return Models\SetBlobMetadataResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179414.aspx
- */
- public function setBlobMetadata($container, $blob, $metadata, $options = null);
-
- /**
- * Reads or downloads a blob from the system, including its metadata and
- * properties.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\GetBlobOptions $options optional parameters
- *
- * @return Models\GetBlobResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179440.aspx
- */
- public function getBlob($container, $blob, $options = null);
-
- /**
- * Deletes a blob or blob snapshot.
- *
- * Note that if the snapshot entry is specified in the $options then only this
- * blob snapshot is deleted. To delete all blob snapshots, do not set Snapshot
- * and just set getDeleteSnaphotsOnly to true.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\DeleteBlobOptions $options optional parameters
- *
- * @return none
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179413.aspx
- */
- public function deleteBlob($container, $blob, $options = null);
-
- /**
- * Creates a snapshot of a blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\CreateBlobSnapshotOptions $options optional parameters
- *
- * @return Models\CreateBlobSnapshotResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691971.aspx
- */
- public function createBlobSnapshot($container, $blob, $options = null);
-
- /**
- * Copies a source blob to a destination blob within the same storage account.
- *
- * @param string $destinationContainer name of container
- * @param string $destinationBlob name of blob
- * @param string $sourceContainer name of container
- * @param string $sourceBlob name of blob
- * @param Models\CopyBlobOptions $options optional parameters
- *
- * @return CopyBlobResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd894037.aspx
- */
- public function copyBlob($destinationContainer, $destinationBlob,
- $sourceContainer, $sourceBlob, $options = null
- );
-
- /**
- * Establishes an exclusive one-minute write lock on a blob. To write to a locked
- * blob, a client must provide a lease ID.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\AcquireLeaseOptions $options optional parameters
- *
- * @return Models\AcquireLeaseResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691972.aspx
- */
- public function acquireLease($container, $blob, $options = null);
-
- /**
- * Renews an existing lease
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param string $leaseId lease id when acquiring
- * @param Models\BlobServiceOptions $options optional parameters
- *
- * @return Models\AcquireLeaseResult
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691972.aspx
- */
- public function renewLease($container, $blob, $leaseId, $options = null);
-
- /**
- * Frees the lease if it is no longer needed so that another client may
- * immediately acquire a lease against the blob.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param string $leaseId lease id when acquiring
- * @param Models\BlobServiceOptions $options optional parameters
- *
- * @return none
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691972.aspx
- */
- public function releaseLease($container, $blob, $leaseId, $options = null);
-
- /**
- * Ends the lease but ensure that another client cannot acquire a new lease until
- * the current lease period has expired.
- *
- * @param string $container name of the container
- * @param string $blob name of the blob
- * @param Models\BlobServiceOptions $options optional parameters
- *
- * @return none
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/ee691972.aspx
- */
- public function breakLease($container, $blob, $options = null);
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/AccessCondition.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/AccessCondition.php
deleted file mode 100644
index 37494160..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/AccessCondition.php
+++ /dev/null
@@ -1,247 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\WindowsAzureUtilities;
-
-/**
- * Represents a set of access conditions to be used for operations against the
- * storage services.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class AccessCondition
-{
- /**
- * Represents the header type.
- *
- * @var string
- */
- private $_header = Resources::EMPTY_STRING;
-
- /**
- * Represents the header value.
- *
- * @var string
- */
- private $_value;
-
- /**
- * Constructor
- *
- * @param string $headerType header name
- * @param string $value header value
- */
- protected function __construct($headerType, $value)
- {
- $this->setHeader($headerType);
- $this->setValue($value);
- }
-
- /**
- * Specifies that no access condition is set.
- *
- * @return \WindowsAzure\Blob\Models\AccessCondition
- */
- public static function none()
- {
- return new AccessCondition(Resources::EMPTY_STRING, null);
- }
-
- /**
- * Returns an access condition such that an operation will be performed only if
- * the resource's ETag value matches the specified ETag value.
- *
- * Setting this access condition modifies the request to include the HTTP
- * If-Match conditional header. If this access condition is set, the
- * operation is performed only if the ETag of the resource matches the specified
- * ETag.
- *
- * For more information, see
- *
- * Specifying Conditional Headers for Blob Service Operations .
- *
- * @param string $etag a string that represents the ETag value to check.
- *
- * @return \WindowsAzure\Blob\Models\AccessCondition
- */
- public static function ifMatch($etag)
- {
- return new AccessCondition(Resources::IF_MATCH, $etag);
- }
-
- /**
- * Returns an access condition such that an operation will be performed only if
- * the resource has been modified since the specified time.
- *
- * Setting this access condition modifies the request to include the HTTP
- * If-Modified-Since conditional header. If this access condition is set,
- * the operation is performed only if the resource has been modified since the
- * specified time.
- *
- * For more information, see
- *
- * Specifying Conditional Headers for Blob Service Operations .
- *
- * @param \DateTime $lastModified date that represents the last-modified
- * time to check for the resource.
- *
- * @return \WindowsAzure\Blob\Models\AccessCondition
- */
- public static function ifModifiedSince($lastModified)
- {
- Validate::isDate($lastModified);
- return new AccessCondition(
- Resources::IF_MODIFIED_SINCE,
- $lastModified
- );
- }
-
- /**
- * Returns an access condition such that an operation will be performed only if
- * the resource's ETag value does not match the specified ETag value.
- *
- * Setting this access condition modifies the request to include the HTTP
- * If-None-Match conditional header. If this access condition is set, the
- * operation is performed only if the ETag of the resource does not match the
- * specified ETag.
- *
- * For more information,
- * see
- * Specifying Conditional Headers for Blob Service Operations .
- *
- * @param string $etag string that represents the ETag value to check.
- *
- * @return \WindowsAzure\Blob\Models\AccessCondition
- */
- public static function ifNoneMatch($etag)
- {
- return new AccessCondition(Resources::IF_NONE_MATCH, $etag);
- }
-
- /**
- * Returns an access condition such that an operation will be performed only if
- * the resource has not been modified since the specified time.
- *
- * Setting this access condition modifies the request to include the HTTP
- * If-Unmodified-Since conditional header. If this access condition is
- * set, the operation is performed only if the resource has not been modified
- * since the specified time.
- *
- * For more information, see
- *
- * Specifying Conditional Headers for Blob Service Operations .
- *
- * @param \DateTime $lastModified date that represents the last-modified
- * time to check for the resource.
- *
- * @return \WindowsAzure\Blob\Models\AccessCondition
- */
- public static function ifNotModifiedSince($lastModified)
- {
- Validate::isDate($lastModified);
- return new AccessCondition(
- Resources::IF_UNMODIFIED_SINCE,
- $lastModified
- );
- }
-
- /**
- * Sets header type
- *
- * @param string $headerType can be one of Resources
- *
- * @return none.
- */
- public function setHeader($headerType)
- {
- $valid = AccessCondition::isValid($headerType);
- Validate::isTrue($valid, Resources::INVALID_HT_MSG);
-
- $this->_header = $headerType;
- }
-
- /**
- * Gets header type
- *
- * @return string.
- */
- public function getHeader()
- {
- return $this->_header;
- }
-
- /**
- * Sets the header value
- *
- * @param string $value the value to use
- *
- * @return none
- */
- public function setValue($value)
- {
- $this->_value = $value;
- }
-
- /**
- * Gets the header value
- *
- * @return string
- */
- public function getValue()
- {
- return $this->_value;
- }
-
- /**
- * Check if the $headerType belongs to valid header types
- *
- * @param string $headerType candidate header type
- *
- * @return boolean
- */
- public static function isValid($headerType)
- {
- if ( $headerType == Resources::EMPTY_STRING
- || $headerType == Resources::IF_UNMODIFIED_SINCE
- || $headerType == Resources::IF_MATCH
- || $headerType == Resources::IF_MODIFIED_SINCE
- || $headerType == Resources::IF_NONE_MATCH
- ) {
- return true;
- } else {
- return false;
- }
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/AccessPolicy.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/AccessPolicy.php
deleted file mode 100644
index 5cf84069..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/AccessPolicy.php
+++ /dev/null
@@ -1,143 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\Validate;
-
-/**
- * Holds container access policy elements
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class AccessPolicy
-{
- /**
- * @var string
- */
- private $_start;
-
- /**
- * @var \DateTime
- */
- private $_expiry;
-
- /**
- * @var \DateTime
- */
- private $_permission;
-
- /**
- * Gets start.
- *
- * @return \DateTime.
- */
- public function getStart()
- {
- return $this->_start;
- }
-
- /**
- * Sets start.
- *
- * @param \DateTime $start value.
- *
- * @return none.
- */
- public function setStart($start)
- {
- Validate::isDate($start);
- $this->_start = $start;
- }
-
- /**
- * Gets expiry.
- *
- * @return \DateTime.
- */
- public function getExpiry()
- {
- return $this->_expiry;
- }
-
- /**
- * Sets expiry.
- *
- * @param \DateTime $expiry value.
- *
- * @return none.
- */
- public function setExpiry($expiry)
- {
- Validate::isDate($expiry);
- $this->_expiry = $expiry;
- }
-
- /**
- * Gets permission.
- *
- * @return string.
- */
- public function getPermission()
- {
- return $this->_permission;
- }
-
- /**
- * Sets permission.
- *
- * @param string $permission value.
- *
- * @return none.
- */
- public function setPermission($permission)
- {
- $this->_permission = $permission;
- }
-
- /**
- * Converts this current object to XML representation.
- *
- * @return array.
- */
- public function toArray()
- {
- $array = array();
-
- $array['Start'] = Utilities::convertToEdmDateTime($this->_start);
- $array['Expiry'] = Utilities::convertToEdmDateTime($this->_expiry);
- $array['Permission'] = $this->_permission;
-
- return $array;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/AcquireLeaseOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/AcquireLeaseOptions.php
deleted file mode 100644
index ed50fbf9..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/AcquireLeaseOptions.php
+++ /dev/null
@@ -1,68 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Optional parameters for acquireLease wrapper
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class AcquireLeaseOptions extends BlobServiceOptions
-{
- /**
- * @var AccessCondition
- */
- private $_accessCondition;
-
- /**
- * Gets access condition
- *
- * @return AccessCondition
- */
- public function getAccessCondition()
- {
- return $this->_accessCondition;
- }
-
- /**
- * Sets access condition
- *
- * @param AccessCondition $accessCondition value to use.
- *
- * @return none.
- */
- public function setAccessCondition($accessCondition)
- {
- $this->_accessCondition = $accessCondition;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/AcquireLeaseResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/AcquireLeaseResult.php
deleted file mode 100644
index fb654fe3..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/AcquireLeaseResult.php
+++ /dev/null
@@ -1,88 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * The result of calling acquireLease API.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class AcquireLeaseResult
-{
- /**
- * @var string
- */
- private $_leaseId;
-
- /**
- * Creates AcquireLeaseResult from response headers
- *
- * @param array $headers response headers
- *
- * @return AcquireLeaseResult
- */
- public static function create($headers)
- {
- $result = new AcquireLeaseResult();
-
- $result->setLeaseId(
- Utilities::tryGetValue($headers, Resources::X_MS_LEASE_ID)
- );
-
- return $result;
- }
-
- /**
- * Gets lease Id for the blob
- *
- * @return string
- */
- public function getLeaseId()
- {
- return $this->_leaseId;
- }
-
- /**
- * Sets lease Id for the blob
- *
- * @param string $leaseId the blob lease id.
- *
- * @return none
- */
- public function setLeaseId($leaseId)
- {
- $this->_leaseId = $leaseId;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/Blob.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/Blob.php
deleted file mode 100644
index f03f74bb..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/Blob.php
+++ /dev/null
@@ -1,176 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Represents windows azure blob object
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class Blob
-{
- /**
- * @var string
- */
- private $_name;
-
- /**
- * @var string
- */
- private $_url;
-
- /**
- * @var string
- */
- private $_snapshot;
-
- /**
- * @var array
- */
- private $_metadata;
-
- /**
- * @var BlobProperties
- */
- private $_properties;
-
- /**
- * Gets blob name.
- *
- * @return string.
- */
- public function getName()
- {
- return $this->_name;
- }
-
- /**
- * Sets blob name.
- *
- * @param string $name value.
- *
- * @return none.
- */
- public function setName($name)
- {
- $this->_name = $name;
- }
-
- /**
- * Gets blob snapshot.
- *
- * @return string.
- */
- public function getSnapshot()
- {
- return $this->_snapshot;
- }
-
- /**
- * Sets blob snapshot.
- *
- * @param string $snapshot value.
- *
- * @return none.
- */
- public function setSnapshot($snapshot)
- {
- $this->_snapshot = $snapshot;
- }
-
- /**
- * Gets blob url.
- *
- * @return string.
- */
- public function getUrl()
- {
- return $this->_url;
- }
-
- /**
- * Sets blob url.
- *
- * @param string $url value.
- *
- * @return none.
- */
- public function setUrl($url)
- {
- $this->_url = $url;
- }
-
- /**
- * Gets blob metadata.
- *
- * @return array.
- */
- public function getMetadata()
- {
- return $this->_metadata;
- }
-
- /**
- * Sets blob metadata.
- *
- * @param string $metadata value.
- *
- * @return none.
- */
- public function setMetadata($metadata)
- {
- $this->_metadata = $metadata;
- }
-
- /**
- * Gets blob properties.
- *
- * @return BlobProperties.
- */
- public function getProperties()
- {
- return $this->_properties;
- }
-
- /**
- * Sets blob properties.
- *
- * @param BlobProperties $properties value.
- *
- * @return none.
- */
- public function setProperties($properties)
- {
- $this->_properties = $properties;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlobBlockType.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlobBlockType.php
deleted file mode 100644
index 998449f0..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlobBlockType.php
+++ /dev/null
@@ -1,65 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Holds available blob block types
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class BlobBlockType
-{
- const COMMITTED_TYPE = 'Committed';
- const UNCOMMITTED_TYPE = 'Uncommitted';
- const LATEST_TYPE = 'Latest';
-
- /**
- * Validates the provided type.
- *
- * @param string $type The entry type.
- *
- * @return boolean
- */
- public static function isValid($type)
- {
- switch ($type) {
- case self::COMMITTED_TYPE:
- case self::LATEST_TYPE:
- case self::UNCOMMITTED_TYPE:
- return true;
-
- default:
- return false;
- }
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlobPrefix.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlobPrefix.php
deleted file mode 100644
index 01b220ed..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlobPrefix.php
+++ /dev/null
@@ -1,68 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Represents BlobPrefix object
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class BlobPrefix
-{
- /**
- * @var string
- */
- private $_name;
-
- /**
- * Gets blob name.
- *
- * @return string.
- */
- public function getName()
- {
- return $this->_name;
- }
-
- /**
- * Sets blob name.
- *
- * @param string $name value.
- *
- * @return none.
- */
- public function setName($name)
- {
- $this->_name = $name;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlobProperties.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlobProperties.php
deleted file mode 100644
index a2630332..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlobProperties.php
+++ /dev/null
@@ -1,431 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * Represents blob properties
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class BlobProperties
-{
- /**
- * @var \DateTime
- */
- private $_lastModified;
-
- /**
- * @var string
- */
- private $_etag;
-
- /**
- * @var string
- */
- private $_contentType;
-
- /**
- * @var integer
- */
- private $_contentLength;
-
- /**
- * @var string
- */
- private $_contentEncoding;
-
- /**
- * @var string
- */
- private $_contentLanguage;
-
- /**
- * @var string
- */
- private $_contentMD5;
-
- /**
- * @var string
- */
- private $_contentRange;
-
- /**
- * @var string
- */
- private $_cacheControl;
-
- /**
- * @var string
- */
- private $_blobType;
-
- /**
- * @var string
- */
- private $_leaseStatus;
-
- /**
- * @var integer
- */
- private $_sequenceNumber;
-
- /**
- * Creates BlobProperties object from $parsed response in array representation
- *
- * @param array $parsed parsed response in array format.
- *
- * @return BlobProperties
- */
- public static function create($parsed)
- {
- $result = new BlobProperties();
- $clean = array_change_key_case($parsed);
-
- $date = Utilities::tryGetValue($clean, Resources::LAST_MODIFIED);
- $result->setBlobType(Utilities::tryGetValue($clean, 'blobtype'));
- $result->setContentLength(intval($clean[Resources::CONTENT_LENGTH]));
- $result->setETag(Utilities::tryGetValue($clean, Resources::ETAG));
-
- if (!is_null($date)) {
- $date = Utilities::rfc1123ToDateTime($date);
- $result->setLastModified($date);
- }
-
- $result->setLeaseStatus(Utilities::tryGetValue($clean, 'leasestatus'));
- $result->setLeaseStatus(
- Utilities::tryGetValue(
- $clean, Resources::X_MS_LEASE_STATUS, $result->getLeaseStatus()
- )
- );
- $result->setSequenceNumber(
- intval(
- Utilities::tryGetValue($clean, Resources::X_MS_BLOB_SEQUENCE_NUMBER)
- )
- );
- $result->setContentRange(
- Utilities::tryGetValue($clean, Resources::CONTENT_RANGE)
- );
- $result->setCacheControl(
- Utilities::tryGetValue($clean, Resources::CACHE_CONTROL)
- );
- $result->setBlobType(
- Utilities::tryGetValue(
- $clean, Resources::X_MS_BLOB_TYPE, $result->getBlobType()
- )
- );
- $result->setContentEncoding(
- Utilities::tryGetValue($clean, Resources::CONTENT_ENCODING)
- );
- $result->setContentLanguage(
- Utilities::tryGetValue($clean, Resources::CONTENT_LANGUAGE)
- );
- $result->setContentMD5(
- Utilities::tryGetValue($clean, Resources::CONTENT_MD5)
- );
- $result->setContentType(
- Utilities::tryGetValue($clean, Resources::CONTENT_TYPE)
- );
-
- return $result;
- }
-
- /**
- * Gets blob lastModified.
- *
- * @return \DateTime.
- */
- public function getLastModified()
- {
- return $this->_lastModified;
- }
-
- /**
- * Sets blob lastModified.
- *
- * @param \DateTime $lastModified value.
- *
- * @return none.
- */
- public function setLastModified($lastModified)
- {
- Validate::isDate($lastModified);
- $this->_lastModified = $lastModified;
- }
-
- /**
- * Gets blob etag.
- *
- * @return string.
- */
- public function getETag()
- {
- return $this->_etag;
- }
-
- /**
- * Sets blob etag.
- *
- * @param string $etag value.
- *
- * @return none.
- */
- public function setETag($etag)
- {
- $this->_etag = $etag;
- }
-
- /**
- * Gets blob contentType.
- *
- * @return string.
- */
- public function getContentType()
- {
- return $this->_contentType;
- }
-
- /**
- * Sets blob contentType.
- *
- * @param string $contentType value.
- *
- * @return none.
- */
- public function setContentType($contentType)
- {
- $this->_contentType = $contentType;
- }
-
- /**
- * Gets blob contentRange.
- *
- * @return string.
- */
- public function getContentRange()
- {
- return $this->_contentRange;
- }
-
- /**
- * Sets blob contentRange.
- *
- * @param string $contentRange value.
- *
- * @return none.
- */
- public function setContentRange($contentRange)
- {
- $this->_contentRange = $contentRange;
- }
-
- /**
- * Gets blob contentLength.
- *
- * @return integer.
- */
- public function getContentLength()
- {
- return $this->_contentLength;
- }
-
- /**
- * Sets blob contentLength.
- *
- * @param integer $contentLength value.
- *
- * @return none.
- */
- public function setContentLength($contentLength)
- {
- Validate::isInteger($contentLength, 'contentLength');
- $this->_contentLength = $contentLength;
- }
-
- /**
- * Gets blob contentEncoding.
- *
- * @return string.
- */
- public function getContentEncoding()
- {
- return $this->_contentEncoding;
- }
-
- /**
- * Sets blob contentEncoding.
- *
- * @param string $contentEncoding value.
- *
- * @return none.
- */
- public function setContentEncoding($contentEncoding)
- {
- $this->_contentEncoding = $contentEncoding;
- }
-
- /**
- * Gets blob contentLanguage.
- *
- * @return string.
- */
- public function getContentLanguage()
- {
- return $this->_contentLanguage;
- }
-
- /**
- * Sets blob contentLanguage.
- *
- * @param string $contentLanguage value.
- *
- * @return none.
- */
- public function setContentLanguage($contentLanguage)
- {
- $this->_contentLanguage = $contentLanguage;
- }
-
- /**
- * Gets blob contentMD5.
- *
- * @return string.
- */
- public function getContentMD5()
- {
- return $this->_contentMD5;
- }
-
- /**
- * Sets blob contentMD5.
- *
- * @param string $contentMD5 value.
- *
- * @return none.
- */
- public function setContentMD5($contentMD5)
- {
- $this->_contentMD5 = $contentMD5;
- }
-
- /**
- * Gets blob cacheControl.
- *
- * @return string.
- */
- public function getCacheControl()
- {
- return $this->_cacheControl;
- }
-
- /**
- * Sets blob cacheControl.
- *
- * @param string $cacheControl value.
- *
- * @return none.
- */
- public function setCacheControl($cacheControl)
- {
- $this->_cacheControl = $cacheControl;
- }
-
- /**
- * Gets blob blobType.
- *
- * @return string.
- */
- public function getBlobType()
- {
- return $this->_blobType;
- }
-
- /**
- * Sets blob blobType.
- *
- * @param string $blobType value.
- *
- * @return none.
- */
- public function setBlobType($blobType)
- {
- $this->_blobType = $blobType;
- }
-
- /**
- * Gets blob leaseStatus.
- *
- * @return string.
- */
- public function getLeaseStatus()
- {
- return $this->_leaseStatus;
- }
-
- /**
- * Sets blob leaseStatus.
- *
- * @param string $leaseStatus value.
- *
- * @return none.
- */
- public function setLeaseStatus($leaseStatus)
- {
- $this->_leaseStatus = $leaseStatus;
- }
-
- /**
- * Gets blob sequenceNumber.
- *
- * @return int.
- */
- public function getSequenceNumber()
- {
- return $this->_sequenceNumber;
- }
-
- /**
- * Sets blob sequenceNumber.
- *
- * @param int $sequenceNumber value.
- *
- * @return none.
- */
- public function setSequenceNumber($sequenceNumber)
- {
- Validate::isInteger($sequenceNumber, 'sequenceNumber');
- $this->_sequenceNumber = $sequenceNumber;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlobServiceOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlobServiceOptions.php
deleted file mode 100644
index c744547b..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlobServiceOptions.php
+++ /dev/null
@@ -1,65 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Blob service options.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class BlobServiceOptions
-{
- private $_timeout;
-
- /**
- * Gets timeout.
- *
- * @return string.
- */
- public function getTimeout()
- {
- return $this->_timeout;
- }
-
- /**
- * Sets timeout.
- *
- * @param string $timeout value.
- *
- * @return none.
- */
- public function setTimeout($timeout)
- {
- $this->_timeout = $timeout;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlobType.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlobType.php
deleted file mode 100644
index 15da7672..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlobType.php
+++ /dev/null
@@ -1,44 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Encapsulates blob types
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class BlobType
-{
- const BLOCK_BLOB = 'BlockBlob';
- const PAGE_BLOB = 'PageBlob';
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/Block.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/Block.php
deleted file mode 100644
index 9fc2ae13..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/Block.php
+++ /dev/null
@@ -1,95 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Holds information about blob block.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class Block
-{
- /**
- * @var string
- */
- private $_blockId;
-
- /**
- * @var string
- */
- private $_type;
-
- /**
- * Sets the blockId.
- *
- * @param string $blockId The id of the block.
- *
- * @return none
- */
- public function setBlockId($blockId)
- {
- $this->_blockId = $blockId;
- }
-
- /**
- * Gets the blockId.
- *
- * @return string
- */
- public function getBlockId()
- {
- return $this->_blockId;
- }
-
- /**
- * Sets the type.
- *
- * @param string $type The type of the block.
- *
- * @return none
- */
- public function setType($type)
- {
- $this->_type = $type;
- }
-
- /**
- * Gets the type.
- *
- * @return string
- */
- public function getType()
- {
- return $this->_type;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlockList.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlockList.php
deleted file mode 100644
index 2e5abf60..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BlockList.php
+++ /dev/null
@@ -1,175 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Serialization\XmlSerializer;
-use WindowsAzure\Blob\Models\Block;
-
-/**
- * Holds block list used for commitBlobBlocks
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class BlockList
-{
- /**
- * @var array
- */
- private $_entries;
- public static $xmlRootName = 'BlockList';
-
- /**
- * Creates block list from array of blocks.
- *
- * @param array $array The blocks array.
- *
- * @return BlockList
- */
- public static function create($array)
- {
- $blockList = new BlockList();
-
- foreach ($array as $value) {
- $blockList->addEntry($value->getBlockId(), $value->getType());
- }
-
- return $blockList;
- }
-
- /**
- * Adds new entry to the block list entries.
- *
- * @param string $blockId The block id.
- * @param string $type The entry type, you can use BlobBlockType.
- *
- * @return none
- */
- public function addEntry($blockId, $type)
- {
- Validate::isString($blockId, 'blockId');
- Validate::isTrue(
- BlobBlockType::isValid($type),
- sprintf(Resources::INVALID_BTE_MSG, get_class(new BlobBlockType()))
- );
- $block = new Block();
- $block->setBlockId($blockId);
- $block->setType($type);
-
- $this->_entries[] = $block;
- }
-
- /**
- * Addds committed block entry.
- *
- * @param string $blockId The block id.
- *
- * @return none
- */
- public function addCommittedEntry($blockId)
- {
- $this->addEntry($blockId, BlobBlockType::COMMITTED_TYPE);
- }
-
- /**
- * Addds uncommitted block entry.
- *
- * @param string $blockId The block id.
- *
- * @return none
- */
- public function addUncommittedEntry($blockId)
- {
- $this->addEntry($blockId, BlobBlockType::UNCOMMITTED_TYPE);
- }
-
- /**
- * Addds latest block entry.
- *
- * @param string $blockId The block id.
- *
- * @return none
- */
- public function addLatestEntry($blockId)
- {
- $this->addEntry($blockId, BlobBlockType::LATEST_TYPE);
- }
-
- /**
- * Gets blob block entry.
- *
- * @param string $blockId The id of the block.
- *
- * @return Block
- */
- public function getEntry($blockId)
- {
- foreach ($this->_entries as $value) {
- if ($blockId == $value->getBlockId()) {
- return $value;
- }
- }
-
- return null;
- }
-
- /**
- * Gets all blob block entries.
- *
- * @return string
- */
- public function getEntries()
- {
- return $this->_entries;
- }
-
- /**
- * Converts the BlockList object to XML representation
- *
- * @param XmlSerializer $xmlSerializer The XML serializer.
- *
- * @return string
- */
- public function toXml($xmlSerializer)
- {
- $properties = array(XmlSerializer::ROOT_NAME => self::$xmlRootName);
- $array = array();
-
- foreach ($this->_entries as $value) {
- $array[] = array(
- $value->getType() => base64_encode($value->getBlockId())
- );
- }
-
- return $xmlSerializer->serialize($array, $properties);
- }
-}
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BreakLeaseResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BreakLeaseResult.php
deleted file mode 100644
index ffe2c7f1..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/BreakLeaseResult.php
+++ /dev/null
@@ -1,86 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * The result of calling breakLease API.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class BreakLeaseResult
-{
- /**
- * @var string
- */
- private $_leaseTime;
-
- /**
- * Creates BreakLeaseResult from response headers
- *
- * @param array $headers response headers
- *
- * @return BreakLeaseResult
- */
- public static function create($headers)
- {
- $result = new BreakLeaseResult();
-
- $result->setLeaseTime(
- Utilities::tryGetValue($headers, Resources::X_MS_LEASE_TIME)
- );
-
- return $result;
- }
-
- /**
- * Gets lease time.
- *
- * @return string
- */
- public function getLeaseTime()
- {
- return $this->_leaseTime;
- }
-
- /**
- * Sets lease time.
- *
- * @param string $leaseTime the blob lease time.
- *
- * @return none
- */
- public function setLeaseTime($leaseTime)
- {
- $this->_leaseTime = $leaseTime;
- }
-}
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CommitBlobBlocksOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CommitBlobBlocksOptions.php
deleted file mode 100644
index a69b0e6c..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CommitBlobBlocksOptions.php
+++ /dev/null
@@ -1,258 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Validate;
-
-/**
- * Optional parameters for commitBlobBlocks
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class CommitBlobBlocksOptions extends BlobServiceOptions
-{
- /**
- * @var string
- */
- private $_blobContentType;
-
- /**
- * @var string
- */
- private $_blobContentEncoding;
-
- /**
- * @var string
- */
- private $_blobContentLanguage;
-
- /**
- * @var string
- */
- private $_blobContentMD5;
-
- /**
- * @var string
- */
- private $_blobCacheControl;
-
- /**
- * @var array
- */
- private $_metadata;
-
- /**
- * @var string
- */
- private $_leaseId;
-
- /**
- * @var AccessCondition
- */
- private $_accessCondition;
-
- /**
- * Gets blob ContentType.
- *
- * @return string.
- */
- public function getBlobContentType()
- {
- return $this->_blobContentType;
- }
-
- /**
- * Sets blob ContentType.
- *
- * @param string $blobContentType value.
- *
- * @return none.
- */
- public function setBlobContentType($blobContentType)
- {
- $this->_blobContentType = $blobContentType;
- }
-
- /**
- * Gets blob ContentEncoding.
- *
- * @return string.
- */
- public function getBlobContentEncoding()
- {
- return $this->_blobContentEncoding;
- }
-
- /**
- * Sets blob ContentEncoding.
- *
- * @param string $blobContentEncoding value.
- *
- * @return none.
- */
- public function setBlobContentEncoding($blobContentEncoding)
- {
- $this->_blobContentEncoding = $blobContentEncoding;
- }
-
- /**
- * Gets blob ContentLanguage.
- *
- * @return string.
- */
- public function getBlobContentLanguage()
- {
- return $this->_blobContentLanguage;
- }
-
- /**
- * Sets blob ContentLanguage.
- *
- * @param string $blobContentLanguage value.
- *
- * @return none.
- */
- public function setBlobContentLanguage($blobContentLanguage)
- {
- $this->_blobContentLanguage = $blobContentLanguage;
- }
-
- /**
- * Gets blob ContentMD5.
- *
- * @return string.
- */
- public function getBlobContentMD5()
- {
- return $this->_blobContentMD5;
- }
-
- /**
- * Sets blob ContentMD5.
- *
- * @param string $blobContentMD5 value.
- *
- * @return none.
- */
- public function setBlobContentMD5($blobContentMD5)
- {
- $this->_blobContentMD5 = $blobContentMD5;
- }
-
- /**
- * Gets blob cache control.
- *
- * @return string.
- */
- public function getBlobCacheControl()
- {
- return $this->_blobCacheControl;
- }
-
- /**
- * Sets blob cacheControl.
- *
- * @param string $blobCacheControl value to use.
- *
- * @return none.
- */
- public function setBlobCacheControl($blobCacheControl)
- {
- $this->_blobCacheControl = $blobCacheControl;
- }
-
- /**
- * Gets access condition
- *
- * @return AccessCondition
- */
- public function getAccessCondition()
- {
- return $this->_accessCondition;
- }
-
- /**
- * Sets access condition
- *
- * @param AccessCondition $accessCondition value to use.
- *
- * @return none.
- */
- public function setAccessCondition($accessCondition)
- {
- $this->_accessCondition = $accessCondition;
- }
-
- /**
- * Gets blob metadata.
- *
- * @return array.
- */
- public function getMetadata()
- {
- return $this->_metadata;
- }
-
- /**
- * Sets blob metadata.
- *
- * @param string $metadata value.
- *
- * @return none.
- */
- public function setMetadata($metadata)
- {
- $this->_metadata = $metadata;
- }
-
- /**
- * Gets lease Id for the blob
- *
- * @return string
- */
- public function getLeaseId()
- {
- return $this->_leaseId;
- }
-
- /**
- * Sets lease Id for the blob
- *
- * @param string $leaseId the blob lease id.
- *
- * @return none
- */
- public function setLeaseId($leaseId)
- {
- $this->_leaseId = $leaseId;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/Container.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/Container.php
deleted file mode 100644
index 198b544c..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/Container.php
+++ /dev/null
@@ -1,150 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * WindowsAzure container object.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class Container
-{
- /**
- * @var string
- */
- private $_name;
-
- /**
- * @var string
- */
- private $_url;
-
- /**
- * @var array
- */
- private $_metadata;
-
- /**
- * @var ContainerProperties
- */
- private $_properties;
-
- /**
- * Gets container name.
- *
- * @return string.
- */
- public function getName()
- {
- return $this->_name;
- }
-
- /**
- * Sets container name.
- *
- * @param string $name value.
- *
- * @return none.
- */
- public function setName($name)
- {
- $this->_name = $name;
- }
-
- /**
- * Gets container url.
- *
- * @return string.
- */
- public function getUrl()
- {
- return $this->_url;
- }
-
- /**
- * Sets container url.
- *
- * @param string $url value.
- *
- * @return none.
- */
- public function setUrl($url)
- {
- $this->_url = $url;
- }
-
- /**
- * Gets container metadata.
- *
- * @return array.
- */
- public function getMetadata()
- {
- return $this->_metadata;
- }
-
- /**
- * Sets container metadata.
- *
- * @param array $metadata value.
- *
- * @return none.
- */
- public function setMetadata($metadata)
- {
- $this->_metadata = $metadata;
- }
-
- /**
- * Gets container properties
- *
- * @return ContainerProperties
- */
- public function getProperties()
- {
- return $this->_properties;
- }
-
- /**
- * Sets container properties
- *
- * @param ContainerProperties $properties container properties
- *
- * @return none.
- */
- public function setProperties($properties)
- {
- $this->_properties = $properties;
- }
-}
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ContainerACL.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ContainerACL.php
deleted file mode 100644
index 0fdc6e30..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ContainerACL.php
+++ /dev/null
@@ -1,219 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Blob\Models\AccessPolicy;
-use WindowsAzure\Blob\Models\SignedIdentifier;
-use WindowsAzure\Blob\Models\PublicAccessType;
-use WindowsAzure\Common\Internal\Serialization\XmlSerializer;
-
-/**
- * Holds conatiner ACL members.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ContainerAcl
-{
- /**
- * All available types can be found in PublicAccessType
- *
- * @var string
- */
- private $_publicAccess;
-
- /**
- * @var array
- */
- private $_signedIdentifiers = array();
-
- /*
- * The root name of XML elemenet representation.
- *
- * @var string
- */
- public static $xmlRootName = 'SignedIdentifiers';
-
-
- /**
- * Parses the given array into signed identifiers.
- *
- * @param string $publicAccess The container public access.
- * @param array $parsed The parsed response into array representation.
- *
- * @return none
- */
- public static function create($publicAccess, $parsed)
- {
- $result = new ContainerAcl();
- $result->_publicAccess = $publicAccess;
- $result->_signedIdentifiers = array();
-
- if (!empty($parsed) && is_array($parsed['SignedIdentifier'])) {
- $entries = $parsed['SignedIdentifier'];
- $temp = Utilities::getArray($entries);
-
- foreach ($temp as $value) {
- $startString = urldecode($value['AccessPolicy']['Start']);
- $expiryString = urldecode($value['AccessPolicy']['Expiry']);
- $start = Utilities::convertToDateTime($startString);
- $expiry = Utilities::convertToDateTime($expiryString);
- $permission = $value['AccessPolicy']['Permission'];
- $id = $value['Id'];
- $result->addSignedIdentifier($id, $start, $expiry, $permission);
- }
- }
-
- return $result;
- }
-
- /**
- * Gets container signed modifiers.
- *
- * @return array.
- */
- public function getSignedIdentifiers()
- {
- return $this->_signedIdentifiers;
- }
-
- /**
- * Sets container signed modifiers.
- *
- * @param array $signedIdentifiers value.
- *
- * @return none.
- */
- public function setSignedIdentifiers($signedIdentifiers)
- {
- $this->_signedIdentifiers = $signedIdentifiers;
- }
-
- /**
- * Gets container publicAccess.
- *
- * @return string.
- */
- public function getPublicAccess()
- {
- return $this->_publicAccess;
- }
-
- /**
- * Sets container publicAccess.
- *
- * @param string $publicAccess value.
- *
- * @return none.
- */
- public function setPublicAccess($publicAccess)
- {
- Validate::isTrue(
- PublicAccessType::isValid($publicAccess),
- Resources::INVALID_BLOB_PAT_MSG
- );
- $this->_publicAccess = $publicAccess;
- }
-
- /**
- * Adds new signed modifier
- *
- * @param string $id a unique id for this modifier
- * @param \DateTime $start The time at which the Shared Access Signature
- * becomes valid. If omitted, start time for this call is assumed to be
- * the time when the Blob service receives the request.
- * @param \DateTime $expiry The time at which the Shared Access Signature
- * becomes invalid. This field may be omitted if it has been specified as
- * part of a container-level access policy.
- * @param string $permission The permissions associated with the Shared
- * Access Signature. The user is restricted to operations allowed by the
- * permissions. Valid permissions values are read (r), write (w), delete (d) and
- * list (l).
- *
- * @return none.
- *
- * @see http://msdn.microsoft.com/en-us/library/windowsazure/hh508996.aspx
- */
- public function addSignedIdentifier($id, $start, $expiry, $permission)
- {
- Validate::isString($id, 'id');
- Validate::isDate($start);
- Validate::isDate($expiry);
- Validate::isString($permission, 'permission');
-
- $accessPolicy = new AccessPolicy();
- $accessPolicy->setStart($start);
- $accessPolicy->setExpiry($expiry);
- $accessPolicy->setPermission($permission);
-
- $signedIdentifier = new SignedIdentifier();
- $signedIdentifier->setId($id);
- $signedIdentifier->setAccessPolicy($accessPolicy);
-
- $this->_signedIdentifiers[] = $signedIdentifier;
- }
-
- /**
- * Converts this object to array representation for XML serialization
- *
- * @return array.
- */
- public function toArray()
- {
- $array = array();
-
- foreach ($this->_signedIdentifiers as $value) {
- $array[] = $value->toArray();
- }
-
- return $array;
- }
-
- /**
- * Converts this current object to XML representation.
- *
- * @param XmlSerializer $xmlSerializer The XML serializer.
- *
- * @return string.
- */
- public function toXml($xmlSerializer)
- {
- $properties = array(
- XmlSerializer::DEFAULT_TAG => 'SignedIdentifier',
- XmlSerializer::ROOT_NAME => self::$xmlRootName
- );
-
- return $xmlSerializer->serialize($this->toArray(), $properties);
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ContainerProperties.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ContainerProperties.php
deleted file mode 100644
index 48b0f061..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ContainerProperties.php
+++ /dev/null
@@ -1,95 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Holds container properties fields
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ContainerProperties
-{
- /**
- * @var \DateTime
- */
- private $_lastModified;
-
- /**
- * @var string
- */
- private $_etag;
-
- /**
- * Gets container lastModified.
- *
- * @return \DateTime.
- */
- public function getLastModified()
- {
- return $this->_lastModified;
- }
-
- /**
- * Sets container lastModified.
- *
- * @param \DateTime $lastModified value.
- *
- * @return none.
- */
- public function setLastModified($lastModified)
- {
- $this->_lastModified = $lastModified;
- }
-
- /**
- * Gets container etag.
- *
- * @return string.
- */
- public function getETag()
- {
- return $this->_etag;
- }
-
- /**
- * Sets container etag.
- *
- * @param string $etag value.
- *
- * @return none.
- */
- public function setETag($etag)
- {
- $this->_etag = $etag;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CopyBlobOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CopyBlobOptions.php
deleted file mode 100644
index a70855e8..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CopyBlobOptions.php
+++ /dev/null
@@ -1,205 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Validate;
-
-/**
- * optional parameters for CopyBlobOptions wrapper
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class CopyBlobOptions extends BlobServiceOptions
-{
-
- /**
- * @var AccessCondition
- */
- private $_accessCondition;
-
- /**
- * @var AccessCondition
- */
- private $_sourceAccessCondition;
-
- /**
- * @var array
- */
- private $_metadata;
-
- /**
- * @var string
- */
- private $_sourceSnapshot;
-
- /**
- * @var string
- */
- private $_leaseId;
-
- /**
- * @var sourceLeaseId
- */
- private $_sourceLeaseId;
-
- /**
- * Gets access condition
- *
- * @return AccessCondition
- */
- public function getAccessCondition()
- {
- return $this->_accessCondition;
- }
-
- /**
- * Sets access condition
- *
- * @param AccessCondition $accessCondition value to use.
- *
- * @return none.
- */
- public function setAccessCondition($accessCondition)
- {
- $this->_accessCondition = $accessCondition;
- }
-
- /**
- * Gets source access condition
- *
- * @return SourceAccessCondition
- */
- public function getSourceAccessCondition()
- {
- return $this->_sourceAccessCondition;
- }
-
- /**
- * Sets source access condition
- *
- * @param SourceAccessCondition $sourceAccessCondition value to use.
- *
- * @return none.
- */
- public function setSourceAccessCondition($sourceAccessCondition)
- {
- $this->_sourceAccessCondition = $sourceAccessCondition;
- }
-
- /**
- * Gets metadata.
- *
- * @return array.
- */
- public function getMetadata()
- {
- return $this->_metadata;
- }
-
- /**
- * Sets metadata.
- *
- * @param array $metadata value.
- *
- * @return none.
- */
- public function setMetadata($metadata)
- {
- $this->_metadata = $metadata;
- }
-
- /**
- * Gets source snapshot.
- *
- * @return string
- */
- public function getSourceSnapshot()
- {
- return $this->_sourceSnapshot;
- }
-
- /**
- * Sets source snapshot.
- *
- * @param string $sourceSnapshot value.
- *
- * @return none
- */
- public function setSourceSnapshot($sourceSnapshot)
- {
- $this->_sourceSnapshot = $sourceSnapshot;
- }
-
- /**
- * Gets lease ID.
- *
- * @return string
- */
- public function getLeaseId()
- {
- return $this->_leaseId;
- }
-
- /**
- * Sets lease ID.
- *
- * @param string $leaseId value.
- *
- * @return none
- */
- public function setLeaseId($leaseId)
- {
- $this->_leaseId = $leaseId;
- }
-
- /**
- * Gets source lease ID.
- *
- * @return string
- */
- public function getSourceLeaseId()
- {
- return $this->_sourceLeaseId;
- }
-
- /**
- * Sets source lease ID.
- *
- * @param string $sourceLeaseId value.
- *
- * @return none
- */
- public function setSourceLeaseId($sourceLeaseId)
- {
- $this->_sourceLeaseId = $sourceLeaseId;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CopyBlobResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CopyBlobResult.php
deleted file mode 100644
index d2302e3a..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CopyBlobResult.php
+++ /dev/null
@@ -1,120 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * The result of calling copyBlob API.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class CopyBlobResult
-{
- /**
- * @var string
- */
- private $_etag;
-
- /**
- * @var \DateTime
- */
- private $_lastModified;
-
- /**
- * Creates CopyBlobResult object from the response of the copy blob request.
- *
- * @param array $headers The HTTP response headers in array representation.
- *
- * @return CopyBlobResult
- */
- public static function create($headers)
- {
- $result = new CopyBlobResult();
- $result->setETag(Utilities::tryGetValueInsensitive(
- Resources::ETAG,
- $headers));
- if (Utilities::arrayKeyExistsInsensitive(Resources::LAST_MODIFIED, $headers)) {
- $lastModified = Utilities::tryGetValueInsensitive(
- Resources::LAST_MODIFIED,
- $headers);
- $result->setLastModified(Utilities::rfc1123ToDateTime($lastModified));
- }
-
- return $result;
- }
-
- /**
- * Gets ETag.
- *
- * @return string
- */
- public function getETag()
- {
- return $this->_etag;
- }
-
- /**
- * Sets ETag.
- *
- * @param string $etag value.
- *
- * @return none
- */
- public function setETag($etag)
- {
- $this->_etag = $etag;
- }
-
- /**
- * Gets blob lastModified.
- *
- * @return \DateTime
- */
- public function getLastModified()
- {
- return $this->_lastModified;
- }
-
- /**
- * Sets blob lastModified.
- *
- * @param \DateTime $lastModified value.
- *
- * @return none
- */
- public function setLastModified($lastModified)
- {
- $this->_lastModified = $lastModified;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobBlockOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobBlockOptions.php
deleted file mode 100644
index 85e2b0c0..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobBlockOptions.php
+++ /dev/null
@@ -1,95 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Optional parameters for createBlobBlock wrapper
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class CreateBlobBlockOptions extends BlobServiceOptions
-{
- /**
- * @var string
- */
- private $_contentMD5;
-
- /**
- * @var string
- */
- private $_leaseId;
-
- /**
- * Gets lease Id for the blob
- *
- * @return string
- */
- public function getLeaseId()
- {
- return $this->_leaseId;
- }
-
- /**
- * Sets lease Id for the blob
- *
- * @param string $leaseId the blob lease id.
- *
- * @return none
- */
- public function setLeaseId($leaseId)
- {
- $this->_leaseId = $leaseId;
- }
-
- /**
- * Gets blob contentMD5.
- *
- * @return string.
- */
- public function getContentMD5()
- {
- return $this->_contentMD5;
- }
-
- /**
- * Sets blob contentMD5.
- *
- * @param string $contentMD5 value.
- *
- * @return none.
- */
- public function setContentMD5($contentMD5)
- {
- $this->_contentMD5 = $contentMD5;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobOptions.php
deleted file mode 100644
index 643b4ad6..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobOptions.php
+++ /dev/null
@@ -1,421 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Validate;
-
-/**
- * optional parameters for createXXXBlob wrapper
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class CreateBlobOptions extends BlobServiceOptions
-{
- /**
- * @var string
- */
- private $_contentType;
-
- /**
- * @var string
- */
- private $_contentEncoding;
-
- /**
- * @var string
- */
- private $_contentLanguage;
-
- /**
- * @var string
- */
- private $_contentMD5;
-
- /**
- * @var string
- */
- private $_cacheControl;
-
- /**
- * @var string
- */
- private $_blobContentType;
-
- /**
- * @var string
- */
- private $_blobContentEncoding;
-
- /**
- * @var string
- */
- private $_blobContentLanguage;
-
- /**
- * @var string
- */
- private $_blobContentMD5;
-
- /**
- * @var string
- */
- private $_blobCacheControl;
-
- /**
- * @var array
- */
- private $_metadata;
-
- /**
- * @var string
- */
- private $_leaseId;
-
- /**
- * @var integer
- */
- private $_sequenceNumber;
-
- /**
- * @var AccessCondition
- */
- private $_accessCondition;
-
- /**
- * Gets blob ContentType.
- *
- * @return string.
- */
- public function getBlobContentType()
- {
- return $this->_blobContentType;
- }
-
- /**
- * Sets blob ContentType.
- *
- * @param string $blobContentType value.
- *
- * @return none.
- */
- public function setBlobContentType($blobContentType)
- {
- $this->_blobContentType = $blobContentType;
- }
-
- /**
- * Gets blob ContentEncoding.
- *
- * @return string.
- */
- public function getBlobContentEncoding()
- {
- return $this->_blobContentEncoding;
- }
-
- /**
- * Sets blob ContentEncoding.
- *
- * @param string $blobContentEncoding value.
- *
- * @return none.
- */
- public function setBlobContentEncoding($blobContentEncoding)
- {
- $this->_blobContentEncoding = $blobContentEncoding;
- }
-
- /**
- * Gets blob ContentLanguage.
- *
- * @return string.
- */
- public function getBlobContentLanguage()
- {
- return $this->_blobContentLanguage;
- }
-
- /**
- * Sets blob ContentLanguage.
- *
- * @param string $blobContentLanguage value.
- *
- * @return none.
- */
- public function setBlobContentLanguage($blobContentLanguage)
- {
- $this->_blobContentLanguage = $blobContentLanguage;
- }
-
- /**
- * Gets blob ContentMD5.
- *
- * @return string.
- */
- public function getBlobContentMD5()
- {
- return $this->_blobContentMD5;
- }
-
- /**
- * Sets blob ContentMD5.
- *
- * @param string $blobContentMD5 value.
- *
- * @return none.
- */
- public function setBlobContentMD5($blobContentMD5)
- {
- $this->_blobContentMD5 = $blobContentMD5;
- }
-
- /**
- * Gets blob cache control.
- *
- * @return string.
- */
- public function getBlobCacheControl()
- {
- return $this->_blobCacheControl;
- }
-
- /**
- * Sets blob cacheControl.
- *
- * @param string $blobCacheControl value to use.
- *
- * @return none.
- */
- public function setBlobCacheControl($blobCacheControl)
- {
- $this->_blobCacheControl = $blobCacheControl;
- }
-
- /**
- * Gets blob contentType.
- *
- * @return string.
- */
- public function getContentType()
- {
- return $this->_contentType;
- }
-
- /**
- * Sets blob contentType.
- *
- * @param string $contentType value.
- *
- * @return none.
- */
- public function setContentType($contentType)
- {
- $this->_contentType = $contentType;
- }
-
- /**
- * Gets contentEncoding.
- *
- * @return string.
- */
- public function getContentEncoding()
- {
- return $this->_contentEncoding;
- }
-
- /**
- * Sets contentEncoding.
- *
- * @param string $contentEncoding value.
- *
- * @return none.
- */
- public function setContentEncoding($contentEncoding)
- {
- $this->_contentEncoding = $contentEncoding;
- }
-
- /**
- * Gets contentLanguage.
- *
- * @return string.
- */
- public function getContentLanguage()
- {
- return $this->_contentLanguage;
- }
-
- /**
- * Sets contentLanguage.
- *
- * @param string $contentLanguage value.
- *
- * @return none.
- */
- public function setContentLanguage($contentLanguage)
- {
- $this->_contentLanguage = $contentLanguage;
- }
-
- /**
- * Gets contentMD5.
- *
- * @return string.
- */
- public function getContentMD5()
- {
- return $this->_contentMD5;
- }
-
- /**
- * Sets contentMD5.
- *
- * @param string $contentMD5 value.
- *
- * @return none.
- */
- public function setContentMD5($contentMD5)
- {
- $this->_contentMD5 = $contentMD5;
- }
-
- /**
- * Gets cacheControl.
- *
- * @return string.
- */
- public function getCacheControl()
- {
- return $this->_cacheControl;
- }
-
- /**
- * Sets cacheControl.
- *
- * @param string $cacheControl value to use.
- *
- * @return none.
- */
- public function setCacheControl($cacheControl)
- {
- $this->_cacheControl = $cacheControl;
- }
-
- /**
- * Gets access condition
- *
- * @return AccessCondition
- */
- public function getAccessCondition()
- {
- return $this->_accessCondition;
- }
-
- /**
- * Sets access condition
- *
- * @param AccessCondition $accessCondition value to use.
- *
- * @return none.
- */
- public function setAccessCondition($accessCondition)
- {
- $this->_accessCondition = $accessCondition;
- }
-
- /**
- * Gets blob metadata.
- *
- * @return array.
- */
- public function getMetadata()
- {
- return $this->_metadata;
- }
-
- /**
- * Sets blob metadata.
- *
- * @param string $metadata value.
- *
- * @return none.
- */
- public function setMetadata($metadata)
- {
- $this->_metadata = $metadata;
- }
-
- /**
- * Gets blob sequenceNumber.
- *
- * @return int.
- */
- public function getSequenceNumber()
- {
- return $this->_sequenceNumber;
- }
-
- /**
- * Sets blob sequenceNumber.
- *
- * @param int $sequenceNumber value.
- *
- * @return none.
- */
- public function setSequenceNumber($sequenceNumber)
- {
- Validate::isInteger($sequenceNumber, 'sequenceNumber');
- $this->_sequenceNumber = $sequenceNumber;
- }
-
- /**
- * Gets lease Id for the blob
- *
- * @return string
- */
- public function getLeaseId()
- {
- return $this->_leaseId;
- }
-
- /**
- * Sets lease Id for the blob
- *
- * @param string $leaseId the blob lease id.
- *
- * @return none
- */
- public function setLeaseId($leaseId)
- {
- $this->_leaseId = $leaseId;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobPagesOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobPagesOptions.php
deleted file mode 100644
index bf87d11c..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobPagesOptions.php
+++ /dev/null
@@ -1,122 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Optional parameters for create and clear blob pages
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class CreateBlobPagesOptions extends BlobServiceOptions
-{
- /**
- * @var string
- */
- private $_contentMD5;
-
- /**
- * @var string
- */
- private $_leaseId;
-
- /**
- * @var AccessCondition
- */
- private $_accessCondition;
-
- /**
- * Gets access condition
- *
- * @return AccessCondition
- */
- public function getAccessCondition()
- {
- return $this->_accessCondition;
- }
-
- /**
- * Sets access condition
- *
- * @param AccessCondition $accessCondition value to use.
- *
- * @return none.
- */
- public function setAccessCondition($accessCondition)
- {
- $this->_accessCondition = $accessCondition;
- }
-
- /**
- * Gets lease Id for the blob
- *
- * @return string
- */
- public function getLeaseId()
- {
- return $this->_leaseId;
- }
-
- /**
- * Sets lease Id for the blob
- *
- * @param string $leaseId the blob lease id.
- *
- * @return none
- */
- public function setLeaseId($leaseId)
- {
- $this->_leaseId = $leaseId;
- }
-
- /**
- * Gets blob contentMD5.
- *
- * @return string.
- */
- public function getContentMD5()
- {
- return $this->_contentMD5;
- }
-
- /**
- * Sets blob contentMD5.
- *
- * @param string $contentMD5 value.
- *
- * @return none.
- */
- public function setContentMD5($contentMD5)
- {
- $this->_contentMD5 = $contentMD5;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobPagesResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobPagesResult.php
deleted file mode 100644
index 67551a89..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobPagesResult.php
+++ /dev/null
@@ -1,184 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * Holds result of calling create or clear blob pages
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class CreateBlobPagesResult
-{
- /**
- * @var \DateTime
- */
- private $_lastModified;
-
- /**
- * @var string
- */
- private $_etag;
-
- /**
- * @var integer
- */
- private $_sequenceNumber;
-
- /**
- * @var string
- */
- private $_contentMD5;
-
- /**
- * Creates CreateBlobPagesResult object from $parsed response in array
- * representation
- *
- * @param array $headers HTTP response headers
- *
- * @return CreateBlobPagesResult
- */
- public static function create($headers)
- {
- $result = new CreateBlobPagesResult();
- $clean = array_change_key_case($headers);
-
- $date = $clean[Resources::LAST_MODIFIED];
- $date = Utilities::rfc1123ToDateTime($date);
- $result->setETag($clean[Resources::ETAG]);
- $result->setLastModified($date);
- $result->setContentMD5(
- Utilities::tryGetValue($clean, Resources::CONTENT_MD5)
- );
- $result->setSequenceNumber(
- intval(
- Utilities::tryGetValue($clean, Resources::X_MS_BLOB_SEQUENCE_NUMBER)
- )
- );
-
- return $result;
- }
-
- /**
- * Gets blob lastModified.
- *
- * @return \DateTime.
- */
- public function getLastModified()
- {
- return $this->_lastModified;
- }
-
- /**
- * Sets blob lastModified.
- *
- * @param \DateTime $lastModified value.
- *
- * @return none.
- */
- public function setLastModified($lastModified)
- {
- Validate::isDate($lastModified);
- $this->_lastModified = $lastModified;
- }
-
- /**
- * Gets blob etag.
- *
- * @return string.
- */
- public function getETag()
- {
- return $this->_etag;
- }
-
- /**
- * Sets blob etag.
- *
- * @param string $etag value.
- *
- * @return none.
- */
- public function setETag($etag)
- {
- Validate::isString($etag, 'etag');
- $this->_etag = $etag;
- }
-
- /**
- * Gets blob contentMD5.
- *
- * @return string.
- */
- public function getContentMD5()
- {
- return $this->_contentMD5;
- }
-
- /**
- * Sets blob contentMD5.
- *
- * @param string $contentMD5 value.
- *
- * @return none.
- */
- public function setContentMD5($contentMD5)
- {
- $this->_contentMD5 = $contentMD5;
- }
-
- /**
- * Gets blob sequenceNumber.
- *
- * @return int.
- */
- public function getSequenceNumber()
- {
- return $this->_sequenceNumber;
- }
-
- /**
- * Sets blob sequenceNumber.
- *
- * @param int $sequenceNumber value.
- *
- * @return none.
- */
- public function setSequenceNumber($sequenceNumber)
- {
- Validate::isInteger($sequenceNumber, 'sequenceNumber');
- $this->_sequenceNumber = $sequenceNumber;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobSnapshotOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobSnapshotOptions.php
deleted file mode 100644
index 3c19e13d..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobSnapshotOptions.php
+++ /dev/null
@@ -1,123 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * The optional parameters for createBlobSnapshot wrapper.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class CreateBlobSnapshotOptions extends BlobServiceOptions
-{
- /**
- * @var array
- */
- private $_metadata;
-
- /**
- * @var AccessCondition
- */
- private $_accessCondition;
-
- /**
- * @var string
- */
- private $_leaseId;
-
- /**
- * Gets metadata.
- *
- * @return array
- */
- public function getMetadata()
- {
- return $this->_metadata;
- }
-
- /**
- * Sets metadata.
- *
- * @param array $metadata The metadata array.
- *
- * @return none
- */
- public function setMetadata($metadata)
- {
- $this->_metadata = $metadata;
- }
-
- /**
- * Gets access condition.
- *
- * @return AccessCondition
- */
- public function getAccessCondition()
- {
- return $this->_accessCondition;
- }
-
- /**
- * Sets access condition.
- *
- * @param AccessCondition $accessCondition The access condition object.
- *
- * @return none
- */
- public function setAccessCondition($accessCondition)
- {
- $this->_accessCondition = $accessCondition;
- }
-
- /**
- * Gets lease Id.
- *
- * @return string
- */
- public function getLeaseId()
- {
- return $this->_leaseId;
- }
-
- /**
- * Sets lease Id.
- *
- * @param string $leaseId The lease Id.
- *
- * @return none
- */
- public function setLeaseId($leaseId)
- {
- $this->_leaseId = $leaseId;
- }
-
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobSnapshotResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobSnapshotResult.php
deleted file mode 100644
index 6414616c..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateBlobSnapshotResult.php
+++ /dev/null
@@ -1,154 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * The result of creating Blob snapshot.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class CreateBlobSnapshotResult
-{
- /**
- * A DateTime value which uniquely identifies the snapshot.
- * @var string
- */
- private $_snapshot;
-
- /**
- * The ETag for the destination blob.
- * @var string
- */
- private $_etag;
-
- /**
- * The date/time that the copy operation to the destination blob completed.
- * @var \DateTime
- */
- private $_lastModified;
-
- /**
- * Creates CreateBlobSnapshotResult object from the response of the
- * create Blob snapshot request.
- *
- * @param array $headers The HTTP response headers in array representation.
- *
- * @return CreateBlobSnapshotResult
- */
- public static function create($headers)
- {
- $result = new CreateBlobSnapshotResult();
- $headerWithLowerCaseKey = array_change_key_case($headers);
-
- $result->setETag($headerWithLowerCaseKey[Resources::ETAG]);
-
- $result->setLastModified(
- Utilities::rfc1123ToDateTime(
- $headerWithLowerCaseKey[Resources::LAST_MODIFIED]
- )
- );
-
- $result->setSnapshot($headerWithLowerCaseKey[Resources::X_MS_SNAPSHOT]);
-
- return $result;
- }
-
- /**
- * Gets snapshot.
- *
- * @return string
- */
- public function getSnapshot()
- {
- return $this->_snapshot;
- }
-
- /**
- * Sets snapshot.
- *
- * @param string $snapshot value.
- *
- * @return none
- */
- public function setSnapshot($snapshot)
- {
- $this->_snapshot = $snapshot;
- }
-
- /**
- * Gets ETag.
- *
- * @return string
- */
- public function getETag()
- {
- return $this->_etag;
- }
-
- /**
- * Sets ETag.
- *
- * @param string $etag value.
- *
- * @return none
- */
- public function setETag($etag)
- {
- $this->_etag = $etag;
- }
-
- /**
- * Gets blob lastModified.
- *
- * @return \DateTime
- */
- public function getLastModified()
- {
- return $this->_lastModified;
- }
-
- /**
- * Sets blob lastModified.
- *
- * @param \DateTime $lastModified value.
- *
- * @return none
- */
- public function setLastModified($lastModified)
- {
- $this->_lastModified = $lastModified;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateContainerOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateContainerOptions.php
deleted file mode 100644
index 24bb7384..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/CreateContainerOptions.php
+++ /dev/null
@@ -1,123 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Blob\Models\BlobServiceOptions;
-use WindowsAzure\Common\Internal\Validate;
-
-/**
- * Optional parameters for createContainer API
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class CreateContainerOptions extends BlobServiceOptions
-{
- /**
- * @var string
- */
- private $_publicAccess;
-
- /**
- * @var array
- */
- private $_metadata;
-
- /**
- * Gets container public access.
- *
- * @return string.
- */
- public function getPublicAccess()
- {
- return $this->_publicAccess;
- }
-
- /**
- * Specifies whether data in the container may be accessed publicly and the level
- * of access. Possible values include:
- * 1) container: Specifies full public read access for container and blob data.
- * Clients can enumerate blobs within the container via anonymous request, but
- * cannot enumerate containers within the storage account.
- * 2) blob: Specifies public read access for blobs. Blob data within this
- * container can be read via anonymous request, but container data is not
- * available. Clients cannot enumerate blobs within the container via
- * anonymous request.
- * If this value is not specified in the request, container data is private to
- * the account owner.
- *
- * @param string $publicAccess access modifier for the container
- *
- * @return none.
- */
- public function setPublicAccess($publicAccess)
- {
- Validate::isString($publicAccess, 'publicAccess');
- $this->_publicAccess = $publicAccess;
- }
-
- /**
- * Gets user defined metadata.
- *
- * @return array.
- */
- public function getMetadata()
- {
- return $this->_metadata;
- }
-
- /**
- * Sets user defined metadata. This metadata should be added without the header
- * prefix (x-ms-meta-*).
- *
- * @param array $metadata user defined metadata object in array form.
- *
- * @return none.
- */
- public function setMetadata($metadata)
- {
- $this->_metadata = $metadata;
- }
-
- /**
- * Adds new metadata element. This element should be added without the header
- * prefix (x-ms-meta-*).
- *
- * @param string $key metadata key element.
- * @param string $value metadata value element.
- *
- * @return none.
- */
- public function addMetadata($key, $value)
- {
- $this->_metadata[$key] = $value;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/DeleteBlobOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/DeleteBlobOptions.php
deleted file mode 100644
index 79865a90..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/DeleteBlobOptions.php
+++ /dev/null
@@ -1,151 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Validate;
-
-/**
- * Optional parameters for deleteBlob wrapper
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class DeleteBlobOptions extends BlobServiceOptions
-{
- /**
- * @var string
- */
- private $_leaseId;
-
- /**
- * @var string
- */
- private $_snapshot;
-
- /**
- * @var AccessCondition
- */
- private $_accessCondition;
-
- /**
- * @var boolean
- */
- private $_deleteSnaphotsOnly;
-
- /**
- * Gets lease Id for the blob
- *
- * @return string
- */
- public function getLeaseId()
- {
- return $this->_leaseId;
- }
-
- /**
- * Sets lease Id for the blob
- *
- * @param string $leaseId the blob lease id.
- *
- * @return none
- */
- public function setLeaseId($leaseId)
- {
- $this->_leaseId = $leaseId;
- }
-
- /**
- * Gets access condition
- *
- * @return AccessCondition
- */
- public function getAccessCondition()
- {
- return $this->_accessCondition;
- }
-
- /**
- * Sets access condition
- *
- * @param AccessCondition $accessCondition value to use.
- *
- * @return none.
- */
- public function setAccessCondition($accessCondition)
- {
- $this->_accessCondition = $accessCondition;
- }
-
- /**
- * Gets blob snapshot.
- *
- * @return string.
- */
- public function getSnapshot()
- {
- return $this->_snapshot;
- }
-
- /**
- * Sets blob snapshot.
- *
- * @param string $snapshot value.
- *
- * @return none.
- */
- public function setSnapshot($snapshot)
- {
- $this->_snapshot = $snapshot;
- }
-
- /**
- * Gets blob deleteSnaphotsOnly.
- *
- * @return boolean.
- */
- public function getDeleteSnaphotsOnly()
- {
- return $this->_deleteSnaphotsOnly;
- }
-
- /**
- * Sets blob deleteSnaphotsOnly.
- *
- * @param string $deleteSnaphotsOnly value.
- *
- * @return boolean.
- */
- public function setDeleteSnaphotsOnly($deleteSnaphotsOnly)
- {
- Validate::isBoolean($deleteSnaphotsOnly);
- $this->_deleteSnaphotsOnly = $deleteSnaphotsOnly;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/DeleteContainerOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/DeleteContainerOptions.php
deleted file mode 100644
index a96494a0..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/DeleteContainerOptions.php
+++ /dev/null
@@ -1,68 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * The optional for deleteContainer API.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class DeleteContainerOptions extends BlobServiceOptions
-{
- /**
- * @var AccessCondition
- */
- private $_accessCondition;
-
- /**
- * Gets access condition
- *
- * @return AccessCondition
- */
- public function getAccessCondition()
- {
- return $this->_accessCondition;
- }
-
- /**
- * Sets access condition
- *
- * @param AccessCondition $accessCondition value to use.
- *
- * @return none.
- */
- public function setAccessCondition($accessCondition)
- {
- $this->_accessCondition = $accessCondition;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobMetadataOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobMetadataOptions.php
deleted file mode 100644
index 210ef943..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobMetadataOptions.php
+++ /dev/null
@@ -1,122 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Optional parameters for getBlobMetadata wrapper
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class GetBlobMetadataOptions extends BlobServiceOptions
-{
- /**
- * @var string
- */
- private $_leaseId;
-
- /**
- * @var string
- */
- private $_snapshot;
-
- /**
- * @var AccessCondition
- */
- private $_accessCondition;
-
- /**
- * Gets lease Id for the blob
- *
- * @return string
- */
- public function getLeaseId()
- {
- return $this->_leaseId;
- }
-
- /**
- * Sets lease Id for the blob
- *
- * @param string $leaseId the blob lease id.
- *
- * @return none
- */
- public function setLeaseId($leaseId)
- {
- $this->_leaseId = $leaseId;
- }
-
- /**
- * Gets access condition
- *
- * @return AccessCondition
- */
- public function getAccessCondition()
- {
- return $this->_accessCondition;
- }
-
- /**
- * Sets access condition
- *
- * @param AccessCondition $accessCondition value to use.
- *
- * @return none.
- */
- public function setAccessCondition($accessCondition)
- {
- $this->_accessCondition = $accessCondition;
- }
-
- /**
- * Gets blob snapshot.
- *
- * @return string.
- */
- public function getSnapshot()
- {
- return $this->_snapshot;
- }
-
- /**
- * Sets blob snapshot.
- *
- * @param string $snapshot value.
- *
- * @return none.
- */
- public function setSnapshot($snapshot)
- {
- $this->_snapshot = $snapshot;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobMetadataResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobMetadataResult.php
deleted file mode 100644
index 4309009f..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobMetadataResult.php
+++ /dev/null
@@ -1,147 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * Holds results of calling getBlobMetadata wrapper
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class GetBlobMetadataResult
-{
-
- /**
- * @var \DateTime
- */
- private $_lastModified;
-
- /**
- * @var string
- */
- private $_etag;
-
- /**
- * @var array
- */
- private $_metadata;
-
- /**
- * Creates GetBlobMetadataResult from response headers.
- *
- * @param array $headers The HTTP response headers.
- * @param array $metadata The blob metadata array.
- *
- * @return GetBlobMetadataResult
- */
- public static function create($headers, $metadata)
- {
- $result = new GetBlobMetadataResult();
- $date = $headers[Resources::LAST_MODIFIED];
- $result->setLastModified(Utilities::rfc1123ToDateTime($date));
- $result->setETag($headers[Resources::ETAG]);
- $result->setMetadata(is_null($metadata) ? array() : $metadata);
-
- return $result;
- }
-
- /**
- * Gets blob lastModified.
- *
- * @return \DateTime.
- */
- public function getLastModified()
- {
- return $this->_lastModified;
- }
-
- /**
- * Sets blob lastModified.
- *
- * @param \DateTime $lastModified value.
- *
- * @return none.
- */
- public function setLastModified($lastModified)
- {
- Validate::isDate($lastModified);
- $this->_lastModified = $lastModified;
- }
-
- /**
- * Gets blob etag.
- *
- * @return string.
- */
- public function getETag()
- {
- return $this->_etag;
- }
-
- /**
- * Sets blob etag.
- *
- * @param string $etag value.
- *
- * @return none.
- */
- public function setETag($etag)
- {
- Validate::isString($etag, 'etag');
- $this->_etag = $etag;
- }
-
- /**
- * Gets blob metadata.
- *
- * @return array.
- */
- public function getMetadata()
- {
- return $this->_metadata;
- }
-
- /**
- * Sets blob metadata.
- *
- * @param string $metadata value.
- *
- * @return none.
- */
- public function setMetadata($metadata)
- {
- $this->_metadata = $metadata;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobOptions.php
deleted file mode 100644
index 6d4292f6..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobOptions.php
+++ /dev/null
@@ -1,207 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Validate;
-
-/**
- * Optional parameters for getBlob wrapper
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class GetBlobOptions extends BlobServiceOptions
-{
- /**
- * @var string
- */
- private $_leaseId;
-
- /**
- * @var string
- */
- private $_snapshot;
-
- /**
- * @var AccessCondition
- */
- private $_accessCondition;
-
- /**
- * @var boolean
- */
- private $_computeRangeMD5;
-
- /**
- * @var integer
- */
- private $_rangeStart;
-
- /**
- * @var integer
- */
- private $_rangeEnd;
-
- /**
- * Gets lease Id for the blob
- *
- * @return string
- */
- public function getLeaseId()
- {
- return $this->_leaseId;
- }
-
- /**
- * Sets lease Id for the blob
- *
- * @param string $leaseId the blob lease id.
- *
- * @return none
- */
- public function setLeaseId($leaseId)
- {
- $this->_leaseId = $leaseId;
- }
-
- /**
- * Gets access condition
- *
- * @return AccessCondition
- */
- public function getAccessCondition()
- {
- return $this->_accessCondition;
- }
-
- /**
- * Sets access condition
- *
- * @param AccessCondition $accessCondition value to use.
- *
- * @return none.
- */
- public function setAccessCondition($accessCondition)
- {
- $this->_accessCondition = $accessCondition;
- }
-
- /**
- * Gets blob snapshot.
- *
- * @return string.
- */
- public function getSnapshot()
- {
- return $this->_snapshot;
- }
-
- /**
- * Sets blob snapshot.
- *
- * @param string $snapshot value.
- *
- * @return none.
- */
- public function setSnapshot($snapshot)
- {
- $this->_snapshot = $snapshot;
- }
-
- /**
- * Gets rangeStart
- *
- * @return integer
- */
- public function getRangeStart()
- {
- return $this->_rangeStart;
- }
-
- /**
- * Sets rangeStart
- *
- * @param integer $rangeStart the blob lease id.
- *
- * @return none
- */
- public function setRangeStart($rangeStart)
- {
- Validate::isInteger($rangeStart, 'rangeStart');
- $this->_rangeStart = $rangeStart;
- }
-
- /**
- * Gets rangeEnd
- *
- * @return integer
- */
- public function getRangeEnd()
- {
- return $this->_rangeEnd;
- }
-
- /**
- * Sets rangeEnd
- *
- * @param integer $rangeEnd range end value in bytes
- *
- * @return none
- */
- public function setRangeEnd($rangeEnd)
- {
- Validate::isInteger($rangeEnd, 'rangeEnd');
- $this->_rangeEnd = $rangeEnd;
- }
-
- /**
- * Gets computeRangeMD5
- *
- * @return boolean
- */
- public function getComputeRangeMD5()
- {
- return $this->_computeRangeMD5;
- }
-
- /**
- * Sets computeRangeMD5
- *
- * @param boolean $computeRangeMD5 value
- *
- * @return none
- */
- public function setComputeRangeMD5($computeRangeMD5)
- {
- Validate::isBoolean($computeRangeMD5);
- $this->_computeRangeMD5 = $computeRangeMD5;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobPropertiesOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobPropertiesOptions.php
deleted file mode 100644
index 0c5b96b6..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobPropertiesOptions.php
+++ /dev/null
@@ -1,122 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Optional parameters for getBlobProperties wrapper
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class GetBlobPropertiesOptions extends BlobServiceOptions
-{
- /**
- * @var string
- */
- private $_leaseId;
-
- /**
- * @var string
- */
- private $_snapshot;
-
- /**
- * @var AccessCondition
- */
- private $_accessCondition;
-
- /**
- * Gets lease Id for the blob
- *
- * @return string
- */
- public function getLeaseId()
- {
- return $this->_leaseId;
- }
-
- /**
- * Sets lease Id for the blob
- *
- * @param string $leaseId the blob lease id.
- *
- * @return none
- */
- public function setLeaseId($leaseId)
- {
- $this->_leaseId = $leaseId;
- }
-
- /**
- * Gets access condition
- *
- * @return AccessCondition
- */
- public function getAccessCondition()
- {
- return $this->_accessCondition;
- }
-
- /**
- * Sets access condition
- *
- * @param AccessCondition $accessCondition value to use.
- *
- * @return none.
- */
- public function setAccessCondition($accessCondition)
- {
- $this->_accessCondition = $accessCondition;
- }
-
- /**
- * Gets blob snapshot.
- *
- * @return string.
- */
- public function getSnapshot()
- {
- return $this->_snapshot;
- }
-
- /**
- * Sets blob snapshot.
- *
- * @param string $snapshot value.
- *
- * @return none.
- */
- public function setSnapshot($snapshot)
- {
- $this->_snapshot = $snapshot;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobPropertiesResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobPropertiesResult.php
deleted file mode 100644
index 7c291f4e..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobPropertiesResult.php
+++ /dev/null
@@ -1,95 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Holds result of calling getBlobProperties
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class GetBlobPropertiesResult
-{
- /**
- * @var BlobProperties
- */
- private $_properties;
-
- /**
- * @var array
- */
- private $_metadata;
-
- /**
- * Gets blob metadata.
- *
- * @return array.
- */
- public function getMetadata()
- {
- return $this->_metadata;
- }
-
- /**
- * Sets blob metadata.
- *
- * @param string $metadata value.
- *
- * @return none.
- */
- public function setMetadata($metadata)
- {
- $this->_metadata = $metadata;
- }
-
- /**
- * Gets blob properties.
- *
- * @return BlobProperties.
- */
- public function getProperties()
- {
- return $this->_properties;
- }
-
- /**
- * Sets blob properties.
- *
- * @param BlobProperties $properties value.
- *
- * @return none.
- */
- public function setProperties($properties)
- {
- $this->_properties = $properties;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobResult.php
deleted file mode 100644
index 70de1977..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetBlobResult.php
+++ /dev/null
@@ -1,143 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Blob\Models\BlobProperties;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * Holds result of GetBlob API.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class GetBlobResult
-{
- /**
- * @var BlobProperties
- */
- private $_properties;
-
- /**
- * @var array
- */
- private $_metadata;
-
- /**
- * @var resource
- */
- private $_contentStream;
-
- /**
- * Creates GetBlobResult from getBlob call.
- *
- * @param array $headers The HTTP response headers.
- * @param string $body The response body.
- * @param array $metadata The blob metadata.
- *
- * @return GetBlobResult
- */
- public static function create($headers, $body, $metadata)
- {
- $result = new GetBlobResult();
- $result->setContentStream(Utilities::stringToStream($body));
- $result->setProperties(BlobProperties::create($headers));
- $result->setMetadata(is_null($metadata) ? array() : $metadata);
-
- return $result;
- }
-
- /**
- * Gets blob metadata.
- *
- * @return array
- */
- public function getMetadata()
- {
- return $this->_metadata;
- }
-
- /**
- * Sets blob metadata.
- *
- * @param string $metadata value.
- *
- * @return none
- */
- public function setMetadata($metadata)
- {
- $this->_metadata = $metadata;
- }
-
- /**
- * Gets blob properties.
- *
- * @return BlobProperties
- */
- public function getProperties()
- {
- return $this->_properties;
- }
-
- /**
- * Sets blob properties.
- *
- * @param BlobProperties $properties value.
- *
- * @return none
- */
- public function setProperties($properties)
- {
- $this->_properties = $properties;
- }
-
- /**
- * Gets blob contentStream.
- *
- * @return resource
- */
- public function getContentStream()
- {
- return $this->_contentStream;
- }
-
- /**
- * Sets blob contentStream.
- *
- * @param resource $contentStream The stream handle.
- *
- * @return none
- */
- public function setContentStream($contentStream)
- {
- $this->_contentStream = $contentStream;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetContainerACLResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetContainerACLResult.php
deleted file mode 100644
index b68d56e5..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetContainerACLResult.php
+++ /dev/null
@@ -1,145 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Blob\Models\ContainerAcl;
-
-/**
- * Holds container ACL
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class GetContainerAclResult
-{
- /**
- * @var ContainerAcl
- */
- private $_containerACL;
-
- /**
- * @var \DateTime
- */
- private $_lastModified;
-
- /**
- * @var string
- */
- private $_etag;
-
- /**
- * Parses the given array into signed identifiers
- *
- * @param string $publicAccess container public access
- * @param string $etag container etag
- * @param \DateTime $lastModified last modification date
- * @param array $parsed parsed response into array
- * representation
- *
- * @return none.
- */
- public static function create($publicAccess, $etag, $lastModified, $parsed)
- {
- $result = new GetContainerAclResult();
- $result->setETag($etag);
- $result->setLastModified($lastModified);
- $acl = ContainerAcl::create($publicAccess, $parsed);
- $result->setContainerAcl($acl);
-
- return $result;
- }
-
- /**
- * Gets container ACL
- *
- * @return ContainerAcl
- */
- public function getContainerAcl()
- {
- return $this->_containerACL;
- }
-
- /**
- * Sets container ACL
- *
- * @param ContainerAcl $containerACL value.
- *
- * @return none.
- */
- public function setContainerAcl($containerACL)
- {
- $this->_containerACL = $containerACL;
- }
-
- /**
- * Gets container lastModified.
- *
- * @return \DateTime.
- */
- public function getLastModified()
- {
- return $this->_lastModified;
- }
-
- /**
- * Sets container lastModified.
- *
- * @param \DateTime $lastModified value.
- *
- * @return none.
- */
- public function setLastModified($lastModified)
- {
- $this->_lastModified = $lastModified;
- }
-
- /**
- * Gets container etag.
- *
- * @return string.
- */
- public function getETag()
- {
- return $this->_etag;
- }
-
- /**
- * Sets container etag.
- *
- * @param string $etag value.
- *
- * @return none.
- */
- public function setETag($etag)
- {
- $this->_etag = $etag;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetContainerPropertiesResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetContainerPropertiesResult.php
deleted file mode 100644
index 2e1a9428..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/GetContainerPropertiesResult.php
+++ /dev/null
@@ -1,126 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Holds result of getContainerProperties and getContainerMetadata
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class GetContainerPropertiesResult
-{
- /**
- * @var \DateTime
- */
- private $_lastModified;
-
- /**
- * @var string
- */
- private $_etag;
-
- /**
- * @var array
- */
- private $_metadata;
-
- /**
- * Any operation that modifies the container or its properties or metadata
- * updates the last modified time. Operations on blobs do not affect the last
- * modified time of the container.
- *
- * @return \DateTime.
- */
- public function getLastModified()
- {
- return $this->_lastModified;
- }
-
- /**
- * Sets container lastModified.
- *
- * @param \DateTime $lastModified value.
- *
- * @return none.
- */
- public function setLastModified($lastModified)
- {
- $this->_lastModified = $lastModified;
- }
-
- /**
- * The entity tag for the container. If the request version is 2011-08-18 or
- * newer, the ETag value will be in quotes.
- *
- * @return string.
- */
- public function getETag()
- {
- return $this->_etag;
- }
-
- /**
- * Sets container etag.
- *
- * @param string $etag value.
- *
- * @return none.
- */
- public function setETag($etag)
- {
- $this->_etag = $etag;
- }
-
- /**
- * Gets user defined metadata.
- *
- * @return array.
- */
- public function getMetadata()
- {
- return $this->_metadata;
- }
-
- /**
- * Sets user defined metadata. This metadata should be added without the header
- * prefix (x-ms-meta-*).
- *
- * @param array $metadata user defined metadata object in array form.
- *
- * @return none.
- */
- public function setMetadata($metadata)
- {
- $this->_metadata = $metadata;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/LeaseMode.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/LeaseMode.php
deleted file mode 100644
index d8aedd40..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/LeaseMode.php
+++ /dev/null
@@ -1,46 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Modes for leasing a blob
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class LeaseMode
-{
- const ACQUIRE_ACTION = 'acquire';
- const RENEW_ACTION = 'renew';
- const RELEASE_ACTION = 'release';
- const BREAK_ACTION = 'break';
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListBlobBlocksOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListBlobBlocksOptions.php
deleted file mode 100644
index e85cff60..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListBlobBlocksOptions.php
+++ /dev/null
@@ -1,187 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Validate;
-
-/**
- * Optional parameters for listBlobBlock wrapper
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ListBlobBlocksOptions extends BlobServiceOptions
-{
- /**
- * @var string
- */
- private $_leaseId;
-
- /**
- * @var string
- */
- private $_snapshot;
-
- /**
- * @var boolean
- */
- private $_includeUncommittedBlobs;
-
- /**
- * @var boolean
- */
- private $_includeCommittedBlobs;
-
- /**
- * Holds result of list type. You can access it by this order:
- * $_listType[$this->_includeUncommittedBlobs][$this->_includeCommittedBlobs]
- *
- * @var array
- */
- private static $_listType;
-
- /**
- * Constructs the static variable $listType.
- */
- public function __construct()
- {
- self::$_listType[true][true] = 'all';
- self::$_listType[true][false] = 'uncommitted';
- self::$_listType[false][true] = 'committed';
- self::$_listType[false][false] = 'all';
-
- $this->_includeUncommittedBlobs = false;
- $this->_includeCommittedBlobs = false;
- }
-
- /**
- * Gets lease Id for the blob
- *
- * @return string
- */
- public function getLeaseId()
- {
- return $this->_leaseId;
- }
-
- /**
- * Sets lease Id for the blob
- *
- * @param string $leaseId the blob lease id.
- *
- * @return none
- */
- public function setLeaseId($leaseId)
- {
- $this->_leaseId = $leaseId;
- }
-
- /**
- * Gets blob snapshot.
- *
- * @return string.
- */
- public function getSnapshot()
- {
- return $this->_snapshot;
- }
-
- /**
- * Sets blob snapshot.
- *
- * @param string $snapshot value.
- *
- * @return none.
- */
- public function setSnapshot($snapshot)
- {
- $this->_snapshot = $snapshot;
- }
-
- /**
- * Sets the include uncommittedBlobs flag.
- *
- * @param bool $includeUncommittedBlobs value.
- *
- * @return none.
- */
- public function setIncludeUncommittedBlobs($includeUncommittedBlobs)
- {
- Validate::isBoolean($includeUncommittedBlobs);
- $this->_includeUncommittedBlobs = $includeUncommittedBlobs;
- }
-
- /**
- * Indicates if uncommittedBlobs is included or not.
- *
- * @return boolean.
- */
- public function getIncludeUncommittedBlobs()
- {
- return $this->_includeUncommittedBlobs;
- }
-
- /**
- * Sets the include committedBlobs flag.
- *
- * @param bool $includeCommittedBlobs value.
- *
- * @return none.
- */
- public function setIncludeCommittedBlobs($includeCommittedBlobs)
- {
- Validate::isBoolean($includeCommittedBlobs);
- $this->_includeCommittedBlobs = $includeCommittedBlobs;
- }
-
- /**
- * Indicates if committedBlobs is included or not.
- *
- * @return boolean.
- */
- public function getIncludeCommittedBlobs()
- {
- return $this->_includeCommittedBlobs;
- }
-
- /**
- * Gets block list type.
- *
- * @return string
- */
- public function getBlockListType()
- {
- $includeUncommitted = $this->_includeUncommittedBlobs;
- $includeCommitted = $this->_includeCommittedBlobs;
-
- return self::$_listType[$includeUncommitted][$includeCommitted];
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListBlobBlocksResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListBlobBlocksResult.php
deleted file mode 100644
index baf42ed3..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListBlobBlocksResult.php
+++ /dev/null
@@ -1,274 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * Holds result of listBlobBlocks
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ListBlobBlocksResult
-{
- /**
- * @var \DateTime
- */
- private $_lastModified;
-
- /**
- * @var string
- */
- private $_etag;
-
- /**
- * @var string
- */
- private $_contentType;
-
- /**
- * @var integer
- */
- private $_contentLength;
-
- /**
- * @var array
- */
- private $_committedBlocks;
-
- /**
- * @var array
- */
- private $_uncommittedBlocks;
-
- /**
- * Gets block entries from parsed response
- *
- * @param array $parsed HTTP response
- * @param string $type Block type
- *
- * @return array
- */
- private static function _getEntries($parsed, $type)
- {
- $entries = array();
-
- if (is_array($parsed)) {
- $rawEntries = array();
-
- if ( array_key_exists($type, $parsed)
- && is_array($parsed[$type])
- && !empty($parsed[$type])
- ) {
- $rawEntries = Utilities::getArray($parsed[$type]['Block']);
- }
-
- foreach ($rawEntries as $value) {
- $entries[base64_decode($value['Name'])] = $value['Size'];
- }
- }
-
- return $entries;
- }
-
- /**
- * Creates ListBlobBlocksResult from given response headers and parsed body
- *
- * @param array $headers HTTP response headers
- * @param array $parsed HTTP response body in array representation
- *
- * @return ListBlobBlocksResult
- */
- public static function create($headers, $parsed)
- {
- $result = new ListBlobBlocksResult();
- $clean = array_change_key_case($headers);
-
- $result->setETag(Utilities::tryGetValue($clean, Resources::ETAG));
- $date = Utilities::tryGetValue($clean, Resources::LAST_MODIFIED);
- if (!is_null($date)) {
- $date = Utilities::rfc1123ToDateTime($date);
- $result->setLastModified($date);
- }
- $result->setContentLength(
- intval(
- Utilities::tryGetValue($clean, Resources::X_MS_BLOB_CONTENT_LENGTH)
- )
- );
- $result->setContentType(
- Utilities::tryGetValue($clean, Resources::CONTENT_TYPE)
- );
-
- $result->_uncommittedBlocks = self::_getEntries(
- $parsed, 'UncommittedBlocks'
- );
- $result->_committedBlocks = self::_getEntries($parsed, 'CommittedBlocks');
-
- return $result;
- }
-
- /**
- * Gets blob lastModified.
- *
- * @return \DateTime.
- */
- public function getLastModified()
- {
- return $this->_lastModified;
- }
-
- /**
- * Sets blob lastModified.
- *
- * @param \DateTime $lastModified value.
- *
- * @return none.
- */
- public function setLastModified($lastModified)
- {
- Validate::isDate($lastModified);
- $this->_lastModified = $lastModified;
- }
-
- /**
- * Gets blob etag.
- *
- * @return string.
- */
- public function getETag()
- {
- return $this->_etag;
- }
-
- /**
- * Sets blob etag.
- *
- * @param string $etag value.
- *
- * @return none.
- */
- public function setETag($etag)
- {
- $this->_etag = $etag;
- }
-
- /**
- * Gets blob contentType.
- *
- * @return string.
- */
- public function getContentType()
- {
- return $this->_contentType;
- }
-
- /**
- * Sets blob contentType.
- *
- * @param string $contentType value.
- *
- * @return none.
- */
- public function setContentType($contentType)
- {
- $this->_contentType = $contentType;
- }
-
- /**
- * Gets blob contentLength.
- *
- * @return integer.
- */
- public function getContentLength()
- {
- return $this->_contentLength;
- }
-
- /**
- * Sets blob contentLength.
- *
- * @param integer $contentLength value.
- *
- * @return none.
- */
- public function setContentLength($contentLength)
- {
- Validate::isInteger($contentLength, 'contentLength');
- $this->_contentLength = $contentLength;
- }
-
- /**
- * Gets uncommitted blocks
- *
- * @return array
- */
- public function getUncommittedBlocks()
- {
- return $this->_uncommittedBlocks;
- }
-
- /**
- * Sets uncommitted blocks
- *
- * @param array $uncommittedBlocks The uncommitted blocks entries
- *
- * @return none.
- */
- public function setUncommittedBlocks($uncommittedBlocks)
- {
- $this->_uncommittedBlocks = $uncommittedBlocks;
- }
-
- /**
- * Gets committed blocks
- *
- * @return array
- */
- public function getCommittedBlocks()
- {
- return $this->_committedBlocks;
- }
-
- /**
- * Sets committed blocks
- *
- * @param array $committedBlocks The committed blocks entries
- *
- * @return none.
- */
- public function setCommittedBlocks($committedBlocks)
- {
- $this->_committedBlocks = $committedBlocks;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListBlobsOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListBlobsOptions.php
deleted file mode 100644
index b7491899..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListBlobsOptions.php
+++ /dev/null
@@ -1,238 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Validate;
-
-/**
- * Optional parameters for listBlobs API.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ListBlobsOptions extends BlobServiceOptions
-{
- /**
- * @var string
- */
- private $_prefix;
-
- /**
- * @var string
- */
- private $_marker;
-
- /**
- * @var string
- */
- private $_delimiter;
-
- /**
- * @var integer
- */
- private $_maxResults;
-
- /**
- * @var boolean
- */
- private $_includeMetadata;
-
- /**
- * @var boolean
- */
- private $_includeSnapshots;
-
- /**
- * @var boolean
- */
- private $_includeUncommittedBlobs;
-
- /**
- * Gets prefix.
- *
- * @return string.
- */
- public function getPrefix()
- {
- return $this->_prefix;
- }
-
- /**
- * Sets prefix.
- *
- * @param string $prefix value.
- *
- * @return none.
- */
- public function setPrefix($prefix)
- {
- Validate::isString($prefix, 'prefix');
- $this->_prefix = $prefix;
- }
-
- /**
- * Gets delimiter.
- *
- * @return string.
- */
- public function getDelimiter()
- {
- return $this->_delimiter;
- }
-
- /**
- * Sets prefix.
- *
- * @param string $delimiter value.
- *
- * @return none.
- */
- public function setDelimiter($delimiter)
- {
- Validate::isString($delimiter, 'delimiter');
- $this->_delimiter = $delimiter;
- }
-
- /**
- * Gets marker.
- *
- * @return string.
- */
- public function getMarker()
- {
- return $this->_marker;
- }
-
- /**
- * Sets marker.
- *
- * @param string $marker value.
- *
- * @return none.
- */
- public function setMarker($marker)
- {
- Validate::isString($marker, 'marker');
- $this->_marker = $marker;
- }
-
- /**
- * Gets max results.
- *
- * @return integer.
- */
- public function getMaxResults()
- {
- return $this->_maxResults;
- }
-
- /**
- * Sets max results.
- *
- * @param integer $maxResults value.
- *
- * @return none.
- */
- public function setMaxResults($maxResults)
- {
- Validate::isInteger($maxResults, 'maxResults');
- $this->_maxResults = $maxResults;
- }
-
- /**
- * Indicates if metadata is included or not.
- *
- * @return boolean.
- */
- public function getIncludeMetadata()
- {
- return $this->_includeMetadata;
- }
-
- /**
- * Sets the include metadata flag.
- *
- * @param bool $includeMetadata value.
- *
- * @return none.
- */
- public function setIncludeMetadata($includeMetadata)
- {
- Validate::isBoolean($includeMetadata);
- $this->_includeMetadata = $includeMetadata;
- }
-
- /**
- * Indicates if snapshots is included or not.
- *
- * @return boolean.
- */
- public function getIncludeSnapshots()
- {
- return $this->_includeSnapshots;
- }
-
- /**
- * Sets the include snapshots flag.
- *
- * @param bool $includeSnapshots value.
- *
- * @return none.
- */
- public function setIncludeSnapshots($includeSnapshots)
- {
- Validate::isBoolean($includeSnapshots);
- $this->_includeSnapshots = $includeSnapshots;
- }
-
- /**
- * Indicates if uncommittedBlobs is included or not.
- *
- * @return boolean.
- */
- public function getIncludeUncommittedBlobs()
- {
- return $this->_includeUncommittedBlobs;
- }
-
- /**
- * Sets the include uncommittedBlobs flag.
- *
- * @param bool $includeUncommittedBlobs value.
- *
- * @return none.
- */
- public function setIncludeUncommittedBlobs($includeUncommittedBlobs)
- {
- Validate::isBoolean($includeUncommittedBlobs);
- $this->_includeUncommittedBlobs = $includeUncommittedBlobs;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListBlobsResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListBlobsResult.php
deleted file mode 100644
index 22d1b829..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListBlobsResult.php
+++ /dev/null
@@ -1,339 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Blob\Models\Blob;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\InvalidArgumentTypeException;
-
-/**
- * Hold result of calliing listBlobs wrapper.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ListBlobsResult
-{
- /**
- * @var array
- */
- private $_blobPrefixes;
-
- /**
- * @var array
- */
- private $_blobs;
-
- /**
- * @var string
- */
- private $_delimiter;
-
- /**
- * @var string
- */
- private $_prefix;
-
- /**
- * @var string
- */
- private $_marker;
-
- /**
- * @var string
- */
- private $_nextMarker;
-
- /**
- * @var integer
- */
- private $_maxResults;
-
- /**
- * @var string
- */
- private $_containerName;
-
- /**
- * Creates ListBlobsResult object from parsed XML response.
- *
- * @param array $parsed XML response parsed into array.
- *
- * @return ListBlobsResult
- */
- public static function create($parsed)
- {
- $result = new ListBlobsResult();
- $result->_containerName = Utilities::tryGetKeysChainValue(
- $parsed,
- Resources::XTAG_ATTRIBUTES,
- Resources::XTAG_CONTAINER_NAME
- );
- $result->_prefix = Utilities::tryGetValue(
- $parsed, Resources::QP_PREFIX
- );
- $result->_marker = Utilities::tryGetValue(
- $parsed, Resources::QP_MARKER
- );
- $result->_nextMarker = Utilities::tryGetValue(
- $parsed, Resources::QP_NEXT_MARKER
- );
- $result->_maxResults = intval(
- Utilities::tryGetValue($parsed, Resources::QP_MAX_RESULTS, 0)
- );
- $result->_delimiter = Utilities::tryGetValue(
- $parsed, Resources::QP_DELIMITER
- );
- $result->_blobs = array();
- $result->_blobPrefixes = array();
- $rawBlobs = array();
- $rawBlobPrefixes = array();
-
- if ( is_array($parsed['Blobs'])
- && array_key_exists('Blob', $parsed['Blobs'])
- ) {
- $rawBlobs = Utilities::getArray($parsed['Blobs']['Blob']);
- }
-
- foreach ($rawBlobs as $value) {
- $blob = new Blob();
- $blob->setName($value['Name']);
- if (isset($value['Url'])) $blob->setUrl($value['Url']);
- $blob->setSnapshot(Utilities::tryGetValue($value, 'Snapshot'));
- $blob->setProperties(
- BlobProperties::create(
- Utilities::tryGetValue($value, 'Properties')
- )
- );
- $blob->setMetadata(
- Utilities::tryGetValue($value, Resources::QP_METADATA, array())
- );
-
- $result->_blobs[] = $blob;
- }
-
- if ( is_array($parsed['Blobs'])
- && array_key_exists('BlobPrefix', $parsed['Blobs'])
- ) {
- $rawBlobPrefixes = Utilities::getArray($parsed['Blobs']['BlobPrefix']);
- }
-
- foreach ($rawBlobPrefixes as $value) {
- $blobPrefix = new BlobPrefix();
- $blobPrefix->setName($value['Name']);
-
- $result->_blobPrefixes[] = $blobPrefix;
- }
-
- return $result;
- }
-
- /**
- * Gets blobs.
- *
- * @return array
- */
- public function getBlobs()
- {
- return $this->_blobs;
- }
-
- /**
- * Sets blobs.
- *
- * @param array $blobs list of blobs
- *
- * @return none
- */
- public function setBlobs($blobs)
- {
- $this->_blobs = array();
- foreach ($blobs as $blob) {
- $this->_blobs[] = clone $blob;
- }
- }
-
- /**
- * Gets blobPrefixes.
- *
- * @return array
- */
- public function getBlobPrefixes()
- {
- return $this->_blobPrefixes;
- }
-
- /**
- * Sets blobPrefixes.
- *
- * @param array $blobPrefixes list of blobPrefixes
- *
- * @return none
- */
- public function setBlobPrefixes($blobPrefixes)
- {
- $this->_blobPrefixes = array();
- foreach ($blobPrefixes as $blob) {
- $this->_blobPrefixes[] = clone $blob;
- }
- }
-
- /**
- * Gets prefix.
- *
- * @return string
- */
- public function getPrefix()
- {
- return $this->_prefix;
- }
-
- /**
- * Sets prefix.
- *
- * @param string $prefix value.
- *
- * @return none
- */
- public function setPrefix($prefix)
- {
- $this->_prefix = $prefix;
- }
-
- /**
- * Gets prefix.
- *
- * @return string
- */
- public function getDelimiter()
- {
- return $this->_delimiter;
- }
-
- /**
- * Sets prefix.
- *
- * @param string $delimiter value.
- *
- * @return none
- */
- public function setDelimiter($delimiter)
- {
- $this->_delimiter = $delimiter;
- }
-
- /**
- * Gets marker.
- *
- * @return string
- */
- public function getMarker()
- {
- return $this->_marker;
- }
-
- /**
- * Sets marker.
- *
- * @param string $marker value.
- *
- * @return none
- */
- public function setMarker($marker)
- {
- $this->_marker = $marker;
- }
-
- /**
- * Gets max results.
- *
- * @return integer
- */
- public function getMaxResults()
- {
- return $this->_maxResults;
- }
-
- /**
- * Sets max results.
- *
- * @param integer $maxResults value.
- *
- * @return none
- */
- public function setMaxResults($maxResults)
- {
- $this->_maxResults = $maxResults;
- }
-
- /**
- * Gets next marker.
- *
- * @return string
- */
- public function getNextMarker()
- {
- return $this->_nextMarker;
- }
-
- /**
- * Sets next marker.
- *
- * @param string $nextMarker value.
- *
- * @return none
- */
- public function setNextMarker($nextMarker)
- {
- $this->_nextMarker = $nextMarker;
- }
-
- /**
- * Gets container name.
- *
- * @return string
- */
- public function getContainerName()
- {
- return $this->_containerName;
- }
-
- /**
- * Sets container name.
- *
- * @param string $containerName value.
- *
- * @return none
- */
- public function setContainerName($containerName)
- {
- $this->_containerName = $containerName;
- }
-}
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListContainersOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListContainersOptions.php
deleted file mode 100644
index 0a787bee..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListContainersOptions.php
+++ /dev/null
@@ -1,172 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Blob\Models\BlobServiceOptions;
-use \WindowsAzure\Common\Internal\Validate;
-
-/**
- * Options for listBlobs API.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ListContainersOptions extends BlobServiceOptions
-{
- /**
- * Filters the results to return only containers whose name begins with the
- * specified prefix.
- *
- * @var string
- */
- private $_prefix;
-
- /**
- * Identifies the portion of the list to be returned with the next list operation
- * The operation returns a marker value within the
- * response body if the list returned was not complete. The marker value may
- * then be used in a subsequent call to request the next set of list items.
- * The marker value is opaque to the client.
- *
- * @var string
- */
- private $_marker;
-
- /**
- * Specifies the maximum number of containers to return. If the request does not
- * specify maxresults, or specifies a value greater than 5,000, the server will
- * return up to 5,000 items. If the parameter is set to a value less than or
- * equal to zero, the server will return status code 400 (Bad Request).
- *
- * @var string
- */
- private $_maxResults;
-
- /**
- * Include this parameter to specify that the container's metadata be returned
- * as part of the response body.
- *
- * @var bool
- */
- private $_includeMetadata;
-
- /**
- * Gets prefix.
- *
- * @return string.
- */
- public function getPrefix()
- {
- return $this->_prefix;
- }
-
- /**
- * Sets prefix.
- *
- * @param string $prefix value.
- *
- * @return none.
- */
- public function setPrefix($prefix)
- {
- Validate::isString($prefix, 'prefix');
- $this->_prefix = $prefix;
- }
-
- /**
- * Gets marker.
- *
- * @return string.
- */
- public function getMarker()
- {
- return $this->_marker;
- }
-
- /**
- * Sets marker.
- *
- * @param string $marker value.
- *
- * @return none.
- */
- public function setMarker($marker)
- {
- Validate::isString($marker, 'marker');
- $this->_marker = $marker;
- }
-
- /**
- * Gets max results.
- *
- * @return string.
- */
- public function getMaxResults()
- {
- return $this->_maxResults;
- }
-
- /**
- * Sets max results.
- *
- * @param string $maxResults value.
- *
- * @return none.
- */
- public function setMaxResults($maxResults)
- {
- Validate::isString($maxResults, 'maxResults');
- $this->_maxResults = $maxResults;
- }
-
- /**
- * Indicates if metadata is included or not.
- *
- * @return string.
- */
- public function getIncludeMetadata()
- {
- return $this->_includeMetadata;
- }
-
- /**
- * Sets the include metadata flag.
- *
- * @param bool $includeMetadata value.
- *
- * @return none.
- */
- public function setIncludeMetadata($includeMetadata)
- {
- Validate::isBoolean($includeMetadata);
- $this->_includeMetadata = $includeMetadata;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListContainersResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListContainersResult.php
deleted file mode 100644
index 55be9c4e..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListContainersResult.php
+++ /dev/null
@@ -1,261 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Blob\Models\Container;
-
-/**
- * Container to hold list container response object.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ListContainersResult
-{
- /**
- * @var array
- */
- private $_containers;
-
- /**
- * @var string
- */
- private $_prefix;
-
- /**
- * @var string
- */
- private $_marker;
-
- /**
- * @var string
- */
- private $_nextMarker;
-
- /**
- * @var integer
- */
- private $_maxResults;
-
- /**
- * @var string
- */
- private $_accountName;
-
- /**
- * Creates ListBlobResult object from parsed XML response.
- *
- * @param array $parsedResponse XML response parsed into array.
- *
- * @return ListBlobResult
- */
- public static function create($parsedResponse)
- {
- $result = new ListContainersResult();
- $result->_accountName = Utilities::tryGetKeysChainValue(
- $parsedResponse,
- Resources::XTAG_ATTRIBUTES,
- Resources::XTAG_ACCOUNT_NAME
- );
- $result->_prefix = Utilities::tryGetValue(
- $parsedResponse, Resources::QP_PREFIX
- );
- $result->_marker = Utilities::tryGetValue(
- $parsedResponse, Resources::QP_MARKER
- );
- $result->_nextMarker = Utilities::tryGetValue(
- $parsedResponse, Resources::QP_NEXT_MARKER
- );
- $result->_maxResults = Utilities::tryGetValue(
- $parsedResponse, Resources::QP_MAX_RESULTS
- );
- $result->_containers = array();
- $rawContainer = array();
-
- if ( !empty($parsedResponse['Containers']) ) {
- $containersArray = $parsedResponse['Containers']['Container'];
- $rawContainer = Utilities::getArray($containersArray);
- }
-
- foreach ($rawContainer as $value) {
- $container = new Container();
- $container->setName($value['Name']);
- $container->setUrl($value['Url']);
- $container->setMetadata(
- Utilities::tryGetValue($value, Resources::QP_METADATA, array())
- );
- $properties = new ContainerProperties();
- $date = $value['Properties']['Last-Modified'];
- $date = Utilities::rfc1123ToDateTime($date);
- $properties->setLastModified($date);
- $properties->setETag($value['Properties']['Etag']);
- $container->setProperties($properties);
- $result->_containers[] = $container;
- }
-
- return $result;
- }
-
- /**
- * Sets containers.
- *
- * @param array $containers list of containers.
- *
- * @return none
- */
- public function setContainers($containers)
- {
- $this->_containers = array();
- foreach ($containers as $container) {
- $this->_containers[] = clone $container;
- }
- }
-
- /**
- * Gets containers.
- *
- * @return array
- */
- public function getContainers()
- {
- return $this->_containers;
- }
-
- /**
- * Gets prefix.
- *
- * @return string
- */
- public function getPrefix()
- {
- return $this->_prefix;
- }
-
- /**
- * Sets prefix.
- *
- * @param string $prefix value.
- *
- * @return none
- */
- public function setPrefix($prefix)
- {
- $this->_prefix = $prefix;
- }
-
- /**
- * Gets marker.
- *
- * @return string
- */
- public function getMarker()
- {
- return $this->_marker;
- }
-
- /**
- * Sets marker.
- *
- * @param string $marker value.
- *
- * @return none
- */
- public function setMarker($marker)
- {
- $this->_marker = $marker;
- }
-
- /**
- * Gets max results.
- *
- * @return string
- */
- public function getMaxResults()
- {
- return $this->_maxResults;
- }
-
- /**
- * Sets max results.
- *
- * @param string $maxResults value.
- *
- * @return none
- */
- public function setMaxResults($maxResults)
- {
- $this->_maxResults = $maxResults;
- }
-
- /**
- * Gets next marker.
- *
- * @return string
- */
- public function getNextMarker()
- {
- return $this->_nextMarker;
- }
-
- /**
- * Sets next marker.
- *
- * @param string $nextMarker value.
- *
- * @return none
- */
- public function setNextMarker($nextMarker)
- {
- $this->_nextMarker = $nextMarker;
- }
-
- /**
- * Gets account name.
- *
- * @return string
- */
- public function getAccountName()
- {
- return $this->_accountName;
- }
-
- /**
- * Sets account name.
- *
- * @param string $accountName value.
- *
- * @return none
- */
- public function setAccountName($accountName)
- {
- $this->_accountName = $accountName;
- }
-}
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListPageBlobRangesOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListPageBlobRangesOptions.php
deleted file mode 100644
index c6bc42c0..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListPageBlobRangesOptions.php
+++ /dev/null
@@ -1,179 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Validate;
-
-/**
- * Optional parameters for listPageBlobRanges wrapper
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ListPageBlobRangesOptions extends BlobServiceOptions
-{
- /**
- * @var string
- */
- private $_leaseId;
-
- /**
- * @var string
- */
- private $_snapshot;
-
- /**
- * @var integer
- */
- private $_rangeStart;
-
- /**
- * @var integer
- */
- private $_rangeEnd;
-
- /**
- * @var AccessCondition
- */
- private $_accessCondition;
-
- /**
- * Gets lease Id for the blob
- *
- * @return string
- */
- public function getLeaseId()
- {
- return $this->_leaseId;
- }
-
- /**
- * Sets lease Id for the blob
- *
- * @param string $leaseId the blob lease id.
- *
- * @return none
- */
- public function setLeaseId($leaseId)
- {
- $this->_leaseId = $leaseId;
- }
-
- /**
- * Gets blob snapshot.
- *
- * @return string.
- */
- public function getSnapshot()
- {
- return $this->_snapshot;
- }
-
- /**
- * Sets blob snapshot.
- *
- * @param string $snapshot value.
- *
- * @return none.
- */
- public function setSnapshot($snapshot)
- {
- $this->_snapshot = $snapshot;
- }
-
- /**
- * Gets rangeStart
- *
- * @return integer
- */
- public function getRangeStart()
- {
- return $this->_rangeStart;
- }
-
- /**
- * Sets rangeStart
- *
- * @param integer $rangeStart the blob lease id.
- *
- * @return none
- */
- public function setRangeStart($rangeStart)
- {
- Validate::isInteger($rangeStart, 'rangeStart');
- $this->_rangeStart = $rangeStart;
- }
-
- /**
- * Gets rangeEnd
- *
- * @return integer
- */
- public function getRangeEnd()
- {
- return $this->_rangeEnd;
- }
-
- /**
- * Sets rangeEnd
- *
- * @param integer $rangeEnd range end value in bytes
- *
- * @return none
- */
- public function setRangeEnd($rangeEnd)
- {
- Validate::isInteger($rangeEnd, 'rangeEnd');
- $this->_rangeEnd = $rangeEnd;
- }
-
- /**
- * Gets access condition
- *
- * @return AccessCondition
- */
- public function getAccessCondition()
- {
- return $this->_accessCondition;
- }
-
- /**
- * Sets access condition
- *
- * @param AccessCondition $accessCondition value to use.
- *
- * @return none.
- */
- public function setAccessCondition($accessCondition)
- {
- $this->_accessCondition = $accessCondition;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListPageBlobRangesResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListPageBlobRangesResult.php
deleted file mode 100644
index d1f33243..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/ListPageBlobRangesResult.php
+++ /dev/null
@@ -1,196 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Blob\Models\PageRange;
-
-/**
- * Holds result of calling listPageBlobRanges wrapper
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ListPageBlobRangesResult
-{
- /**
- * @var \DateTime
- */
- private $_lastModified;
-
- /**
- * @var string
- */
- private $_etag;
-
- /**
- * @var integer
- */
- private $_contentLength;
-
- /**
- * @var array
- */
- private $_pageRanges;
-
- /**
- * Creates BlobProperties object from $parsed response in array representation
- *
- * @param array $headers HTTP response headers
- * @param array $parsed parsed response in array format.
- *
- * @return ListPageBlobRangesResult
- */
- public static function create($headers, $parsed)
- {
- $result = new ListPageBlobRangesResult();
- $headers = array_change_key_case($headers);
-
- $date = $headers[Resources::LAST_MODIFIED];
- $date = Utilities::rfc1123ToDateTime($date);
- $blobLength = intval($headers[Resources::X_MS_BLOB_CONTENT_LENGTH]);
- $rawPageRanges = array();
-
- if (!empty($parsed['PageRange'])) {
- $parsed = array_change_key_case($parsed);
- $rawPageRanges = Utilities::getArray($parsed['pagerange']);
- }
-
- $result->_pageRanges = array();
- foreach ($rawPageRanges as $value) {
- $result->_pageRanges[] = new PageRange(
- intval($value['Start']), intval($value['End'])
- );
- }
-
- $result->setContentLength($blobLength);
- $result->setETag($headers[Resources::ETAG]);
- $result->setLastModified($date);
-
- return $result;
- }
-
- /**
- * Gets blob lastModified.
- *
- * @return \DateTime.
- */
- public function getLastModified()
- {
- return $this->_lastModified;
- }
-
- /**
- * Sets blob lastModified.
- *
- * @param \DateTime $lastModified value.
- *
- * @return none.
- */
- public function setLastModified($lastModified)
- {
- Validate::isDate($lastModified);
- $this->_lastModified = $lastModified;
- }
-
- /**
- * Gets blob etag.
- *
- * @return string.
- */
- public function getETag()
- {
- return $this->_etag;
- }
-
- /**
- * Sets blob etag.
- *
- * @param string $etag value.
- *
- * @return none.
- */
- public function setETag($etag)
- {
- Validate::isString($etag, 'etag');
- $this->_etag = $etag;
- }
-
- /**
- * Gets blob contentLength.
- *
- * @return integer.
- */
- public function getContentLength()
- {
- return $this->_contentLength;
- }
-
- /**
- * Sets blob contentLength.
- *
- * @param integer $contentLength value.
- *
- * @return none.
- */
- public function setContentLength($contentLength)
- {
- Validate::isInteger($contentLength, 'contentLength');
- $this->_contentLength = $contentLength;
- }
-
- /**
- * Gets page ranges
- *
- * @return array
- */
- public function getPageRanges()
- {
- return $this->_pageRanges;
- }
-
- /**
- * Sets page ranges
- *
- * @param array $pageRanges page ranges to set
- *
- * @return none
- */
- public function setPageRanges($pageRanges)
- {
- $this->_pageRanges = array();
- foreach ($pageRanges as $pageRange) {
- $this->_pageRanges[] = clone $pageRange;
- }
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/PageRange.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/PageRange.php
deleted file mode 100644
index e7687fbf..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/PageRange.php
+++ /dev/null
@@ -1,131 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Holds info about page range used in HTTP requests
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class PageRange
-{
- /**
- * @var integer
- */
- private $_start;
-
- /**
- * @var integer
- */
- private $_end;
-
- /**
- * Constructor
- *
- * @param integer $start the page start value
- * @param integer $end the page end value
- *
- * @return PageRange
- */
- public function __construct($start = null, $end = null)
- {
- $this->_start = $start;
- $this->_end = $end;
- }
-
- /**
- * Sets page start range
- *
- * @param integer $start the page range start
- *
- * @return none.
- */
- public function setStart($start)
- {
- $this->_start = $start;
- }
-
- /**
- * Gets page start range
- *
- * @return integer
- */
- public function getStart()
- {
- return $this->_start;
- }
-
- /**
- * Sets page end range
- *
- * @param integer $end the page range end
- *
- * @return none.
- */
- public function setEnd($end)
- {
- $this->_end = $end;
- }
-
- /**
- * Gets page end range
- *
- * @return integer
- */
- public function getEnd()
- {
- return $this->_end;
- }
-
- /**
- * Gets page range length
- *
- * @return integer
- */
- public function getLength()
- {
- return $this->_end - $this->_start + 1;
- }
-
- /**
- * Sets page range length
- *
- * @param integer $value new page range
- *
- * @return none
- */
- public function setLength($value)
- {
- $this->_end = $this->_start + $value - 1;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/PageWriteOption.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/PageWriteOption.php
deleted file mode 100644
index 5ef2f2e9..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/PageWriteOption.php
+++ /dev/null
@@ -1,44 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * Holds available blob page write options
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class PageWriteOption
-{
- const CLEAR_OPTION = 'clear';
- const UPDATE_OPTION = 'update';
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/PublicAccessType.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/PublicAccessType.php
deleted file mode 100644
index 856f3bc4..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/PublicAccessType.php
+++ /dev/null
@@ -1,66 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Resources;
-
-/**
- * Holds public acces types for a container.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class PublicAccessType
-{
- const NONE = Resources::EMPTY_STRING;
- const BLOBS_ONLY = 'blob';
- const CONTAINER_AND_BLOBS = 'container';
-
- /**
- * Validates the public access.
- *
- * @param string $type The public access type.
- *
- * @return boolean
- */
- public static function isValid($type)
- {
- switch ($type) {
- case self::NONE:
- case self::BLOBS_ONLY:
- case self::CONTAINER_AND_BLOBS:
- return true;
-
- default:
- return false;
- }
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SetBlobMetadataOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SetBlobMetadataOptions.php
deleted file mode 100644
index a873dbee..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SetBlobMetadataOptions.php
+++ /dev/null
@@ -1,95 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-
-/**
- * The optional parameters for setBlobMetadata API.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class SetBlobMetadataOptions extends BlobServiceOptions
-{
- /**
- * @var string
- */
- private $_leaseId;
-
- /**
- * @var AccessCondition
- */
- private $_accessCondition;
-
- /**
- * Gets lease Id for the blob
- *
- * @return string
- */
- public function getLeaseId()
- {
- return $this->_leaseId;
- }
-
- /**
- * Sets lease Id for the blob
- *
- * @param string $leaseId the blob lease id.
- *
- * @return none
- */
- public function setLeaseId($leaseId)
- {
- $this->_leaseId = $leaseId;
- }
-
- /**
- * Gets access condition
- *
- * @return AccessCondition
- */
- public function getAccessCondition()
- {
- return $this->_accessCondition;
- }
-
- /**
- * Sets access condition
- *
- * @param AccessCondition $accessCondition value to use.
- *
- * @return none.
- */
- public function setAccessCondition($accessCondition)
- {
- $this->_accessCondition = $accessCondition;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SetBlobMetadataResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SetBlobMetadataResult.php
deleted file mode 100644
index f5338ca1..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SetBlobMetadataResult.php
+++ /dev/null
@@ -1,118 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * Holds results of calling getBlobMetadata wrapper
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class SetBlobMetadataResult
-{
-
- /**
- * @var \DateTime
- */
- private $_lastModified;
-
- /**
- * @var string
- */
- private $_etag;
-
- /**
- * Creates SetBlobMetadataResult from response headers.
- *
- * @param array $headers response headers
- *
- * @return SetBlobMetadataResult
- */
- public static function create($headers)
- {
- $result = new SetBlobMetadataResult();
- $date = $headers[Resources::LAST_MODIFIED];
- $result->setLastModified(Utilities::rfc1123ToDateTime($date));
- $result->setETag($headers[Resources::ETAG]);
-
- return $result;
- }
-
- /**
- * Gets blob lastModified.
- *
- * @return \DateTime.
- */
- public function getLastModified()
- {
- return $this->_lastModified;
- }
-
- /**
- * Sets blob lastModified.
- *
- * @param \DateTime $lastModified value.
- *
- * @return none.
- */
- public function setLastModified($lastModified)
- {
- Validate::isDate($lastModified);
- $this->_lastModified = $lastModified;
- }
-
- /**
- * Gets blob etag.
- *
- * @return string.
- */
- public function getETag()
- {
- return $this->_etag;
- }
-
- /**
- * Sets blob etag.
- *
- * @param string $etag value.
- *
- * @return none.
- */
- public function setETag($etag)
- {
- Validate::isString($etag, 'etag');
- $this->_etag = $etag;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SetBlobPropertiesOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SetBlobPropertiesOptions.php
deleted file mode 100644
index 9fc7f4c2..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SetBlobPropertiesOptions.php
+++ /dev/null
@@ -1,292 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Validate;
-
-/**
- * Optional parameters for setBlobProperties wrapper
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class SetBlobPropertiesOptions extends BlobServiceOptions
-{
- /**
- * @var BlobProperties
- */
- private $_blobProperties;
-
- /**
- * @var string
- */
- private $_leaseId;
-
- /**
- * @var string
- */
- private $_sequenceNumberAction;
-
- /**
- * @var AccessCondition
- */
- private $_accessCondition;
-
- /**
- * Creates a new SetBlobPropertiesOptions with a specified BlobProperties
- * instance.
- *
- * @param BlobProperties $blobProperties The blob properties instance.
- */
- public function __construct($blobProperties = null)
- {
- $this->_blobProperties = is_null($blobProperties)
- ? new BlobProperties() : clone $blobProperties;
- }
-
- /**
- * Gets access condition
- *
- * @return AccessCondition
- */
- public function getAccessCondition()
- {
- return $this->_accessCondition;
- }
-
- /**
- * Sets access condition
- *
- * @param AccessCondition $accessCondition value to use.
- *
- * @return none.
- */
- public function setAccessCondition($accessCondition)
- {
- $this->_accessCondition = $accessCondition;
- }
-
- /**
- * Gets blob sequenceNumber.
- *
- * @return integer.
- */
- public function getSequenceNumber()
- {
- return $this->_blobProperties->getSequenceNumber();
- }
-
- /**
- * Sets blob sequenceNumber.
- *
- * @param integer $sequenceNumber value.
- *
- * @return none.
- */
- public function setSequenceNumber($sequenceNumber)
- {
- $this->_blobProperties->setSequenceNumber($sequenceNumber);
- }
-
- /**
- * Gets lease Id for the blob
- *
- * @return string
- */
- public function getSequenceNumberAction()
- {
- return $this->_sequenceNumberAction;
- }
-
- /**
- * Sets lease Id for the blob
- *
- * @param string $sequenceNumberAction action.
- *
- * @return none
- */
- public function setSequenceNumberAction($sequenceNumberAction)
- {
- $this->_sequenceNumberAction = $sequenceNumberAction;
- }
-
- /**
- * Gets lease Id for the blob
- *
- * @return string
- */
- public function getLeaseId()
- {
- return $this->_leaseId;
- }
-
- /**
- * Sets lease Id for the blob
- *
- * @param string $leaseId the blob lease id.
- *
- * @return none
- */
- public function setLeaseId($leaseId)
- {
- $this->_leaseId = $leaseId;
- }
-
- /**
- * Gets blob blobContentLength.
- *
- * @return integer.
- */
- public function getBlobContentLength()
- {
- return $this->_blobProperties->getContentLength();
- }
-
- /**
- * Sets blob blobContentLength.
- *
- * @param integer $blobContentLength value.
- *
- * @return none.
- */
- public function setBlobContentLength($blobContentLength)
- {
- $this->_blobProperties->setContentLength($blobContentLength);
- }
-
- /**
- * Gets blob ContentType.
- *
- * @return string.
- */
- public function getBlobContentType()
- {
- return $this->_blobProperties->getContentType();
- }
-
- /**
- * Sets blob ContentType.
- *
- * @param string $blobContentType value.
- *
- * @return none.
- */
- public function setBlobContentType($blobContentType)
- {
- $this->_blobProperties->setContentType($blobContentType);
- }
-
- /**
- * Gets blob ContentEncoding.
- *
- * @return string.
- */
- public function getBlobContentEncoding()
- {
- return $this->_blobProperties->getContentEncoding();
- }
-
- /**
- * Sets blob ContentEncoding.
- *
- * @param string $blobContentEncoding value.
- *
- * @return none.
- */
- public function setBlobContentEncoding($blobContentEncoding)
- {
- $this->_blobProperties->setContentEncoding($blobContentEncoding);
- }
-
- /**
- * Gets blob ContentLanguage.
- *
- * @return string.
- */
- public function getBlobContentLanguage()
- {
- return $this->_blobProperties->getContentLanguage();
- }
-
- /**
- * Sets blob ContentLanguage.
- *
- * @param string $blobContentLanguage value.
- *
- * @return none.
- */
- public function setBlobContentLanguage($blobContentLanguage)
- {
- $this->_blobProperties->setContentLanguage($blobContentLanguage);
- }
-
- /**
- * Gets blob ContentMD5.
- *
- * @return string.
- */
- public function getBlobContentMD5()
- {
- return $this->_blobProperties->getContentMD5();
- }
-
- /**
- * Sets blob ContentMD5.
- *
- * @param string $blobContentMD5 value.
- *
- * @return none.
- */
- public function setBlobContentMD5($blobContentMD5)
- {
- $this->_blobProperties->setContentMD5($blobContentMD5);
- }
-
- /**
- * Gets blob cache control.
- *
- * @return string.
- */
- public function getBlobCacheControl()
- {
- return $this->_blobProperties->getCacheControl();
- }
-
- /**
- * Sets blob cacheControl.
- *
- * @param string $blobCacheControl value to use.
- *
- * @return none.
- */
- public function setBlobCacheControl($blobCacheControl)
- {
- $this->_blobProperties->setCacheControl($blobCacheControl);
- }
-}
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SetBlobPropertiesResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SetBlobPropertiesResult.php
deleted file mode 100644
index 95ae57a0..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SetBlobPropertiesResult.php
+++ /dev/null
@@ -1,149 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * Holds result of calling setBlobProperties wrapper
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class SetBlobPropertiesResult
-{
- /**
- * @var \DateTime
- */
- private $_lastModified;
-
- /**
- * @var string
- */
- private $_etag;
-
- /**
- * @var integer
- */
- private $_sequenceNumber;
-
- /**
- * Creates SetBlobPropertiesResult from response headers.
- *
- * @param array $headers response headers
- *
- * @return SetBlobPropertiesResult
- */
- public static function create($headers)
- {
- $result = new SetBlobPropertiesResult();
- $date = $headers[Resources::LAST_MODIFIED];
- $result->setLastModified(Utilities::rfc1123ToDateTime($date));
- $result->setETag($headers[Resources::ETAG]);
- if (array_key_exists(Resources::X_MS_BLOB_SEQUENCE_NUMBER, $headers)) {
- $sNumber = $headers[Resources::X_MS_BLOB_SEQUENCE_NUMBER];
- $result->setSequenceNumber(intval($sNumber));
- }
-
- return $result;
- }
-
- /**
- * Gets blob lastModified.
- *
- * @return \DateTime.
- */
- public function getLastModified()
- {
- return $this->_lastModified;
- }
-
- /**
- * Sets blob lastModified.
- *
- * @param \DateTime $lastModified value.
- *
- * @return none.
- */
- public function setLastModified($lastModified)
- {
- Validate::isDate($lastModified);
- $this->_lastModified = $lastModified;
- }
-
- /**
- * Gets blob etag.
- *
- * @return string.
- */
- public function getETag()
- {
- return $this->_etag;
- }
-
- /**
- * Sets blob etag.
- *
- * @param string $etag value.
- *
- * @return none.
- */
- public function setETag($etag)
- {
- Validate::isString($etag, 'etag');
- $this->_etag = $etag;
- }
-
- /**
- * Gets blob sequenceNumber.
- *
- * @return int.
- */
- public function getSequenceNumber()
- {
- return $this->_sequenceNumber;
- }
-
- /**
- * Sets blob sequenceNumber.
- *
- * @param int $sequenceNumber value.
- *
- * @return none.
- */
- public function setSequenceNumber($sequenceNumber)
- {
- Validate::isInteger($sequenceNumber, 'sequenceNumber');
- $this->_sequenceNumber = $sequenceNumber;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SetContainerMetadataOptions.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SetContainerMetadataOptions.php
deleted file mode 100644
index 35fada3b..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SetContainerMetadataOptions.php
+++ /dev/null
@@ -1,78 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Blob\Models\AccessCondition;
-use WindowsAzure\Blob\Models\BlobServiceOptions;
-
-/**
- * Optional parameters for setContainerMetadata wrapper
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class SetContainerMetadataOptions extends BlobServiceOptions
-{
- /**
- * @var AccessCondition
- */
- private $_accessCondition;
-
- /**
- * Constructs the access condition object with none option.
- */
- public function __construct()
- {
- $this->_accessCondition = AccessCondition::none();
- }
-
- /**
- * Gets access condition
- *
- * @return AccessCondition
- */
- public function getAccessCondition()
- {
- return $this->_accessCondition;
- }
-
- /**
- * Sets access condition
- *
- * @param AccessCondition $accessCondition value to use.
- *
- * @return none.
- */
- public function setAccessCondition($accessCondition)
- {
- $this->_accessCondition = $accessCondition;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SignedIdentifier.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SignedIdentifier.php
deleted file mode 100644
index fa8e754a..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Blob/Models/SignedIdentifier.php
+++ /dev/null
@@ -1,104 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Blob\Models;
-use WindowsAzure\Blob\Models\AccessPolicy;
-
-/**
- * Holds container signed identifiers.
- *
- * @category Microsoft
- * @package WindowsAzure\Blob\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class SignedIdentifier
-{
- private $_id;
- private $_accessPolicy;
-
- /**
- * Gets id.
- *
- * @return string.
- */
- public function getId()
- {
- return $this->_id;
- }
-
- /**
- * Sets id.
- *
- * @param string $id value.
- *
- * @return none.
- */
- public function setId($id)
- {
- $this->_id = $id;
- }
-
- /**
- * Gets accessPolicy.
- *
- * @return string.
- */
- public function getAccessPolicy()
- {
- return $this->_accessPolicy;
- }
-
- /**
- * Sets accessPolicy.
- *
- * @param string $accessPolicy value.
- *
- * @return none.
- */
- public function setAccessPolicy($accessPolicy)
- {
- $this->_accessPolicy = $accessPolicy;
- }
-
- /**
- * Converts this current object to XML representation.
- *
- * @return array.
- */
- public function toArray()
- {
- $array = array();
-
- $array['SignedIdentifier']['Id'] = $this->_id;
- $array['SignedIdentifier']['AccessPolicy'] = $this->_accessPolicy->toArray();
-
- return $array;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/CloudConfigurationManager.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/CloudConfigurationManager.php
deleted file mode 100644
index a1aa6c14..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/CloudConfigurationManager.php
+++ /dev/null
@@ -1,167 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\ConnectionStringSource;
-
-/**
- * Configuration manager for accessing Windows Azure settings.
- *
- * @category Microsoft
- * @package WindowsAzure\Common
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class CloudConfigurationManager
-{
- /**
- * @var boolean
- */
- private static $_isInitialized = false;
-
- /**
- * The list of connection string sources.
- *
- * @var array
- */
- private static $_sources;
-
- /**
- * Restrict users from creating instances from this class
- */
- private function __construct()
- {
-
- }
-
- /**
- * Initializes the connection string source providers.
- *
- * @return none
- */
- private static function _init()
- {
- if (!self::$_isInitialized) {
- self::$_sources = array();
-
- // Get list of default connection string sources.
- $default = ConnectionStringSource::getDefaultSources();
- foreach ($default as $name => $provider) {
- self::$_sources[$name] = $provider;
- }
-
- self::$_isInitialized = true;
- }
- }
-
- /**
- * Gets a connection string from all available sources.
- *
- * @param string $key The connection string key name.
- *
- * @return string If the key does not exist return null.
- */
- public static function getConnectionString($key)
- {
- Validate::isString($key, 'key');
-
- self::_init();
- $value = null;
-
- foreach (self::$_sources as $source) {
- $value = call_user_func_array($source, array($key));
-
- if (!empty($value)) {
- break;
- }
- }
-
- return $value;
- }
-
- /**
- * Registers a new connection string source provider. If the source to get
- * registered is a default source, only the name of the source is required.
- *
- * @param string $name The source name.
- * @param callable $provider The source callback.
- * @param boolean $prepend When true, the $provider is processed first when
- * calling getConnectionString. When false (the default) the $provider is
- * processed after the existing callbacks.
- *
- * @return none
- */
- public static function registerSource($name, $provider = null, $prepend = false)
- {
- Validate::isString($name, 'name');
- Validate::notNullOrEmpty($name, 'name');
-
- self::_init();
- $default = ConnectionStringSource::getDefaultSources();
-
- // Try to get callback if the user is trying to register a default source.
- $provider = Utilities::tryGetValue($default, $name, $provider);
-
- Validate::notNullOrEmpty($provider, 'callback');
-
- if ($prepend) {
- self::$_sources = array_merge(
- array($name => $provider),
- self::$_sources
- );
-
- } else {
- self::$_sources[$name] = $provider;
- }
- }
-
- /**
- * Unregisters a connection string source.
- *
- * @param string $name The source name.
- *
- * @return callable
- */
- public static function unregisterSource($name)
- {
- Validate::isString($name, 'name');
- Validate::notNullOrEmpty($name, 'name');
-
- self::_init();
-
- $sourceCallback = Utilities::tryGetValue(self::$_sources, $name);
-
- if (!is_null($sourceCallback)) {
- unset(self::$_sources[$name]);
- }
-
- return $sourceCallback;
- }
-}
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/AtomBase.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/AtomBase.php
deleted file mode 100644
index b313d4c8..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/AtomBase.php
+++ /dev/null
@@ -1,326 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Atom;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Atom\AtomLink;
-
-/**
- * The base class of ATOM library.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Atom
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-class AtomBase
-{
- /**
- * The attributes of the feed.
- *
- * @var array
- */
- protected $attributes;
-
- /**
- * Creates an ATOM base object with default parameters.
- */
- public function __construct()
- {
- $this->attributes = array();
- $atomlink = new AtomLink();
- }
-
- /**
- * Gets the attributes of the ATOM class.
- *
- * @return array
- */
- public function getAttributes()
- {
- return $this->attributes;
- }
-
- /**
- * Sets the attributes of the ATOM class.
- *
- * @param array $attributes The attributes of the array.
- *
- * @return array
- */
- public function setAttributes($attributes)
- {
- Validate::isArray($attributes, 'attributes');
- $this->attributes = $attributes;
- }
-
- /**
- * Sets an attribute to the ATOM object instance.
- *
- * @param string $attributeKey The key of the attribute.
- * @param mixed $attributeValue The value of the attribute.
- *
- * @return none
- */
- public function setAttribute($attributeKey, $attributeValue)
- {
- $this->attributes[$attributeKey] = $attributeValue;
- }
-
- /**
- * Gets an attribute with a specified attribute key.
- *
- * @param string $attributeKey The key of the attribute.
- *
- * @return none
- */
- public function getAttribute($attributeKey)
- {
- return $this->attributes[$attributeKey];
- }
-
- /**
- * Processes author node.
- *
- * @param array $xmlWriter The XML writer.
- * @param array $itemArray An array of item to write.
- * @param array $elementName The name of the element.
- *
- * @return array
- */
- protected function writeArrayItem($xmlWriter, $itemArray, $elementName)
- {
- Validate::notNull($xmlWriter, 'xmlWriter');
- Validate::isArray($itemArray, 'itemArray');
- Validate::isString($elementName, 'elementName');
-
- foreach ($itemArray as $itemInstance) {
- $xmlWriter->startElementNS(
- 'atom',
- $elementName,
- Resources::ATOM_NAMESPACE
- );
- $itemInstance->writeInnerXml($xmlWriter);
- $xmlWriter->endElement();
- }
-
- }
-
- /**
- * Processes author node.
- *
- * @param array $xmlArray An array of simple xml elements.
- *
- * @return array
- */
- protected function processAuthorNode($xmlArray)
- {
- $author = array();
- $authorItem = $xmlArray[Resources::AUTHOR];
-
- if (is_array($authorItem)) {
- foreach ($xmlArray[Resources::AUTHOR] as $authorXmlInstance) {
- $authorInstance = new Person();
- $authorInstance->parseXml($authorXmlInstance->asXML());
- $author[] = $authorInstance;
- }
- } else {
- $authorInstance = new Person();
- $authorInstance->parseXml($authorItem->asXML());
- $author[] = $authorInstance;
- }
- return $author;
- }
-
- /**
- * Processes entry node.
- *
- * @param array $xmlArray An array of simple xml elements.
- *
- * @return array
- */
- protected function processEntryNode($xmlArray)
- {
- $entry = array();
- $entryItem = $xmlArray[Resources::ENTRY];
-
- if (is_array($entryItem)) {
- foreach ($xmlArray[Resources::ENTRY] as $entryXmlInstance) {
- $entryInstance = new Entry();
- $entryInstance->fromXml($entryXmlInstance);
- $entry[] = $entryInstance;
- }
- } else {
- $entryInstance = new Entry();
- $entryInstance->fromXml($entryItem);
- $entry[] = $entryInstance;
- }
- return $entry;
- }
-
- /**
- * Processes category node.
- *
- * @param array $xmlArray An array of simple xml elements.
- *
- * @return array
- */
- protected function processCategoryNode($xmlArray)
- {
- $category = array();
- $categoryItem = $xmlArray[Resources::CATEGORY];
-
- if (is_array($categoryItem)) {
- foreach ($xmlArray[Resources::CATEGORY] as $categoryXmlInstance) {
- $categoryInstance = new Category();
- $categoryInstance->parseXml($categoryXmlInstance->asXML());
- $category[] = $categoryInstance;
- }
- } else {
- $categoryInstance = new Category();
- $categoryInstance->parseXml($categoryItem->asXML());
- $category[] = $categoryInstance;
- }
- return $category;
- }
-
- /**
- * Processes contributor node.
- *
- * @param array $xmlArray An array of simple xml elements.
- *
- * @return array
- */
- protected function processContributorNode($xmlArray)
- {
- $category = array();
- $contributorItem = $xmlArray[Resources::CONTRIBUTOR];
-
- if (is_array($contributorItem)) {
- foreach ($xmlArray[Resources::CONTRIBUTOR] as $contributorXmlInstance) {
- $contributorInstance = new Person();
- $contributorInstance->parseXml($contributorXmlInstance->asXML());
- $contributor[] = $contributorInstance;
- }
- } elseif (is_string($contributorItem)) {
- $contributorInstance = new Person();
- $contributorInstance->setName((string)$contributorItem);
- $contributor[] = $contributorInstance;
- } else {
- $contributorInstance = new Person();
- $contributorInstance->parseXml($contributorItem->asXML());
- $contributor[] = $contributorInstance;
- }
- return $contributor;
- }
-
- /**
- * Processes link node.
- *
- * @param array $xmlArray An array of simple xml elements.
- *
- * @return array
- */
- protected function processLinkNode($xmlArray)
- {
- $link = array();
- $linkValue = $xmlArray[Resources::LINK];
-
- if (is_array($linkValue)) {
- foreach ($xmlArray[Resources::LINK] as $linkValueInstance) {
- $linkInstance = new AtomLink();
- $linkInstance->parseXml($linkValueInstance->asXML());
- $link[] = $linkInstance;
- }
- } else {
- $linkInstance = new AtomLink();
- $linkInstance->parseXml($linkValue->asXML());
- $link[] = $linkInstance;
- }
-
- return $link;
- }
-
- /**
- * Writes an optional attribute for ATOM.
- *
- * @param \XMLWriter $xmlWriter The XML writer.
- * @param string $attributeName The name of the attribute.
- * @param mixed $attributeValue The value of the attribute.
- *
- * @return none
- */
- protected function writeOptionalAttribute(
- $xmlWriter,
- $attributeName,
- $attributeValue
- ) {
- Validate::notNull($xmlWriter, 'xmlWriter');
- Validate::isString($attributeName, 'attributeName');
-
- if (!empty($attributeValue)) {
- $xmlWriter->writeAttribute(
- $attributeName,
- $attributeValue
- );
- }
- }
-
- /**
- * Writes the optional elements namespaces.
- *
- * @param \XmlWriter $xmlWriter The XML writer.
- * @param string $prefix The prefix.
- * @param string $elementName The element name.
- * @param string $namespace The namespace name.
- * @param string $elementValue The element value.
- *
- * @return none
- */
- protected function writeOptionalElementNS(
- $xmlWriter,
- $prefix,
- $elementName,
- $namespace,
- $elementValue
- ) {
- Validate::notNull($xmlWriter, 'xmlWriter');
- Validate::isString($elementName, 'elementName');
-
- if (!empty($elementValue)) {
- $xmlWriter->writeElementNS(
- $prefix,
- $elementName,
- $namespace,
- $elementValue
- );
- }
- }
-}
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/AtomLink.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/AtomLink.php
deleted file mode 100644
index d1c8246e..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/AtomLink.php
+++ /dev/null
@@ -1,343 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Atom;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\Validate;
-
-/**
- * This link defines a reference from an entry or feed to a Web resource.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Atom
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-class AtomLink extends AtomBase
-{
- /**
- * The undefined content.
- *
- * @var string
- */
- protected $undefinedContent;
-
- /**
- * The HREF of the link.
- *
- * @var string
- */
- protected $href;
-
- /**
- * The rel attribute of the link.
- *
- * @var string
- */
- protected $rel;
-
- /**
- * The media type of the link.
- *
- * @var string
- */
- protected $type;
-
- /**
- * The language of HREF.
- *
- * @var string
- */
- protected $hreflang;
-
- /**
- * The titile of the link.
- *
- * @var string
- */
- protected $title;
-
- /**
- * The length of the link.
- *
- * @var integer
- */
- protected $length;
-
- /**
- * Creates a AtomLink instance with specified text.
- */
- public function __construct()
- {
- }
-
- /**
- * Parse an ATOM Link xml.
- *
- * @param string $xmlString an XML based string of ATOM Link.
- *
- * @return none
- */
- public function parseXml($xmlString)
- {
- Validate::notNull($xmlString, 'xmlString');
- Validate::isString($xmlString, 'xmlString');
- $atomLinkXml = simplexml_load_string($xmlString);
- $attributes = $atomLinkXml->attributes();
-
- if (!empty($attributes['href'])) {
- $this->href = (string)$attributes['href'];
- }
-
- if (!empty($attributes['rel'])) {
- $this->rel = (string)$attributes['rel'];
- }
-
- if (!empty($attributes['type'])) {
- $this->type = (string)$attributes['type'];
- }
-
- if (!empty($attributes['hreflang'])) {
- $this->hreflang = (string)$attributes['hreflang'];
- }
-
- if (!empty($attributes['title'])) {
- $this->title = (string)$attributes['title'];
- }
-
- if (!empty($attributes['length'])) {
- $this->length = (integer)$attributes['length'];
- }
-
- $undefinedContent = (string)$atomLinkXml;
- if (empty($undefinedContent)) {
- $this->undefinedContent = null;
- } else {
- $this->undefinedContent = (string)$atomLinkXml;
- }
- }
-
- /**
- * Gets the href of the link.
- *
- * @return string
- */
- public function getHref()
- {
- return $this->href;
- }
-
- /**
- * Sets the href of the link.
- *
- * @param string $href The href of the link.
- *
- * @return none
- */
- public function setHref($href)
- {
- $this->href = $href;
- }
-
- /**
- * Gets the rel of the atomLink.
- *
- * @return string
- */
- public function getRel()
- {
- return $this->rel;
- }
-
- /**
- * Sets the rel of the link.
- *
- * @param string $rel The rel of the atomLink.
- *
- * @return none
- */
- public function setRel($rel)
- {
- $this->rel = $rel;
- }
-
- /**
- * Gets the type of the link.
- *
- * @return string
- */
- public function getType()
- {
- return $this->type;
- }
-
- /**
- * Sets the type of the link.
- *
- * @param string $type The type of the link.
- *
- * @return none
- */
- public function setType($type)
- {
- $this->type = $type;
- }
-
- /**
- * Gets the language of the href.
- *
- * @return string
- */
- public function getHrefLang()
- {
- return $this->hrefLang;
- }
-
- /**
- * Sets the language of the href.
- *
- * @param string $hrefLang The language of the href.
- *
- * @return none
- */
- public function setHrefLang($hrefLang)
- {
- $this->hrefLang = $hrefLang;
- }
-
- /**
- * Gets the title of the link.
- *
- * @return string
- */
- public function getTitle()
- {
- return $this->title;
- }
-
- /**
- * Sets the title of the link.
- *
- * @param string $title The title of the link.
- *
- * @return none
- */
- public function setTitle($title)
- {
- $this->title = $title;
- }
-
- /**
- * Gets the length of the link.
- *
- * @return string
- */
- public function getLength()
- {
- return $this->length;
- }
-
- /**
- * Sets the length of the link.
- *
- * @param string $length The length of the link.
- *
- * @return none
- */
- public function setLength($length)
- {
- $this->length = $length;
- }
-
- /**
- * Gets the undefined content.
- *
- * @return string
- */
- public function getUndefinedContent()
- {
- return $this->undefinedContent;
- }
-
- /**
- * Sets the undefined content.
- *
- * @param string $undefinedContent The undefined content.
- *
- * @return none
- */
- public function setUndefinedContent($undefinedContent)
- {
- $this->undefinedContent = $undefinedContent;
- }
-
- /**
- * Writes an XML representing the ATOM link item.
- *
- * @param \XMLWriter $xmlWriter The xml writer.
- *
- * @return none
- */
- public function writeXml($xmlWriter)
- {
- Validate::notNull($xmlWriter, 'xmlWriter');
- $xmlWriter->startElementNS(
- 'atom',
- Resources::LINK,
- Resources::ATOM_NAMESPACE
- );
- $this->writeInnerXml($xmlWriter);
- $xmlWriter->endElement();
- }
-
- /**
- * Writes the inner XML representing the ATOM link item.
- *
- * @param \XMLWriter $xmlWriter The xml writer.
- *
- * @return none
- */
- public function writeInnerXml($xmlWriter)
- {
- Validate::notNull($xmlWriter, 'xmlWriter');
-
- $this->writeOptionalAttribute($xmlWriter, 'href', $this->href);
- $this->writeOptionalAttribute($xmlWriter, 'rel', $this->rel);
- $this->writeOptionalAttribute($xmlWriter, 'type', $this->type);
- $this->writeOptionalAttribute($xmlWriter, 'hreflang', $this->hreflang);
- $this->writeOptionalAttribute($xmlWriter, 'title', $this->title);
- $this->writeOptionalAttribute($xmlWriter, 'length', $this->length);
-
- if (!empty($this->undefinedContent)) {
- $xmlWriter->writeRaw($this->undefinedContent);
- }
-
- }
-}
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Category.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Category.php
deleted file mode 100644
index 6d480eb1..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Category.php
+++ /dev/null
@@ -1,253 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Atom;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\Validate;
-
-/**
- * The category class of the ATOM standard.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Atom
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-class Category extends AtomBase
-{
- /**
- * The term of the category.
- *
- * @var string
- */
- protected $term;
-
- /**
- * The scheme of the category.
- *
- * @var string
- */
- protected $scheme;
-
- /**
- * The label of the category.
- *
- * @var string
- */
- protected $label;
-
- /**
- * The undefined content of the category.
- *
- * @var string
- */
- protected $undefinedContent;
-
- /**
- * Creates a Category instance with specified text.
- *
- * @param string $undefinedContent The undefined content of the category.
- *
- * @return none
- */
- public function __construct($undefinedContent = Resources::EMPTY_STRING)
- {
- $this->undefinedContent = $undefinedContent;
- }
-
- /**
- * Creates an ATOM Category instance with specified xml string.
- *
- * @param string $xmlString an XML based string of ATOM CONTENT.
- *
- * @return none
- */
- public function parseXml($xmlString)
- {
- Validate::notNull($xmlString, 'xmlString');
- Validate::isString($xmlString, 'xmlString');
- $categoryXml = simplexml_load_string($xmlString);
- $attributes = $categoryXml->attributes();
- if (!empty($attributes['term'])) {
- $this->term = (string)$attributes['term'];
- }
-
- if (!empty($attributes['scheme'])) {
- $this->scheme = (string)$attributes['scheme'];
- }
-
- if (!empty($attributes['label'])) {
- $this->label = (string)$attributes['label'];
- }
-
- $this->undefinedContent =(string)$categoryXml;
- }
-
- /**
- * Gets the term of the category.
- *
- * @return string
- */
- public function getTerm()
- {
- return $this->term;
- }
-
- /**
- * Sets the term of the category.
- *
- * @param string $term The term of the category.
- *
- * @return none
- */
- public function setTerm($term)
- {
- $this->term = $term;
- }
-
- /**
- * Gets the scheme of the category.
- *
- * @return string
- */
- public function getScheme()
- {
- return $this->scheme;
- }
-
- /**
- * Sets the scheme of the category.
- *
- * @param string $scheme The scheme of the category.
- *
- * @return none
- */
- public function setScheme($scheme)
- {
- $this->scheme = $scheme;
- }
-
- /**
- * Gets the label of the category.
- *
- * @return string The label.
- */
- public function getLabel()
- {
- return $this->label;
- }
-
- /**
- * Sets the label of the category.
- *
- * @param string $label The label of the category.
- *
- * @return none
- */
- public function setLabel($label)
- {
- $this->label = $label;
- }
-
- /**
- * Gets the undefined content of the category.
- *
- * @return string
- */
- public function getUndefinedContent()
- {
- return $this->undefinedContent;
- }
-
- /**
- * Sets the undefined content of the category.
- *
- * @param string $undefinedContent The undefined content of the category.
- *
- * @return none
- */
- public function setUndefinedContent($undefinedContent)
- {
- $this->undefinedContent = $undefinedContent;
- }
-
- /**
- * Writes an XML representing the category.
- *
- * @param \XMLWriter $xmlWriter The XML writer.
- *
- * @return none
- */
- public function writeXml($xmlWriter)
- {
- Validate::notNull($xmlWriter, 'xmlWriter');
- $xmlWriter->startElementNS(
- 'atom',
- 'category',
- Resources::ATOM_NAMESPACE
- );
- $this->writeInnerXml($xmlWriter);
- $xmlWriter->endElement();
- }
-
- /**
- * Writes an XML representing the category.
- *
- * @param \XMLWriter $xmlWriter The XML writer.
- *
- * @return none
- */
- public function writeInnerXml($xmlWriter)
- {
- Validate::notNull($xmlWriter, 'xmlWriter');
- $this->writeOptionalAttribute(
- $xmlWriter,
- 'term',
- $this->term
- );
-
- $this->writeOptionalAttribute(
- $xmlWriter,
- 'scheme',
- $this->scheme
- );
-
- $this->writeOptionalAttribute(
- $xmlWriter,
- 'label',
- $this->label
- );
-
- if (!empty($this->undefinedContent)) {
- $xmlWriter->WriteRaw($this->undefinedContent);
- }
-
- }
-}
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Content.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Content.php
deleted file mode 100644
index 8511c12c..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Content.php
+++ /dev/null
@@ -1,213 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Atom;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Atom\AtomProperties;
-/**
- * The content class of ATOM standard.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Atom
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-class Content extends AtomBase
-{
- /**
- * The text of the content.
- *
- * @var string
- */
- protected $text;
-
- /**
- * The type of the content.
- *
- * @var string
- */
- protected $type;
-
- /**
- * Source XML object
- *
- * @var \SimpleXMLElement
- */
- protected $xml;
-
- /**
- * Creates a Content instance with specified text.
- *
- * @param string $text The text of the content.
- *
- * @return none
- */
- public function __construct($text = null)
- {
- $this->text = $text;
- }
-
- /**
- * Creates an ATOM CONTENT instance with specified xml string.
- *
- * @param string $xmlString an XML based string of ATOM CONTENT.
- *
- * @return none
- */
- public function parseXml($xmlString)
- {
- Validate::notNull($xmlString, 'xmlString');
- Validate::isString($xmlString, 'xmlString');
-
- $this->fromXml(simplexml_load_string($xmlString));
- }
-
- /**
- * Creates an ATOM CONTENT instance with specified simpleXML object
- *
- * @param \SimpleXMLElement $contentXml xml element of ATOM CONTENT
- *
- * @return none
- */
- public function fromXml($contentXml)
- {
- Validate::notNull($contentXml, 'contentXml');
- Validate::isA($contentXml, '\SimpleXMLElement', 'contentXml');
-
- $attributes = $contentXml->attributes();
-
- if (!empty($attributes['type'])) {
- $this->content = (string)$attributes['type'];
- }
-
- $text = '';
- foreach ($contentXml->children() as $child) {
- $text .= $child->asXML();
- }
-
- $this->text = $text;
-
- $this->xml = $contentXml;
- }
-
- /**
- * Gets the text of the content.
- *
- * @return string
- */
- public function getText()
- {
- return $this->text;
- }
-
- /**
- * Sets the text of the content.
- *
- * @param string $text The text of the content.
- *
- * @return none
- */
- public function setText($text)
- {
- $this->text = $text;
- }
-
- /**
- * Gets the xml object of the content.
- *
- * @return \SimpleXMLElement
- */
- public function getXml()
- {
- return $this->xml;
- }
-
- /**
- * Gets the type of the content.
- *
- * @return string
- */
- public function getType()
- {
- return $this->type;
- }
-
- /**
- * Sets the type of the content.
- *
- * @param string $type The type of the content.
- *
- * @return none
- */
- public function setType($type)
- {
- $this->type = $type;
- }
-
- /**
- * Writes an XML representing the content.
- *
- * @param \XMLWriter $xmlWriter The XML writer.
- *
- * @return none
- */
- public function writeXml($xmlWriter)
- {
- Validate::notNull($xmlWriter, 'xmlWriter');
- $xmlWriter->startElementNS(
- 'atom',
- 'content',
- Resources::ATOM_NAMESPACE
- );
-
- $this->writeOptionalAttribute(
- $xmlWriter,
- 'type',
- $this->type
- );
-
- $this->writeInnerXml($xmlWriter);
- $xmlWriter->endElement();
- }
-
- /**
- * Writes an inner XML representing the content.
- *
- * @param \XMLWriter $xmlWriter The XML writer.
- *
- * @return none
- */
- public function writeInnerXml($xmlWriter)
- {
- Validate::notNull($xmlWriter, 'xmlWriter');
- $xmlWriter->writeRaw($this->text);
- }
-}
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Entry.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Entry.php
deleted file mode 100644
index eba3eb12..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Entry.php
+++ /dev/null
@@ -1,645 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Atom;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Validate;
-
-/**
- * The Entry class of ATOM standard.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Atom
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-class Entry extends AtomBase
-{
- // @codingStandardsIgnoreStart
-
- /**
- * The author of the entry.
- *
- * @var Person
- */
- protected $author;
-
- /**
- * The category of the entry.
- *
- * @var array
- */
- protected $category;
-
- /**
- * The content of the entry.
- *
- * @var string
- */
- protected $content;
-
- /**
- * The contributor of the entry.
- *
- * @var string
- */
- protected $contributor;
-
- /**
- * An unqiue ID representing the entry.
- *
- * @var string
- */
- protected $id;
-
- /**
- * The link of the entry.
- *
- * @var string
- */
- protected $link;
-
- /**
- * Is the entry published.
- *
- * @var boolean
- */
- protected $published;
-
- /**
- * The copy right of the entry.
- *
- * @var string
- */
- protected $rights;
-
- /**
- * The source of the entry.
- *
- * @var string
- */
- protected $source;
-
- /**
- * The summary of the entry.
- *
- * @var string
- */
- protected $summary;
-
- /**
- * The title of the entry.
- *
- * @var string
- */
- protected $title;
-
- /**
- * Is the entry updated.
- *
- * @var \DateTime
- */
- protected $updated;
-
- /**
- * The extension element of the entry.
- *
- * @var string
- */
- protected $extensionElement;
-
- /**
- * Creates an ATOM Entry instance with default parameters.
- */
- public function __construct()
- {
- $this->attributes = array();
- }
-
- /**
- * Populate the properties of an ATOM Entry instance with specified XML..
- *
- * @param string $xmlString A string representing an ATOM entry instance.
- *
- * @return none
- */
- public function parseXml($xmlString)
- {
- Validate::notNull($xmlString, 'xmlString');
-
- $this->fromXml(simplexml_load_string($xmlString));
- }
-
- /**
- * Creates an ATOM ENTRY instance with specified simpleXML object
- *
- * @param \SimpleXMLElement $entryXml xml element of ATOM ENTRY
- *
- * @return none
- */
- public function fromXml($entryXml) {
- Validate::notNull($entryXml, 'entryXml');
- Validate::isA($entryXml, '\SimpleXMLElement', 'entryXml');
-
- $this->attributes = (array)$entryXml->attributes();
- $entryArray = (array)$entryXml;
-
- if (array_key_exists(Resources::AUTHOR, $entryArray)) {
- $this->author = $this->processAuthorNode($entryArray);
- }
-
- if (array_key_exists(Resources::CATEGORY, $entryArray)) {
- $this->category = $this->processCategoryNode($entryArray);
- }
-
- if (array_key_exists('content', $entryArray)) {
- $content = new Content();
- $content->fromXml($entryArray['content']);
- $this->content = $content;
- }
-
- if (array_key_exists(Resources::CONTRIBUTOR, $entryArray)) {
- $this->contributor = $this->processContributorNode($entryArray);
- }
-
- if (array_key_exists('id', $entryArray)) {
- $this->id = (string)$entryArray['id'];
- }
-
- if (array_key_exists(Resources::LINK, $entryArray)) {
- $this->link = $this->processLinkNode($entryArray);
- }
-
- if (array_key_exists('published', $entryArray)) {
- $this->published = $entryArray['published'];
- }
-
- if (array_key_exists('rights', $entryArray)) {
- $this->rights = $entryArray['rights'];
- }
-
- if (array_key_exists('source', $entryArray)) {
- $source = new Source();
- $source->parseXml($entryArray['source']->asXML());
- $this->source = $source;
- }
-
- if (array_key_exists('title', $entryArray)) {
- $this->title = $entryArray['title'];
- }
-
- if (array_key_exists('updated', $entryArray)) {
- $this->updated = \DateTime::createFromFormat(
- \DateTime::ATOM,
- (string)$entryArray['updated']
- );
- }
- }
-
- /**
- * Gets the author of the entry.
- *
- * @return Person
- */
- public function getAuthor()
- {
- return $this->author;
- }
-
- /**
- * Sets the author of the entry.
- *
- * @param Person $author The author of the entry.
- *
- * @return none
- */
- public function setAuthor($author)
- {
- $this->author = $author;
- }
-
- /**
- * Gets the category.
- *
- * @return array
- */
- public function getCategory()
- {
- return $this->category;
- }
-
- /**
- * Sets the category.
- *
- * @param string $category The category of the entry.
- *
- * @return none
- */
- public function setCategory($category)
- {
- $this->category = $category;
- }
-
- /**
- * Gets the content.
- *
- * @return Content.
- */
- public function getContent()
- {
- return $this->content;
- }
-
- /**
- * Sets the content.
- *
- * @param Content $content Sets the content of the entry.
- *
- * @return none
- */
- public function setContent($content)
- {
- $this->content = $content;
- }
-
- /**
- * Gets the contributor.
- *
- * @return string
- */
- public function getContributor()
- {
- return $this->contributor;
- }
-
- /**
- * Sets the contributor.
- *
- * @param string $contributor The contributor of the entry.
- *
- * @return none
- */
- public function setContributor($contributor)
- {
- $this->contributor = $contributor;
- }
-
- /**
- * Gets the ID of the entry.
- *
- * @return string
- */
- public function getId()
- {
- return $this->id;
- }
-
- /**
- * Sets the ID of the entry.
- *
- * @param string $id The id of the entry.
- *
- * @return none
- */
- public function setId($id)
- {
- $this->id = $id;
- }
-
- /**
- * Gets the link of the entry.
- *
- * @return string
- */
- public function getLink()
- {
- return $this->link;
- }
-
- /**
- * Sets the link of the entry.
- *
- * @param string $link The link of the entry.
- *
- * @return none
- */
- public function setLink($link)
- {
- $this->link = $link;
- }
-
- /**
- * Gets published of the entry.
- *
- * @return boolean
- */
- public function getPublished()
- {
- return $this->published;
- }
-
- /**
- * Sets published of the entry.
- *
- * @param boolean $published Is the entry published.
- *
- * @return none
- */
- public function setPublished($published)
- {
- $this->published = $published;
- }
-
- /**
- * Gets the rights of the entry.
- *
- * @return string
- */
- public function getRights()
- {
- return $this->rights;
- }
-
- /**
- * Sets the rights of the entry.
- *
- * @param string $rights The rights of the entry.
- *
- * @return none
- */
- public function setRights($rights)
- {
- $this->rights = $rights;
- }
-
- /**
- * Gets the source of the entry.
- *
- * @return string
- */
- public function getSource()
- {
- return $this->source;
- }
-
- /**
- * Sets the source of the entry.
- *
- * @param string $source The source of the entry.
- *
- * @return none
- */
- public function setSource($source)
- {
- $this->source = $source;
- }
-
- /**
- * Gets the summary of the entry.
- *
- * @return string
- */
- public function getSummary()
- {
- return $this->summary;
- }
-
- /**
- * Sets the summary of the entry.
- *
- * @param string $summary The summary of the entry.
- *
- * @return none
- */
- public function setSummary($summary)
- {
- $this->summary = $summary;
- }
-
- /**
- * Gets the title of the entry.
- *
- * @return string
- */
- public function getTitle()
- {
- return $this->title;
- }
-
- /**
- * Sets the title of the entry.
- *
- * @param string $title The title of the entry.
- *
- * @return none
- */
- public function setTitle($title)
- {
- $this->title = $title;
- }
-
- /**
- * Gets updated.
- *
- * @return \DateTime
- */
- public function getUpdated()
- {
- return $this->updated;
- }
-
- /**
- * Sets updated
- *
- * @param \DateTime $updated updated.
- *
- * @return none
- */
- public function setUpdated($updated)
- {
- $this->updated = $updated;
- }
-
- /**
- * Gets extension element.
- *
- * @return string
- */
- public function getExtensionElement()
- {
- return $this->extensionElement;
- }
-
- /**
- * Sets extension element.
- *
- * @param string $extensionElement The extension element of the entry.
- *
- * @return none
- */
- public function setExtensionElement($extensionElement)
- {
- $this->extensionElement = $extensionElement;
- }
-
- /**
- * Writes a inner XML string representing the entry.
- *
- * @param \XMLWriter $xmlWriter The XML writer.
- *
- * @return none
- */
- public function writeXml($xmlWriter)
- {
- Validate::notNull($xmlWriter, 'xmlWriter');
- $xmlWriter->startElementNS(
- 'atom',
- Resources::ENTRY,
- Resources::ATOM_NAMESPACE
- );
- $this->writeInnerXml($xmlWriter);
- $xmlWriter->endElement();
- }
-
- /**
- * Writes a inner XML string representing the entry.
- *
- * @param \XMLWriter $xmlWriter The XML writer.
- *
- * @return none
- */
- public function writeInnerXml($xmlWriter)
- {
- if (!is_null($this->attributes)) {
- if (is_array($this->attributes)) {
- foreach (
- $this->attributes
- as $attributeName => $attributeValue
- ) {
- $xmlWriter->writeAttribute($attributeName, $attributeValue);
- }
- }
- }
-
- if (!is_null($this->author)) {
- $this->writeArrayItem(
- $xmlWriter,
- $this->author,
- Resources::AUTHOR
- );
- }
-
- if (!is_null($this->category)) {
- $this->writeArrayItem(
- $xmlWriter,
- $this->category,
- Resources::CATEGORY
- );
- }
-
- if (!is_null($this->content)) {
- $this->content->writeXml($xmlWriter);
- }
-
- if (!is_null($this->contributor)) {
- $this->writeArrayItem(
- $xmlWriter,
- $this->contributor,
- Resources::CONTRIBUTOR
- );
- }
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'id',
- Resources::ATOM_NAMESPACE,
- $this->id
- );
-
- if (!is_null($this->link)) {
- $this->writeArrayItem(
- $xmlWriter,
- $this->link,
- Resources::LINK
- );
- }
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'published',
- Resources::ATOM_NAMESPACE,
- $this->published
- );
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'rights',
- Resources::ATOM_NAMESPACE,
- $this->rights
- );
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'source',
- Resources::ATOM_NAMESPACE,
- $this->source
- );
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'summary',
- Resources::ATOM_NAMESPACE,
- $this->summary
- );
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'title',
- Resources::ATOM_NAMESPACE,
- $this->title
- );
-
- if (!is_null($this->updated)) {
- $xmlWriter->writeElementNS(
- 'atom',
- 'updated',
- Resources::ATOM_NAMESPACE,
- $this->updated->format(\DateTime::ATOM)
- );
- }
- }
-}
-
-// @codingStandardsIgnoreEnd
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Feed.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Feed.php
deleted file mode 100644
index 5036f0e6..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Feed.php
+++ /dev/null
@@ -1,730 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Atom;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Resources;
-
-/**
- * The feed class of ATOM library.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Atom
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-class Feed extends AtomBase
-{
- // @codingStandardsIgnoreStart
-
- /**
- * The entry of the feed.
- *
- * @var array
- */
- protected $entry;
-
- /**
- * the author of the feed.
- *
- * @var array
- */
- protected $author;
-
- /**
- * The category of the feed.
- *
- * @var array
- */
- protected $category;
-
- /**
- * The contributor of the feed.
- *
- * @var array
- */
- protected $contributor;
-
- /**
- * The generator of the feed.
- *
- * @var Generator
- */
- protected $generator;
-
- /**
- * The icon of the feed.
- *
- * @var string
- */
- protected $icon;
-
- /**
- * The ID of the feed.
- *
- * @var string
- */
- protected $id;
-
- /**
- * The link of the feed.
- *
- * @var array
- */
- protected $link;
-
- /**
- * The logo of the feed.
- *
- * @var string
- */
- protected $logo;
-
- /**
- * The rights of the feed.
- *
- * @var string
- */
- protected $rights;
-
- /**
- * The subtitle of the feed.
- *
- * @var string
- */
- protected $subtitle;
-
- /**
- * The title of the feed.
- *
- * @var string
- */
- protected $title;
-
- /**
- * The update of the feed.
- *
- * @var \DateTime
- */
- protected $updated;
-
- /**
- * The extension element of the feed.
- *
- * @var string
- */
- protected $extensionElement;
-
- /**
- * Creates an ATOM FEED object with default parameters.
- */
- public function __construct()
- {
- $this->attributes = array();
- }
-
- /**
- * Creates a feed object with specified XML string.
- *
- * @param string $xmlString An XML string representing the feed object.
- *
- * @return none
- */
- public function parseXml($xmlString)
- {
- $feedXml = simplexml_load_string($xmlString);
- $attributes = $feedXml->attributes();
- $feedArray = (array)$feedXml;
- if (!empty($attributes)) {
- $this->attributes = (array)$attributes;
- }
-
- if (array_key_exists('author', $feedArray)) {
- $this->author = $this->processAuthorNode($feedArray);
- }
-
- if (array_key_exists('entry', $feedArray)) {
- $this->entry = $this->processEntryNode($feedArray);
- }
-
- if (array_key_exists('category', $feedArray)) {
- $this->category = $this->processCategoryNode($feedArray);
- }
-
- if (array_key_exists('contributor', $feedArray)) {
- $this->contributor = $this->processContributorNode($feedArray);
- }
-
- if (array_key_exists('generator', $feedArray)) {
- $generator = new Generator();
- $generatorValue = $feedArray['generator'];
- if (is_string($generatorValue)) {
- $generator->setText($generatorValue);
- } else {
- $generator->parseXml($generatorValue->asXML());
- }
-
- $this->generator = $generator;
- }
-
- if (array_key_exists('icon', $feedArray)) {
- $this->icon = (string)$feedArray['icon'];
- }
-
- if (array_key_exists('id', $feedArray)) {
- $this->id = (string)$feedArray['id'];
- }
-
- if (array_key_exists('link', $feedArray)) {
- $this->link = $this->processLinkNode($feedArray);
- }
-
- if (array_key_exists('logo', $feedArray)) {
- $this->logo = (string)$feedArray['logo'];
- }
-
- if (array_key_exists('rights', $feedArray)) {
- $this->rights = (string)$feedArray['rights'];
- }
-
- if (array_key_exists('subtitle', $feedArray)) {
- $this->subtitle = (string)$feedArray['subtitle'];
- }
-
- if (array_key_exists('title', $feedArray)) {
- $this->title = (string)$feedArray['title'];
- }
-
- if (array_key_exists('updated', $feedArray)) {
- $this->updated = \DateTime::createFromFormat(
- \DateTime::ATOM,
- (string)$feedArray['updated']
- );
- }
- }
-
- /**
- * Gets the attributes of the feed.
- *
- * @return array
- */
- public function getAttributes()
- {
- return $this->attributes;
- }
-
- /**
- * Sets the attributes of the feed.
- *
- * @param array $attributes The attributes of the array.
- *
- * @return array
- */
- public function setAttributes($attributes)
- {
- Validate::isArray($attributes, 'attributes');
- $this->attributes = $attributes;
- }
-
- /**
- * Adds an attribute to the feed object instance.
- *
- * @param string $attributeKey The key of the attribute.
- * @param mixed $attributeValue The value of the attribute.
- *
- * @return none
- */
- public function addAttribute($attributeKey, $attributeValue)
- {
- $this->attributes[$attributeKey] = $attributeValue;
- }
-
- /**
- * Gets the author of the feed.
- *
- * @return Person
- */
- public function getAuthor()
- {
- return $this->author;
- }
-
- /**
- * Sets the author of the feed.
- *
- * @param Person $author The author of the feed.
- *
- * @return none
- */
- public function setAuthor($author)
- {
- Validate::isArray($author, 'author');
- $person = new Person();
- foreach ($author as $authorInstance) {
- Validate::isInstanceOf($authorInstance, $person, 'author');
- }
- $this->author = $author;
- }
-
- /**
- * Gets the category of the feed.
- *
- * @return Category
- */
- public function getCategory()
- {
- return $this->category;
- }
-
- /**
- * Sets the category of the feed.
- *
- * @param Category $category The category of the feed.
- *
- * @return none
- */
- public function setCategory($category)
- {
- Validate::isArray($category, 'category');
- $categoryClassInstance = new Category();
- foreach ($category as $categoryInstance) {
- Validate::isInstanceOf(
- $categoryInstance,
- $categoryClassInstance,
- 'category'
- );
- }
- $this->category = $category;
- }
-
- /**
- * Gets contributor.
- *
- * @return array
- */
- public function getContributor()
- {
- return $this->contributor;
- }
-
- /**
- * Sets contributor.
- *
- * @param string $contributor The contributor of the feed.
- *
- * @return none
- */
- public function setContributor($contributor)
- {
- Validate::isArray($contributor, 'contributor');
- $person = new Person();
- foreach ($contributor as $contributorInstance) {
- Validate::isInstanceOf($contributorInstance, $person, 'contributor');
- }
- $this->contributor = $contributor;
- }
-
- /**
- * Gets generator.
- *
- * @return string
- */
- public function getGenerator()
- {
- return $this->generator;
- }
-
- /**
- * Sets the generator.
- *
- * @param string $generator Sets the generator of the feed.
- *
- * @return none
- */
- public function setGenerator($generator)
- {
- $this->generator = $generator;
- }
-
- /**
- * Gets the icon of the feed.
- *
- * @return string
- */
- public function getIcon()
- {
- return $this->icon;
- }
-
- /**
- * Sets the icon of the feed.
- *
- * @param string $icon The icon of the feed.
- *
- * @return none
- */
- public function setIcon($icon)
- {
- $this->icon = $icon;
- }
-
- /**
- * Gets the ID of the feed.
- *
- * @return string
- */
- public function getId()
- {
- return $this->id;
- }
-
- /**
- * Sets the ID of the feed.
- *
- * @param string $id The ID of the feed.
- *
- * @return none
- */
- public function setId($id)
- {
- $this->id = $id;
- }
-
- /**
- * Gets the link of the feed.
- *
- * @return array
- */
- public function getLink()
- {
- return $this->link;
- }
-
- /**
- * Sets the link of the feed.
- *
- * @param array $link The link of the feed.
- *
- * @return none
- */
- public function setLink($link)
- {
- Validate::isArray($link, 'link');
- $this->link = $link;
- }
-
- /**
- * Gets the logo of the feed.
- *
- * @return string
- */
- public function getLogo()
- {
- return $this->logo;
- }
-
- /**
- * Sets the logo of the feed.
- *
- * @param string $logo The logo of the feed.
- *
- * @return none
- */
- public function setLogo($logo)
- {
- $this->logo = $logo;
- }
-
- /**
- * Gets the rights of the feed.
- *
- * @return string
- */
- public function getRights()
- {
- return $this->rights;
- }
-
- /**
- * Sets the rights of the feed.
- *
- * @param string $rights The rights of the feed.
- *
- * @return none
- */
- public function setRights($rights)
- {
- $this->rights = $rights;
- }
-
- /**
- * Gets the sub title.
- *
- * @return string
- */
- public function getSubtitle()
- {
- return $this->subtitle;
- }
-
- /**
- * Sets the sub title of the feed.
- *
- * @param string $subtitle Sets the sub title of the feed.
- *
- * @return none
- */
- public function setSubtitle($subtitle)
- {
- $this->subtitle = $subtitle;
- }
-
- /**
- * Gets the title of the feed.
- *
- * @return string.
- */
- public function getTitle()
- {
- return $this->title;
- }
-
- /**
- * Sets the title of the feed.
- *
- * @param string $title The title of the feed.
- *
- * @return none
- */
- public function setTitle($title)
- {
- $this->title = $title;
- }
-
- /**
- * Gets the updated.
- *
- * @return \DateTime
- */
- public function getUpdated()
- {
- return $this->updated;
- }
-
- /**
- * Sets the updated.
- *
- * @param \DateTime $updated updated
- *
- * @return none
- */
- public function setUpdated($updated)
- {
- Validate::isInstanceOf($updated, new \DateTime(), 'updated');
- $this->updated = $updated;
- }
-
- /**
- * Gets the extension element.
- *
- * @return string
- */
- public function getExtensionElement()
- {
- return $this->extensionElement;
- }
-
- /**
- * Sets the extension element.
- *
- * @param string $extensionElement The extension element.
- *
- * @return none
- */
- public function setExtensionElement($extensionElement)
- {
- $this->extensionElement = $extensionElement;
- }
-
- /**
- * Gets the entry of the feed.
- *
- * @return Entry
- */
- public function getEntry()
- {
- return $this->entry;
- }
-
- /**
- * Sets the entry of the feed.
- *
- * @param Entry $entry The entry of the feed.
- *
- * @return none
- */
- public function setEntry($entry)
- {
- $this->entry = $entry;
- }
-
- /**
- * Writes an XML representing the feed object.
- *
- * @param \XMLWriter $xmlWriter The XML writer.
- *
- * @return none
- */
- public function writeXml($xmlWriter)
- {
- Validate::notNull($xmlWriter, 'xmlWriter');
-
- $xmlWriter->startElementNS('atom', 'feed', Resources::ATOM_NAMESPACE);
- $this->writeInnerXml($xmlWriter);
- $xmlWriter->endElement();
- }
-
- /**
- * Writes an XML representing the feed object.
- *
- * @param \XMLWriter $xmlWriter The XML writer.
- *
- * @return none
- */
- public function writeInnerXml($xmlWriter)
- {
- Validate::notNull($xmlWriter, 'xmlWriter');
-
- if (!is_null($this->attributes)) {
- if (is_array($this->attributes)) {
- foreach (
- $this->attributes
- as $attributeName => $attributeValue
- ) {
- $xmlWriter->writeAttribute($attributeName, $attributeValue);
- }
- }
- }
-
- if (!is_null($this->author)) {
- $this->writeArrayItem(
- $xmlWriter,
- $this->author,
- Resources::AUTHOR
- );
- }
-
- if (!is_null($this->category)) {
- $this->writeArrayItem(
- $xmlWriter,
- $this->category,
- Resources::CATEGORY
- );
- }
-
- if (!is_null($this->contributor)) {
- $this->writeArrayItem(
- $xmlWriter,
- $this->contributor,
- Resources::CONTRIBUTOR
- );
- }
-
- if (!is_null($this->generator)) {
- $this->generator->writeXml($xmlWriter);
- }
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'icon',
- Resources::ATOM_NAMESPACE,
- $this->icon
- );
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'logo',
- Resources::ATOM_NAMESPACE,
- $this->logo
- );
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'id',
- Resources::ATOM_NAMESPACE,
- $this->id
- );
-
- if (!is_null($this->link)) {
- $this->writeArrayItem(
- $xmlWriter,
- $this->link,
- Resources::LINK
- );
- }
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'rights',
- Resources::ATOM_NAMESPACE,
- $this->rights
- );
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'subtitle',
- Resources::ATOM_NAMESPACE,
- $this->subtitle
- );
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'title',
- Resources::ATOM_NAMESPACE,
- $this->title
- );
-
- if (!is_null($this->updated)) {
- $xmlWriter->writeElementNS(
- 'atom',
- 'updated',
- Resources::ATOM_NAMESPACE,
- $this->updated->format(\DateTime::ATOM)
- );
- }
-
- }
-}
-
-// @codingStandardsIgnoreEnd
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Generator.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Generator.php
deleted file mode 100644
index ffa63361..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Generator.php
+++ /dev/null
@@ -1,200 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Atom;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\Resources;
-
-/**
- * The generator class of ATOM library.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Atom
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-class Generator extends AtomBase
-{
- /**
- * The of the generator.
- *
- * @var string
- */
- protected $text;
-
- /**
- * The Uri of the generator.
- *
- * @var string
- */
- protected $uri;
-
- /**
- * The version of the generator.
- *
- * @var string
- */
- protected $version;
-
- /**
- * Creates a generator instance with specified XML string.
- *
- * @param string $xmlString A string representing a generator
- * instance.
- *
- * @return none
- */
- public static function parseXml($xmlString)
- {
- $generatorXml = new \SimpleXMLElement($xmlString);
- $generatorArray = (array)$generatorXml;
- $attributes = $generatorXml->attributes();
- if (!empty($attributes['uri'])) {
- $this->uri = (string)$attributes['uri'];
- }
-
- if (!empty($attributes['version'])) {
- $this->version = (string)$attributes['version'];
- }
-
- $this->text = (string)$generatorXml;
- }
-
- /**
- * Creates an ATOM generator instance with specified name.
- *
- * @param string $text The text content of the generator.
- *
- * @return none
- */
- public function __construct($text = null)
- {
- if (!empty($text)) {
- $this->text = $text;
- }
- }
-
- /**
- * Gets the text of the generator.
- *
- * @return string
- */
- public function getText()
- {
- return $this->text;
- }
-
- /**
- * Sets the text of the generator.
- *
- * @param string $text The text of the generator.
- *
- * @return none
- */
- public function setText($text)
- {
- $this->text = $text;
- }
-
- /**
- * Gets the URI of the generator.
- *
- * @return string
- */
- public function getUri()
- {
- return $this->uri;
- }
-
- /**
- * Sets the URI of the generator.
- *
- * @param string $uri The URI of the generator.
- *
- * @return none
- */
- public function setUri($uri)
- {
- $this->uri = $uri;
- }
-
-
- /**
- * Gets the version of the generator.
- *
- * @return string
- */
- public function getVersion()
- {
- return $this->version;
- }
-
- /**
- * Sets the version of the generator.
- *
- * @param string $version The version of the generator.
- *
- * @return none
- */
- public function setVersion($version)
- {
- $this->version = $version;
- }
-
- /**
- * Writes an XML representing the generator.
- *
- * @param \XMLWriter $xmlWriter The XML writer.
- *
- * @return none
- */
- public function writeXml($xmlWriter)
- {
- $xmlWriter->startElementNS(
- 'atom',
- Resources::CATEGORY,
- Resources::ATOM_NAMESPACE
- );
-
- $this->writeOptionalAttribute(
- $xmlWriter,
- 'uri',
- $this->uri
- );
-
- $this->writeOptionalAttribute(
- $xmlWriter,
- 'version',
- $this->version
- );
-
- $xmlWriter->writeRaw($this->text);
- $xmlWriter->endElement();
- }
-}
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Person.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Person.php
deleted file mode 100644
index cc108a49..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Person.php
+++ /dev/null
@@ -1,222 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Atom;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Validate;
-
-/**
- * The person class of ATOM library.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Atom
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-class Person extends AtomBase
-{
- /**
- * The name of the person.
- *
- * @var string
- */
- protected $name;
-
- /**
- * The Uri of the person.
- *
- * @var string
- */
- protected $uri;
-
- /**
- * The email of the person.
- *
- * @var string
- */
- protected $email;
-
- /**
- * Creates an ATOM person instance with specified name.
- *
- * @param string $name The name of the person.
- */
- public function __construct($name = Resources::EMPTY_STRING)
- {
- $this->name = $name;
- }
-
- /**
- * Populates the properties with a specified XML string.
- *
- * @param string $xmlString An XML based string representing
- * the Person instance.
- *
- * @return none
- */
- public function parseXml($xmlString)
- {
- $personXml = simplexml_load_string($xmlString);
- $attributes = $personXml->attributes();
- $personArray = (array)$personXml;
-
- if (array_key_exists('name', $personArray)) {
- $this->name = (string)$personArray['name'];
- }
-
- if (array_key_exists('uri', $personArray)) {
- $this->uri = (string)$personArray['uri'];
- }
-
- if (array_key_exists('email', $personArray)) {
- $this->email = (string)$personArray['email'];
- }
- }
-
- /**
- * Gets the name of the person.
- *
- * @return string
- */
- public function getName()
- {
- return $this->name;
- }
-
- /**
- * Sets the name of the person.
- *
- * @param string $name The name of the person.
- *
- * @return none
- */
- public function setName($name)
- {
- $this->name = $name;
- }
-
- /**
- * Gets the URI of the person.
- *
- * @return string
- */
- public function getUri()
- {
- return $this->uri;
- }
-
- /**
- * Sets the URI of the person.
- *
- * @param string $uri The URI of the person.
- *
- * @return none
- */
- public function setUri($uri)
- {
- $this->uri = $uri;
- }
-
-
- /**
- * Gets the email of the person.
- *
- * @return string
- */
- public function getEmail()
- {
- return $this->email;
- }
-
- /**
- * Sets the email of the person.
- *
- * @param string $email The email of the person.
- *
- * @return none
- */
- public function setEmail($email)
- {
- $this->email = $email;
- }
-
- /**
- * Writes an XML representing the person.
- *
- * @param \XMLWriter $xmlWriter The XML writer.
- *
- * @return none
- */
- public function writeXml($xmlWriter)
- {
- Validate::notNull($xmlWriter, 'xmlWriter');
- $xmlWriter->startElementNS(
- 'atom',
- 'person',
- Resources::ATOM_NAMESPACE
- );
- $this->writeInnerXml($xmlWriter);
- $xmlWriter->endElement();
- }
-
- /**
- * Writes a inner XML representing the person.
- *
- * @param \XMLWriter $xmlWriter The XML writer.
- *
- * @return none
- */
- public function writeInnerXml($xmlWriter)
- {
- Validate::notNull($xmlWriter, 'xmlWriter');
- $xmlWriter->writeElementNS(
- 'atom',
- 'name',
- Resources::ATOM_NAMESPACE,
- $this->name
- );
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'uri',
- Resources::ATOM_NAMESPACE,
- $this->uri
- );
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'email',
- Resources::ATOM_NAMESPACE,
- $this->email
- );
- }
-}
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Source.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Source.php
deleted file mode 100644
index 21030c94..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Atom/Source.php
+++ /dev/null
@@ -1,632 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Atom;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Resources;
-
-/**
- * The source class of ATOM library.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Atom
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/WindowsAzure/azure-sdk-for-php
- */
-
-class Source extends AtomBase
-{
- // @codingStandardsIgnoreStart
-
- /**
- * The author the source.
- *
- * @var array
- */
- protected $author;
-
- /**
- * The category of the source.
- *
- * @var array
- */
- protected $category;
-
- /**
- * The contributor of the source.
- *
- * @var array
- */
- protected $contributor;
-
- /**
- * The generator of the source.
- *
- * @var Generator
- */
- protected $generator;
-
- /**
- * The icon of the source.
- *
- * @var string
- */
- protected $icon;
-
- /**
- * The ID of the source.
- *
- * @var string
- */
- protected $id;
-
- /**
- * The link of the source.
- *
- * @var AtomLink
- */
- protected $link;
-
- /**
- * The logo of the source.
- *
- * @var string
- */
- protected $logo;
-
- /**
- * The rights of the source.
- *
- * @var string
- */
- protected $rights;
-
- /**
- * The subtitle of the source.
- *
- * @var string
- */
- protected $subtitle;
-
- /**
- * The title of the source.
- *
- * @var string
- */
- protected $title;
-
- /**
- * The update of the source.
- *
- * @var \DateTime
- */
- protected $updated;
-
- /**
- * The extension element of the source.
- *
- * @var string
- */
- protected $extensionElement;
-
- /**
- * Creates an ATOM FEED object with default parameters.
- */
- public function __construct()
- {
- $this->attributes = array();
- $this->category = array();
- $this->contributor = array();
- $this->author = array();
- }
-
- /**
- * Creates a source object with specified XML string.
- *
- * @param string $xmlString The XML string representing a source.
- *
- * @return none
- */
- public function parseXml($xmlString)
- {
- $sourceXml = new \SimpleXMLElement($xmlString);
- $attributes = $sourceXml->attributes();
- $sourceArray = (array)$sourceXml;
-
- if (array_key_exists(Resources::AUTHOR, $sourceArray)) {
- $this->content = $this->processAuthorNode($sourceArray);
- }
-
- if (array_key_exists(Resources::CATEGORY, $sourceArray)) {
- $this->category = $this->processCategoryNode($sourceArray);
- }
-
- if (array_key_exists(Resources::CONTRIBUTOR, $sourceArray)) {
- $this->contributor = $this->processContributorNode($sourceArray);
- }
-
- if (array_key_exists('generator', $sourceArray)) {
- $generator = new Generator();
- $generator->setText((string)$sourceArray['generator']->asXML());
- $this->generator = $generator;
- }
-
- if (array_key_exists('icon', $sourceArray)) {
- $this->icon = (string)$sourceArray['icon'];
- }
-
- if (array_key_exists('id', $sourceArray)) {
- $this->id = (string)$sourceArray['id'];
- }
-
- if (array_key_exists(Resources::LINK, $sourceArray)) {
- $this->link = $this->processLinkNode($sourceArray);
- }
-
- if (array_key_exists('logo', $sourceArray)) {
- $this->logo = (string)$sourceArray['logo'];
- }
-
- if (array_key_exists('rights', $sourceArray)) {
- $this->rights = (string)$sourceArray['rights'];
- }
-
- if (array_key_exists('subtitle', $sourceArray)) {
- $this->subtitle = (string)$sourceArray['subtitle'];
- }
-
- if (array_key_exists('title', $sourceArray)) {
- $this->title = (string)$sourceArray['title'];
- }
-
- if (array_key_exists('updated', $sourceArray)) {
- $this->updated = \DateTime::createFromFormat(
- \DateTime::ATOM,
- (string)$sourceArray['updated']
- );
- }
- }
-
- /**
- * Gets the author of the source.
- *
- * @return array
- */
- public function getAuthor()
- {
- return $this->author;
- }
-
- /**
- * Sets the author of the source.
- *
- * @param array $author An array of authors of the sources.
- *
- * @return none
- */
- public function setAuthor($author)
- {
- $this->author = $author;
- }
-
- /**
- * Gets the category of the source.
- *
- * @return array
- */
- public function getCategory()
- {
- return $this->category;
- }
-
- /**
- * Sets the category of the source.
- *
- * @param array $category The category of the source.
- *
- * @return none
- */
- public function setCategory($category)
- {
- $this->category = $category;
- }
-
- /**
- * Gets contributor.
- *
- * @return array
- */
- public function getContributor()
- {
- return $this->contributor;
- }
-
- /**
- * Sets contributor.
- *
- * @param array $contributor The contributors of the source.
- *
- * @return none
- */
- public function setContributor($contributor)
- {
- $this->contributor = $contributor;
- }
-
- /**
- * Gets generator.
- *
- * @return Generator
- */
- public function getGenerator()
- {
- return $this->generator;
- }
-
- /**
- * Sets the generator.
- *
- * @param Generator $generator Sets the generator of the source.
- *
- * @return none
- */
- public function setGenerator($generator)
- {
- $this->generator = $generator;
- }
-
- /**
- * Gets the icon of the source.
- *
- * @return string
- */
- public function getIcon()
- {
- return $this->icon;
- }
-
- /**
- * Sets the icon of the source.
- *
- * @param string $icon The icon of the source.
- *
- * @return string
- */
- public function setIcon($icon)
- {
- $this->icon = $icon;
- }
-
- /**
- * Gets the ID of the source.
- *
- * @return string
- */
- public function getId()
- {
- return $this->id;
- }
-
- /**
- * Sets the ID of the source.
- *
- * @param string $id The ID of the source.
- *
- * @return string
- */
- public function setId($id)
- {
- $this->id = $id;
- }
-
- /**
- * Gets the link of the source.
- *
- * @return array
- */
- public function getLink()
- {
- return $this->link;
- }
-
- /**
- * Sets the link of the source.
- *
- * @param array $link The link of the source.
- *
- * @return none
- */
- public function setLink($link)
- {
- $this->link = $link;
- }
-
- /**
- * Gets the logo of the source.
- *
- * @return string
- */
- public function getLogo()
- {
- return $this->logo;
- }
-
- /**
- * Sets the logo of the source.
- *
- * @param string $logo The logo of the source.
- *
- * @return none
- */
- public function setLogo($logo)
- {
- $this->logo = $logo;
- }
-
- /**
- * Gets the rights of the source.
- *
- * @return string
- */
- public function getRights()
- {
- return $this->rights;
- }
-
- /**
- * Sets the rights of the source.
- *
- * @param string $rights The rights of the source.
- *
- * @return none
- */
- public function setRights($rights)
- {
- $this->rights = $rights;
- }
-
- /**
- * Gets the sub title.
- *
- * @return string
- */
- public function getSubtitle()
- {
- return $this->subtitle;
- }
-
- /**
- * Sets the sub title of the source.
- *
- * @param string $subtitle Sets the sub title of the source.
- *
- * @return none
- */
- public function setSubtitle($subtitle)
- {
- $this->subtitle = $subtitle;
- }
-
- /**
- * Gets the title of the source.
- *
- * @return string.
- */
- public function getTitle()
- {
- return $this->title;
- }
-
- /**
- * Sets the title of the source.
- *
- * @param string $title The title of the source.
- *
- * @return none
- */
- public function setTitle($title)
- {
- $this->title = $title;
- }
-
- /**
- * Gets the updated.
- *
- * @return \DateTime
- */
- public function getUpdated()
- {
- return $this->updated;
- }
-
- /**
- * Sets the updated.
- *
- * @param \DateTime $updated updated
- *
- * @return none
- */
- public function setUpdated($updated)
- {
- $this->updated = $updated;
- }
-
- /**
- * Gets the extension element.
- *
- * @return string
- */
- public function getExtensionElement()
- {
- return $this->extensionElement;
- }
-
- /**
- * Sets the extension element.
- *
- * @param string $extensionElement The extension element.
- *
- * @return none
- */
- public function setExtensionElement($extensionElement)
- {
- $this->extensionElement = $extensionElement;
- }
-
- /**
- * Writes an XML representing the source object.
- *
- * @param \XMLWriter $xmlWriter The XML writer.
- *
- * @return none
- */
- public function writeXml($xmlWriter)
- {
- Validate::notNull($xmlWriter, 'xmlWriter');
- $xmlWriter->startElementNS(
- 'atom',
- 'source',
- Resources::ATOM_NAMESPACE
- );
- $this->writeInnerXml($xmlWriter);
- $xmlWriter->endElement();
- }
- /**
- * Writes a inner XML representing the source object.
- *
- * @param \XMLWriter $xmlWriter The XML writer.
- *
- * @return none
- */
- public function writeInnerXml($xmlWriter)
- {
- Validate::notNull($xmlWriter, 'xmlWriter');
- if (!is_null($this->attributes)) {
- if (is_array($this->attributes)) {
- foreach ($this->attributes as $attributeName => $attributeValue) {
- $xmlWriter->writeAttribute($attributeName, $attributeValue);
- }
- }
- }
-
- if (!is_null($this->author)) {
- Validate::isArray($this->author, Resources::AUTHOR);
- $this->writeArrayItem($xmlWriter, $this->author, Resources::AUTHOR);
- }
-
- if (!is_null($this->category)) {
- Validate::isArray($this->category, Resources::CATEGORY);
- $this->writeArrayItem(
- $xmlWriter,
- $this->category,
- Resources::CATEGORY
- );
- }
-
- if (!is_null($this->contributor)) {
- Validate::isArray($this->contributor, Resources::CONTRIBUTOR);
- $this->writeArrayItem(
- $xmlWriter,
- $this->contributor,
- Resources::CONTRIBUTOR
- );
- }
-
- if (!is_null($this->generator)) {
- $this->generator->writeXml($xmlWriter);
- }
-
- if (!is_null($this->icon)) {
- $xmlWriter->writeElementNS(
- 'atom',
- 'icon',
- Resources::ATOM_NAMESPACE,
- $this->icon
- );
- }
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'logo',
- Resources::ATOM_NAMESPACE,
- $this->logo
- );
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'id',
- Resources::ATOM_NAMESPACE,
- $this->id
- );
-
- if (!is_null($this->link)) {
- Validate::isArray($this->link, Resources::LINK);
- $this->writeArrayItem(
- $xmlWriter,
- $this->link,
- Resources::LINK
- );
- }
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'rights',
- Resources::ATOM_NAMESPACE,
- $this->rights
- );
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'subtitle',
- Resources::ATOM_NAMESPACE,
- $this->subtitle
- );
-
- $this->writeOptionalElementNS(
- $xmlWriter,
- 'atom',
- 'title',
- Resources::ATOM_NAMESPACE,
- $this->title
- );
-
- if (!is_null($this->updated)) {
- $xmlWriter->writeElementNS(
- 'atom',
- 'updated',
- Resources::ATOM_NAMESPACE,
- $this->updated->format(\DateTime::ATOM)
- );
- }
- }
-}
-
-// @codingStandardsIgnoreEnd
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Authentication/IAuthScheme.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Authentication/IAuthScheme.php
deleted file mode 100644
index 9966dd72..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Authentication/IAuthScheme.php
+++ /dev/null
@@ -1,60 +0,0 @@
-
- * @copyright Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Authentication;
-
-/**
- * Interface for azure authentication schemes.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Authentication
- * @author Azure PHP SDK
- * @copyright Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-interface IAuthScheme
-{
- /**
- * Returns authorization header to be included in the request.
- *
- * @param array $headers request headers.
- * @param string $url reuqest url.
- * @param array $queryParams query variables.
- * @param string $httpMethod request http method.
- *
- * @see Specifying the Authorization Header section at
- * http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx
- *
- * @abstract
- *
- * @return string
- */
- public function getAuthorizationHeader($headers, $url, $queryParams,
- $httpMethod
- );
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Authentication/OAuthScheme.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Authentication/OAuthScheme.php
deleted file mode 100644
index 2107bc52..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Authentication/OAuthScheme.php
+++ /dev/null
@@ -1,142 +0,0 @@
-
- * @copyright Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link http://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Authentication;
-use WindowsAzure\Common\Internal\Authentication\IAuthScheme;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\OAuthRestProxy;
-use WindowsAzure\Common\Models\OAuthAccessToken;
-
-/**
- * Provides shared key authentication scheme for OAuth.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Authentication
- * @author Azure PHP SDK
- * @copyright Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link http://github.com/windowsazure/azure-sdk-for-php
- */
-class OAuthScheme implements IAuthScheme
-{
- /**
- * @var string
- */
- protected $accountName;
-
- /**
- * @var string
- */
- protected $accountKey;
-
- /**
- * @var WindowsAzure\Common\Models\OAuthAccessToken
- */
- protected $accessToken;
-
- /**
- * @var WindowsAzure\Common\Internal\OAuthRestProxy
- */
- protected $oauthService;
-
- /**
- * @var string
- */
- protected $grantType;
-
- /**
- * @var string
- */
- protected $scope;
-
- /**
- * Constructor.
- *
- * @param string $accountName account name.
- * @param string $accountKey account
- * secondary key.
- *
- * @param string $grantType grant type
- * for OAuth request.
- *
- * @param string $scope scope for
- * OAurh request.
- *
- * @param WindowsAzure\Common\Internal\OAuthRestProxy $oauthService account
- * primary or secondary key.
- */
- public function __construct(
- $accountName,
- $accountKey,
- $grantType,
- $scope,
- $oauthService
- ) {
- Validate::isString($accountName, 'accountName');
- Validate::isString($accountKey, 'accountKey');
- Validate::isString($grantType, 'grantType');
- Validate::isString($scope, 'scope');
- Validate::notNull($oauthService, 'oauthService');
-
- $this->accountName = $accountName;
- $this->accountKey = $accountKey;
- $this->grantType = $grantType;
- $this->scope = $scope;
- $this->oauthService = $oauthService;
- }
-
- /**
- * Returns authorization header to be included in the request.
- *
- * @param array $headers request headers.
- * @param string $url reuqest url.
- * @param array $queryParams query variables.
- * @param string $httpMethod request http method.
- *
- * @see Specifying the Authorization Header section at
- * http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx
- *
- * @return string
- */
- public function getAuthorizationHeader($headers, $url, $queryParams, $httpMethod)
- {
- if (($this->accessToken == null)
- || ($this->accessToken->getExpiresIn() < time())
- ) {
- $this->accessToken = $this->oauthService->getAccessToken(
- $this->grantType,
- $this->accountName,
- $this->accountKey,
- $this->scope
- );
- }
-
- return Resources::OAUTH_ACCESS_TOKEN_PREFIX .
- $this->accessToken->getAccessToken();
- }
-}
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Authentication/SharedKeyAuthScheme.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Authentication/SharedKeyAuthScheme.php
deleted file mode 100644
index 23a42487..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Authentication/SharedKeyAuthScheme.php
+++ /dev/null
@@ -1,137 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Authentication;
-use WindowsAzure\Common\Internal\Authentication\StorageAuthScheme;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * Provides shared key authentication scheme for blob and queue. For more info
- * check: http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Authentication
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class SharedKeyAuthScheme extends StorageAuthScheme
-{
- protected $includedHeaders;
-
- /**
- * Constructor.
- *
- * @param string $accountName storage account name.
- * @param string $accountKey storage account primary or secondary key.
- *
- * @return
- * WindowsAzure\Common\Internal\Authentication\SharedKeyAuthScheme
- */
- public function __construct($accountName, $accountKey)
- {
- parent::__construct($accountName, $accountKey);
-
- $this->includedHeaders = array();
- $this->includedHeaders[] = Resources::CONTENT_ENCODING;
- $this->includedHeaders[] = Resources::CONTENT_LANGUAGE;
- $this->includedHeaders[] = Resources::CONTENT_LENGTH;
- $this->includedHeaders[] = Resources::CONTENT_MD5;
- $this->includedHeaders[] = Resources::CONTENT_TYPE;
- $this->includedHeaders[] = Resources::DATE;
- $this->includedHeaders[] = Resources::IF_MODIFIED_SINCE;
- $this->includedHeaders[] = Resources::IF_MATCH;
- $this->includedHeaders[] = Resources::IF_NONE_MATCH;
- $this->includedHeaders[] = Resources::IF_UNMODIFIED_SINCE;
- $this->includedHeaders[] = Resources::RANGE;
- }
-
- /**
- * Computes the authorization signature for blob and queue shared key.
- *
- * @param array $headers request headers.
- * @param string $url reuqest url.
- * @param array $queryParams query variables.
- * @param string $httpMethod request http method.
- *
- * @see Blob and Queue Services (Shared Key Authentication) at
- * http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx
- *
- * @return string
- */
- protected function computeSignature($headers, $url, $queryParams, $httpMethod)
- {
- $canonicalizedHeaders = parent::computeCanonicalizedHeaders($headers);
-
- $canonicalizedResource = parent::computeCanonicalizedResource(
- $url, $queryParams
- );
-
-
- $stringToSign = array();
- $stringToSign[] = strtoupper($httpMethod);
-
- foreach ($this->includedHeaders as $header) {
- $stringToSign[] = Utilities::tryGetValue($headers, $header);
- }
-
- if (count($canonicalizedHeaders) > 0) {
- $stringToSign[] = implode("\n", $canonicalizedHeaders);
- }
-
- $stringToSign[] = $canonicalizedResource;
- $stringToSign = implode("\n", $stringToSign);
-
- return $stringToSign;
- }
-
- /**
- * Returns authorization header to be included in the request.
- *
- * @param array $headers request headers.
- * @param string $url reuqest url.
- * @param array $queryParams query variables.
- * @param string $httpMethod request http method.
- *
- * @see Specifying the Authorization Header section at
- * http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx
- *
- * @return string
- */
- public function getAuthorizationHeader($headers, $url, $queryParams, $httpMethod)
- {
- $signature = $this->computeSignature(
- $headers, $url, $queryParams, $httpMethod
- );
-
- return 'SharedKey ' . $this->accountName . ':' . base64_encode(
- hash_hmac('sha256', $signature, base64_decode($this->accountKey), true)
- );
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Authentication/StorageAuthScheme.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Authentication/StorageAuthScheme.php
deleted file mode 100644
index f883d055..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Authentication/StorageAuthScheme.php
+++ /dev/null
@@ -1,215 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Authentication;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\Authentication\IAuthScheme;
-
-
-/**
- * Base class for azure authentication schemes.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Authentication
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-abstract class StorageAuthScheme implements IAuthScheme
-{
- protected $accountName;
- protected $accountKey;
-
- /**
- * Constructor.
- *
- * @param string $accountName storage account name.
- * @param string $accountKey storage account primary or secondary key.
- *
- * @return
- * WindowsAzure\Common\Internal\Authentication\StorageAuthScheme
- */
- public function __construct($accountName, $accountKey)
- {
- $this->accountKey = $accountKey;
- $this->accountName = $accountName;
- }
-
- /**
- * Computes canonicalized headers for headers array.
- *
- * @param array $headers request headers.
- *
- * @see Constructing the Canonicalized Headers String section at
- * http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx
- *
- * @return array
- */
- protected function computeCanonicalizedHeaders($headers)
- {
- $canonicalizedHeaders = array();
- $normalizedHeaders = array();
- $validPrefix = Resources::X_MS_HEADER_PREFIX;
-
- if (is_null($normalizedHeaders)) {
- return $canonicalizedHeaders;
- }
-
- foreach ($headers as $header => $value) {
- // Convert header to lower case.
- $header = strtolower($header);
-
- // Retrieve all headers for the resource that begin with x-ms-,
- // including the x-ms-date header.
- if (Utilities::startsWith($header, $validPrefix)) {
- // Unfold the string by replacing any breaking white space
- // (meaning what splits the headers, which is \r\n) with a single
- // space.
- $value = str_replace("\r\n", ' ', $value);
-
- // Trim any white space around the colon in the header.
- $value = ltrim($value);
- $header = rtrim($header);
-
- $normalizedHeaders[$header] = $value;
- }
- }
-
- // Sort the headers lexicographically by header name, in ascending order.
- // Note that each header may appear only once in the string.
- ksort($normalizedHeaders);
-
- foreach ($normalizedHeaders as $key => $value) {
- $canonicalizedHeaders[] = $key . ':' . $value;
- }
-
- return $canonicalizedHeaders;
- }
-
- /**
- * Computes canonicalized resources from URL using Table formar
- *
- * @param string $url request url.
- * @param array $queryParams request query variables.
- *
- * @see Constructing the Canonicalized Resource String section at
- * http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx
- *
- * @return string
- */
- protected function computeCanonicalizedResourceForTable($url, $queryParams)
- {
- $queryParams = array_change_key_case($queryParams);
-
- // 1. Beginning with an empty string (""), append a forward slash (/),
- // followed by the name of the account that owns the accessed resource.
- $canonicalizedResource = '/' . $this->accountName;
-
- // 2. Append the resource's encoded URI path, without any query parameters.
- $canonicalizedResource .= parse_url($url, PHP_URL_PATH);
-
- // 3. The query string should include the question mark and the comp
- // parameter (for example, ?comp=metadata). No other parameters should
- // be included on the query string.
- if (array_key_exists(Resources::QP_COMP, $queryParams)) {
- $canonicalizedResource .= '?' . Resources::QP_COMP . '=';
- $canonicalizedResource .= $queryParams[Resources::QP_COMP];
- }
-
- return $canonicalizedResource;
- }
-
- /**
- * Computes canonicalized resources from URL.
- *
- * @param string $url request url.
- * @param array $queryParams request query variables.
- *
- * @see Constructing the Canonicalized Resource String section at
- * http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx
- *
- * @return string
- */
- protected function computeCanonicalizedResource($url, $queryParams)
- {
- $queryParams = array_change_key_case($queryParams);
-
- // 1. Beginning with an empty string (""), append a forward slash (/),
- // followed by the name of the account that owns the accessed resource.
- $canonicalizedResource = '/' . $this->accountName;
-
- // 2. Append the resource's encoded URI path, without any query parameters.
- $canonicalizedResource .= parse_url($url, PHP_URL_PATH);
-
- // 3. Retrieve all query parameters on the resource URI, including the comp
- // parameter if it exists.
- // 4. Sort the query parameters lexicographically by parameter name, in
- // ascending order.
- if (count($queryParams) > 0) {
- ksort($queryParams);
- }
-
- // 5. Convert all parameter names to lowercase.
- // 6. URL-decode each query parameter name and value.
- // 7. Append each query parameter name and value to the string in the
- // following format:
- // parameter-name:parameter-value
- // 9. Group query parameters
- // 10. Append a new line character (\n) after each name-value pair.
- foreach ($queryParams as $key => $value) {
- // Grouping query parameters
- $values = explode(Resources::SEPARATOR, $value);
- sort($values);
- $separated = implode(Resources::SEPARATOR, $values);
-
- $canonicalizedResource .= "\n" . $key . ':' . $separated;
- }
-
- return $canonicalizedResource;
- }
-
- /**
- * Computes the authorization signature.
- *
- * @param array $headers request headers.
- * @param string $url reuqest url.
- * @param array $queryParams query variables.
- * @param string $httpMethod request http method.
- *
- * @see check all authentication schemes at
- * http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx
- *
- * @abstract
- *
- * @return string
- */
- abstract protected function computeSignature($headers, $url, $queryParams,
- $httpMethod
- );
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Authentication/TableSharedKeyLiteAuthScheme.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Authentication/TableSharedKeyLiteAuthScheme.php
deleted file mode 100644
index 43221dac..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Authentication/TableSharedKeyLiteAuthScheme.php
+++ /dev/null
@@ -1,118 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link http://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Authentication;
-use WindowsAzure\Common\Internal\Authentication\StorageAuthScheme;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * Provides shared key authentication scheme for blob and queue. For more info
- * check: http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Authentication
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link http://github.com/windowsazure/azure-sdk-for-php
- */
-class TableSharedKeyLiteAuthScheme extends StorageAuthScheme
-{
- protected $includedHeaders;
-
- /**
- * Constructor.
- *
- * @param string $accountName storage account name.
- * @param string $accountKey storage account primary or secondary key.
- *
- * @return TableSharedKeyLiteAuthScheme
- */
- public function __construct($accountName, $accountKey)
- {
- parent::__construct($accountName, $accountKey);
-
- $this->includedHeaders = array();
- $this->includedHeaders[] = Resources::DATE;
- }
-
- /**
- * Computes the authorization signature for blob and queue shared key.
- *
- * @param array $headers request headers.
- * @param string $url reuqest url.
- * @param array $queryParams query variables.
- * @param string $httpMethod request http method.
- *
- * @see Blob and Queue Services (Shared Key Authentication) at
- * http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx
- *
- * @return string
- */
- protected function computeSignature($headers, $url, $queryParams, $httpMethod)
- {
- $canonicalizedResource = parent::computeCanonicalizedResourceForTable(
- $url, $queryParams
- );
-
- $stringToSign = array();
-
- foreach ($this->includedHeaders as $header) {
- $stringToSign[] = Utilities::tryGetValue($headers, $header);
- }
-
- $stringToSign[] = $canonicalizedResource;
- $stringToSign = implode("\n", $stringToSign);
-
- return $stringToSign;
- }
-
- /**
- * Returns authorization header to be included in the request.
- *
- * @param array $headers request headers.
- * @param string $url reuqest url.
- * @param array $queryParams query variables.
- * @param string $httpMethod request http method.
- *
- * @see Specifying the Authorization Header section at
- * http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx
- *
- * @return string
- */
- public function getAuthorizationHeader($headers, $url, $queryParams, $httpMethod)
- {
- $signature = $this->computeSignature(
- $headers, $url, $queryParams, $httpMethod
- );
-
- return 'SharedKeyLite ' . $this->accountName . ':' . base64_encode(
- hash_hmac('sha256', $signature, base64_decode($this->accountKey), true)
- );
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ConnectionStringParser.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ConnectionStringParser.php
deleted file mode 100644
index 6e0f744f..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ConnectionStringParser.php
+++ /dev/null
@@ -1,365 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-
-/**
- * Helper methods for parsing connection strings. The rules for formatting connection
- * strings are defined here:
- * www.connectionstrings.com/articles/show/important-rules-for-connection-strings
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ConnectionStringParser
-{
- /**
- * @var string
- */
- private $_argumentName;
-
- /**
- * @var string
- */
- private $_value;
-
- /**
- * @var integer
- */
- private $_pos;
-
- /**
- * @var string
- */
- private $_state;
-
- /**
- * Parses the connection string into a collection of key/value pairs.
- *
- * @param string $argumentName Name of the argument to be used in error
- * messages.
- * @param string $connectionString Connection string.
- *
- * @return array
- *
- * @static
- */
- public static function parseConnectionString($argumentName, $connectionString)
- {
- Validate::isString($argumentName, 'argumentName');
- Validate::notNullOrEmpty($argumentName, 'argumentName');
- Validate::isString($connectionString, 'connectionString');
- Validate::notNullOrEmpty($connectionString, 'connectionString');
-
- $parser = new ConnectionStringParser($argumentName, $connectionString);
- return $parser->_parse();
- }
-
- /**
- * Initializes the object.
- *
- * @param string $argumentName Name of the argument to be used in error
- * messages.
- * @param string $value Connection string.
- */
- private function __construct($argumentName, $value)
- {
- $this->_argumentName = $argumentName;
- $this->_value = $value;
- $this->_pos = 0;
- $this->_state = ParserState::EXPECT_KEY;
- }
-
- /**
- * Parses the connection string.
- *
- * @return array
- *
- * @throws \RuntimeException
- */
- private function _parse()
- {
- $key = null;
- $value = null;
- $connectionStringValues = array();
-
- while (true) {
- $this->_skipWhiteSpaces();
-
- if ( $this->_pos == strlen($this->_value)
- && $this->_state != ParserState::EXPECT_VALUE
- ) {
- // Not stopping after the end has been reached and a value is
- // expected results in creating an empty value, which we expect.
- break;
- }
-
- switch ($this->_state) {
- case ParserState::EXPECT_KEY:
- $key = $this->_extractKey();
- $this->_state = ParserState::EXPECT_ASSIGNMENT;
- break;
-
- case ParserState::EXPECT_ASSIGNMENT:
- $this->_skipOperator('=');
- $this->_state = ParserState::EXPECT_VALUE;
- break;
-
- case ParserState::EXPECT_VALUE:
- $value = $this->_extractValue();
- $this->_state = ParserState::EXPECT_SEPARATOR;
- $connectionStringValues[$key] = $value;
- $key = null;
- $value = null;
- break;
-
- default:
- $this->_skipOperator(';');
- $this->_state = ParserState::EXPECT_KEY;
- break;
- }
- }
-
- // Must end parsing in the valid state (expected key or separator)
- if ($this->_state == ParserState::EXPECT_ASSIGNMENT) {
- throw $this->_createException(
- $this->_pos,
- Resources::MISSING_CONNECTION_STRING_CHAR,
- '='
- );
- }
-
- return $connectionStringValues;
- }
-
- /**
- *Generates an invalid connection string exception with the detailed error
- * message.
- *
- * @param integer $position The position of the error.
- * @param string $errorString The short error formatting string.
- *
- * @return \RuntimeException
- */
- private function _createException($position, $errorString)
- {
- $arguments = func_get_args();
-
- // Remove first argument (position)
- unset($arguments[0]);
-
- // Create a short error message.
- $errorString = sprintf($errorString, $arguments);
-
- // Add position.
- $errorString = sprintf(
- Resources::ERROR_PARSING_STRING,
- $errorString,
- $position
- );
-
- // Create final error message.
- $errorString = sprintf(
- Resources::INVALID_CONNECTION_STRING,
- $this->_argumentName,
- $errorString
- );
-
- return new \RuntimeException($errorString);
- }
-
- /**
- * Skips whitespaces at the current position.
- *
- * @return none
- */
- private function _skipWhiteSpaces()
- {
- while ( $this->_pos < strlen($this->_value)
- && ctype_space($this->_value[$this->_pos])
- ) {
- $this->_pos++;
- }
- }
-
- /**
- * Extracts the key's value.
- *
- * @return string
- */
- private function _extractValue()
- {
- $value = Resources::EMPTY_STRING;
-
- if ($this->_pos < strlen($this->_value)) {
- $ch = $this->_value[$this->_pos];
-
- if ($ch == '"' || $ch == '\'') {
- // Value is contained between double quotes or skipped single quotes.
- $this->_pos++;
- $value = $this->_extractString($ch);
- } else {
- $firstPos = $this->_pos;
- $isFound = false;
-
- while ($this->_pos < strlen($this->_value) && !$isFound) {
- $ch = $this->_value[$this->_pos];
-
- if ($ch == ';') {
- $isFound = true;
- } else {
- $this->_pos++;
- }
- }
-
- $value = rtrim(
- substr($this->_value, $firstPos, $this->_pos - $firstPos)
- );
- }
- }
-
- return $value;
- }
-
- /**
- * Extracts key at the current position.
- *
- * @return string
- */
- private function _extractKey()
- {
- $key = null;
- $firstPos = $this->_pos;
- $ch = $this->_value[$this->_pos];
-
- if ($ch == '"' || $ch == '\'') {
- $this->_pos++;
- $key = $this->_extractString($ch);
- } else if ($ch == ';' || $ch == '=') {
- // Key name was expected.
- throw $this->_createException(
- $firstPos,
- Resources::ERROR_CONNECTION_STRING_MISSING_KEY
- );
- } else {
- while ($this->_pos < strlen($this->_value)) {
- $ch = $this->_value[$this->_pos];
-
- // At this point we've read the key, break.
- if ($ch == '=') {
- break;
- }
-
- $this->_pos++;
- }
- $key = rtrim(substr($this->_value, $firstPos, $this->_pos - $firstPos));
- }
-
- if (strlen($key) == 0) {
- // Empty key name.
- throw $this->_createException(
- $firstPos,
- Resources::ERROR_CONNECTION_STRING_EMPTY_KEY
- );
- }
-
- return $key;
- }
-
- /**
- * Extracts the string until the given quotation mark.
- *
- * @param string $quote The quotation mark terminating the string.
- *
- * @return string
- */
- private function _extractString($quote)
- {
- $firstPos = $this->_pos;
-
- while ( $this->_pos < strlen($this->_value)
- && $this->_value[$this->_pos] != $quote
- ) {
- $this->_pos++;
- }
-
- if ($this->_pos == strlen($this->_value)) {
- // Runaway string.
- throw $this->_createException(
- $this->_pos,
- Resources::ERROR_CONNECTION_STRING_MISSING_CHARACTER,
- $quote
- );
- }
-
- return substr($this->_value, $firstPos, $this->_pos++ - $firstPos);
- }
-
- /**
- * Skips specified operator.
- *
- * @param string $operatorChar The operator character.
- *
- * @return none
- *
- * @throws \RuntimeException
- */
- private function _skipOperator($operatorChar)
- {
- if ($this->_value[$this->_pos] != $operatorChar) {
- // Character was expected.
- throw $this->_createException(
- $this->_pos,
- Resources::MISSING_CONNECTION_STRING_CHAR,
- $operatorChar
- );
- }
-
- $this->_pos++;
- }
-}
-
-/**
- * State of the connection string parser.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ParserState
-{
- const EXPECT_KEY = 'ExpectKey';
- const EXPECT_ASSIGNMENT = 'ExpectAssignment';
- const EXPECT_VALUE = 'ExpectValue';
- const EXPECT_SEPARATOR = 'ExpectSeparator';
-}
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ConnectionStringSource.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ConnectionStringSource.php
deleted file mode 100644
index 43d377e4..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ConnectionStringSource.php
+++ /dev/null
@@ -1,98 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-
-/**
- * Holder for default connection string sources used in CloudConfigurationManager.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ConnectionStringSource
-{
- /**
- * The list of all sources which comes as default.
- *
- * @var type
- */
- private static $_defaultSources;
-
- /**
- * @var boolean
- */
- private static $_isInitialized;
-
- /**
- * Environment variable source name.
- */
- const ENVIRONMENT_SOURCE = 'environment_source';
-
- /**
- * Initializes the default sources.
- *
- * @return none
- */
- private static function _init()
- {
- if (!self::$_isInitialized) {
- self::$_defaultSources = array(
- self::ENVIRONMENT_SOURCE => array(__CLASS__, 'environmentSource')
- );
- self::$_isInitialized = true;
- }
- }
-
- /**
- * Gets a connection string value from the system environment.
- *
- * @param string $key The connection string name.
- *
- * @return string
- */
- public static function environmentSource($key)
- {
- Validate::isString($key, 'key');
-
- return getenv($key);
- }
-
- /**
- * Gets list of default sources.
- *
- * @return array
- */
- public static function getDefaultSources()
- {
- self::_init();
- return self::$_defaultSources;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/FilterableService.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/FilterableService.php
deleted file mode 100644
index 8c024a00..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/FilterableService.php
+++ /dev/null
@@ -1,52 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-
-/**
- * Interface for service with filers.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-interface FilterableService
-{
- /**
- * Adds new filter to proxy object and returns new BlobRestProxy with
- * that filter.
- *
- * @param WindowsAzure\Common\Internal\IServiceFilter $filter Filter to add for
- * the pipeline.
- *
- * @return mix.
- */
- public function withFilter($filter);
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/AuthenticationFilter.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/AuthenticationFilter.php
deleted file mode 100644
index db9cf9e8..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/AuthenticationFilter.php
+++ /dev/null
@@ -1,93 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Filters;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\IServiceFilter;
-use WindowsAzure\Common\Internal\Authentication\SharedKeyAuthScheme;
-use WindowsAzure\Common\Internal\Authentication\TableSharedKeyLiteAuthScheme;
-use WindowsAzure\Common\Internal\InvalidArgumentTypeException;
-
-/**
- * Adds authentication header to the http request object.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Filters
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class AuthenticationFilter implements IServiceFilter
-{
- /**
- * @var WindowsAzure\Common\Internal\Authentication\StorageAuthScheme
- */
- private $_authenticationScheme;
-
- /**
- * Creates AuthenticationFilter with the passed scheme.
- *
- * @param StorageAuthScheme $authenticationScheme The authentication scheme.
- */
- public function __construct($authenticationScheme)
- {
- $this->_authenticationScheme = $authenticationScheme;
- }
-
- /**
- * Adds authentication header to the request headers.
- *
- * @param HttpClient $request HTTP channel object.
- *
- * @return \HTTP_Request2
- */
- public function handleRequest($request)
- {
- $signedKey = $this->_authenticationScheme->getAuthorizationHeader(
- $request->getHeaders(), $request->getUrl(),
- $request->getUrl()->getQueryVariables(), $request->getMethod()
- );
- $request->setHeader(Resources::AUTHENTICATION, $signedKey);
-
- return $request;
- }
-
- /**
- * Does nothing with the response.
- *
- * @param HttpClient $request HTTP channel object.
- * @param \HTTP_Request2_Response $response HTTP response object.
- *
- * @return \HTTP_Request2_Response
- */
- public function handleResponse($request, $response)
- {
- // Do nothing with the response.
- return $response;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/DateFilter.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/DateFilter.php
deleted file mode 100644
index 9fce5137..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/DateFilter.php
+++ /dev/null
@@ -1,72 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Filters;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\IServiceFilter;
-
-/**
- * Adds date header to the http request.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Filters
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class DateFilter implements IServiceFilter
-{
- /**
- * Adds date (in GMT format) header to the request headers.
- *
- * @param HttpClient $request HTTP channel object.
- *
- * @return \HTTP_Request2
- */
- public function handleRequest($request)
- {
- $date = gmdate(Resources::AZURE_DATE_FORMAT, time());
- $request->setHeader(Resources::DATE, $date);
-
- return $request;
- }
-
- /**
- * Does nothing with the response.
- *
- * @param HttpClient $request HTTP channel object.
- * @param \HTTP_Request2_Response $response HTTP response object.
- *
- * @return \HTTP_Request2_Response
- */
- public function handleResponse($request, $response)
- {
- // Do nothing with the response.
- return $response;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/ExponentialRetryPolicy.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/ExponentialRetryPolicy.php
deleted file mode 100644
index 3b75a529..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/ExponentialRetryPolicy.php
+++ /dev/null
@@ -1,134 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Filters;
-
-/**
- * The exponential retry policy.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Filters
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ExponentialRetryPolicy extends RetryPolicy
-{
- /**
- * @var integer
- */
- private $_deltaBackoffIntervalInMs;
-
- /**
- * @var integer
- */
- private $_maximumAttempts;
-
- /**
- * @var integer
- */
- private $_resolvedMaxBackoff;
-
- /**
- * @var integer
- */
- private $_resolvedMinBackoff;
-
- /**
- * @var array
- */
- private $_retryableStatusCodes;
-
- /**
- * Initializes new object from ExponentialRetryPolicy.
- *
- * @param array $retryableStatusCodes The retryable status codes.
- * @param integer $deltaBackoff The backoff time delta.
- * @param integer $maximumAttempts The number of max attempts.
- */
- public function __construct($retryableStatusCodes,
- $deltaBackoff = parent::DEFAULT_CLIENT_BACKOFF,
- $maximumAttempts = parent::DEFAULT_CLIENT_RETRY_COUNT
- ) {
- $this->_deltaBackoffIntervalInMs = $deltaBackoff;
- $this->_maximumAttempts = $maximumAttempts;
- $this->_resolvedMaxBackoff = parent::DEFAULT_MAX_BACKOFF;
- $this->_resolvedMinBackoff = parent::DEFAULT_MIN_BACKOFF;
- $this->_retryableStatusCodes = $retryableStatusCodes;
- sort($retryableStatusCodes);
- }
-
- /**
- * Indicates if there should be a retry or not.
- *
- * @param integer $retryCount The retry count.
- * @param \HTTP_Request2_Response $response The HTTP response object.
- *
- * @return boolean
- */
- public function shouldRetry($retryCount, $response)
- {
- if ( $retryCount >= $this->_maximumAttempts
- || array_search($response->getStatus(), $this->_retryableStatusCodes)
- || is_null($response)
- ) {
- return false;
- } else {
- return true;
- }
- }
-
- /**
- * Calculates the backoff for the retry policy.
- *
- * @param integer $retryCount The retry count.
- * @param \HTTP_Request2_Response $response The HTTP response object.
- *
- * @return integer
- */
- public function calculateBackoff($retryCount, $response)
- {
- // Calculate backoff Interval between 80% and 120% of the desired
- // backoff, multiply by 2^n -1 for
- // exponential
- $incrementDelta = (int) (pow(2, $retryCount) - 1);
- $boundedRandDelta = (int) ($this->_deltaBackoffIntervalInMs * 0.8)
- + mt_rand(
- 0,
- (int) ($this->_deltaBackoffIntervalInMs * 1.2)
- - (int) ($this->_deltaBackoffIntervalInMs * 0.8)
- );
- $incrementDelta *= $boundedRandDelta;
-
- // Enforce max / min backoffs
- return min(
- $this->_resolvedMinBackoff + $incrementDelta,
- $this->_resolvedMaxBackoff
- );
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/HeadersFilter.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/HeadersFilter.php
deleted file mode 100644
index c3fa0f9b..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/HeadersFilter.php
+++ /dev/null
@@ -1,93 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Filters;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\IServiceFilter;
-
-/**
- * Adds all passed headers to the HTTP request headers.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Filters
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class HeadersFilter implements IServiceFilter
-{
- /**
- * @var array
- */
- private $_headers;
-
- /**
- * Constructor
- *
- * @param array $headers static headers to be added.
- *
- * @return HeadersFilter
- */
- public function __construct($headers)
- {
- $this->_headers = $headers;
- }
-
- /**
- * Adds static header(s) to the HTTP request headers
- *
- * @param HttpClient $request HTTP channel object.
- *
- * @return \HTTP_Request2
- */
- public function handleRequest($request)
- {
- foreach ($this->_headers as $key => $value) {
- $headers = $request->getHeaders();
- if (!array_key_exists($key, $headers)) {
- $request->setHeader($key, $value);
- }
- }
-
- return $request;
- }
-
- /**
- * Does nothing with the response.
- *
- * @param HttpClient $request HTTP channel object.
- * @param \HTTP_Request2_Response $response HTTP response object.
- *
- * @return \HTTP_Request2_Response
- */
- public function handleResponse($request, $response)
- {
- // Do nothing with the response.
- return $response;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/RetryPolicy.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/RetryPolicy.php
deleted file mode 100644
index 15849990..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/RetryPolicy.php
+++ /dev/null
@@ -1,66 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Filters;
-
-/**
- * The retry policy abstract class.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Filters
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-abstract class RetryPolicy
-{
- const DEFAULT_CLIENT_BACKOFF = 30000;
- const DEFAULT_CLIENT_RETRY_COUNT = 3;
- const DEFAULT_MAX_BACKOFF = 90000;
- const DEFAULT_MIN_BACKOFF = 300;
-
- /**
- * Indicates if there should be a retry or not.
- *
- * @param integer $retryCount The retry count.
- * @param \HTTP_Request2_Response $response The HTTP response object.
- *
- * @return boolean
- */
- public abstract function shouldRetry($retryCount, $response);
-
- /**
- * Calculates the backoff for the retry policy.
- *
- * @param integer $retryCount The retry count.
- * @param \HTTP_Request2_Response $response The HTTP response object.
- *
- * @return integer
- */
- public abstract function calculateBackoff($retryCount, $response);
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/RetryPolicyFilter.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/RetryPolicyFilter.php
deleted file mode 100644
index b98b5a82..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/RetryPolicyFilter.php
+++ /dev/null
@@ -1,99 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Filters;
-use WindowsAzure\Common\Internal\IServiceFilter;
-
-/**
- * Short description
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Filters
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class RetryPolicyFilter implements IServiceFilter
-{
- /**
- * @var RetryPolicy
- */
- private $_retryPolicy;
-
- /**
- * Initializes new object from RetryPolicyFilter.
- *
- * @param RetryPolicy $retryPolicy The retry policy object.
- */
- public function __construct($retryPolicy)
- {
- $this->_retryPolicy = $retryPolicy;
- }
-
- /**
- * Handles the request before sending.
- *
- * @param \HTTP_Request2 $request The HTTP request.
- *
- * @return \HTTP_Request2
- */
- public function handleRequest($request)
- {
- return $request;
- }
-
- /**
- * Handles the response after sending.
- *
- * @param \HTTP_Request2 $request The HTTP request.
- * @param \HTTP_Request2_Response $response The HTTP response.
- *
- * @return \HTTP_Request2_Response
- */
- public function handleResponse($request, $response)
- {
- for ($retryCount = 0;; $retryCount++) {
- $shouldRetry = $this->_retryPolicy->shouldRetry(
- $retryCount,
- $response
- );
-
- if (!$shouldRetry) {
- return $response;
- }
-
- // Backoff for some time according to retry policy
- $backoffTime = $this->_retryPolicy->calculateBackoff(
- $retryCount,
- $response
- );
- sleep($backoffTime * 0.001);
- $response = $request->send(array());
- }
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/WrapFilter.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/WrapFilter.php
deleted file mode 100644
index 82b19699..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Filters/WrapFilter.php
+++ /dev/null
@@ -1,113 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Filters;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\IServiceFilter;
-use WindowsAzure\Common\Internal\Authentication\SharedKeyAuthScheme;
-use WindowsAzure\Common\Internal\Authentication\TableSharedKeyLiteAuthScheme;
-use WindowsAzure\Common\Internal\InvalidArgumentTypeException;
-use WindowsAzure\ServiceBus\Internal\WrapTokenManager;
-
-
-/**
- * Adds WRAP authentication header to the http request object.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Filters
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class WrapFilter implements IServiceFilter
-{
- /**
- * @var WrapTokenManager
- */
- private $_wrapTokenManager;
-
- /**
- * Creates a WrapFilter with specified WRAP parameters.
- *
- * @param string $wrapUri The URI of the WRAP service.
- * @param string $wrapUsername The user name of the WRAP account.
- * @param string $wrapPassword The password of the WRAP account.
- * @param IWrap $wrapRestProxy The WRAP service REST proxy.
- */
- public function __construct(
- $wrapUri,
- $wrapUsername,
- $wrapPassword,
- $wrapRestProxy
- ) {
- $this->_wrapTokenManager = new WrapTokenManager(
- $wrapUri,
- $wrapUsername,
- $wrapPassword,
- $wrapRestProxy
- );
- }
-
- /**
- * Adds WRAP authentication header to the request headers.
- *
- * @param HttpClient $request HTTP channel object.
- *
- * @return \HTTP_Request2
- */
- public function handleRequest($request)
- {
- Validate::notNull($request, 'request');
- $wrapAccessToken = $this->_wrapTokenManager->getAccessToken(
- $request->getUrl()
- );
-
- $authorization = sprintf(
- Resources::WRAP_AUTHORIZATION,
- $wrapAccessToken
- );
-
- $request->setHeader(Resources::AUTHENTICATION, $authorization);
-
- return $request;
- }
-
- /**
- * Returns the original response.
- *
- * @param HttpClient $request A HTTP channel object.
- * @param \HTTP_Request2_Response $response A HTTP response object.
- *
- * @return \HTTP_Request2_Response
- */
- public function handleResponse($request, $response)
- {
- return $response;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/BatchRequest.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/BatchRequest.php
deleted file mode 100644
index f1e9f511..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/BatchRequest.php
+++ /dev/null
@@ -1,162 +0,0 @@
-
- * @copyright Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Http;
-require_once 'PEAR.php';
-require_once 'Mail/mimePart.php';
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * Batch request marshaler
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class BatchRequest
-{
- /**
- * Http call context list
- *
- * @var array
- */
- private $_contexts;
-
- /**
- * Headers
- *
- * @var array
- */
- private $_headers;
-
- /**
- * Request body
- *
- * @var string
- */
- private $_body;
-
- /**
- * Constructor
- */
- public function __construct()
- {
- $this->_contexts = array();
- }
-
- /**
- * Append new context to batch request
- *
- * @param WindowsAzure\Common\Internal\Http\HttpCallContext $context Http call
- * context to add to batch request
- *
- * @return none
- */
- public function appendContext($context)
- {
- $this->_contexts[] = $context;
- }
-
- /**
- * Encode contexts
- *
- * @return none
- */
- public function encode()
- {
- $mimeType = Resources::MULTIPART_MIXED_TYPE;
- $batchGuid = Utilities::getGuid();
- $batchId = sprintf('batch_%s', $batchGuid);
- $contentType1 = array('content_type' => "$mimeType");
- $changeSetGuid = Utilities::getGuid();
- $changeSetId = sprintf('changeset_%s', $changeSetGuid);
- $contentType2 = array('content_type' => "$mimeType; boundary=$changeSetId");
- $options = array(
- 'encoding' => 'binary',
- 'content_type' => Resources::HTTP_TYPE
- );
-
- // Create changeset MIME part
- $changeSet = new \Mail_mimePart();
-
- $i = 1;
- foreach ($this->_contexts as $context) {
- $context->addHeader(Resources::CONTENT_ID, $i);
- $changeSet->addSubpart((string)$context, $options);
-
- $i++;
- }
-
- // Encode the changeset MIME part
- $changeSetEncoded = $changeSet->encode($changeSetId);
-
- // Create the batch MIME part
- $batch = new \Mail_mimePart(Resources::EMPTY_STRING, $contentType1);
-
- // Add changeset encoded to batch MIME part
- $batch->addSubpart($changeSetEncoded['body'], $contentType2);
-
- // Encode batch MIME part
- $batchEncoded = $batch->encode($batchId);
-
- $this->_headers = $batchEncoded['headers'];
- $this->_body = $batchEncoded['body'];
- }
-
- /**
- * Get "Request body"
- *
- * @return string
- */
- public function getBody()
- {
- return $this->_body;
- }
-
- /**
- * Get "Headers"
- *
- * @return array
- */
- public function getHeaders()
- {
- return $this->_headers;
- }
-
- /**
- * Get request contexts
- *
- * @return array
- */
- public function getContexts()
- {
- return $this->_contexts;
- }
-}
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/BatchResponse.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/BatchResponse.php
deleted file mode 100644
index c3b291e3..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/BatchResponse.php
+++ /dev/null
@@ -1,125 +0,0 @@
-
- * @copyright Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Http;
-require_once 'PEAR.php';
-require_once 'Mail/mimeDecode.php';
-require_once 'HTTP/Request2/Response.php';
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\ServiceException;
-
-/**
- * Batch response parser
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class BatchResponse
-{
- /**
- * Http responses list
- *
- * @var array
- */
- private $_contexts;
-
- /**
- * Constructor
- *
- * @param string $content Http response
- * as string
- *
- * @param WindowsAzure\Common\Internal\Http\BatchRequest $request Source batch
- * request object
- */
- public function __construct($content, $request = null)
- {
- $params['include_bodies'] = true;
- $params['input'] = $content;
- $mimeDecoder = new \Mail_mimeDecode($content);
- $structure = $mimeDecoder->decode($params);
- $parts = $structure->parts;
- $this->_contexts = array();
- $requestContexts = null;
-
- if ($request != null) {
- Validate::isA(
- $request,
- 'WindowsAzure\Common\Internal\Http\BatchRequest',
- 'request'
- );
- $requestContexts = $request->getContexts();
- }
-
- $i = 0;
- foreach ($parts as $part) {
- if (!empty($part->body)) {
- $headerEndPos = strpos($part->body, "\r\n\r\n");
-
- $header = substr($part->body, 0, $headerEndPos);
- $body = substr($part->body, $headerEndPos + 4);
- $headerStrings = explode("\r\n", $header);
-
- $response = new \HTTP_Request2_Response(array_shift($headerStrings));
- foreach ($headerStrings as $headerString) {
- $response->parseHeaderLine($headerString);
- }
- $response->appendBody($body);
-
- $this->_contexts[] = $response;
-
- if (is_array($requestContexts)) {
- $expectedCodes = $requestContexts[$i]->getStatusCodes();
- $statusCode = $response->getStatus();
-
- if (!in_array($statusCode, $expectedCodes)) {
- $reason = $response->getReasonPhrase();
-
- throw new ServiceException($statusCode, $reason, $body);
- }
- }
-
- $i++;
- }
- }
- }
-
- /**
- * Get parsed contexts as array
- *
- * @return array
- */
- public function getContexts()
- {
- return $this->_contexts;
- }
-
-}
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/HttpCallContext.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/HttpCallContext.php
deleted file mode 100644
index ed19d083..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/HttpCallContext.php
+++ /dev/null
@@ -1,446 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Http;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Http\Url;
-
-/**
- * Holds basic elements for making HTTP call.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Http
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class HttpCallContext
-{
- /**
- * The HTTP method used to make this call.
- *
- * @var string
- */
- private $_method;
-
- /**
- * HTTP request headers.
- *
- * @var array
- */
- private $_headers;
-
- /**
- * The URI query parameters.
- *
- * @var array
- */
- private $_queryParams;
-
- /**
- * The HTTP POST parameters.
- *
- * @var array.
- */
- private $_postParameters;
-
- /**
- * @var string
- */
- private $_uri;
-
- /**
- * The URI path.
- *
- * @var string
- */
- private $_path;
-
- /**
- * The expected status codes.
- *
- * @var array
- */
- private $_statusCodes;
-
- /**
- * The HTTP request body.
- *
- * @var string
- */
- private $_body;
-
- /**
- * Default constructor.
- */
- public function __construct()
- {
- $this->_method = null;
- $this->_body = null;
- $this->_path = null;
- $this->_uri = null;
- $this->_queryParams = array();
- $this->_postParameters = array();
- $this->_statusCodes = array();
- $this->_headers = array();
- }
-
- /**
- * Gets method.
- *
- * @return string
- */
- public function getMethod()
- {
- return $this->_method;
- }
-
- /**
- * Sets method.
- *
- * @param string $method The method value.
- *
- * @return none
- */
- public function setMethod($method)
- {
- Validate::isString($method, 'method');
-
- $this->_method = $method;
- }
-
- /**
- * Gets headers.
- *
- * @return array
- */
- public function getHeaders()
- {
- return $this->_headers;
- }
-
- /**
- * Sets headers.
- *
- * Ignores the header if its value is empty.
- *
- * @param array $headers The headers value.
- *
- * @return none
- */
- public function setHeaders($headers)
- {
- $this->_headers = array();
- foreach ($headers as $key => $value) {
- $this->addHeader($key, $value);
- }
- }
-
- /**
- * Gets queryParams.
- *
- * @return array
- */
- public function getQueryParameters()
- {
- return $this->_queryParams;
- }
-
- /**
- * Sets queryParams.
- *
- * Ignores the query variable if its value is empty.
- *
- * @param array $queryParams The queryParams value.
- *
- * @return none
- */
- public function setQueryParameters($queryParams)
- {
- $this->_queryParams = array();
- foreach ($queryParams as $key => $value) {
- $this->addQueryParameter($key, $value);
- }
- }
-
- /**
- * Gets uri.
- *
- * @return string
- */
- public function getUri()
- {
- return $this->_uri;
- }
-
- /**
- * Sets uri.
- *
- * @param string $uri The uri value.
- *
- * @return none
- */
- public function setUri($uri)
- {
- Validate::isString($uri, 'uri');
-
- $this->_uri = $uri;
- }
-
- /**
- * Gets path.
- *
- * @return string
- */
- public function getPath()
- {
- return $this->_path;
- }
-
- /**
- * Sets path.
- *
- * @param string $path The path value.
- *
- * @return none
- */
- public function setPath($path)
- {
- Validate::isString($path, 'path');
-
- $this->_path = $path;
- }
-
- /**
- * Gets statusCodes.
- *
- * @return array
- */
- public function getStatusCodes()
- {
- return $this->_statusCodes;
- }
-
- /**
- * Sets statusCodes.
- *
- * @param array $statusCodes The statusCodes value.
- *
- * @return none
- */
- public function setStatusCodes($statusCodes)
- {
- $this->_statusCodes = array();
- foreach ($statusCodes as $value) {
- $this->addStatusCode($value);
- }
- }
-
- /**
- * Gets body.
- *
- * @return string
- */
- public function getBody()
- {
- return $this->_body;
- }
-
- /**
- * Sets body.
- *
- * @param string $body The body value.
- *
- * @return none
- */
- public function setBody($body)
- {
- Validate::isString($body, 'body');
-
- $this->_body = $body;
- }
-
- /**
- * Adds or sets header pair.
- *
- * @param string $name The HTTP header name.
- * @param string $value The HTTP header value.
- *
- * @return none
- */
- public function addHeader($name, $value)
- {
- Validate::isString($name, 'name');
- Validate::isString($value, 'value');
-
- $this->_headers[$name] = $value;
- }
-
- /**
- * Adds or sets header pair.
- *
- * Ignores header if it's value satisfies empty().
- *
- * @param string $name The HTTP header name.
- * @param string $value The HTTP header value.
- *
- * @return none
- */
- public function addOptionalHeader($name, $value)
- {
- Validate::isString($name, 'name');
- Validate::isString($value, 'value');
-
- if (!empty($value)) {
- $this->_headers[$name] = $value;
- }
- }
-
- /**
- * Removes header from the HTTP request headers.
- *
- * @param string $name The HTTP header name.
- *
- * @return none
- */
- public function removeHeader($name)
- {
- Validate::isString($name, 'name');
- Validate::notNullOrEmpty($name, 'name');
-
- unset($this->_headers[$name]);
- }
-
- /**
- * Adds or sets query parameter pair.
- *
- * @param string $name The URI query parameter name.
- * @param string $value The URI query parameter value.
- *
- * @return none
- */
- public function addQueryParameter($name, $value)
- {
- Validate::isString($name, 'name');
- Validate::isString($value, 'value');
-
- $this->_queryParams[$name] = $value;
- }
-
- /**
- * Gets HTTP POST parameters.
- *
- * @return array
- */
- public function getPostParameters()
- {
- return $this->_postParameters;
- }
-
- /**
- * Sets HTTP POST parameters.
- *
- * @param array $postParameters The HTTP POST parameters.
- *
- * @return none
- */
- public function setPostParameters($postParameters)
- {
- Validate::isArray($postParameters, 'postParameters');
- $this->_postParameters = $postParameters;
- }
-
- /**
- * Adds or sets query parameter pair.
- *
- * Ignores query parameter if it's value satisfies empty().
- *
- * @param string $name The URI query parameter name.
- * @param string $value The URI query parameter value.
- *
- * @return none
- */
- public function addOptionalQueryParameter($name, $value)
- {
- Validate::isString($name, 'name');
- Validate::isString($value, 'value');
-
- if (!empty($value)) {
- $this->_queryParams[$name] = $value;
- }
- }
-
- /**
- * Adds status code to the expected status codes.
- *
- * @param integer $statusCode The expected status code.
- *
- * @return none
- */
- public function addStatusCode($statusCode)
- {
- Validate::isInteger($statusCode, 'statusCode');
-
- $this->_statusCodes[] = $statusCode;
- }
-
- /**
- * Gets header value.
- *
- * @param string $name The header name.
- *
- * @return mix
- */
- public function getHeader($name)
- {
- return Utilities::tryGetValue($this->_headers, $name);
- }
-
- /**
- * Converts the context object to string.
- *
- * @return string
- */
- public function __toString()
- {
- $headers = Resources::EMPTY_STRING;
- $uri = new Url($this->_uri);
- $uri = $uri->getUrl();
-
- foreach ($this->_headers as $key => $value) {
- $headers .= "$key: $value\n";
- }
-
- $str = "$this->_method $uri$this->_path HTTP/1.1\n$headers\n";
- $str .= "$this->_body";
-
- return $str;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/HttpClient.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/HttpClient.php
deleted file mode 100644
index eb2c87a9..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/HttpClient.php
+++ /dev/null
@@ -1,388 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Http;
-use WindowsAzure\Common\Internal\Http\IHttpClient;
-use WindowsAzure\Common\Internal\IServiceFilter;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\ServiceException;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Http\IUrl;
-
-require_once 'HTTP/Request2.php';
-
-/**
- * HTTP client which sends and receives HTTP requests and responses.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Http
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class HttpClient implements IHttpClient
-{
- /**
- * @var \HTTP_Request2
- */
- private $_request;
-
- /**
- * @var WindowsAzure\Common\Internal\Http\IUrl
- */
- private $_requestUrl;
-
- /**
- * Holds the latest response object
- *
- * @var \HTTP_Request2_Response
- */
- private $_response;
-
- /**
- * Holds expected status code after sending the request.
- *
- * @var array
- */
- private $_expectedStatusCodes;
-
- /**
- * Initializes new HttpClient object.
- *
- * @param string $certificatePath The certificate path.
- * @param string $certificateAuthorityPath The path of the certificate authority.
- *
- * @return WindowsAzure\Common\Internal\Http\HttpClient
- */
- function __construct(
- $certificatePath = Resources::EMPTY_STRING,
- $certificateAuthorityPath = Resources::EMPTY_STRING
- ) {
-
- $config = array(
- Resources::USE_BRACKETS => true,
- Resources::SSL_VERIFY_PEER => false,
- Resources::SSL_VERIFY_HOST => false
- );
-
- if (!empty($certificatePath)) {
- $config[Resources::SSL_LOCAL_CERT] = $certificatePath;
- $config[Resources::SSL_VERIFY_HOST] = true;
- }
-
- if (!empty($certificateAuthorityPath)) {
- $config[Resources::SSL_CAFILE] = $certificateAuthorityPath;
- $config[Resources::SSL_VERIFY_PEER] = true;
- }
-
- $this->_request = new \HTTP_Request2(
- null, null, $config
- );
-
- $this->setHeader('user-agent', null);
-
- $this->_requestUrl = null;
- $this->_response = null;
- $this->_expectedStatusCodes = array();
- }
-
- /**
- * Makes deep copy from the current object.
- *
- * @return WindowsAzure\Common\Internal\Http\HttpClient
- */
- public function __clone()
- {
- $this->_request = clone $this->_request;
-
- if (!is_null($this->_requestUrl)) {
- $this->_requestUrl = clone $this->_requestUrl;
- }
- }
-
- /**
- * Sets the request url.
- *
- * @param WindowsAzure\Common\Internal\Http\IUrl $url request url.
- *
- * @return none.
- */
- public function setUrl($url)
- {
- $this->_requestUrl = $url;
- }
-
- /**
- * Gets request url. Note that you must check if the returned object is null or
- * not.
- *
- * @return WindowsAzure\Common\Internal\Http\IUrl
- */
- public function getUrl()
- {
- return $this->_requestUrl;
- }
-
- /**
- * Sets request's HTTP method. You can use \HTTP_Request2 constants like
- * Resources::HTTP_GET or strings like 'GET'.
- *
- * @param string $method request's HTTP method.
- *
- * @return none
- */
- public function setMethod($method)
- {
- $this->_request->setMethod($method);
- }
-
- /**
- * Gets request's HTTP method.
- *
- * @return string
- */
- public function getMethod()
- {
- return $this->_request->getMethod();
- }
-
- /**
- * Gets request's headers. The returned array key (header names) are all in
- * lower case even if they were set having some upper letters.
- *
- * @return array
- */
- public function getHeaders()
- {
- return $this->_request->getHeaders();
- }
-
- /**
- * Sets a an existing request header to value or creates a new one if the $header
- * doesn't exist.
- *
- * @param string $header header name.
- * @param string $value header value.
- * @param bool $replace whether to replace previous header with the same name
- * or append to its value (comma separated)
- *
- * @return none
- */
- public function setHeader($header, $value, $replace = false)
- {
- Validate::isString($value, 'value');
-
- $this->_request->setHeader($header, $value, $replace);
- }
-
- /**
- * Sets request headers using array
- *
- * @param array $headers headers key-value array
- *
- * @return none
- */
- public function setHeaders($headers)
- {
- foreach ($headers as $key => $value) {
- $this->setHeader($key, $value);
- }
- }
-
- /**
- * Sets HTTP POST parameters.
- *
- * @param array $postParameters The HTTP POST parameters.
- *
- * @return none
- */
- public function setPostParameters($postParameters)
- {
- $this->_request->addPostParameter($postParameters);
- }
-
- /**
- * Processes the reuqest through HTTP pipeline with passed $filters,
- * sends HTTP request to the wire and process the response in the HTTP pipeline.
- *
- * @param array $filters HTTP filters which will be applied to the request before
- * send and then applied to the response.
- * @param IUrl $url Request url.
- *
- * @throws WindowsAzure\Common\ServiceException
- *
- * @return string The response body
- */
- public function send($filters, $url = null)
- {
- if (isset($url)) {
- $this->setUrl($url);
- $this->_request->setUrl($this->_requestUrl->getUrl());
- }
-
- $contentLength = Resources::EMPTY_STRING;
- if ( strtoupper($this->getMethod()) != Resources::HTTP_GET
- && strtoupper($this->getMethod()) != Resources::HTTP_DELETE
- && strtoupper($this->getMethod()) != Resources::HTTP_HEAD
- ) {
- $contentLength = 0;
-
- if (!is_null($this->getBody())) {
- $contentLength = strlen($this->getBody());
- }
- $this->_request->setHeader(Resources::CONTENT_LENGTH, $contentLength);
- }
-
- foreach ($filters as $filter) {
- $this->_request = $filter->handleRequest($this)->_request;
- }
-
- $this->_response = $this->_request->send();
-
- $start = count($filters) - 1;
- for ($index = $start; $index >= 0; $index--) {
- $this->_response = $filters[$index]->handleResponse(
- $this, $this->_response
- );
- }
-
- self::throwIfError(
- $this->_response->getStatus(),
- $this->_response->getReasonPhrase(),
- $this->_response->getBody(),
- $this->_expectedStatusCodes
- );
-
- return $this->_response->getBody();
- }
-
- /**
- * Sets successful status code
- *
- * @param array|string $statusCodes successful status code.
- *
- * @return none
- */
- public function setExpectedStatusCode($statusCodes)
- {
- if (!is_array($statusCodes)) {
- $this->_expectedStatusCodes[] = $statusCodes;
- } else {
- $this->_expectedStatusCodes = $statusCodes;
- }
- }
-
- /**
- * Gets successful status code
- *
- * @return array
- */
- public function getSuccessfulStatusCode()
- {
- return $this->_expectedStatusCodes;
- }
-
- /**
- * Sets configuration parameter.
- *
- * @param string $name The configuration parameter name.
- * @param mix $value The configuration parameter value.
- *
- * @return none
- */
- public function setConfig($name, $value = null)
- {
- $this->_request->setConfig($name, $value);
- }
-
- /**
- * Gets value for configuration parameter.
- *
- * @param string $name configuration parameter name.
- *
- * @return string
- */
- public function getConfig($name)
- {
- return $this->_request->getConfig($name);
- }
-
- /**
- * Sets the request body.
- *
- * @param string $body body to use.
- *
- * @return none
- */
- public function setBody($body)
- {
- Validate::isString($body, 'body');
- $this->_request->setBody($body);
- }
-
- /**
- * Gets the request body.
- *
- * @return string
- */
- public function getBody()
- {
- return $this->_request->getBody();
- }
-
- /**
- * Gets the response object.
- *
- * @return \HTTP_Request2_Response
- */
- public function getResponse()
- {
- return $this->_response;
- }
-
- /**
- * Throws ServiceException if the recieved status code is not expected.
- *
- * @param string $actual The received status code.
- * @param string $reason The reason phrase.
- * @param string $message The detailed message (if any).
- * @param array $expected The expected status codes.
- *
- * @return none
- *
- * @static
- *
- * @throws ServiceException
- */
- public static function throwIfError($actual, $reason, $message, $expected)
- {
- if (!in_array($actual, $expected)) {
- throw new ServiceException($actual, $reason, $message);
- }
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/IHttpClient.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/IHttpClient.php
deleted file mode 100644
index 425d5266..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/IHttpClient.php
+++ /dev/null
@@ -1,204 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Http;
-
-/**
- * Defines required methods for a HTTP client proxy.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Http
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-interface IHttpClient
-{
- /**
- * Sets the request url.
- *
- * @param WindowsAzure\Common\Internal\Http\IUrl $url request url.
- *
- * @return none.
- */
- public function setUrl($url);
-
- /**
- * Gets request url.
- *
- * @return WindowsAzure\Common\Internal\Http\IUrl
- */
- public function getUrl();
-
- /**
- * Sets request's HTTP method.
- *
- * @param string $method request's HTTP method.
- *
- * @return none.
- */
- public function setMethod($method);
-
- /**
- * Gets request's HTTP method.
- *
- * @return string
- */
- public function getMethod();
-
- /**
- * Gets request's headers
- *
- * @return array
- */
- public function getHeaders();
-
- /**
- * Sets a an existing request header to value or creates a new one if the $header
- * doesn't exist.
- *
- * @param string $header header name.
- * @param string $value header value.
- * @param bool $replace whether to replace previous header with the same name
- * or append to its value (comma separated)
- *
- * @return none.
- */
- public function setHeader($header, $value, $replace = false);
-
- /**
- * Sets request headers using array
- *
- * @param array $headers headers key-value array
- *
- * @return none.
- */
- public function setHeaders($headers);
-
- /**
- * Sets HTTP POST parameters.
- *
- * @param array $postParameters The HTTP POST parameters.
- *
- * @return none
- */
- public function setPostParameters($postParameters);
-
- /**
- * Processes the reuqest through HTTP pipeline with passed $filters,
- * sends HTTP request to the wire and process the response in the HTTP pipeline.
- *
- * @param array $filters HTTP filters which will be applied to the request before
- * send and then applied to the response.
- * @param IUrl $url Request url.
- *
- * @return string The response body.
- */
- public function send($filters, $url = null);
-
- /**
- * Sets successful status code
- *
- * @param array|string $statusCodes successful status code.
- *
- * @return none.
- */
- public function setExpectedStatusCode($statusCodes);
-
- /**
- * Gets successful status code
- *
- * @return array.
- */
- public function getSuccessfulStatusCode();
-
- /**
- * Sets a configuration element for the request.
- *
- * @param string $name configuration parameter name.
- * @param mix $value configuration parameter value.
- *
- * @return none.
- */
- public function setConfig($name, $value = null);
-
- /**
- * Gets value for configuration parameter.
- *
- * @param string $name configuration parameter name.
- *
- * @return string.
- */
- public function getConfig($name);
-
- /**
- * Sets the request body.
- *
- * @param string $body body to use.
- *
- * @return none.
- */
- public function setBody($body);
-
- /**
- * Gets the request body.
- *
- * @return string.
- */
- public function getBody();
-
- /**
- * Makes deep copy from the current object.
- *
- * @return WindowsAzure\Common\Internal\Http\HttpClient
- */
- public function __clone();
-
- /**
- * Gets the response object.
- *
- * @return \HTTP_Request2_Response.
- */
- public function getResponse();
-
- /**
- * Throws ServiceException if the recieved status code is not expected.
- *
- * @param string $actual The received status code.
- * @param string $reason The reason phrase.
- * @param string $message The detailed message (if any).
- * @param array $expected The expected status codes.
- *
- * @return none
- *
- * @static
- *
- * @throws ServiceException
- */
- public static function throwIfError($actual, $reason, $message, $expected);
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/IUrl.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/IUrl.php
deleted file mode 100644
index 36d862ef..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/IUrl.php
+++ /dev/null
@@ -1,114 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Http;
-
-/**
- * Defines what are main url functionalities that should be supported
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Http
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-interface IUrl
-{
- /**
- * Returns the query portion of the url
- *
- * @return string
- */
- public function getQuery();
-
- /**
- * Returns the query portion of the url in array form
- *
- * @return array
- */
- public function getQueryVariables();
-
- /**
- * Sets a an existing query parameter to value or creates a new one if the $key
- * doesn't exist.
- *
- * @param string $key query parameter name.
- * @param string $value query value.
- *
- * @return none.
- */
- public function setQueryVariable($key, $value);
-
- /**
- * Gets actual URL string.
- *
- * @return string.
- */
- public function getUrl();
-
- /**
- * Sets url path
- *
- * @param string $urlPath url path to set.
- *
- * @return none.
- */
- public function setUrlPath($urlPath);
-
- /**
- * Appends url path
- *
- * @param string $urlPath url path to append.
- *
- * @return none.
- */
- public function appendUrlPath($urlPath);
-
- /**
- * Gets actual URL string.
- *
- * @return string.
- */
- public function __toString();
-
- /**
- * Makes deep copy from the current object.
- *
- * @return WindowsAzure\Common\Internal\Http\Url
- */
- public function __clone();
-
- /**
- * Sets the query string to the specified variables in $array
- *
- * @param array $array key/value representation of query variables.
- *
- * @return none.
- */
- public function setQueryVariables($array);
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/Url.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/Url.php
deleted file mode 100644
index dfbed04b..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Http/Url.php
+++ /dev/null
@@ -1,192 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Http;
-require_once 'Net/URL2.php';
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Http\IUrl;
-
-/**
- * Default IUrl implementation.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Http
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class Url implements IUrl
-{
- /**
- * @var \Net_URL2
- */
- private $_url;
-
- /**
- * Sets the url path to '/' if it's empty
- *
- * @param string $url the url string
- *
- * @return none.
- */
- private function _setPathIfEmpty($url)
- {
- $path = parse_url($url, PHP_URL_PATH);
-
- if (empty($path)) {
- $this->setUrlPath('/');
- }
- }
-
- /**
- * Constructor
- *
- * @param string $url the url to set.
- *
- * @return WindowsAzure\Common\Internal\Http\Url
- */
- public function __construct($url)
- {
- $errorMessage = Resources::INVALID_URL_MSG;
- Validate::isTrue(filter_var($url, FILTER_VALIDATE_URL), $errorMessage);
-
- $this->_url = new \Net_URL2($url);
- $this->_setPathIfEmpty($url);
- }
-
- /**
- * Makes deep copy from the current object.
- *
- * @return WindowsAzure\Common\Internal\Http\Url
- */
- public function __clone()
- {
- $this->_url = clone $this->_url;
- }
-
- /**
- * Returns the query portion of the url
- *
- * @return string
- */
- public function getQuery()
- {
- return $this->_url->getQuery();
- }
-
- /**
- * Returns the query portion of the url in array form
- *
- * @return array
- */
- public function getQueryVariables()
- {
- return $this->_url->getQueryVariables();
- }
-
- /**
- * Sets a an existing query parameter to value or creates a new one if the $key
- * doesn't exist.
- *
- * @param string $key query parameter name.
- * @param string $value query value.
- *
- * @return none
- */
- public function setQueryVariable($key, $value)
- {
- Validate::isString($key, 'key');
- Validate::isString($value, 'value');
-
- $this->_url->setQueryVariable($key, $value);
- }
-
- /**
- * Gets actual URL string.
- *
- * @return string.
- */
- public function getUrl()
- {
- return $this->_url->getURL();
- }
-
- /**
- * Sets url path
- *
- * @param string $urlPath url path to set.
- *
- * @return none.
- */
- public function setUrlPath($urlPath)
- {
- Validate::isString($urlPath, 'urlPath');
-
- $this->_url->setPath($urlPath);
- }
-
- /**
- * Appends url path
- *
- * @param string $urlPath url path to append.
- *
- * @return none.
- */
- public function appendUrlPath($urlPath)
- {
- Validate::isString($urlPath, 'urlPath');
-
- $newUrlPath = parse_url($this->_url, PHP_URL_PATH) . $urlPath;
- $this->_url->setPath($newUrlPath);
- }
-
- /**
- * Gets actual URL string.
- *
- * @return string.
- */
- public function __toString()
- {
- return $this->_url->getURL();
- }
-
- /**
- * Sets the query string to the specified variables in $array
- *
- * @param array $array key/value representation of query variables.
- *
- * @return none.
- */
- public function setQueryVariables($array)
- {
- foreach ($array as $key => $value) {
- $this->setQueryVariable($key, $value);
- }
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/IServiceFilter.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/IServiceFilter.php
deleted file mode 100644
index f04012ec..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/IServiceFilter.php
+++ /dev/null
@@ -1,61 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-
-/**
- * ServceFilter is called when the sending the request and after receiving the
- * response.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-interface IServiceFilter
-{
- /**
- * Processes HTTP request before send.
- *
- * @param mix $request HTTP request object.
- *
- * @return mix processed HTTP request object.
- */
- public function handleRequest($request);
-
- /**
- * Processes HTTP response after send.
- *
- * @param mix $request HTTP request object.
- * @param mix $response HTTP response object.
- *
- * @return mix processed HTTP response object.
- */
- public function handleResponse($request, $response);
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/InvalidArgumentTypeException.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/InvalidArgumentTypeException.php
deleted file mode 100644
index 5d55763e..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/InvalidArgumentTypeException.php
+++ /dev/null
@@ -1,57 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-use WindowsAzure\Common\Internal\Resources;
-
-/**
- * Exception thrown if an argument type does not match with the expected type.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class InvalidArgumentTypeException extends \InvalidArgumentException
-{
- /**
- * Constructor.
- *
- * @param string $validType The valid type that should be provided by the user.
- * @param string $name The parameter name.
- *
- * @return WindowsAzure\Common\Internal\InvalidArgumentTypeException
- */
- public function __construct($validType, $name = null)
- {
- parent::__construct(
- sprintf(Resources::INVALID_PARAM_MSG, $name, $validType)
- );
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Logger.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Logger.php
deleted file mode 100644
index 285e116d..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Logger.php
+++ /dev/null
@@ -1,83 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-
-/**
- * Logger class for debugging purpose.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class Logger
-{
- /**
- * @var string
- */
- private static $_filePath;
-
- /**
- * Logs $var to file.
- *
- * @param mix $var The data to log.
- * @param string $tip The help message.
- *
- * @static
- *
- * @return none
- */
- public static function log($var, $tip = Resources::EMPTY_STRING)
- {
- if (!empty($tip)) {
- error_log($tip . "\n", 3, self::$_filePath);
- }
-
- if (is_array($var) || is_object($var)) {
- error_log(print_r($var, true), 3, self::$_filePath);
- } else {
- error_log($var . "\n", 3, self::$_filePath);
- }
- }
-
- /**
- * Sets file path to use.
- *
- * @param string $filePath The log file path.
- *
- * @static
- *
- * @return none
- */
- public static function setLogFile($filePath)
- {
- self::$_filePath = $filePath;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/MediaServicesSettings.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/MediaServicesSettings.php
deleted file mode 100644
index 18d207f6..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/MediaServicesSettings.php
+++ /dev/null
@@ -1,267 +0,0 @@
-
- * @copyright Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-use WindowsAzure\Common\Internal\Resources;
-
-/**
- * Represents the settings used to sign and access a request against the service
- * management.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class MediaServicesSettings extends ServiceSettings
-{
- /**
- * @var string
- */
- private $_accountName;
-
- /**
- * @var string
- */
- private $_accessKey;
-
- /**
- * @var string
- */
- private $_endpointUri;
-
- /**
- * @var string
- */
- private $_oauthEndpointUri;
-
- /**
- * Validator for the MediaServicesAccountName setting. It has to be provided.
- *
- * @var array
- */
- private static $_accountNameSetting;
-
- /**
- * Validator for the MediaServicesAccessKey setting. It has to be provided.
- *
- * @var array
- */
- private static $_accessKeySetting;
-
- /**
- * Validator for the MediaServicesEndpoint setting. Must be a valid Uri.
- *
- * @var array
- */
- private static $_endpointUriSetting;
-
- /**
- * Validator for the MediaServicesOAuthEndpoint setting. Must be a valid Uri.
- *
- * @var array
- */
- private static $_oauthEndpointUriSetting;
-
- /**
- * @var boolean
- */
- protected static $isInitialized = false;
-
- /**
- * Holds the expected setting keys.
- *
- * @var array
- */
- protected static $validSettingKeys = array();
-
- /**
- * Initializes static members of the class.
- *
- * @return none
- */
- protected static function init()
- {
- self::$_endpointUriSetting = self::settingWithFunc(
- Resources::MEDIA_SERVICES_ENDPOINT_URI_NAME,
- Validate::getIsValidUri()
- );
-
- self::$_oauthEndpointUriSetting = self::settingWithFunc(
- Resources::MEDIA_SERVICES_OAUTH_ENDPOINT_URI_NAME,
- Validate::getIsValidUri()
- );
-
- self::$_accountNameSetting = self::setting(
- Resources::MEDIA_SERVICES_ACCOUNT_NAME
- );
-
- self::$_accessKeySetting = self::setting(
- Resources::MEDIA_SERVICES_ACCESS_KEY
- );
-
- self::$validSettingKeys[] = Resources::MEDIA_SERVICES_ENDPOINT_URI_NAME;
- self::$validSettingKeys[] = Resources::MEDIA_SERVICES_OAUTH_ENDPOINT_URI_NAME;
- self::$validSettingKeys[] = Resources::MEDIA_SERVICES_ACCOUNT_NAME;
- self::$validSettingKeys[] = Resources::MEDIA_SERVICES_ACCESS_KEY;
- }
-
- /**
- * Creates new media services settings instance.
- *
- * @param string $accountName The user provided account name.
- * @param string $accessKey The user provided primary access key
- * @param string $endpointUri The service management endpoint uri.
- * @param string $oauthEndpointUri The OAuth service endpoint uri.
- */
- public function __construct(
- $accountName,
- $accessKey,
- $endpointUri = null,
- $oauthEndpointUri = null
- ) {
- Validate::notNullOrEmpty($accountName, 'accountName');
- Validate::notNullOrEmpty($accessKey, 'accountKey');
- Validate::isString($accountName, 'accountName');
- Validate::isString($accessKey, 'accountKey');
-
- if ($endpointUri != null) {
- Validate::isValidUri($endpointUri);
- } else {
- $endpointUri = Resources::MEDIA_SERVICES_URL;
- }
-
- if ($oauthEndpointUri != null) {
- Validate::isValidUri($oauthEndpointUri);
- } else {
- $oauthEndpointUri = Resources::MEDIA_SERVICES_OAUTH_URL;
- }
-
- $this->_accountName = $accountName;
- $this->_accessKey = $accessKey;
- $this->_endpointUri = $endpointUri;
- $this->_oauthEndpointUri = $oauthEndpointUri;
- }
-
- /**
- * Creates a MediaServicesSettings object from the given connection string.
- *
- * @param string $connectionString The media services settings connection string.
- *
- * @return MediaServicesSettings
- */
- public static function createFromConnectionString($connectionString)
- {
- $tokenizedSettings = self::parseAndValidateKeys($connectionString);
-
- $matchedSpecs = self::matchedSpecification(
- $tokenizedSettings,
- self::allRequired(
- self::$_accountNameSetting,
- self::$_accessKeySetting
- ),
- self::optional(
- self::$_endpointUriSetting,
- self::$_oauthEndpointUriSetting
- )
- );
- if ($matchedSpecs) {
- $endpointUri = Utilities::tryGetValueInsensitive(
- Resources::MEDIA_SERVICES_ENDPOINT_URI_NAME,
- $tokenizedSettings,
- Resources::MEDIA_SERVICES_URL
- );
-
- $oauthEndpointUri = Utilities::tryGetValueInsensitive(
- Resources::MEDIA_SERVICES_OAUTH_ENDPOINT_URI_NAME,
- $tokenizedSettings,
- Resources::MEDIA_SERVICES_OAUTH_URL
- );
-
- $accountName = Utilities::tryGetValueInsensitive(
- Resources::MEDIA_SERVICES_ACCOUNT_NAME,
- $tokenizedSettings
- );
-
- $accessKey = Utilities::tryGetValueInsensitive(
- Resources::MEDIA_SERVICES_ACCESS_KEY,
- $tokenizedSettings
- );
-
- return new MediaServicesSettings(
- $accountName,
- $accessKey,
- $endpointUri,
- $oauthEndpointUri
- );
- }
-
- self::noMatch($connectionString);
- }
-
- /**
- * Gets media services account name.
- *
- * @return string
- */
- public function getAccountName()
- {
- return $this->_accountName;
- }
-
- /**
- * Gets media services access key.
- *
- * @return string
- */
- public function getAccessKey()
- {
- return $this->_accessKey;
- }
-
- /**
- * Gets media services endpoint uri.
- *
- * @return string
- */
- public function getEndpointUri()
- {
- return $this->_endpointUri;
- }
-
- /**
- * Gets media services OAuth endpoint uri.
- *
- * @return string
- */
- public function getOAuthEndpointUri()
- {
- return $this->_oauthEndpointUri;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/OAuthRestProxy.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/OAuthRestProxy.php
deleted file mode 100644
index bfcbb26b..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/OAuthRestProxy.php
+++ /dev/null
@@ -1,118 +0,0 @@
-
- * @copyright Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\ServiceRestProxy;
-use WindowsAzure\Common\Models\OAuthAccessToken;
-use WindowsAzure\Common\Internal\Serialization\JsonSerializer;
-
-/**
- * OAuth rest proxy.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class OAuthRestProxy extends ServiceRestProxy
-{
- /**
- * Initializes new OAuthRestProxy object.
- *
- * @param IHttpClient $channel The HTTP client used to send HTTP requests.
- * @param string $uri The storage account uri.
- */
- public function __construct($channel, $uri)
- {
- parent::__construct(
- $channel,
- $uri,
- Resources::EMPTY_STRING,
- new JsonSerializer()
- );
- }
-
-
- /**
- * Get OAuth access token.
- *
- * @param string $grantType OAuth request grant_type field value.
- * @param string $clientId OAuth request clent_id field value.
- * @param string $clientSecret OAuth request clent_secret field value.
- * @param string $scope OAuth request scope field value.
- *
- * @return WindowsAzure\Common\Internal\Models\OAuthAccessToken
- */
- public function getAccessToken($grantType, $clientId, $clientSecret, $scope)
- {
- $method = Resources::HTTP_POST;
- $headers = array();
- $queryParams = array();
- $postParameters = array();
- $statusCode = Resources::STATUS_OK;
-
- $postParameters = $this->addPostParameter(
- $postParameters,
- Resources::OAUTH_GRANT_TYPE,
- $grantType
- );
-
- $postParameters = $this->addPostParameter(
- $postParameters,
- Resources::OAUTH_CLIENT_ID,
- $clientId
- );
-
- $postParameters = $this->addPostParameter(
- $postParameters,
- Resources::OAUTH_CLIENT_SECRET,
- $clientSecret
- );
-
- $postParameters = $this->addPostParameter(
- $postParameters,
- Resources::OAUTH_SCOPE,
- $scope
- );
-
- $response = $this->send(
- $method,
- $headers,
- $queryParams,
- $postParameters,
- Resources::EMPTY_STRING,
- $statusCode
- );
-
- return OAuthAccessToken::create(
- $this->dataSerializer->unserialize($response->getBody())
- );
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Resources.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Resources.php
deleted file mode 100644
index bbc8fadf..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Resources.php
+++ /dev/null
@@ -1,458 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-
-/**
- * Project resources.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class Resources
-{
- // @codingStandardsIgnoreStart
-
- // Connection strings
- const USE_DEVELOPMENT_STORAGE_NAME = 'UseDevelopmentStorage';
- const DEVELOPMENT_STORAGE_PROXY_URI_NAME = 'DevelopmentStorageProxyUri';
- const DEFAULT_ENDPOINTS_PROTOCOL_NAME = 'DefaultEndpointsProtocol';
- const ACCOUNT_NAME_NAME = 'AccountName';
- const ACCOUNT_KEY_NAME = 'AccountKey';
- const BLOB_ENDPOINT_NAME = 'BlobEndpoint';
- const QUEUE_ENDPOINT_NAME = 'QueueEndpoint';
- const TABLE_ENDPOINT_NAME = 'TableEndpoint';
- const SHARED_ACCESS_SIGNATURE_NAME = 'SharedAccessSignature';
- const DEV_STORE_NAME = 'devstoreaccount1';
- const DEV_STORE_KEY = 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==';
- const BLOB_BASE_DNS_NAME = 'blob.core.windows.net';
- const QUEUE_BASE_DNS_NAME = 'queue.core.windows.net';
- const TABLE_BASE_DNS_NAME = 'table.core.windows.net';
- const DEV_STORE_CONNECTION_STRING = 'BlobEndpoint=127.0.0.1:10000;QueueEndpoint=127.0.0.1:10001;TableEndpoint=127.0.0.1:10002;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==';
- const SUBSCRIPTION_ID_NAME = 'SubscriptionID';
- const CERTIFICATE_PATH_NAME = 'CertificatePath';
- const SERVICE_MANAGEMENT_ENDPOINT_NAME = 'ServiceManagementEndpoint';
- const SERVICE_BUS_ENDPOINT_NAME = 'Endpoint';
- const SHARED_SECRET_ISSUER_NAME = 'SharedSecretIssuer';
- const SHARED_SECRET_VALUE_NAME = 'SharedSecretValue';
- const STS_ENDPOINT_NAME = 'StsEndpoint';
- const MEDIA_SERVICES_ENDPOINT_URI_NAME = 'MediaServicesEndpoint';
- const MEDIA_SERVICES_ACCOUNT_NAME = 'AccountName';
- const MEDIA_SERVICES_ACCESS_KEY = 'AccessKey';
- const MEDIA_SERVICES_OAUTH_ENDPOINT_URI_NAME = 'OAuthEndpoint';
-
- // Messages
- const INVALID_TYPE_MSG = 'The provided variable should be of type: ';
- const INVALID_META_MSG = 'Metadata cannot contain newline characters.';
- const AZURE_ERROR_MSG = "Fail:\nCode: %s\nValue: %s\ndetails (if any): %s.";
- const NOT_IMPLEMENTED_MSG = 'This method is not implemented.';
- const NULL_OR_EMPTY_MSG = "'%s' can't be NULL or empty.";
- const NULL_MSG = "'%s' can't be NULL.";
- const INVALID_URL_MSG = 'Provided URL is invalid.';
- const INVALID_HT_MSG = 'The header type provided is invalid.';
- const INVALID_EDM_MSG = 'The provided EDM type is invalid.';
- const INVALID_PROP_MSG = 'One of the provided properties is not an instance of class Property';
- const INVALID_ENTITY_MSG = 'The provided entity object is invalid.';
- const INVALID_VERSION_MSG = 'Server does not support any known protocol versions.';
- const INVALID_BO_TYPE_MSG = 'Batch operation name is not supported or invalid.';
- const INVALID_BO_PN_MSG = 'Batch operation parameter is not supported.';
- const INVALID_OC_COUNT_MSG = 'Operations and contexts must be of same size.';
- const INVALID_EXC_OBJ_MSG = 'Exception object type should be ServiceException.';
- const NULL_TABLE_KEY_MSG = 'Partition and row keys can\'t be NULL.';
- const BATCH_ENTITY_DEL_MSG = 'The entity was deleted successfully.';
- const INVALID_PROP_VAL_MSG = "'%s' property value must satisfy %s.";
- const INVALID_PARAM_MSG = "The provided variable '%s' should be of type '%s'";
- const INVALID_STRING_LENGTH = "The provided variable '%s' should be of %s characters long";
- const INVALID_BTE_MSG = "The blob block type must exist in %s";
- const INVALID_BLOB_PAT_MSG = 'The provided access type is invalid.';
- const INVALID_SVC_PROP_MSG = 'The provided service properties is invalid.';
- const UNKNOWN_SRILZER_MSG = 'The provided serializer type is unknown';
- const INVALID_CREATE_SERVICE_OPTIONS_MSG = 'Must provide valid location or affinity group.';
- const INVALID_UPDATE_SERVICE_OPTIONS_MSG = 'Must provide either description or label.';
- const INVALID_CONFIG_MSG = 'Config object must be of type Configuration';
- const INVALID_ACH_MSG = 'The provided access condition header is invalid';
- const INVALID_RECEIVE_MODE_MSG = 'The receive message option is in neither RECEIVE_AND_DELETE nor PEEK_LOCK mode.';
- const INVALID_CONFIG_URI = "The provided URI '%s' is invalid. It has to pass the check 'filter_var(, FILTER_VALIDATE_URL)'.";
- const INVALID_CONFIG_VALUE = "The provided config value '%s' does not belong to the valid values subset:\n%s";
- const INVALID_ACCOUNT_KEY_FORMAT = "The provided account key '%s' is not a valid base64 string. It has to pass the check 'base64_decode(, true)'.";
- const MISSING_CONNECTION_STRING_SETTINGS = "The provided connection string '%s' does not have complete configuration settings.";
- const INVALID_CONNECTION_STRING_SETTING_KEY = "The setting key '%s' is not found in the expected configuration setting keys:\n%s";
- const INVALID_CERTIFICATE_PATH = "The provided certificate path '%s' is invalid.";
- const INSTANCE_TYPE_VALIDATION_MSG = 'The type of %s is %s but is expected to be %s.';
- const MISSING_CONNECTION_STRING_CHAR = "Missing %s character";
- const ERROR_PARSING_STRING = "'%s' at position %d.";
- const INVALID_CONNECTION_STRING = "Argument '%s' is not a valid connection string: '%s'";
- const ERROR_CONNECTION_STRING_MISSING_KEY = 'Missing key name';
- const ERROR_CONNECTION_STRING_EMPTY_KEY = 'Empty key name';
- const ERROR_CONNECTION_STRING_MISSING_CHARACTER = "Missing %s character";
- const ERROR_EMPTY_SETTINGS = 'No keys were found in the connection string';
- const MISSING_LOCK_LOCATION_MSG = 'The lock location of the brokered message is missing.';
- const INVALID_SLOT = "The provided deployment slot '%s' is not valid. Only 'staging' and 'production' are accepted.";
- const INVALID_DEPLOYMENT_LOCATOR_MSG = 'A slot or deployment name must be provided.';
- const INVALID_CHANGE_MODE_MSG = "The change mode must be 'Auto' or 'Manual'. Use Mode class constants for that purpose.";
- const INVALID_DEPLOYMENT_STATUS_MSG = "The change mode must be 'Running' or 'Suspended'. Use DeploymentStatus class constants for that purpose.";
- const ERROR_OAUTH_GET_ACCESS_TOKEN = 'Unable to get oauth access token for endpoint \'%s\', account name \'%s\'';
- const ERROR_OAUTH_SERVICE_MISSING = 'OAuth service missing for account name \'%s\'';
- const ERROR_METHOD_NOT_FOUND = 'Method \'%s\' not found in object class \'%s\'';
- const ERROR_INVALID_DATE_STRING = 'Parameter \'%s\' is not a date formatted string \'%s\'';
-
- // HTTP Headers
- const X_MS_HEADER_PREFIX = 'x-ms-';
- const X_MS_META_HEADER_PREFIX = 'x-ms-meta-';
- const X_MS_APPROXIMATE_MESSAGES_COUNT = 'x-ms-approximate-messages-count';
- const X_MS_POPRECEIPT = 'x-ms-popreceipt';
- const X_MS_TIME_NEXT_VISIBLE = 'x-ms-time-next-visible';
- const X_MS_BLOB_PUBLIC_ACCESS = 'x-ms-blob-public-access';
- const X_MS_VERSION = 'x-ms-version';
- const X_MS_DATE = 'x-ms-date';
- const X_MS_BLOB_SEQUENCE_NUMBER = 'x-ms-blob-sequence-number';
- const X_MS_BLOB_SEQUENCE_NUMBER_ACTION = 'x-ms-sequence-number-action';
- const X_MS_BLOB_TYPE = 'x-ms-blob-type';
- const X_MS_BLOB_CONTENT_TYPE = 'x-ms-blob-content-type';
- const X_MS_BLOB_CONTENT_ENCODING = 'x-ms-blob-content-encoding';
- const X_MS_BLOB_CONTENT_LANGUAGE = 'x-ms-blob-content-language';
- const X_MS_BLOB_CONTENT_MD5 = 'x-ms-blob-content-md5';
- const X_MS_BLOB_CACHE_CONTROL = 'x-ms-blob-cache-control';
- const X_MS_BLOB_CONTENT_LENGTH = 'x-ms-blob-content-length';
- const X_MS_COPY_SOURCE = 'x-ms-copy-source';
- const X_MS_RANGE = 'x-ms-range';
- const X_MS_RANGE_GET_CONTENT_MD5 = 'x-ms-range-get-content-md5';
- const X_MS_LEASE_DURATION = 'x-ms-lease-duration';
- const X_MS_LEASE_ID = 'x-ms-lease-id';
- const X_MS_LEASE_TIME = 'x-ms-lease-time';
- const X_MS_LEASE_STATUS = 'x-ms-lease-status';
- const X_MS_LEASE_ACTION = 'x-ms-lease-action';
- const X_MS_DELETE_SNAPSHOTS = 'x-ms-delete-snapshots';
- const X_MS_PAGE_WRITE = 'x-ms-page-write';
- const X_MS_SNAPSHOT = 'x-ms-snapshot';
- const X_MS_SOURCE_IF_MODIFIED_SINCE = 'x-ms-source-if-modified-since';
- const X_MS_SOURCE_IF_UNMODIFIED_SINCE = 'x-ms-source-if-unmodified-since';
- const X_MS_SOURCE_IF_MATCH = 'x-ms-source-if-match';
- const X_MS_SOURCE_IF_NONE_MATCH = 'x-ms-source-if-none-match';
- const X_MS_SOURCE_LEASE_ID = 'x-ms-source-lease-id';
- const X_MS_CONTINUATION_NEXTTABLENAME = 'x-ms-continuation-nexttablename';
- const X_MS_CONTINUATION_NEXTPARTITIONKEY = 'x-ms-continuation-nextpartitionkey';
- const X_MS_CONTINUATION_NEXTROWKEY = 'x-ms-continuation-nextrowkey';
- const X_MS_REQUEST_ID = 'x-ms-request-id';
- const ETAG = 'etag';
- const LAST_MODIFIED = 'last-modified';
- const DATE = 'date';
- const AUTHENTICATION = 'authorization';
- const WRAP_AUTHORIZATION = 'WRAP access_token="%s"';
- const CONTENT_ENCODING = 'content-encoding';
- const CONTENT_LANGUAGE = 'content-language';
- const CONTENT_LENGTH = 'content-length';
- const CONTENT_LENGTH_NO_SPACE = 'contentlength';
- const CONTENT_MD5 = 'content-md5';
- const CONTENT_TYPE = 'content-type';
- const CONTENT_ID = 'content-id';
- const CONTENT_RANGE = 'content-range';
- const CACHE_CONTROL = 'cache-control';
- const IF_MODIFIED_SINCE = 'if-modified-since';
- const IF_MATCH = 'if-match';
- const IF_NONE_MATCH = 'if-none-match';
- const IF_UNMODIFIED_SINCE = 'if-unmodified-since';
- const RANGE = 'range';
- const DATA_SERVICE_VERSION = 'dataserviceversion';
- const MAX_DATA_SERVICE_VERSION = 'maxdataserviceversion';
- const ACCEPT_HEADER = 'accept';
- const ACCEPT_CHARSET = 'accept-charset';
- const USER_AGENT = 'User-Agent';
-
- // Type
- const QUEUE_TYPE_NAME = 'IQueue';
- const BLOB_TYPE_NAME = 'IBlob';
- const TABLE_TYPE_NAME = 'ITable';
- const SERVICE_MANAGEMENT_TYPE_NAME = 'IServiceManagement';
- const SERVICE_BUS_TYPE_NAME = 'IServiceBus';
- const WRAP_TYPE_NAME = 'IWrap';
-
- // WRAP
- const WRAP_ACCESS_TOKEN = 'wrap_access_token';
- const WRAP_ACCESS_TOKEN_EXPIRES_IN = 'wrap_access_token_expires_in';
- const WRAP_NAME = 'wrap_name';
- const WRAP_PASSWORD = 'wrap_password';
- const WRAP_SCOPE = 'wrap_scope';
-
- // OAuth
- const OAUTH_GRANT_TYPE = 'grant_type';
- const OAUTH_CLIENT_ID = 'client_id';
- const OAUTH_CLIENT_SECRET = 'client_secret';
- const OAUTH_SCOPE = 'scope';
- const OAUTH_GT_CLIENT_CREDENTIALS = 'client_credentials';
- const OAUTH_ACCESS_TOKEN = 'access_token';
- const OAUTH_EXPIRES_IN = 'expires_in';
- const OAUTH_ACCESS_TOKEN_PREFIX = 'Bearer ';
-
- // HTTP Methods
- const HTTP_GET = 'GET';
- const HTTP_PUT = 'PUT';
- const HTTP_POST = 'POST';
- const HTTP_HEAD = 'HEAD';
- const HTTP_DELETE = 'DELETE';
- const HTTP_MERGE = 'MERGE';
-
- // Misc
- const EMPTY_STRING = '';
- const SEPARATOR = ',';
- const AZURE_DATE_FORMAT = 'D, d M Y H:i:s T';
- const TIMESTAMP_FORMAT = 'Y-m-d H:i:s';
- const EMULATED = 'EMULATED';
- const EMULATOR_BLOB_URI = '127.0.0.1:10000';
- const EMULATOR_QUEUE_URI = '127.0.0.1:10001';
- const EMULATOR_TABLE_URI = '127.0.0.1:10002';
- const ASTERISK = '*';
- const SERVICE_MANAGEMENT_URL = 'https://management.core.windows.net';
- const HTTP_SCHEME = 'http';
- const HTTPS_SCHEME = 'https';
- const SETTING_NAME = 'SettingName';
- const SETTING_CONSTRAINT = 'SettingConstraint';
- const DEV_STORE_URI = 'http://127.0.0.1';
- const SERVICE_URI_FORMAT = "%s://%s.%s";
- const WRAP_ENDPOINT_URI_FORMAT = "https://%s-sb.accesscontrol.windows.net/WRAPv0.9";
-
- // Xml Namespaces
- const WA_XML_NAMESPACE = 'http://schemas.microsoft.com/windowsazure';
- const ATOM_XML_NAMESPACE = 'http://www.w3.org/2005/Atom';
- const DS_XML_NAMESPACE = 'http://schemas.microsoft.com/ado/2007/08/dataservices';
- const DSM_XML_NAMESPACE = 'http://schemas.microsoft.com/ado/2007/08/dataservices/metadata';
- const XSI_XML_NAMESPACE = 'http://www.w3.org/2001/XMLSchema-instance';
-
-
- // Header values
- const SDK_USER_AGENT = 'Azure-SDK-For-PHP/0.4.1';
- const STORAGE_API_LATEST_VERSION = '2014-02-14'; // was 2012-02-12; see HS#7569
- const SM_API_LATEST_VERSION = '2011-10-01';
- const DATA_SERVICE_VERSION_VALUE = '1.0;NetFx';
- const MAX_DATA_SERVICE_VERSION_VALUE = '2.0;NetFx';
- const ACCEPT_HEADER_VALUE = 'application/atom+xml,application/xml';
- const ATOM_ENTRY_CONTENT_TYPE = 'application/atom+xml;type=entry;charset=utf-8';
- const ATOM_FEED_CONTENT_TYPE = 'application/atom+xml;type=feed;charset=utf-8';
- const ACCEPT_CHARSET_VALUE = 'utf-8';
- const INT32_MAX = 2147483647;
- const MEDIA_SERVICES_API_LATEST_VERSION = '2.2';
- const MEDIA_SERVICES_DATA_SERVICE_VERSION_VALUE = '3.0;NetFx';
- const MEDIA_SERVICES_MAX_DATA_SERVICE_VERSION_VALUE = '3.0;NetFx';
-
- // Query parameter names
- const QP_PREFIX = 'Prefix';
- const QP_MAX_RESULTS = 'MaxResults';
- const QP_METADATA = 'Metadata';
- const QP_MARKER = 'Marker';
- const QP_NEXT_MARKER = 'NextMarker';
- const QP_COMP = 'comp';
- const QP_VISIBILITY_TIMEOUT = 'visibilitytimeout';
- const QP_POPRECEIPT = 'popreceipt';
- const QP_NUM_OF_MESSAGES = 'numofmessages';
- const QP_PEEK_ONLY = 'peekonly';
- const QP_MESSAGE_TTL = 'messagettl';
- const QP_INCLUDE = 'include';
- const QP_TIMEOUT = 'timeout';
- const QP_DELIMITER = 'Delimiter';
- const QP_REST_TYPE = 'restype';
- const QP_SNAPSHOT = 'snapshot';
- const QP_BLOCKID = 'blockid';
- const QP_BLOCK_LIST_TYPE = 'blocklisttype';
- const QP_SELECT = '$select';
- const QP_TOP = '$top';
- const QP_SKIP = '$skip';
- const QP_FILTER = '$filter';
- const QP_NEXT_TABLE_NAME = 'NextTableName';
- const QP_NEXT_PK = 'NextPartitionKey';
- const QP_NEXT_RK = 'NextRowKey';
- const QP_ACTION = 'action';
- const QP_EMBED_DETAIL = 'embed-detail';
-
- // Query parameter values
- const QPV_REGENERATE = 'regenerate';
- const QPV_CONFIG = 'config';
- const QPV_STATUS = 'status';
- const QPV_UPGRADE = 'upgrade';
- const QPV_WALK_UPGRADE_DOMAIN = 'walkupgradedomain';
- const QPV_REBOOT = 'reboot';
- const QPV_REIMAGE = 'reimage';
- const QPV_ROLLBACK = 'rollback';
-
- // Request body content types
- const URL_ENCODED_CONTENT_TYPE = 'application/x-www-form-urlencoded';
- const XML_CONTENT_TYPE = 'application/xml';
- const BINARY_FILE_TYPE = 'application/octet-stream';
- const XML_ATOM_CONTENT_TYPE = 'application/atom+xml';
- const HTTP_TYPE = 'application/http';
- const MULTIPART_MIXED_TYPE = 'multipart/mixed';
-
- // Common used XML tags
- const XTAG_ATTRIBUTES = '@attributes';
- const XTAG_NAMESPACE = '@namespace';
- const XTAG_LABEL = 'Label';
- const XTAG_NAME = 'Name';
- const XTAG_DESCRIPTION = 'Description';
- const XTAG_LOCATION = 'Location';
- const XTAG_AFFINITY_GROUP = 'AffinityGroup';
- const XTAG_HOSTED_SERVICES = 'HostedServices';
- const XTAG_STORAGE_SERVICES = 'StorageServices';
- const XTAG_STORAGE_SERVICE = 'StorageService';
- const XTAG_DISPLAY_NAME = 'DisplayName';
- const XTAG_SERVICE_NAME = 'ServiceName';
- const XTAG_URL = 'Url';
- const XTAG_ID = 'ID';
- const XTAG_STATUS = 'Status';
- const XTAG_HTTP_STATUS_CODE = 'HttpStatusCode';
- const XTAG_CODE = 'Code';
- const XTAG_MESSAGE = 'Message';
- const XTAG_STORAGE_SERVICE_PROPERTIES = 'StorageServiceProperties';
- const XTAG_ENDPOINT = 'Endpoint';
- const XTAG_ENDPOINTS = 'Endpoints';
- const XTAG_PRIMARY = 'Primary';
- const XTAG_SECONDARY = 'Secondary';
- const XTAG_KEY_TYPE = 'KeyType';
- const XTAG_STORAGE_SERVICE_KEYS = 'StorageServiceKeys';
- const XTAG_ERROR = 'Error';
- const XTAG_HOSTED_SERVICE = 'HostedService';
- const XTAG_HOSTED_SERVICE_PROPERTIES = 'HostedServiceProperties';
- const XTAG_CREATE_HOSTED_SERVICE = 'CreateHostedService';
- const XTAG_CREATE_STORAGE_SERVICE_INPUT = 'CreateStorageServiceInput';
- const XTAG_UPDATE_STORAGE_SERVICE_INPUT = 'UpdateStorageServiceInput';
- const XTAG_CREATE_AFFINITY_GROUP = 'CreateAffinityGroup';
- const XTAG_UPDATE_AFFINITY_GROUP = 'UpdateAffinityGroup';
- const XTAG_UPDATE_HOSTED_SERVICE = 'UpdateHostedService';
- const XTAG_PACKAGE_URL = 'PackageUrl';
- const XTAG_CONFIGURATION = 'Configuration';
- const XTAG_START_DEPLOYMENT = 'StartDeployment';
- const XTAG_TREAT_WARNINGS_AS_ERROR = 'TreatWarningsAsError';
- const XTAG_CREATE_DEPLOYMENT = 'CreateDeployment';
- const XTAG_DEPLOYMENT_SLOT = 'DeploymentSlot';
- const XTAG_PRIVATE_ID = 'PrivateID';
- const XTAG_ROLE_INSTANCE_LIST = 'RoleInstanceList';
- const XTAG_UPGRADE_DOMAIN_COUNT = 'UpgradeDomainCount';
- const XTAG_ROLE_LIST = 'RoleList';
- const XTAG_SDK_VERSION = 'SdkVersion';
- const XTAG_INPUT_ENDPOINT_LIST = 'InputEndpointList';
- const XTAG_LOCKED = 'Locked';
- const XTAG_ROLLBACK_ALLOWED = 'RollbackAllowed';
- const XTAG_UPGRADE_STATUS = 'UpgradeStatus';
- const XTAG_UPGRADE_TYPE = 'UpgradeType';
- const XTAG_CURRENT_UPGRADE_DOMAIN_STATE = 'CurrentUpgradeDomainState';
- const XTAG_CURRENT_UPGRADE_DOMAIN = 'CurrentUpgradeDomain';
- const XTAG_ROLE_NAME = 'RoleName';
- const XTAG_INSTANCE_NAME = 'InstanceName';
- const XTAG_INSTANCE_STATUS = 'InstanceStatus';
- const XTAG_INSTANCE_UPGRADE_DOMAIN = 'InstanceUpgradeDomain';
- const XTAG_INSTANCE_FAULT_DOMAIN = 'InstanceFaultDomain';
- const XTAG_INSTANCE_SIZE = 'InstanceSize';
- const XTAG_INSTANCE_STATE_DETAILS = 'InstanceStateDetails';
- const XTAG_INSTANCE_ERROR_CODE = 'InstanceErrorCode';
- const XTAG_OS_VERSION = 'OsVersion';
- const XTAG_ROLE_INSTANCE = 'RoleInstance';
- const XTAG_ROLE = 'Role';
- const XTAG_INPUT_ENDPOINT = 'InputEndpoint';
- const XTAG_VIP = 'Vip';
- const XTAG_PORT = 'Port';
- const XTAG_DEPLOYMENT = 'Deployment';
- const XTAG_DEPLOYMENTS = 'Deployments';
- const XTAG_REGENERATE_KEYS = 'RegenerateKeys';
- const XTAG_SWAP = 'Swap';
- const XTAG_PRODUCTION = 'Production';
- const XTAG_SOURCE_DEPLOYMENT = 'SourceDeployment';
- const XTAG_CHANGE_CONFIGURATION = 'ChangeConfiguration';
- const XTAG_MODE = 'Mode';
- const XTAG_UPDATE_DEPLOYMENT_STATUS = 'UpdateDeploymentStatus';
- const XTAG_ROLE_TO_UPGRADE = 'RoleToUpgrade';
- const XTAG_FORCE = 'Force';
- const XTAG_UPGRADE_DEPLOYMENT = 'UpgradeDeployment';
- const XTAG_UPGRADE_DOMAIN = 'UpgradeDomain';
- const XTAG_WALK_UPGRADE_DOMAIN = 'WalkUpgradeDomain';
- const XTAG_ROLLBACK_UPDATE_OR_UPGRADE = 'RollbackUpdateOrUpgrade';
- const XTAG_CONTAINER_NAME = 'ContainerName';
- const XTAG_ACCOUNT_NAME = 'AccountName';
-
- // Service Bus
- const LIST_TOPICS_PATH = '$Resources/Topics';
- const LIST_QUEUES_PATH = '$Resources/Queues';
- const LIST_RULES_PATH = '%s/subscriptions/%s/rules';
- const LIST_SUBSCRIPTIONS_PATH = '%s/subscriptions';
- const RECEIVE_MESSAGE_PATH = '%s/messages/head';
- const RECEIVE_SUBSCRIPTION_MESSAGE_PATH = '%s/subscriptions/%s/messages/head';
- const SEND_MESSAGE_PATH = '%s/messages';
- const RULE_PATH = '%s/subscriptions/%s/rules/%s';
- const SUBSCRIPTION_PATH = '%s/subscriptions/%s';
- const DEFAULT_RULE_NAME = '$Default';
- const UNIQUE_ID_PREFIX = 'urn:uuid:';
- const SERVICE_BUS_NAMESPACE = 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect';
- const BROKER_PROPERTIES = 'BrokerProperties';
- const XMLNS_ATOM = 'xmlns:atom';
- const XMLNS = 'xmlns';
- const ATOM_NAMESPACE = 'http://www.w3.org/2005/Atom';
-
- // ATOM string
- const AUTHOR = 'author';
- const CATEGORY = 'category';
- const CONTRIBUTOR = 'contributor';
- const ENTRY = 'entry';
- const LINK = 'link';
- const PROPERTIES = 'properties';
- const ELEMENT = 'element';
-
- // PHP URL Keys
- const PHP_URL_SCHEME = 'scheme';
- const PHP_URL_HOST = 'host';
- const PHP_URL_PORT = 'port';
- const PHP_URL_USER = 'user';
- const PHP_URL_PASS = 'pass';
- const PHP_URL_PATH = 'path';
- const PHP_URL_QUERY = 'query';
- const PHP_URL_FRAGMENT = 'fragment';
-
- // Status Codes
- const STATUS_OK = 200;
- const STATUS_CREATED = 201;
- const STATUS_ACCEPTED = 202;
- const STATUS_NO_CONTENT = 204;
- const STATUS_PARTIAL_CONTENT = 206;
- const STATUS_MOVED_PERMANENTLY = 301;
-
- // HTTP_Request2 config parameter names
- const USE_BRACKETS = 'use_brackets';
- const SSL_VERIFY_PEER = 'ssl_verify_peer';
- const SSL_VERIFY_HOST = 'ssl_verify_host';
- const SSL_LOCAL_CERT = 'ssl_local_cert';
- const SSL_CAFILE = 'ssl_cafile';
- const CONNECT_TIMEOUT = 'connect_timeout';
-
- // Media services
- const MEDIA_SERVICES_URL = 'https://media.windows.net/API/';
- const MEDIA_SERVICES_OAUTH_URL = 'https://wamsprodglobal001acs.accesscontrol.windows.net/v2/OAuth2-13';
- const MEDIA_SERVICES_OAUTH_SCOPE = 'urn:WindowsAzureMediaServices';
- const MEDIA_SERVICES_INPUT_ASSETS_REL = 'http://schemas.microsoft.com/ado/2007/08/dataservices/related/InputMediaAssets';
- const MEDIA_SERVICES_ASSET_REL = 'http://schemas.microsoft.com/ado/2007/08/dataservices/related/Asset';
- const MEDIA_SERVICES_ENCRYPTION_VERSION = '1.0';
-
-
- // @codingStandardsIgnoreEnd
-}
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/RestProxy.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/RestProxy.php
deleted file mode 100644
index 7e4510c7..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/RestProxy.php
+++ /dev/null
@@ -1,207 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Http\Url;
-
-/**
- * Base class for all REST proxies.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class RestProxy
-{
- /**
- * @var WindowsAzure\Common\Internal\Http\IHttpClient
- */
- private $_channel;
-
- /**
- * @var array
- */
- private $_filters;
-
- /**
- * @var WindowsAzure\Common\Internal\Serialization\ISerializer
- */
- protected $dataSerializer;
-
- /**
- * @var string
- */
- private $_uri;
-
- /**
- * Initializes new RestProxy object.
- *
- * @param IHttpClient $channel The HTTP client used to send HTTP requests.
- * @param ISerializer $dataSerializer The data serializer.
- * @param string $uri The uri of the service.
- */
- public function __construct($channel, $dataSerializer, $uri)
- {
- $this->_channel = $channel;
- $this->_filters = array();
- $this->dataSerializer = $dataSerializer;
- $this->_uri = $uri;
- }
-
- /**
- * Gets HTTP filters that will process each request.
- *
- * @return array
- */
- public function getFilters()
- {
- return $this->_filters;
- }
-
- /**
- * Gets the Uri of the service.
- *
- * @return string
- */
- public function getUri()
- {
- return $this->_uri;
- }
-
- /**
- * Sets the Uri of the service.
- *
- * @param string $uri The URI of the request.
- *
- * @return none
- */
- public function setUri($uri)
- {
- $this->_uri = $uri;
- }
-
- /**
- * Sends HTTP request with the specified HTTP call context.
- *
- * @param WindowsAzure\Common\Internal\Http\HttpCallContext $context The HTTP
- * call context.
- *
- * @return \HTTP_Request2_Response
- */
- protected function sendContext($context)
- {
- $channel = clone $this->_channel;
- $contextUrl = $context->getUri();
- $url = new Url(empty($contextUrl) ? $this->_uri : $contextUrl);
- $headers = $context->getHeaders();
- $statusCodes = $context->getStatusCodes();
- $body = $context->getBody();
- $queryParams = $context->getQueryParameters();
- $postParameters = $context->getPostParameters();
- $path = $context->getPath();
-
- $channel->setMethod($context->getMethod());
- $channel->setExpectedStatusCode($statusCodes);
- $channel->setBody($body);
- $channel->setHeaders($headers);
-
- if (count($postParameters) > 0) {
- $channel->setPostParameters($postParameters);
- }
- $url->setQueryVariables($queryParams);
- $url->appendUrlPath($path);
-
- $channel->send($this->_filters, $url);
-
- return $channel->getResponse();
- }
-
- /**
- * Adds new filter to new service rest proxy object and returns that object back.
- *
- * @param WindowsAzure\Common\Internal\IServiceFilter $filter Filter to add for
- * the pipeline.
- *
- * @return RestProxy.
- */
- public function withFilter($filter)
- {
- $serviceProxyWithFilter = clone $this;
- $serviceProxyWithFilter->_filters[] = $filter;
-
- return $serviceProxyWithFilter;
- }
-
- /**
- * Adds optional query parameter.
- *
- * Doesn't add the value if it satisfies empty().
- *
- * @param array &$queryParameters The query parameters.
- * @param string $key The query variable name.
- * @param string $value The query variable value.
- *
- * @return none
- */
- protected function addOptionalQueryParam(&$queryParameters, $key, $value)
- {
- Validate::isArray($queryParameters, 'queryParameters');
- Validate::isString($key, 'key');
- Validate::isString($value, 'value');
-
- if (!is_null($value) && Resources::EMPTY_STRING !== $value) {
- $queryParameters[$key] = $value;
- }
- }
-
- /**
- * Adds optional header.
- *
- * Doesn't add the value if it satisfies empty().
- *
- * @param array &$headers The HTTP header parameters.
- * @param string $key The HTTP header name.
- * @param string $value The HTTP header value.
- *
- * @return none
- */
- protected function addOptionalHeader(&$headers, $key, $value)
- {
- Validate::isArray($headers, 'headers');
- Validate::isString($key, 'key');
- Validate::isString($value, 'value');
-
- if (!is_null($value) && Resources::EMPTY_STRING !== $value) {
- $headers[$key] = $value;
- }
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Serialization/ISerializer.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Serialization/ISerializer.php
deleted file mode 100644
index 14ea193b..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Serialization/ISerializer.php
+++ /dev/null
@@ -1,73 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Serialization;
-
-/**
- * The serialization interface.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Serialization
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-interface ISerializer
-{
-
- /**
- * Serialize an object into a XML.
- *
- * @param Object $targetObject The target object to be serialized.
- * @param string $rootName The name of the root.
- *
- * @return string
- */
- public static function objectSerialize($targetObject, $rootName);
-
- /**
- * Serializes given array. The array indices must be string to use them as
- * as element name.
- *
- * @param array $array The object to serialize represented in array.
- * @param array $properties The used properties in the serialization process.
- *
- * @return string
- */
- public function serialize($array, $properties = null);
-
-
- /**
- * Unserializes given serialized string.
- *
- * @param string $serialized The serialized object in string representation.
- *
- * @return array
- */
- public function unserialize($serialized);
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Serialization/JsonSerializer.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Serialization/JsonSerializer.php
deleted file mode 100644
index 0b545014..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Serialization/JsonSerializer.php
+++ /dev/null
@@ -1,96 +0,0 @@
-
- * @copyright Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Serialization;
-use WindowsAzure\Common\Internal\Validate;
-/**
- * Perform JSON serialization / deserialization
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Serialization
- * @author Azure PHP SDK
- * @copyright Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class JsonSerializer implements ISerializer
-{
- /**
- * Serialize an object with specified root element name.
- *
- * @param object $targetObject The target object.
- * @param string $rootName The name of the root element.
- *
- * @return string
- */
- public static function objectSerialize($targetObject, $rootName)
- {
- Validate::notNull($targetObject, 'targetObject');
- Validate::isString($rootName, 'rootName');
-
- $contianer = new \stdClass();
-
- $contianer->$rootName = $targetObject;
-
- return json_encode($contianer);
- }
-
- /**
- * Serializes given array. The array indices must be string to use them as
- * as element name.
- *
- * @param array $array The object to serialize represented in array.
- * @param array $properties The used properties in the serialization process.
- *
- * @return string
- */
- public function serialize($array, $properties = null)
- {
- Validate::isArray($array, 'array');
-
- return json_encode($array);
- }
-
- /**
- * Unserializes given serialized string to array.
- *
- * @param string $serialized The serialized object in string representation.
- *
- * @return array
- */
- public function unserialize($serialized)
- {
- Validate::isString($serialized, 'serialized');
-
- $json = json_decode($serialized);
- if ($json && !is_array($json)) {
- return get_object_vars($json);
- } else {
- return $json;
- }
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Serialization/XmlSerializer.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Serialization/XmlSerializer.php
deleted file mode 100644
index b7b1a915..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Serialization/XmlSerializer.php
+++ /dev/null
@@ -1,245 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal\Serialization;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Validate;
-
-/**
- * Short description
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal\Serialization
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class XmlSerializer implements ISerializer
-{
- const STANDALONE = 'standalone';
- const ROOT_NAME = 'rootName';
- const DEFAULT_TAG = 'defaultTag';
-
- /**
- * Converts a SimpleXML object to an Array recursively
- * ensuring all sub-elements are arrays as well.
- *
- * @param string $sxml The SimpleXML object.
- * @param array $arr The array into which to store results.
- *
- * @return array
- */
- private function _sxml2arr($sxml, $arr = null)
- {
- foreach ((array) $sxml as $key => $value) {
- if (is_object($value) || (is_array($value))) {
- $arr[$key] = $this->_sxml2arr($value);
- } else {
- $arr[$key] = $value;
- }
- }
-
- return $arr;
- }
-
- /**
- * Takes an array and produces XML based on it.
- *
- * @param XMLWriter $xmlw XMLWriter object that was previously instanted
- * and is used for creating the XML.
- * @param array $data Array to be converted to XML.
- * @param string $defaultTag Default XML tag to be used if none specified.
- *
- * @return void
- */
- private function _arr2xml(\XMLWriter $xmlw, $data, $defaultTag = null)
- {
- foreach ($data as $key => $value) {
- if ($key === Resources::XTAG_ATTRIBUTES) {
- foreach ($value as $attributeName => $attributeValue) {
- $xmlw->writeAttribute($attributeName, $attributeValue);
- }
- } else if (is_array($value)) {
- if (!is_int($key)) {
- if ($key != Resources::EMPTY_STRING) {
- $xmlw->startElement($key);
- } else {
- $xmlw->startElement($defaultTag);
- }
- }
-
- $this->_arr2xml($xmlw, $value);
-
- if (!is_int($key)) {
- $xmlw->endElement();
- }
- } else {
- $xmlw->writeElement($key, $value);
- }
- }
- }
-
- /**
- * Gets the attributes of a specified object if get attributes
- * method is exposed.
- *
- * @param object $targetObject The target object.
- * @param array $methodArray The array of method of the target object.
- *
- * @return mixed
- */
- private static function _getInstanceAttributes($targetObject, $methodArray)
- {
- foreach ($methodArray as $method) {
- if ($method->name == 'getAttributes') {
- $classProperty = $method->invoke($targetObject);
- return $classProperty;
- }
- }
- return null;
- }
-
- /**
- * Serialize an object with specified root element name.
- *
- * @param object $targetObject The target object.
- * @param string $rootName The name of the root element.
- *
- * @return string
- */
- public static function objectSerialize($targetObject, $rootName)
- {
- Validate::notNull($targetObject, 'targetObject');
- Validate::isString($rootName, 'rootName');
- $xmlWriter = new \XmlWriter();
- $xmlWriter->openMemory();
- $xmlWriter->setIndent(true);
- $reflectionClass = new \ReflectionClass($targetObject);
- $methodArray = $reflectionClass->getMethods();
- $attributes = self::_getInstanceAttributes(
- $targetObject,
- $methodArray
- );
-
- $xmlWriter->startElement($rootName);
- if (!is_null($attributes)) {
- foreach (array_keys($attributes) as $attributeKey) {
- $xmlWriter->writeAttribute(
- $attributeKey,
- $attributes[$attributeKey]
- );
- }
- }
-
- foreach ($methodArray as $method) {
- if ((strpos($method->name, 'get') === 0)
- && $method->isPublic()
- && ($method->name != 'getAttributes')
- ) {
- $variableName = substr($method->name, 3);
- $variableValue = $method->invoke($targetObject);
- if (!empty($variableValue)) {
- if (gettype($variableValue) === 'object') {
- $xmlWriter->writeRaw(
- XmlSerializer::objectSerialize(
- $variableValue, $variableName
- )
- );
- } else {
- $xmlWriter->writeElement($variableName, $variableValue);
- }
- }
- }
- }
- $xmlWriter->endElement();
- return $xmlWriter->outputMemory(true);
- }
-
- /**
- * Serializes given array. The array indices must be string to use them as
- * as element name.
- *
- * @param array $array The object to serialize represented in array.
- * @param array $properties The used properties in the serialization process.
- *
- * @return string
- */
- public function serialize($array, $properties = null)
- {
- $xmlVersion = '1.0';
- $xmlEncoding = 'UTF-8';
- $standalone = Utilities::tryGetValue($properties, self::STANDALONE);
- $defaultTag = Utilities::tryGetValue($properties, self::DEFAULT_TAG);
- $rootName = Utilities::tryGetValue($properties, self::ROOT_NAME);
- $docNamespace = Utilities::tryGetValue(
- $array,
- Resources::XTAG_NAMESPACE,
- null
- );
-
- if (!is_array($array)) {
- return false;
- }
-
- $xmlw = new \XmlWriter();
- $xmlw->openMemory();
- $xmlw->setIndent(true);
- $xmlw->startDocument($xmlVersion, $xmlEncoding, $standalone);
-
- if (is_null($docNamespace)) {
- $xmlw->startElement($rootName);
- } else {
- foreach ($docNamespace as $uri => $prefix) {
- $xmlw->startElementNS($prefix, $rootName, $uri);
- break;
- }
- }
-
- unset($array[Resources::XTAG_NAMESPACE]);
- self::_arr2xml($xmlw, $array, $defaultTag);
-
- $xmlw->endElement();
-
- return $xmlw->outputMemory(true);
- }
-
- /**
- * Unserializes given serialized string.
- *
- * @param string $serialized The serialized object in string representation.
- *
- * @return array
- */
- public function unserialize($serialized)
- {
- $sxml = new \SimpleXMLElement($serialized);
-
- return $this->_sxml2arr($sxml);
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ServiceBusSettings.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ServiceBusSettings.php
deleted file mode 100644
index ea9ed734..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ServiceBusSettings.php
+++ /dev/null
@@ -1,267 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-use WindowsAzure\Common\Internal\Resources;
-
-/**
- * Represents the settings used to sign and access a request against the service
- * bus.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ServiceBusSettings extends ServiceSettings
-{
- /**
- * @var string
- */
- private $_serviceBusEndpointUri;
-
- /**
- * @var string
- */
- private $_wrapEndpointUri;
-
- /**
- * @var string
- */
- private $_wrapName;
-
- /**
- * @var string
- */
- private $_wrapPassword;
-
- /**
- * @var string
- */
- private $_namespace;
-
- /**
- * Validator for the SharedSecretValue setting. It has to be provided.
- *
- * @var array
- */
- private static $_wrapPasswordSetting;
-
- /**
- * Validator for the SharedSecretIssuer setting. It has to be provided.
- *
- * @var array
- */
- private static $_wrapNameSetting;
-
- /**
- * Validator for the Endpoint setting. Must be a valid Uri.
- *
- * @var array
- */
- private static $_serviceBusEndpointSetting;
-
- /**
- * Validator for the StsEndpoint setting. Must be a valid Uri.
- *
- * @var array
- */
- private static $_wrapEndpointUriSetting;
-
- /**
- * @var boolean
- */
- protected static $isInitialized = false;
-
- /**
- * Holds the expected setting keys.
- *
- * @var array
- */
- protected static $validSettingKeys = array();
-
- /**
- * Initializes static members of the class.
- *
- * @return none
- */
- protected static function init()
- {
- self::$_serviceBusEndpointSetting = self::settingWithFunc(
- Resources::SERVICE_BUS_ENDPOINT_NAME,
- Validate::getIsValidUri()
- );
-
- self::$_wrapNameSetting = self::setting(
- Resources::SHARED_SECRET_ISSUER_NAME
- );
-
- self::$_wrapPasswordSetting = self::setting(
- Resources::SHARED_SECRET_VALUE_NAME
- );
-
- self::$_wrapEndpointUriSetting = self::settingWithFunc(
- Resources::STS_ENDPOINT_NAME,
- Validate::getIsValidUri()
- );
-
- self::$validSettingKeys[] = Resources::SERVICE_BUS_ENDPOINT_NAME;
- self::$validSettingKeys[] = Resources::SHARED_SECRET_ISSUER_NAME;
- self::$validSettingKeys[] = Resources::SHARED_SECRET_VALUE_NAME;
- self::$validSettingKeys[] = Resources::STS_ENDPOINT_NAME;
- }
-
- /**
- * Creates new Service Bus settings instance.
- *
- * @param string $serviceBusEndpoint The Service Bus endpoint uri.
- * @param string $namespace The service namespace.
- * @param string $wrapName The wrap name.
- * @param string $wrapPassword The wrap password.
- */
- public function __construct(
- $serviceBusEndpoint,
- $namespace,
- $wrapEndpointUri,
- $wrapName,
- $wrapPassword
- ) {
- $this->_namespace = $namespace;
- $this->_serviceBusEndpointUri = $serviceBusEndpoint;
- $this->_wrapEndpointUri = $wrapEndpointUri;
- $this->_wrapName = $wrapName;
- $this->_wrapPassword = $wrapPassword;
- }
-
- /**
- * Creates a ServiceBusSettings object from the given connection string.
- *
- * @param string $connectionString The storage settings connection string.
- *
- * @return ServiceBusSettings
- */
- public static function createFromConnectionString($connectionString)
- {
- $tokenizedSettings = self::parseAndValidateKeys($connectionString);
-
- $matchedSpecs = self::matchedSpecification(
- $tokenizedSettings,
- self::allRequired(
- self::$_serviceBusEndpointSetting,
- self::$_wrapNameSetting,
- self::$_wrapPasswordSetting
- ),
- self::optional(self::$_wrapEndpointUriSetting)
- );
-
- if ($matchedSpecs) {
- $endpoint = Utilities::tryGetValueInsensitive(
- Resources::SERVICE_BUS_ENDPOINT_NAME,
- $tokenizedSettings
- );
-
- // Parse the namespace part from the URI
- $namespace = explode('.', parse_url($endpoint, PHP_URL_HOST));
- $namespace = $namespace[0];
- $wrapEndpointUri = Utilities::tryGetValueInsensitive(
- Resources::STS_ENDPOINT_NAME,
- $tokenizedSettings,
- sprintf(Resources::WRAP_ENDPOINT_URI_FORMAT, $namespace)
- );
- $issuerName = Utilities::tryGetValueInsensitive(
- Resources::SHARED_SECRET_ISSUER_NAME,
- $tokenizedSettings
- );
- $issuerValue = Utilities::tryGetValueInsensitive(
- Resources::SHARED_SECRET_VALUE_NAME,
- $tokenizedSettings
- );
-
- return new ServiceBusSettings(
- $endpoint,
- $namespace,
- $wrapEndpointUri,
- $issuerName,
- $issuerValue
- );
- }
-
- self::noMatch($connectionString);
- }
-
- /**
- * Gets the Service Bus endpoint URI.
- *
- * @return string
- */
- public function getServiceBusEndpointUri()
- {
- return $this->_serviceBusEndpointUri;
- }
-
- /**
- * Gets the wrap endpoint URI.
- *
- * @return string
- */
- public function getWrapEndpointUri()
- {
- return $this->_wrapEndpointUri;
- }
-
- /**
- * Gets the wrap name.
- *
- * @return string
- */
- public function getWrapName()
- {
- return $this->_wrapName;
- }
-
- /**
- * Gets the wrap password.
- *
- * @return string
- */
- public function getWrapPassword()
- {
- return $this->_wrapPassword;
- }
-
- /**
- * Gets the namespace name.
- *
- * @return string
- */
- public function getNamespace()
- {
- return $this->_namespace;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ServiceManagementSettings.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ServiceManagementSettings.php
deleted file mode 100644
index d5e9836f..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ServiceManagementSettings.php
+++ /dev/null
@@ -1,207 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-use WindowsAzure\Common\Internal\Resources;
-
-/**
- * Represents the settings used to sign and access a request against the service
- * management. For more information about service management connection strings check
- * this page: http://msdn.microsoft.com/en-us/library/windowsazure/gg466228.aspx
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ServiceManagementSettings extends ServiceSettings
-{
- /**
- * @var string
- */
- private $_subscriptionId;
-
- /**
- * @var string
- */
- private $_certificatePath;
-
- /**
- * @var string
- */
- private $_endpointUri;
-
- /**
- * Validator for the ServiceManagementEndpoint setting. Must be a valid Uri.
- *
- * @var array
- */
- private static $_endpointSetting;
-
- /**
- * Validator for the CertificatePath setting. It has to be provided.
- *
- * @var array
- */
- private static $_certificatePathSetting;
-
- /**
- * Validator for the SubscriptionId setting. It has to be provided.
- *
- * @var array
- */
- private static $_subscriptionIdSetting;
-
- /**
- * @var boolean
- */
- protected static $isInitialized = false;
-
- /**
- * Holds the expected setting keys.
- *
- * @var array
- */
- protected static $validSettingKeys = array();
-
- /**
- * Initializes static members of the class.
- *
- * @return none
- */
- protected static function init()
- {
- self::$_endpointSetting = self::settingWithFunc(
- Resources::SERVICE_MANAGEMENT_ENDPOINT_NAME,
- Validate::getIsValidUri()
- );
-
- self::$_certificatePathSetting = self::setting(
- Resources::CERTIFICATE_PATH_NAME
- );
-
- self::$_subscriptionIdSetting = self::setting(
- Resources::SUBSCRIPTION_ID_NAME
- );
-
- self::$validSettingKeys[] = Resources::SUBSCRIPTION_ID_NAME;
- self::$validSettingKeys[] = Resources::CERTIFICATE_PATH_NAME;
- self::$validSettingKeys[] = Resources::SERVICE_MANAGEMENT_ENDPOINT_NAME;
- }
-
- /**
- * Creates new service management settings instance.
- *
- * @param string $subscriptionId The user provided subscription id.
- * @param string $endpointUri The service management endpoint uri.
- * @param string $certificatePath The management certificate path.
- */
- public function __construct($subscriptionId, $endpointUri, $certificatePath)
- {
- $this->_certificatePath = $certificatePath;
- $this->_endpointUri = $endpointUri;
- $this->_subscriptionId = $subscriptionId;
- }
-
- /**
- * Creates a ServiceManagementSettings object from the given connection string.
- *
- * @param string $connectionString The storage settings connection string.
- *
- * @return ServiceManagementSettings
- */
- public static function createFromConnectionString($connectionString)
- {
- $tokenizedSettings = self::parseAndValidateKeys($connectionString);
-
- $matchedSpecs = self::matchedSpecification(
- $tokenizedSettings,
- self::allRequired(
- self::$_subscriptionIdSetting,
- self::$_certificatePathSetting
- ),
- self::optional(
- self::$_endpointSetting
- )
- );
- if ($matchedSpecs) {
- $endpointUri = Utilities::tryGetValueInsensitive(
- Resources::SERVICE_MANAGEMENT_ENDPOINT_NAME,
- $tokenizedSettings,
- Resources::SERVICE_MANAGEMENT_URL
- );
- $subscriptionId = Utilities::tryGetValueInsensitive(
- Resources::SUBSCRIPTION_ID_NAME,
- $tokenizedSettings
- );
- $certificatePath = Utilities::tryGetValueInsensitive(
- Resources::CERTIFICATE_PATH_NAME,
- $tokenizedSettings
- );
-
- return new ServiceManagementSettings(
- $subscriptionId,
- $endpointUri,
- $certificatePath
- );
- }
-
- self::noMatch($connectionString);
- }
-
- /**
- * Gets service management endpoint uri.
- *
- * @return string
- */
- public function getEndpointUri()
- {
- return $this->_endpointUri;
- }
-
- /**
- * Gets the subscription id.
- *
- * @return string
- */
- public function getSubscriptionId()
- {
- return $this->_subscriptionId;
- }
-
- /**
- * Gets the certificate path.
- *
- * @return string
- */
- public function getCertificatePath()
- {
- return $this->_certificatePath;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ServiceRestProxy.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ServiceRestProxy.php
deleted file mode 100644
index 44f77ab1..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ServiceRestProxy.php
+++ /dev/null
@@ -1,347 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-use WindowsAzure\Common\Internal\Resources;
-use WindowsAzure\Common\Internal\Validate;
-use WindowsAzure\Common\Internal\Utilities;
-use WindowsAzure\Common\Internal\RestProxy;
-use WindowsAzure\Common\Internal\Http\Url;
-use WindowsAzure\Common\Internal\Http\HttpCallContext;
-
-/**
- * Base class for all services rest proxies.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class ServiceRestProxy extends RestProxy
-{
- /**
- * @var string
- */
- private $_accountName;
-
- /**
- * Initializes new ServiceRestProxy object.
- *
- * @param IHttpClient $channel The HTTP client used to send HTTP requests.
- * @param string $uri The storage account uri.
- * @param string $accountName The name of the account.
- * @param ISerializer $dataSerializer The data serializer.
- */
- public function __construct($channel, $uri, $accountName, $dataSerializer)
- {
- parent::__construct($channel, $dataSerializer, $uri);
- $this->_accountName = $accountName;
- }
-
- /**
- * Gets the account name.
- *
- * @return string
- */
- public function getAccountName()
- {
- return $this->_accountName;
- }
-
- /**
- * Sends HTTP request with the specified HTTP call context.
- *
- * @param WindowsAzure\Common\Internal\Http\HttpCallContext $context The HTTP
- * call context.
- *
- * @return \HTTP_Request2_Response
- */
- protected function sendContext($context)
- {
- $context->setUri($this->getUri());
- return parent::sendContext($context);
- }
-
- /**
- * Sends HTTP request with the specified parameters.
- *
- * @param string $method HTTP method used in the request
- * @param array $headers HTTP headers.
- * @param array $queryParams URL query parameters.
- * @param array $postParameters The HTTP POST parameters.
- * @param string $path URL path
- * @param int $statusCode Expected status code received in the response
- * @param string $body Request body
- *
- * @return \HTTP_Request2_Response
- */
- protected function send(
- $method,
- $headers,
- $queryParams,
- $postParameters,
- $path,
- $statusCode,
- $body = Resources::EMPTY_STRING
- ) {
- $context = new HttpCallContext();
- $context->setBody($body);
- $context->setHeaders($headers);
- $context->setMethod($method);
- $context->setPath($path);
- $context->setQueryParameters($queryParams);
- $context->setPostParameters($postParameters);
-
- if (is_array($statusCode)) {
- $context->setStatusCodes($statusCode);
- } else {
- $context->addStatusCode($statusCode);
- }
-
- return $this->sendContext($context);
- }
-
-
- /**
- * Adds optional header to headers if set
- *
- * @param array $headers The array of request headers.
- * @param AccessCondition $accessCondition The access condition object.
- *
- * @return array
- */
- public function addOptionalAccessConditionHeader($headers, $accessCondition)
- {
- if (!is_null($accessCondition)) {
- $header = $accessCondition->getHeader();
-
- if ($header != Resources::EMPTY_STRING) {
- $value = $accessCondition->getValue();
- if ($value instanceof \DateTime) {
- $value = gmdate(
- Resources::AZURE_DATE_FORMAT,
- $value->getTimestamp()
- );
- }
- $headers[$header] = $value;
- }
- }
-
- return $headers;
- }
-
- /**
- * Adds optional header to headers if set
- *
- * @param array $headers The array of request headers.
- * @param AccessCondition $accessCondition The access condition object.
- *
- * @return array
- */
- public function addOptionalSourceAccessConditionHeader(
- $headers,
- $accessCondition
- ) {
- if (!is_null($accessCondition)) {
- $header = $accessCondition->getHeader();
- $headerName = null;
- if (!empty($header)) {
- switch($header) {
- case Resources::IF_MATCH:
- $headerName = Resources::X_MS_SOURCE_IF_MATCH;
- break;
-
- case Resources::IF_UNMODIFIED_SINCE:
- $headerName = Resources::X_MS_SOURCE_IF_UNMODIFIED_SINCE;
- break;
-
- case Resources::IF_MODIFIED_SINCE:
- $headerName = Resources::X_MS_SOURCE_IF_MODIFIED_SINCE;
- break;
-
- case Resources::IF_NONE_MATCH:
- $headerName = Resources::X_MS_SOURCE_IF_NONE_MATCH;
- break;
-
- default:
- throw new \Exception(Resources::INVALID_ACH_MSG);
- break;
- }
- }
- $value = $accessCondition->getValue();
- if ($value instanceof \DateTime) {
- $value = gmdate(
- Resources::AZURE_DATE_FORMAT,
- $value->getTimestamp()
- );
- }
-
- $this->addOptionalHeader($headers, $headerName, $value);
- }
-
- return $headers;
- }
-
- /**
- * Adds HTTP POST parameter to the specified
- *
- * @param array $postParameters An array of HTTP POST parameters.
- * @param string $key The key of a HTTP POST parameter.
- * @param string $value the value of a HTTP POST parameter.
- *
- * @return array
- */
- public function addPostParameter(
- $postParameters,
- $key,
- $value
- ) {
- Validate::isArray($postParameters, 'postParameters');
- $postParameters[$key] = $value;
- return $postParameters;
- }
-
- /**
- * Groups set of values into one value separated with Resources::SEPARATOR
- *
- * @param array $values array of values to be grouped.
- *
- * @return string
- */
- public function groupQueryValues($values)
- {
- Validate::isArray($values, 'values');
- $joined = Resources::EMPTY_STRING;
-
- foreach ($values as $value) {
- if (!is_null($value) && !empty($value)) {
- $joined .= $value . Resources::SEPARATOR;
- }
- }
-
- return trim($joined, Resources::SEPARATOR);
- }
-
- /**
- * Adds metadata elements to headers array
- *
- * @param array $headers HTTP request headers
- * @param array $metadata user specified metadata
- *
- * @return array
- */
- protected function addMetadataHeaders($headers, $metadata)
- {
- $this->validateMetadata($metadata);
-
- $metadata = $this->generateMetadataHeaders($metadata);
- $headers = array_merge($headers, $metadata);
-
- return $headers;
- }
-
- /**
- * Generates metadata headers by prefixing each element with 'x-ms-meta'.
- *
- * @param array $metadata user defined metadata.
- *
- * @return array.
- */
- public function generateMetadataHeaders($metadata)
- {
- $metadataHeaders = array();
-
- if (is_array($metadata) && !is_null($metadata)) {
- foreach ($metadata as $key => $value) {
- $headerName = Resources::X_MS_META_HEADER_PREFIX;
- if ( strpos($value, "\r") !== false
- || strpos($value, "\n") !== false
- ) {
- throw new \InvalidArgumentException(Resources::INVALID_META_MSG);
- }
-
- $headerName .= strtolower($key);
- $metadataHeaders[$headerName] = $value;
- }
- }
-
- return $metadataHeaders;
- }
-
- /**
- * Gets metadata array by parsing them from given headers.
- *
- * @param array $headers HTTP headers containing metadata elements.
- *
- * @return array.
- */
- public function getMetadataArray($headers)
- {
- $metadata = array();
- foreach ($headers as $key => $value) {
- $isMetadataHeader = Utilities::startsWith(
- strtolower($key),
- Resources::X_MS_META_HEADER_PREFIX
- );
-
- if ($isMetadataHeader) {
- $MetadataName = str_replace(
- Resources::X_MS_META_HEADER_PREFIX,
- Resources::EMPTY_STRING,
- strtolower($key)
- );
-
- $metadata[$MetadataName] = $value;
- }
- }
-
- return $metadata;
- }
-
- /**
- * Validates the provided metadata array.
- *
- * @param mix $metadata The metadata array.
- *
- * @return none
- */
- public function validateMetadata($metadata)
- {
- if (!is_null($metadata)) {
- Validate::isArray($metadata, 'metadata');
- } else {
- $metadata = array();
- }
-
- foreach ($metadata as $key => $value) {
- Validate::isString($key, 'metadata key');
- Validate::isString($value, 'metadata value');
- }
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ServiceSettings.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ServiceSettings.php
deleted file mode 100644
index 29355a83..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/ServiceSettings.php
+++ /dev/null
@@ -1,287 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-use WindowsAzure\Common\Internal\Resources;
-
-/**
- * Base class for all REST services settings.
- *
- * Derived classes must implement the following members:
- * 1- $isInitialized: A static property that indicates whether the class's static
- * members have been initialized.
- * 2- init(): A protected static method that initializes static members.
- * 3- $validSettingKeys: A static property that contains valid setting keys for this
- * service.
- * 4- createFromConnectionString($connectionString): A public static function that
- * takes a connection string and returns the created settings object.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-abstract class ServiceSettings
-{
- /**
- * Throws an exception if the connection string format does not match any of the
- * available formats.
- *
- * @param type $connectionString The invalid formatted connection string.
- *
- * @return none
- *
- * @throws \RuntimeException
- */
- protected static function noMatch($connectionString)
- {
- throw new \RuntimeException(
- sprintf(Resources::MISSING_CONNECTION_STRING_SETTINGS, $connectionString)
- );
- }
-
- /**
- * Parses the connection string and then validate that the parsed keys belong to
- * the $validSettingKeys
- *
- * @param string $connectionString The user provided connection string.
- *
- * @return array The tokenized connection string keys.
- *
- * @throws \RuntimeException
- */
- protected static function parseAndValidateKeys($connectionString)
- {
- // Initialize the static values if they are not initialized yet.
- if (!static::$isInitialized) {
- static::init();
- static::$isInitialized = true;
- }
-
- $tokenizedSettings = ConnectionStringParser::parseConnectionString(
- 'connectionString',
- $connectionString
- );
-
- // Assure that all given keys are valid.
- foreach ($tokenizedSettings as $key => $value) {
- if (!Utilities::inArrayInsensitive($key, static::$validSettingKeys) ) {
- throw new \RuntimeException(
- sprintf(
- Resources::INVALID_CONNECTION_STRING_SETTING_KEY,
- $key,
- implode("\n", static::$validSettingKeys)
- )
- );
- }
- }
-
- return $tokenizedSettings;
- }
-
- /**
- * Creates an anonymous function that acts as predicate.
- *
- * @param array $requirements The array of conditions to satisfy.
- * @param boolean $isRequired Either these conditions are all required or all
- * optional.
- * @param boolean $atLeastOne Indicates that at least one requirement must
- * succeed.
- *
- * @return callable
- */
- protected static function getValidator($requirements, $isRequired, $atLeastOne)
- {
- // @codingStandardsIgnoreStart
-
- return function ($userSettings)
- use ($requirements, $isRequired, $atLeastOne) {
- $oneFound = false;
- $result = array_change_key_case($userSettings);
- foreach ($requirements as $requirement) {
- $settingName = strtolower($requirement[Resources::SETTING_NAME]);
-
- // Check if the setting name exists in the provided user settings.
- if (array_key_exists($settingName, $result)) {
- // Check if the provided user setting value is valid.
- $validationFunc = $requirement[Resources::SETTING_CONSTRAINT];
- $isValid = $validationFunc($result[$settingName]);
-
- if ($isValid) {
- // Remove the setting as indicator for successful validation.
- unset($result[$settingName]);
- $oneFound = true;
- }
- } else {
- // If required then fail because the setting does not exist
- if ($isRequired) {
- return null;
- }
- }
- }
-
- if ($atLeastOne) {
- // At least one requirement must succeed, otherwise fail.
- return $oneFound ? $result : null;
- } else {
- return $result;
- }
- };
-
- // @codingStandardsIgnoreEnd
- }
-
- /**
- * Creates at lease one succeed predicate for the provided list of requirements.
- *
- * @return callable
- */
- protected static function atLeastOne()
- {
- $allSettings = func_get_args();
- return self::getValidator($allSettings, false, true);
- }
-
- /**
- * Creates an optional predicate for the provided list of requirements.
- *
- * @return callable
- */
- protected static function optional()
- {
- $optionalSettings = func_get_args();
- return self::getValidator($optionalSettings, false, false);
- }
-
- /**
- * Creates an required predicate for the provided list of requirements.
- *
- * @return callable
- */
- protected static function allRequired()
- {
- $requiredSettings = func_get_args();
- return self::getValidator($requiredSettings, true, false);
- }
-
- /**
- * Creates a setting value condition using the passed predicate.
- *
- * @param string $name The setting key name.
- * @param callable $predicate The setting value predicate.
- *
- * @return array
- */
- protected static function settingWithFunc($name, $predicate)
- {
- $requirement = array();
- $requirement[Resources::SETTING_NAME] = $name;
- $requirement[Resources::SETTING_CONSTRAINT] = $predicate;
-
- return $requirement;
- }
-
- /**
- * Creates a setting value condition that validates it is one of the
- * passed valid values.
- *
- * @param string $name The setting key name.
- *
- * @return array
- */
- protected static function setting($name)
- {
- $validValues = func_get_args();
-
- // Remove $name argument.
- unset($validValues[0]);
-
- $validValuesCount = func_num_args();
-
- $predicate = function ($settingValue) use ($validValuesCount, $validValues) {
- if (empty($validValues)) {
- // No restrictions, succeed,
- return true;
- }
-
- // Check to find if the $settingValue is valid or not. The index must
- // start from 1 as unset deletes the value but does not update the array
- // indecies.
- for ($index = 1; $index < $validValuesCount; $index++) {
- if ($settingValue == $validValues[$index]) {
- // $settingValue is found in valid values set, succeed.
- return true;
- }
- }
-
- throw new \RuntimeException(
- sprintf(
- Resources::INVALID_CONFIG_VALUE,
- $settingValue,
- implode("\n", $validValues)
- )
- );
-
- // $settingValue is missing in valid values set, fail.
- return false;
- };
-
- return self::settingWithFunc($name, $predicate);
- }
-
- /**
- * Tests to see if a given list of settings matches a set of filters exactly.
- *
- * @param array $settings The settings to check.
- *
- * @return boolean If any filter returns null, false. If there are any settings
- * left over after all filters are processed, false. Otherwise true.
- */
- protected static function matchedSpecification($settings)
- {
- $constraints = func_get_args();
-
- // Remove first element which corresponds to $settings
- unset($constraints[0]);
-
- foreach ($constraints as $constraint) {
- $remainingSettings = $constraint($settings);
-
- if (is_null($remainingSettings)) {
- return false;
- } else {
- $settings = $remainingSettings;
- }
- }
-
- if (empty($settings)) {
- return true;
- }
-
- return false;
- }
-}
\ No newline at end of file
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/StorageServiceSettings.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/StorageServiceSettings.php
deleted file mode 100644
index 818399d7..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/StorageServiceSettings.php
+++ /dev/null
@@ -1,487 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-use WindowsAzure\Common\Internal\ConnectionStringParser;
-use WindowsAzure\Common\Internal\Resources;
-
-/**
- * Represents the settings used to sign and access a request against the storage
- * service. For more information about storage service connection strings check this
- * page: http://msdn.microsoft.com/en-us/library/ee758697
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class StorageServiceSettings extends ServiceSettings
-{
- /**
- * The storage service name.
- *
- * @var string
- */
- private $_name;
-
- /**
- * A base64 representation.
- *
- * @var string
- */
- private $_key;
-
- /**
- * The endpoint for the blob service.
- *
- * @var string
- */
- private $_blobEndpointUri;
-
- /**
- * The endpoint for the queue service.
- *
- * @var string
- */
- private $_queueEndpointUri;
-
- /**
- * The endpoint for the table service.
- *
- * @var string
- */
- private $_tableEndpointUri;
-
- /**
- * @var StorageServiceSettings
- */
- private static $_devStoreAccount;
-
- /**
- * Validator for the UseDevelopmentStorage setting. Must be "true".
- *
- * @var array
- */
- private static $_useDevelopmentStorageSetting;
-
- /**
- * Validator for the DevelopmentStorageProxyUri setting. Must be a valid Uri.
- *
- * @var array
- */
- private static $_developmentStorageProxyUriSetting;
-
- /**
- * Validator for the DefaultEndpointsProtocol setting. Must be either "http"
- * or "https".
- *
- * @var array
- */
- private static $_defaultEndpointsProtocolSetting;
-
- /**
- * Validator for the AccountName setting. No restrictions.
- *
- * @var array
- */
- private static $_accountNameSetting;
-
- /**
- * Validator for the AccountKey setting. Must be a valid base64 string.
- *
- * @var array
- */
- private static $_accountKeySetting;
-
- /**
- * Validator for the BlobEndpoint setting. Must be a valid Uri.
- *
- * @var array
- */
- private static $_blobEndpointSetting;
-
- /**
- * Validator for the QueueEndpoint setting. Must be a valid Uri.
- *
- * @var array
- */
- private static $_queueEndpointSetting;
-
- /**
- * Validator for the TableEndpoint setting. Must be a valid Uri.
- *
- * @var array
- */
- private static $_tableEndpointSetting;
-
- /**
- * @var boolean
- */
- protected static $isInitialized = false;
-
- /**
- * Holds the expected setting keys.
- *
- * @var array
- */
- protected static $validSettingKeys = array();
-
- /**
- * Initializes static members of the class.
- *
- * @return none
- */
- protected static function init()
- {
- self::$_useDevelopmentStorageSetting = self::setting(
- Resources::USE_DEVELOPMENT_STORAGE_NAME,
- 'true'
- );
-
- self::$_developmentStorageProxyUriSetting = self::settingWithFunc(
- Resources::DEVELOPMENT_STORAGE_PROXY_URI_NAME,
- Validate::getIsValidUri()
- );
-
- self::$_defaultEndpointsProtocolSetting = self::setting(
- Resources::DEFAULT_ENDPOINTS_PROTOCOL_NAME,
- 'http', 'https'
- );
-
- self::$_accountNameSetting = self::setting(Resources::ACCOUNT_NAME_NAME);
-
- self::$_accountKeySetting = self::settingWithFunc(
- Resources::ACCOUNT_KEY_NAME,
- // base64_decode will return false if the $key is not in base64 format.
- function ($key) {
- $isValidBase64String = base64_decode($key, true);
- if ($isValidBase64String) {
- return true;
- } else {
- throw new \RuntimeException(
- sprintf(Resources::INVALID_ACCOUNT_KEY_FORMAT, $key)
- );
- }
- }
- );
-
- self::$_blobEndpointSetting = self::settingWithFunc(
- Resources::BLOB_ENDPOINT_NAME,
- Validate::getIsValidUri()
- );
-
- self::$_queueEndpointSetting = self::settingWithFunc(
- Resources::QUEUE_ENDPOINT_NAME,
- Validate::getIsValidUri()
- );
-
- self::$_tableEndpointSetting = self::settingWithFunc(
- Resources::TABLE_ENDPOINT_NAME,
- Validate::getIsValidUri()
- );
-
- self::$validSettingKeys[] = Resources::USE_DEVELOPMENT_STORAGE_NAME;
- self::$validSettingKeys[] = Resources::DEVELOPMENT_STORAGE_PROXY_URI_NAME;
- self::$validSettingKeys[] = Resources::DEFAULT_ENDPOINTS_PROTOCOL_NAME;
- self::$validSettingKeys[] = Resources::ACCOUNT_NAME_NAME;
- self::$validSettingKeys[] = Resources::ACCOUNT_KEY_NAME;
- self::$validSettingKeys[] = Resources::BLOB_ENDPOINT_NAME;
- self::$validSettingKeys[] = Resources::QUEUE_ENDPOINT_NAME;
- self::$validSettingKeys[] = Resources::TABLE_ENDPOINT_NAME;
- }
-
- /**
- * Creates new storage service settings instance.
- *
- * @param string $name The storage service name.
- * @param string $key The storage service key.
- * @param string $blobEndpointUri The sotrage service blob endpoint.
- * @param string $queueEndpointUri The sotrage service queue endpoint.
- * @param string $tableEndpointUri The sotrage service table endpoint.
- */
- public function __construct(
- $name,
- $key,
- $blobEndpointUri,
- $queueEndpointUri,
- $tableEndpointUri
- ) {
- $this->_name = $name;
- $this->_key = $key;
- $this->_blobEndpointUri = $blobEndpointUri;
- $this->_queueEndpointUri = $queueEndpointUri;
- $this->_tableEndpointUri = $tableEndpointUri;
- }
-
- /**
- * Returns a StorageServiceSettings with development storage credentials using
- * the specified proxy Uri.
- *
- * @param string $proxyUri The proxy endpoint to use.
- *
- * @return StorageServiceSettings
- */
- private static function _getDevelopmentStorageAccount($proxyUri)
- {
- if (is_null($proxyUri)) {
- return self::developmentStorageAccount();
- }
-
- $scheme = parse_url($proxyUri, PHP_URL_SCHEME);
- $host = parse_url($proxyUri, PHP_URL_HOST);
- $prefix = $scheme . "://" . $host;
-
- return new StorageServiceSettings(
- Resources::DEV_STORE_NAME,
- Resources::DEV_STORE_KEY,
- $prefix . ':10000/devstoreaccount1/',
- $prefix . ':10001/devstoreaccount1/',
- $prefix . ':10002/devstoreaccount1/'
- );
- }
-
- /**
- * Gets a StorageServiceSettings object that references the development storage
- * account.
- *
- * @return StorageServiceSettings
- */
- public static function developmentStorageAccount()
- {
- if (is_null(self::$_devStoreAccount)) {
- self::$_devStoreAccount = self::_getDevelopmentStorageAccount(
- Resources::DEV_STORE_URI
- );
- }
-
- return self::$_devStoreAccount;
- }
-
- /**
- * Gets the default service endpoint using the specified protocol and account
- * name.
- *
- * @param array $settings The service settings.
- * @param string $dns The service DNS.
- *
- * @return string
- */
- private static function _getDefaultServiceEndpoint($settings, $dns)
- {
- $scheme = Utilities::tryGetValueInsensitive(
- Resources::DEFAULT_ENDPOINTS_PROTOCOL_NAME,
- $settings
- );
- $accountName = Utilities::tryGetValueInsensitive(
- Resources::ACCOUNT_NAME_NAME,
- $settings
- );
-
- return sprintf(Resources::SERVICE_URI_FORMAT, $scheme, $accountName, $dns);
- }
-
- /**
- * Creates StorageServiceSettings object given endpoints uri.
- *
- * @param array $settings The service settings.
- * @param string $blobEndpointUri The blob endpoint uri.
- * @param string $queueEndpointUri The queue endpoint uri.
- * @param string $tableEndpointUri The table endpoint uri.
- *
- * @return \WindowsAzure\Common\Internal\StorageServiceSettings
- */
- private static function _createStorageServiceSettings(
- $settings,
- $blobEndpointUri = null,
- $queueEndpointUri = null,
- $tableEndpointUri = null
- ) {
- $blobEndpointUri = Utilities::tryGetValueInsensitive(
- Resources::BLOB_ENDPOINT_NAME,
- $settings,
- $blobEndpointUri
- );
- $queueEndpointUri = Utilities::tryGetValueInsensitive(
- Resources::QUEUE_ENDPOINT_NAME,
- $settings,
- $queueEndpointUri
- );
- $tableEndpointUri = Utilities::tryGetValueInsensitive(
- Resources::TABLE_ENDPOINT_NAME,
- $settings,
- $tableEndpointUri
- );
- $accountName = Utilities::tryGetValueInsensitive(
- Resources::ACCOUNT_NAME_NAME,
- $settings
- );
- $accountKey = Utilities::tryGetValueInsensitive(
- Resources::ACCOUNT_KEY_NAME,
- $settings
- );
-
- return new StorageServiceSettings(
- $accountName,
- $accountKey,
- $blobEndpointUri,
- $queueEndpointUri,
- $tableEndpointUri
- );
- }
-
- /**
- * Creates a StorageServiceSettings object from the given connection string.
- *
- * @param string $connectionString The storage settings connection string.
- * @param string $endpoint Azure BLOB storage endpoint
- *
- * @return StorageServiceSettings
- */
- public static function createFromConnectionString($connectionString, $endpoint = 'blob.core.windows.net')
- {
- $tokenizedSettings = self::parseAndValidateKeys($connectionString);
-
- // Devstore case
- $matchedSpecs = self::matchedSpecification(
- $tokenizedSettings,
- self::allRequired(self::$_useDevelopmentStorageSetting),
- self::optional(self::$_developmentStorageProxyUriSetting)
- );
- if ($matchedSpecs) {
- $proxyUri = Utilities::tryGetValueInsensitive(
- Resources::DEVELOPMENT_STORAGE_PROXY_URI_NAME,
- $tokenizedSettings
- );
-
- return self::_getDevelopmentStorageAccount($proxyUri);
- }
-
- // Automatic case
- $matchedSpecs = self::matchedSpecification(
- $tokenizedSettings,
- self::allRequired(
- self::$_defaultEndpointsProtocolSetting,
- self::$_accountNameSetting,
- self::$_accountKeySetting
- ),
- self::optional(
- self::$_blobEndpointSetting,
- self::$_queueEndpointSetting,
- self::$_tableEndpointSetting
- )
- );
- if ($matchedSpecs) {
- return self::_createStorageServiceSettings(
- $tokenizedSettings,
- self::_getDefaultServiceEndpoint(
- $tokenizedSettings,
- // Changed in library from UpdraftPlus for compatibility with German Azure
- $endpoint
- ),
- self::_getDefaultServiceEndpoint(
- $tokenizedSettings,
- Resources::QUEUE_BASE_DNS_NAME
- ),
- self::_getDefaultServiceEndpoint(
- $tokenizedSettings,
- Resources::TABLE_BASE_DNS_NAME
- )
- );
- }
-
- // Explicit case
- $matchedSpecs = self::matchedSpecification(
- $tokenizedSettings,
- self::atLeastOne(
- self::$_blobEndpointSetting,
- self::$_queueEndpointSetting,
- self::$_tableEndpointSetting
- ),
- self::allRequired(
- self::$_accountNameSetting,
- self::$_accountKeySetting
- )
- );
- if ($matchedSpecs) {
- return self::_createStorageServiceSettings($tokenizedSettings);
- }
-
- self::noMatch($connectionString);
- }
-
- /**
- * Gets storage service name.
- *
- * @return string
- */
- public function getName()
- {
- return $this->_name;
- }
-
- /**
- * Gets storage service key.
- *
- * @return string
- */
- public function getKey()
- {
- return $this->_key;
- }
-
- /**
- * Gets storage service blob endpoint uri.
- *
- * @return string
- */
- public function getBlobEndpointUri()
- {
- return $this->_blobEndpointUri;
- }
-
- /**
- * Gets storage service queue endpoint uri.
- *
- * @return string
- */
- public function getQueueEndpointUri()
- {
- return $this->_queueEndpointUri;
- }
-
- /**
- * Gets storage service table endpoint uri.
- *
- * @return string
- */
- public function getTableEndpointUri()
- {
- return $this->_tableEndpointUri;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Utilities.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Utilities.php
deleted file mode 100644
index bfcca688..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Utilities.php
+++ /dev/null
@@ -1,731 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-
-/**
- * Utilities for the project
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class Utilities
-{
- /**
- * Returns the specified value of the $key passed from $array and in case that
- * this $key doesn't exist, the default value is returned.
- *
- * @param array $array The array to be used.
- * @param mix $key The array key.
- * @param mix $default The value to return if $key is not found in $array.
- *
- * @static
- *
- * @return mix
- */
- public static function tryGetValue($array, $key, $default = null)
- {
- return is_array($array) && array_key_exists($key, $array)
- ? $array[$key]
- : $default;
- }
-
- /**
- * Adds a url scheme if there is no scheme.
- *
- * @param string $url The URL.
- * @param string $scheme The scheme. By default HTTP
- *
- * @static
- *
- * @return string
- */
- public static function tryAddUrlScheme($url, $scheme = 'http')
- {
- $urlScheme = parse_url($url, PHP_URL_SCHEME);
-
- if (empty($urlScheme)) {
- $url = "$scheme://" . $url;
- }
-
- return $url;
- }
-
- /**
- * tries to get nested array with index name $key from $array.
- *
- * Returns empty array object if the value is NULL.
- *
- * @param string $key The index name.
- * @param array $array The array object.
- *
- * @static
- *
- * @return array
- */
- public static function tryGetArray($key, $array)
- {
- return Utilities::getArray(Utilities::tryGetValue($array, $key));
- }
-
- /**
- * Adds the given key/value pair into array if the value doesn't satisfy empty().
- *
- * This function just validates that the given $array is actually array. If it's
- * NULL the function treats it as array.
- *
- * @param string $key The key.
- * @param string $value The value.
- * @param array &$array The array. If NULL will be used as array.
- *
- * @static
- *
- * @return none
- */
- public static function addIfNotEmpty($key, $value, &$array)
- {
- if (!is_null($array)) {
- Validate::isArray($array, 'array');
- }
-
- if (!empty($value)) {
- $array[$key] = $value;
- }
- }
-
- /**
- * Returns the specified value of the key chain passed from $array and in case
- * that key chain doesn't exist, null is returned.
- *
- * @param array $array Array to be used.
- *
- * @static
- *
- * @return mix
- */
- public static function tryGetKeysChainValue($array)
- {
- $arguments = func_get_args();
- $numArguments = func_num_args();
-
- $currentArray = $array;
- for ($i = 1; $i < $numArguments; $i++) {
- if (is_array($currentArray)) {
- if (array_key_exists($arguments[$i], $currentArray)) {
- $currentArray = $currentArray[$arguments[$i]];
- } else {
- return null;
- }
- } else {
- return null;
- }
- }
-
- return $currentArray;
- }
-
- /**
- * Checks if the passed $string starts with $prefix
- *
- * @param string $string word to seaech in
- * @param string $prefix prefix to be matched
- * @param boolean $ignoreCase true to ignore case during the comparison;
- * otherwise, false
- *
- * @static
- *
- * @return boolean
- */
- public static function startsWith($string, $prefix, $ignoreCase = false)
- {
- if ($ignoreCase) {
- $string = strtolower($string);
- $prefix = strtolower($prefix);
- }
- return ($prefix == substr($string, 0, strlen($prefix)));
- }
-
- /**
- * Returns grouped items from passed $var
- *
- * @param array $var item to group
- *
- * @static
- *
- * @return array
- */
- public static function getArray($var)
- {
- if (is_null($var) || empty($var)) {
- return array();
- }
-
- foreach ($var as $value) {
- if ((gettype($value) == 'object')
- && (get_class($value) == 'SimpleXMLElement')
- ) {
- return (array) $var;
- } else if (!is_array($value)) {
- return array($var);
- }
-
- }
-
- return $var;
- }
-
- /**
- * Unserializes the passed $xml into array.
- *
- * @param string $xml XML to be parsed.
- *
- * @static
- *
- * @return array
- */
- public static function unserialize($xml)
- {
- $sxml = new \SimpleXMLElement($xml);
-
- return self::_sxml2arr($sxml);
- }
-
- /**
- * Converts a SimpleXML object to an Array recursively
- * ensuring all sub-elements are arrays as well.
- *
- * @param string $sxml SimpleXML object
- * @param array $arr Array into which to store results
- *
- * @static
- *
- * @return array
- */
- private static function _sxml2arr($sxml, $arr = null)
- {
- foreach ((array) $sxml as $key => $value) {
- if (is_object($value) || (is_array($value))) {
- $arr[$key] = self::_sxml2arr($value);
- } else {
- $arr[$key] = $value;
- }
- }
-
- return $arr;
- }
-
- /**
- * Serializes given array into xml. The array indices must be string to use
- * them as XML tags.
- *
- * @param array $array object to serialize represented in array.
- * @param string $rootName name of the XML root element.
- * @param string $defaultTag default tag for non-tagged elements.
- * @param string $standalone adds 'standalone' header tag, values 'yes'/'no'
- *
- * @static
- *
- * @return string
- */
- public static function serialize($array, $rootName, $defaultTag = null,
- $standalone = null
- ) {
- $xmlVersion = '1.0';
- $xmlEncoding = 'UTF-8';
-
- if (!is_array($array)) {
- return false;
- }
-
- $xmlw = new \XmlWriter();
- $xmlw->openMemory();
- $xmlw->startDocument($xmlVersion, $xmlEncoding, $standalone);
-
- $xmlw->startElement($rootName);
-
- self::_arr2xml($xmlw, $array, $defaultTag);
-
- $xmlw->endElement();
-
- return $xmlw->outputMemory(true);
- }
-
- /**
- * Takes an array and produces XML based on it.
- *
- * @param XMLWriter $xmlw XMLWriter object that was previously instanted
- * and is used for creating the XML.
- * @param array $data Array to be converted to XML
- * @param string $defaultTag Default XML tag to be used if none specified.
- *
- * @static
- *
- * @return void
- */
- private static function _arr2xml(\XMLWriter $xmlw, $data, $defaultTag = null)
- {
- foreach ($data as $key => $value) {
- if (strcmp($key, '@attributes') == 0) {
- foreach ($value as $attributeName => $attributeValue) {
- $xmlw->writeAttribute($attributeName, $attributeValue);
- }
- } else if (is_array($value)) {
- if (!is_int($key)) {
- if ($key != Resources::EMPTY_STRING) {
- $xmlw->startElement($key);
- } else {
- $xmlw->startElement($defaultTag);
- }
- }
-
- self::_arr2xml($xmlw, $value);
-
- if (!is_int($key)) {
- $xmlw->endElement();
- }
- continue;
- } else {
- $xmlw->writeElement($key, $value);
- }
- }
- }
-
- /**
- * Converts string into boolean value.
- *
- * @param string $obj boolean value in string format.
- *
- * @static
- *
- * @return bool
- */
- public static function toBoolean($obj)
- {
- return filter_var($obj, FILTER_VALIDATE_BOOLEAN);
- }
-
- /**
- * Converts string into boolean value.
- *
- * @param bool $obj boolean value to convert.
- *
- * @static
- *
- * @return string
- */
- public static function booleanToString($obj)
- {
- return $obj ? 'true' : 'false';
- }
-
- /**
- * Converts a given date string into \DateTime object
- *
- * @param string $date windows azure date ins string represntation.
- *
- * @static
- *
- * @return \DateTime
- */
- public static function rfc1123ToDateTime($date)
- {
- $timeZone = new \DateTimeZone('GMT');
- $format = Resources::AZURE_DATE_FORMAT;
-
- return \DateTime::createFromFormat($format, $date, $timeZone);
- }
-
- /**
- * Generate ISO 8601 compliant date string in UTC time zone
- *
- * @param int $timestamp The unix timestamp to convert
- * (for DateTime check date_timestamp_get).
- *
- * @static
- *
- * @return string
- */
- public static function isoDate($timestamp = null)
- {
- $tz = date_default_timezone_get();
- date_default_timezone_set('UTC');
-
- if (is_null($timestamp)) {
- $timestamp = time();
- }
-
- $returnValue = str_replace(
- '+00:00', '.0000000Z', date('c', $timestamp)
- );
- date_default_timezone_set($tz);
- return $returnValue;
- }
-
- /**
- * Converts a DateTime object into an Edm.DaeTime value in UTC timezone,
- * represented as a string.
- *
- * @param \DateTime $value The datetime value.
- *
- * @static
- *
- * @return string
- */
- public static function convertToEdmDateTime($value)
- {
- if (empty($value)) {
- return $value;
- }
-
- if (is_string($value)) {
- $value = self::convertToDateTime($value);
- }
-
- Validate::isDate($value);
-
- $cloned = clone $value;
- $cloned->setTimezone(new \DateTimeZone('UTC'));
- return str_replace('+0000', 'Z', $cloned->format(\DateTime::ISO8601));
- }
-
- /**
- * Converts a string to a \DateTime object. Returns false on failure.
- *
- * @param string $value The string value to parse.
- *
- * @static
- *
- * @return \DateTime
- */
- public static function convertToDateTime($value)
- {
- if ($value instanceof \DateTime) {
- return $value;
- }
-
- if (substr($value, -1) == 'Z') {
- $value = substr($value, 0, strlen($value) - 1);
- }
-
- return new \DateTime($value, new \DateTimeZone('UTC'));
- }
-
- /**
- * Converts string to stream handle.
- *
- * @param type $string The string contents.
- *
- * @static
- *
- * @return resource
- */
- public static function stringToStream($string)
- {
- return fopen('data://text/plain,' . urlencode($string), 'rb');
- }
-
- /**
- * Sorts an array based on given keys order.
- *
- * @param array $array The array to sort.
- * @param array $order The keys order array.
- *
- * @return array
- */
- public static function orderArray($array, $order)
- {
- $ordered = array();
-
- foreach ($order as $key) {
- if (array_key_exists($key, $array)) {
- $ordered[$key] = $array[$key];
- }
- }
-
- return $ordered;
- }
-
- /**
- * Checks if a value exists in an array. The comparison is done in a case
- * insensitive manner.
- *
- * @param string $needle The searched value.
- * @param array $haystack The array.
- *
- * @static
- *
- * @return boolean
- */
- public static function inArrayInsensitive($needle, $haystack)
- {
- return in_array(strtolower($needle), array_map('strtolower', $haystack));
- }
-
- /**
- * Checks if the given key exists in the array. The comparison is done in a case
- * insensitive manner.
- *
- * @param string $key The value to check.
- * @param array $search The array with keys to check.
- *
- * @static
- *
- * @return boolean
- */
- public static function arrayKeyExistsInsensitive($key, $search)
- {
- return array_key_exists(strtolower($key), array_change_key_case($search));
- }
-
- /**
- * Returns the specified value of the $key passed from $array and in case that
- * this $key doesn't exist, the default value is returned. The key matching is
- * done in a case insensitive manner.
- *
- * @param string $key The array key.
- * @param array $haystack The array to be used.
- * @param mix $default The value to return if $key is not found in $array.
- *
- * @static
- *
- * @return mix
- */
- public static function tryGetValueInsensitive($key, $haystack, $default = null)
- {
- $array = array_change_key_case($haystack);
- return Utilities::tryGetValue($array, strtolower($key), $default);
- }
-
- /**
- * Returns a string representation of a version 4 GUID, which uses random
- * numbers.There are 6 reserved bits, and the GUIDs have this format:
- * xxxxxxxx-xxxx-4xxx-[8|9|a|b]xxx-xxxxxxxxxxxx
- * where 'x' is a hexadecimal digit, 0-9a-f.
- *
- * See http://tools.ietf.org/html/rfc4122 for more information.
- *
- * Note: This function is available on all platforms, while the
- * com_create_guid() is only available for Windows.
- *
- * @static
- *
- * @return string A new GUID.
- */
- public static function getGuid()
- {
- // @codingStandardsIgnoreStart
-
- return sprintf(
- '%04x%04x-%04x-%04x-%02x%02x-%04x%04x%04x',
- mt_rand(0, 65535),
- mt_rand(0, 65535), // 32 bits for "time_low"
- mt_rand(0, 65535), // 16 bits for "time_mid"
- mt_rand(0, 4096) + 16384, // 16 bits for "time_hi_and_version", with
- // the most significant 4 bits being 0100
- // to indicate randomly generated version
- mt_rand(0, 64) + 128, // 8 bits for "clock_seq_hi", with
- // the most significant 2 bits being 10,
- // required by version 4 GUIDs.
- mt_rand(0, 256), // 8 bits for "clock_seq_low"
- mt_rand(0, 65535), // 16 bits for "node 0" and "node 1"
- mt_rand(0, 65535), // 16 bits for "node 2" and "node 3"
- mt_rand(0, 65535) // 16 bits for "node 4" and "node 5"
- );
-
- // @codingStandardsIgnoreEnd
- }
-
- /**
- * Creates a list of objects of type $class from the provided array using static
- * create method.
- *
- * @param array $parsed The object in array representation
- * @param string $class The class name. Must have static method create.
- *
- * @static
- *
- * @return array
- */
- public static function createInstanceList($parsed, $class)
- {
- $list = array();
-
- foreach ($parsed as $value) {
- // We don't use this SDK on PHP 5.2
- // @codingStandardsIgnoreLine
- $list[] = $class::create($value);
- }
-
- return $list;
- }
-
- /**
- * Takes a string and return if it ends with the specified character/string.
- *
- * @param string $haystack The string to search in.
- * @param string $needle postfix to match.
- * @param boolean $ignoreCase Set true to ignore case during the comparison;
- * otherwise, false
- *
- * @static
- *
- * @return boolean
- */
- public static function endsWith($haystack, $needle, $ignoreCase = false)
- {
- if ($ignoreCase) {
- $haystack = strtolower($haystack);
- $needle = strtolower($needle);
- }
- $length = strlen($needle);
- if ($length == 0) {
- return true;
- }
-
- return (substr($haystack, -$length) === $needle);
- }
-
- /**
- * Get id from entity object or string.
- * If entity is object than validate type and return $entity->$method()
- * If entity is string than return this string
- *
- * @param object|string $entity Entity with id property
- * @param string $type Entity type to validate
- * @param string $method Methods that gets id (getId by default)
- *
- * @return string
- */
- public static function getEntityId($entity, $type, $method = 'getId')
- {
- if (is_string($entity)) {
- return $entity;
- } else {
- Validate::isA($entity, $type, 'entity');
- Validate::methodExists($entity, $method, $type);
-
- return $entity->$method();
- }
- }
-
- /**
- * Generate a pseudo-random string of bytes using a cryptographically strong
- * algorithm.
- *
- * @param int $length Length of the string in bytes
- *
- * @return string|boolean Generated string of bytes on success, or FALSE on
- * failure.
- */
- public static function generateCryptoKey($length)
- {
- return openssl_random_pseudo_bytes($length);
- }
-
-
- /**
- * Encrypts $data with CTR encryption
- *
- * @param string $data Data to be encrypted
- * @param string $key AES Encryption key
- * @param string $initializationVector Initialization vector
- *
- * We ignore it for standards purposes because the function is apparently nowhere called
- * @codingStandardsIgnoreStart
- *
- * @return string Encrypted data
- */
- public static function ctrCrypt($data, $key, $initializationVector)
- {
- error_log("WindowsAzure\Common\Internal\Utilities::ctrCrypt called - code path thought to be impossible; linting needs re-enabling");
-
- Validate::isString($data, 'data');
- Validate::isString($key, 'key');
- Validate::isString($initializationVector, 'initializationVector');
-
- Validate::isTrue(
- (strlen($key) == 16 || strlen($key) == 24 || strlen($key) == 32),
- sprintf(Resources::INVALID_STRING_LENGTH, 'key', '16, 24, 32')
- );
-
- Validate::isTrue(
- (strlen($initializationVector) == 16),
- sprintf(Resources::INVALID_STRING_LENGTH, 'initializationVector', '16')
- );
-
- $blockCount = ceil(strlen($data) / 16);
-
- $ctrData = '';
- for ($i = 0; $i < $blockCount; ++$i) {
- $ctrData .= $initializationVector;
-
- // increment Initialization Vector
- $j = 15;
- do {
- $digit = ord($initializationVector[$j]) + 1;
- $initializationVector[$j] = chr($digit & 0xFF);
-
- $j--;
- } while (($digit == 0x100) && ($j >= 0));
- }
-
- $encryptCtrData = mcrypt_encrypt(
- MCRYPT_RIJNDAEL_128,
- $key,
- $ctrData,
- MCRYPT_MODE_ECB
- );
-
- return $data ^ $encryptCtrData;
- }
-
- /**
- * Convert base 256 number to decimal number.
- *
- * @codingStandardsIgnoreEnd
- *
- * @param string $number Base 256 number
- *
- * @return string Decimal number
- */
- public static function base256ToDec($number)
- {
- Validate::isString($number, 'number');
-
- $result = 0;
- $base = 1;
- for ($i = strlen($number) - 1; $i >= 0; $i--) {
- $result = bcadd($result, bcmul(ord($number[$i]), $base));
- $base = bcmul($base, 256);
- }
-
- return $result;
- }
-
-}
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Validate.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Validate.php
deleted file mode 100644
index 85a7b5b6..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Internal/Validate.php
+++ /dev/null
@@ -1,397 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Internal;
-use WindowsAzure\Common\Internal\InvalidArgumentTypeException;
-use WindowsAzure\Common\Internal\Resources;
-
-/**
- * Validates aganist a condition and throws an exception in case of failure.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Internal
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class Validate
-{
- /**
- * Throws exception if the provided variable type is not array.
- *
- * @param mix $var The variable to check.
- * @param string $name The parameter name.
- *
- * @throws InvalidArgumentTypeException.
- *
- * @return none
- */
- public static function isArray($var, $name)
- {
- if (!is_array($var)) {
- throw new InvalidArgumentTypeException(gettype(array()), $name);
- }
- }
-
- /**
- * Throws exception if the provided variable type is not string.
- *
- * @param mix $var The variable to check.
- * @param string $name The parameter name.
- *
- * @throws InvalidArgumentTypeException
- *
- * @return none
- */
- public static function isString($var, $name)
- {
- try {
- (string)$var;
- } catch (\Exception $e) {
- throw new InvalidArgumentTypeException(gettype(''), $name);
- }
- }
-
- /**
- * Throws exception if the provided variable type is not boolean.
- *
- * @param mix $var variable to check against.
- *
- * @throws InvalidArgumentTypeException
- *
- * @return none
- */
- public static function isBoolean($var)
- {
- (bool)$var;
- }
-
- /**
- * Throws exception if the provided variable is set to null.
- *
- * @param mix $var The variable to check.
- * @param string $name The parameter name.
- *
- * @throws \InvalidArgumentException
- *
- * @return none
- */
- public static function notNullOrEmpty($var, $name)
- {
- if (is_null($var) || empty($var)) {
- throw new \InvalidArgumentException(
- sprintf(Resources::NULL_OR_EMPTY_MSG, $name)
- );
- }
- }
-
- /**
- * Throws exception if the provided variable is not double.
- *
- * @param mix $var The variable to check.
- * @param string $name The parameter name.
- *
- * @throws \InvalidArgumentException
- *
- * @return none
- */
- public static function isDouble($var, $name)
- {
- if (!is_numeric($var)) {
- throw new InvalidArgumentTypeException('double', $name);
- }
- }
-
- /**
- * Throws exception if the provided variable type is not integer.
- *
- * @param mix $var The variable to check.
- * @param string $name The parameter name.
- *
- * @throws InvalidArgumentTypeException
- *
- * @return none
- */
- public static function isInteger($var, $name)
- {
- try {
- (int)$var;
- } catch (\Exception $e) {
- throw new InvalidArgumentTypeException(gettype(123), $name);
- }
- }
-
- /**
- * Returns whether the variable is an empty or null string.
- *
- * @param string $var value.
- *
- * @return boolean
- */
- public static function isNullOrEmptyString($var)
- {
- try {
- (string)$var;
- } catch (\Exception $e) {
- return false;
- }
-
- return (!isset($var) || trim($var)==='');
- }
-
- /**
- * Throws exception if the provided condition is not satisfied.
- *
- * @param bool $isSatisfied condition result.
- * @param string $failureMessage the exception message
- *
- * @throws \Exception
- *
- * @return none
- */
- public static function isTrue($isSatisfied, $failureMessage)
- {
- if (!$isSatisfied) {
- throw new \InvalidArgumentException($failureMessage);
- }
- }
-
- /**
- * Throws exception if the provided $date is not of type \DateTime
- *
- * @param mix $date variable to check against.
- *
- * @throws WindowsAzure\Common\Internal\InvalidArgumentTypeException
- *
- * @return none
- */
- public static function isDate($date)
- {
- if (gettype($date) != 'object' || get_class($date) != 'DateTime') {
- throw new InvalidArgumentTypeException('DateTime');
- }
- }
-
- /**
- * Throws exception if the provided variable is set to null.
- *
- * @param mix $var The variable to check.
- * @param string $name The parameter name.
- *
- * @throws \InvalidArgumentException
- *
- * @return none
- */
- public static function notNull($var, $name)
- {
- if (is_null($var)) {
- throw new \InvalidArgumentException(sprintf(Resources::NULL_MSG, $name));
- }
- }
-
- /**
- * Throws exception if the object is not of the specified class type.
- *
- * @param mixed $objectInstance An object that requires class type validation.
- * @param mixed $classInstance The instance of the class the the
- * object instance should be.
- * @param string $name The name of the object.
- *
- * @throws \InvalidArgumentException
- *
- * @return none
- */
- public static function isInstanceOf($objectInstance, $classInstance, $name)
- {
- Validate::notNull($classInstance, 'classInstance');
- if (is_null($objectInstance)) {
- return true;
- }
-
- $objectType = gettype($objectInstance);
- $classType = gettype($classInstance);
-
- if ($objectType === $classType) {
- return true;
- } else {
- throw new \InvalidArgumentException(
- sprintf(
- Resources::INSTANCE_TYPE_VALIDATION_MSG,
- $name,
- $objectType,
- $classType
- )
- );
- }
- }
-
- /**
- * Creates a anonymous function that check if the given uri is valid or not.
- *
- * @return callable
- */
- public static function getIsValidUri()
- {
- return function ($uri) {
- return Validate::isValidUri($uri);
- };
- }
-
- /**
- * Throws exception if the string is not of a valid uri.
- *
- * @param string $uri String to check.
- *
- * @throws \InvalidArgumentException
- *
- * @return boolean
- */
- public static function isValidUri($uri)
- {
- $isValid = filter_var($uri, FILTER_VALIDATE_URL);
-
- if ($isValid) {
- return true;
- } else {
- throw new \RuntimeException(
- sprintf(Resources::INVALID_CONFIG_URI, $uri)
- );
- }
- }
-
- /**
- * Throws exception if the provided variable type is not object.
- *
- * @param mix $var The variable to check.
- * @param string $name The parameter name.
- *
- * @throws InvalidArgumentTypeException.
- *
- * @return boolean
- */
- public static function isObject($var, $name)
- {
- if (!is_object($var)) {
- throw new InvalidArgumentTypeException('object', $name);
- }
-
- return true;
- }
-
- /**
- * Throws exception if the object is not of the specified class type.
- *
- * @param mixed $objectInstance An object that requires class type validation.
- * @param string $class The class the object instance should be.
- * @param string $name The parameter name.
- *
- * @throws \InvalidArgumentException
- *
- * @return boolean
- */
- public static function isA($objectInstance, $class, $name)
- {
- Validate::isString($class, 'class');
- Validate::notNull($objectInstance, 'objectInstance');
- Validate::isObject($objectInstance, 'objectInstance');
-
- $objectType = get_class($objectInstance);
-
- if (is_a($objectInstance, $class)) {
- return true;
- } else {
- throw new \InvalidArgumentException(
- sprintf(
- Resources::INSTANCE_TYPE_VALIDATION_MSG,
- $name,
- $objectType,
- $class
- )
- );
- }
- }
-
- /**
- * Validate if method exists in object
- *
- * @param object $objectInstance An object that requires method existing
- * validation
- * @param string $method Method name
- * @param string $name The parameter name
- *
- * @return boolean
- */
- public static function methodExists($objectInstance, $method, $name)
- {
- Validate::isString($method, 'method');
- Validate::notNull($objectInstance, 'objectInstance');
- Validate::isObject($objectInstance, 'objectInstance');
-
- if (method_exists($objectInstance, $method)) {
- return true;
- } else {
- throw new \InvalidArgumentException(
- sprintf(
- Resources::ERROR_METHOD_NOT_FOUND,
- $method,
- $name
- )
- );
- }
- }
-
- /**
- * Validate if string is date formatted
- *
- * @param string $value Value to validate
- * @param string $name Name of parameter to insert in erro message
- *
- * @throws \InvalidArgumentException
- *
- * @return boolean
- */
- public static function isDateString($value, $name)
- {
- Validate::isString($value, 'value');
-
- try {
- new \DateTime($value);
- return true;
- }
- catch (\Exception $e) {
- throw new \InvalidArgumentException(
- sprintf(
- Resources::ERROR_INVALID_DATE_STRING,
- $name,
- $value
- )
- );
- }
- }
-
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Models/GetServicePropertiesResult.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Models/GetServicePropertiesResult.php
deleted file mode 100644
index b4b89da7..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Models/GetServicePropertiesResult.php
+++ /dev/null
@@ -1,81 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Models;
-use WindowsAzure\Common\Models\ServiceProperties;
-
-/**
- * Result from calling GetQueueProperties REST wrapper.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class GetServicePropertiesResult
-{
- private $_serviceProperties;
-
- /**
- * Creates object from $parsedResponse.
- *
- * @param array $parsedResponse XML response parsed into array.
- *
- * @return WindowsAzure\Common\Models\GetServicePropertiesResult
- */
- public static function create($parsedResponse)
- {
- $result = new GetServicePropertiesResult();
- $result->_serviceProperties = ServiceProperties::create($parsedResponse);
-
- return $result;
- }
-
- /**
- * Gets service properties object.
- *
- * @return WindowsAzure\Common\Models\ServiceProperties
- */
- public function getValue()
- {
- return $this->_serviceProperties;
- }
-
- /**
- * Sets service properties object.
- *
- * @param ServiceProperties $serviceProperties object to use.
- *
- * @return none
- */
- public function setValue($serviceProperties)
- {
- $this->_serviceProperties = clone $serviceProperties;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Models/Logging.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Models/Logging.php
deleted file mode 100644
index 133fc652..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Models/Logging.php
+++ /dev/null
@@ -1,229 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Models;
-use WindowsAzure\Common\Models\RetentionPolicy;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * Holds elements of queue properties logging field.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class Logging
-{
- /**
- * The version of Storage Analytics to configure
- *
- * @var string
- */
- private $_version;
-
- /**
- * Applies only to logging configuration. Indicates whether all delete requests
- * should be logged.
- *
- * @var bool
- */
- private $_delete;
-
- /**
- * Applies only to logging configuration. Indicates whether all read requests
- * should be logged.
- *
- * @var bool.
- */
- private $_read;
-
- /**
- * Applies only to logging configuration. Indicates whether all write requests
- * should be logged.
- *
- * @var bool
- */
- private $_write;
-
- /**
- * @var WindowsAzure\Common\Models\RetentionPolicy
- */
- private $_retentionPolicy;
-
- /**
- * Creates object from $parsedResponse.
- *
- * @param array $parsedResponse XML response parsed into array.
- *
- * @return WindowsAzure\Common\Models\Logging
- */
- public static function create($parsedResponse)
- {
- $result = new Logging();
- $result->setVersion($parsedResponse['Version']);
- $result->setDelete(Utilities::toBoolean($parsedResponse['Delete']));
- $result->setRead(Utilities::toBoolean($parsedResponse['Read']));
- $result->setWrite(Utilities::toBoolean($parsedResponse['Write']));
- $result->setRetentionPolicy(
- RetentionPolicy::create($parsedResponse['RetentionPolicy'])
- );
-
- return $result;
- }
-
- /**
- * Gets retention policy
- *
- * @return WindowsAzure\Common\Models\RetentionPolicy
- *
- */
- public function getRetentionPolicy()
- {
- return $this->_retentionPolicy;
- }
-
- /**
- * Sets retention policy
- *
- * @param RetentionPolicy $policy object to use
- *
- * @return none.
- */
- public function setRetentionPolicy($policy)
- {
- $this->_retentionPolicy = $policy;
- }
-
- /**
- * Gets write
- *
- * @return bool.
- */
- public function getWrite()
- {
- return $this->_write;
- }
-
- /**
- * Sets write
- *
- * @param bool $write new value.
- *
- * @return none.
- */
- public function setWrite($write)
- {
- $this->_write = $write;
- }
-
- /**
- * Gets read
- *
- * @return bool.
- */
- public function getRead()
- {
- return $this->_read;
- }
-
- /**
- * Sets read
- *
- * @param bool $read new value.
- *
- * @return none.
- */
- public function setRead($read)
- {
- $this->_read = $read;
- }
-
- /**
- * Gets delete
- *
- * @return bool.
- */
- public function getDelete()
- {
- return $this->_delete;
- }
-
- /**
- * Sets delete
- *
- * @param bool $delete new value.
- *
- * @return none.
- */
- public function setDelete($delete)
- {
- $this->_delete = $delete;
- }
-
- /**
- * Gets version
- *
- * @return string.
- */
- public function getVersion()
- {
- return $this->_version;
- }
-
- /**
- * Sets version
- *
- * @param string $version new value.
- *
- * @return none.
- */
- public function setVersion($version)
- {
- $this->_version = $version;
- }
-
- /**
- * Converts this object to array with XML tags
- *
- * @return array.
- */
- public function toArray()
- {
- return array(
- 'Version' => $this->_version,
- 'Delete' => Utilities::booleanToString($this->_delete),
- 'Read' => Utilities::booleanToString($this->_read),
- 'Write' => Utilities::booleanToString($this->_write),
- 'RetentionPolicy' => !empty($this->_retentionPolicy)
- ? $this->_retentionPolicy->toArray()
- : null
- );
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Models/Metrics.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Models/Metrics.php
deleted file mode 100644
index 4e92ff73..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Models/Metrics.php
+++ /dev/null
@@ -1,202 +0,0 @@
-
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Models;
-use WindowsAzure\Common\Internal\Utilities;
-
-/**
- * Holds elements of queue properties metrics field.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Models
- * @author Azure PHP SDK
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: 0.4.1_2015-03
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-class Metrics
-{
- /**
- * The version of Storage Analytics to configure
- *
- * @var string
- */
- private $_version;
-
- /**
- * Indicates whether metrics is enabled for the storage service
- *
- * @var bool
- */
- private $_enabled;
-
- /**
- * Indicates whether a retention policy is enabled for the storage service
- *
- * @var bool
- */
- private $_includeAPIs;
-
- /**
- * @var WindowsAzure\Common\Models\RetentionPolicy
- */
- private $_retentionPolicy;
-
- /**
- * Creates object from $parsedResponse.
- *
- * @param array $parsedResponse XML response parsed into array.
- *
- * @return WindowsAzure\Common\Models\Metrics
- */
- public static function create($parsedResponse)
- {
- $result = new Metrics();
- $result->setVersion($parsedResponse['Version']);
- $result->setEnabled(Utilities::toBoolean($parsedResponse['Enabled']));
- if ($result->getEnabled()) {
- $result->setIncludeAPIs(
- Utilities::toBoolean($parsedResponse['IncludeAPIs'])
- );
- }
- $result->setRetentionPolicy(
- RetentionPolicy::create($parsedResponse['RetentionPolicy'])
- );
-
- return $result;
- }
-
- /**
- * Gets retention policy
- *
- * @return WindowsAzure\Common\Models\RetentionPolicy
- *
- */
- public function getRetentionPolicy()
- {
- return $this->_retentionPolicy;
- }
-
- /**
- * Sets retention policy
- *
- * @param RetentionPolicy $policy object to use
- *
- * @return none.
- */
- public function setRetentionPolicy($policy)
- {
- $this->_retentionPolicy = $policy;
- }
-
- /**
- * Gets include APIs.
- *
- * @return bool.
- */
- public function getIncludeAPIs()
- {
- return $this->_includeAPIs;
- }
-
- /**
- * Sets include APIs.
- *
- * @param $bool $includeAPIs value to use.
- *
- * @return none.
- */
- public function setIncludeAPIs($includeAPIs)
- {
- $this->_includeAPIs = $includeAPIs;
- }
-
- /**
- * Gets enabled.
- *
- * @return bool.
- */
- public function getEnabled()
- {
- return $this->_enabled;
- }
-
- /**
- * Sets enabled.
- *
- * @param bool $enabled value to use.
- *
- * @return none.
- */
- public function setEnabled($enabled)
- {
- $this->_enabled = $enabled;
- }
-
- /**
- * Gets version
- *
- * @return string.
- */
- public function getVersion()
- {
- return $this->_version;
- }
-
- /**
- * Sets version
- *
- * @param string $version new value.
- *
- * @return none.
- */
- public function setVersion($version)
- {
- $this->_version = $version;
- }
-
- /**
- * Converts this object to array with XML tags
- *
- * @return array.
- */
- public function toArray()
- {
- $array = array(
- 'Version' => $this->_version,
- 'Enabled' => Utilities::booleanToString($this->_enabled)
- );
- if ($this->_enabled) {
- $array['IncludeAPIs'] = Utilities::booleanToString($this->_includeAPIs);
- }
- $array['RetentionPolicy'] = !empty($this->_retentionPolicy)
- ? $this->_retentionPolicy->toArray()
- : null;
-
- return $array;
- }
-}
-
-
diff --git a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Models/OAuthAccessToken.php b/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Models/OAuthAccessToken.php
deleted file mode 100644
index 3f48aee4..00000000
--- a/wp-content/plugins/updraftplus/includes/WindowsAzure/Common/Models/OAuthAccessToken.php
+++ /dev/null
@@ -1,153 +0,0 @@
-
- * @copyright Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
-
-namespace WindowsAzure\Common\Models;
-use WindowsAzure\Common\Internal\Resources;
-
-/**
- * Holds OAuth access token data.
- *
- * @category Microsoft
- * @package WindowsAzure\Common\Models
- * @author Azure PHP SDK