Version Description
Download this release
Release Info
Developer | eherman24 |
Plugin | Easy Forms for MailChimp |
Version | 6.0.5.5 |
Comparing to | |
See all releases |
Code changes from version 6.0.5.4 to 6.0.5.5
- admin/class-yikes-inc-easy-mailchimp-extender-admin.php +2979 -2979
- admin/css/yikes-inc-easy-mailchimp-extender-admin.css +3 -2
- admin/css/yikes-inc-easy-mailchimp-extender-admin.min.css +1 -2
- admin/css/yikes-inc-easy-mailchimp-migrate-option-styles.min.css +1 -2
- admin/partials/dashboard-widgets/class.list-activity-widget.php +156 -155
- includes/class-yikes-inc-easy-mailchimp-extender.php +1 -1
- public/css/yikes-inc-easy-mailchimp-checkbox-integration.min.css +1 -2
- public/css/yikes-inc-easy-mailchimp-datepicker-styles.min.css +1 -2
- public/css/yikes-inc-easy-mailchimp-extender-public.min.css +1 -2
- readme.txt +1025 -5
- yikes-inc-easy-mailchimp-extender.php +1 -1
admin/class-yikes-inc-easy-mailchimp-extender-admin.php
CHANGED
@@ -1,2979 +1,2979 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* The admin-specific functionality of the plugin.
|
4 |
-
*
|
5 |
-
* Defines the plugin name, version, and two examples hooks for how to
|
6 |
-
* enqueue the admin-specific stylesheet and JavaScript.
|
7 |
-
*
|
8 |
-
* @package Yikes_Inc_Easy_Mailchimp_Forms
|
9 |
-
* @subpackage Yikes_Inc_Easy_Mailchimp_Forms/admin
|
10 |
-
* @author YIKES Inc. <info@yikesinc.com>
|
11 |
-
*/
|
12 |
-
class Yikes_Inc_Easy_Mailchimp_Forms_Admin {
|
13 |
-
/**
|
14 |
-
* The ID of this plugin.
|
15 |
-
*
|
16 |
-
* @since 1.0.0
|
17 |
-
* @access private
|
18 |
-
* @var string $yikes_inc_easy_mailchimp_extender The ID of this plugin.
|
19 |
-
*/
|
20 |
-
private $yikes_inc_easy_mailchimp_extender;
|
21 |
-
/**
|
22 |
-
* The version of this plugin.
|
23 |
-
*
|
24 |
-
* @since 1.0.0
|
25 |
-
* @access private
|
26 |
-
* @var string $version The current version of this plugin.
|
27 |
-
*/
|
28 |
-
private $version;
|
29 |
-
/**
|
30 |
-
* Initialize the class and set its properties.
|
31 |
-
*
|
32 |
-
* @since 1.0.0
|
33 |
-
* @param string $yikes_inc_easy_mailchimp_extender The name of this plugin.
|
34 |
-
* @param string $version The version of this plugin.
|
35 |
-
*/
|
36 |
-
public function __construct( $yikes_inc_easy_mailchimp_extender, $version ) {
|
37 |
-
|
38 |
-
$this->yikes_inc_easy_mailchimp_extender = $yikes_inc_easy_mailchimp_extender;
|
39 |
-
$this->version = $version;
|
40 |
-
// check for old plugin options and migrate if exist
|
41 |
-
add_action( 'admin_menu' , array( $this , 'register_admin_pages' ) , 11 );
|
42 |
-
// check for old plugin options and migrate if exist
|
43 |
-
add_action( 'admin_init' , array( $this , 'check_for_old_yks_mc_options' ) );
|
44 |
-
// Ajax function to update new options...
|
45 |
-
add_action( 'wp_ajax_migrate_old_plugin_settings', array( $this , 'migrate_archived_options' ) );
|
46 |
-
// Ajax function to migrate our forms
|
47 |
-
add_action( 'wp_ajax_migrate_prevoious_forms', array( $this , 'migrate_previously_setup_forms' ) );
|
48 |
-
// fix menu icon spacing
|
49 |
-
add_action( 'admin_head' , array( $this , 'fix_menu_icon_spacing' ) );
|
50 |
-
// register our plugin settings
|
51 |
-
add_action( 'admin_init', array( $this , 'yikes_easy_mc_settings_init' ) );
|
52 |
-
// plugin redirect on activation
|
53 |
-
add_action( 'admin_init' , array( $this , 'yikes_easy_mc_activation_redirect' ) );
|
54 |
-
// Include Third Party Extensions
|
55 |
-
include_once( YIKES_MC_PATH . 'includes/third-party-integrations/third-party-init.php' );
|
56 |
-
// Include our dashboard widget class
|
57 |
-
include_once( YIKES_MC_PATH . 'admin/partials/dashboard-widgets/class.list-activity-widget.php' );
|
58 |
-
// Include our front end widget class
|
59 |
-
include_once( YIKES_MC_PATH . 'admin/partials/front-end-widgets/front-end-widget-form.php' );
|
60 |
-
// Include our ajax processing class
|
61 |
-
include_once( YIKES_MC_PATH . 'admin/partials/ajax/class.ajax.php' );
|
62 |
-
// load up our helper class
|
63 |
-
add_action( 'admin_init' , array( $this , 'yikes_mailchimp_load_helper_class' ) );
|
64 |
-
// process the subscriber count shortcode in form descriptions
|
65 |
-
add_action( 'yikes-mailchimp-form-description', array( $this, 'process_subscriber_count_shortcode_in_form_descriptions' ), 10, 2 );
|
66 |
-
/***********************/
|
67 |
-
/** Create A Form **/
|
68 |
-
/**********************/
|
69 |
-
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-create-form' ) {
|
70 |
-
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_create_form' ) );
|
71 |
-
}
|
72 |
-
/***********************/
|
73 |
-
/** Delete A Form **/
|
74 |
-
/**********************/
|
75 |
-
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-delete-form' ) {
|
76 |
-
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_delete_form' ) );
|
77 |
-
}
|
78 |
-
/**********************************/
|
79 |
-
/** Duplicate/Clone A Form **/
|
80 |
-
/********************************/
|
81 |
-
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-duplicate-form' ) {
|
82 |
-
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_duplicate_form' ) );
|
83 |
-
}
|
84 |
-
/*************************************/
|
85 |
-
/** Reset Form Impression Stats **/
|
86 |
-
/***********************************/
|
87 |
-
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-reset-stats' ) {
|
88 |
-
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_reset_impression_stats' ) );
|
89 |
-
}
|
90 |
-
/**********************************/
|
91 |
-
/** Update A Form **/
|
92 |
-
/********************************/
|
93 |
-
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-update-form' ) {
|
94 |
-
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_update_form' ) );
|
95 |
-
}
|
96 |
-
/**************************************************/
|
97 |
-
/** Clear Store MailChimp Transient Data **/
|
98 |
-
/*************************************************/
|
99 |
-
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-clear-transient-data' ) {
|
100 |
-
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_clear_transient_data' ) );
|
101 |
-
}
|
102 |
-
/*******************************************/
|
103 |
-
/** Remove a user from a mailing list **/
|
104 |
-
/*****************************************/
|
105 |
-
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-unsubscribe-user' ) {
|
106 |
-
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_unsubscribe_user' ) );
|
107 |
-
}
|
108 |
-
/*******************************************/
|
109 |
-
/** Create misisng error log file **/
|
110 |
-
/*****************************************/
|
111 |
-
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-create-error-log' ) {
|
112 |
-
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_create_missing_error_log' ) );
|
113 |
-
}
|
114 |
-
/*******************************************/
|
115 |
-
/** TinyMCE Initialization Functions **/
|
116 |
-
/*****************************************/
|
117 |
-
add_action( 'admin_head' , array( $this, 'add_tinyMCE_buttons' ) );
|
118 |
-
// pass our lists data to tinyMCE button for use
|
119 |
-
foreach ( array('post.php','post-new.php') as $hook ) {
|
120 |
-
add_action( "admin_head-$hook", array( $this, 'tinymce_yikes_easy_mc' ) );
|
121 |
-
}
|
122 |
-
// display an admin notice for users on PHP < 5.3
|
123 |
-
if( phpversion() < '5.3' ) {
|
124 |
-
add_action( "admin_notices", array( $this, 'display_php_warning' ), 999 );
|
125 |
-
}
|
126 |
-
// two week , dismissable notification - check the users plugin installation date
|
127 |
-
add_action( 'admin_init', array( $this , 'yikes_easy_mailchimp_check_installation_date' ) );
|
128 |
-
// dismissable notice admin side
|
129 |
-
add_action( 'admin_init', array( $this , 'yikes_easy_mailchimp_stop_bugging_me' ), 5 );
|
130 |
-
/**************************************************/
|
131 |
-
/** Clear MailChimp Error Log Data **/
|
132 |
-
/*************************************************/
|
133 |
-
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-clear-error-log' ) {
|
134 |
-
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_clear_error_log' ) );
|
135 |
-
}
|
136 |
-
/*********************************************/
|
137 |
-
/** Export MailChimp Opt-in Forms **/
|
138 |
-
/*******************************************/
|
139 |
-
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-export-forms' ) {
|
140 |
-
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_export_forms' ) );
|
141 |
-
}
|
142 |
-
/*********************************************/
|
143 |
-
/** Export Plugin Settings **/
|
144 |
-
/*******************************************/
|
145 |
-
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-export-settings' ) {
|
146 |
-
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_export_plugin_settings' ) );
|
147 |
-
}
|
148 |
-
/*******************************************/
|
149 |
-
/** Import Class Inclusion **/
|
150 |
-
/*****************************************/
|
151 |
-
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-import-forms' ) {
|
152 |
-
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_import_forms' ) );
|
153 |
-
}
|
154 |
-
/*******************************************/
|
155 |
-
/** Premium Support Request **/
|
156 |
-
/*****************************************/
|
157 |
-
if ( isset( $_POST[ 'submit-premium-support-request' ] ) ) {
|
158 |
-
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_premium_support_request' ) );
|
159 |
-
}
|
160 |
-
/****************************************/
|
161 |
-
/** Dismiss Options Migrations **/
|
162 |
-
/****************************************/
|
163 |
-
if( isset( $_REQUEST['dismiss_migration_nonce'] ) ) {
|
164 |
-
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_dismiss_option_migrate' ) );
|
165 |
-
}
|
166 |
-
/** Parse default value into usable dynamic data **/
|
167 |
-
add_filter( 'yikes-mailchimp-process-default-tag' , array( $this , 'parse_mailchimp_default_tag' ) );
|
168 |
-
/** Add a disclaimer to ensure that we let people know we are not endorsed/backed by MailChimp at all **/
|
169 |
-
add_filter( 'admin_footer_text', array( $this, 'yikes_easy_forms_admin_disclaimer' ) );
|
170 |
-
/** Add custom plugin action links **/
|
171 |
-
add_filter( 'plugin_action_links_yikes-inc-easy-mailchimp-extender/yikes-inc-easy-mailchimp-extender.php', array( $this, 'easy_forms_plugin_action_links' ) );
|
172 |
-
/* Alter the color scheme based on the users selection */
|
173 |
-
add_action( 'admin_print_scripts', array( $this, 'alter_yikes_easy_mc_color_scheme' ) );
|
174 |
-
// hook in and display our knowledge base articles on the support page
|
175 |
-
add_action( 'yikes-mailchimp-support-page', array( $this, 'hook_and_display_kb_article_RSS' ) );
|
176 |
-
// ensure that the upgrade went smoothly, else we have to let the user know we need to upgrade the database
|
177 |
-
// after upgrading f rom 6.0.3.7 users need to upgrade the database as well
|
178 |
-
add_action( 'plugins_loaded', array( $this, 'check_yikes_mc_table_version' ) );
|
179 |
-
}
|
180 |
-
|
181 |
-
/*
|
182 |
-
* Add custom action links on plugins.php
|
183 |
-
* @ param array $links Pre-existing plugin action links
|
184 |
-
* @ return array $links New array of plugin actions
|
185 |
-
*/
|
186 |
-
public function easy_forms_plugin_action_links( $links ) {
|
187 |
-
$links[] = '<a href="'. esc_url( get_admin_url(null, 'admin.php?page=yikes-inc-easy-mailchimp-settings') ) .'">' . __( 'Settings', 'yikes-inc-easy-mailchimp-extender' ) . '</a>';
|
188 |
-
$links[] = '<a href="' . esc_url( 'http://www.yikesplugins.com?utm_source=plugins-page&utm_medium=plugin-row&utm_campaign=admin' ) . '" target="_blank">' . __( 'More plugins by YIKES' , 'yikes-inc-easy-mailchimp-extender' ) . '</a>';
|
189 |
-
return $links;
|
190 |
-
}
|
191 |
-
|
192 |
-
/**
|
193 |
-
* Add a disclaimer to the admin footer for all YIKES pages to ensure that users understand there is no coorelation between this plugin and MailChimp.
|
194 |
-
* This plugin simply provides the service of linking MailChimp with your site.
|
195 |
-
*
|
196 |
-
* @since 6.0
|
197 |
-
*
|
198 |
-
* @param string $footer_text The existing footer text
|
199 |
-
*
|
200 |
-
* @return string
|
201 |
-
*/
|
202 |
-
public function yikes_easy_forms_admin_disclaimer( $footer_text ) {
|
203 |
-
$page = get_current_screen();
|
204 |
-
$base = $page->base;
|
205 |
-
if ( strpos( $base, 'yikes-' ) !== false ) {
|
206 |
-
$disclaimer_text = sprintf( '<em>' . __( 'Disclaimer: <strong>Easy Forms for MailChimp by YIKES</strong> is in no way endorsed, affiliated or backed by MailChimp, or its parent company Rocket Science Group.', 'yikes-inc-easy-mailchimp-extender' ), '<a href="https://wordpress.org/support/view/plugin-reviews/give?filter=5#postform" target="_blank" class="give-rating-link" data-rated="' . __( 'Thanks :)', 'yikes-inc-easy-mailchimp-extender' ) . '">', '</a></em>' );
|
207 |
-
return $disclaimer_text;
|
208 |
-
} else {
|
209 |
-
return $footer_text;
|
210 |
-
}
|
211 |
-
}
|
212 |
-
|
213 |
-
/*
|
214 |
-
* Parse our default tag into dynamic data
|
215 |
-
* to be passed to MailChimp
|
216 |
-
*
|
217 |
-
* @since 6.0.0
|
218 |
-
* @return parsed tag content
|
219 |
-
*/
|
220 |
-
public function parse_mailchimp_default_tag( $default_tag ) {
|
221 |
-
if( ! $default_tag || $default_tag == '' ) {
|
222 |
-
return $default_tag;
|
223 |
-
}
|
224 |
-
global $post;
|
225 |
-
// page title
|
226 |
-
if( $default_tag == '{page_title}' ) {
|
227 |
-
$default_tag = get_the_title( $post->ID );
|
228 |
-
}
|
229 |
-
// page id
|
230 |
-
if( $default_tag == '{page_title}' ) {
|
231 |
-
$default_tag = $post->ID;
|
232 |
-
}
|
233 |
-
// page url
|
234 |
-
if( $default_tag == '{page_url}' ) {
|
235 |
-
$default_tag = get_permalink( $post->ID );
|
236 |
-
}
|
237 |
-
// blog name
|
238 |
-
if( $default_tag == '{blog_name}' ) {
|
239 |
-
$default_tag = get_bloginfo( 'name' );
|
240 |
-
}
|
241 |
-
// is user logged in
|
242 |
-
if( $default_tag == '{user_logged_in}' ) {
|
243 |
-
if( is_user_logged_in() ) {
|
244 |
-
$default_tag = 'Registered User';
|
245 |
-
} else {
|
246 |
-
$default_tag = 'Guest User';
|
247 |
-
}
|
248 |
-
}
|
249 |
-
/* Return our filtered tag */
|
250 |
-
return apply_filters( 'yikes-mailchimp-parse-custom-default-value', $default_tag );
|
251 |
-
}
|
252 |
-
|
253 |
-
/*
|
254 |
-
* Delete the contents of our error log
|
255 |
-
*
|
256 |
-
* When a user clicks 'Clear Log' on the debug settings page, this funciton
|
257 |
-
* is used to clear the data out of our php file.
|
258 |
-
*/
|
259 |
-
public function yikes_easy_mailchimp_clear_error_log() {
|
260 |
-
// file put contents $returned error + other data
|
261 |
-
if( file_exists( YIKES_MC_PATH . 'includes/error_log/yikes-easy-mailchimp-error-log.php' ) ) {
|
262 |
-
$clear_log = file_put_contents(
|
263 |
-
YIKES_MC_PATH . 'includes/error_log/yikes-easy-mailchimp-error-log.php',
|
264 |
-
''
|
265 |
-
);
|
266 |
-
if( $clear_log === false ) {
|
267 |
-
// redirect the user to the manage forms page, display error message
|
268 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=debug-settings&error-log-cleared=false' ) ) );
|
269 |
-
} else {
|
270 |
-
// redirect the user to the manage forms page, display confirmation
|
271 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=debug-settings&error-log-cleared=true' ) ) );
|
272 |
-
}
|
273 |
-
}
|
274 |
-
}
|
275 |
-
|
276 |
-
/*
|
277 |
-
* Custom export function to export all or specific forms
|
278 |
-
* to allow for easy transpot to other sites
|
279 |
-
* @since 6.0.0
|
280 |
-
* @return CSV export file
|
281 |
-
*/
|
282 |
-
public function yikes_easy_mailchimp_export_forms() {
|
283 |
-
// grab our nonce
|
284 |
-
$nonce = $_REQUEST['nonce'];
|
285 |
-
// grab the forms
|
286 |
-
$forms = isset( $_REQUEST['export_forms'] ) ? $_REQUEST['export_forms'] : 'all';
|
287 |
-
// validate nonce
|
288 |
-
if( ! wp_verify_nonce( $nonce, 'export-forms' ) ) {
|
289 |
-
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
290 |
-
}
|
291 |
-
// include the export class
|
292 |
-
if( ! class_exists( 'Yikes_Inc_Easy_MailChimp_Export_Class' ) ) {
|
293 |
-
include_once( YIKES_MC_PATH . 'includes/import-export/yikes-easy-mailchimp-export.class.php' );
|
294 |
-
}
|
295 |
-
// run the export function
|
296 |
-
// parameters: ( $table_name, $form_ids, $file_name )
|
297 |
-
Yikes_Inc_Easy_MailChimp_Export_Class::yikes_mailchimp_form_export( 'yikes_easy_mc_forms' , $forms, 'Yikes-Inc-Easy-MailChimp-Forms-Export' );
|
298 |
-
// re-direct the user back to the page
|
299 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=import-export-forms' ) ) );
|
300 |
-
die();
|
301 |
-
}
|
302 |
-
|
303 |
-
/*
|
304 |
-
* Custom export function to export YIKES Easy Forms for MailChimp Plugin Settings
|
305 |
-
* to allow for easy transpot to other sites
|
306 |
-
* @since 6.0.0
|
307 |
-
* @return CSV export file
|
308 |
-
*/
|
309 |
-
public function yikes_easy_mailchimp_export_plugin_settings() {
|
310 |
-
// grab our nonce
|
311 |
-
$nonce = $_REQUEST['nonce'];
|
312 |
-
// validate nonce
|
313 |
-
if( ! wp_verify_nonce( $nonce, 'export-settings' ) ) {
|
314 |
-
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
315 |
-
}
|
316 |
-
// include the export class
|
317 |
-
if( ! class_exists( 'Yikes_Inc_Easy_MailChimp_Export_Class' ) ) {
|
318 |
-
include_once( YIKES_MC_PATH . 'includes/import-export/yikes-easy-mailchimp-export.class.php' );
|
319 |
-
}
|
320 |
-
// run the export function
|
321 |
-
// parameters: ( $table_name, $form_ids, $file_name )
|
322 |
-
Yikes_Inc_Easy_MailChimp_Export_Class::yikes_mailchimp_settings_export( 'Yikes-Inc-Easy-MailChimp-Settings-Export' );
|
323 |
-
// re-direct the user back to the page
|
324 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=import-export-forms' ) ) );
|
325 |
-
die();
|
326 |
-
}
|
327 |
-
|
328 |
-
/*
|
329 |
-
* Custom import function to import all or specific forms
|
330 |
-
* @since 6.0.0
|
331 |
-
*/
|
332 |
-
public function yikes_easy_mailchimp_import_forms() {
|
333 |
-
// grab our nonce
|
334 |
-
$nonce = $_REQUEST['nonce'];
|
335 |
-
// validate nonce
|
336 |
-
if( ! wp_verify_nonce( $nonce, 'import-forms' ) ) {
|
337 |
-
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
338 |
-
}
|
339 |
-
// include the export class
|
340 |
-
if( ! class_exists( 'Yikes_Inc_Easy_MailChimp_Import_Class' ) ) {
|
341 |
-
include_once( YIKES_MC_PATH . 'includes/import-export/yikes-easy-mailchimp-import.class.php' );
|
342 |
-
}
|
343 |
-
// run the import function
|
344 |
-
// parameters: ( $_FILES )
|
345 |
-
Yikes_Inc_Easy_MailChimp_Import_Class::yikes_mailchimp_import_forms( $_FILES );
|
346 |
-
$import_query_arg = Yikes_Inc_Easy_MailChimp_Import_Class::yikes_mailchimp_import_type( $_FILES );
|
347 |
-
// re-direct the user back to the page
|
348 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=import-export-forms&' . $import_query_arg . '=true' ) ) );
|
349 |
-
die();
|
350 |
-
}
|
351 |
-
|
352 |
-
/*
|
353 |
-
* Premium Support Request
|
354 |
-
* @since 6.0.0
|
355 |
-
*/
|
356 |
-
public function yikes_easy_mailchimp_premium_support_request() {
|
357 |
-
|
358 |
-
if( isset( $_POST['action'] ) && $_POST['action'] != 'yikes-support-request' ) {
|
359 |
-
return __( 'We encountered an error. Please contact the YIKES Inc. support team.' , 'yikes-inc-easy-mailchimp-extender' );
|
360 |
-
}
|
361 |
-
|
362 |
-
$license = $_POST['license_key'];
|
363 |
-
$user_email = $_POST['user-email'];
|
364 |
-
$support_topic = $_POST['support-topic'];
|
365 |
-
$support_priority = $_POST['support-priority'];
|
366 |
-
$support_content = $_POST['support-content'];
|
367 |
-
|
368 |
-
// wp_die( print_r( $support_content) );
|
369 |
-
|
370 |
-
$ticket_array = array(
|
371 |
-
'action' => 'yikes-support-request',
|
372 |
-
'license_key' => urlencode( base64_encode( $license ) ),
|
373 |
-
'user_email' => urlencode( $user_email ),
|
374 |
-
'site_url' => urlencode( esc_url( home_url() ) ),
|
375 |
-
'support_topic' => urlencode( $support_topic ),
|
376 |
-
'support_priority' => $support_priority,
|
377 |
-
'support_content' => $support_content,
|
378 |
-
);
|
379 |
-
|
380 |
-
$yikes_plugin_support_url = 'https://yikesplugins.com';
|
381 |
-
|
382 |
-
if( $license != 'plugin-core' ) {
|
383 |
-
$split_license = explode( '|', $license );
|
384 |
-
// first let's check that the license key is actually active
|
385 |
-
$is_license_key_active = wp_remote_post( esc_url( $yikes_plugin_support_url ), array(
|
386 |
-
'action' => 'check_license',
|
387 |
-
'product_name' => urlencode( str_replace( '-', '', $split_license[1] ) . 'for Easy MailChimp' ),
|
388 |
-
'license' => $split_license[0],
|
389 |
-
) );
|
390 |
-
|
391 |
-
$response_body = wp_remote_retrieve_body( $is_license_key_active );
|
392 |
-
if( $response_body ) {
|
393 |
-
if( $response_body->status != 'valid' ) {
|
394 |
-
wp_die( 'Invalid License Key...' );
|
395 |
-
}
|
396 |
-
}
|
397 |
-
}
|
398 |
-
|
399 |
-
// Call the custom API.
|
400 |
-
$response = wp_remote_post( esc_url( $yikes_plugin_support_url ), array(
|
401 |
-
'timeout' => 30,
|
402 |
-
'sslverify' => false,
|
403 |
-
'body' => $ticket_array
|
404 |
-
) );
|
405 |
-
|
406 |
-
// catch the error
|
407 |
-
if( is_wp_error( $response ) ) {
|
408 |
-
wp_die( $create_ticket_request->getMessage() );
|
409 |
-
return;
|
410 |
-
}
|
411 |
-
|
412 |
-
// retrieve our body
|
413 |
-
$create_ticket_response = wp_remote_retrieve_body( $response );
|
414 |
-
|
415 |
-
// display it
|
416 |
-
if( $create_ticket_response )
|
417 |
-
echo $create_ticket_response;
|
418 |
-
|
419 |
-
}
|
420 |
-
|
421 |
-
/**
|
422 |
-
* Dismiss the migrate options notice (incase the user wants to do things manually)
|
423 |
-
*
|
424 |
-
* @since 6.0.0
|
425 |
-
**/
|
426 |
-
public function yikes_easy_mailchimp_dismiss_option_migrate() {
|
427 |
-
// delete the options and allow the user to manually updadte things
|
428 |
-
|
429 |
-
// Verify the NONCE is valid
|
430 |
-
check_admin_referer( 'yikes-mc-dismiss-migration' , 'dismiss_migration_nonce' );
|
431 |
-
|
432 |
-
// re-direct the user back to the page
|
433 |
-
wp_redirect( esc_url_raw( admin_url( 'index.php?yikes-mc-options-migration-dismissed="true"' ) ) );
|
434 |
-
die();
|
435 |
-
}
|
436 |
-
|
437 |
-
/**
|
438 |
-
* Error logging class
|
439 |
-
*
|
440 |
-
* This is our main error logging class file, used to log errors to the error log.
|
441 |
-
*
|
442 |
-
* @since 6.0.0
|
443 |
-
*/
|
444 |
-
public function load_error_logging_class() {
|
445 |
-
if( get_option( 'yikes-mailchimp-debug-status' , '' ) == '1' ) {
|
446 |
-
// if error logging is enabled we should include our error logging class
|
447 |
-
/* Generate oure error logging table */
|
448 |
-
require_once YIKES_MC_PATH . '/includes/error_log/class-yikes-inc-easy-mailchimp-error-logging.php';
|
449 |
-
$error_logging = new Yikes_Inc_Easy_Mailchimp_Error_Logging();
|
450 |
-
}
|
451 |
-
}
|
452 |
-
|
453 |
-
/*
|
454 |
-
yikes_easy_mailchimp_check_installation_date()
|
455 |
-
checks the user installation date, and adds our action
|
456 |
-
- if it's past 2 weeks we ask the user for a review :)
|
457 |
-
@since v6.0.0
|
458 |
-
*/
|
459 |
-
public function yikes_easy_mailchimp_check_installation_date() {
|
460 |
-
|
461 |
-
// add a new option to store the plugin activation date/time
|
462 |
-
// @since v6.0.0
|
463 |
-
// this is used to notify the user that they should review after 2 weeks
|
464 |
-
if ( !get_option( 'yikes_easy_mailchimp_activation_date' ) ) {
|
465 |
-
add_option( 'yikes_easy_mailchimp_activation_date', strtotime( "now" ) );
|
466 |
-
}
|
467 |
-
|
468 |
-
$stop_bugging_me = get_option( 'yikes_easy_mailchimp_review_stop_bugging_me' );
|
469 |
-
|
470 |
-
if( !$stop_bugging_me ) {
|
471 |
-
$install_date = get_option( 'yikes_easy_mailchimp_activation_date' );
|
472 |
-
$past_date = strtotime( '-14 days' );
|
473 |
-
if ( $past_date >= $install_date && current_user_can( 'install_plugins' ) ) {
|
474 |
-
add_action( 'admin_notices', array( $this , 'yikes_easy_mailchimp_display_review_us_notice' ) );
|
475 |
-
}
|
476 |
-
}
|
477 |
-
|
478 |
-
}
|
479 |
-
|
480 |
-
/*
|
481 |
-
Display our admin notification
|
482 |
-
asking for a review, and for user feedback
|
483 |
-
@since v6.0.0
|
484 |
-
*/
|
485 |
-
public function yikes_easy_mailchimp_display_review_us_notice() {
|
486 |
-
/* Lets only display our admin notice on YT4WP pages to not annoy the hell out of people :) */
|
487 |
-
if ( in_array( get_current_screen()->base , array( 'dashboard' , 'post' , 'edit' ) ) || strpos( get_current_screen()->base ,'yikes-inc-easy-mailchimp') !== false ) {
|
488 |
-
// Review URL - Change to the URL of your plugin on WordPress.org
|
489 |
-
$reviewurl = 'https://wordpress.org/support/view/plugin-reviews/yikes-inc-easy-mailchimp-extender';
|
490 |
-
$addons_url = esc_url( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-addons' ) );
|
491 |
-
$nobugurl = esc_url_raw( add_query_arg( 'yikes_easy_mc_icons_nobug', '1', admin_url() ) );
|
492 |
-
global $current_user;
|
493 |
-
get_currentuserinfo();
|
494 |
-
if ( isset( $current_user->user_firstname ) && '' != $current_user->user_firstname ) {
|
495 |
-
$review_message = '<div id="yikes-mailchimp-logo"></div>';
|
496 |
-
$review_message .= sprintf( __( "Hi, %s, you've been using %s for 2 weeks now. We hope you're enjoying the features included with the free version. If so, please consider leaving us a review. Reviews provide us with feedback to grow and improve the plugin. If you're really enjoying the plugin, consider buying an add-on or developer license for some really awesome features and premium support." , 'yikes-inc-easy-mailchimp-extender' ) . "<span class='button-container'> <a href='%s' target='_blank' class='button-secondary'><span class='dashicons dashicons-star-filled'></span>" . __( "Leave A Review" , 'yikes-inc-easy-mailchimp-extender' ) . "</a> <a href='%s' class='button-secondary'><span class='dashicons dashicons-upload'></span>" . __( "View Addons" , 'yikes-inc-easy-mailchimp-extender' ) . "</a> <a href='%s' class='button-secondary'><span class='dashicons dashicons-no-alt'></span>" . __( "Dismiss" , 'yikes-inc-easy-mailchimp-extender' ) . "</a> </span>", $current_user->user_firstname, '<strong>Easy Forms for MailChimp by YIKES Inc.</strong>', $reviewurl, $addons_url, $nobugurl );
|
497 |
-
$review_message .= '';
|
498 |
-
} else {
|
499 |
-
$review_message = '<div id="yikes-mailchimp-logo"></div>';
|
500 |
-
$review_message .= sprintf( __( "It looks like you've been using %s for 2 weeks now. We hope you're enjoying the features included with the free version. If so, please consider leaving us a review. Reviews only help to catch other users attention as well as provide us with feedback to grow and improve upon. If you're really enjoying the plugin, consider buying an add-on or developer license for some really awesome features and premium support." , 'yikes-inc-easy-mailchimp-extender' ) . "<span class='button-container'> <a href='%s' target='_blank' class='button-secondary'><span class='dashicons dashicons-star-filled'></span>" . __( "Leave A Review" , 'yikes-inc-easy-mailchimp-extender' ) . "</a> <a href='%s' class='button-secondary'><span class='dashicons dashicons-upload'></span>" . __( "View Addons" , 'yikes-inc-easy-mailchimp-extender' ) . "</a> <a href='%s' class='button-secondary'><span class='dashicons dashicons-no-alt'></span>" . __( "Dismiss" , 'yikes-inc-easy-mailchimp-extender' ) . "</a> </span>", '<strong>Easy Forms for MailChimp by YIKES Inc.</strong>', $reviewurl, $addons_url, $nobugurl ) . '';
|
501 |
-
}
|
502 |
-
?>
|
503 |
-
<div id="review-yikes-easy-mailchimp-notice">
|
504 |
-
<?php echo $review_message; ?>
|
505 |
-
</div>
|
506 |
-
<?php
|
507 |
-
}
|
508 |
-
}
|
509 |
-
|
510 |
-
/*
|
511 |
-
yikes_easy_mailchimp_stop_bugging_me()
|
512 |
-
Remove the Review us notification when user clicks 'Dismiss'
|
513 |
-
@since v3.1.1
|
514 |
-
*/
|
515 |
-
public function yikes_easy_mailchimp_stop_bugging_me() {
|
516 |
-
$nobug = "";
|
517 |
-
if ( isset( $_GET['yikes_easy_mc_icons_nobug'] ) ) {
|
518 |
-
$nobug = (int) esc_attr( $_GET['yikes_easy_mc_icons_nobug'] );
|
519 |
-
}
|
520 |
-
if ( 1 == $nobug ) {
|
521 |
-
add_option( 'yikes_easy_mailchimp_review_stop_bugging_me', TRUE );
|
522 |
-
}
|
523 |
-
}
|
524 |
-
|
525 |
-
/* End Two Week Notificaition */
|
526 |
-
|
527 |
-
/* Display a warning users who are using PHP < 5.3 */
|
528 |
-
public function display_php_warning() {
|
529 |
-
$message = __( 'YIKES Inc. Easy Forms for MailChimp requires a minimum of PHP 5.3. The plugin will not function properly until you update. Reach out to your host provider for assistance.' , 'yikes-inc-easy-mailchimp-extender' );
|
530 |
-
echo "<div class='error'> <p><span class='dashicons dashicons-no-alt' style='color:rgb(231, 98, 98)'></span> $message</p></div>";
|
531 |
-
}
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
/* TinyMCE Functions */
|
536 |
-
// load our button and pass in the JS form data variable
|
537 |
-
public function add_tinyMCE_buttons() {
|
538 |
-
global $typenow;
|
539 |
-
// only on Post Type: post and page
|
540 |
-
if( ! in_array( $typenow, array( 'post', 'page' ) ) ) {
|
541 |
-
return;
|
542 |
-
}
|
543 |
-
add_filter( 'mce_buttons', array( $this, 'yks_mc_add_tinymce_button' ) );
|
544 |
-
add_filter( 'mce_external_plugins', array( $this, 'yks_mc_add_tinymce_plugin' ) );
|
545 |
-
}
|
546 |
-
|
547 |
-
// Add the button key for address via JS
|
548 |
-
public function yks_mc_add_tinymce_button( $buttons ) {
|
549 |
-
array_push( $buttons, 'yks_mc_tinymce_button_key' );
|
550 |
-
// Print all buttons
|
551 |
-
return $buttons;
|
552 |
-
}
|
553 |
-
|
554 |
-
// inlcude the js for tinymce
|
555 |
-
public function yks_mc_add_tinymce_plugin( $plugin_array ) {
|
556 |
-
$plugin_array['yks_mc_tinymce_button'] = plugins_url( '/js/min/yikes-inc-easy-mailchimp-tinymce-button.min.js', __FILE__ );
|
557 |
-
// Print all plugin js path
|
558 |
-
// var_dump( $plugin_array );
|
559 |
-
return $plugin_array;
|
560 |
-
}
|
561 |
-
|
562 |
-
/**
|
563 |
-
* Localize Script
|
564 |
-
* Pass our imported list data, to the JS file
|
565 |
-
* to build the drop down list in the modal
|
566 |
-
*/
|
567 |
-
public function tinymce_yikes_easy_mc() {
|
568 |
-
// check capabilities
|
569 |
-
if( ! current_user_can( apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ) ) ) {
|
570 |
-
return;
|
571 |
-
}
|
572 |
-
global $wpdb;
|
573 |
-
$list_data = $wpdb->get_results( 'SELECT * FROM ' . $wpdb->prefix . 'yikes_easy_mc_forms', ARRAY_A );
|
574 |
-
$lists = array();
|
575 |
-
$i = 0;
|
576 |
-
if( !empty( $list_data ) ) {
|
577 |
-
// build an array to pass to our javascript
|
578 |
-
foreach( $list_data as $form ) {
|
579 |
-
$lists[$i] = array(
|
580 |
-
'text' => urlencode( $form['form_name'] ),
|
581 |
-
'value' => $form['id']
|
582 |
-
);
|
583 |
-
$i++;
|
584 |
-
}
|
585 |
-
} else {
|
586 |
-
$lists[0] = array(
|
587 |
-
'text' => __( 'Please Import Some MailChimp Lists' , 'yikes-inc-easy-mailchimp-extender' ),
|
588 |
-
'value' => '-'
|
589 |
-
);
|
590 |
-
}
|
591 |
-
/* Pass our form data to our JS file for use */
|
592 |
-
?>
|
593 |
-
<script type="text/javascript">
|
594 |
-
var forms = {
|
595 |
-
'data' : '<?php echo json_encode( $lists ); ?>'
|
596 |
-
};
|
597 |
-
var localized_data = {
|
598 |
-
'button_title' : '<?php _e( 'Easy Forms for MailChimp by YIKES', 'yikes-inc-easy-mailchimp-extender' ); ?>',
|
599 |
-
'popup_title' : '<?php _e( 'Easy Forms for MailChimp by YIKES', 'yikes-inc-easy-mailchimp-extender' ); ?>',
|
600 |
-
'list_id_label' : '<?php _e( 'MailChimp Opt-In Form' , 'yikes-inc-easy-mailchimp-extender' ); ?>',
|
601 |
-
'show_title_label' : '<?php _e( 'Display Form Title' , 'yikes-inc-easy-mailchimp-extender' ); ?>',
|
602 |
-
'show_description_label' : '<?php _e( 'Display Form Description' , 'yikes-inc-easy-mailchimp-extender' ); ?>',
|
603 |
-
'submit_button_text_label' : '<?php _e( 'Submit Button Text' , 'yikes-inc-easy-mailchimp-extender' ); ?>',
|
604 |
-
};
|
605 |
-
<?php
|
606 |
-
$link = sprintf( __( 'You need to <a href="%s" title="%s">create a form</a> before you can add one to a page or post.', 'yikes-inc-easy-mailchimp-extender' ), esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp' ) ), __( 'Create a form', 'yikes-inc-easy-mailchimp-extender' ) );
|
607 |
-
?>
|
608 |
-
var alert_translated = '<?php echo $link; ?>';
|
609 |
-
</script>
|
610 |
-
<?php
|
611 |
-
}
|
612 |
-
/* End TinyMCE Functions */
|
613 |
-
|
614 |
-
/*
|
615 |
-
* Redirect the user to our Welcome page
|
616 |
-
* when they activate the plug in, if they haven't been redirected before
|
617 |
-
*/
|
618 |
-
public function yikes_easy_mc_activation_redirect() {
|
619 |
-
if ( get_option( 'yikes_mailchimp_activation_redirect', 'true' ) == 'true' ) {
|
620 |
-
update_option( 'yikes_mailchimp_activation_redirect', 'false' );
|
621 |
-
/* If the user had this plugin activated prior to today, redirect to 'Whats New' */
|
622 |
-
if( get_option( 'yikes_easy_mailchimp_activation_date', strtotime( 'now' ) ) == strtotime( 'now' ) ) {
|
623 |
-
wp_redirect( esc_url( admin_url( 'admin.php?page=yikes-mailchimp-welcome' ) ) );
|
624 |
-
} else {
|
625 |
-
/* Else redirect the user over to the 'Getting Started' tab */
|
626 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-mailchimp-welcome§ion=whats-new' ) ) );
|
627 |
-
}
|
628 |
-
exit();
|
629 |
-
}
|
630 |
-
}
|
631 |
-
|
632 |
-
/*
|
633 |
-
* Fix the MailChimp icon spacing in the admin menu
|
634 |
-
*/
|
635 |
-
public function fix_menu_icon_spacing() {
|
636 |
-
?>
|
637 |
-
<style>
|
638 |
-
a[href="admin.php?page=yikes-inc-easy-mailchimp"] .wp-menu-image img {
|
639 |
-
padding-top: 5px !important;
|
640 |
-
}
|
641 |
-
</style>
|
642 |
-
<?php
|
643 |
-
}
|
644 |
-
|
645 |
-
/**
|
646 |
-
* Register the stylesheets for the admin area.
|
647 |
-
*
|
648 |
-
* @since 6.0.0
|
649 |
-
*/
|
650 |
-
public function enqueue_styles() {
|
651 |
-
/**
|
652 |
-
* Enqueue our global dashboard styles
|
653 |
-
*/
|
654 |
-
wp_enqueue_style( 'yikes-inc-easy-mailchimp-extender-admin', plugin_dir_url( __FILE__ ) . 'css/yikes-inc-easy-mailchimp-extender-admin.min.css', array(), $this->version, 'all' );
|
655 |
-
/*
|
656 |
-
* Enqueue Add-ons styles
|
657 |
-
*/
|
658 |
-
if ( get_current_screen()->base == 'easy-forms_page_yikes-inc-easy-mailchimp-addons' ) {
|
659 |
-
wp_enqueue_style( 'yikes-inc-easy-mailchimp-extender-addons-styles', plugin_dir_url( __FILE__ ) . 'css/yikes-inc-easy-mailchimp-extender-addons.min.css', array(), $this->version, 'all' );
|
660 |
-
}
|
661 |
-
/*
|
662 |
-
* Enqueue Subscriber Profile Flags
|
663 |
-
*/
|
664 |
-
if ( get_current_screen()->base == 'admin_page_yikes-mailchimp-view-user' ) {
|
665 |
-
wp_enqueue_style( 'yikes-inc-easy-mailchimp-extender-subscriber-flags', plugin_dir_url( __FILE__ ) . 'css/flag-icon.min.css', array(), $this->version, 'all' );
|
666 |
-
}
|
667 |
-
}
|
668 |
-
/**
|
669 |
-
* Register the JavaScript for the admin area.
|
670 |
-
*
|
671 |
-
* @since 6.0.0
|
672 |
-
*/
|
673 |
-
public function enqueue_scripts() {
|
674 |
-
|
675 |
-
/**
|
676 |
-
* Enqueue our scripts across the dashboard as needed
|
677 |
-
*/
|
678 |
-
wp_register_script( 'yikes-inc-easy-mailchimp-extender-admin-js', plugin_dir_url( __FILE__ ) . 'js/min/yikes-inc-easy-mailchimp-extender-admin.min.js', array( 'jquery' , 'jquery-ui-sortable' ), $this->version, false );
|
679 |
-
$localized_data = array(
|
680 |
-
'admin_url' => esc_url_raw( admin_url() ),
|
681 |
-
'ajax_url' => esc_url_raw( admin_url( 'admin-ajax.php' ) ),
|
682 |
-
'locating_interest_groups' => __( 'Locating Interest Groups', 'yikes-inc-easy-mailchimp-extender' ),
|
683 |
-
'search_preloader_url' => YIKES_MC_URL . 'includes/images/search-interest-group-preloader.gif',
|
684 |
-
'preloader_url' => esc_url_raw( admin_url( '/images/wpspin_light.gif' ) )
|
685 |
-
);
|
686 |
-
wp_localize_script( 'yikes-inc-easy-mailchimp-extender-admin-js' , 'object_data' , $localized_data );
|
687 |
-
wp_enqueue_script( 'yikes-inc-easy-mailchimp-extender-admin-js' );
|
688 |
-
|
689 |
-
|
690 |
-
/*
|
691 |
-
* Enqueue required scripts for the form editor
|
692 |
-
*/
|
693 |
-
if( get_current_screen()->base == 'admin_page_yikes-mailchimp-edit-form' ) {
|
694 |
-
global $wp_locale;
|
695 |
-
wp_enqueue_style( 'wp-color-picker' );
|
696 |
-
wp_enqueue_script( 'wp-color-picker' );
|
697 |
-
wp_enqueue_script( 'jquery.timepicker.js',YIKES_MC_URL . 'admin/js/jquery.timepicker.min.js' , array( 'jquery' ) , $this->version, false );
|
698 |
-
wp_register_script( 'edit-form-js' , YIKES_MC_URL . 'admin/js/min/yikes-inc-easy-mailchimp-extender-edit-form.min.js' , array( 'jquery.timepicker.js', 'jquery-ui-datepicker' ) , $this->version, false );
|
699 |
-
$localized_data = array(
|
700 |
-
'ajax_url' => esc_url_raw( admin_url( 'admin-ajax.php' ) ),
|
701 |
-
'no_fields_assigned' => __( 'No fields assigned to this form. Select some fields to add to this form from the right hand column.', 'yikes-inc-easy-mailchimp-extender' ),
|
702 |
-
'bulk_delete_alert' => __( 'Are you sure you want to delete all of the fields assigned to this form?', 'yikes-inc-easy-mailchimp-extender' ),
|
703 |
-
'closeText' => __( 'Done', 'yikes-inc-easy-mailchimp-extender' ),
|
704 |
-
'currentText' => __( 'Today', 'yikes-inc-easy-mailchimp-extender' ),
|
705 |
-
'monthNames' => $this->yikes_jQuery_datepicker_strip_array_indices( $wp_locale->month ),
|
706 |
-
'monthNamesShort' => $this->yikes_jQuery_datepicker_strip_array_indices( $wp_locale->month_abbrev ),
|
707 |
-
'monthStatus' => __( 'Show a different month', 'yikes-inc-easy-mailchimp-extender' ),
|
708 |
-
'dayNames' => $this->yikes_jQuery_datepicker_strip_array_indices( $wp_locale->weekday ),
|
709 |
-
'dayNamesShort' => $this->yikes_jQuery_datepicker_strip_array_indices( $wp_locale->weekday_abbrev ),
|
710 |
-
'dayNamesMin' => $this->yikes_jQuery_datepicker_strip_array_indices( $wp_locale->weekday_initial ),
|
711 |
-
// set the date format to match the WP general date settings
|
712 |
-
'dateFormat' => $this->yikes_jQuery_datepicker_date_format_php_to_js( get_option( 'date_format' ) ),
|
713 |
-
// get the start of week from WP general setting
|
714 |
-
'firstDay' => get_option( 'start_of_week' ),
|
715 |
-
// is Right to left language? default is false
|
716 |
-
'isRTL' => $wp_locale->is_rtl(),
|
717 |
-
'start_date_exceeds_end_date_error' => __( 'Error: The start date and time cannot occur after the end date and time. Chosen date reverted to previous selection.', 'yikes-inc-easy-mailchimp-extender' ),
|
718 |
-
);
|
719 |
-
wp_localize_script( 'edit-form-js' , 'object' , $localized_data );
|
720 |
-
wp_enqueue_script( 'edit-form-js' );
|
721 |
-
}
|
722 |
-
|
723 |
-
}
|
724 |
-
|
725 |
-
/** Functionality **/
|
726 |
-
/******************/
|
727 |
-
|
728 |
-
|
729 |
-
/**
|
730 |
-
* Localization functions for jQuery ui datepicker
|
731 |
-
* @since 6.0.3.8
|
732 |
-
*/
|
733 |
-
/**
|
734 |
-
* Format array for the datepicker
|
735 |
-
* WordPress stores the locale information in an array with a alphanumeric index, and
|
736 |
-
* the datepicker wants a numerical index. This function replaces the index with a number
|
737 |
-
*/
|
738 |
-
public function yikes_jQuery_datepicker_strip_array_indices( $ArrayToStrip ) {
|
739 |
-
foreach( $ArrayToStrip as $objArrayItem) {
|
740 |
-
$NewArray[] = $objArrayItem;
|
741 |
-
}
|
742 |
-
return( $NewArray );
|
743 |
-
}
|
744 |
-
|
745 |
-
/**
|
746 |
-
* Convert the php date format string to a js date format
|
747 |
-
*/
|
748 |
-
public function yikes_jQuery_datepicker_date_format_php_to_js( $sFormat ) {
|
749 |
-
switch( $sFormat ) {
|
750 |
-
//Predefined WP date formats
|
751 |
-
case 'F j, Y':
|
752 |
-
case 'j F Y':
|
753 |
-
case 'm/d/Y':
|
754 |
-
case 'mm/dd/yyyy':
|
755 |
-
case 'MM/DD/YYYY':
|
756 |
-
default:
|
757 |
-
return( 'mm/dd/yy' );
|
758 |
-
break;
|
759 |
-
case 'Y/m/d':
|
760 |
-
case 'Y-m-d':
|
761 |
-
return( 'yy/mm/dd' );
|
762 |
-
break;
|
763 |
-
case 'd/m/Y':
|
764 |
-
case 'dd/mm/yyyy':
|
765 |
-
case 'DD/MM/YYYY':
|
766 |
-
return( 'dd/mm/yyyy' );
|
767 |
-
break;
|
768 |
-
}
|
769 |
-
}
|
770 |
-
|
771 |
-
/**
|
772 |
-
* Convert the php date format string to a js date format
|
773 |
-
*/
|
774 |
-
public function yikes_jQuery_datepicker_date_format( $site_option ) {
|
775 |
-
switch( $site_option ) {
|
776 |
-
//Predefined WP date formats
|
777 |
-
default:
|
778 |
-
case 'F j, Y':
|
779 |
-
case 'm/d/Y':
|
780 |
-
return( 'm/d/Y' );
|
781 |
-
break;
|
782 |
-
case 'Y-m-d':
|
783 |
-
return( 'Y/m/d' );
|
784 |
-
break;
|
785 |
-
case 'd/m/Y':
|
786 |
-
return( 'd/m/Y' );
|
787 |
-
break;
|
788 |
-
}
|
789 |
-
}
|
790 |
-
/**
|
791 |
-
* end Localization functions for jQuery ui datepicker
|
792 |
-
*/
|
793 |
-
|
794 |
-
/**
|
795 |
-
* Register our admin pages
|
796 |
-
* used to display data back to the user
|
797 |
-
**/
|
798 |
-
public function register_admin_pages() {
|
799 |
-
|
800 |
-
/* Top Level Menu 'Easy MailChimp' */
|
801 |
-
add_menu_page(
|
802 |
-
__( 'Easy Forms' , 'yikes-inc-easy-mailchimp-extender' ),
|
803 |
-
'Easy Forms',
|
804 |
-
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
805 |
-
'yikes-inc-easy-mailchimp',
|
806 |
-
'', // no callback,
|
807 |
-
YIKES_MC_URL . 'includes/images/MailChimp_Assets/Freddie_wink_icon.png'
|
808 |
-
);
|
809 |
-
|
810 |
-
// Sub Pages
|
811 |
-
/*************/
|
812 |
-
|
813 |
-
/* YIKES Inc. Easy MailChimp Settings */
|
814 |
-
|
815 |
-
/* YIKES Inc. Easy MailChimp Manage Forms */
|
816 |
-
add_submenu_page(
|
817 |
-
'yikes-inc-easy-mailchimp',
|
818 |
-
__( 'Opt-in Forms' , 'yikes-inc-easy-mailchimp-extender' ),
|
819 |
-
__( 'Opt-in Forms' , 'yikes-inc-easy-mailchimp-extender' ),
|
820 |
-
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
821 |
-
'yikes-inc-easy-mailchimp',
|
822 |
-
array( $this, 'generateManageFormsPage' )
|
823 |
-
);
|
824 |
-
|
825 |
-
/* YIKES Inc. Easy MailChimp Manage Lists */
|
826 |
-
add_submenu_page(
|
827 |
-
'yikes-inc-easy-mailchimp',
|
828 |
-
__( 'Mailing Lists' , 'yikes-inc-easy-mailchimp-extender' ),
|
829 |
-
__( 'Mailing Lists' , 'yikes-inc-easy-mailchimp-extender' ),
|
830 |
-
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
831 |
-
'yikes-inc-easy-mailchimp-lists',
|
832 |
-
array( $this, 'generateManageListsPage' )
|
833 |
-
);
|
834 |
-
|
835 |
-
|
836 |
-
/*
|
837 |
-
* Custom action hook to hook into to add additional
|
838 |
-
* menu items from extensions
|
839 |
-
*/
|
840 |
-
do_action( 'yikes-mailchimp-menu' );
|
841 |
-
|
842 |
-
|
843 |
-
/* YIKES Inc. Easy MailChimp Account Overview */
|
844 |
-
if ( get_option('yikes-mc-api-validation') == 'valid_api_key' ) {
|
845 |
-
/* YIKES Inc. Easy MailChimp Settings */
|
846 |
-
add_submenu_page(
|
847 |
-
'yikes-inc-easy-mailchimp',
|
848 |
-
__( 'Account' , 'yikes-inc-easy-mailchimp-extender' ),
|
849 |
-
__( 'Account' , 'yikes-inc-easy-mailchimp-extender' ),
|
850 |
-
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
851 |
-
'yikes-inc-easy-mailchimp-account-overview',
|
852 |
-
array( $this, 'generateAccountDetailsPage' )
|
853 |
-
);
|
854 |
-
}
|
855 |
-
|
856 |
-
|
857 |
-
/* YIKES Inc. Easy MailChimp Settings */
|
858 |
-
add_submenu_page(
|
859 |
-
'yikes-inc-easy-mailchimp',
|
860 |
-
__( 'Settings.' , 'yikes-inc-easy-mailchimp-extender' ),
|
861 |
-
__( 'Settings' , 'yikes-inc-easy-mailchimp-extender' ),
|
862 |
-
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
863 |
-
'yikes-inc-easy-mailchimp-settings',
|
864 |
-
array( $this, 'generatePageOptions' )
|
865 |
-
);
|
866 |
-
|
867 |
-
/* Support Page */
|
868 |
-
add_submenu_page(
|
869 |
-
'yikes-inc-easy-mailchimp',
|
870 |
-
__( 'Support' , 'yikes-inc-easy-mailchimp-extender' ),
|
871 |
-
__( 'Support' , 'yikes-inc-easy-mailchimp-extender' ),
|
872 |
-
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
873 |
-
'yikes-inc-easy-mailchimp-support',
|
874 |
-
array( $this, 'generateSupportPage' )
|
875 |
-
);
|
876 |
-
|
877 |
-
/* Add-Ons Page */
|
878 |
-
add_submenu_page(
|
879 |
-
'yikes-inc-easy-mailchimp',
|
880 |
-
__( 'Add-Ons' , 'yikes-inc-easy-mailchimp-extender' ),
|
881 |
-
__( 'Add-Ons' , 'yikes-inc-easy-mailchimp-extender' ),
|
882 |
-
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
883 |
-
'yikes-inc-easy-mailchimp-addons',
|
884 |
-
array( $this , 'generateAddOnsPage' )
|
885 |
-
);
|
886 |
-
|
887 |
-
/** Hidden Pages **/
|
888 |
-
|
889 |
-
/* Add Hidden Edit Form Page */
|
890 |
-
add_submenu_page(
|
891 |
-
'options.php',
|
892 |
-
__( 'Edit Form' , 'yikes-inc-easy-mailchimp-extender' ),
|
893 |
-
__( 'Edit Form' , 'yikes-inc-easy-mailchimp-extender' ),
|
894 |
-
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
895 |
-
'yikes-mailchimp-edit-form',
|
896 |
-
array( $this, 'generateEditFormPage' )
|
897 |
-
);
|
898 |
-
|
899 |
-
/* Add Hidden Migrate Options Page */
|
900 |
-
add_submenu_page(
|
901 |
-
'options-writing.php',
|
902 |
-
__( 'YIKES Inc. Easy Forms for MailChimp Upgrade Options Structure' , 'yikes-inc-easy-mailchimp-extender' ),
|
903 |
-
'YIKES Inc. Easy Forms for MailChimp Upgrade Options Structure',
|
904 |
-
'manage_options',
|
905 |
-
'yikes-inc-easy-mailchimp-update' ,
|
906 |
-
array( $this , 'migrate_old_yks_mc_options' )
|
907 |
-
);
|
908 |
-
|
909 |
-
/* Add Hidden Welcome Page */
|
910 |
-
add_submenu_page(
|
911 |
-
'options.php',
|
912 |
-
__( 'Welcome' , 'yikes-inc-easy-mailchimp-extender' ),
|
913 |
-
__( 'Welcome' , 'yikes-inc-easy-mailchimp-extender' ),
|
914 |
-
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
915 |
-
'yikes-mailchimp-welcome',
|
916 |
-
array( $this, 'generateWelcomePage' )
|
917 |
-
);
|
918 |
-
|
919 |
-
/* Add Hidden 'View List' Page */
|
920 |
-
add_submenu_page(
|
921 |
-
'options.php',
|
922 |
-
__( 'View List' , 'yikes-inc-easy-mailchimp-extender' ),
|
923 |
-
__( 'View List' , 'yikes-inc-easy-mailchimp-extender' ),
|
924 |
-
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
925 |
-
'yikes-mailchimp-view-list',
|
926 |
-
array( $this, 'generateViewListPage' )
|
927 |
-
);
|
928 |
-
|
929 |
-
/* Add Hidden View User Page */
|
930 |
-
add_submenu_page(
|
931 |
-
'options.php',
|
932 |
-
__( 'View User' , 'yikes-inc-easy-mailchimp-extender' ),
|
933 |
-
__( 'View User' , 'yikes-inc-easy-mailchimp-extender' ),
|
934 |
-
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
935 |
-
'yikes-mailchimp-view-user',
|
936 |
-
array( $this, 'generateViewUserPage' )
|
937 |
-
);
|
938 |
-
|
939 |
-
}
|
940 |
-
|
941 |
-
/*
|
942 |
-
* Redirect a user to an external page
|
943 |
-
* when they click 'Go Pro' in the admin menu
|
944 |
-
* to do: populate with sales URL
|
945 |
-
*/
|
946 |
-
public function generateAddOnsPage() {
|
947 |
-
require_once YIKES_MC_PATH . 'admin/partials/menu/add-ons.php'; // include our add-ons page
|
948 |
-
}
|
949 |
-
|
950 |
-
/**
|
951 |
-
* Generate YIKES Inc. Easy MailChimp Manage Forms Page
|
952 |
-
*
|
953 |
-
* @since 1.0.0
|
954 |
-
*/
|
955 |
-
function generateManageFormsPage() {
|
956 |
-
require_once YIKES_MC_PATH . 'admin/partials/menu/manage-forms.php'; // include our manage forms page
|
957 |
-
}
|
958 |
-
|
959 |
-
/**
|
960 |
-
* Generate YIKES Inc. Easy MailChimp Manage Lists Page
|
961 |
-
*
|
962 |
-
* @since 1.0.0
|
963 |
-
*/
|
964 |
-
function generateManageListsPage() {
|
965 |
-
require_once YIKES_MC_PATH . 'admin/partials/menu/manage-lists.php'; // include our lists page
|
966 |
-
}
|
967 |
-
|
968 |
-
/**
|
969 |
-
* Generate YIKES Inc. Easy MailChimp Account Details Page
|
970 |
-
*
|
971 |
-
* @since 1.0.0
|
972 |
-
*/
|
973 |
-
function generateAccountDetailsPage() {
|
974 |
-
require_once YIKES_MC_PATH . 'admin/partials/menu/account-details.php'; // include our account details page
|
975 |
-
}
|
976 |
-
|
977 |
-
/**
|
978 |
-
* Generate YIKES Inc. Easy MailChimp Support Page
|
979 |
-
*
|
980 |
-
* @since 1.0.0
|
981 |
-
*/
|
982 |
-
function generateSupportPage() {
|
983 |
-
require_once YIKES_MC_PATH . 'admin/partials/menu/support.php'; // include our options page
|
984 |
-
}
|
985 |
-
|
986 |
-
/**
|
987 |
-
* Generate YIKES Inc. Easy MailChimp Edit Form Page
|
988 |
-
*
|
989 |
-
* @since 1.0.0
|
990 |
-
*/
|
991 |
-
function generateEditFormPage() {
|
992 |
-
require_once YIKES_MC_PATH . 'admin/partials/edit-form.php'; // include our options page
|
993 |
-
}
|
994 |
-
|
995 |
-
/**
|
996 |
-
* Generate YIKES Inc. Easy MailChimp Welcome Page
|
997 |
-
*
|
998 |
-
* @since 1.0.0
|
999 |
-
*/
|
1000 |
-
function generateWelcomePage() {
|
1001 |
-
require_once YIKES_MC_PATH . 'admin/partials/welcome-page/welcome.php'; // include our options page
|
1002 |
-
}
|
1003 |
-
|
1004 |
-
/**
|
1005 |
-
* Generate YIKES Inc. Easy MailChimp View List Page
|
1006 |
-
*
|
1007 |
-
* @since 1.0.0
|
1008 |
-
*/
|
1009 |
-
function generateViewListPage() {
|
1010 |
-
require_once YIKES_MC_PATH . 'admin/partials/view-list.php'; // include our options page
|
1011 |
-
}
|
1012 |
-
|
1013 |
-
/**
|
1014 |
-
* Generate YIKES Inc. Easy MailChimp View User Page
|
1015 |
-
*
|
1016 |
-
* @since 1.0.0
|
1017 |
-
*/
|
1018 |
-
function generateViewUserPage() {
|
1019 |
-
require_once YIKES_MC_PATH . 'admin/partials/view-user.php'; // include our options page
|
1020 |
-
}
|
1021 |
-
|
1022 |
-
/**
|
1023 |
-
* Register our plugin settings, and display them on our settings page
|
1024 |
-
*
|
1025 |
-
* @since v.5.4
|
1026 |
-
**/
|
1027 |
-
function yikes_easy_mc_settings_init() {
|
1028 |
-
|
1029 |
-
/* Register General Settings Section */
|
1030 |
-
|
1031 |
-
register_setting( 'yikes_inc_easy_mc_general_settings_page', 'yikes-mc-api-key', array( $this , 'yikes_mc_validate_api_key' ) );
|
1032 |
-
|
1033 |
-
add_settings_section(
|
1034 |
-
'yikes_easy_mc_settings_general_section_callback',
|
1035 |
-
'',
|
1036 |
-
'',
|
1037 |
-
'yikes_inc_easy_mc_general_settings_page'
|
1038 |
-
);
|
1039 |
-
|
1040 |
-
/* Register Visual Representation of Connection */
|
1041 |
-
add_settings_field(
|
1042 |
-
'connection',
|
1043 |
-
__( 'API Connection', 'yikes-inc-easy-mailchimp-extender' ),
|
1044 |
-
'yikes_inc_easy_mc_visual_representation_of_connection_callback', // callback + validation inside of admin/partials/menu/options.php
|
1045 |
-
'yikes_inc_easy_mc_general_settings_page',
|
1046 |
-
'yikes_easy_mc_settings_general_section_callback'
|
1047 |
-
);
|
1048 |
-
|
1049 |
-
/* Register Check Box Setting */
|
1050 |
-
add_settings_field(
|
1051 |
-
'yikes-mc-api-key',
|
1052 |
-
__( 'MailChimp API Key', 'yikes-inc-easy-mailchimp-extender' ),
|
1053 |
-
'yikes_inc_easy_mc_api_key_field_callback', // callback + validation inside of admin/partials/menu/options.php
|
1054 |
-
'yikes_inc_easy_mc_general_settings_page',
|
1055 |
-
'yikes_easy_mc_settings_general_section_callback'
|
1056 |
-
);
|
1057 |
-
|
1058 |
-
/* End General Settings */
|
1059 |
-
|
1060 |
-
/* Checkbox Settings */
|
1061 |
-
register_setting( 'yikes_inc_easy_mc_checkbox_settings_page', 'optin-checkbox-init' );
|
1062 |
-
|
1063 |
-
/* Register General Settings Section */
|
1064 |
-
add_settings_section(
|
1065 |
-
'yikes_inc_easy_mc_checkbox_settings',
|
1066 |
-
'',
|
1067 |
-
'',
|
1068 |
-
'yikes_inc_easy_mc_checkbox_settings_page'
|
1069 |
-
);
|
1070 |
-
|
1071 |
-
add_settings_field(
|
1072 |
-
'optin-checkbox-init',
|
1073 |
-
__( 'Select Checkboxes to Generate', 'yikes-inc-easy-mailchimp-extender' ),
|
1074 |
-
'', // callback + validation inside of admin/partials/menu/options.php
|
1075 |
-
'yikes_inc_easy_mc_checkbox_settings'
|
1076 |
-
);
|
1077 |
-
/* End Checkbox Settings */
|
1078 |
-
|
1079 |
-
/* reCAPTCHA Settings */
|
1080 |
-
|
1081 |
-
register_setting( 'yikes_inc_easy_mc_recaptcha_settings_page' , 'yikes-mc-recaptcha-status' );
|
1082 |
-
register_setting( 'yikes_inc_easy_mc_recaptcha_settings_page' , 'yikes-mc-recaptcha-site-key' );
|
1083 |
-
register_setting( 'yikes_inc_easy_mc_recaptcha_settings_page' , 'yikes-mc-recaptcha-secret-key' );
|
1084 |
-
|
1085 |
-
/* Register reCAPTCHA Settings Section */
|
1086 |
-
add_settings_section(
|
1087 |
-
'yikes_easy_mc_settings_recpatcha_section',
|
1088 |
-
'',
|
1089 |
-
'',
|
1090 |
-
'yikes_inc_easy_mc_recaptcha_settings_page'
|
1091 |
-
);
|
1092 |
-
|
1093 |
-
add_settings_field(
|
1094 |
-
'yikes-mc-recaptcha-site-key',
|
1095 |
-
__( 'Enter reCAPTCHA Site Key', 'yikes-inc-easy-mailchimp-extender' ),
|
1096 |
-
'', // callback + validation inside of admin/partials/menu/options.php
|
1097 |
-
'yikes_easy_mc_settings_recpatcha_section'
|
1098 |
-
);
|
1099 |
-
|
1100 |
-
add_settings_field(
|
1101 |
-
'yikes-mc-recaptcha-secret-key',
|
1102 |
-
__( 'Enter reCAPTCHA Secret Key', 'yikes-inc-easy-mailchimp-extender' ),
|
1103 |
-
'', // callback + validation inside of admin/partials/menu/options.php
|
1104 |
-
'yikes_easy_mc_settings_recpatcha_section'
|
1105 |
-
);
|
1106 |
-
|
1107 |
-
add_settings_field(
|
1108 |
-
'yikes-mc-recaptcha-status',
|
1109 |
-
__( 'Enable ReCaptcha', 'yikes-inc-easy-mailchimp-extender' ),
|
1110 |
-
'', // callback + validation inside of admin/partials/menu/options.php
|
1111 |
-
'yikes_easy_mc_settings_recpatcha_section'
|
1112 |
-
);
|
1113 |
-
|
1114 |
-
/* End reCAPTCHA Settings */
|
1115 |
-
|
1116 |
-
/* Debug Settings */
|
1117 |
-
register_setting( 'yikes_inc_easy_mc_debug_settings_page' , 'yikes-mailchimp-debug-status' );
|
1118 |
-
|
1119 |
-
/* Register Debug Settings Section */
|
1120 |
-
add_settings_section(
|
1121 |
-
'yikes_easy_mc_settings_debug_section',
|
1122 |
-
'',
|
1123 |
-
'',
|
1124 |
-
'yikes_inc_easy_mc_debug_settings_page'
|
1125 |
-
);
|
1126 |
-
|
1127 |
-
add_settings_field(
|
1128 |
-
'yikes-mailchimp-debug-status',
|
1129 |
-
__( 'Enable Debugging', 'yikes-inc-easy-mailchimp-extender' ),
|
1130 |
-
'', // callback + validation inside of admin/partials/menu/options.php
|
1131 |
-
'yikes_easy_mc_settings_debug_section'
|
1132 |
-
);
|
1133 |
-
|
1134 |
-
/* Custom Action Hook For Addon Settings */
|
1135 |
-
// custom action hook to allow our add-ons to take
|
1136 |
-
// advantage of our base settings
|
1137 |
-
do_action( 'yikes-mailchimp-settings-field' );
|
1138 |
-
|
1139 |
-
}
|
1140 |
-
|
1141 |
-
/**
|
1142 |
-
* Options Sanitization & Validation
|
1143 |
-
* @since complete re-write
|
1144 |
-
**/
|
1145 |
-
function yikes_mc_validate_api_key( $input ) {
|
1146 |
-
if( $input == '' ) {
|
1147 |
-
return;
|
1148 |
-
}
|
1149 |
-
$api_key = trim( $input );
|
1150 |
-
$dash_position = strpos( trim( $input ), '-' );
|
1151 |
-
if( $dash_position !== false ) {
|
1152 |
-
$api_endpoint = 'https://' . substr( $api_key, $dash_position + 1 ) . '.api.mailchimp.com/2.0/helper/ping.json';
|
1153 |
-
} else {
|
1154 |
-
update_option( 'yikes-mc-api-invalid-key-response', __( 'Your API key appears to be invalid.', 'yikes-inc-easy-mailchimp-extender' ) );
|
1155 |
-
update_option( 'yikes-mc-api-validation' , 'invalid_api_key' );
|
1156 |
-
return $api_key;
|
1157 |
-
}
|
1158 |
-
$request_args = array(
|
1159 |
-
'body' => array(
|
1160 |
-
'apikey' => $api_key,
|
1161 |
-
),
|
1162 |
-
'timeout' => 10,
|
1163 |
-
'sslverify' => apply_filters( 'yikes-mailchimp-sslverify', true ),
|
1164 |
-
);
|
1165 |
-
$api_key_response = wp_remote_post( $api_endpoint, $request_args );
|
1166 |
-
if( ! is_wp_error( $api_key_response ) ) {
|
1167 |
-
$body = json_decode( wp_remote_retrieve_body( $api_key_response ), true );
|
1168 |
-
if( isset( $body['msg'] ) && $body['msg'] == "Everything's Chimpy!" ) {
|
1169 |
-
update_option( 'yikes-mc-api-validation' , 'valid_api_key' );
|
1170 |
-
}
|
1171 |
-
} else {
|
1172 |
-
require_once YIKES_MC_PATH . 'includes/error_log/class-yikes-inc-easy-mailchimp-error-logging.php';
|
1173 |
-
$error_logging = new Yikes_Inc_Easy_Mailchimp_Error_Logging();
|
1174 |
-
$error_logging->yikes_easy_mailchimp_write_to_error_log( $api_key_response->get_error_message() , __( "Connecting to MailChimp" , 'yikes-inc-easy-mailchimp-extender' ) , __( "Settings Page/General Settings" , 'yikes-inc-easy-mailchimp-extender' ) );
|
1175 |
-
update_option( 'yikes-mc-api-invalid-key-response' , $api_key_response->get_error_message() );
|
1176 |
-
update_option( 'yikes-mc-api-validation' , 'invalid_api_key' );
|
1177 |
-
}
|
1178 |
-
// returned the api key
|
1179 |
-
return $api_key;
|
1180 |
-
}
|
1181 |
-
|
1182 |
-
/**
|
1183 |
-
* Generate YIKES Inc. Easy Forms for MailChimp Options Page
|
1184 |
-
*
|
1185 |
-
* @since 1.0.0
|
1186 |
-
*/
|
1187 |
-
function generatePageOptions() {
|
1188 |
-
require_once YIKES_MC_PATH . 'admin/partials/menu/options.php'; // include our options page
|
1189 |
-
}
|
1190 |
-
|
1191 |
-
/**
|
1192 |
-
* Check if users API key is valid, if not
|
1193 |
-
* this function will apply a disabled attribute
|
1194 |
-
* to form fields. (input, dropdowns, buttons etc.)
|
1195 |
-
* @since v5.5 re-write
|
1196 |
-
**/
|
1197 |
-
public function is_user_mc_api_valid_form( $echo=true ) {
|
1198 |
-
if( $echo == true ) {
|
1199 |
-
if( get_option( 'yikes-mc-api-validation' , 'invalid_api_key' ) == 'invalid_api_key' ) {
|
1200 |
-
echo 'disabled="disabled"';
|
1201 |
-
}
|
1202 |
-
} else {
|
1203 |
-
if( get_option( 'yikes-mc-api-validation' , 'invalid_api_key' ) == 'invalid_api_key' ) {
|
1204 |
-
return false;
|
1205 |
-
} else {
|
1206 |
-
return true;
|
1207 |
-
}
|
1208 |
-
}
|
1209 |
-
}
|
1210 |
-
|
1211 |
-
/**
|
1212 |
-
* Check for existing plugin options
|
1213 |
-
* if they exist, we need to migrate our options to
|
1214 |
-
* the correct WordPress options API (old plugin stored options wierdly)
|
1215 |
-
*
|
1216 |
-
* @since 1.0.0
|
1217 |
-
* @param string $yikes_inc_easy_mailchimp_extender The name of this plugin.
|
1218 |
-
* @param string $version The version of this plugin.
|
1219 |
-
*/
|
1220 |
-
public function check_for_old_yks_mc_options() {
|
1221 |
-
$old_plugin_options = get_option( 'ykseme_storage' );
|
1222 |
-
// only perform options migrations if the site is not a multi-site setup
|
1223 |
-
if ( !is_multisite() ) {
|
1224 |
-
if( apply_filters( 'yikes_mc_old_options_filter' , $old_plugin_options ) ) {
|
1225 |
-
// display a notice to the user that they should 'migrate'
|
1226 |
-
// from the old plugin settings to the new ones
|
1227 |
-
add_action( 'admin_notices', array( $this , 'display_options_migrate_notice' ) , 11 );
|
1228 |
-
}
|
1229 |
-
}
|
1230 |
-
}
|
1231 |
-
|
1232 |
-
/**
|
1233 |
-
* Migrate our old options , to the new options API
|
1234 |
-
* moving from 5.5 and beyond..
|
1235 |
-
* @since
|
1236 |
-
*/
|
1237 |
-
public function migrate_old_yks_mc_options() {
|
1238 |
-
// include our migrate options helper file
|
1239 |
-
include_once YIKES_MC_PATH . 'admin/partials/upgrade-helpers/upgrade-migrate-options.php';
|
1240 |
-
}
|
1241 |
-
|
1242 |
-
/**
|
1243 |
-
Admin Notices
|
1244 |
-
- Notifications displayed at the top of admin pages, back to the user
|
1245 |
-
**/
|
1246 |
-
|
1247 |
-
/**
|
1248 |
-
* Check for existing plugin options
|
1249 |
-
* if they exist, we need to migrate our options to
|
1250 |
-
* the correct WordPress options API (old plugin stored options wierdly)
|
1251 |
-
*
|
1252 |
-
* @since 1.0.0
|
1253 |
-
* @param string $yikes_inc_easy_mailchimp_extender The name of this plugin.
|
1254 |
-
* @param string $version The version of this plugin.
|
1255 |
-
*/
|
1256 |
-
public function display_options_migrate_notice() {
|
1257 |
-
|
1258 |
-
// Confirm that the necessary forms table in the database exists, else bail
|
1259 |
-
global $wpdb;
|
1260 |
-
if( $wpdb->get_var("show tables like '" . $wpdb->prefix . "yikes_easy_mc_forms'") != $wpdb->prefix . "yikes_easy_mc_forms" ) {
|
1261 |
-
return;
|
1262 |
-
}
|
1263 |
-
|
1264 |
-
if( isset( $_GET['yikes-mc-options-migration-dismissed'] ) && $_GET['yikes-mc-options-migration-dismissed'] == 'true' ) {
|
1265 |
-
// Delete the options, start a-new! (this will disable the migration notice altogether)
|
1266 |
-
delete_option( 'widget_yikes_mc_widget' );
|
1267 |
-
delete_option( 'api_validation' );
|
1268 |
-
delete_option( 'ykseme_storage' );
|
1269 |
-
delete_option( 'yikes-mc-lists' );
|
1270 |
-
?>
|
1271 |
-
<div class="yikes-easy-mc-updated migrate-options-notice">
|
1272 |
-
<p><?php printf( __( "The previously stored options for %s have been cleared from the database. You should update the plugin options on the <a href='%s' title='Settings Page'>settings page</a> before continuing. You should also update the shortcodes used to generate your forms, and any widgets you may have previously set-up.", 'yikes-inc-easy-mailchimp-extender' ), '<strong>YIKES Inc. Easy Forms for MailChimp</strong>', admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings' ) ); ?></p>
|
1273 |
-
</div>
|
1274 |
-
<?php
|
1275 |
-
} else {
|
1276 |
-
?>
|
1277 |
-
<div class="yikes-easy-mc-updated migrate-options-notice">
|
1278 |
-
<p><?php printf( __( "It looks like you're upgrading from a previous version of %s.", 'yikes-inc-easy-mailchimp-extender' ), '<strong>YIKES Inc. Easy Forms for MailChimp</strong>' ); ?> <?php printf( __( "In the newest version of %s, the options data structure has changed. We've also moved the mailing lists into its own database table to allow for some higher level customization. Now you can easily create multiple forms and assign them to the same mailing list." , 'yikes-inc-easy-mailchimp-extender' ), '<strong>YIKES Inc. Easy Forms for MailChimp</strong>' ); ?></p>
|
1279 |
-
<p><?php _e( "Before you continue, it's strongly recommended you the perform the migration to ensure the plugin continues to function properly.", 'yikes-inc-easy-mailchimp-extender' ); ?></p>
|
1280 |
-
<p><em><?php _e( "It's also strongly recommended that you take a backup of your database.", 'yikes-inc-easy-mailchimp-extender' ); ?></em></p>
|
1281 |
-
<section id="migration-buttons">
|
1282 |
-
<!-- migrate button -->
|
1283 |
-
<form>
|
1284 |
-
<input type="hidden" name="yikes-mc-update-option-structure" value="yikes-mc-update-option-structure" />
|
1285 |
-
<a href="<?php echo wp_nonce_url( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-update' ) ), 'yikes-mc-migrate-options' , 'migrate_options_nonce' ); ?>" class="button-secondary"><?php _e( 'Perform Migration' , 'yikes-inc-easy-mailchimp-extender' ); ?></a>
|
1286 |
-
</form>
|
1287 |
-
<!-- dismiss button -->
|
1288 |
-
<form>
|
1289 |
-
<a href="<?php echo wp_nonce_url( esc_url_raw( admin_url() ), 'yikes-mc-dismiss-migration' , 'dismiss_migration_nonce' ); ?>" class="button-secondary"><?php _e( 'Dismiss Notice' , 'yikes-inc-easy-mailchimp-extender' ); ?></a>
|
1290 |
-
</form>
|
1291 |
-
</section>
|
1292 |
-
|
1293 |
-
</div>
|
1294 |
-
<?php
|
1295 |
-
}
|
1296 |
-
}
|
1297 |
-
|
1298 |
-
/*
|
1299 |
-
* Search through multi dimensional array
|
1300 |
-
* and return the index ( used to find the list name assigned to a form )
|
1301 |
-
* - http://stackoverflow.com/questions/6661530/php-multi-dimensional-array-search
|
1302 |
-
*/
|
1303 |
-
function findMCListID($id, $array) {
|
1304 |
-
foreach ($array as $key => $val) {
|
1305 |
-
if ($val['id'] === $id) {
|
1306 |
-
return $key;
|
1307 |
-
}
|
1308 |
-
}
|
1309 |
-
return null;
|
1310 |
-
} // end
|
1311 |
-
|
1312 |
-
/* Ajax Migrate Options */
|
1313 |
-
function migrate_archived_options() {
|
1314 |
-
// all options prefixed with 'yikes-mc-'
|
1315 |
-
$option_name = 'yikes-mc-'.$_POST['option_name'];
|
1316 |
-
$option_value = $_POST['option_value'];
|
1317 |
-
if( json_decode( $option_value ) ) {
|
1318 |
-
// decode our lists() array, and store it
|
1319 |
-
$opt_value = json_decode( $option_value, true );
|
1320 |
-
} else {
|
1321 |
-
$opt_value = $option_value;
|
1322 |
-
}
|
1323 |
-
update_option( $option_name, $opt_value );
|
1324 |
-
wp_die(); // this is required to terminate immediately and return a proper response
|
1325 |
-
exit;
|
1326 |
-
}
|
1327 |
-
|
1328 |
-
/* Ajax Migrate Forms */
|
1329 |
-
function migrate_previously_setup_forms() {
|
1330 |
-
$option_name = $_POST['option_name'];
|
1331 |
-
$done = $_POST['done_import'];
|
1332 |
-
// Create some starter forms for the user
|
1333 |
-
// based on previously imported lists (to our old version)
|
1334 |
-
if( $option_name == 'yikes-mc-lists' ) {
|
1335 |
-
global $wpdb;
|
1336 |
-
$option_value = $_POST['option_value'];
|
1337 |
-
$new_options = json_decode( stripslashes_deep( $option_value ) , true );
|
1338 |
-
|
1339 |
-
$list_id = $new_options['id'];
|
1340 |
-
$form_name = $new_options['name'];
|
1341 |
-
$fields = $new_options['fields']; // our fields array
|
1342 |
-
|
1343 |
-
$custom_styles = isset( $new_options['custom_styles'] ) ? json_encode( $new_options['custom_styles'] ) : '0'; // store as an array with all of our styles
|
1344 |
-
$custom_template = isset( $new_options['custom_template'] ) ? json_encode( $new_options['custom_template'] ) : '0'; // store template data as an array ( active , template used )
|
1345 |
-
$send_welcome_email = isset( $new_options['yks_mailchimp_send_welcome_'.$list_id] ) ? '0' : '1';
|
1346 |
-
$redirect_user_on_submit = isset( $new_options['yks_mailchimp_redirect_'.$list_id] ) ? '1' : '0';
|
1347 |
-
$redirect_page = isset( $new_options['page_id_'.$list_id] ) ? $new_options['page_id_'.$list_id] : '';
|
1348 |
-
|
1349 |
-
/* Insert Forms Function */
|
1350 |
-
$wpdb->insert(
|
1351 |
-
$wpdb->prefix . 'yikes_easy_mc_forms',
|
1352 |
-
array(
|
1353 |
-
'list_id' => $list_id,
|
1354 |
-
'form_name' => $form_name,
|
1355 |
-
'form_description' => '',
|
1356 |
-
'fields' => json_encode( $fields ),
|
1357 |
-
'custom_styles' => $custom_styles,
|
1358 |
-
'custom_template' => $custom_template,
|
1359 |
-
'send_welcome_email' => $send_welcome_email,
|
1360 |
-
'redirect_user_on_submit' => $redirect_user_on_submit,
|
1361 |
-
'redirect_page' => $redirect_page,
|
1362 |
-
'submission_settings' => '',
|
1363 |
-
'optin_settings' => '',
|
1364 |
-
'error_messages' => '',
|
1365 |
-
'custom_notifications' => '',
|
1366 |
-
'impressions' => '0',
|
1367 |
-
'submissions' => '0',
|
1368 |
-
'custom_fields' => '',
|
1369 |
-
)
|
1370 |
-
);
|
1371 |
-
}
|
1372 |
-
if( $done == 'done' ) {
|
1373 |
-
wp_send_json( array( 'form_name' => $form_name, 'completed_import' => true ) );
|
1374 |
-
} else {
|
1375 |
-
wp_send_json( array( 'form_name' => $form_name, 'completed_import' => false ) );
|
1376 |
-
}
|
1377 |
-
wp_die();
|
1378 |
-
exit;
|
1379 |
-
}
|
1380 |
-
|
1381 |
-
/*
|
1382 |
-
* generate_options_pages_sidebar_menu();
|
1383 |
-
* Render our sidebar menu on all of the setings pages (general, form, checkbox, recaptcha, popup, debug etc. )
|
1384 |
-
* @since v5.6 - complete re-write
|
1385 |
-
*/
|
1386 |
-
public function generate_options_pages_sidebar_menu() {
|
1387 |
-
if( isset( $_REQUEST['section'] ) ) {
|
1388 |
-
$selected = $_REQUEST['section'];
|
1389 |
-
}
|
1390 |
-
$installed_addons = get_option( 'yikes-easy-mc-active-addons' , array() );
|
1391 |
-
// sort our addons array alphabetically so they appear in similar orders across all sites
|
1392 |
-
asort( $installed_addons );
|
1393 |
-
?>
|
1394 |
-
<h3><span><?php _e( 'Additional Settings' , 'yikes-inc-easy-mailchimp-extender' ); ?></span></h3>
|
1395 |
-
<div class="inside">
|
1396 |
-
<ul id="settings-nav">
|
1397 |
-
<li><?php if( isset( $_REQUEST['section'] ) && $_REQUEST['section'] == 'general-settings' || !isset( $_REQUEST['section'] ) ) { ?><div class="option-menu-selected-arrow"></div><?php } ?><a href="<?php echo esc_url_raw( add_query_arg( array( 'section' => 'general-settings' ) , admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=general-settings' ) ) ); ?>"><?php _e( 'General Settings' , 'yikes-inc-easy-mailchimp-extender' ); ?></a></li>
|
1398 |
-
<li><?php if( isset( $_REQUEST['section'] ) && $_REQUEST['section'] == 'integration-settings' ) { ?><div class="option-menu-selected-arrow"></div><?php } ?><a href="<?php echo esc_url_raw( add_query_arg( array( 'section' => 'integration-settings' ) , admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=integration-settings' ) ) ); ?>"><?php _e( 'Integration Settings' , 'yikes-inc-easy-mailchimp-extender' ); ?></a></li>
|
1399 |
-
<li><?php if( isset( $_REQUEST['section'] ) && $_REQUEST['section'] == 'recaptcha-settings' ) { ?><div class="option-menu-selected-arrow"></div><?php } ?><a href="<?php echo esc_url_raw( add_query_arg( array( 'section' => 'recaptcha-settings' ) , admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=recaptcha-settings' ) ) ); ?>"><?php _e( 'ReCaptcha Settings' , 'yikes-inc-easy-mailchimp-extender' ); ?></a></li>
|
1400 |
-
<li><?php if( isset( $_REQUEST['section'] ) && $_REQUEST['section'] == 'api-cache-settings' ) { ?><div class="option-menu-selected-arrow"></div><?php } ?><a href="<?php echo esc_url_raw( add_query_arg( array( 'section' => 'api-cache-settings' ) , admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=api-cache-settings' ) ) ); ?>"><?php _e( 'API Cache Settings' , 'yikes-inc-easy-mailchimp-extender' ); ?></a></li>
|
1401 |
-
<li><?php if( isset( $_REQUEST['section'] ) && $_REQUEST['section'] == 'debug-settings' ) { ?><div class="option-menu-selected-arrow"></div><?php } ?><a href="<?php echo esc_url_raw( add_query_arg( array( 'section' => 'debug-settings' ) , admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=debug-settings' ) ) ); ?>"><?php _e( 'Debug Settings' , 'yikes-inc-easy-mailchimp-extender' ); ?></a></li>
|
1402 |
-
<li><?php if( isset( $_REQUEST['section'] ) && $_REQUEST['section'] == 'import-export-forms' ) { ?><div class="option-menu-selected-arrow"></div><?php } ?><a href="<?php echo esc_url_raw( add_query_arg( array( 'section' => 'import-export-forms' ) , admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=import-export-forms' ) ) ); ?>"><?php _e( 'Import/Export' , 'yikes-inc-easy-mailchimp-extender' ); ?></a></li>
|
1403 |
-
</ul>
|
1404 |
-
<?php
|
1405 |
-
// create our add-on settings pages
|
1406 |
-
if( !empty( $installed_addons ) ) {
|
1407 |
-
?>
|
1408 |
-
<hr class="add-on-settings-divider" />
|
1409 |
-
<strong><?php _e( 'Addon Settings' , 'yikes-inc-easy-mailchimp-extender' ); ?></strong>
|
1410 |
-
<ul id="addon-settings-nav">
|
1411 |
-
<?php
|
1412 |
-
foreach( $installed_addons as $addon_name ) {
|
1413 |
-
?>
|
1414 |
-
<li>
|
1415 |
-
<?php if( isset( $_REQUEST['section'] ) && $_REQUEST['section'] == $addon_name ) { ?><div class="option-menu-selected-arrow"></div><?php } ?><a href="<?php echo esc_url_raw( add_query_arg( array( 'section' => $addon_name, 'addon' => 'true' ) , admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion='.$addon_name ) ) ); ?>"><?php echo ucwords( str_replace( '-' , ' ' , $addon_name ) ); ?></a></li>
|
1416 |
-
<?php
|
1417 |
-
}
|
1418 |
-
?>
|
1419 |
-
</ul>
|
1420 |
-
<?php
|
1421 |
-
}
|
1422 |
-
?>
|
1423 |
-
</div> <!-- .inside -->
|
1424 |
-
<?php
|
1425 |
-
}
|
1426 |
-
|
1427 |
-
/*
|
1428 |
-
* generate_manage_forms_sidebar();
|
1429 |
-
* Render our sidebar menu on all of the setings pages (general, form, checkbox, recaptcha, popup, debug etc. )
|
1430 |
-
* @since v5.6 - complete re-write
|
1431 |
-
*/
|
1432 |
-
public function generate_manage_forms_sidebar( $lists ) {
|
1433 |
-
// create a custom URL to allow for creating fields
|
1434 |
-
$url = esc_url_raw(
|
1435 |
-
add_query_arg(
|
1436 |
-
array(
|
1437 |
-
'action' => 'yikes-easy-mc-create-form',
|
1438 |
-
'nonce' => wp_create_nonce( 'create_mailchimp_form' )
|
1439 |
-
)
|
1440 |
-
)
|
1441 |
-
);
|
1442 |
-
?>
|
1443 |
-
<h3><?php _e( 'Create a New Signup Form' , 'yikes-inc-easy-mailchimp-extender' ); ?></h3>
|
1444 |
-
|
1445 |
-
<div class="inside">
|
1446 |
-
|
1447 |
-
<p class="description"><?php _e( "Give your form a name, select a MailChimp list to assign users to, then click 'Create'.", 'yikes-inc-easy-mailchimp-extender' ); ?></p>
|
1448 |
-
|
1449 |
-
<form id="import-list-to-site" method="POST" action="<?php echo $url; ?>">
|
1450 |
-
<input type="hidden" name="import-list-to-site" value="1" />
|
1451 |
-
<!-- Name your new form -->
|
1452 |
-
<label for="form-name"><strong><?php _e( 'Form Name' , 'yikes-inc-easy-mailchimp-extender' ); ?></strong>
|
1453 |
-
<input type="text" class="widefat input-field" placeholder="<?php _e( 'Form Name' , 'yikes-inc-easy-mailchimp-extender' ); ?>" name="form-name" id="form-name" <?php $this->is_user_mc_api_valid_form( true ); ?> required>
|
1454 |
-
</label>
|
1455 |
-
<!-- Name your new form -->
|
1456 |
-
<label for="form-description"><strong><?php _e( 'Form Description' , 'yikes-inc-easy-mailchimp-extender' ); ?></strong>
|
1457 |
-
<textarea class="widefat input-field form-description" placeholder="<?php _e( 'Form Description' , 'yikes-inc-easy-mailchimp-extender' ); ?>" name="form-description" id="form-description" <?php $this->is_user_mc_api_valid_form( true ); ?>></textarea>
|
1458 |
-
</label>
|
1459 |
-
<!-- Associate this form with a list! -->
|
1460 |
-
<label for="associated-list"><strong><?php _e( 'Associated List' , 'yikes-inc-easy-mailchimp-extender' ); ?></strong>
|
1461 |
-
<select name="associated-list" id="associated-list" class=" input-field" <?php $this->is_user_mc_api_valid_form( true ); if( isset( $lists ) && empty( $lists ) ) { echo 'disabled="disabled"'; } ?>>
|
1462 |
-
<?php
|
1463 |
-
if( isset( $lists ) && !empty( $lists ) ) {
|
1464 |
-
foreach( $lists as $mailing_list ) {
|
1465 |
-
?>
|
1466 |
-
<option value="<?php echo $mailing_list['id']; ?>"><?php echo stripslashes( $mailing_list['name'] ) . ' (' . $mailing_list['stats']['member_count'] . ') '; ?></option>
|
1467 |
-
<?php
|
1468 |
-
}
|
1469 |
-
} else {
|
1470 |
-
if( get_option( 'yikes-mc-api-validation' , 'invalid_api_key' ) == 'invalid_api_key' ) {
|
1471 |
-
?>
|
1472 |
-
<option><?php echo __( "Please enter a valid API key." , 'yikes-inc-easy-mailchimp-extender' ); ?></option>
|
1473 |
-
<?php
|
1474 |
-
} else {
|
1475 |
-
?>
|
1476 |
-
<option><?php echo __( "No lists were found on the account." , 'yikes-inc-easy-mailchimp-extender' ); ?></option>
|
1477 |
-
<?php
|
1478 |
-
|
1479 |
-
}
|
1480 |
-
}
|
1481 |
-
?>
|
1482 |
-
</select>
|
1483 |
-
<?php
|
1484 |
-
if( isset( $lists ) && empty( $lists ) ) {
|
1485 |
-
if( get_option( 'yikes-mc-api-validation' , 'invalid_api_key' ) != 'invalid_api_key' ) {
|
1486 |
-
?>
|
1487 |
-
<p class="description">
|
1488 |
-
<?php printf( __( 'Head over to <a href="http://www.MailChimp.com" title="%s">MailChimp</a> to create a new list.', 'yikes-inc-easy-mailchimp-extender' ) , __( 'Create a list' , 'yikes-inc-easy-mailchimp-extender' ) ); ?>
|
1489 |
-
</p>
|
1490 |
-
<?php
|
1491 |
-
}
|
1492 |
-
}
|
1493 |
-
?>
|
1494 |
-
</label>
|
1495 |
-
<?php
|
1496 |
-
if( $this->is_user_mc_api_valid_form( false ) ) {
|
1497 |
-
echo submit_button( __( 'Create', 'yikes-inc-easy-mailchimp-extender' ) , 'primary' , '' , false , array( 'style' => 'margin:.75em 0 .5em 0;' ) );
|
1498 |
-
} else {
|
1499 |
-
echo '<p class="description">' . __( "Please enter a valid MailChimp API key to get started." , 'yikes-inc-easy-mailchimp-extender' ) . '</p>';
|
1500 |
-
?>
|
1501 |
-
<a href="<?php echo esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings&settings-updated=true' ) ); ?>"><?php _e( 'general settings' , 'yikes-inc-easy-mailchimp-extender' ); ?></a>
|
1502 |
-
<?php
|
1503 |
-
}
|
1504 |
-
?>
|
1505 |
-
</form>
|
1506 |
-
</div> <!-- .inside -->
|
1507 |
-
<?php
|
1508 |
-
}
|
1509 |
-
|
1510 |
-
/*
|
1511 |
-
* Generate a dropdown of post and pages
|
1512 |
-
* so the user can send the user to on form submission
|
1513 |
-
*/
|
1514 |
-
public function generate_page_redirect_dropdown( $redirect, $redirect_page, $custom_redirect_url ) {
|
1515 |
-
$post_types = get_post_types();
|
1516 |
-
?>
|
1517 |
-
<label id="redirect-user-to-selection-label" for="redirect-user-to-selection" class="<?php if( $redirect == '0' ) { echo 'yikes-easy-mc-hidden'; } ?>">
|
1518 |
-
<?php _e( "Select A Page or Post" , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1519 |
-
<select id="redirect-user-to-selection" name="redirect-user-to-selection" onchange="shouldWeDisplayCustomURL( this );return;">
|
1520 |
-
<?php
|
1521 |
-
// loop over registered post types, and query!
|
1522 |
-
foreach( $post_types as $registered_post_type ) {
|
1523 |
-
// exclude a few built in custom post types
|
1524 |
-
if( ! in_array( $registered_post_type , array( 'attachment' , 'revision' , 'nav_menu_item' ) ) ) {
|
1525 |
-
// run our query, to retreive the posts
|
1526 |
-
$pages = get_posts( array(
|
1527 |
-
'order' => 'ASC',
|
1528 |
-
'orderby' => 'post_title',
|
1529 |
-
'post_type' => $registered_post_type,
|
1530 |
-
'post_status' => 'publish',
|
1531 |
-
'numberposts' => -1
|
1532 |
-
) );
|
1533 |
-
// only show cpt's that have posts assigned
|
1534 |
-
if( !empty( $pages ) ) {
|
1535 |
-
?>
|
1536 |
-
<optgroup label="<?php echo ucwords( str_replace( '_' , ' ' , $registered_post_type ) ); ?>">
|
1537 |
-
<?php
|
1538 |
-
foreach( $pages as $page ) {
|
1539 |
-
?><option <?php selected( $redirect_page , $page->ID ); ?> value="<?php echo $page->ID; ?>"><?php echo $page->post_title; ?></option><?php
|
1540 |
-
}
|
1541 |
-
?>
|
1542 |
-
<option <?php selected( $redirect_page, 'custom_url' ); ?> value="custom_url"><?php echo __( 'Custom URL', 'yikes-inc-easy-mailchimp-extender' ); ?></option>
|
1543 |
-
</optgroup>
|
1544 |
-
<?php
|
1545 |
-
}
|
1546 |
-
}
|
1547 |
-
}
|
1548 |
-
?>
|
1549 |
-
</select>
|
1550 |
-
|
1551 |
-
<label name="custom-redirect-url" class="custom_redirect_url_label" <?php if( ! isset( $redirect_page ) || $redirect_page != 'custom_url' ) { echo 'style="display:none;"'; } ?>>
|
1552 |
-
<?php _e( "Enter Custom URL" , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1553 |
-
<input type="text" class="widefat custom-redirect-url" name="custom-redirect-url" value="<?php echo $custom_redirect_url; ?>" />
|
1554 |
-
</label>
|
1555 |
-
|
1556 |
-
</label>
|
1557 |
-
<?php
|
1558 |
-
}
|
1559 |
-
|
1560 |
-
/*
|
1561 |
-
* generate_show_some_love_container()
|
1562 |
-
* Generate a container, with some author info
|
1563 |
-
*
|
1564 |
-
* Displayed in sidebars
|
1565 |
-
*/
|
1566 |
-
public function generate_show_some_love_container() {
|
1567 |
-
// if no active add-ons are installed,
|
1568 |
-
// lets display our branding and add-on sidebar
|
1569 |
-
if( get_option( 'yikes-easy-mc-active-addons' , array() ) == array() ) {
|
1570 |
-
|
1571 |
-
/* On Edit Forms Page Display Upsell to Customizer */
|
1572 |
-
$screen = get_current_screen();
|
1573 |
-
if( isset( $screen ) && $screen->base == 'admin_page_yikes-mailchimp-edit-form' ) {
|
1574 |
-
?>
|
1575 |
-
|
1576 |
-
<div class="postbox yikes-easy-mc-postbox show-some-love-container">
|
1577 |
-
|
1578 |
-
<?php $this->generate_edit_forms_upsell_ad(); ?>
|
1579 |
-
|
1580 |
-
</div>
|
1581 |
-
|
1582 |
-
<?php } else { ?>
|
1583 |
-
|
1584 |
-
<div class="postbox yikes-easy-mc-postbox show-some-love-container">
|
1585 |
-
|
1586 |
-
<!-- review us container -->
|
1587 |
-
<h3 data-alt-text="<?php _e( 'About YIKES Inc.', 'yikes-inc-easy-mailchimp-extender' ); ?>"><?php _e( 'Show YIKES Inc. Some Love' , 'yikes-inc-easy-mailchimp-extender' ); ?></h3>
|
1588 |
-
<div id="review-yikes-easy-mc" class="inside">
|
1589 |
-
|
1590 |
-
<p>
|
1591 |
-
<?php _e( 'Leave a review' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1592 |
-
<p class="star-container">
|
1593 |
-
<a href="https://wordpress.org/support/view/plugin-reviews/yikes-inc-easy-mailchimp-extender" target="_blank">
|
1594 |
-
<b class="dashicons dashicons-star-filled"></b>
|
1595 |
-
<b class="dashicons dashicons-star-filled"></b>
|
1596 |
-
<b class="dashicons dashicons-star-filled"></b>
|
1597 |
-
<b class="dashicons dashicons-star-filled"></b>
|
1598 |
-
<b class="dashicons dashicons-star-filled"></b>
|
1599 |
-
</a>
|
1600 |
-
</p>
|
1601 |
-
</p>
|
1602 |
-
|
1603 |
-
<?php _e( 'Tweet about it' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1604 |
-
<p class="sidebar-container">
|
1605 |
-
<a href="https://twitter.com/share" class="twitter-share-button" data-url="https://wordpress.org/plugins/yikes-inc-easy-mailchimp-extender/" data-text="I'm using the Easy Forms for MailChimp plugin by @YikesInc to grow my mailing list - it's awesome! -" data-hashtags="MailChimp">Tweet</a>
|
1606 |
-
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
|
1607 |
-
</p>
|
1608 |
-
|
1609 |
-
<?php _e( 'Vote that the plugin works' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1610 |
-
<p class="sidebar-container">
|
1611 |
-
<a href="https://wordpress.org/plugins/yikes-inc-easy-mailchimp-extender/" target="_blank">
|
1612 |
-
<?php _e( 'Vote for Compatibility' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1613 |
-
</a>
|
1614 |
-
</p>
|
1615 |
-
</div>
|
1616 |
-
|
1617 |
-
<p class="description sidebar-footer-text"><?php printf( __( "This plugin made with %s by %s" , 'yikes-inc-easy-mailchimp-extender' ), '<span class="dashicons dashicons-heart yikes-love"></span>', '<a href="http://www.yikesinc.com" target="_blank" title="YIKES Inc.">YIKES Inc.</a>' ); ?> </p>
|
1618 |
-
|
1619 |
-
<section id="about-yikes-inc" class="inside">
|
1620 |
-
<a href="https://www.yikesinc.com" target="_blank" title="YIKES Inc.">
|
1621 |
-
<img src="<?php echo YIKES_MC_URL . 'includes/images/About_Page/yikes-logo.png'; ?>" class="about-sidebar-yikes-logo" />
|
1622 |
-
</a>
|
1623 |
-
<p><strong>YIKES Inc.</strong> — <?php _e( 'is a web design and development company located in Philadelphia, Pennsylvania, US. YIKES specializes in custom WordPress theme and plugin development, site maintenance, eCommerce, custom-built web-based applications and more.', 'yikes-inc-easy-mailchimp-extender' ); ?></p>
|
1624 |
-
</section>
|
1625 |
-
|
1626 |
-
<p class="description sidebar-footer-text"><a href="#" class="about-yikes-inc-toggle" data-alt-text="<?php _e( 'Show YIKES Some Love', 'yikes-inc-easy-mailchimp-extender' ); ?>"><?php _e( 'About YIKES', 'yikes-inc-easy-mailchimp-extender' ); ?></a></p>
|
1627 |
-
|
1628 |
-
</div>
|
1629 |
-
|
1630 |
-
<?php } ?>
|
1631 |
-
|
1632 |
-
<div class="postbox yikes-easy-mc-postbox">
|
1633 |
-
|
1634 |
-
<!-- review us container -->
|
1635 |
-
<h3><?php _e( 'Easy Forms for MailChimp Add-Ons' , 'yikes-inc-easy-mailchimp-extender' ); ?></h3>
|
1636 |
-
<div id="review-yikes-easy-mc" class="inside">
|
1637 |
-
<p><?php _e( "Check out available add-ons for some seriously enhanced features." , 'yikes-inc-easy-mailchimp-extender' ); ?></p>
|
1638 |
-
<p><a class="button-secondary" href="<?php echo esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-addons' ) ); ?>" title="<?php _e( 'View Add-Ons' , 'yikes-inc-easy-mailchimp-extender' ); ?>"><?php _e( 'View Add-Ons' , 'yikes-inc-easy-mailchimp-extender' ); ?></a></p>
|
1639 |
-
</div>
|
1640 |
-
|
1641 |
-
</div>
|
1642 |
-
<?php
|
1643 |
-
}
|
1644 |
-
|
1645 |
-
/**
|
1646 |
-
* Custom action hook for our extensions to hook into
|
1647 |
-
* @parameter get_current_screen() current screen information
|
1648 |
-
*/
|
1649 |
-
do_action( 'yikes-mailchimp-admin-sidebar', get_current_screen() );
|
1650 |
-
|
1651 |
-
}
|
1652 |
-
|
1653 |
-
/*
|
1654 |
-
* generate_form_editor( $list_id )
|
1655 |
-
* Submit an API request to get our merge variables, and build up a small form editor
|
1656 |
-
* for users to 'customize' their form
|
1657 |
-
* -
|
1658 |
-
* @parameters - $list_id - pass in the list ID to retreive merge variables from
|
1659 |
-
*/
|
1660 |
-
public function generate_form_editor( $form_fields, $list_id, $merge_variables, $interest_groups ) {
|
1661 |
-
|
1662 |
-
// if no list id, die!
|
1663 |
-
if( ! $list_id ) {
|
1664 |
-
die( __( "We've encountered an error. No list ID was sent." , 'yikes-inc-easy-mailchimp-extender' ) );
|
1665 |
-
}
|
1666 |
-
|
1667 |
-
if( ! $merge_variables ) {
|
1668 |
-
die( __( "We've encountered an error. Reload the page and try again. If the error persists, please reach out to support." , 'yikes-inc-easy-mailchimp-extender' ) );
|
1669 |
-
}
|
1670 |
-
|
1671 |
-
if( ! empty( $form_fields ) ) {
|
1672 |
-
|
1673 |
-
// find any fields that are assigned to this form, that don't exist in MailChimp
|
1674 |
-
// or else were going to run into issues when we submit the form
|
1675 |
-
$available_merge_variables = array();
|
1676 |
-
$available_interest_groups = array();
|
1677 |
-
|
1678 |
-
$assigned_fields= array();
|
1679 |
-
|
1680 |
-
// loop over merge variables
|
1681 |
-
if( ! empty( $merge_variables['data'][0]['merge_vars'] ) ) {
|
1682 |
-
foreach( $merge_variables['data'][0]['merge_vars'] as $merge_tag ) {
|
1683 |
-
$available_merge_variables[] = $merge_tag['tag'];
|
1684 |
-
}
|
1685 |
-
}
|
1686 |
-
|
1687 |
-
// loop over interest groups
|
1688 |
-
if( ! empty( $interest_groups ) && ! isset( $interest_groups['error'] ) ) {
|
1689 |
-
foreach( $interest_groups as $interest_group ) {
|
1690 |
-
$available_interest_groups[] = $interest_group['id'];
|
1691 |
-
}
|
1692 |
-
}
|
1693 |
-
|
1694 |
-
// build our assigned fields
|
1695 |
-
foreach( $form_fields as $field => $value ) {
|
1696 |
-
$assigned_fields[] = $field;
|
1697 |
-
}
|
1698 |
-
|
1699 |
-
$merged_fields = array_merge( $available_merge_variables , $available_interest_groups );
|
1700 |
-
$excluded_fields = array_diff( $assigned_fields , $merged_fields );
|
1701 |
-
|
1702 |
-
$i = 1;
|
1703 |
-
foreach( $form_fields as $field ) {
|
1704 |
-
|
1705 |
-
if( isset( $field['merge'] ) ) {
|
1706 |
-
?>
|
1707 |
-
<section class="draggable" id="<?php echo $field['merge']; ?>">
|
1708 |
-
<!-- top -->
|
1709 |
-
<a href="#" class="expansion-section-title settings-sidebar">
|
1710 |
-
<span class="dashicons dashicons-plus"></span><?php echo stripslashes( $field['label'] ); ?>
|
1711 |
-
<?php if( in_array( $field['merge'] , $excluded_fields ) ) { ?>
|
1712 |
-
<img src="<?php echo YIKES_MC_URL . 'includes/images/warning.svg'; ?>" class="field-doesnt-exist-notice" title="<?php _e( 'Field no longer exists.' , 'yikes-inc-easy-mailchimp-extender' ); ?>" alt="<?php _e( 'Field no longer exists.' , 'yikes-inc-easy-mailchimp-extender' ); ?>">
|
1713 |
-
<?php } ?>
|
1714 |
-
<span class="field-type-text"><small><?php echo __( 'type' , 'yikes-inc-easy-mailchimp-extender' ) . ' : ' . $field['type']; ?></small></span>
|
1715 |
-
</a>
|
1716 |
-
<!-- expansion section -->
|
1717 |
-
<div class="yikes-mc-settings-expansion-section">
|
1718 |
-
|
1719 |
-
<?php if( in_array( $field['merge'] , $excluded_fields ) ) { ?>
|
1720 |
-
<p class="yikes-mc-warning-message"><?php _e( "This field no longer exists in this list. Delete this field from the form to prevent issues on your website." , 'yikes-inc-easy-mailchimp-extender' ); ?></p>
|
1721 |
-
<?php } ?>
|
1722 |
-
|
1723 |
-
<!-- store the label -->
|
1724 |
-
<input type="hidden" name="field[<?php echo $field['merge']; ?>][label]" value="<?php echo $field['label']; ?>" />
|
1725 |
-
<input type="hidden" name="field[<?php echo $field['merge']; ?>][type]" value="<?php echo $field['type']; ?>" />
|
1726 |
-
<input type="hidden" name="field[<?php echo $field['merge']; ?>][merge]" value="<?php echo $field['merge']; ?>" />
|
1727 |
-
<input type="hidden" class="field-<?php echo $field['merge']; ?>-position position-input" name="field[<?php echo $field['merge']; ?>][position]" value="<?php echo $i++; ?>" />
|
1728 |
-
|
1729 |
-
<?php if ( $field['type'] == 'radio' || $field['type'] == 'dropdown' || $field['type'] == 'select' ) {
|
1730 |
-
$choices = json_decode( $field['choices'], true );
|
1731 |
-
?>
|
1732 |
-
<input type="hidden" name="field[<?php echo $field['merge']; ?>][choices]" value='<?php echo esc_attr( json_encode( $choices ) ); ?>' />
|
1733 |
-
<?php } ?>
|
1734 |
-
|
1735 |
-
<!-- Single or Double Opt-in -->
|
1736 |
-
<p class="type-container"><!-- necessary to prevent skipping on slideToggle(); -->
|
1737 |
-
|
1738 |
-
<table class="form-table form-field-container">
|
1739 |
-
|
1740 |
-
<!-- Merge Tag -->
|
1741 |
-
<tr valign="top">
|
1742 |
-
<td scope="row">
|
1743 |
-
<label for="merge-tag">
|
1744 |
-
<?php _e( 'Merge Tag' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1745 |
-
</label>
|
1746 |
-
</td>
|
1747 |
-
<td>
|
1748 |
-
<input class="widefat merge-tag-text" type="text" readonly value="<?php echo $field['merge']; ?>">
|
1749 |
-
</td>
|
1750 |
-
</tr>
|
1751 |
-
|
1752 |
-
<!-- Placeholder Value -->
|
1753 |
-
<?php switch( $field['type'] ) {
|
1754 |
-
|
1755 |
-
case 'text':
|
1756 |
-
case 'email':
|
1757 |
-
case 'url':
|
1758 |
-
case 'number';
|
1759 |
-
case 'birthday':
|
1760 |
-
case 'date':
|
1761 |
-
case 'zip':
|
1762 |
-
case 'phone':
|
1763 |
-
?>
|
1764 |
-
<!-- Placeholder -->
|
1765 |
-
<tr valign="top">
|
1766 |
-
<td scope="row">
|
1767 |
-
<label for="placeholder">
|
1768 |
-
<?php _e( 'Placeholder' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1769 |
-
</label>
|
1770 |
-
</td>
|
1771 |
-
<td>
|
1772 |
-
<input type="text" class="widefat" name="field[<?php echo $field['merge']; ?>][placeholder]" value="<?php echo isset( $field['placeholder'] ) ? $field['placeholder'] : '' ; ?>" />
|
1773 |
-
<p class="description"><small><?php _e( "Assign a placeholder value to this field.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
1774 |
-
</td>
|
1775 |
-
</tr>
|
1776 |
-
<?php
|
1777 |
-
break;
|
1778 |
-
}
|
1779 |
-
?>
|
1780 |
-
|
1781 |
-
<!-- Default Value -->
|
1782 |
-
<?php switch( $field['type'] ) {
|
1783 |
-
default:
|
1784 |
-
case 'text':
|
1785 |
-
case 'number':
|
1786 |
-
case 'url':
|
1787 |
-
?>
|
1788 |
-
<tr valign="top">
|
1789 |
-
<td scope="row">
|
1790 |
-
<label for="placeholder">
|
1791 |
-
<?php _e( 'Default Value' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1792 |
-
</label>
|
1793 |
-
</td>
|
1794 |
-
<td>
|
1795 |
-
<input <?php if( $field['type'] != 'number' ) { ?> type="text" <?php } else { ?> type="number" <?php } ?> class="widefat" name="field[<?php echo $field['merge']; ?>][default]" <?php if( $field['type'] != 'url' ) { ?> value="<?php echo isset( $field['default'] ) ? stripslashes( wp_strip_all_tags( $field['default'] ) ) : ''; ?>" <?php } else { ?> value="<?php echo isset( $field['default'] ) ? stripslashes( wp_strip_all_tags( esc_url_raw( $field['default'] ) ) ) : ''; ?>" <?php } ?> />
|
1796 |
-
<p class="description"><small><?php _e( "Assign a default value to populate this field with on initial page load.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
1797 |
-
<?php
|
1798 |
-
switch( $field['type'] ) {
|
1799 |
-
case 'text':
|
1800 |
-
?>
|
1801 |
-
<p><small class="pre-defined-tag-link"><a href="#TB_inline?width=600&height=550&inlineId=pre-defined-tag-container" onclick="storeGlobalClicked( jQuery( this ) );" class="thickbox"><?php _e( 'View Pre-Defined Tags' , 'yikes-inc-easy-mailchimp-extender' ); ?></a></small></p>
|
1802 |
-
<?php
|
1803 |
-
break;
|
1804 |
-
} ?>
|
1805 |
-
</td>
|
1806 |
-
</tr>
|
1807 |
-
<?php
|
1808 |
-
break;
|
1809 |
-
|
1810 |
-
case 'radio':
|
1811 |
-
?>
|
1812 |
-
<tr valign="top">
|
1813 |
-
<td scope="row">
|
1814 |
-
<label for="placeholder">
|
1815 |
-
<?php _e( 'Default Selection' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1816 |
-
</label>
|
1817 |
-
</td>
|
1818 |
-
<td>
|
1819 |
-
<?php if( ! isset( $field['default_choice'] ) || empty( $field['default_choice'] ) ) { $decode = json_decode( $field['choices'], true ); $field['default_choice'] = $decode[0]; }
|
1820 |
-
$x = 0;
|
1821 |
-
foreach( json_decode( $field['choices'], true ) as $choice => $value ) { ?>
|
1822 |
-
<label for="<?php echo $field['merge'].'-'.$x; ?>">
|
1823 |
-
<input id="<?php echo $field['merge'].'-'.$x; ?>" type="radio" name="field[<?php echo $field['merge']; ?>][default_choice]" value="<?php echo $x; ?>" <?php checked( $field['default_choice'], $x ); ?>><?php echo $value; ?>
|
1824 |
-
</label>
|
1825 |
-
<?php $x++; } ?>
|
1826 |
-
<p class="description"><small><?php _e( "Select the option that should be selected by default.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
1827 |
-
</td>
|
1828 |
-
</tr>
|
1829 |
-
|
1830 |
-
<?php
|
1831 |
-
break;
|
1832 |
-
|
1833 |
-
case 'dropdown':
|
1834 |
-
?>
|
1835 |
-
<tr valign="top">
|
1836 |
-
<td scope="row">
|
1837 |
-
<label for="placeholder">
|
1838 |
-
<?php _e( 'Default Selection' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1839 |
-
</label>
|
1840 |
-
</td>
|
1841 |
-
<td>
|
1842 |
-
<select type="default" name="field[<?php echo $field['merge']; ?>][default_choice]">
|
1843 |
-
<?php foreach( json_decode( $field['choices'], true ) as $choice => $value ) { ?>
|
1844 |
-
<option value="<?php echo $choice; ?>" <?php selected( $field['default_choice'] , $choice ); ?>><?php echo $value; ?></option>
|
1845 |
-
<?php } ?>
|
1846 |
-
</select>
|
1847 |
-
<p class="description"><small><?php _e( "Which option should be selected by default?", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
1848 |
-
</td>
|
1849 |
-
</tr>
|
1850 |
-
|
1851 |
-
<?php
|
1852 |
-
break;
|
1853 |
-
|
1854 |
-
case "birthday":
|
1855 |
-
case "address":
|
1856 |
-
break;
|
1857 |
-
|
1858 |
-
?>
|
1859 |
-
|
1860 |
-
<?php } // end Default Value ?>
|
1861 |
-
|
1862 |
-
|
1863 |
-
<!-- Field Description -->
|
1864 |
-
<tr valign="top">
|
1865 |
-
<td scope="row">
|
1866 |
-
<label for="placeholder">
|
1867 |
-
<?php _e( 'Description' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1868 |
-
</label>
|
1869 |
-
</td>
|
1870 |
-
<td>
|
1871 |
-
<textarea class="widefat field-description-input" name="field[<?php echo $field['merge']; ?>][description]"><?php echo isset( $field['description'] ) ? stripslashes( esc_html( $field['description'] ) ) : '' ; ?></textarea>
|
1872 |
-
<p class="description"><small><?php _e( "Enter the description for the form field. This will be displayed to the user and will provide some direction on how the field should be filled out or selected.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
1873 |
-
</td>
|
1874 |
-
</tr>
|
1875 |
-
<!-- Additional Classes -->
|
1876 |
-
<tr valign="top">
|
1877 |
-
<td scope="row">
|
1878 |
-
<label for="placeholder">
|
1879 |
-
<?php _e( 'Additional Classes' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1880 |
-
</label>
|
1881 |
-
</td>
|
1882 |
-
<td>
|
1883 |
-
<input type="text" class="widefat" name="field[<?php echo $field['merge']; ?>][additional-classes]" value="<?php echo isset( $field['additional-classes'] ) ? stripslashes( wp_strip_all_tags( $field['additional-classes'] ) ) : '' ; ?>" />
|
1884 |
-
<p class="description"><small><?php printf( __( "Assign additional classes to this field. %s.", 'yikes-inc-easy-mailchimp-extender' ), '<a target="_blank" href="' . esc_url( 'https://yikesplugins.com/support/knowledge-base/bundled-css-classes/' ) . '">' . __( 'View bundled classes', 'yikes-inc-easy-mailchimp-extender' ) . '</a>' );?></small></p>
|
1885 |
-
</td>
|
1886 |
-
</tr>
|
1887 |
-
<!-- Required Toggle -->
|
1888 |
-
<tr valign="top">
|
1889 |
-
<td scope="row">
|
1890 |
-
<label for="field-required">
|
1891 |
-
<?php _e( 'Field Required?' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1892 |
-
</label>
|
1893 |
-
</td>
|
1894 |
-
<td>
|
1895 |
-
<?php $checked = isset( $field['require'] ) ? $field['require'] : '0'; ?>
|
1896 |
-
<input type="checkbox" class="widefat" value="1" name="field[<?php echo $field['merge']; ?>][require]" <?php checked( $checked , 1 ); ?> <?php if( $field['merge'] == 'EMAIL' ) { ?> disabled="disabled" checked="checked" title="<?php echo __( 'Email is a required field.' , 'yikes-inc-easy-mailchimp-extender' ); } ?>">
|
1897 |
-
<p class="description"><small><?php _e( "Require this field to be filled in before the form can be submitted.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
1898 |
-
</td>
|
1899 |
-
</tr>
|
1900 |
-
<!-- Visible Toggle -->
|
1901 |
-
<tr valign="top">
|
1902 |
-
<td scope="row">
|
1903 |
-
<label for="hide-field">
|
1904 |
-
<?php _e( 'Hide Field' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1905 |
-
</label>
|
1906 |
-
</td>
|
1907 |
-
<td>
|
1908 |
-
<?php $hide = isset( $field['hide'] ) ? $field['hide'] : '0'; ?>
|
1909 |
-
<input type="checkbox" class="widefat" value="1" name="field[<?php echo $field['merge']; ?>][hide]" <?php checked( $hide , 1 ); ?> <?php if( $field['merge'] == 'EMAIL' ) { ?> disabled="disabled" title="<?php echo __( 'Cannot toggle email field visibility.' , 'yikes-inc-easy-mailchimp-extender' ); } ?>">
|
1910 |
-
<p class="description"><small><?php _e( "Hide this field from being displayed on the front end.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
1911 |
-
</td>
|
1912 |
-
</tr>
|
1913 |
-
<!-- Toggle Field Label Visibility -->
|
1914 |
-
<tr valign="top">
|
1915 |
-
<td scope="row">
|
1916 |
-
<label for="placeholder">
|
1917 |
-
<?php _e( 'Hide Label' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1918 |
-
</label>
|
1919 |
-
</td>
|
1920 |
-
<td>
|
1921 |
-
<?php $hide_label = isset( $field['hide-label'] ) ? $field['hide-label'] : '0'; ?>
|
1922 |
-
<input type="checkbox" name="field[<?php echo $field['merge']; ?>][hide-label]" value="1" <?php checked( $hide_label , 1 ); ?>/>
|
1923 |
-
<p class="description"><small><?php _e( "Toggle field label visibility.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
1924 |
-
</td>
|
1925 |
-
</tr>
|
1926 |
-
<!-- Display Phone/Date Formats back to the user -->
|
1927 |
-
<!-- Phone Format Initial Load -->
|
1928 |
-
<?php
|
1929 |
-
switch( $field['type'] ) {
|
1930 |
-
/* Store the phone format, for properly regex pattern */
|
1931 |
-
case 'phone':
|
1932 |
-
case 'birthday':
|
1933 |
-
case 'date':
|
1934 |
-
?>
|
1935 |
-
<tr valign="top">
|
1936 |
-
<td scope="row">
|
1937 |
-
<label for="placeholder">
|
1938 |
-
<?php
|
1939 |
-
switch( $field['type'] ) {
|
1940 |
-
default:
|
1941 |
-
case 'birthday':
|
1942 |
-
$type = __( 'Date Format' , 'yikes-inc-easy-mailchimp-extender' );
|
1943 |
-
$format = ( isset( $field['date_format'] ) ) ? $field['date_format'] : 'MM/DD';
|
1944 |
-
$format_name = 'date_format';
|
1945 |
-
break;
|
1946 |
-
|
1947 |
-
case 'date':
|
1948 |
-
$type = __( 'Date Format' , 'yikes-inc-easy-mailchimp-extender' );
|
1949 |
-
$format = ( isset( $field['date_format'] ) ) ? $field['date_format'] : 'MM/DD/YYYY';
|
1950 |
-
$format_name = 'date_format';
|
1951 |
-
break;
|
1952 |
-
|
1953 |
-
case 'phone':
|
1954 |
-
$type = __( 'Phone Format' , 'yikes-inc-easy-mailchimp-extender' );
|
1955 |
-
$format = ( ( $field['phone_format'] == 'none' ) ? __( 'International', 'yikes-inc-easy-mailchimp-extender' ) : $field['phone_format'] . ' - (###) ### - ####' );
|
1956 |
-
$format_name = 'phone_format';
|
1957 |
-
break;
|
1958 |
-
}
|
1959 |
-
echo $type;
|
1960 |
-
?>
|
1961 |
-
</label>
|
1962 |
-
</td>
|
1963 |
-
<td>
|
1964 |
-
<strong><?php echo $format; ?></strong>
|
1965 |
-
<input type="hidden" name="field[<?php echo $field['merge']; ?>][<?php echo $format_name; ?>]" value="<?php echo $format; ?>" />
|
1966 |
-
<p class="description"><small>
|
1967 |
-
<?php printf( __( 'To change the %s please head over to <a href="%s" title="MailChimp" target="_blank">MailChimp</a>. If you alter the format, you should re-import this field.', 'yikes-inc-easy-mailchimp-extender' ), strtolower( $type ), esc_url( 'http://www.mailchimp.com' ) ); ?>
|
1968 |
-
</small></p>
|
1969 |
-
</td>
|
1970 |
-
</tr>
|
1971 |
-
<?php
|
1972 |
-
break;
|
1973 |
-
// others..
|
1974 |
-
default:
|
1975 |
-
break;
|
1976 |
-
}
|
1977 |
-
?>
|
1978 |
-
<!-- End Date/Phone Formats -->
|
1979 |
-
<!-- Toggle Buttons -->
|
1980 |
-
<tr valign="top">
|
1981 |
-
<td scope="row">
|
1982 |
-
|
1983 |
-
</td>
|
1984 |
-
<td>
|
1985 |
-
<span class="toggle-container">
|
1986 |
-
<a href="#" class="close-form-expansion"><?php _e( "Close" , 'yikes-inc-easy-mailchimp-extender' ); ?></a> |
|
1987 |
-
<a href="#" class="remove-field" alt="<?php echo $field['merge']; ?>"><?php _e( "Remove Field" , 'yikes-inc-easy-mailchimp-extender' ); ?></a>
|
1988 |
-
</span>
|
1989 |
-
</td>
|
1990 |
-
</tr>
|
1991 |
-
</table>
|
1992 |
-
</p>
|
1993 |
-
|
1994 |
-
</div>
|
1995 |
-
</section>
|
1996 |
-
<?php
|
1997 |
-
|
1998 |
-
|
1999 |
-
|
2000 |
-
} else { // THIS IS AN INTEREST GROUP!
|
2001 |
-
|
2002 |
-
?>
|
2003 |
-
<section class="draggable" id="<?php echo $field['group_id']; ?>">
|
2004 |
-
<!-- top -->
|
2005 |
-
<a href="#" class="expansion-section-title settings-sidebar">
|
2006 |
-
<span class="dashicons dashicons-plus"></span><?php echo stripslashes( $field['label'] ); ?>
|
2007 |
-
<?php if( in_array( $field['group_id'] , $excluded_fields ) ) { ?>
|
2008 |
-
<img src="<?php echo YIKES_MC_URL . 'includes/images/warning.svg'; ?>" class="field-no-longer-exists-warning" title="<?php _e( 'Field no longer exists.' , 'yikes-inc-easy-mailchimp-extender' ); ?>" alt="<?php _e( 'Field no longer exists.' , 'yikes-inc-easy-mailchimp-extender' ); ?>">
|
2009 |
-
<?php } ?>
|
2010 |
-
<span class="field-type-text"><small><?php echo __( 'type' , 'yikes-inc-easy-mailchimp-extender' ) . ' : ' . $field['type']; ?></small></span>
|
2011 |
-
</a>
|
2012 |
-
<!-- expansion section -->
|
2013 |
-
<div class="yikes-mc-settings-expansion-section">
|
2014 |
-
|
2015 |
-
<!-- check if this field exists in the available interest group array -->
|
2016 |
-
<?php if( in_array( $field['group_id'] , $excluded_fields ) ) { ?>
|
2017 |
-
<p class="yikes-mc-warning-message"><?php _e( "This field no longer exists in this list. Delete this field from the form to prevent issues on the front end." , 'yikes-inc-easy-mailchimp-extender' ); ?></p>
|
2018 |
-
<?php } ?>
|
2019 |
-
|
2020 |
-
<!-- store the label -->
|
2021 |
-
<input type="hidden" name="field[<?php echo $field['group_id']; ?>][label]" value="<?php echo $field['label']; ?>" />
|
2022 |
-
<input type="hidden" name="field[<?php echo $field['group_id']; ?>][type]" value="<?php echo $field['type']; ?>" />
|
2023 |
-
<input type="hidden" name="field[<?php echo $field['group_id']; ?>][group_id]" value="<?php echo $field['group_id']; ?>" />
|
2024 |
-
<input type="hidden" name="field[<?php echo $field['group_id']; ?>][groups]" value='<?php echo esc_attr( json_encode( json_decode( $field['groups'], true ) ) ); ?>' />
|
2025 |
-
|
2026 |
-
<!-- Single or Double Opt-in -->
|
2027 |
-
<p class="type-container"><!-- necessary to prevent skipping on slideToggle(); -->
|
2028 |
-
|
2029 |
-
<table class="form-table form-field-container">
|
2030 |
-
<!-- Default Value -->
|
2031 |
-
<?php switch( $field['type'] ) {
|
2032 |
-
|
2033 |
-
default:
|
2034 |
-
case 'radio':
|
2035 |
-
case 'checkboxes':
|
2036 |
-
?>
|
2037 |
-
<tr valign="top">
|
2038 |
-
<td scope="row">
|
2039 |
-
<label for="placeholder">
|
2040 |
-
<?php _e( 'Default Selection' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
2041 |
-
</label>
|
2042 |
-
</td>
|
2043 |
-
<td>
|
2044 |
-
<?php
|
2045 |
-
if( $field['type'] != 'checkboxes' ) {
|
2046 |
-
if( !isset( $field['default_choice'] ) ) { $field['default_choice'] = json_decode( stripslashes( $field['groups'] ) , true ); }
|
2047 |
-
} else {
|
2048 |
-
if( !isset( $field['default_choice'] ) ) { $field['default_choice'] = array(); }
|
2049 |
-
}
|
2050 |
-
$i = 0;
|
2051 |
-
foreach( json_decode( $field['groups'], true ) as $group ) { ?>
|
2052 |
-
<label for="<?php echo $field['group_id'].'-'.$i; ?>">
|
2053 |
-
<input id="<?php echo $field['group_id'].'-'.$i; ?>" type="<?php if( $field['type'] == 'radio' || $field['type'] == 'hidden' ) { ?>radio<?php } else if( $field['type'] == 'checkboxes' ) { ?>checkbox<?php } ?>" name="field[<?php echo $field['group_id']; ?>][default_choice]<?php if( $field['type'] == 'checkboxes' ) {echo '[]';}?>" value="<?php echo $i; ?>" <?php if( $field['type'] == 'radio' || $field['type'] == 'hidden' ) { checked( $field['default_choice'][0] , $i ); } else if( $field['type'] == 'checkboxes' ) { if( in_array( $i , $field['default_choice'] ) ) { echo 'checked="checked"'; } }?>><?php echo stripslashes( str_replace( '~' , '\'' , $group['name'] ) ); ?>
|
2054 |
-
</label>
|
2055 |
-
<?php
|
2056 |
-
$i++;
|
2057 |
-
}
|
2058 |
-
?>
|
2059 |
-
<p class="description"><small><?php _e( "Select the option that should be selected by default.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
2060 |
-
</td>
|
2061 |
-
</tr>
|
2062 |
-
|
2063 |
-
<?php
|
2064 |
-
break;
|
2065 |
-
|
2066 |
-
case 'dropdown':
|
2067 |
-
?>
|
2068 |
-
<tr valign="top">
|
2069 |
-
<td scope="row">
|
2070 |
-
<label for="placeholder">
|
2071 |
-
<?php _e( 'Default Selection' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
2072 |
-
</label>
|
2073 |
-
</td>
|
2074 |
-
<td>
|
2075 |
-
<select type="default" name="field[<?php echo $field['group_id']; ?>][default_choice]">
|
2076 |
-
<?php $i = 0; foreach( json_decode( stripslashes_deep( $field['groups'] ) , true ) as $group ) { ?>
|
2077 |
-
<option value="<?php echo $i; ?>" <?php selected( $field['default_choice'] , $i ); ?>><?php echo stripslashes( $group['name'] ); ?></option>
|
2078 |
-
<?php $i++; } ?>
|
2079 |
-
</select>
|
2080 |
-
<p class="description"><small><?php _e( "Which option should be selected by default?", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
2081 |
-
</td>
|
2082 |
-
</tr>
|
2083 |
-
|
2084 |
-
<?php
|
2085 |
-
break;
|
2086 |
-
?>
|
2087 |
-
|
2088 |
-
<?php } // end Default Value ?>
|
2089 |
-
|
2090 |
-
<!-- Field Description -->
|
2091 |
-
<tr valign="top">
|
2092 |
-
<td scope="row">
|
2093 |
-
<label for="placeholder">
|
2094 |
-
<?php _e( 'Description' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
2095 |
-
</label>
|
2096 |
-
</td>
|
2097 |
-
<td>
|
2098 |
-
<textarea class="widefat field-description-input" name="field[<?php echo $field['group_id']; ?>][description]"><?php echo isset( $field['description'] ) ? stripslashes( esc_html( $field['description'] ) ) : '' ; ?></textarea>
|
2099 |
-
<p class="description"><small><?php _e( "Enter the description for the form field. This will be displayed to the user and provide some direction on how the field should be filled out or selected.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
2100 |
-
</td>
|
2101 |
-
</tr>
|
2102 |
-
|
2103 |
-
<!-- Additional Classes -->
|
2104 |
-
<tr valign="top">
|
2105 |
-
<td scope="row">
|
2106 |
-
<label for="placeholder">
|
2107 |
-
<?php _e( 'Additional Classes' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
2108 |
-
</label>
|
2109 |
-
</td>
|
2110 |
-
<td>
|
2111 |
-
<input type="text" class="widefat" name="field[<?php echo $field['group_id']; ?>][additional-classes]" value="<?php echo isset( $field['additional-classes'] ) ? stripslashes( wp_strip_all_tags( $field['additional-classes'] ) ) : '' ; ?>" />
|
2112 |
-
<p class="description"><small><?php printf( __( "Assign additional classes to this field. %s.", 'yikes-inc-easy-mailchimp-extender' ), '<a target="_blank" href="' . esc_url( 'https://yikesplugins.com/support/knowledge-base/bundled-css-classes/' ) . '">' . __( 'View bundled classes', 'yikes-inc-easy-mailchimp-extender' ) . '</a>' );?></small></p>
|
2113 |
-
</td>
|
2114 |
-
</tr>
|
2115 |
-
<!-- Required Toggle -->
|
2116 |
-
<tr valign="top">
|
2117 |
-
<td scope="row">
|
2118 |
-
<label for="field-required">
|
2119 |
-
<?php _e( 'Field Required?' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
2120 |
-
</label>
|
2121 |
-
</td>
|
2122 |
-
<td>
|
2123 |
-
<?php $checked = isset( $field['require'] ) ? $field['require'] : '0'; ?>
|
2124 |
-
<input type="checkbox" class="widefat" value="1" name="field[<?php echo $field['group_id']; ?>][require]" <?php checked( $checked , 1 ); ?>>
|
2125 |
-
<p class="description"><small><?php _e( "Require this field to be filled in before the form can be submitted.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
2126 |
-
</td>
|
2127 |
-
</tr>
|
2128 |
-
<!-- Visible Toggle -->
|
2129 |
-
<tr valign="top">
|
2130 |
-
<td scope="row">
|
2131 |
-
<label for="hide-field">
|
2132 |
-
<?php _e( 'Hide Field' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
2133 |
-
</label>
|
2134 |
-
</td>
|
2135 |
-
<td>
|
2136 |
-
<?php $hide = isset( $field['hide'] ) ? $field['hide'] : '0'; ?>
|
2137 |
-
<input type="checkbox" class="widefat" value="1" name="field[<?php echo $field['group_id']; ?>][hide]" <?php checked( $hide , 1 ); ?>>
|
2138 |
-
<p class="description"><small><?php _e( "Hide this field from being displayed on the front end.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
2139 |
-
</td>
|
2140 |
-
</tr>
|
2141 |
-
<!-- Toggle Field Label Visibility -->
|
2142 |
-
<tr valign="top">
|
2143 |
-
<td scope="row">
|
2144 |
-
<label for="placeholder">
|
2145 |
-
<?php _e( 'Hide Label' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
2146 |
-
</label>
|
2147 |
-
</td>
|
2148 |
-
<td>
|
2149 |
-
<?php $hide = isset( $field['hide-label'] ) ? $field['hide-label'] : '0'; ?>
|
2150 |
-
<input type="checkbox" name="field[<?php echo $field['group_id']; ?>][hide-label]" value="1" <?php checked( $hide , 1 ); ?>/>
|
2151 |
-
<p class="description"><small><?php _e( "Toggle field label visibility.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
2152 |
-
</td>
|
2153 |
-
</tr>
|
2154 |
-
<!-- Toggle Buttons -->
|
2155 |
-
<tr valign="top">
|
2156 |
-
<td scope="row">
|
2157 |
-
|
2158 |
-
</td>
|
2159 |
-
<td>
|
2160 |
-
<span class="toggle-container">
|
2161 |
-
<a href="#" class="close-form-expansion"><?php _e( "Close" , 'yikes-inc-easy-mailchimp-extender' ); ?></a> |
|
2162 |
-
<a href="#" class="remove-field" alt="<?php echo $field['group_id']; ?>"><?php _e( "Remove Field" , 'yikes-inc-easy-mailchimp-extender' ); ?></a>
|
2163 |
-
</span>
|
2164 |
-
</td>
|
2165 |
-
</tr>
|
2166 |
-
</table>
|
2167 |
-
</p>
|
2168 |
-
|
2169 |
-
</div>
|
2170 |
-
</section>
|
2171 |
-
<?php
|
2172 |
-
} // its an interest group!
|
2173 |
-
}
|
2174 |
-
} else {
|
2175 |
-
?>
|
2176 |
-
<h4 class="no-fields-assigned-notice non-draggable-yikes"><em><?php _e( 'No fields are assigned to this form. Select fields from the right hand column to add to this form.' , 'yikes-inc-easy-mailchimp-extender' ); ?></em></h4>
|
2177 |
-
<?php
|
2178 |
-
}
|
2179 |
-
/* Pre Defined Merge Tag Container - Always rendered so the modal appears and links are clickable on initial page load */
|
2180 |
-
add_thickbox();
|
2181 |
-
// enqueue jquery qtip for our tooltip
|
2182 |
-
wp_enqueue_script( 'jquery-qtip-tooltip' , YIKES_MC_URL . 'admin/js/min/jquery.qtip.min.js' , array( 'jquery' ) );
|
2183 |
-
wp_enqueue_style( 'jquery-qtip-style' , YIKES_MC_URL . 'admin/css/jquery.qtip.min.css' );
|
2184 |
-
$available_tags = array(
|
2185 |
-
array(
|
2186 |
-
'tag' => '{page_title}',
|
2187 |
-
'description' => '<h4 class="tooltip-title">' . __( 'Page Title', 'yikes-inc-easy-mailchimp-extender' ) . ' | <small>{page_title}</small></h4><hr />' . __( 'Pre-populate the field with the current page or post title that the user is on when opting in to your mailing list.' , 'yikes-inc-easy-mailchimp-extender' ),
|
2188 |
-
'title' => __( 'Page Title', 'yikes-inc-easy-mailchimp-extender' )
|
2189 |
-
),
|
2190 |
-
array(
|
2191 |
-
'tag' => '{page_id}',
|
2192 |
-
'description' => '<h4 class="tooltip-title">' . __( 'Page ID', 'yikes-inc-easy-mailchimp-extender' ) . ' | <small>{page_id}</small></h4><hr />' . __( 'Pre-populate the field with the current page or post ID that the user is on when opting in to your mailing list.' , 'yikes-inc-easy-mailchimp-extender' ),
|
2193 |
-
'title' => __( 'Page ID', 'yikes-inc-easy-mailchimp-extender' )
|
2194 |
-
),
|
2195 |
-
array(
|
2196 |
-
'tag' => '{page_url}',
|
2197 |
-
'description' => '<h4 class="tooltip-title">' . __( 'Page URL', 'yikes-inc-easy-mailchimp-extender' ) . ' | <small>{page_url}</small></h4><hr />' . __( 'Pre-populate the field with the current page URL that the user is on when opting in to your mailing list.' , 'yikes-inc-easy-mailchimp-extender' ),
|
2198 |
-
'title' => __( 'Page URL', 'yikes-inc-easy-mailchimp-extender' )
|
2199 |
-
),
|
2200 |
-
array(
|
2201 |
-
'tag' => '{blog_name}',
|
2202 |
-
'description' => '<h4 class="tooltip-title">' . __( 'Blog Name', 'yikes-inc-easy-mailchimp-extender' ) . ' | <small>{blog_name}</small></h4><hr />' . __( 'Pre-populate the field with the current blog name that the user is on when opting in to your mailing list. This is especially helpful for multi-site networks.' , 'yikes-inc-easy-mailchimp-extender' ),
|
2203 |
-
'title' => __( 'Blog Name', 'yikes-inc-easy-mailchimp-extender' )
|
2204 |
-
),
|
2205 |
-
array(
|
2206 |
-
'tag' => '{user_logged_in}',
|
2207 |
-
'description' => '<h4 class="tooltip-title">' . __( 'User Logged In', 'yikes-inc-easy-mailchimp-extender' ) . ' | <small>{user_logged_in}</small></h4><hr />' . __( 'Detects if a user is logged in and pre-populates the field with an appropriate value.' , 'yikes-inc-easy-mailchimp-extender' ),
|
2208 |
-
'title' => __( 'User Logged In', 'yikes-inc-easy-mailchimp-extender' )
|
2209 |
-
),
|
2210 |
-
);
|
2211 |
-
?>
|
2212 |
-
<!-- tooltips -->
|
2213 |
-
<script type="text/javascript">
|
2214 |
-
/* Initialize Qtip tooltips for pre-defined tags */
|
2215 |
-
jQuery( document ).ready( function() {
|
2216 |
-
jQuery( '.dashicons-editor-help' ).each( function() {
|
2217 |
-
jQuery( this ).qtip({
|
2218 |
-
content: {
|
2219 |
-
text: jQuery( this ).next( '.tooltiptext' ),
|
2220 |
-
style: {
|
2221 |
-
def: false
|
2222 |
-
}
|
2223 |
-
}
|
2224 |
-
});
|
2225 |
-
});
|
2226 |
-
jQuery( '.qtip' ).each( function() {
|
2227 |
-
jQuery( this ).removeClass( 'qtip-default' );
|
2228 |
-
});
|
2229 |
-
});
|
2230 |
-
</script>
|
2231 |
-
|
2232 |
-
<div id="pre-defined-tag-container">
|
2233 |
-
<input type="hidden" value="" class="clicked-input">
|
2234 |
-
<div id="pre-defined-tag-interior-container">
|
2235 |
-
<h3><?php _e( 'Pre Defined Tags' , 'yikes-inc-easy-mailchimp-extender' ); ?></h3>
|
2236 |
-
<p class="description"><?php _e( 'You can use any of the following tags to populate a MailChimp text field with dynamic content. This can be used to determine which page the user signed up on, if the user was logged in and more.' , 'yikes-inc-easy-mailchimp-extender' ); ?></p>
|
2237 |
-
<ul>
|
2238 |
-
<?php foreach( apply_filters( 'yikes-mailchimp-custom-default-value-tags' , $available_tags ) as $tag ) { ?>
|
2239 |
-
<li class="tooltop-tag">
|
2240 |
-
<!-- link/tag -->
|
2241 |
-
<a href="#" onclick="populateDefaultValue( '<?php echo $tag['tag']; ?>' );return false;" data-attr-tag="<?php echo $tag['tag']; ?>" title="<?php echo $tag['title']; ?>"><?php echo $tag['title']; ?></a>
|
2242 |
-
<!-- help icon -->
|
2243 |
-
<span class="dashicons dashicons-editor-help"></span>
|
2244 |
-
<!-- tooltip -->
|
2245 |
-
<div class="tooltiptext qtip-bootstrap yikes-easy-mc-hidden"><?php echo $tag['description']; ?></div>
|
2246 |
-
</li>
|
2247 |
-
<?php } ?>
|
2248 |
-
</ul>
|
2249 |
-
</div>
|
2250 |
-
</div>
|
2251 |
-
<?php
|
2252 |
-
}
|
2253 |
-
|
2254 |
-
/*
|
2255 |
-
* build_available_merge_vars( $list_id )
|
2256 |
-
* Submit an API request to get our merge variables, and build up a small form editor
|
2257 |
-
* for users to 'customize' their form
|
2258 |
-
* -
|
2259 |
-
* @parameters - $list_id - pass in the list ID to retreive merge variables from
|
2260 |
-
*/
|
2261 |
-
public function build_available_merge_vars( $form_fields , $available_merge_variables ) {
|
2262 |
-
$fields_assigned_to_form = array();
|
2263 |
-
if( !empty( $form_fields ) ) {
|
2264 |
-
foreach( $form_fields as $assigned_field ) {
|
2265 |
-
// print_r( $assigned_field) ;
|
2266 |
-
// switch between merge variables and interest groups
|
2267 |
-
if( isset( $assigned_field['merge'] ) ) {
|
2268 |
-
$fields_assigned_to_form[] = $assigned_field['merge'];
|
2269 |
-
}
|
2270 |
-
}
|
2271 |
-
}
|
2272 |
-
if( !empty( $available_merge_variables['data'][0] ) ) {
|
2273 |
-
?><ul id="available-fields"><?php
|
2274 |
-
foreach( $available_merge_variables['data'][0]['merge_vars'] as $merge_var ) {
|
2275 |
-
if( in_array( $merge_var['tag'] , $fields_assigned_to_form ) ) {
|
2276 |
-
?>
|
2277 |
-
<li class="available-form-field not-available" alt="<?php echo $merge_var['tag']; ?>" data-attr-field-type="<?php echo $merge_var['field_type']; ?>" data-attr-field-name="<?php echo $merge_var['name']; ?>" data-attr-form-id="<?php echo $available_merge_variables['data'][0]['id']; ?>" title="<?php _e( 'Already assigned to your form' , 'yikes-inc-easy-mailchimp-extender' ); ?>" disabled="disabled"><?php echo stripslashes( $merge_var['name'] ); if( $merge_var['req'] == '1' ) { echo ' <span class="field-required" title="' . __( 'required field' , 'yikes-inc-easy-mailchimp-extender' ) . '">*</span>'; } ?> <small class="field-type-text"><?php echo $merge_var['field_type']; ?></small></li>
|
2278 |
-
<?php
|
2279 |
-
} else {
|
2280 |
-
?>
|
2281 |
-
<li class="available-form-field" alt="<?php echo $merge_var['tag']; ?>" data-attr-field-type="<?php echo $merge_var['field_type']; ?>" data-attr-field-name="<?php echo $merge_var['name']; ?>" data-attr-form-id="<?php echo $available_merge_variables['data'][0]['id']; ?>"><?php echo stripslashes( $merge_var['name'] ); if( $merge_var['req'] == '1' ) { echo ' <span class="field-required" title="' . __( 'required field' , 'yikes-inc-easy-mailchimp-extender' ) . '">*</span>'; } ?> <small class="field-type-text"><?php echo $merge_var['field_type']; ?></small></li>
|
2282 |
-
<?php
|
2283 |
-
}
|
2284 |
-
}
|
2285 |
-
?></ul>
|
2286 |
-
<a href="#" class="add-field-to-editor button-secondary yikes-easy-mc-hidden" style="display:none;"><small><span class="dashicons dashicons-arrow-left-alt add-to-form-builder-arrow"></span> <?php _e( 'Add to Form Builder' , 'yikes-inc-easy-mailchimp-extender' ); ?></small></a>
|
2287 |
-
<?php
|
2288 |
-
}
|
2289 |
-
}
|
2290 |
-
|
2291 |
-
/*
|
2292 |
-
* build_available_interest_groups( $form_fields , $available_interest_groups )
|
2293 |
-
* Submit an API request to get our merge variables, and build up a small form editor
|
2294 |
-
* for users to 'customize' their form
|
2295 |
-
* -
|
2296 |
-
* @parameters - $list_id - pass in the list ID to retreive merge variables from
|
2297 |
-
*/
|
2298 |
-
public function build_available_interest_groups( $form_fields , $available_interest_groups , $list_id ) {
|
2299 |
-
$fields_assigned_to_form = array();
|
2300 |
-
if( !empty( $form_fields ) ) {
|
2301 |
-
foreach( $form_fields as $assigned_interest_group ) {
|
2302 |
-
if( isset( $assigned_interest_group['group_id'] ) ) {
|
2303 |
-
$fields_assigned_to_form[] = $assigned_interest_group['group_id'];
|
2304 |
-
}
|
2305 |
-
}
|
2306 |
-
}
|
2307 |
-
if( !empty( $available_interest_groups) ) {
|
2308 |
-
?><ul id="available-interest-groups"><?php
|
2309 |
-
foreach( $available_interest_groups as $interest_group ) {
|
2310 |
-
if( in_array( $interest_group['id'] , $fields_assigned_to_form ) ) {
|
2311 |
-
?>
|
2312 |
-
<li class="available-interest-group not-available" alt="<?php echo $interest_group['id']; ?>" data-attr-field-name="<?php echo stripslashes( $interest_group['name'] ); ?>" data-attr-field-type="<?php echo $interest_group['form_field']; ?>" data-attr-form-id="<?php echo $list_id; ?>" title="<?php _e( 'Already assigned to your form' , 'yikes-inc-easy-mailchimp-extender' ); ?>" disabled="disabled"><?php echo stripslashes( $interest_group['name'] ); ?> <small class="field-type-text"><?php echo $interest_group['form_field']; ?></small></li>
|
2313 |
-
<?php
|
2314 |
-
} else {
|
2315 |
-
?>
|
2316 |
-
<li class="available-interest-group" alt="<?php echo $interest_group['id']; ?>" data-attr-field-name="<?php echo stripslashes( $interest_group['name'] ); ?>" data-attr-field-type="<?php echo $interest_group['form_field']; ?>" data-attr-form-id="<?php echo $list_id; ?>"><?php echo stripslashes( $interest_group['name'] ); ?> <small class="field-type-text"><?php echo $interest_group['form_field']; ?></small></li>
|
2317 |
-
<?php
|
2318 |
-
}
|
2319 |
-
}
|
2320 |
-
?></ul>
|
2321 |
-
<a href="#" class="add-interest-group-to-editor button-secondary yikes-easy-mc-hidden" style="display:none;"><small><span class="dashicons dashicons-arrow-left-alt add-to-form-builder-arrow"></span> <?php _e( 'Add to Form Builder' , 'yikes-inc-easy-mailchimp-extender' ); ?></small></a>
|
2322 |
-
<?php
|
2323 |
-
}
|
2324 |
-
}
|
2325 |
-
|
2326 |
-
/*
|
2327 |
-
* Create A New Form!
|
2328 |
-
* Probably Move these to its own file,
|
2329 |
-
* and include it here for easy maintenance
|
2330 |
-
* - must clean up db tables , ensure what data is going in and what is needed...
|
2331 |
-
*/
|
2332 |
-
public function yikes_easy_mailchimp_create_form() {
|
2333 |
-
$nonce = $_REQUEST['nonce'];
|
2334 |
-
if( ! wp_verify_nonce( $nonce, 'create_mailchimp_form' ) ) {
|
2335 |
-
die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) );
|
2336 |
-
}
|
2337 |
-
global $wpdb;
|
2338 |
-
/* Default values */
|
2339 |
-
// setup our default submission settings serialized array
|
2340 |
-
$submission_settings = json_encode(
|
2341 |
-
array(
|
2342 |
-
'ajax' => 1,
|
2343 |
-
'redirect_on_submission' => 0,
|
2344 |
-
'redirect_page' => 1,
|
2345 |
-
'hide_form_post_signup' => 0
|
2346 |
-
)
|
2347 |
-
);
|
2348 |
-
// setup our default opt-in settings serialized array
|
2349 |
-
$optin_settings = json_encode(
|
2350 |
-
array(
|
2351 |
-
'optin' => 1,
|
2352 |
-
'update_existing_user' => 1,
|
2353 |
-
'send_welcome_email' => 1,
|
2354 |
-
)
|
2355 |
-
);
|
2356 |
-
// setup our default error message array
|
2357 |
-
$error_settings= json_encode(
|
2358 |
-
array(
|
2359 |
-
'success' => '',
|
2360 |
-
'general-error' => '',
|
2361 |
-
'invalid-email' => '',
|
2362 |
-
'email-already-subscribed' => ''
|
2363 |
-
)
|
2364 |
-
);
|
2365 |
-
/* End default values */
|
2366 |
-
/* Working Insert Function */
|
2367 |
-
$wpdb->insert(
|
2368 |
-
$wpdb->prefix . 'yikes_easy_mc_forms',
|
2369 |
-
array(
|
2370 |
-
'list_id' => $_POST['associated-list'],
|
2371 |
-
'form_name' => stripslashes( $_POST['form-name'] ),
|
2372 |
-
'form_description' => stripslashes( $_POST['form-description'] ),
|
2373 |
-
'fields' => '',
|
2374 |
-
'custom_styles' => 0,
|
2375 |
-
'custom_template' => 0,
|
2376 |
-
'send_welcome_email' => 1,
|
2377 |
-
'redirect_user_on_submit' => 0,
|
2378 |
-
'redirect_page' => '',
|
2379 |
-
'submission_settings' => $submission_settings,
|
2380 |
-
'optin_settings' => $optin_settings,
|
2381 |
-
'error_messages' => $error_settings,
|
2382 |
-
'custom_notifications' => '',
|
2383 |
-
'impressions' => 0,
|
2384 |
-
'submissions' => 0,
|
2385 |
-
'custom_fields' => '',
|
2386 |
-
),
|
2387 |
-
array(
|
2388 |
-
'%s', // list id
|
2389 |
-
'%s', // form name
|
2390 |
-
'%s', // form description
|
2391 |
-
'%s', // fields
|
2392 |
-
'%s', // custom styles
|
2393 |
-
'%d', // custom template
|
2394 |
-
'%d', // send welcome email
|
2395 |
-
'%s', // redirect user
|
2396 |
-
'%s', // redirect page
|
2397 |
-
'%s', // submission
|
2398 |
-
'%s', // optin
|
2399 |
-
'%s', // error
|
2400 |
-
'%s', // custom notifications
|
2401 |
-
'%d', // impressions #
|
2402 |
-
'%d', // submissions #
|
2403 |
-
'%s', // custom fields
|
2404 |
-
)
|
2405 |
-
);
|
2406 |
-
|
2407 |
-
// if an error occurs during the form creation process
|
2408 |
-
if( $wpdb->insert_id == '0' ) {
|
2409 |
-
// write it to the error log
|
2410 |
-
// if the form was not created successfully
|
2411 |
-
if( get_option( 'yikes-mailchimp-debug-status' , '' ) == '1' ) {
|
2412 |
-
require_once YIKES_MC_PATH . 'includes/error_log/class-yikes-inc-easy-mailchimp-error-logging.php';
|
2413 |
-
$error_logging = new Yikes_Inc_Easy_Mailchimp_Error_Logging();
|
2414 |
-
$error_logging->yikes_easy_mailchimp_write_to_error_log( $wpdb->last_error , __( "Creating a new form" , 'yikes-inc-easy-mailchimp-extender' ) , __( "Forms" , 'yikes-inc-easy-mailchimp-extender' ) );
|
2415 |
-
}
|
2416 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-mailchimp-edit-form&sql_error='.urlencode( $wpdb->last_error ) ) ) );
|
2417 |
-
} else {
|
2418 |
-
// redirect the user to the new form edit page
|
2419 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-mailchimp-edit-form&id='.$wpdb->insert_id ) ) );
|
2420 |
-
}
|
2421 |
-
exit();
|
2422 |
-
die();
|
2423 |
-
}
|
2424 |
-
|
2425 |
-
/*
|
2426 |
-
* Delete A Form !
|
2427 |
-
* Probably Move these to its own file,
|
2428 |
-
* and include it here for easy maintenance
|
2429 |
-
* - must clean up db tables , ensure what data is going in and what is needed...
|
2430 |
-
*/
|
2431 |
-
public function yikes_easy_mailchimp_delete_form() {
|
2432 |
-
// grab & store our variables ( associated list & form name )
|
2433 |
-
$nonce = $_REQUEST['nonce'];
|
2434 |
-
$post_id_to_delete = $_REQUEST['mailchimp-form'];
|
2435 |
-
// verify our nonce
|
2436 |
-
if( ! wp_verify_nonce( $nonce, 'delete-mailchimp-form-'.$post_id_to_delete ) ) {
|
2437 |
-
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
2438 |
-
}
|
2439 |
-
global $wpdb;
|
2440 |
-
/* Working Insert Function */
|
2441 |
-
$wpdb->delete(
|
2442 |
-
$wpdb->prefix . 'yikes_easy_mc_forms',
|
2443 |
-
array(
|
2444 |
-
'id' => $post_id_to_delete
|
2445 |
-
),
|
2446 |
-
array(
|
2447 |
-
'%d',
|
2448 |
-
)
|
2449 |
-
);
|
2450 |
-
// redirect the user to the manage forms page, display confirmation
|
2451 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp&deleted-form=true' ) ) );
|
2452 |
-
exit();
|
2453 |
-
die();
|
2454 |
-
}
|
2455 |
-
|
2456 |
-
/*
|
2457 |
-
* Duplicate an entire form !
|
2458 |
-
* Probably Move these to its own file,
|
2459 |
-
*/
|
2460 |
-
public function yikes_easy_mailchimp_duplicate_form() {
|
2461 |
-
// grab & store our variables ( associated list & form name )
|
2462 |
-
$nonce = $_REQUEST['nonce'];
|
2463 |
-
$post_id_to_clone = $_REQUEST['mailchimp-form'];
|
2464 |
-
// verify our nonce
|
2465 |
-
if( ! wp_verify_nonce( $nonce, 'duplicate-mailchimp-form-'.$post_id_to_clone ) ) {
|
2466 |
-
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
2467 |
-
}
|
2468 |
-
global $wpdb;
|
2469 |
-
/* Working Insert Function */
|
2470 |
-
$form_data = $wpdb->get_row("SELECT * FROM " . $wpdb->prefix . "yikes_easy_mc_forms WHERE id = ".$post_id_to_clone."");
|
2471 |
-
// create empty array to populate with row data
|
2472 |
-
$data = array();
|
2473 |
-
// build a data array to duplicate
|
2474 |
-
foreach( $form_data as $id => $value ) {
|
2475 |
-
// skip the ID field this is unique
|
2476 |
-
if( $id != 'id' ) {
|
2477 |
-
// append -Copy- to our new form
|
2478 |
-
if( $id == 'form_name' ) {
|
2479 |
-
$value = $value . ' - Copy -';
|
2480 |
-
}
|
2481 |
-
// reset the impressions and submissions back to 0
|
2482 |
-
if( $id == 'impressions' || $id == 'submissions' ) {
|
2483 |
-
$value = '0';
|
2484 |
-
}
|
2485 |
-
|
2486 |
-
// add data to our array
|
2487 |
-
$data[$id] = $value;
|
2488 |
-
}
|
2489 |
-
}
|
2490 |
-
// insert our new data
|
2491 |
-
if( $wpdb->insert(
|
2492 |
-
$wpdb->prefix . 'yikes_easy_mc_forms',
|
2493 |
-
apply_filters( 'yikes-mailchimp-duplicate-form-data', $data )
|
2494 |
-
) === FALSE ) {
|
2495 |
-
// redirect the user to the manage forms page, display error
|
2496 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp&duplicated-form=false' ) ) );
|
2497 |
-
} else {
|
2498 |
-
// redirect the user to the manage forms page, display confirmation
|
2499 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp&duplicated-form=true' ) ) );
|
2500 |
-
}
|
2501 |
-
exit();
|
2502 |
-
die();
|
2503 |
-
}
|
2504 |
-
|
2505 |
-
/*
|
2506 |
-
* Reset a forms impression stats
|
2507 |
-
*/
|
2508 |
-
public function yikes_easy_mailchimp_reset_impression_stats() {
|
2509 |
-
// grab & store our variables ( associated list & form name )
|
2510 |
-
$nonce = $_REQUEST['nonce'];
|
2511 |
-
$form_id_to_reset = $_REQUEST['mailchimp-form'];
|
2512 |
-
// verify our nonce
|
2513 |
-
if( ! wp_verify_nonce( $nonce, 'reset-stats-mailchimp-form-'.$form_id_to_reset ) ) {
|
2514 |
-
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
2515 |
-
}
|
2516 |
-
global $wpdb;
|
2517 |
-
/* Update 'Impressions/Submissions' */
|
2518 |
-
if( $wpdb->update(
|
2519 |
-
$wpdb->prefix . 'yikes_easy_mc_forms',
|
2520 |
-
array(
|
2521 |
-
'impressions' => 0,
|
2522 |
-
'submissions' => 0
|
2523 |
-
),
|
2524 |
-
array( 'ID' => $form_id_to_reset )
|
2525 |
-
) === FALSE ) {
|
2526 |
-
// redirect the user to the manage forms page, display error
|
2527 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp&reset-stats=false' ) ) );
|
2528 |
-
} else {
|
2529 |
-
// redirect the user to the manage forms page, display confirmation
|
2530 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp&reset-stats=true' ) ) );
|
2531 |
-
}
|
2532 |
-
exit();
|
2533 |
-
die();
|
2534 |
-
}
|
2535 |
-
|
2536 |
-
/*
|
2537 |
-
* Update an entire form !
|
2538 |
-
* Probably Move these to its own file,
|
2539 |
-
*/
|
2540 |
-
public function yikes_easy_mailchimp_update_form() {
|
2541 |
-
// grab & store our variables ( associated list & form name )
|
2542 |
-
$nonce = $_REQUEST['nonce'];
|
2543 |
-
$form_id = $_REQUEST['id'];
|
2544 |
-
|
2545 |
-
// store our values!
|
2546 |
-
$list_id = $_POST['associated-list'];
|
2547 |
-
$form_name = stripslashes( $_POST['form-name'] );
|
2548 |
-
$form_description = sanitize_text_field( stripslashes( $_POST['form-description'] ) );
|
2549 |
-
$send_welcome_email = $_POST['send-welcome-email'];
|
2550 |
-
$redirect_user_on_submit = $_POST['redirect-user-on-submission'];
|
2551 |
-
$redirect_page = $_POST['redirect-user-to-selection'];
|
2552 |
-
if( isset( $_POST['custom-styles'] ) ) {
|
2553 |
-
$custom_styles = $_POST['custom-styles'];
|
2554 |
-
}
|
2555 |
-
|
2556 |
-
// stripslashes_deep on save, to prevent foreign languages from added excessive backslashes
|
2557 |
-
$assigned_fields = isset( $_POST['field'] ) ? json_encode( stripslashes_deep( $_POST['field'] ) ) : '';
|
2558 |
-
|
2559 |
-
// setup our custom styles serialized array
|
2560 |
-
if( isset( $custom_styles ) ) {
|
2561 |
-
$custom_styles = json_encode( array(
|
2562 |
-
'active' => $_POST['custom-styles'],
|
2563 |
-
'background_color' => $_POST['form-background-color'],
|
2564 |
-
'font_color' => $_POST['form-font-color'],
|
2565 |
-
'submit_button_color' => $_POST['form-submit-button-color'],
|
2566 |
-
'submit_button_text_color' => $_POST['form-submit-button-text-color'],
|
2567 |
-
'form_padding' => $_POST['form-padding'],
|
2568 |
-
'form_width' => $_POST['form-width'],
|
2569 |
-
'form_alignment' => $_POST['form-alignment'],
|
2570 |
-
'label_visible' => $_POST['label-visible']
|
2571 |
-
) );
|
2572 |
-
} else {
|
2573 |
-
$custom_styles = 0;
|
2574 |
-
}
|
2575 |
-
|
2576 |
-
// setup our submission settings serialized array
|
2577 |
-
$submission_settings = json_encode(
|
2578 |
-
array(
|
2579 |
-
'ajax' => $_POST['form-ajax-submission'],
|
2580 |
-
'redirect_on_submission' => $_POST['redirect-user-on-submission'],
|
2581 |
-
'redirect_page' => $_POST['redirect-user-to-selection'],
|
2582 |
-
'custom_redirect_url' => esc_url( $_POST['custom-redirect-url'] ),
|
2583 |
-
'hide_form_post_signup' => $_POST['hide-form-post-signup'],
|
2584 |
-
'replace_interests' => $_POST['replace-interest-groups'],
|
2585 |
-
)
|
2586 |
-
);
|
2587 |
-
|
2588 |
-
// setup our opt-in settings serialized array
|
2589 |
-
$optin_settings = json_encode(
|
2590 |
-
array(
|
2591 |
-
'optin' => $_POST['single-double-optin'],
|
2592 |
-
'update_existing_user' => $_POST['update-existing-user'],
|
2593 |
-
'send_welcome_email' => $_POST['send-welcome-email'],
|
2594 |
-
)
|
2595 |
-
);
|
2596 |
-
|
2597 |
-
// setup our error settings serialized array
|
2598 |
-
$error_settings = json_encode(
|
2599 |
-
array(
|
2600 |
-
'success' => trim( $_POST['yikes-easy-mc-success-message'] ) ? trim( stripslashes( $_POST['yikes-easy-mc-success-message'] ) ) : '',
|
2601 |
-
'general-error' => trim( $_POST['yikes-easy-mc-general-error-message'] ) ? trim( stripslashes( $_POST['yikes-easy-mc-general-error-message'] ) ) : '',
|
2602 |
-
'invalid-email' => trim( $_POST['yikes-easy-mc-invalid-email-message'] ) ? trim( stripslashes( $_POST['yikes-easy-mc-invalid-email-message'] ) ) : '',
|
2603 |
-
'already-subscribed' => trim( $_POST['yikes-easy-mc-user-subscribed-message'] ) ? trim( stripslashes( $_POST['yikes-easy-mc-user-subscribed-message'] ) ) : '',
|
2604 |
-
)
|
2605 |
-
);
|
2606 |
-
|
2607 |
-
// Setup the new form settings array
|
2608 |
-
// @since 6.0.3.8
|
2609 |
-
// To Do: Combine date & time so it's a single unix timestamp
|
2610 |
-
$form_settings = json_encode(
|
2611 |
-
array(
|
2612 |
-
'yikes-easy-mc-form-class-names' => trim( $_POST['yikes-easy-mc-form-class-names'] ),
|
2613 |
-
'yikes-easy-mc-inline-form' => $_POST['yikes-easy-mc-inline-form'][0],
|
2614 |
-
'yikes-easy-mc-submit-button-type' => $_POST['yikes-easy-mc-submit-button-type'][0],
|
2615 |
-
'yikes-easy-mc-submit-button-text' => trim( $_POST['yikes-easy-mc-submit-button-text'] ),
|
2616 |
-
'yikes-easy-mc-submit-button-image' => esc_url( trim( $_POST['yikes-easy-mc-submit-button-image'] ) ),
|
2617 |
-
'yikes-easy-mc-submit-button-classes' => trim( $_POST['yikes-easy-mc-submit-button-classes'] ),
|
2618 |
-
'yikes-easy-mc-form-schedule' => ( isset( $_POST['yikes-easy-mc-form-schedule'] ) ) ? '1' : '0',
|
2619 |
-
'yikes-easy-mc-form-restriction-start' => strtotime( $_POST['yikes-easy-mc-form-restriction-start-date'] . ' ' . $_POST['yikes-easy-mc-form-restriction-start-time'] ),
|
2620 |
-
'yikes-easy-mc-form-restriction-end' => strtotime( $_POST['yikes-easy-mc-form-restriction-end-date'] . ' ' . $_POST['yikes-easy-mc-form-restriction-end-time'] ),
|
2621 |
-
'yikes-easy-mc-form-restriction-pending-message' => trim( $_POST['yikes-easy-mc-form-restriction-pending-message'] ),
|
2622 |
-
'yikes-easy-mc-form-restriction-expired-message' => trim( $_POST['yikes-easy-mc-form-restriction-expired-message'] ),
|
2623 |
-
'yikes-easy-mc-form-login-required' => ( isset( $_POST['yikes-easy-mc-form-login-required'] ) ) ? '1' : '0',
|
2624 |
-
'yikes-easy-mc-form-restriction-login-message' => trim( $_POST['yikes-easy-mc-form-restriction-login-message'] ),
|
2625 |
-
)
|
2626 |
-
);
|
2627 |
-
|
2628 |
-
// setup and store our notification array
|
2629 |
-
$custom_notifications = isset( $_POST['custom-notification'] ) ? stripslashes( json_encode( $_POST['custom-notification'] ) ) : '';
|
2630 |
-
|
2631 |
-
// additional custom fields (extensions / user defined fields)
|
2632 |
-
if( isset( $_POST['custom-field'] ) ) {
|
2633 |
-
$custom_field_array = array();
|
2634 |
-
foreach( $_POST['custom-field'] as $custom_field => $custom_value ) {
|
2635 |
-
if( is_array( $custom_value ) ) {
|
2636 |
-
$custom_field_array[$custom_field] = array_filter( stripslashes_deep( $custom_value ) ); // array_filters to remove empty items (don't save them!)
|
2637 |
-
} else {
|
2638 |
-
$custom_field_array[$custom_field] = stripslashes( $custom_value );
|
2639 |
-
}
|
2640 |
-
}
|
2641 |
-
$custom_fields = json_encode( $custom_field_array );
|
2642 |
-
} else {
|
2643 |
-
$custom_fields = '';
|
2644 |
-
}
|
2645 |
-
|
2646 |
-
// verify our nonce
|
2647 |
-
if( ! wp_verify_nonce( $nonce, 'update-mailchimp-form-'.$form_id ) ) {
|
2648 |
-
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
2649 |
-
}
|
2650 |
-
|
2651 |
-
global $wpdb;
|
2652 |
-
/* Working Insert Function */
|
2653 |
-
// $form_data = $wpdb->get_row("SELECT * FROM " . $wpdb->prefix . "yikes_easy_mc_forms WHERE id = ".$form_id."");
|
2654 |
-
$wpdb->update(
|
2655 |
-
$wpdb->prefix . 'yikes_easy_mc_forms',
|
2656 |
-
array(
|
2657 |
-
'list_id' => $list_id,
|
2658 |
-
'form_name' => $form_name,
|
2659 |
-
'form_description' => $form_description,
|
2660 |
-
'fields' => $assigned_fields,
|
2661 |
-
'custom_styles' => $custom_styles,
|
2662 |
-
'custom_template' => 0,
|
2663 |
-
'send_welcome_email' => $send_welcome_email,
|
2664 |
-
'redirect_user_on_submit' => $redirect_user_on_submit,
|
2665 |
-
'redirect_page' => $redirect_page,
|
2666 |
-
'submission_settings' => $submission_settings,
|
2667 |
-
'optin_settings' => $optin_settings,
|
2668 |
-
'error_messages' => $error_settings,
|
2669 |
-
'form_settings' => $form_settings,
|
2670 |
-
'custom_notifications' => $custom_notifications,
|
2671 |
-
'custom_fields' => $custom_fields,
|
2672 |
-
),
|
2673 |
-
array( 'ID' => $form_id ),
|
2674 |
-
array(
|
2675 |
-
'%s', // list id
|
2676 |
-
'%s', // form name
|
2677 |
-
'%s', // form description
|
2678 |
-
'%s', // fields
|
2679 |
-
'%s', // custom styles
|
2680 |
-
'%d', //custom template
|
2681 |
-
'%d', // send welcome email
|
2682 |
-
'%s', // redirect user
|
2683 |
-
'%s', // redirect page
|
2684 |
-
'%s', // submission
|
2685 |
-
'%s', // opt-in
|
2686 |
-
'%s', // error
|
2687 |
-
'%s', // custom notifications
|
2688 |
-
'%s', // custom fields
|
2689 |
-
),
|
2690 |
-
array( '%d' )
|
2691 |
-
);
|
2692 |
-
|
2693 |
-
/* Custom action hook which allows users to update specific options when a form is updated - used in add ons */
|
2694 |
-
do_action( 'yikes-mailchimp-save-form', $form_id, json_decode( $custom_fields, true ) );
|
2695 |
-
|
2696 |
-
// redirect the user to the manage forms page, display confirmation
|
2697 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-mailchimp-edit-form&id=' . $form_id . '&updated-form=true' ) ) );
|
2698 |
-
exit();
|
2699 |
-
die();
|
2700 |
-
}
|
2701 |
-
|
2702 |
-
/* Unsubscribe a given user from our list */
|
2703 |
-
public function yikes_easy_mailchimp_unsubscribe_user() {
|
2704 |
-
$nonce = $_REQUEST['nonce'];
|
2705 |
-
$list_id = $_REQUEST['mailchimp-list'];
|
2706 |
-
$email_id = $_REQUEST['email_id'];
|
2707 |
-
// verify our nonce
|
2708 |
-
if( ! wp_verify_nonce( $nonce, 'unsubscribe-user-' . $email_id ) ) {
|
2709 |
-
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
2710 |
-
}
|
2711 |
-
// only re-run the API request if our API key has changed
|
2712 |
-
// initialize MailChimp Class
|
2713 |
-
$api_key = trim( get_option( 'yikes-mc-api-key' , '' ) );
|
2714 |
-
$dash_position = strpos( $api_key, '-' );
|
2715 |
-
if( $dash_position !== false ) {
|
2716 |
-
$api_endpoint = 'https://' . substr( $api_key, $dash_position + 1 ) . '.api.mailchimp.com/2.0/lists/unsubscribe.json';
|
2717 |
-
}
|
2718 |
-
$response = wp_remote_post( $api_endpoint, array(
|
2719 |
-
'body' => array(
|
2720 |
-
'apikey' => $api_key,
|
2721 |
-
'id' => $list_id,
|
2722 |
-
'email' => array( 'leid' => $email_id ),
|
2723 |
-
'send_goodbye' => false,
|
2724 |
-
'send_notify' => false
|
2725 |
-
),
|
2726 |
-
'timeout' => 10,
|
2727 |
-
'sslverify' => apply_filters( 'yikes-mailchimp-sslverify', true )
|
2728 |
-
) );
|
2729 |
-
if( ! is_wp_error( $response ) ) {
|
2730 |
-
$response_body = json_decode( wp_remote_retrieve_body( $response ), true );
|
2731 |
-
if( isset( $response_body['error'] ) ) {
|
2732 |
-
if( WP_DEBUG || get_option( 'yikes-mailchimp-debug-status' , '' ) == '1' ) {
|
2733 |
-
require_once YIKES_MC_PATH . 'includes/error_log/class-yikes-inc-easy-mailchimp-error-logging.php';
|
2734 |
-
$error_logging = new Yikes_Inc_Easy_Mailchimp_Error_Logging();
|
2735 |
-
$error_logging->yikes_easy_mailchimp_write_to_error_log( $response_body['error'], __( "Unsubscribe User" , 'yikes-inc-easy-mailchimp-extender' ) , __( "Manage List Page" , 'yikes-inc-easy-mailchimp-extender' ) );
|
2736 |
-
}
|
2737 |
-
}
|
2738 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-mailchimp-view-list&list-id=' . $list_id . '&user-unsubscribed=true' ) ) );
|
2739 |
-
exit;
|
2740 |
-
}
|
2741 |
-
|
2742 |
-
}
|
2743 |
-
|
2744 |
-
public function yikes_easy_mailchimp_create_missing_error_log() {
|
2745 |
-
// grab our nonnce
|
2746 |
-
$nonce = $_REQUEST['nonce'];
|
2747 |
-
// validate nonce
|
2748 |
-
if( !wp_verify_nonce( $nonce, 'create_error_log' ) ) {
|
2749 |
-
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
2750 |
-
}
|
2751 |
-
// setup the path to the error log
|
2752 |
-
$error_log = fopen( plugin_dir_path( __FILE__ ) . '../includes/error_log/yikes-easy-mailchimp-error-log.php' , 'w' );
|
2753 |
-
try {
|
2754 |
-
// create the file
|
2755 |
-
fwrite( $error_log , '' );
|
2756 |
-
// close out
|
2757 |
-
fclose( $error_log );
|
2758 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=debug-settings&error_log_created=true' ) ) );
|
2759 |
-
} catch ( Exception $e ) {
|
2760 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=debug-settings&error_log_created=false&error_message='.urlencode( $e->getMessage() ) ) ) );
|
2761 |
-
}
|
2762 |
-
}
|
2763 |
-
|
2764 |
-
/*
|
2765 |
-
* Clear Transient Data !
|
2766 |
-
* Probably Move these to its own file,
|
2767 |
-
*/
|
2768 |
-
public function yikes_easy_mailchimp_clear_transient_data() {
|
2769 |
-
// grab & store our variables ( associated list & form name )
|
2770 |
-
$nonce = $_REQUEST['nonce'];
|
2771 |
-
// verify our nonce
|
2772 |
-
if( ! wp_verify_nonce( $nonce, 'clear-mc-transient-data' ) ) {
|
2773 |
-
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
2774 |
-
}
|
2775 |
-
// delete all of the integration settings list data in the cache
|
2776 |
-
$list_ids = $this->get_mailchimp_list_ids_on_account();
|
2777 |
-
// confirm the list IDs was returned and is not empty
|
2778 |
-
if( isset( $list_ids ) && ! empty( $list_ids ) ) {
|
2779 |
-
foreach( $list_ids as $id ) {
|
2780 |
-
// loop over each interest group and delete the transient associated with it
|
2781 |
-
// this is created & stored on the integration list page
|
2782 |
-
// id = groupID_interest_group
|
2783 |
-
delete_transient( $id . '_interest_group' );
|
2784 |
-
}
|
2785 |
-
}
|
2786 |
-
// Delete list data transient
|
2787 |
-
delete_transient( 'yikes-easy-mailchimp-list-data' );
|
2788 |
-
// Delete list account data
|
2789 |
-
delete_transient( 'yikes-easy-mailchimp-account-data' );
|
2790 |
-
// Delete list account data
|
2791 |
-
delete_transient( 'yikes-easy-mailchimp-profile-data' );
|
2792 |
-
// redirect the user to the manage forms page, display confirmation
|
2793 |
-
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=api-cache-settings&transient-cleared=true' ) ) );
|
2794 |
-
exit;
|
2795 |
-
}
|
2796 |
-
|
2797 |
-
/**
|
2798 |
-
* Return an array of MailChimp lists associated with this account
|
2799 |
-
*
|
2800 |
-
* Used when deleting the sites MailChimp cache stored
|
2801 |
-
* @since 6.0.2
|
2802 |
-
* @return $list_id_array - array of list id's to loop over
|
2803 |
-
*/
|
2804 |
-
public function get_mailchimp_list_ids_on_account() {
|
2805 |
-
$api_key = trim( get_option( 'yikes-mc-api-key' , '' ) );
|
2806 |
-
if( ! $api_key ) {
|
2807 |
-
// if no api key is set/site is not connected, return an empty array
|
2808 |
-
return array();
|
2809 |
-
}
|
2810 |
-
$dash_position = strpos( $api_key, '-' );
|
2811 |
-
if( $dash_position !== false ) {
|
2812 |
-
$api_endpoint = 'https://' . substr( $api_key, $dash_position + 1 ) . '.api.mailchimp.com/2.0/lists/list.json';
|
2813 |
-
}
|
2814 |
-
$mailchimp_lists = wp_remote_post( $api_endpoint, array(
|
2815 |
-
'body' => array(
|
2816 |
-
'apikey' => $api_key,
|
2817 |
-
'limit' => 100
|
2818 |
-
),
|
2819 |
-
'timeout' => 10,
|
2820 |
-
'sslverify' => apply_filters( 'yikes-mailchimp-sslverify', true )
|
2821 |
-
) );
|
2822 |
-
if( ! is_wp_error( $mailchimp_lists ) ) {
|
2823 |
-
$list_data = json_decode( wp_remote_retrieve_body( $mailchimp_lists ), true );
|
2824 |
-
if( isset( $list_data['error'] ) ) {
|
2825 |
-
if( WP_DEBUG || get_option( 'yikes-mailchimp-debug-status' , '' ) == '1' ) {
|
2826 |
-
require_once YIKES_MC_PATH . 'includes/error_log/class-yikes-inc-easy-mailchimp-error-logging.php';
|
2827 |
-
$error_logging = new Yikes_Inc_Easy_Mailchimp_Error_Logging();
|
2828 |
-
$error_logging->yikes_easy_mailchimp_write_to_error_log( $list_data['error'], __( "Get List IDs" , 'yikes-inc-easy-mailchimp-extender' ) , __( "Clear API Cache" , 'yikes-inc-easy-mailchimp-extender' ) );
|
2829 |
-
}
|
2830 |
-
}
|
2831 |
-
$mail_chimp_list_ids = array();
|
2832 |
-
if( $mailchimp_lists ) {
|
2833 |
-
foreach( $list_data as $list ) {
|
2834 |
-
$mail_chimp_list_ids[] = $list['id'];
|
2835 |
-
}
|
2836 |
-
return $mail_chimp_list_ids;
|
2837 |
-
} else {
|
2838 |
-
return array();
|
2839 |
-
}
|
2840 |
-
}
|
2841 |
-
return;
|
2842 |
-
}
|
2843 |
-
|
2844 |
-
/*
|
2845 |
-
* Include our main Helper class file
|
2846 |
-
* @since 6.0
|
2847 |
-
*/
|
2848 |
-
public function yikes_mailchimp_load_helper_class() {
|
2849 |
-
// check to see if it's already loaded up
|
2850 |
-
if( !class_exists( 'Yikes_Inc_Easy_Mailchimp_Forms_Helper' ) ) {
|
2851 |
-
// Include our main helper class file
|
2852 |
-
include_once( YIKES_MC_PATH . 'admin/partials/helpers/init.php' );
|
2853 |
-
}
|
2854 |
-
}
|
2855 |
-
|
2856 |
-
/*
|
2857 |
-
* Alter the color scheme based on the current user selection (this is done to help integrate the plugin into the dashboard more seamlessly)
|
2858 |
-
*
|
2859 |
-
* @since 0.1
|
2860 |
-
* @order requires that yikes-inc-easy-mailchimp-extender-admin.min.css be enqueued, so we can override the defaults (handle: yikes-inc-easy-mailchimp-extender-admin)
|
2861 |
-
* @retutrn print out custom styles to the admin header to alter the defualt blue color
|
2862 |
-
*/
|
2863 |
-
public function alter_yikes_easy_mc_color_scheme() {
|
2864 |
-
// get the current set color scheme for the logged in user
|
2865 |
-
$current_color_scheme = get_user_option( 'admin_color' );
|
2866 |
-
// switch over each color scheme, and set our variable
|
2867 |
-
switch( $current_color_scheme ) {
|
2868 |
-
default:
|
2869 |
-
case 'fresh': // default blue (defined by this plugin)
|
2870 |
-
$main_color = '#00a0d2';
|
2871 |
-
break;
|
2872 |
-
case 'light': // light grey
|
2873 |
-
$main_color = '#E5E5E5';
|
2874 |
-
break;
|
2875 |
-
case 'blue': // light blue
|
2876 |
-
$main_color = '#52ACCC';
|
2877 |
-
break;
|
2878 |
-
case 'coffee': // light brown-ish
|
2879 |
-
$main_color = '#59524C';
|
2880 |
-
break;
|
2881 |
-
case 'ectoplasm': // purple
|
2882 |
-
$main_color = '#523F6D';
|
2883 |
-
break;
|
2884 |
-
case 'midnight': // black
|
2885 |
-
$main_color = '#363B3F';
|
2886 |
-
break;
|
2887 |
-
case 'ocean': // green/teal-ish
|
2888 |
-
$main_color = '#738E96';
|
2889 |
-
break;
|
2890 |
-
case 'sunrish': // red/orange
|
2891 |
-
$main_color = '#CF4944';
|
2892 |
-
break;
|
2893 |
-
}
|
2894 |
-
ob_start();
|
2895 |
-
?>
|
2896 |
-
<style>
|
2897 |
-
.yikes-easy-mc-postbox h3,
|
2898 |
-
.column-columnname .form-id-container,
|
2899 |
-
.mv_ig_list .nav-tab-active {
|
2900 |
-
background: <?php echo $main_color; ?>;
|
2901 |
-
}
|
2902 |
-
.mv_ig_list .arrow-down {
|
2903 |
-
border-top: 9pt solid <?php echo $main_color; ?>;
|
2904 |
-
}
|
2905 |
-
</style>
|
2906 |
-
<?php
|
2907 |
-
$override_admin_styles = ob_get_clean();
|
2908 |
-
// add our inline styles
|
2909 |
-
echo $override_admin_styles;
|
2910 |
-
}
|
2911 |
-
|
2912 |
-
/**
|
2913 |
-
* Hook in and display our support page/knowledge base articles
|
2914 |
-
* on the support page
|
2915 |
-
* @since 6.0.3.8
|
2916 |
-
*/
|
2917 |
-
public function hook_and_display_kb_article_RSS() {
|
2918 |
-
include_once( YIKES_MC_PATH . 'admin/partials/helpers/knowledge-base-articles-RSS.php' );
|
2919 |
-
}
|
2920 |
-
|
2921 |
-
/**
|
2922 |
-
* Check the users version number, and display a notice to upgrade the databse if needed
|
2923 |
-
* @since 6.0.4
|
2924 |
-
*/
|
2925 |
-
public function check_yikes_mc_table_version() {
|
2926 |
-
if( get_option( 'yikes_mc_database_version', '0.00' ) < '1.0' ) {
|
2927 |
-
require_once YIKES_MC_PATH . 'includes/class-yikes-inc-easy-mailchimp-extender-activator.php';
|
2928 |
-
global $wpdb;
|
2929 |
-
Yikes_Inc_Easy_Mailchimp_Extender_Activator::_activate_yikes_easy_mailchimp( $wpdb );
|
2930 |
-
// update the database option
|
2931 |
-
update_option( 'yikes_mc_database_version', '1.0' );
|
2932 |
-
}
|
2933 |
-
}
|
2934 |
-
|
2935 |
-
/*
|
2936 |
-
* Process [yikes-mailchimp-form-description] into the shortcode
|
2937 |
-
* @since 6.0.4.4
|
2938 |
-
*/
|
2939 |
-
public function process_subscriber_count_shortcode_in_form_descriptions( $form_description, $form_id ) {
|
2940 |
-
$form_description = str_replace( '[yikes-mailchimp-subscriber-count]', do_shortcode( '[yikes-mailchimp-subscriber-count form="' . $form_id . '"]' ), $form_description );
|
2941 |
-
return $form_description;
|
2942 |
-
}
|
2943 |
-
|
2944 |
-
/*
|
2945 |
-
* Generate the sidebar advertisment on the 'Edit Form' page
|
2946 |
-
* @since 6.0.3
|
2947 |
-
*/
|
2948 |
-
public function generate_edit_forms_upsell_ad() {
|
2949 |
-
/*
|
2950 |
-
* SimplePie strips out all query strings
|
2951 |
-
* we had to implement a workaround
|
2952 |
-
* https://github.com/simplepie/simplepie/issues/317
|
2953 |
-
*/
|
2954 |
-
include_once( ABSPATH . WPINC . '/feed.php' );
|
2955 |
-
$rss = fetch_feed( esc_url( 'http://yikesplugins.com/feed/?post_type=product_ads&genre=easy-forms-for-mailchimp' ) );
|
2956 |
-
$maxitems = 0;
|
2957 |
-
if ( ! is_wp_error( $rss ) ) { // Checks that the object is created correctly
|
2958 |
-
// Figure out how many total items there are, but limit it to 1.
|
2959 |
-
$maxitems = $rss->get_item_quantity( 1 );
|
2960 |
-
// Build an array of all the items, starting with element 0 (first element).
|
2961 |
-
$rss_items = $rss->get_items( 0, $maxitems );
|
2962 |
-
} else {
|
2963 |
-
return $feed = new WP_Error( 'Simple Pie RSS Error', $feed->error() );
|
2964 |
-
}
|
2965 |
-
// loop over returned results
|
2966 |
-
foreach ( $rss_items as $add_on ) {
|
2967 |
-
$add_on_desc = $add_on->get_content();
|
2968 |
-
?>
|
2969 |
-
<h3><?php echo $add_on->get_title(); ?></h3>
|
2970 |
-
<div class="inside">
|
2971 |
-
<?php
|
2972 |
-
echo $add_on_desc;
|
2973 |
-
?>
|
2974 |
-
</div>
|
2975 |
-
<?php
|
2976 |
-
}
|
2977 |
-
}
|
2978 |
-
|
2979 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The admin-specific functionality of the plugin.
|
4 |
+
*
|
5 |
+
* Defines the plugin name, version, and two examples hooks for how to
|
6 |
+
* enqueue the admin-specific stylesheet and JavaScript.
|
7 |
+
*
|
8 |
+
* @package Yikes_Inc_Easy_Mailchimp_Forms
|
9 |
+
* @subpackage Yikes_Inc_Easy_Mailchimp_Forms/admin
|
10 |
+
* @author YIKES Inc. <info@yikesinc.com>
|
11 |
+
*/
|
12 |
+
class Yikes_Inc_Easy_Mailchimp_Forms_Admin {
|
13 |
+
/**
|
14 |
+
* The ID of this plugin.
|
15 |
+
*
|
16 |
+
* @since 1.0.0
|
17 |
+
* @access private
|
18 |
+
* @var string $yikes_inc_easy_mailchimp_extender The ID of this plugin.
|
19 |
+
*/
|
20 |
+
private $yikes_inc_easy_mailchimp_extender;
|
21 |
+
/**
|
22 |
+
* The version of this plugin.
|
23 |
+
*
|
24 |
+
* @since 1.0.0
|
25 |
+
* @access private
|
26 |
+
* @var string $version The current version of this plugin.
|
27 |
+
*/
|
28 |
+
private $version;
|
29 |
+
/**
|
30 |
+
* Initialize the class and set its properties.
|
31 |
+
*
|
32 |
+
* @since 1.0.0
|
33 |
+
* @param string $yikes_inc_easy_mailchimp_extender The name of this plugin.
|
34 |
+
* @param string $version The version of this plugin.
|
35 |
+
*/
|
36 |
+
public function __construct( $yikes_inc_easy_mailchimp_extender, $version ) {
|
37 |
+
|
38 |
+
$this->yikes_inc_easy_mailchimp_extender = $yikes_inc_easy_mailchimp_extender;
|
39 |
+
$this->version = $version;
|
40 |
+
// check for old plugin options and migrate if exist
|
41 |
+
add_action( 'admin_menu' , array( $this , 'register_admin_pages' ) , 11 );
|
42 |
+
// check for old plugin options and migrate if exist
|
43 |
+
add_action( 'admin_init' , array( $this , 'check_for_old_yks_mc_options' ) );
|
44 |
+
// Ajax function to update new options...
|
45 |
+
add_action( 'wp_ajax_migrate_old_plugin_settings', array( $this , 'migrate_archived_options' ) );
|
46 |
+
// Ajax function to migrate our forms
|
47 |
+
add_action( 'wp_ajax_migrate_prevoious_forms', array( $this , 'migrate_previously_setup_forms' ) );
|
48 |
+
// fix menu icon spacing
|
49 |
+
add_action( 'admin_head' , array( $this , 'fix_menu_icon_spacing' ) );
|
50 |
+
// register our plugin settings
|
51 |
+
add_action( 'admin_init', array( $this , 'yikes_easy_mc_settings_init' ) );
|
52 |
+
// plugin redirect on activation
|
53 |
+
add_action( 'admin_init' , array( $this , 'yikes_easy_mc_activation_redirect' ) );
|
54 |
+
// Include Third Party Extensions
|
55 |
+
include_once( YIKES_MC_PATH . 'includes/third-party-integrations/third-party-init.php' );
|
56 |
+
// Include our dashboard widget class
|
57 |
+
include_once( YIKES_MC_PATH . 'admin/partials/dashboard-widgets/class.list-activity-widget.php' );
|
58 |
+
// Include our front end widget class
|
59 |
+
include_once( YIKES_MC_PATH . 'admin/partials/front-end-widgets/front-end-widget-form.php' );
|
60 |
+
// Include our ajax processing class
|
61 |
+
include_once( YIKES_MC_PATH . 'admin/partials/ajax/class.ajax.php' );
|
62 |
+
// load up our helper class
|
63 |
+
add_action( 'admin_init' , array( $this , 'yikes_mailchimp_load_helper_class' ) );
|
64 |
+
// process the subscriber count shortcode in form descriptions
|
65 |
+
add_action( 'yikes-mailchimp-form-description', array( $this, 'process_subscriber_count_shortcode_in_form_descriptions' ), 10, 2 );
|
66 |
+
/***********************/
|
67 |
+
/** Create A Form **/
|
68 |
+
/**********************/
|
69 |
+
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-create-form' ) {
|
70 |
+
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_create_form' ) );
|
71 |
+
}
|
72 |
+
/***********************/
|
73 |
+
/** Delete A Form **/
|
74 |
+
/**********************/
|
75 |
+
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-delete-form' ) {
|
76 |
+
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_delete_form' ) );
|
77 |
+
}
|
78 |
+
/**********************************/
|
79 |
+
/** Duplicate/Clone A Form **/
|
80 |
+
/********************************/
|
81 |
+
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-duplicate-form' ) {
|
82 |
+
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_duplicate_form' ) );
|
83 |
+
}
|
84 |
+
/*************************************/
|
85 |
+
/** Reset Form Impression Stats **/
|
86 |
+
/***********************************/
|
87 |
+
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-reset-stats' ) {
|
88 |
+
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_reset_impression_stats' ) );
|
89 |
+
}
|
90 |
+
/**********************************/
|
91 |
+
/** Update A Form **/
|
92 |
+
/********************************/
|
93 |
+
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-update-form' ) {
|
94 |
+
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_update_form' ) );
|
95 |
+
}
|
96 |
+
/**************************************************/
|
97 |
+
/** Clear Store MailChimp Transient Data **/
|
98 |
+
/*************************************************/
|
99 |
+
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-clear-transient-data' ) {
|
100 |
+
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_clear_transient_data' ) );
|
101 |
+
}
|
102 |
+
/*******************************************/
|
103 |
+
/** Remove a user from a mailing list **/
|
104 |
+
/*****************************************/
|
105 |
+
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-unsubscribe-user' ) {
|
106 |
+
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_unsubscribe_user' ) );
|
107 |
+
}
|
108 |
+
/*******************************************/
|
109 |
+
/** Create misisng error log file **/
|
110 |
+
/*****************************************/
|
111 |
+
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-create-error-log' ) {
|
112 |
+
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_create_missing_error_log' ) );
|
113 |
+
}
|
114 |
+
/*******************************************/
|
115 |
+
/** TinyMCE Initialization Functions **/
|
116 |
+
/*****************************************/
|
117 |
+
add_action( 'admin_head' , array( $this, 'add_tinyMCE_buttons' ) );
|
118 |
+
// pass our lists data to tinyMCE button for use
|
119 |
+
foreach ( array('post.php','post-new.php') as $hook ) {
|
120 |
+
add_action( "admin_head-$hook", array( $this, 'tinymce_yikes_easy_mc' ) );
|
121 |
+
}
|
122 |
+
// display an admin notice for users on PHP < 5.3
|
123 |
+
if( phpversion() < '5.3' ) {
|
124 |
+
add_action( "admin_notices", array( $this, 'display_php_warning' ), 999 );
|
125 |
+
}
|
126 |
+
// two week , dismissable notification - check the users plugin installation date
|
127 |
+
add_action( 'admin_init', array( $this , 'yikes_easy_mailchimp_check_installation_date' ) );
|
128 |
+
// dismissable notice admin side
|
129 |
+
add_action( 'admin_init', array( $this , 'yikes_easy_mailchimp_stop_bugging_me' ), 5 );
|
130 |
+
/**************************************************/
|
131 |
+
/** Clear MailChimp Error Log Data **/
|
132 |
+
/*************************************************/
|
133 |
+
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-clear-error-log' ) {
|
134 |
+
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_clear_error_log' ) );
|
135 |
+
}
|
136 |
+
/*********************************************/
|
137 |
+
/** Export MailChimp Opt-in Forms **/
|
138 |
+
/*******************************************/
|
139 |
+
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-export-forms' ) {
|
140 |
+
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_export_forms' ) );
|
141 |
+
}
|
142 |
+
/*********************************************/
|
143 |
+
/** Export Plugin Settings **/
|
144 |
+
/*******************************************/
|
145 |
+
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-export-settings' ) {
|
146 |
+
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_export_plugin_settings' ) );
|
147 |
+
}
|
148 |
+
/*******************************************/
|
149 |
+
/** Import Class Inclusion **/
|
150 |
+
/*****************************************/
|
151 |
+
if ( isset( $_REQUEST[ 'action' ] ) && $_REQUEST[ 'action' ] == 'yikes-easy-mc-import-forms' ) {
|
152 |
+
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_import_forms' ) );
|
153 |
+
}
|
154 |
+
/*******************************************/
|
155 |
+
/** Premium Support Request **/
|
156 |
+
/*****************************************/
|
157 |
+
if ( isset( $_POST[ 'submit-premium-support-request' ] ) ) {
|
158 |
+
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_premium_support_request' ) );
|
159 |
+
}
|
160 |
+
/****************************************/
|
161 |
+
/** Dismiss Options Migrations **/
|
162 |
+
/****************************************/
|
163 |
+
if( isset( $_REQUEST['dismiss_migration_nonce'] ) ) {
|
164 |
+
add_action( 'init' , array( $this , 'yikes_easy_mailchimp_dismiss_option_migrate' ) );
|
165 |
+
}
|
166 |
+
/** Parse default value into usable dynamic data **/
|
167 |
+
add_filter( 'yikes-mailchimp-process-default-tag' , array( $this , 'parse_mailchimp_default_tag' ) );
|
168 |
+
/** Add a disclaimer to ensure that we let people know we are not endorsed/backed by MailChimp at all **/
|
169 |
+
add_filter( 'admin_footer_text', array( $this, 'yikes_easy_forms_admin_disclaimer' ) );
|
170 |
+
/** Add custom plugin action links **/
|
171 |
+
add_filter( 'plugin_action_links_yikes-inc-easy-mailchimp-extender/yikes-inc-easy-mailchimp-extender.php', array( $this, 'easy_forms_plugin_action_links' ) );
|
172 |
+
/* Alter the color scheme based on the users selection */
|
173 |
+
add_action( 'admin_print_scripts', array( $this, 'alter_yikes_easy_mc_color_scheme' ) );
|
174 |
+
// hook in and display our knowledge base articles on the support page
|
175 |
+
add_action( 'yikes-mailchimp-support-page', array( $this, 'hook_and_display_kb_article_RSS' ) );
|
176 |
+
// ensure that the upgrade went smoothly, else we have to let the user know we need to upgrade the database
|
177 |
+
// after upgrading f rom 6.0.3.7 users need to upgrade the database as well
|
178 |
+
add_action( 'plugins_loaded', array( $this, 'check_yikes_mc_table_version' ) );
|
179 |
+
}
|
180 |
+
|
181 |
+
/*
|
182 |
+
* Add custom action links on plugins.php
|
183 |
+
* @ param array $links Pre-existing plugin action links
|
184 |
+
* @ return array $links New array of plugin actions
|
185 |
+
*/
|
186 |
+
public function easy_forms_plugin_action_links( $links ) {
|
187 |
+
$links[] = '<a href="'. esc_url( get_admin_url(null, 'admin.php?page=yikes-inc-easy-mailchimp-settings') ) .'">' . __( 'Settings', 'yikes-inc-easy-mailchimp-extender' ) . '</a>';
|
188 |
+
$links[] = '<a href="' . esc_url( 'http://www.yikesplugins.com?utm_source=plugins-page&utm_medium=plugin-row&utm_campaign=admin' ) . '" target="_blank">' . __( 'More plugins by YIKES' , 'yikes-inc-easy-mailchimp-extender' ) . '</a>';
|
189 |
+
return $links;
|
190 |
+
}
|
191 |
+
|
192 |
+
/**
|
193 |
+
* Add a disclaimer to the admin footer for all YIKES pages to ensure that users understand there is no coorelation between this plugin and MailChimp.
|
194 |
+
* This plugin simply provides the service of linking MailChimp with your site.
|
195 |
+
*
|
196 |
+
* @since 6.0
|
197 |
+
*
|
198 |
+
* @param string $footer_text The existing footer text
|
199 |
+
*
|
200 |
+
* @return string
|
201 |
+
*/
|
202 |
+
public function yikes_easy_forms_admin_disclaimer( $footer_text ) {
|
203 |
+
$page = get_current_screen();
|
204 |
+
$base = $page->base;
|
205 |
+
if ( strpos( $base, 'yikes-' ) !== false ) {
|
206 |
+
$disclaimer_text = sprintf( '<em>' . __( 'Disclaimer: <strong>Easy Forms for MailChimp by YIKES</strong> is in no way endorsed, affiliated or backed by MailChimp, or its parent company Rocket Science Group.', 'yikes-inc-easy-mailchimp-extender' ), '<a href="https://wordpress.org/support/view/plugin-reviews/give?filter=5#postform" target="_blank" class="give-rating-link" data-rated="' . __( 'Thanks :)', 'yikes-inc-easy-mailchimp-extender' ) . '">', '</a></em>' );
|
207 |
+
return $disclaimer_text;
|
208 |
+
} else {
|
209 |
+
return $footer_text;
|
210 |
+
}
|
211 |
+
}
|
212 |
+
|
213 |
+
/*
|
214 |
+
* Parse our default tag into dynamic data
|
215 |
+
* to be passed to MailChimp
|
216 |
+
*
|
217 |
+
* @since 6.0.0
|
218 |
+
* @return parsed tag content
|
219 |
+
*/
|
220 |
+
public function parse_mailchimp_default_tag( $default_tag ) {
|
221 |
+
if( ! $default_tag || $default_tag == '' ) {
|
222 |
+
return $default_tag;
|
223 |
+
}
|
224 |
+
global $post;
|
225 |
+
// page title
|
226 |
+
if( $default_tag == '{page_title}' ) {
|
227 |
+
$default_tag = get_the_title( $post->ID );
|
228 |
+
}
|
229 |
+
// page id
|
230 |
+
if( $default_tag == '{page_title}' ) {
|
231 |
+
$default_tag = $post->ID;
|
232 |
+
}
|
233 |
+
// page url
|
234 |
+
if( $default_tag == '{page_url}' ) {
|
235 |
+
$default_tag = get_permalink( $post->ID );
|
236 |
+
}
|
237 |
+
// blog name
|
238 |
+
if( $default_tag == '{blog_name}' ) {
|
239 |
+
$default_tag = get_bloginfo( 'name' );
|
240 |
+
}
|
241 |
+
// is user logged in
|
242 |
+
if( $default_tag == '{user_logged_in}' ) {
|
243 |
+
if( is_user_logged_in() ) {
|
244 |
+
$default_tag = 'Registered User';
|
245 |
+
} else {
|
246 |
+
$default_tag = 'Guest User';
|
247 |
+
}
|
248 |
+
}
|
249 |
+
/* Return our filtered tag */
|
250 |
+
return apply_filters( 'yikes-mailchimp-parse-custom-default-value', $default_tag );
|
251 |
+
}
|
252 |
+
|
253 |
+
/*
|
254 |
+
* Delete the contents of our error log
|
255 |
+
*
|
256 |
+
* When a user clicks 'Clear Log' on the debug settings page, this funciton
|
257 |
+
* is used to clear the data out of our php file.
|
258 |
+
*/
|
259 |
+
public function yikes_easy_mailchimp_clear_error_log() {
|
260 |
+
// file put contents $returned error + other data
|
261 |
+
if( file_exists( YIKES_MC_PATH . 'includes/error_log/yikes-easy-mailchimp-error-log.php' ) ) {
|
262 |
+
$clear_log = file_put_contents(
|
263 |
+
YIKES_MC_PATH . 'includes/error_log/yikes-easy-mailchimp-error-log.php',
|
264 |
+
''
|
265 |
+
);
|
266 |
+
if( $clear_log === false ) {
|
267 |
+
// redirect the user to the manage forms page, display error message
|
268 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=debug-settings&error-log-cleared=false' ) ) );
|
269 |
+
} else {
|
270 |
+
// redirect the user to the manage forms page, display confirmation
|
271 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=debug-settings&error-log-cleared=true' ) ) );
|
272 |
+
}
|
273 |
+
}
|
274 |
+
}
|
275 |
+
|
276 |
+
/*
|
277 |
+
* Custom export function to export all or specific forms
|
278 |
+
* to allow for easy transpot to other sites
|
279 |
+
* @since 6.0.0
|
280 |
+
* @return CSV export file
|
281 |
+
*/
|
282 |
+
public function yikes_easy_mailchimp_export_forms() {
|
283 |
+
// grab our nonce
|
284 |
+
$nonce = $_REQUEST['nonce'];
|
285 |
+
// grab the forms
|
286 |
+
$forms = isset( $_REQUEST['export_forms'] ) ? $_REQUEST['export_forms'] : 'all';
|
287 |
+
// validate nonce
|
288 |
+
if( ! wp_verify_nonce( $nonce, 'export-forms' ) ) {
|
289 |
+
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
290 |
+
}
|
291 |
+
// include the export class
|
292 |
+
if( ! class_exists( 'Yikes_Inc_Easy_MailChimp_Export_Class' ) ) {
|
293 |
+
include_once( YIKES_MC_PATH . 'includes/import-export/yikes-easy-mailchimp-export.class.php' );
|
294 |
+
}
|
295 |
+
// run the export function
|
296 |
+
// parameters: ( $table_name, $form_ids, $file_name )
|
297 |
+
Yikes_Inc_Easy_MailChimp_Export_Class::yikes_mailchimp_form_export( 'yikes_easy_mc_forms' , $forms, 'Yikes-Inc-Easy-MailChimp-Forms-Export' );
|
298 |
+
// re-direct the user back to the page
|
299 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=import-export-forms' ) ) );
|
300 |
+
die();
|
301 |
+
}
|
302 |
+
|
303 |
+
/*
|
304 |
+
* Custom export function to export YIKES Easy Forms for MailChimp Plugin Settings
|
305 |
+
* to allow for easy transpot to other sites
|
306 |
+
* @since 6.0.0
|
307 |
+
* @return CSV export file
|
308 |
+
*/
|
309 |
+
public function yikes_easy_mailchimp_export_plugin_settings() {
|
310 |
+
// grab our nonce
|
311 |
+
$nonce = $_REQUEST['nonce'];
|
312 |
+
// validate nonce
|
313 |
+
if( ! wp_verify_nonce( $nonce, 'export-settings' ) ) {
|
314 |
+
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
315 |
+
}
|
316 |
+
// include the export class
|
317 |
+
if( ! class_exists( 'Yikes_Inc_Easy_MailChimp_Export_Class' ) ) {
|
318 |
+
include_once( YIKES_MC_PATH . 'includes/import-export/yikes-easy-mailchimp-export.class.php' );
|
319 |
+
}
|
320 |
+
// run the export function
|
321 |
+
// parameters: ( $table_name, $form_ids, $file_name )
|
322 |
+
Yikes_Inc_Easy_MailChimp_Export_Class::yikes_mailchimp_settings_export( 'Yikes-Inc-Easy-MailChimp-Settings-Export' );
|
323 |
+
// re-direct the user back to the page
|
324 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=import-export-forms' ) ) );
|
325 |
+
die();
|
326 |
+
}
|
327 |
+
|
328 |
+
/*
|
329 |
+
* Custom import function to import all or specific forms
|
330 |
+
* @since 6.0.0
|
331 |
+
*/
|
332 |
+
public function yikes_easy_mailchimp_import_forms() {
|
333 |
+
// grab our nonce
|
334 |
+
$nonce = $_REQUEST['nonce'];
|
335 |
+
// validate nonce
|
336 |
+
if( ! wp_verify_nonce( $nonce, 'import-forms' ) ) {
|
337 |
+
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
338 |
+
}
|
339 |
+
// include the export class
|
340 |
+
if( ! class_exists( 'Yikes_Inc_Easy_MailChimp_Import_Class' ) ) {
|
341 |
+
include_once( YIKES_MC_PATH . 'includes/import-export/yikes-easy-mailchimp-import.class.php' );
|
342 |
+
}
|
343 |
+
// run the import function
|
344 |
+
// parameters: ( $_FILES )
|
345 |
+
Yikes_Inc_Easy_MailChimp_Import_Class::yikes_mailchimp_import_forms( $_FILES );
|
346 |
+
$import_query_arg = Yikes_Inc_Easy_MailChimp_Import_Class::yikes_mailchimp_import_type( $_FILES );
|
347 |
+
// re-direct the user back to the page
|
348 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=import-export-forms&' . $import_query_arg . '=true' ) ) );
|
349 |
+
die();
|
350 |
+
}
|
351 |
+
|
352 |
+
/*
|
353 |
+
* Premium Support Request
|
354 |
+
* @since 6.0.0
|
355 |
+
*/
|
356 |
+
public function yikes_easy_mailchimp_premium_support_request() {
|
357 |
+
|
358 |
+
if( isset( $_POST['action'] ) && $_POST['action'] != 'yikes-support-request' ) {
|
359 |
+
return __( 'We encountered an error. Please contact the YIKES Inc. support team.' , 'yikes-inc-easy-mailchimp-extender' );
|
360 |
+
}
|
361 |
+
|
362 |
+
$license = $_POST['license_key'];
|
363 |
+
$user_email = $_POST['user-email'];
|
364 |
+
$support_topic = $_POST['support-topic'];
|
365 |
+
$support_priority = $_POST['support-priority'];
|
366 |
+
$support_content = $_POST['support-content'];
|
367 |
+
|
368 |
+
// wp_die( print_r( $support_content) );
|
369 |
+
|
370 |
+
$ticket_array = array(
|
371 |
+
'action' => 'yikes-support-request',
|
372 |
+
'license_key' => urlencode( base64_encode( $license ) ),
|
373 |
+
'user_email' => urlencode( $user_email ),
|
374 |
+
'site_url' => urlencode( esc_url( home_url() ) ),
|
375 |
+
'support_topic' => urlencode( $support_topic ),
|
376 |
+
'support_priority' => $support_priority,
|
377 |
+
'support_content' => $support_content,
|
378 |
+
);
|
379 |
+
|
380 |
+
$yikes_plugin_support_url = 'https://yikesplugins.com';
|
381 |
+
|
382 |
+
if( $license != 'plugin-core' ) {
|
383 |
+
$split_license = explode( '|', $license );
|
384 |
+
// first let's check that the license key is actually active
|
385 |
+
$is_license_key_active = wp_remote_post( esc_url( $yikes_plugin_support_url ), array(
|
386 |
+
'action' => 'check_license',
|
387 |
+
'product_name' => urlencode( str_replace( '-', '', $split_license[1] ) . 'for Easy MailChimp' ),
|
388 |
+
'license' => $split_license[0],
|
389 |
+
) );
|
390 |
+
|
391 |
+
$response_body = wp_remote_retrieve_body( $is_license_key_active );
|
392 |
+
if( $response_body ) {
|
393 |
+
if( $response_body->status != 'valid' ) {
|
394 |
+
wp_die( 'Invalid License Key...' );
|
395 |
+
}
|
396 |
+
}
|
397 |
+
}
|
398 |
+
|
399 |
+
// Call the custom API.
|
400 |
+
$response = wp_remote_post( esc_url( $yikes_plugin_support_url ), array(
|
401 |
+
'timeout' => 30,
|
402 |
+
'sslverify' => false,
|
403 |
+
'body' => $ticket_array
|
404 |
+
) );
|
405 |
+
|
406 |
+
// catch the error
|
407 |
+
if( is_wp_error( $response ) ) {
|
408 |
+
wp_die( $create_ticket_request->getMessage() );
|
409 |
+
return;
|
410 |
+
}
|
411 |
+
|
412 |
+
// retrieve our body
|
413 |
+
$create_ticket_response = wp_remote_retrieve_body( $response );
|
414 |
+
|
415 |
+
// display it
|
416 |
+
if( $create_ticket_response )
|
417 |
+
echo $create_ticket_response;
|
418 |
+
|
419 |
+
}
|
420 |
+
|
421 |
+
/**
|
422 |
+
* Dismiss the migrate options notice (incase the user wants to do things manually)
|
423 |
+
*
|
424 |
+
* @since 6.0.0
|
425 |
+
**/
|
426 |
+
public function yikes_easy_mailchimp_dismiss_option_migrate() {
|
427 |
+
// delete the options and allow the user to manually updadte things
|
428 |
+
|
429 |
+
// Verify the NONCE is valid
|
430 |
+
check_admin_referer( 'yikes-mc-dismiss-migration' , 'dismiss_migration_nonce' );
|
431 |
+
|
432 |
+
// re-direct the user back to the page
|
433 |
+
wp_redirect( esc_url_raw( admin_url( 'index.php?yikes-mc-options-migration-dismissed="true"' ) ) );
|
434 |
+
die();
|
435 |
+
}
|
436 |
+
|
437 |
+
/**
|
438 |
+
* Error logging class
|
439 |
+
*
|
440 |
+
* This is our main error logging class file, used to log errors to the error log.
|
441 |
+
*
|
442 |
+
* @since 6.0.0
|
443 |
+
*/
|
444 |
+
public function load_error_logging_class() {
|
445 |
+
if( get_option( 'yikes-mailchimp-debug-status' , '' ) == '1' ) {
|
446 |
+
// if error logging is enabled we should include our error logging class
|
447 |
+
/* Generate oure error logging table */
|
448 |
+
require_once YIKES_MC_PATH . '/includes/error_log/class-yikes-inc-easy-mailchimp-error-logging.php';
|
449 |
+
$error_logging = new Yikes_Inc_Easy_Mailchimp_Error_Logging();
|
450 |
+
}
|
451 |
+
}
|
452 |
+
|
453 |
+
/*
|
454 |
+
yikes_easy_mailchimp_check_installation_date()
|
455 |
+
checks the user installation date, and adds our action
|
456 |
+
- if it's past 2 weeks we ask the user for a review :)
|
457 |
+
@since v6.0.0
|
458 |
+
*/
|
459 |
+
public function yikes_easy_mailchimp_check_installation_date() {
|
460 |
+
|
461 |
+
// add a new option to store the plugin activation date/time
|
462 |
+
// @since v6.0.0
|
463 |
+
// this is used to notify the user that they should review after 2 weeks
|
464 |
+
if ( !get_option( 'yikes_easy_mailchimp_activation_date' ) ) {
|
465 |
+
add_option( 'yikes_easy_mailchimp_activation_date', strtotime( "now" ) );
|
466 |
+
}
|
467 |
+
|
468 |
+
$stop_bugging_me = get_option( 'yikes_easy_mailchimp_review_stop_bugging_me' );
|
469 |
+
|
470 |
+
if( !$stop_bugging_me ) {
|
471 |
+
$install_date = get_option( 'yikes_easy_mailchimp_activation_date' );
|
472 |
+
$past_date = strtotime( '-14 days' );
|
473 |
+
if ( $past_date >= $install_date && current_user_can( 'install_plugins' ) ) {
|
474 |
+
add_action( 'admin_notices', array( $this , 'yikes_easy_mailchimp_display_review_us_notice' ) );
|
475 |
+
}
|
476 |
+
}
|
477 |
+
|
478 |
+
}
|
479 |
+
|
480 |
+
/*
|
481 |
+
Display our admin notification
|
482 |
+
asking for a review, and for user feedback
|
483 |
+
@since v6.0.0
|
484 |
+
*/
|
485 |
+
public function yikes_easy_mailchimp_display_review_us_notice() {
|
486 |
+
/* Lets only display our admin notice on YT4WP pages to not annoy the hell out of people :) */
|
487 |
+
if ( in_array( get_current_screen()->base , array( 'dashboard' , 'post' , 'edit' ) ) || strpos( get_current_screen()->base ,'yikes-inc-easy-mailchimp') !== false ) {
|
488 |
+
// Review URL - Change to the URL of your plugin on WordPress.org
|
489 |
+
$reviewurl = 'https://wordpress.org/support/view/plugin-reviews/yikes-inc-easy-mailchimp-extender';
|
490 |
+
$addons_url = esc_url( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-addons' ) );
|
491 |
+
$nobugurl = esc_url_raw( add_query_arg( 'yikes_easy_mc_icons_nobug', '1', admin_url() ) );
|
492 |
+
global $current_user;
|
493 |
+
get_currentuserinfo();
|
494 |
+
if ( isset( $current_user->user_firstname ) && '' != $current_user->user_firstname ) {
|
495 |
+
$review_message = '<div id="yikes-mailchimp-logo"></div>';
|
496 |
+
$review_message .= sprintf( __( "Hi, %s, you've been using %s for 2 weeks now. We hope you're enjoying the features included with the free version. If so, please consider leaving us a review. Reviews provide us with feedback to grow and improve the plugin. If you're really enjoying the plugin, consider buying an add-on or developer license for some really awesome features and premium support." , 'yikes-inc-easy-mailchimp-extender' ) . "<span class='button-container'> <a href='%s' target='_blank' class='button-secondary'><span class='dashicons dashicons-star-filled'></span>" . __( "Leave A Review" , 'yikes-inc-easy-mailchimp-extender' ) . "</a> <a href='%s' class='button-secondary'><span class='dashicons dashicons-upload'></span>" . __( "View Addons" , 'yikes-inc-easy-mailchimp-extender' ) . "</a> <a href='%s' class='button-secondary'><span class='dashicons dashicons-no-alt'></span>" . __( "Dismiss" , 'yikes-inc-easy-mailchimp-extender' ) . "</a> </span>", $current_user->user_firstname, '<strong>Easy Forms for MailChimp by YIKES Inc.</strong>', $reviewurl, $addons_url, $nobugurl );
|
497 |
+
$review_message .= '';
|
498 |
+
} else {
|
499 |
+
$review_message = '<div id="yikes-mailchimp-logo"></div>';
|
500 |
+
$review_message .= sprintf( __( "It looks like you've been using %s for 2 weeks now. We hope you're enjoying the features included with the free version. If so, please consider leaving us a review. Reviews only help to catch other users attention as well as provide us with feedback to grow and improve upon. If you're really enjoying the plugin, consider buying an add-on or developer license for some really awesome features and premium support." , 'yikes-inc-easy-mailchimp-extender' ) . "<span class='button-container'> <a href='%s' target='_blank' class='button-secondary'><span class='dashicons dashicons-star-filled'></span>" . __( "Leave A Review" , 'yikes-inc-easy-mailchimp-extender' ) . "</a> <a href='%s' class='button-secondary'><span class='dashicons dashicons-upload'></span>" . __( "View Addons" , 'yikes-inc-easy-mailchimp-extender' ) . "</a> <a href='%s' class='button-secondary'><span class='dashicons dashicons-no-alt'></span>" . __( "Dismiss" , 'yikes-inc-easy-mailchimp-extender' ) . "</a> </span>", '<strong>Easy Forms for MailChimp by YIKES Inc.</strong>', $reviewurl, $addons_url, $nobugurl ) . '';
|
501 |
+
}
|
502 |
+
?>
|
503 |
+
<div id="review-yikes-easy-mailchimp-notice">
|
504 |
+
<?php echo $review_message; ?>
|
505 |
+
</div>
|
506 |
+
<?php
|
507 |
+
}
|
508 |
+
}
|
509 |
+
|
510 |
+
/*
|
511 |
+
yikes_easy_mailchimp_stop_bugging_me()
|
512 |
+
Remove the Review us notification when user clicks 'Dismiss'
|
513 |
+
@since v3.1.1
|
514 |
+
*/
|
515 |
+
public function yikes_easy_mailchimp_stop_bugging_me() {
|
516 |
+
$nobug = "";
|
517 |
+
if ( isset( $_GET['yikes_easy_mc_icons_nobug'] ) ) {
|
518 |
+
$nobug = (int) esc_attr( $_GET['yikes_easy_mc_icons_nobug'] );
|
519 |
+
}
|
520 |
+
if ( 1 == $nobug ) {
|
521 |
+
add_option( 'yikes_easy_mailchimp_review_stop_bugging_me', TRUE );
|
522 |
+
}
|
523 |
+
}
|
524 |
+
|
525 |
+
/* End Two Week Notificaition */
|
526 |
+
|
527 |
+
/* Display a warning users who are using PHP < 5.3 */
|
528 |
+
public function display_php_warning() {
|
529 |
+
$message = __( 'YIKES Inc. Easy Forms for MailChimp requires a minimum of PHP 5.3. The plugin will not function properly until you update. Reach out to your host provider for assistance.' , 'yikes-inc-easy-mailchimp-extender' );
|
530 |
+
echo "<div class='error'> <p><span class='dashicons dashicons-no-alt' style='color:rgb(231, 98, 98)'></span> $message</p></div>";
|
531 |
+
}
|
532 |
+
|
533 |
+
|
534 |
+
|
535 |
+
/* TinyMCE Functions */
|
536 |
+
// load our button and pass in the JS form data variable
|
537 |
+
public function add_tinyMCE_buttons() {
|
538 |
+
global $typenow;
|
539 |
+
// only on Post Type: post and page
|
540 |
+
if( ! in_array( $typenow, array( 'post', 'page' ) ) ) {
|
541 |
+
return;
|
542 |
+
}
|
543 |
+
add_filter( 'mce_buttons', array( $this, 'yks_mc_add_tinymce_button' ) );
|
544 |
+
add_filter( 'mce_external_plugins', array( $this, 'yks_mc_add_tinymce_plugin' ) );
|
545 |
+
}
|
546 |
+
|
547 |
+
// Add the button key for address via JS
|
548 |
+
public function yks_mc_add_tinymce_button( $buttons ) {
|
549 |
+
array_push( $buttons, 'yks_mc_tinymce_button_key' );
|
550 |
+
// Print all buttons
|
551 |
+
return $buttons;
|
552 |
+
}
|
553 |
+
|
554 |
+
// inlcude the js for tinymce
|
555 |
+
public function yks_mc_add_tinymce_plugin( $plugin_array ) {
|
556 |
+
$plugin_array['yks_mc_tinymce_button'] = plugins_url( '/js/min/yikes-inc-easy-mailchimp-tinymce-button.min.js', __FILE__ );
|
557 |
+
// Print all plugin js path
|
558 |
+
// var_dump( $plugin_array );
|
559 |
+
return $plugin_array;
|
560 |
+
}
|
561 |
+
|
562 |
+
/**
|
563 |
+
* Localize Script
|
564 |
+
* Pass our imported list data, to the JS file
|
565 |
+
* to build the drop down list in the modal
|
566 |
+
*/
|
567 |
+
public function tinymce_yikes_easy_mc() {
|
568 |
+
// check capabilities
|
569 |
+
if( ! current_user_can( apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ) ) ) {
|
570 |
+
return;
|
571 |
+
}
|
572 |
+
global $wpdb;
|
573 |
+
$list_data = $wpdb->get_results( 'SELECT * FROM ' . $wpdb->prefix . 'yikes_easy_mc_forms', ARRAY_A );
|
574 |
+
$lists = array();
|
575 |
+
$i = 0;
|
576 |
+
if( !empty( $list_data ) ) {
|
577 |
+
// build an array to pass to our javascript
|
578 |
+
foreach( $list_data as $form ) {
|
579 |
+
$lists[$i] = array(
|
580 |
+
'text' => urlencode( $form['form_name'] ),
|
581 |
+
'value' => $form['id']
|
582 |
+
);
|
583 |
+
$i++;
|
584 |
+
}
|
585 |
+
} else {
|
586 |
+
$lists[0] = array(
|
587 |
+
'text' => __( 'Please Import Some MailChimp Lists' , 'yikes-inc-easy-mailchimp-extender' ),
|
588 |
+
'value' => '-'
|
589 |
+
);
|
590 |
+
}
|
591 |
+
/* Pass our form data to our JS file for use */
|
592 |
+
?>
|
593 |
+
<script type="text/javascript">
|
594 |
+
var forms = {
|
595 |
+
'data' : '<?php echo json_encode( $lists ); ?>'
|
596 |
+
};
|
597 |
+
var localized_data = {
|
598 |
+
'button_title' : '<?php _e( 'Easy Forms for MailChimp by YIKES', 'yikes-inc-easy-mailchimp-extender' ); ?>',
|
599 |
+
'popup_title' : '<?php _e( 'Easy Forms for MailChimp by YIKES', 'yikes-inc-easy-mailchimp-extender' ); ?>',
|
600 |
+
'list_id_label' : '<?php _e( 'MailChimp Opt-In Form' , 'yikes-inc-easy-mailchimp-extender' ); ?>',
|
601 |
+
'show_title_label' : '<?php _e( 'Display Form Title' , 'yikes-inc-easy-mailchimp-extender' ); ?>',
|
602 |
+
'show_description_label' : '<?php _e( 'Display Form Description' , 'yikes-inc-easy-mailchimp-extender' ); ?>',
|
603 |
+
'submit_button_text_label' : '<?php _e( 'Submit Button Text' , 'yikes-inc-easy-mailchimp-extender' ); ?>',
|
604 |
+
};
|
605 |
+
<?php
|
606 |
+
$link = sprintf( __( 'You need to <a href="%s" title="%s">create a form</a> before you can add one to a page or post.', 'yikes-inc-easy-mailchimp-extender' ), esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp' ) ), __( 'Create a form', 'yikes-inc-easy-mailchimp-extender' ) );
|
607 |
+
?>
|
608 |
+
var alert_translated = '<?php echo $link; ?>';
|
609 |
+
</script>
|
610 |
+
<?php
|
611 |
+
}
|
612 |
+
/* End TinyMCE Functions */
|
613 |
+
|
614 |
+
/*
|
615 |
+
* Redirect the user to our Welcome page
|
616 |
+
* when they activate the plug in, if they haven't been redirected before
|
617 |
+
*/
|
618 |
+
public function yikes_easy_mc_activation_redirect() {
|
619 |
+
if ( get_option( 'yikes_mailchimp_activation_redirect', 'true' ) == 'true' ) {
|
620 |
+
update_option( 'yikes_mailchimp_activation_redirect', 'false' );
|
621 |
+
/* If the user had this plugin activated prior to today, redirect to 'Whats New' */
|
622 |
+
if( get_option( 'yikes_easy_mailchimp_activation_date', strtotime( 'now' ) ) == strtotime( 'now' ) ) {
|
623 |
+
wp_redirect( esc_url( admin_url( 'admin.php?page=yikes-mailchimp-welcome' ) ) );
|
624 |
+
} else {
|
625 |
+
/* Else redirect the user over to the 'Getting Started' tab */
|
626 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-mailchimp-welcome§ion=whats-new' ) ) );
|
627 |
+
}
|
628 |
+
exit();
|
629 |
+
}
|
630 |
+
}
|
631 |
+
|
632 |
+
/*
|
633 |
+
* Fix the MailChimp icon spacing in the admin menu
|
634 |
+
*/
|
635 |
+
public function fix_menu_icon_spacing() {
|
636 |
+
?>
|
637 |
+
<style>
|
638 |
+
a[href="admin.php?page=yikes-inc-easy-mailchimp"] .wp-menu-image img {
|
639 |
+
padding-top: 5px !important;
|
640 |
+
}
|
641 |
+
</style>
|
642 |
+
<?php
|
643 |
+
}
|
644 |
+
|
645 |
+
/**
|
646 |
+
* Register the stylesheets for the admin area.
|
647 |
+
*
|
648 |
+
* @since 6.0.0
|
649 |
+
*/
|
650 |
+
public function enqueue_styles() {
|
651 |
+
/**
|
652 |
+
* Enqueue our global dashboard styles
|
653 |
+
*/
|
654 |
+
wp_enqueue_style( 'yikes-inc-easy-mailchimp-extender-admin', plugin_dir_url( __FILE__ ) . 'css/yikes-inc-easy-mailchimp-extender-admin.min.css', array(), $this->version, 'all' );
|
655 |
+
/*
|
656 |
+
* Enqueue Add-ons styles
|
657 |
+
*/
|
658 |
+
if ( get_current_screen()->base == 'easy-forms_page_yikes-inc-easy-mailchimp-addons' ) {
|
659 |
+
wp_enqueue_style( 'yikes-inc-easy-mailchimp-extender-addons-styles', plugin_dir_url( __FILE__ ) . 'css/yikes-inc-easy-mailchimp-extender-addons.min.css', array(), $this->version, 'all' );
|
660 |
+
}
|
661 |
+
/*
|
662 |
+
* Enqueue Subscriber Profile Flags
|
663 |
+
*/
|
664 |
+
if ( get_current_screen()->base == 'admin_page_yikes-mailchimp-view-user' ) {
|
665 |
+
wp_enqueue_style( 'yikes-inc-easy-mailchimp-extender-subscriber-flags', plugin_dir_url( __FILE__ ) . 'css/flag-icon.min.css', array(), $this->version, 'all' );
|
666 |
+
}
|
667 |
+
}
|
668 |
+
/**
|
669 |
+
* Register the JavaScript for the admin area.
|
670 |
+
*
|
671 |
+
* @since 6.0.0
|
672 |
+
*/
|
673 |
+
public function enqueue_scripts() {
|
674 |
+
|
675 |
+
/**
|
676 |
+
* Enqueue our scripts across the dashboard as needed
|
677 |
+
*/
|
678 |
+
wp_register_script( 'yikes-inc-easy-mailchimp-extender-admin-js', plugin_dir_url( __FILE__ ) . 'js/min/yikes-inc-easy-mailchimp-extender-admin.min.js', array( 'jquery' , 'jquery-ui-sortable' ), $this->version, false );
|
679 |
+
$localized_data = array(
|
680 |
+
'admin_url' => esc_url_raw( admin_url() ),
|
681 |
+
'ajax_url' => esc_url_raw( admin_url( 'admin-ajax.php' ) ),
|
682 |
+
'locating_interest_groups' => __( 'Locating Interest Groups', 'yikes-inc-easy-mailchimp-extender' ),
|
683 |
+
'search_preloader_url' => YIKES_MC_URL . 'includes/images/search-interest-group-preloader.gif',
|
684 |
+
'preloader_url' => esc_url_raw( admin_url( '/images/wpspin_light.gif' ) )
|
685 |
+
);
|
686 |
+
wp_localize_script( 'yikes-inc-easy-mailchimp-extender-admin-js' , 'object_data' , $localized_data );
|
687 |
+
wp_enqueue_script( 'yikes-inc-easy-mailchimp-extender-admin-js' );
|
688 |
+
|
689 |
+
|
690 |
+
/*
|
691 |
+
* Enqueue required scripts for the form editor
|
692 |
+
*/
|
693 |
+
if( get_current_screen()->base == 'admin_page_yikes-mailchimp-edit-form' ) {
|
694 |
+
global $wp_locale;
|
695 |
+
wp_enqueue_style( 'wp-color-picker' );
|
696 |
+
wp_enqueue_script( 'wp-color-picker' );
|
697 |
+
wp_enqueue_script( 'jquery.timepicker.js',YIKES_MC_URL . 'admin/js/jquery.timepicker.min.js' , array( 'jquery' ) , $this->version, false );
|
698 |
+
wp_register_script( 'edit-form-js' , YIKES_MC_URL . 'admin/js/min/yikes-inc-easy-mailchimp-extender-edit-form.min.js' , array( 'jquery.timepicker.js', 'jquery-ui-datepicker' ) , $this->version, false );
|
699 |
+
$localized_data = array(
|
700 |
+
'ajax_url' => esc_url_raw( admin_url( 'admin-ajax.php' ) ),
|
701 |
+
'no_fields_assigned' => __( 'No fields assigned to this form. Select some fields to add to this form from the right hand column.', 'yikes-inc-easy-mailchimp-extender' ),
|
702 |
+
'bulk_delete_alert' => __( 'Are you sure you want to delete all of the fields assigned to this form?', 'yikes-inc-easy-mailchimp-extender' ),
|
703 |
+
'closeText' => __( 'Done', 'yikes-inc-easy-mailchimp-extender' ),
|
704 |
+
'currentText' => __( 'Today', 'yikes-inc-easy-mailchimp-extender' ),
|
705 |
+
'monthNames' => $this->yikes_jQuery_datepicker_strip_array_indices( $wp_locale->month ),
|
706 |
+
'monthNamesShort' => $this->yikes_jQuery_datepicker_strip_array_indices( $wp_locale->month_abbrev ),
|
707 |
+
'monthStatus' => __( 'Show a different month', 'yikes-inc-easy-mailchimp-extender' ),
|
708 |
+
'dayNames' => $this->yikes_jQuery_datepicker_strip_array_indices( $wp_locale->weekday ),
|
709 |
+
'dayNamesShort' => $this->yikes_jQuery_datepicker_strip_array_indices( $wp_locale->weekday_abbrev ),
|
710 |
+
'dayNamesMin' => $this->yikes_jQuery_datepicker_strip_array_indices( $wp_locale->weekday_initial ),
|
711 |
+
// set the date format to match the WP general date settings
|
712 |
+
'dateFormat' => $this->yikes_jQuery_datepicker_date_format_php_to_js( get_option( 'date_format' ) ),
|
713 |
+
// get the start of week from WP general setting
|
714 |
+
'firstDay' => get_option( 'start_of_week' ),
|
715 |
+
// is Right to left language? default is false
|
716 |
+
'isRTL' => $wp_locale->is_rtl(),
|
717 |
+
'start_date_exceeds_end_date_error' => __( 'Error: The start date and time cannot occur after the end date and time. Chosen date reverted to previous selection.', 'yikes-inc-easy-mailchimp-extender' ),
|
718 |
+
);
|
719 |
+
wp_localize_script( 'edit-form-js' , 'object' , $localized_data );
|
720 |
+
wp_enqueue_script( 'edit-form-js' );
|
721 |
+
}
|
722 |
+
|
723 |
+
}
|
724 |
+
|
725 |
+
/** Functionality **/
|
726 |
+
/******************/
|
727 |
+
|
728 |
+
|
729 |
+
/**
|
730 |
+
* Localization functions for jQuery ui datepicker
|
731 |
+
* @since 6.0.3.8
|
732 |
+
*/
|
733 |
+
/**
|
734 |
+
* Format array for the datepicker
|
735 |
+
* WordPress stores the locale information in an array with a alphanumeric index, and
|
736 |
+
* the datepicker wants a numerical index. This function replaces the index with a number
|
737 |
+
*/
|
738 |
+
public function yikes_jQuery_datepicker_strip_array_indices( $ArrayToStrip ) {
|
739 |
+
foreach( $ArrayToStrip as $objArrayItem) {
|
740 |
+
$NewArray[] = $objArrayItem;
|
741 |
+
}
|
742 |
+
return( $NewArray );
|
743 |
+
}
|
744 |
+
|
745 |
+
/**
|
746 |
+
* Convert the php date format string to a js date format
|
747 |
+
*/
|
748 |
+
public function yikes_jQuery_datepicker_date_format_php_to_js( $sFormat ) {
|
749 |
+
switch( $sFormat ) {
|
750 |
+
//Predefined WP date formats
|
751 |
+
case 'F j, Y':
|
752 |
+
case 'j F Y':
|
753 |
+
case 'm/d/Y':
|
754 |
+
case 'mm/dd/yyyy':
|
755 |
+
case 'MM/DD/YYYY':
|
756 |
+
default:
|
757 |
+
return( 'mm/dd/yy' );
|
758 |
+
break;
|
759 |
+
case 'Y/m/d':
|
760 |
+
case 'Y-m-d':
|
761 |
+
return( 'yy/mm/dd' );
|
762 |
+
break;
|
763 |
+
case 'd/m/Y':
|
764 |
+
case 'dd/mm/yyyy':
|
765 |
+
case 'DD/MM/YYYY':
|
766 |
+
return( 'dd/mm/yyyy' );
|
767 |
+
break;
|
768 |
+
}
|
769 |
+
}
|
770 |
+
|
771 |
+
/**
|
772 |
+
* Convert the php date format string to a js date format
|
773 |
+
*/
|
774 |
+
public function yikes_jQuery_datepicker_date_format( $site_option ) {
|
775 |
+
switch( $site_option ) {
|
776 |
+
//Predefined WP date formats
|
777 |
+
default:
|
778 |
+
case 'F j, Y':
|
779 |
+
case 'm/d/Y':
|
780 |
+
return( 'm/d/Y' );
|
781 |
+
break;
|
782 |
+
case 'Y-m-d':
|
783 |
+
return( 'Y/m/d' );
|
784 |
+
break;
|
785 |
+
case 'd/m/Y':
|
786 |
+
return( 'd/m/Y' );
|
787 |
+
break;
|
788 |
+
}
|
789 |
+
}
|
790 |
+
/**
|
791 |
+
* end Localization functions for jQuery ui datepicker
|
792 |
+
*/
|
793 |
+
|
794 |
+
/**
|
795 |
+
* Register our admin pages
|
796 |
+
* used to display data back to the user
|
797 |
+
**/
|
798 |
+
public function register_admin_pages() {
|
799 |
+
|
800 |
+
/* Top Level Menu 'Easy MailChimp' */
|
801 |
+
add_menu_page(
|
802 |
+
__( 'Easy Forms' , 'yikes-inc-easy-mailchimp-extender' ),
|
803 |
+
'Easy Forms',
|
804 |
+
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
805 |
+
'yikes-inc-easy-mailchimp',
|
806 |
+
'', // no callback,
|
807 |
+
YIKES_MC_URL . 'includes/images/MailChimp_Assets/Freddie_wink_icon.png'
|
808 |
+
);
|
809 |
+
|
810 |
+
// Sub Pages
|
811 |
+
/*************/
|
812 |
+
|
813 |
+
/* YIKES Inc. Easy MailChimp Settings */
|
814 |
+
|
815 |
+
/* YIKES Inc. Easy MailChimp Manage Forms */
|
816 |
+
add_submenu_page(
|
817 |
+
'yikes-inc-easy-mailchimp',
|
818 |
+
__( 'Opt-in Forms' , 'yikes-inc-easy-mailchimp-extender' ),
|
819 |
+
__( 'Opt-in Forms' , 'yikes-inc-easy-mailchimp-extender' ),
|
820 |
+
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
821 |
+
'yikes-inc-easy-mailchimp',
|
822 |
+
array( $this, 'generateManageFormsPage' )
|
823 |
+
);
|
824 |
+
|
825 |
+
/* YIKES Inc. Easy MailChimp Manage Lists */
|
826 |
+
add_submenu_page(
|
827 |
+
'yikes-inc-easy-mailchimp',
|
828 |
+
__( 'Mailing Lists' , 'yikes-inc-easy-mailchimp-extender' ),
|
829 |
+
__( 'Mailing Lists' , 'yikes-inc-easy-mailchimp-extender' ),
|
830 |
+
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
831 |
+
'yikes-inc-easy-mailchimp-lists',
|
832 |
+
array( $this, 'generateManageListsPage' )
|
833 |
+
);
|
834 |
+
|
835 |
+
|
836 |
+
/*
|
837 |
+
* Custom action hook to hook into to add additional
|
838 |
+
* menu items from extensions
|
839 |
+
*/
|
840 |
+
do_action( 'yikes-mailchimp-menu' );
|
841 |
+
|
842 |
+
|
843 |
+
/* YIKES Inc. Easy MailChimp Account Overview */
|
844 |
+
if ( get_option('yikes-mc-api-validation') == 'valid_api_key' ) {
|
845 |
+
/* YIKES Inc. Easy MailChimp Settings */
|
846 |
+
add_submenu_page(
|
847 |
+
'yikes-inc-easy-mailchimp',
|
848 |
+
__( 'Account' , 'yikes-inc-easy-mailchimp-extender' ),
|
849 |
+
__( 'Account' , 'yikes-inc-easy-mailchimp-extender' ),
|
850 |
+
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
851 |
+
'yikes-inc-easy-mailchimp-account-overview',
|
852 |
+
array( $this, 'generateAccountDetailsPage' )
|
853 |
+
);
|
854 |
+
}
|
855 |
+
|
856 |
+
|
857 |
+
/* YIKES Inc. Easy MailChimp Settings */
|
858 |
+
add_submenu_page(
|
859 |
+
'yikes-inc-easy-mailchimp',
|
860 |
+
__( 'Settings.' , 'yikes-inc-easy-mailchimp-extender' ),
|
861 |
+
__( 'Settings' , 'yikes-inc-easy-mailchimp-extender' ),
|
862 |
+
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
863 |
+
'yikes-inc-easy-mailchimp-settings',
|
864 |
+
array( $this, 'generatePageOptions' )
|
865 |
+
);
|
866 |
+
|
867 |
+
/* Support Page */
|
868 |
+
add_submenu_page(
|
869 |
+
'yikes-inc-easy-mailchimp',
|
870 |
+
__( 'Support' , 'yikes-inc-easy-mailchimp-extender' ),
|
871 |
+
__( 'Support' , 'yikes-inc-easy-mailchimp-extender' ),
|
872 |
+
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
873 |
+
'yikes-inc-easy-mailchimp-support',
|
874 |
+
array( $this, 'generateSupportPage' )
|
875 |
+
);
|
876 |
+
|
877 |
+
/* Add-Ons Page */
|
878 |
+
add_submenu_page(
|
879 |
+
'yikes-inc-easy-mailchimp',
|
880 |
+
__( 'Add-Ons' , 'yikes-inc-easy-mailchimp-extender' ),
|
881 |
+
__( 'Add-Ons' , 'yikes-inc-easy-mailchimp-extender' ),
|
882 |
+
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
883 |
+
'yikes-inc-easy-mailchimp-addons',
|
884 |
+
array( $this , 'generateAddOnsPage' )
|
885 |
+
);
|
886 |
+
|
887 |
+
/** Hidden Pages **/
|
888 |
+
|
889 |
+
/* Add Hidden Edit Form Page */
|
890 |
+
add_submenu_page(
|
891 |
+
'options.php',
|
892 |
+
__( 'Edit Form' , 'yikes-inc-easy-mailchimp-extender' ),
|
893 |
+
__( 'Edit Form' , 'yikes-inc-easy-mailchimp-extender' ),
|
894 |
+
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
895 |
+
'yikes-mailchimp-edit-form',
|
896 |
+
array( $this, 'generateEditFormPage' )
|
897 |
+
);
|
898 |
+
|
899 |
+
/* Add Hidden Migrate Options Page */
|
900 |
+
add_submenu_page(
|
901 |
+
'options-writing.php',
|
902 |
+
__( 'YIKES Inc. Easy Forms for MailChimp Upgrade Options Structure' , 'yikes-inc-easy-mailchimp-extender' ),
|
903 |
+
'YIKES Inc. Easy Forms for MailChimp Upgrade Options Structure',
|
904 |
+
'manage_options',
|
905 |
+
'yikes-inc-easy-mailchimp-update' ,
|
906 |
+
array( $this , 'migrate_old_yks_mc_options' )
|
907 |
+
);
|
908 |
+
|
909 |
+
/* Add Hidden Welcome Page */
|
910 |
+
add_submenu_page(
|
911 |
+
'options.php',
|
912 |
+
__( 'Welcome' , 'yikes-inc-easy-mailchimp-extender' ),
|
913 |
+
__( 'Welcome' , 'yikes-inc-easy-mailchimp-extender' ),
|
914 |
+
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
915 |
+
'yikes-mailchimp-welcome',
|
916 |
+
array( $this, 'generateWelcomePage' )
|
917 |
+
);
|
918 |
+
|
919 |
+
/* Add Hidden 'View List' Page */
|
920 |
+
add_submenu_page(
|
921 |
+
'options.php',
|
922 |
+
__( 'View List' , 'yikes-inc-easy-mailchimp-extender' ),
|
923 |
+
__( 'View List' , 'yikes-inc-easy-mailchimp-extender' ),
|
924 |
+
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
925 |
+
'yikes-mailchimp-view-list',
|
926 |
+
array( $this, 'generateViewListPage' )
|
927 |
+
);
|
928 |
+
|
929 |
+
/* Add Hidden View User Page */
|
930 |
+
add_submenu_page(
|
931 |
+
'options.php',
|
932 |
+
__( 'View User' , 'yikes-inc-easy-mailchimp-extender' ),
|
933 |
+
__( 'View User' , 'yikes-inc-easy-mailchimp-extender' ),
|
934 |
+
apply_filters( 'yikes-mailchimp-user-role-access' , 'manage_options' ),
|
935 |
+
'yikes-mailchimp-view-user',
|
936 |
+
array( $this, 'generateViewUserPage' )
|
937 |
+
);
|
938 |
+
|
939 |
+
}
|
940 |
+
|
941 |
+
/*
|
942 |
+
* Redirect a user to an external page
|
943 |
+
* when they click 'Go Pro' in the admin menu
|
944 |
+
* to do: populate with sales URL
|
945 |
+
*/
|
946 |
+
public function generateAddOnsPage() {
|
947 |
+
require_once YIKES_MC_PATH . 'admin/partials/menu/add-ons.php'; // include our add-ons page
|
948 |
+
}
|
949 |
+
|
950 |
+
/**
|
951 |
+
* Generate YIKES Inc. Easy MailChimp Manage Forms Page
|
952 |
+
*
|
953 |
+
* @since 1.0.0
|
954 |
+
*/
|
955 |
+
function generateManageFormsPage() {
|
956 |
+
require_once YIKES_MC_PATH . 'admin/partials/menu/manage-forms.php'; // include our manage forms page
|
957 |
+
}
|
958 |
+
|
959 |
+
/**
|
960 |
+
* Generate YIKES Inc. Easy MailChimp Manage Lists Page
|
961 |
+
*
|
962 |
+
* @since 1.0.0
|
963 |
+
*/
|
964 |
+
function generateManageListsPage() {
|
965 |
+
require_once YIKES_MC_PATH . 'admin/partials/menu/manage-lists.php'; // include our lists page
|
966 |
+
}
|
967 |
+
|
968 |
+
/**
|
969 |
+
* Generate YIKES Inc. Easy MailChimp Account Details Page
|
970 |
+
*
|
971 |
+
* @since 1.0.0
|
972 |
+
*/
|
973 |
+
function generateAccountDetailsPage() {
|
974 |
+
require_once YIKES_MC_PATH . 'admin/partials/menu/account-details.php'; // include our account details page
|
975 |
+
}
|
976 |
+
|
977 |
+
/**
|
978 |
+
* Generate YIKES Inc. Easy MailChimp Support Page
|
979 |
+
*
|
980 |
+
* @since 1.0.0
|
981 |
+
*/
|
982 |
+
function generateSupportPage() {
|
983 |
+
require_once YIKES_MC_PATH . 'admin/partials/menu/support.php'; // include our options page
|
984 |
+
}
|
985 |
+
|
986 |
+
/**
|
987 |
+
* Generate YIKES Inc. Easy MailChimp Edit Form Page
|
988 |
+
*
|
989 |
+
* @since 1.0.0
|
990 |
+
*/
|
991 |
+
function generateEditFormPage() {
|
992 |
+
require_once YIKES_MC_PATH . 'admin/partials/edit-form.php'; // include our options page
|
993 |
+
}
|
994 |
+
|
995 |
+
/**
|
996 |
+
* Generate YIKES Inc. Easy MailChimp Welcome Page
|
997 |
+
*
|
998 |
+
* @since 1.0.0
|
999 |
+
*/
|
1000 |
+
function generateWelcomePage() {
|
1001 |
+
require_once YIKES_MC_PATH . 'admin/partials/welcome-page/welcome.php'; // include our options page
|
1002 |
+
}
|
1003 |
+
|
1004 |
+
/**
|
1005 |
+
* Generate YIKES Inc. Easy MailChimp View List Page
|
1006 |
+
*
|
1007 |
+
* @since 1.0.0
|
1008 |
+
*/
|
1009 |
+
function generateViewListPage() {
|
1010 |
+
require_once YIKES_MC_PATH . 'admin/partials/view-list.php'; // include our options page
|
1011 |
+
}
|
1012 |
+
|
1013 |
+
/**
|
1014 |
+
* Generate YIKES Inc. Easy MailChimp View User Page
|
1015 |
+
*
|
1016 |
+
* @since 1.0.0
|
1017 |
+
*/
|
1018 |
+
function generateViewUserPage() {
|
1019 |
+
require_once YIKES_MC_PATH . 'admin/partials/view-user.php'; // include our options page
|
1020 |
+
}
|
1021 |
+
|
1022 |
+
/**
|
1023 |
+
* Register our plugin settings, and display them on our settings page
|
1024 |
+
*
|
1025 |
+
* @since v.5.4
|
1026 |
+
**/
|
1027 |
+
function yikes_easy_mc_settings_init() {
|
1028 |
+
|
1029 |
+
/* Register General Settings Section */
|
1030 |
+
|
1031 |
+
register_setting( 'yikes_inc_easy_mc_general_settings_page', 'yikes-mc-api-key', array( $this , 'yikes_mc_validate_api_key' ) );
|
1032 |
+
|
1033 |
+
add_settings_section(
|
1034 |
+
'yikes_easy_mc_settings_general_section_callback',
|
1035 |
+
'',
|
1036 |
+
'',
|
1037 |
+
'yikes_inc_easy_mc_general_settings_page'
|
1038 |
+
);
|
1039 |
+
|
1040 |
+
/* Register Visual Representation of Connection */
|
1041 |
+
add_settings_field(
|
1042 |
+
'connection',
|
1043 |
+
__( 'API Connection', 'yikes-inc-easy-mailchimp-extender' ),
|
1044 |
+
'yikes_inc_easy_mc_visual_representation_of_connection_callback', // callback + validation inside of admin/partials/menu/options.php
|
1045 |
+
'yikes_inc_easy_mc_general_settings_page',
|
1046 |
+
'yikes_easy_mc_settings_general_section_callback'
|
1047 |
+
);
|
1048 |
+
|
1049 |
+
/* Register Check Box Setting */
|
1050 |
+
add_settings_field(
|
1051 |
+
'yikes-mc-api-key',
|
1052 |
+
__( 'MailChimp API Key', 'yikes-inc-easy-mailchimp-extender' ),
|
1053 |
+
'yikes_inc_easy_mc_api_key_field_callback', // callback + validation inside of admin/partials/menu/options.php
|
1054 |
+
'yikes_inc_easy_mc_general_settings_page',
|
1055 |
+
'yikes_easy_mc_settings_general_section_callback'
|
1056 |
+
);
|
1057 |
+
|
1058 |
+
/* End General Settings */
|
1059 |
+
|
1060 |
+
/* Checkbox Settings */
|
1061 |
+
register_setting( 'yikes_inc_easy_mc_checkbox_settings_page', 'optin-checkbox-init' );
|
1062 |
+
|
1063 |
+
/* Register General Settings Section */
|
1064 |
+
add_settings_section(
|
1065 |
+
'yikes_inc_easy_mc_checkbox_settings',
|
1066 |
+
'',
|
1067 |
+
'',
|
1068 |
+
'yikes_inc_easy_mc_checkbox_settings_page'
|
1069 |
+
);
|
1070 |
+
|
1071 |
+
add_settings_field(
|
1072 |
+
'optin-checkbox-init',
|
1073 |
+
__( 'Select Checkboxes to Generate', 'yikes-inc-easy-mailchimp-extender' ),
|
1074 |
+
'', // callback + validation inside of admin/partials/menu/options.php
|
1075 |
+
'yikes_inc_easy_mc_checkbox_settings'
|
1076 |
+
);
|
1077 |
+
/* End Checkbox Settings */
|
1078 |
+
|
1079 |
+
/* reCAPTCHA Settings */
|
1080 |
+
|
1081 |
+
register_setting( 'yikes_inc_easy_mc_recaptcha_settings_page' , 'yikes-mc-recaptcha-status' );
|
1082 |
+
register_setting( 'yikes_inc_easy_mc_recaptcha_settings_page' , 'yikes-mc-recaptcha-site-key' );
|
1083 |
+
register_setting( 'yikes_inc_easy_mc_recaptcha_settings_page' , 'yikes-mc-recaptcha-secret-key' );
|
1084 |
+
|
1085 |
+
/* Register reCAPTCHA Settings Section */
|
1086 |
+
add_settings_section(
|
1087 |
+
'yikes_easy_mc_settings_recpatcha_section',
|
1088 |
+
'',
|
1089 |
+
'',
|
1090 |
+
'yikes_inc_easy_mc_recaptcha_settings_page'
|
1091 |
+
);
|
1092 |
+
|
1093 |
+
add_settings_field(
|
1094 |
+
'yikes-mc-recaptcha-site-key',
|
1095 |
+
__( 'Enter reCAPTCHA Site Key', 'yikes-inc-easy-mailchimp-extender' ),
|
1096 |
+
'', // callback + validation inside of admin/partials/menu/options.php
|
1097 |
+
'yikes_easy_mc_settings_recpatcha_section'
|
1098 |
+
);
|
1099 |
+
|
1100 |
+
add_settings_field(
|
1101 |
+
'yikes-mc-recaptcha-secret-key',
|
1102 |
+
__( 'Enter reCAPTCHA Secret Key', 'yikes-inc-easy-mailchimp-extender' ),
|
1103 |
+
'', // callback + validation inside of admin/partials/menu/options.php
|
1104 |
+
'yikes_easy_mc_settings_recpatcha_section'
|
1105 |
+
);
|
1106 |
+
|
1107 |
+
add_settings_field(
|
1108 |
+
'yikes-mc-recaptcha-status',
|
1109 |
+
__( 'Enable ReCaptcha', 'yikes-inc-easy-mailchimp-extender' ),
|
1110 |
+
'', // callback + validation inside of admin/partials/menu/options.php
|
1111 |
+
'yikes_easy_mc_settings_recpatcha_section'
|
1112 |
+
);
|
1113 |
+
|
1114 |
+
/* End reCAPTCHA Settings */
|
1115 |
+
|
1116 |
+
/* Debug Settings */
|
1117 |
+
register_setting( 'yikes_inc_easy_mc_debug_settings_page' , 'yikes-mailchimp-debug-status' );
|
1118 |
+
|
1119 |
+
/* Register Debug Settings Section */
|
1120 |
+
add_settings_section(
|
1121 |
+
'yikes_easy_mc_settings_debug_section',
|
1122 |
+
'',
|
1123 |
+
'',
|
1124 |
+
'yikes_inc_easy_mc_debug_settings_page'
|
1125 |
+
);
|
1126 |
+
|
1127 |
+
add_settings_field(
|
1128 |
+
'yikes-mailchimp-debug-status',
|
1129 |
+
__( 'Enable Debugging', 'yikes-inc-easy-mailchimp-extender' ),
|
1130 |
+
'', // callback + validation inside of admin/partials/menu/options.php
|
1131 |
+
'yikes_easy_mc_settings_debug_section'
|
1132 |
+
);
|
1133 |
+
|
1134 |
+
/* Custom Action Hook For Addon Settings */
|
1135 |
+
// custom action hook to allow our add-ons to take
|
1136 |
+
// advantage of our base settings
|
1137 |
+
do_action( 'yikes-mailchimp-settings-field' );
|
1138 |
+
|
1139 |
+
}
|
1140 |
+
|
1141 |
+
/**
|
1142 |
+
* Options Sanitization & Validation
|
1143 |
+
* @since complete re-write
|
1144 |
+
**/
|
1145 |
+
function yikes_mc_validate_api_key( $input ) {
|
1146 |
+
if( $input == '' ) {
|
1147 |
+
return;
|
1148 |
+
}
|
1149 |
+
$api_key = trim( $input );
|
1150 |
+
$dash_position = strpos( trim( $input ), '-' );
|
1151 |
+
if( $dash_position !== false ) {
|
1152 |
+
$api_endpoint = 'https://' . substr( $api_key, $dash_position + 1 ) . '.api.mailchimp.com/2.0/helper/ping.json';
|
1153 |
+
} else {
|
1154 |
+
update_option( 'yikes-mc-api-invalid-key-response', __( 'Your API key appears to be invalid.', 'yikes-inc-easy-mailchimp-extender' ) );
|
1155 |
+
update_option( 'yikes-mc-api-validation' , 'invalid_api_key' );
|
1156 |
+
return $api_key;
|
1157 |
+
}
|
1158 |
+
$request_args = array(
|
1159 |
+
'body' => array(
|
1160 |
+
'apikey' => $api_key,
|
1161 |
+
),
|
1162 |
+
'timeout' => 10,
|
1163 |
+
'sslverify' => apply_filters( 'yikes-mailchimp-sslverify', true ),
|
1164 |
+
);
|
1165 |
+
$api_key_response = wp_remote_post( $api_endpoint, $request_args );
|
1166 |
+
if( ! is_wp_error( $api_key_response ) ) {
|
1167 |
+
$body = json_decode( wp_remote_retrieve_body( $api_key_response ), true );
|
1168 |
+
if( isset( $body['msg'] ) && $body['msg'] == "Everything's Chimpy!" ) {
|
1169 |
+
update_option( 'yikes-mc-api-validation' , 'valid_api_key' );
|
1170 |
+
}
|
1171 |
+
} else {
|
1172 |
+
require_once YIKES_MC_PATH . 'includes/error_log/class-yikes-inc-easy-mailchimp-error-logging.php';
|
1173 |
+
$error_logging = new Yikes_Inc_Easy_Mailchimp_Error_Logging();
|
1174 |
+
$error_logging->yikes_easy_mailchimp_write_to_error_log( $api_key_response->get_error_message() , __( "Connecting to MailChimp" , 'yikes-inc-easy-mailchimp-extender' ) , __( "Settings Page/General Settings" , 'yikes-inc-easy-mailchimp-extender' ) );
|
1175 |
+
update_option( 'yikes-mc-api-invalid-key-response' , $api_key_response->get_error_message() );
|
1176 |
+
update_option( 'yikes-mc-api-validation' , 'invalid_api_key' );
|
1177 |
+
}
|
1178 |
+
// returned the api key
|
1179 |
+
return $api_key;
|
1180 |
+
}
|
1181 |
+
|
1182 |
+
/**
|
1183 |
+
* Generate YIKES Inc. Easy Forms for MailChimp Options Page
|
1184 |
+
*
|
1185 |
+
* @since 1.0.0
|
1186 |
+
*/
|
1187 |
+
function generatePageOptions() {
|
1188 |
+
require_once YIKES_MC_PATH . 'admin/partials/menu/options.php'; // include our options page
|
1189 |
+
}
|
1190 |
+
|
1191 |
+
/**
|
1192 |
+
* Check if users API key is valid, if not
|
1193 |
+
* this function will apply a disabled attribute
|
1194 |
+
* to form fields. (input, dropdowns, buttons etc.)
|
1195 |
+
* @since v5.5 re-write
|
1196 |
+
**/
|
1197 |
+
public function is_user_mc_api_valid_form( $echo=true ) {
|
1198 |
+
if( $echo == true ) {
|
1199 |
+
if( get_option( 'yikes-mc-api-validation' , 'invalid_api_key' ) == 'invalid_api_key' ) {
|
1200 |
+
echo 'disabled="disabled"';
|
1201 |
+
}
|
1202 |
+
} else {
|
1203 |
+
if( get_option( 'yikes-mc-api-validation' , 'invalid_api_key' ) == 'invalid_api_key' ) {
|
1204 |
+
return false;
|
1205 |
+
} else {
|
1206 |
+
return true;
|
1207 |
+
}
|
1208 |
+
}
|
1209 |
+
}
|
1210 |
+
|
1211 |
+
/**
|
1212 |
+
* Check for existing plugin options
|
1213 |
+
* if they exist, we need to migrate our options to
|
1214 |
+
* the correct WordPress options API (old plugin stored options wierdly)
|
1215 |
+
*
|
1216 |
+
* @since 1.0.0
|
1217 |
+
* @param string $yikes_inc_easy_mailchimp_extender The name of this plugin.
|
1218 |
+
* @param string $version The version of this plugin.
|
1219 |
+
*/
|
1220 |
+
public function check_for_old_yks_mc_options() {
|
1221 |
+
$old_plugin_options = get_option( 'ykseme_storage' );
|
1222 |
+
// only perform options migrations if the site is not a multi-site setup
|
1223 |
+
if ( !is_multisite() ) {
|
1224 |
+
if( apply_filters( 'yikes_mc_old_options_filter' , $old_plugin_options ) ) {
|
1225 |
+
// display a notice to the user that they should 'migrate'
|
1226 |
+
// from the old plugin settings to the new ones
|
1227 |
+
add_action( 'admin_notices', array( $this , 'display_options_migrate_notice' ) , 11 );
|
1228 |
+
}
|
1229 |
+
}
|
1230 |
+
}
|
1231 |
+
|
1232 |
+
/**
|
1233 |
+
* Migrate our old options , to the new options API
|
1234 |
+
* moving from 5.5 and beyond..
|
1235 |
+
* @since
|
1236 |
+
*/
|
1237 |
+
public function migrate_old_yks_mc_options() {
|
1238 |
+
// include our migrate options helper file
|
1239 |
+
include_once YIKES_MC_PATH . 'admin/partials/upgrade-helpers/upgrade-migrate-options.php';
|
1240 |
+
}
|
1241 |
+
|
1242 |
+
/**
|
1243 |
+
Admin Notices
|
1244 |
+
- Notifications displayed at the top of admin pages, back to the user
|
1245 |
+
**/
|
1246 |
+
|
1247 |
+
/**
|
1248 |
+
* Check for existing plugin options
|
1249 |
+
* if they exist, we need to migrate our options to
|
1250 |
+
* the correct WordPress options API (old plugin stored options wierdly)
|
1251 |
+
*
|
1252 |
+
* @since 1.0.0
|
1253 |
+
* @param string $yikes_inc_easy_mailchimp_extender The name of this plugin.
|
1254 |
+
* @param string $version The version of this plugin.
|
1255 |
+
*/
|
1256 |
+
public function display_options_migrate_notice() {
|
1257 |
+
|
1258 |
+
// Confirm that the necessary forms table in the database exists, else bail
|
1259 |
+
global $wpdb;
|
1260 |
+
if( $wpdb->get_var("show tables like '" . $wpdb->prefix . "yikes_easy_mc_forms'") != $wpdb->prefix . "yikes_easy_mc_forms" ) {
|
1261 |
+
return;
|
1262 |
+
}
|
1263 |
+
|
1264 |
+
if( isset( $_GET['yikes-mc-options-migration-dismissed'] ) && $_GET['yikes-mc-options-migration-dismissed'] == 'true' ) {
|
1265 |
+
// Delete the options, start a-new! (this will disable the migration notice altogether)
|
1266 |
+
delete_option( 'widget_yikes_mc_widget' );
|
1267 |
+
delete_option( 'api_validation' );
|
1268 |
+
delete_option( 'ykseme_storage' );
|
1269 |
+
delete_option( 'yikes-mc-lists' );
|
1270 |
+
?>
|
1271 |
+
<div class="yikes-easy-mc-updated migrate-options-notice">
|
1272 |
+
<p><?php printf( __( "The previously stored options for %s have been cleared from the database. You should update the plugin options on the <a href='%s' title='Settings Page'>settings page</a> before continuing. You should also update the shortcodes used to generate your forms, and any widgets you may have previously set-up.", 'yikes-inc-easy-mailchimp-extender' ), '<strong>YIKES Inc. Easy Forms for MailChimp</strong>', admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings' ) ); ?></p>
|
1273 |
+
</div>
|
1274 |
+
<?php
|
1275 |
+
} else {
|
1276 |
+
?>
|
1277 |
+
<div class="yikes-easy-mc-updated migrate-options-notice">
|
1278 |
+
<p><?php printf( __( "It looks like you're upgrading from a previous version of %s.", 'yikes-inc-easy-mailchimp-extender' ), '<strong>YIKES Inc. Easy Forms for MailChimp</strong>' ); ?> <?php printf( __( "In the newest version of %s, the options data structure has changed. We've also moved the mailing lists into its own database table to allow for some higher level customization. Now you can easily create multiple forms and assign them to the same mailing list." , 'yikes-inc-easy-mailchimp-extender' ), '<strong>YIKES Inc. Easy Forms for MailChimp</strong>' ); ?></p>
|
1279 |
+
<p><?php _e( "Before you continue, it's strongly recommended you the perform the migration to ensure the plugin continues to function properly.", 'yikes-inc-easy-mailchimp-extender' ); ?></p>
|
1280 |
+
<p><em><?php _e( "It's also strongly recommended that you take a backup of your database.", 'yikes-inc-easy-mailchimp-extender' ); ?></em></p>
|
1281 |
+
<section id="migration-buttons">
|
1282 |
+
<!-- migrate button -->
|
1283 |
+
<form>
|
1284 |
+
<input type="hidden" name="yikes-mc-update-option-structure" value="yikes-mc-update-option-structure" />
|
1285 |
+
<a href="<?php echo wp_nonce_url( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-update' ) ), 'yikes-mc-migrate-options' , 'migrate_options_nonce' ); ?>" class="button-secondary"><?php _e( 'Perform Migration' , 'yikes-inc-easy-mailchimp-extender' ); ?></a>
|
1286 |
+
</form>
|
1287 |
+
<!-- dismiss button -->
|
1288 |
+
<form>
|
1289 |
+
<a href="<?php echo wp_nonce_url( esc_url_raw( admin_url() ), 'yikes-mc-dismiss-migration' , 'dismiss_migration_nonce' ); ?>" class="button-secondary"><?php _e( 'Dismiss Notice' , 'yikes-inc-easy-mailchimp-extender' ); ?></a>
|
1290 |
+
</form>
|
1291 |
+
</section>
|
1292 |
+
|
1293 |
+
</div>
|
1294 |
+
<?php
|
1295 |
+
}
|
1296 |
+
}
|
1297 |
+
|
1298 |
+
/*
|
1299 |
+
* Search through multi dimensional array
|
1300 |
+
* and return the index ( used to find the list name assigned to a form )
|
1301 |
+
* - http://stackoverflow.com/questions/6661530/php-multi-dimensional-array-search
|
1302 |
+
*/
|
1303 |
+
function findMCListID($id, $array) {
|
1304 |
+
foreach ($array as $key => $val) {
|
1305 |
+
if ($val['id'] === $id) {
|
1306 |
+
return $key;
|
1307 |
+
}
|
1308 |
+
}
|
1309 |
+
return null;
|
1310 |
+
} // end
|
1311 |
+
|
1312 |
+
/* Ajax Migrate Options */
|
1313 |
+
function migrate_archived_options() {
|
1314 |
+
// all options prefixed with 'yikes-mc-'
|
1315 |
+
$option_name = 'yikes-mc-'.$_POST['option_name'];
|
1316 |
+
$option_value = $_POST['option_value'];
|
1317 |
+
if( json_decode( $option_value ) ) {
|
1318 |
+
// decode our lists() array, and store it
|
1319 |
+
$opt_value = json_decode( $option_value, true );
|
1320 |
+
} else {
|
1321 |
+
$opt_value = $option_value;
|
1322 |
+
}
|
1323 |
+
update_option( $option_name, $opt_value );
|
1324 |
+
wp_die(); // this is required to terminate immediately and return a proper response
|
1325 |
+
exit;
|
1326 |
+
}
|
1327 |
+
|
1328 |
+
/* Ajax Migrate Forms */
|
1329 |
+
function migrate_previously_setup_forms() {
|
1330 |
+
$option_name = $_POST['option_name'];
|
1331 |
+
$done = $_POST['done_import'];
|
1332 |
+
// Create some starter forms for the user
|
1333 |
+
// based on previously imported lists (to our old version)
|
1334 |
+
if( $option_name == 'yikes-mc-lists' ) {
|
1335 |
+
global $wpdb;
|
1336 |
+
$option_value = $_POST['option_value'];
|
1337 |
+
$new_options = json_decode( stripslashes_deep( $option_value ) , true );
|
1338 |
+
|
1339 |
+
$list_id = $new_options['id'];
|
1340 |
+
$form_name = $new_options['name'];
|
1341 |
+
$fields = $new_options['fields']; // our fields array
|
1342 |
+
|
1343 |
+
$custom_styles = isset( $new_options['custom_styles'] ) ? json_encode( $new_options['custom_styles'] ) : '0'; // store as an array with all of our styles
|
1344 |
+
$custom_template = isset( $new_options['custom_template'] ) ? json_encode( $new_options['custom_template'] ) : '0'; // store template data as an array ( active , template used )
|
1345 |
+
$send_welcome_email = isset( $new_options['yks_mailchimp_send_welcome_'.$list_id] ) ? '0' : '1';
|
1346 |
+
$redirect_user_on_submit = isset( $new_options['yks_mailchimp_redirect_'.$list_id] ) ? '1' : '0';
|
1347 |
+
$redirect_page = isset( $new_options['page_id_'.$list_id] ) ? $new_options['page_id_'.$list_id] : '';
|
1348 |
+
|
1349 |
+
/* Insert Forms Function */
|
1350 |
+
$wpdb->insert(
|
1351 |
+
$wpdb->prefix . 'yikes_easy_mc_forms',
|
1352 |
+
array(
|
1353 |
+
'list_id' => $list_id,
|
1354 |
+
'form_name' => $form_name,
|
1355 |
+
'form_description' => '',
|
1356 |
+
'fields' => json_encode( $fields ),
|
1357 |
+
'custom_styles' => $custom_styles,
|
1358 |
+
'custom_template' => $custom_template,
|
1359 |
+
'send_welcome_email' => $send_welcome_email,
|
1360 |
+
'redirect_user_on_submit' => $redirect_user_on_submit,
|
1361 |
+
'redirect_page' => $redirect_page,
|
1362 |
+
'submission_settings' => '',
|
1363 |
+
'optin_settings' => '',
|
1364 |
+
'error_messages' => '',
|
1365 |
+
'custom_notifications' => '',
|
1366 |
+
'impressions' => '0',
|
1367 |
+
'submissions' => '0',
|
1368 |
+
'custom_fields' => '',
|
1369 |
+
)
|
1370 |
+
);
|
1371 |
+
}
|
1372 |
+
if( $done == 'done' ) {
|
1373 |
+
wp_send_json( array( 'form_name' => $form_name, 'completed_import' => true ) );
|
1374 |
+
} else {
|
1375 |
+
wp_send_json( array( 'form_name' => $form_name, 'completed_import' => false ) );
|
1376 |
+
}
|
1377 |
+
wp_die();
|
1378 |
+
exit;
|
1379 |
+
}
|
1380 |
+
|
1381 |
+
/*
|
1382 |
+
* generate_options_pages_sidebar_menu();
|
1383 |
+
* Render our sidebar menu on all of the setings pages (general, form, checkbox, recaptcha, popup, debug etc. )
|
1384 |
+
* @since v5.6 - complete re-write
|
1385 |
+
*/
|
1386 |
+
public function generate_options_pages_sidebar_menu() {
|
1387 |
+
if( isset( $_REQUEST['section'] ) ) {
|
1388 |
+
$selected = $_REQUEST['section'];
|
1389 |
+
}
|
1390 |
+
$installed_addons = get_option( 'yikes-easy-mc-active-addons' , array() );
|
1391 |
+
// sort our addons array alphabetically so they appear in similar orders across all sites
|
1392 |
+
asort( $installed_addons );
|
1393 |
+
?>
|
1394 |
+
<h3><span><?php _e( 'Additional Settings' , 'yikes-inc-easy-mailchimp-extender' ); ?></span></h3>
|
1395 |
+
<div class="inside">
|
1396 |
+
<ul id="settings-nav">
|
1397 |
+
<li><?php if( isset( $_REQUEST['section'] ) && $_REQUEST['section'] == 'general-settings' || !isset( $_REQUEST['section'] ) ) { ?><div class="option-menu-selected-arrow"></div><?php } ?><a href="<?php echo esc_url_raw( add_query_arg( array( 'section' => 'general-settings' ) , admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=general-settings' ) ) ); ?>"><?php _e( 'General Settings' , 'yikes-inc-easy-mailchimp-extender' ); ?></a></li>
|
1398 |
+
<li><?php if( isset( $_REQUEST['section'] ) && $_REQUEST['section'] == 'integration-settings' ) { ?><div class="option-menu-selected-arrow"></div><?php } ?><a href="<?php echo esc_url_raw( add_query_arg( array( 'section' => 'integration-settings' ) , admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=integration-settings' ) ) ); ?>"><?php _e( 'Integration Settings' , 'yikes-inc-easy-mailchimp-extender' ); ?></a></li>
|
1399 |
+
<li><?php if( isset( $_REQUEST['section'] ) && $_REQUEST['section'] == 'recaptcha-settings' ) { ?><div class="option-menu-selected-arrow"></div><?php } ?><a href="<?php echo esc_url_raw( add_query_arg( array( 'section' => 'recaptcha-settings' ) , admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=recaptcha-settings' ) ) ); ?>"><?php _e( 'ReCaptcha Settings' , 'yikes-inc-easy-mailchimp-extender' ); ?></a></li>
|
1400 |
+
<li><?php if( isset( $_REQUEST['section'] ) && $_REQUEST['section'] == 'api-cache-settings' ) { ?><div class="option-menu-selected-arrow"></div><?php } ?><a href="<?php echo esc_url_raw( add_query_arg( array( 'section' => 'api-cache-settings' ) , admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=api-cache-settings' ) ) ); ?>"><?php _e( 'API Cache Settings' , 'yikes-inc-easy-mailchimp-extender' ); ?></a></li>
|
1401 |
+
<li><?php if( isset( $_REQUEST['section'] ) && $_REQUEST['section'] == 'debug-settings' ) { ?><div class="option-menu-selected-arrow"></div><?php } ?><a href="<?php echo esc_url_raw( add_query_arg( array( 'section' => 'debug-settings' ) , admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=debug-settings' ) ) ); ?>"><?php _e( 'Debug Settings' , 'yikes-inc-easy-mailchimp-extender' ); ?></a></li>
|
1402 |
+
<li><?php if( isset( $_REQUEST['section'] ) && $_REQUEST['section'] == 'import-export-forms' ) { ?><div class="option-menu-selected-arrow"></div><?php } ?><a href="<?php echo esc_url_raw( add_query_arg( array( 'section' => 'import-export-forms' ) , admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=import-export-forms' ) ) ); ?>"><?php _e( 'Import/Export' , 'yikes-inc-easy-mailchimp-extender' ); ?></a></li>
|
1403 |
+
</ul>
|
1404 |
+
<?php
|
1405 |
+
// create our add-on settings pages
|
1406 |
+
if( !empty( $installed_addons ) ) {
|
1407 |
+
?>
|
1408 |
+
<hr class="add-on-settings-divider" />
|
1409 |
+
<strong><?php _e( 'Addon Settings' , 'yikes-inc-easy-mailchimp-extender' ); ?></strong>
|
1410 |
+
<ul id="addon-settings-nav">
|
1411 |
+
<?php
|
1412 |
+
foreach( $installed_addons as $addon_name ) {
|
1413 |
+
?>
|
1414 |
+
<li>
|
1415 |
+
<?php if( isset( $_REQUEST['section'] ) && $_REQUEST['section'] == $addon_name ) { ?><div class="option-menu-selected-arrow"></div><?php } ?><a href="<?php echo esc_url_raw( add_query_arg( array( 'section' => $addon_name, 'addon' => 'true' ) , admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion='.$addon_name ) ) ); ?>"><?php echo ucwords( str_replace( '-' , ' ' , $addon_name ) ); ?></a></li>
|
1416 |
+
<?php
|
1417 |
+
}
|
1418 |
+
?>
|
1419 |
+
</ul>
|
1420 |
+
<?php
|
1421 |
+
}
|
1422 |
+
?>
|
1423 |
+
</div> <!-- .inside -->
|
1424 |
+
<?php
|
1425 |
+
}
|
1426 |
+
|
1427 |
+
/*
|
1428 |
+
* generate_manage_forms_sidebar();
|
1429 |
+
* Render our sidebar menu on all of the setings pages (general, form, checkbox, recaptcha, popup, debug etc. )
|
1430 |
+
* @since v5.6 - complete re-write
|
1431 |
+
*/
|
1432 |
+
public function generate_manage_forms_sidebar( $lists ) {
|
1433 |
+
// create a custom URL to allow for creating fields
|
1434 |
+
$url = esc_url_raw(
|
1435 |
+
add_query_arg(
|
1436 |
+
array(
|
1437 |
+
'action' => 'yikes-easy-mc-create-form',
|
1438 |
+
'nonce' => wp_create_nonce( 'create_mailchimp_form' )
|
1439 |
+
)
|
1440 |
+
)
|
1441 |
+
);
|
1442 |
+
?>
|
1443 |
+
<h3><?php _e( 'Create a New Signup Form' , 'yikes-inc-easy-mailchimp-extender' ); ?></h3>
|
1444 |
+
|
1445 |
+
<div class="inside">
|
1446 |
+
|
1447 |
+
<p class="description"><?php _e( "Give your form a name, select a MailChimp list to assign users to, then click 'Create'.", 'yikes-inc-easy-mailchimp-extender' ); ?></p>
|
1448 |
+
|
1449 |
+
<form id="import-list-to-site" method="POST" action="<?php echo $url; ?>">
|
1450 |
+
<input type="hidden" name="import-list-to-site" value="1" />
|
1451 |
+
<!-- Name your new form -->
|
1452 |
+
<label for="form-name"><strong><?php _e( 'Form Name' , 'yikes-inc-easy-mailchimp-extender' ); ?></strong>
|
1453 |
+
<input type="text" class="widefat input-field" placeholder="<?php _e( 'Form Name' , 'yikes-inc-easy-mailchimp-extender' ); ?>" name="form-name" id="form-name" <?php $this->is_user_mc_api_valid_form( true ); ?> required>
|
1454 |
+
</label>
|
1455 |
+
<!-- Name your new form -->
|
1456 |
+
<label for="form-description"><strong><?php _e( 'Form Description' , 'yikes-inc-easy-mailchimp-extender' ); ?></strong>
|
1457 |
+
<textarea class="widefat input-field form-description" placeholder="<?php _e( 'Form Description' , 'yikes-inc-easy-mailchimp-extender' ); ?>" name="form-description" id="form-description" <?php $this->is_user_mc_api_valid_form( true ); ?>></textarea>
|
1458 |
+
</label>
|
1459 |
+
<!-- Associate this form with a list! -->
|
1460 |
+
<label for="associated-list"><strong><?php _e( 'Associated List' , 'yikes-inc-easy-mailchimp-extender' ); ?></strong>
|
1461 |
+
<select name="associated-list" id="associated-list" class=" input-field" <?php $this->is_user_mc_api_valid_form( true ); if( isset( $lists ) && empty( $lists ) ) { echo 'disabled="disabled"'; } ?>>
|
1462 |
+
<?php
|
1463 |
+
if( isset( $lists ) && !empty( $lists ) ) {
|
1464 |
+
foreach( $lists as $mailing_list ) {
|
1465 |
+
?>
|
1466 |
+
<option value="<?php echo $mailing_list['id']; ?>"><?php echo stripslashes( $mailing_list['name'] ) . ' (' . $mailing_list['stats']['member_count'] . ') '; ?></option>
|
1467 |
+
<?php
|
1468 |
+
}
|
1469 |
+
} else {
|
1470 |
+
if( get_option( 'yikes-mc-api-validation' , 'invalid_api_key' ) == 'invalid_api_key' ) {
|
1471 |
+
?>
|
1472 |
+
<option><?php echo __( "Please enter a valid API key." , 'yikes-inc-easy-mailchimp-extender' ); ?></option>
|
1473 |
+
<?php
|
1474 |
+
} else {
|
1475 |
+
?>
|
1476 |
+
<option><?php echo __( "No lists were found on the account." , 'yikes-inc-easy-mailchimp-extender' ); ?></option>
|
1477 |
+
<?php
|
1478 |
+
|
1479 |
+
}
|
1480 |
+
}
|
1481 |
+
?>
|
1482 |
+
</select>
|
1483 |
+
<?php
|
1484 |
+
if( isset( $lists ) && empty( $lists ) ) {
|
1485 |
+
if( get_option( 'yikes-mc-api-validation' , 'invalid_api_key' ) != 'invalid_api_key' ) {
|
1486 |
+
?>
|
1487 |
+
<p class="description">
|
1488 |
+
<?php printf( __( 'Head over to <a href="http://www.MailChimp.com" title="%s">MailChimp</a> to create a new list.', 'yikes-inc-easy-mailchimp-extender' ) , __( 'Create a list' , 'yikes-inc-easy-mailchimp-extender' ) ); ?>
|
1489 |
+
</p>
|
1490 |
+
<?php
|
1491 |
+
}
|
1492 |
+
}
|
1493 |
+
?>
|
1494 |
+
</label>
|
1495 |
+
<?php
|
1496 |
+
if( $this->is_user_mc_api_valid_form( false ) ) {
|
1497 |
+
echo submit_button( __( 'Create', 'yikes-inc-easy-mailchimp-extender' ) , 'primary' , '' , false , array( 'style' => 'margin:.75em 0 .5em 0;' ) );
|
1498 |
+
} else {
|
1499 |
+
echo '<p class="description">' . __( "Please enter a valid MailChimp API key to get started." , 'yikes-inc-easy-mailchimp-extender' ) . '</p>';
|
1500 |
+
?>
|
1501 |
+
<a href="<?php echo esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings&settings-updated=true' ) ); ?>"><?php _e( 'general settings' , 'yikes-inc-easy-mailchimp-extender' ); ?></a>
|
1502 |
+
<?php
|
1503 |
+
}
|
1504 |
+
?>
|
1505 |
+
</form>
|
1506 |
+
</div> <!-- .inside -->
|
1507 |
+
<?php
|
1508 |
+
}
|
1509 |
+
|
1510 |
+
/*
|
1511 |
+
* Generate a dropdown of post and pages
|
1512 |
+
* so the user can send the user to on form submission
|
1513 |
+
*/
|
1514 |
+
public function generate_page_redirect_dropdown( $redirect, $redirect_page, $custom_redirect_url ) {
|
1515 |
+
$post_types = get_post_types();
|
1516 |
+
?>
|
1517 |
+
<label id="redirect-user-to-selection-label" for="redirect-user-to-selection" class="<?php if( $redirect == '0' ) { echo 'yikes-easy-mc-hidden'; } ?>">
|
1518 |
+
<?php _e( "Select A Page or Post" , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1519 |
+
<select id="redirect-user-to-selection" name="redirect-user-to-selection" onchange="shouldWeDisplayCustomURL( this );return;">
|
1520 |
+
<?php
|
1521 |
+
// loop over registered post types, and query!
|
1522 |
+
foreach( $post_types as $registered_post_type ) {
|
1523 |
+
// exclude a few built in custom post types
|
1524 |
+
if( ! in_array( $registered_post_type , array( 'attachment' , 'revision' , 'nav_menu_item' ) ) ) {
|
1525 |
+
// run our query, to retreive the posts
|
1526 |
+
$pages = get_posts( array(
|
1527 |
+
'order' => 'ASC',
|
1528 |
+
'orderby' => 'post_title',
|
1529 |
+
'post_type' => $registered_post_type,
|
1530 |
+
'post_status' => 'publish',
|
1531 |
+
'numberposts' => -1
|
1532 |
+
) );
|
1533 |
+
// only show cpt's that have posts assigned
|
1534 |
+
if( !empty( $pages ) ) {
|
1535 |
+
?>
|
1536 |
+
<optgroup label="<?php echo ucwords( str_replace( '_' , ' ' , $registered_post_type ) ); ?>">
|
1537 |
+
<?php
|
1538 |
+
foreach( $pages as $page ) {
|
1539 |
+
?><option <?php selected( $redirect_page , $page->ID ); ?> value="<?php echo $page->ID; ?>"><?php echo $page->post_title; ?></option><?php
|
1540 |
+
}
|
1541 |
+
?>
|
1542 |
+
<option <?php selected( $redirect_page, 'custom_url' ); ?> value="custom_url"><?php echo __( 'Custom URL', 'yikes-inc-easy-mailchimp-extender' ); ?></option>
|
1543 |
+
</optgroup>
|
1544 |
+
<?php
|
1545 |
+
}
|
1546 |
+
}
|
1547 |
+
}
|
1548 |
+
?>
|
1549 |
+
</select>
|
1550 |
+
|
1551 |
+
<label name="custom-redirect-url" class="custom_redirect_url_label" <?php if( ! isset( $redirect_page ) || $redirect_page != 'custom_url' ) { echo 'style="display:none;"'; } ?>>
|
1552 |
+
<?php _e( "Enter Custom URL" , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1553 |
+
<input type="text" class="widefat custom-redirect-url" name="custom-redirect-url" value="<?php echo $custom_redirect_url; ?>" />
|
1554 |
+
</label>
|
1555 |
+
|
1556 |
+
</label>
|
1557 |
+
<?php
|
1558 |
+
}
|
1559 |
+
|
1560 |
+
/*
|
1561 |
+
* generate_show_some_love_container()
|
1562 |
+
* Generate a container, with some author info
|
1563 |
+
*
|
1564 |
+
* Displayed in sidebars
|
1565 |
+
*/
|
1566 |
+
public function generate_show_some_love_container() {
|
1567 |
+
// if no active add-ons are installed,
|
1568 |
+
// lets display our branding and add-on sidebar
|
1569 |
+
if( get_option( 'yikes-easy-mc-active-addons' , array() ) == array() ) {
|
1570 |
+
|
1571 |
+
/* On Edit Forms Page Display Upsell to Customizer */
|
1572 |
+
$screen = get_current_screen();
|
1573 |
+
if( isset( $screen ) && $screen->base == 'admin_page_yikes-mailchimp-edit-form' ) {
|
1574 |
+
?>
|
1575 |
+
|
1576 |
+
<div class="postbox yikes-easy-mc-postbox show-some-love-container">
|
1577 |
+
|
1578 |
+
<?php $this->generate_edit_forms_upsell_ad(); ?>
|
1579 |
+
|
1580 |
+
</div>
|
1581 |
+
|
1582 |
+
<?php } else { ?>
|
1583 |
+
|
1584 |
+
<div class="postbox yikes-easy-mc-postbox show-some-love-container">
|
1585 |
+
|
1586 |
+
<!-- review us container -->
|
1587 |
+
<h3 data-alt-text="<?php _e( 'About YIKES Inc.', 'yikes-inc-easy-mailchimp-extender' ); ?>"><?php _e( 'Show YIKES Inc. Some Love' , 'yikes-inc-easy-mailchimp-extender' ); ?></h3>
|
1588 |
+
<div id="review-yikes-easy-mc" class="inside">
|
1589 |
+
|
1590 |
+
<p>
|
1591 |
+
<?php _e( 'Leave a review' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1592 |
+
<p class="star-container">
|
1593 |
+
<a href="https://wordpress.org/support/view/plugin-reviews/yikes-inc-easy-mailchimp-extender" target="_blank">
|
1594 |
+
<b class="dashicons dashicons-star-filled"></b>
|
1595 |
+
<b class="dashicons dashicons-star-filled"></b>
|
1596 |
+
<b class="dashicons dashicons-star-filled"></b>
|
1597 |
+
<b class="dashicons dashicons-star-filled"></b>
|
1598 |
+
<b class="dashicons dashicons-star-filled"></b>
|
1599 |
+
</a>
|
1600 |
+
</p>
|
1601 |
+
</p>
|
1602 |
+
|
1603 |
+
<?php _e( 'Tweet about it' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1604 |
+
<p class="sidebar-container">
|
1605 |
+
<a href="https://twitter.com/share" class="twitter-share-button" data-url="https://wordpress.org/plugins/yikes-inc-easy-mailchimp-extender/" data-text="I'm using the Easy Forms for MailChimp plugin by @YikesInc to grow my mailing list - it's awesome! -" data-hashtags="MailChimp">Tweet</a>
|
1606 |
+
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
|
1607 |
+
</p>
|
1608 |
+
|
1609 |
+
<?php _e( 'Vote that the plugin works' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1610 |
+
<p class="sidebar-container">
|
1611 |
+
<a href="https://wordpress.org/plugins/yikes-inc-easy-mailchimp-extender/" target="_blank">
|
1612 |
+
<?php _e( 'Vote for Compatibility' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1613 |
+
</a>
|
1614 |
+
</p>
|
1615 |
+
</div>
|
1616 |
+
|
1617 |
+
<p class="description sidebar-footer-text"><?php printf( __( "This plugin made with %s by %s" , 'yikes-inc-easy-mailchimp-extender' ), '<span class="dashicons dashicons-heart yikes-love"></span>', '<a href="http://www.yikesinc.com" target="_blank" title="YIKES Inc.">YIKES Inc.</a>' ); ?> </p>
|
1618 |
+
|
1619 |
+
<section id="about-yikes-inc" class="inside">
|
1620 |
+
<a href="https://www.yikesinc.com" target="_blank" title="YIKES Inc.">
|
1621 |
+
<img src="<?php echo YIKES_MC_URL . 'includes/images/About_Page/yikes-logo.png'; ?>" class="about-sidebar-yikes-logo" />
|
1622 |
+
</a>
|
1623 |
+
<p><strong>YIKES Inc.</strong> — <?php _e( 'is a web design and development company located in Philadelphia, Pennsylvania, US. YIKES specializes in custom WordPress theme and plugin development, site maintenance, eCommerce, custom-built web-based applications and more.', 'yikes-inc-easy-mailchimp-extender' ); ?></p>
|
1624 |
+
</section>
|
1625 |
+
|
1626 |
+
<p class="description sidebar-footer-text"><a href="#" class="about-yikes-inc-toggle" data-alt-text="<?php _e( 'Show YIKES Some Love', 'yikes-inc-easy-mailchimp-extender' ); ?>"><?php _e( 'About YIKES', 'yikes-inc-easy-mailchimp-extender' ); ?></a></p>
|
1627 |
+
|
1628 |
+
</div>
|
1629 |
+
|
1630 |
+
<?php } ?>
|
1631 |
+
|
1632 |
+
<div class="postbox yikes-easy-mc-postbox">
|
1633 |
+
|
1634 |
+
<!-- review us container -->
|
1635 |
+
<h3><?php _e( 'Easy Forms for MailChimp Add-Ons' , 'yikes-inc-easy-mailchimp-extender' ); ?></h3>
|
1636 |
+
<div id="review-yikes-easy-mc" class="inside">
|
1637 |
+
<p><?php _e( "Check out available add-ons for some seriously enhanced features." , 'yikes-inc-easy-mailchimp-extender' ); ?></p>
|
1638 |
+
<p><a class="button-secondary" href="<?php echo esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-addons' ) ); ?>" title="<?php _e( 'View Add-Ons' , 'yikes-inc-easy-mailchimp-extender' ); ?>"><?php _e( 'View Add-Ons' , 'yikes-inc-easy-mailchimp-extender' ); ?></a></p>
|
1639 |
+
</div>
|
1640 |
+
|
1641 |
+
</div>
|
1642 |
+
<?php
|
1643 |
+
}
|
1644 |
+
|
1645 |
+
/**
|
1646 |
+
* Custom action hook for our extensions to hook into
|
1647 |
+
* @parameter get_current_screen() current screen information
|
1648 |
+
*/
|
1649 |
+
do_action( 'yikes-mailchimp-admin-sidebar', get_current_screen() );
|
1650 |
+
|
1651 |
+
}
|
1652 |
+
|
1653 |
+
/*
|
1654 |
+
* generate_form_editor( $list_id )
|
1655 |
+
* Submit an API request to get our merge variables, and build up a small form editor
|
1656 |
+
* for users to 'customize' their form
|
1657 |
+
* -
|
1658 |
+
* @parameters - $list_id - pass in the list ID to retreive merge variables from
|
1659 |
+
*/
|
1660 |
+
public function generate_form_editor( $form_fields, $list_id, $merge_variables, $interest_groups ) {
|
1661 |
+
|
1662 |
+
// if no list id, die!
|
1663 |
+
if( ! $list_id ) {
|
1664 |
+
die( __( "We've encountered an error. No list ID was sent." , 'yikes-inc-easy-mailchimp-extender' ) );
|
1665 |
+
}
|
1666 |
+
|
1667 |
+
if( ! $merge_variables ) {
|
1668 |
+
die( __( "We've encountered an error. Reload the page and try again. If the error persists, please reach out to support." , 'yikes-inc-easy-mailchimp-extender' ) );
|
1669 |
+
}
|
1670 |
+
|
1671 |
+
if( ! empty( $form_fields ) ) {
|
1672 |
+
|
1673 |
+
// find any fields that are assigned to this form, that don't exist in MailChimp
|
1674 |
+
// or else were going to run into issues when we submit the form
|
1675 |
+
$available_merge_variables = array();
|
1676 |
+
$available_interest_groups = array();
|
1677 |
+
|
1678 |
+
$assigned_fields= array();
|
1679 |
+
|
1680 |
+
// loop over merge variables
|
1681 |
+
if( ! empty( $merge_variables['data'][0]['merge_vars'] ) ) {
|
1682 |
+
foreach( $merge_variables['data'][0]['merge_vars'] as $merge_tag ) {
|
1683 |
+
$available_merge_variables[] = $merge_tag['tag'];
|
1684 |
+
}
|
1685 |
+
}
|
1686 |
+
|
1687 |
+
// loop over interest groups
|
1688 |
+
if( ! empty( $interest_groups ) && ! isset( $interest_groups['error'] ) ) {
|
1689 |
+
foreach( $interest_groups as $interest_group ) {
|
1690 |
+
$available_interest_groups[] = $interest_group['id'];
|
1691 |
+
}
|
1692 |
+
}
|
1693 |
+
|
1694 |
+
// build our assigned fields
|
1695 |
+
foreach( $form_fields as $field => $value ) {
|
1696 |
+
$assigned_fields[] = $field;
|
1697 |
+
}
|
1698 |
+
|
1699 |
+
$merged_fields = array_merge( $available_merge_variables , $available_interest_groups );
|
1700 |
+
$excluded_fields = array_diff( $assigned_fields , $merged_fields );
|
1701 |
+
|
1702 |
+
$i = 1;
|
1703 |
+
foreach( $form_fields as $field ) {
|
1704 |
+
|
1705 |
+
if( isset( $field['merge'] ) ) {
|
1706 |
+
?>
|
1707 |
+
<section class="draggable" id="<?php echo $field['merge']; ?>">
|
1708 |
+
<!-- top -->
|
1709 |
+
<a href="#" class="expansion-section-title settings-sidebar">
|
1710 |
+
<span class="dashicons dashicons-plus"></span><?php echo stripslashes( $field['label'] ); ?>
|
1711 |
+
<?php if( in_array( $field['merge'] , $excluded_fields ) ) { ?>
|
1712 |
+
<img src="<?php echo YIKES_MC_URL . 'includes/images/warning.svg'; ?>" class="field-doesnt-exist-notice" title="<?php _e( 'Field no longer exists.' , 'yikes-inc-easy-mailchimp-extender' ); ?>" alt="<?php _e( 'Field no longer exists.' , 'yikes-inc-easy-mailchimp-extender' ); ?>">
|
1713 |
+
<?php } ?>
|
1714 |
+
<span class="field-type-text"><small><?php echo __( 'type' , 'yikes-inc-easy-mailchimp-extender' ) . ' : ' . $field['type']; ?></small></span>
|
1715 |
+
</a>
|
1716 |
+
<!-- expansion section -->
|
1717 |
+
<div class="yikes-mc-settings-expansion-section">
|
1718 |
+
|
1719 |
+
<?php if( in_array( $field['merge'] , $excluded_fields ) ) { ?>
|
1720 |
+
<p class="yikes-mc-warning-message"><?php _e( "This field no longer exists in this list. Delete this field from the form to prevent issues on your website." , 'yikes-inc-easy-mailchimp-extender' ); ?></p>
|
1721 |
+
<?php } ?>
|
1722 |
+
|
1723 |
+
<!-- store the label -->
|
1724 |
+
<input type="hidden" name="field[<?php echo $field['merge']; ?>][label]" value="<?php echo $field['label']; ?>" />
|
1725 |
+
<input type="hidden" name="field[<?php echo $field['merge']; ?>][type]" value="<?php echo $field['type']; ?>" />
|
1726 |
+
<input type="hidden" name="field[<?php echo $field['merge']; ?>][merge]" value="<?php echo $field['merge']; ?>" />
|
1727 |
+
<input type="hidden" class="field-<?php echo $field['merge']; ?>-position position-input" name="field[<?php echo $field['merge']; ?>][position]" value="<?php echo $i++; ?>" />
|
1728 |
+
|
1729 |
+
<?php if ( $field['type'] == 'radio' || $field['type'] == 'dropdown' || $field['type'] == 'select' ) {
|
1730 |
+
$choices = json_decode( $field['choices'], true );
|
1731 |
+
?>
|
1732 |
+
<input type="hidden" name="field[<?php echo $field['merge']; ?>][choices]" value='<?php echo esc_attr( json_encode( $choices ) ); ?>' />
|
1733 |
+
<?php } ?>
|
1734 |
+
|
1735 |
+
<!-- Single or Double Opt-in -->
|
1736 |
+
<p class="type-container"><!-- necessary to prevent skipping on slideToggle(); -->
|
1737 |
+
|
1738 |
+
<table class="form-table form-field-container">
|
1739 |
+
|
1740 |
+
<!-- Merge Tag -->
|
1741 |
+
<tr valign="top">
|
1742 |
+
<td scope="row">
|
1743 |
+
<label for="merge-tag">
|
1744 |
+
<?php _e( 'Merge Tag' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1745 |
+
</label>
|
1746 |
+
</td>
|
1747 |
+
<td>
|
1748 |
+
<input class="widefat merge-tag-text" type="text" readonly value="<?php echo $field['merge']; ?>">
|
1749 |
+
</td>
|
1750 |
+
</tr>
|
1751 |
+
|
1752 |
+
<!-- Placeholder Value -->
|
1753 |
+
<?php switch( $field['type'] ) {
|
1754 |
+
|
1755 |
+
case 'text':
|
1756 |
+
case 'email':
|
1757 |
+
case 'url':
|
1758 |
+
case 'number';
|
1759 |
+
case 'birthday':
|
1760 |
+
case 'date':
|
1761 |
+
case 'zip':
|
1762 |
+
case 'phone':
|
1763 |
+
?>
|
1764 |
+
<!-- Placeholder -->
|
1765 |
+
<tr valign="top">
|
1766 |
+
<td scope="row">
|
1767 |
+
<label for="placeholder">
|
1768 |
+
<?php _e( 'Placeholder' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1769 |
+
</label>
|
1770 |
+
</td>
|
1771 |
+
<td>
|
1772 |
+
<input type="text" class="widefat" name="field[<?php echo $field['merge']; ?>][placeholder]" value="<?php echo isset( $field['placeholder'] ) ? $field['placeholder'] : '' ; ?>" />
|
1773 |
+
<p class="description"><small><?php _e( "Assign a placeholder value to this field.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
1774 |
+
</td>
|
1775 |
+
</tr>
|
1776 |
+
<?php
|
1777 |
+
break;
|
1778 |
+
}
|
1779 |
+
?>
|
1780 |
+
|
1781 |
+
<!-- Default Value -->
|
1782 |
+
<?php switch( $field['type'] ) {
|
1783 |
+
default:
|
1784 |
+
case 'text':
|
1785 |
+
case 'number':
|
1786 |
+
case 'url':
|
1787 |
+
?>
|
1788 |
+
<tr valign="top">
|
1789 |
+
<td scope="row">
|
1790 |
+
<label for="placeholder">
|
1791 |
+
<?php _e( 'Default Value' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1792 |
+
</label>
|
1793 |
+
</td>
|
1794 |
+
<td>
|
1795 |
+
<input <?php if( $field['type'] != 'number' ) { ?> type="text" <?php } else { ?> type="number" <?php } ?> class="widefat" name="field[<?php echo $field['merge']; ?>][default]" <?php if( $field['type'] != 'url' ) { ?> value="<?php echo isset( $field['default'] ) ? stripslashes( wp_strip_all_tags( $field['default'] ) ) : ''; ?>" <?php } else { ?> value="<?php echo isset( $field['default'] ) ? stripslashes( wp_strip_all_tags( esc_url_raw( $field['default'] ) ) ) : ''; ?>" <?php } ?> />
|
1796 |
+
<p class="description"><small><?php _e( "Assign a default value to populate this field with on initial page load.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
1797 |
+
<?php
|
1798 |
+
switch( $field['type'] ) {
|
1799 |
+
case 'text':
|
1800 |
+
?>
|
1801 |
+
<p><small class="pre-defined-tag-link"><a href="#TB_inline?width=600&height=550&inlineId=pre-defined-tag-container" onclick="storeGlobalClicked( jQuery( this ) );" class="thickbox"><?php _e( 'View Pre-Defined Tags' , 'yikes-inc-easy-mailchimp-extender' ); ?></a></small></p>
|
1802 |
+
<?php
|
1803 |
+
break;
|
1804 |
+
} ?>
|
1805 |
+
</td>
|
1806 |
+
</tr>
|
1807 |
+
<?php
|
1808 |
+
break;
|
1809 |
+
|
1810 |
+
case 'radio':
|
1811 |
+
?>
|
1812 |
+
<tr valign="top">
|
1813 |
+
<td scope="row">
|
1814 |
+
<label for="placeholder">
|
1815 |
+
<?php _e( 'Default Selection' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1816 |
+
</label>
|
1817 |
+
</td>
|
1818 |
+
<td>
|
1819 |
+
<?php if( ! isset( $field['default_choice'] ) || empty( $field['default_choice'] ) ) { $decode = json_decode( $field['choices'], true ); $field['default_choice'] = $decode[0]; }
|
1820 |
+
$x = 0;
|
1821 |
+
foreach( json_decode( $field['choices'], true ) as $choice => $value ) { ?>
|
1822 |
+
<label for="<?php echo $field['merge'].'-'.$x; ?>">
|
1823 |
+
<input id="<?php echo $field['merge'].'-'.$x; ?>" type="radio" name="field[<?php echo $field['merge']; ?>][default_choice]" value="<?php echo $x; ?>" <?php checked( $field['default_choice'], $x ); ?>><?php echo $value; ?>
|
1824 |
+
</label>
|
1825 |
+
<?php $x++; } ?>
|
1826 |
+
<p class="description"><small><?php _e( "Select the option that should be selected by default.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
1827 |
+
</td>
|
1828 |
+
</tr>
|
1829 |
+
|
1830 |
+
<?php
|
1831 |
+
break;
|
1832 |
+
|
1833 |
+
case 'dropdown':
|
1834 |
+
?>
|
1835 |
+
<tr valign="top">
|
1836 |
+
<td scope="row">
|
1837 |
+
<label for="placeholder">
|
1838 |
+
<?php _e( 'Default Selection' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1839 |
+
</label>
|
1840 |
+
</td>
|
1841 |
+
<td>
|
1842 |
+
<select type="default" name="field[<?php echo $field['merge']; ?>][default_choice]">
|
1843 |
+
<?php foreach( json_decode( $field['choices'], true ) as $choice => $value ) { ?>
|
1844 |
+
<option value="<?php echo $choice; ?>" <?php selected( $field['default_choice'] , $choice ); ?>><?php echo $value; ?></option>
|
1845 |
+
<?php } ?>
|
1846 |
+
</select>
|
1847 |
+
<p class="description"><small><?php _e( "Which option should be selected by default?", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
1848 |
+
</td>
|
1849 |
+
</tr>
|
1850 |
+
|
1851 |
+
<?php
|
1852 |
+
break;
|
1853 |
+
|
1854 |
+
case "birthday":
|
1855 |
+
case "address":
|
1856 |
+
break;
|
1857 |
+
|
1858 |
+
?>
|
1859 |
+
|
1860 |
+
<?php } // end Default Value ?>
|
1861 |
+
|
1862 |
+
|
1863 |
+
<!-- Field Description -->
|
1864 |
+
<tr valign="top">
|
1865 |
+
<td scope="row">
|
1866 |
+
<label for="placeholder">
|
1867 |
+
<?php _e( 'Description' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1868 |
+
</label>
|
1869 |
+
</td>
|
1870 |
+
<td>
|
1871 |
+
<textarea class="widefat field-description-input" name="field[<?php echo $field['merge']; ?>][description]"><?php echo isset( $field['description'] ) ? stripslashes( esc_html( $field['description'] ) ) : '' ; ?></textarea>
|
1872 |
+
<p class="description"><small><?php _e( "Enter the description for the form field. This will be displayed to the user and will provide some direction on how the field should be filled out or selected.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
1873 |
+
</td>
|
1874 |
+
</tr>
|
1875 |
+
<!-- Additional Classes -->
|
1876 |
+
<tr valign="top">
|
1877 |
+
<td scope="row">
|
1878 |
+
<label for="placeholder">
|
1879 |
+
<?php _e( 'Additional Classes' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1880 |
+
</label>
|
1881 |
+
</td>
|
1882 |
+
<td>
|
1883 |
+
<input type="text" class="widefat" name="field[<?php echo $field['merge']; ?>][additional-classes]" value="<?php echo isset( $field['additional-classes'] ) ? stripslashes( wp_strip_all_tags( $field['additional-classes'] ) ) : '' ; ?>" />
|
1884 |
+
<p class="description"><small><?php printf( __( "Assign additional classes to this field. %s.", 'yikes-inc-easy-mailchimp-extender' ), '<a target="_blank" href="' . esc_url( 'https://yikesplugins.com/support/knowledge-base/bundled-css-classes/' ) . '">' . __( 'View bundled classes', 'yikes-inc-easy-mailchimp-extender' ) . '</a>' );?></small></p>
|
1885 |
+
</td>
|
1886 |
+
</tr>
|
1887 |
+
<!-- Required Toggle -->
|
1888 |
+
<tr valign="top">
|
1889 |
+
<td scope="row">
|
1890 |
+
<label for="field-required">
|
1891 |
+
<?php _e( 'Field Required?' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1892 |
+
</label>
|
1893 |
+
</td>
|
1894 |
+
<td>
|
1895 |
+
<?php $checked = isset( $field['require'] ) ? $field['require'] : '0'; ?>
|
1896 |
+
<input type="checkbox" class="widefat" value="1" name="field[<?php echo $field['merge']; ?>][require]" <?php checked( $checked , 1 ); ?> <?php if( $field['merge'] == 'EMAIL' ) { ?> disabled="disabled" checked="checked" title="<?php echo __( 'Email is a required field.' , 'yikes-inc-easy-mailchimp-extender' ); } ?>">
|
1897 |
+
<p class="description"><small><?php _e( "Require this field to be filled in before the form can be submitted.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
1898 |
+
</td>
|
1899 |
+
</tr>
|
1900 |
+
<!-- Visible Toggle -->
|
1901 |
+
<tr valign="top">
|
1902 |
+
<td scope="row">
|
1903 |
+
<label for="hide-field">
|
1904 |
+
<?php _e( 'Hide Field' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1905 |
+
</label>
|
1906 |
+
</td>
|
1907 |
+
<td>
|
1908 |
+
<?php $hide = isset( $field['hide'] ) ? $field['hide'] : '0'; ?>
|
1909 |
+
<input type="checkbox" class="widefat" value="1" name="field[<?php echo $field['merge']; ?>][hide]" <?php checked( $hide , 1 ); ?> <?php if( $field['merge'] == 'EMAIL' ) { ?> disabled="disabled" title="<?php echo __( 'Cannot toggle email field visibility.' , 'yikes-inc-easy-mailchimp-extender' ); } ?>">
|
1910 |
+
<p class="description"><small><?php _e( "Hide this field from being displayed on the front end.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
1911 |
+
</td>
|
1912 |
+
</tr>
|
1913 |
+
<!-- Toggle Field Label Visibility -->
|
1914 |
+
<tr valign="top">
|
1915 |
+
<td scope="row">
|
1916 |
+
<label for="placeholder">
|
1917 |
+
<?php _e( 'Hide Label' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
1918 |
+
</label>
|
1919 |
+
</td>
|
1920 |
+
<td>
|
1921 |
+
<?php $hide_label = isset( $field['hide-label'] ) ? $field['hide-label'] : '0'; ?>
|
1922 |
+
<input type="checkbox" name="field[<?php echo $field['merge']; ?>][hide-label]" value="1" <?php checked( $hide_label , 1 ); ?>/>
|
1923 |
+
<p class="description"><small><?php _e( "Toggle field label visibility.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
1924 |
+
</td>
|
1925 |
+
</tr>
|
1926 |
+
<!-- Display Phone/Date Formats back to the user -->
|
1927 |
+
<!-- Phone Format Initial Load -->
|
1928 |
+
<?php
|
1929 |
+
switch( $field['type'] ) {
|
1930 |
+
/* Store the phone format, for properly regex pattern */
|
1931 |
+
case 'phone':
|
1932 |
+
case 'birthday':
|
1933 |
+
case 'date':
|
1934 |
+
?>
|
1935 |
+
<tr valign="top">
|
1936 |
+
<td scope="row">
|
1937 |
+
<label for="placeholder">
|
1938 |
+
<?php
|
1939 |
+
switch( $field['type'] ) {
|
1940 |
+
default:
|
1941 |
+
case 'birthday':
|
1942 |
+
$type = __( 'Date Format' , 'yikes-inc-easy-mailchimp-extender' );
|
1943 |
+
$format = ( isset( $field['date_format'] ) ) ? $field['date_format'] : 'MM/DD';
|
1944 |
+
$format_name = 'date_format';
|
1945 |
+
break;
|
1946 |
+
|
1947 |
+
case 'date':
|
1948 |
+
$type = __( 'Date Format' , 'yikes-inc-easy-mailchimp-extender' );
|
1949 |
+
$format = ( isset( $field['date_format'] ) ) ? $field['date_format'] : 'MM/DD/YYYY';
|
1950 |
+
$format_name = 'date_format';
|
1951 |
+
break;
|
1952 |
+
|
1953 |
+
case 'phone':
|
1954 |
+
$type = __( 'Phone Format' , 'yikes-inc-easy-mailchimp-extender' );
|
1955 |
+
$format = ( ( $field['phone_format'] == 'none' ) ? __( 'International', 'yikes-inc-easy-mailchimp-extender' ) : $field['phone_format'] . ' - (###) ### - ####' );
|
1956 |
+
$format_name = 'phone_format';
|
1957 |
+
break;
|
1958 |
+
}
|
1959 |
+
echo $type;
|
1960 |
+
?>
|
1961 |
+
</label>
|
1962 |
+
</td>
|
1963 |
+
<td>
|
1964 |
+
<strong><?php echo $format; ?></strong>
|
1965 |
+
<input type="hidden" name="field[<?php echo $field['merge']; ?>][<?php echo $format_name; ?>]" value="<?php echo $format; ?>" />
|
1966 |
+
<p class="description"><small>
|
1967 |
+
<?php printf( __( 'To change the %s please head over to <a href="%s" title="MailChimp" target="_blank">MailChimp</a>. If you alter the format, you should re-import this field.', 'yikes-inc-easy-mailchimp-extender' ), strtolower( $type ), esc_url( 'http://www.mailchimp.com' ) ); ?>
|
1968 |
+
</small></p>
|
1969 |
+
</td>
|
1970 |
+
</tr>
|
1971 |
+
<?php
|
1972 |
+
break;
|
1973 |
+
// others..
|
1974 |
+
default:
|
1975 |
+
break;
|
1976 |
+
}
|
1977 |
+
?>
|
1978 |
+
<!-- End Date/Phone Formats -->
|
1979 |
+
<!-- Toggle Buttons -->
|
1980 |
+
<tr valign="top">
|
1981 |
+
<td scope="row">
|
1982 |
+
|
1983 |
+
</td>
|
1984 |
+
<td>
|
1985 |
+
<span class="toggle-container">
|
1986 |
+
<a href="#" class="close-form-expansion"><?php _e( "Close" , 'yikes-inc-easy-mailchimp-extender' ); ?></a> |
|
1987 |
+
<a href="#" class="remove-field" alt="<?php echo $field['merge']; ?>"><?php _e( "Remove Field" , 'yikes-inc-easy-mailchimp-extender' ); ?></a>
|
1988 |
+
</span>
|
1989 |
+
</td>
|
1990 |
+
</tr>
|
1991 |
+
</table>
|
1992 |
+
</p>
|
1993 |
+
|
1994 |
+
</div>
|
1995 |
+
</section>
|
1996 |
+
<?php
|
1997 |
+
|
1998 |
+
|
1999 |
+
|
2000 |
+
} else { // THIS IS AN INTEREST GROUP!
|
2001 |
+
|
2002 |
+
?>
|
2003 |
+
<section class="draggable" id="<?php echo $field['group_id']; ?>">
|
2004 |
+
<!-- top -->
|
2005 |
+
<a href="#" class="expansion-section-title settings-sidebar">
|
2006 |
+
<span class="dashicons dashicons-plus"></span><?php echo stripslashes( $field['label'] ); ?>
|
2007 |
+
<?php if( in_array( $field['group_id'] , $excluded_fields ) ) { ?>
|
2008 |
+
<img src="<?php echo YIKES_MC_URL . 'includes/images/warning.svg'; ?>" class="field-no-longer-exists-warning" title="<?php _e( 'Field no longer exists.' , 'yikes-inc-easy-mailchimp-extender' ); ?>" alt="<?php _e( 'Field no longer exists.' , 'yikes-inc-easy-mailchimp-extender' ); ?>">
|
2009 |
+
<?php } ?>
|
2010 |
+
<span class="field-type-text"><small><?php echo __( 'type' , 'yikes-inc-easy-mailchimp-extender' ) . ' : ' . $field['type']; ?></small></span>
|
2011 |
+
</a>
|
2012 |
+
<!-- expansion section -->
|
2013 |
+
<div class="yikes-mc-settings-expansion-section">
|
2014 |
+
|
2015 |
+
<!-- check if this field exists in the available interest group array -->
|
2016 |
+
<?php if( in_array( $field['group_id'] , $excluded_fields ) ) { ?>
|
2017 |
+
<p class="yikes-mc-warning-message"><?php _e( "This field no longer exists in this list. Delete this field from the form to prevent issues on the front end." , 'yikes-inc-easy-mailchimp-extender' ); ?></p>
|
2018 |
+
<?php } ?>
|
2019 |
+
|
2020 |
+
<!-- store the label -->
|
2021 |
+
<input type="hidden" name="field[<?php echo $field['group_id']; ?>][label]" value="<?php echo $field['label']; ?>" />
|
2022 |
+
<input type="hidden" name="field[<?php echo $field['group_id']; ?>][type]" value="<?php echo $field['type']; ?>" />
|
2023 |
+
<input type="hidden" name="field[<?php echo $field['group_id']; ?>][group_id]" value="<?php echo $field['group_id']; ?>" />
|
2024 |
+
<input type="hidden" name="field[<?php echo $field['group_id']; ?>][groups]" value='<?php echo esc_attr( json_encode( json_decode( $field['groups'], true ) ) ); ?>' />
|
2025 |
+
|
2026 |
+
<!-- Single or Double Opt-in -->
|
2027 |
+
<p class="type-container"><!-- necessary to prevent skipping on slideToggle(); -->
|
2028 |
+
|
2029 |
+
<table class="form-table form-field-container">
|
2030 |
+
<!-- Default Value -->
|
2031 |
+
<?php switch( $field['type'] ) {
|
2032 |
+
|
2033 |
+
default:
|
2034 |
+
case 'radio':
|
2035 |
+
case 'checkboxes':
|
2036 |
+
?>
|
2037 |
+
<tr valign="top">
|
2038 |
+
<td scope="row">
|
2039 |
+
<label for="placeholder">
|
2040 |
+
<?php _e( 'Default Selection' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
2041 |
+
</label>
|
2042 |
+
</td>
|
2043 |
+
<td>
|
2044 |
+
<?php
|
2045 |
+
if( $field['type'] != 'checkboxes' ) {
|
2046 |
+
if( !isset( $field['default_choice'] ) ) { $field['default_choice'] = json_decode( stripslashes( $field['groups'] ) , true ); }
|
2047 |
+
} else {
|
2048 |
+
if( !isset( $field['default_choice'] ) ) { $field['default_choice'] = array(); }
|
2049 |
+
}
|
2050 |
+
$i = 0;
|
2051 |
+
foreach( json_decode( $field['groups'], true ) as $group ) { ?>
|
2052 |
+
<label for="<?php echo $field['group_id'].'-'.$i; ?>">
|
2053 |
+
<input id="<?php echo $field['group_id'].'-'.$i; ?>" type="<?php if( $field['type'] == 'radio' || $field['type'] == 'hidden' ) { ?>radio<?php } else if( $field['type'] == 'checkboxes' ) { ?>checkbox<?php } ?>" name="field[<?php echo $field['group_id']; ?>][default_choice]<?php if( $field['type'] == 'checkboxes' ) {echo '[]';}?>" value="<?php echo $i; ?>" <?php if( $field['type'] == 'radio' || $field['type'] == 'hidden' ) { checked( $field['default_choice'][0] , $i ); } else if( $field['type'] == 'checkboxes' ) { if( in_array( $i , $field['default_choice'] ) ) { echo 'checked="checked"'; } }?>><?php echo stripslashes( str_replace( '~' , '\'' , $group['name'] ) ); ?>
|
2054 |
+
</label>
|
2055 |
+
<?php
|
2056 |
+
$i++;
|
2057 |
+
}
|
2058 |
+
?>
|
2059 |
+
<p class="description"><small><?php _e( "Select the option that should be selected by default.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
2060 |
+
</td>
|
2061 |
+
</tr>
|
2062 |
+
|
2063 |
+
<?php
|
2064 |
+
break;
|
2065 |
+
|
2066 |
+
case 'dropdown':
|
2067 |
+
?>
|
2068 |
+
<tr valign="top">
|
2069 |
+
<td scope="row">
|
2070 |
+
<label for="placeholder">
|
2071 |
+
<?php _e( 'Default Selection' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
2072 |
+
</label>
|
2073 |
+
</td>
|
2074 |
+
<td>
|
2075 |
+
<select type="default" name="field[<?php echo $field['group_id']; ?>][default_choice]">
|
2076 |
+
<?php $i = 0; foreach( json_decode( stripslashes_deep( $field['groups'] ) , true ) as $group ) { ?>
|
2077 |
+
<option value="<?php echo $i; ?>" <?php selected( $field['default_choice'] , $i ); ?>><?php echo stripslashes( $group['name'] ); ?></option>
|
2078 |
+
<?php $i++; } ?>
|
2079 |
+
</select>
|
2080 |
+
<p class="description"><small><?php _e( "Which option should be selected by default?", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
2081 |
+
</td>
|
2082 |
+
</tr>
|
2083 |
+
|
2084 |
+
<?php
|
2085 |
+
break;
|
2086 |
+
?>
|
2087 |
+
|
2088 |
+
<?php } // end Default Value ?>
|
2089 |
+
|
2090 |
+
<!-- Field Description -->
|
2091 |
+
<tr valign="top">
|
2092 |
+
<td scope="row">
|
2093 |
+
<label for="placeholder">
|
2094 |
+
<?php _e( 'Description' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
2095 |
+
</label>
|
2096 |
+
</td>
|
2097 |
+
<td>
|
2098 |
+
<textarea class="widefat field-description-input" name="field[<?php echo $field['group_id']; ?>][description]"><?php echo isset( $field['description'] ) ? stripslashes( esc_html( $field['description'] ) ) : '' ; ?></textarea>
|
2099 |
+
<p class="description"><small><?php _e( "Enter the description for the form field. This will be displayed to the user and provide some direction on how the field should be filled out or selected.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
2100 |
+
</td>
|
2101 |
+
</tr>
|
2102 |
+
|
2103 |
+
<!-- Additional Classes -->
|
2104 |
+
<tr valign="top">
|
2105 |
+
<td scope="row">
|
2106 |
+
<label for="placeholder">
|
2107 |
+
<?php _e( 'Additional Classes' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
2108 |
+
</label>
|
2109 |
+
</td>
|
2110 |
+
<td>
|
2111 |
+
<input type="text" class="widefat" name="field[<?php echo $field['group_id']; ?>][additional-classes]" value="<?php echo isset( $field['additional-classes'] ) ? stripslashes( wp_strip_all_tags( $field['additional-classes'] ) ) : '' ; ?>" />
|
2112 |
+
<p class="description"><small><?php printf( __( "Assign additional classes to this field. %s.", 'yikes-inc-easy-mailchimp-extender' ), '<a target="_blank" href="' . esc_url( 'https://yikesplugins.com/support/knowledge-base/bundled-css-classes/' ) . '">' . __( 'View bundled classes', 'yikes-inc-easy-mailchimp-extender' ) . '</a>' );?></small></p>
|
2113 |
+
</td>
|
2114 |
+
</tr>
|
2115 |
+
<!-- Required Toggle -->
|
2116 |
+
<tr valign="top">
|
2117 |
+
<td scope="row">
|
2118 |
+
<label for="field-required">
|
2119 |
+
<?php _e( 'Field Required?' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
2120 |
+
</label>
|
2121 |
+
</td>
|
2122 |
+
<td>
|
2123 |
+
<?php $checked = isset( $field['require'] ) ? $field['require'] : '0'; ?>
|
2124 |
+
<input type="checkbox" class="widefat" value="1" name="field[<?php echo $field['group_id']; ?>][require]" <?php checked( $checked , 1 ); ?>>
|
2125 |
+
<p class="description"><small><?php _e( "Require this field to be filled in before the form can be submitted.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
2126 |
+
</td>
|
2127 |
+
</tr>
|
2128 |
+
<!-- Visible Toggle -->
|
2129 |
+
<tr valign="top">
|
2130 |
+
<td scope="row">
|
2131 |
+
<label for="hide-field">
|
2132 |
+
<?php _e( 'Hide Field' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
2133 |
+
</label>
|
2134 |
+
</td>
|
2135 |
+
<td>
|
2136 |
+
<?php $hide = isset( $field['hide'] ) ? $field['hide'] : '0'; ?>
|
2137 |
+
<input type="checkbox" class="widefat" value="1" name="field[<?php echo $field['group_id']; ?>][hide]" <?php checked( $hide , 1 ); ?>>
|
2138 |
+
<p class="description"><small><?php _e( "Hide this field from being displayed on the front end.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
2139 |
+
</td>
|
2140 |
+
</tr>
|
2141 |
+
<!-- Toggle Field Label Visibility -->
|
2142 |
+
<tr valign="top">
|
2143 |
+
<td scope="row">
|
2144 |
+
<label for="placeholder">
|
2145 |
+
<?php _e( 'Hide Label' , 'yikes-inc-easy-mailchimp-extender' ); ?>
|
2146 |
+
</label>
|
2147 |
+
</td>
|
2148 |
+
<td>
|
2149 |
+
<?php $hide = isset( $field['hide-label'] ) ? $field['hide-label'] : '0'; ?>
|
2150 |
+
<input type="checkbox" name="field[<?php echo $field['group_id']; ?>][hide-label]" value="1" <?php checked( $hide , 1 ); ?>/>
|
2151 |
+
<p class="description"><small><?php _e( "Toggle field label visibility.", 'yikes-inc-easy-mailchimp-extender' );?></small></p>
|
2152 |
+
</td>
|
2153 |
+
</tr>
|
2154 |
+
<!-- Toggle Buttons -->
|
2155 |
+
<tr valign="top">
|
2156 |
+
<td scope="row">
|
2157 |
+
|
2158 |
+
</td>
|
2159 |
+
<td>
|
2160 |
+
<span class="toggle-container">
|
2161 |
+
<a href="#" class="close-form-expansion"><?php _e( "Close" , 'yikes-inc-easy-mailchimp-extender' ); ?></a> |
|
2162 |
+
<a href="#" class="remove-field" alt="<?php echo $field['group_id']; ?>"><?php _e( "Remove Field" , 'yikes-inc-easy-mailchimp-extender' ); ?></a>
|
2163 |
+
</span>
|
2164 |
+
</td>
|
2165 |
+
</tr>
|
2166 |
+
</table>
|
2167 |
+
</p>
|
2168 |
+
|
2169 |
+
</div>
|
2170 |
+
</section>
|
2171 |
+
<?php
|
2172 |
+
} // its an interest group!
|
2173 |
+
}
|
2174 |
+
} else {
|
2175 |
+
?>
|
2176 |
+
<h4 class="no-fields-assigned-notice non-draggable-yikes"><em><?php _e( 'No fields are assigned to this form. Select fields from the right hand column to add to this form.' , 'yikes-inc-easy-mailchimp-extender' ); ?></em></h4>
|
2177 |
+
<?php
|
2178 |
+
}
|
2179 |
+
/* Pre Defined Merge Tag Container - Always rendered so the modal appears and links are clickable on initial page load */
|
2180 |
+
add_thickbox();
|
2181 |
+
// enqueue jquery qtip for our tooltip
|
2182 |
+
wp_enqueue_script( 'jquery-qtip-tooltip' , YIKES_MC_URL . 'admin/js/min/jquery.qtip.min.js' , array( 'jquery' ) );
|
2183 |
+
wp_enqueue_style( 'jquery-qtip-style' , YIKES_MC_URL . 'admin/css/jquery.qtip.min.css' );
|
2184 |
+
$available_tags = array(
|
2185 |
+
array(
|
2186 |
+
'tag' => '{page_title}',
|
2187 |
+
'description' => '<h4 class="tooltip-title">' . __( 'Page Title', 'yikes-inc-easy-mailchimp-extender' ) . ' | <small>{page_title}</small></h4><hr />' . __( 'Pre-populate the field with the current page or post title that the user is on when opting in to your mailing list.' , 'yikes-inc-easy-mailchimp-extender' ),
|
2188 |
+
'title' => __( 'Page Title', 'yikes-inc-easy-mailchimp-extender' )
|
2189 |
+
),
|
2190 |
+
array(
|
2191 |
+
'tag' => '{page_id}',
|
2192 |
+
'description' => '<h4 class="tooltip-title">' . __( 'Page ID', 'yikes-inc-easy-mailchimp-extender' ) . ' | <small>{page_id}</small></h4><hr />' . __( 'Pre-populate the field with the current page or post ID that the user is on when opting in to your mailing list.' , 'yikes-inc-easy-mailchimp-extender' ),
|
2193 |
+
'title' => __( 'Page ID', 'yikes-inc-easy-mailchimp-extender' )
|
2194 |
+
),
|
2195 |
+
array(
|
2196 |
+
'tag' => '{page_url}',
|
2197 |
+
'description' => '<h4 class="tooltip-title">' . __( 'Page URL', 'yikes-inc-easy-mailchimp-extender' ) . ' | <small>{page_url}</small></h4><hr />' . __( 'Pre-populate the field with the current page URL that the user is on when opting in to your mailing list.' , 'yikes-inc-easy-mailchimp-extender' ),
|
2198 |
+
'title' => __( 'Page URL', 'yikes-inc-easy-mailchimp-extender' )
|
2199 |
+
),
|
2200 |
+
array(
|
2201 |
+
'tag' => '{blog_name}',
|
2202 |
+
'description' => '<h4 class="tooltip-title">' . __( 'Blog Name', 'yikes-inc-easy-mailchimp-extender' ) . ' | <small>{blog_name}</small></h4><hr />' . __( 'Pre-populate the field with the current blog name that the user is on when opting in to your mailing list. This is especially helpful for multi-site networks.' , 'yikes-inc-easy-mailchimp-extender' ),
|
2203 |
+
'title' => __( 'Blog Name', 'yikes-inc-easy-mailchimp-extender' )
|
2204 |
+
),
|
2205 |
+
array(
|
2206 |
+
'tag' => '{user_logged_in}',
|
2207 |
+
'description' => '<h4 class="tooltip-title">' . __( 'User Logged In', 'yikes-inc-easy-mailchimp-extender' ) . ' | <small>{user_logged_in}</small></h4><hr />' . __( 'Detects if a user is logged in and pre-populates the field with an appropriate value.' , 'yikes-inc-easy-mailchimp-extender' ),
|
2208 |
+
'title' => __( 'User Logged In', 'yikes-inc-easy-mailchimp-extender' )
|
2209 |
+
),
|
2210 |
+
);
|
2211 |
+
?>
|
2212 |
+
<!-- tooltips -->
|
2213 |
+
<script type="text/javascript">
|
2214 |
+
/* Initialize Qtip tooltips for pre-defined tags */
|
2215 |
+
jQuery( document ).ready( function() {
|
2216 |
+
jQuery( '.dashicons-editor-help' ).each( function() {
|
2217 |
+
jQuery( this ).qtip({
|
2218 |
+
content: {
|
2219 |
+
text: jQuery( this ).next( '.tooltiptext' ),
|
2220 |
+
style: {
|
2221 |
+
def: false
|
2222 |
+
}
|
2223 |
+
}
|
2224 |
+
});
|
2225 |
+
});
|
2226 |
+
jQuery( '.qtip' ).each( function() {
|
2227 |
+
jQuery( this ).removeClass( 'qtip-default' );
|
2228 |
+
});
|
2229 |
+
});
|
2230 |
+
</script>
|
2231 |
+
|
2232 |
+
<div id="pre-defined-tag-container">
|
2233 |
+
<input type="hidden" value="" class="clicked-input">
|
2234 |
+
<div id="pre-defined-tag-interior-container">
|
2235 |
+
<h3><?php _e( 'Pre Defined Tags' , 'yikes-inc-easy-mailchimp-extender' ); ?></h3>
|
2236 |
+
<p class="description"><?php _e( 'You can use any of the following tags to populate a MailChimp text field with dynamic content. This can be used to determine which page the user signed up on, if the user was logged in and more.' , 'yikes-inc-easy-mailchimp-extender' ); ?></p>
|
2237 |
+
<ul>
|
2238 |
+
<?php foreach( apply_filters( 'yikes-mailchimp-custom-default-value-tags' , $available_tags ) as $tag ) { ?>
|
2239 |
+
<li class="tooltop-tag">
|
2240 |
+
<!-- link/tag -->
|
2241 |
+
<a href="#" onclick="populateDefaultValue( '<?php echo $tag['tag']; ?>' );return false;" data-attr-tag="<?php echo $tag['tag']; ?>" title="<?php echo $tag['title']; ?>"><?php echo $tag['title']; ?></a>
|
2242 |
+
<!-- help icon -->
|
2243 |
+
<span class="dashicons dashicons-editor-help"></span>
|
2244 |
+
<!-- tooltip -->
|
2245 |
+
<div class="tooltiptext qtip-bootstrap yikes-easy-mc-hidden"><?php echo $tag['description']; ?></div>
|
2246 |
+
</li>
|
2247 |
+
<?php } ?>
|
2248 |
+
</ul>
|
2249 |
+
</div>
|
2250 |
+
</div>
|
2251 |
+
<?php
|
2252 |
+
}
|
2253 |
+
|
2254 |
+
/*
|
2255 |
+
* build_available_merge_vars( $list_id )
|
2256 |
+
* Submit an API request to get our merge variables, and build up a small form editor
|
2257 |
+
* for users to 'customize' their form
|
2258 |
+
* -
|
2259 |
+
* @parameters - $list_id - pass in the list ID to retreive merge variables from
|
2260 |
+
*/
|
2261 |
+
public function build_available_merge_vars( $form_fields , $available_merge_variables ) {
|
2262 |
+
$fields_assigned_to_form = array();
|
2263 |
+
if( !empty( $form_fields ) ) {
|
2264 |
+
foreach( $form_fields as $assigned_field ) {
|
2265 |
+
// print_r( $assigned_field) ;
|
2266 |
+
// switch between merge variables and interest groups
|
2267 |
+
if( isset( $assigned_field['merge'] ) ) {
|
2268 |
+
$fields_assigned_to_form[] = $assigned_field['merge'];
|
2269 |
+
}
|
2270 |
+
}
|
2271 |
+
}
|
2272 |
+
if( !empty( $available_merge_variables['data'][0] ) ) {
|
2273 |
+
?><ul id="available-fields"><?php
|
2274 |
+
foreach( $available_merge_variables['data'][0]['merge_vars'] as $merge_var ) {
|
2275 |
+
if( in_array( $merge_var['tag'] , $fields_assigned_to_form ) ) {
|
2276 |
+
?>
|
2277 |
+
<li class="available-form-field not-available" alt="<?php echo $merge_var['tag']; ?>" data-attr-field-type="<?php echo $merge_var['field_type']; ?>" data-attr-field-name="<?php echo $merge_var['name']; ?>" data-attr-form-id="<?php echo $available_merge_variables['data'][0]['id']; ?>" title="<?php _e( 'Already assigned to your form' , 'yikes-inc-easy-mailchimp-extender' ); ?>" disabled="disabled"><?php echo stripslashes( $merge_var['name'] ); if( $merge_var['req'] == '1' ) { echo ' <span class="field-required" title="' . __( 'required field' , 'yikes-inc-easy-mailchimp-extender' ) . '">*</span>'; } ?> <small class="field-type-text"><?php echo $merge_var['field_type']; ?></small></li>
|
2278 |
+
<?php
|
2279 |
+
} else {
|
2280 |
+
?>
|
2281 |
+
<li class="available-form-field" alt="<?php echo $merge_var['tag']; ?>" data-attr-field-type="<?php echo $merge_var['field_type']; ?>" data-attr-field-name="<?php echo $merge_var['name']; ?>" data-attr-form-id="<?php echo $available_merge_variables['data'][0]['id']; ?>"><?php echo stripslashes( $merge_var['name'] ); if( $merge_var['req'] == '1' ) { echo ' <span class="field-required" title="' . __( 'required field' , 'yikes-inc-easy-mailchimp-extender' ) . '">*</span>'; } ?> <small class="field-type-text"><?php echo $merge_var['field_type']; ?></small></li>
|
2282 |
+
<?php
|
2283 |
+
}
|
2284 |
+
}
|
2285 |
+
?></ul>
|
2286 |
+
<a href="#" class="add-field-to-editor button-secondary yikes-easy-mc-hidden" style="display:none;"><small><span class="dashicons dashicons-arrow-left-alt add-to-form-builder-arrow"></span> <?php _e( 'Add to Form Builder' , 'yikes-inc-easy-mailchimp-extender' ); ?></small></a>
|
2287 |
+
<?php
|
2288 |
+
}
|
2289 |
+
}
|
2290 |
+
|
2291 |
+
/*
|
2292 |
+
* build_available_interest_groups( $form_fields , $available_interest_groups )
|
2293 |
+
* Submit an API request to get our merge variables, and build up a small form editor
|
2294 |
+
* for users to 'customize' their form
|
2295 |
+
* -
|
2296 |
+
* @parameters - $list_id - pass in the list ID to retreive merge variables from
|
2297 |
+
*/
|
2298 |
+
public function build_available_interest_groups( $form_fields , $available_interest_groups , $list_id ) {
|
2299 |
+
$fields_assigned_to_form = array();
|
2300 |
+
if( !empty( $form_fields ) ) {
|
2301 |
+
foreach( $form_fields as $assigned_interest_group ) {
|
2302 |
+
if( isset( $assigned_interest_group['group_id'] ) ) {
|
2303 |
+
$fields_assigned_to_form[] = $assigned_interest_group['group_id'];
|
2304 |
+
}
|
2305 |
+
}
|
2306 |
+
}
|
2307 |
+
if( !empty( $available_interest_groups) ) {
|
2308 |
+
?><ul id="available-interest-groups"><?php
|
2309 |
+
foreach( $available_interest_groups as $interest_group ) {
|
2310 |
+
if( in_array( $interest_group['id'] , $fields_assigned_to_form ) ) {
|
2311 |
+
?>
|
2312 |
+
<li class="available-interest-group not-available" alt="<?php echo $interest_group['id']; ?>" data-attr-field-name="<?php echo stripslashes( $interest_group['name'] ); ?>" data-attr-field-type="<?php echo $interest_group['form_field']; ?>" data-attr-form-id="<?php echo $list_id; ?>" title="<?php _e( 'Already assigned to your form' , 'yikes-inc-easy-mailchimp-extender' ); ?>" disabled="disabled"><?php echo stripslashes( $interest_group['name'] ); ?> <small class="field-type-text"><?php echo $interest_group['form_field']; ?></small></li>
|
2313 |
+
<?php
|
2314 |
+
} else {
|
2315 |
+
?>
|
2316 |
+
<li class="available-interest-group" alt="<?php echo $interest_group['id']; ?>" data-attr-field-name="<?php echo stripslashes( $interest_group['name'] ); ?>" data-attr-field-type="<?php echo $interest_group['form_field']; ?>" data-attr-form-id="<?php echo $list_id; ?>"><?php echo stripslashes( $interest_group['name'] ); ?> <small class="field-type-text"><?php echo $interest_group['form_field']; ?></small></li>
|
2317 |
+
<?php
|
2318 |
+
}
|
2319 |
+
}
|
2320 |
+
?></ul>
|
2321 |
+
<a href="#" class="add-interest-group-to-editor button-secondary yikes-easy-mc-hidden" style="display:none;"><small><span class="dashicons dashicons-arrow-left-alt add-to-form-builder-arrow"></span> <?php _e( 'Add to Form Builder' , 'yikes-inc-easy-mailchimp-extender' ); ?></small></a>
|
2322 |
+
<?php
|
2323 |
+
}
|
2324 |
+
}
|
2325 |
+
|
2326 |
+
/*
|
2327 |
+
* Create A New Form!
|
2328 |
+
* Probably Move these to its own file,
|
2329 |
+
* and include it here for easy maintenance
|
2330 |
+
* - must clean up db tables , ensure what data is going in and what is needed...
|
2331 |
+
*/
|
2332 |
+
public function yikes_easy_mailchimp_create_form() {
|
2333 |
+
$nonce = $_REQUEST['nonce'];
|
2334 |
+
if( ! wp_verify_nonce( $nonce, 'create_mailchimp_form' ) ) {
|
2335 |
+
die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) );
|
2336 |
+
}
|
2337 |
+
global $wpdb;
|
2338 |
+
/* Default values */
|
2339 |
+
// setup our default submission settings serialized array
|
2340 |
+
$submission_settings = json_encode(
|
2341 |
+
array(
|
2342 |
+
'ajax' => 1,
|
2343 |
+
'redirect_on_submission' => 0,
|
2344 |
+
'redirect_page' => 1,
|
2345 |
+
'hide_form_post_signup' => 0
|
2346 |
+
)
|
2347 |
+
);
|
2348 |
+
// setup our default opt-in settings serialized array
|
2349 |
+
$optin_settings = json_encode(
|
2350 |
+
array(
|
2351 |
+
'optin' => 1,
|
2352 |
+
'update_existing_user' => 1,
|
2353 |
+
'send_welcome_email' => 1,
|
2354 |
+
)
|
2355 |
+
);
|
2356 |
+
// setup our default error message array
|
2357 |
+
$error_settings= json_encode(
|
2358 |
+
array(
|
2359 |
+
'success' => '',
|
2360 |
+
'general-error' => '',
|
2361 |
+
'invalid-email' => '',
|
2362 |
+
'email-already-subscribed' => ''
|
2363 |
+
)
|
2364 |
+
);
|
2365 |
+
/* End default values */
|
2366 |
+
/* Working Insert Function */
|
2367 |
+
$wpdb->insert(
|
2368 |
+
$wpdb->prefix . 'yikes_easy_mc_forms',
|
2369 |
+
array(
|
2370 |
+
'list_id' => $_POST['associated-list'],
|
2371 |
+
'form_name' => stripslashes( $_POST['form-name'] ),
|
2372 |
+
'form_description' => stripslashes( $_POST['form-description'] ),
|
2373 |
+
'fields' => '',
|
2374 |
+
'custom_styles' => 0,
|
2375 |
+
'custom_template' => 0,
|
2376 |
+
'send_welcome_email' => 1,
|
2377 |
+
'redirect_user_on_submit' => 0,
|
2378 |
+
'redirect_page' => '',
|
2379 |
+
'submission_settings' => $submission_settings,
|
2380 |
+
'optin_settings' => $optin_settings,
|
2381 |
+
'error_messages' => $error_settings,
|
2382 |
+
'custom_notifications' => '',
|
2383 |
+
'impressions' => 0,
|
2384 |
+
'submissions' => 0,
|
2385 |
+
'custom_fields' => '',
|
2386 |
+
),
|
2387 |
+
array(
|
2388 |
+
'%s', // list id
|
2389 |
+
'%s', // form name
|
2390 |
+
'%s', // form description
|
2391 |
+
'%s', // fields
|
2392 |
+
'%s', // custom styles
|
2393 |
+
'%d', // custom template
|
2394 |
+
'%d', // send welcome email
|
2395 |
+
'%s', // redirect user
|
2396 |
+
'%s', // redirect page
|
2397 |
+
'%s', // submission
|
2398 |
+
'%s', // optin
|
2399 |
+
'%s', // error
|
2400 |
+
'%s', // custom notifications
|
2401 |
+
'%d', // impressions #
|
2402 |
+
'%d', // submissions #
|
2403 |
+
'%s', // custom fields
|
2404 |
+
)
|
2405 |
+
);
|
2406 |
+
|
2407 |
+
// if an error occurs during the form creation process
|
2408 |
+
if( $wpdb->insert_id == '0' ) {
|
2409 |
+
// write it to the error log
|
2410 |
+
// if the form was not created successfully
|
2411 |
+
if( get_option( 'yikes-mailchimp-debug-status' , '' ) == '1' ) {
|
2412 |
+
require_once YIKES_MC_PATH . 'includes/error_log/class-yikes-inc-easy-mailchimp-error-logging.php';
|
2413 |
+
$error_logging = new Yikes_Inc_Easy_Mailchimp_Error_Logging();
|
2414 |
+
$error_logging->yikes_easy_mailchimp_write_to_error_log( $wpdb->last_error , __( "Creating a new form" , 'yikes-inc-easy-mailchimp-extender' ) , __( "Forms" , 'yikes-inc-easy-mailchimp-extender' ) );
|
2415 |
+
}
|
2416 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-mailchimp-edit-form&sql_error='.urlencode( $wpdb->last_error ) ) ) );
|
2417 |
+
} else {
|
2418 |
+
// redirect the user to the new form edit page
|
2419 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-mailchimp-edit-form&id='.$wpdb->insert_id ) ) );
|
2420 |
+
}
|
2421 |
+
exit();
|
2422 |
+
die();
|
2423 |
+
}
|
2424 |
+
|
2425 |
+
/*
|
2426 |
+
* Delete A Form !
|
2427 |
+
* Probably Move these to its own file,
|
2428 |
+
* and include it here for easy maintenance
|
2429 |
+
* - must clean up db tables , ensure what data is going in and what is needed...
|
2430 |
+
*/
|
2431 |
+
public function yikes_easy_mailchimp_delete_form() {
|
2432 |
+
// grab & store our variables ( associated list & form name )
|
2433 |
+
$nonce = $_REQUEST['nonce'];
|
2434 |
+
$post_id_to_delete = $_REQUEST['mailchimp-form'];
|
2435 |
+
// verify our nonce
|
2436 |
+
if( ! wp_verify_nonce( $nonce, 'delete-mailchimp-form-'.$post_id_to_delete ) ) {
|
2437 |
+
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
2438 |
+
}
|
2439 |
+
global $wpdb;
|
2440 |
+
/* Working Insert Function */
|
2441 |
+
$wpdb->delete(
|
2442 |
+
$wpdb->prefix . 'yikes_easy_mc_forms',
|
2443 |
+
array(
|
2444 |
+
'id' => $post_id_to_delete
|
2445 |
+
),
|
2446 |
+
array(
|
2447 |
+
'%d',
|
2448 |
+
)
|
2449 |
+
);
|
2450 |
+
// redirect the user to the manage forms page, display confirmation
|
2451 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp&deleted-form=true' ) ) );
|
2452 |
+
exit();
|
2453 |
+
die();
|
2454 |
+
}
|
2455 |
+
|
2456 |
+
/*
|
2457 |
+
* Duplicate an entire form !
|
2458 |
+
* Probably Move these to its own file,
|
2459 |
+
*/
|
2460 |
+
public function yikes_easy_mailchimp_duplicate_form() {
|
2461 |
+
// grab & store our variables ( associated list & form name )
|
2462 |
+
$nonce = $_REQUEST['nonce'];
|
2463 |
+
$post_id_to_clone = $_REQUEST['mailchimp-form'];
|
2464 |
+
// verify our nonce
|
2465 |
+
if( ! wp_verify_nonce( $nonce, 'duplicate-mailchimp-form-'.$post_id_to_clone ) ) {
|
2466 |
+
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
2467 |
+
}
|
2468 |
+
global $wpdb;
|
2469 |
+
/* Working Insert Function */
|
2470 |
+
$form_data = $wpdb->get_row("SELECT * FROM " . $wpdb->prefix . "yikes_easy_mc_forms WHERE id = ".$post_id_to_clone."");
|
2471 |
+
// create empty array to populate with row data
|
2472 |
+
$data = array();
|
2473 |
+
// build a data array to duplicate
|
2474 |
+
foreach( $form_data as $id => $value ) {
|
2475 |
+
// skip the ID field this is unique
|
2476 |
+
if( $id != 'id' ) {
|
2477 |
+
// append -Copy- to our new form
|
2478 |
+
if( $id == 'form_name' ) {
|
2479 |
+
$value = $value . ' - Copy -';
|
2480 |
+
}
|
2481 |
+
// reset the impressions and submissions back to 0
|
2482 |
+
if( $id == 'impressions' || $id == 'submissions' ) {
|
2483 |
+
$value = '0';
|
2484 |
+
}
|
2485 |
+
|
2486 |
+
// add data to our array
|
2487 |
+
$data[$id] = $value;
|
2488 |
+
}
|
2489 |
+
}
|
2490 |
+
// insert our new data
|
2491 |
+
if( $wpdb->insert(
|
2492 |
+
$wpdb->prefix . 'yikes_easy_mc_forms',
|
2493 |
+
apply_filters( 'yikes-mailchimp-duplicate-form-data', $data )
|
2494 |
+
) === FALSE ) {
|
2495 |
+
// redirect the user to the manage forms page, display error
|
2496 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp&duplicated-form=false' ) ) );
|
2497 |
+
} else {
|
2498 |
+
// redirect the user to the manage forms page, display confirmation
|
2499 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp&duplicated-form=true' ) ) );
|
2500 |
+
}
|
2501 |
+
exit();
|
2502 |
+
die();
|
2503 |
+
}
|
2504 |
+
|
2505 |
+
/*
|
2506 |
+
* Reset a forms impression stats
|
2507 |
+
*/
|
2508 |
+
public function yikes_easy_mailchimp_reset_impression_stats() {
|
2509 |
+
// grab & store our variables ( associated list & form name )
|
2510 |
+
$nonce = $_REQUEST['nonce'];
|
2511 |
+
$form_id_to_reset = $_REQUEST['mailchimp-form'];
|
2512 |
+
// verify our nonce
|
2513 |
+
if( ! wp_verify_nonce( $nonce, 'reset-stats-mailchimp-form-'.$form_id_to_reset ) ) {
|
2514 |
+
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
2515 |
+
}
|
2516 |
+
global $wpdb;
|
2517 |
+
/* Update 'Impressions/Submissions' */
|
2518 |
+
if( $wpdb->update(
|
2519 |
+
$wpdb->prefix . 'yikes_easy_mc_forms',
|
2520 |
+
array(
|
2521 |
+
'impressions' => 0,
|
2522 |
+
'submissions' => 0
|
2523 |
+
),
|
2524 |
+
array( 'ID' => $form_id_to_reset )
|
2525 |
+
) === FALSE ) {
|
2526 |
+
// redirect the user to the manage forms page, display error
|
2527 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp&reset-stats=false' ) ) );
|
2528 |
+
} else {
|
2529 |
+
// redirect the user to the manage forms page, display confirmation
|
2530 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp&reset-stats=true' ) ) );
|
2531 |
+
}
|
2532 |
+
exit();
|
2533 |
+
die();
|
2534 |
+
}
|
2535 |
+
|
2536 |
+
/*
|
2537 |
+
* Update an entire form !
|
2538 |
+
* Probably Move these to its own file,
|
2539 |
+
*/
|
2540 |
+
public function yikes_easy_mailchimp_update_form() {
|
2541 |
+
// grab & store our variables ( associated list & form name )
|
2542 |
+
$nonce = $_REQUEST['nonce'];
|
2543 |
+
$form_id = $_REQUEST['id'];
|
2544 |
+
|
2545 |
+
// store our values!
|
2546 |
+
$list_id = $_POST['associated-list'];
|
2547 |
+
$form_name = stripslashes( $_POST['form-name'] );
|
2548 |
+
$form_description = sanitize_text_field( stripslashes( $_POST['form-description'] ) );
|
2549 |
+
$send_welcome_email = $_POST['send-welcome-email'];
|
2550 |
+
$redirect_user_on_submit = $_POST['redirect-user-on-submission'];
|
2551 |
+
$redirect_page = $_POST['redirect-user-to-selection'];
|
2552 |
+
if( isset( $_POST['custom-styles'] ) ) {
|
2553 |
+
$custom_styles = $_POST['custom-styles'];
|
2554 |
+
}
|
2555 |
+
|
2556 |
+
// stripslashes_deep on save, to prevent foreign languages from added excessive backslashes
|
2557 |
+
$assigned_fields = isset( $_POST['field'] ) ? json_encode( stripslashes_deep( $_POST['field'] ) ) : '';
|
2558 |
+
|
2559 |
+
// setup our custom styles serialized array
|
2560 |
+
if( isset( $custom_styles ) ) {
|
2561 |
+
$custom_styles = json_encode( array(
|
2562 |
+
'active' => $_POST['custom-styles'],
|
2563 |
+
'background_color' => $_POST['form-background-color'],
|
2564 |
+
'font_color' => $_POST['form-font-color'],
|
2565 |
+
'submit_button_color' => $_POST['form-submit-button-color'],
|
2566 |
+
'submit_button_text_color' => $_POST['form-submit-button-text-color'],
|
2567 |
+
'form_padding' => $_POST['form-padding'],
|
2568 |
+
'form_width' => $_POST['form-width'],
|
2569 |
+
'form_alignment' => $_POST['form-alignment'],
|
2570 |
+
'label_visible' => $_POST['label-visible']
|
2571 |
+
) );
|
2572 |
+
} else {
|
2573 |
+
$custom_styles = 0;
|
2574 |
+
}
|
2575 |
+
|
2576 |
+
// setup our submission settings serialized array
|
2577 |
+
$submission_settings = json_encode(
|
2578 |
+
array(
|
2579 |
+
'ajax' => $_POST['form-ajax-submission'],
|
2580 |
+
'redirect_on_submission' => $_POST['redirect-user-on-submission'],
|
2581 |
+
'redirect_page' => $_POST['redirect-user-to-selection'],
|
2582 |
+
'custom_redirect_url' => esc_url( $_POST['custom-redirect-url'] ),
|
2583 |
+
'hide_form_post_signup' => $_POST['hide-form-post-signup'],
|
2584 |
+
'replace_interests' => $_POST['replace-interest-groups'],
|
2585 |
+
)
|
2586 |
+
);
|
2587 |
+
|
2588 |
+
// setup our opt-in settings serialized array
|
2589 |
+
$optin_settings = json_encode(
|
2590 |
+
array(
|
2591 |
+
'optin' => $_POST['single-double-optin'],
|
2592 |
+
'update_existing_user' => $_POST['update-existing-user'],
|
2593 |
+
'send_welcome_email' => $_POST['send-welcome-email'],
|
2594 |
+
)
|
2595 |
+
);
|
2596 |
+
|
2597 |
+
// setup our error settings serialized array
|
2598 |
+
$error_settings = json_encode(
|
2599 |
+
array(
|
2600 |
+
'success' => trim( $_POST['yikes-easy-mc-success-message'] ) ? trim( stripslashes( $_POST['yikes-easy-mc-success-message'] ) ) : '',
|
2601 |
+
'general-error' => trim( $_POST['yikes-easy-mc-general-error-message'] ) ? trim( stripslashes( $_POST['yikes-easy-mc-general-error-message'] ) ) : '',
|
2602 |
+
'invalid-email' => trim( $_POST['yikes-easy-mc-invalid-email-message'] ) ? trim( stripslashes( $_POST['yikes-easy-mc-invalid-email-message'] ) ) : '',
|
2603 |
+
'already-subscribed' => trim( $_POST['yikes-easy-mc-user-subscribed-message'] ) ? trim( stripslashes( $_POST['yikes-easy-mc-user-subscribed-message'] ) ) : '',
|
2604 |
+
)
|
2605 |
+
);
|
2606 |
+
|
2607 |
+
// Setup the new form settings array
|
2608 |
+
// @since 6.0.3.8
|
2609 |
+
// To Do: Combine date & time so it's a single unix timestamp
|
2610 |
+
$form_settings = json_encode(
|
2611 |
+
array(
|
2612 |
+
'yikes-easy-mc-form-class-names' => trim( $_POST['yikes-easy-mc-form-class-names'] ),
|
2613 |
+
'yikes-easy-mc-inline-form' => $_POST['yikes-easy-mc-inline-form'][0],
|
2614 |
+
'yikes-easy-mc-submit-button-type' => $_POST['yikes-easy-mc-submit-button-type'][0],
|
2615 |
+
'yikes-easy-mc-submit-button-text' => trim( $_POST['yikes-easy-mc-submit-button-text'] ),
|
2616 |
+
'yikes-easy-mc-submit-button-image' => esc_url( trim( $_POST['yikes-easy-mc-submit-button-image'] ) ),
|
2617 |
+
'yikes-easy-mc-submit-button-classes' => trim( $_POST['yikes-easy-mc-submit-button-classes'] ),
|
2618 |
+
'yikes-easy-mc-form-schedule' => ( isset( $_POST['yikes-easy-mc-form-schedule'] ) ) ? '1' : '0',
|
2619 |
+
'yikes-easy-mc-form-restriction-start' => strtotime( $_POST['yikes-easy-mc-form-restriction-start-date'] . ' ' . $_POST['yikes-easy-mc-form-restriction-start-time'] ),
|
2620 |
+
'yikes-easy-mc-form-restriction-end' => strtotime( $_POST['yikes-easy-mc-form-restriction-end-date'] . ' ' . $_POST['yikes-easy-mc-form-restriction-end-time'] ),
|
2621 |
+
'yikes-easy-mc-form-restriction-pending-message' => trim( $_POST['yikes-easy-mc-form-restriction-pending-message'] ),
|
2622 |
+
'yikes-easy-mc-form-restriction-expired-message' => trim( $_POST['yikes-easy-mc-form-restriction-expired-message'] ),
|
2623 |
+
'yikes-easy-mc-form-login-required' => ( isset( $_POST['yikes-easy-mc-form-login-required'] ) ) ? '1' : '0',
|
2624 |
+
'yikes-easy-mc-form-restriction-login-message' => trim( $_POST['yikes-easy-mc-form-restriction-login-message'] ),
|
2625 |
+
)
|
2626 |
+
);
|
2627 |
+
|
2628 |
+
// setup and store our notification array
|
2629 |
+
$custom_notifications = isset( $_POST['custom-notification'] ) ? stripslashes( json_encode( $_POST['custom-notification'] ) ) : '';
|
2630 |
+
|
2631 |
+
// additional custom fields (extensions / user defined fields)
|
2632 |
+
if( isset( $_POST['custom-field'] ) ) {
|
2633 |
+
$custom_field_array = array();
|
2634 |
+
foreach( $_POST['custom-field'] as $custom_field => $custom_value ) {
|
2635 |
+
if( is_array( $custom_value ) ) {
|
2636 |
+
$custom_field_array[$custom_field] = array_filter( stripslashes_deep( $custom_value ) ); // array_filters to remove empty items (don't save them!)
|
2637 |
+
} else {
|
2638 |
+
$custom_field_array[$custom_field] = stripslashes( $custom_value );
|
2639 |
+
}
|
2640 |
+
}
|
2641 |
+
$custom_fields = json_encode( $custom_field_array );
|
2642 |
+
} else {
|
2643 |
+
$custom_fields = '';
|
2644 |
+
}
|
2645 |
+
|
2646 |
+
// verify our nonce
|
2647 |
+
if( ! wp_verify_nonce( $nonce, 'update-mailchimp-form-'.$form_id ) ) {
|
2648 |
+
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
2649 |
+
}
|
2650 |
+
|
2651 |
+
global $wpdb;
|
2652 |
+
/* Working Insert Function */
|
2653 |
+
// $form_data = $wpdb->get_row("SELECT * FROM " . $wpdb->prefix . "yikes_easy_mc_forms WHERE id = ".$form_id."");
|
2654 |
+
$wpdb->update(
|
2655 |
+
$wpdb->prefix . 'yikes_easy_mc_forms',
|
2656 |
+
array(
|
2657 |
+
'list_id' => $list_id,
|
2658 |
+
'form_name' => $form_name,
|
2659 |
+
'form_description' => $form_description,
|
2660 |
+
'fields' => $assigned_fields,
|
2661 |
+
'custom_styles' => $custom_styles,
|
2662 |
+
'custom_template' => 0,
|
2663 |
+
'send_welcome_email' => $send_welcome_email,
|
2664 |
+
'redirect_user_on_submit' => $redirect_user_on_submit,
|
2665 |
+
'redirect_page' => $redirect_page,
|
2666 |
+
'submission_settings' => $submission_settings,
|
2667 |
+
'optin_settings' => $optin_settings,
|
2668 |
+
'error_messages' => $error_settings,
|
2669 |
+
'form_settings' => $form_settings,
|
2670 |
+
'custom_notifications' => $custom_notifications,
|
2671 |
+
'custom_fields' => $custom_fields,
|
2672 |
+
),
|
2673 |
+
array( 'ID' => $form_id ),
|
2674 |
+
array(
|
2675 |
+
'%s', // list id
|
2676 |
+
'%s', // form name
|
2677 |
+
'%s', // form description
|
2678 |
+
'%s', // fields
|
2679 |
+
'%s', // custom styles
|
2680 |
+
'%d', //custom template
|
2681 |
+
'%d', // send welcome email
|
2682 |
+
'%s', // redirect user
|
2683 |
+
'%s', // redirect page
|
2684 |
+
'%s', // submission
|
2685 |
+
'%s', // opt-in
|
2686 |
+
'%s', // error
|
2687 |
+
'%s', // custom notifications
|
2688 |
+
'%s', // custom fields
|
2689 |
+
),
|
2690 |
+
array( '%d' )
|
2691 |
+
);
|
2692 |
+
|
2693 |
+
/* Custom action hook which allows users to update specific options when a form is updated - used in add ons */
|
2694 |
+
do_action( 'yikes-mailchimp-save-form', $form_id, json_decode( $custom_fields, true ) );
|
2695 |
+
|
2696 |
+
// redirect the user to the manage forms page, display confirmation
|
2697 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-mailchimp-edit-form&id=' . $form_id . '&updated-form=true' ) ) );
|
2698 |
+
exit();
|
2699 |
+
die();
|
2700 |
+
}
|
2701 |
+
|
2702 |
+
/* Unsubscribe a given user from our list */
|
2703 |
+
public function yikes_easy_mailchimp_unsubscribe_user() {
|
2704 |
+
$nonce = $_REQUEST['nonce'];
|
2705 |
+
$list_id = $_REQUEST['mailchimp-list'];
|
2706 |
+
$email_id = $_REQUEST['email_id'];
|
2707 |
+
// verify our nonce
|
2708 |
+
if( ! wp_verify_nonce( $nonce, 'unsubscribe-user-' . $email_id ) ) {
|
2709 |
+
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
2710 |
+
}
|
2711 |
+
// only re-run the API request if our API key has changed
|
2712 |
+
// initialize MailChimp Class
|
2713 |
+
$api_key = trim( get_option( 'yikes-mc-api-key' , '' ) );
|
2714 |
+
$dash_position = strpos( $api_key, '-' );
|
2715 |
+
if( $dash_position !== false ) {
|
2716 |
+
$api_endpoint = 'https://' . substr( $api_key, $dash_position + 1 ) . '.api.mailchimp.com/2.0/lists/unsubscribe.json';
|
2717 |
+
}
|
2718 |
+
$response = wp_remote_post( $api_endpoint, array(
|
2719 |
+
'body' => array(
|
2720 |
+
'apikey' => $api_key,
|
2721 |
+
'id' => $list_id,
|
2722 |
+
'email' => array( 'leid' => $email_id ),
|
2723 |
+
'send_goodbye' => false,
|
2724 |
+
'send_notify' => false
|
2725 |
+
),
|
2726 |
+
'timeout' => 10,
|
2727 |
+
'sslverify' => apply_filters( 'yikes-mailchimp-sslverify', true )
|
2728 |
+
) );
|
2729 |
+
if( ! is_wp_error( $response ) ) {
|
2730 |
+
$response_body = json_decode( wp_remote_retrieve_body( $response ), true );
|
2731 |
+
if( isset( $response_body['error'] ) ) {
|
2732 |
+
if( WP_DEBUG || get_option( 'yikes-mailchimp-debug-status' , '' ) == '1' ) {
|
2733 |
+
require_once YIKES_MC_PATH . 'includes/error_log/class-yikes-inc-easy-mailchimp-error-logging.php';
|
2734 |
+
$error_logging = new Yikes_Inc_Easy_Mailchimp_Error_Logging();
|
2735 |
+
$error_logging->yikes_easy_mailchimp_write_to_error_log( $response_body['error'], __( "Unsubscribe User" , 'yikes-inc-easy-mailchimp-extender' ) , __( "Manage List Page" , 'yikes-inc-easy-mailchimp-extender' ) );
|
2736 |
+
}
|
2737 |
+
}
|
2738 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-mailchimp-view-list&list-id=' . $list_id . '&user-unsubscribed=true' ) ) );
|
2739 |
+
exit;
|
2740 |
+
}
|
2741 |
+
|
2742 |
+
}
|
2743 |
+
|
2744 |
+
public function yikes_easy_mailchimp_create_missing_error_log() {
|
2745 |
+
// grab our nonnce
|
2746 |
+
$nonce = $_REQUEST['nonce'];
|
2747 |
+
// validate nonce
|
2748 |
+
if( !wp_verify_nonce( $nonce, 'create_error_log' ) ) {
|
2749 |
+
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
2750 |
+
}
|
2751 |
+
// setup the path to the error log
|
2752 |
+
$error_log = fopen( plugin_dir_path( __FILE__ ) . '../includes/error_log/yikes-easy-mailchimp-error-log.php' , 'w' );
|
2753 |
+
try {
|
2754 |
+
// create the file
|
2755 |
+
fwrite( $error_log , '' );
|
2756 |
+
// close out
|
2757 |
+
fclose( $error_log );
|
2758 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=debug-settings&error_log_created=true' ) ) );
|
2759 |
+
} catch ( Exception $e ) {
|
2760 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=debug-settings&error_log_created=false&error_message='.urlencode( $e->getMessage() ) ) ) );
|
2761 |
+
}
|
2762 |
+
}
|
2763 |
+
|
2764 |
+
/*
|
2765 |
+
* Clear Transient Data !
|
2766 |
+
* Probably Move these to its own file,
|
2767 |
+
*/
|
2768 |
+
public function yikes_easy_mailchimp_clear_transient_data() {
|
2769 |
+
// grab & store our variables ( associated list & form name )
|
2770 |
+
$nonce = $_REQUEST['nonce'];
|
2771 |
+
// verify our nonce
|
2772 |
+
if( ! wp_verify_nonce( $nonce, 'clear-mc-transient-data' ) ) {
|
2773 |
+
wp_die( __( "We've run into an error. The security check didn't pass. Please try again." , 'yikes-inc-easy-mailchimp-extender' ) , __( "Failed nonce validation" , 'yikes-inc-easy-mailchimp-extender' ) , array( 'response' => 500 , 'back_link' => true ) );
|
2774 |
+
}
|
2775 |
+
// delete all of the integration settings list data in the cache
|
2776 |
+
$list_ids = $this->get_mailchimp_list_ids_on_account();
|
2777 |
+
// confirm the list IDs was returned and is not empty
|
2778 |
+
if( isset( $list_ids ) && ! empty( $list_ids ) ) {
|
2779 |
+
foreach( $list_ids as $id ) {
|
2780 |
+
// loop over each interest group and delete the transient associated with it
|
2781 |
+
// this is created & stored on the integration list page
|
2782 |
+
// id = groupID_interest_group
|
2783 |
+
delete_transient( $id . '_interest_group' );
|
2784 |
+
}
|
2785 |
+
}
|
2786 |
+
// Delete list data transient
|
2787 |
+
delete_transient( 'yikes-easy-mailchimp-list-data' );
|
2788 |
+
// Delete list account data
|
2789 |
+
delete_transient( 'yikes-easy-mailchimp-account-data' );
|
2790 |
+
// Delete list account data
|
2791 |
+
delete_transient( 'yikes-easy-mailchimp-profile-data' );
|
2792 |
+
// redirect the user to the manage forms page, display confirmation
|
2793 |
+
wp_redirect( esc_url_raw( admin_url( 'admin.php?page=yikes-inc-easy-mailchimp-settings§ion=api-cache-settings&transient-cleared=true' ) ) );
|
2794 |
+
exit;
|
2795 |
+
}
|
2796 |
+
|
2797 |
+
/**
|
2798 |
+
* Return an array of MailChimp lists associated with this account
|
2799 |
+
*
|
2800 |
+
* Used when deleting the sites MailChimp cache stored
|
2801 |
+
* @since 6.0.2
|
2802 |
+
* @return $list_id_array - array of list id's to loop over
|
2803 |
+
*/
|
2804 |
+
public function get_mailchimp_list_ids_on_account() {
|
2805 |
+
$api_key = trim( get_option( 'yikes-mc-api-key' , '' ) );
|
2806 |
+
if( ! $api_key ) {
|
2807 |
+
// if no api key is set/site is not connected, return an empty array
|
2808 |
+
return array();
|
2809 |
+
}
|
2810 |
+
$dash_position = strpos( $api_key, '-' );
|
2811 |
+
if( $dash_position !== false ) {
|
2812 |
+
$api_endpoint = 'https://' . substr( $api_key, $dash_position + 1 ) . '.api.mailchimp.com/2.0/lists/list.json';
|
2813 |
+
}
|
2814 |
+
$mailchimp_lists = wp_remote_post( $api_endpoint, array(
|
2815 |
+
'body' => array(
|
2816 |
+
'apikey' => $api_key,
|
2817 |
+
'limit' => 100
|
2818 |
+
),
|
2819 |
+
'timeout' => 10,
|
2820 |
+
'sslverify' => apply_filters( 'yikes-mailchimp-sslverify', true )
|
2821 |
+
) );
|
2822 |
+
if( ! is_wp_error( $mailchimp_lists ) ) {
|
2823 |
+
$list_data = json_decode( wp_remote_retrieve_body( $mailchimp_lists ), true );
|
2824 |
+
if( isset( $list_data['error'] ) ) {
|
2825 |
+
if( WP_DEBUG || get_option( 'yikes-mailchimp-debug-status' , '' ) == '1' ) {
|
2826 |
+
require_once YIKES_MC_PATH . 'includes/error_log/class-yikes-inc-easy-mailchimp-error-logging.php';
|
2827 |
+
$error_logging = new Yikes_Inc_Easy_Mailchimp_Error_Logging();
|
2828 |
+
$error_logging->yikes_easy_mailchimp_write_to_error_log( $list_data['error'], __( "Get List IDs" , 'yikes-inc-easy-mailchimp-extender' ) , __( "Clear API Cache" , 'yikes-inc-easy-mailchimp-extender' ) );
|
2829 |
+
}
|
2830 |
+
}
|
2831 |
+
$mail_chimp_list_ids = array();
|
2832 |
+
if( $mailchimp_lists ) {
|
2833 |
+
foreach( $list_data as $list ) {
|
2834 |
+
$mail_chimp_list_ids[] = $list['id'];
|
2835 |
+
}
|
2836 |
+
return $mail_chimp_list_ids;
|
2837 |
+
} else {
|
2838 |
+
return array();
|
2839 |
+
}
|
2840 |
+
}
|
2841 |
+
return;
|
2842 |
+
}
|
2843 |
+
|
2844 |
+
/*
|
2845 |
+
* Include our main Helper class file
|
2846 |
+
* @since 6.0
|
2847 |
+
*/
|
2848 |
+
public function yikes_mailchimp_load_helper_class() {
|
2849 |
+
// check to see if it's already loaded up
|
2850 |
+
if( !class_exists( 'Yikes_Inc_Easy_Mailchimp_Forms_Helper' ) ) {
|
2851 |
+
// Include our main helper class file
|
2852 |
+
include_once( YIKES_MC_PATH . 'admin/partials/helpers/init.php' );
|
2853 |
+
}
|
2854 |
+
}
|
2855 |
+
|
2856 |
+
/*
|
2857 |
+
* Alter the color scheme based on the current user selection (this is done to help integrate the plugin into the dashboard more seamlessly)
|
2858 |
+
*
|
2859 |
+
* @since 0.1
|
2860 |
+
* @order requires that yikes-inc-easy-mailchimp-extender-admin.min.css be enqueued, so we can override the defaults (handle: yikes-inc-easy-mailchimp-extender-admin)
|
2861 |
+
* @retutrn print out custom styles to the admin header to alter the defualt blue color
|
2862 |
+
*/
|
2863 |
+
public function alter_yikes_easy_mc_color_scheme() {
|
2864 |
+
// get the current set color scheme for the logged in user
|
2865 |
+
$current_color_scheme = get_user_option( 'admin_color' );
|
2866 |
+
// switch over each color scheme, and set our variable
|
2867 |
+
switch( $current_color_scheme ) {
|
2868 |
+
default:
|
2869 |
+
case 'fresh': // default blue (defined by this plugin)
|
2870 |
+
$main_color = '#00a0d2';
|
2871 |
+
break;
|
2872 |
+
case 'light': // light grey
|
2873 |
+
$main_color = '#E5E5E5';
|
2874 |
+
break;
|
2875 |
+
case 'blue': // light blue
|
2876 |
+
$main_color = '#52ACCC';
|
2877 |
+
break;
|
2878 |
+
case 'coffee': // light brown-ish
|
2879 |
+
$main_color = '#59524C';
|
2880 |
+
break;
|
2881 |
+
case 'ectoplasm': // purple
|
2882 |
+
$main_color = '#523F6D';
|
2883 |
+
break;
|
2884 |
+
case 'midnight': // black
|
2885 |
+
$main_color = '#363B3F';
|
2886 |
+
break;
|
2887 |
+
case 'ocean': // green/teal-ish
|
2888 |
+
$main_color = '#738E96';
|
2889 |
+
break;
|
2890 |
+
case 'sunrish': // red/orange
|
2891 |
+
$main_color = '#CF4944';
|
2892 |
+
break;
|
2893 |
+
}
|
2894 |
+
ob_start();
|
2895 |
+
?>
|
2896 |
+
<style>
|
2897 |
+
.yikes-easy-mc-postbox h3,
|
2898 |
+
.column-columnname .form-id-container,
|
2899 |
+
.mv_ig_list .nav-tab-active {
|
2900 |
+
background: <?php echo $main_color; ?>;
|
2901 |
+
}
|
2902 |
+
.mv_ig_list .arrow-down {
|
2903 |
+
border-top: 9pt solid <?php echo $main_color; ?>;
|
2904 |
+
}
|
2905 |
+
</style>
|
2906 |
+
<?php
|
2907 |
+
$override_admin_styles = ob_get_clean();
|
2908 |
+
// add our inline styles
|
2909 |
+
echo $override_admin_styles;
|
2910 |
+
}
|
2911 |
+
|
2912 |
+
/**
|
2913 |
+
* Hook in and display our support page/knowledge base articles
|
2914 |
+
* on the support page
|
2915 |
+
* @since 6.0.3.8
|
2916 |
+
*/
|
2917 |
+
public function hook_and_display_kb_article_RSS() {
|
2918 |
+
include_once( YIKES_MC_PATH . 'admin/partials/helpers/knowledge-base-articles-RSS.php' );
|
2919 |
+
}
|
2920 |
+
|
2921 |
+
/**
|
2922 |
+
* Check the users version number, and display a notice to upgrade the databse if needed
|
2923 |
+
* @since 6.0.4
|
2924 |
+
*/
|
2925 |
+
public function check_yikes_mc_table_version() {
|
2926 |
+
if( get_option( 'yikes_mc_database_version', '0.00' ) < '1.0' ) {
|
2927 |
+
require_once YIKES_MC_PATH . 'includes/class-yikes-inc-easy-mailchimp-extender-activator.php';
|
2928 |
+
global $wpdb;
|
2929 |
+
Yikes_Inc_Easy_Mailchimp_Extender_Activator::_activate_yikes_easy_mailchimp( $wpdb );
|
2930 |
+
// update the database option
|
2931 |
+
update_option( 'yikes_mc_database_version', '1.0' );
|
2932 |
+
}
|
2933 |
+
}
|
2934 |
+
|
2935 |
+
/*
|
2936 |
+
* Process [yikes-mailchimp-form-description] into the shortcode
|
2937 |
+
* @since 6.0.4.4
|
2938 |
+
*/
|
2939 |
+
public function process_subscriber_count_shortcode_in_form_descriptions( $form_description, $form_id ) {
|
2940 |
+
$form_description = str_replace( '[yikes-mailchimp-subscriber-count]', do_shortcode( '[yikes-mailchimp-subscriber-count form="' . $form_id . '"]' ), $form_description );
|
2941 |
+
return $form_description;
|
2942 |
+
}
|
2943 |
+
|
2944 |
+
/*
|
2945 |
+
* Generate the sidebar advertisment on the 'Edit Form' page
|
2946 |
+
* @since 6.0.3
|
2947 |
+
*/
|
2948 |
+
public function generate_edit_forms_upsell_ad() {
|
2949 |
+
/*
|
2950 |
+
* SimplePie strips out all query strings
|
2951 |
+
* we had to implement a workaround
|
2952 |
+
* https://github.com/simplepie/simplepie/issues/317
|
2953 |
+
*/
|
2954 |
+
include_once( ABSPATH . WPINC . '/feed.php' );
|
2955 |
+
$rss = fetch_feed( esc_url( 'http://yikesplugins.com/feed/?post_type=product_ads&genre=easy-forms-for-mailchimp' ) );
|
2956 |
+
$maxitems = 0;
|
2957 |
+
if ( ! is_wp_error( $rss ) ) { // Checks that the object is created correctly
|
2958 |
+
// Figure out how many total items there are, but limit it to 1.
|
2959 |
+
$maxitems = $rss->get_item_quantity( 1 );
|
2960 |
+
// Build an array of all the items, starting with element 0 (first element).
|
2961 |
+
$rss_items = $rss->get_items( 0, $maxitems );
|
2962 |
+
} else {
|
2963 |
+
return $feed = new WP_Error( 'Simple Pie RSS Error', $feed->error() );
|
2964 |
+
}
|
2965 |
+
// loop over returned results
|
2966 |
+
foreach ( $rss_items as $add_on ) {
|
2967 |
+
$add_on_desc = $add_on->get_content();
|
2968 |
+
?>
|
2969 |
+
<h3><?php echo $add_on->get_title(); ?></h3>
|
2970 |
+
<div class="inside">
|
2971 |
+
<?php
|
2972 |
+
echo $add_on_desc;
|
2973 |
+
?>
|
2974 |
+
</div>
|
2975 |
+
<?php
|
2976 |
+
}
|
2977 |
+
}
|
2978 |
+
|
2979 |
+
}
|
admin/css/yikes-inc-easy-mailchimp-extender-admin.css
CHANGED
@@ -1,2 +1,3 @@
|
|
1 |
-
/**
|
2 |
* All of the CSS for your admin-specific functionality should be
|
3 |
* included in this file.
|
4 |
*/
|
5 |
|
6 |
.yikes-easy-mc-hidden {
|
7 |
}
|
8 |
|
9 |
.shortcode-input-field {
|
10 |
}
|
11 |
|
12 |
.edit-form-field-container-span {
|
13 |
}
|
14 |
|
15 |
.no-forms-widget {
|
16 |
}
|
17 |
|
18 |
.no-forms-found-icon {
|
19 |
}
|
20 |
|
21 |
.coming-soon-button {
|
22 |
}
|
23 |
/*****************************/
|
24 |
/* Dashboard Widgets */
|
25 |
/****************************/
|
26 |
/************************/
|
27 |
/* Global Styles */
|
28 |
/***********************/
|
29 |
|
30 |
/* Logo */
|
31 |
#review-yikes-easy-mailchimp-notice #yikes-mailchimp-logo {
|
32 |
/* Dismiss-able Notice */
|
33 |
#review-yikes-easy-mailchimp-notice {
|
34 |
}
|
35 |
|
36 |
/* Readonly Textareas */
|
37 |
textarea[readonly],
|
38 |
input[readonly],
|
39 |
textarea.readonly,
|
40 |
input.readonly {
|
41 |
}
|
42 |
|
43 |
.dashicons.yikes-love {
|
44 |
}
|
45 |
|
46 |
.field-description-input {
|
47 |
}
|
48 |
.yikes-easy-mc-postbox h3 {
|
49 |
background: #00a0d2;
|
50 |
}
|
51 |
.yikes-mc-warning-message {
|
52 |
}
|
53 |
|
54 |
.error-message-container label[for="yikes-easy-mc-success-message"],
|
55 |
.error-message-container label[for="yikes-easy-mc-general-error-message"],
|
56 |
.error-message-container label[for="yikes-easy-mc-invalid-email-message"],
|
57 |
.error-message-container label[for="yikes-easy-mc-user-subscribed-message"] {
|
58 |
}
|
59 |
|
60 |
|
61 |
.error-message-container label[for="yikes-easy-mc-user-subscribed-message"] {
|
62 |
}
|
63 |
|
64 |
.error-message-container label,
|
65 |
.form-settings-container label {
|
66 |
}
|
67 |
|
68 |
.yikes-easy-forms-sidebar .yikes-mc-settings-expansion-section {
|
69 |
}
|
70 |
|
71 |
.yikes-mc-settings-expansion-section {
|
72 |
}
|
73 |
/*********************************/
|
74 |
/** Settings/Options Page **/
|
75 |
/********************************/
|
76 |
/****************************************/
|
77 |
font-weight: 600;
|
78 |
font-family: "open sans";
|
79 |
font-size: 14px;
|
80 |
margin: 5px 5px 0 5px;
|
81 |
margin: 2px 2px 15px 2px !important;
|
82 |
table-layout: fixed;
|
83 |
-
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInlpa2VzLWluYy1lYXN5LW1haWxjaGltcC1leHRlbmRlci1hZG1pbi5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUdBQW1HLElBQUkseUJBQUEsY0FBaUMsR0FBQSxJQUFBLDBCQUEyQixlQUFBLEVBQUEsaURBQTJELEdBQUEsSUFBQSxtQ0FBQSxlQUFBLEVBQUEsZUFBQSxHQUFBLElBQUEsb0JBQWdILGNBQUcsR0FBQSxJQUFBLHdCQUFBLGdCQUFBLEVBQUEsaUJBQWlGLEVBQUEsWUFBQSxFQUFBLDBCQUE0QixHQUFBLElBQUEsdUJBQUEsbUJBQWtELEdBQUEsRUFBZ0IsbUNBQThCLGdCQUFBLEdBQUEsaUJBQThCLEdBQUEsR0FBQSx3QkFBd0IsY0FBQSxFQUFBLEVBQUEsWUFBb0QsY0FBQSxFQUFBLEVBQUEsZ0JBQWtCLGVBQUEsRUFBQSxtQkFBQSxFQUFBLEVBQUEsNkJBQXNELDBCQUEwQixFQUFBLEVBQUEsNkJBQUEsQ0FBQSx1QkFBbUUsQ0FBQSw0QkFBc0IsQ0FBQSw4QkFBQSxjQUFBLEVBQUEsY0FBZ0UsRUFBQSxFQUFBLHNDQUFzRCxjQUFBLEVBQUEsaUJBQUEsRUFBQSxFQUFBLDBDQUFBLGNBQUEsR0FBQSxJQUFBLHdCQUFBLEVBQUEsdUJBQTJKLEVBQUEsd0JBQU8sRUFBQSx1QkFBQSxzQkFBQSxHQUFBLG9CQUFBLEdBQUEsSUFBQSx3Q0FBNEcsbUJBQUEsR0FBQSxJQUFBLDRCQUFBLFlBQUEsR0FBQSxLQUFBLCtCQUFzRSxFQUFBLHlCQUFvRCxFQUFBLDhCQUEwQyxJQUFBLHVCQUFBLEVBQUEsOEZBQW9FLHNIQUE4SSxHQUFBLHNCQUFBLEdBQUEsZUFBQSxHQUFBLGFBQXVHLEdBQUEsa0JBQUEsR0FBQSxpQkFBQSxHQUFBLElBQUEsb0RBQTJDLFdBQWtFLEdBQUEsSUFBQSx3Q0FBQSxXQUFBLEdBQUEsbUJBQUEsR0FBQSxJQUFBLDZDQUFBLG1CQUFBLEdBQUEsSUFBQSxnQkFBZ0ssRUFBQSw2Q0FBMEIsV0FBQSxHQUFBLEtB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MENBQUEsRUFBQSxDQUFBLHNDQUFBLENBQUEsd0JBQUEsaUJBQUEsRUFBQSxFQUFBLHNDQUFBLGVBQUEsR0FBQSxZQUFBLEdBQUEsZ0JBQUEsR0FBQSxtQkFBQSxHQUFBLEVBQUEsMkNBQUEsaUJBQUEsR0FBQSxpQkFBQSxHQUFBLEVBQUEsc0NBQUEsZ0JBQUEsR0FBQSxFQUFBLG9CQUFBLGdCQUFBLEdBQUEscUJBQUEsR0FBQSxFQUFBLHNCQUFBLHNCQUFBLEdBQUEsRUFBQSwyQ0FBQSxrQkFBQSxHQUFBLEVBQUEsdUJBQUEsZ0JBQUEsR0FBQSxxQkFBQSxHQUFBLEVBQUEseUJBQUEsMEJBQUEsR0FBQSxtQkFBQSxHQUFBLEVBQUEsMEJBQUEsc0JBQUEsR0FBQSxlQUFBLEdBQUEsRUFBQSxvQ0FBQSxFQUFBLCtCQUFBLG1CQUFBLEdBQUEsaUJBQUEsR0FBQSxZQUFBLEdBQUEsRUFBQSxxQkFBQSxhQUFBLEdBQUEsRUFBQSxvQkFBQSxjQUFBLEdBQUEsVUFBQSxHQUFBLEVBQUEsMEJBQUEsY0FBQSxHQUFBLGlCQUFBLEdBQUEsR0FBQSxlQUFBLEVBQUEsb0NBQUEsbUJBQUEsR0FBQSxpQkFBQSxHQUFBLFlBQUEsR0FBQSxFQUFBLGtDQUFBLEVBQUEsbUdBQUEsY0FBQSxHQUFBLEdBQUEsNkhBQUEsMEJBQUEsSUFBQSxFQUFBLHVCQUFBLEVBQUEsb0JBQUEsd0JBQUEsR0FBQSxpQkFBQSxHQUFBLGFBQUEsSUFBQSxFQUFBLDBCQUFBLGdCQUFBLEdBQUEsRUFBQSwwQkFBQSxFQUFBLHNCQUFBLGlCQUFBLEdBQUEsYUFBQSxHQUFBLEVBQUEscUNBQUEsRUFBQSwrQkFBQSxjQUFBLEdBQUEsR0FBQSxtQ0FBQSxpQkFBQSxJQUFBLEdBQUEsb0VBQUEsZ0JBQUEsSUFBQSxpQkFBQSxJQUFBLEdBQUEsZ0NBQUEsdUJBQUEsSUFBQSxvQkFBQSxJQUFBLFlBQUEsSUFBQSxtQkFBQSxJQUFBLHVGQUFBLElBQUEsbUNBQUEsSUFBQSx1QkFBQSxJQUFBLEVBQUEsK0JBQUEsRUFBQSxvQ0FBQSxtQkFBQSxHQUFBLFVB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dUJBQUEsYUFBQSxFQUFBLEVBQUEsd0JBQUEsQ0FBQSw0QkFBQSx3QkFBQSxFQUFBLEVBQUEsc0JBQUEsQ0FBQSwwQkFBQSxpRUFBQSxFQUFBLHlCQUFBLEVBQUEsZ0JBQUEsRUFBQSxrQkFBQSxFQUFBLFdBQUEsRUFBQSxxQ0FBQSxFQUFBLDhCQUFBLEVBQUEscUNBQUEsRUFBQSw2QkFBQSxFQUFBLDhCQUFBLEVBQUEsc0JBQUEsRUFBQSxDQUFBLDBCQUFBLGlFQUFBLEVBQUEseUJBQUEsRUFBQSxnQkFBQSxFQUFBLGtCQUFBLEVBQUEsV0FBQSxFQUFBLHFDQUFBLEVBQUEsOEJBQUEsRUFBQSxxQ0FBQSxFQUFBLDZCQUFBLEVBQUEsOEJBQUEsRUFBQSxzQkFBQSxFQUFBLENBQUEsNEJBQUEsaUVBQUEsRUFBQSx5QkFBQSxFQUFBLGdCQUFBLEVBQUEsa0JBQUEsRUFBQSxXQUFBLEVBQUEscUNBQUEsRUFBQSw4QkFBQSxHQUFBLHFDQUFBLEdBQUEsNkJBQUEsR0FBQSw4QkFBQSxHQUFBLHNCQUFBLEVBQUEsRUFBQSxnQkFBQSxDQUFBLDRCQUFBLEtBQUEsV0FBQSxFQUFBLEdBQUEsTUFBQSxXQUFBLEVBQUEsRUFBQSxPQUFBLFdBQUEsRUFBQSxFQUFBLENBQUEsb0JBQUEsS0FBQSxXQUFBLEVBQUEsR0FBQSxNQUFBLFdBQUEsRUFBQSxFQUFBLE9BQUEsV0FBQSxFQUFBLEVBQUEiLCJmaWxlIjoieWlrZXMtaW5jLWVhc3ktbWFpbGNoaW1wLWV4dGVuZGVyLWFkbWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyICogQWxsIG9mIHRoZSBDU1MgZm9yIHlvdXIgYWRtaW4tc3BlY2lmaWMgZnVuY3Rpb25hbGl0eSBzaG91bGQgYmVcciAqIGluY2x1ZGVkIGluIHRoaXMgZmlsZS5cciAqL1xyIFxyIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cciAvKlx0RGFzaGJvYXJkIFdpZGdldHMgICAqL1xyIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXHRcclx0LyoqIExpc3QgU3RhdGlzdGljcyAqKi9cclx0I3lpa2VzX2Vhc3lfbWNfbGlzdF9zdGF0c193aWRnZXQgaDMgc3Bhbixcclx0I3lpa2VzX2Vhc3lfbWNfYWNjb3VudF9hY3Rpdml0eV93aWRnZXQgaDMgc3BhbiB7XHJcdFx0cGFkZGluZy1sZWZ0OiAzZW07XHJcdFx0YmFja2dyb3VuZDogdXJsKCAnLi4vLi4vaW5jbHVkZXMvaW1hZ2VzL01haWxDaGltcF9Bc3NldHMvRnJlZGRpZV9vcmlnaW5hbC5wbmcnICk7XHJcdFx0YmFja2dyb3VuZC1zaXplOiAyNXB4O1xyXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcdFx0ZGlzcGxheTogYmxvY2s7XHJcdFx0aGVpZ2h0OiAzMHB4O1xyXHRcdGJhY2tncm91bmQtcG9zaXRpb24teTogM3B4O1xyXHRcdGJhY2tncm91bmQtcG9zaXRpb24teDogOHB4O1xyXHRcdHBhZGRpbmctdG9wOiA1cHg7XHJcdH1cclx0XHJcdCN5aWtlc19lYXN5X21jX2FjY291bnRfYWN0aXZpdHlfd2lkZ2V0IGgzLmhuZGxlIHtcclx0XHRwYWRkaW5nOiAwO1xyXHR9XHJcdFxyXHQjeWlrZXNfZWFzeV9tY19saXN0X3N0YXRzX3dpZGdldCBoMyB7XHJcdFx0cGFkZGluZzogMDtcclx0XHRsaW5lLWhlaWdodDogMS42ZW07XHJcdH1cclx0XHJcdCN5aWtlcy1lYXN5LW1jLWRhc2hib2FyZC13aWRnZXQtc3RhdHMgaDMge1xyXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclx0fVxyXHRcclx0LyogU3RhdCBUYWJsZSAqL1xyXHQjeWlrZXNfZWFzeV9tY19saXN0X3N0YXRzX3dpZGdldCAuaW5zaWRlIHtcclx0XHRwYWRkaW5nOiAwO1xyXHR9XHJcdFx0XHJcdC55aWtlcy1lYXN5LW1jLXN0YXRzLXRhYmxlIHtcclx0XHRtYXJnaW4tdG9wOiAxZW07XHJcdH1cclx0XHJcdC55aWtlcy1lYXN5LW1jLXN0YXRzLXRhYmxlLFxyXHQueWlrZXMtZWFzeS1tYy1zdGF0cy10YWJsZSB0Ym9keSxcclx0Lnlpa2VzLWVhc3ktbWMtc3RhdHMtdGFibGUgLnlpa2VzLWVhc3ktbWMtdGFibGUtc3RhdHMtdHIge1xyXHRcdGRpc3BsYXk6IGJsb2NrO1xyXHRcdHdpZHRoOiAxMDAlO1xyXHR9XHRcclx0XHQueWlrZXMtZWFzeS1tYy10YWJsZS1zdGF0cy10ciB0ZCB7XHJcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcdFx0XHR3aWR0aDogNDglO1xyXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXHRcdH1cclx0XHRcclx0XHQueWlrZXMtZWFzeS1tYy10YWJsZS1zdGF0cy10ciB0ZDpob3ZlciB7XHJcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcdFx0fVxyXHRcdFxyXHRcdC55aWtlcy1lYXN5LW1jLXRhYmxlLXN0YXRzLXRyIHRkOmZpcnN0LW9mLXR5cGUge1xyXHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2VjZWNlYztcclx0XHR9XHJcdFx0XHJcdFx0Lnlpa2VzLWVhc3ktbWMtc3RhdHMtdGFibGUgLnlpa2VzLWVhc3ktbWMtdGFibGUtc3RhdHMtdHItZmlyc3Qge1xyXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlY2VjZWM7XHJcdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2VjZWNlYztcclx0XHR9XHJcdFx0XHJcdFx0I3lpa2VzLWVhc3ktbWMtd2lkZ2V0LXN0YXQtaG9sZGVyIHtcclx0XHRcdG1hcmdpbi10b3A6IDFlbTtcclx0XHR9XHJcdFx0XHJcdFx0Lnlpa2VzLWVhc3ktbWMtc3RhdHMtdGFibGUgcC55aWtlcy1lYXN5LW1jLWRhc2hib2FyZC1zdGF0IHtcclx0XHRcdGNvbG9yOiAjNTJCQUQ1O1xyXHRcdFx0Zm9udC13ZWlnaHQ6IDgwMDtcclx0XHRcdGZvbnQtc2l6ZTogMjBweDtcclx0XHRcdG1hcmdpbi1ib3R0b206IDJweDtcclx0XHRcdG1hcmdpbi10b3A6IDE1cHg7XHJcdFx0XHRsaW5lLWhlaWdodDogMS4yO1xyXHRcdFx0bWF4LWhlaWdodDogODBweDtcclx0XHR9XHJcdFx0Lnlpa2VzLWVhc3ktbWMtc3RhdHMtdGFibGUgcC55aWtlcy1lYXN5LW1jLXN0YXQtbGlzdC1sYWJlbCB7XHJcdFx0XHRmb250LXNpemU6IDEzcHg7XHJcdFx0XHRtYXJnaW4tdG9wOiAwO1xyXHRcdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcclx0XHRcdGZvbnQtZmFtaWx5OiBcIk9wZW4gU2Fuc1wiO1xyXHRcdH1cclx0XHRcclx0LyoqIEFjY291bnQgQWN0aXZpdHkgKiovXHJcdCN5aWtlc19lYXN5X21jX2FjY291bnRfYWN0aXZpdHlfd2lkZ2V0IHRhYmxlIHRoLnJvdy10aXRsZSB7XHJcdFx0cGFkZGluZy1sZWZ0OiAxMHB4O1xyXHR9XHJcdFxyXHQvKiBUaGlja2JveCBmb3IgVGFncyAqL1xyXHQjcHJlLWRlZmluZWQtdGFnLWludGVyaW9yLWNvbnRhaW5lciB7XHJcdFx0YmFja2dyb3VuZDogdXJsKC4uLy4uL2luY2x1ZGVzL2ltYWdlcy90aW55TUNFL3lpa2VzLW1haWxjaGltcC1jb21iby1mYWRlZC5wbmcpIGJvdHRvbSByaWdodCBuby1yZXBlYXQgI2ZmZjtcclx0XHRiYWNrZ3JvdW5kLXNpemU6IDQwJTtcclx0fVxyXHRcclx0LyoqIFF0aXAgVG9vbHRpcHMgKiovXHJcdC5xdGlwLWRlZmF1bHQgeyBcclx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyBcclx0XHRib3JkZXI6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IFxyXHRcdHotaW5kZXg6IDk5OTk5OTkgIWltcG9ydGFudDsgXHJcdH1cclx0XHJcdC5xdGlwLWJvb3RzdHJhcCB7IFxyXHRcdHBhZGRpbmc6IDEwcHggIWltcG9ydGFudDsgXHJcdFx0ei1pbmRleDogOTk5OTk5OSAhaW1wb3J0YW50OyBcclx0XHRmb250LXNpemU6MTJweDsgXHJcdH1cclx0XHRcclx0LnRvb2x0aXAtaW50ZWdyYXRpb24tYmFubmVyIHsgXHJcdFx0bWF4LXdpZHRoOiAxMDAlOyBcclx0XHRtYXJnaW46IDAgMCAuMjVlbSAwOyBcclx0fVx0XHJcdFxyXHQudG9vbHRpcHRleHQucXRpcC1ib290c3RyYXAge1xyXHRcdGZvbnQtc2l6ZTogMTJweDtcclx0fVxyXHRcclx0LnRvb2x0aXAtdGl0bGUge1xyXHRcdG1hcmdpbjogMDtcclx0fVxyXHRcclx0LmRhc2hpY29ucy1lZGl0b3ItaGVscDpob3ZlciB7XHJcdFx0Y3Vyc29yOiBwb2ludGVyO1xyXHR9XHJcdFxyXHQvKiBUaW55TUNFIEJ1dHRvbiBJY29uICovXHJcdGkubWNlLWljby5tY2UtaS15a3NfbWNfdGlueW1jZV9idXR0b25fa2V5IHtcclx0XHRiYWNrZ3JvdW5kOiB1cmwoICcuLi8uLi9pbmNsdWRlcy9pbWFnZXMvdGlueU1DRS9GcmVkZGllX3dpbmsucG5nJyk7XHJcdFx0YmFja2dyb3VuZC1zaXplOiAxOHB4O1xyXHRcdGJhY2tncm91bmQtcG9zaXRpb24teTogMXB4O1xyXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcdH1cclx0XHJcdC8qIFRpbnlNQ0UgTW9kYWwgKi9cclx0I3lpa2VzX21haWxjaGltcF90aW55TUNFX21vZGFsLXRpdGxlIHtcclx0XHRwYWRkaW5nLWxlZnQ6IDQycHg7XHJcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi8uLi9pbmNsdWRlcy9pbWFnZXMvTWFpbENoaW1wX0Fzc2V0cy9GcmVkZGllX29yaWdpbmFsLnBuZycpO1xyXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcdFx0YmFja2dyb3VuZC1zaXplOiAyNXB4O1xyXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQ7XHJcdFx0YmFja2dyb3VuZC1wb3NpdGlvbi14OiAxMHB4O1xyXHR9XHJcdFxyXHQvKiBNb2RhbCBCYWNrZ3JvdW5kIFRlc3QgKi9cclx0I3lpa2VzX21haWxjaGltcF90aW55TUNFX21vZGFsIHtcclx0XHRiYWNrZ3JvdW5kOiAjZmZmIHVybCgnLi4vLi4vaW5jbHVkZXMvaW1hZ2VzL3RpbnlNQ0UveWlrZXMtbWFpbGNoaW1wLWNvbWJvLWZhZGVkLnBuZycpO1xyXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBsZWZ0O1xyXHRcdGJhY2tncm91bmQtc2l6ZTogNDAlO1xyXHRcdGJhY2tncm91bmQtcG9zaXRpb24teDogMTBweDtcclx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDk1JTtcclx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXHR9XHJcdFx0I3lpa2VzX21haWxjaGltcF90aW55TUNFX21vZGFsIC5tY2UtZm9vdCB7XHJcdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclx0XHR9XHIvKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyLypcdFx0RnJvbnQgZW5kIFdpZGdldFx0ICovXHIvKioqKioqKioqKioqKioqKioqKioqKioqKiovXHIqW2lkKj1cIl95aWtlc19lYXN5X21jX3dpZGdldFwiXSA+IGRpdi53aWRnZXQtdG9wID4gZGl2LndpZGdldC10aXRsZSA+IGg0IHtcclx0YmFja2dyb3VuZDogI0ZBRkFGQSB1cmwoJy4uLy4uL2luY2x1ZGVzL2ltYWdlcy9NYWlsQ2hpbXBfQXNzZXRzL0ZyZWRkaWVfb3JpZ2luYWwucG5nJyk7XHJcdGJhY2tncm91bmQtc2l6ZTogMjVweDtcclx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclx0YmFja2dyb3VuZC1wb3NpdGlvbi14OiAxMnB4O1xyXHRiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDdweDtcclx0cGFkZGluZy1sZWZ0OiA0OHB4O1xyfVxyXHIgLyoqKioqKioqKioqKioqKioqKioqKioqKi9cciAvKlx0ICAgR2xvYmFsIFN0eWxlc1x0ICAqL1xyIC8qKioqKioqKioqKioqKioqKioqKioqKi9cciBcciAvKiBMb2dvICovXHIgI3Jldmlldy15aWtlcy1lYXN5LW1haWxjaGltcC1ub3RpY2UgI3lpa2VzLW1haWxjaGltcC1sb2dvIHtcclx0aGVpZ2h0OiA4MHB4O1xyXHR3aWR0aDogODBweDtcclx0Zm9udC1zaXplOiAxNHB4O1xyXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcdGJhY2tncm91bmQ6IHVybCgnLi4vLi4vaW5jbHVkZXMvaW1hZ2VzL1dlbGNvbWVfUGFnZS95aWtlcy1tYWlsY2hpbXAtd2VsY29tZS1sb2dvLnBuZycpIG5vLXJlcGVhdDtcclx0YmFja2dyb3VuZC1zaXplOiA2MHB4O1xyXHRmbG9hdDogbGVmdDtccn1cclxyXHQvKiBCdXR0b24gQ29udGFpbmVyIGluIFJldmlldyBVcyBDb250YWluZXIgKi9cclx0I3Jldmlldy15aWtlcy1lYXN5LW1haWxjaGltcC1ub3RpY2UgLmJ1dHRvbi1jb250YWluZXIge1xyXHRcdGRpc3BsYXk6IGJsb2NrO1xyXHRcdHdpZHRoOiAxMDAlO1xyXHRcdG1hcmdpbjogLjc1ZW0gMCAxLjVlbSAwO1xyXHR9XHJcdFxyXHRcdCNyZXZpZXcteWlrZXMtZWFzeS1tYWlsY2hpbXAtbm90aWNlIC5idXR0b24tY29udGFpbmVyIC5kYXNoaWNvbnMge1xyXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xyXHRcdFx0bGluZS1oZWlnaHQ6IDEuOTtcclx0XHRcdG1hcmdpbi1sZWZ0OiAtNHB4O1xyXHRcdH1cclx0XHRcclx0XHQvKiBTdGFyIEljb24gKi9cclx0XHQjcmV2aWV3LXlpa2VzLWVhc3ktbWFpbGNoaW1wLW5vdGljZSAuYnV0dG9uLWNvbnRhaW5lciAuZGFzaGljb25zLXN0YXItZmlsbGVkIHtcclx0XHRcdGNvbG9yOiAjRTZCODAwO1xyXHRcdH1cclx0XHRcclx0XHQvKiBVcGdyYWRlIEljb24gKi9cclx0XHQjcmV2aWV3LXlpa2VzLWVhc3ktbWFpbGNoaW1wLW5vdGljZSAuYnV0dG9uLWNvbnRhaW5lciAuZGFzaGljb25zLXVwbG9hZCB7XHJcdFx0XHRjb2xvcjogIzZFODg0MTtcclx0XHR9XHJcclx0XHQvKiBEaXNtaXNzIEljb24gKi9cclx0XHQjcmV2aWV3LXlpa2VzLWVhc3ktbWFpbGNoaW1wLW5vdGljZSAuYnV0dG9uLWNvbnRhaW5lciAuZGFzaGljb25zLW5vLWFsdCB7XHJcdFx0XHRjb2xvcjogcmdiKDIyMCwgNTgsIDU4KTtcclx0XHRcdGxpbmUtaGVpZ2h0OiAyO1xyXHRcdH1cclx0XHRcclx0XHRib2R5LmVhc3ktbWFpbGNoaW1wX3BhZ2VfeWlrZXMtaW5jLWVhc3ktbWFpbGNoaW1wLXNldHRpbmdzIC5kYXNoaWNvbnMtbm8tYWx0IHtcclx0XHRcdGNvbG9yOiByZ2IoMjIwLCA1OCwgNTgpO1xyXHRcdH1cclx0XHRcclx0XHQjcmV2aWV3LXlpa2VzLWVhc3ktbWFpbGNoaW1wLW5vdGljZSAuYnV0dG9uLWNvbnRhaW5lciBhIHtcclx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcclx0XHR9XHJcciAvKiBEaXNtaXNzYWJsZSBOb3RpY2UgKi9cciAjcmV2aWV3LXlpa2VzLWVhc3ktbWFpbGNoaW1wLW5vdGljZSB7XHJcdGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzUyQkFENTtcclx0YmFja2dyb3VuZDogI2ZlZmVmZTtcclx0cGFkZGluZzogMXB4IDEycHg7XHJcdGJveC1zaGFkb3c6IDAgMXB4IDFweCAwIHJnYmEoMCwwLDAsLjEpO1xyXHQtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDFweCAwIHJnYmEoMCwwLDAsLjEpO1xyXHRtYXJnaW46IDE1cHggMjVweCAyMHB4IDVweDtcciB9XHIgXHIgLyogUmVhZG9ubHkgVGV4dGFyZWFzICovXHIgdGV4dGFyZWFbcmVhZG9ubHldLFxyIGlucHV0W3JlYWRvbmx5XSxcciB0ZXh0YXJlYS5yZWFkb25seSxcciBpbnB1dC5yZWFkb25seSB7XHJcdGJhY2tncm91bmQ6ICNlZWU7XHIgfVxyIFxyIC5kYXNoaWNvbnMueWlrZXMtbG92ZSB7XHJcdGNvbG9yOiBwaW5rO1xyIH1cciBcciAuZmllbGQtZGVzY3JpcHRpb24taW5wdXQge1xyXHRyZXNpemU6IHZlcnRpY2FsO1xyXHRtYXgtaGVpZ2h0OiAxMDBweDtcciB9XHIgLnlpa2VzLWVhc3ktbWMtcG9zdGJveCBoMyB7XHIgICAgYmFja2dyb3VuZDogIzUyQkFENTtcclx0Zm9udC13ZWlnaHQ6IDgwMDtcclx0Y29sb3I6ICNmZmZmZmY7XHIgfVxyXHQueWlrZXMtZWFzeS1tYy1wb3N0Ym94IGgzLmJnLXRyYW5zcGFyZW50IHtcclx0XHRjb2xvcjogIzMzMztcclx0XHRmb250LXdlaWdodDogNDAwO1xyXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXHR9XHJcdFxyIC55aWtlcy1tYy13YXJuaW5nLW1lc3NhZ2Uge1xyXHRwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcdG1hcmdpbi10b3A6IDA7XHJcdHBhZGRpbmctdG9wOiAxMHB4O1xyXHRjb2xvcjogcmdiKDIxOCwgMTEwLCAxMTApO1xyIH1cciBcciAuZXJyb3ItbWVzc2FnZS1jb250YWluZXIgbGFiZWwge1xyXHRkaXNwbGF5OiBibG9jazsgXHJcdG1hcmdpbjogMWVtIDA7XHIgfVxyIFxyIC55aWtlcy1tYy1zZXR0aW5ncy1leHBhbnNpb24tc2VjdGlvbiB7XHJcdGRpc3BsYXk6IG5vbmU7XHIgfVxyXHQuZXhwYW5zaW9uLXNlY3Rpb24tdGl0bGUge1xyXHRcdGJhY2tncm91bmQ6ICNmZmZmZmY7XHJcdH1cclx0LmV4cGFuc2lvbi1zZWN0aW9uLXRpdGxlLnNldHRpbmdzLXNpZGViYXIsIC5mb3JtLWJ1aWxkZXItc2VjdGlvbi10aXRsZSB7XHJcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXHRcdGRpc3BsYXk6IGJsb2NrO1xyXHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTc3LCAxNzcsIDE3NywgMC43MSk7XHJcdFx0Y29sb3I6ICMzMzMzMzM7XHJcdFx0cGFkZGluZzogNXB4O1xyXHRcdG1hcmdpbjogLjVlbSAwO1xyXHR9XHJcdC5leHBhbnNpb24tc2VjdGlvbi10aXRsZS5zZXR0aW5ncy1zaWRlYmFyIC5kYXNoaWNvbnMsIC5mb3JtLWJ1aWxkZXItc2VjdGlvbi10aXRsZSAuZGFzaGljb25zIHtcclx0XHRjb250ZW50OiBcIlxcZjEzMlwiO1xyXHRcdGZvbnQtZmFtaWx5OiBcImRhc2hpY29uc1wiO1xyXHRcdGZvbnQtc2l6ZTogMTVweDtcclx0XHRsaW5lLWhlaWdodDogMS41O1xyXHR9XHIgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cciAvKiogU2V0dGluZ3MvT3B0aW9ucyBQYWdlICAqKi9cciAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcdC8qIEFib3V0IFRleHQgU3BhY2luZyAqL1xyXHQueWlrZXMtZWFzeS1tYy1hYm91dC10ZXh0IHsgXHJcdFx0bWFyZ2luLXRvcDogMDsgXHJcdH1cclx0XHJcdC8qIElucHV0IEZpZWxkIFN0eWxlcyAqL1xyXHQjeWtzLW1haWxjaGltcC1kb3VibGUtb3B0aW4tbWVzc2FnZSxcclx0I3lrcy1tYWlsY2hpbXAtc2luZ2xlLW9wdGluLW1lc3NhZ2UsXHJcdC5zZXR0aW5ncy1wYWdlLWlucHV0IHtcclx0XHR3aWR0aDogNTAlO1xyXHR9XHJcdFxyXHQjeWtzLW1haWxjaGltcC1kb3VibGUtb3B0aW4tbWVzc2FnZSxcclx0I3lrcy1tYWlsY2hpbXAtc2luZ2xlLW9wdGluLW1lc3NhZ2Uge1xyXHRcdG1pbi1oZWlnaHQ6IDc1cHg7XHJcdFx0bWF4LWhlaWdodDogMjAwcHg7XHJcdFx0cmVzaXplOiB2ZXJ0aWNhbDtcclx0fVxyXHRcclx0I3NldHRpbmdzLW5hdiBsaSBhIHtcclx0XHRjb2xvcjogIzMzMzMzMztcclx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcclx0XHQgdHJhbnNpdGlvbjogY29sb3IgLjE1cyBlYXNlLW91dDtcclx0XHQtbW96LXRyYW5zaXRpb246IGNvbG9yIC4xNXMgZWFzZS1vdXQ7XHJcdFx0LXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAuMTVzIGVhc2Utb3V0O1xyXHRcdC1vLXRyYW5zaXRpb246IGNvbG9yIC4xNXMgZWFzZS1vdXQ7XHJcdH1cclx0XHQjc2V0dGluZ3MtbmF2IGxpIGE6aG92ZXIge1xyXHRcdFx0Y29sb3I6ICM1MkJBRDUgIWltcG9ydGFudDtcclx0XHR9XHJcdFxyXHQvKiBTZWxlY3RlZCBPcHRpb25zIFBhZ2UgQXJyb3cgKi9cclx0Lm9wdGlvbi1tZW51LXNlbGVjdGVkLWFycm93IHtcclx0XHR3aWR0aDogMDsgXHJcdFx0aGVpZ2h0OiAwOyBcclx0XHRib3JkZXItdG9wOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXHRcdGJvcmRlci1ib3R0b206IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7IFxyXHRcdGJvcmRlci1yaWdodDogMTBweCBzb2xpZCBibHVlOyBcclx0XHRib3JkZXItcmlnaHQ6IDEwcHggc29saWQgI2ZmZjtcclx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcdFx0bGVmdDogLS42ZW07XHJcdH1cclx0XHJcdC5vcHRpb24tbWVudS1zZWxlY3RlZC1hcnJvdythIHtcclx0XHRjb2xvcjogIzUyQkFENSAhaW1wb3J0YW50O1xyXHR9XHJcdFxyXHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclx0LypcdFx0XHREZWJ1ZyBQYWdlXHRcdCAqL1xyXHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcdCN5aWtlcy1tYWlsY2hpbXAtZXJyb3ItbG9nIC5yb3ctdGl0bGUge1xyXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XHJcdH1cclx0XHJcdC5jcmVhdGUtZXJyb3ItbG9nLWhlbHA6aG92ZXIge1xyXHRcdGN1cnNvcjogcG9pbnRlcjtcclx0fVxyXHRcci8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHIvKlx0XHRMaXN0cyBQYWdlXHRcdFx0ICovXHIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHIubGlzdC1yYXRpbmctc3RhciB7XHJcdGNvbG9yOiAjRTZCODAwO1xyfVxyLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cci8qXHRcdEFjY29udCBEZXRhaWxzIFBhZ2VcdCovXHIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHIvKiBDaGltcCBDaGF0dGVyICovXHIjY2hpbXAtY2hhdHRlciB7XHJcdHRleHQtYWxpZ246IGNlbnRlcjtccn1cclx0I2NoaW1wLWNoYXR0ZXIgLmNoaW1wLWNoYXR0ZXItY29udGFpbmVyIHtcclx0XHRtYXJnaW46IDJlbSAwO1xyXHRcdGJhY2tncm91bmQ6ICNGOEY4Rjg7XHJcdFx0Ym9yZGVyLXJhZGl1czogMTBweDtcclx0XHRwYWRkaW5nOiAxMHB4O1xyXHR9XHIvKiBJbmFjdGl2ZSArIEFjdGl2ZSBNYXJrZXJzICovXHIuY2lyY2xlLWFjY291bnQtaW5hY3RpdmUge1xyXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcdG1hcmdpbi10b3A6IC0zcHg7XHJcdG1hcmdpbi1yaWdodDogNXB4O1xyXHRoZWlnaHQ6IDE1cHg7XHJcdHdpZHRoOiAxNXB4O1xyXHRib3JkZXItcmFkaXVzOiA1MCU7XHJcdGJhY2tncm91bmQ6IHJnYmEoMjUwLCAxMzgsIDEzOCwgMC43OSk7XHJ9XHIuY2hhdHRlci10eXBlIHtcciAgICBmb250LXdlaWdodDogNjAwO1xyICAgIGZvbnQtZmFtaWx5OiBcIm9wZW4gc2Fuc1wiO1xyICAgIGZvbnQtc2l6ZTogMTRweDtcciAgICBtYXJnaW46IDVweDtccn1cci5jaGF0dGVyLW1lc3NhZ2Uge1x0XHIgICBtYXJnaW46IDE1cHggIWltcG9ydGFudDtccn1cci5jaXJjbGUtYWNjb3VudC1hY3RpdmUge1xyXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcdG1hcmdpbi10b3A6IC0zcHg7XHJcdG1hcmdpbi1yaWdodDogNXB4O1xyXHRoZWlnaHQ6IDE1cHg7XHJcdHdpZHRoOiAxNXB4O1xyXHRib3JkZXItcmFkaXVzOiA1MCU7XHJcdGJhY2tncm91bmQ6IHJnYmEoMTI4LCAyMTQsIDEyOCwgMC43Nyk7XHJ9XHIjYWNjb3VudC1kZXRhaWxzIC5tYWlsY2hpbXAtYXZhdGFyIHtcclx0d2lkdGg6IDEyMHB4O1xyXHRib3JkZXItcmFkaXVzOiAxMCU7XHJ9XHIvKiBDaGF0dGVyIENvbnRhaW5lciBDb2xvcnMgKi9cci5jaGltcC1jaGF0dGVyLXBvc2l0aXZlIHtcclx0Ym9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYigxNTcsIDIyMywgMTU3KTtccn1cci5jaGltcC1jaGF0dGVyLW5lZ2F0aXZlIHtcclx0Ym9yZGVyLXRvcDogMnB4IHNvbGlkICNGQkEyQTI7XHJ9XHIuY2hpbXAtY2hhdHRlci1uZXV0cmFsIHtcclx0Ym9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYigxNzcsIDE3NywgMTc3KTtccn1cci8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cci8qXHQgIE1hbmFnZSBMaXN0cyBQYWdlICovXHIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cci8qIE1lcmdlIFZhcmlhYmxlIC8gSW50ZXJlc3QgR3JvdXAgVG9nZ2xlICovXHIubXZfaWdfbGlzdCB7XHJcdHdpZHRoOjEwMCU7XHJcdG1hcmdpbi1ib3R0b206IC4yNWVtO1xyfVxyXHQubXZfaWdfbGlzdCAubGlzdC1jb250YWluZXIge1xyXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclx0fVxyXHQubXZfaWdfbGlzdCBhIHtcclx0XHR3aWR0aDogNDglO1xyXHRcdHBhZGRpbmc6IDVweCAwICFpbXBvcnRhbnQ7XHJcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXHRcdG1hcmdpbjogMDtcclx0fVxyXHQubXZfaWdfbGlzdCBhOmZpcnN0LWNoaWxkIHtcclx0XHRtYXJnaW4tcmlnaHQ6IDA7XHJcdH1cclx0Lm12X2lnX2xpc3QgYTpsYXN0LWNoaWxkIHtcclx0XHRmbG9hdDogcmlnaHQ7XHJcdH1cclx0XHJcdC5tdl9pZ19saXN0IHtcclx0XHRtYXJnaW4tYm90dG9tOiAuNWVtO1xyXHR9XHJcdC5tdl9pZ19saXN0IC5uYXYtdGFiIHtcclx0XHRib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xyXHR9XHRcclx0XHQubXZfaWdfbGlzdCAubmF2LXRhYi1hY3RpdmUge1xyXHRcdFx0Y29sb3I6ICNmZmY7XHJcdFx0XHRmb250LXdlaWdodDogYm9sZDtcclx0XHRcdGJhY2tncm91bmQ6ICM1MmJhZDU7XHJcdFx0fVxyXHRcdFxyXHQubXZfaWdfbGlzdCAuYXJyb3ctZG93biB7XHJcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXHRcdG1hcmdpbi10b3A6IDIxcHg7XHJcdFx0bWFyZ2luLWxlZnQ6IDUwcHg7XHJcdFx0d2lkdGg6IDA7IFxyXHRcdGhlaWdodDogMDsgXHJcdFx0Ym9yZGVyLWxlZnQ6IDEycHggc29saWQgdHJhbnNwYXJlbnQ7XHJcdFx0Ym9yZGVyLXJpZ2h0OiAxMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXHRcdGJvcmRlci10b3A6IDEycHggc29saWQgIzUyQkFENTtcclx0fVxyXHRcciNjb250YWluZXItY29udGFpbmVyIHtcclx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXHR3aWR0aDogNTIxcHg7XHJ9XHJcdCNjb250YWluZXItY29udGFpbmVyIC5saXN0LWNvbnRhaW5lciB7XHJcdFx0ZmxvYXQ6IGxlZnQ7XHJcdFx0d2lkdGg6IDI1NHB4O1xyXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclx0fVxyXHQjY29udGFpbmVyLWNvbnRhaW5lciAubGlzdC1jb250YWluZXI6bGFzdC1jaGlsZCB7XHJcdFx0bWFyZ2luLWxlZnQ6IDFlbTtcclx0fVxyXHRcciN5aWtlc19lYXN5X21jX3Rvb2xiYXIge1xyXHRtYXJnaW4tdG9wOiAtLjc1ZW07XHJ9XHIjeWlrZXNfZWFzeV9tY190b29sYmFyX2xpbmtzIHtcclx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXHR3aWR0aDogMTAwJTtcclx0bWFyZ2luOiAwO1xyXHRwYWRkaW5nOiAxMHB4IDA7XHJ9XHJcdCN5aWtlc19lYXN5X21jX3Rvb2xiYXJfbGlua3MgbGkge1xyXHRcdGZsb2F0OiBsZWZ0O1xyXHRcdG1hcmdpbjogMCAuNWVtO1xyXHR9XHJcdCN5aWtlc19lYXN5X21jX3Rvb2xiYXJfbGlua3MgbGkgYSB7XHJcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXHR9XHJcdCN5aWtlc19lYXN5X21jX3Rvb2xiYXJfbGlua3MgbGkgYS5zZWxlY3RlZF9oaWRkZW5fc2V0dGluZyB7XHJcdFx0Y29sb3I6ICMzMzMzMzM7XHJcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjA2LCAyMDYsIDIwNiwgMSk7XHJcdFx0bWFyZ2luLWJvdHRvbTogM3B4O1xyXHR9XHJcdCN5aWtlc19lYXN5X21jX3Rvb2xiYXJfbGlua3MgbGkgLnNlbGVjdGVkX3NldHRpbmdfdHJpYW5nbGUge1xyXHRcdHdpZHRoOiAwOyBcclx0XHRoZWlnaHQ6IDA7IFxyXHRcdGJvcmRlci1sZWZ0OiAxM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xyXHRcdGJvcmRlci1yaWdodDogMTNweCBzb2xpZCB0cmFuc3BhcmVudDtcclx0XHRib3JkZXItdG9wOiAxM3B4IHNvbGlkIHJnYmEoMjA2LCAyMDYsIDIwNiwgMSk7XHJcdFx0bWFyZ2luOiAwIGF1dG87XHJcdH1cclx0XHQvKiBUb29sYmFyIEljb25zICovXHJcdFx0I3lpa2VzX2Vhc3lfbWNfdG9vbGJhcl9saW5rcyBsaSBhLmZvcm0tYnVpbGRlcjpiZWZvcmUge1xyXHRcdFx0Y29udGVudDogXCJcXGYxMTZcIjtcclx0XHRcdGZvbnQtZmFtaWx5OiBcImRhc2hpY29uc1wiO1xyXHRcdH1cclx0XHQjeWlrZXNfZWFzeV9tY190b29sYmFyX2xpbmtzIGxpIGEuZm9ybS1jdXN0b21pemVyOmJlZm9yZSB7XHJcdFx0XHRjb250ZW50OiBcIlxcZjEwMFwiO1xyXHRcdFx0Zm9udC1mYW1pbHk6IFwiZGFzaGljb25zXCI7XHJcdFx0fVxyXHRcdCN5aWtlc19lYXN5X21jX3Rvb2xiYXJfbGlua3MgbGkgYS5lcnJvci1tZXNzYWdlczpiZWZvcmUge1xyXHRcdFx0Y29udGVudDogXCJcXGYxMTdcIjtcclx0XHRcdGZvbnQtZmFtaWx5OiBcImRhc2hpY29uc1wiO1xyXHRcdH1cclx0XHQjeWlrZXNfZWFzeV9tY190b29sYmFyX2xpbmtzIGxpIGEuY3VzdG9tLW5vdGlmaWNhdGlvbnM6YmVmb3JlIHtcclx0XHRcdGNvbnRlbnQ6IFwiXFxmNDY2XCI7XHJcdFx0XHRmb250LWZhbWlseTogXCJkYXNoaWNvbnNcIjtcclx0XHR9XHJcdFxyLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyLyogTWFuYWdlIEZvcm1zIFBhZ2UgKi9cci8qKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJzcGFuW3RpdGxlPVwiSW1wcmVzc2lvbnNcIl06aG92ZXIsXHJzcGFuW3RpdGxlPVwiU3VibWlzc2lvbnNcIl06aG92ZXIsXHJzcGFuW3RpdGxlPVwiQ29udmVyc2lvbiBSYXRlXCJdOmhvdmVyIHtcclx0ZGlzcGxheTogYmxvY2s7XHJcdGN1cnNvcjogcG9pbnRlcjtccn1cclxyLyogQ29udGFpbmVyIGhvbGRpbmcgdGhlIGZvcm0gSUQgKi9cci5mb3JtLWlkLWNvbnRhaW5lciB7XHJcdHBhZGRpbmc6IDFweCA4cHg7XHJcdGJvcmRlci1yYWRpdXM6IDVweDtcclx0YmFja2dyb3VuZDogcmdiKDczLCAxNjksIDIzNik7XHJcdGZvbnQtd2VpZ2h0OiBib2xkO1xyXHRjb2xvcjogI2ZmZmZmZjtccn1cci5tYW5hZ2UtZm9ybS1hZG1pbi1ub3RpY2Uge1xyXHRtYXJnaW4tdG9wOiAxLjc1ZW0gIWltcG9ydGFudDtccn1ccmEueWlrZXMtZGVsZXRlLW1haWxjaGltcC1mb3JtLFxyYS55aWtlcy1kZWxldGUtc3Vic2NyaWJlcixcci55aWtlcy1tYy1zZXR0aW5ncy1leHBhbnNpb24tc2VjdGlvbiBhLnJlbW92ZS1maWVsZCxcci5yZW1vdmUtbm90aWZpY2F0aW9uIHtcclx0Y29sb3I6IHJnYigyMTcsIDk2LCA5NikgIWltcG9ydGFudDtccn1cci55aWtlcy1tYy1zaG9ydGNvZGUtaW5wdXQge1xyXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJ9XHIuaGlkZGVuLWNsYXNzIHtcclx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyfVxyLmNvbHVtbi1jb2x1bW5uYW1lIHNwYW4uc3RhdHMge1xyXHRkaXNwbGF5OiBibG9jaztcclx0d2lkdGg6IDEwMCU7XHJcdHRleHQtYWxpZ246IGNlbnRlcjtccn1cclx0LmNvbHVtbi1jb2x1bW5uYW1lIHNwYW4uc3RhdHMgc3BhbiB7XHJcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXHRcdHdpZHRoOiAyMCU7XHJcdH1cclx0XHQuY29sdW1uLWNvbHVtbm5hbWUgc3Bhbi5zdGF0cyBzcGFuOmhvdmVyIHtcclx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclx0XHR9XHIvKiBBdmFpbGFibGUgRm9ybSBGaWVsZCBMaXN0ICovXHIjYXZhaWxhYmxlLWZpZWxkcyBsaSwgXHIjYXZhaWxhYmxlLWludGVyZXN0LWdyb3VwcyBsaSB7XHJcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclx0ZGlzcGxheTogYmxvY2s7XHJcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTc3LCAxNzcsIDE3NywgMC43MSk7XHJcdGNvbG9yOiAjMzMzMzMzO1xyXHRwYWRkaW5nOiA1cHg7XHJcdG1hcmdpbjogLjVlbSAwO1xyfVxyXHQjYXZhaWxhYmxlLWZpZWxkcyBsaS5ub3QtYXZhaWxhYmxlLCBcclx0I2F2YWlsYWJsZS1pbnRlcmVzdC1ncm91cHMgbGkubm90LWF2YWlsYWJsZSB7XHJcdFx0b3BhY2l0eTogLjYgIWltcG9ydGFudDtcclx0fVxyXHRcclx0I2F2YWlsYWJsZS1maWVsZHMgbGkuZmllbGQtdG8tYWRkLXRvLWZvcm0sXHJcdCNhdmFpbGFibGUtaW50ZXJlc3QtZ3JvdXBzIGxpLmdyb3VwLXRvLWFkZC10by1mb3JtIHtcclx0XHRiYWNrZ3JvdW5kOiByZ2JhKDQ2LCAxNjIsIDIwNCwgMC4yNSk7XHJcdH1cci8qKioqKioqKioqKioqKioqKioqKioqKi9cci8qIEVkaXQgRm9ybSBQYWdlICAqL1xyLyoqKioqKioqKioqKioqKioqKioqKiovXHIjZWRpdC15aWtlcy1tYy1mb3JtIGxhYmVsIGgzIHtcclx0bWFyZ2luLWxlZnQ6MDtcclx0cGFkZGluZy1sZWZ0OiAwO1xyfVxyI2F2YWlsYWJsZS1maWVsZHMgLmZpZWxkLXJlcXVpcmVkIHtcclx0Y29sb3I6IHJnYigyMTcsIDk2LCA5NikgIWltcG9ydGFudDtccn1cclx0LyogUG9zdCBTdHVmZiBIZWFkaW5nICovXHJcdGJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtICNwb3N0c3R1ZmYgaDIge1xyXHRcdHBhZGRpbmc6IDhweCAxMnB4O1xyXHRcdG1hcmdpbi10b3A6IDA7XHJcdH1cclx0XHIvKiBTdHlsZSBMaXN0IC0gY29sb3IgcGlja2VycyBldGMuICovXHIjc3R5bGUtbGlzdCB1bCBsaSB7XHJcdGRpc3BsYXk6IGJsb2NrO1xyXHR3aWR0aDogMTAwJTtcclx0bWFyZ2luOiAxZW0gMDtccn1cclx0LndwLXBpY2tlci1jb250YWluZXIsXHJcdC5mb3JtLXN0eWxlLWFkanVzdG1lbnQge1xyXHRcdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcdFx0d2lkdGg6IDEwMCU7XHJcdFx0bWFyZ2luOiAuNWVtIDA7XHJcdH1cclx0XHIuZHluYW1pYy1lbWFpbC10YWcge1xyXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcdG1hcmdpbi1yaWdodDogNXB4O1xyfVxyLmR5bmFtaWMtdGFnLWRlc2NyaXB0aW9uIHRkIHtcclx0cGFkZGluZy10b3A6IDA7XHJ9XHJcciNjcmVhdGUtbmV3LW5vdGlmaWNhdGlvbi1idXR0b24ge1xyXHRtYXJnaW4tdG9wOiAxZW07XHJ9XHJcdFxyLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHIvKiBBYm91dCBZaWtlcyBJbmMgUGFnZSAgICovXHIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHRcciN0ZWFtLW1lbWJlci1jb250YWluZXIge1xyXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcdHdpZHRoOiBhdXRvO1xyXHRtYXJnaW46IDAgYXV0bztcclx0d2lkdGg6IDEwMCU7XHJ9XHJcdC55aWtlcy1uZXdzLWFydGljbGUge1xyXHRcdG1hcmdpbjogMTJweCAwO1xyXHR9XHJcdFx0Lnlpa2VzLW5ld3MtYXJ0aWNsZSBhIHtcclx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xyXHRcdH1cclx0XHRcdFx0XHJcdFx0LnN0YWZmLXBvc2l0aW9uIHtcclx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXHRcdH1cclx0XHJcdCNhYm91dC15aWtlcyAudGVhbS1tZW1iZXIgaW1nIHtcclx0XHRib3JkZXItcmFkaXVzOiA1MCU7XHJcdFx0ZGlzcGxheTpibG9jaztcclx0XHRtYXJnaW46MCBhdXRvO1xyXHR9XHJcdC5hYm91dC15aWtlcy1pbmMtdGV4dCB7XHJcdFx0LW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKVwiO1xyXHRcdC8qIElFIDUtNyAqL1xyXHRcdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcclx0XHQvKiBOZXRzY2FwZSAqL1xyXHRcdC1tb3otb3BhY2l0eTogMDtcclx0XHQvKiBTYWZhcmkgMS54ICovXHJcdFx0LWtodG1sLW9wYWNpdHk6IDA7XHJcdFx0LyogR29vZCBicm93c2VycyAqL1xyXHRcdG9wYWNpdHk6IDA7XHJcdH1cclx0I2Fib3V0LXlpa2VzIC50ZWFtLW1lbWJlciB7XHJcdFx0LW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKVwiO1xyXHRcdC8qIElFIDUtNyAqL1xyXHRcdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcclx0XHQvKiBOZXRzY2FwZSAqL1xyXHRcdC1tb3otb3BhY2l0eTogMDtcclx0XHQvKiBTYWZhcmkgMS54ICovXHJcdFx0LWtodG1sLW9wYWNpdHk6IDA7XHJcdFx0LyogR29vZCBicm93c2VycyAqL1xyXHRcdG9wYWNpdHk6IDA7XHJcdFx0ZmxvYXQ6IGxlZnQ7XHJcdFx0ZGlzcGxheTpibG9jaztcclx0XHR3aWR0aDogMzElO1xyXHRcdG1hcmdpbjogMWVtIDVweCAxZW0gNXB4O1xyXHR9XHJcdFxyXHQueWlrZXMtYWJvdXQtaW1hZ2UtY29udGFpbmVyIHtcclx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcdFx0ZGlzcGxheTogYmxvY2s7XHJcdFx0d2lkdGg6IDEwNXB4O1xyXHRcdG1hcmdpbjogMCBhdXRvO1xyXHR9XHJcdFxyXHQueWlrZXMtYWJvdXQtaW1hZ2UtY29udGFpbmVyOmhvdmVyIHtcclx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcdH1cclx0XHRcclx0XHQueWlrZXMtYWJvdXQtaW1hZ2UtY29udGFpbmVyIC5kYXNoaWNvbnMtaG9sZGVyIHtcclx0XHRcdG1hcmdpbjogYXV0bztcclx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclx0XHRcdHRvcDogMDsgXHJcdFx0XHRsZWZ0OiAwOyBcclx0XHRcdGJvdHRvbTogMDsgXHJcdFx0XHRyaWdodDogMDtcclx0XHRcdHBhZGRpbmc6IDVweDtcclx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTEsIDUxLCA1MSwgMC43MSk7XHJcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XHJcdFx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XHJcdFx0fVxyXHRcdFxyXHRcdC55aWtlcy1hYm91dC1pbWFnZS1jb250YWluZXIgLmRhc2hpY29ucy5mYWRlT3V0TGVmdCxcclx0XHQueWlrZXMtYWJvdXQtaW1hZ2UtY29udGFpbmVyIC5kYXNoaWNvbnMuZmFkZUluUmlnaHQge1xyXHRcdFx0dmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xyXHRcdH1cclx0XHRcclx0XHRcdC55aWtlcy1hYm91dC1pbWFnZS1jb250YWluZXIgLmRhc2hpY29ucy10d2l0dGVyIHtcclx0XHRcdFx0Y29sb3I6ICMwMEIwRUQ7XHJcdFx0XHR9XHJcdFx0XHRcclx0XHJcdCNhYm91dC15aWtlcyAudGVhbS1yb3c6Zmlyc3QtY2hpbGQge1xyXHRcdG1hcmdpbi10b3A6IDJlbTtcclx0fVxyXHRcclx0I2Fib3V0LXlpa2VzIC50ZWFtLXJvdyB7XHJcdFx0d2lkdGg6IDEwMCU7XHJcdFx0ZmxvYXQ6IGxlZnQ7XHJcdH1cclx0I2Fib3V0LXlpa2VzIC50ZWFtLW1lbWJlciBwIHtcclx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcdFx0Zm9udC1zaXplOiAxNnB4O1xyXHR9XHJcdFxyXHQjY2VydGlmaWNhdGlvbnMgdWwge1xyXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclx0XHR3aWR0aDogMTAwJTtcclx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcdH1cclx0XHQjY2VydGlmaWNhdGlvbnMgdWwgbGkge1xyXHRcdFx0ZmxvYXQ6IGxlZnQ7XHJcdFx0fVxyXHRcdFx0I2NlcnRpZmljYXRpb25zIHVsIGxpIGltZyB7XHJcdFx0XHRcdG1heC13aWR0aDogMTAwJTtcclx0XHRcdFx0ZGlzcGxheTpibG9jaztcclx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XHJcdFx0XHR9XHJcdFx0XHRcclx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclx0LyogQVBJIENvbm5lY3Rpb24gU3R5bGVzICovXHJcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKi9cclx0I2Nvbm5lY3Rpb24tY29udGFpbmVyIHtcclx0XHRmbG9hdDogcmlnaHQ7XHJcdFx0Y29sb3I6ICNmZmZmZmY7XHJcdFx0cGFkZGluZzogLjI1ZW0gLjc1ZW0gLjI1ZW0gLjI1ZW07XHJcdFx0bWFyZ2luLXRvcDogLTRweDtcclx0fVxyXHRcdFxyXHRcdCNjb25uZWN0aW9uLWNvbnRhaW5lci5hcGktY29ubmVjdGVkIHtcclx0XHRcdGJhY2tncm91bmQ6IHJnYig2OCwgMTg2LCA2OCk7XHJcdFx0fVxyXHRcdFxyXHRcdCNjb25uZWN0aW9uLWNvbnRhaW5lci5hcGktbm90LWNvbm5lY3RlZCB7XHJcdFx0XHRiYWNrZ3JvdW5kOiByZ2IoMTgxLCAxODEsIDE4MSk7XHJcdFx0fVxyXHRcdFxyXHRcdC8qIEFkanVzdCBMaW5laGVpZ2h0IG9mIENvbmVuY3RlZCB2cyBOb3QtY29ubmVjdGVkIEljb25zICovXHJcdFx0Lnlpa2VzLW1jLWFwaS1jb25uZWN0ZWQsXHJcdFx0Lnlpa2VzLW1jLWFwaS1ub3QtY29ubmVjdGVkIHtcclx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xyXHRcdH1cclx0XHQvKiBFbmQgSWNvbiBsaW5lIGhlaWdodCBhZGp1c3RtZW50ICovXHJcdFxyXHQvKioqKioqKioqKioqKioqKioqKioqKiovXHJcdC8qICBTZXR0aW5ncyBTaWRlYmFyICAgKi9cclx0LyoqKioqKioqKioqKioqKioqKioqKiovXHJcdFx0LyogTGVhdmUgVXMgQSBSZXZpZXcgKi9cclx0XHQjcmV2aWV3LXlpa2VzLWVhc3ktbWMge1xyXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXHRcdH1cclx0XHRcdCNyZXZpZXcteWlrZXMtZWFzeS1tYyAuZGFzaGljb25zLXN0YXItZmlsbGVkIHtcclx0XHRcdFx0Y29sb3I6ICNFNkI4MDA7XHJcdFx0XHR9XHJcdFx0Lm1ldGEtYm94LXNvcnRhYmxlcyBociB7XHJcdFx0XHRtYXJnaW46IDEuNzVlbSAwIDAgMDtcclx0XHR9XHJcdFx0XHJcdC8qKioqKioqKioqKioqKioqKioqKioqKioqL1xyXHQvKlx0ICBBZG1pbiBOb3RpY2VzICAgKi9cclx0LyoqKioqKioqKioqKioqKioqKioqKioqKi9cclx0Lnlpa2VzLWVhc3ktbWMtdXBkYXRlZCB7XHJcdFx0ZGlzcGxheTogYmxvY2s7XHJcdFx0Ym9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjNEVBRUYwO1xyXHRcdG1hcmdpbjowIDIwcHggMnB4IDBweDtcclx0XHRtYXJnaW4tdG9wOiAxZW07XHJcdFx0bWFyZ2luLWJvdHRvbTogMWVtO1xyXHRcdHBhZGRpbmc6IDJweCAxMHB4O1xyXHRcdGJhY2tncm91bmQ6ICNmZmY7XHJcdFx0YmFja2dyb3VuZC1zaXplOiAxMjBweDtcclx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBib3R0b207XHJcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDI5cHg7XHJcdH1cclx0XHJcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXHQvKiBTaXIgVHJldm9yIENTUyBBZGp1c3RtZW50cyAgKi9cclx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclx0LnN0LWJsb2NrLWNvbnRyb2xzIGEge1xyXHRcdHRyYW5zaXRpb246IGNvbG9yIC4yNXMgZWFzZS1vdXQ7XHJcdFx0LW1vei10cmFuc2l0aW9uOiBjb2xvciAuMjVzIGVhc2Utb3V0O1xyXHRcdC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgLjI1cyBlYXNlLW91dDtcclx0XHQtby10cmFuc2l0aW9uOiBjb2xvciAuMjVzIGVhc2Utb3V0O1xyXHR9XHJcdC5zdC1ibG9jay11aS1idG4sIFxyXHQuc3QtYmxvY2stY29udHJvbC11aS1idG4ge1xyXHRcdGZvbnQtc2l6ZTogMWVtICFpbXBvcnRhbnQ7XHJcdH1cclx0XHRcclx0XHQvKiBPdmVycnJpZGUgQ29sdW1ucyBJY29uICovXHJcdFx0LyogRmlndXJlIG91dCBhIGJldHRlciB3YXkgdG8gYXNzaWduIHRoZSBmb250IGZhbWlseSAqL1xyXHRcdC5zdC1ibG9jay1jb250cm9scyAuc3QtYmxvY2stY29udHJvbFtkYXRhLXR5cGU9XCJDb2x1bW5zXCJdID4gc3BhbiB7XHJcdFx0XHRmb250LWZhbWlseTogJ1NULUNvbHVtbnMtSWNvbnMnICFpbXBvcnRhbnQ7XHJcdFx0fVxyXHRcdFxyXHRcdFxyXHRcdFxyLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cci8qXHRcdFx0ICAgIFN1cHBvcnQgUGFnZVx0XHQgICovXHIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyLnN1cHBvcnQtc2VjdGlvblx0e1xyXHRtYXJnaW46IDEuNWVtIDA7XHJcdHBhZGRpbmc6IDFlbSAwO1xyfVxyXHIuZ2l0aHViLW9jdG9jYXQge1xyXHRiYWNrZ3JvdW5kOiB1cmwoICcuLi8uLi9pbmNsdWRlcy9pbWFnZXMvU3VwcG9ydF9QYWdlL09jdG9jYXQucG5nJyApO1xyXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXHRiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XHJcdGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgdG9wO1xyXHR3aWR0aDogNTBweDtcclx0aGVpZ2h0OiA0NXB4O1xyXHRkaXNwbGF5OiBibG9jaztcclx0ZmxvYXQ6IGxlZnQ7XHJcdG1hcmdpbi10b3A6IC01cHg7XHJ9XHRcdFxyXHRcdFxyXHRcci8qKiBCcmVhayBQb2ludHMgKiovXHIvKiBBYm91dCBQYWdlICovXHJAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OTVweCkge1xyXHQjdGVhbS1tZW1iZXItY29udGFpbmVyIC50ZWFtLW1lbWJlciB7XHJcdFx0d2lkdGg6IDEwMCU7XHJcdH1cclx0XHJ9XHIvKiBPcHRpb25zIFBhZ2UgKi9cckBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg1MHB4KSB7XHJcdFxyXHQvKiBIaWRlIFNlbGVjdGVkIE9wdGlvbiBBcnJvdyB3aGVuIGl0IGRyb3BzIGJlbG93IHRoZSBtYWluIGNvbnRlbnQgYm94ICovXHJcdC5vcHRpb24tbWVudS1zZWxlY3RlZC1hcnJvdyB7XHJcdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXHR9XHJcdFxyfVxyXHIvKiBwcm8gdmVyc2lvbiBub3RpY2UgKi9cci5wcm8tdmVyc2lvbi1vbmx5LW5vdGljZSB7XHJcdGNvbG9yOiByZ2IoMjE3LCA5NiwgOTYpO1xyfVxyXHIvKiBVcGdyYWRlIEVsaXBzZXMgKi9cci51cGdyYWRpbmctZWxsaXBzZS1vbmUge1xyXHQtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTApXCI7XHJcdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcclx0LW1vei1vcGFjaXR5OiAwO1xyXHQta2h0bWwtb3BhY2l0eTogMDtcclx0b3BhY2l0eTogMDtcclx0LXdlYmtpdC1hbmltYXRpb246IGRvdCAxLjNzIGluZmluaXRlO1xyXHQtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4wcztcclx0YW5pbWF0aW9uOiBkb3QgMS4zcyBpbmZpbml0ZTtcclx0YW5pbWF0aW9uLWRlbGF5OiAwLjBzO1xyfVxyLnVwZ3JhZGluZy1lbGxpcHNlLXR3byB7XHJcdC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MClcIjtcclx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xyXHQtbW96LW9wYWNpdHk6IDA7XHJcdC1raHRtbC1vcGFjaXR5OiAwO1xyXHRvcGFjaXR5OiAwO1xyXHQtd2Via2l0LWFuaW1hdGlvbjogZG90IDEuM3MgaW5maW5pdGU7XHJcdC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjJzO1xyXHRhbmltYXRpb246IGRvdCAxLjNzIGluZmluaXRlO1xyXHRhbmltYXRpb24tZGVsYXk6IDAuMnM7XHJ9XHIudXBncmFkaW5nLWVsbGlwc2UtdGhyZWUge1xyXHQtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTApXCI7XHJcdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcclx0LW1vei1vcGFjaXR5OiAwO1xyXHQta2h0bWwtb3BhY2l0eTogMDtcclx0b3BhY2l0eTogMDtcclx0LXdlYmtpdC1hbmltYXRpb246IGRvdCAxLjNzIGluZmluaXRlO1xyXHQtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4zcztcclx0IGFuaW1hdGlvbjogZG90IDEuM3MgaW5maW5pdGU7XHJcdCBhbmltYXRpb24tZGVsYXk6IDAuM3M7XHJ9XHJcci8qIEFuaW1hdGlvbnMgKi9cckAtd2Via2l0LWtleWZyYW1lcyBkb3Qge1xyXHQgIDAlIHsgb3BhY2l0eTogMDsgfVxyXHQgNTAlIHsgb3BhY2l0eTogMDsgfVxyXHQxMDAlIHsgb3BhY2l0eTogMTsgfVxyfVxyQGtleWZyYW1lcyBkb3Qge1xyXHQgIDAlIHsgb3BhY2l0eTogMDsgfVxyXHQgNTAlIHsgb3BhY2l0eTogMDsgfVxyXHQxMDAlIHsgb3BhY2l0eTogMTsgfVxyfSJdfQ== */
|
84 |
* All of the CSS for your admin-specific functionality should be
|
85 |
* included in this file.
|
86 |
*/
|
87 |
.yikes-easy-mc-hidden {
|
88 |
}
|
89 |
.shortcode-input-field {
|
90 |
}
|
91 |
.edit-form-field-container-span {
|
92 |
}
|
93 |
.no-forms-widget {
|
94 |
}
|
95 |
.no-forms-found-icon {
|
96 |
}
|
97 |
.coming-soon-button {
|
98 |
}
|
99 |
/*****************************/
|
100 |
/* Dashboard Widgets */
|
101 |
/****************************/
|
102 |
/************************/
|
103 |
/* Global Styles */
|
104 |
/***********************/
|
105 |
/* Logo */
|
106 |
#review-yikes-easy-mailchimp-notice #yikes-mailchimp-logo {
|
107 |
/* Dismiss-able Notice */
|
108 |
#review-yikes-easy-mailchimp-notice {
|
109 |
}
|
110 |
/* Readonly Textareas */
|
111 |
textarea[readonly],
|
112 |
input[readonly],
|
113 |
textarea.readonly,
|
114 |
input.readonly {
|
115 |
}
|
116 |
.dashicons.yikes-love {
|
117 |
}
|
118 |
.field-description-input {
|
119 |
}
|
120 |
.yikes-easy-mc-postbox h3 {
|
121 |
background: #00a0d2;
|
122 |
}
|
123 |
.yikes-mc-warning-message {
|
124 |
}
|
125 |
.error-message-container label[for="yikes-easy-mc-success-message"],
|
126 |
.error-message-container label[for="yikes-easy-mc-general-error-message"],
|
127 |
.error-message-container label[for="yikes-easy-mc-invalid-email-message"],
|
128 |
.error-message-container label[for="yikes-easy-mc-user-subscribed-message"] {
|
129 |
}
|
130 |
.error-message-container label[for="yikes-easy-mc-user-subscribed-message"] {
|
131 |
}
|
132 |
.error-message-container label,
|
133 |
.form-settings-container label {
|
134 |
}
|
135 |
.yikes-easy-forms-sidebar .yikes-mc-settings-expansion-section {
|
136 |
}
|
137 |
.yikes-mc-settings-expansion-section {
|
138 |
}
|
139 |
/*********************************/
|
140 |
/** Settings/Options Page **/
|
141 |
/********************************/
|
142 |
/****************************************/
|
143 |
font-weight: 600;
|
144 |
font-family: "open sans";
|
145 |
font-size: 14px;
|
146 |
margin: 5px 5px 0 5px;
|
147 |
margin: 2px 2px 15px 2px !important;
|
148 |
table-layout: fixed;
|
|
|
|
|
|
1 |
* All of the CSS for your admin-specific functionality should be
|
2 |
* included in this file.
|
3 |
*/
|
4 |
|
5 |
.yikes-easy-mc-hidden {
|
6 |
}
|
7 |
|
8 |
.shortcode-input-field {
|
9 |
}
|
10 |
|
11 |
.edit-form-field-container-span {
|
12 |
}
|
13 |
|
14 |
.no-forms-widget {
|
15 |
}
|
16 |
|
17 |
.no-forms-found-icon {
|
18 |
}
|
19 |
|
20 |
.coming-soon-button {
|
21 |
}
|
22 |
/*****************************/
|
23 |
/* Dashboard Widgets */
|
24 |
/****************************/
|
25 |
/************************/
|
26 |
/* Global Styles */
|
27 |
/***********************/
|
28 |
|
29 |
/* Logo */
|
30 |
#review-yikes-easy-mailchimp-notice #yikes-mailchimp-logo {
|
31 |
/* Dismiss-able Notice */
|
32 |
#review-yikes-easy-mailchimp-notice {
|
33 |
}
|
34 |
|
35 |
/* Readonly Textareas */
|
36 |
textarea[readonly],
|
37 |
input[readonly],
|
38 |
textarea.readonly,
|
39 |
input.readonly {
|
40 |
}
|
41 |
|
42 |
.dashicons.yikes-love {
|
43 |
}
|
44 |
|
45 |
.field-description-input {
|
46 |
}
|
47 |
.yikes-easy-mc-postbox h3 {
|
48 |
background: #00a0d2;
|
49 |
}
|
50 |
.yikes-mc-warning-message {
|
51 |
}
|
52 |
|
53 |
.error-message-container label[for="yikes-easy-mc-success-message"],
|
54 |
.error-message-container label[for="yikes-easy-mc-general-error-message"],
|
55 |
.error-message-container label[for="yikes-easy-mc-invalid-email-message"],
|
56 |
.error-message-container label[for="yikes-easy-mc-user-subscribed-message"] {
|
57 |
}
|
58 |
|
59 |
|
60 |
.error-message-container label[for="yikes-easy-mc-user-subscribed-message"] {
|
61 |
}
|
62 |
|
63 |
.error-message-container label,
|
64 |
.form-settings-container label {
|
65 |
}
|
66 |
|
67 |
.yikes-easy-forms-sidebar .yikes-mc-settings-expansion-section {
|
68 |
}
|
69 |
|
70 |
.yikes-mc-settings-expansion-section {
|
71 |
}
|
72 |
/*********************************/
|
73 |
/** Settings/Options Page **/
|
74 |
/********************************/
|
75 |
/****************************************/
|
76 |
font-weight: 600;
|
77 |
font-family: "open sans";
|
78 |
font-size: 14px;
|
79 |
margin: 5px 5px 0 5px;
|
80 |
margin: 2px 2px 15px 2px !important;
|
81 |
table-layout: fixed;
|
82 |
+
/**
|
83 |
* All of the CSS for your admin-specific functionality should be
|
84 |
* included in this file.
|
85 |
*/
|
86 |
.yikes-easy-mc-hidden {
|
87 |
}
|
88 |
.shortcode-input-field {
|
89 |
}
|
90 |
.edit-form-field-container-span {
|
91 |
}
|
92 |
.no-forms-widget {
|
93 |
}
|
94 |
.no-forms-found-icon {
|
95 |
}
|
96 |
.coming-soon-button {
|
97 |
}
|
98 |
/*****************************/
|
99 |
/* Dashboard Widgets */
|
100 |
/****************************/
|
101 |
/************************/
|
102 |
/* Global Styles */
|
103 |
/***********************/
|
104 |
/* Logo */
|
105 |
#review-yikes-easy-mailchimp-notice #yikes-mailchimp-logo {
|
106 |
/* Dismiss-able Notice */
|
107 |
#review-yikes-easy-mailchimp-notice {
|
108 |
}
|
109 |
/* Readonly Textareas */
|
110 |
textarea[readonly],
|
111 |
input[readonly],
|
112 |
textarea.readonly,
|
113 |
input.readonly {
|
114 |
}
|
115 |
.dashicons.yikes-love {
|
116 |
}
|
117 |
.field-description-input {
|
118 |
}
|
119 |
.yikes-easy-mc-postbox h3 {
|
120 |
background: #00a0d2;
|
121 |
}
|
122 |
.yikes-mc-warning-message {
|
123 |
}
|
124 |
.error-message-container label[for="yikes-easy-mc-success-message"],
|
125 |
.error-message-container label[for="yikes-easy-mc-general-error-message"],
|
126 |
.error-message-container label[for="yikes-easy-mc-invalid-email-message"],
|
127 |
.error-message-container label[for="yikes-easy-mc-user-subscribed-message"] {
|
128 |
}
|
129 |
.error-message-container label[for="yikes-easy-mc-user-subscribed-message"] {
|
130 |
}
|
131 |
.error-message-container label,
|
132 |
.form-settings-container label {
|
133 |
}
|
134 |
.yikes-easy-forms-sidebar .yikes-mc-settings-expansion-section {
|
135 |
}
|
136 |
.yikes-mc-settings-expansion-section {
|
137 |
}
|
138 |
/*********************************/
|
139 |
/** Settings/Options Page **/
|
140 |
/********************************/
|
141 |
/****************************************/
|
142 |
font-weight: 600;
|
143 |
font-family: "open sans";
|
144 |
font-size: 14px;
|
145 |
margin: 5px 5px 0 5px;
|
146 |
margin: 2px 2px 15px 2px !important;
|
147 |
table-layout: fixed;
|
148 |
+
|
149 |
+
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInlpa2VzLWluYy1lYXN5LW1haWxjaGltcC1leHRlbmRlci1hZG1pbi5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUdBQW1HLEdBQUEseUJBQUksY0FBQSxHQUFpQyxHQUFBLDBCQUFBLGVBQTJCLEVBQUEsaURBQUEsR0FBMkQsR0FBQSxtQ0FBQSxlQUFBLEVBQUEsZUFBQSxHQUFBLEdBQUEsb0JBQUEsY0FBZ0gsR0FBQSxHQUFHLHdCQUFBLGdCQUFBLEVBQUEsaUJBQUEsRUFBQSxZQUFpRixFQUFBLDBCQUFBLEdBQUEsR0FBNEIsdUJBQUEsbUJBQUEsR0FBQSxFQUFBLG1DQUFrRSxnQkFBOEIsR0FBQSxpQkFBQSxHQUFBLEVBQUEsd0JBQThCLGNBQXdCLEVBQUEsRUFBQSxZQUFBLGNBQW9ELEVBQUEsRUFBQSxnQkFBQSxlQUFrQixFQUFBLG1CQUFBLEVBQUEsRUFBQSw2QkFBQSwwQkFBc0QsRUFBQSxFQUFBLDZCQUEwQixDQUFBLHVCQUFBLENBQUEsNEJBQW1FLENBQUEsOEJBQXNCLGNBQUEsRUFBQSxjQUFBLEVBQUEsRUFBQSxzQ0FBZ0UsY0FBc0QsRUFBQSxpQkFBQSxFQUFBLEVBQUEsMENBQUEsY0FBQSxHQUFBLEdBQUEsd0JBQUEsRUFBQSx1QkFBQSxFQUFBLHdCQUEySixFQUFBLHVCQUFPLHNCQUFBLEdBQUEsb0JBQUEsR0FBQSxHQUFBLHdDQUFBLG1CQUE0RyxHQUFBLEdBQUEsNEJBQUEsWUFBQSxHQUFBLEdBQUEsK0JBQUEsRUFBQSx5QkFBc0UsRUFBQSw4QkFBb0QsR0FBQSx1QkFBMEMsRUFBQSw4RkFBQSxzSEFBb0UsR0FBQSxzQkFBOEksR0FBQSxlQUFBLEdBQUEsYUFBQSxHQUFBLGtCQUF1RyxHQUFBLGlCQUFBLEdBQUEsR0FBQSxvREFBQSxXQUFBLEdBQTJDLEdBQUEsd0NBQWtFLFdBQUEsR0FBQSxtQkFBQSxHQUFBLEdBQUEsNkNBQUEsbUJBQUEsR0FBQSxHQUFBLGdCQUFBLEVBQUEsNkNBQWdLLFdBQUEsR0FBQSxHQUEw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QUFBLEdBQUEsMkRBQUEsaUJBQUEsSUFBQSx5QkFBQSxJQUFBLEdBQUEsOERBQUEsaUJBQUEsSUFBQSx5QkFBQSxJQUFBLEdBQUEsNkRBQUEsaUJBQUEsSUFBQSx5QkFBQSxJQUFBLEdBQUEsNERBQUEsaUJBQUEsSUFBQSx5QkFBQSxJQUFBLEVBQUEsbUNBQUEsQ0FBQSw0QkFBQSxDQUFBLGtDQUFBLENBQUEsbURBQUEsZ0JBQUEsR0FBQSxpQkFBQSxFQUFBLEVBQUEsb0NBQUEsZUFBQSxFQUFBLGFBQUEsRUFBQSxFQUFBLDBCQUFBLHVCQUFBLEVBQUEsRUFBQSwrQkFBQSxlQUFBLEVBQUEsYUFBQSxFQUFBLEVBQUEsK0JBQUEsQ0FBQSx1QkFBQSxDQUFBLDZCQUFBLEVBQUEsV0FBQSxDQUFBLHlCQUFBLFlBQUEsRUFBQSxFQUFBLHlHQUFBLGVBQUEsRUFBQSxnQkFBQSxFQUFBLEVBQUEsbUNBQUEsQ0FBQSxzQkFBQSxpQkFBQSxFQUFBLG1CQUFBLEVBQUEsOEJBQUEsRUFBQSxrQkFBQSxFQUFBLGVBQUEsRUFBQSxDQUFBLDZCQUFBLDhCQUFBLEVBQUEsQ0FBQSx1SUFBQSxtQ0FBQSxFQUFBLENBQUEsZ0NBQUEsZ0JBQUEsRUFBQSxDQUFBLHFEQUFBLGFBQUEsRUFBQSxDQUFBLDJCQUFBLGVBQUEsRUFBQSxtQkFBQSxFQUFBLEVBQUEsa0RBQUEsbUJBQUEsR0FBQSxDQUFBLHdCQUFBLG1CQUFBLEVBQUEsUUFBQSxFQUFBLFNBQUEsRUFBQSxlQUFBLEVBQUEsYUFBQSxFQUFBLENBQUEsNkJBQUEsbUJBQUEsRUFBQSxZQUFBLEVBQUEsZUFBQSxFQUFBLENBQUEsaUJBQUEseUJBQUEsRUFBQSxFQUFBLG1CQUFBLFVBQUEsRUFBQSxnQkFBQSxFQUFBLEVBQUEsa0VBQUEsMEJBQUEsRUFBQSxFQUFBLGlDQUFBLGVBQUEsRUFBQSxZQUFBLEVBQUEsbUJBQUEsRUFBQSxFQUFBLHVDQUFBLHNCQUFBLEdBQUEsV0FBQSxHQUFBLEdBQUEsOENBQUEsZ0JBQUEsSUFBQSxDQUFBLCtCQUFBLENBQUEsdURBQUEsc0JB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QUEsRUFBQSxFQUFBLHdCQUFBLENBQUEsNEJBQUEsd0JBQUEsRUFBQSxFQUFBLHNCQUFBLENBQUEsMEJBQUEsaUVBQUEsRUFBQSx5QkFBQSxFQUFBLGdCQUFBLEVBQUEsa0JBQUEsRUFBQSxXQUFBLEVBQUEscUNBQUEsRUFBQSw4QkFBQSxFQUFBLHFDQUFBLEVBQUEsNkJBQUEsRUFBQSw4QkFBQSxFQUFBLHNCQUFBLEVBQUEsQ0FBQSwwQkFBQSxpRUFBQSxFQUFBLHlCQUFBLEVBQUEsZ0JBQUEsRUFBQSxrQkFBQSxFQUFBLFdBQUEsRUFBQSxxQ0FBQSxFQUFBLDhCQUFBLEVBQUEscUNBQUEsRUFBQSw2QkFBQSxFQUFBLDhCQUFBLEVBQUEsc0JBQUEsRUFBQSxDQUFBLDRCQUFBLGlFQUFBLEVBQUEseUJBQUEsRUFBQSxnQkFBQSxFQUFBLGtCQUFBLEVBQUEsV0FBQSxFQUFBLHFDQUFBLEVBQUEsOEJBQUEsR0FBQSxxQ0FBQSxHQUFBLDZCQUFBLEdBQUEsOEJBQUEsR0FBQSxzQkFBQSxFQUFBLEVBQUEsZ0JBQUEsQ0FBQSw0QkFBQSxLQUFBLFdBQUEsRUFBQSxHQUFBLE1BQUEsV0FBQSxFQUFBLEVBQUEsT0FBQSxXQUFBLEVBQUEsRUFBQSxDQUFBLG9CQUFBLEtBQUEsV0FBQSxFQUFBLEdBQUEsTUFBQSxXQUFBLEVBQUEsRUFBQSxPQUFBLFdBQUEsRUFBQSxFQUFBIiwiZmlsZSI6Inlpa2VzLWluYy1lYXN5LW1haWxjaGltcC1leHRlbmRlci1hZG1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcciAqIEFsbCBvZiB0aGUgQ1NTIGZvciB5b3VyIGFkbWluLXNwZWNpZmljIGZ1bmN0aW9uYWxpdHkgc2hvdWxkIGJlXHIgKiBpbmNsdWRlZCBpbiB0aGlzIGZpbGUuXHIgKi9cciBcciAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHIgLypcdERhc2hib2FyZCBXaWRnZXRzICAgKi9cciAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclx0XHJcdC8qKiBMaXN0IFN0YXRpc3RpY3MgKiovXHJcdCN5aWtlc19lYXN5X21jX2xpc3Rfc3RhdHNfd2lkZ2V0IGgzIHNwYW4sXHJcdCN5aWtlc19lYXN5X21jX2FjY291bnRfYWN0aXZpdHlfd2lkZ2V0IGgzIHNwYW4ge1xyXHRcdHBhZGRpbmctbGVmdDogM2VtO1xyXHRcdGJhY2tncm91bmQ6IHVybCggJy4uLy4uL2luY2x1ZGVzL2ltYWdlcy9NYWlsQ2hpbXBfQXNzZXRzL0ZyZWRkaWVfb3JpZ2luYWwucG5nJyApO1xyXHRcdGJhY2tncm91bmQtc2l6ZTogMjVweDtcclx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXHRcdGRpc3BsYXk6IGJsb2NrO1xyXHRcdGhlaWdodDogMzBweDtcclx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDNweDtcclx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IDhweDtcclx0XHRwYWRkaW5nLXRvcDogNXB4O1xyXHR9XHJcdFxyXHQjeWlrZXNfZWFzeV9tY19hY2NvdW50X2FjdGl2aXR5X3dpZGdldCBoMy5obmRsZSB7XHJcdFx0cGFkZGluZzogMDtcclx0fVxyXHRcclx0I3lpa2VzX2Vhc3lfbWNfbGlzdF9zdGF0c193aWRnZXQgaDMge1xyXHRcdHBhZGRpbmc6IDA7XHJcdFx0bGluZS1oZWlnaHQ6IDEuNmVtO1xyXHR9XHJcdFxyXHQjeWlrZXMtZWFzeS1tYy1kYXNoYm9hcmQtd2lkZ2V0LXN0YXRzIGgzIHtcclx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcdH1cclx0XHJcdC8qIFN0YXQgVGFibGUgKi9cclx0I3lpa2VzX2Vhc3lfbWNfbGlzdF9zdGF0c193aWRnZXQgLmluc2lkZSB7XHJcdFx0cGFkZGluZzogMDtcclx0fVxyXHRcdFxyXHQueWlrZXMtZWFzeS1tYy1zdGF0cy10YWJsZSB7XHJcdFx0bWFyZ2luLXRvcDogMWVtO1xyXHR9XHJcdFxyXHQueWlrZXMtZWFzeS1tYy1zdGF0cy10YWJsZSxcclx0Lnlpa2VzLWVhc3ktbWMtc3RhdHMtdGFibGUgdGJvZHksXHJcdC55aWtlcy1lYXN5LW1jLXN0YXRzLXRhYmxlIC55aWtlcy1lYXN5LW1jLXRhYmxlLXN0YXRzLXRyIHtcclx0XHRkaXNwbGF5OiBibG9jaztcclx0XHR3aWR0aDogMTAwJTtcclx0fVx0XHJcdFx0Lnlpa2VzLWVhc3ktbWMtdGFibGUtc3RhdHMtdHIgdGQge1xyXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXHRcdFx0d2lkdGg6IDQ4JTtcclx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclx0XHR9XHJcdFx0XHJcdFx0Lnlpa2VzLWVhc3ktbWMtdGFibGUtc3RhdHMtdHIgdGQ6aG92ZXIge1xyXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xyXHRcdH1cclx0XHRcclx0XHQueWlrZXMtZWFzeS1tYy10YWJsZS1zdGF0cy10ciB0ZDpmaXJzdC1vZi10eXBlIHtcclx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlY2VjZWM7XHJcdFx0fVxyXHRcdFxyXHRcdC55aWtlcy1lYXN5LW1jLXN0YXRzLXRhYmxlIC55aWtlcy1lYXN5LW1jLXRhYmxlLXN0YXRzLXRyLWZpcnN0IHtcclx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWNlY2VjO1xyXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNlY2VjZWM7XHJcdFx0fVxyXHRcdFxyXHRcdCN5aWtlcy1lYXN5LW1jLXdpZGdldC1zdGF0LWhvbGRlciB7XHJcdFx0XHRtYXJnaW4tdG9wOiAxZW07XHJcdFx0fVxyXHRcdFxyXHRcdC55aWtlcy1lYXN5LW1jLXN0YXRzLXRhYmxlIHAueWlrZXMtZWFzeS1tYy1kYXNoYm9hcmQtc3RhdCB7XHJcdFx0XHRjb2xvcjogIzUyQkFENTtcclx0XHRcdGZvbnQtd2VpZ2h0OiA4MDA7XHJcdFx0XHRmb250LXNpemU6IDIwcHg7XHJcdFx0XHRtYXJnaW4tYm90dG9tOiAycHg7XHJcdFx0XHRtYXJnaW4tdG9wOiAxNXB4O1xyXHRcdFx0bGluZS1oZWlnaHQ6IDEuMjtcclx0XHRcdG1heC1oZWlnaHQ6IDgwcHg7XHJcdFx0fVxyXHRcdC55aWtlcy1lYXN5LW1jLXN0YXRzLXRhYmxlIHAueWlrZXMtZWFzeS1tYy1zdGF0LWxpc3QtbGFiZWwge1xyXHRcdFx0Zm9udC1zaXplOiAxM3B4O1xyXHRcdFx0bWFyZ2luLXRvcDogMDtcclx0XHRcdG1hcmdpbi1ib3R0b206IDE1cHg7XHJcdFx0XHRmb250LWZhbWlseTogXCJPcGVuIFNhbnNcIjtcclx0XHR9XHJcdFx0XHJcdC8qKiBBY2NvdW50IEFjdGl2aXR5ICoqL1xyXHQjeWlrZXNfZWFzeV9tY19hY2NvdW50X2FjdGl2aXR5X3dpZGdldCB0YWJsZSB0aC5yb3ctdGl0bGUge1xyXHRcdHBhZGRpbmctbGVmdDogMTBweDtcclx0fVxyXHRcclx0LyogVGhpY2tib3ggZm9yIFRhZ3MgKi9cclx0I3ByZS1kZWZpbmVkLXRhZy1pbnRlcmlvci1jb250YWluZXIge1xyXHRcdGJhY2tncm91bmQ6IHVybCguLi8uLi9pbmNsdWRlcy9pbWFnZXMvdGlueU1DRS95aWtlcy1tYWlsY2hpbXAtY29tYm8tZmFkZWQucG5nKSBib3R0b20gcmlnaHQgbm8tcmVwZWF0ICNmZmY7XHJcdFx0YmFja2dyb3VuZC1zaXplOiA0MCU7XHJcdH1cclx0XHJcdC8qKiBRdGlwIFRvb2x0aXBzICoqL1xyXHQucXRpcC1kZWZhdWx0IHsgXHJcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgXHJcdFx0Ym9yZGVyOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyBcclx0XHR6LWluZGV4OiA5OTk5OTk5ICFpbXBvcnRhbnQ7IFxyXHR9XHJcdFxyXHQucXRpcC1ib290c3RyYXAgeyBcclx0XHRwYWRkaW5nOiAxMHB4ICFpbXBvcnRhbnQ7IFxyXHRcdHotaW5kZXg6IDk5OTk5OTkgIWltcG9ydGFudDsgXHJcdFx0Zm9udC1zaXplOjEycHg7IFxyXHR9XHJcdFx0XHJcdC50b29sdGlwLWludGVncmF0aW9uLWJhbm5lciB7IFxyXHRcdG1heC13aWR0aDogMTAwJTsgXHJcdFx0bWFyZ2luOiAwIDAgLjI1ZW0gMDsgXHJcdH1cdFxyXHRcclx0LnRvb2x0aXB0ZXh0LnF0aXAtYm9vdHN0cmFwIHtcclx0XHRmb250LXNpemU6IDEycHg7XHJcdH1cclx0XHJcdC50b29sdGlwLXRpdGxlIHtcclx0XHRtYXJnaW46IDA7XHJcdH1cclx0XHJcdC5kYXNoaWNvbnMtZWRpdG9yLWhlbHA6aG92ZXIge1xyXHRcdGN1cnNvcjogcG9pbnRlcjtcclx0fVxyXHRcclx0LyogVGlueU1DRSBCdXR0b24gSWNvbiAqL1xyXHRpLm1jZS1pY28ubWNlLWkteWtzX21jX3RpbnltY2VfYnV0dG9uX2tleSB7XHJcdFx0YmFja2dyb3VuZDogdXJsKCAnLi4vLi4vaW5jbHVkZXMvaW1hZ2VzL3RpbnlNQ0UvRnJlZGRpZV93aW5rLnBuZycpO1xyXHRcdGJhY2tncm91bmQtc2l6ZTogMThweDtcclx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDFweDtcclx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXHR9XHJcdFxyXHQvKiBUaW55TUNFIE1vZGFsICovXHJcdCN5aWtlc19tYWlsY2hpbXBfdGlueU1DRV9tb2RhbC10aXRsZSB7XHJcdFx0cGFkZGluZy1sZWZ0OiA0MnB4O1xyXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnLi4vLi4vaW5jbHVkZXMvaW1hZ2VzL01haWxDaGltcF9Bc3NldHMvRnJlZGRpZV9vcmlnaW5hbC5wbmcnKTtcclx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXHRcdGJhY2tncm91bmQtc2l6ZTogMjVweDtcclx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0O1xyXHRcdGJhY2tncm91bmQtcG9zaXRpb24teDogMTBweDtcclx0fVxyXHRcclx0LyogTW9kYWwgQmFja2dyb3VuZCBUZXN0ICovXHJcdCN5aWtlc19tYWlsY2hpbXBfdGlueU1DRV9tb2RhbCB7XHJcdFx0YmFja2dyb3VuZDogI2ZmZiB1cmwoJy4uLy4uL2luY2x1ZGVzL2ltYWdlcy90aW55TUNFL3lpa2VzLW1haWxjaGltcC1jb21iby1mYWRlZC5wbmcnKTtcclx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gbGVmdDtcclx0XHRiYWNrZ3JvdW5kLXNpemU6IDQwJTtcclx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IDEwcHg7XHJcdFx0YmFja2dyb3VuZC1wb3NpdGlvbi15OiA5NSU7XHJcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclx0fVxyXHRcdCN5aWtlc19tYWlsY2hpbXBfdGlueU1DRV9tb2RhbCAubWNlLWZvb3Qge1xyXHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcdFx0fVxyLyoqKioqKioqKioqKioqKioqKioqKioqKioqKi9cci8qXHRcdEZyb250IGVuZCBXaWRnZXRcdCAqL1xyLyoqKioqKioqKioqKioqKioqKioqKioqKioqL1xyKltpZCo9XCJfeWlrZXNfZWFzeV9tY193aWRnZXRcIl0gPiBkaXYud2lkZ2V0LXRvcCA+IGRpdi53aWRnZXQtdGl0bGUgPiBoNCB7XHJcdGJhY2tncm91bmQ6ICNGQUZBRkEgdXJsKCcuLi8uLi9pbmNsdWRlcy9pbWFnZXMvTWFpbENoaW1wX0Fzc2V0cy9GcmVkZGllX29yaWdpbmFsLnBuZycpO1xyXHRiYWNrZ3JvdW5kLXNpemU6IDI1cHg7XHJcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcdGJhY2tncm91bmQtcG9zaXRpb24teDogMTJweDtcclx0YmFja2dyb3VuZC1wb3NpdGlvbi15OiA3cHg7XHJcdHBhZGRpbmctbGVmdDogNDhweDtccn1cclxyIC8qKioqKioqKioqKioqKioqKioqKioqKiovXHIgLypcdCAgIEdsb2JhbCBTdHlsZXNcdCAgKi9cciAvKioqKioqKioqKioqKioqKioqKioqKiovXHIgXHIgLyogTG9nbyAqL1xyICNyZXZpZXcteWlrZXMtZWFzeS1tYWlsY2hpbXAtbm90aWNlICN5aWtlcy1tYWlsY2hpbXAtbG9nbyB7XHJcdGhlaWdodDogODBweDtcclx0d2lkdGg6IDgwcHg7XHJcdGZvbnQtc2l6ZTogMTRweDtcclx0dGV4dC1hbGlnbjogY2VudGVyO1xyXHRiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uL2luY2x1ZGVzL2ltYWdlcy9XZWxjb21lX1BhZ2UveWlrZXMtbWFpbGNoaW1wLXdlbGNvbWUtbG9nby5wbmcnKSBuby1yZXBlYXQ7XHJcdGJhY2tncm91bmQtc2l6ZTogNjBweDtcclx0ZmxvYXQ6IGxlZnQ7XHJ9XHJcclx0LyogQnV0dG9uIENvbnRhaW5lciBpbiBSZXZpZXcgVXMgQ29udGFpbmVyICovXHJcdCNyZXZpZXcteWlrZXMtZWFzeS1tYWlsY2hpbXAtbm90aWNlIC5idXR0b24tY29udGFpbmVyIHtcclx0XHRkaXNwbGF5OiBibG9jaztcclx0XHR3aWR0aDogMTAwJTtcclx0XHRtYXJnaW46IC43NWVtIDAgMS41ZW0gMDtcclx0fVxyXHRcclx0XHQjcmV2aWV3LXlpa2VzLWVhc3ktbWFpbGNoaW1wLW5vdGljZSAuYnV0dG9uLWNvbnRhaW5lciAuZGFzaGljb25zIHtcclx0XHRcdGZvbnQtc2l6ZTogMTRweDtcclx0XHRcdGxpbmUtaGVpZ2h0OiAxLjk7XHJcdFx0XHRtYXJnaW4tbGVmdDogLTRweDtcclx0XHR9XHJcdFx0XHJcdFx0LyogU3RhciBJY29uICovXHJcdFx0I3Jldmlldy15aWtlcy1lYXN5LW1haWxjaGltcC1ub3RpY2UgLmJ1dHRvbi1jb250YWluZXIgLmRhc2hpY29ucy1zdGFyLWZpbGxlZCB7XHJcdFx0XHRjb2xvcjogI0U2QjgwMDtcclx0XHR9XHJcdFx0XHJcdFx0LyogVXBncmFkZSBJY29uICovXHJcdFx0I3Jldmlldy15aWtlcy1lYXN5LW1haWxjaGltcC1ub3RpY2UgLmJ1dHRvbi1jb250YWluZXIgLmRhc2hpY29ucy11cGxvYWQge1xyXHRcdFx0Y29sb3I6ICM2RTg4NDE7XHJcdFx0fVxyXHJcdFx0LyogRGlzbWlzcyBJY29uICovXHJcdFx0I3Jldmlldy15aWtlcy1lYXN5LW1haWxjaGltcC1ub3RpY2UgLmJ1dHRvbi1jb250YWluZXIgLmRhc2hpY29ucy1uby1hbHQge1xyXHRcdFx0Y29sb3I6IHJnYigyMjAsIDU4LCA1OCk7XHJcdFx0XHRsaW5lLWhlaWdodDogMjtcclx0XHR9XHJcdFx0XHJcdFx0Ym9keS5lYXN5LW1haWxjaGltcF9wYWdlX3lpa2VzLWluYy1lYXN5LW1haWxjaGltcC1zZXR0aW5ncyAuZGFzaGljb25zLW5vLWFsdCB7XHJcdFx0XHRjb2xvcjogcmdiKDIyMCwgNTgsIDU4KTtcclx0XHR9XHJcdFx0XHJcdFx0I3Jldmlldy15aWtlcy1lYXN5LW1haWxjaGltcC1ub3RpY2UgLmJ1dHRvbi1jb250YWluZXIgYSB7XHJcdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcdFx0fVxyXHIgLyogRGlzbWlzc2FibGUgTm90aWNlICovXHIgI3Jldmlldy15aWtlcy1lYXN5LW1haWxjaGltcC1ub3RpY2Uge1xyXHRib3JkZXItbGVmdDogNHB4IHNvbGlkICM1MkJBRDU7XHJcdGJhY2tncm91bmQ6ICNmZWZlZmU7XHJcdHBhZGRpbmc6IDFweCAxMnB4O1xyXHRib3gtc2hhZG93OiAwIDFweCAxcHggMCByZ2JhKDAsMCwwLC4xKTtcclx0LXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAxcHggMCByZ2JhKDAsMCwwLC4xKTtcclx0bWFyZ2luOiAxNXB4IDI1cHggMjBweCA1cHg7XHIgfVxyIFxyIC8qIFJlYWRvbmx5IFRleHRhcmVhcyAqL1xyIHRleHRhcmVhW3JlYWRvbmx5XSxcciBpbnB1dFtyZWFkb25seV0sXHIgdGV4dGFyZWEucmVhZG9ubHksXHIgaW5wdXQucmVhZG9ubHkge1xyXHRiYWNrZ3JvdW5kOiAjZWVlO1xyIH1cciBcciAuZGFzaGljb25zLnlpa2VzLWxvdmUge1xyXHRjb2xvcjogcGluaztcciB9XHIgXHIgLmZpZWxkLWRlc2NyaXB0aW9uLWlucHV0IHtcclx0cmVzaXplOiB2ZXJ0aWNhbDtcclx0bWF4LWhlaWdodDogMTAwcHg7XHIgfVxyIC55aWtlcy1lYXN5LW1jLXBvc3Rib3ggaDMge1xyICAgIGJhY2tncm91bmQ6ICM1MkJBRDU7XHJcdGZvbnQtd2VpZ2h0OiA4MDA7XHJcdGNvbG9yOiAjZmZmZmZmO1xyIH1cclx0Lnlpa2VzLWVhc3ktbWMtcG9zdGJveCBoMy5iZy10cmFuc3BhcmVudCB7XHJcdFx0Y29sb3I6ICMzMzM7XHJcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcclx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclx0fVxyXHRcciAueWlrZXMtbWMtd2FybmluZy1tZXNzYWdlIHtcclx0cGFkZGluZy1sZWZ0OiAxNXB4O1xyXHRtYXJnaW4tdG9wOiAwO1xyXHRwYWRkaW5nLXRvcDogMTBweDtcclx0Y29sb3I6IHJnYigyMTgsIDExMCwgMTEwKTtcciB9XHIgXHIgLmVycm9yLW1lc3NhZ2UtY29udGFpbmVyIGxhYmVsIHtcclx0ZGlzcGxheTogYmxvY2s7IFxyXHRtYXJnaW46IDFlbSAwO1xyIH1cciBcciAueWlrZXMtbWMtc2V0dGluZ3MtZXhwYW5zaW9uLXNlY3Rpb24ge1xyXHRkaXNwbGF5OiBub25lO1xyIH1cclx0LmV4cGFuc2lvbi1zZWN0aW9uLXRpdGxlIHtcclx0XHRiYWNrZ3JvdW5kOiAjZmZmZmZmO1xyXHR9XHJcdC5leHBhbnNpb24tc2VjdGlvbi10aXRsZS5zZXR0aW5ncy1zaWRlYmFyLCAuZm9ybS1idWlsZGVyLXNlY3Rpb24tdGl0bGUge1xyXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclx0XHRkaXNwbGF5OiBibG9jaztcclx0XHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE3NywgMTc3LCAxNzcsIDAuNzEpO1xyXHRcdGNvbG9yOiAjMzMzMzMzO1xyXHRcdHBhZGRpbmc6IDVweDtcclx0XHRtYXJnaW46IC41ZW0gMDtcclx0fVxyXHQuZXhwYW5zaW9uLXNlY3Rpb24tdGl0bGUuc2V0dGluZ3Mtc2lkZWJhciAuZGFzaGljb25zLCAuZm9ybS1idWlsZGVyLXNlY3Rpb24tdGl0bGUgLmRhc2hpY29ucyB7XHJcdFx0Y29udGVudDogXCJcXGYxMzJcIjtcclx0XHRmb250LWZhbWlseTogXCJkYXNoaWNvbnNcIjtcclx0XHRmb250LXNpemU6IDE1cHg7XHJcdFx0bGluZS1oZWlnaHQ6IDEuNTtcclx0fVxyIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHIgLyoqIFNldHRpbmdzL09wdGlvbnMgUGFnZSAgKiovXHIgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXHQvKiBBYm91dCBUZXh0IFNwYWNpbmcgKi9cclx0Lnlpa2VzLWVhc3ktbWMtYWJvdXQtdGV4dCB7IFxyXHRcdG1hcmdpbi10b3A6IDA7IFxyXHR9XHJcdFxyXHQvKiBJbnB1dCBGaWVsZCBTdHlsZXMgKi9cclx0I3lrcy1tYWlsY2hpbXAtZG91YmxlLW9wdGluLW1lc3NhZ2UsXHJcdCN5a3MtbWFpbGNoaW1wLXNpbmdsZS1vcHRpbi1tZXNzYWdlLFxyXHQuc2V0dGluZ3MtcGFnZS1pbnB1dCB7XHJcdFx0d2lkdGg6IDUwJTtcclx0fVxyXHRcclx0I3lrcy1tYWlsY2hpbXAtZG91YmxlLW9wdGluLW1lc3NhZ2UsXHJcdCN5a3MtbWFpbGNoaW1wLXNpbmdsZS1vcHRpbi1tZXNzYWdlIHtcclx0XHRtaW4taGVpZ2h0OiA3NXB4O1xyXHRcdG1heC1oZWlnaHQ6IDIwMHB4O1xyXHRcdHJlc2l6ZTogdmVydGljYWw7XHJcdH1cclx0XHJcdCNzZXR0aW5ncy1uYXYgbGkgYSB7XHJcdFx0Y29sb3I6ICMzMzMzMzM7XHJcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XHJcdFx0IHRyYW5zaXRpb246IGNvbG9yIC4xNXMgZWFzZS1vdXQ7XHJcdFx0LW1vei10cmFuc2l0aW9uOiBjb2xvciAuMTVzIGVhc2Utb3V0O1xyXHRcdC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgLjE1cyBlYXNlLW91dDtcclx0XHQtby10cmFuc2l0aW9uOiBjb2xvciAuMTVzIGVhc2Utb3V0O1xyXHR9XHJcdFx0I3NldHRpbmdzLW5hdiBsaSBhOmhvdmVyIHtcclx0XHRcdGNvbG9yOiAjNTJCQUQ1ICFpbXBvcnRhbnQ7XHJcdFx0fVxyXHRcclx0LyogU2VsZWN0ZWQgT3B0aW9ucyBQYWdlIEFycm93ICovXHJcdC5vcHRpb24tbWVudS1zZWxlY3RlZC1hcnJvdyB7XHJcdFx0d2lkdGg6IDA7IFxyXHRcdGhlaWdodDogMDsgXHJcdFx0Ym9yZGVyLXRvcDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcclx0XHRib3JkZXItYm90dG9tOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50OyBcclx0XHRib3JkZXItcmlnaHQ6IDEwcHggc29saWQgYmx1ZTsgXHJcdFx0Ym9yZGVyLXJpZ2h0OiAxMHB4IHNvbGlkICNmZmY7XHJcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXHRcdGxlZnQ6IC0uNmVtO1xyXHR9XHJcdFxyXHQub3B0aW9uLW1lbnUtc2VsZWN0ZWQtYXJyb3crYSB7XHJcdFx0Y29sb3I6ICM1MkJBRDUgIWltcG9ydGFudDtcclx0fVxyXHRcclx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcdC8qXHRcdFx0RGVidWcgUGFnZVx0XHQgKi9cclx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXHQjeWlrZXMtbWFpbGNoaW1wLWVycm9yLWxvZyAucm93LXRpdGxlIHtcclx0XHRmb250LXdlaWdodDogNDAwO1xyXHR9XHJcdFxyXHQuY3JlYXRlLWVycm9yLWxvZy1oZWxwOmhvdmVyIHtcclx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcdH1cclx0XHIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyLypcdFx0TGlzdHMgUGFnZVx0XHRcdCAqL1xyLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyLmxpc3QtcmF0aW5nLXN0YXIge1xyXHRjb2xvcjogI0U2QjgwMDtccn1cci8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHIvKlx0XHRBY2NvbnQgRGV0YWlscyBQYWdlXHQqL1xyLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyLyogQ2hpbXAgQ2hhdHRlciAqL1xyI2NoaW1wLWNoYXR0ZXIge1xyXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJ9XHJcdCNjaGltcC1jaGF0dGVyIC5jaGltcC1jaGF0dGVyLWNvbnRhaW5lciB7XHJcdFx0bWFyZ2luOiAyZW0gMDtcclx0XHRiYWNrZ3JvdW5kOiAjRjhGOEY4O1xyXHRcdGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcdFx0cGFkZGluZzogMTBweDtcclx0fVxyLyogSW5hY3RpdmUgKyBBY3RpdmUgTWFya2VycyAqL1xyLmNpcmNsZS1hY2NvdW50LWluYWN0aXZlIHtcclx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXHRtYXJnaW4tdG9wOiAtM3B4O1xyXHRtYXJnaW4tcmlnaHQ6IDVweDtcclx0aGVpZ2h0OiAxNXB4O1xyXHR3aWR0aDogMTVweDtcclx0Ym9yZGVyLXJhZGl1czogNTAlO1xyXHRiYWNrZ3JvdW5kOiByZ2JhKDI1MCwgMTM4LCAxMzgsIDAuNzkpO1xyfVxyLmNoYXR0ZXItdHlwZSB7XHIgICAgZm9udC13ZWlnaHQ6IDYwMDtcciAgICBmb250LWZhbWlseTogXCJvcGVuIHNhbnNcIjtcciAgICBmb250LXNpemU6IDE0cHg7XHIgICAgbWFyZ2luOiA1cHg7XHJ9XHIuY2hhdHRlci1tZXNzYWdlIHtcdFxyICAgbWFyZ2luOiAxNXB4ICFpbXBvcnRhbnQ7XHJ9XHIuY2lyY2xlLWFjY291bnQtYWN0aXZlIHtcclx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXHRtYXJnaW4tdG9wOiAtM3B4O1xyXHRtYXJnaW4tcmlnaHQ6IDVweDtcclx0aGVpZ2h0OiAxNXB4O1xyXHR3aWR0aDogMTVweDtcclx0Ym9yZGVyLXJhZGl1czogNTAlO1xyXHRiYWNrZ3JvdW5kOiByZ2JhKDEyOCwgMjE0LCAxMjgsIDAuNzcpO1xyfVxyI2FjY291bnQtZGV0YWlscyAubWFpbGNoaW1wLWF2YXRhciB7XHJcdHdpZHRoOiAxMjBweDtcclx0Ym9yZGVyLXJhZGl1czogMTAlO1xyfVxyLyogQ2hhdHRlciBDb250YWluZXIgQ29sb3JzICovXHIuY2hpbXAtY2hhdHRlci1wb3NpdGl2ZSB7XHJcdGJvcmRlci10b3A6IDJweCBzb2xpZCByZ2IoMTU3LCAyMjMsIDE1Nyk7XHJ9XHIuY2hpbXAtY2hhdHRlci1uZWdhdGl2ZSB7XHJcdGJvcmRlci10b3A6IDJweCBzb2xpZCAjRkJBMkEyO1xyfVxyLmNoaW1wLWNoYXR0ZXItbmV1dHJhbCB7XHJcdGJvcmRlci10b3A6IDJweCBzb2xpZCByZ2IoMTc3LCAxNzcsIDE3Nyk7XHJ9XHIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHIvKlx0ICBNYW5hZ2UgTGlzdHMgUGFnZSAqL1xyLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHIvKiBNZXJnZSBWYXJpYWJsZSAvIEludGVyZXN0IEdyb3VwIFRvZ2dsZSAqL1xyLm12X2lnX2xpc3Qge1xyXHR3aWR0aDoxMDAlO1xyXHRtYXJnaW4tYm90dG9tOiAuMjVlbTtccn1cclx0Lm12X2lnX2xpc3QgLmxpc3QtY29udGFpbmVyIHtcclx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcdH1cclx0Lm12X2lnX2xpc3QgYSB7XHJcdFx0d2lkdGg6IDQ4JTtcclx0XHRwYWRkaW5nOiA1cHggMCAhaW1wb3J0YW50O1xyXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclx0XHRtYXJnaW46IDA7XHJcdH1cclx0Lm12X2lnX2xpc3QgYTpmaXJzdC1jaGlsZCB7XHJcdFx0bWFyZ2luLXJpZ2h0OiAwO1xyXHR9XHJcdC5tdl9pZ19saXN0IGE6bGFzdC1jaGlsZCB7XHJcdFx0ZmxvYXQ6IHJpZ2h0O1xyXHR9XHJcdFxyXHQubXZfaWdfbGlzdCB7XHJcdFx0bWFyZ2luLWJvdHRvbTogLjVlbTtcclx0fVxyXHQubXZfaWdfbGlzdCAubmF2LXRhYiB7XHJcdFx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcclx0fVx0XHJcdFx0Lm12X2lnX2xpc3QgLm5hdi10YWItYWN0aXZlIHtcclx0XHRcdGNvbG9yOiAjZmZmO1xyXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcdFx0XHRiYWNrZ3JvdW5kOiAjNTJiYWQ1O1xyXHRcdH1cclx0XHRcclx0Lm12X2lnX2xpc3QgLmFycm93LWRvd24ge1xyXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclx0XHRtYXJnaW4tdG9wOiAyMXB4O1xyXHRcdG1hcmdpbi1sZWZ0OiA1MHB4O1xyXHRcdHdpZHRoOiAwOyBcclx0XHRoZWlnaHQ6IDA7IFxyXHRcdGJvcmRlci1sZWZ0OiAxMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXHRcdGJvcmRlci1yaWdodDogMTJweCBzb2xpZCB0cmFuc3BhcmVudDtcclx0XHRib3JkZXItdG9wOiAxMnB4IHNvbGlkICM1MkJBRDU7XHJcdH1cclx0XHIjY29udGFpbmVyLWNvbnRhaW5lciB7XHJcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclx0d2lkdGg6IDUyMXB4O1xyfVxyXHQjY29udGFpbmVyLWNvbnRhaW5lciAubGlzdC1jb250YWluZXIge1xyXHRcdGZsb2F0OiBsZWZ0O1xyXHRcdHdpZHRoOiAyNTRweDtcclx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcdH1cclx0I2NvbnRhaW5lci1jb250YWluZXIgLmxpc3QtY29udGFpbmVyOmxhc3QtY2hpbGQge1xyXHRcdG1hcmdpbi1sZWZ0OiAxZW07XHJcdH1cclx0XHIjeWlrZXNfZWFzeV9tY190b29sYmFyIHtcclx0bWFyZ2luLXRvcDogLS43NWVtO1xyfVxyI3lpa2VzX2Vhc3lfbWNfdG9vbGJhcl9saW5rcyB7XHJcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclx0d2lkdGg6IDEwMCU7XHJcdG1hcmdpbjogMDtcclx0cGFkZGluZzogMTBweCAwO1xyfVxyXHQjeWlrZXNfZWFzeV9tY190b29sYmFyX2xpbmtzIGxpIHtcclx0XHRmbG9hdDogbGVmdDtcclx0XHRtYXJnaW46IDAgLjVlbTtcclx0fVxyXHQjeWlrZXNfZWFzeV9tY190b29sYmFyX2xpbmtzIGxpIGEge1xyXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclx0fVxyXHQjeWlrZXNfZWFzeV9tY190b29sYmFyX2xpbmtzIGxpIGEuc2VsZWN0ZWRfaGlkZGVuX3NldHRpbmcge1xyXHRcdGNvbG9yOiAjMzMzMzMzO1xyXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDIwNiwgMjA2LCAyMDYsIDEpO1xyXHRcdG1hcmdpbi1ib3R0b206IDNweDtcclx0fVxyXHQjeWlrZXNfZWFzeV9tY190b29sYmFyX2xpbmtzIGxpIC5zZWxlY3RlZF9zZXR0aW5nX3RyaWFuZ2xlIHtcclx0XHR3aWR0aDogMDsgXHJcdFx0aGVpZ2h0OiAwOyBcclx0XHRib3JkZXItbGVmdDogMTNweCBzb2xpZCB0cmFuc3BhcmVudDtcclx0XHRib3JkZXItcmlnaHQ6IDEzcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcdFx0Ym9yZGVyLXRvcDogMTNweCBzb2xpZCByZ2JhKDIwNiwgMjA2LCAyMDYsIDEpO1xyXHRcdG1hcmdpbjogMCBhdXRvO1xyXHR9XHJcdFx0LyogVG9vbGJhciBJY29ucyAqL1xyXHRcdCN5aWtlc19lYXN5X21jX3Rvb2xiYXJfbGlua3MgbGkgYS5mb3JtLWJ1aWxkZXI6YmVmb3JlIHtcclx0XHRcdGNvbnRlbnQ6IFwiXFxmMTE2XCI7XHJcdFx0XHRmb250LWZhbWlseTogXCJkYXNoaWNvbnNcIjtcclx0XHR9XHJcdFx0I3lpa2VzX2Vhc3lfbWNfdG9vbGJhcl9saW5rcyBsaSBhLmZvcm0tY3VzdG9taXplcjpiZWZvcmUge1xyXHRcdFx0Y29udGVudDogXCJcXGYxMDBcIjtcclx0XHRcdGZvbnQtZmFtaWx5OiBcImRhc2hpY29uc1wiO1xyXHRcdH1cclx0XHQjeWlrZXNfZWFzeV9tY190b29sYmFyX2xpbmtzIGxpIGEuZXJyb3ItbWVzc2FnZXM6YmVmb3JlIHtcclx0XHRcdGNvbnRlbnQ6IFwiXFxmMTE3XCI7XHJcdFx0XHRmb250LWZhbWlseTogXCJkYXNoaWNvbnNcIjtcclx0XHR9XHJcdFx0I3lpa2VzX2Vhc3lfbWNfdG9vbGJhcl9saW5rcyBsaSBhLmN1c3RvbS1ub3RpZmljYXRpb25zOmJlZm9yZSB7XHJcdFx0XHRjb250ZW50OiBcIlxcZjQ2NlwiO1xyXHRcdFx0Zm9udC1mYW1pbHk6IFwiZGFzaGljb25zXCI7XHJcdFx0fVxyXHRcci8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cci8qIE1hbmFnZSBGb3JtcyBQYWdlICovXHIvKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyc3Bhblt0aXRsZT1cIkltcHJlc3Npb25zXCJdOmhvdmVyLFxyc3Bhblt0aXRsZT1cIlN1Ym1pc3Npb25zXCJdOmhvdmVyLFxyc3Bhblt0aXRsZT1cIkNvbnZlcnNpb24gUmF0ZVwiXTpob3ZlciB7XHJcdGRpc3BsYXk6IGJsb2NrO1xyXHRjdXJzb3I6IHBvaW50ZXI7XHJ9XHJcci8qIENvbnRhaW5lciBob2xkaW5nIHRoZSBmb3JtIElEICovXHIuZm9ybS1pZC1jb250YWluZXIge1xyXHRwYWRkaW5nOiAxcHggOHB4O1xyXHRib3JkZXItcmFkaXVzOiA1cHg7XHJcdGJhY2tncm91bmQ6IHJnYig3MywgMTY5LCAyMzYpO1xyXHRmb250LXdlaWdodDogYm9sZDtcclx0Y29sb3I6ICNmZmZmZmY7XHJ9XHIubWFuYWdlLWZvcm0tYWRtaW4tbm90aWNlIHtcclx0bWFyZ2luLXRvcDogMS43NWVtICFpbXBvcnRhbnQ7XHJ9XHJhLnlpa2VzLWRlbGV0ZS1tYWlsY2hpbXAtZm9ybSxccmEueWlrZXMtZGVsZXRlLXN1YnNjcmliZXIsXHIueWlrZXMtbWMtc2V0dGluZ3MtZXhwYW5zaW9uLXNlY3Rpb24gYS5yZW1vdmUtZmllbGQsXHIucmVtb3ZlLW5vdGlmaWNhdGlvbiB7XHJcdGNvbG9yOiByZ2IoMjE3LCA5NiwgOTYpICFpbXBvcnRhbnQ7XHJ9XHIueWlrZXMtbWMtc2hvcnRjb2RlLWlucHV0IHtcclx0dGV4dC1hbGlnbjogY2VudGVyO1xyfVxyLmhpZGRlbi1jbGFzcyB7XHJcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtccn1cci5jb2x1bW4tY29sdW1ubmFtZSBzcGFuLnN0YXRzIHtcclx0ZGlzcGxheTogYmxvY2s7XHJcdHdpZHRoOiAxMDAlO1xyXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJ9XHJcdC5jb2x1bW4tY29sdW1ubmFtZSBzcGFuLnN0YXRzIHNwYW4ge1xyXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclx0XHR3aWR0aDogMjAlO1xyXHR9XHJcdFx0LmNvbHVtbi1jb2x1bW5uYW1lIHNwYW4uc3RhdHMgc3Bhbjpob3ZlciB7XHJcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcdFx0fVxyLyogQXZhaWxhYmxlIEZvcm0gRmllbGQgTGlzdCAqL1xyI2F2YWlsYWJsZS1maWVsZHMgbGksIFxyI2F2YWlsYWJsZS1pbnRlcmVzdC1ncm91cHMgbGkge1xyXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcdGRpc3BsYXk6IGJsb2NrO1xyXHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE3NywgMTc3LCAxNzcsIDAuNzEpO1xyXHRjb2xvcjogIzMzMzMzMztcclx0cGFkZGluZzogNXB4O1xyXHRtYXJnaW46IC41ZW0gMDtccn1cclx0I2F2YWlsYWJsZS1maWVsZHMgbGkubm90LWF2YWlsYWJsZSwgXHJcdCNhdmFpbGFibGUtaW50ZXJlc3QtZ3JvdXBzIGxpLm5vdC1hdmFpbGFibGUge1xyXHRcdG9wYWNpdHk6IC42ICFpbXBvcnRhbnQ7XHJcdH1cclx0XHJcdCNhdmFpbGFibGUtZmllbGRzIGxpLmZpZWxkLXRvLWFkZC10by1mb3JtLFxyXHQjYXZhaWxhYmxlLWludGVyZXN0LWdyb3VwcyBsaS5ncm91cC10by1hZGQtdG8tZm9ybSB7XHJcdFx0YmFja2dyb3VuZDogcmdiYSg0NiwgMTYyLCAyMDQsIDAuMjUpO1xyXHR9XHIvKioqKioqKioqKioqKioqKioqKioqKiovXHIvKiBFZGl0IEZvcm0gUGFnZSAgKi9cci8qKioqKioqKioqKioqKioqKioqKioqL1xyI2VkaXQteWlrZXMtbWMtZm9ybSBsYWJlbCBoMyB7XHJcdG1hcmdpbi1sZWZ0OjA7XHJcdHBhZGRpbmctbGVmdDogMDtccn1cciNhdmFpbGFibGUtZmllbGRzIC5maWVsZC1yZXF1aXJlZCB7XHJcdGNvbG9yOiByZ2IoMjE3LCA5NiwgOTYpICFpbXBvcnRhbnQ7XHJ9XHJcdC8qIFBvc3QgU3R1ZmYgSGVhZGluZyAqL1xyXHRib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAjcG9zdHN0dWZmIGgyIHtcclx0XHRwYWRkaW5nOiA4cHggMTJweDtcclx0XHRtYXJnaW4tdG9wOiAwO1xyXHR9XHJcdFxyLyogU3R5bGUgTGlzdCAtIGNvbG9yIHBpY2tlcnMgZXRjLiAqL1xyI3N0eWxlLWxpc3QgdWwgbGkge1xyXHRkaXNwbGF5OiBibG9jaztcclx0d2lkdGg6IDEwMCU7XHJcdG1hcmdpbjogMWVtIDA7XHJ9XHJcdC53cC1waWNrZXItY29udGFpbmVyLFxyXHQuZm9ybS1zdHlsZS1hZGp1c3RtZW50IHtcclx0XHRkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXHRcdHdpZHRoOiAxMDAlO1xyXHRcdG1hcmdpbjogLjVlbSAwO1xyXHR9XHJcdFxyLmR5bmFtaWMtZW1haWwtdGFnIHtcclx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXHRtYXJnaW4tcmlnaHQ6IDVweDtccn1cci5keW5hbWljLXRhZy1kZXNjcmlwdGlvbiB0ZCB7XHJcdHBhZGRpbmctdG9wOiAwO1xyfVxyXHIjY3JlYXRlLW5ldy1ub3RpZmljYXRpb24tYnV0dG9uIHtcclx0bWFyZ2luLXRvcDogMWVtO1xyfVxyXHRcci8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyLyogQWJvdXQgWWlrZXMgSW5jIFBhZ2UgICAqL1xyLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1x0XHIjdGVhbS1tZW1iZXItY29udGFpbmVyIHtcclx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXHR3aWR0aDogYXV0bztcclx0bWFyZ2luOiAwIGF1dG87XHJcdHdpZHRoOiAxMDAlO1xyfVxyXHQueWlrZXMtbmV3cy1hcnRpY2xlIHtcclx0XHRtYXJnaW46IDEycHggMDtcclx0fVxyXHRcdC55aWtlcy1uZXdzLWFydGljbGUgYSB7XHJcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcclx0XHR9XHJcdFx0XHRcdFxyXHRcdC5zdGFmZi1wb3NpdGlvbiB7XHJcdFx0XHRkaXNwbGF5OiBibG9jaztcclx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclx0XHR9XHJcdFxyXHQjYWJvdXQteWlrZXMgLnRlYW0tbWVtYmVyIGltZyB7XHJcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xyXHRcdGRpc3BsYXk6YmxvY2s7XHJcdFx0bWFyZ2luOjAgYXV0bztcclx0fVxyXHQuYWJvdXQteWlrZXMtaW5jLXRleHQge1xyXHRcdC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MClcIjtcclx0XHQvKiBJRSA1LTcgKi9cclx0XHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XHJcdFx0LyogTmV0c2NhcGUgKi9cclx0XHQtbW96LW9wYWNpdHk6IDA7XHJcdFx0LyogU2FmYXJpIDEueCAqL1xyXHRcdC1raHRtbC1vcGFjaXR5OiAwO1xyXHRcdC8qIEdvb2QgYnJvd3NlcnMgKi9cclx0XHRvcGFjaXR5OiAwO1xyXHR9XHJcdCNhYm91dC15aWtlcyAudGVhbS1tZW1iZXIge1xyXHRcdC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MClcIjtcclx0XHQvKiBJRSA1LTcgKi9cclx0XHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XHJcdFx0LyogTmV0c2NhcGUgKi9cclx0XHQtbW96LW9wYWNpdHk6IDA7XHJcdFx0LyogU2FmYXJpIDEueCAqL1xyXHRcdC1raHRtbC1vcGFjaXR5OiAwO1xyXHRcdC8qIEdvb2QgYnJvd3NlcnMgKi9cclx0XHRvcGFjaXR5OiAwO1xyXHRcdGZsb2F0OiBsZWZ0O1xyXHRcdGRpc3BsYXk6YmxvY2s7XHJcdFx0d2lkdGg6IDMxJTtcclx0XHRtYXJnaW46IDFlbSA1cHggMWVtIDVweDtcclx0fVxyXHRcclx0Lnlpa2VzLWFib3V0LWltYWdlLWNvbnRhaW5lciB7XHJcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXHRcdGRpc3BsYXk6IGJsb2NrO1xyXHRcdHdpZHRoOiAxMDVweDtcclx0XHRtYXJnaW46IDAgYXV0bztcclx0fVxyXHRcclx0Lnlpa2VzLWFib3V0LWltYWdlLWNvbnRhaW5lcjpob3ZlciB7XHJcdFx0Y3Vyc29yOiBwb2ludGVyO1xyXHR9XHJcdFx0XHJcdFx0Lnlpa2VzLWFib3V0LWltYWdlLWNvbnRhaW5lciAuZGFzaGljb25zLWhvbGRlciB7XHJcdFx0XHRtYXJnaW46IGF1dG87XHJcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcdFx0XHR0b3A6IDA7IFxyXHRcdFx0bGVmdDogMDsgXHJcdFx0XHRib3R0b206IDA7IFxyXHRcdFx0cmlnaHQ6IDA7XHJcdFx0XHRwYWRkaW5nOiA1cHg7XHJcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDUxLCA1MSwgNTEsIDAuNzEpO1xyXHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xyXHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xyXHRcdH1cclx0XHRcclx0XHQueWlrZXMtYWJvdXQtaW1hZ2UtY29udGFpbmVyIC5kYXNoaWNvbnMuZmFkZU91dExlZnQsXHJcdFx0Lnlpa2VzLWFib3V0LWltYWdlLWNvbnRhaW5lciAuZGFzaGljb25zLmZhZGVJblJpZ2h0IHtcclx0XHRcdHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcclx0XHR9XHJcdFx0XHJcdFx0XHQueWlrZXMtYWJvdXQtaW1hZ2UtY29udGFpbmVyIC5kYXNoaWNvbnMtdHdpdHRlciB7XHJcdFx0XHRcdGNvbG9yOiAjMDBCMEVEO1xyXHRcdFx0fVxyXHRcdFx0XHJcdFxyXHQjYWJvdXQteWlrZXMgLnRlYW0tcm93OmZpcnN0LWNoaWxkIHtcclx0XHRtYXJnaW4tdG9wOiAyZW07XHJcdH1cclx0XHJcdCNhYm91dC15aWtlcyAudGVhbS1yb3cge1xyXHRcdHdpZHRoOiAxMDAlO1xyXHRcdGZsb2F0OiBsZWZ0O1xyXHR9XHJcdCNhYm91dC15aWtlcyAudGVhbS1tZW1iZXIgcCB7XHJcdFx0cGFkZGluZy1sZWZ0OiAxMHB4O1xyXHRcdGZvbnQtc2l6ZTogMTZweDtcclx0fVxyXHRcclx0I2NlcnRpZmljYXRpb25zIHVsIHtcclx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcdFx0d2lkdGg6IDEwMCU7XHJcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXHR9XHJcdFx0I2NlcnRpZmljYXRpb25zIHVsIGxpIHtcclx0XHRcdGZsb2F0OiBsZWZ0O1xyXHRcdH1cclx0XHRcdCNjZXJ0aWZpY2F0aW9ucyB1bCBsaSBpbWcge1xyXHRcdFx0XHRtYXgtd2lkdGg6IDEwMCU7XHJcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcdFx0XHRcdG1hcmdpbjogMCBhdXRvO1xyXHRcdFx0fVxyXHRcdFx0XHJcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcdC8qIEFQSSBDb25uZWN0aW9uIFN0eWxlcyAqL1xyXHQvKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcdCNjb25uZWN0aW9uLWNvbnRhaW5lciB7XHJcdFx0ZmxvYXQ6IHJpZ2h0O1xyXHRcdGNvbG9yOiAjZmZmZmZmO1xyXHRcdHBhZGRpbmc6IC4yNWVtIC43NWVtIC4yNWVtIC4yNWVtO1xyXHRcdG1hcmdpbi10b3A6IC00cHg7XHJcdH1cclx0XHRcclx0XHQjY29ubmVjdGlvbi1jb250YWluZXIuYXBpLWNvbm5lY3RlZCB7XHJcdFx0XHRiYWNrZ3JvdW5kOiByZ2IoNjgsIDE4NiwgNjgpO1xyXHRcdH1cclx0XHRcclx0XHQjY29ubmVjdGlvbi1jb250YWluZXIuYXBpLW5vdC1jb25uZWN0ZWQge1xyXHRcdFx0YmFja2dyb3VuZDogcmdiKDE4MSwgMTgxLCAxODEpO1xyXHRcdH1cclx0XHRcclx0XHQvKiBBZGp1c3QgTGluZWhlaWdodCBvZiBDb25lbmN0ZWQgdnMgTm90LWNvbm5lY3RlZCBJY29ucyAqL1xyXHRcdC55aWtlcy1tYy1hcGktY29ubmVjdGVkLFxyXHRcdC55aWtlcy1tYy1hcGktbm90LWNvbm5lY3RlZCB7XHJcdFx0XHRsaW5lLWhlaWdodDogMTtcclx0XHR9XHJcdFx0LyogRW5kIEljb24gbGluZSBoZWlnaHQgYWRqdXN0bWVudCAqL1xyXHRcclx0LyoqKioqKioqKioqKioqKioqKioqKioqL1xyXHQvKiAgU2V0dGluZ3MgU2lkZWJhciAgICovXHJcdC8qKioqKioqKioqKioqKioqKioqKioqL1xyXHRcdC8qIExlYXZlIFVzIEEgUmV2aWV3ICovXHJcdFx0I3Jldmlldy15aWtlcy1lYXN5LW1jIHtcclx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclx0XHR9XHJcdFx0XHQjcmV2aWV3LXlpa2VzLWVhc3ktbWMgLmRhc2hpY29ucy1zdGFyLWZpbGxlZCB7XHJcdFx0XHRcdGNvbG9yOiAjRTZCODAwO1xyXHRcdFx0fVxyXHRcdC5tZXRhLWJveC1zb3J0YWJsZXMgaHIge1xyXHRcdFx0bWFyZ2luOiAxLjc1ZW0gMCAwIDA7XHJcdFx0fVxyXHRcdFxyXHQvKioqKioqKioqKioqKioqKioqKioqKioqKi9cclx0LypcdCAgQWRtaW4gTm90aWNlcyAgICovXHJcdC8qKioqKioqKioqKioqKioqKioqKioqKiovXHJcdC55aWtlcy1lYXN5LW1jLXVwZGF0ZWQge1xyXHRcdGRpc3BsYXk6IGJsb2NrO1xyXHRcdGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzRFQUVGMDtcclx0XHRtYXJnaW46MCAyMHB4IDJweCAwcHg7XHJcdFx0bWFyZ2luLXRvcDogMWVtO1xyXHRcdG1hcmdpbi1ib3R0b206IDFlbTtcclx0XHRwYWRkaW5nOiAycHggMTBweDtcclx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xyXHRcdGJhY2tncm91bmQtc2l6ZTogMTIwcHg7XHJcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgYm90dG9tO1xyXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcdFx0YmFja2dyb3VuZC1wb3NpdGlvbi15OiAyOXB4O1xyXHR9XHJcdFxyXHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclx0LyogU2lyIFRyZXZvciBDU1MgQWRqdXN0bWVudHMgICovXHJcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcdC5zdC1ibG9jay1jb250cm9scyBhIHtcclx0XHR0cmFuc2l0aW9uOiBjb2xvciAuMjVzIGVhc2Utb3V0O1xyXHRcdC1tb3otdHJhbnNpdGlvbjogY29sb3IgLjI1cyBlYXNlLW91dDtcclx0XHQtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yIC4yNXMgZWFzZS1vdXQ7XHJcdFx0LW8tdHJhbnNpdGlvbjogY29sb3IgLjI1cyBlYXNlLW91dDtcclx0fVxyXHQuc3QtYmxvY2stdWktYnRuLCBcclx0LnN0LWJsb2NrLWNvbnRyb2wtdWktYnRuIHtcclx0XHRmb250LXNpemU6IDFlbSAhaW1wb3J0YW50O1xyXHR9XHJcdFx0XHJcdFx0LyogT3ZlcnJyaWRlIENvbHVtbnMgSWNvbiAqL1xyXHRcdC8qIEZpZ3VyZSBvdXQgYSBiZXR0ZXIgd2F5IHRvIGFzc2lnbiB0aGUgZm9udCBmYW1pbHkgKi9cclx0XHQuc3QtYmxvY2stY29udHJvbHMgLnN0LWJsb2NrLWNvbnRyb2xbZGF0YS10eXBlPVwiQ29sdW1uc1wiXSA+IHNwYW4ge1xyXHRcdFx0Zm9udC1mYW1pbHk6ICdTVC1Db2x1bW5zLUljb25zJyAhaW1wb3J0YW50O1xyXHRcdH1cclx0XHRcclx0XHRcclx0XHRcci8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHIvKlx0XHRcdCAgICBTdXBwb3J0IFBhZ2VcdFx0ICAqL1xyLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cci5zdXBwb3J0LXNlY3Rpb25cdHtcclx0bWFyZ2luOiAxLjVlbSAwO1xyXHRwYWRkaW5nOiAxZW0gMDtccn1cclxyLmdpdGh1Yi1vY3RvY2F0IHtcclx0YmFja2dyb3VuZDogdXJsKCAnLi4vLi4vaW5jbHVkZXMvaW1hZ2VzL1N1cHBvcnRfUGFnZS9PY3RvY2F0LnBuZycgKTtcclx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclx0YmFja2dyb3VuZC1zaXplOiAxMDAlO1xyXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IHRvcDtcclx0d2lkdGg6IDUwcHg7XHJcdGhlaWdodDogNDVweDtcclx0ZGlzcGxheTogYmxvY2s7XHJcdGZsb2F0OiBsZWZ0O1xyXHRtYXJnaW4tdG9wOiAtNXB4O1xyfVx0XHRcclx0XHRcclx0XHIvKiogQnJlYWsgUG9pbnRzICoqL1xyLyogQWJvdXQgUGFnZSAqL1xyQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDk1cHgpIHtcclx0I3RlYW0tbWVtYmVyLWNvbnRhaW5lciAudGVhbS1tZW1iZXIge1xyXHRcdHdpZHRoOiAxMDAlO1xyXHR9XHJcdFxyfVxyLyogT3B0aW9ucyBQYWdlICovXHJAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NTBweCkge1xyXHRcclx0LyogSGlkZSBTZWxlY3RlZCBPcHRpb24gQXJyb3cgd2hlbiBpdCBkcm9wcyBiZWxvdyB0aGUgbWFpbiBjb250ZW50IGJveCAqL1xyXHQub3B0aW9uLW1lbnUtc2VsZWN0ZWQtYXJyb3cge1xyXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclx0fVxyXHRccn1cclxyLyogcHJvIHZlcnNpb24gbm90aWNlICovXHIucHJvLXZlcnNpb24tb25seS1ub3RpY2Uge1xyXHRjb2xvcjogcmdiKDIxNywgOTYsIDk2KTtccn1cclxyLyogVXBncmFkZSBFbGlwc2VzICovXHIudXBncmFkaW5nLWVsbGlwc2Utb25lIHtcclx0LW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKVwiO1xyXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XHJcdC1tb3otb3BhY2l0eTogMDtcclx0LWtodG1sLW9wYWNpdHk6IDA7XHJcdG9wYWNpdHk6IDA7XHJcdC13ZWJraXQtYW5pbWF0aW9uOiBkb3QgMS4zcyBpbmZpbml0ZTtcclx0LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMHM7XHJcdGFuaW1hdGlvbjogZG90IDEuM3MgaW5maW5pdGU7XHJcdGFuaW1hdGlvbi1kZWxheTogMC4wcztccn1cci51cGdyYWRpbmctZWxsaXBzZS10d28ge1xyXHQtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTApXCI7XHJcdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcclx0LW1vei1vcGFjaXR5OiAwO1xyXHQta2h0bWwtb3BhY2l0eTogMDtcclx0b3BhY2l0eTogMDtcclx0LXdlYmtpdC1hbmltYXRpb246IGRvdCAxLjNzIGluZmluaXRlO1xyXHQtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4ycztcclx0YW5pbWF0aW9uOiBkb3QgMS4zcyBpbmZpbml0ZTtcclx0YW5pbWF0aW9uLWRlbGF5OiAwLjJzO1xyfVxyLnVwZ3JhZGluZy1lbGxpcHNlLXRocmVlIHtcclx0LW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKVwiO1xyXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XHJcdC1tb3otb3BhY2l0eTogMDtcclx0LWtodG1sLW9wYWNpdHk6IDA7XHJcdG9wYWNpdHk6IDA7XHJcdC13ZWJraXQtYW5pbWF0aW9uOiBkb3QgMS4zcyBpbmZpbml0ZTtcclx0LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuM3M7XHJcdCBhbmltYXRpb246IGRvdCAxLjNzIGluZmluaXRlO1xyXHQgYW5pbWF0aW9uLWRlbGF5OiAwLjNzO1xyfVxyXHIvKiBBbmltYXRpb25zICovXHJALXdlYmtpdC1rZXlmcmFtZXMgZG90IHtcclx0ICAwJSB7IG9wYWNpdHk6IDA7IH1cclx0IDUwJSB7IG9wYWNpdHk6IDA7IH1cclx0MTAwJSB7IG9wYWNpdHk6IDE7IH1ccn1cckBrZXlmcmFtZXMgZG90IHtcclx0ICAwJSB7IG9wYWNpdHk6IDA7IH1cclx0IDUwJSB7IG9wYWNpdHk6IDA7IH1cclx0MTAwJSB7IG9wYWNpdHk6IDE7IH1ccn0iXX0= */
|
admin/css/yikes-inc-easy-mailchimp-extender-admin.min.css
CHANGED
@@ -1,2 +1 @@
|
|
1 |
-
#yikes-easy-mc-dashboard-widget-stats h3,.addon-image{text-align:center}.yikes-easy-mc-hidden{display:none}.shortcode-input-field{color:#333;background:rgba(216,216,216,.35)!important}.edit-form-field-container-span{display:block;margin:.5em 0}.no-forms-widget{margin:2em 0}.no-forms-found-icon{font-size:14px;line-height:1.4;width:14px;color:#e07d7d}.coming-soon-button{position:absolute}.coming-soon-button .dashicons{font-size:14px;line-height:1.8}.add-ons-about-text{margin-top:0}#add-ons{margin:3em 0}.addon-image{display:block}.no-mailchimp-lists-found{padding:25px 0 25px 25px}.add-new-subscriber-button{display:block;margin-top:2em}.add-new-subscriber-form-container{display:none;padding-top:1em}.add-new-subscriber-form-container h4{margin-top:0}#yikes-easy-mc-widget-stat-holder,.yikes-easy-mc-stats-table{margin-top:1em}#migration-buttons{display:inline-block;margin-bottom:.5em}#migration-buttons form:first-child{margin-right:10px}#migration-buttons form{float:left}#yikes_easy_mc_account_activity_widget h3 span,#yikes_easy_mc_list_stats_widget h3 span{background:url(../../includes/images/MailChimp_Assets/Freddie_original.png) 8px 4px/25px auto no-repeat;background-size:25px;display:block;height:30px;padding-left:3em;padding-top:5px}#yikes_easy_mc_account_activity_widget h3.hndle,#yikes_easy_mc_list_stats_widget .inside{padding:0}#yikes_easy_mc_list_stats_widget h3{padding:0;line-height:1.6em}.yikes-easy-mc-stats-table,.yikes-easy-mc-stats-table .yikes-easy-mc-table-stats-tr,.yikes-easy-mc-stats-table tbody{display:block;width:100%}.yikes-easy-mc-table-stats-tr td{display:inline-block;width:48%;text-align:center}.yikes-easy-mc-table-stats-tr td:hover{cursor:pointer}.yikes-easy-mc-table-stats-tr td:first-of-type{border-right:1px solid #ececec}.yikes-easy-mc-stats-table .yikes-easy-mc-table-stats-tr-first{border-bottom:1px solid #ececec;border-top:1px solid #ececec}.yikes-easy-mc-stats-table p.yikes-easy-mc-dashboard-stat{color:#00a0d2;font-weight:800;font-size:20px;margin-bottom:2px;margin-top:15px;line-height:1.2;max-height:80px}.yikes-easy-mc-stats-table p.yikes-easy-mc-stat-list-label{font-size:13px;margin-top:0;margin-bottom:15px;font-family:"Open Sans"}#yikes_easy_mc_account_activity_widget table th.row-title{padding-left:10px}#pre-defined-tag-interior-container{background:url(../../includes/images/tinyMCE/yikes-mailchimp-combo-faded.png) bottom right no-repeat #fff;background-size:40%}.qtip-default{background-color:transparent!important;border:transparent!important;z-index:9999999!important}.qtip-bootstrap{padding:10px!important;z-index:9999999!important;font-size:12px}.search-interest-group-preloader{display:block;margin:8px 0 0 55px;width:12px}.no-interest-groupings-enabled-message{display:block;margin-top:12px!important;width:100%}.tooltip-integration-banner{max-width:100%;margin:0 0 .25em}.tooltiptext.qtip-bootstrap{font-size:12px}.tooltip-title{margin:0}.dashicons-editor-help:hover{cursor:pointer}body.easy-forms_page_yikes-inc-easy-mailchimp-settings .interest-group-section{display:block;width:100%;margin:1.5em 0}body.easy-forms_page_yikes-inc-easy-mailchimp-settings .interest-group-section .interest-group-section-title{display:block;width:100%;margin:.5em 0;text-decoration:underline}.github-avatar-url,body.admin_page_yikes-mailchimp-welcome #kb-container .knowledge-base-listing li a,body.easy-forms_page_yikes-inc-easy-mailchimp-support .knowledge-base-articles .knowledge-base-listing li a{text-decoration:none}body.easy-forms_page_yikes-inc-easy-mailchimp-settings .interest-group-section input{margin-right:0}body.easy-forms_page_yikes-inc-easy-mailchimp-settings .interest-group-section label{margin-right:10px}i.mce-ico.mce-i-yks_mc_tinymce_button_key{background:url(../../includes/images/tinyMCE/Freddie_wink.png) no-repeat;background-size:18px;background-position-y:1px}#yikes_mailchimp_tinyMCE_modal-title{padding-left:42px;background:url(../../includes/images/MailChimp_Assets/Freddie_original.png) left no-repeat;background-size:25px;background-position-x:10px}#yikes_mailchimp_tinyMCE_modal{background:url(../../includes/images/tinyMCE/yikes-mailchimp-combo-faded.png) bottom left no-repeat #fff;background-size:40%;background-position-x:10px;background-position-y:95%}#yikes_mailchimp_tinyMCE_modal .mce-foot{border-top:none!important;background:0 0}[id*="_yikes_easy_mc_widget"]>div.widget-top>div.widget-title>h4{background:url(../../includes/images/MailChimp_Assets/Freddie_original.png) 2% 50%/25px auto no-repeat #FAFAFA;padding-left:40px}#review-yikes-easy-mailchimp-notice #yikes-mailchimp-logo,#yikes-mailchimp-logo{font-size:14px;background:url(../../includes/images/Welcome_Page/yikes-mailchimp-welcome-logo.png) no-repeat;text-align:center}#review-yikes-easy-mailchimp-notice #yikes-mailchimp-logo{background-size:60px;float:left;height:80px;width:80px}.yikes-easy-mc-feature-image-left{float:left;margin-right:30px;margin-left:0!important}.need-support-icon{line-height:1.5}ul.support-option-list{display:inline-block;width:100%}.support-option{float:left}.support-option-second{margin-left:10px}#yikes-mailchimp-logo.support-page{float:left;width:80pt}.yikes-easy-mc-whats-new-section-image{float:none;width:100%;margin-left:0!important}.welcome-page-tabs{margin-top:2em!important}.welcome-page-about-wrap .about-text,.welcome-page-about-wrap h2.welcome-title{margin-left:115px}.whats-new-wrap img.yikes-easy-mc-whats-new-section-image{margin-top:10px}.whats-new-wrap .feature-section:nth-child(1) img{float:left;width:500px;margin-left:0!important;margin-right:30px}.whats-new-wrap .feature-section:nth-child(3) img{float:right;width:250px;margin-right:0!important;margin-left:30px}.whats-new-wrap .feature-section:nth-child(4) img{margin-left:0!important}#yikes-mailchimp-logo{height:132px;width:132px}.about-wrap #yikes-mailchimp-logo{position:absolute;top:0;left:0}.edd-welcome-screenshots{float:right;margin-left:10px!important}.about-wrap .feature-section{margin-top:20px}.yikes-easy-mc-feature-image{float:right;margin-left:30px!important}#credit-container,#translators-container{display:inline-block;width:100%}#credit-container h2,#translators-container h2{margin:0 0 .5em 1em}#translators-container{margin-top:5em}#translators-container .translation-language{color:#333}#credit-container .team-member,#translators-container .translator{margin:1em 5% 1em 0;text-align:center}#credit-container .team-member img,#translators-container .translator img{border-radius:50%}.about-wrap div.error,.about-wrap div.updated{display:block!important;margin-left:115px!important}.github-avatar-image{width:100px}.github-avatar-url{display:inline-block;width:20%}github-avatar-url:focus{outline:0}body.admin_page_yikes-mailchimp-edit-form div.show-some-love-container img,div.show-some-love-container img.customizer-upsell-banner{max-width:100%}body.admin_page_yikes-mailchimp-edit-form div.show-some-love-container p:first-child{font-style:italic}body.admin_page_yikes-mailchimp-edit-form div.show-some-love-container hr{margin:1em 0}body.admin_page_yikes-mailchimp-welcome .nav-tab-wrapper .nav-tab .dashicons{font-size:17px;line-height:1.5}body.admin_page_yikes-mailchimp-welcome #kb-container,body.easy-forms_page_yikes-inc-easy-mailchimp-support .knowledge-base-articles{display:inline-block;margin-top:1em}body.admin_page_yikes-mailchimp-welcome #kb-container h1{font-size:20px;margin-top:-1em}body.admin_page_yikes-mailchimp-welcome #kb-container .knowledge-base-listing,body.easy-forms_page_yikes-inc-easy-mailchimp-support .knowledge-base-articles .knowledge-base-listing{width:45%;margin-right:2%;float:left;min-height:260px}body.admin_page_yikes-mailchimp-welcome #kb-container .knowledge-base-listing li,body.easy-forms_page_yikes-inc-easy-mailchimp-support .knowledge-base-articles .knowledge-base-listing li{margin:12px 0;text-decoration:none}body.admin_page_yikes-mailchimp-welcome #kb-container .knowledge-base-listing li:before,body.easy-forms_page_yikes-inc-easy-mailchimp-support .knowledge-base-articles .knowledge-base-listing li:before{font-family:dashicons;content:"\f123";vertical-align:middle;display:block;float:left;margin:0 5px 5px 0}body.admin_page_yikes-mailchimp-welcome #kb-container .knowledge-base-listing li.list-title,body.easy-forms_page_yikes-inc-easy-mailchimp-support .knowledge-base-articles .knowledge-base-listing li.list-title{font-size:17px;font-weight:200;text-decoration:underline}body.admin_page_yikes-mailchimp-welcome #kb-container .knowledge-base-listing li.list-title:before,body.easy-forms_page_yikes-inc-easy-mailchimp-support .knowledge-base-articles .knowledge-base-listing li.list-title:before{content:"";padding-left:12px}body.admin_page_yikes-mailchimp-welcome .new-feature-list{list-style:none;line-height:middle}body.admin_page_yikes-mailchimp-welcome .new-feature-list li{margin-bottom:10px}body.admin_page_yikes-mailchimp-welcome .new-feature-list li:before{font-family:dashicons;content:"\f139";padding-right:2px;font-size:20px;vertical-align:middle}#review-yikes-easy-mailchimp-notice .button-container{display:block;width:100%;margin:.75em 0 1.5em}#review-yikes-easy-mailchimp-notice .button-container .dashicons{font-size:14px;line-height:1.9;margin-left:-4px}#review-yikes-easy-mailchimp-notice .button-container .dashicons-star-filled{color:#E6B800}#review-yikes-easy-mailchimp-notice .button-container .dashicons-upload{color:#6E8841}#review-yikes-easy-mailchimp-notice .button-container .dashicons-no-alt{color:#dc3a3a;line-height:2}body.easy-mailchimp_page_yikes-inc-easy-mailchimp-settings .dashicons-no-alt{color:#dc3a3a}#review-yikes-easy-mailchimp-notice .button-container a{margin-right:10px}#review-yikes-easy-mailchimp-notice{border-left:4px solid #00a0d2;background:#fefefe;padding:10px 12px 1px;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:15px 25px 20px 5px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background:#D8D8D8}.dashicons.yikes-love{color:pink}.field-description-input{resize:vertical;max-height:100px}.yikes-easy-mc-postbox h3{background:#00a0d2;font-weight:800;color:#fff}.yikes-easy-mc-postbox h3.bg-transparent{color:#333;font-weight:400;background:0 0}.yikes-mc-warning-message{padding-left:15px;margin-top:0;padding-top:10px;color:#da6e6e}.error-message-container label[for=yikes-easy-mc-success-message],.error-message-container label[for=yikes-easy-mc-general-error-message],.error-message-container label[for=yikes-easy-mc-invalid-email-message],.error-message-container label[for=yikes-easy-mc-user-subscribed-message]{padding:.5em 1em;background:rgba(241,241,241,.75);box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;margin:0}body.admin_page_yikes-mailchimp-edit-form #error-container{padding:2px 1em;background:rgba(241,241,241,.75);box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;margin:0;color:#F56060}.error-message-container label[for=yikes-easy-mc-user-subscribed-message]{padding-bottom:1em;margin-bottom:.5em}.error-message-container label,.form-settings-container label{display:block;margin:1em 0}.yikes-easy-forms-sidebar .yikes-mc-settings-expansion-section{padding:.5em .75em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.yikes-mc-settings-expansion-section{display:none;background:rgba(241,241,241,.75)}.expansion-section-title{background:#fff}.expansion-section-title.settings-sidebar,.form-builder-section-title{text-decoration:none;display:block;border:1px solid rgba(177,177,177,.71);color:#333;padding:5px;margin:.5em 0 0}.expansion-section-title.settings-sidebar .dashicons,.form-builder-section-title .dashicons{content:"\f132";font-family:dashicons;font-size:15px;line-height:1.5}span.easy-mailchimp-add-on-valid-license-container{color:#44ba44;display:block;margin-top:1em}.easy-mailchimp-add-on-invalid-license-container{color:rgba(227,107,107,.86);display:block;margin-top:1em}.options-sidebar .yikes-easy-mc-postbox{overflow:visible}.options-sidebar .inside{padding:0 20px 12px}.yikes-easy-mc-about-text{margin-top:0}.add-on-settings-divider{margin:1em 0!important}#yks-mailchimp-double-optin-message,#yks-mailchimp-single-optin-message,.settings-page-input{width:50%}#yks-mailchimp-double-optin-message,#yks-mailchimp-single-optin-message{min-height:75px;max-height:200px;resize:vertical}#addon-settings-nav li a,#settings-nav li a{color:#333;text-decoration:none!important;transition:color .15s ease-out;-moz-transition:color .15s ease-out;-webkit-transition:color .15s ease-out;-o-transition:color .15s ease-out}#addon-settings-nav li a:hover,#settings-nav li a:hover,.option-menu-selected-arrow+a{color:#00a0d2!important}#addon-settings-nav{margin-bottom:0;margin-top:5px}.option-menu-selected-arrow{width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:10px solid #a0a5aa;position:absolute;left:-.1em}label[for=yikes-mailchimp-debug-status]{display:inline-block;margin-bottom:1em;line-height:2.25}#yikes-mailchimp-debug-status{float:left;margin-top:.5em}label[for=yikes-mc-recaptcha-setting],label[for=yikes-mc-recaptcha-api-key]{display:block;margin-bottom:1em}.recaptcha-preview-link,input.recaptcha-setting-checkbox{display:block;margin-top:.5em}.recaptcha-preview-container{width:100%;display:none;margin:1em 0}#premium-support-form,.support-page-button,.support-page-logo{display:block;width:100%}.wrap #col-left,.wrap #col-right{width:49%}@media (max-width:800px){.wrap #col-left,.wrap #col-right{width:100%}}.support-page-logo{opacity:.7;max-width:100%}.support-page-button{min-height:40px;font-weight:700;text-align:center;line-height:3!important;margin-top:1em!important}.support-page-wordpress-font{font-size:1.3em;margin-right:13px}h2.premium-support-title{margin:1em 0 .5em}#premium-support-form input,#premium-support-form select{display:block;width:100%;min-width:200px;margin:.5em 0}#premium-support-form label{font-weight:800}#premium-support-form label input,#premium-support-form label select{font-weight:500}#premium-support-form p{font-weight:300;display:block;margin-bottom:1em}#wp-support-content-wrap{min-height:150px;width:100%}.support-form-hidden{display:none!important}#yikes-mailchimp-error-log .row-title{font-weight:400}.create-error-log-help:hover{cursor:pointer}.error-log-tr td{display:table;margin-bottom:1em;margin-top:.5em}p.error-log-missing-file em,p.to-start-logging-errors-notice em{margin:10px 0}.export-custom-forms-list{display:none;margin:1em 0 2em}.export-custom-forms-list p{margin-top:0}.list-rating-star{color:#E6B800}#chimp-chatter{text-align:center}#chimp-chatter .chimp-chatter-container{margin:1em .2em;background:#F8F8F8;border-radius:10px;float:left;height:220px;padding:10px;width:44%}.chimp-chatter-mailchimp-logo{width:100%;display:block;margin:0 auto}.chimp-chatter-sidebar h2.account-status{text-align:center}.mailchimp-affiliate-link{color:#333;display:none}.mailchimp-avatar{display:block;margin:0 auto;box-shadow:3px 3px 10px 0 rgba(214,214,214,.75)}#yikes_easy_mc_toolbar_links li a:focus,.merge-tag-text{box-shadow:none}.chimpchatter-button-container{clear:both;display:block}.chimp-chatter-postbox{float:left;width:49%;margin-right:1%}.circle-account-active,.circle-account-inactive{display:inline-block;vertical-align:middle;height:15px;width:15px;border-radius:50%}#account-details .chimp-chatter-postbox.even{margin-right:0}.circle-account-inactive{margin-top:-3px;margin-right:5px;background:rgba(250,138,138,.79)}.chatter-type{font-weight:600;font-family:"open sans";font-size:14px;margin:5px 5px 0}.chatter-message{margin:2px 2px 15px!important}.circle-account-active{margin-top:-3px;margin-right:5px;background:rgba(128,214,128,.77)}#account-details .mailchimp-avatar{width:120px;border-radius:10%;margin-top:.5em}.chimp-chatter-positive{border-left:4px solid #9ddf9d}.chimp-chatter-negative{border-left:4px solid #FBA2A2}.chimp-chatter-neutral{border-left:4px solid #b1b1b1}#import-list-to-site{margin-top:10px}#import-list-to-site .input-field{display:block;width:100%;margin-top:5px;margin-bottom:5px}.sidebar-container,.star-container{margin-top:5px;margin-bottom:1.5em}#import-list-to-site .form-description{resize:vertical;max-height:65px}#import-list-to-site .description{margin-top:5px}.star-container a{text-decoration:none}.star-container .dashicons-star-filled{font-size:1.75em}.sidebar-footer-text{margin:15px 0!important;text-align:center}.sidebar-twitter-icon{text-decoration:none;color:#55ACEE}.field-doesnt-exist-notice{position:absolute;margin-left:5px;width:18px}.field-type-text{float:right}.type-container{margin:0}.form-field-container{margin-top:0;margin-bottom:0}.field-no-longer-exists-warning{position:absolute;margin-left:5px;width:18px}.form-field-container td input[type=checkbox],.form-field-container td input[type=radio]{margin:0 5px}.form-field-container td input[type=checkbox]:first-child,.form-field-container td input[type=radio]:first-child{margin-left:0!important}.merge-tag-text{background:0 0;border:none}.pre-defined-tag-link{font-size:11px}.toggle-container{font-size:small;float:right}#pre-defined-tag-container{display:none}#pre-defined-tag-container h3{margin-bottom:0}#pre-defined-tag-container .tooltop-tag .dashicons-editor-help{font-size:13px;line-height:1.5}.no-fields-assigned-notice{margin:4em 0 2.25em;padding-bottom:6em;width:100%;text-align:center;background:url(../../includes/images/no-form-fields-assigned-arrow.jpg) bottom center no-repeat;background-size:105px}.yikes-easy-mc-widget-preloader{position:absolute;left:48%;margin-top:-96px}.yikes-dashboard-widget-section{padding:0 12px 12px}.select-list-title{padding-left:0}.yikes-dashboard-widget-section .description{margin:.5em 0 0}. error-descripion{padding-top:.5em}.yikes-mc-freddie-logo{float:left;margin-right:10px}.mv_ig_list{width:94%;margin-bottom:8px!important;border:none!important;background:0 0!important}.mv_ig_list .list-container{position:absolute}.mv_ig_list a{width:48%;padding:5px 0!important;text-align:center;margin:0}.mv_ig_list a:first-child{margin-right:0}.mv_ig_list a:last-child{float:right}.mv_ig_list .nav-tab{border:1px solid #ccc}.mv_ig_list .nav-tab-active{color:#fff;font-weight:700;background:#00a0d2}.mv_ig_list .arrow-down{position:absolute;margin-top:21px;margin-left:50px;width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid #00a0d2}#container-container{display:inline-block;width:521px}#container-container .list-container{float:left;width:240px;position:relative}#container-container .list-container:last-child{margin-left:2em}#yikes_easy_mc_toolbar{margin-top:-.75em}#yikes_easy_mc_toolbar_links{display:inline-block;width:100%;margin:0;padding:10px 0}#yikes_easy_mc_toolbar_links li{float:left;margin:0 .5em}#yikes_easy_mc_toolbar_links li a{text-decoration:none;display:inline-block}#yikes_easy_mc_toolbar_links li a.selected_hidden_setting{color:#333;margin-bottom:3px}#yikes_easy_mc_toolbar_links li .selected_setting_triangle{width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-top:13px solid rgba(206,206,206,1);margin:0 auto}.checkbox-settings-list-dropdown,.optin-checkbox-label-input{width:250px;display:block}#yikes_easy_mc_toolbar_links li a.form-builder:before{content:"\f116";font-family:dashicons}#yikes_easy_mc_toolbar_links li a.form-customizer:before{content:"\f100";font-family:dashicons}#yikes_easy_mc_toolbar_links li a.error-messages:before{content:"\f117";font-family:dashicons}#yikes_easy_mc_toolbar_links li a.form-settings:before{content:"\f111";font-family:dashicons}#checkbox-settings-form .dashicons-editor-help{font-size:15px;line-height:1.6}.no-lists-setup-notice{padding:.5em 0}.yikes-form-id-number{width:55px}span[title=Impressions]:hover,span[title=Submissions]:hover,span[title="Conversion Rate"]:hover{display:block;cursor:pointer}.form-id-container{padding:1px 8px;border-radius:5px;background:#49a9ec;font-weight:700;color:#fff}.manage-form-admin-notice{margin-top:1.75em!important}.remove-notification,.yikes-mc-settings-expansion-section a.remove-field,a.yikes-delete-mailchimp-form,a.yikes-delete-subscriber{color:#d96060!important}.yikes-delete-mailchimp-form{margin-top:6px}#postbox-container-1 .yikes-delete-mailchimp-form{float:right}.form-buttons-container{display:block;padding:11px 10px}.forms-buttons-container input[type=submit]{margin:0 0 .5em}.update-form-spinner{position:absolute;left:0;right:0;margin:0 auto;bottom:13px}.yikes-mc-shortcode-input{text-align:center;width:100%;color:#333}.hidden-class{display:none!important}.stat-container{width:10%;max-width:75px}.no-current-subscriber-notice em,.no-mailchimp-forms-found em{padding:25px 0 25px 25px}.column-columnname span.stats{display:block;width:100%;text-align:center}.column-columnname span.stats span{display:inline-block;width:20%}.column-columnname span.stats span:hover{cursor:pointer}#available-fields li,#available-interest-groups li{text-decoration:none;display:block;border:1px solid rgba(177,177,177,.71);color:#333;padding:5px;margin:.5em 0}#available-fields li.not-available,#available-interest-groups li.not-available{opacity:.6!important}#available-fields li.field-to-add-to-form,#available-interest-groups li.group-to-add-to-form{background:rgba(46,162,204,.25)}.add-field-to-editor .add-to-form-builder-arrow,.button-secondary .add-to-form-builder-arrow{width:15px;font-size:15px;line-height:1.8}.clear-form-fields{background:#e14d43;border-color:#d02c21;color:#fff;box-shadow:inset 0 1px 0 #ec8b85,0 1px 0 rgba(0,0,0,.15);text-decoration:none;display:inline-block;height:28px;padding:0 10px 1px;border-width:1px;-webkit-appearance:none;border-radius:3px;white-space:nowrap;font-size:13px;line-height:26px;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;float:right;margin:0 11px 10px 0}.clear-form-fields:active,.clear-form-fields:focus,.clear-form-fields:hover{background:#dd382d;border-color:#ba281e;color:#fff;box-shadow:inset 0 1px 0 #e8776f}.yikes-mc-view-list-breadcrumbs{padding:.8em;border:1px solid #D8D8D8;background:#ECECEC;margin:1.5em 0 .8em}.yikes-mc-member-rating-star{color:#daa520}#yikes-mc-subscriber-card-wrapper{background:#fefefe;min-height:200px;display:inline-block;box-shadow:0 1px 1px rgba(0,0,0,.04);webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;padding:15px 20px;width:500px;float:left}#yikes-mc-subscriber-card-wrapper .subscriber-optin-ip{display:inline-block;margin:1em 0 0;font-style:italic}.view-user-data-wrap #customer-tab-wrapper-list{float:left;background:#fefefe;margin-top:0;padding:12px;margin-left:-1px;border-right:1px solid #e5e5e5;border-top:1px solid #e5e5e5;border-bottom:1px solid #e5e5e5}.view-user-data-wrap #customer-tab-wrapper-list .dashicons{font-size:23px;height:23px;width:23px;margin:3px 0}.view-user-data-wrap #customer-tab-wrapper-list li.inactive{color:rgba(51,51,51,.31);transition:color ease-out .1s}.view-user-data-wrap #customer-tab-wrapper-list li.active,.view-user-data-wrap #customer-tab-wrapper-list li.inactive:hover{color:rgba(51,51,51,1)}#yikes-mc-subscriber-card-wrapper .yikes-mc-card-top .member-star-rating-container,#yikes-mc-subscriber-card-wrapper .yikes-mc-card-top h2,#yikes-mc-subscriber-card-wrapper .yikes-mc-card-top img{float:left}#yikes-mc-subscriber-card-wrapper #delete-mailchimp-subscriber{display:block;margin:0 auto}#yikes-mc-subscriber-card-wrapper .yikes-mc-card-top img{border-radius:3px}#yikes-mc-subscriber-card-wrapper .merge-variable-section li{display:inline-block;list-style:none;float:left;width:50%;min-height:65px;border-bottom:1px dotted #ddd}#yikes-mc-subscriber-card-wrapper .merge-variable-section li p{margin:0 0 1em}#yikes-mc-subscriber-card-wrapper .yikes-mc-card-top h2{max-width:370px;width:75%;padding:0}#yikes-mc-subscriber-card-wrapper .member-star-rating-container{display:block;margin:.5em 0 .5em 10px}#yikes-mc-subscriber-card-wrapper h2{margin-left:10px;margin-top:0;padding-top:0}#yikes-mc-subscriber-card-wrapper .yikes-mc-card-body,#yikes-mc-subscriber-card-wrapper .yikes-mc-card-top{display:inline-block;width:100%}.member-location-data,.member-subscription-date{width:70%;max-width:370px;display:block;float:left}#yikes-mc-subscriber-card-wrapper .yikes-mc-card-body h4{margin-top:0;margin-left:5px}.yikes-mc-subscriber-hr{margin:1.5em 0}.member-subscription-date{margin:.5em 0 .5em 10px}.member-location-data{margin:.25em 0 .25em 10px}.addon-required-link{color:#333;opacity:.5}.view-list-sidebar-input{color:#333}.interest-group-ul,.merge-variable-ul,.segment-ul{padding-left:15px;font-size:14px}.interest-group-ul li .dashicons,.merge-variable-ul li .dashicons{line-height:1.8;font-size:9px}a.button-primary.edit-fields-button{margin:0 0 10px 15px}.interest-group-count,.merge-variable-count,.segment-group-count{text-decoration:underline;margin-bottom:.75em;padding-left:7px}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-calendar td a,body.admin_page_yikes-mailchimp-edit-form .ui-datepicker a,body.admin_page_yikes-mailchimp-edit-form .ui-datepicker a:hover{text-decoration:none}.interest-group-title{padding-left:5px}.edit-segments-button{margin:0 0 10px 15px}.edit-segment-description{padding:0 0 10px 15px}#credit-container{margin-top:1.5em}.yikes-easy-mailchimp-custom-content-icon{font-size:15px;line-height:1}.custom-field-section{display:block;margin:1em 0}#associated-list{width:100%;margin-top:5px}#redirect-user-to-selection{width:100%}#edit-yikes-mc-form label h3{margin-left:0;padding-left:0}#available-fields .field-required{color:#d96060!important}body.admin_page_yikes-mailchimp-edit-form #poststuff h2{padding:8px 12px;margin-top:0}.edit-form-form-description{width:100%;resize:vertical;min-height:65px;max-height:100px}.edit-form-title{padding-left:12px!important}#edit-form-description{padding:0 12px;margin:1em 0}.yikes-easy-mc-postbox{overflow:hidden}.no-interest-groups-found-message{opacity:.35}.upgrading-ellipse-one,.upgrading-ellipse-two{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-moz-opacity:0;-webkit-animation:dot 1.3s infinite}#interest-groups-container .description,#merge-variables-container .description{padding-top:.5em}.inside-section-1{margin-top:0;margin-bottom:1.5em}.inside-section-2{margin-top:0;margin-bottom:2em}.form-field-container-span{display:block;margin:.5em 0}#style-list ul li{display:block;width:100%;margin:1em 0}.form-style-adjustment,.wp-picker-container{display:block!important;width:100%;margin:.5em 0}.dynamic-email-tag{display:inline-block;margin-right:5px}.dynamic-tag-description td{padding-top:0}#create-new-notification-button{margin-top:1em}.file-container{display:none}.yikes-mailchimp-file-field input[name*="custom-field[incentive-attachment]"]{margin-bottom:.5em}.yikes-mailchimp-file-field input[name*="custom-field[incentive-attachment]"]+.button-secondary{margin-left:4px}input#upload-btn[data-attr-position="1"]{margin-left:0}.remove-file-button{background:url(../partials/helpers/fields/img/icon-delete.png);height:16px;position:absolute;text-indent:-99999px;width:16px}a.add-new-incentive-attachment{display:block;width:40px;margin-right:100%!important;margin-top:.5em!important}a.add-new-incentive-attachment .dashicons{font-size:15px;line-height:1.8}.form-builder-placeholder{background:rgba(206,206,206,.2);height:30px}.admin_page_yikes-mailchimp-edit-form #form-settings .section-title{font-size:1em;border-bottom:1px solid rgba(187,187,187,.29);display:block;width:100%;padding-bottom:6px;margin-bottom:.5em;margin-top:1.5em}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior label,.admin_page_yikes-mailchimp-edit-form #form-settings .section-title.first{margin-top:0}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior{display:inline-block;width:100%;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;background:rgba(241,241,241,.75);padding:1em}label.login-restriction-center{display:block;width:100%}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .date-restirction-section{display:inline-block}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .date-restirction-section p.description.error{color:#F56060}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .date-restirction-section label{float:left;margin-right:.5em;margin-top:0;margin-bottom:0}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .nested-child .yikes-easy-mc-form-restriction-expired-message,.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .nested-child .yikes-easy-mc-form-restriction-login-message,.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .nested-child .yikes-easy-mc-form-restriction-pending-message{display:block;width:100%;min-height:50px}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .nested-child{float:left;padding-left:2%;width:98%;border-left:1px dashed #BDBDBD;border-spacing:2px;margin:.5em 0 1em}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .nested-child .yikes-easy-mc-submit-button-text{margin:0}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .date-restirction-section{margin-bottom:0}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .date-restirction-section.last{margin-bottom:.75em}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .nested-child.hidden{display:none}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .description+label{margin-top:1em;float:left;width:100%}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior label.inline-form-label{margin-bottom:0;margin-top:0}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .description{display:block;width:100%;float:left}.admin_page_yikes-mailchimp-edit-form #form-settings .nested-child strong:first-child,.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior strong:first-child{display:block;width:100%}.admin_page_yikes-mailchimp-edit-form #form-settings .inline-form-label{float:left;margin-right:10px}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-wrapper{overflow-y:auto;height:150px;width:170px;background:#fff;border:1px solid #ddd;box-shadow:0 5px 10px rgba(0,0,0,.2);outline:0;z-index:10001;margin:0}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-wrapper.ui-timepicker-with-duration{width:13em}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-30,body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-60{width:11em}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list{margin:0;padding:0;list-style:none}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-duration{margin-left:5px;color:#888}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list:hover .ui-timepicker-duration{color:#888}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list li{padding:3px 0 3px 5px;cursor:pointer;white-space:nowrap;color:#000;list-style:none;margin:0}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list:hover .ui-timepicker-selected{background:#fff;color:#000}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list .ui-timepicker-selected:hover,body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list li:hover,body.admin_page_yikes-mailchimp-edit-form li.ui-timepicker-selected{background:#1980EC;color:#fff}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list li:hover .ui-timepicker-duration,body.admin_page_yikes-mailchimp-edit-form li.ui-timepicker-selected .ui-timepicker-duration{color:#ccc}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list li.ui-timepicker-disabled,body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list li.ui-timepicker-disabled:hover,body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list li.ui-timepicker-selected.ui-timepicker-disabled{color:#888;cursor:default}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list li.ui-timepicker-disabled:hover,body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list li.ui-timepicker-selected.ui-timepicker-disabled{background:#f2f2f2}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker{background-color:#fff;border:1px solid #66AFE9;border-radius:4px;box-shadow:0 0 8px rgba(102,175,233,.6);display:none;margin-top:4px;padding:10px;width:240px}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker a:hover,body.admin_page_yikes-mailchimp-edit-form .ui-datepicker td:hover a{color:#2A6496;transition:color .1s ease-in-out}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-header{margin-bottom:4px;text-align:center}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-title{font-weight:700}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-next,body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-prev{cursor:default;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;height:20px;line-height:1;margin-top:2px;width:30px}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-prev{float:left;text-align:left}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-next{float:right;text-align:right}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-prev:before{content:"\f141";font-family:dashicons}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-next:before{content:"\f139";font-family:dashicons}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker-next:hover,body.admin_page_yikes-mailchimp-edit-form .ui-datepicker-prev:hover{cursor:pointer!important}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker-close{display:none}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker-current{color:#555!important;border-color:#ccc!important;background:#f7f7f7!important;box-shadow:0 1px 0 #ccc!important;vertical-align:top!important;display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;margin-top:10px}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-current-day a,body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-today a{color:#fff}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-icon{display:none}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-calendar{table-layout:fixed;width:100%}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-calendar td,body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-calendar th{text-align:center;padding:4px 0}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-calendar td{border-radius:4px;transition:background-color .1s ease-in-out,color .1s ease-in-out}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-calendar td:hover{background-color:#EBEBEB;cursor:pointer}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-today{background-color:rgba(66,137,204,.65)}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-current-day{background-color:#4289cc}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-calendar .ui-datepicker-unselectable:hover{background-color:#fff;cursor:default}.custom-radio-holder{display:inline-block;width:100%;margin:.5em 0}.custom-radio-label{display:block;float:left;margin:0 5px}.custom-radio-label:first-child{margin-left:0!important}.custom-radio-label input[type=radio]{margin-right:0!important}.custom-select-field{display:block;width:100%;margin:.5em 0}#available-widgets [class*=yikes_easy] .widget-title:before{content:""!important;background:url(../../includes/images/MailChimp_Assets/Freddie_original.png) no-repeat #FAFAFA;background-size:contain}body.wp-customizer #available-widgets [id*="_yikes_easy_mc_widget"]>div.widget-top>div.widget-title>h4{background:0 0!important}#connection-container{float:right;color:#fff;padding:.25em .75em .25em .25em;margin-top:-4px}#connection-container.api-connected{background:#44ba44}#connection-container.api-not-connected{background:#b5b5b5}.yikes-mc-api-connected,.yikes-mc-api-not-connected{line-height:1}.show-some-love-container{transition:max-height .75s}#review-yikes-easy-mc{text-align:center}#review-yikes-easy-mc .dashicons-star-filled{color:#E6B800}.meta-box-sortables hr{margin:1.75em 0 0}#about-yikes-inc{display:none}#about-yikes-inc .about-sidebar-yikes-logo{float:left;width:95px;margin:5px 7px 0 0}#about-yikes-inc p{margin-top:0}.yikes-easy-mc-updated{display:block;border-left:4px solid #4EAEF0;margin:1em 20px 1em 0;padding:2px 10px;background:right bottom no-repeat #fff;background-size:120px;background-position-y:29px}.support-section{margin:1.5em 0;padding:1em 0}.github-octocat{background:url(../../includes/images/Support_Page/Octocat.png) left top no-repeat;background-size:100%;width:50px;height:45px;display:block;float:left;margin-top:-5px}@media screen and (max-width:1200px){.yikes-easy-mc-postbox #post-body.columns-2 #postbox-container-1{float:none}}@media screen and (max-width:850px){.option-menu-selected-arrow{display:none!important}}@media screen and (max-width:782px){#chimp-chatter .chimp-chatter-container{float:none;height:auto;width:100%}}.recaptcha-demo-gif{width:275px}.pro-version-only-notice{color:#d96060}.upgrading-ellipse-one{filter:alpha(opacity=0);-khtml-opacity:0;opacity:0;-webkit-animation:dot 1.3s infinite;animation:dot 1.3s infinite;-webkit-animation-delay:0ms;animation-delay:0ms}.upgrading-ellipse-two{filter:alpha(opacity=0);-khtml-opacity:0;opacity:0;-webkit-animation:dot 1.3s infinite;animation:dot 1.3s infinite;-webkit-animation-delay:.2s;animation-delay:.2s}.upgrading-ellipse-three{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity:0;opacity:0;-webkit-animation:dot 1.3s infinite;animation:dot 1.3s infinite;-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes dot{0%,50%{opacity:0}100%{opacity:1}}@keyframes dot{0%,50%{opacity:0}100%{opacity:1}}
|
2 |
-
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInlpa2VzLWluYy1lYXN5LW1haWxjaGltcC1leHRlbmRlci1hZG1pbi5taW4uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNEQUFzRCxpQkFBaUIsQ0FBQyxzQkFBc0IsWUFBWSxDQUFDLHVCQUF1QixXQUFXLDBDQUEwQyxDQUFDLGdDQUFnQyxjQUFjLGFBQWEsQ0FBQyxpQkFBaUIsWUFBWSxDQUFDLHFCQUFxQixlQUFlLGdCQUFnQixXQUFXLGFBQWEsQ0FBQyxvQkFBb0IsaUJBQWlCLENBQUMsK0JBQStCLGVBQWUsZUFBZSxDQUFDLG9CQUFvQixZQUFZLENBQUMsU0FBUyxZQUFZLENBQUMsYUFBYSxhQUFhLENBQUMsMEJBQTBCLHdCQUF3QixDQUFDLDJCQUEyQixjQUFjLGNBQWMsQ0FBQyxtQ0FBbUMsYUFBYSxlQUFlLENBQUMsc0NBQXNDLFlBQVksQ0FBQyw2REFBNkQsY0FBYyxDQUFDLG1CQUFtQixxQkFBcUIsa0JBQWtCLENBQUMsb0NBQW9DLGlCQUFpQixDQUFDLHdCQUF3QixVQUFVLENBQUMsd0ZBQXdGLHdHQUF3RyxxQkFBcUIsY0FBYyxZQUFZLGlCQUFpQixlQUFlLENBQUMseUZBQXlGLFNBQVMsQ0FBQyxvQ0FBb0MsVUFBVSxpQkFBaUIsQ0FBQyxxSEFBcUgsY0FBYyxVQUFVLENBQUMsaUNBQWlDLHFCQUFxQixVQUFVLGlCQUFpQixDQUFDLHVDQUF1QyxjQUFjLENBQUMsK0NBQStDLDhCQUE4QixDQUFDLCtEQUErRCxnQ0FBZ0MsNEJBQTRCLENBQUMsMERBQTBELGNBQWMsZ0JBQWdCLGVBQWUsa0JBQWtCLGdCQUFnQixnQkFBZ0IsZUFBZSxDQUFDLDJEQUEyRCxlQUFlLGFBQWEsbUJBQW1CLHVCQUF1QixDQUFDLDBEQUEwRCxpQkFBaUIsQ0FBQyxvQ0FBb0MsMEdBQTBHLG1CQUFtQixDQUFDLGNBQWMsdUNBQXVDLDZCQUE2Qix5QkFBeUIsQ0FBQyxnQkFBZ0IsdUJBQXVCLDBCQUEwQixjQUFjLENBQUMsaUNBQWlDLGNBQWMsb0JB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QThCLHNCQUFzQixpQkFBaUIsdUNBQXVDLHNCQUFzQiwwQkFBMEIsQ0FBQyxpQkFBaUIsZUFBZSxhQUFhLENBQUMsZ0JBQWdCLGtGQUFrRixxQkFBcUIsV0FBVyxZQUFZLGNBQWMsV0FBVyxlQUFlLENBQUMscUNBQXFDLGlFQUFpRSxVQUFVLENBQUMsQ0FBQyxvQ0FBb0MsNEJBQTRCLHNCQUFzQixDQUFDLENBQUMsb0NBQW9DLHdDQUF3QyxXQUFXLFlBQVksVUFBVSxDQUFDLENBQUMsb0JBQW9CLFdBQVcsQ0FBQyx5QkFBeUIsYUFBYSxDQUFDLHVCQUF1Qix3QkFBd0IsaUJBQWlCLFVBQVUsb0NBQTRCLEFBQTVCLDRCQUE0Qiw0QkFBNEIsbUJBQW1CLENBQUMsdUJBQXVCLHdCQUF3QixpQkFBaUIsVUFBVSxvQ0FBNEIsQUFBNUIsNEJBQTRCLDRCQUE0QixtQkFBbUIsQ0FBQyx5QkFBeUIsZ0VBQWdFLHdCQUF3QixlQUFlLGlCQUFpQixVQUFVLG9DQUFvQyw0QkFBNEIsNEJBQTRCLG1CQUFtQixDQUFDLHVCQUF1QixPQUFPLFNBQVMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLGVBQWUsT0FBTyxTQUFTLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyIsImZpbGUiOiJ5aWtlcy1pbmMtZWFzeS1tYWlsY2hpbXAtZXh0ZW5kZXItYWRtaW4ubWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiN5aWtlcy1lYXN5LW1jLWRhc2hib2FyZC13aWRnZXQtc3RhdHMgaDMsLmFkZG9uLWltYWdle3RleHQtYWxpZ246Y2VudGVyfS55aWtlcy1lYXN5LW1jLWhpZGRlbntkaXNwbGF5Om5vbmV9LnNob3J0Y29kZS1pbnB1dC1maWVsZHtjb2xvcjojMzMzO2JhY2tncm91bmQ6cmdiYSgyMTYsMjE2LDIxNiwuMzUpIWltcG9ydGFudH0uZWRpdC1mb3JtLWZpZWxkLWNvbnRhaW5lci1zcGFue2Rpc3BsYXk6YmxvY2s7bWFyZ2luOi41ZW0gMH0ubm8tZm9ybXMtd2lkZ2V0e21hcmdpbjoyZW0gMH0ubm8tZm9ybXMtZm91bmQtaWNvbntmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjQ7d2lkdGg6MTRweDtjb2xvcjojZTA3ZDdkfS5jb21pbmctc29vbi1idXR0b257cG9zaXRpb246YWJzb2x1dGV9LmNvbWluZy1zb29uLWJ1dHRvbiAuZGFzaGljb25ze2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuOH0uYWRkLW9ucy1hYm91dC10ZXh0e21hcmdpbi10b3A6MH0jYWRkLW9uc3ttYXJnaW46M2VtIDB9LmFkZG9uLWltYWdle2Rpc3BsYXk6YmxvY2t9Lm5vLW1haWxjaGltcC1saXN0cy1mb3VuZHtwYWRkaW5nOjI1cHggMCAyNXB4IDI1cHh9LmFkZC1uZXctc3Vic2NyaWJlci1idXR0b257ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjJlbX0uYWRkLW5ldy1zdWJzY3JpYmVyLWZvcm0tY29udGFpbmVye2Rpc3BsYXk6bm9uZTtwYWRkaW5nLXRvcDoxZW19LmFkZC1uZXctc3Vic2NyaWJlci1mb3JtLWNvbnRhaW5lciBoNHttYXJnaW4tdG9wOjB9I3lpa2VzLWVhc3ktbWMtd2lkZ2V0LXN0YXQtaG9sZGVyLC55aWtlcy1lYXN5LW1jLXN0YXRzLXRhYmxle21hcmdpbi10b3A6MWVtfSNtaWdyYXRpb24tYnV0dG9uc3tkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tYm90dG9tOi41ZW19I21pZ3JhdGlvbi1idXR0b25zIGZvcm06Zmlyc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjEwcHh9I21pZ3JhdGlvbi1idXR0b25zIGZvcm17ZmxvYXQ6bGVmdH0jeWlrZXNfZWFzeV9tY19hY2NvdW50X2FjdGl2aXR5X3dpZGdldCBoMyBzcGFuLCN5aWtlc19lYXN5X21jX2xpc3Rfc3RhdHNfd2lkZ2V0IGgzIHNwYW57YmFja2dyb3VuZDp1cmwoLi4vLi4vaW5jbHVkZXMvaW1hZ2VzL01haWxDaGltcF9Bc3NldHMvRnJlZGRpZV9vcmlnaW5hbC5wbmcpIDhweCA0cHgvMjVweCBhdXRvIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MjVweDtkaXNwbGF5OmJsb2NrO2hlaWdodDozMHB4O3BhZGRpbmctbGVmdDozZW07cGFkZGluZy10b3A6NXB4fSN5aWtlc19lYXN5X21jX2FjY291bnRfYWN0aXZpdHlfd2lkZ2V0IGgzLmhuZGxlLCN5aWtlc19lYXN5X21jX2xpc3Rfc3RhdHNfd2lkZ2V0IC5pbnNpZGV7cGFkZGluZzowfSN5aWtlc19lYXN5X21jX2xpc3Rfc3RhdHNfd2lkZ2V0IGgze3BhZGRpbmc6MDtsaW5lLWhlaWdodDoxLjZlbX0ueWlrZXMtZWFzeS1tYy1zdGF0cy10YWJsZSwueWlrZXMtZWFzeS1tYy1zdGF0cy10YWJsZSAueWlrZXMtZWFzeS1tYy10YWJsZS1zdGF0cy10ciwueWlrZXMtZWFzeS1tYy1zdGF0cy10YWJsZSB0Ym9keXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCV9Lnlpa2VzLWVhc3ktbWMtdGFibGUtc3RhdHMtdHIgdGR7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6NDglO3RleHQtYWxpZ246Y2VudGVyfS55aWtlcy1lYXN5LW1jLXRhYmxlLXN0YXRzLXRyIHRkOmhvdmVye2N1cnNvcjpwb2ludGVyfS55aWtlcy1lYXN5LW1jLXRhYmxlLXN0YXRzLXRyIHRkOmZpcnN0LW9mLXR5cGV7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZWNlY2VjfS55aWtlcy1lYXN5LW1jLXN0YXRzLXRhYmxlIC55aWtlcy1lYXN5LW1jLXRhYmxlLXN0YXRzLXRyLWZpcnN0e2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlY2VjZWM7Ym9yZGVyLXRvcDoxcHggc29saWQgI2VjZWNlY30ueWlrZXMtZWFzeS1tYy1zdGF0cy10YWJsZSBwLnlpa2VzLWVhc3ktbWMtZGFzaGJvYXJkLXN0YXR7Y29sb3I6IzAwYTBkMjtmb250LXdlaWdodDo4MDA7Zm9udC1zaXplOjIwcHg7bWFyZ2luLWJvdHRvbToycHg7bWFyZ2luLXRvcDoxNXB4O2xpbmUtaGVpZ2h0OjEuMjttYXgtaGVpZ2h0OjgwcHh9Lnlpa2VzLWVhc3ktbWMtc3RhdHMtdGFibGUgcC55aWtlcy1lYXN5LW1jLXN0YXQtbGlzdC1sYWJlbHtmb250LXNpemU6MTNweDttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbToxNXB4O2ZvbnQtZmFtaWx5OlwiT3BlbiBTYW5zXCJ9I3lpa2VzX2Vhc3lfbWNfYWNjb3VudF9hY3Rpdml0eV93aWRnZXQgdGFibGUgdGgucm93LXRpdGxle3BhZGRpbmctbGVmdDoxMHB4fSNwcmUtZGVmaW5lZC10YWctaW50ZXJpb3ItY29udGFpbmVye2JhY2tncm91bmQ6dXJsKC4uLy4uL2luY2x1ZGVzL2ltYWdlcy90aW55TUNFL3lpa2VzLW1haWxjaGltcC1jb21iby1mYWRlZC5wbmcpIGJvdHRvbSByaWdodCBuby1yZXBlYXQgI2ZmZjtiYWNrZ3JvdW5kLXNpemU6NDAlfS5xdGlwLWRlZmF1bHR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCFpbXBvcnRhbnQ7Ym9yZGVyOnRyYW5zcGFyZW50IWltcG9ydGFudDt6LWluZGV4Ojk5OTk5OTkhaW1wb3J0YW50fS5xdGlwLWJvb3RzdHJhcHtwYWRkaW5nOjEwcHghaW1wb3J0YW50O3otaW5kZXg6OTk5OTk5OSFpbXBvcnRhbnQ7Zm9udC1zaXplOjEycHh9LnNlYXJjaC1pbnRlcmVzdC1ncm91cC1wcmVsb2FkZXJ7ZGlzcGxheTpibG9jazttYXJnaW46OHB4IDAgMCA1NXB4O3dpZHRoOjEycHh9Lm5vLWludGVyZXN0LWdyb3VwaW5ncy1lbmFibGVkLW1lc3NhZ2V7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjEycHghaW1wb3J0YW50O3dpZHRoOjEwMCV9LnRvb2x0aXAtaW50ZWdyYXRpb24tYmFubmVye21heC13aWR0aDoxMDAlO21hcmdpbjowIDAgLjI1ZW19LnRvb2x0aXB0ZXh0LnF0aXAtYm9vdHN0cmFwe2ZvbnQtc2l6ZToxMnB4fS50b29sdGlwLXRpdGxle21hcmdpbjowfS5kYXNoaWNvbnMtZWRpdG9yLWhlbHA6aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9Ym9keS5lYXN5LWZvcm1zX3BhZ2VfeWlrZXMtaW5jLWVhc3ktbWFpbGNoaW1wLXNldHRpbmdzIC5pbnRlcmVzdC1ncm91cC1zZWN0aW9ue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTttYXJnaW46MS41ZW0gMH1ib2R5LmVhc3ktZm9ybXNfcGFnZV95aWtlcy1pbmMtZWFzeS1tYWlsY2hpbXAtc2V0dGluZ3MgLmludGVyZXN0LWdyb3VwLXNlY3Rpb24gLmludGVyZXN0LWdyb3VwLXNlY3Rpb24tdGl0bGV7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO21hcmdpbjouNWVtIDA7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uZ2l0aHViLWF2YXRhci11cmwsYm9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC13ZWxjb21lICNrYi1jb250YWluZXIgLmtub3dsZWRnZS1iYXNlLWxpc3RpbmcgbGkgYSxib2R5LmVhc3ktZm9ybXNfcGFnZV95aWtlcy1pbmMtZWFzeS1tYWlsY2hpbXAtc3VwcG9ydCAua25vd2xlZGdlLWJhc2UtYXJ0aWNsZXMgLmtub3dsZWRnZS1iYXNlLWxpc3RpbmcgbGkgYXt0ZXh0LWRlY29yYXRpb246bm9uZX1ib2R5LmVhc3ktZm9ybXNfcGFnZV95aWtlcy1pbmMtZWFzeS1tYWlsY2hpbXAtc2V0dGluZ3MgLmludGVyZXN0LWdyb3VwLXNlY3Rpb24gaW5wdXR7bWFyZ2luLXJpZ2h0OjB9Ym9keS5lYXN5LWZvcm1zX3BhZ2VfeWlrZXMtaW5jLWVhc3ktbWFpbGNoaW1wLXNldHRpbmdzIC5pbnRlcmVzdC1ncm91cC1zZWN0aW9uIGxhYmVse21hcmdpbi1yaWdodDoxMHB4fWkubWNlLWljby5tY2UtaS15a3NfbWNfdGlueW1jZV9idXR0b25fa2V5e2JhY2tncm91bmQ6dXJsKC4uLy4uL2luY2x1ZGVzL2ltYWdlcy90aW55TUNFL0ZyZWRkaWVfd2luay5wbmcpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MThweDtiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6MXB4fSN5aWtlc19tYWlsY2hpbXBfdGlueU1DRV9tb2RhbC10aXRsZXtwYWRkaW5nLWxlZnQ6NDJweDtiYWNrZ3JvdW5kOnVybCguLi8uLi9pbmNsdWRlcy9pbWFnZXMvTWFpbENoaW1wX0Fzc2V0cy9GcmVkZGllX29yaWdpbmFsLnBuZykgbGVmdCBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjI1cHg7YmFja2dyb3VuZC1wb3NpdGlvbi14OjEwcHh9I3lpa2VzX21haWxjaGltcF90aW55TUNFX21vZGFse2JhY2tncm91bmQ6dXJsKC4uLy4uL2luY2x1ZGVzL2ltYWdlcy90aW55TUNFL3lpa2VzLW1haWxjaGltcC1jb21iby1mYWRlZC5wbmcpIGJvdHRvbSBsZWZ0IG5vLXJlcGVhdCAjZmZmO2JhY2tncm91bmQtc2l6ZTo0MCU7YmFja2dyb3VuZC1wb3NpdGlvbi14OjEwcHg7YmFja2dyb3VuZC1wb3NpdGlvbi15Ojk1JX0jeWlrZXNfbWFpbGNoaW1wX3RpbnlNQ0VfbW9kYWwgLm1jZS1mb290e2JvcmRlci10b3A6bm9uZSFpbXBvcnRhbnQ7YmFja2dyb3VuZDowIDB9W2lkKj1cIl95aWtlc19lYXN5X21jX3dpZGdldFwiXT5kaXYud2lkZ2V0LXRvcD5kaXYud2lkZ2V0LXRpdGxlPmg0e2JhY2tncm91bmQ6dXJsKC4uLy4uL2luY2x1ZGVzL2ltYWdlcy9NYWlsQ2hpbXBfQXNzZXRzL0ZyZWRkaWVfb3JpZ2luYWwucG5nKSAyJSA1MCUvMjVweCBhdXRvIG5vLXJlcGVhdCAjRkFGQUZBO3BhZGRpbmctbGVmdDo0MHB4fSNyZXZpZXcteWlrZXMtZWFzeS1tYWlsY2hpbXAtbm90aWNlICN5aWtlcy1tYWlsY2hpbXAtbG9nbywjeWlrZXMtbWFpbGNoaW1wLWxvZ297Zm9udC1zaXplOjE0cHg7YmFja2dyb3VuZDp1cmwoLi4vLi4vaW5jbHVkZXMvaW1hZ2VzL1dlbGNvbWVfUGFnZS95aWtlcy1tYWlsY2hpbXAtd2VsY29tZS1sb2dvLnBuZykgbm8tcmVwZWF0O3RleHQtYWxpZ246Y2VudGVyfSNyZXZpZXcteWlrZXMtZWFzeS1tYWlsY2hpbXAtbm90aWNlICN5aWtlcy1tYWlsY2hpbXAtbG9nb3tiYWNrZ3JvdW5kLXNpemU6NjBweDtmbG9hdDpsZWZ0O2hlaWdodDo4MHB4O3dpZHRoOjgwcHh9Lnlpa2VzLWVhc3ktbWMtZmVhdHVyZS1pbWFnZS1sZWZ0e2Zsb2F0OmxlZnQ7bWFyZ2luLXJpZ2h0OjMwcHg7bWFyZ2luLWxlZnQ6MCFpbXBvcnRhbnR9Lm5lZWQtc3VwcG9ydC1pY29ue2xpbmUtaGVpZ2h0OjEuNX11bC5zdXBwb3J0LW9wdGlvbi1saXN0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCV9LnN1cHBvcnQtb3B0aW9ue2Zsb2F0OmxlZnR9LnN1cHBvcnQtb3B0aW9uLXNlY29uZHttYXJnaW4tbGVmdDoxMHB4fSN5aWtlcy1tYWlsY2hpbXAtbG9nby5zdXBwb3J0LXBhZ2V7ZmxvYXQ6bGVmdDt3aWR0aDo4MHB0fS55aWtlcy1lYXN5LW1jLXdoYXRzLW5ldy1zZWN0aW9uLWltYWdle2Zsb2F0Om5vbmU7d2lkdGg6MTAwJTttYXJnaW4tbGVmdDowIWltcG9ydGFudH0ud2VsY29tZS1wYWdlLXRhYnN7bWFyZ2luLXRvcDoyZW0haW1wb3J0YW50fS53ZWxjb21lLXBhZ2UtYWJvdXQtd3JhcCAuYWJvdXQtdGV4dCwud2VsY29tZS1wYWdlLWFib3V0LXdyYXAgaDIud2VsY29tZS10aXRsZXttYXJnaW4tbGVmdDoxMTVweH0ud2hhdHMtbmV3LXdyYXAgaW1nLnlpa2VzLWVhc3ktbWMtd2hhdHMtbmV3LXNlY3Rpb24taW1hZ2V7bWFyZ2luLXRvcDoxMHB4fS53aGF0cy1uZXctd3JhcCAuZmVhdHVyZS1zZWN0aW9uOm50aC1jaGlsZCgxKSBpbWd7ZmxvYXQ6bGVmdDt3aWR0aDo1MDBweDttYXJnaW4tbGVmdDowIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6MzBweH0ud2hhdHMtbmV3LXdyYXAgLmZlYXR1cmUtc2VjdGlvbjpudGgtY2hpbGQoMykgaW1ne2Zsb2F0OnJpZ2h0O3dpZHRoOjI1MHB4O21hcmdpbi1yaWdodDowIWltcG9ydGFudDttYXJnaW4tbGVmdDozMHB4fS53aGF0cy1uZXctd3JhcCAuZmVhdHVyZS1zZWN0aW9uOm50aC1jaGlsZCg0KSBpbWd7bWFyZ2luLWxlZnQ6MCFpbXBvcnRhbnR9I3lpa2VzLW1haWxjaGltcC1sb2dve2hlaWdodDoxMzJweDt3aWR0aDoxMzJweH0uYWJvdXQtd3JhcCAjeWlrZXMtbWFpbGNoaW1wLWxvZ297cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowfS5lZGQtd2VsY29tZS1zY3JlZW5zaG90c3tmbG9hdDpyaWdodDttYXJnaW4tbGVmdDoxMHB4IWltcG9ydGFudH0uYWJvdXQtd3JhcCAuZmVhdHVyZS1zZWN0aW9ue21hcmdpbi10b3A6MjBweH0ueWlrZXMtZWFzeS1tYy1mZWF0dXJlLWltYWdle2Zsb2F0OnJpZ2h0O21hcmdpbi1sZWZ0OjMwcHghaW1wb3J0YW50fSNjcmVkaXQtY29udGFpbmVyLCN0cmFuc2xhdG9ycy1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTAwJX0jY3JlZGl0LWNvbnRhaW5lciBoMiwjdHJhbnNsYXRvcnMtY29udGFpbmVyIGgye21hcmdpbjowIDAgLjVlbSAxZW19I3RyYW5zbGF0b3JzLWNvbnRhaW5lcnttYXJnaW4tdG9wOjVlbX0jdHJhbnNsYXRvcnMtY29udGFpbmVyIC50cmFuc2xhdGlvbi1sYW5ndWFnZXtjb2xvcjojMzMzfSNjcmVkaXQtY29udGFpbmVyIC50ZWFtLW1lbWJlciwjdHJhbnNsYXRvcnMtY29udGFpbmVyIC50cmFuc2xhdG9ye21hcmdpbjoxZW0gNSUgMWVtIDA7dGV4dC1hbGlnbjpjZW50ZXJ9I2NyZWRpdC1jb250YWluZXIgLnRlYW0tbWVtYmVyIGltZywjdHJhbnNsYXRvcnMtY29udGFpbmVyIC50cmFuc2xhdG9yIGltZ3tib3JkZXItcmFkaXVzOjUwJX0uYWJvdXQtd3JhcCBkaXYuZXJyb3IsLmFib3V0LXdyYXAgZGl2LnVwZGF0ZWR7ZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7bWFyZ2luLWxlZnQ6MTE1cHghaW1wb3J0YW50fS5naXRodWItYXZhdGFyLWltYWdle3dpZHRoOjEwMHB4fS5naXRodWItYXZhdGFyLXVybHtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoyMCV9Z2l0aHViLWF2YXRhci11cmw6Zm9jdXN7b3V0bGluZTowfWJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIGRpdi5zaG93LXNvbWUtbG92ZS1jb250YWluZXIgaW1nLGRpdi5zaG93LXNvbWUtbG92ZS1jb250YWluZXIgaW1nLmN1c3RvbWl6ZXItdXBzZWxsLWJhbm5lcnttYXgtd2lkdGg6MTAwJX1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSBkaXYuc2hvdy1zb21lLWxvdmUtY29udGFpbmVyIHA6Zmlyc3QtY2hpbGR7Zm9udC1zdHlsZTppdGFsaWN9Ym9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gZGl2LnNob3ctc29tZS1sb3ZlLWNvbnRhaW5lciBocnttYXJnaW46MWVtIDB9Ym9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC13ZWxjb21lIC5uYXYtdGFiLXdyYXBwZXIgLm5hdi10YWIgLmRhc2hpY29uc3tmb250LXNpemU6MTdweDtsaW5lLWhlaWdodDoxLjV9Ym9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC13ZWxjb21lICNrYi1jb250YWluZXIsYm9keS5lYXN5LWZvcm1zX3BhZ2VfeWlrZXMtaW5jLWVhc3ktbWFpbGNoaW1wLXN1cHBvcnQgLmtub3dsZWRnZS1iYXNlLWFydGljbGVze2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi10b3A6MWVtfWJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtd2VsY29tZSAja2ItY29udGFpbmVyIGgxe2ZvbnQtc2l6ZToyMHB4O21hcmdpbi10b3A6LTFlbX1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLXdlbGNvbWUgI2tiLWNvbnRhaW5lciAua25vd2xlZGdlLWJhc2UtbGlzdGluZyxib2R5LmVhc3ktZm9ybXNfcGFnZV95aWtlcy1pbmMtZWFzeS1tYWlsY2hpbXAtc3VwcG9ydCAua25vd2xlZGdlLWJhc2UtYXJ0aWNsZXMgLmtub3dsZWRnZS1iYXNlLWxpc3Rpbmd7d2lkdGg6NDUlO21hcmdpbi1yaWdodDoyJTtmbG9hdDpsZWZ0O21pbi1oZWlnaHQ6MjYwcHh9Ym9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC13ZWxjb21lICNrYi1jb250YWluZXIgLmtub3dsZWRnZS1iYXNlLWxpc3RpbmcgbGksYm9keS5lYXN5LWZvcm1zX3BhZ2VfeWlrZXMtaW5jLWVhc3ktbWFpbGNoaW1wLXN1cHBvcnQgLmtub3dsZWRnZS1iYXNlLWFydGljbGVzIC5rbm93bGVkZ2UtYmFzZS1saXN0aW5nIGxpe21hcmdpbjoxMnB4IDA7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Ym9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC13ZWxjb21lICNrYi1jb250YWluZXIgLmtub3dsZWRnZS1iYXNlLWxpc3RpbmcgbGk6YmVmb3JlLGJvZHkuZWFzeS1mb3Jtc19wYWdlX3lpa2VzLWluYy1lYXN5LW1haWxjaGltcC1zdXBwb3J0IC5rbm93bGVkZ2UtYmFzZS1hcnRpY2xlcyAua25vd2xlZGdlLWJhc2UtbGlzdGluZyBsaTpiZWZvcmV7Zm9udC1mYW1pbHk6ZGFzaGljb25zO2NvbnRlbnQ6XCJcXGYxMjNcIjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTpibG9jaztmbG9hdDpsZWZ0O21hcmdpbjowIDVweCA1cHggMH1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLXdlbGNvbWUgI2tiLWNvbnRhaW5lciAua25vd2xlZGdlLWJhc2UtbGlzdGluZyBsaS5saXN0LXRpdGxlLGJvZHkuZWFzeS1mb3Jtc19wYWdlX3lpa2VzLWluYy1lYXN5LW1haWxjaGltcC1zdXBwb3J0IC5rbm93bGVkZ2UtYmFzZS1hcnRpY2xlcyAua25vd2xlZGdlLWJhc2UtbGlzdGluZyBsaS5saXN0LXRpdGxle2ZvbnQtc2l6ZToxN3B4O2ZvbnQtd2VpZ2h0OjIwMDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfWJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtd2VsY29tZSAja2ItY29udGFpbmVyIC5rbm93bGVkZ2UtYmFzZS1saXN0aW5nIGxpLmxpc3QtdGl0bGU6YmVmb3JlLGJvZHkuZWFzeS1mb3Jtc19wYWdlX3lpa2VzLWluYy1lYXN5LW1haWxjaGltcC1zdXBwb3J0IC5rbm93bGVkZ2UtYmFzZS1hcnRpY2xlcyAua25vd2xlZGdlLWJhc2UtbGlzdGluZyBsaS5saXN0LXRpdGxlOmJlZm9yZXtjb250ZW50OlwiXCI7cGFkZGluZy1sZWZ0OjEycHh9Ym9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC13ZWxjb21lIC5uZXctZmVhdHVyZS1saXN0e2xpc3Qtc3R5bGU6bm9uZTtsaW5lLWhlaWdodDptaWRkbGV9Ym9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC13ZWxjb21lIC5uZXctZmVhdHVyZS1saXN0IGxpe21hcmdpbi1ib3R0b206MTBweH1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLXdlbGNvbWUgLm5ldy1mZWF0dXJlLWxpc3QgbGk6YmVmb3Jle2ZvbnQtZmFtaWx5OmRhc2hpY29ucztjb250ZW50OlwiXFxmMTM5XCI7cGFkZGluZy1yaWdodDoycHg7Zm9udC1zaXplOjIwcHg7dmVydGljYWwtYWxpZ246bWlkZGxlfSNyZXZpZXcteWlrZXMtZWFzeS1tYWlsY2hpbXAtbm90aWNlIC5idXR0b24tY29udGFpbmVye2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTttYXJnaW46Ljc1ZW0gMCAxLjVlbX0jcmV2aWV3LXlpa2VzLWVhc3ktbWFpbGNoaW1wLW5vdGljZSAuYnV0dG9uLWNvbnRhaW5lciAuZGFzaGljb25ze2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuOTttYXJnaW4tbGVmdDotNHB4fSNyZXZpZXcteWlrZXMtZWFzeS1tYWlsY2hpbXAtbm90aWNlIC5idXR0b24tY29udGFpbmVyIC5kYXNoaWNvbnMtc3Rhci1maWxsZWR7Y29sb3I6I0U2QjgwMH0jcmV2aWV3LXlpa2VzLWVhc3ktbWFpbGNoaW1wLW5vdGljZSAuYnV0dG9uLWNvbnRhaW5lciAuZGFzaGljb25zLXVwbG9hZHtjb2xvcjojNkU4ODQxfSNyZXZpZXcteWlrZXMtZWFzeS1tYWlsY2hpbXAtbm90aWNlIC5idXR0b24tY29udGFpbmVyIC5kYXNoaWNvbnMtbm8tYWx0e2NvbG9yOiNkYzNhM2E7bGluZS1oZWlnaHQ6Mn1ib2R5LmVhc3ktbWFpbGNoaW1wX3BhZ2VfeWlrZXMtaW5jLWVhc3ktbWFpbGNoaW1wLXNldHRpbmdzIC5kYXNoaWNvbnMtbm8tYWx0e2NvbG9yOiNkYzNhM2F9I3Jldmlldy15aWtlcy1lYXN5LW1haWxjaGltcC1ub3RpY2UgLmJ1dHRvbi1jb250YWluZXIgYXttYXJnaW4tcmlnaHQ6MTBweH0jcmV2aWV3LXlpa2VzLWVhc3ktbWFpbGNoaW1wLW5vdGljZXtib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTBkMjtiYWNrZ3JvdW5kOiNmZWZlZmU7cGFkZGluZzoxMHB4IDEycHggMXB4O2JveC1zaGFkb3c6MCAxcHggMXB4IDAgcmdiYSgwLDAsMCwuMSk7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDFweCAwIHJnYmEoMCwwLDAsLjEpO21hcmdpbjoxNXB4IDI1cHggMjBweCA1cHh9aW5wdXQucmVhZG9ubHksaW5wdXRbcmVhZG9ubHldLHRleHRhcmVhLnJlYWRvbmx5LHRleHRhcmVhW3JlYWRvbmx5XXtiYWNrZ3JvdW5kOiNEOEQ4RDh9LmRhc2hpY29ucy55aWtlcy1sb3Zle2NvbG9yOnBpbmt9LmZpZWxkLWRlc2NyaXB0aW9uLWlucHV0e3Jlc2l6ZTp2ZXJ0aWNhbDttYXgtaGVpZ2h0OjEwMHB4fS55aWtlcy1lYXN5LW1jLXBvc3Rib3ggaDN7YmFja2dyb3VuZDojMDBhMGQyO2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjojZmZmfS55aWtlcy1lYXN5LW1jLXBvc3Rib3ggaDMuYmctdHJhbnNwYXJlbnR7Y29sb3I6IzMzMztmb250LXdlaWdodDo0MDA7YmFja2dyb3VuZDowIDB9Lnlpa2VzLW1jLXdhcm5pbmctbWVzc2FnZXtwYWRkaW5nLWxlZnQ6MTVweDttYXJnaW4tdG9wOjA7cGFkZGluZy10b3A6MTBweDtjb2xvcjojZGE2ZTZlfS5lcnJvci1tZXNzYWdlLWNvbnRhaW5lciBsYWJlbFtmb3I9eWlrZXMtZWFzeS1tYy1zdWNjZXNzLW1lc3NhZ2VdLC5lcnJvci1tZXNzYWdlLWNvbnRhaW5lciBsYWJlbFtmb3I9eWlrZXMtZWFzeS1tYy1nZW5lcmFsLWVycm9yLW1lc3NhZ2VdLC5lcnJvci1tZXNzYWdlLWNvbnRhaW5lciBsYWJlbFtmb3I9eWlrZXMtZWFzeS1tYy1pbnZhbGlkLWVtYWlsLW1lc3NhZ2VdLC5lcnJvci1tZXNzYWdlLWNvbnRhaW5lciBsYWJlbFtmb3I9eWlrZXMtZWFzeS1tYy11c2VyLXN1YnNjcmliZWQtbWVzc2FnZV17cGFkZGluZzouNWVtIDFlbTtiYWNrZ3JvdW5kOnJnYmEoMjQxLDI0MSwyNDEsLjc1KTtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjB9Ym9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gI2Vycm9yLWNvbnRhaW5lcntwYWRkaW5nOjJweCAxZW07YmFja2dyb3VuZDpyZ2JhKDI0MSwyNDEsMjQxLC43NSk7Ym94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO2NvbG9yOiNGNTYwNjB9LmVycm9yLW1lc3NhZ2UtY29udGFpbmVyIGxhYmVsW2Zvcj15aWtlcy1lYXN5LW1jLXVzZXItc3Vic2NyaWJlZC1tZXNzYWdlXXtwYWRkaW5nLWJvdHRvbToxZW07bWFyZ2luLWJvdHRvbTouNWVtfS5lcnJvci1tZXNzYWdlLWNvbnRhaW5lciBsYWJlbCwuZm9ybS1zZXR0aW5ncy1jb250YWluZXIgbGFiZWx7ZGlzcGxheTpibG9jazttYXJnaW46MWVtIDB9Lnlpa2VzLWVhc3ktZm9ybXMtc2lkZWJhciAueWlrZXMtbWMtc2V0dGluZ3MtZXhwYW5zaW9uLXNlY3Rpb257cGFkZGluZzouNWVtIC43NWVtOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94fS55aWtlcy1tYy1zZXR0aW5ncy1leHBhbnNpb24tc2VjdGlvbntkaXNwbGF5Om5vbmU7YmFja2dyb3VuZDpyZ2JhKDI0MSwyNDEsMjQxLC43NSl9LmV4cGFuc2lvbi1zZWN0aW9uLXRpdGxle2JhY2tncm91bmQ6I2ZmZn0uZXhwYW5zaW9uLXNlY3Rpb24tdGl0bGUuc2V0dGluZ3Mtc2lkZWJhciwuZm9ybS1idWlsZGVyLXNlY3Rpb24tdGl0bGV7dGV4dC1kZWNvcmF0aW9uOm5vbmU7ZGlzcGxheTpibG9jaztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTc3LDE3NywxNzcsLjcxKTtjb2xvcjojMzMzO3BhZGRpbmc6NXB4O21hcmdpbjouNWVtIDAgMH0uZXhwYW5zaW9uLXNlY3Rpb24tdGl0bGUuc2V0dGluZ3Mtc2lkZWJhciAuZGFzaGljb25zLC5mb3JtLWJ1aWxkZXItc2VjdGlvbi10aXRsZSAuZGFzaGljb25ze2NvbnRlbnQ6XCJcXGYxMzJcIjtmb250LWZhbWlseTpkYXNoaWNvbnM7Zm9udC1zaXplOjE1cHg7bGluZS1oZWlnaHQ6MS41fXNwYW4uZWFzeS1tYWlsY2hpbXAtYWRkLW9uLXZhbGlkLWxpY2Vuc2UtY29udGFpbmVye2NvbG9yOiM0NGJhNDQ7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjFlbX0uZWFzeS1tYWlsY2hpbXAtYWRkLW9uLWludmFsaWQtbGljZW5zZS1jb250YWluZXJ7Y29sb3I6cmdiYSgyMjcsMTA3LDEwNywuODYpO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDoxZW19Lm9wdGlvbnMtc2lkZWJhciAueWlrZXMtZWFzeS1tYy1wb3N0Ym94e292ZXJmbG93OnZpc2libGV9Lm9wdGlvbnMtc2lkZWJhciAuaW5zaWRle3BhZGRpbmc6MCAyMHB4IDEycHh9Lnlpa2VzLWVhc3ktbWMtYWJvdXQtdGV4dHttYXJnaW4tdG9wOjB9LmFkZC1vbi1zZXR0aW5ncy1kaXZpZGVye21hcmdpbjoxZW0gMCFpbXBvcnRhbnR9I3lrcy1tYWlsY2hpbXAtZG91YmxlLW9wdGluLW1lc3NhZ2UsI3lrcy1tYWlsY2hpbXAtc2luZ2xlLW9wdGluLW1lc3NhZ2UsLnNldHRpbmdzLXBhZ2UtaW5wdXR7d2lkdGg6NTAlfSN5a3MtbWFpbGNoaW1wLWRvdWJsZS1vcHRpbi1tZXNzYWdlLCN5a3MtbWFpbGNoaW1wLXNpbmdsZS1vcHRpbi1tZXNzYWdle21pbi1oZWlnaHQ6NzVweDttYXgtaGVpZ2h0OjIwMHB4O3Jlc2l6ZTp2ZXJ0aWNhbH0jYWRkb24tc2V0dGluZ3MtbmF2IGxpIGEsI3NldHRpbmdzLW5hdiBsaSBhe2NvbG9yOiMzMzM7dGV4dC1kZWNvcmF0aW9uOm5vbmUhaW1wb3J0YW50O3RyYW5zaXRpb246Y29sb3IgLjE1cyBlYXNlLW91dDstbW96LXRyYW5zaXRpb246Y29sb3IgLjE1cyBlYXNlLW91dDstd2Via2l0LXRyYW5zaXRpb246Y29sb3IgLjE1cyBlYXNlLW91dDstby10cmFuc2l0aW9uOmNvbG9yIC4xNXMgZWFzZS1vdXR9I2FkZG9uLXNldHRpbmdzLW5hdiBsaSBhOmhvdmVyLCNzZXR0aW5ncy1uYXYgbGkgYTpob3Zlciwub3B0aW9uLW1lbnUtc2VsZWN0ZWQtYXJyb3crYXtjb2xvcjojMDBhMGQyIWltcG9ydGFudH0jYWRkb24tc2V0dGluZ3MtbmF2e21hcmdpbi1ib3R0b206MDttYXJnaW4tdG9wOjVweH0ub3B0aW9uLW1lbnUtc2VsZWN0ZWQtYXJyb3d7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItdG9wOjEwcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbToxMHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjEwcHggc29saWQgI2EwYTVhYTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0uMWVtfWxhYmVsW2Zvcj15aWtlcy1tYWlsY2hpbXAtZGVidWctc3RhdHVzXXtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tYm90dG9tOjFlbTtsaW5lLWhlaWdodDoyLjI1fSN5aWtlcy1tYWlsY2hpbXAtZGVidWctc3RhdHVze2Zsb2F0OmxlZnQ7bWFyZ2luLXRvcDouNWVtfWxhYmVsW2Zvcj15aWtlcy1tYy1yZWNhcHRjaGEtc2V0dGluZ10sbGFiZWxbZm9yPXlpa2VzLW1jLXJlY2FwdGNoYS1hcGkta2V5XXtkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206MWVtfS5yZWNhcHRjaGEtcHJldmlldy1saW5rLGlucHV0LnJlY2FwdGNoYS1zZXR0aW5nLWNoZWNrYm94e2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDouNWVtfS5yZWNhcHRjaGEtcHJldmlldy1jb250YWluZXJ7d2lkdGg6MTAwJTtkaXNwbGF5Om5vbmU7bWFyZ2luOjFlbSAwfSNwcmVtaXVtLXN1cHBvcnQtZm9ybSwuc3VwcG9ydC1wYWdlLWJ1dHRvbiwuc3VwcG9ydC1wYWdlLWxvZ297ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfS53cmFwICNjb2wtbGVmdCwud3JhcCAjY29sLXJpZ2h0e3dpZHRoOjQ5JX1AbWVkaWEgKG1heC13aWR0aDo4MDBweCl7LndyYXAgI2NvbC1sZWZ0LC53cmFwICNjb2wtcmlnaHR7d2lkdGg6MTAwJX19LnN1cHBvcnQtcGFnZS1sb2dve29wYWNpdHk6Ljc7bWF4LXdpZHRoOjEwMCV9LnN1cHBvcnQtcGFnZS1idXR0b257bWluLWhlaWdodDo0MHB4O2ZvbnQtd2VpZ2h0OjcwMDt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDozIWltcG9ydGFudDttYXJnaW4tdG9wOjFlbSFpbXBvcnRhbnR9LnN1cHBvcnQtcGFnZS13b3JkcHJlc3MtZm9udHtmb250LXNpemU6MS4zZW07bWFyZ2luLXJpZ2h0OjEzcHh9aDIucHJlbWl1bS1zdXBwb3J0LXRpdGxle21hcmdpbjoxZW0gMCAuNWVtfSNwcmVtaXVtLXN1cHBvcnQtZm9ybSBpbnB1dCwjcHJlbWl1bS1zdXBwb3J0LWZvcm0gc2VsZWN0e2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTttaW4td2lkdGg6MjAwcHg7bWFyZ2luOi41ZW0gMH0jcHJlbWl1bS1zdXBwb3J0LWZvcm0gbGFiZWx7Zm9udC13ZWlnaHQ6ODAwfSNwcmVtaXVtLXN1cHBvcnQtZm9ybSBsYWJlbCBpbnB1dCwjcHJlbWl1bS1zdXBwb3J0LWZvcm0gbGFiZWwgc2VsZWN0e2ZvbnQtd2VpZ2h0OjUwMH0jcHJlbWl1bS1zdXBwb3J0LWZvcm0gcHtmb250LXdlaWdodDozMDA7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjFlbX0jd3Atc3VwcG9ydC1jb250ZW50LXdyYXB7bWluLWhlaWdodDoxNTBweDt3aWR0aDoxMDAlfS5zdXBwb3J0LWZvcm0taGlkZGVue2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9I3lpa2VzLW1haWxjaGltcC1lcnJvci1sb2cgLnJvdy10aXRsZXtmb250LXdlaWdodDo0MDB9LmNyZWF0ZS1lcnJvci1sb2ctaGVscDpob3ZlcntjdXJzb3I6cG9pbnRlcn0uZXJyb3ItbG9nLXRyIHRke2Rpc3BsYXk6dGFibGU7bWFyZ2luLWJvdHRvbToxZW07bWFyZ2luLXRvcDouNWVtfXAuZXJyb3ItbG9nLW1pc3NpbmctZmlsZSBlbSxwLnRvLXN0YXJ0LWxvZ2dpbmctZXJyb3JzLW5vdGljZSBlbXttYXJnaW46MTBweCAwfS5leHBvcnQtY3VzdG9tLWZvcm1zLWxpc3R7ZGlzcGxheTpub25lO21hcmdpbjoxZW0gMCAyZW19LmV4cG9ydC1jdXN0b20tZm9ybXMtbGlzdCBwe21hcmdpbi10b3A6MH0ubGlzdC1yYXRpbmctc3Rhcntjb2xvcjojRTZCODAwfSNjaGltcC1jaGF0dGVye3RleHQtYWxpZ246Y2VudGVyfSNjaGltcC1jaGF0dGVyIC5jaGltcC1jaGF0dGVyLWNvbnRhaW5lcnttYXJnaW46MWVtIC4yZW07YmFja2dyb3VuZDojRjhGOEY4O2JvcmRlci1yYWRpdXM6MTBweDtmbG9hdDpsZWZ0O2hlaWdodDoyMjBweDtwYWRkaW5nOjEwcHg7d2lkdGg6NDQlfS5jaGltcC1jaGF0dGVyLW1haWxjaGltcC1sb2dve3dpZHRoOjEwMCU7ZGlzcGxheTpibG9jazttYXJnaW46MCBhdXRvfS5jaGltcC1jaGF0dGVyLXNpZGViYXIgaDIuYWNjb3VudC1zdGF0dXN7dGV4dC1hbGlnbjpjZW50ZXJ9Lm1haWxjaGltcC1hZmZpbGlhdGUtbGlua3tjb2xvcjojMzMzO2Rpc3BsYXk6bm9uZX0ubWFpbGNoaW1wLWF2YXRhcntkaXNwbGF5OmJsb2NrO21hcmdpbjowIGF1dG87Ym94LXNoYWRvdzozcHggM3B4IDEwcHggMCByZ2JhKDIxNCwyMTQsMjE0LC43NSl9I3lpa2VzX2Vhc3lfbWNfdG9vbGJhcl9saW5rcyBsaSBhOmZvY3VzLC5tZXJnZS10YWctdGV4dHtib3gtc2hhZG93Om5vbmV9LmNoaW1wY2hhdHRlci1idXR0b24tY29udGFpbmVye2NsZWFyOmJvdGg7ZGlzcGxheTpibG9ja30uY2hpbXAtY2hhdHRlci1wb3N0Ym94e2Zsb2F0OmxlZnQ7d2lkdGg6NDklO21hcmdpbi1yaWdodDoxJX0uY2lyY2xlLWFjY291bnQtYWN0aXZlLC5jaXJjbGUtYWNjb3VudC1pbmFjdGl2ZXtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7aGVpZ2h0OjE1cHg7d2lkdGg6MTVweDtib3JkZXItcmFkaXVzOjUwJX0jYWNjb3VudC1kZXRhaWxzIC5jaGltcC1jaGF0dGVyLXBvc3Rib3guZXZlbnttYXJnaW4tcmlnaHQ6MH0uY2lyY2xlLWFjY291bnQtaW5hY3RpdmV7bWFyZ2luLXRvcDotM3B4O21hcmdpbi1yaWdodDo1cHg7YmFja2dyb3VuZDpyZ2JhKDI1MCwxMzgsMTM4LC43OSl9LmNoYXR0ZXItdHlwZXtmb250LXdlaWdodDo2MDA7Zm9udC1mYW1pbHk6XCJvcGVuIHNhbnNcIjtmb250LXNpemU6MTRweDttYXJnaW46NXB4IDVweCAwfS5jaGF0dGVyLW1lc3NhZ2V7bWFyZ2luOjJweCAycHggMTVweCFpbXBvcnRhbnR9LmNpcmNsZS1hY2NvdW50LWFjdGl2ZXttYXJnaW4tdG9wOi0zcHg7bWFyZ2luLXJpZ2h0OjVweDtiYWNrZ3JvdW5kOnJnYmEoMTI4LDIxNCwxMjgsLjc3KX0jYWNjb3VudC1kZXRhaWxzIC5tYWlsY2hpbXAtYXZhdGFye3dpZHRoOjEyMHB4O2JvcmRlci1yYWRpdXM6MTAlO21hcmdpbi10b3A6LjVlbX0uY2hpbXAtY2hhdHRlci1wb3NpdGl2ZXtib3JkZXItbGVmdDo0cHggc29saWQgIzlkZGY5ZH0uY2hpbXAtY2hhdHRlci1uZWdhdGl2ZXtib3JkZXItbGVmdDo0cHggc29saWQgI0ZCQTJBMn0uY2hpbXAtY2hhdHRlci1uZXV0cmFse2JvcmRlci1sZWZ0OjRweCBzb2xpZCAjYjFiMWIxfSNpbXBvcnQtbGlzdC10by1zaXRle21hcmdpbi10b3A6MTBweH0jaW1wb3J0LWxpc3QtdG8tc2l0ZSAuaW5wdXQtZmllbGR7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO21hcmdpbi10b3A6NXB4O21hcmdpbi1ib3R0b206NXB4fS5zaWRlYmFyLWNvbnRhaW5lciwuc3Rhci1jb250YWluZXJ7bWFyZ2luLXRvcDo1cHg7bWFyZ2luLWJvdHRvbToxLjVlbX0jaW1wb3J0LWxpc3QtdG8tc2l0ZSAuZm9ybS1kZXNjcmlwdGlvbntyZXNpemU6dmVydGljYWw7bWF4LWhlaWdodDo2NXB4fSNpbXBvcnQtbGlzdC10by1zaXRlIC5kZXNjcmlwdGlvbnttYXJnaW4tdG9wOjVweH0uc3Rhci1jb250YWluZXIgYXt0ZXh0LWRlY29yYXRpb246bm9uZX0uc3Rhci1jb250YWluZXIgLmRhc2hpY29ucy1zdGFyLWZpbGxlZHtmb250LXNpemU6MS43NWVtfS5zaWRlYmFyLWZvb3Rlci10ZXh0e21hcmdpbjoxNXB4IDAhaW1wb3J0YW50O3RleHQtYWxpZ246Y2VudGVyfS5zaWRlYmFyLXR3aXR0ZXItaWNvbnt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjojNTVBQ0VFfS5maWVsZC1kb2VzbnQtZXhpc3Qtbm90aWNle3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbi1sZWZ0OjVweDt3aWR0aDoxOHB4fS5maWVsZC10eXBlLXRleHR7ZmxvYXQ6cmlnaHR9LnR5cGUtY29udGFpbmVye21hcmdpbjowfS5mb3JtLWZpZWxkLWNvbnRhaW5lcnttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowfS5maWVsZC1uby1sb25nZXItZXhpc3RzLXdhcm5pbmd7cG9zaXRpb246YWJzb2x1dGU7bWFyZ2luLWxlZnQ6NXB4O3dpZHRoOjE4cHh9LmZvcm0tZmllbGQtY29udGFpbmVyIHRkIGlucHV0W3R5cGU9Y2hlY2tib3hdLC5mb3JtLWZpZWxkLWNvbnRhaW5lciB0ZCBpbnB1dFt0eXBlPXJhZGlvXXttYXJnaW46MCA1cHh9LmZvcm0tZmllbGQtY29udGFpbmVyIHRkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmZpcnN0LWNoaWxkLC5mb3JtLWZpZWxkLWNvbnRhaW5lciB0ZCBpbnB1dFt0eXBlPXJhZGlvXTpmaXJzdC1jaGlsZHttYXJnaW4tbGVmdDowIWltcG9ydGFudH0ubWVyZ2UtdGFnLXRleHR7YmFja2dyb3VuZDowIDA7Ym9yZGVyOm5vbmV9LnByZS1kZWZpbmVkLXRhZy1saW5re2ZvbnQtc2l6ZToxMXB4fS50b2dnbGUtY29udGFpbmVye2ZvbnQtc2l6ZTpzbWFsbDtmbG9hdDpyaWdodH0jcHJlLWRlZmluZWQtdGFnLWNvbnRhaW5lcntkaXNwbGF5Om5vbmV9I3ByZS1kZWZpbmVkLXRhZy1jb250YWluZXIgaDN7bWFyZ2luLWJvdHRvbTowfSNwcmUtZGVmaW5lZC10YWctY29udGFpbmVyIC50b29sdG9wLXRhZyAuZGFzaGljb25zLWVkaXRvci1oZWxwe2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuNX0ubm8tZmllbGRzLWFzc2lnbmVkLW5vdGljZXttYXJnaW46NGVtIDAgMi4yNWVtO3BhZGRpbmctYm90dG9tOjZlbTt3aWR0aDoxMDAlO3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6dXJsKC4uLy4uL2luY2x1ZGVzL2ltYWdlcy9uby1mb3JtLWZpZWxkcy1hc3NpZ25lZC1hcnJvdy5qcGcpIGJvdHRvbSBjZW50ZXIgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxMDVweH0ueWlrZXMtZWFzeS1tYy13aWRnZXQtcHJlbG9hZGVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NDglO21hcmdpbi10b3A6LTk2cHh9Lnlpa2VzLWRhc2hib2FyZC13aWRnZXQtc2VjdGlvbntwYWRkaW5nOjAgMTJweCAxMnB4fS5zZWxlY3QtbGlzdC10aXRsZXtwYWRkaW5nLWxlZnQ6MH0ueWlrZXMtZGFzaGJvYXJkLXdpZGdldC1zZWN0aW9uIC5kZXNjcmlwdGlvbnttYXJnaW46LjVlbSAwIDB9LiBlcnJvci1kZXNjcmlwaW9ue3BhZGRpbmctdG9wOi41ZW19Lnlpa2VzLW1jLWZyZWRkaWUtbG9nb3tmbG9hdDpsZWZ0O21hcmdpbi1yaWdodDoxMHB4fS5tdl9pZ19saXN0e3dpZHRoOjk0JTttYXJnaW4tYm90dG9tOjhweCFpbXBvcnRhbnQ7Ym9yZGVyOm5vbmUhaW1wb3J0YW50O2JhY2tncm91bmQ6MCAwIWltcG9ydGFudH0ubXZfaWdfbGlzdCAubGlzdC1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGV9Lm12X2lnX2xpc3QgYXt3aWR0aDo0OCU7cGFkZGluZzo1cHggMCFpbXBvcnRhbnQ7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjB9Lm12X2lnX2xpc3QgYTpmaXJzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MH0ubXZfaWdfbGlzdCBhOmxhc3QtY2hpbGR7ZmxvYXQ6cmlnaHR9Lm12X2lnX2xpc3QgLm5hdi10YWJ7Ym9yZGVyOjFweCBzb2xpZCAjY2NjfS5tdl9pZ19saXN0IC5uYXYtdGFiLWFjdGl2ZXtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjcwMDtiYWNrZ3JvdW5kOiMwMGEwZDJ9Lm12X2lnX2xpc3QgLmFycm93LWRvd257cG9zaXRpb246YWJzb2x1dGU7bWFyZ2luLXRvcDoyMXB4O21hcmdpbi1sZWZ0OjUwcHg7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItbGVmdDoxMnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDoxMnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6MTJweCBzb2xpZCAjMDBhMGQyfSNjb250YWluZXItY29udGFpbmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjUyMXB4fSNjb250YWluZXItY29udGFpbmVyIC5saXN0LWNvbnRhaW5lcntmbG9hdDpsZWZ0O3dpZHRoOjI0MHB4O3Bvc2l0aW9uOnJlbGF0aXZlfSNjb250YWluZXItY29udGFpbmVyIC5saXN0LWNvbnRhaW5lcjpsYXN0LWNoaWxke21hcmdpbi1sZWZ0OjJlbX0jeWlrZXNfZWFzeV9tY190b29sYmFye21hcmdpbi10b3A6LS43NWVtfSN5aWtlc19lYXN5X21jX3Rvb2xiYXJfbGlua3N7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTAwJTttYXJnaW46MDtwYWRkaW5nOjEwcHggMH0jeWlrZXNfZWFzeV9tY190b29sYmFyX2xpbmtzIGxpe2Zsb2F0OmxlZnQ7bWFyZ2luOjAgLjVlbX0jeWlrZXNfZWFzeV9tY190b29sYmFyX2xpbmtzIGxpIGF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2t9I3lpa2VzX2Vhc3lfbWNfdG9vbGJhcl9saW5rcyBsaSBhLnNlbGVjdGVkX2hpZGRlbl9zZXR0aW5ne2NvbG9yOiMzMzM7bWFyZ2luLWJvdHRvbTozcHh9I3lpa2VzX2Vhc3lfbWNfdG9vbGJhcl9saW5rcyBsaSAuc2VsZWN0ZWRfc2V0dGluZ190cmlhbmdsZXt3aWR0aDowO2hlaWdodDowO2JvcmRlci1sZWZ0OjEzcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjEzcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDoxM3B4IHNvbGlkIHJnYmEoMjA2LDIwNiwyMDYsMSk7bWFyZ2luOjAgYXV0b30uY2hlY2tib3gtc2V0dGluZ3MtbGlzdC1kcm9wZG93biwub3B0aW4tY2hlY2tib3gtbGFiZWwtaW5wdXR7d2lkdGg6MjUwcHg7ZGlzcGxheTpibG9ja30jeWlrZXNfZWFzeV9tY190b29sYmFyX2xpbmtzIGxpIGEuZm9ybS1idWlsZGVyOmJlZm9yZXtjb250ZW50OlwiXFxmMTE2XCI7Zm9udC1mYW1pbHk6ZGFzaGljb25zfSN5aWtlc19lYXN5X21jX3Rvb2xiYXJfbGlua3MgbGkgYS5mb3JtLWN1c3RvbWl6ZXI6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxMDBcIjtmb250LWZhbWlseTpkYXNoaWNvbnN9I3lpa2VzX2Vhc3lfbWNfdG9vbGJhcl9saW5rcyBsaSBhLmVycm9yLW1lc3NhZ2VzOmJlZm9yZXtjb250ZW50OlwiXFxmMTE3XCI7Zm9udC1mYW1pbHk6ZGFzaGljb25zfSN5aWtlc19lYXN5X21jX3Rvb2xiYXJfbGlua3MgbGkgYS5mb3JtLXNldHRpbmdzOmJlZm9yZXtjb250ZW50OlwiXFxmMTExXCI7Zm9udC1mYW1pbHk6ZGFzaGljb25zfSNjaGVja2JveC1zZXR0aW5ncy1mb3JtIC5kYXNoaWNvbnMtZWRpdG9yLWhlbHB7Zm9udC1zaXplOjE1cHg7bGluZS1oZWlnaHQ6MS42fS5uby1saXN0cy1zZXR1cC1ub3RpY2V7cGFkZGluZzouNWVtIDB9Lnlpa2VzLWZvcm0taWQtbnVtYmVye3dpZHRoOjU1cHh9c3Bhblt0aXRsZT1JbXByZXNzaW9uc106aG92ZXIsc3Bhblt0aXRsZT1TdWJtaXNzaW9uc106aG92ZXIsc3Bhblt0aXRsZT1cIkNvbnZlcnNpb24gUmF0ZVwiXTpob3ZlcntkaXNwbGF5OmJsb2NrO2N1cnNvcjpwb2ludGVyfS5mb3JtLWlkLWNvbnRhaW5lcntwYWRkaW5nOjFweCA4cHg7Ym9yZGVyLXJhZGl1czo1cHg7YmFja2dyb3VuZDojNDlhOWVjO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojZmZmfS5tYW5hZ2UtZm9ybS1hZG1pbi1ub3RpY2V7bWFyZ2luLXRvcDoxLjc1ZW0haW1wb3J0YW50fS5yZW1vdmUtbm90aWZpY2F0aW9uLC55aWtlcy1tYy1zZXR0aW5ncy1leHBhbnNpb24tc2VjdGlvbiBhLnJlbW92ZS1maWVsZCxhLnlpa2VzLWRlbGV0ZS1tYWlsY2hpbXAtZm9ybSxhLnlpa2VzLWRlbGV0ZS1zdWJzY3JpYmVye2NvbG9yOiNkOTYwNjAhaW1wb3J0YW50fS55aWtlcy1kZWxldGUtbWFpbGNoaW1wLWZvcm17bWFyZ2luLXRvcDo2cHh9I3Bvc3Rib3gtY29udGFpbmVyLTEgLnlpa2VzLWRlbGV0ZS1tYWlsY2hpbXAtZm9ybXtmbG9hdDpyaWdodH0uZm9ybS1idXR0b25zLWNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MTFweCAxMHB4fS5mb3Jtcy1idXR0b25zLWNvbnRhaW5lciBpbnB1dFt0eXBlPXN1Ym1pdF17bWFyZ2luOjAgMCAuNWVtfS51cGRhdGUtZm9ybS1zcGlubmVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO21hcmdpbjowIGF1dG87Ym90dG9tOjEzcHh9Lnlpa2VzLW1jLXNob3J0Y29kZS1pbnB1dHt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMDAlO2NvbG9yOiMzMzN9LmhpZGRlbi1jbGFzc3tkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5zdGF0LWNvbnRhaW5lcnt3aWR0aDoxMCU7bWF4LXdpZHRoOjc1cHh9Lm5vLWN1cnJlbnQtc3Vic2NyaWJlci1ub3RpY2UgZW0sLm5vLW1haWxjaGltcC1mb3Jtcy1mb3VuZCBlbXtwYWRkaW5nOjI1cHggMCAyNXB4IDI1cHh9LmNvbHVtbi1jb2x1bW5uYW1lIHNwYW4uc3RhdHN7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO3RleHQtYWxpZ246Y2VudGVyfS5jb2x1bW4tY29sdW1ubmFtZSBzcGFuLnN0YXRzIHNwYW57ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MjAlfS5jb2x1bW4tY29sdW1ubmFtZSBzcGFuLnN0YXRzIHNwYW46aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9I2F2YWlsYWJsZS1maWVsZHMgbGksI2F2YWlsYWJsZS1pbnRlcmVzdC1ncm91cHMgbGl7dGV4dC1kZWNvcmF0aW9uOm5vbmU7ZGlzcGxheTpibG9jaztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTc3LDE3NywxNzcsLjcxKTtjb2xvcjojMzMzO3BhZGRpbmc6NXB4O21hcmdpbjouNWVtIDB9I2F2YWlsYWJsZS1maWVsZHMgbGkubm90LWF2YWlsYWJsZSwjYXZhaWxhYmxlLWludGVyZXN0LWdyb3VwcyBsaS5ub3QtYXZhaWxhYmxle29wYWNpdHk6LjYhaW1wb3J0YW50fSNhdmFpbGFibGUtZmllbGRzIGxpLmZpZWxkLXRvLWFkZC10by1mb3JtLCNhdmFpbGFibGUtaW50ZXJlc3QtZ3JvdXBzIGxpLmdyb3VwLXRvLWFkZC10by1mb3Jte2JhY2tncm91bmQ6cmdiYSg0NiwxNjIsMjA0LC4yNSl9LmFkZC1maWVsZC10by1lZGl0b3IgLmFkZC10by1mb3JtLWJ1aWxkZXItYXJyb3csLmJ1dHRvbi1zZWNvbmRhcnkgLmFkZC10by1mb3JtLWJ1aWxkZXItYXJyb3d7d2lkdGg6MTVweDtmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoxLjh9LmNsZWFyLWZvcm0tZmllbGRze2JhY2tncm91bmQ6I2UxNGQ0Mztib3JkZXItY29sb3I6I2QwMmMyMTtjb2xvcjojZmZmO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMCAjZWM4Yjg1LDAgMXB4IDAgcmdiYSgwLDAsMCwuMTUpO3RleHQtZGVjb3JhdGlvbjpub25lO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoyOHB4O3BhZGRpbmc6MCAxMHB4IDFweDtib3JkZXItd2lkdGg6MXB4Oy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2JvcmRlci1yYWRpdXM6M3B4O3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoyNnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtmbG9hdDpyaWdodDttYXJnaW46MCAxMXB4IDEwcHggMH0uY2xlYXItZm9ybS1maWVsZHM6YWN0aXZlLC5jbGVhci1mb3JtLWZpZWxkczpmb2N1cywuY2xlYXItZm9ybS1maWVsZHM6aG92ZXJ7YmFja2dyb3VuZDojZGQzODJkO2JvcmRlci1jb2xvcjojYmEyODFlO2NvbG9yOiNmZmY7Ym94LXNoYWRvdzppbnNldCAwIDFweCAwICNlODc3NmZ9Lnlpa2VzLW1jLXZpZXctbGlzdC1icmVhZGNydW1ic3twYWRkaW5nOi44ZW07Ym9yZGVyOjFweCBzb2xpZCAjRDhEOEQ4O2JhY2tncm91bmQ6I0VDRUNFQzttYXJnaW46MS41ZW0gMCAuOGVtfS55aWtlcy1tYy1tZW1iZXItcmF0aW5nLXN0YXJ7Y29sb3I6I2RhYTUyMH0jeWlrZXMtbWMtc3Vic2NyaWJlci1jYXJkLXdyYXBwZXJ7YmFja2dyb3VuZDojZmVmZWZlO21pbi1oZWlnaHQ6MjAwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym94LXNoYWRvdzowIDFweCAxcHggcmdiYSgwLDAsMCwuMDQpO3dlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNCk7Ym9yZGVyOjFweCBzb2xpZCAjZTVlNWU1O3BhZGRpbmc6MTVweCAyMHB4O3dpZHRoOjUwMHB4O2Zsb2F0OmxlZnR9I3lpa2VzLW1jLXN1YnNjcmliZXItY2FyZC13cmFwcGVyIC5zdWJzY3JpYmVyLW9wdGluLWlwe2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjoxZW0gMCAwO2ZvbnQtc3R5bGU6aXRhbGljfS52aWV3LXVzZXItZGF0YS13cmFwICNjdXN0b21lci10YWItd3JhcHBlci1saXN0e2Zsb2F0OmxlZnQ7YmFja2dyb3VuZDojZmVmZWZlO21hcmdpbi10b3A6MDtwYWRkaW5nOjEycHg7bWFyZ2luLWxlZnQ6LTFweDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNlNWU1ZTU7Ym9yZGVyLXRvcDoxcHggc29saWQgI2U1ZTVlNTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1fS52aWV3LXVzZXItZGF0YS13cmFwICNjdXN0b21lci10YWItd3JhcHBlci1saXN0IC5kYXNoaWNvbnN7Zm9udC1zaXplOjIzcHg7aGVpZ2h0OjIzcHg7d2lkdGg6MjNweDttYXJnaW46M3B4IDB9LnZpZXctdXNlci1kYXRhLXdyYXAgI2N1c3RvbWVyLXRhYi13cmFwcGVyLWxpc3QgbGkuaW5hY3RpdmV7Y29sb3I6cmdiYSg1MSw1MSw1MSwuMzEpO3RyYW5zaXRpb246Y29sb3IgZWFzZS1vdXQgLjFzfS52aWV3LXVzZXItZGF0YS13cmFwICNjdXN0b21lci10YWItd3JhcHBlci1saXN0IGxpLmFjdGl2ZSwudmlldy11c2VyLWRhdGEtd3JhcCAjY3VzdG9tZXItdGFiLXdyYXBwZXItbGlzdCBsaS5pbmFjdGl2ZTpob3Zlcntjb2xvcjpyZ2JhKDUxLDUxLDUxLDEpfSN5aWtlcy1tYy1zdWJzY3JpYmVyLWNhcmQtd3JhcHBlciAueWlrZXMtbWMtY2FyZC10b3AgLm1lbWJlci1zdGFyLXJhdGluZy1jb250YWluZXIsI3lpa2VzLW1jLXN1YnNjcmliZXItY2FyZC13cmFwcGVyIC55aWtlcy1tYy1jYXJkLXRvcCBoMiwjeWlrZXMtbWMtc3Vic2NyaWJlci1jYXJkLXdyYXBwZXIgLnlpa2VzLW1jLWNhcmQtdG9wIGltZ3tmbG9hdDpsZWZ0fSN5aWtlcy1tYy1zdWJzY3JpYmVyLWNhcmQtd3JhcHBlciAjZGVsZXRlLW1haWxjaGltcC1zdWJzY3JpYmVye2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjAgYXV0b30jeWlrZXMtbWMtc3Vic2NyaWJlci1jYXJkLXdyYXBwZXIgLnlpa2VzLW1jLWNhcmQtdG9wIGltZ3tib3JkZXItcmFkaXVzOjNweH0jeWlrZXMtbWMtc3Vic2NyaWJlci1jYXJkLXdyYXBwZXIgLm1lcmdlLXZhcmlhYmxlLXNlY3Rpb24gbGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7bGlzdC1zdHlsZTpub25lO2Zsb2F0OmxlZnQ7d2lkdGg6NTAlO21pbi1oZWlnaHQ6NjVweDtib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgI2RkZH0jeWlrZXMtbWMtc3Vic2NyaWJlci1jYXJkLXdyYXBwZXIgLm1lcmdlLXZhcmlhYmxlLXNlY3Rpb24gbGkgcHttYXJnaW46MCAwIDFlbX0jeWlrZXMtbWMtc3Vic2NyaWJlci1jYXJkLXdyYXBwZXIgLnlpa2VzLW1jLWNhcmQtdG9wIGgye21heC13aWR0aDozNzBweDt3aWR0aDo3NSU7cGFkZGluZzowfSN5aWtlcy1tYy1zdWJzY3JpYmVyLWNhcmQtd3JhcHBlciAubWVtYmVyLXN0YXItcmF0aW5nLWNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO21hcmdpbjouNWVtIDAgLjVlbSAxMHB4fSN5aWtlcy1tYy1zdWJzY3JpYmVyLWNhcmQtd3JhcHBlciBoMnttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi10b3A6MDtwYWRkaW5nLXRvcDowfSN5aWtlcy1tYy1zdWJzY3JpYmVyLWNhcmQtd3JhcHBlciAueWlrZXMtbWMtY2FyZC1ib2R5LCN5aWtlcy1tYy1zdWJzY3JpYmVyLWNhcmQtd3JhcHBlciAueWlrZXMtbWMtY2FyZC10b3B7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTAwJX0ubWVtYmVyLWxvY2F0aW9uLWRhdGEsLm1lbWJlci1zdWJzY3JpcHRpb24tZGF0ZXt3aWR0aDo3MCU7bWF4LXdpZHRoOjM3MHB4O2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bGVmdH0jeWlrZXMtbWMtc3Vic2NyaWJlci1jYXJkLXdyYXBwZXIgLnlpa2VzLW1jLWNhcmQtYm9keSBoNHttYXJnaW4tdG9wOjA7bWFyZ2luLWxlZnQ6NXB4fS55aWtlcy1tYy1zdWJzY3JpYmVyLWhye21hcmdpbjoxLjVlbSAwfS5tZW1iZXItc3Vic2NyaXB0aW9uLWRhdGV7bWFyZ2luOi41ZW0gMCAuNWVtIDEwcHh9Lm1lbWJlci1sb2NhdGlvbi1kYXRhe21hcmdpbjouMjVlbSAwIC4yNWVtIDEwcHh9LmFkZG9uLXJlcXVpcmVkLWxpbmt7Y29sb3I6IzMzMztvcGFjaXR5Oi41fS52aWV3LWxpc3Qtc2lkZWJhci1pbnB1dHtjb2xvcjojMzMzfS5pbnRlcmVzdC1ncm91cC11bCwubWVyZ2UtdmFyaWFibGUtdWwsLnNlZ21lbnQtdWx7cGFkZGluZy1sZWZ0OjE1cHg7Zm9udC1zaXplOjE0cHh9LmludGVyZXN0LWdyb3VwLXVsIGxpIC5kYXNoaWNvbnMsLm1lcmdlLXZhcmlhYmxlLXVsIGxpIC5kYXNoaWNvbnN7bGluZS1oZWlnaHQ6MS44O2ZvbnQtc2l6ZTo5cHh9YS5idXR0b24tcHJpbWFyeS5lZGl0LWZpZWxkcy1idXR0b257bWFyZ2luOjAgMCAxMHB4IDE1cHh9LmludGVyZXN0LWdyb3VwLWNvdW50LC5tZXJnZS12YXJpYWJsZS1jb3VudCwuc2VnbWVudC1ncm91cC1jb3VudHt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO21hcmdpbi1ib3R0b206Ljc1ZW07cGFkZGluZy1sZWZ0OjdweH1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1jYWxlbmRhciB0ZCBhLGJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS1kYXRlcGlja2VyIGEsYm9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gLnVpLWRhdGVwaWNrZXIgYTpob3Zlcnt0ZXh0LWRlY29yYXRpb246bm9uZX0uaW50ZXJlc3QtZ3JvdXAtdGl0bGV7cGFkZGluZy1sZWZ0OjVweH0uZWRpdC1zZWdtZW50cy1idXR0b257bWFyZ2luOjAgMCAxMHB4IDE1cHh9LmVkaXQtc2VnbWVudC1kZXNjcmlwdGlvbntwYWRkaW5nOjAgMCAxMHB4IDE1cHh9I2NyZWRpdC1jb250YWluZXJ7bWFyZ2luLXRvcDoxLjVlbX0ueWlrZXMtZWFzeS1tYWlsY2hpbXAtY3VzdG9tLWNvbnRlbnQtaWNvbntmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoxfS5jdXN0b20tZmllbGQtc2VjdGlvbntkaXNwbGF5OmJsb2NrO21hcmdpbjoxZW0gMH0jYXNzb2NpYXRlZC1saXN0e3dpZHRoOjEwMCU7bWFyZ2luLXRvcDo1cHh9I3JlZGlyZWN0LXVzZXItdG8tc2VsZWN0aW9ue3dpZHRoOjEwMCV9I2VkaXQteWlrZXMtbWMtZm9ybSBsYWJlbCBoM3ttYXJnaW4tbGVmdDowO3BhZGRpbmctbGVmdDowfSNhdmFpbGFibGUtZmllbGRzIC5maWVsZC1yZXF1aXJlZHtjb2xvcjojZDk2MDYwIWltcG9ydGFudH1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAjcG9zdHN0dWZmIGgye3BhZGRpbmc6OHB4IDEycHg7bWFyZ2luLXRvcDowfS5lZGl0LWZvcm0tZm9ybS1kZXNjcmlwdGlvbnt3aWR0aDoxMDAlO3Jlc2l6ZTp2ZXJ0aWNhbDttaW4taGVpZ2h0OjY1cHg7bWF4LWhlaWdodDoxMDBweH0uZWRpdC1mb3JtLXRpdGxle3BhZGRpbmctbGVmdDoxMnB4IWltcG9ydGFudH0jZWRpdC1mb3JtLWRlc2NyaXB0aW9ue3BhZGRpbmc6MCAxMnB4O21hcmdpbjoxZW0gMH0ueWlrZXMtZWFzeS1tYy1wb3N0Ym94e292ZXJmbG93OmhpZGRlbn0ubm8taW50ZXJlc3QtZ3JvdXBzLWZvdW5kLW1lc3NhZ2V7b3BhY2l0eTouMzV9LnVwZ3JhZGluZy1lbGxpcHNlLW9uZSwudXBncmFkaW5nLWVsbGlwc2UtdHdvey1tcy1maWx0ZXI6XCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKVwiOy1tb3otb3BhY2l0eTowOy13ZWJraXQtYW5pbWF0aW9uOmRvdCAxLjNzIGluZmluaXRlfSNpbnRlcmVzdC1ncm91cHMtY29udGFpbmVyIC5kZXNjcmlwdGlvbiwjbWVyZ2UtdmFyaWFibGVzLWNvbnRhaW5lciAuZGVzY3JpcHRpb257cGFkZGluZy10b3A6LjVlbX0uaW5zaWRlLXNlY3Rpb24tMXttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbToxLjVlbX0uaW5zaWRlLXNlY3Rpb24tMnttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbToyZW19LmZvcm0tZmllbGQtY29udGFpbmVyLXNwYW57ZGlzcGxheTpibG9jazttYXJnaW46LjVlbSAwfSNzdHlsZS1saXN0IHVsIGxpe2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTttYXJnaW46MWVtIDB9LmZvcm0tc3R5bGUtYWRqdXN0bWVudCwud3AtcGlja2VyLWNvbnRhaW5lcntkaXNwbGF5OmJsb2NrIWltcG9ydGFudDt3aWR0aDoxMDAlO21hcmdpbjouNWVtIDB9LmR5bmFtaWMtZW1haWwtdGFne2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDo1cHh9LmR5bmFtaWMtdGFnLWRlc2NyaXB0aW9uIHRke3BhZGRpbmctdG9wOjB9I2NyZWF0ZS1uZXctbm90aWZpY2F0aW9uLWJ1dHRvbnttYXJnaW4tdG9wOjFlbX0uZmlsZS1jb250YWluZXJ7ZGlzcGxheTpub25lfS55aWtlcy1tYWlsY2hpbXAtZmlsZS1maWVsZCBpbnB1dFtuYW1lKj1cImN1c3RvbS1maWVsZFtpbmNlbnRpdmUtYXR0YWNobWVudF1cIl17bWFyZ2luLWJvdHRvbTouNWVtfS55aWtlcy1tYWlsY2hpbXAtZmlsZS1maWVsZCBpbnB1dFtuYW1lKj1cImN1c3RvbS1maWVsZFtpbmNlbnRpdmUtYXR0YWNobWVudF1cIl0rLmJ1dHRvbi1zZWNvbmRhcnl7bWFyZ2luLWxlZnQ6NHB4fWlucHV0I3VwbG9hZC1idG5bZGF0YS1hdHRyLXBvc2l0aW9uPVwiMVwiXXttYXJnaW4tbGVmdDowfS5yZW1vdmUtZmlsZS1idXR0b257YmFja2dyb3VuZDp1cmwoLi4vcGFydGlhbHMvaGVscGVycy9maWVsZHMvaW1nL2ljb24tZGVsZXRlLnBuZyk7aGVpZ2h0OjE2cHg7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1pbmRlbnQ6LTk5OTk5cHg7d2lkdGg6MTZweH1hLmFkZC1uZXctaW5jZW50aXZlLWF0dGFjaG1lbnR7ZGlzcGxheTpibG9jazt3aWR0aDo0MHB4O21hcmdpbi1yaWdodDoxMDAlIWltcG9ydGFudDttYXJnaW4tdG9wOi41ZW0haW1wb3J0YW50fWEuYWRkLW5ldy1pbmNlbnRpdmUtYXR0YWNobWVudCAuZGFzaGljb25ze2ZvbnQtc2l6ZToxNXB4O2xpbmUtaGVpZ2h0OjEuOH0uZm9ybS1idWlsZGVyLXBsYWNlaG9sZGVye2JhY2tncm91bmQ6cmdiYSgyMDYsMjA2LDIwNiwuMik7aGVpZ2h0OjMwcHh9LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAjZm9ybS1zZXR0aW5ncyAuc2VjdGlvbi10aXRsZXtmb250LXNpemU6MWVtO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMTg3LDE4NywxODcsLjI5KTtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7cGFkZGluZy1ib3R0b206NnB4O21hcmdpbi1ib3R0b206LjVlbTttYXJnaW4tdG9wOjEuNWVtfS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gI2Zvcm0tc2V0dGluZ3MgLnNlY3Rpb24taW50ZXJpb3IgbGFiZWwsLmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAjZm9ybS1zZXR0aW5ncyAuc2VjdGlvbi10aXRsZS5maXJzdHttYXJnaW4tdG9wOjB9LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAjZm9ybS1zZXR0aW5ncyAuc2VjdGlvbi1pbnRlcmlvcntkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kOnJnYmEoMjQxLDI0MSwyNDEsLjc1KTtwYWRkaW5nOjFlbX1sYWJlbC5sb2dpbi1yZXN0cmljdGlvbi1jZW50ZXJ7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gI2Zvcm0tc2V0dGluZ3MgLnNlY3Rpb24taW50ZXJpb3IgLmRhdGUtcmVzdGlyY3Rpb24tc2VjdGlvbntkaXNwbGF5OmlubGluZS1ibG9ja30uYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtICNmb3JtLXNldHRpbmdzIC5zZWN0aW9uLWludGVyaW9yIC5kYXRlLXJlc3RpcmN0aW9uLXNlY3Rpb24gcC5kZXNjcmlwdGlvbi5lcnJvcntjb2xvcjojRjU2MDYwfS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gI2Zvcm0tc2V0dGluZ3MgLnNlY3Rpb24taW50ZXJpb3IgLmRhdGUtcmVzdGlyY3Rpb24tc2VjdGlvbiBsYWJlbHtmbG9hdDpsZWZ0O21hcmdpbi1yaWdodDouNWVtO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjB9LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAjZm9ybS1zZXR0aW5ncyAuc2VjdGlvbi1pbnRlcmlvciAubmVzdGVkLWNoaWxkIC55aWtlcy1lYXN5LW1jLWZvcm0tcmVzdHJpY3Rpb24tZXhwaXJlZC1tZXNzYWdlLC5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gI2Zvcm0tc2V0dGluZ3MgLnNlY3Rpb24taW50ZXJpb3IgLm5lc3RlZC1jaGlsZCAueWlrZXMtZWFzeS1tYy1mb3JtLXJlc3RyaWN0aW9uLWxvZ2luLW1lc3NhZ2UsLmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAjZm9ybS1zZXR0aW5ncyAuc2VjdGlvbi1pbnRlcmlvciAubmVzdGVkLWNoaWxkIC55aWtlcy1lYXN5LW1jLWZvcm0tcmVzdHJpY3Rpb24tcGVuZGluZy1tZXNzYWdle2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTttaW4taGVpZ2h0OjUwcHh9LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAjZm9ybS1zZXR0aW5ncyAuc2VjdGlvbi1pbnRlcmlvciAubmVzdGVkLWNoaWxke2Zsb2F0OmxlZnQ7cGFkZGluZy1sZWZ0OjIlO3dpZHRoOjk4JTtib3JkZXItbGVmdDoxcHggZGFzaGVkICNCREJEQkQ7Ym9yZGVyLXNwYWNpbmc6MnB4O21hcmdpbjouNWVtIDAgMWVtfS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gI2Zvcm0tc2V0dGluZ3MgLnNlY3Rpb24taW50ZXJpb3IgLm5lc3RlZC1jaGlsZCAueWlrZXMtZWFzeS1tYy1zdWJtaXQtYnV0dG9uLXRleHR7bWFyZ2luOjB9LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAjZm9ybS1zZXR0aW5ncyAuc2VjdGlvbi1pbnRlcmlvciAuZGF0ZS1yZXN0aXJjdGlvbi1zZWN0aW9ue21hcmdpbi1ib3R0b206MH0uYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtICNmb3JtLXNldHRpbmdzIC5zZWN0aW9uLWludGVyaW9yIC5kYXRlLXJlc3RpcmN0aW9uLXNlY3Rpb24ubGFzdHttYXJnaW4tYm90dG9tOi43NWVtfS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gI2Zvcm0tc2V0dGluZ3MgLnNlY3Rpb24taW50ZXJpb3IgLm5lc3RlZC1jaGlsZC5oaWRkZW57ZGlzcGxheTpub25lfS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gI2Zvcm0tc2V0dGluZ3MgLnNlY3Rpb24taW50ZXJpb3IgLmRlc2NyaXB0aW9uK2xhYmVse21hcmdpbi10b3A6MWVtO2Zsb2F0OmxlZnQ7d2lkdGg6MTAwJX0uYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtICNmb3JtLXNldHRpbmdzIC5zZWN0aW9uLWludGVyaW9yIGxhYmVsLmlubGluZS1mb3JtLWxhYmVse21hcmdpbi1ib3R0b206MDttYXJnaW4tdG9wOjB9LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAjZm9ybS1zZXR0aW5ncyAuc2VjdGlvbi1pbnRlcmlvciAuZGVzY3JpcHRpb257ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2Zsb2F0OmxlZnR9LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAjZm9ybS1zZXR0aW5ncyAubmVzdGVkLWNoaWxkIHN0cm9uZzpmaXJzdC1jaGlsZCwuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtICNmb3JtLXNldHRpbmdzIC5zZWN0aW9uLWludGVyaW9yIHN0cm9uZzpmaXJzdC1jaGlsZHtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCV9LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAjZm9ybS1zZXR0aW5ncyAuaW5saW5lLWZvcm0tbGFiZWx7ZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6MTBweH1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktdGltZXBpY2tlci13cmFwcGVye292ZXJmbG93LXk6YXV0bztoZWlnaHQ6MTUwcHg7d2lkdGg6MTcwcHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2RkZDtib3gtc2hhZG93OjAgNXB4IDEwcHggcmdiYSgwLDAsMCwuMik7b3V0bGluZTowO3otaW5kZXg6MTAwMDE7bWFyZ2luOjB9Ym9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gLnVpLXRpbWVwaWNrZXItd3JhcHBlci51aS10aW1lcGlja2VyLXdpdGgtZHVyYXRpb257d2lkdGg6MTNlbX1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktdGltZXBpY2tlci13cmFwcGVyLnVpLXRpbWVwaWNrZXItd2l0aC1kdXJhdGlvbi51aS10aW1lcGlja2VyLXN0ZXAtMzAsYm9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gLnVpLXRpbWVwaWNrZXItd3JhcHBlci51aS10aW1lcGlja2VyLXdpdGgtZHVyYXRpb24udWktdGltZXBpY2tlci1zdGVwLTYwe3dpZHRoOjExZW19Ym9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gLnVpLXRpbWVwaWNrZXItbGlzdHttYXJnaW46MDtwYWRkaW5nOjA7bGlzdC1zdHlsZTpub25lfWJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS10aW1lcGlja2VyLWR1cmF0aW9ue21hcmdpbi1sZWZ0OjVweDtjb2xvcjojODg4fWJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS10aW1lcGlja2VyLWxpc3Q6aG92ZXIgLnVpLXRpbWVwaWNrZXItZHVyYXRpb257Y29sb3I6Izg4OH1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktdGltZXBpY2tlci1saXN0IGxpe3BhZGRpbmc6M3B4IDAgM3B4IDVweDtjdXJzb3I6cG9pbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6IzAwMDtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luOjB9Ym9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gLnVpLXRpbWVwaWNrZXItbGlzdDpob3ZlciAudWktdGltZXBpY2tlci1zZWxlY3RlZHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzAwMH1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktdGltZXBpY2tlci1saXN0IC51aS10aW1lcGlja2VyLXNlbGVjdGVkOmhvdmVyLGJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS10aW1lcGlja2VyLWxpc3QgbGk6aG92ZXIsYm9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gbGkudWktdGltZXBpY2tlci1zZWxlY3RlZHtiYWNrZ3JvdW5kOiMxOTgwRUM7Y29sb3I6I2ZmZn1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktdGltZXBpY2tlci1saXN0IGxpOmhvdmVyIC51aS10aW1lcGlja2VyLWR1cmF0aW9uLGJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIGxpLnVpLXRpbWVwaWNrZXItc2VsZWN0ZWQgLnVpLXRpbWVwaWNrZXItZHVyYXRpb257Y29sb3I6I2NjY31ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktdGltZXBpY2tlci1saXN0IGxpLnVpLXRpbWVwaWNrZXItZGlzYWJsZWQsYm9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gLnVpLXRpbWVwaWNrZXItbGlzdCBsaS51aS10aW1lcGlja2VyLWRpc2FibGVkOmhvdmVyLGJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS10aW1lcGlja2VyLWxpc3QgbGkudWktdGltZXBpY2tlci1zZWxlY3RlZC51aS10aW1lcGlja2VyLWRpc2FibGVke2NvbG9yOiM4ODg7Y3Vyc29yOmRlZmF1bHR9Ym9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gLnVpLXRpbWVwaWNrZXItbGlzdCBsaS51aS10aW1lcGlja2VyLWRpc2FibGVkOmhvdmVyLGJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS10aW1lcGlja2VyLWxpc3QgbGkudWktdGltZXBpY2tlci1zZWxlY3RlZC51aS10aW1lcGlja2VyLWRpc2FibGVke2JhY2tncm91bmQ6I2YyZjJmMn1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktZGF0ZXBpY2tlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjNjZBRkU5O2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6MCAwIDhweCByZ2JhKDEwMiwxNzUsMjMzLC42KTtkaXNwbGF5Om5vbmU7bWFyZ2luLXRvcDo0cHg7cGFkZGluZzoxMHB4O3dpZHRoOjI0MHB4fWJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS1kYXRlcGlja2VyIGE6aG92ZXIsYm9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gLnVpLWRhdGVwaWNrZXIgdGQ6aG92ZXIgYXtjb2xvcjojMkE2NDk2O3RyYW5zaXRpb246Y29sb3IgLjFzIGVhc2UtaW4tb3V0fWJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWhlYWRlcnttYXJnaW4tYm90dG9tOjRweDt0ZXh0LWFsaWduOmNlbnRlcn1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci10aXRsZXtmb250LXdlaWdodDo3MDB9Ym9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCxib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2e2N1cnNvcjpkZWZhdWx0O2ZvbnQtZmFtaWx5OidHbHlwaGljb25zIEhhbGZsaW5ncyc7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7aGVpZ2h0OjIwcHg7bGluZS1oZWlnaHQ6MTttYXJnaW4tdG9wOjJweDt3aWR0aDozMHB4fWJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXZ7ZmxvYXQ6bGVmdDt0ZXh0LWFsaWduOmxlZnR9Ym9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dHtmbG9hdDpyaWdodDt0ZXh0LWFsaWduOnJpZ2h0fWJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXY6YmVmb3Jle2NvbnRlbnQ6XCJcXGYxNDFcIjtmb250LWZhbWlseTpkYXNoaWNvbnN9Ym9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dDpiZWZvcmV7Y29udGVudDpcIlxcZjEzOVwiO2ZvbnQtZmFtaWx5OmRhc2hpY29uc31ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktZGF0ZXBpY2tlci1uZXh0OmhvdmVyLGJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS1kYXRlcGlja2VyLXByZXY6aG92ZXJ7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50fWJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS1kYXRlcGlja2VyLWNsb3Nle2Rpc3BsYXk6bm9uZX1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktZGF0ZXBpY2tlci1jdXJyZW50e2NvbG9yOiM1NTUhaW1wb3J0YW50O2JvcmRlci1jb2xvcjojY2NjIWltcG9ydGFudDtiYWNrZ3JvdW5kOiNmN2Y3ZjchaW1wb3J0YW50O2JveC1zaGFkb3c6MCAxcHggMCAjY2NjIWltcG9ydGFudDt2ZXJ0aWNhbC1hbGlnbjp0b3AhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjI2cHg7aGVpZ2h0OjI4cHg7cGFkZGluZzowIDEwcHggMXB4O2N1cnNvcjpwb2ludGVyO2JvcmRlci13aWR0aDoxcHg7Ym9yZGVyLXN0eWxlOnNvbGlkOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2JvcmRlci1yYWRpdXM6M3B4O3doaXRlLXNwYWNlOm5vd3JhcDtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luLXRvcDoxMHB4fWJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWN1cnJlbnQtZGF5IGEsYm9keS5hZG1pbl9wYWdlX3lpa2VzLW1haWxjaGltcC1lZGl0LWZvcm0gLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItdG9kYXkgYXtjb2xvcjojZmZmfWJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS1kYXRlcGlja2VyIC51aS1pY29ue2Rpc3BsYXk6bm9uZX1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1jYWxlbmRhcnt0YWJsZS1sYXlvdXQ6Zml4ZWQ7d2lkdGg6MTAwJX1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1jYWxlbmRhciB0ZCxib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1jYWxlbmRhciB0aHt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjRweCAwfWJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIHRke2JvcmRlci1yYWRpdXM6NHB4O3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMXMgZWFzZS1pbi1vdXQsY29sb3IgLjFzIGVhc2UtaW4tb3V0fWJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIHRkOmhvdmVye2JhY2tncm91bmQtY29sb3I6I0VCRUJFQjtjdXJzb3I6cG9pbnRlcn1ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci10b2RheXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNjYsMTM3LDIwNCwuNjUpfWJvZHkuYWRtaW5fcGFnZV95aWtlcy1tYWlsY2hpbXAtZWRpdC1mb3JtIC51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWN1cnJlbnQtZGF5e2JhY2tncm91bmQtY29sb3I6IzQyODljY31ib2R5LmFkbWluX3BhZ2VfeWlrZXMtbWFpbGNoaW1wLWVkaXQtZm9ybSAudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1jYWxlbmRhciAudWktZGF0ZXBpY2tlci11bnNlbGVjdGFibGU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2N1cnNvcjpkZWZhdWx0fS5jdXN0b20tcmFkaW8taG9sZGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCU7bWFyZ2luOi41ZW0gMH0uY3VzdG9tLXJhZGlvLWxhYmVse2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bGVmdDttYXJnaW46MCA1cHh9LmN1c3RvbS1yYWRpby1sYWJlbDpmaXJzdC1jaGlsZHttYXJnaW4tbGVmdDowIWltcG9ydGFudH0uY3VzdG9tLXJhZGlvLWxhYmVsIGlucHV0W3R5cGU9cmFkaW9de21hcmdpbi1yaWdodDowIWltcG9ydGFudH0uY3VzdG9tLXNlbGVjdC1maWVsZHtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7bWFyZ2luOi41ZW0gMH0jYXZhaWxhYmxlLXdpZGdldHMgW2NsYXNzKj15aWtlc19lYXN5XSAud2lkZ2V0LXRpdGxlOmJlZm9yZXtjb250ZW50OlwiXCIhaW1wb3J0YW50O2JhY2tncm91bmQ6dXJsKC4uLy4uL2luY2x1ZGVzL2ltYWdlcy9NYWlsQ2hpbXBfQXNzZXRzL0ZyZWRkaWVfb3JpZ2luYWwucG5nKSBuby1yZXBlYXQgI0ZBRkFGQTtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbn1ib2R5LndwLWN1c3RvbWl6ZXIgI2F2YWlsYWJsZS13aWRnZXRzIFtpZCo9XCJfeWlrZXNfZWFzeV9tY193aWRnZXRcIl0+ZGl2LndpZGdldC10b3A+ZGl2LndpZGdldC10aXRsZT5oNHtiYWNrZ3JvdW5kOjAgMCFpbXBvcnRhbnR9I2Nvbm5lY3Rpb24tY29udGFpbmVye2Zsb2F0OnJpZ2h0O2NvbG9yOiNmZmY7cGFkZGluZzouMjVlbSAuNzVlbSAuMjVlbSAuMjVlbTttYXJnaW4tdG9wOi00cHh9I2Nvbm5lY3Rpb24tY29udGFpbmVyLmFwaS1jb25uZWN0ZWR7YmFja2dyb3VuZDojNDRiYTQ0fSNjb25uZWN0aW9uLWNvbnRhaW5lci5hcGktbm90LWNvbm5lY3RlZHtiYWNrZ3JvdW5kOiNiNWI1YjV9Lnlpa2VzLW1jLWFwaS1jb25uZWN0ZWQsLnlpa2VzLW1jLWFwaS1ub3QtY29ubmVjdGVke2xpbmUtaGVpZ2h0OjF9LnNob3ctc29tZS1sb3ZlLWNvbnRhaW5lcnt0cmFuc2l0aW9uOm1heC1oZWlnaHQgLjc1c30jcmV2aWV3LXlpa2VzLWVhc3ktbWN7dGV4dC1hbGlnbjpjZW50ZXJ9I3Jldmlldy15aWtlcy1lYXN5LW1jIC5kYXNoaWNvbnMtc3Rhci1maWxsZWR7Y29sb3I6I0U2QjgwMH0ubWV0YS1ib3gtc29ydGFibGVzIGhye21hcmdpbjoxLjc1ZW0gMCAwfSNhYm91dC15aWtlcy1pbmN7ZGlzcGxheTpub25lfSNhYm91dC15aWtlcy1pbmMgLmFib3V0LXNpZGViYXIteWlrZXMtbG9nb3tmbG9hdDpsZWZ0O3dpZHRoOjk1cHg7bWFyZ2luOjVweCA3cHggMCAwfSNhYm91dC15aWtlcy1pbmMgcHttYXJnaW4tdG9wOjB9Lnlpa2VzLWVhc3ktbWMtdXBkYXRlZHtkaXNwbGF5OmJsb2NrO2JvcmRlci1sZWZ0OjRweCBzb2xpZCAjNEVBRUYwO21hcmdpbjoxZW0gMjBweCAxZW0gMDtwYWRkaW5nOjJweCAxMHB4O2JhY2tncm91bmQ6cmlnaHQgYm90dG9tIG5vLXJlcGVhdCAjZmZmO2JhY2tncm91bmQtc2l6ZToxMjBweDtiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6MjlweH0uc3VwcG9ydC1zZWN0aW9ue21hcmdpbjoxLjVlbSAwO3BhZGRpbmc6MWVtIDB9LmdpdGh1Yi1vY3RvY2F0e2JhY2tncm91bmQ6dXJsKC4uLy4uL2luY2x1ZGVzL2ltYWdlcy9TdXBwb3J0X1BhZ2UvT2N0b2NhdC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MTAwJTt3aWR0aDo1MHB4O2hlaWdodDo0NXB4O2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bGVmdDttYXJnaW4tdG9wOi01cHh9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMjAwcHgpey55aWtlcy1lYXN5LW1jLXBvc3Rib3ggI3Bvc3QtYm9keS5jb2x1bW5zLTIgI3Bvc3Rib3gtY29udGFpbmVyLTF7ZmxvYXQ6bm9uZX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo4NTBweCl7Lm9wdGlvbi1tZW51LXNlbGVjdGVkLWFycm93e2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzgycHgpeyNjaGltcC1jaGF0dGVyIC5jaGltcC1jaGF0dGVyLWNvbnRhaW5lcntmbG9hdDpub25lO2hlaWdodDphdXRvO3dpZHRoOjEwMCV9fS5yZWNhcHRjaGEtZGVtby1naWZ7d2lkdGg6Mjc1cHh9LnByby12ZXJzaW9uLW9ubHktbm90aWNle2NvbG9yOiNkOTYwNjB9LnVwZ3JhZGluZy1lbGxpcHNlLW9uZXtmaWx0ZXI6YWxwaGEob3BhY2l0eT0wKTsta2h0bWwtb3BhY2l0eTowO29wYWNpdHk6MDthbmltYXRpb246ZG90IDEuM3MgaW5maW5pdGU7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6MG1zO2FuaW1hdGlvbi1kZWxheTowbXN9LnVwZ3JhZGluZy1lbGxpcHNlLXR3b3tmaWx0ZXI6YWxwaGEob3BhY2l0eT0wKTsta2h0bWwtb3BhY2l0eTowO29wYWNpdHk6MDthbmltYXRpb246ZG90IDEuM3MgaW5maW5pdGU7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6LjJzO2FuaW1hdGlvbi1kZWxheTouMnN9LnVwZ3JhZGluZy1lbGxpcHNlLXRocmVley1tcy1maWx0ZXI6XCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKVwiO2ZpbHRlcjphbHBoYShvcGFjaXR5PTApOy1tb3otb3BhY2l0eTowOy1raHRtbC1vcGFjaXR5OjA7b3BhY2l0eTowOy13ZWJraXQtYW5pbWF0aW9uOmRvdCAxLjNzIGluZmluaXRlO2FuaW1hdGlvbjpkb3QgMS4zcyBpbmZpbml0ZTstd2Via2l0LWFuaW1hdGlvbi1kZWxheTouM3M7YW5pbWF0aW9uLWRlbGF5Oi4zc31ALXdlYmtpdC1rZXlmcmFtZXMgZG90ezAlLDUwJXtvcGFjaXR5OjB9MTAwJXtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgZG90ezAlLDUwJXtvcGFjaXR5OjB9MTAwJXtvcGFjaXR5OjF9fSJdfQ== */
|
1 |
+
#yikes-easy-mc-dashboard-widget-stats h3,.addon-image{text-align:center}.yikes-easy-mc-hidden{display:none}.shortcode-input-field{color:#333;background:rgba(216,216,216,.35)!important}.edit-form-field-container-span{display:block;margin:.5em 0}.no-forms-widget{margin:2em 0}.no-forms-found-icon{font-size:14px;line-height:1.4;width:14px;color:#e07d7d}.coming-soon-button{position:absolute}.coming-soon-button .dashicons{font-size:14px;line-height:1.8}.add-ons-about-text{margin-top:0}#add-ons{margin:3em 0}.addon-image{display:block}.no-mailchimp-lists-found{padding:25px 0 25px 25px}.add-new-subscriber-button{display:block;margin-top:2em}.add-new-subscriber-form-container{display:none;padding-top:1em}.add-new-subscriber-form-container h4{margin-top:0}#yikes-easy-mc-widget-stat-holder,.yikes-easy-mc-stats-table{margin-top:1em}#migration-buttons{display:inline-block;margin-bottom:.5em}#migration-buttons form:first-child{margin-right:10px}#migration-buttons form{float:left}#yikes_easy_mc_account_activity_widget h3 span,#yikes_easy_mc_list_stats_widget h3 span{background:url(../../includes/images/MailChimp_Assets/Freddie_original.png) 8px 4px/25px auto no-repeat;background-size:25px;display:block;height:30px;padding-left:3em;padding-top:5px}#yikes_easy_mc_account_activity_widget h3.hndle,#yikes_easy_mc_list_stats_widget .inside{padding:0}#yikes_easy_mc_list_stats_widget h3{padding:0;line-height:1.6em}.yikes-easy-mc-stats-table,.yikes-easy-mc-stats-table .yikes-easy-mc-table-stats-tr,.yikes-easy-mc-stats-table tbody{display:block;width:100%}.yikes-easy-mc-table-stats-tr td{display:inline-block;width:48%;text-align:center}.yikes-easy-mc-table-stats-tr td:hover{cursor:pointer}.yikes-easy-mc-table-stats-tr td:first-of-type{border-right:1px solid #ececec}.yikes-easy-mc-stats-table .yikes-easy-mc-table-stats-tr-first{border-bottom:1px solid #ececec;border-top:1px solid #ececec}.yikes-easy-mc-stats-table p.yikes-easy-mc-dashboard-stat{color:#00a0d2;font-weight:800;font-size:20px;margin-bottom:2px;margin-top:15px;line-height:1.2;max-height:80px}.yikes-easy-mc-stats-table p.yikes-easy-mc-stat-list-label{font-size:13px;margin-top:0;margin-bottom:15px;font-family:"Open Sans"}#yikes_easy_mc_account_activity_widget table th.row-title{padding-left:10px}#pre-defined-tag-interior-container{background:url(../../includes/images/tinyMCE/yikes-mailchimp-combo-faded.png) bottom right no-repeat #fff;background-size:40%}.qtip-default{background-color:transparent!important;border:transparent!important;z-index:9999999!important}.qtip-bootstrap{padding:10px!important;z-index:9999999!important;font-size:12px}.search-interest-group-preloader{display:block;margin:8px 0 0 55px;width:12px}.no-interest-groupings-enabled-message{display:block;margin-top:12px!important;width:100%}.tooltip-integration-banner{max-width:100%;margin:0 0 .25em}.tooltiptext.qtip-bootstrap{font-size:12px}.tooltip-title{margin:0}.dashicons-editor-help:hover{cursor:pointer}body.easy-forms_page_yikes-inc-easy-mailchimp-settings .interest-group-section{display:block;width:100%;margin:1.5em 0}body.easy-forms_page_yikes-inc-easy-mailchimp-settings .interest-group-section .interest-group-section-title{display:block;width:100%;margin:.5em 0;text-decoration:underline}.github-avatar-url,body.admin_page_yikes-mailchimp-welcome #kb-container .knowledge-base-listing li a,body.easy-forms_page_yikes-inc-easy-mailchimp-support .knowledge-base-articles .knowledge-base-listing li a{text-decoration:none}body.easy-forms_page_yikes-inc-easy-mailchimp-settings .interest-group-section input{margin-right:0}body.easy-forms_page_yikes-inc-easy-mailchimp-settings .interest-group-section label{margin-right:10px}i.mce-ico.mce-i-yks_mc_tinymce_button_key{background:url(../../includes/images/tinyMCE/Freddie_wink.png) no-repeat;background-size:18px;background-position-y:1px}#yikes_mailchimp_tinyMCE_modal-title{padding-left:42px;background:url(../../includes/images/MailChimp_Assets/Freddie_original.png) left no-repeat;background-size:25px;background-position-x:10px}#yikes_mailchimp_tinyMCE_modal{background:url(../../includes/images/tinyMCE/yikes-mailchimp-combo-faded.png) bottom left no-repeat #fff;background-size:40%;background-position-x:10px;background-position-y:95%}#yikes_mailchimp_tinyMCE_modal .mce-foot{border-top:none!important;background:0 0}[id*="_yikes_easy_mc_widget"]>div.widget-top>div.widget-title>h4{background:url(../../includes/images/MailChimp_Assets/Freddie_original.png) 2% 50%/25px auto no-repeat #FAFAFA;padding-left:40px}#review-yikes-easy-mailchimp-notice #yikes-mailchimp-logo,#yikes-mailchimp-logo{font-size:14px;background:url(../../includes/images/Welcome_Page/yikes-mailchimp-welcome-logo.png) no-repeat;text-align:center}#review-yikes-easy-mailchimp-notice #yikes-mailchimp-logo{background-size:60px;float:left;height:80px;width:80px}.yikes-easy-mc-feature-image-left{float:left;margin-right:30px;margin-left:0!important}.need-support-icon{line-height:1.5}ul.support-option-list{display:inline-block;width:100%}.support-option{float:left}.support-option-second{margin-left:10px}#yikes-mailchimp-logo.support-page{float:left;width:80pt}.yikes-easy-mc-whats-new-section-image{float:none;width:100%;margin-left:0!important}.welcome-page-tabs{margin-top:2em!important}.welcome-page-about-wrap .about-text,.welcome-page-about-wrap h2.welcome-title{margin-left:115px}.whats-new-wrap img.yikes-easy-mc-whats-new-section-image{margin-top:10px}.whats-new-wrap .feature-section:nth-child(1) img{float:left;width:500px;margin-left:0!important;margin-right:30px}.whats-new-wrap .feature-section:nth-child(3) img{float:right;width:250px;margin-right:0!important;margin-left:30px}.whats-new-wrap .feature-section:nth-child(4) img{margin-left:0!important}#yikes-mailchimp-logo{height:132px;width:132px}.about-wrap #yikes-mailchimp-logo{position:absolute;top:0;left:0}.edd-welcome-screenshots{float:right;margin-left:10px!important}.about-wrap .feature-section{margin-top:20px}.yikes-easy-mc-feature-image{float:right;margin-left:30px!important}#credit-container,#translators-container{display:inline-block;width:100%}#credit-container h2,#translators-container h2{margin:0 0 .5em 1em}#translators-container{margin-top:5em}#translators-container .translation-language{color:#333}#credit-container .team-member,#translators-container .translator{margin:1em 5% 1em 0;text-align:center}#credit-container .team-member img,#translators-container .translator img{border-radius:50%}.admin_page_yikes-mailchimp-welcome .about-wrap div.error,.admin_page_yikes-mailchimp-welcome .about-wrap div.updated{display:block;margin-left:115px}.github-avatar-image{width:100px}.github-avatar-url{display:inline-block;width:20%}github-avatar-url:focus{outline:0}body.admin_page_yikes-mailchimp-edit-form div.show-some-love-container img,div.show-some-love-container img.customizer-upsell-banner{max-width:100%}body.admin_page_yikes-mailchimp-edit-form div.show-some-love-container p:first-child{font-style:italic}body.admin_page_yikes-mailchimp-edit-form div.show-some-love-container hr{margin:1em 0}body.admin_page_yikes-mailchimp-welcome .nav-tab-wrapper .nav-tab .dashicons{font-size:17px;line-height:1.5}body.admin_page_yikes-mailchimp-welcome #kb-container,body.easy-forms_page_yikes-inc-easy-mailchimp-support .knowledge-base-articles{display:inline-block;margin-top:1em}body.admin_page_yikes-mailchimp-welcome #kb-container h1{font-size:20px;margin-top:-1em}body.admin_page_yikes-mailchimp-welcome #kb-container .knowledge-base-listing,body.easy-forms_page_yikes-inc-easy-mailchimp-support .knowledge-base-articles .knowledge-base-listing{width:45%;margin-right:2%;float:left;min-height:260px}body.admin_page_yikes-mailchimp-welcome #kb-container .knowledge-base-listing li,body.easy-forms_page_yikes-inc-easy-mailchimp-support .knowledge-base-articles .knowledge-base-listing li{margin:12px 0;text-decoration:none}body.admin_page_yikes-mailchimp-welcome #kb-container .knowledge-base-listing li:before,body.easy-forms_page_yikes-inc-easy-mailchimp-support .knowledge-base-articles .knowledge-base-listing li:before{font-family:dashicons;content:"\f123";vertical-align:middle;display:block;float:left;margin:0 5px 5px 0}body.admin_page_yikes-mailchimp-welcome #kb-container .knowledge-base-listing li.list-title,body.easy-forms_page_yikes-inc-easy-mailchimp-support .knowledge-base-articles .knowledge-base-listing li.list-title{font-size:17px;font-weight:200;text-decoration:underline}body.admin_page_yikes-mailchimp-welcome #kb-container .knowledge-base-listing li.list-title:before,body.easy-forms_page_yikes-inc-easy-mailchimp-support .knowledge-base-articles .knowledge-base-listing li.list-title:before{content:"";padding-left:12px}body.admin_page_yikes-mailchimp-welcome .new-feature-list{list-style:none;line-height:middle}body.admin_page_yikes-mailchimp-welcome .new-feature-list li{margin-bottom:10px}body.admin_page_yikes-mailchimp-welcome .new-feature-list li:before{font-family:dashicons;content:"\f139";padding-right:2px;font-size:20px;vertical-align:middle}#review-yikes-easy-mailchimp-notice .button-container{display:block;width:100%;margin:.75em 0 1.5em}#review-yikes-easy-mailchimp-notice .button-container .dashicons{font-size:14px;line-height:1.9;margin-left:-4px}#review-yikes-easy-mailchimp-notice .button-container .dashicons-star-filled{color:#E6B800}#review-yikes-easy-mailchimp-notice .button-container .dashicons-upload{color:#6E8841}#review-yikes-easy-mailchimp-notice .button-container .dashicons-no-alt{color:#dc3a3a;line-height:2}body.easy-mailchimp_page_yikes-inc-easy-mailchimp-settings .dashicons-no-alt{color:#dc3a3a}#review-yikes-easy-mailchimp-notice .button-container a{margin-right:10px}#review-yikes-easy-mailchimp-notice{border-left:4px solid #00a0d2;background:#fefefe;padding:10px 12px 1px;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:15px 25px 20px 5px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background:#D8D8D8}.dashicons.yikes-love{color:pink}.field-description-input{resize:vertical;max-height:100px}.yikes-easy-mc-postbox h3{background:#00a0d2;font-weight:800;color:#fff}.yikes-easy-mc-postbox h3.bg-transparent{color:#333;font-weight:400;background:0 0}.yikes-mc-warning-message{padding-left:15px;margin-top:0;padding-top:10px;color:#da6e6e}.error-message-container label[for=yikes-easy-mc-success-message],.error-message-container label[for=yikes-easy-mc-general-error-message],.error-message-container label[for=yikes-easy-mc-invalid-email-message],.error-message-container label[for=yikes-easy-mc-user-subscribed-message]{padding:.5em 1em;background:rgba(241,241,241,.75);box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;margin:0}body.admin_page_yikes-mailchimp-edit-form #error-container{padding:2px 1em;background:rgba(241,241,241,.75);box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;margin:0;color:#F56060}.error-message-container label[for=yikes-easy-mc-user-subscribed-message]{padding-bottom:1em;margin-bottom:.5em}.error-message-container label,.form-settings-container label{display:block;margin:1em 0}.yikes-easy-forms-sidebar .yikes-mc-settings-expansion-section{padding:.5em .75em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.yikes-mc-settings-expansion-section{display:none;background:rgba(241,241,241,.75)}.expansion-section-title{background:#fff}.expansion-section-title.settings-sidebar,.form-builder-section-title{text-decoration:none;display:block;border:1px solid rgba(177,177,177,.71);color:#333;padding:5px;margin:.5em 0 0}.expansion-section-title.settings-sidebar .dashicons,.form-builder-section-title .dashicons{content:"\f132";font-family:dashicons;font-size:15px;line-height:1.5}span.easy-mailchimp-add-on-valid-license-container{color:#44ba44;display:block;margin-top:1em}.easy-mailchimp-add-on-invalid-license-container{color:rgba(227,107,107,.86);display:block;margin-top:1em}.options-sidebar .yikes-easy-mc-postbox{overflow:visible}.options-sidebar .inside{padding:0 20px 12px}.yikes-easy-mc-about-text{margin-top:0}.add-on-settings-divider{margin:1em 0!important}#yks-mailchimp-double-optin-message,#yks-mailchimp-single-optin-message,.settings-page-input{width:50%}#yks-mailchimp-double-optin-message,#yks-mailchimp-single-optin-message{min-height:75px;max-height:200px;resize:vertical}#addon-settings-nav li a,#settings-nav li a{color:#333;text-decoration:none!important;transition:color .15s ease-out;-moz-transition:color .15s ease-out;-webkit-transition:color .15s ease-out;-o-transition:color .15s ease-out}#addon-settings-nav li a:hover,#settings-nav li a:hover,.option-menu-selected-arrow+a{color:#00a0d2!important}#addon-settings-nav{margin-bottom:0;margin-top:5px}.option-menu-selected-arrow{width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:10px solid #a0a5aa;position:absolute;left:-.1em}label[for=yikes-mailchimp-debug-status]{display:inline-block;margin-bottom:1em;line-height:2.25}#yikes-mailchimp-debug-status{float:left;margin-top:.5em}label[for=yikes-mc-recaptcha-setting],label[for=yikes-mc-recaptcha-api-key]{display:block;margin-bottom:1em}.recaptcha-preview-link,input.recaptcha-setting-checkbox{display:block;margin-top:.5em}.recaptcha-preview-container{width:100%;display:none;margin:1em 0}#premium-support-form,.support-page-button,.support-page-logo{display:block;width:100%}.wrap #col-left,.wrap #col-right{width:49%}@media (max-width:800px){.wrap #col-left,.wrap #col-right{width:100%}}.support-page-logo{opacity:.7;max-width:100%}.support-page-button{min-height:40px;font-weight:700;text-align:center;line-height:3!important;margin-top:1em!important}.support-page-wordpress-font{font-size:1.3em;margin-right:13px}h2.premium-support-title{margin:1em 0 .5em}#premium-support-form input,#premium-support-form select{display:block;width:100%;min-width:200px;margin:.5em 0}#premium-support-form label{font-weight:800}#premium-support-form label input,#premium-support-form label select{font-weight:500}#premium-support-form p{font-weight:300;display:block;margin-bottom:1em}#wp-support-content-wrap{min-height:150px;width:100%}.support-form-hidden{display:none!important}#yikes-mailchimp-error-log .row-title{font-weight:400}.create-error-log-help:hover{cursor:pointer}.error-log-tr td{display:table;margin-bottom:1em;margin-top:.5em}p.error-log-missing-file em,p.to-start-logging-errors-notice em{margin:10px 0}.export-custom-forms-list{display:none;margin:1em 0 2em}.export-custom-forms-list p{margin-top:0}.list-rating-star{color:#E6B800}#chimp-chatter{text-align:center}#chimp-chatter .chimp-chatter-container{margin:1em .2em;background:#F8F8F8;border-radius:10px;float:left;height:220px;padding:10px;width:44%}.chimp-chatter-mailchimp-logo{width:100%;display:block;margin:0 auto}.chimp-chatter-sidebar h2.account-status{text-align:center}.mailchimp-affiliate-link{color:#333;display:none}.mailchimp-avatar{display:block;margin:0 auto;box-shadow:3px 3px 10px 0 rgba(214,214,214,.75)}#yikes_easy_mc_toolbar_links li a:focus,.merge-tag-text{box-shadow:none}.chimpchatter-button-container{clear:both;display:block}.chimp-chatter-postbox{float:left;width:49%;margin-right:1%}.circle-account-active,.circle-account-inactive{display:inline-block;vertical-align:middle;height:15px;width:15px;border-radius:50%}#account-details .chimp-chatter-postbox.even{margin-right:0}.circle-account-inactive{margin-top:-3px;margin-right:5px;background:rgba(250,138,138,.79)}.chatter-type{font-weight:600;font-family:"open sans";font-size:14px;margin:5px 5px 0}.chatter-message{margin:2px 2px 15px!important}.circle-account-active{margin-top:-3px;margin-right:5px;background:rgba(128,214,128,.77)}#account-details .mailchimp-avatar{width:120px;border-radius:10%;margin-top:.5em}.chimp-chatter-positive{border-left:4px solid #9ddf9d}.chimp-chatter-negative{border-left:4px solid #FBA2A2}.chimp-chatter-neutral{border-left:4px solid #b1b1b1}#import-list-to-site{margin-top:10px}#import-list-to-site .input-field{display:block;width:100%;margin-top:5px;margin-bottom:5px}.sidebar-container,.star-container{margin-top:5px;margin-bottom:1.5em}#import-list-to-site .form-description{resize:vertical;max-height:65px}#import-list-to-site .description{margin-top:5px}.star-container a{text-decoration:none}.star-container .dashicons-star-filled{font-size:1.75em}.sidebar-footer-text{margin:15px 0!important;text-align:center}.sidebar-twitter-icon{text-decoration:none;color:#55ACEE}.field-doesnt-exist-notice{position:absolute;margin-left:5px;width:18px}.field-type-text{float:right}.type-container{margin:0}.form-field-container{margin-top:0;margin-bottom:0}.field-no-longer-exists-warning{position:absolute;margin-left:5px;width:18px}.form-field-container td input[type=checkbox],.form-field-container td input[type=radio]{margin:0 5px}.form-field-container td input[type=checkbox]:first-child,.form-field-container td input[type=radio]:first-child{margin-left:0!important}.merge-tag-text{background:0 0;border:none}.pre-defined-tag-link{font-size:11px}.toggle-container{font-size:small;float:right}#pre-defined-tag-container{display:none}#pre-defined-tag-container h3{margin-bottom:0}#pre-defined-tag-container .tooltop-tag .dashicons-editor-help{font-size:13px;line-height:1.5}.no-fields-assigned-notice{margin:4em 0 2.25em;padding-bottom:6em;width:100%;text-align:center;background:url(../../includes/images/no-form-fields-assigned-arrow.jpg) bottom center no-repeat;background-size:105px}.yikes-easy-mc-widget-preloader{position:absolute;left:48%;margin-top:-96px}.yikes-dashboard-widget-section{padding:0 12px 12px}.select-list-title{padding-left:0}.yikes-dashboard-widget-section .description{margin:.5em 0 0}. error-descripion{padding-top:.5em}.yikes-mc-freddie-logo{float:left;margin-right:10px}.mv_ig_list{width:94%;margin-bottom:8px!important;border:none!important;background:0 0!important}.mv_ig_list .list-container{position:absolute}.mv_ig_list a{width:48%;padding:5px 0!important;text-align:center;margin:0}.mv_ig_list a:first-child{margin-right:0}.mv_ig_list a:last-child{float:right}.mv_ig_list .nav-tab{border:1px solid #ccc}.mv_ig_list .nav-tab-active{color:#fff;font-weight:700;background:#00a0d2}.mv_ig_list .arrow-down{position:absolute;margin-top:21px;margin-left:50px;width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid #00a0d2}#container-container{display:inline-block;width:521px}#container-container .list-container{float:left;width:240px;position:relative}#container-container .list-container:last-child{margin-left:2em}#yikes_easy_mc_toolbar{margin-top:-.75em}#yikes_easy_mc_toolbar_links{display:inline-block;width:100%;margin:0;padding:10px 0}#yikes_easy_mc_toolbar_links li{float:left;margin:0 .5em}#yikes_easy_mc_toolbar_links li a{text-decoration:none;display:inline-block}#yikes_easy_mc_toolbar_links li a.selected_hidden_setting{color:#333;margin-bottom:3px}#yikes_easy_mc_toolbar_links li .selected_setting_triangle{width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-top:13px solid rgba(206,206,206,1);margin:0 auto}.checkbox-settings-list-dropdown,.optin-checkbox-label-input{width:250px;display:block}#yikes_easy_mc_toolbar_links li a.form-builder:before{content:"\f116";font-family:dashicons}#yikes_easy_mc_toolbar_links li a.form-customizer:before{content:"\f100";font-family:dashicons}#yikes_easy_mc_toolbar_links li a.error-messages:before{content:"\f117";font-family:dashicons}#yikes_easy_mc_toolbar_links li a.form-settings:before{content:"\f111";font-family:dashicons}#checkbox-settings-form .dashicons-editor-help{font-size:15px;line-height:1.6}.no-lists-setup-notice{padding:.5em 0}.yikes-form-id-number{width:55px}span[title=Impressions]:hover,span[title=Submissions]:hover,span[title="Conversion Rate"]:hover{display:block;cursor:pointer}.form-id-container{padding:1px 8px;border-radius:5px;background:#49a9ec;font-weight:700;color:#fff}.manage-form-admin-notice{margin-top:1.75em!important}.remove-notification,.yikes-mc-settings-expansion-section a.remove-field,a.yikes-delete-mailchimp-form,a.yikes-delete-subscriber{color:#d96060!important}.yikes-delete-mailchimp-form{margin-top:6px}#postbox-container-1 .yikes-delete-mailchimp-form{float:right}.form-buttons-container{display:block;padding:11px 10px}.forms-buttons-container input[type=submit]{margin:0 0 .5em}.update-form-spinner{position:absolute;left:0;right:0;margin:0 auto;bottom:13px}.yikes-mc-shortcode-input{text-align:center;width:100%;color:#333}.hidden-class{display:none!important}.stat-container{width:10%;max-width:75px}.no-current-subscriber-notice em,.no-mailchimp-forms-found em{padding:25px 0 25px 25px}.column-columnname span.stats{display:block;width:100%;text-align:center}.column-columnname span.stats span{display:inline-block;width:20%}.column-columnname span.stats span:hover{cursor:pointer}#available-fields li,#available-interest-groups li{text-decoration:none;display:block;border:1px solid rgba(177,177,177,.71);color:#333;padding:5px;margin:.5em 0}#available-fields li.not-available,#available-interest-groups li.not-available{opacity:.6!important}#available-fields li.field-to-add-to-form,#available-interest-groups li.group-to-add-to-form{background:rgba(46,162,204,.25)}.add-field-to-editor .add-to-form-builder-arrow,.button-secondary .add-to-form-builder-arrow{width:15px;font-size:15px;line-height:1.8}.clear-form-fields{background:#e14d43;border-color:#d02c21;color:#fff;box-shadow:inset 0 1px 0 #ec8b85,0 1px 0 rgba(0,0,0,.15);text-decoration:none;display:inline-block;height:28px;padding:0 10px 1px;border-width:1px;-webkit-appearance:none;border-radius:3px;white-space:nowrap;font-size:13px;line-height:26px;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;float:right;margin:0 11px 10px 0}.clear-form-fields:active,.clear-form-fields:focus,.clear-form-fields:hover{background:#dd382d;border-color:#ba281e;color:#fff;box-shadow:inset 0 1px 0 #e8776f}.yikes-mc-view-list-breadcrumbs{padding:.8em;border:1px solid #D8D8D8;background:#ECECEC;margin:1.5em 0 .8em}.yikes-mc-member-rating-star{color:#daa520}#yikes-mc-subscriber-card-wrapper{background:#fefefe;min-height:200px;display:inline-block;box-shadow:0 1px 1px rgba(0,0,0,.04);webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;padding:15px 20px;width:500px;float:left}#yikes-mc-subscriber-card-wrapper .subscriber-optin-ip{display:inline-block;margin:1em 0 0;font-style:italic}.view-user-data-wrap #customer-tab-wrapper-list{float:left;background:#fefefe;margin-top:0;padding:12px;margin-left:-1px;border-right:1px solid #e5e5e5;border-top:1px solid #e5e5e5;border-bottom:1px solid #e5e5e5}.view-user-data-wrap #customer-tab-wrapper-list .dashicons{font-size:23px;height:23px;width:23px;margin:3px 0}.view-user-data-wrap #customer-tab-wrapper-list li.inactive{color:rgba(51,51,51,.31);transition:color ease-out .1s}.view-user-data-wrap #customer-tab-wrapper-list li.active,.view-user-data-wrap #customer-tab-wrapper-list li.inactive:hover{color:rgba(51,51,51,1)}#yikes-mc-subscriber-card-wrapper .yikes-mc-card-top .member-star-rating-container,#yikes-mc-subscriber-card-wrapper .yikes-mc-card-top h2,#yikes-mc-subscriber-card-wrapper .yikes-mc-card-top img{float:left}#yikes-mc-subscriber-card-wrapper #delete-mailchimp-subscriber{display:block;margin:0 auto}#yikes-mc-subscriber-card-wrapper .yikes-mc-card-top img{border-radius:3px}#yikes-mc-subscriber-card-wrapper .merge-variable-section li{display:inline-block;list-style:none;float:left;width:50%;min-height:65px;border-bottom:1px dotted #ddd}#yikes-mc-subscriber-card-wrapper .merge-variable-section li p{margin:0 0 1em}#yikes-mc-subscriber-card-wrapper .yikes-mc-card-top h2{max-width:370px;width:75%;padding:0}#yikes-mc-subscriber-card-wrapper .member-star-rating-container{display:block;margin:.5em 0 .5em 10px}#yikes-mc-subscriber-card-wrapper h2{margin-left:10px;margin-top:0;padding-top:0}#yikes-mc-subscriber-card-wrapper .yikes-mc-card-body,#yikes-mc-subscriber-card-wrapper .yikes-mc-card-top{display:inline-block;width:100%}.member-location-data,.member-subscription-date{width:70%;max-width:370px;display:block;float:left}#yikes-mc-subscriber-card-wrapper .yikes-mc-card-body h4{margin-top:0;margin-left:5px}.yikes-mc-subscriber-hr{margin:1.5em 0}.member-subscription-date{margin:.5em 0 .5em 10px}.member-location-data{margin:.25em 0 .25em 10px}.addon-required-link{color:#333;opacity:.5}.view-list-sidebar-input{color:#333}.interest-group-ul,.merge-variable-ul,.segment-ul{padding-left:15px;font-size:14px}.interest-group-ul li .dashicons,.merge-variable-ul li .dashicons{line-height:1.8;font-size:9px}a.button-primary.edit-fields-button{margin:0 0 10px 15px}.interest-group-count,.merge-variable-count,.segment-group-count{text-decoration:underline;margin-bottom:.75em;padding-left:7px}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-calendar td a,body.admin_page_yikes-mailchimp-edit-form .ui-datepicker a,body.admin_page_yikes-mailchimp-edit-form .ui-datepicker a:hover{text-decoration:none}.interest-group-title{padding-left:5px}.edit-segments-button{margin:0 0 10px 15px}.edit-segment-description{padding:0 0 10px 15px}#credit-container{margin-top:1.5em}.yikes-easy-mailchimp-custom-content-icon{font-size:15px;line-height:1}.custom-field-section{display:block;margin:1em 0}#associated-list{width:100%;margin-top:5px}#redirect-user-to-selection{width:100%}#edit-yikes-mc-form label h3{margin-left:0;padding-left:0}#available-fields .field-required{color:#d96060!important}body.admin_page_yikes-mailchimp-edit-form #poststuff h2{padding:8px 12px;margin-top:0}.edit-form-form-description{width:100%;resize:vertical;min-height:65px;max-height:100px}.edit-form-title{padding-left:12px!important}#edit-form-description{padding:0 12px;margin:1em 0}.yikes-easy-mc-postbox{overflow:hidden}.no-interest-groups-found-message{opacity:.35}.upgrading-ellipse-one,.upgrading-ellipse-two{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-moz-opacity:0;-webkit-animation:dot 1.3s infinite}#interest-groups-container .description,#merge-variables-container .description{padding-top:.5em}.inside-section-1{margin-top:0;margin-bottom:1.5em}.inside-section-2{margin-top:0;margin-bottom:2em}.form-field-container-span{display:block;margin:.5em 0}#style-list ul li{display:block;width:100%;margin:1em 0}.form-style-adjustment,.wp-picker-container{display:block!important;width:100%;margin:.5em 0}.dynamic-email-tag{display:inline-block;margin-right:5px}.dynamic-tag-description td{padding-top:0}#create-new-notification-button{margin-top:1em}.file-container{display:none}.yikes-mailchimp-file-field input[name*="custom-field[incentive-attachment]"]{margin-bottom:.5em}.yikes-mailchimp-file-field input[name*="custom-field[incentive-attachment]"]+.button-secondary{margin-left:4px}input#upload-btn[data-attr-position="1"]{margin-left:0}.remove-file-button{background:url(../partials/helpers/fields/img/icon-delete.png);height:16px;position:absolute;text-indent:-99999px;width:16px}a.add-new-incentive-attachment{display:block;width:40px;margin-right:100%!important;margin-top:.5em!important}a.add-new-incentive-attachment .dashicons{font-size:15px;line-height:1.8}.form-builder-placeholder{background:rgba(206,206,206,.2);height:30px}.admin_page_yikes-mailchimp-edit-form #form-settings .section-title{font-size:1em;border-bottom:1px solid rgba(187,187,187,.29);display:block;width:100%;padding-bottom:6px;margin-bottom:.5em;margin-top:1.5em}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior label,.admin_page_yikes-mailchimp-edit-form #form-settings .section-title.first{margin-top:0}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior{display:inline-block;width:100%;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;background:rgba(241,241,241,.75);padding:1em}label.login-restriction-center{display:block;width:100%}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .date-restirction-section{display:inline-block}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .date-restirction-section p.description.error{color:#F56060}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .date-restirction-section label{float:left;margin-right:.5em;margin-top:0;margin-bottom:0}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .nested-child .yikes-easy-mc-form-restriction-expired-message,.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .nested-child .yikes-easy-mc-form-restriction-login-message,.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .nested-child .yikes-easy-mc-form-restriction-pending-message{display:block;width:100%;min-height:50px}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .nested-child{float:left;padding-left:2%;width:98%;border-left:1px dashed #BDBDBD;border-spacing:2px;margin:.5em 0 1em}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .nested-child .yikes-easy-mc-submit-button-text{margin:0}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .date-restirction-section{margin-bottom:0}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .date-restirction-section.last{margin-bottom:.75em}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .nested-child.hidden{display:none}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .description+label{margin-top:1em;float:left;width:100%}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior label.inline-form-label{margin-bottom:0;margin-top:0}.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior .description{display:block;width:100%;float:left}.admin_page_yikes-mailchimp-edit-form #form-settings .nested-child strong:first-child,.admin_page_yikes-mailchimp-edit-form #form-settings .section-interior strong:first-child{display:block;width:100%}.admin_page_yikes-mailchimp-edit-form #form-settings .inline-form-label{float:left;margin-right:10px}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-wrapper{overflow-y:auto;height:150px;width:170px;background:#fff;border:1px solid #ddd;box-shadow:0 5px 10px rgba(0,0,0,.2);outline:0;z-index:10001;margin:0}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-wrapper.ui-timepicker-with-duration{width:13em}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-30,body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-60{width:11em}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list{margin:0;padding:0;list-style:none}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-duration{margin-left:5px;color:#888}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list:hover .ui-timepicker-duration{color:#888}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list li{padding:3px 0 3px 5px;cursor:pointer;white-space:nowrap;color:#000;list-style:none;margin:0}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list:hover .ui-timepicker-selected{background:#fff;color:#000}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list .ui-timepicker-selected:hover,body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list li:hover,body.admin_page_yikes-mailchimp-edit-form li.ui-timepicker-selected{background:#1980EC;color:#fff}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list li:hover .ui-timepicker-duration,body.admin_page_yikes-mailchimp-edit-form li.ui-timepicker-selected .ui-timepicker-duration{color:#ccc}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list li.ui-timepicker-disabled,body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list li.ui-timepicker-disabled:hover,body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list li.ui-timepicker-selected.ui-timepicker-disabled{color:#888;cursor:default}body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list li.ui-timepicker-disabled:hover,body.admin_page_yikes-mailchimp-edit-form .ui-timepicker-list li.ui-timepicker-selected.ui-timepicker-disabled{background:#f2f2f2}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker{background-color:#fff;border:1px solid #66AFE9;border-radius:4px;box-shadow:0 0 8px rgba(102,175,233,.6);display:none;margin-top:4px;padding:10px;width:240px}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker a:hover,body.admin_page_yikes-mailchimp-edit-form .ui-datepicker td:hover a{color:#2A6496;transition:color .1s ease-in-out}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-header{margin-bottom:4px;text-align:center}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-title{font-weight:700}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-next,body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-prev{cursor:default;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;height:20px;line-height:1;margin-top:2px;width:30px}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-prev{float:left;text-align:left}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-next{float:right;text-align:right}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-prev:before{content:"\f141";font-family:dashicons}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-next:before{content:"\f139";font-family:dashicons}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker-next:hover,body.admin_page_yikes-mailchimp-edit-form .ui-datepicker-prev:hover{cursor:pointer!important}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker-close{display:none}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker-current{color:#555!important;border-color:#ccc!important;background:#f7f7f7!important;box-shadow:0 1px 0 #ccc!important;vertical-align:top!important;display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;margin-top:10px}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-current-day a,body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-today a{color:#fff}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-icon{display:none}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-calendar{table-layout:fixed;width:100%}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-calendar td,body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-calendar th{text-align:center;padding:4px 0}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-calendar td{border-radius:4px;transition:background-color .1s ease-in-out,color .1s ease-in-out}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-calendar td:hover{background-color:#EBEBEB;cursor:pointer}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-today{background-color:rgba(66,137,204,.65)}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-current-day{background-color:#4289cc}body.admin_page_yikes-mailchimp-edit-form .ui-datepicker .ui-datepicker-calendar .ui-datepicker-unselectable:hover{background-color:#fff;cursor:default}.custom-radio-holder{display:inline-block;width:100%;margin:.5em 0}.custom-radio-label{display:block;float:left;margin:0 5px}.custom-radio-label:first-child{margin-left:0!important}.custom-radio-label input[type=radio]{margin-right:0!important}.custom-select-field{display:block;width:100%;margin:.5em 0}#available-widgets [class*=yikes_easy] .widget-title:before{content:""!important;background:url(../../includes/images/MailChimp_Assets/Freddie_original.png) no-repeat #FAFAFA;background-size:contain}body.wp-customizer #available-widgets [id*="_yikes_easy_mc_widget"]>div.widget-top>div.widget-title>h4{background:0 0!important}#connection-container{float:right;color:#fff;padding:.25em .75em .25em .25em;margin-top:-4px}#connection-container.api-connected{background:#44ba44}#connection-container.api-not-connected{background:#b5b5b5}.yikes-mc-api-connected,.yikes-mc-api-not-connected{line-height:1}.show-some-love-container{transition:max-height .75s}#review-yikes-easy-mc{text-align:center}#review-yikes-easy-mc .dashicons-star-filled{color:#E6B800}.meta-box-sortables hr{margin:1.75em 0 0}#about-yikes-inc{display:none}#about-yikes-inc .about-sidebar-yikes-logo{float:left;width:95px;margin:5px 7px 0 0}#about-yikes-inc p{margin-top:0}.yikes-easy-mc-updated{display:block;border-left:4px solid #4EAEF0;margin:1em 20px 1em 0;padding:2px 10px;background:right bottom no-repeat #fff;background-size:120px;background-position-y:29px}.support-section{margin:1.5em 0;padding:1em 0}.github-octocat{background:url(../../includes/images/Support_Page/Octocat.png) left top no-repeat;background-size:100%;width:50px;height:45px;display:block;float:left;margin-top:-5px}@media screen and (max-width:1200px){.yikes-easy-mc-postbox #post-body.columns-2 #postbox-container-1{float:none}}@media screen and (max-width:850px){.option-menu-selected-arrow{display:none!important}}@media screen and (max-width:782px){#chimp-chatter .chimp-chatter-container{float:none;height:auto;width:100%}}.recaptcha-demo-gif{width:275px}.pro-version-only-notice{color:#d96060}.upgrading-ellipse-one{filter:alpha(opacity=0);-khtml-opacity:0;opacity:0;animation:dot 1.3s infinite;-webkit-animation-delay:0ms;animation-delay:0ms}.upgrading-ellipse-two{filter:alpha(opacity=0);-khtml-opacity:0;opacity:0;animation:dot 1.3s infinite;-webkit-animation-delay:.2s;animation-delay:.2s}.upgrading-ellipse-three{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity:0;opacity:0;-webkit-animation:dot 1.3s infinite;animation:dot 1.3s infinite;-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes dot{0%,50%{opacity:0}100%{opacity:1}}@keyframes dot{0%,50%{opacity:0}100%{opacity:1}}
|
|
admin/css/yikes-inc-easy-mailchimp-migrate-option-styles.min.css
CHANGED
@@ -1,2 +1 @@
|
|
1 |
-
.upgrading-ellipse-one,.upgrading-ellipse-two{-webkit-animation:dot 1.3s infinite;opacity:0}.migrate-options-notice{display:none}.migration-complete-notification{margin-top:2em;font-size:18px;font-weight:200}#options-updated li:before{background:#FCFCFC;border-radius:50%;margin-right:5px;color:rgba(74,209,74,.69);font-family:Dashicons;content:"\f147"}#options-updated li:last-child:before{content:"";font-family:"";margin-left:15px;margin-top:2em!important}#options-updated li{margin:1em 0}.upgrading-ellipse-one{
|
2 |
-
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInlpa2VzLWluYy1lYXN5LW1haWxjaGltcC1taWdyYXRlLW9wdGlvbi1zdHlsZXMubWluLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEMsb0NBQW9DLFNBQVMsQ0FBQyx3QkFBd0IsWUFBWSxDQUFDLGlDQUFpQyxlQUFlLGVBQWUsZUFBZSxDQUFDLDJCQUEyQixtQkFBbUIsa0JBQWtCLGlCQUFpQiwwQkFBMEIsc0JBQXNCLGVBQWUsQ0FBQyxzQ0FBc0MsV0FBVyxlQUFlLGlCQUFpQix3QkFBd0IsQ0FBQyxvQkFBb0IsWUFBWSxDQUFDLHVCQUF1QixvQ0FBNEIsQUFBNUIsNEJBQTRCLDRCQUE0QixtQkFBbUIsQ0FBQyx1QkFBdUIsb0NBQTRCLEFBQTVCLDRCQUE0Qiw0QkFBNEIsbUJBQW1CLENBQUMseUJBQXlCLFVBQVUsb0NBQW9DLDRCQUE0Qiw0QkFBNEIsbUJBQW1CLENBQUMsdUJBQXVCLE9BQU8sU0FBUyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsZUFBZSxPQUFPLFNBQVMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDIiwiZmlsZSI6Inlpa2VzLWluYy1lYXN5LW1haWxjaGltcC1taWdyYXRlLW9wdGlvbi1zdHlsZXMubWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi51cGdyYWRpbmctZWxsaXBzZS1vbmUsLnVwZ3JhZGluZy1lbGxpcHNlLXR3b3std2Via2l0LWFuaW1hdGlvbjpkb3QgMS4zcyBpbmZpbml0ZTtvcGFjaXR5OjB9Lm1pZ3JhdGUtb3B0aW9ucy1ub3RpY2V7ZGlzcGxheTpub25lfS5taWdyYXRpb24tY29tcGxldGUtbm90aWZpY2F0aW9ue21hcmdpbi10b3A6MmVtO2ZvbnQtc2l6ZToxOHB4O2ZvbnQtd2VpZ2h0OjIwMH0jb3B0aW9ucy11cGRhdGVkIGxpOmJlZm9yZXtiYWNrZ3JvdW5kOiNGQ0ZDRkM7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXJpZ2h0OjVweDtjb2xvcjpyZ2JhKDc0LDIwOSw3NCwuNjkpO2ZvbnQtZmFtaWx5OkRhc2hpY29ucztjb250ZW50OlwiXFxmMTQ3XCJ9I29wdGlvbnMtdXBkYXRlZCBsaTpsYXN0LWNoaWxkOmJlZm9yZXtjb250ZW50OlwiXCI7Zm9udC1mYW1pbHk6XCJcIjttYXJnaW4tbGVmdDoxNXB4O21hcmdpbi10b3A6MmVtIWltcG9ydGFudH0jb3B0aW9ucy11cGRhdGVkIGxpe21hcmdpbjoxZW0gMH0udXBncmFkaW5nLWVsbGlwc2Utb25le2FuaW1hdGlvbjpkb3QgMS4zcyBpbmZpbml0ZTstd2Via2l0LWFuaW1hdGlvbi1kZWxheTowbXM7YW5pbWF0aW9uLWRlbGF5OjBtc30udXBncmFkaW5nLWVsbGlwc2UtdHdve2FuaW1hdGlvbjpkb3QgMS4zcyBpbmZpbml0ZTstd2Via2l0LWFuaW1hdGlvbi1kZWxheTouMnM7YW5pbWF0aW9uLWRlbGF5Oi4yc30udXBncmFkaW5nLWVsbGlwc2UtdGhyZWV7b3BhY2l0eTowOy13ZWJraXQtYW5pbWF0aW9uOmRvdCAxLjNzIGluZmluaXRlO2FuaW1hdGlvbjpkb3QgMS4zcyBpbmZpbml0ZTstd2Via2l0LWFuaW1hdGlvbi1kZWxheTouM3M7YW5pbWF0aW9uLWRlbGF5Oi4zc31ALXdlYmtpdC1rZXlmcmFtZXMgZG90ezAlLDUwJXtvcGFjaXR5OjB9MTAwJXtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgZG90ezAlLDUwJXtvcGFjaXR5OjB9MTAwJXtvcGFjaXR5OjF9fSJdfQ== */
|
1 |
+
.upgrading-ellipse-one,.upgrading-ellipse-two{-webkit-animation:dot 1.3s infinite;opacity:0}.migrate-options-notice{display:none}.migration-complete-notification{margin-top:2em;font-size:18px;font-weight:200}#options-updated li:before{background:#FCFCFC;border-radius:50%;margin-right:5px;color:rgba(74,209,74,.69);font-family:Dashicons;content:"\f147"}#options-updated li:last-child:before{content:"";font-family:"";margin-left:15px;margin-top:2em!important}#options-updated li{margin:1em 0}.upgrading-ellipse-one{animation:dot 1.3s infinite;-webkit-animation-delay:0ms;animation-delay:0ms}.upgrading-ellipse-two{animation:dot 1.3s infinite;-webkit-animation-delay:.2s;animation-delay:.2s}.upgrading-ellipse-three{opacity:0;-webkit-animation:dot 1.3s infinite;animation:dot 1.3s infinite;-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes dot{0%,50%{opacity:0}100%{opacity:1}}@keyframes dot{0%,50%{opacity:0}100%{opacity:1}}
|
|
admin/partials/dashboard-widgets/class.list-activity-widget.php
CHANGED
@@ -1,155 +1,156 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
* Our ajax is processed inside of class.ajax.php
|
4 |
-
*/
|
5 |
-
class YIKES_Inc_Easy_MailChimp_Dashboard_Widgets
|
6 |
-
{
|
7 |
-
|
8 |
-
// Construction
|
9 |
-
public function __construct() {
|
10 |
-
if( get_option( 'yikes-mc-api-key' , '' ) != '' && get_option( 'yikes-mc-api-validation' , 'invalid_api_key' ) == 'valid_api_key' ) {
|
11 |
-
// hook in and display our list stats dashboard widget
|
12 |
-
add_action( 'wp_dashboard_setup', array( $this , 'yks_mc_add_chimp_chatter_dashboard_widget' ) , 10 );
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
);
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
*
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
//
|
62 |
-
|
63 |
-
|
64 |
-
$
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
'
|
72 |
-
|
73 |
-
|
74 |
-
'
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
$error_logging
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
<
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
//
|
123 |
-
|
124 |
-
|
125 |
-
$
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
'
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
$error_logging
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* Our ajax is processed inside of class.ajax.php
|
4 |
+
*/
|
5 |
+
class YIKES_Inc_Easy_MailChimp_Dashboard_Widgets
|
6 |
+
{
|
7 |
+
|
8 |
+
// Construction
|
9 |
+
public function __construct() {
|
10 |
+
if( get_option( 'yikes-mc-api-key' , '' ) != '' && get_option( 'yikes-mc-api-validation' , 'invalid_api_key' ) == 'valid_api_key' ) {
|
11 |
+
// hook in and display our list stats dashboard widget
|
12 |
+
add_action( 'wp_dashboard_setup', array( $this , 'yks_mc_add_chimp_chatter_dashboard_widget' ) , 10 );
|
13 |
+
}
|
14 |
+
add_action( 'admin_enqueue_scripts' , array( $this, 'enqueue_dashboard_widget_script' ) );
|
15 |
+
}
|
16 |
+
|
17 |
+
// enqueue our JS file on the main dashboard page
|
18 |
+
function enqueue_dashboard_widget_script( $hook ) {
|
19 |
+
if( 'index.php' == $hook ) { // default 'dashboard' page
|
20 |
+
wp_register_script( 'yikes-easy-mc-dashboard-widget-script' , YIKES_MC_URL . 'admin/js/min/yikes-inc-easy-mailchimp-dashboard-widget.min.js' , array( 'jquery' ) , 'all' , false );
|
21 |
+
$data_array = array(
|
22 |
+
'ajax_url' => esc_url_raw( admin_url( 'admin-ajax.php' ) ),
|
23 |
+
'preloader' => '<img src="' . esc_url_raw( admin_url( 'images/wpspin_light.gif' ) ) . '" title="' . __( 'Preloader' , 'yikes-inc-easy-mailchimp-extender' ) . '" alt="' . __( 'Preloader' , 'yikes-inc-easy-mailchimp-extender' ) . '" class="yikes-easy-mc-widget-preloader">'
|
24 |
+
);
|
25 |
+
// localize our data, to pass along to JS file
|
26 |
+
wp_localize_script( 'yikes-easy-mc-dashboard-widget-script' , 'object' , $data_array );
|
27 |
+
wp_enqueue_script( 'yikes-easy-mc-dashboard-widget-script' );
|
28 |
+
}
|
29 |
+
}
|
30 |
+
|
31 |
+
/*******************************************************
|
32 |
+
Custom Dashboard MailChimp Account Activity Widget
|
33 |
+
********************************************************/
|
34 |
+
/**
|
35 |
+
* Add a widget to the dashboard.
|
36 |
+
*
|
37 |
+
* This function is hooked into the 'wp_dashboard_setup' action below.
|
38 |
+
*/
|
39 |
+
function yks_mc_add_chimp_chatter_dashboard_widget() {
|
40 |
+
// If the current user is not an admin, abort
|
41 |
+
if ( apply_filters( 'yikes-mailchimp-user-role-access', current_user_can( 'manage_options' ) ) ) {
|
42 |
+
/* List Stats Dashboard Widget */
|
43 |
+
wp_add_dashboard_widget(
|
44 |
+
'yikes_easy_mc_list_stats_widget', // Widget slug.
|
45 |
+
__( 'MailChimp List Stats', 'yikes-inc-easy-mailchimp-extender' ), // Title.
|
46 |
+
array( $this , 'list_stats_dashboard_widget' ) // Display function.
|
47 |
+
);
|
48 |
+
/* Chimp Chatter Dashboard Widget */
|
49 |
+
wp_add_dashboard_widget(
|
50 |
+
'yikes_easy_mc_account_activity_widget', // Widget slug.
|
51 |
+
__( 'MailChimp Account Activity', 'yikes-inc-easy-mailchimp-extender' ), // Title.
|
52 |
+
array( $this , 'account_activity_dashboard_widget' ) // Display function.
|
53 |
+
);
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Create the function to output our list stats dashboard widget
|
59 |
+
*/
|
60 |
+
function list_stats_dashboard_widget() {
|
61 |
+
// Get our list data!
|
62 |
+
// Check for a transient, if not - set one up for one hour
|
63 |
+
if ( false === ( $list_data = get_transient( 'yikes-easy-mailchimp-list-data' ) ) ) {
|
64 |
+
$api_key = trim( get_option( 'yikes-mc-api-key' , '' ) );
|
65 |
+
$dash_position = strpos( $api_key, '-' );
|
66 |
+
if( $dash_position !== false ) {
|
67 |
+
$api_endpoint = 'https://' . substr( $api_key, $dash_position + 1 ) . '.api.mailchimp.com/2.0/lists/list.json';
|
68 |
+
}
|
69 |
+
$list_data = wp_remote_post( $api_endpoint, array(
|
70 |
+
'body' => array(
|
71 |
+
'apikey' => $api_key,
|
72 |
+
'limit' => 100
|
73 |
+
),
|
74 |
+
'timeout' => 10,
|
75 |
+
'sslverify' => apply_filters( 'yikes-mailchimp-sslverify', true )
|
76 |
+
) );
|
77 |
+
$list_data = json_decode( wp_remote_retrieve_body( $list_data ), true );
|
78 |
+
if( isset( $list_data['error'] ) ) {
|
79 |
+
if( WP_DEBUG || get_option( 'yikes-mailchimp-debug-status' , '' ) == '1' ) {
|
80 |
+
require_once YIKES_MC_PATH . 'includes/error_log/class-yikes-inc-easy-mailchimp-error-logging.php';
|
81 |
+
$error_logging = new Yikes_Inc_Easy_Mailchimp_Error_Logging();
|
82 |
+
$error_logging->yikes_easy_mailchimp_write_to_error_log( $list_data['error'], __( "Get Account Lists" , 'yikes-inc-easy-mailchimp-extender' ), "Dashboard Activity Widget" );
|
83 |
+
}
|
84 |
+
} else {
|
85 |
+
// set our transient
|
86 |
+
set_transient( 'yikes-easy-mailchimp-list-data', $list_data, 1 * HOUR_IN_SECONDS );
|
87 |
+
}
|
88 |
+
}
|
89 |
+
?>
|
90 |
+
<!-- Dropdown to Change the list -->
|
91 |
+
<?php if( ! empty( $list_data['data'] ) ) {
|
92 |
+
?><section class="inside-widget yikes-dashboard-widget-section">
|
93 |
+
<strong class="select-list-title"><?php _e( 'Select a list' , 'yikes-inc-easy-mailchimp-extender' ) ?>:</strong>
|
94 |
+
<select id="yikes-easy-mc-dashboard-change-list" class="widefat">
|
95 |
+
<?php
|
96 |
+
foreach( $list_data['data'] as $list ) {
|
97 |
+
?><option val="<?php echo $list['id']; ?>"><?php echo $list['name']; ?></option><?php
|
98 |
+
}
|
99 |
+
?>
|
100 |
+
</select>
|
101 |
+
<p class="description"><?php _e( 'Select a list from the dropdown above. View statistics related to this list below.' , 'yikes-inc-easy-mailchimp-extender' ); ?></p>
|
102 |
+
</section>
|
103 |
+
<!-- display stats here! -->
|
104 |
+
<section id="yikes-easy-mc-dashboard-widget-stats">
|
105 |
+
<?php
|
106 |
+
if( !empty( $list_data['data'] ) ) {
|
107 |
+
include_once( YIKES_MC_PATH . 'admin/partials/dashboard-widgets/templates/stats-list-template.php' );
|
108 |
+
}
|
109 |
+
?>
|
110 |
+
</section>
|
111 |
+
<?php } else { ?>
|
112 |
+
<section id="yikes-easy-mc-dashboard-widget-stats">
|
113 |
+
<p class="no-lists-error"><?php _e( "Whoops, you don't have any lists set up. Head over to MailChimp to set up lists." , 'yikes-inc-easy-mailchimp-extender' ); ?></p>
|
114 |
+
</section>
|
115 |
+
<?php }
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Create the function to output our account activity dashboard widget
|
120 |
+
*/
|
121 |
+
function account_activity_dashboard_widget() {
|
122 |
+
// Get our list data!
|
123 |
+
// Check for a transient, if not - set one up for one hour
|
124 |
+
if ( false === ( $account_activity = get_transient( 'yikes-easy-mailchimp-account-activity' ) ) ) {
|
125 |
+
$api_key = trim( get_option( 'yikes-mc-api-key' , '' ) );
|
126 |
+
$dash_position = strpos( $api_key, '-' );
|
127 |
+
if( $dash_position !== false ) {
|
128 |
+
$api_endpoint = 'https://' . substr( $api_key, $dash_position + 1 ) . '.api.mailchimp.com/2.0/helper/chimp-chatter.json';
|
129 |
+
}
|
130 |
+
$account_activity = wp_remote_post( $api_endpoint, array(
|
131 |
+
'body' => array(
|
132 |
+
'apikey' => $api_key
|
133 |
+
),
|
134 |
+
'timeout' => 10,
|
135 |
+
'sslverify' => apply_filters( 'yikes-mailchimp-sslverify', true )
|
136 |
+
) );
|
137 |
+
$account_activity = json_decode( wp_remote_retrieve_body( $account_activity ), true );
|
138 |
+
if( isset( $account_activity['error'] ) ) {
|
139 |
+
if( WP_DEBUG || get_option( 'yikes-mailchimp-debug-status' , '' ) == '1' ) {
|
140 |
+
require_once YIKES_MC_PATH . 'includes/error_log/class-yikes-inc-easy-mailchimp-error-logging.php';
|
141 |
+
$error_logging = new Yikes_Inc_Easy_Mailchimp_Error_Logging();
|
142 |
+
$error_logging->yikes_easy_mailchimp_write_to_error_log( $account_activity['error'], __( "Get Account Activity" , 'yikes-inc-easy-mailchimp-extender' ), "Dashboard Activity Widget" );
|
143 |
+
}
|
144 |
+
} else {
|
145 |
+
// set our transient for one hour
|
146 |
+
set_transient( 'yikes-easy-mailchimp-account-activity', $account_activity, 1 * HOUR_IN_SECONDS );
|
147 |
+
}
|
148 |
+
}
|
149 |
+
if( ! empty( $account_activity ) ) {
|
150 |
+
include_once( YIKES_MC_PATH . 'admin/partials/dashboard-widgets/templates/account-activity-template.php' );
|
151 |
+
}
|
152 |
+
}
|
153 |
+
|
154 |
+
} // end class
|
155 |
+
new YIKES_Inc_Easy_MailChimp_Dashboard_Widgets();
|
156 |
+
?>
|
includes/class-yikes-inc-easy-mailchimp-extender.php
CHANGED
@@ -62,7 +62,7 @@ class Yikes_Inc_Easy_Mailchimp_Extender {
|
|
62 |
*/
|
63 |
public function __construct() {
|
64 |
$this->yikes_inc_easy_mailchimp_extender = 'yikes-inc-easy-mailchimp-extender';
|
65 |
-
$this->version = '6.0.5.
|
66 |
$this->load_dependencies();
|
67 |
$this->define_admin_hooks();
|
68 |
$this->define_public_hooks();
|
62 |
*/
|
63 |
public function __construct() {
|
64 |
$this->yikes_inc_easy_mailchimp_extender = 'yikes-inc-easy-mailchimp-extender';
|
65 |
+
$this->version = '6.0.5.5';
|
66 |
$this->load_dependencies();
|
67 |
$this->define_admin_hooks();
|
68 |
$this->define_public_hooks();
|
public/css/yikes-inc-easy-mailchimp-checkbox-integration.min.css
CHANGED
@@ -1,2 +1 @@
|
|
1 |
-
input[name=yikes_mailchimp_checkbox_easy_digital_downloads_checkout_form]{margin-top:3px!important}.yikes-easy-mailchimp-registration_form-checkbox{margin-bottom:.8em!important}#yikes-easy-mailchimp-buddypress_form-checkbox{display:inline-block}#yikes-mailchimp-checkbox-section{width:48%;float:right}
|
2 |
-
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInlpa2VzLWluYy1lYXN5LW1haWxjaGltcC1jaGVja2JveC1pbnRlZ3JhdGlvbi5taW4uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRSx3QkFBd0IsQ0FBQyxpREFBaUQsNEJBQTRCLENBQUMsK0NBQStDLG9CQUFvQixDQUFDLGtDQUFrQyxVQUFVLFdBQVcsQ0FBQyIsImZpbGUiOiJ5aWtlcy1pbmMtZWFzeS1tYWlsY2hpbXAtY2hlY2tib3gtaW50ZWdyYXRpb24ubWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbImlucHV0W25hbWU9eWlrZXNfbWFpbGNoaW1wX2NoZWNrYm94X2Vhc3lfZGlnaXRhbF9kb3dubG9hZHNfY2hlY2tvdXRfZm9ybV17bWFyZ2luLXRvcDozcHghaW1wb3J0YW50fS55aWtlcy1lYXN5LW1haWxjaGltcC1yZWdpc3RyYXRpb25fZm9ybS1jaGVja2JveHttYXJnaW4tYm90dG9tOi44ZW0haW1wb3J0YW50fSN5aWtlcy1lYXN5LW1haWxjaGltcC1idWRkeXByZXNzX2Zvcm0tY2hlY2tib3h7ZGlzcGxheTppbmxpbmUtYmxvY2t9I3lpa2VzLW1haWxjaGltcC1jaGVja2JveC1zZWN0aW9ue3dpZHRoOjQ4JTtmbG9hdDpyaWdodH0iXX0= */
|
1 |
+
input[name=yikes_mailchimp_checkbox_easy_digital_downloads_checkout_form]{margin-top:3px!important}.yikes-easy-mailchimp-registration_form-checkbox{margin-bottom:.8em!important}#yikes-easy-mailchimp-buddypress_form-checkbox{display:inline-block}#yikes-mailchimp-checkbox-section{width:48%;float:right}
|
|
public/css/yikes-inc-easy-mailchimp-datepicker-styles.min.css
CHANGED
@@ -4,5 +4,4 @@
|
|
4 |
* Copyright 2012 Stefan Petre
|
5 |
* Improvements by Andrew Rowls
|
6 |
* Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
|
7 |
-
*/.datepicker-dropdown:after,.datepicker-dropdown:before{content:'';display:inline-block;border-top:0;position:absolute}.datepicker{padding:4px;border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker.datepicker-rtl{direction:rtl}.datepicker.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0}.datepicker-dropdown:before{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,.2)}.datepicker-dropdown:after{border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-top:before{top:-7px}.datepicker-dropdown.datepicker-orient-top:after{top:-6px}.datepicker-dropdown.datepicker-orient-bottom:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.datepicker-dropdown.datepicker-orient-bottom:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker>div{display:none}.datepicker.days .datepicker-days,.datepicker.months .datepicker-months,.datepicker.years .datepicker-years{display:block}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker table tr td,.datepicker table tr th{text-align:center;width:30px;height:30px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.day.focused,.datepicker table tr td.day:hover{background:#eee;cursor:pointer}.datepicker table tr td.new,.datepicker table tr td.old{color:#999}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td.today,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today:hover{color:#000;background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:focus,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.disabled:hover:focus,.datepicker table tr td.today.disabled:hover:hover,.datepicker table tr td.today:active,.datepicker table tr td.today:focus,.datepicker table tr td.today:hover,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover:active,.datepicker table tr td.today:hover:focus,.datepicker table tr td.today:hover:hover,.open .dropdown-toggle.datepicker table tr td.today,.open .dropdown-toggle.datepicker table tr td.today.disabled,.open .dropdown-toggle.datepicker table tr td.today.disabled:hover,.open .dropdown-toggle.datepicker table tr td.today:hover{color:#000;background-color:#ffcd70;border-color:#f59e00}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today:active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover:active,.open .dropdown-toggle.datepicker table tr td.today,.open .dropdown-toggle.datepicker table tr td.today.disabled,.open .dropdown-toggle.datepicker table tr td.today.disabled:hover,.open .dropdown-toggle.datepicker table tr td.today:hover{background-image:none}.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled.disabled,.datepicker table tr td.today.disabled.disabled.active,.datepicker table tr td.today.disabled.disabled:active,.datepicker table tr td.today.disabled.disabled:focus,.datepicker table tr td.today.disabled.disabled:hover,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:focus,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover.disabled,.datepicker table tr td.today.disabled:hover.disabled.active,.datepicker table tr td.today.disabled:hover.disabled:active,.datepicker table tr td.today.disabled:hover.disabled:focus,.datepicker table tr td.today.disabled:hover.disabled:hover,.datepicker table tr td.today.disabled:hover[disabled],.datepicker table tr td.today.disabled:hover[disabled].active,.datepicker table tr td.today.disabled:hover[disabled]:active,.datepicker table tr td.today.disabled:hover[disabled]:focus,.datepicker table tr td.today.disabled:hover[disabled]:hover,.datepicker table tr td.today.disabled[disabled],.datepicker table tr td.today.disabled[disabled].active,.datepicker table tr td.today.disabled[disabled]:active,.datepicker table tr td.today.disabled[disabled]:focus,.datepicker table tr td.today.disabled[disabled]:hover,.datepicker table tr td.today:hover.disabled,.datepicker table tr td.today:hover.disabled.active,.datepicker table tr td.today:hover.disabled:active,.datepicker table tr td.today:hover.disabled:focus,.datepicker table tr td.today:hover.disabled:hover,.datepicker table tr td.today:hover[disabled],.datepicker table tr td.today:hover[disabled].active,.datepicker table tr td.today:hover[disabled]:active,.datepicker table tr td.today:hover[disabled]:focus,.datepicker table tr td.today:hover[disabled]:hover,.datepicker table tr td.today[disabled],.datepicker table tr td.today[disabled].active,.datepicker table tr td.today[disabled]:active,.datepicker table tr td.today[disabled]:focus,.datepicker table tr td.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.today,fieldset[disabled] .datepicker table tr td.today.active,fieldset[disabled] .datepicker table tr td.today.disabled,fieldset[disabled] .datepicker table tr td.today.disabled.active,fieldset[disabled] .datepicker table tr td.today.disabled:active,fieldset[disabled] .datepicker table tr td.today.disabled:focus,fieldset[disabled] .datepicker table tr td.today.disabled:hover,fieldset[disabled] .datepicker table tr td.today.disabled:hover.active,fieldset[disabled] .datepicker table tr td.today.disabled:hover:active,fieldset[disabled] .datepicker table tr td.today.disabled:hover:focus,fieldset[disabled] .datepicker table tr td.today.disabled:hover:hover,fieldset[disabled] .datepicker table tr td.today:active,fieldset[disabled] .datepicker table tr td.today:focus,fieldset[disabled] .datepicker table tr td.today:hover,fieldset[disabled] .datepicker table tr td.today:hover.active,fieldset[disabled] .datepicker table tr td.today:hover:active,fieldset[disabled] .datepicker table tr td.today:hover:focus,fieldset[disabled] .datepicker table tr td.today:hover:hover{background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today:hover:hover{color:#000}.datepicker table tr td.today.active:hover{color:#fff}.datepicker table tr td.range,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range:hover{background:#eee;border-radius:0}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active:active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active,.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover:active,.open .dropdown-toggle.datepicker table tr td.active,.open .dropdown-toggle.datepicker table tr td.active.disabled,.open .dropdown-toggle.datepicker table tr td.active.disabled:hover,.open .dropdown-toggle.datepicker table tr td.active:hover,.open .dropdown-toggle.datepicker table tr td.range.today,.open .dropdown-toggle.datepicker table tr td.range.today.disabled,.open .dropdown-toggle.datepicker table tr td.range.today.disabled:hover,.open .dropdown-toggle.datepicker table tr td.range.today:hover,.open .dropdown-toggle.datepicker table tr td.selected,.open .dropdown-toggle.datepicker table tr td.selected.disabled,.open .dropdown-toggle.datepicker table tr td.selected.disabled:hover,.open .dropdown-toggle.datepicker table tr td.selected:hover{background-image:none}.datepicker table tr td.range.today,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today:hover{color:#000;background-color:#f7ca77;border-color:#f1a417;border-radius:0}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:focus,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.disabled:hover:focus,.datepicker table tr td.range.today.disabled:hover:hover,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:focus,.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today:hover:focus,.datepicker table tr td.range.today:hover:hover,.open .dropdown-toggle.datepicker table tr td.range.today,.open .dropdown-toggle.datepicker table tr td.range.today.disabled,.open .dropdown-toggle.datepicker table tr td.range.today.disabled:hover,.open .dropdown-toggle.datepicker table tr td.range.today:hover{color:#000;background-color:#f4bb51;border-color:#bf800c}.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled.disabled,.datepicker table tr td.range.today.disabled.disabled.active,.datepicker table tr td.range.today.disabled.disabled:active,.datepicker table tr td.range.today.disabled.disabled:focus,.datepicker table tr td.range.today.disabled.disabled:hover,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:focus,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover.disabled,.datepicker table tr td.range.today.disabled:hover.disabled.active,.datepicker table tr td.range.today.disabled:hover.disabled:active,.datepicker table tr td.range.today.disabled:hover.disabled:focus,.datepicker table tr td.range.today.disabled:hover.disabled:hover,.datepicker table tr td.range.today.disabled:hover[disabled],.datepicker table tr td.range.today.disabled:hover[disabled].active,.datepicker table tr td.range.today.disabled:hover[disabled]:active,.datepicker table tr td.range.today.disabled:hover[disabled]:focus,.datepicker table tr td.range.today.disabled:hover[disabled]:hover,.datepicker table tr td.range.today.disabled[disabled],.datepicker table tr td.range.today.disabled[disabled].active,.datepicker table tr td.range.today.disabled[disabled]:active,.datepicker table tr td.range.today.disabled[disabled]:focus,.datepicker table tr td.range.today.disabled[disabled]:hover,.datepicker table tr td.range.today:hover.disabled,.datepicker table tr td.range.today:hover.disabled.active,.datepicker table tr td.range.today:hover.disabled:active,.datepicker table tr td.range.today:hover.disabled:focus,.datepicker table tr td.range.today:hover.disabled:hover,.datepicker table tr td.range.today:hover[disabled],.datepicker table tr td.range.today:hover[disabled].active,.datepicker table tr td.range.today:hover[disabled]:active,.datepicker table tr td.range.today:hover[disabled]:focus,.datepicker table tr td.range.today:hover[disabled]:hover,.datepicker table tr td.range.today[disabled],.datepicker table tr td.range.today[disabled].active,.datepicker table tr td.range.today[disabled]:active,.datepicker table tr td.range.today[disabled]:focus,.datepicker table tr td.range.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.today,fieldset[disabled] .datepicker table tr td.range.today.active,fieldset[disabled] .datepicker table tr td.range.today.disabled,fieldset[disabled] .datepicker table tr td.range.today.disabled.active,fieldset[disabled] .datepicker table tr td.range.today.disabled:active,fieldset[disabled] .datepicker table tr td.range.today.disabled:focus,fieldset[disabled] .datepicker table tr td.range.today.disabled:hover,fieldset[disabled] .datepicker table tr td.range.today.disabled:hover.active,fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:active,fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:focus,fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:hover,fieldset[disabled] .datepicker table tr td.range.today:active,fieldset[disabled] .datepicker table tr td.range.today:focus,fieldset[disabled] .datepicker table tr td.range.today:hover,fieldset[disabled] .datepicker table tr td.range.today:hover.active,fieldset[disabled] .datepicker table tr td.range.today:hover:active,fieldset[disabled] .datepicker table tr td.range.today:hover:focus,fieldset[disabled] .datepicker table tr td.range.today:hover:hover{background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.selected,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected:hover{color:#fff;background-color:#999;border-color:#555;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:focus,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.disabled:hover:focus,.datepicker table tr td.selected.disabled:hover:hover,.datepicker table tr td.selected:active,.datepicker table tr td.selected:focus,.datepicker table tr td.selected:hover,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected:hover:focus,.datepicker table tr td.selected:hover:hover,.open .dropdown-toggle.datepicker table tr td.selected,.open .dropdown-toggle.datepicker table tr td.selected.disabled,.open .dropdown-toggle.datepicker table tr td.selected.disabled:hover,.open .dropdown-toggle.datepicker table tr td.selected:hover{color:#fff;background-color:#858585;border-color:#373737}.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled.disabled,.datepicker table tr td.selected.disabled.disabled.active,.datepicker table tr td.selected.disabled.disabled:active,.datepicker table tr td.selected.disabled.disabled:focus,.datepicker table tr td.selected.disabled.disabled:hover,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:focus,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover.disabled,.datepicker table tr td.selected.disabled:hover.disabled.active,.datepicker table tr td.selected.disabled:hover.disabled:active,.datepicker table tr td.selected.disabled:hover.disabled:focus,.datepicker table tr td.selected.disabled:hover.disabled:hover,.datepicker table tr td.selected.disabled:hover[disabled],.datepicker table tr td.selected.disabled:hover[disabled].active,.datepicker table tr td.selected.disabled:hover[disabled]:active,.datepicker table tr td.selected.disabled:hover[disabled]:focus,.datepicker table tr td.selected.disabled:hover[disabled]:hover,.datepicker table tr td.selected.disabled[disabled],.datepicker table tr td.selected.disabled[disabled].active,.datepicker table tr td.selected.disabled[disabled]:active,.datepicker table tr td.selected.disabled[disabled]:focus,.datepicker table tr td.selected.disabled[disabled]:hover,.datepicker table tr td.selected:hover.disabled,.datepicker table tr td.selected:hover.disabled.active,.datepicker table tr td.selected:hover.disabled:active,.datepicker table tr td.selected:hover.disabled:focus,.datepicker table tr td.selected:hover.disabled:hover,.datepicker table tr td.selected:hover[disabled],.datepicker table tr td.selected:hover[disabled].active,.datepicker table tr td.selected:hover[disabled]:active,.datepicker table tr td.selected:hover[disabled]:focus,.datepicker table tr td.selected:hover[disabled]:hover,.datepicker table tr td.selected[disabled],.datepicker table tr td.selected[disabled].active,.datepicker table tr td.selected[disabled]:active,.datepicker table tr td.selected[disabled]:focus,.datepicker table tr td.selected[disabled]:hover,fieldset[disabled] .datepicker table tr td.selected,fieldset[disabled] .datepicker table tr td.selected.active,fieldset[disabled] .datepicker table tr td.selected.disabled,fieldset[disabled] .datepicker table tr td.selected.disabled.active,fieldset[disabled] .datepicker table tr td.selected.disabled:active,fieldset[disabled] .datepicker table tr td.selected.disabled:focus,fieldset[disabled] .datepicker table tr td.selected.disabled:hover,fieldset[disabled] .datepicker table tr td.selected.disabled:hover.active,fieldset[disabled] .datepicker table tr td.selected.disabled:hover:active,fieldset[disabled] .datepicker table tr td.selected.disabled:hover:focus,fieldset[disabled] .datepicker table tr td.selected.disabled:hover:hover,fieldset[disabled] .datepicker table tr td.selected:active,fieldset[disabled] .datepicker table tr td.selected:focus,fieldset[disabled] .datepicker table tr td.selected:hover,fieldset[disabled] .datepicker table tr td.selected:hover.active,fieldset[disabled] .datepicker table tr td.selected:hover:active,fieldset[disabled] .datepicker table tr td.selected:hover:focus,fieldset[disabled] .datepicker table tr td.selected:hover:hover{background-color:#999;border-color:#555}.datepicker table tr td.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active:hover{color:#fff;background-color:#428bca;border-color:#357ebd;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:focus,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:focus,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active:active,.datepicker table tr td.active:focus,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:focus,.datepicker table tr td.active:hover:hover,.open .dropdown-toggle.datepicker table tr td.active,.open .dropdown-toggle.datepicker table tr td.active.disabled,.open .dropdown-toggle.datepicker table tr td.active.disabled:hover,.open .dropdown-toggle.datepicker table tr td.active:hover{color:#fff;background-color:rgba(190,190,190,.76);border-color:rgba(190,190,190,.76)}.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled.disabled,.datepicker table tr td.active.disabled.disabled.active,.datepicker table tr td.active.disabled.disabled:active,.datepicker table tr td.active.disabled.disabled:focus,.datepicker table tr td.active.disabled.disabled:hover,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:focus,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.disabled,.datepicker table tr td.active.disabled:hover.disabled.active,.datepicker table tr td.active.disabled:hover.disabled:active,.datepicker table tr td.active.disabled:hover.disabled:focus,.datepicker table tr td.active.disabled:hover.disabled:hover,.datepicker table tr td.active.disabled:hover[disabled],.datepicker table tr td.active.disabled:hover[disabled].active,.datepicker table tr td.active.disabled:hover[disabled]:active,.datepicker table tr td.active.disabled:hover[disabled]:focus,.datepicker table tr td.active.disabled:hover[disabled]:hover,.datepicker table tr td.active.disabled[disabled],.datepicker table tr td.active.disabled[disabled].active,.datepicker table tr td.active.disabled[disabled]:active,.datepicker table tr td.active.disabled[disabled]:focus,.datepicker table tr td.active.disabled[disabled]:hover,.datepicker table tr td.active:hover.disabled,.datepicker table tr td.active:hover.disabled.active,.datepicker table tr td.active:hover.disabled:active,.datepicker table tr td.active:hover.disabled:focus,.datepicker table tr td.active:hover.disabled:hover,.datepicker table tr td.active:hover[disabled],.datepicker table tr td.active:hover[disabled].active,.datepicker table tr td.active:hover[disabled]:active,.datepicker table tr td.active:hover[disabled]:focus,.datepicker table tr td.active:hover[disabled]:hover,.datepicker table tr td.active[disabled],.datepicker table tr td.active[disabled].active,.datepicker table tr td.active[disabled]:active,.datepicker table tr td.active[disabled]:focus,.datepicker table tr td.active[disabled]:hover,fieldset[disabled] .datepicker table tr td.active,fieldset[disabled] .datepicker table tr td.active.active,fieldset[disabled] .datepicker table tr td.active.disabled,fieldset[disabled] .datepicker table tr td.active.disabled.active,fieldset[disabled] .datepicker table tr td.active.disabled:active,fieldset[disabled] .datepicker table tr td.active.disabled:focus,fieldset[disabled] .datepicker table tr td.active.disabled:hover,fieldset[disabled] .datepicker table tr td.active.disabled:hover.active,fieldset[disabled] .datepicker table tr td.active.disabled:hover:active,fieldset[disabled] .datepicker table tr td.active.disabled:hover:focus,fieldset[disabled] .datepicker table tr td.active.disabled:hover:hover,fieldset[disabled] .datepicker table tr td.active:active,fieldset[disabled] .datepicker table tr td.active:focus,fieldset[disabled] .datepicker table tr td.active:hover,fieldset[disabled] .datepicker table tr td.active:hover.active,fieldset[disabled] .datepicker table tr td.active:hover:active,fieldset[disabled] .datepicker table tr td.active:hover:focus,fieldset[disabled] .datepicker table tr td.active:hover:hover{background-color:#428bca;border-color:#357ebd}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;border-radius:4px}.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{color:#fff;background-color:#428bca;border-color:#357ebd;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:focus,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:active,.datepicker table tr td span.active:focus,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:focus,.datepicker table tr td span.active:hover:hover,.open .dropdown-toggle.datepicker table tr td span.active,.open .dropdown-toggle.datepicker table tr td span.active.disabled,.open .dropdown-toggle.datepicker table tr td span.active.disabled:hover,.open .dropdown-toggle.datepicker table tr td span.active:hover{color:#fff;background-color:rgba(190,190,190,.76);border-color:rgba(190,190,190,.76)}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active,.open .dropdown-toggle.datepicker table tr td span.active,.open .dropdown-toggle.datepicker table tr td span.active.disabled,.open .dropdown-toggle.datepicker table tr td span.active.disabled:hover,.open .dropdown-toggle.datepicker table tr td span.active:hover{background-image:none}.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled.disabled,.datepicker table tr td span.active.disabled.disabled.active,.datepicker table tr td span.active.disabled.disabled:active,.datepicker table tr td span.active.disabled.disabled:focus,.datepicker table tr td span.active.disabled.disabled:hover,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.disabled,.datepicker table tr td span.active.disabled:hover.disabled.active,.datepicker table tr td span.active.disabled:hover.disabled:active,.datepicker table tr td span.active.disabled:hover.disabled:focus,.datepicker table tr td span.active.disabled:hover.disabled:hover,.datepicker table tr td span.active.disabled:hover[disabled],.datepicker table tr td span.active.disabled:hover[disabled].active,.datepicker table tr td span.active.disabled:hover[disabled]:active,.datepicker table tr td span.active.disabled:hover[disabled]:focus,.datepicker table tr td span.active.disabled:hover[disabled]:hover,.datepicker table tr td span.active.disabled[disabled],.datepicker table tr td span.active.disabled[disabled].active,.datepicker table tr td span.active.disabled[disabled]:active,.datepicker table tr td span.active.disabled[disabled]:focus,.datepicker table tr td span.active.disabled[disabled]:hover,.datepicker table tr td span.active:hover.disabled,.datepicker table tr td span.active:hover.disabled.active,.datepicker table tr td span.active:hover.disabled:active,.datepicker table tr td span.active:hover.disabled:focus,.datepicker table tr td span.active:hover.disabled:hover,.datepicker table tr td span.active:hover[disabled],.datepicker table tr td span.active:hover[disabled].active,.datepicker table tr td span.active:hover[disabled]:active,.datepicker table tr td span.active:hover[disabled]:focus,.datepicker table tr td span.active:hover[disabled]:hover,.datepicker table tr td span.active[disabled],.datepicker table tr td span.active[disabled].active,.datepicker table tr td span.active[disabled]:active,.datepicker table tr td span.active[disabled]:focus,.datepicker table tr td span.active[disabled]:hover,fieldset[disabled] .datepicker table tr td span.active,fieldset[disabled] .datepicker table tr td span.active.active,fieldset[disabled] .datepicker table tr td span.active.disabled,fieldset[disabled] .datepicker table tr td span.active.disabled.active,fieldset[disabled] .datepicker table tr td span.active.disabled:active,fieldset[disabled] .datepicker table tr td span.active.disabled:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover,fieldset[disabled] .datepicker table tr td span.active.disabled:hover.active,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:active,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,fieldset[disabled] .datepicker table tr td span.active:active,fieldset[disabled] .datepicker table tr td span.active:focus,fieldset[disabled] .datepicker table tr td span.active:hover,fieldset[disabled] .datepicker table tr td span.active:hover.active,fieldset[disabled] .datepicker table tr td span.active:hover:active,fieldset[disabled] .datepicker table tr td span.active:hover:focus,fieldset[disabled] .datepicker table tr td span.active:hover:hover{background-color:#428bca;border-color:#357ebd}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#999}.datepicker .datepicker-switch{width:145px}.datepicker tfoot tr th,.datepicker thead tr:first-child th{cursor:pointer}.datepicker tfoot tr th:hover,.datepicker thead tr:first-child th:hover{background:#eee}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.datepicker thead tr:first-child .cw{cursor:default;background-color:transparent}.input-group.date .input-group-addon{cursor:pointer}.input-daterange{width:100%}.input-daterange input{text-align:center}.input-daterange input:first-child{border-radius:3px 0 0 3px}.input-daterange input:last-child{border-radius:0 3px 3px 0}.input-daterange .input-group-addon{width:auto;min-width:16px;padding:4px 5px;font-weight:400;line-height:1.42857143;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:solid #ccc;border-width:1px 0;margin-left:-5px;margin-right:-5px}.datepicker td.day{padding:5px!important}.datepicker thead{line-height:2.2;font-size:15px}.datepicker .table-condensed{border:none;width:100%}
|
8 |
-
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInlpa2VzLWluYy1lYXN5LW1haWxjaGltcC1kYXRlcGlja2VyLXN0eWxlcy5taW4uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyx1REFBdUQsV0FBVyxxQkFBcUIsYUFBYSxpQkFBaUIsQ0FBQyxZQUFZLFlBQVksa0JBQWtCLGFBQWEsQ0FBQyxtQkFBbUIsV0FBVyxDQUFDLDJCQUEyQixhQUFhLENBQUMsNENBQTRDLFdBQVcsQ0FBQyxxQkFBcUIsTUFBTSxNQUFNLENBQUMsNEJBQTRCLGtDQUFrQyxtQ0FBbUMsNkJBQTZCLGtDQUFrQyxDQUFDLDJCQUEyQixrQ0FBa0MsbUNBQW1DLDRCQUE0QixDQUFDLG1EQUFtRCxRQUFRLENBQUMsa0RBQWtELFFBQVEsQ0FBQyxvREFBb0QsU0FBUyxDQUFDLG1EQUFtRCxTQUFTLENBQUMsa0RBQWtELFFBQVEsQ0FBQyxpREFBaUQsUUFBUSxDQUFDLHFEQUFxRCxZQUFZLGdCQUFnQix5QkFBeUIsQ0FBQyxvREFBb0QsWUFBWSxnQkFBZ0IseUJBQXlCLENBQUMsZ0JBQWdCLFlBQVksQ0FBQyw0R0FBNEcsYUFBYSxDQUFDLGtCQUFrQixTQUFTLDJCQUEyQix5QkFBeUIsd0JBQXdCLHNCQUFzQixxQkFBcUIsZ0JBQWdCLENBQUMsZ0RBQWdELGtCQUFrQixXQUFXLFlBQVksa0JBQWtCLFdBQVcsQ0FBQyw4RUFBOEUsNEJBQTRCLENBQUMsc0VBQXNFLGdCQUFnQixjQUFjLENBQUMsd0RBQXdELFVBQVUsQ0FBQyx3RUFBd0UsZUFBZSxXQUFXLGNBQWMsQ0FBQyxzSkFBc0osV0FBVyx5QkFBeUIsb0JBQW9CLENBQUMsODZCQUE4NkIsV0FBVyx5QkFBeUIsb0JBQW9CLENBQUMsa2xCQUFrbEIscUJBQXFCLENBQUMsbW9HQUFtb0cseUJBQXlCLG9CQUFvQixDQUFDLDBDQUEwQyxVQUFVLENBQUMsMkNBQTJDLFVBQVUsQ0FBQyxzSkFBc0osZ0JBQWdCLGVBQWUsQ0FBQyw4MkRBQTgyRCxxQkFBcUIsQ0FBQyw4S0FBOEssV0FBVyx5QkFBeUIscUJBQXFCLGVBQWUsQ0FBQyxzaUNBQXNpQyxXQUFXLHlCQUF5QixvQkFBb0IsQ0FBQywrOUdBQSs5Ryx5QkFBeUIsb0JBQW9CLENBQUMsa0tBQWtLLFdBQVcsc0JBQXNCLGtCQUFrQixvQ0FBb0MsQ0FBQywwK0JBQTArQixXQUFXLHlCQUF5QixvQkFBb0IsQ0FBQyxpekdBQWl6RyxzQkFBc0IsaUJBQWlCLENBQUMsMEpBQTBKLFdBQVcseUJBQXlCLHFCQUFxQixvQ0FBb0MsQ0FBQyxrOEJBQWs4QixXQUFXLHVDQUF1QyxrQ0FBa0MsQ0FBQyw2ckdBQTZyRyx5QkFBeUIsb0JBQW9CLENBQUMsNkJBQTZCLGNBQWMsVUFBVSxZQUFZLGlCQUFpQixXQUFXLFVBQVUsZUFBZSxpQkFBaUIsQ0FBQyxtQ0FBbUMsZUFBZSxDQUFDLGtGQUFrRixlQUFlLFdBQVcsY0FBYyxDQUFDLDhLQUE4SyxXQUFXLHlCQUF5QixxQkFBcUIsb0NBQW9DLENBQUMsc2lDQUFzaUMsV0FBVyx1Q0FBdUMsa0NBQWtDLENBQUMsMHBCQUEwcEIscUJBQXFCLENBQUMsKzlHQUErOUcseUJBQXlCLG9CQUFvQixDQUFDLGtFQUFrRSxVQUFVLENBQUMsK0JBQStCLFdBQVcsQ0FBQyw0REFBNEQsY0FBYyxDQUFDLHdFQUF3RSxlQUFlLENBQUMsZ0JBQWdCLGVBQWUsV0FBVyxvQkFBb0IscUJBQXFCLENBQUMscUNBQXFDLGVBQWUsNEJBQTRCLENBQUMscUNBQXFDLGNBQWMsQ0FBQyxpQkFBaUIsVUFBVSxDQUFDLHVCQUF1QixpQkFBaUIsQ0FBQyxtQ0FBbUMseUJBQXlCLENBQUMsa0NBQWtDLHlCQUF5QixDQUFDLG9DQUFvQyxXQUFXLGVBQWUsZ0JBQWdCLGdCQUFnQix1QkFBdUIsa0JBQWtCLHlCQUF5QixzQkFBc0Isc0JBQXNCLGtCQUFrQixtQkFBbUIsaUJBQWlCLGlCQUFpQixDQUFDLG1CQUFtQixxQkFBcUIsQ0FBQyxrQkFBa0IsZ0JBQWdCLGNBQWMsQ0FBQyw2QkFBNkIsWUFBWSxVQUFVLENBQUMiLCJmaWxlIjoieWlrZXMtaW5jLWVhc3ktbWFpbGNoaW1wLWRhdGVwaWNrZXItc3R5bGVzLm1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcclxuICogRGF0ZXBpY2tlciBmb3IgQm9vdHN0cmFwIHYxLjQuMCAoaHR0cHM6Ly9naXRodWIuY29tL2V0ZXJuaWNvZGUvYm9vdHN0cmFwLWRhdGVwaWNrZXIpXHJcbiAqXHJcbiAqIENvcHlyaWdodCAyMDEyIFN0ZWZhbiBQZXRyZVxyXG4gKiBJbXByb3ZlbWVudHMgYnkgQW5kcmV3IFJvd2xzXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIChodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApXHJcbiAqLy5kYXRlcGlja2VyLWRyb3Bkb3duOmFmdGVyLC5kYXRlcGlja2VyLWRyb3Bkb3duOmJlZm9yZXtjb250ZW50OicnO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlci10b3A6MDtwb3NpdGlvbjphYnNvbHV0ZX0uZGF0ZXBpY2tlcntwYWRkaW5nOjRweDtib3JkZXItcmFkaXVzOjRweDtkaXJlY3Rpb246bHRyfS5kYXRlcGlja2VyLWlubGluZXt3aWR0aDoyMjBweH0uZGF0ZXBpY2tlci5kYXRlcGlja2VyLXJ0bHtkaXJlY3Rpb246cnRsfS5kYXRlcGlja2VyLmRhdGVwaWNrZXItcnRsIHRhYmxlIHRyIHRkIHNwYW57ZmxvYXQ6cmlnaHR9LmRhdGVwaWNrZXItZHJvcGRvd257dG9wOjA7bGVmdDowfS5kYXRlcGlja2VyLWRyb3Bkb3duOmJlZm9yZXtib3JkZXItbGVmdDo3cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjdweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjdweCBzb2xpZCAjY2NjO2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgwLDAsMCwuMil9LmRhdGVwaWNrZXItZHJvcGRvd246YWZ0ZXJ7Ym9yZGVyLWxlZnQ6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo2cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo2cHggc29saWQgI2ZmZn0uZGF0ZXBpY2tlci1kcm9wZG93bi5kYXRlcGlja2VyLW9yaWVudC1sZWZ0OmJlZm9yZXtsZWZ0OjZweH0uZGF0ZXBpY2tlci1kcm9wZG93bi5kYXRlcGlja2VyLW9yaWVudC1sZWZ0OmFmdGVye2xlZnQ6N3B4fS5kYXRlcGlja2VyLWRyb3Bkb3duLmRhdGVwaWNrZXItb3JpZW50LXJpZ2h0OmJlZm9yZXtyaWdodDo2cHh9LmRhdGVwaWNrZXItZHJvcGRvd24uZGF0ZXBpY2tlci1vcmllbnQtcmlnaHQ6YWZ0ZXJ7cmlnaHQ6N3B4fS5kYXRlcGlja2VyLWRyb3Bkb3duLmRhdGVwaWNrZXItb3JpZW50LXRvcDpiZWZvcmV7dG9wOi03cHh9LmRhdGVwaWNrZXItZHJvcGRvd24uZGF0ZXBpY2tlci1vcmllbnQtdG9wOmFmdGVye3RvcDotNnB4fS5kYXRlcGlja2VyLWRyb3Bkb3duLmRhdGVwaWNrZXItb3JpZW50LWJvdHRvbTpiZWZvcmV7Ym90dG9tOi03cHg7Ym9yZGVyLWJvdHRvbTowO2JvcmRlci10b3A6N3B4IHNvbGlkICM5OTl9LmRhdGVwaWNrZXItZHJvcGRvd24uZGF0ZXBpY2tlci1vcmllbnQtYm90dG9tOmFmdGVye2JvdHRvbTotNnB4O2JvcmRlci1ib3R0b206MDtib3JkZXItdG9wOjZweCBzb2xpZCAjZmZmfS5kYXRlcGlja2VyPmRpdntkaXNwbGF5Om5vbmV9LmRhdGVwaWNrZXIuZGF5cyAuZGF0ZXBpY2tlci1kYXlzLC5kYXRlcGlja2VyLm1vbnRocyAuZGF0ZXBpY2tlci1tb250aHMsLmRhdGVwaWNrZXIueWVhcnMgLmRhdGVwaWNrZXIteWVhcnN7ZGlzcGxheTpibG9ja30uZGF0ZXBpY2tlciB0YWJsZXttYXJnaW46MDstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LWtodG1sLXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LmRhdGVwaWNrZXIgdGFibGUgdHIgdGQsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGh7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtib3JkZXItcmFkaXVzOjRweDtib3JkZXI6bm9uZX0udGFibGUtc3RyaXBlZCAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCwudGFibGUtc3RyaXBlZCAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0aHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmRheS5mb2N1c2VkLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmRheTpob3ZlcntiYWNrZ3JvdW5kOiNlZWU7Y3Vyc29yOnBvaW50ZXJ9LmRhdGVwaWNrZXIgdGFibGUgdHIgdGQubmV3LC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLm9sZHtjb2xvcjojOTk5fS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmRpc2FibGVkLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmRpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6MCAwO2NvbG9yOiM5OTk7Y3Vyc29yOmRlZmF1bHR9LmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXksLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQ6aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXJ7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmRiOTk7Ym9yZGVyLWNvbG9yOiNmZmI3MzN9LmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQ6Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQ6aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQ6aG92ZXIuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkOmhvdmVyOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDpob3Zlcjpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDpob3Zlcjpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheTphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXIuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5OmhvdmVyOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheTpob3Zlcjpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheTpob3Zlcjpob3Zlciwub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXksLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkLC5vcGVuIC5kcm9wZG93bi10b2dnbGUuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDpob3Zlciwub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXJ7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmNkNzA7Ym9yZGVyLWNvbG9yOiNmNTllMDB9LmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQ6aG92ZXIuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkOmhvdmVyOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheTphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXIuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5OmhvdmVyOmFjdGl2ZSwub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXksLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkLC5vcGVuIC5kcm9wZG93bi10b2dnbGUuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDpob3Zlciwub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXJ7YmFja2dyb3VuZC1pbWFnZTpub25lfS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZC5kaXNhYmxlZCwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZC5kaXNhYmxlZC5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQuZGlzYWJsZWQ6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkLmRpc2FibGVkOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkLmRpc2FibGVkOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDpob3Zlci5kaXNhYmxlZCwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDpob3Zlci5kaXNhYmxlZC5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQ6aG92ZXIuZGlzYWJsZWQ6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkOmhvdmVyLmRpc2FibGVkOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkOmhvdmVyLmRpc2FibGVkOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkOmhvdmVyW2Rpc2FibGVkXSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDpob3ZlcltkaXNhYmxlZF0uYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkOmhvdmVyW2Rpc2FibGVkXTphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQ6aG92ZXJbZGlzYWJsZWRdOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkOmhvdmVyW2Rpc2FibGVkXTpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZFtkaXNhYmxlZF0sLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWRbZGlzYWJsZWRdLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZFtkaXNhYmxlZF06YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkW2Rpc2FibGVkXTpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZFtkaXNhYmxlZF06aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXIuZGlzYWJsZWQsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXIuZGlzYWJsZWQuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5OmhvdmVyLmRpc2FibGVkOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheTpob3Zlci5kaXNhYmxlZDpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheTpob3Zlci5kaXNhYmxlZDpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheTpob3ZlcltkaXNhYmxlZF0sLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXJbZGlzYWJsZWRdLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheTpob3ZlcltkaXNhYmxlZF06YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5OmhvdmVyW2Rpc2FibGVkXTpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheTpob3ZlcltkaXNhYmxlZF06aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXlbZGlzYWJsZWRdLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5W2Rpc2FibGVkXS5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXlbZGlzYWJsZWRdOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheVtkaXNhYmxlZF06Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXlbZGlzYWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheSxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZCxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQuYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDphY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQ6aG92ZXIuYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDpob3ZlcjphY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkOmhvdmVyOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDpob3Zlcjpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6YWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheTpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5OmhvdmVyLmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXI6YWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheTpob3Zlcjpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZkYjk5O2JvcmRlci1jb2xvcjojZmZiNzMzfS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5OmhvdmVyOmhvdmVye2NvbG9yOiMwMDB9LmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuYWN0aXZlOmhvdmVye2NvbG9yOiNmZmZ9LmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UuZGlzYWJsZWQsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UuZGlzYWJsZWQ6aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2U6aG92ZXJ7YmFja2dyb3VuZDojZWVlO2JvcmRlci1yYWRpdXM6MH0uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZC5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQ6aG92ZXIuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZDpob3ZlcjphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmU6aG92ZXIuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZTpob3ZlcjphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWQ6aG92ZXIuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkOmhvdmVyOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXk6aG92ZXIuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5OmhvdmVyOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZDpob3Zlci5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQ6aG92ZXI6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZDpob3Zlci5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQ6aG92ZXI6YWN0aXZlLC5vcGVuIC5kcm9wZG93bi10b2dnbGUuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUsLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZCwub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkOmhvdmVyLC5vcGVuIC5kcm9wZG93bi10b2dnbGUuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmU6aG92ZXIsLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LC5vcGVuIC5kcm9wZG93bi10b2dnbGUuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZCwub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWQ6aG92ZXIsLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5OmhvdmVyLC5vcGVuIC5kcm9wZG93bi10b2dnbGUuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZCwub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQsLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmhvdmVyLC5vcGVuIC5kcm9wZG93bi10b2dnbGUuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZDpob3ZlcntiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXksLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWQsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWQ6aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXk6aG92ZXJ7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOiNmN2NhNzc7Ym9yZGVyLWNvbG9yOiNmMWE0MTc7Ym9yZGVyLXJhZGl1czowfS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZC5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWQ6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkOmhvdmVyLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDpob3ZlcjphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWQ6aG92ZXI6Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWQ6aG92ZXI6aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXk6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5OmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5OmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5OmhvdmVyLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTpob3ZlcjphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXk6aG92ZXI6Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXk6aG92ZXI6aG92ZXIsLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LC5vcGVuIC5kcm9wZG93bi10b2dnbGUuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZCwub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWQ6aG92ZXIsLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5OmhvdmVye2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojZjRiYjUxO2JvcmRlci1jb2xvcjojYmY4MDBjfS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZC5kaXNhYmxlZCwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZC5kaXNhYmxlZC5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWQuZGlzYWJsZWQ6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkLmRpc2FibGVkOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkLmRpc2FibGVkOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDpob3Zlci5kaXNhYmxlZCwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDpob3Zlci5kaXNhYmxlZC5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWQ6aG92ZXIuZGlzYWJsZWQ6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkOmhvdmVyLmRpc2FibGVkOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkOmhvdmVyLmRpc2FibGVkOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkOmhvdmVyW2Rpc2FibGVkXSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDpob3ZlcltkaXNhYmxlZF0uYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkOmhvdmVyW2Rpc2FibGVkXTphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWQ6aG92ZXJbZGlzYWJsZWRdOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkOmhvdmVyW2Rpc2FibGVkXTpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZFtkaXNhYmxlZF0sLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWRbZGlzYWJsZWRdLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZFtkaXNhYmxlZF06YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkW2Rpc2FibGVkXTpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZFtkaXNhYmxlZF06aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXk6aG92ZXIuZGlzYWJsZWQsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXk6aG92ZXIuZGlzYWJsZWQuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5OmhvdmVyLmRpc2FibGVkOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTpob3Zlci5kaXNhYmxlZDpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTpob3Zlci5kaXNhYmxlZDpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTpob3ZlcltkaXNhYmxlZF0sLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXk6aG92ZXJbZGlzYWJsZWRdLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTpob3ZlcltkaXNhYmxlZF06YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5OmhvdmVyW2Rpc2FibGVkXTpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTpob3ZlcltkaXNhYmxlZF06aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXlbZGlzYWJsZWRdLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5W2Rpc2FibGVkXS5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXlbZGlzYWJsZWRdOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheVtkaXNhYmxlZF06Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXlbZGlzYWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheSxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZCxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWQuYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDphY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWQ6aG92ZXIuYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDpob3ZlcjphY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkOmhvdmVyOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDpob3Zlcjpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXk6YWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXk6aG92ZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5OmhvdmVyLmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXk6aG92ZXI6YWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTpob3Zlcjpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXk6aG92ZXI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjdjYTc3O2JvcmRlci1jb2xvcjojZjFhNDE3fS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojOTk5O2JvcmRlci1jb2xvcjojNTU1O3RleHQtc2hhZG93OjAgLTFweCAwIHJnYmEoMCwwLDAsLjI1KX0uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZDpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZDpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZDpob3Zlci5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQ6aG92ZXI6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmhvdmVyOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmhvdmVyOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZDpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZDpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZDpob3Zlci5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQ6aG92ZXI6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmhvdmVyOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmhvdmVyOmhvdmVyLC5vcGVuIC5kcm9wZG93bi10b2dnbGUuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZCwub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQsLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmhvdmVyLC5vcGVuIC5kcm9wZG93bi10b2dnbGUuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZDpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6Izg1ODU4NTtib3JkZXItY29sb3I6IzM3MzczN30uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZCwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZC5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQuZGlzYWJsZWQsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQuZGlzYWJsZWQuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkLmRpc2FibGVkOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZC5kaXNhYmxlZDpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZC5kaXNhYmxlZDpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZDphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQ6Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQ6aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQ6aG92ZXIuZGlzYWJsZWQsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQ6aG92ZXIuZGlzYWJsZWQuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmhvdmVyLmRpc2FibGVkOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZDpob3Zlci5kaXNhYmxlZDpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZDpob3Zlci5kaXNhYmxlZDpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZDpob3ZlcltkaXNhYmxlZF0sLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQ6aG92ZXJbZGlzYWJsZWRdLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZDpob3ZlcltkaXNhYmxlZF06YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmhvdmVyW2Rpc2FibGVkXTpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZDpob3ZlcltkaXNhYmxlZF06aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWRbZGlzYWJsZWRdLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkW2Rpc2FibGVkXS5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWRbZGlzYWJsZWRdOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZFtkaXNhYmxlZF06Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWRbZGlzYWJsZWRdOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmhvdmVyLmRpc2FibGVkLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmhvdmVyLmRpc2FibGVkLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZDpob3Zlci5kaXNhYmxlZDphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQ6aG92ZXIuZGlzYWJsZWQ6Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQ6aG92ZXIuZGlzYWJsZWQ6aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQ6aG92ZXJbZGlzYWJsZWRdLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmhvdmVyW2Rpc2FibGVkXS5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQ6aG92ZXJbZGlzYWJsZWRdOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZDpob3ZlcltkaXNhYmxlZF06Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQ6aG92ZXJbZGlzYWJsZWRdOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkW2Rpc2FibGVkXSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZFtkaXNhYmxlZF0uYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkW2Rpc2FibGVkXTphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWRbZGlzYWJsZWRdOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkW2Rpc2FibGVkXTpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkLmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQ6YWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZDpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQ6aG92ZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmhvdmVyLmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQ6aG92ZXI6YWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZDpob3Zlcjpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQ6aG92ZXI6aG92ZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQ6Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZDpob3Zlci5hY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmhvdmVyOmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQ6aG92ZXI6Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmhvdmVyOmhvdmVye2JhY2tncm91bmQtY29sb3I6Izk5OTtib3JkZXItY29sb3I6IzU1NX0uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZDpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmU6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM0MjhiY2E7Ym9yZGVyLWNvbG9yOiMzNTdlYmQ7dGV4dC1zaGFkb3c6MCAtMXB4IDAgcmdiYSgwLDAsMCwuMjUpfS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQ6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZDpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQ6aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkOmhvdmVyLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQ6aG92ZXI6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZDpob3Zlcjpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQ6aG92ZXI6aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmU6Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZTpob3Zlci5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlOmhvdmVyOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmU6aG92ZXI6Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlOmhvdmVyOmhvdmVyLC5vcGVuIC5kcm9wZG93bi10b2dnbGUuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUsLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZCwub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkOmhvdmVyLC5vcGVuIC5kcm9wZG93bi10b2dnbGUuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmU6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTkwLDE5MCwxOTAsLjc2KTtib3JkZXItY29sb3I6cmdiYSgxOTAsMTkwLDE5MCwuNzYpfS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZCwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZC5kaXNhYmxlZCwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQuZGlzYWJsZWQuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZC5kaXNhYmxlZDphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkLmRpc2FibGVkOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZC5kaXNhYmxlZDpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQ6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZDpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQ6aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkOmhvdmVyLmRpc2FibGVkLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZDpob3Zlci5kaXNhYmxlZC5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkOmhvdmVyLmRpc2FibGVkOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQ6aG92ZXIuZGlzYWJsZWQ6Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkOmhvdmVyLmRpc2FibGVkOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZDpob3ZlcltkaXNhYmxlZF0sLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkOmhvdmVyW2Rpc2FibGVkXS5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkOmhvdmVyW2Rpc2FibGVkXTphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkOmhvdmVyW2Rpc2FibGVkXTpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQ6aG92ZXJbZGlzYWJsZWRdOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZFtkaXNhYmxlZF0sLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkW2Rpc2FibGVkXS5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkW2Rpc2FibGVkXTphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkW2Rpc2FibGVkXTpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWRbZGlzYWJsZWRdOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZTpob3Zlci5kaXNhYmxlZCwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmU6aG92ZXIuZGlzYWJsZWQuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZTpob3Zlci5kaXNhYmxlZDphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlOmhvdmVyLmRpc2FibGVkOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZTpob3Zlci5kaXNhYmxlZDpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmU6aG92ZXJbZGlzYWJsZWRdLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZTpob3ZlcltkaXNhYmxlZF0uYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZTpob3ZlcltkaXNhYmxlZF06YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZTpob3ZlcltkaXNhYmxlZF06Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlOmhvdmVyW2Rpc2FibGVkXTpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmVbZGlzYWJsZWRdLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZVtkaXNhYmxlZF0uYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZVtkaXNhYmxlZF06YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZVtkaXNhYmxlZF06Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlW2Rpc2FibGVkXTpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZC5hY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZDphY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZDpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQ6aG92ZXIuYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQ6aG92ZXI6YWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQ6aG92ZXI6Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZDpob3Zlcjpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlOmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmU6aG92ZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZTpob3Zlci5hY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZTpob3ZlcjphY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZTpob3Zlcjpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlOmhvdmVyOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzQyOGJjYTtib3JkZXItY29sb3I6IzM1N2ViZH0uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MjMlO2hlaWdodDo1NHB4O2xpbmUtaGVpZ2h0OjU0cHg7ZmxvYXQ6bGVmdDttYXJnaW46MSU7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLXJhZGl1czo0cHh9LmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbjpob3ZlcntiYWNrZ3JvdW5kOiNlZWV9LmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5kaXNhYmxlZCwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmRpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6MCAwO2NvbG9yOiM5OTk7Y3Vyc29yOmRlZmF1bHR9LmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQ6aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmU6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM0MjhiY2E7Ym9yZGVyLWNvbG9yOiMzNTdlYmQ7dGV4dC1zaGFkb3c6MCAtMXB4IDAgcmdiYSgwLDAsMCwuMjUpfS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZS5kaXNhYmxlZC5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQ6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmhvdmVyLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZS5kaXNhYmxlZDpob3ZlcjphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQ6aG92ZXI6Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQ6aG92ZXI6aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmU6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmhvdmVyLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZTpob3ZlcjphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmU6aG92ZXI6Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmU6aG92ZXI6aG92ZXIsLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLC5vcGVuIC5kcm9wZG93bi10b2dnbGUuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZS5kaXNhYmxlZCwub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQ6aG92ZXIsLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE5MCwxOTAsMTkwLC43Nik7Ym9yZGVyLWNvbG9yOnJnYmEoMTkwLDE5MCwxOTAsLjc2KX0uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZS5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZS5kaXNhYmxlZDpob3Zlci5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQ6aG92ZXI6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZTpob3Zlci5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmU6aG92ZXI6YWN0aXZlLC5vcGVuIC5kcm9wZG93bi10b2dnbGUuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZSwub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQsLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZS5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmhvdmVyLC5vcGVuIC5kcm9wZG93bi10b2dnbGUuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQuYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkLmRpc2FibGVkLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkLmRpc2FibGVkLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZS5kaXNhYmxlZC5kaXNhYmxlZDphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQuZGlzYWJsZWQ6Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQuZGlzYWJsZWQ6aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQ6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmhvdmVyLmRpc2FibGVkLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmhvdmVyLmRpc2FibGVkLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZS5kaXNhYmxlZDpob3Zlci5kaXNhYmxlZDphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQ6aG92ZXIuZGlzYWJsZWQ6Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQ6aG92ZXIuZGlzYWJsZWQ6aG92ZXIsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQ6aG92ZXJbZGlzYWJsZWRdLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmhvdmVyW2Rpc2FibGVkXS5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQ6aG92ZXJbZGlzYWJsZWRdOmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZS5kaXNhYmxlZDpob3ZlcltkaXNhYmxlZF06Zm9jdXMsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQ6aG92ZXJbZGlzYWJsZWRdOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkW2Rpc2FibGVkXSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZS5kaXNhYmxlZFtkaXNhYmxlZF0uYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkW2Rpc2FibGVkXTphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWRbZGlzYWJsZWRdOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkW2Rpc2FibGVkXTpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZTpob3Zlci5kaXNhYmxlZCwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZTpob3Zlci5kaXNhYmxlZC5hY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmU6aG92ZXIuZGlzYWJsZWQ6YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmhvdmVyLmRpc2FibGVkOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmhvdmVyLmRpc2FibGVkOmhvdmVyLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmhvdmVyW2Rpc2FibGVkXSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZTpob3ZlcltkaXNhYmxlZF0uYWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmhvdmVyW2Rpc2FibGVkXTphY3RpdmUsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmU6aG92ZXJbZGlzYWJsZWRdOmZvY3VzLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmhvdmVyW2Rpc2FibGVkXTpob3ZlciwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZVtkaXNhYmxlZF0sLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmVbZGlzYWJsZWRdLmFjdGl2ZSwuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZVtkaXNhYmxlZF06YWN0aXZlLC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlW2Rpc2FibGVkXTpmb2N1cywuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZVtkaXNhYmxlZF06aG92ZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZS5hY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZS5kaXNhYmxlZC5hY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQ6Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZS5kaXNhYmxlZDpob3Zlci5hY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmhvdmVyOmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQ6aG92ZXI6Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmhvdmVyOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZTphY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZTpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmU6aG92ZXIuYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZTpob3ZlcjphY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmhvdmVyOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZTpob3Zlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM0MjhiY2E7Ym9yZGVyLWNvbG9yOiMzNTdlYmR9LmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5uZXcsLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5vbGR7Y29sb3I6Izk5OX0uZGF0ZXBpY2tlciAuZGF0ZXBpY2tlci1zd2l0Y2h7d2lkdGg6MTQ1cHh9LmRhdGVwaWNrZXIgdGZvb3QgdHIgdGgsLmRhdGVwaWNrZXIgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGh7Y3Vyc29yOnBvaW50ZXJ9LmRhdGVwaWNrZXIgdGZvb3QgdHIgdGg6aG92ZXIsLmRhdGVwaWNrZXIgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGg6aG92ZXJ7YmFja2dyb3VuZDojZWVlfS5kYXRlcGlja2VyIC5jd3tmb250LXNpemU6MTBweDt3aWR0aDoxMnB4O3BhZGRpbmc6MCAycHggMCA1cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5kYXRlcGlja2VyIHRoZWFkIHRyOmZpcnN0LWNoaWxkIC5jd3tjdXJzb3I6ZGVmYXVsdDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5pbnB1dC1ncm91cC5kYXRlIC5pbnB1dC1ncm91cC1hZGRvbntjdXJzb3I6cG9pbnRlcn0uaW5wdXQtZGF0ZXJhbmdle3dpZHRoOjEwMCV9LmlucHV0LWRhdGVyYW5nZSBpbnB1dHt0ZXh0LWFsaWduOmNlbnRlcn0uaW5wdXQtZGF0ZXJhbmdlIGlucHV0OmZpcnN0LWNoaWxke2JvcmRlci1yYWRpdXM6M3B4IDAgMCAzcHh9LmlucHV0LWRhdGVyYW5nZSBpbnB1dDpsYXN0LWNoaWxke2JvcmRlci1yYWRpdXM6MCAzcHggM3B4IDB9LmlucHV0LWRhdGVyYW5nZSAuaW5wdXQtZ3JvdXAtYWRkb257d2lkdGg6YXV0bzttaW4td2lkdGg6MTZweDtwYWRkaW5nOjRweCA1cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC1zaGFkb3c6MCAxcHggMCAjZmZmO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7Ym9yZGVyOnNvbGlkICNjY2M7Ym9yZGVyLXdpZHRoOjFweCAwO21hcmdpbi1sZWZ0Oi01cHg7bWFyZ2luLXJpZ2h0Oi01cHh9LmRhdGVwaWNrZXIgdGQuZGF5e3BhZGRpbmc6NXB4IWltcG9ydGFudH0uZGF0ZXBpY2tlciB0aGVhZHtsaW5lLWhlaWdodDoyLjI7Zm9udC1zaXplOjE1cHh9LmRhdGVwaWNrZXIgLnRhYmxlLWNvbmRlbnNlZHtib3JkZXI6bm9uZTt3aWR0aDoxMDAlfSJdfQ== */
|
4 |
* Copyright 2012 Stefan Petre
|
5 |
* Improvements by Andrew Rowls
|
6 |
* Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
|
7 |
+
*/.datepicker-dropdown:after,.datepicker-dropdown:before{content:'';display:inline-block;border-top:0;position:absolute}.datepicker{padding:4px;border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker.datepicker-rtl{direction:rtl}.datepicker.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0}.datepicker-dropdown:before{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,.2)}.datepicker-dropdown:after{border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-top:before{top:-7px}.datepicker-dropdown.datepicker-orient-top:after{top:-6px}.datepicker-dropdown.datepicker-orient-bottom:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.datepicker-dropdown.datepicker-orient-bottom:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker>div{display:none}.datepicker.days .datepicker-days,.datepicker.months .datepicker-months,.datepicker.years .datepicker-years{display:block}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker table tr td,.datepicker table tr th{text-align:center;width:30px;height:30px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.day.focused,.datepicker table tr td.day:hover{background:#eee;cursor:pointer}.datepicker table tr td.new,.datepicker table tr td.old{color:#999}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td.today,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today:hover{color:#000;background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:focus,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.disabled:hover:focus,.datepicker table tr td.today.disabled:hover:hover,.datepicker table tr td.today:active,.datepicker table tr td.today:focus,.datepicker table tr td.today:hover,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover:active,.datepicker table tr td.today:hover:focus,.datepicker table tr td.today:hover:hover,.open .dropdown-toggle.datepicker table tr td.today,.open .dropdown-toggle.datepicker table tr td.today.disabled,.open .dropdown-toggle.datepicker table tr td.today.disabled:hover,.open .dropdown-toggle.datepicker table tr td.today:hover{color:#000;background-color:#ffcd70;border-color:#f59e00}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today:active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover:active,.open .dropdown-toggle.datepicker table tr td.today,.open .dropdown-toggle.datepicker table tr td.today.disabled,.open .dropdown-toggle.datepicker table tr td.today.disabled:hover,.open .dropdown-toggle.datepicker table tr td.today:hover{background-image:none}.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled.disabled,.datepicker table tr td.today.disabled.disabled.active,.datepicker table tr td.today.disabled.disabled:active,.datepicker table tr td.today.disabled.disabled:focus,.datepicker table tr td.today.disabled.disabled:hover,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:focus,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover.disabled,.datepicker table tr td.today.disabled:hover.disabled.active,.datepicker table tr td.today.disabled:hover.disabled:active,.datepicker table tr td.today.disabled:hover.disabled:focus,.datepicker table tr td.today.disabled:hover.disabled:hover,.datepicker table tr td.today.disabled:hover[disabled],.datepicker table tr td.today.disabled:hover[disabled].active,.datepicker table tr td.today.disabled:hover[disabled]:active,.datepicker table tr td.today.disabled:hover[disabled]:focus,.datepicker table tr td.today.disabled:hover[disabled]:hover,.datepicker table tr td.today.disabled[disabled],.datepicker table tr td.today.disabled[disabled].active,.datepicker table tr td.today.disabled[disabled]:active,.datepicker table tr td.today.disabled[disabled]:focus,.datepicker table tr td.today.disabled[disabled]:hover,.datepicker table tr td.today:hover.disabled,.datepicker table tr td.today:hover.disabled.active,.datepicker table tr td.today:hover.disabled:active,.datepicker table tr td.today:hover.disabled:focus,.datepicker table tr td.today:hover.disabled:hover,.datepicker table tr td.today:hover[disabled],.datepicker table tr td.today:hover[disabled].active,.datepicker table tr td.today:hover[disabled]:active,.datepicker table tr td.today:hover[disabled]:focus,.datepicker table tr td.today:hover[disabled]:hover,.datepicker table tr td.today[disabled],.datepicker table tr td.today[disabled].active,.datepicker table tr td.today[disabled]:active,.datepicker table tr td.today[disabled]:focus,.datepicker table tr td.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.today,fieldset[disabled] .datepicker table tr td.today.active,fieldset[disabled] .datepicker table tr td.today.disabled,fieldset[disabled] .datepicker table tr td.today.disabled.active,fieldset[disabled] .datepicker table tr td.today.disabled:active,fieldset[disabled] .datepicker table tr td.today.disabled:focus,fieldset[disabled] .datepicker table tr td.today.disabled:hover,fieldset[disabled] .datepicker table tr td.today.disabled:hover.active,fieldset[disabled] .datepicker table tr td.today.disabled:hover:active,fieldset[disabled] .datepicker table tr td.today.disabled:hover:focus,fieldset[disabled] .datepicker table tr td.today.disabled:hover:hover,fieldset[disabled] .datepicker table tr td.today:active,fieldset[disabled] .datepicker table tr td.today:focus,fieldset[disabled] .datepicker table tr td.today:hover,fieldset[disabled] .datepicker table tr td.today:hover.active,fieldset[disabled] .datepicker table tr td.today:hover:active,fieldset[disabled] .datepicker table tr td.today:hover:focus,fieldset[disabled] .datepicker table tr td.today:hover:hover{background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today:hover:hover{color:#000}.datepicker table tr td.today.active:hover{color:#fff}.datepicker table tr td.range,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range:hover{background:#eee;border-radius:0}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active:active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active,.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover:active,.open .dropdown-toggle.datepicker table tr td.active,.open .dropdown-toggle.datepicker table tr td.active.disabled,.open .dropdown-toggle.datepicker table tr td.active.disabled:hover,.open .dropdown-toggle.datepicker table tr td.active:hover,.open .dropdown-toggle.datepicker table tr td.range.today,.open .dropdown-toggle.datepicker table tr td.range.today.disabled,.open .dropdown-toggle.datepicker table tr td.range.today.disabled:hover,.open .dropdown-toggle.datepicker table tr td.range.today:hover,.open .dropdown-toggle.datepicker table tr td.selected,.open .dropdown-toggle.datepicker table tr td.selected.disabled,.open .dropdown-toggle.datepicker table tr td.selected.disabled:hover,.open .dropdown-toggle.datepicker table tr td.selected:hover{background-image:none}.datepicker table tr td.range.today,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today:hover{color:#000;background-color:#f7ca77;border-color:#f1a417;border-radius:0}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:focus,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.disabled:hover:focus,.datepicker table tr td.range.today.disabled:hover:hover,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:focus,.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today:hover:focus,.datepicker table tr td.range.today:hover:hover,.open .dropdown-toggle.datepicker table tr td.range.today,.open .dropdown-toggle.datepicker table tr td.range.today.disabled,.open .dropdown-toggle.datepicker table tr td.range.today.disabled:hover,.open .dropdown-toggle.datepicker table tr td.range.today:hover{color:#000;background-color:#f4bb51;border-color:#bf800c}.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled.disabled,.datepicker table tr td.range.today.disabled.disabled.active,.datepicker table tr td.range.today.disabled.disabled:active,.datepicker table tr td.range.today.disabled.disabled:focus,.datepicker table tr td.range.today.disabled.disabled:hover,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:focus,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover.disabled,.datepicker table tr td.range.today.disabled:hover.disabled.active,.datepicker table tr td.range.today.disabled:hover.disabled:active,.datepicker table tr td.range.today.disabled:hover.disabled:focus,.datepicker table tr td.range.today.disabled:hover.disabled:hover,.datepicker table tr td.range.today.disabled:hover[disabled],.datepicker table tr td.range.today.disabled:hover[disabled].active,.datepicker table tr td.range.today.disabled:hover[disabled]:active,.datepicker table tr td.range.today.disabled:hover[disabled]:focus,.datepicker table tr td.range.today.disabled:hover[disabled]:hover,.datepicker table tr td.range.today.disabled[disabled],.datepicker table tr td.range.today.disabled[disabled].active,.datepicker table tr td.range.today.disabled[disabled]:active,.datepicker table tr td.range.today.disabled[disabled]:focus,.datepicker table tr td.range.today.disabled[disabled]:hover,.datepicker table tr td.range.today:hover.disabled,.datepicker table tr td.range.today:hover.disabled.active,.datepicker table tr td.range.today:hover.disabled:active,.datepicker table tr td.range.today:hover.disabled:focus,.datepicker table tr td.range.today:hover.disabled:hover,.datepicker table tr td.range.today:hover[disabled],.datepicker table tr td.range.today:hover[disabled].active,.datepicker table tr td.range.today:hover[disabled]:active,.datepicker table tr td.range.today:hover[disabled]:focus,.datepicker table tr td.range.today:hover[disabled]:hover,.datepicker table tr td.range.today[disabled],.datepicker table tr td.range.today[disabled].active,.datepicker table tr td.range.today[disabled]:active,.datepicker table tr td.range.today[disabled]:focus,.datepicker table tr td.range.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.today,fieldset[disabled] .datepicker table tr td.range.today.active,fieldset[disabled] .datepicker table tr td.range.today.disabled,fieldset[disabled] .datepicker table tr td.range.today.disabled.active,fieldset[disabled] .datepicker table tr td.range.today.disabled:active,fieldset[disabled] .datepicker table tr td.range.today.disabled:focus,fieldset[disabled] .datepicker table tr td.range.today.disabled:hover,fieldset[disabled] .datepicker table tr td.range.today.disabled:hover.active,fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:active,fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:focus,fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:hover,fieldset[disabled] .datepicker table tr td.range.today:active,fieldset[disabled] .datepicker table tr td.range.today:focus,fieldset[disabled] .datepicker table tr td.range.today:hover,fieldset[disabled] .datepicker table tr td.range.today:hover.active,fieldset[disabled] .datepicker table tr td.range.today:hover:active,fieldset[disabled] .datepicker table tr td.range.today:hover:focus,fieldset[disabled] .datepicker table tr td.range.today:hover:hover{background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.selected,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected:hover{color:#fff;background-color:#999;border-color:#555;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:focus,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.disabled:hover:focus,.datepicker table tr td.selected.disabled:hover:hover,.datepicker table tr td.selected:active,.datepicker table tr td.selected:focus,.datepicker table tr td.selected:hover,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected:hover:focus,.datepicker table tr td.selected:hover:hover,.open .dropdown-toggle.datepicker table tr td.selected,.open .dropdown-toggle.datepicker table tr td.selected.disabled,.open .dropdown-toggle.datepicker table tr td.selected.disabled:hover,.open .dropdown-toggle.datepicker table tr td.selected:hover{color:#fff;background-color:#858585;border-color:#373737}.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled.disabled,.datepicker table tr td.selected.disabled.disabled.active,.datepicker table tr td.selected.disabled.disabled:active,.datepicker table tr td.selected.disabled.disabled:focus,.datepicker table tr td.selected.disabled.disabled:hover,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:focus,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover.disabled,.datepicker table tr td.selected.disabled:hover.disabled.active,.datepicker table tr td.selected.disabled:hover.disabled:active,.datepicker table tr td.selected.disabled:hover.disabled:focus,.datepicker table tr td.selected.disabled:hover.disabled:hover,.datepicker table tr td.selected.disabled:hover[disabled],.datepicker table tr td.selected.disabled:hover[disabled].active,.datepicker table tr td.selected.disabled:hover[disabled]:active,.datepicker table tr td.selected.disabled:hover[disabled]:focus,.datepicker table tr td.selected.disabled:hover[disabled]:hover,.datepicker table tr td.selected.disabled[disabled],.datepicker table tr td.selected.disabled[disabled].active,.datepicker table tr td.selected.disabled[disabled]:active,.datepicker table tr td.selected.disabled[disabled]:focus,.datepicker table tr td.selected.disabled[disabled]:hover,.datepicker table tr td.selected:hover.disabled,.datepicker table tr td.selected:hover.disabled.active,.datepicker table tr td.selected:hover.disabled:active,.datepicker table tr td.selected:hover.disabled:focus,.datepicker table tr td.selected:hover.disabled:hover,.datepicker table tr td.selected:hover[disabled],.datepicker table tr td.selected:hover[disabled].active,.datepicker table tr td.selected:hover[disabled]:active,.datepicker table tr td.selected:hover[disabled]:focus,.datepicker table tr td.selected:hover[disabled]:hover,.datepicker table tr td.selected[disabled],.datepicker table tr td.selected[disabled].active,.datepicker table tr td.selected[disabled]:active,.datepicker table tr td.selected[disabled]:focus,.datepicker table tr td.selected[disabled]:hover,fieldset[disabled] .datepicker table tr td.selected,fieldset[disabled] .datepicker table tr td.selected.active,fieldset[disabled] .datepicker table tr td.selected.disabled,fieldset[disabled] .datepicker table tr td.selected.disabled.active,fieldset[disabled] .datepicker table tr td.selected.disabled:active,fieldset[disabled] .datepicker table tr td.selected.disabled:focus,fieldset[disabled] .datepicker table tr td.selected.disabled:hover,fieldset[disabled] .datepicker table tr td.selected.disabled:hover.active,fieldset[disabled] .datepicker table tr td.selected.disabled:hover:active,fieldset[disabled] .datepicker table tr td.selected.disabled:hover:focus,fieldset[disabled] .datepicker table tr td.selected.disabled:hover:hover,fieldset[disabled] .datepicker table tr td.selected:active,fieldset[disabled] .datepicker table tr td.selected:focus,fieldset[disabled] .datepicker table tr td.selected:hover,fieldset[disabled] .datepicker table tr td.selected:hover.active,fieldset[disabled] .datepicker table tr td.selected:hover:active,fieldset[disabled] .datepicker table tr td.selected:hover:focus,fieldset[disabled] .datepicker table tr td.selected:hover:hover{background-color:#999;border-color:#555}.datepicker table tr td.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active:hover{color:#fff;background-color:#428bca;border-color:#357ebd;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:focus,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:focus,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active:active,.datepicker table tr td.active:focus,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:focus,.datepicker table tr td.active:hover:hover,.open .dropdown-toggle.datepicker table tr td.active,.open .dropdown-toggle.datepicker table tr td.active.disabled,.open .dropdown-toggle.datepicker table tr td.active.disabled:hover,.open .dropdown-toggle.datepicker table tr td.active:hover{color:#fff;background-color:rgba(190,190,190,.76);border-color:rgba(190,190,190,.76)}.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled.disabled,.datepicker table tr td.active.disabled.disabled.active,.datepicker table tr td.active.disabled.disabled:active,.datepicker table tr td.active.disabled.disabled:focus,.datepicker table tr td.active.disabled.disabled:hover,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:focus,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.disabled,.datepicker table tr td.active.disabled:hover.disabled.active,.datepicker table tr td.active.disabled:hover.disabled:active,.datepicker table tr td.active.disabled:hover.disabled:focus,.datepicker table tr td.active.disabled:hover.disabled:hover,.datepicker table tr td.active.disabled:hover[disabled],.datepicker table tr td.active.disabled:hover[disabled].active,.datepicker table tr td.active.disabled:hover[disabled]:active,.datepicker table tr td.active.disabled:hover[disabled]:focus,.datepicker table tr td.active.disabled:hover[disabled]:hover,.datepicker table tr td.active.disabled[disabled],.datepicker table tr td.active.disabled[disabled].active,.datepicker table tr td.active.disabled[disabled]:active,.datepicker table tr td.active.disabled[disabled]:focus,.datepicker table tr td.active.disabled[disabled]:hover,.datepicker table tr td.active:hover.disabled,.datepicker table tr td.active:hover.disabled.active,.datepicker table tr td.active:hover.disabled:active,.datepicker table tr td.active:hover.disabled:focus,.datepicker table tr td.active:hover.disabled:hover,.datepicker table tr td.active:hover[disabled],.datepicker table tr td.active:hover[disabled].active,.datepicker table tr td.active:hover[disabled]:active,.datepicker table tr td.active:hover[disabled]:focus,.datepicker table tr td.active:hover[disabled]:hover,.datepicker table tr td.active[disabled],.datepicker table tr td.active[disabled].active,.datepicker table tr td.active[disabled]:active,.datepicker table tr td.active[disabled]:focus,.datepicker table tr td.active[disabled]:hover,fieldset[disabled] .datepicker table tr td.active,fieldset[disabled] .datepicker table tr td.active.active,fieldset[disabled] .datepicker table tr td.active.disabled,fieldset[disabled] .datepicker table tr td.active.disabled.active,fieldset[disabled] .datepicker table tr td.active.disabled:active,fieldset[disabled] .datepicker table tr td.active.disabled:focus,fieldset[disabled] .datepicker table tr td.active.disabled:hover,fieldset[disabled] .datepicker table tr td.active.disabled:hover.active,fieldset[disabled] .datepicker table tr td.active.disabled:hover:active,fieldset[disabled] .datepicker table tr td.active.disabled:hover:focus,fieldset[disabled] .datepicker table tr td.active.disabled:hover:hover,fieldset[disabled] .datepicker table tr td.active:active,fieldset[disabled] .datepicker table tr td.active:focus,fieldset[disabled] .datepicker table tr td.active:hover,fieldset[disabled] .datepicker table tr td.active:hover.active,fieldset[disabled] .datepicker table tr td.active:hover:active,fieldset[disabled] .datepicker table tr td.active:hover:focus,fieldset[disabled] .datepicker table tr td.active:hover:hover{background-color:#428bca;border-color:#357ebd}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;border-radius:4px}.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{color:#fff;background-color:#428bca;border-color:#357ebd;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:focus,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:active,.datepicker table tr td span.active:focus,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:focus,.datepicker table tr td span.active:hover:hover,.open .dropdown-toggle.datepicker table tr td span.active,.open .dropdown-toggle.datepicker table tr td span.active.disabled,.open .dropdown-toggle.datepicker table tr td span.active.disabled:hover,.open .dropdown-toggle.datepicker table tr td span.active:hover{color:#fff;background-color:rgba(190,190,190,.76);border-color:rgba(190,190,190,.76)}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active,.open .dropdown-toggle.datepicker table tr td span.active,.open .dropdown-toggle.datepicker table tr td span.active.disabled,.open .dropdown-toggle.datepicker table tr td span.active.disabled:hover,.open .dropdown-toggle.datepicker table tr td span.active:hover{background-image:none}.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled.disabled,.datepicker table tr td span.active.disabled.disabled.active,.datepicker table tr td span.active.disabled.disabled:active,.datepicker table tr td span.active.disabled.disabled:focus,.datepicker table tr td span.active.disabled.disabled:hover,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.disabled,.datepicker table tr td span.active.disabled:hover.disabled.active,.datepicker table tr td span.active.disabled:hover.disabled:active,.datepicker table tr td span.active.disabled:hover.disabled:focus,.datepicker table tr td span.active.disabled:hover.disabled:hover,.datepicker table tr td span.active.disabled:hover[disabled],.datepicker table tr td span.active.disabled:hover[disabled].active,.datepicker table tr td span.active.disabled:hover[disabled]:active,.datepicker table tr td span.active.disabled:hover[disabled]:focus,.datepicker table tr td span.active.disabled:hover[disabled]:hover,.datepicker table tr td span.active.disabled[disabled],.datepicker table tr td span.active.disabled[disabled].active,.datepicker table tr td span.active.disabled[disabled]:active,.datepicker table tr td span.active.disabled[disabled]:focus,.datepicker table tr td span.active.disabled[disabled]:hover,.datepicker table tr td span.active:hover.disabled,.datepicker table tr td span.active:hover.disabled.active,.datepicker table tr td span.active:hover.disabled:active,.datepicker table tr td span.active:hover.disabled:focus,.datepicker table tr td span.active:hover.disabled:hover,.datepicker table tr td span.active:hover[disabled],.datepicker table tr td span.active:hover[disabled].active,.datepicker table tr td span.active:hover[disabled]:active,.datepicker table tr td span.active:hover[disabled]:focus,.datepicker table tr td span.active:hover[disabled]:hover,.datepicker table tr td span.active[disabled],.datepicker table tr td span.active[disabled].active,.datepicker table tr td span.active[disabled]:active,.datepicker table tr td span.active[disabled]:focus,.datepicker table tr td span.active[disabled]:hover,fieldset[disabled] .datepicker table tr td span.active,fieldset[disabled] .datepicker table tr td span.active.active,fieldset[disabled] .datepicker table tr td span.active.disabled,fieldset[disabled] .datepicker table tr td span.active.disabled.active,fieldset[disabled] .datepicker table tr td span.active.disabled:active,fieldset[disabled] .datepicker table tr td span.active.disabled:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover,fieldset[disabled] .datepicker table tr td span.active.disabled:hover.active,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:active,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,fieldset[disabled] .datepicker table tr td span.active:active,fieldset[disabled] .datepicker table tr td span.active:focus,fieldset[disabled] .datepicker table tr td span.active:hover,fieldset[disabled] .datepicker table tr td span.active:hover.active,fieldset[disabled] .datepicker table tr td span.active:hover:active,fieldset[disabled] .datepicker table tr td span.active:hover:focus,fieldset[disabled] .datepicker table tr td span.active:hover:hover{background-color:#428bca;border-color:#357ebd}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#999}.datepicker .datepicker-switch{width:145px}.datepicker tfoot tr th,.datepicker thead tr:first-child th{cursor:pointer}.datepicker tfoot tr th:hover,.datepicker thead tr:first-child th:hover{background:#eee}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.datepicker thead tr:first-child .cw{cursor:default;background-color:transparent}.input-group.date .input-group-addon{cursor:pointer}.input-daterange{width:100%}.input-daterange input{text-align:center}.input-daterange input:first-child{border-radius:3px 0 0 3px}.input-daterange input:last-child{border-radius:0 3px 3px 0}.input-daterange .input-group-addon{width:auto;min-width:16px;padding:4px 5px;font-weight:400;line-height:1.42857143;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:solid #ccc;border-width:1px 0;margin-left:-5px;margin-right:-5px}.datepicker td.day{padding:5px!important}.datepicker thead{line-height:2.2;font-size:15px}.datepicker .table-condensed{border:none;width:100%}
|
|
public/css/yikes-inc-easy-mailchimp-extender-public.min.css
CHANGED
@@ -1,2 +1 @@
|
|
1 |
-
.yikes-easy-mc-form{display:block;width:100%}.yikes-easy-mailchimp-edit-form-link{display:block;margin-bottom:1em}.yikes-easy-mc-form.yikes-mailchimp-form-inline{display:inline-block;width:100%}.yikes-easy-mc-form input[type=text],.yikes-easy-mc-form input[type=url],.yikes-easy-mc-form input[type=email],.yikes-easy-mc-form input[type=number],.yikes-easy-mc-form select{padding:.5278em;background-color:#F1F1F1;border:2px solid rgba(51,51,51,.1);-moz-box-sizing:border-box;margin-bottom:8px}.yikes-easy-mc-form input[type=text]:focus,.yikes-easy-mc-form input[type=url]:focus,.yikes-easy-mc-form input[type=email]:focus,.yikes-easy-mc-form input[type=number]:focus,.yikes-easy-mc-form select:focus{outline:rgba(51,51,51,.3) solid 2px}.datepicker.datepicker-dropdown.dropdown-menu.datepicker-orient-left.datepicker-orient-top{min-width:258px}.yikes-easy-mc-form .yikes-easy-mc-submit-button{display:block;width:100%;margin-top:.5em;min-height:40px;padding:10px;cursor:pointer}.yikes-easy-mc-form .yikes-easy-mc-submit-button.admin-logged-in{margin-bottom:1em}.yikes-easy-mc-form .submit-button-inline-label{width:20%;min-width:90px;float:left}.yikes-easy-mc-form .submit-button-inline-label .yikes-easy-mc-submit-button{margin-top:0;margin-bottom:.5em}.yikes-easy-mc-form .form-field-description{display:block;margin-top:-.25em;margin-bottom:.75em;font-style:italic}.yikes-easy-mc-form label>.form-field-description{display:block;margin-bottom:5px;font-style:italic}.yikes-easy-mc-error-message{color:rgba(216,48,57,.87);background:#FFBABA;padding:12px;position:relative}.yikes-easy-mc-success-message{color:#4F8A10;background:#DFF2BF;padding:12px;position:relative}.yikes-easy-mc-form .field-no-label,.yikes-easy-mc-form label{display:inline-block;margin-bottom:.5em;width:100%}p.yikes-mailchimp-required-interest-group-error{color:rgba(216,48,57,.87);margin:8px 0}.yikes-easy-mc-form input[type=text],.yikes-easy-mc-form input[type=url],.yikes-easy-mc-form input[type=email],.yikes-easy-mc-form input[type=number],.yikes-easy-mc-form input[type=password],.yikes-easy-mc-form select,.yikes-easy-mc-form textarea{box-sizing:border-box;display:block;width:100%;max-width:100%}.yikes-easy-mc-form .yikes-easy-mc-submit-button-image{padding:0;width:16%;min-width:140px;max-width:200px}.yikes-easy-mc-form .submit-button-inline-label .yikes-easy-mc-submit-button-image{width:100%;max-width:100%}.checkbox-parent-label{width:100%;display:block}.yikes-easy-mc-form .yikes-easy-mc-checkbox-label{display:inline-block}.mailchimp-field-hidden,.yikes-easy-mc-display-none{display:none!important}.yikes-easy-mc-text-align-right{text-align:right}#yikes-mailchimp-container .yikes-form-title{margin-top:0}.yikes-mailchimp-disclaimer-text{display:block;margin-top:1em}.update-email-preloader{position:absolute;top:40%;left:0;right:0;bottom:0;margin:0 auto}.g-recaptcha{transform:scale(.81);-webkit-transform:scale(.81);transform-origin:0 0;-webkit-transform-origin:0 0;margin:7px 0 -3px}@media screen and (max-height:575px){#rc-imageselect,.g-recaptcha{transform:scale(.81);-webkit-transform:scale(.81);transform-origin:0 0;-webkit-transform-origin:0 0}}.yikes-easy-mc-form label.option-inline>label{display:inline-block;float:left;width:auto!important;margin-right:15px}.yikes-easy-mc-form label.option-height-25{height:25px}.yikes-easy-mc-form label.option-height-50{height:50px}.yikes-easy-mc-form label.option-height-75{height:75px}.yikes-easy-mc-form label.option-height-100{height:100px}.yikes-easy-mc-form label.option-height-125{height:125px}.yikes-easy-mc-form label.option-height-150{height:150px}.yikes-easy-mc-form label.option-2-col>label{display:inline-block;float:left;width:50%}.yikes-easy-mc-form label.option-3-col>label{display:inline-block;float:left;width:33%}.yikes-easy-mc-form label.option-4-col>label{display:inline-block;float:left;width:25%}.yikes-easy-mc-form input.field-left-half,.yikes-easy-mc-form label.field-left-half{width:48%;float:left;margin-right:2%}.yikes-easy-mc-form input.field-right-half,.yikes-easy-mc-form label.field-right-half{width:48%;float:right;margin-left:2%}.yikes-easy-mc-form input.field-third,.yikes-easy-mc-form label.field-third{width:32%;float:left;margin-right:1.33333%}@media only screen and (max-width:525px){.yikes-easy-mc-form input.field-left-half,.yikes-easy-mc-form input.field-right-half,.yikes-easy-mc-form label.field-left-half,.yikes-easy-mc-form label.field-right-half{width:100%}}@media only screen and (max-width:955px){.yikes-easy-mc-form input.field-third:nth-child(odd),.yikes-easy-mc-form label.field-third:nth-child(odd){width:48%;float:left;margin-right:2%}.yikes-easy-mc-form input.field-third:nth-child(even),.yikes-easy-mc-form label.field-third:nth-child(even){width:48%;float:right;margin-left:0}}@media only screen and (max-width:525px){.yikes-easy-mc-form input.field-third,.yikes-easy-mc-form label.field-third{width:100%!important;margin-right:0;margin-left:0;float:none}.datepicker.datepicker-dropdown.dropdown-menu.datepicker-orient-left.datepicker-orient-top{min-width:84%}}
|
2 |
-
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInlpa2VzLWluYy1lYXN5LW1haWxjaGltcC1leHRlbmRlci1wdWJsaWMubWluLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0IsY0FBYyxVQUFVLENBQUMscUNBQXFDLGNBQWMsaUJBQWlCLENBQUMsZ0RBQWdELHFCQUFxQixVQUFVLENBQUMsaUxBQWlMLGdCQUFnQix5QkFBeUIsbUNBQW1DLDJCQUEyQixpQkFBaUIsQ0FBQywrTUFBK00sbUNBQW1DLENBQUMsMkZBQTJGLGVBQWUsQ0FBQyxpREFBaUQsY0FBYyxXQUFXLGdCQUFnQixnQkFBZ0IsYUFBYSxjQUFjLENBQUMsaUVBQWlFLGlCQUFpQixDQUFDLGdEQUFnRCxVQUFVLGVBQWUsVUFBVSxDQUFDLDZFQUE2RSxhQUFhLGtCQUFrQixDQUFDLDRDQUE0QyxjQUFjLGtCQUFrQixvQkFBb0IsaUJBQWlCLENBQUMsa0RBQWtELGNBQWMsa0JBQWtCLGlCQUFpQixDQUFDLDZCQUE2QiwwQkFBMEIsbUJBQW1CLGFBQWEsaUJBQWlCLENBQUMsK0JBQStCLGNBQWMsbUJBQW1CLGFBQWEsaUJBQWlCLENBQUMsOERBQThELHFCQUFxQixtQkFBbUIsVUFBVSxDQUFDLGdEQUFnRCwwQkFBMEIsWUFBWSxDQUFDLHVQQUF1UCxzQkFBc0IsY0FBYyxXQUFXLGNBQWMsQ0FBQyx1REFBdUQsVUFBVSxVQUFVLGdCQUFnQixlQUFlLENBQUMsbUZBQW1GLFdBQVcsY0FBYyxDQUFDLHVCQUF1QixXQUFXLGFBQWEsQ0FBQyxrREFBa0Qsb0JBQW9CLENBQUMsb0RBQW9ELHNCQUFzQixDQUFDLGdDQUFnQyxnQkFBZ0IsQ0FBQyw2Q0FBNkMsWUFBWSxDQUFDLGlDQUFpQyxjQUFjLGNBQWMsQ0FBQyx3QkFBd0Isa0JBQWtCLFFBQVEsT0FBTyxRQUFRLFNBQVMsYUFBYSxDQUFDLGFBQWEscUJBQXFCLDZCQUE2QixxQkFBcUIsNkJBQTZCLGlCQUFpQixDQUFDLHFDQUFxQyw2QkFBNkIscUJBQXFCLDZCQUE2QixxQkFBcUIsNEJBQTRCLENBQUMsQ0FBQyw4Q0FBOEMscUJBQXFCLFdBQVcscUJBQXFCLGlCQUFpQixDQUFDLDJDQUEyQyxXQUFXLENBQUMsMkNBQTJDLFdBQVcsQ0FBQywyQ0FBMkMsV0FBVyxDQUFDLDRDQUE0QyxZQUFZLENBQUMsNENBQTRDLFlBQVksQ0FBQyw0Q0FBNEMsWUFBWSxDQUFDLDZDQUE2QyxxQkFBcUIsV0FBVyxTQUFTLENBQUMsNkNBQTZDLHFCQUFxQixXQUFXLFNBQVMsQ0FBQyw2Q0FBNkMscUJBQXFCLFdBQVcsU0FBUyxDQUFDLG9GQUFvRixVQUFVLFdBQVcsZUFBZSxDQUFDLHNGQUFzRixVQUFVLFlBQVksY0FBYyxDQUFDLDRFQUE0RSxVQUFVLFdBQVcscUJBQXFCLENBQUMseUNBQXlDLDBLQUEwSyxVQUFVLENBQUMsQ0FBQyx5Q0FBeUMsMEdBQTBHLFVBQVUsV0FBVyxlQUFlLENBQUMsNEdBQTRHLFVBQVUsWUFBWSxhQUFhLENBQUMsQ0FBQyx5Q0FBeUMsNEVBQTRFLHFCQUFxQixlQUFlLGNBQWMsVUFBVSxDQUFDLDJGQUEyRixhQUFhLENBQUMsQ0FBQyIsImZpbGUiOiJ5aWtlcy1pbmMtZWFzeS1tYWlsY2hpbXAtZXh0ZW5kZXItcHVibGljLm1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIueWlrZXMtZWFzeS1tYy1mb3Jte2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJX0ueWlrZXMtZWFzeS1tYWlsY2hpbXAtZWRpdC1mb3JtLWxpbmt7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjFlbX0ueWlrZXMtZWFzeS1tYy1mb3JtLnlpa2VzLW1haWxjaGltcC1mb3JtLWlubGluZXtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMDAlfS55aWtlcy1lYXN5LW1jLWZvcm0gaW5wdXRbdHlwZT10ZXh0XSwueWlrZXMtZWFzeS1tYy1mb3JtIGlucHV0W3R5cGU9dXJsXSwueWlrZXMtZWFzeS1tYy1mb3JtIGlucHV0W3R5cGU9ZW1haWxdLC55aWtlcy1lYXN5LW1jLWZvcm0gaW5wdXRbdHlwZT1udW1iZXJdLC55aWtlcy1lYXN5LW1jLWZvcm0gc2VsZWN0e3BhZGRpbmc6LjUyNzhlbTtiYWNrZ3JvdW5kLWNvbG9yOiNGMUYxRjE7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDUxLDUxLDUxLC4xKTstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDttYXJnaW4tYm90dG9tOjhweH0ueWlrZXMtZWFzeS1tYy1mb3JtIGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsLnlpa2VzLWVhc3ktbWMtZm9ybSBpbnB1dFt0eXBlPXVybF06Zm9jdXMsLnlpa2VzLWVhc3ktbWMtZm9ybSBpbnB1dFt0eXBlPWVtYWlsXTpmb2N1cywueWlrZXMtZWFzeS1tYy1mb3JtIGlucHV0W3R5cGU9bnVtYmVyXTpmb2N1cywueWlrZXMtZWFzeS1tYy1mb3JtIHNlbGVjdDpmb2N1c3tvdXRsaW5lOnJnYmEoNTEsNTEsNTEsLjMpIHNvbGlkIDJweH0uZGF0ZXBpY2tlci5kYXRlcGlja2VyLWRyb3Bkb3duLmRyb3Bkb3duLW1lbnUuZGF0ZXBpY2tlci1vcmllbnQtbGVmdC5kYXRlcGlja2VyLW9yaWVudC10b3B7bWluLXdpZHRoOjI1OHB4fS55aWtlcy1lYXN5LW1jLWZvcm0gLnlpa2VzLWVhc3ktbWMtc3VibWl0LWJ1dHRvbntkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7bWFyZ2luLXRvcDouNWVtO21pbi1oZWlnaHQ6NDBweDtwYWRkaW5nOjEwcHg7Y3Vyc29yOnBvaW50ZXJ9Lnlpa2VzLWVhc3ktbWMtZm9ybSAueWlrZXMtZWFzeS1tYy1zdWJtaXQtYnV0dG9uLmFkbWluLWxvZ2dlZC1pbnttYXJnaW4tYm90dG9tOjFlbX0ueWlrZXMtZWFzeS1tYy1mb3JtIC5zdWJtaXQtYnV0dG9uLWlubGluZS1sYWJlbHt3aWR0aDoyMCU7bWluLXdpZHRoOjkwcHg7ZmxvYXQ6bGVmdH0ueWlrZXMtZWFzeS1tYy1mb3JtIC5zdWJtaXQtYnV0dG9uLWlubGluZS1sYWJlbCAueWlrZXMtZWFzeS1tYy1zdWJtaXQtYnV0dG9ue21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOi41ZW19Lnlpa2VzLWVhc3ktbWMtZm9ybSAuZm9ybS1maWVsZC1kZXNjcmlwdGlvbntkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6LS4yNWVtO21hcmdpbi1ib3R0b206Ljc1ZW07Zm9udC1zdHlsZTppdGFsaWN9Lnlpa2VzLWVhc3ktbWMtZm9ybSBsYWJlbD4uZm9ybS1maWVsZC1kZXNjcmlwdGlvbntkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206NXB4O2ZvbnQtc3R5bGU6aXRhbGljfS55aWtlcy1lYXN5LW1jLWVycm9yLW1lc3NhZ2V7Y29sb3I6cmdiYSgyMTYsNDgsNTcsLjg3KTtiYWNrZ3JvdW5kOiNGRkJBQkE7cGFkZGluZzoxMnB4O3Bvc2l0aW9uOnJlbGF0aXZlfS55aWtlcy1lYXN5LW1jLXN1Y2Nlc3MtbWVzc2FnZXtjb2xvcjojNEY4QTEwO2JhY2tncm91bmQ6I0RGRjJCRjtwYWRkaW5nOjEycHg7cG9zaXRpb246cmVsYXRpdmV9Lnlpa2VzLWVhc3ktbWMtZm9ybSAuZmllbGQtbm8tbGFiZWwsLnlpa2VzLWVhc3ktbWMtZm9ybSBsYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tYm90dG9tOi41ZW07d2lkdGg6MTAwJX1wLnlpa2VzLW1haWxjaGltcC1yZXF1aXJlZC1pbnRlcmVzdC1ncm91cC1lcnJvcntjb2xvcjpyZ2JhKDIxNiw0OCw1NywuODcpO21hcmdpbjo4cHggMH0ueWlrZXMtZWFzeS1tYy1mb3JtIGlucHV0W3R5cGU9dGV4dF0sLnlpa2VzLWVhc3ktbWMtZm9ybSBpbnB1dFt0eXBlPXVybF0sLnlpa2VzLWVhc3ktbWMtZm9ybSBpbnB1dFt0eXBlPWVtYWlsXSwueWlrZXMtZWFzeS1tYy1mb3JtIGlucHV0W3R5cGU9bnVtYmVyXSwueWlrZXMtZWFzeS1tYy1mb3JtIGlucHV0W3R5cGU9cGFzc3dvcmRdLC55aWtlcy1lYXN5LW1jLWZvcm0gc2VsZWN0LC55aWtlcy1lYXN5LW1jLWZvcm0gdGV4dGFyZWF7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJX0ueWlrZXMtZWFzeS1tYy1mb3JtIC55aWtlcy1lYXN5LW1jLXN1Ym1pdC1idXR0b24taW1hZ2V7cGFkZGluZzowO3dpZHRoOjE2JTttaW4td2lkdGg6MTQwcHg7bWF4LXdpZHRoOjIwMHB4fS55aWtlcy1lYXN5LW1jLWZvcm0gLnN1Ym1pdC1idXR0b24taW5saW5lLWxhYmVsIC55aWtlcy1lYXN5LW1jLXN1Ym1pdC1idXR0b24taW1hZ2V7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJX0uY2hlY2tib3gtcGFyZW50LWxhYmVse3dpZHRoOjEwMCU7ZGlzcGxheTpibG9ja30ueWlrZXMtZWFzeS1tYy1mb3JtIC55aWtlcy1lYXN5LW1jLWNoZWNrYm94LWxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5tYWlsY2hpbXAtZmllbGQtaGlkZGVuLC55aWtlcy1lYXN5LW1jLWRpc3BsYXktbm9uZXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS55aWtlcy1lYXN5LW1jLXRleHQtYWxpZ24tcmlnaHR7dGV4dC1hbGlnbjpyaWdodH0jeWlrZXMtbWFpbGNoaW1wLWNvbnRhaW5lciAueWlrZXMtZm9ybS10aXRsZXttYXJnaW4tdG9wOjB9Lnlpa2VzLW1haWxjaGltcC1kaXNjbGFpbWVyLXRleHR7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjFlbX0udXBkYXRlLWVtYWlsLXByZWxvYWRlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NDAlO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO21hcmdpbjowIGF1dG99LmctcmVjYXB0Y2hhe3RyYW5zZm9ybTpzY2FsZSguODEpOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC44MSk7dHJhbnNmb3JtLW9yaWdpbjowIDA7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjAgMDttYXJnaW46N3B4IDAgLTNweH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LWhlaWdodDo1NzVweCl7I3JjLWltYWdlc2VsZWN0LC5nLXJlY2FwdGNoYXt0cmFuc2Zvcm06c2NhbGUoLjgxKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguODEpO3RyYW5zZm9ybS1vcmlnaW46MCAwOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowIDB9fS55aWtlcy1lYXN5LW1jLWZvcm0gbGFiZWwub3B0aW9uLWlubGluZT5sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jaztmbG9hdDpsZWZ0O3dpZHRoOmF1dG8haW1wb3J0YW50O21hcmdpbi1yaWdodDoxNXB4fS55aWtlcy1lYXN5LW1jLWZvcm0gbGFiZWwub3B0aW9uLWhlaWdodC0yNXtoZWlnaHQ6MjVweH0ueWlrZXMtZWFzeS1tYy1mb3JtIGxhYmVsLm9wdGlvbi1oZWlnaHQtNTB7aGVpZ2h0OjUwcHh9Lnlpa2VzLWVhc3ktbWMtZm9ybSBsYWJlbC5vcHRpb24taGVpZ2h0LTc1e2hlaWdodDo3NXB4fS55aWtlcy1lYXN5LW1jLWZvcm0gbGFiZWwub3B0aW9uLWhlaWdodC0xMDB7aGVpZ2h0OjEwMHB4fS55aWtlcy1lYXN5LW1jLWZvcm0gbGFiZWwub3B0aW9uLWhlaWdodC0xMjV7aGVpZ2h0OjEyNXB4fS55aWtlcy1lYXN5LW1jLWZvcm0gbGFiZWwub3B0aW9uLWhlaWdodC0xNTB7aGVpZ2h0OjE1MHB4fS55aWtlcy1lYXN5LW1jLWZvcm0gbGFiZWwub3B0aW9uLTItY29sPmxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Zsb2F0OmxlZnQ7d2lkdGg6NTAlfS55aWtlcy1lYXN5LW1jLWZvcm0gbGFiZWwub3B0aW9uLTMtY29sPmxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Zsb2F0OmxlZnQ7d2lkdGg6MzMlfS55aWtlcy1lYXN5LW1jLWZvcm0gbGFiZWwub3B0aW9uLTQtY29sPmxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Zsb2F0OmxlZnQ7d2lkdGg6MjUlfS55aWtlcy1lYXN5LW1jLWZvcm0gaW5wdXQuZmllbGQtbGVmdC1oYWxmLC55aWtlcy1lYXN5LW1jLWZvcm0gbGFiZWwuZmllbGQtbGVmdC1oYWxme3dpZHRoOjQ4JTtmbG9hdDpsZWZ0O21hcmdpbi1yaWdodDoyJX0ueWlrZXMtZWFzeS1tYy1mb3JtIGlucHV0LmZpZWxkLXJpZ2h0LWhhbGYsLnlpa2VzLWVhc3ktbWMtZm9ybSBsYWJlbC5maWVsZC1yaWdodC1oYWxme3dpZHRoOjQ4JTtmbG9hdDpyaWdodDttYXJnaW4tbGVmdDoyJX0ueWlrZXMtZWFzeS1tYy1mb3JtIGlucHV0LmZpZWxkLXRoaXJkLC55aWtlcy1lYXN5LW1jLWZvcm0gbGFiZWwuZmllbGQtdGhpcmR7d2lkdGg6MzIlO2Zsb2F0OmxlZnQ7bWFyZ2luLXJpZ2h0OjEuMzMzMzMlfUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo1MjVweCl7Lnlpa2VzLWVhc3ktbWMtZm9ybSBpbnB1dC5maWVsZC1sZWZ0LWhhbGYsLnlpa2VzLWVhc3ktbWMtZm9ybSBpbnB1dC5maWVsZC1yaWdodC1oYWxmLC55aWtlcy1lYXN5LW1jLWZvcm0gbGFiZWwuZmllbGQtbGVmdC1oYWxmLC55aWtlcy1lYXN5LW1jLWZvcm0gbGFiZWwuZmllbGQtcmlnaHQtaGFsZnt3aWR0aDoxMDAlfX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6OTU1cHgpey55aWtlcy1lYXN5LW1jLWZvcm0gaW5wdXQuZmllbGQtdGhpcmQ6bnRoLWNoaWxkKG9kZCksLnlpa2VzLWVhc3ktbWMtZm9ybSBsYWJlbC5maWVsZC10aGlyZDpudGgtY2hpbGQob2RkKXt3aWR0aDo0OCU7ZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6MiV9Lnlpa2VzLWVhc3ktbWMtZm9ybSBpbnB1dC5maWVsZC10aGlyZDpudGgtY2hpbGQoZXZlbiksLnlpa2VzLWVhc3ktbWMtZm9ybSBsYWJlbC5maWVsZC10aGlyZDpudGgtY2hpbGQoZXZlbil7d2lkdGg6NDglO2Zsb2F0OnJpZ2h0O21hcmdpbi1sZWZ0OjB9fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo1MjVweCl7Lnlpa2VzLWVhc3ktbWMtZm9ybSBpbnB1dC5maWVsZC10aGlyZCwueWlrZXMtZWFzeS1tYy1mb3JtIGxhYmVsLmZpZWxkLXRoaXJke3dpZHRoOjEwMCUhaW1wb3J0YW50O21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjA7ZmxvYXQ6bm9uZX0uZGF0ZXBpY2tlci5kYXRlcGlja2VyLWRyb3Bkb3duLmRyb3Bkb3duLW1lbnUuZGF0ZXBpY2tlci1vcmllbnQtbGVmdC5kYXRlcGlja2VyLW9yaWVudC10b3B7bWluLXdpZHRoOjg0JX19Il19 */
|
1 |
+
.yikes-easy-mc-form{display:block;width:100%}.yikes-easy-mailchimp-edit-form-link{display:block;margin-bottom:1em}.yikes-easy-mc-form.yikes-mailchimp-form-inline{display:inline-block;width:100%}.yikes-easy-mc-form input[type=text],.yikes-easy-mc-form input[type=url],.yikes-easy-mc-form input[type=email],.yikes-easy-mc-form input[type=number],.yikes-easy-mc-form select{padding:.5278em;background-color:#F1F1F1;border:2px solid rgba(51,51,51,.1);-moz-box-sizing:border-box;margin-bottom:8px}.yikes-easy-mc-form input[type=text]:focus,.yikes-easy-mc-form input[type=url]:focus,.yikes-easy-mc-form input[type=email]:focus,.yikes-easy-mc-form input[type=number]:focus,.yikes-easy-mc-form select:focus{outline:rgba(51,51,51,.3) solid 2px}.datepicker.datepicker-dropdown.dropdown-menu.datepicker-orient-left.datepicker-orient-top{min-width:258px}.yikes-easy-mc-form .yikes-easy-mc-submit-button{display:block;width:100%;margin-top:.5em;min-height:40px;padding:10px;cursor:pointer}.yikes-easy-mc-form .yikes-easy-mc-submit-button.admin-logged-in{margin-bottom:1em}.yikes-easy-mc-form .submit-button-inline-label{width:20%;min-width:90px;float:left}.yikes-easy-mc-form .submit-button-inline-label .yikes-easy-mc-submit-button{margin-top:0;margin-bottom:.5em}.yikes-easy-mc-form .form-field-description{display:block;margin-top:-.25em;margin-bottom:.75em;font-style:italic}.yikes-easy-mc-form label>.form-field-description{display:block;margin-bottom:5px;font-style:italic}.yikes-easy-mc-error-message{color:rgba(216,48,57,.87);background:#FFBABA;padding:12px;position:relative}.yikes-easy-mc-success-message{color:#4F8A10;background:#DFF2BF;padding:12px;position:relative}.yikes-easy-mc-form .field-no-label,.yikes-easy-mc-form label{display:inline-block;margin-bottom:.5em;width:100%}p.yikes-mailchimp-required-interest-group-error{color:rgba(216,48,57,.87);margin:8px 0}.yikes-easy-mc-form input[type=text],.yikes-easy-mc-form input[type=url],.yikes-easy-mc-form input[type=email],.yikes-easy-mc-form input[type=number],.yikes-easy-mc-form input[type=password],.yikes-easy-mc-form select,.yikes-easy-mc-form textarea{box-sizing:border-box;display:block;width:100%;max-width:100%}.yikes-easy-mc-form .yikes-easy-mc-submit-button-image{padding:0;width:16%;min-width:140px;max-width:200px}.yikes-easy-mc-form .submit-button-inline-label .yikes-easy-mc-submit-button-image{width:100%;max-width:100%}.checkbox-parent-label{width:100%;display:block}.yikes-easy-mc-form .yikes-easy-mc-checkbox-label{display:inline-block}.mailchimp-field-hidden,.yikes-easy-mc-display-none{display:none!important}.yikes-easy-mc-text-align-right{text-align:right}#yikes-mailchimp-container .yikes-form-title{margin-top:0}.yikes-mailchimp-disclaimer-text{display:block;margin-top:1em}.update-email-preloader{position:absolute;top:40%;left:0;right:0;bottom:0;margin:0 auto}.g-recaptcha{transform:scale(.81);-webkit-transform:scale(.81);transform-origin:0 0;-webkit-transform-origin:0 0;margin:7px 0 -3px}@media screen and (max-height:575px){#rc-imageselect,.g-recaptcha{transform:scale(.81);-webkit-transform:scale(.81);transform-origin:0 0;-webkit-transform-origin:0 0}}.yikes-easy-mc-form label.option-inline>label{display:inline-block;float:left;width:auto!important;margin-right:15px}.yikes-easy-mc-form label.option-height-25{height:25px}.yikes-easy-mc-form label.option-height-50{height:50px}.yikes-easy-mc-form label.option-height-75{height:75px}.yikes-easy-mc-form label.option-height-100{height:100px}.yikes-easy-mc-form label.option-height-125{height:125px}.yikes-easy-mc-form label.option-height-150{height:150px}.yikes-easy-mc-form label.option-2-col>label{display:inline-block;float:left;width:50%}.yikes-easy-mc-form label.option-3-col>label{display:inline-block;float:left;width:33%}.yikes-easy-mc-form label.option-4-col>label{display:inline-block;float:left;width:25%}.yikes-easy-mc-form input.field-left-half,.yikes-easy-mc-form label.field-left-half{width:48%;float:left;margin-right:2%}.yikes-easy-mc-form input.field-right-half,.yikes-easy-mc-form label.field-right-half{width:48%;float:right;margin-left:2%}.yikes-easy-mc-form input.field-third,.yikes-easy-mc-form label.field-third{width:32%;float:left;margin-right:1.33333%}@media only screen and (max-width:525px){.yikes-easy-mc-form input.field-left-half,.yikes-easy-mc-form input.field-right-half,.yikes-easy-mc-form label.field-left-half,.yikes-easy-mc-form label.field-right-half{width:100%}}@media only screen and (max-width:955px){.yikes-easy-mc-form input.field-third:nth-child(odd),.yikes-easy-mc-form label.field-third:nth-child(odd){width:48%;float:left;margin-right:2%}.yikes-easy-mc-form input.field-third:nth-child(even),.yikes-easy-mc-form label.field-third:nth-child(even){width:48%;float:right;margin-left:0}}@media only screen and (max-width:525px){.yikes-easy-mc-form input.field-third,.yikes-easy-mc-form label.field-third{width:100%!important;margin-right:0;margin-left:0;float:none}.datepicker.datepicker-dropdown.dropdown-menu.datepicker-orient-left.datepicker-orient-top{min-width:84%}}
|
|
readme.txt
CHANGED
@@ -1 +1,1025 @@
|
|
1 |
-
=== Easy Forms for MailChimp ===
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
=== Easy Forms for MailChimp ===
|
2 |
+
Contributors: yikesinc, eherman24, liljimmi, hiwhatsup
|
3 |
+
Donate link: https://yikesplugins.com/?utm_source=wp_plugin_repo&utm_medium=donate_link&utm_campaign=easy_forms_for_mailchimp
|
4 |
+
Tags: MailChimp, MailChimp forms, MailChimp lists, opt-in forms, sign up form, MailChimp, email, forms, mailing lists, marketing, newsletter, sign up
|
5 |
+
Requires at least: 4.0
|
6 |
+
Tested up to: 4.5
|
7 |
+
Stable tag: 6.0.5.5
|
8 |
+
License: GPLv2 or later
|
9 |
+
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
+
|
11 |
+
The ultimate MailChimp WordPress plugin. Easily build unlimited forms for your MailChimp lists, add them to your site and track subscriber activity.
|
12 |
+
|
13 |
+
== Description ==
|
14 |
+
|
15 |
+
Easy Forms for MailChimp allows you to add unlimited MailChimp sign up forms to your WordPress site. You can add forms to posts, pages, sidebars and other widgetized areas. Your MailChimp API Key connects your site to your MailChimp account and pulls in all of your MailChimp list information.
|
16 |
+
|
17 |
+
MailChimp List statistics and user activity can be viewed right from your dashboard. From there, you can manage users and list settings.
|
18 |
+
|
19 |
+
You can also extend the plugin's functionality with our [free and paid add-ons](https://yikesplugins.com/?utm_source=wp_plugin_repo&utm_medium=link&utm_campaign=easy_forms_for_mailchimp).
|
20 |
+
|
21 |
+
**Add a MailChimp form to a site in a minute and a half**
|
22 |
+
|
23 |
+
https://www.youtube.com/watch?v=NRZbW-Da1XA
|
24 |
+
|
25 |
+
**Features**
|
26 |
+
|
27 |
+
* Build **unlimited** forms for any of your MailChimp lists with an easy-to-use admin, including multiple forms for the same list.
|
28 |
+
* Connect your website to your MailChimp account with a MailChimp API key and a click.
|
29 |
+
* Toggle inline forms with the click of a button.
|
30 |
+
* Schedule form visibility by date/time.
|
31 |
+
* Limit opt-ins by logged in users.
|
32 |
+
* Localized data/time pickers
|
33 |
+
* Duplicate forms with a click.
|
34 |
+
* Easily add MailChimp forms to any post or page with our custom editor button or with a shortcode.
|
35 |
+
* Toggle on/off AJAX functionality on a per form basis.
|
36 |
+
* Add MailChimp forms to widgetized areas with our custom widget.
|
37 |
+
* Allow users to sign up for MailChimp interest groups, or pre-check groups in a hidden field.
|
38 |
+
* Use our built-in CSS classes or add your own additional classes to form fields to easily style and customize forms.
|
39 |
+
* Customize the MailChimp submission button text.
|
40 |
+
* Shortcode available to display the number of subscribers on a given MailChimp list.
|
41 |
+
* Fully customize the success and error messages displayed back to the user.
|
42 |
+
* Quickly toggle between single or double opt-in.
|
43 |
+
* Disable or Enable the default MailChimp welcome email.
|
44 |
+
* Remove bogus subscribers from your MailChimp list through the admin interface.
|
45 |
+
* Allow existing subscribers to update their account info (**new** now including two factor authentication).
|
46 |
+
* Redirect users to another post or page after form submission.
|
47 |
+
* Enable Google reCAPTCHA protection on your forms.
|
48 |
+
* Import/Export all MailChimp forms and associated settings for use on other sites with Easy Forms for MailChimp installed.
|
49 |
+
* Seamless integration with core WordPress forms: comments and registration.
|
50 |
+
* Seamless integration with many popular third party plugins: WooCommerce, Easy Digital Downloads, BuddyPress, BbPress, Contact Form 7.
|
51 |
+
* View your MailChimp account activity like subscribes and unsubscribes.
|
52 |
+
* View your MailChimp list statistics and manage users and list settings.
|
53 |
+
* Advanced debugging to log MailChimp errors as they occur, for easy troubleshooting.
|
54 |
+
* Developer friendly! We've provided hooks and filters to allow developers to extend the plugin.
|
55 |
+
* Add-ons available to extend the core functionality of the plugin. [Check them out](https://yikesplugins.com/?utm_source=wp_plugin_repo&utm_medium=link&utm_campaign=easy_forms_for_mailchimp)!
|
56 |
+
|
57 |
+
**Integrations**
|
58 |
+
|
59 |
+
Add MailChimp opt-in checkboxes to the forms generated by these popular plugins.
|
60 |
+
|
61 |
+
* WooCommerce
|
62 |
+
* Easy Digital Downloads
|
63 |
+
* BuddyPress
|
64 |
+
* BbPress
|
65 |
+
* Contact Form 7
|
66 |
+
|
67 |
+
Instructions on how to use the plugin can be [found in our Knowledge Base](https://yikesplugins.com/support/knowledge-base/?utm_source=wp_plugin_repo&utm_medium=link&utm_campaign=easy_forms_for_mailchimp).
|
68 |
+
|
69 |
+
If you experience any problems, please submit a New Issue on our [Github Issue Tracker](https://github.com/yikesinc/yikes-inc-easy-mailchimp-extender/issues). We respond to issues regarding the free plugin within a week. For expedited help, [purchase one of our paid add-ons](https://yikesplugins.com/?utm_source=wp_plugin_repo&utm_medium=link&utm_campaign=easy_forms_for_mailchimp).
|
70 |
+
|
71 |
+
<br />
|
72 |
+
|
73 |
+
<em>Check out some of our [other plugins](https://yikesplugins.com/?utm_source=wp_plugin_repo&utm_medium=link&utm_campaign=easy_forms_for_mailchimp).</em>
|
74 |
+
|
75 |
+
== Installation ==
|
76 |
+
|
77 |
+
1. Download the plugin .zip file and make note of where on your computer you downloaded it to.
|
78 |
+
2. In the WordPress admin (yourdomain.com/wp-admin) go to Plugins > Add New or click the "Add New" button on the main plugins screen.
|
79 |
+
3. On the following screen, click the "Upload Plugin" button.
|
80 |
+
4. Browse your computer to where you downloaded the plugin .zip file, select it and click the "Install Now" button.
|
81 |
+
5. After the plugin has successfully installed, click "Activate Plugin" and enjoy!
|
82 |
+
|
83 |
+
Visit [our Knowledge Base](https://yikesplugins.com/support/knowledge-base/how-to-install-the-plugin-2/?utm_source=wp_plugin_repo&utm_medium=link&utm_campaign=easy_forms_for_mailchimp) for more detailed installation instructions.
|
84 |
+
|
85 |
+
== Frequently Asked Questions ==
|
86 |
+
|
87 |
+
**All documentation can be found in [our Knowledge Base](https://yikesplugins.com/support/knowledge-base/?utm_source=wp_plugin_repo&utm_medium=link&utm_campaign=easy_forms_for_mailchimp).**
|
88 |
+
|
89 |
+
= Do I need a MailChimp account to use this plugin? =
|
90 |
+
Yes, you must have a MailChimp account and at least 1 list set up in order to use the plugin. You can register for one for free at [MailChimp](https://login.mailchimp.com/signup? "MailChimp").
|
91 |
+
|
92 |
+
= How does the plugin connect my MailChimp account to my site? =
|
93 |
+
Our plugin uses a MailChimp API Key to allow your site to communicate with your MailChimp account. After you enter your MailChimp API key into the plugin settings your site is connected to MailChimp and ready to make forms.
|
94 |
+
|
95 |
+
= How do I create a MailChimp API key? =
|
96 |
+
Go to the MailChimp article [About MailChimp API Keys](http://kb.mailchimp.com/accounts/management/about-api-keys) for detailed information on creating MailChimp API keys.
|
97 |
+
|
98 |
+
Step-by-step instructions from MailChimp:
|
99 |
+
|
100 |
+
1. Click your profile name to expand the Account Panel, and choose Account.
|
101 |
+
2. Click the Extras drop-down menu and choose MailChimp API keys.
|
102 |
+
3. Copy an existing MailChimp API key or click the Create A Key button.
|
103 |
+
4. Name your key descriptively, so you know what application uses that key.
|
104 |
+
|
105 |
+
Copy your MailChimp API key so you can paste it into the plugin General Settings.
|
106 |
+
|
107 |
+
= How do I change the submit button text? =
|
108 |
+
The submit button text can be customized to use any text you like. This is done via the shortcode. Please visit our How-to article [How do I change the submit button text](https://yikesplugins.com/support/knowledge-base/how-do-i-change-the-submit-button-text/) for step-by-step instructions.
|
109 |
+
|
110 |
+
= How do I add new fields to my form? =
|
111 |
+
The fields that are assigned to a list are managed on the MailChimp site. To add or remove fields you need to log in to your MailChimp account and manage them there.
|
112 |
+
|
113 |
+
Please read the MailChimp article [Manage List and Signup Form Fields](http://kb.mailchimp.com/lists/managing-subscribers/manage-list-and-signup-form-fields) to learn how to add and edit the fields for your lists.
|
114 |
+
|
115 |
+
After you’ve added fields, they may not show up immediately in our plugin’s Form Builder. Our plugin pulls the information from MailChimp and stores it for a period of time before pulling it again. To get the new information immediately you will need to clear the MailChimp API cache. Please read our article [API Cache Settings](https://yikesplugins.com/support/knowledge-base/api-cache-settings/) for instructions on how to clear the MailChimp API cache.
|
116 |
+
|
117 |
+
= How do I change the field labels? =
|
118 |
+
The text next to or above each field of a form is called a “label” and you may want to change them. For instance by default MailChimp uses “First” instead of “First Name” and you may want to change it to make more sense. These labels are controlled on the MailChimp end, you will need to log into your MailChimp account to edit them. Please read the MailChimp Knowledge Base article, [Manage List and Signup Form Fields](http://kb.mailchimp.com/lists/managing-subscribers/manage-list-and-signup-form-fields) for detailed info on how to edit field labels.
|
119 |
+
|
120 |
+
= I’m not seeing all my lists on the drop-down menu when I go to make a new form, why? =
|
121 |
+
Our plugin fetches your list information from MailChimp and stores it on your site in a cache. If you make changes to your MailChimp lists, our plugin will update your site with those changes within an hour. If you want it updated immediately (for instance if you add a new list), you can delete the MailChimp cache. Please read [our Knowledge Base Article](https://yikesplugins.com/support/knowledge-base/im-not-seeing-all-my-lists-on-the-drop-down-menu-when-i-go-to-make-a-new-form/?utm_source=wp_plugin_repo&utm_medium=link&utm_campaign=easy_forms_for_mailchimp) for more info.
|
122 |
+
|
123 |
+
= Is there a way to display the number of subscribers for a given list? =
|
124 |
+
Yes! You can use the shortcode, `[yikes-mailchimp-subscriber-count]` in the form description field to display the number of subscribers to that MailChimp list.
|
125 |
+
|
126 |
+
To display the count for a specific MailChimp list, you can use the `form="#"` or `list="#"` parameters. If using `form="#"` you should pass in a specific form ID, which will display the total number of subscribers associated with that form. If using `list="#"` you should pass in a MailChimp list ID.
|
127 |
+
|
128 |
+
= I want to use my own styles. Can I remove the styles bundled with this plugin? =
|
129 |
+
Yes, we've included a constant you can use to prevent our styles from loading, `YIKES_MAILCHIMP_EXCLUDE_STYLES`. For usage, please see [our Knowledge Base Article](https://yikesplugins.com/support/knowledge-base/how-do-i-deregister-the-styles-included-with-this-plugin/?utm_source=wp_plugin_repo&utm_medium=link&utm_campaign=easy_forms_for_mailchimp).
|
130 |
+
|
131 |
+
= Some of the characters in my form are being stored as ??? instead of in the correct format. =
|
132 |
+
You'll want to make sure that your database collation is set properly. The best collation setting for all web languages is UTF8. If you need help switching collation settings in your database, please see the following article from Media Temple: [Default MySQL character set and collation](https://mediatemple.net/community/products/dv/204403914/default-mysql-character-set-and-collation).
|
133 |
+
|
134 |
+
= I'm having trouble upgrading to version 6, what do I do? =
|
135 |
+
We want our users to have as smooth a transition as possible so we created [Guides to Updating](https://yikesplugins.com/support/knowledge-base/product/installation-easy-forms-for-mailchimp/?utm_source=wp_plugin_repo&utm_medium=link&utm_campaign=easy_forms_for_mailchimp). Please check them out if you are experiencing problems.
|
136 |
+
|
137 |
+
== Screenshots ==
|
138 |
+
|
139 |
+
1. General Form Settings - Enter your MailChimp API key to connect your site to your MailChimp account
|
140 |
+
2. Manage Forms Page - See all the forms you have created for your MailChimp lists and create new forms
|
141 |
+
3. Form Editor Page - Build, edit and adjust the settings for your forms
|
142 |
+
4. Form Field Options - Set a variety of options for each form field
|
143 |
+
5. Form Opt-In and Submission Settings - Set the options for each form
|
144 |
+
6. Account Overview Page - View your MailChimp account activity
|
145 |
+
7. Integration Settings - Integrate MailChimp opt-in checkboxes with other forms
|
146 |
+
8. reCAPTCHA Settings - Add a Google reCAPTCHA key
|
147 |
+
9. Account Activity Dashboard Widget - View your MailChimp account activity
|
148 |
+
10. MailChimp List Stats Dashboard Widget
|
149 |
+
11. MailChimp List Information Screen
|
150 |
+
12. Subscriber Details Screen
|
151 |
+
13. MailChimp Form Widget
|
152 |
+
14. MailChimp Form Widget in the Sidebar on Live Website
|
153 |
+
15. Editor Button to easily add Forms to Page and Posts
|
154 |
+
16. MailChimp Form on a Page on Live Website
|
155 |
+
17. *New* Additional Form Settings
|
156 |
+
18. *New* Inline Form on a Page on Live Website
|
157 |
+
|
158 |
+
== Other Notes ==
|
159 |
+
|
160 |
+
Alongside the default functionality of Easy Forms for MailChimp by YIKES we've included a number of hooks and filters to allow for a higher level of customization of your MailChimp forms.
|
161 |
+
|
162 |
+
For information and code examples on how to implement the hooks and filters provided by Easy Forms for MailChimp by YIKES, please see our [Developer Documentation in the Knowledge Base](https://yikesplugins.com/support/knowledge-base/product/developer-documentation/?utm_source=wp_plugin_repo&utm_medium=link&utm_campaign=easy_forms_for_mailchimp).
|
163 |
+
|
164 |
+
Below you'll find a complete list of the hooks and filters available in Easy Forms for MailChimp by YIKES.
|
165 |
+
|
166 |
+
**Filters**
|
167 |
+
|
168 |
+
* yikes-mailchimp-form-title-FORM_ID - alter the output of the form title of the specified form
|
169 |
+
* yikes-mailchimp-form-description-FORM_ID - alter the output of the form description of the specified form
|
170 |
+
* yikes-mailchimp-redirect-timer (ms : 1 second = 1000ms) alter the amount of time the user sees the success message before being redirected (default: 1500ms) (@parameters - $time, $form_id)
|
171 |
+
* yikes-mailchimp-redirect-url - Alter the URL of the page that the user will be redirected too on a successful submission. (@parameters - $url, $form_id, $page_data)
|
172 |
+
* yikes-mailchimp-before-submission - catch the merge variables of all forms before they get sent over to MailChimp
|
173 |
+
* yikes-mailchimp-before-submission-FORM_ID - catch the merge variables of the specified form before they get sent over to MailChimp
|
174 |
+
* yikes-mailchimp-after-submission - catch the merge variables of all forms after they get sent over to MailChimp
|
175 |
+
* yikes-mailchimp-after-submission-FORM_ID - catch the merge variables of the specified form after they get sent over to MailChimp
|
176 |
+
* yikes-mailchimp-user-role-access - Alter who can access this plugin page by capability (default 'manage_options' - admins)
|
177 |
+
* yikes-mailchimp-international-phone-pattern - Alter the regex pattern for acceptable international phone number formats. (process form shortcode.php - line 295)
|
178 |
+
* yikes-mailchimp-us-phone-pattern - Alter the regex pattern for acceptable US phone number formats. (process form shortcode.php - line 295)
|
179 |
+
* yikes-mailchimp-zip-pattern - Alter the zip code regex pattern (Defaults to: \d{5,5}(-\d{4,4})?)
|
180 |
+
* yikes-mailchimp-process-default-tag - Pass the default tag through a filter to populate with dynamic content from the current site (process_form_shortcode.php - line 256)
|
181 |
+
* yikes-mailchimp-MERGE_TAG-label - Alter the specified field label text (affects standard fields & interest groups) (process_form_shortcode.php)
|
182 |
+
* yikes-mailchimp-MERGE_TAG-description - Alter the specified field description text (affects standard fields & interest groups) (process_form_shortcode.php) (if targeting an interest group, it will be the group_id instead of the merge tag) ($parameter - $description_content, $form_id)
|
183 |
+
* yikes-mailchimp-address-TYPE-label - Alter the field sub-label text for a specified address field (affects only standard address fields) (process_form_shortcode.php)
|
184 |
+
* yikes-mailchimp-form-submit-button - Alter the submit button to your liking (process_form_shortcode.php line 660) (@parameters - $submit_button, $form_id)
|
185 |
+
* yikes-mailchimp-form-submit-button-text - Alter the submit button text value (process_form_shortcode.php line 660) (@parameters - $submit_button_text, $form_id )
|
186 |
+
* yikes-mailchimp-form-submit-button-classes - Add additional classes to the submit button for further styling (process_form_shortcode.php line 660) (@parameters - $classes, $form_id )
|
187 |
+
* yikes-mailchimp-form-container-class - add additional classes to the parent form container (process_form_shortcode.php line 91) (@parameters - $class_name, $form_id)
|
188 |
+
* yikes-mailchimp-form-class - add additional classes to `<form>` element of your opt-in form (process_form_shortcode.php line 157) (@parameters - $class_name, $form_id)
|
189 |
+
* yikes-mailchimp-front-end-form-action-links - Add custom front end action links alongside Edit Form, Customize Form etc. (@parameters - $form_action_links, $form_id, $form_name)
|
190 |
+
* yikes-mailchimp-custom-default-value-tags - Define your own custom pre-defined tags to populate the default value fields with - these tags appear in the modal - (@parameters - $pre_defined_tags_array)
|
191 |
+
* yikes-mailchimp-parse-custom-default-value - Process your custom default merge tag into a custom value to populate the form field with - (Goes hand in hand with `yikes-mailchimp-custom-default-value-tags` filter)
|
192 |
+
* yikes-mailchimp-field-data - Filter form field data such as placeholder, label, etc. (@parameters - $field_array, $field, $form_id) (process_form_shortcode.php - line 258 & process_preview_form_shortcode.php - line 258)
|
193 |
+
* yikes-mailchimp-user-subscribe-api-request - Alter the API request whenever a new user subscribed (@parameters - $api_request data, $form_id, $list_id, $email ) (process_form_shortcode.php/process_form_shortcode_ajax.php)
|
194 |
+
* yikes-mailchimp-subscriber-count-value - Adjust the returned value for the total subscriber count of a given MailChimp mailing list as needed. (@parameters - $subscriber_count) (yikes-mailchimp-subscriber-count.php- line 80)
|
195 |
+
* yikes-mailchimp-interest-group-checkbox-error - Alter the checkbox interest group required error response (displayed when a checkbox interest group is set to required, but is left blank)(@since 6.0.3)
|
196 |
+
* yikes-mailchimp-frontend-content - Custom content filter for this plugin to prevent others from hooking in where not wanted.
|
197 |
+
* yikes-mailchimp-interest-group-required-top-error - Alter the top of form error message. (displays only when interest group checkbox group is set to required and left blank (non-ajax only)) (@parameters - $count (# ofmissing required fields (integer)), $form_id )
|
198 |
+
* yikes-mailchimp-interest-group-checkbox-error - Alter the error displayed above each required interest group checkbox group only. Effects checkbox groups only. (@ajax forms only) (@parameter - $form_id)
|
199 |
+
* yikes-mailchimp-recaptcha-parameters - Alter any of the possible reCAPTCHA shortcode parameters (process_form_shortcode.php line 68) (parameters: $recaptcha_parameter_array, $form_id)
|
200 |
+
* yikes-mailchimp-checkbox-integration-subscribe-api-request - Filter the API request sent to MailChimp. (parameters: @type - the integration type (ie: comment, contact_form_7 etc.)
|
201 |
+
* yikes-mailchimp-frontend-date-picker-format - Alter the date format. For additional help, see the [knowledge base](https://yikesplugins.com/support/knowledge-base/how-do-i-change-the-frontend-date-picker-format/).
|
202 |
+
* yikes-mailchimp-preloader - Filter allowing users to setup a custom preloader image.
|
203 |
+
* yikes-mailchimp-update-email-subject - Filter the subject line for the email that is generated and sent when a user needs to update their subscription info.
|
204 |
+
* yikes-mailchimp-update-email-content - Filter the content of the email that is generated and sent when a user needs to update their subscription info.
|
205 |
+
* yikes-mailchimp-success-response - Alter the success response text (@parameters: $response_text, $form_id, $submitted_form_variables)
|
206 |
+
* yikes-mailchimp-default-country-value - Alter the default country selected in the country dropdown.
|
207 |
+
* yikes-mailchimp-recaptcha-required-error - Filter the error displayed back to the user when an error occurs during the reCAPTCHA submission process. (@parameters: $error_text)
|
208 |
+
* yikes-mailchimp-sslverify - Toggle sslverify on/off when attempting to validate your API key with the MailChimp API servers.
|
209 |
+
|
210 |
+
**Actions**
|
211 |
+
|
212 |
+
* yikes-mailchimp-form-submission - do something with the user email + form data on form submission
|
213 |
+
* yikes-mailchimp-form-submission-FORM_ID - do something with the user email + form data on form submission (specific form)
|
214 |
+
* yikes-mailchimp-before-form - output content before all forms (@parameters - $form_id)
|
215 |
+
* yikes-mailchimp-after-form - output content after all forms (@parameters - $form_id)
|
216 |
+
* yikes-mailchimp-before-checkbox - output custom content before the opt-in checkbox for all integrations
|
217 |
+
* yikes-mailchimp-after-checkbox - output custom content after the opt-in checkbox for all integrations
|
218 |
+
* yikes-mailchimp-support-page - output custom content on the support page (used to add our support form for premium users)
|
219 |
+
* yikes-mailchimp-edit-form-section-links - add additional links to the edit form page next to 'Custom Messages'
|
220 |
+
* yikes-mailchimp-edit-form-sections - add custom section to the edit form page
|
221 |
+
* yikes-mailchimp-edit-form-notice - hook to display a custom notice on the edit form page
|
222 |
+
* yikes-mailchimp-shortcode-enqueue-scripts-styles - hook to enqueue custom scripts & styles wherever the shortcode is being used (@paremeter $form_id - pass the id of the current form)
|
223 |
+
* yikes-mailchimp-additional-form-fields - define additional fields to add below all forms (@parameter $form_data - all data associated with the given form)
|
224 |
+
* yikes-mailchimp-custom-form-actions - add custom action links on the manage forms page (alongside Edit, Duplicate, Shortcode, Delete ) (@parameter $form_id - the id of the form)
|
225 |
+
* yikes-mailchimp-api-curl-request - custom action hook to disable curl verification (not recommended - see the following [KB article](https://yikesplugins.com/support/knowledge-base/i-receive-the-error-ssl-certificate-problem-unable-to-get-local-issuer-certificate-why/))
|
226 |
+
* yikes-mailchimp-list-form-fields-metabox - action hook allowing additional content to be added to the 'Form Fields' metabox on the view list page.
|
227 |
+
* yikes-mailchimp-list-interest-groups-metabox - action hook allowing users to add additional content inside of the interest groups metabox on the view list page.
|
228 |
+
|
229 |
+
== Changelog ==
|
230 |
+
|
231 |
+
= Easy Forms for MailChimp 6.0.5.5 - April 5th, 2016 =
|
232 |
+
* Fixed icompatability with the avada theme options page.
|
233 |
+
* Removed the admin dashboard widgets for non-admins. Note: To alter, use the `yikes-mailchimp-user-role-access` filter.
|
234 |
+
|
235 |
+
= Easy Forms for MailChimp 6.0.5.4 - March 30th, 2016 =
|
236 |
+
* Added `yikes-mailchimp-before-form-submission` hook, to perform actions before data gets sent to MailChimp.
|
237 |
+
* Setup unit tests, wrote a few basic tests to start.
|
238 |
+
* Added `no_priv` to the update profile email, so users who are not logged in do not hit an error.
|
239 |
+
|
240 |
+
= Easy Forms for MailChimp 6.0.5.3 - March 14th, 2016 =
|
241 |
+
* Removed rogue `return;` causing blank screen on certain pages.
|
242 |
+
* Wrapped transient in else statement to prevent wrong data from being stored when an error is hit.
|
243 |
+
|
244 |
+
= Easy Forms for MailChimp 6.0.5.2 - March 11th, 2016 =
|
245 |
+
* Added extra error check for empty forms.
|
246 |
+
* Fixed incorrect 'Invalid Email' response being displayed to the user. (Now more user friendly)
|
247 |
+
* Fixed some checkbox integrations not working properly.
|
248 |
+
* Enhanced error logging.
|
249 |
+
|
250 |
+
= Easy Forms for MailChimp 6.0.5.1 - March 7th, 2016 =
|
251 |
+
* Cleaned up an error getting by the check when no interest groups were enabled on a form.
|
252 |
+
* Ensured 'invalid email' error was being used where appropriate.
|
253 |
+
|
254 |
+
= Easy Forms for MailChimp 6.0.5 - March 5th, 2016 =
|
255 |
+
* Removed the old MailChimp PHP wrapper (increasing stability, and decreasing overall plugin size by 200+kb).
|
256 |
+
* All API requests are now handled via WP HTTP class (goodbye SSL cert errors)
|
257 |
+
* Added new `yikes-mailchimp-sslverify` filter to toggle true/false on API requests.
|
258 |
+
* Added a new 'View List' link below the associated lists on the form edit page.
|
259 |
+
* Updated all api requests throughout the plugin.
|
260 |
+
* Re-wrote both the ajax and non-ajax form submission files.
|
261 |
+
* Re-wrote form validation, error checks and success/error responses.
|
262 |
+
* More specific error messages now coming from MailChimp for a better debugging experience.
|
263 |
+
* Repaired broken strings, Optin/optin to Opt-in/opt-in, reCaptcha to reCAPTCHA.
|
264 |
+
* Fixed user data not properly displaying on the user cards page.
|
265 |
+
|
266 |
+
= Easy Forms for MailChimp 6.0.4.7 - March 4th, 2016 =
|
267 |
+
* Fix error being thrown when the user has not set their name on the profile page.
|
268 |
+
* Updated the API validation function to use WP HTTP class. (workaround for SSL cert error preventing API key validation)
|
269 |
+
* Add 'Custom URL' selection to page redirect drop down, allow users to hard code a custom URL to redirect users to (third party site etc.)
|
270 |
+
|
271 |
+
= Easy Forms for MailChimp 6.0.4.6 - March 2nd, 2016 =
|
272 |
+
* Repair 'update existing subscriber' parameter in the API request to respect the options set for the given form (AJAX and non-AJAX forms).
|
273 |
+
|
274 |
+
= Easy Forms for MailChimp 6.0.4.5 - March 1st, 2016 =
|
275 |
+
* Added `load_plugin_textdomain()` call to base class.
|
276 |
+
* Added missing string to translation.
|
277 |
+
|
278 |
+
= Easy Forms for MailChimp 6.0.4.4 - February 29th, 2016 =
|
279 |
+
* Fixed reCAPTCHA check being skipped when a non-ajax form is submitted.
|
280 |
+
* Fixed incorrect variable name in reCAPTCHA form submission (non-ajax).
|
281 |
+
* Re-worded the reCAPTCHA error message when left blank.
|
282 |
+
* Passed new reCAPTCHA error message through new filter (`yikes-mailchimp-recaptcha-required-error` - works for AJAX and standard forms).
|
283 |
+
* Added missing placeholder/default values to the date form fields.
|
284 |
+
* Fixed foreign characters causing issues on certain form fields (all languages should now work without issues).
|
285 |
+
|
286 |
+
= Easy Forms for MailChimp 6.0.4.3 - February 23rd, 2016 =
|
287 |
+
* Added new filter to alter the success message from the form (`yikes-mailchimp-success-response` - see readme.txt for help).
|
288 |
+
* Added new filter to alter the zip code regex pattern (`yikes-mailchimp-zip-pattern` - see readme.txt for help and default value).
|
289 |
+
* Added new filter to alter the default country selection in the dropdown. (`yikes-mailchimp-default-country-value` - Defaults to 'US'.)
|
290 |
+
* Altered zip/state fields, when the default value is set to something other than US via `yikes-mailchimp-default-country-value`.
|
291 |
+
* Removed `height: 100%` CSS declaration on form fields (causing minor issues on some themes).
|
292 |
+
* Tweaked front end .js.
|
293 |
+
|
294 |
+
= Easy Forms for MailChimp 6.0.4.2 - February 18th, 2016 =
|
295 |
+
* Add missing .js file to trigger the update existing subscriber detials email on non-ajax forms.
|
296 |
+
* Re-worded a few strings.
|
297 |
+
|
298 |
+
= Easy Forms for MailChimp 6.0.4.1 - February 17th, 2016 =
|
299 |
+
* Fixed foreign languages saving field labels with backslashes.
|
300 |
+
* Fixed foreign language dropdown not saving/displaying properly.
|
301 |
+
* Setup two-factor authentication when users go to update subscription details.
|
302 |
+
* Added new filters, `yikes-mailchimp-update-email-subject` and `yikes-mailchimp-update-email-content`.
|
303 |
+
* Removed languages directory, as everything is now handled within GlotPress.
|
304 |
+
|
305 |
+
= Easy Forms for MailChimp 6.0.4 - February 1st, 2016 =
|
306 |
+
* Added a conditional to upgrade the database if the user is not currently up to date.
|
307 |
+
* Some users report not being able to update form settings, due to database tables not being present.
|
308 |
+
|
309 |
+
= Easy Forms for MailChimp 6.0.3.9 - January 31st, 2016 =
|
310 |
+
* Refactored date form field submissions, to properly format international dates (dd/mm/yyyy).
|
311 |
+
* Re-worded sections.
|
312 |
+
* Added new screenshots.
|
313 |
+
|
314 |
+
= Easy Forms for MailChimp 6.0.3.8 - January 29th, 2016 =
|
315 |
+
* Added a new custom description parameter to the shortcode. eg: `[yikes-mailchimp custom_description="This is a custom description" description="1"]`
|
316 |
+
* Added all new settings on a per form level. New options now include - Form classes, Inline form, Submit button type, Submit button classes, schedule form by date/time, and require users to be logged in.
|
317 |
+
* Users can now specify if they want a form to display inline by using the `inline="1"` parameter in the shortcode. Example: `[yikes-mailchimp inline="1"]`. The shortcode parameter will take precedence over the form setting.
|
318 |
+
* Users can now set the submit button to image, and specify a custom image to use.
|
319 |
+
* Tweaked styles on the 'Account Activity/Chimp Chatter' page.
|
320 |
+
* Re-factored a few functions to be more performant.
|
321 |
+
* Added new, additional hooks for our add-ons to make use of. (`yikes-mailchimp-list-interest-groups-metabox`)
|
322 |
+
* Fixed the typo in our check box integration filter from `yikes-mailchimp-checkbox-integration-subscibe-api-request` to `yikes-mailchimp-checkbox-integration-subscribe-api-request`.
|
323 |
+
* Added missing `$charset_collate` variable when creating the database tables - which caused encoding issues with a few foreign characters.
|
324 |
+
* Localized all date pickers - for our international users.
|
325 |
+
* Added new sections to the welcome screen - 'Knowledge Base' and 'Add-Ons'.
|
326 |
+
* Fixed foreign language character encoding, and storing in database as question marks.
|
327 |
+
* Fixed date formats not storing properly when adding a date/birthday field to your form.
|
328 |
+
* Fixed the form editor being hidden on medium-width screens.
|
329 |
+
|
330 |
+
= Easy Forms for MailChimp 6.0.3.7 - December 28th, 2015 =
|
331 |
+
* Fixed certain [recaptcha parameters](https://yikesplugins.com/support/knowledge-base/how-do-i-customize-the-recaptcha-field/) not working properly
|
332 |
+
|
333 |
+
= Easy Forms for MailChimp 6.0.3.6 - December 28th, 2015 =
|
334 |
+
* Removed extra closing php tag after 'Interest Group' dropdown field
|
335 |
+
|
336 |
+
= Easy Forms for MailChimp 6.0.3.5 - December 20th, 2015 =
|
337 |
+
* Ensured the `$form_id` variable is set before including the form processing file for non-ajax forms.
|
338 |
+
* Updated `yikes_retrieve_form_settings()`, to ensure we have a `$form_id` and settings to return.
|
339 |
+
|
340 |
+
= Easy Forms for MailChimp 6.0.3.4 - December 18th, 2015 =
|
341 |
+
* Make bundled classes work when field labels are hidden.
|
342 |
+
* Way to reset submission counts for individual forms.
|
343 |
+
* URL fields now prepend http:// to prevent confusion with the end user.
|
344 |
+
* Added conditionals to hide state/zip input fields in the address section when the country != US.
|
345 |
+
* Multiple reCAPTCHAs on a single page should now work.
|
346 |
+
* Non-Ajax Forms set to redirect, throw errors
|
347 |
+
* Check form descriptions generating additional `<p>` tags.yikes-mailchimp-form-description is not wrapped around the description.
|
348 |
+
* Add helper function to retrieve form data by ID. (eg: `$form_data = yikes_get_form_data( 1 );` )
|
349 |
+
|
350 |
+
= Easy Forms for MailChimp 6.0.3.3 - November 12th, 2015 =
|
351 |
+
* Patched a minor security issue where post passwords were accessible prior to entering the password - (props @ldwd)
|
352 |
+
|
353 |
+
= Easy Forms for MailChimp 6.0.3.2 - November 9th, 2015 =
|
354 |
+
* International characters in custom messages causing some escaping issues for AJAX forms.
|
355 |
+
* Added Google reCAPTCHA override to the shortcode recaptcha="1"/recpatcha="0" to manually set it on a per form basis (still needs to be globally enabled on the settings page).
|
356 |
+
* Added additional reCAPTCHA parameters to the shortcode. (see <a href="https://yikesplugins.com/support/knowledge-base/how-do-i-customize-the-recaptcha-field/" target="_blank">https://yikesplugins.com/support/knowledge-base/how-do-i-customize-the-recaptcha-field/</a>).
|
357 |
+
* Re-coded the redirect function for non-ajax forms, so that it properly utilizes `wp_redirect()` instead of a .js injection after submission.
|
358 |
+
* Added new constant `YIKES_MAILCHIMP_NULL_DEBUG` to debug 'null' API response from MailChimp API (see <a href="https://yikesplugins.com/support/knowledge-base/i-received-the-following-error-we-received-an-unexpected-error-null/" target="_blank">https://yikesplugins.com/support/knowledge-base/i-received-the-following-error-we-received-an-unexpected-error-null/</a>).
|
359 |
+
|
360 |
+
= Easy Forms for MailChimp 6.0.3.1 - November 2nd, 2015 =
|
361 |
+
* Repair issue where multiple MailChimp AJAX forms on same page was only submitting last displayed form.
|
362 |
+
* Parsed `[yikes-mailchimp-subscriber-count]`, to display the number of subscribers in the associated MailChimp list on the manage forms page for form descriptions.
|
363 |
+
* When 'Hide Label' and 'Hide Field' are both checked, ensure that the associated MailChimp form field is hidden.
|
364 |
+
* Confirmed error messages via the MailChimp API are working as intended for both AJAX/standard opt-in forms.
|
365 |
+
* Fixed issue/spacing of the secondary 'Update Form' button on the edit forms page.
|
366 |
+
|
367 |
+
= Easy Forms for MailChimp 6.0.3 - October 29th, 2015 =
|
368 |
+
* Add filter to allow altering field descriptions. `yikes_mailchimp_frontend_content`
|
369 |
+
* Resolve error thrown when no default is set for checkbox inerest groups.
|
370 |
+
* Alter old knowledge base URLs to new KB URL.
|
371 |
+
* Confirm each MailChimp form field type 'Hide Field' works as expected.
|
372 |
+
* Added a bit of spacing between checkbox/radio button default options.
|
373 |
+
* Added new class `yikes-mailchimp-form-class` to allow for additional classes to be added to the `<form>` element.
|
374 |
+
* Implemented a fix for required MailChimp interest group checkbox type. (ajax = js validation/non-ajax = php).
|
375 |
+
* Appended form IDs to input field ID parameter. The new form IDs now prepended with yikes-mc-form-#- -- eg: Old: id="EMAIL", New: id="yikes-mc-form-1-EMAIL".
|
376 |
+
* Add a "Save Form" button to the left of the new "Clear Form Fields" on the Form builder. (better UX)
|
377 |
+
* Integrate with Visual Composer plugin.
|
378 |
+
* Ability to add a class to the form tag. Appropriate filter is `yikes-mailchimp-form-class` for `<form>` element, and `yikes-mailchimp-form-container-class` for parent `<section>` container.
|
379 |
+
* Fix Site Origin Page builder issues saving the widget form IDs.
|
380 |
+
|
381 |
+
= Easy Forms for MailChimp 6.0.3 - October 29th, 2015 =
|
382 |
+
* Fixed undefined variable warning for interest group labels
|
383 |
+
* Added new filter to allow alterations of each form field description
|
384 |
+
|
385 |
+
= Easy Forms for MailChimp 6.0.2.4 - October 17th, 2015 =
|
386 |
+
* Fixed error thrown for some users on edit forms page 'save'.
|
387 |
+
* Added new shortcode: `[yikes-mailchimp-subscriber-count list="#"]` to display the number of subscribers to a specified list (use: `[yikes-mailchimp-subscriber-count form="form_id"]` (preferred) or `[yikes-mailchimp-subscriber-count list="mc_list_id"]`)
|
388 |
+
* Added new filter to filter the submit button text (yikes-mailchimp-form-submit-button-text)
|
389 |
+
* Tweaked international phone number validation - now regex checks [0-9]{1,}
|
390 |
+
* Added two new classes to field labels - `.merge_tag-label` (eg: EMAIL-label) on all fields & `.yikes-mailchimp-field-required` on fields set to required.
|
391 |
+
* Added capability check to TinyMCE button in wp editor (defaults to manage_options).
|
392 |
+
* Tweaked 'show some love' container on the edit forms page.
|
393 |
+
* Ensured 'Clear Form Fields' button was hidden after all form fields were removed.
|
394 |
+
* Passed form descriptions through `the_content()` to allow for shortcodes to be processed.
|
395 |
+
|
396 |
+
= Easy Forms for MailChimp 6.0.2.3 - October 16th, 2015 =
|
397 |
+
* Fixed incorrect opt-in time being sent to MailChimp for new subscribers (fixed for checkbox integrations, ajax and non-ajax forms)
|
398 |
+
* Fixed 'Hide Label' displaying twice under interest groups
|
399 |
+
* Fixed error thrown for custom_fields for some users
|
400 |
+
* Fixed dropdown interest group data not being sent to MailChimp properly
|
401 |
+
|
402 |
+
= Easy Forms for MailChimp 6.0.2.2 - October 15th, 2015 =
|
403 |
+
* Added the ability to bulk remove form fields from the form builder
|
404 |
+
* Fixed hidden interest groups from not displaying the default value properly
|
405 |
+
* Added hidden interest groups to the field type switch
|
406 |
+
* Fixed interest group errors thrown for some users
|
407 |
+
* Added new option to replace/update interest groups
|
408 |
+
|
409 |
+
= Easy Forms for MailChimp 6.0.2/6.0.2.1 - October 12th, 2015 =
|
410 |
+
* Added ability to pre-select interest groups for each third party integration (bbpress, contact form 7, buddypress, edd, woocommerce, comment form, registration form).
|
411 |
+
* Removed "Check your email for the confirmation message." from the default success message if single opt-in is checked.
|
412 |
+
* Fixed Address field, zip not hiding properly.
|
413 |
+
* Tweaked class names, labels.
|
414 |
+
* Renamed clickable pre-defined tags to something more user friendly instead of tags (eg: 'Page Title' instead of {page_title}).
|
415 |
+
* Renamed the `field-third-left/right` class to `field-third` as it made more sense. Now elements floated left.
|
416 |
+
* Tweaked pre-defined class styles.
|
417 |
+
* Altered pre-defined class names for the address fields.
|
418 |
+
* Built in check for MailChimp class to prevent conflict with other plugins integrating MailChimp.
|
419 |
+
* Built in responsive styles for pre-defined form class styles (field-half-left/right & field-third).
|
420 |
+
* Tweak responsive styles on calendar date picker on mobile devices.
|
421 |
+
* Confirm each integration is working as intended.
|
422 |
+
|
423 |
+
= Easy Forms for MailChimp 6.0.1 - October 7th, 2015 =
|
424 |
+
* This release is a <strong>complete</strong> rewrite of the previous version. Before upgrading to the latest release, it is <em>highly recommended</em> that you take a backup of your database.
|
425 |
+
* Changed plugin name to Easy Forms for MailChimp to comply with new guidelines for [Plugins that Include Company and/or Product Names in the Plugin Name](https://make.wordpress.org/plugins/2015/10/05/guidelines-for-plugins-that-include-company-andor-product-names-in-the-plugin-name/)
|
426 |
+
* Enhancements:
|
427 |
+
* All forms have moved to their own table in the database, yikes_easy_mc_forms.
|
428 |
+
* Admin interface has been re-designed for a seamless integration into the WordPress dashboard.
|
429 |
+
* You can now create an unlimited number of forms, and assign them to any of your MailChimp lists (even multiple forms to the same list).
|
430 |
+
* Now you can easily duplicate forms at the click of a button.
|
431 |
+
* We have built out an advanced debugging feature that will log MailChimp errors as they occur, for easy debugging.
|
432 |
+
* You can now toggle on/off AJAX form submissions on a per form basis.
|
433 |
+
* Toggle on or off the MailChimp welcome email being sent.
|
434 |
+
* You can now quickly switch which MailChimp list your forms assign subscribers to.
|
435 |
+
* We now support every type of MailChimp field you can assign to a form, including interest groups.
|
436 |
+
* You can now set custom success and error messages, to set messages in your native language.
|
437 |
+
* Easily browse your MailChimp lists and view individual subscribers. Manage your subscriptions directly within the plugin.
|
438 |
+
* We've completely re-designed the settings pages to allow for easier navigation.
|
439 |
+
* A whole number of additional settings have been enabled for different form input fields.
|
440 |
+
* Español translated started by @hiwhatsup
|
441 |
+
* Française translated by @mialevesque
|
442 |
+
* Português do Brasil translated by @enxaqueca
|
443 |
+
* reCAPTCHA now loads in the language of the site it's being displayed on.
|
444 |
+
* All translations functions have been implemented for worldwide i18n.
|
445 |
+
* We have built out an API and implemented a number of hooks and filters to enable developers to easily extend the plugin [see knowledge base](https://yikesplugins.com/support/knowledge-base/product/developer-documentation/?utm_source=wp_plugin_repo&utm_medium=link&utm_campaign=easy_forms_for_mailchimp)
|
446 |
+
* We have started building out a number of add ons to extend the base functionality of the plugin. [check them out](https://yikesplugins.com/plugins/?utm_source=wp_plugin_repo&utm_medium=link&utm_campaign=easy_forms_for_mailchimp)
|
447 |
+
|
448 |
+
= Easy MailChimp Forms 5.4.3 - March 17th, 2015 =
|
449 |
+
* Fixed: Re-import form fields function not properly refreshing the page
|
450 |
+
* Fixed: Updating a MailChimp list field no longer throws an empty error
|
451 |
+
|
452 |
+
= Easy MailChimp Forms 5.4.2 - March 10th, 2015 =
|
453 |
+
* Fixed: custom class names on input fields merged together with other class names making them un-usable.
|
454 |
+
|
455 |
+
= Easy MailChimp Forms 5.4.1 - March 3rd, 2015 =
|
456 |
+
* Fixed: tinyMCE error thrown when saving settings page, ultimately preventing the ability to store the MailChimp API key.
|
457 |
+
|
458 |
+
= Easy MailChimp Forms 5.4 - March 2nd, 2015 =
|
459 |
+
* Enhancement: Re-bundled unaltered MailChimp API wrapper class file, and added appropriate class check to prevent conflicts with other MailChimp plugins (Gravity Forms etc.)
|
460 |
+
* Enhancement: Removed the WYSIWYG editor from the options page. This caused issues for some users who were unable to validate the MailChimp API key.
|
461 |
+
* Enhancement: Added a new setting to toggle the sending of the MailChimp welcome email. Users can now disable the email all together, on a list by list basis. (checked = disabled)
|
462 |
+
* Enhancement: Prevented users from being able to update the 'EMAIL' merge variable. Added a notification with instruction on what filter to use.
|
463 |
+
* Enhancement: Replaced all instances of the old class name (wpyksMCMailChimp API) with the appropriate MailChimp class (Mailchimp)
|
464 |
+
* Enhancement: Stripped slashes and properly escaped interest group labels
|
465 |
+
|
466 |
+
|
467 |
+
= Easy MailChimp Forms 5.3.3 - February 26th, 2015 =
|
468 |
+
* Enhancement: Added a new filter to alter field labels. Very helpful when you want to alter the default MailChimp 'Email Address' field label to something else. (`yikes_mc_field_label`) (see 'filters' section in 'Other Notes')
|
469 |
+
|
470 |
+
= Easy MailChimp Forms 5.3.2 - February 17th, 2015 =
|
471 |
+
* Fixed: Patched the error displayed below the opt-in forms when `display_yikes_mc_form_messages` is not defined.
|
472 |
+
|
473 |
+
= Easy MailChimp Forms 5.3.1 - January 13th, 2014 =
|
474 |
+
* Enhancement: Added new filter to allow users to change which role has access to the MailChimp administration pages ( `yks-mailchimp-user-role` ) ( check readme for example )
|
475 |
+
|
476 |
+
= Easy MailChimp Forms 5.3 - January 11th, 2014 =
|
477 |
+
* Enhancement: Added ability to move the success + error messages above or below the form based on a defined constant ( `display_yikes_mc_form_messages` [options: before/after] )
|
478 |
+
* Enhancement: Added new settings and the ability to show/hide * = required field , from the top of the forms, via the settings page
|
479 |
+
* Enhancement: Fixed incorrect error 'click here to update your profile' shown on front end on all errors
|
480 |
+
|
481 |
+
= Easy MailChimp Forms 5.2 - December 10th, 2014 =
|
482 |
+
* New Feature: Added ability to add, edit or delete form fields directly from the WordPress dashboard
|
483 |
+
* New Feature: Added ability to add, edit or delete interest groups directly from the WordPress dashboard
|
484 |
+
* New Feature: Add "Update" link to forms when a user has previously subscribed
|
485 |
+
* New Feature: Added 'default' option to text fields ( with custom pre-defined tags : {post_id} , {post_title} , {page_url} , {blog_name} , {user_logged_in} with the ability to define your own! )
|
486 |
+
* New Feature: Added the ability to adjust required state, visibility state, merge tag and more
|
487 |
+
* New Feature: Added the ability to toggle between ssl_verifypeer true/false
|
488 |
+
* New Feature: Added an error log to help users diagnose errors happening within the plugin (and updated advanced debugging) - found on the debug options of the settings page
|
489 |
+
* Enhancement: Remove JavaScript dependency to populate place holder values
|
490 |
+
* Enhancement: Replaced CAPTCHA with the all new reCAPTCHA API from Google
|
491 |
+
* Enhancement: Introduced all new filters ( check documentation for examples )
|
492 |
+
* Enhancement: Un-checking 'visibility' now hides the input field (instead of not generating it at all)
|
493 |
+
* Enhancement: Re-defined YKSEME_PATH for users who have the plugins folder outside of wp-content
|
494 |
+
* Enhancement: Added new classes to labels and input fields on the front end forms ( new classes yks-mc-label-field-label , yks-mc-form-row-field-label , yks-mc-input-field-row-field-label , yks-mc-input-field-label )
|
495 |
+
* Bug Fix: Re-sorting fields that had a stored custom class name didn't store properly
|
496 |
+
* Bug Fix: Wrapped bundled template text in filters
|
497 |
+
* Bug Fix: Repaired some broken filters (get_form_data_before_send)
|
498 |
+
* Bug Fix: Fixed labels on 'Manage List Forms' page and added field names to titles
|
499 |
+
* Bug Fix: Fixed path to check box images on 'Clean Blue' bundled templates
|
500 |
+
* Bug Fix: Fixed empty MailChimp API key from outputting any string (confused some users)
|
501 |
+
* Other: Split main class file into multiple included files (help organize the main class file (sub-files located in /lib/inc/)
|
502 |
+
* Other: Began to build up a [Wiki](https://github.com/yikesinc/yikes-inc-easy-mailchimp-extender/wiki) on Github , for plug in installation/usage instructions
|
503 |
+
* Other: Altered single/double opt-in strings inside shortcode_form.php ([reference thread](https://wordpress.org/support/topic/code-mangling-on-script-use-in-messageserror-handling))
|
504 |
+
* Other: Removed 'Interest Group Label' option, as users can now update the name from within the plugin
|
505 |
+
|
506 |
+
= Easy MailChimp Forms 5.1.1 - November 5, 2014 =
|
507 |
+
Fix: repair 'Opt In' default list drop down on options page
|
508 |
+
Fix: repair errors being thrown when a commenter is added to a list
|
509 |
+
|
510 |
+
= Easy MailChimp Forms 5.1.0.1 - November 4, 2014 =
|
511 |
+
|
512 |
+
Removed the update MailChimp profile info link, some users brought up security concerns.
|
513 |
+
Fixed missing argument when using table display formatting.
|
514 |
+
|
515 |
+
= Easy MailChimp Forms 5.1 - November 3, 2014 =
|
516 |
+
|
517 |
+
We have added brand new functionality, allowing users to easily customize forms on the fly, through a familiar UI as well as a templating framework to allow users to design and implement their own custom forms. A minor security bug was patched in this release as well. We fixed an issue with the MailChimp API key check running on each page load, and added a few new filters to allow users to alter text.
|
518 |
+
|
519 |
+
= Easy MailChimp Forms 5.0.9 - October 3rd, 2014 =
|
520 |
+
|
521 |
+
**Fixes**
|
522 |
+
|
523 |
+
* Added autocomplete="false" to MailChimp API input field
|
524 |
+
* Added event listener to form submission (forms can now be placed in modals/slideout menus)
|
525 |
+
|
526 |
+
= Easy MailChimp Forms 5.0.8 - September 23, 2014 =
|
527 |
+
|
528 |
+
**Fixes**
|
529 |
+
|
530 |
+
* Band-aid fix for the -1 response returned from ajax.php
|
531 |
+
|
532 |
+
= Easy MailChimp Forms 5.0.7 - September 19, 2014 =
|
533 |
+
|
534 |
+
**Fixes**
|
535 |
+
|
536 |
+
* Security Vulnerability patched - props @g0blinResearch for privately disclosing the issue
|
537 |
+
|
538 |
+
= Easy MailChimp Forms 5.0.6 - August 22, 2014 =
|
539 |
+
|
540 |
+
**Fixes**
|
541 |
+
|
542 |
+
* fix bug with nonce security check when using table 'Preferred Form Layout' setting
|
543 |
+
|
544 |
+
= Easy MailChimp Forms 5.0.5 - August 21, 2014 =
|
545 |
+
|
546 |
+
**Fixes**
|
547 |
+
|
548 |
+
- added `stripslashes()` to the following settings fields :
|
549 |
+
- Single Opt-in Confirmation Message
|
550 |
+
- Double Opt-in Confirmation Message
|
551 |
+
- Interest Group Label
|
552 |
+
- Opt-in Checkbox Text
|
553 |
+
|
554 |
+
**Updates**
|
555 |
+
|
556 |
+
- Updated readme FAQ section
|
557 |
+
|
558 |
+
= Easy MailChimp Forms 5.0.4 - August 6, 2014 =
|
559 |
+
* Update SSL conditional in main plugin file
|
560 |
+
* Added mcrypt module check, for MailChimp API encryption
|
561 |
+
* Conditionally loaded scripts and styles in admin ( prevent conflicts )
|
562 |
+
* Included NONCE security checks on form submissions ( helps prevent CSRF and other attacks )
|
563 |
+
* Added proper update task function to add missing settings to the options page ( prevents undefined variables for new settings )
|
564 |
+
* Added missing styles to post page ( added missing icon to tinyMCE button )
|
565 |
+
* Added missing styles to widget page
|
566 |
+
* Adjusted Chimp Chatter activity time formatting to return correct time based on user time zone
|
567 |
+
* New Feature: Real time updates to MailChimp Account Activity ( utilizing the heartbeat MailChimp API )
|
568 |
+
* New Feature: Added MailChimp account activity widget to dashboard ( with live updates using heartbeat MailChimp API )
|
569 |
+
* Added screenshot of admin dashboard account activity widget
|
570 |
+
|
571 |
+
= Easy MailChimp Forms 4.5 =
|
572 |
+
* Added reCAPTCHA support to prevent bots and spammers from submitting forms
|
573 |
+
* Split settings page into three separate sections
|
574 |
+
* Removed Jetpack sharing icons from appearing in the success messages (removed sharedaddy filter)
|
575 |
+
* Updated translation files with new strings
|
576 |
+
* Update existing screen shots and add new screen shot
|
577 |
+
* Update FAQ
|
578 |
+
* Added "loaded server modules" to the debug page, to better aid in support requests
|
579 |
+
|
580 |
+
= Easy MailChimp Forms 3.0 =
|
581 |
+
* Update MailChimp API to v2.0
|
582 |
+
* Added MailChimp API Key Validation Check
|
583 |
+
|
584 |
+
= Easy MailChimp Forms 2.2.0 =
|
585 |
+
* Added support for multiples of the same MailChimp list
|
586 |
+
* Bug fixes
|
587 |
+
|
588 |
+
= Easy MailChimp Forms 2.1.0 =
|
589 |
+
* Changed name of plugin to Easy MailChimp Forms
|
590 |
+
* Added support for multiples of the same MailChimp list
|
591 |
+
* Bug fixes
|
592 |
+
|
593 |
+
= YIKES Inc Easy MailChimp Extender 2.0.0 =
|
594 |
+
* Supports custom merge vars now
|
595 |
+
* Allows import from MailChimp
|
596 |
+
* Allows Table or Div output
|
597 |
+
|
598 |
+
= YIKES Inc Easy MailChimp Extender 1.3.1 =
|
599 |
+
* Fixed form not submitting to MailChimp for anonymous users bug
|
600 |
+
|
601 |
+
= YIKES Inc Easy MailChimp Extender 1.3.0 =
|
602 |
+
* Custom merge vars allows more customized field configuration
|
603 |
+
|
604 |
+
= YIKES Inc Easy MailChimp Extender 1.2.0 =
|
605 |
+
* Removed required from First Name and Last Name fields
|
606 |
+
* Added update routines for future versions
|
607 |
+
|
608 |
+
= YIKES Inc Easy MailChimp Extender 1.1.0 =
|
609 |
+
* Changed the list logic and added a notice for the MERGE VAR naming schema
|
610 |
+
|
611 |
+
= YIKES Inc Easy MailChimp Extender 1.0.1 =
|
612 |
+
* Changed CSS paths from Absolute to Relative
|
613 |
+
|
614 |
+
= YIKES Inc Easy MailChimp Extender 1.0.0 =
|
615 |
+
* Initial Release
|
616 |
+
|
617 |
+
|
618 |
+
== Upgrade Notice ==
|
619 |
+
|
620 |
+
= Easy Forms for MailChimp 6.0.5.5 - April 5th, 2016 =
|
621 |
+
|
622 |
+
* Fixed icompatability with the avada theme options page.
|
623 |
+
* Removed the admin dashboard widgets for non-admins. Note: To alter, use the `yikes-mailchimp-user-role-access` filter.
|
624 |
+
|
625 |
+
= Easy Forms for MailChimp 6.0.5.4 - March 30th, 2016 =
|
626 |
+
|
627 |
+
* Added `yikes-mailchimp-before-form-submission` hook, to perform actions before data gets sent to MailChimp.
|
628 |
+
* Setup unit tests, wrote a few basic tests to start.
|
629 |
+
* Added `no_priv` to the update profile email, so users who are not logged in do not hit an error.
|
630 |
+
|
631 |
+
= Easy Forms for MailChimp 6.0.5.3 - March 14th, 2016 =
|
632 |
+
|
633 |
+
* Removed rogue `return;` causing blank screen on certain pages.
|
634 |
+
* Wrapped transient in else statement to prevent wrong data from being stored when an error is hit.
|
635 |
+
|
636 |
+
= Easy Forms for MailChimp 6.0.5.2 - March 11th, 2016 =
|
637 |
+
|
638 |
+
* Added extra error check for empty forms.
|
639 |
+
* Fixed incorrect 'Invalid Email' response being displayed to the user. (Now more user friendly)
|
640 |
+
* Fixed some checkbox integrations not working properly.
|
641 |
+
* Enhanced error logging.
|
642 |
+
|
643 |
+
= Easy Forms for MailChimp 6.0.5.1 - March 7th, 2016 =
|
644 |
+
|
645 |
+
* Cleaned up an error getting by the check when no interest groups were enabled on a form.
|
646 |
+
* Ensured 'invalid email' error was being used where appropriate.
|
647 |
+
|
648 |
+
= Easy Forms for MailChimp 6.0.5 - March 5th, 2016 =
|
649 |
+
|
650 |
+
* Removed the old MailChimp PHP wrapper (increasing stability, and decreasing overall plugin size by 200+kb).
|
651 |
+
* All API requests are now handled via WP HTTP class (goodbye SSL cert errors)
|
652 |
+
* Added new `yikes-mailchimp-sslverify` filter to toggle true/false on API requests.
|
653 |
+
* Added a new 'View List' link below the associated lists on the form edit page.
|
654 |
+
* Updated all api requests throughout the plugin.
|
655 |
+
* Re-wrote both the ajax and non-ajax form submission files.
|
656 |
+
* Re-wrote form validation, error checks and success/error responses.
|
657 |
+
* More specific error messages now coming from MailChimp for a better debugging experience.
|
658 |
+
* Repaired broken strings, Optin/optin to Opt-in/opt-in, reCaptcha to reCAPTCHA.
|
659 |
+
* Fixed user data not properly displaying on the user cards page.
|
660 |
+
|
661 |
+
= Easy Forms for MailChimp 6.0.4.7 - March 4th, 2016 =
|
662 |
+
|
663 |
+
* Fix error being thrown when the user has not set their name on the profile page.
|
664 |
+
* Updated the API validation function to use WP HTTP class. (workaround for SSL cert error preventing API key validation)
|
665 |
+
* Add 'Custom URL' selection to page redirect drop down, allow users to hard code a custom URL to redirect users to (third party site etc.)
|
666 |
+
|
667 |
+
= Easy Forms for MailChimp 6.0.4.6 - March 2nd, 2016 =
|
668 |
+
|
669 |
+
* Repair 'update existing subscriber' parameter in the API request to respect the options set for the given form (AJAX and non-AJAX forms).
|
670 |
+
|
671 |
+
= Easy Forms for MailChimp 6.0.4.5 - March 1st, 2016 =
|
672 |
+
|
673 |
+
* Added `load_plugin_textdomain()` call to base class.
|
674 |
+
* Added missing string to translation.
|
675 |
+
|
676 |
+
= Easy Forms for MailChimp 6.0.4.4 - February 29th, 2016 =
|
677 |
+
|
678 |
+
* Fixed reCAPTCHA check being skipped when a non-ajax form is submitted.
|
679 |
+
* Fixed incorrect variable name in reCAPTCHA form submission (non-ajax).
|
680 |
+
* Re-worded the reCAPTCHA error message when left blank.
|
681 |
+
* Passed new reCAPTCHA error message through new filter (`yikes-mailchimp-recaptcha-required-error` - works for AJAX and standard forms).
|
682 |
+
* Added missing placeholder/default values to the date form fields.
|
683 |
+
* Fixed foreign characters causing issues on certain form fields (all languages should now work without issues).
|
684 |
+
|
685 |
+
= Easy Forms for MailChimp 6.0.4.3 - February 23rd, 2016 =
|
686 |
+
|
687 |
+
* Added new filter to alter the success message from the form (`yikes-mailchimp-success-response` - see readme.txt for help).
|
688 |
+
* Added new filter to alter the zip code regex pattern (`yikes-mailchimp-zip-pattern` - see readme.txt for help and default value).
|
689 |
+
* Added new filter to alter the default country selection in the dropdown. (`yikes-mailchimp-default-country-value` - Defaults to 'US'.)
|
690 |
+
* Altered zip/state fields, when the default value is set to something other than US via `yikes-mailchimp-default-country-value`.
|
691 |
+
* Removed `height: 100%` CSS declaration on form fields (causing minor issues on some themes).
|
692 |
+
* Tweaked front end .js.
|
693 |
+
|
694 |
+
= Easy Forms for MailChimp 6.0.4.2 - February 18th, 2016 =
|
695 |
+
|
696 |
+
* Add missing .js file to trigger the update existing subscriber detials email on non-ajax forms.
|
697 |
+
* Re-worded a few strings.
|
698 |
+
|
699 |
+
= Easy Forms for MailChimp 6.0.4.1 - February 3rd, 2015 =
|
700 |
+
|
701 |
+
* Fixed foreign languages saving field labels with backslashes
|
702 |
+
* Fixed foreign language dropdown not saving/displaying properly
|
703 |
+
|
704 |
+
= Easy Forms for MailChimp 6.0.4 - February 1st, 2015 =
|
705 |
+
|
706 |
+
* Added a conditional to upgrade the database if the user is not currently up to date.
|
707 |
+
* Some users report not being able to update form settings, due to database tables not being present.
|
708 |
+
|
709 |
+
= Easy Forms for MailChimp 6.0.3.9 - January 31st, 2015 =
|
710 |
+
|
711 |
+
* Refactored date form field submissions, to properly format international dates (dd/mm/yyyy).
|
712 |
+
* Re-worded sections.
|
713 |
+
* Added new screenshots.
|
714 |
+
|
715 |
+
= Easy Forms for MailChimp 6.0.3.8 - January 29th, 2015 =
|
716 |
+
|
717 |
+
* Added a new custom description parameter to the shortcode. eg: `[yikes-mailchimp custom_description="This is a custom description" description="1"]`
|
718 |
+
* Added all new settings on a per form level. New options now include - Form classes, Inline form, Submit button type, Submit button classes, schedule form by date/time, and require users to be logged in.
|
719 |
+
* Users can now specify if they want a form to display inline by using the `inline="1"` parameter in the shortcode. Example: `[yikes-mailchimp inline="1"]`. The shortcode parameter will take precedence over the form setting.
|
720 |
+
* Users can now set the submit button to image, and specify a custom image to use.
|
721 |
+
* Tweaked styles on the 'Account Activity/Chimp Chatter' page.
|
722 |
+
* Re-factored a few functions to be more performant.
|
723 |
+
* Added new, additional hooks for our add-ons to make use of. (`yikes-mailchimp-list-interest-groups-metabox`)
|
724 |
+
* Fixed the typo in our check box integration filter from `yikes-mailchimp-checkbox-integration-subscibe-api-request` to `yikes-mailchimp-checkbox-integration-subscribe-api-request`.
|
725 |
+
* Added missing `$charset_collate` variable when creating the database tables - which caused encoding issues with a few foreign characters.
|
726 |
+
* Localized all date pickers - for our international users.
|
727 |
+
* Added new sections to the welcome screen - 'Knowledge Base' and 'Add-Ons'.
|
728 |
+
* Fixed foreign language character encoding, and storing in database as question marks.
|
729 |
+
* Fixed date formats not storing properly when adding a date/birthday field to your form.
|
730 |
+
* Fixed the form editor being hidden on medium-width screens.
|
731 |
+
|
732 |
+
= Easy Forms for MailChimp 6.0.3.7 - December 28th, 2015 =
|
733 |
+
|
734 |
+
* Fixed certain [recaptcha parameters](https://yikesplugins.com/support/knowledge-base/how-do-i-customize-the-recaptcha-field/) not working properly
|
735 |
+
|
736 |
+
= Easy Forms for MailChimp 6.0.3.6 - December 28th, 2015 =
|
737 |
+
|
738 |
+
* Removed extra closing php tag after 'Interest Group' dropdown field
|
739 |
+
|
740 |
+
= Easy Forms for MailChimp 6.0.3.5 - December 20th, 2015 =
|
741 |
+
|
742 |
+
* Ensured the `$form_id` variable is set before including the form processing file for non-ajax forms.
|
743 |
+
* Updated `yikes_retrieve_form_settings()`, to ensure we have a `$form_id` and settings to return.
|
744 |
+
|
745 |
+
= Easy Forms for MailChimp 6.0.3.4 - December 18th, 2015 =
|
746 |
+
|
747 |
+
* Make bundled classes work when field labels are hidden.
|
748 |
+
* Way to reset submission counts for individual forms.
|
749 |
+
* URL fields now prepend http:// to prevent confusion with the end user.
|
750 |
+
* Added conditionals to hide state/zip input fields in the address section when the country != US.
|
751 |
+
* Multiple reCAPTCHAs on a single page should now work.
|
752 |
+
* Non-Ajax Forms set to redirect, throw errors
|
753 |
+
* Check form descriptions generating additional `<p>` tags.yikes-mailchimp-form-description is not wrapped around the description.
|
754 |
+
* Add helper function to retrieve form data by ID. (eg: `$form_data = yikes_get_form_data( 1 );` )
|
755 |
+
|
756 |
+
= Easy Forms for MailChimp 6.0.3.3 - November 12th, 2015 =
|
757 |
+
|
758 |
+
* Patched a minor security issue where post passwords were accessible prior to entering the password - (props @ldwd)
|
759 |
+
|
760 |
+
= Easy Forms for MailChimp 6.0.3.2 - November 9th, 2015 =
|
761 |
+
|
762 |
+
* International characters in custom messages causing some escaping issues for AJAX forms.
|
763 |
+
* Added Google ReCaptcha override to the shortcode recaptcha="1"/recpatcha="0" to manually set it on a per form basis (still needs to be globally enabled on the settings page).
|
764 |
+
* Added additional reCAPTCHA parameters to the shortcode. (see <a href="https://yikesplugins.com/support/knowledge-base/how-do-i-customize-the-recaptcha-field/" tareget="_blank">https://yikesplugins.com/support/knowledge-base/how-do-i-customize-the-recaptcha-field/</a>).
|
765 |
+
* Re-coded the redirect function for non-ajax forms, so that it properly utilizes `wp_redirect()` instead of a .js injection after submission.
|
766 |
+
* Added new constant `YIKES_MAILCHIMP_NULL_DEBUG` to debug 'null' API response from MailChimp API (see <a href="https://yikesplugins.com/support/knowledge-base/i-received-the-following-error-we-received-an-unexpected-error-null/" target="_blank">https://yikesplugins.com/support/knowledge-base/i-received-the-following-error-we-received-an-unexpected-error-null/</a>).
|
767 |
+
|
768 |
+
= Easy Forms for MailChimp 6.0.3.1 - November 2nd, 2015 =
|
769 |
+
|
770 |
+
* Repair issue where multiple MailChimp AJAX forms on same page was only submitting last displayed form.
|
771 |
+
* Parsed `[yikes-mailchimp-subscriber-count]`, to display the number of subscribers in the associated MailChimp list on the manage forms page for form descriptions.
|
772 |
+
* When 'Hide Label' and 'Hide Field' are both checked, ensure that the associated MailChimp form field is hidden.
|
773 |
+
* Confirmed error messages via the MailChimp API are working as intended for both AJAX/standard opt-in forms.
|
774 |
+
* Fixed issue/spacing of the secondary 'Update Form' button on the edit forms page.
|
775 |
+
|
776 |
+
= Easy Forms for MailChimp 6.0.3 - October 29th, 2015 =
|
777 |
+
|
778 |
+
* Add filter to allow altering field descriptions. `yikes_mailchimp_frontend_content`
|
779 |
+
* Resolve error thrown when no default is set for checkbox inerest groups.
|
780 |
+
* Alter old knowledge base URLs to new KB URL.
|
781 |
+
* Confirm each MailChimp form field type 'Hide Field' works as expected.
|
782 |
+
* Added a bit of spacing between checkbox/radio button default options.
|
783 |
+
* Added new class `yikes-mailchimp-form-class` to allow for additional classes to be added to the `<form>` element.
|
784 |
+
* Implemented a fix for required MailChimp interest group checkbox type. (ajax = js validation/non-ajax = php).
|
785 |
+
* Appended form IDs to input field ID parameter. The new form IDs now prepended with yikes-mc-form-#- -- eg: Old: id="EMAIL", New: id="yikes-mc-form-1-EMAIL".
|
786 |
+
* Add a "Save Form" button to the left of the new "Clear Form Fields" on the Form builder. (better UX)
|
787 |
+
* Integrate with Visual Composer plugin.
|
788 |
+
* Ability to add a class to the form tag. Appropriate filter is `yikes-mailchimp-form-class` for `<form>` element, and `yikes-mailchimp-form-container-class` for parent `<section>` container.
|
789 |
+
* Fix Site Origin Page builder issues saving the widget form IDs.
|
790 |
+
|
791 |
+
= Easy Forms for MailChimp 6.0.2.4 - October 17th, 2015 =
|
792 |
+
|
793 |
+
* Fixed error thrown for some users on edit forms page 'save'.
|
794 |
+
* Added new shortcode: `[yikes-mailchimp-subscriber-count list="#"]` to display the number of subscribers to a specified list (use: `[yikes-mailchimp-subscriber-count form="form_id"]` (preferred) or `[yikes-mailchimp-subscriber-count list="mc_list_id"]`)
|
795 |
+
* Added new filter to filter the submit button text (yikes-mailchimp-form-submit-button-text)
|
796 |
+
* Tweaked international phone number validation - now regex checks [0-9]{1,}
|
797 |
+
* Added two new classes to field labels - `.merge_tag-label` (eg: EMAIL-label) on all fields & `.yikes-mailchimp-field-required` on fields set to required.
|
798 |
+
* Added capability check to TinyMCE button in wp editor (defaults to manage_options).
|
799 |
+
* Tweaked 'show some love' container on the edit forms page.
|
800 |
+
* Passed form descriptions through `the_content()` to allow for shortcodes to be processed.
|
801 |
+
|
802 |
+
= Easy Forms for MailChimp 6.0.2.3 - October 16th, 2015 =
|
803 |
+
|
804 |
+
* Fixed incorrect opt-in time being sent to MailChimp for new subscribers (fixed for checkbox integrations, ajax and non-ajax forms)
|
805 |
+
* Fixed 'Hide Label' displaying twice under interest groups
|
806 |
+
* Fixed error thrown for custom_fields for some users
|
807 |
+
* Fixed dropdown interest group data not being sent to MailChimp properly
|
808 |
+
|
809 |
+
= Easy Forms for MailChimp 6.0.2.2 - October 15th, 2015 =
|
810 |
+
|
811 |
+
* Added the ability to bulk remove form fields from the form builder
|
812 |
+
* Fixed hidden interest groups from not displaying the default value properly
|
813 |
+
* Added hidden interest groups to the field type switch
|
814 |
+
* Fixed interest group errors thrown for some users
|
815 |
+
* Added new option to replace/update interest groups
|
816 |
+
|
817 |
+
= Easy Forms for MailChimp 6.0.2/6.0.2.1 - October 12th, 2015 =
|
818 |
+
|
819 |
+
* Added ability to pre-select interest groups for each third party integration (bbpress, contact form 7, buddypress, edd, woocommerce, comment form, registration form).
|
820 |
+
* Removed "Check your email for the confirmation message." from the default success message if single opt-in is checked.
|
821 |
+
* Fixed Address field, zip not hiding properly.
|
822 |
+
* Tweaked class names, labels.
|
823 |
+
* Renamed clickable pre-defined tags to something more user friendly instead of tags (eg: 'Page Title' instead of {page_title}).
|
824 |
+
* Renamed the `field-third-left/right` class to `field-third` as it made more sense. Now elements floated left.
|
825 |
+
* Tweaked pre-defined class styles.
|
826 |
+
* Altered pre-defined class names for the address fields.
|
827 |
+
* Built in check for MailChimp class to prevent conflict with other plugins integrating MailChimp.
|
828 |
+
* Built in responsive styles for pre-defined form class styles (field-half-left/right & field-third).
|
829 |
+
* Tweak responsive styles on calendar date picker on mobile devices.
|
830 |
+
* Confirm each integration is working as intended.
|
831 |
+
|
832 |
+
= Easy Forms for MailChimp 6.0.1 - October 7th, 2015 =
|
833 |
+
|
834 |
+
* This release is a <strong>complete</strong> rewrite of the previous version. Before upgrading to the latest release, it is <em>highly recommended</em> that you take a backup of your database.
|
835 |
+
* Changed plugin name to Easy Forms for MailChimp to comply with new guidelines for [Plugins that Include Company and/or Product Names in the Plugin Name](https://make.wordpress.org/plugins/2015/10/05/guidelines-for-plugins-that-include-company-andor-product-names-in-the-plugin-name/)
|
836 |
+
* Enhancements:
|
837 |
+
* All forms have moved to their own table in the database, yikes_easy_mc_forms.
|
838 |
+
* Admin interface has been re-designed for a seamless integration into the WordPress dashboard.
|
839 |
+
* You can now create an unlimited number of forms, and assign them to any of your MailChimp lists (even multiple forms to the same list).
|
840 |
+
* Now you can easily duplicate forms at the click of a button.
|
841 |
+
* We have built out an advanced debugging feature that will log MailChimp errors as they occur, for easy debugging.
|
842 |
+
* You can now toggle on/off AJAX form submissions on a per form basis.
|
843 |
+
* Toggle on or off the MailChimp welcome email being sent.
|
844 |
+
* You can now quickly switch which MailChimp list your forms assign subscribers to.
|
845 |
+
* We now support every type of MailChimp field you can assign to a form, including interest groups.
|
846 |
+
* You can now set custom success and error messages, to set messages in your native language.
|
847 |
+
* Easily browse your MailChimp lists and view individual subscribers. Manage your subscriptions directly within the plugin.
|
848 |
+
* We've completely re-designed the settings pages to allow for easier navigation.
|
849 |
+
* A whole number of additional settings have been enabled for different form input fields.
|
850 |
+
* Español translated started by @hiwhatsup
|
851 |
+
* Française translated by @mialevesque
|
852 |
+
* Português do Brasil translated by @enxaqueca
|
853 |
+
* reCAPTCHA now loads in the language of the site it's being displayed on.
|
854 |
+
* All translations functions have been implemented for worldwide i18n.
|
855 |
+
* We have built out an API and implemented a number of hooks and filters to enable developers to easily extend the plugin [see Knowledge Base](https://yikesplugins.com/support/knowledge-base/product/developer-documentation/?utm_source=wp_plugin_repo&utm_medium=link&utm_campaign=easy_forms_for_mailchimp)
|
856 |
+
* We have started building out a number of add ons to extend the base functionality of the plugin. [check them out](https://yikesplugins.com/plugins/?utm_source=wp_plugin_repo&utm_medium=link&utm_campaign=easy_forms_for_mailchimp)
|
857 |
+
|
858 |
+
= Easy MailChimp Forms.4.3 - March 17th, 2015 =
|
859 |
+
* Fixed: Re-import form fields function not properly refreshing the page
|
860 |
+
* Fixed: Updating a MailChimp list field no longer throws an empty error
|
861 |
+
|
862 |
+
= Easy MailChimp Forms 5.4.2 - March 10th, 2015 =
|
863 |
+
* Fixed: custom class names on input fields merged together with other class names making them un-usable.
|
864 |
+
|
865 |
+
= Easy MailChimp Forms 5.4.1 - March 3rd, 2015 =
|
866 |
+
* Fixed: tinyMCE error thrown when saving settings page, ultimately preventing the ability to store the MailChimp API key.
|
867 |
+
|
868 |
+
= Easy MailChimp Forms 5.4 - March 2nd, 2015 =
|
869 |
+
* Enhancement: Re-bundled unaltered MailChimp API wrapper class file, and added appropriate class check to prevent conflicts with other MailChimp plugins (Gravity Forms etc.)
|
870 |
+
* Enhancement: Removed the WYSIWYG editor from the options page. This caused issues for some users who were unable to validate the MailChimp API key.
|
871 |
+
* Enhancement: Added a new setting to toggle the sending of the MailChimp welcome email. Users can now disable the email all together, on a list by list basis. (checked = disabled)
|
872 |
+
* Enhancement: Prevented users from being able to update the 'EMAIL' merge variable. Added a notification with instruction on what filter to use.
|
873 |
+
* Enhancement: Replaced all instances of the old class name (wpyksMCMailChimp API) with the appropriate MailChimp class (Mailchimp)
|
874 |
+
* Enhancement: Stripped slashes and properly escaped interest group labels
|
875 |
+
|
876 |
+
|
877 |
+
= Easy MailChimp Forms 5.3.3 - February 26th, 2015 =
|
878 |
+
* Enhancement: Added a new filter to alter field labels. Very helpful when you want to alter the default MailChimp 'Email Address' field label to something else. (`yikes_mc_field_label`) (see 'filters' section in 'Other Notes')
|
879 |
+
|
880 |
+
= Easy MailChimp Forms 5.3.2 - February 17th, 2015 =
|
881 |
+
* Fixed: Patched the error displayed below the opt-in forms when `display_yikes_mc_form_messages` is not defined.
|
882 |
+
|
883 |
+
= Easy MailChimp Forms 5.3.1 - January 13th, 2014 =
|
884 |
+
* Enhancement: Added new filter to allow users to change which role has access to the MailChimp administration pages ( `yks-mailchimp-user-role` ) ( check readme for example )
|
885 |
+
|
886 |
+
= Easy MailChimp Forms 5.3 - January 11th, 2014 =
|
887 |
+
* Enhancement: Added ability to move the success + error messages above or below the form based on a defined constant ( `display_yikes_mc_form_messages` [options: before/after] )
|
888 |
+
* Enhancement: Added new settings and the ability to show/hide * = required field , from the top of the forms, via the settings page
|
889 |
+
* Enhancement: Fixed incorrect error 'click here to update your profile' shown on front end on all errors
|
890 |
+
|
891 |
+
= Easy MailChimp Forms 5.2 - December 10th, 2014 =
|
892 |
+
* New Feature: Added ability to add, edit or delete form fields directly from the WordPress dashboard
|
893 |
+
* New Feature: Added ability to add, edit or delete interest groups directly from the WordPress dashboard
|
894 |
+
* New Feature: Add "Update" link to forms when a user has previously subscribed
|
895 |
+
* New Feature: Added 'default' option to text fields ( with custom pre-defined tags : {post_id} , {post_title} , {page_url} , {blog_name} , {user_logged_in} with the ability to define your own! )
|
896 |
+
* New Feature: Added the ability to adjust required state, visibility state, merge tag and more
|
897 |
+
* New Feature: Added the ability to toggle between ssl_verifypeer true/false
|
898 |
+
* New Feature: Added an error log to help users diagnose errors happening within the plugin (and updated advanced debugging) - found on the debug options of the settings page
|
899 |
+
* Enhancement: Remove JavaScript dependency to populate place holder values
|
900 |
+
* Enhancement: Replaced CAPTCHA with the all new reCAPTCHA API from Google
|
901 |
+
* Enhancement: Introduced all new filters ( check documentation for examples )
|
902 |
+
* Enhancement: Un-checking 'visibility' now hides the input field (instead of not generating it at all)
|
903 |
+
* Enhancement: Re-defined YKSEME_PATH for users who have the plugins folder outside of wp-content
|
904 |
+
* Enhancement: Added new classes to labels and input fields on the front end forms ( new classes yks-mc-label-field-label , yks-mc-form-row-field-label , yks-mc-input-field-row-field-label , yks-mc-input-field-label )
|
905 |
+
* Bug Fix: Re-sorting fields that had a stored custom class name didn't store properly
|
906 |
+
* Bug Fix: Wrapped bundled template text in filters
|
907 |
+
* Bug Fix: Repaired some broken filters (get_form_data_before_send)
|
908 |
+
* Bug Fix: Fixed labels on 'Manage List Forms' page and added field names to titles
|
909 |
+
* Bug Fix: Fixed path to check box images on 'Clean Blue' bundled templates
|
910 |
+
* Bug Fix: Fixed empty MailChimp API key from outputting any string (confused some users)
|
911 |
+
* Other: Split main class file into multiple included files (help organize the main class file (sub-files located in /lib/inc/)
|
912 |
+
* Other: Began to build up a [Wiki](https://github.com/yikesinc/yikes-inc-easy-mailchimp-extender/wiki) on Github , for plug in installation/usage instructions
|
913 |
+
* Other: Altered single/double opt-in strings inside shortcode_form.php ([reference thread](https://wordpress.org/support/topic/code-mangling-on-script-use-in-messageserror-handling))
|
914 |
+
* Other: Removed 'Interest Group Label' option, as users can now update the name from within the plugin
|
915 |
+
|
916 |
+
= Easy MailChimp Forms 5.1.1 - November 5, 2014 =
|
917 |
+
Fix: repair 'Opt In' default list drop down on options page
|
918 |
+
Fix: repair errors being thrown when a commenter is added to a list
|
919 |
+
|
920 |
+
= Easy MailChimp Forms 5.1.0.1 - November 4, 2014 =
|
921 |
+
|
922 |
+
Removed the update MailChimp profile info link, some users brought up security concerns.
|
923 |
+
Fixed missing argument when using table display formatting.
|
924 |
+
|
925 |
+
= Easy MailChimp Forms 5.1 - November 3, 2014 =
|
926 |
+
|
927 |
+
We have added brand new functionality, allowing users to easily customize forms on the fly, through a familiar UI as well as a templating framework to allow users to design and implement their own custom forms. A minor security bug was patched in this release as well. We fixed an issue with the MailChimp API key check running on each page load, and added a few new filters to allow users to alter text.
|
928 |
+
|
929 |
+
= Easy MailChimp Forms 5.0.9 - October 3rd, 2014 =
|
930 |
+
|
931 |
+
**Fixes**
|
932 |
+
|
933 |
+
* Added autocomplete="false" to MailChimp API input field
|
934 |
+
* Added event listener to form submission (forms can now be placed in modals/slideout menus)
|
935 |
+
|
936 |
+
= Easy MailChimp Forms 5.0.8 - September 23, 2014 =
|
937 |
+
|
938 |
+
**Fixes**
|
939 |
+
|
940 |
+
* Band-aid fix for the -1 response returned from ajax.php
|
941 |
+
|
942 |
+
= Easy MailChimp Forms 5.0.7 - September 19, 2014 =
|
943 |
+
|
944 |
+
**Fixes**
|
945 |
+
|
946 |
+
* Security Vulnerability patched - props @g0blinResearch for privately disclosing the issue
|
947 |
+
|
948 |
+
= Easy MailChimp Forms 5.0.6 - August 22, 2014 =
|
949 |
+
|
950 |
+
**Fixes**
|
951 |
+
|
952 |
+
* fix bug with nonce security check when using table 'Preferred Form Layout' setting
|
953 |
+
|
954 |
+
= Easy MailChimp Forms 5.0.5 - August 21, 2014 =
|
955 |
+
|
956 |
+
**Fixes**
|
957 |
+
|
958 |
+
- added `stripslashes()` to the following settings fields :
|
959 |
+
- Single Opt-in Confirmation Message
|
960 |
+
- Double Opt-in Confirmation Message
|
961 |
+
- Interest Group Label
|
962 |
+
- Opt-in Checkbox Text
|
963 |
+
|
964 |
+
**Updates**
|
965 |
+
|
966 |
+
- Updated readme FAQ section
|
967 |
+
|
968 |
+
= Easy MailChimp Forms 5.0.4 - August 6, 2014 =
|
969 |
+
* Update SSL conditional in main plugin file
|
970 |
+
* Added mcrypt module check, for MailChimp API encryption
|
971 |
+
* Conditionally loaded scripts and styles in admin ( prevent conflicts )
|
972 |
+
* Included NONCE security checks on form submissions ( helps prevent CSRF and other attacks )
|
973 |
+
* Added proper update task function to add missing settings to the options page ( prevents undefined variables for new settings )
|
974 |
+
* Added missing styles to post page ( added missing icon to tinyMCE button )
|
975 |
+
* Added missing styles to widget page
|
976 |
+
* Adjusted Chimp Chatter activity time formatting to return correct time based on user time zone
|
977 |
+
* New Feature: Real time updates to MailChimp Account Activity ( utilizing the heartbeat MailChimp API )
|
978 |
+
* New Feature: Added MailChimp account activity widget to dashboard ( with live updates using heartbeat MailChimp API )
|
979 |
+
* Added screenshot of admin dashboard account activity widget
|
980 |
+
|
981 |
+
= Easy MailChimp Forms 4.5 =
|
982 |
+
* Added reCAPTCHA support to prevent bots and spammers from submitting forms
|
983 |
+
* Split settings page into three separate sections
|
984 |
+
* Removed Jetpack sharing icons from appearing in the success messages (removed sharedaddy filter)
|
985 |
+
* Updated translation files with new strings
|
986 |
+
* Update existing screen shots and add new screen shot
|
987 |
+
* Update FAQ
|
988 |
+
* Added "loaded server modules" to the debug page, to better aid in support requests
|
989 |
+
|
990 |
+
= Easy MailChimp Forms 3.0 =
|
991 |
+
* Update MailChimp API to v2.0
|
992 |
+
* Added MailChimp API Key Validation Check
|
993 |
+
|
994 |
+
= Easy MailChimp Forms 2.2.0 =
|
995 |
+
* Changed name of plugin to Easy MailChimp Forms
|
996 |
+
* Added support for multiples of the same MailChimp list
|
997 |
+
* Bug fixes
|
998 |
+
|
999 |
+
= YIKES Inc Easy MailChimp Extender 2.1.0 =
|
1000 |
+
* Added support for multiples of the same MailChimp list
|
1001 |
+
* Bug fixes
|
1002 |
+
|
1003 |
+
= YIKES Inc Easy MailChimp Extender 2.0.0 =
|
1004 |
+
* Supports custom merge vars now
|
1005 |
+
* Allows import from MailChimp
|
1006 |
+
* Allows Table or Div output
|
1007 |
+
|
1008 |
+
= YIKES Inc Easy MailChimp Extender 1.3.1 =
|
1009 |
+
* Fixed form not submitting to MailChimp for anonymous users bug
|
1010 |
+
|
1011 |
+
= YIKES Inc Easy MailChimp Extender 1.3.0 =
|
1012 |
+
* Custom merge vars allows more customized field configuration
|
1013 |
+
|
1014 |
+
= YIKES Inc Easy MailChimp Extender 1.2.0 =
|
1015 |
+
* Removed required from First Name and Last Name fields
|
1016 |
+
* Added update routines for future versions
|
1017 |
+
|
1018 |
+
= YIKES Inc Easy MailChimp Extender 1.1.0 =
|
1019 |
+
* Changed the list logic and added a notice for the MERGE VAR naming schema
|
1020 |
+
|
1021 |
+
= YIKES Inc Easy MailChimp Extender 1.0.1 =
|
1022 |
+
* Changed CSS paths from Absolute to Relative
|
1023 |
+
|
1024 |
+
= YIKES Inc Easy MailChimp Extender 1.0.0 =
|
1025 |
+
* Initial Release
|
yikes-inc-easy-mailchimp-extender.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Easy Forms for MailChimp by YIKES
|
4 |
* Plugin URI: http://www.yikesinc.com/services/yikes-inc-easy-mailchimp-extender/
|
5 |
* Description: YIKES Easy Forms for MailChimp links your site to MailChimp and allows you to generate and display mailing list opt-in forms anywhere on your site with ease.
|
6 |
-
* Version: 6.0.5.
|
7 |
* Author: YIKES
|
8 |
* Author URI: http://www.yikesinc.com/
|
9 |
* License: GPL-3.0+
|
3 |
* Plugin Name: Easy Forms for MailChimp by YIKES
|
4 |
* Plugin URI: http://www.yikesinc.com/services/yikes-inc-easy-mailchimp-extender/
|
5 |
* Description: YIKES Easy Forms for MailChimp links your site to MailChimp and allows you to generate and display mailing list opt-in forms anywhere on your site with ease.
|
6 |
+
* Version: 6.0.5.5
|
7 |
* Author: YIKES
|
8 |
* Author URI: http://www.yikesinc.com/
|
9 |
* License: GPL-3.0+
|