<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><style type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul, pre { overflow: auto; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<title>[BuddyPress] [2784] trunk: Merging 1.2 branch into the trunk</title>
</head>
<body>
<div id="msg">
<dl>
<dt>Revision</dt> <dd>2784</dd>
<dt>Author</dt> <dd>apeatling</dd>
<dt>Date</dt> <dd>2010-02-23 20:55:18 +0000 (Tue, 23 Feb 2010)</dd>
</dl>
<h3>Log Message</h3>
<pre>Merging 1.2 branch into the trunk</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkbpactivitybpactivitytemplatetagsphp">trunk/bp-activity/bp-activity-templatetags.php</a></li>
<li><a href="#trunkbpblogsbpblogsclassesphp">trunk/bp-blogs/bp-blogs-classes.php</a></li>
<li><a href="#trunkbpcorebpcoreactivationphp">trunk/bp-core/bp-core-activation.php</a></li>
<li><a href="#trunkbpgroupsphp">trunk/bp-groups.php</a></li>
<li><a href="#trunkbploaderphp">trunk/bp-loader.php</a></li>
<li><a href="#trunkbpthemesbpdefaultregistrationregisterphp">trunk/bp-themes/bp-default/registration/register.php</a></li>
<li><a href="#trunkbpthemesbpdefaultstylecss">trunk/bp-themes/bp-default/style.css</a></li>
<li><a href="#trunkbpxprofilephp">trunk/bp-xprofile.php</a></li>
<li><a href="#trunkreadmetxt">trunk/readme.txt</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkbpactivitybpactivitytemplatetagsphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-activity/bp-activity-templatetags.php (2783 => 2784)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-activity/bp-activity-templatetags.php        2010-02-23 14:36:51 UTC (rev 2783)
+++ trunk/bp-activity/bp-activity-templatetags.php        2010-02-23 20:55:18 UTC (rev 2784)
</span><span class="lines">@@ -481,7 +481,7 @@
</span><span class="cx">                  * This function is mainly for backwards comptibility.
</span><span class="cx">                  */
</span><span class="cx">
</span><del>-                $content = bp_get_activity_action() . bp_get_activity_content_body();
</del><ins>+                $content = bp_get_activity_action() . ' ' . bp_get_activity_content_body();
</ins><span class="cx">                 return apply_filters( 'bp_get_activity_content', $content );
</span><span class="cx">         }
</span><span class="cx">
</span><span class="lines">@@ -498,7 +498,7 @@
</span><span class="cx">                 $content .= apply_filters( 'bp_activity_permalink', ' &middot; <a href="' . bp_activity_get_permalink( $activities_template->activity->id, $activities_template->activity ) . '" class="view" title="' . __( 'View Thread / Permalink', 'buddypress' ) . '">' . __( 'View', 'buddypress' ) . '</a>', &$activities_template->activity );
</span><span class="cx">
</span><span class="cx">                 /* Add the delete link if the user has permission on this item */
</span><del>-                if ( ( is_user_logged_in() && $activities_template->activity->user_id == $bp->loggedin_user->id ) || $bp->is_item_admin || is_site_admin() )
</del><ins>+                if ( ( is_user_logged_in() && $activities_template->activity->user_id == $bp->loggedin_user->id ) || $bp->is_item_admin || $bp->loggedin_user->is_site_admin )
</ins><span class="cx">                          $content .= apply_filters( 'bp_activity_delete_link', ' &middot; ' . bp_get_activity_delete_link(), &$activities_template->activity );
</span><span class="cx">
</span><span class="cx">                 return apply_filters( 'bp_insert_activity_meta', $content );
</span><span class="lines">@@ -528,7 +528,7 @@
</span><span class="cx">                 if ( empty( $activities_template->activity_parents[$parent_id]->content ) )
</span><span class="cx">                         $content = $activities_template->activity_parents[$parent_id]->action;
</span><span class="cx">                 else
</span><del>-                        $content = $activities_template->activity_parents[$parent_id]->action . $activities_template->activity_parents[$parent_id]->content;
</del><ins>+                        $content = $activities_template->activity_parents[$parent_id]->action . ' ' . $activities_template->activity_parents[$parent_id]->content;
</ins><span class="cx">
</span><span class="cx">                 /* Remove the time since content for backwards compatibility */
</span><span class="cx">                 $content = str_replace( '<span class="time-since">%s</span>', '', $content );
</span><span class="lines">@@ -945,7 +945,7 @@
</span><span class="cx">                 if ( empty( $activities_template->activity->action ) )
</span><span class="cx">                         $content = $activities_template->activity->content;
</span><span class="cx">                 else
</span><del>-                        $content = $activities_template->activity->action . $activities_template->activity->content;
</del><ins>+                        $content = $activities_template->activity->action . ' ' . $activities_template->activity->content;
</ins><span class="cx">
</span><span class="cx">                 return apply_filters( 'bp_get_activity_feed_item_description', html_entity_decode( str_replace( '%s', '', $content ) ) );
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkbpblogsbpblogsclassesphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-blogs/bp-blogs-classes.php (2783 => 2784)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-blogs/bp-blogs-classes.php        2010-02-23 14:36:51 UTC (rev 2783)
+++ trunk/bp-blogs/bp-blogs-classes.php        2010-02-23 20:55:18 UTC (rev 2784)
</span><span class="lines">@@ -290,7 +290,7 @@
</span><span class="cx">                 }
</span><span class="cx">
</span><span class="cx">                 /* Fetch the blog description for each blog (as it may be empty we can't fetch it in the main query). */
</span><del>-                $blog_descs = $wpdb->get_results( $wpdb->prepare( "SELECT blog_id, meta_value as description FROM {$bp->blogs->table_name_blogmeta} WHERE meta_key = 'description' blog_id IN ( {$blog_ids} )" ) );
</del><ins>+                $blog_descs = $wpdb->get_results( $wpdb->prepare( "SELECT blog_id, meta_value as description FROM {$bp->blogs->table_name_blogmeta} WHERE meta_key = 'description' AND blog_id IN ( {$blog_ids} )" ) );
</ins><span class="cx">
</span><span class="cx">                 for ( $i = 0; $i < count( $paged_blogs ); $i++ ) {
</span><span class="cx">                         foreach ( (array)$blog_descs as $desc ) {
</span></span></pre></div>
<a id="trunkbpcorebpcoreactivationphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-core/bp-core-activation.php (2783 => 2784)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-core/bp-core-activation.php        2010-02-23 14:36:51 UTC (rev 2783)
+++ trunk/bp-core/bp-core-activation.php        2010-02-23 20:55:18 UTC (rev 2784)
</span><span class="lines">@@ -75,25 +75,37 @@
</span><span class="cx"> }
</span><span class="cx"> add_action( 'wp', 'bp_core_screen_activation', 3 );
</span><span class="cx">
</span><ins>+/***
+ * bp_core_filter_user_welcome_email()
+ *
+ * Replace the generated password in the welcome email.
+ * This will not filter when the site admin registers a user.
+ */
+function bp_core_filter_user_welcome_email( $welcome_email ) {
+        /* Don't touch the email if we don't have a custom registration template */
+        if ( '' == locate_template( array( 'registration/register.php' ), false ) && '' == locate_template( array( 'register.php' ), false ) )
+                return $welcome_email;
</ins><span class="cx">
</span><ins>+        return str_replace( 'PASSWORD', __( '[User Set]', 'buddypress' ), $welcome_email );
+}
+if ( !is_admin() && empty( $_GET['e'] ) )
+        add_filter( 'update_welcome_user_email', 'bp_core_filter_user_welcome_email' );
+
</ins><span class="cx"> /***
</span><del>- * bp_core_disable_welcome_email()
</del><ins>+ * bp_core_filter_blog_welcome_email()
</ins><span class="cx"> *
</span><del>- * Since the user now chooses their password, sending it over clear-text to an
- * email address is no longer necessary. It's also a terrible idea security wise.
- *
- * The only exception to this is when an admin has generated an account for a user.
- *
- * This will only disable the email if a custom registration template is being used.
</del><ins>+ * Replace the generated password in the welcome email.
+ * This will not filter when the site admin registers a user.
</ins><span class="cx"> */
</span><del>-function bp_core_disable_welcome_email() {
</del><ins>+function bp_core_filter_blog_welcome_email( $welcome_email, $blog_id, $user_id, $password ) {
+        /* Don't touch the email if we don't have a custom registration template */
</ins><span class="cx">         if ( '' == locate_template( array( 'registration/register.php' ), false ) && '' == locate_template( array( 'register.php' ), false ) )
</span><del>-                return true;
</del><ins>+                return $welcome_email;
</ins><span class="cx">
</span><del>-        return false;
</del><ins>+        return str_replace( $password, __( '[User Set]', 'buddypress' ), $welcome_email );
</ins><span class="cx"> }
</span><span class="cx"> if ( !is_admin() && empty( $_GET['e'] ) )
</span><del>-        add_filter( 'wpmu_welcome_user_notification', 'bp_core_disable_welcome_email' );
</del><ins>+        add_filter( 'update_welcome_email', 'bp_core_filter_blog_welcome_email', 10, 4 );
</ins><span class="cx">
</span><span class="cx"> // Notify user of signup success.
</span><span class="cx"> function bp_core_activation_signup_blog_notification( $domain, $path, $title, $user, $user_email, $key, $meta ) {
</span></span></pre></div>
<a id="trunkbpgroupsphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-groups.php (2783 => 2784)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-groups.php        2010-02-23 14:36:51 UTC (rev 2783)
+++ trunk/bp-groups.php        2010-02-23 20:55:18 UTC (rev 2784)
</span><span class="lines">@@ -1229,7 +1229,7 @@
</span><span class="cx"> function groups_action_group_feed() {
</span><span class="cx">         global $bp, $wp_query;
</span><span class="cx">
</span><del>-        if ( $bp->current_component != $bp->groups->slug || !$bp->groups->current_group || $bp->current_action != 'feed' )
</del><ins>+        if ( !bp_is_active( 'activity' ) || $bp->current_component != $bp->groups->slug || !$bp->groups->current_group || $bp->current_action != 'feed' )
</ins><span class="cx">                 return false;
</span><span class="cx">
</span><span class="cx">         $wp_query->is_404 = false;
</span></span></pre></div>
<a id="trunkbploaderphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-loader.php (2783 => 2784)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-loader.php        2010-02-23 14:36:51 UTC (rev 2783)
+++ trunk/bp-loader.php        2010-02-23 20:55:18 UTC (rev 2784)
</span><span class="lines">@@ -4,12 +4,12 @@
</span><span class="cx"> Plugin URI: http://buddypress.org/download/
</span><span class="cx"> Description: Social networking in a box. Build a social network for your company, school, sports team or niche community all based on the power and flexibility of WordPress.
</span><span class="cx"> Author: The BuddyPress Community
</span><del>-Version: 1.2
</del><ins>+Version: 1.2.1
</ins><span class="cx"> Author URI: http://buddypress.org/developers/
</span><span class="cx"> Site Wide Only: true
</span><span class="cx"> */
</span><span class="cx">
</span><del>-define( 'BP_VERSION', '1.2' );
</del><ins>+define( 'BP_VERSION', '1.2.1' );
</ins><span class="cx">
</span><span class="cx"> /***
</span><span class="cx"> * This file will load in each BuddyPress component based on which
</span></span></pre></div>
<a id="trunkbpthemesbpdefaultregistrationregisterphp"></a>
<div class="modfile"><h4>Modified: trunk/bp-themes/bp-default/registration/register.php (2783 => 2784)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-themes/bp-default/registration/register.php        2010-02-23 14:36:51 UTC (rev 2783)
+++ trunk/bp-themes/bp-default/registration/register.php        2010-02-23 20:55:18 UTC (rev 2784)
</span><span class="lines">@@ -174,7 +174,7 @@
</span><span class="cx">
</span><span class="cx">                                                 <p><input type="checkbox" name="signup_with_blog" id="signup_with_blog" value="1"<?php if ( (int) bp_get_signup_with_blog_value() ) : ?> checked="checked"<?php endif; ?> /> <?php _e( 'Yes, I\'d like to create a new blog', 'buddypress' ) ?></p>
</span><span class="cx">
</span><del>-                                                <div id="blog-details">
</del><ins>+                                                <div id="blog-details"<?php if ( (int) bp_get_signup_with_blog_value() ) : ?>class="show"<?php endif; ?>>
</ins><span class="cx">
</span><span class="cx">                                                         <label for="signup_blog_url"><?php _e( 'Blog URL', 'buddypress' ) ?> <?php _e( '(required)', 'buddypress' ) ?></label>
</span><span class="cx">                                                         <?php do_action( 'bp_signup_blog_url_errors' ) ?>
</span><span class="lines">@@ -297,7 +297,7 @@
</span><span class="cx">
</span><span class="cx">         <script type="text/javascript">
</span><span class="cx">                 jQuery(document).ready( function() {
</span><del>-                        if ( jQuery('div#blog-details').length )
</del><ins>+                        if ( jQuery('div#blog-details').length && !jQuery('div#blog-details').hasClass('show') )
</ins><span class="cx">                                 jQuery('div#blog-details').toggle();
</span><span class="cx">
</span><span class="cx">                         jQuery( 'input#signup_with_blog' ).click( function() {
</span></span></pre></div>
<a id="trunkbpthemesbpdefaultstylecss"></a>
<div class="modfile"><h4>Modified: trunk/bp-themes/bp-default/style.css (2783 => 2784)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-themes/bp-default/style.css        2010-02-23 14:36:51 UTC (rev 2783)
+++ trunk/bp-themes/bp-default/style.css        2010-02-23 20:55:18 UTC (rev 2784)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx"> Theme Name: BuddyPress Default
</span><span class="cx"> Theme URI: http://buddypress.org/extend/themes/
</span><span class="cx"> Description: The default theme for BuddyPress.
</span><del>-Version: 1.2
</del><ins>+Version: 1.2.1
</ins><span class="cx"> Author: BuddyPress.org
</span><span class="cx"> Author URI: http://buddypress.org
</span><span class="cx"> Tags: buddypress, two-columns, custom-header, white, blue
</span></span></pre></div>
<a id="trunkbpxprofilephp"></a>
<div class="modfile"><h4>Modified: trunk/bp-xprofile.php (2783 => 2784)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/bp-xprofile.php        2010-02-23 14:36:51 UTC (rev 2783)
+++ trunk/bp-xprofile.php        2010-02-23 20:55:18 UTC (rev 2784)
</span><span class="lines">@@ -724,6 +724,32 @@
</span><span class="cx">         if ( $is_required && ( empty( $value ) || !strlen( trim( $value ) ) ) )
</span><span class="cx">                 return false;
</span><span class="cx">
</span><ins>+        $field = new BP_XProfile_Field( $field_id );
+
+        /* Check the value is an acceptable value */
+        if ( 'checkbox' == $field->type || 'radio' == $field->type || 'selectbox' == $field->type || 'multiselectbox' == $field->type ) {
+                $options = $field->get_children();
+
+                foreach( $options as $option )
+                        $possible_values[] = $option->name;
+
+                if ( is_array( $value ) ) {
+                        foreach( $value as $i => $single ) {
+                                if ( !in_array( $single, (array)$possible_values ) )
+                                        unset( $value[$i] );
+                        }
+
+                        if ( empty( $value ) )
+                                return false;
+
+                        /* Reset the keys by merging with an empty array */
+                        $value = array_merge( array(), $value );
+                } else {
+                        if ( !in_array( $value, (array)$possible_values ) )
+                                return false;
+                }
+        }
+
</ins><span class="cx">         $field = new BP_XProfile_ProfileData();
</span><span class="cx">         $field->field_id = $field_id;
</span><span class="cx">         $field->user_id = $user_id;
</span></span></pre></div>
<a id="trunkreadmetxt"></a>
<div class="modfile"><h4>Modified: trunk/readme.txt (2783 => 2784)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/readme.txt        2010-02-23 14:36:51 UTC (rev 2783)
+++ trunk/readme.txt        2010-02-23 20:55:18 UTC (rev 2784)
</span><span class="lines">@@ -3,56 +3,51 @@
</span><span class="cx"> Tags: buddypress, social networking, activity, profiles, messaging, friends, groups, forums, microblogging, twitter, facebook, mingle, social, community, networks, networking, cms
</span><span class="cx"> Requires at least: WordPress 2.9.1
</span><span class="cx"> Tested up to: WordPress 2.9.1
</span><del>-Stable tag: 1.2
</del><ins>+Stable tag: 1.2.1
</ins><span class="cx">
</span><span class="cx"> == Description ==
</span><span class="cx">
</span><del>-Social networking in a box. Build a social network for your company, school, sports team or niche community all
-based on the power and flexibility of WordPress.
</del><ins>+Social networking in a box. Build a social network for your company, school, sports team or niche community all based on the power and flexibility of WordPress.
</ins><span class="cx">
</span><del>-BuddyPress will let users register on your site and start creating profiles, posting messages, making connections,
-creating and interacting in groups and much more.
</del><ins>+BuddyPress will let users register on your site and start creating profiles, posting messages, making connections, creating and interacting in groups and much more.
</ins><span class="cx">
</span><span class="cx"> <h4>Try the Demo</h4>
</span><span class="cx">
</span><del>-If you're interested in seeing what a default installation of BuddyPress has to offer, try out the BuddyPress test
-drive! This site is a community of BuddyPress users looking to try out and discuss the latest features of BuddyPress.
</del><ins>+If you're interested in seeing what a default installation of BuddyPress has to offer, try out the BuddyPress test drive! This site is a community of BuddyPress users looking to try out and discuss the latest features of BuddyPress.
</ins><span class="cx">
</span><span class="cx"> <a href="http://testbp.org/">BuddyPress Test Drive</a>
</span><span class="cx">
</span><span class="cx"> <h4>Who's Using BuddyPress?</h4>
</span><span class="cx">
</span><del>-More and more WordPress with BuddyPress powered sites are popping up. You can take a look at some of the best
-sites on the <a href="http://buddypress.org/demo/">BuddyPress demo page</a> or the
-<a href="http://wordpress.org/showcase/flavor/buddypress/">BuddyPress section of the WordPress showcase</a>.
</del><ins>+More and more WordPress with BuddyPress powered sites are popping up. You can take a look at some of the best sites on the <a href="http://buddypress.org/demo/">BuddyPress demo page</a> or the <a href="http://wordpress.org/showcase/flavor/buddypress/">BuddyPress section of the WordPress showcase</a>.
</ins><span class="cx">
</span><ins>+<h4>More Information</h4>
+
+Visit the <a href="http://buddypress.org/">BuddyPress website</a> for more information about BuddyPress.
+
</ins><span class="cx"> == Installation ==
</span><span class="cx">
</span><del>-You can download and install BuddyPress using the built in WordPress plugin installer. If you download BuddyPress
-manually, make sure it is uploaded to "/wp-content/plugins/buddypress/".
</del><ins>+You can download and install BuddyPress using the built in WordPress plugin installer. If you download BuddyPress manually, make sure it is uploaded to "/wp-content/plugins/buddypress/".
</ins><span class="cx">
</span><span class="cx"> Activate BuddyPress in the "Plugins" admin panel using the "Activate" link.
</span><span class="cx">
</span><del>-You will need to enable permalink support in your WordPress installation for BuddyPress pages to function correctly.
-You can set this up using the "Settings > Permalinks" menu in your WordPress admin area.
</del><ins>+You will need to enable permalink support in your WordPress installation for BuddyPress pages to function correctly. You can set this up using the "Settings > Permalinks" menu in your WordPress admin area.
</ins><span class="cx">
</span><del>-Finally, you will need to activate a BuddyPress compatible theme. Two BuddyPress themes are bundled with the plugin,
-you can activate these using the "Appearance > Themes" menu in your WordPress admin area. To install other BuddyPress
-compatible themes, use the "Appearance > Add New Themes" menu and select the "buddypress" checkbox before hitting the
-"Find Themes" button.
</del><ins>+Finally, you will need to activate a BuddyPress compatible theme. Two BuddyPress themes are bundled with the plugin, you can activate these using the "Appearance > Themes" menu in your WordPress admin area. To install other BuddyPress compatible themes, use the "Appearance > Add New Themes" menu and select the "buddypress" checkbox before hitting the "Find Themes" button.
</ins><span class="cx">
</span><span class="cx"> --- Forums Support ---
</span><span class="cx">
</span><del>-BuddyPress also includes support for discussion forums. Each group created on your site can have its own discussion forum.
-If you'd like to enable this feature please use the "BuddyPress > Forums Setup" menu in your WordPress admin area and
-follow the on screen instructions.
</del><ins>+BuddyPress also includes support for discussion forums. Each group created on your site can have its own discussion forum. If you'd like to enable this feature please use the "BuddyPress > Forums Setup" menu in your WordPress admin area and follow the on screen instructions.
</ins><span class="cx">
</span><span class="cx"> == Frequently Asked Questions ==
</span><span class="cx">
</span><ins>+= Can I use my existing WordPress theme? =
+
+Yes you can. First install and activate BuddyPress, then download and activate the <a href="http://wordpress.org/extend/plugins/bp-template-pack/">template extension pack</a>. This plugin will run you through the process step-by-step.
+
</ins><span class="cx"> = Will this work on standard WordPress and WordPress MU? =
</span><span class="cx">
</span><del>-Yes! BuddyPress will run on both versions of WordPress. If you are using WordPress MU then BuddyPress will support
-the global tracking of blogs, posts and comments.
</del><ins>+Yes! BuddyPress will run on both versions of WordPress. If you are using WordPress MU then BuddyPress will support the global tracking of blogs, posts and comments.
</ins><span class="cx">
</span><span class="cx"> = Where can I get support? =
</span><span class="cx">
</span></span></pre>
</div>
</div>
</body>
</html>