\s*', '><', $svg );    // Remove whitespace between SVG tags.
				return $svg;
			}
			return null;
		}
		/**
		 * GET SOCIAL LINK SVG
		 * Detects the social network from a URL and returns the SVG code for its icon.
		 *
		 * @since Twenty Twenty 1.0
		 *
		 * @param string $uri The URL to retrieve SVG for.
		 */
		public static function get_social_link_svg( $uri ) {
			static $regex_map; // Only compute regex map once, for performance.
			if ( ! isset( $regex_map ) ) {
				$regex_map = array();
				/**
				 * Filters Twenty Twenty's array of domain mappings for social icons.
				 *
				 * By default, each Icon ID is matched against a .com TLD. To override this behavior,
				 * specify all the domains it covers (including the .com TLD too, if applicable).
				 *
				 * @since Twenty Twenty 1.5
				 *
				 * @param array $social_icons_map Array of default social icons.
				 */
				$map = apply_filters( 'twentytwenty_social_icons_map', self::$social_icons_map );
				/**
				 * Filters Twenty Twenty's array of social icons.
				 *
				 * @since Twenty Twenty 1.5
				 *
				 * @param array $social_icons Array of default social icons.
				 */
				$social_icons = apply_filters( 'twentytwenty_svg_icons_social', self::$social_icons );
				foreach ( array_keys( $social_icons ) as $icon ) {
					$domains            = array_key_exists( $icon, $map ) ? $map[ $icon ] : array( sprintf( '%s.com', $icon ) );
					$domains            = array_map( 'trim', $domains ); // Remove leading/trailing spaces, to prevent regex from failing to match.
					$domains            = array_map( 'preg_quote', $domains );
					$regex_map[ $icon ] = sprintf( '/(%s)/i', implode( '|', $domains ) );
				}
			}
			foreach ( $regex_map as $icon => $regex ) {
				if ( preg_match( $regex, $uri ) ) {
					return twentytwenty_get_theme_svg( $icon, 'social' );
				}
			}
			return null;
		}
		/**
		 * ICON STORAGE
		 * Store the code for all SVGs in an array.
		 *
		 * @since Twenty Twenty 1.0
		 * @var array
		 */
		public static $ui_icons = array(
			'arrow-down'         => '',
			'arrow-down-circled' => '',
			'bookmark'           => '',
			'calendar'           => '',
			'chevron-down'       => '',
			'comment'            => '',
			'cross'              => '',
			'ellipsis'           => '',
			'edit'               => '',
			'folder'             => '',
			'link'               => '',
			'search'             => '',
			'tag'                => '',
			'user'               => '',
		);
		/**
		 * Social Icons – domain mappings.
		 *
		 * By default, each Icon ID is matched against a .com TLD. To override this behavior,
		 * specify all the domains it covers (including the .com TLD too, if applicable).
		 *
		 * @since Twenty Twenty 1.0
		 * @var array
		 */
		public static $social_icons_map = array(
			'amazon'    => array(
				'amazon.com',
				'amazon.cn',
				'amazon.in',
				'amazon.fr',
				'amazon.de',
				'amazon.it',
				'amazon.nl',
				'amazon.es',
				'amazon.co',
				'amazon.ca',
			),
			'behance'   => array(
				'behance.net',
			),
			'codepen'   => array(
				'codepen.io',
			),
			'facebook'  => array(
				'facebook.com',
				'fb.me',
			),
			'feed'      => array(
				'feed',
			),
			'google'    => array(
				'g.page',
			),
			'lastfm'    => array(
				'last.fm',
			),
			'mail'      => array(
				'mailto:',
			),
			'pocket'    => array(
				'getpocket.com',
			),
			'tiktok'    => array(
				'tiktok.com',
			),
			'twitch'    => array(
				'twitch.tv',
			),
			'whatsapp'  => array(
				'wa.me',
				'whatsapp.com',
			),
			'wordpress' => array(
				'wordpress.com',
				'wordpress.org',
			),
		);
		/**
		 * Social Icons – svg sources.
		 *
		 * @since Twenty Twenty 1.0
		 * @var array
		 */
		public static $social_icons = array(
			'500px'      => '',
			'amazon'     => '',
			'bandcamp'   => '',
			'behance'    => '',
			'codepen'    => '',
			'deviantart' => '',
			'dribbble'   => '',
			'dropbox'    => '',
			'etsy'       => '',
			'facebook'   => '',
			'feed'       => '',
			'flickr'     => '',
			'foursquare' => '',
			'goodreads'  => '',
			'google'     => '',
			'github'     => '',
			'instagram'  => '',
			'lastfm'     => '',
			'linkedin'   => '',
			'mail'       => '',
			'mastodon'   => '',
			'medium'     => '',
			'meetup'     => '',
			'pinterest'  => '',
			'pocket'     => '',
			'reddit'     => '',
			'skype'      => '',
			'snapchat'   => '',
			'soundcloud' => '',
			'spotify'    => '',
			'tumblr'     => '',
			'tiktok'     => '',
			'twitch'     => '',
			'twitter'    => '',
			'vimeo'      => '',
			'vk'         => '',
			'whatsapp'   => '',
			// phpcs:disable WordPress.WP.CapitalPDangit.Misspelled
			'wordpress'  => '',
			'yelp'       => '',
			'youtube'    => '',
		);
	}
}