���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC context = new Context( $main_file ); } /** * Retrieves the plugin context object. * * @since 1.0.0 * * @return Context Plugin context. */ public function context() { return $this->context; } /** * Registers the plugin with WordPress. * * @since 1.0.0 */ public function register() { if ( $this->context->is_network_mode() ) { add_action( 'network_admin_notices', function() { ?>

not yet offer a network mode, but we’re actively working on that.', 'google-site-kit' ), array( 'strong' => array(), ) ); ?>

\WP_REST_Server::EDITABLE, 'callback' => function( \WP_REST_Request $request ) { $token = wp_generate_uuid4(); set_transient( 'googlesitekit_setup_token', $token, 5 * MINUTE_IN_SECONDS ); return new \WP_REST_Response( array( 'token' => $token ) ); }, 'permission_callback' => $can_setup, ), ) ); return $routes; } ); // Output temporary tag if set. add_action( 'wp_head', function () { $token = get_transient( 'googlesitekit_setup_token' ); if ( $token ) { printf( '', esc_attr( $token ) ); } } ); $display_site_kit_meta = function() { echo apply_filters( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped 'googlesitekit_generator', sprintf( '', esc_attr( GOOGLESITEKIT_VERSION ) ) ); }; add_action( 'wp_head', $display_site_kit_meta ); add_action( 'login_head', $display_site_kit_meta ); $options = new Core\Storage\Options( $this->context ); // Register activation flag logic outside of 'init' since it hooks into // plugin activation. $activation_flag = new Core\Util\Activation_Flag( $this->context, $options ); $activation_flag->register(); // Register uninstallation logic outside of 'init' since it hooks into // plugin uninstallation. $uninstallation = new Core\Util\Uninstallation( $this->context, $options ); $uninstallation->register(); // Initiate the plugin on 'init' for relying on current user being set. add_action( 'init', function() use ( $options, $activation_flag ) { $transients = new Core\Storage\Transients( $this->context ); $user_options = new Core\Storage\User_Options( $this->context, get_current_user_id() ); $assets = new Core\Assets\Assets( $this->context ); $survey_queue = new Core\User_Surveys\Survey_Queue( $user_options ); $survey_queue->register(); $user_input = new Core\User_Input\User_Input( $this->context, $options, $user_options, $survey_queue ); if ( Feature_Flags::enabled( 'userInput' ) ) { $user_input->register(); } $authentication = new Core\Authentication\Authentication( $this->context, $options, $user_options, $transients, $user_input ); $authentication->register(); $modules = new Core\Modules\Modules( $this->context, $options, $user_options, $authentication, $assets ); $modules->register(); $dismissals = new Core\Dismissals\Dismissals( $this->context, $user_options ); $dismissals->register(); $dismissed_items = $dismissals->get_dismissed_items(); $permissions = new Core\Permissions\Permissions( $this->context, $authentication, $modules, $user_options, $dismissed_items ); $permissions->register(); $nonces = new Core\Nonces\Nonces( $this->context ); $nonces->register(); // Assets must be registered after Modules instance is registered. $assets->register(); $screens = new Core\Admin\Screens( $this->context, $assets, $modules, $authentication ); $screens->register(); $user_surveys = new Core\User_Surveys\User_Surveys( $authentication, $user_options, $survey_queue ); $user_surveys->register(); ( new Core\Authentication\Setup( $this->context, $user_options, $authentication ) )->register(); ( new Core\Util\Reset( $this->context ) )->register(); ( new Core\Util\Reset_Persistent( $this->context ) )->register(); ( new Core\Util\Developer_Plugin_Installer( $this->context ) )->register(); ( new Core\Tracking\Tracking( $this->context, $user_options, $screens ) )->register(); ( new Core\REST_API\REST_Routes( $this->context ) )->register(); ( new Core\Util\REST_Entity_Search_Controller( $this->context ) )->register(); ( new Core\Admin_Bar\Admin_Bar( $this->context, $assets, $modules ) )->register(); ( new Core\Admin\Available_Tools() )->register(); ( new Core\Admin\Notices() )->register(); ( new Core\Admin\Pointers() )->register(); ( new Core\Admin\Dashboard( $this->context, $assets, $modules ) )->register(); ( new Core\Notifications\Notifications( $this->context, $options, $authentication ) )->register(); ( new Core\Util\Debug_Data( $this->context, $options, $user_options, $authentication, $modules, $permissions ) )->register(); ( new Core\Util\Health_Checks( $authentication ) )->register(); ( new Core\Admin\Standalone( $this->context ) )->register(); ( new Core\Util\Activation_Notice( $this->context, $activation_flag, $assets ) )->register(); ( new Core\Feature_Tours\Feature_Tours( $this->context, $user_options ) )->register(); ( new Core\Util\Migration_1_3_0( $this->context, $options, $user_options ) )->register(); ( new Core\Util\Migration_1_8_1( $this->context, $options, $user_options, $authentication ) )->register(); ( new Core\Dashboard_Sharing\Dashboard_Sharing( $this->context, $user_options ) )->register(); if ( Feature_Flags::enabled( 'userInput' ) ) { ( new Core\Key_Metrics\Key_Metrics( $this->context, $user_options, $options ) )->register(); } // If a login is happening (runs after 'init'), update current user in dependency chain. add_action( 'wp_login', function( $username, $user ) use ( $user_options ) { $user_options->switch_user( $user->ID ); }, -999, 2 ); /** * Fires when Site Kit has fully initialized. * * @since 1.0.0 */ do_action( 'googlesitekit_init' ); }, -999 ); // Register _gl parameter to be removed from the URL. add_filter( 'removable_query_args', function ( $args ) { $args[] = '_gl'; return $args; } ); // WP CLI Commands. if ( defined( 'WP_CLI' ) && WP_CLI ) { ( new Core\CLI\CLI_Commands( $this->context ) )->register(); } // Add Plugin Row Meta. ( new Core\Admin\Plugin_Row_Meta() )->register(); // Add Plugin Action Links. ( new Core\Admin\Plugin_Action_Links( $this->context ) )->register(); } /** * Retrieves the main instance of the plugin. * * @since 1.0.0 * * @return Plugin Plugin main instance. */ public static function instance() { return static::$instance; } /** * Loads the plugin main instance and initializes it. * * @since 1.0.0 * * @param string $main_file Absolute path to the plugin main file. * @return bool True if the plugin main instance could be loaded, false otherwise. */ public static function load( $main_file ) { if ( null !== static::$instance ) { return false; } if ( file_exists( GOOGLESITEKIT_PLUGIN_DIR_PATH . 'dist/config.php' ) ) { $config = include GOOGLESITEKIT_PLUGIN_DIR_PATH . 'dist/config.php'; Build_Mode::set_mode( $config['buildMode'] ); Feature_Flags::set_features( (array) $config['features'] ); } static::$instance = new static( $main_file ); static::$instance->register(); return true; } }