diff --git a/Bugzilla.pm b/Bugzilla.pm
index 12ae42bbae0a5938380582f3b7f01ed9406ef742..324b3cc145b8a940799d5c1b373e7c8403f282a0 100644
--- a/Bugzilla.pm
+++ b/Bugzilla.pm
@@ -357,7 +357,7 @@ sub error_mode {
         $class->request_cache->{error_mode} = $newval;
     }
     return $class->request_cache->{error_mode}
-        || Bugzilla::Constants::ERROR_MODE_WEBPAGE;
+        || (i_am_cgi() ? ERROR_MODE_WEBPAGE : ERROR_MODE_DIE);
 }
 
 sub usage_mode {
diff --git a/Bugzilla/Attachment/CVS/Entries b/Bugzilla/Attachment/CVS/Entries
index 5366bba7f87042e9587b69967f47d4c61ee6c120..1d5a1e5d0344f3442a430303c9a7709237d006c4 100644
--- a/Bugzilla/Attachment/CVS/Entries
+++ b/Bugzilla/Attachment/CVS/Entries
@@ -1,2 +1,2 @@
-/PatchReader.pm/1.6/Sun Jun 29 17:35:28 2008//TBUGZILLA-3_3_1
+/PatchReader.pm/1.6/Sun Jun 29 17:35:28 2008//TBUGZILLA-3_3_2
 D
diff --git a/Bugzilla/Attachment/CVS/Tag b/Bugzilla/Attachment/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/Attachment/CVS/Tag
+++ b/Bugzilla/Attachment/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/Auth.pm b/Bugzilla/Auth.pm
index 74678afa8b77ba2c86ee6f9daece445569f69cbc..8e18f8699892667e85ad12c9748c4bc52a38672c 100644
--- a/Bugzilla/Auth.pm
+++ b/Bugzilla/Auth.pm
@@ -151,23 +151,17 @@ sub _handle_login_result {
         ThrowCodeError($result->{error}, $result->{details});
     }
     elsif ($fail_code == AUTH_NODATA) {
-        if ($login_type == LOGIN_REQUIRED) {
-            # This seems like as good as time as any to get rid of
-            # old crufty junk in the logincookies table.  Get rid
-            # of any entry that hasn't been used in a month.
-            $dbh->do("DELETE FROM logincookies WHERE " .
-                     $dbh->sql_to_days('NOW()') . " - " .
-                     $dbh->sql_to_days('lastused') . " > 30");
-            $self->{_info_getter}->fail_nodata($self);
-        }
-        # Otherwise, we just return the "default" user.
+        $self->{_info_getter}->fail_nodata($self) 
+            if $login_type == LOGIN_REQUIRED;
+
+        # If we're not LOGIN_REQUIRED, we just return the default user.
         $user = Bugzilla->user;
     }
     # The username/password may be wrong
     # Don't let the user know whether the username exists or whether
     # the password was just wrong. (This makes it harder for a cracker
     # to find account names by brute force)
-    elsif (($fail_code == AUTH_LOGINFAILED) || ($fail_code == AUTH_NO_SUCH_USER)) {
+    elsif ($fail_code == AUTH_LOGINFAILED or $fail_code == AUTH_NO_SUCH_USER) {
         ThrowUserError("invalid_username_or_password");
     }
     # The account may be disabled
diff --git a/Bugzilla/Auth/CVS/Entries b/Bugzilla/Auth/CVS/Entries
index c964647d9ceb4080702f158256d08b90fccd07c1..589c33bc954524d3acd2b6251a46fa9130b802c4 100644
--- a/Bugzilla/Auth/CVS/Entries
+++ b/Bugzilla/Auth/CVS/Entries
@@ -1,5 +1,5 @@
-/Login.pm/1.1/Fri May 12 02:41:05 2006//TBUGZILLA-3_3_1
-/Verify.pm/1.7/Wed May 23 18:05:49 2007//TBUGZILLA-3_3_1
+/Login.pm/1.1/Fri May 12 02:41:05 2006//TBUGZILLA-3_3_2
+/Verify.pm/1.7/Wed May 23 18:05:49 2007//TBUGZILLA-3_3_2
 D/Login////
 D/Persist////
 D/Verify////
diff --git a/Bugzilla/Auth/CVS/Tag b/Bugzilla/Auth/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/Auth/CVS/Tag
+++ b/Bugzilla/Auth/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/Auth/Login/CVS/Entries b/Bugzilla/Auth/Login/CVS/Entries
index ef36b106f777920c218223bf4fbe1399fe3b62c8..aa29a356dea10250400eaa3819a91b160110ee77 100644
--- a/Bugzilla/Auth/Login/CVS/Entries
+++ b/Bugzilla/Auth/Login/CVS/Entries
@@ -1,5 +1,5 @@
-/CGI.pm/1.12/Sat Oct  4 20:03:15 2008//TBUGZILLA-3_3_1
-/Cookie.pm/1.5/Wed Jul  5 23:42:47 2006//TBUGZILLA-3_3_1
-/Env.pm/1.4/Mon Jul  3 21:42:46 2006//TBUGZILLA-3_3_1
-/Stack.pm/1.2/Wed Aug  6 23:38:24 2008//TBUGZILLA-3_3_1
+/CGI.pm/1.12/Sat Oct  4 20:03:15 2008//TBUGZILLA-3_3_2
+/Cookie.pm/1.5/Wed Jul  5 23:42:47 2006//TBUGZILLA-3_3_2
+/Env.pm/1.4/Mon Jul  3 21:42:46 2006//TBUGZILLA-3_3_2
+/Stack.pm/1.2/Wed Aug  6 23:38:24 2008//TBUGZILLA-3_3_2
 D
diff --git a/Bugzilla/Auth/Login/CVS/Tag b/Bugzilla/Auth/Login/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/Auth/Login/CVS/Tag
+++ b/Bugzilla/Auth/Login/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/Auth/Persist/CVS/Entries b/Bugzilla/Auth/Persist/CVS/Entries
index cfa747072f019f6e40e4dd91588ea459ba6ebf48..6c03319a652df065c1a7b7ea9bd6c05f65420636 100644
--- a/Bugzilla/Auth/Persist/CVS/Entries
+++ b/Bugzilla/Auth/Persist/CVS/Entries
@@ -1,2 +1,2 @@
-/Cookie.pm/1.7/Wed Aug 27 01:08:50 2008//TBUGZILLA-3_3_1
+/Cookie.pm/1.8/Tue Jan 20 20:09:48 2009//TBUGZILLA-3_3_2
 D
diff --git a/Bugzilla/Auth/Persist/CVS/Tag b/Bugzilla/Auth/Persist/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/Auth/Persist/CVS/Tag
+++ b/Bugzilla/Auth/Persist/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/Auth/Persist/Cookie.pm b/Bugzilla/Auth/Persist/Cookie.pm
index 9098f8989b70dc5ed65f116eeddd54a71956da01..420bad16b0683a014e6e44081a24471c0c168745 100644
--- a/Bugzilla/Auth/Persist/Cookie.pm
+++ b/Bugzilla/Auth/Persist/Cookie.pm
@@ -60,6 +60,8 @@ sub persist_login {
     # subsequent login
     trick_taint($ip_addr);
 
+    $dbh->bz_start_transaction();
+
     my $login_cookie = 
         Bugzilla::Token::GenerateUniqueToken('logincookies', 'cookie');
 
@@ -67,6 +69,13 @@ sub persist_login {
               VALUES (?, ?, ?, NOW())",
               undef, $login_cookie, $user->id, $ip_addr);
 
+    # Issuing a new cookie is a good time to clean up the old
+    # cookies.
+    $dbh->do("DELETE FROM logincookies WHERE lastused < LOCALTIMESTAMP(0) - "
+             . $dbh->sql_interval(MAX_LOGINCOOKIE_AGE, 'DAY'));
+
+    $dbh->bz_commit_transaction();
+
     # Prevent JavaScript from accessing login cookies.
     my %cookieargs = ('-httponly' => 1);
 
diff --git a/Bugzilla/Auth/Verify/CVS/Entries b/Bugzilla/Auth/Verify/CVS/Entries
index bc58d19721e9232c56637bf1e6e34f5e01626ea7..75a87baaf2e7d2bc76936db6261164fd70b3a3df 100644
--- a/Bugzilla/Auth/Verify/CVS/Entries
+++ b/Bugzilla/Auth/Verify/CVS/Entries
@@ -1,5 +1,5 @@
-/DB.pm/1.10/Fri Jan  2 09:11:50 2009//TBUGZILLA-3_3_1
-/LDAP.pm/1.18/Mon Oct 20 18:35:51 2008//TBUGZILLA-3_3_1
-/RADIUS.pm/1.1/Thu Aug  2 22:38:37 2007//TBUGZILLA-3_3_1
-/Stack.pm/1.2/Wed Aug  6 23:38:25 2008//TBUGZILLA-3_3_1
+/DB.pm/1.10/Fri Jan  2 09:11:50 2009//TBUGZILLA-3_3_2
+/LDAP.pm/1.18/Mon Oct 20 18:35:51 2008//TBUGZILLA-3_3_2
+/RADIUS.pm/1.1/Thu Aug  2 22:38:37 2007//TBUGZILLA-3_3_2
+/Stack.pm/1.2/Wed Aug  6 23:38:25 2008//TBUGZILLA-3_3_2
 D
diff --git a/Bugzilla/Auth/Verify/CVS/Tag b/Bugzilla/Auth/Verify/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/Auth/Verify/CVS/Tag
+++ b/Bugzilla/Auth/Verify/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm
index cfc01ba7b6022f138c52a7a823a42a1173a707ff..5038275c86f398e9d83ff382204bb670c50191f8 100644
--- a/Bugzilla/Bug.pm
+++ b/Bugzilla/Bug.pm
@@ -47,6 +47,8 @@ use Bugzilla::Status;
 
 use List::Util qw(min);
 use Storable qw(dclone);
+use URI;
+use URI::QueryParam;
 
 use base qw(Bugzilla::Object Exporter);
 @Bugzilla::Bug::EXPORT = qw(
@@ -326,6 +328,66 @@ sub check_is_visible {
     }
 }
 
+sub match {
+    my $class = shift;
+    my ($params) = @_;
+
+    # Allow matching certain fields by name (in addition to matching by ID).
+    my %translate_fields = (
+        assigned_to => 'Bugzilla::User',
+        qa_contact  => 'Bugzilla::User',
+        reporter    => 'Bugzilla::User',
+        product     => 'Bugzilla::Product',
+        component   => 'Bugzilla::Component',
+    );
+    my %translated;
+
+    foreach my $field (keys %translate_fields) {
+        my @ids;
+        # Convert names to ids. We use "exists" everywhere since people can
+        # legally specify "undef" to mean IS NULL (even though most of these
+        # fields can't be NULL, people can still specify it...).
+        if (exists $params->{$field}) {
+            my $names = $params->{$field};
+            my $type = $translate_fields{$field};
+            my $param = $type eq 'Bugzilla::User' ? 'login_name' : 'name';
+            # We call Bugzilla::Object::match directly to avoid the
+            # Bugzilla::User::match implementation which is different.
+            my $objects = Bugzilla::Object::match($type, { $param => $names });
+            push(@ids, map { $_->id } @$objects);
+        }
+        # You can also specify ids directly as arguments to this function,
+        # so include them in the list if they have been specified.
+        if (exists $params->{"${field}_id"}) {
+            my $current_ids = $params->{"${field}_id"};
+            my @id_array = ref $current_ids ? @$current_ids : ($current_ids);
+            push(@ids, @id_array);
+        }
+        # We do this "or" instead of a "scalar(@ids)" to handle the case
+        # when people passed only invalid object names. Otherwise we'd
+        # end up with a SUPER::match call with zero criteria (which dies).
+        if (exists $params->{$field} or exists $params->{"${field}_id"}) {
+            $translated{$field} = scalar(@ids) == 1 ? $ids[0] : \@ids;
+        }
+    }
+
+    # The user fields don't have an _id on the end of them in the database,
+    # but the product & component fields do, so we have to have separate
+    # code to deal with the different sets of fields here.
+    foreach my $field (qw(assigned_to qa_contact reporter)) {
+        delete $params->{"${field}_id"};
+        $params->{$field} = $translated{$field} 
+            if exists $translated{$field};
+    }
+    foreach my $field (qw(product component)) {
+        delete $params->{$field};
+        $params->{"${field}_id"} = $translated{$field} 
+            if exists $translated{$field};
+    }
+
+    return $class->SUPER::match(@_);
+}
+
 # Docs for create() (there's no POD in this file yet, but we very
 # much need this documented right now):
 #
@@ -746,6 +808,25 @@ sub update {
         }
     }
 
+    # See Also
+    my ($removed_see, $added_see) = 
+        diff_arrays($old_bug->see_also, $self->see_also);
+
+    if (scalar @$removed_see) {
+        $dbh->do('DELETE FROM bug_see_also WHERE bug_id = ? AND '
+                 . $dbh->sql_in('value', [('?') x @$removed_see]),
+                  undef, $self->id, @$removed_see);
+    }
+    foreach my $url (@$added_see) {
+        $dbh->do('INSERT INTO bug_see_also (bug_id, value) VALUES (?,?)',
+                 undef, $self->id, $url);
+    }
+    # If any changes were found, record it in the activity log
+    if (scalar @$removed_see || scalar @$added_see) {
+        $changes->{see_also} = [join(', ', @$removed_see),
+                                join(', ', @$added_see)];
+    }
+
     # Log bugs_activity items
     # XXX Eventually, when bugs_activity is able to track the dupe_id,
     # this code should go below the duplicates-table-updating code below.
@@ -1691,7 +1772,7 @@ sub fields {
            reporter_accessible cclist_accessible
            classification_id classification
            product component version rep_platform op_sys
-           bug_status resolution dup_id
+           bug_status resolution dup_id see_also
            bug_file_loc status_whiteboard keywords
            priority bug_severity target_milestone
            dependson blocked votes everconfirmed
@@ -2268,6 +2349,83 @@ sub remove_group {
     @$current_groups = grep { $_->id != $group->id } @$current_groups;
 }
 
+sub add_see_also {
+    my ($self, $input) = @_;
+    $input = trim($input);
+
+    # We assume that the URL is an HTTP URL if there is no (something):// 
+    # in front.
+    my $uri = new URI($input);
+    if (!$uri->scheme) {
+        # This works better than setting $uri->scheme('http'), because
+        # that creates URLs like "http:domain.com" and doesn't properly
+        # differentiate the path from the domain.
+        $uri = new URI("http://$input");
+    }
+    elsif ($uri->scheme ne 'http' && $uri->scheme ne 'https') {
+        ThrowUserError('bug_url_invalid', { url => $input, reason => 'http' });
+    }
+
+    my $result;
+    # Launchpad URLs
+    if ($uri->authority =~ /launchpad.net$/) {
+        # Launchpad bug URLs can look like various things:
+        #   https://bugs.launchpad.net/ubuntu/+bug/1234
+        #   https://launchpad.net/bugs/1234
+        # All variations end with either "/bugs/1234" or "/+bug/1234"
+        if ($uri->path =~ m|bugs?/(\d+)$|) {
+            # This is the shortest standard URL form for Launchpad bugs,
+            # and so we reduce all URLs to this.
+            $result = "https://launchpad.net/bugs/$1";
+        }
+        else {
+            ThrowUserError('bug_url_invalid',
+                           { url => $input, reason => 'id' });
+        }
+    }
+    # Bugzilla URLs
+    else {
+        if ($uri->path !~ /show_bug\.cgi$/) {
+            ThrowUserError('bug_url_invalid', 
+                           { url => $input, reason => 'show_bug' });
+        }
+
+        my $bug_id = $uri->query_param('id');
+        # We don't currently allow aliases, because we can't check to see
+        # if somebody's putting both an alias link and a numeric ID link.
+        # When we start validating the URL by accessing the other Bugzilla,
+        # we can allow aliases.
+        detaint_natural($bug_id);
+        if (!$bug_id) {
+            ThrowUserError('bug_url_invalid', 
+                           { url => $input, reason => 'id' });
+        }
+
+        # Make sure that "id" is the only query parameter.
+        $uri->query("id=$bug_id");
+        # And remove any # part if there is one.
+        $uri->fragment(undef);
+        $result = $uri->canonical->as_string;
+    }
+
+    if (length($result) > MAX_BUG_URL_LENGTH) {
+        ThrowUserError('bug_url_too_long', { url => $result });
+    }
+
+    # We only add the new URI if it hasn't been added yet. URIs are
+    # case-sensitive, but most of our DBs are case-insensitive, so we do
+    # this check case-insensitively.
+    if (!grep { lc($_) eq lc($result) } @{ $self->see_also }) {
+        push(@{ $self->see_also }, $result);
+    }
+}
+
+sub remove_see_also {
+    my ($self, $url) = @_;
+    my $see_also = $self->see_also;
+    @$see_also = grep { lc($_) ne lc($url) } @$see_also;
+}
+
 #####################################################################
 # Instance Accessors
 #####################################################################
@@ -2539,6 +2697,14 @@ sub reporter {
     return $self->{'reporter'};
 }
 
+sub see_also {
+    my ($self) = @_;
+    return [] if $self->{'error'};
+    $self->{'see_also'} ||= Bugzilla->dbh->selectcol_arrayref(
+        'SELECT value FROM bug_see_also WHERE bug_id = ?', undef, $self->id);
+    return $self->{'see_also'};
+}
+
 sub status {
     my $self = shift;
     return undef if $self->{'error'};
@@ -2800,12 +2966,18 @@ sub editable_bug_fields {
 
 # XXX - When Bug::update() will be implemented, we should make this routine
 #       a private method.
+# Join with bug_status and bugs tables to show bugs with open statuses first,
+# and then the others
 sub EmitDependList {
     my ($myfield, $targetfield, $bug_id) = (@_);
     my $dbh = Bugzilla->dbh;
     my $list_ref = $dbh->selectcol_arrayref(
-          "SELECT $targetfield FROM dependencies
-            WHERE $myfield = ? ORDER BY $targetfield",
+          "SELECT $targetfield
+             FROM dependencies
+                  INNER JOIN bugs ON dependencies.$targetfield = bugs.bug_id
+                  INNER JOIN bug_status ON bugs.bug_status = bug_status.value
+            WHERE $myfield = ?
+            ORDER BY is_open DESC, $targetfield",
             undef, $bug_id);
     return $list_ref;
 }
@@ -2853,11 +3025,16 @@ sub GetComments {
              INNER JOIN profiles
                      ON profiles.userid = longdescs.who
                   WHERE longdescs.bug_id = ?';
+
     if ($start) {
-        $query .= ' AND longdescs.bug_when > ?
-                    AND longdescs.bug_when <= ?';
-        push(@args, ($start, $end));
+        $query .= ' AND longdescs.bug_when > ?';
+        push(@args, $start);
     }
+    if ($end) {
+        $query .= ' AND longdescs.bug_when <= ?';
+        push(@args, $end);
+    }
+
     $query .= " ORDER BY longdescs.bug_when $sort_order";
     my $sth = $dbh->prepare($query);
     $sth->execute(@args);
diff --git a/Bugzilla/CGI.pm b/Bugzilla/CGI.pm
index 6d6ab575c5b4b9c2bdcb8926fd5ea6c5703aaba3..d7934f89b5c3cde7e394d477e60eff1f7758dae1 100644
--- a/Bugzilla/CGI.pm
+++ b/Bugzilla/CGI.pm
@@ -71,6 +71,18 @@ sub new {
     # Send appropriate charset
     $self->charset(Bugzilla->params->{'utf8'} ? 'UTF-8' : '');
 
+    # Redirect to urlbase/sslbase if we are not viewing an attachment.
+    if (use_attachbase() && i_am_cgi()) {
+        my $cgi_file = $self->url('-path_info' => 0, '-query' => 0, '-relative' => 1);
+        $cgi_file =~ s/\?$//;
+        my $urlbase = Bugzilla->params->{'urlbase'};
+        my $sslbase = Bugzilla->params->{'sslbase'};
+        my $path_regexp = $sslbase ? qr/^(\Q$urlbase\E|\Q$sslbase\E)/ : qr/^\Q$urlbase\E/;
+        if ($cgi_file ne 'attachment.cgi' && $self->self_url !~ /$path_regexp/) {
+            $self->redirect_to_urlbase;
+        }
+    }
+
     # Check for errors
     # All of the Bugzilla code wants to do this, so do it here instead of
     # in each script
@@ -109,6 +121,10 @@ sub canonicalise_query {
         # Leave this key out if it's in the exclude list
         next if lsearch(\@exclude, $key) != -1;
 
+        # Remove the Boolean Charts for standard query.cgi fields
+        # They are listed in the query URL already
+        next if $key =~ /^(field|type|value)(-\d+){3}$/;
+
         my $esc_key = url_quote($key);
 
         foreach my $value ($self->param($key)) {
@@ -347,6 +363,14 @@ sub require_https {
     exit;
 }
 
+# Redirect to the urlbase version of the current URL.
+sub redirect_to_urlbase {
+    my $self = shift;
+    my $path = $self->url('-path_info' => 1, '-query' => 1, '-relative' => 1);
+    print $self->redirect('-location' => correct_urlbase() . $path);
+    exit;
+}
+
 1;
 
 __END__
@@ -417,6 +441,10 @@ If the client is using XMLRPC, it will not retain the QUERY_STRING since XMLRPC
 It takes an optional argument which will be used as the base URL.  If $baseurl
 is not provided, the current URL is used.
 
+=item C<redirect_to_urlbase>
+
+Redirects from the current URL to one prefixed by the urlbase parameter.
+
 =back
 
 =head1 SEE ALSO
diff --git a/Bugzilla/CVS/Entries b/Bugzilla/CVS/Entries
index 449dae846ade781360622c5e9f7b796d336ce74f..e7a80c326657d0b0bb8058470fe9472fad71fa97 100644
--- a/Bugzilla/CVS/Entries
+++ b/Bugzilla/CVS/Entries
@@ -1,38 +1,38 @@
-/.cvsignore/1.1/Mon Aug 26 22:24:55 2002//TBUGZILLA-3_3_1
-/Attachment.pm/1.60/Wed Dec 10 18:32:27 2008//TBUGZILLA-3_3_1
-/Auth.pm/1.20/Wed Jul 12 11:51:43 2006//TBUGZILLA-3_3_1
-/Bug.pm/1.271/Sun Jan  4 04:38:41 2009//TBUGZILLA-3_3_1
-/BugMail.pm/1.124/Thu Jan  1 23:24:38 2009//TBUGZILLA-3_3_1
-/CGI.pm/1.41/Tue Sep 16 19:52:46 2008//TBUGZILLA-3_3_1
-/Chart.pm/1.17/Fri Aug  8 01:26:35 2008//TBUGZILLA-3_3_1
-/Classification.pm/1.14/Sun Jan  4 23:15:28 2009//TBUGZILLA-3_3_1
-/Component.pm/1.16/Thu Oct 11 23:07:22 2007//TBUGZILLA-3_3_1
-/Config.pm/1.76/Wed Dec 24 19:08:20 2008//TBUGZILLA-3_3_1
-/Constants.pm/1.102/Tue Jan  6 07:34:41 2009//TBUGZILLA-3_3_1
-/DB.pm/1.122/Wed Dec  3 07:00:45 2008//TBUGZILLA-3_3_1
-/Error.pm/1.24/Tue May 27 22:08:59 2008//TBUGZILLA-3_3_1
-/Field.pm/1.40/Thu Jan  1 23:24:39 2009//TBUGZILLA-3_3_1
-/Flag.pm/1.99/Mon Sep  8 17:13:37 2008//TBUGZILLA-3_3_1
-/FlagType.pm/1.39/Wed Sep 17 03:47:36 2008//TBUGZILLA-3_3_1
-/Group.pm/1.23/Sat Oct 18 16:15:21 2008//TBUGZILLA-3_3_1
-/Hook.pm/1.24/Thu Dec 18 17:18:25 2008//TBUGZILLA-3_3_1
-/Install.pm/1.18/Wed Aug 27 02:32:13 2008//TBUGZILLA-3_3_1
-/JobQueue.pm/1.1/Wed Dec 24 03:43:38 2008//TBUGZILLA-3_3_1
-/Keyword.pm/1.7/Tue Sep  5 19:18:26 2006//TBUGZILLA-3_3_1
-/Mailer.pm/1.26/Wed Dec 24 03:43:38 2008//TBUGZILLA-3_3_1
-/Milestone.pm/1.12/Fri Jan 18 15:56:54 2008//TBUGZILLA-3_3_1
-/Object.pm/1.28/Fri Oct 24 23:11:34 2008//TBUGZILLA-3_3_1
-/Product.pm/1.33/Fri Jan  2 13:47:56 2009//TBUGZILLA-3_3_1
-/Search.pm/1.169/Sun Jan  4 18:19:27 2009//TBUGZILLA-3_3_1
-/Series.pm/1.18/Fri Aug 22 15:33:03 2008//TBUGZILLA-3_3_1
-/Status.pm/1.11/Fri Nov  7 11:34:42 2008//TBUGZILLA-3_3_1
-/Template.pm/1.94/Mon Dec 29 00:02:12 2008//TBUGZILLA-3_3_1
-/Token.pm/1.55/Wed Apr  2 17:42:27 2008//TBUGZILLA-3_3_1
-/Update.pm/1.10/Fri May  2 19:14:13 2008//TBUGZILLA-3_3_1
-/User.pm/1.177/Fri Jan  2 13:59:24 2009//TBUGZILLA-3_3_1
-/Util.pm/1.79/Fri Jan  2 09:11:48 2009//TBUGZILLA-3_3_1
-/Version.pm/1.14/Thu Aug 23 21:31:20 2007//TBUGZILLA-3_3_1
-/WebService.pm/1.14/Wed Nov 26 01:20:41 2008//TBUGZILLA-3_3_1
+/.cvsignore/1.1/Mon Aug 26 22:24:55 2002//TBUGZILLA-3_3_2
+/Attachment.pm/1.60/Wed Dec 10 18:32:27 2008//TBUGZILLA-3_3_2
+/Auth.pm/1.21/Tue Jan 20 20:09:46 2009//TBUGZILLA-3_3_2
+/Bug.pm/1.276/Mon Jan 26 21:59:55 2009//TBUGZILLA-3_3_2
+/BugMail.pm/1.124/Thu Jan  1 23:24:38 2009//TBUGZILLA-3_3_2
+/CGI.pm/1.43/Mon Feb  2 18:21:36 2009//TBUGZILLA-3_3_2
+/Chart.pm/1.17/Fri Aug  8 01:26:35 2008//TBUGZILLA-3_3_2
+/Classification.pm/1.14/Sun Jan  4 23:15:28 2009//TBUGZILLA-3_3_2
+/Component.pm/1.16/Thu Oct 11 23:07:22 2007//TBUGZILLA-3_3_2
+/Config.pm/1.76/Wed Dec 24 19:08:20 2008//TBUGZILLA-3_3_2
+/Constants.pm/1.106/Mon Feb  2 23:27:33 2009//TBUGZILLA-3_3_2
+/DB.pm/1.123/Thu Jan 29 21:22:21 2009//TBUGZILLA-3_3_2
+/Error.pm/1.24/Tue May 27 22:08:59 2008//TBUGZILLA-3_3_2
+/Field.pm/1.42/Thu Jan 22 04:08:43 2009//TBUGZILLA-3_3_2
+/Flag.pm/1.99/Mon Sep  8 17:13:37 2008//TBUGZILLA-3_3_2
+/FlagType.pm/1.39/Wed Sep 17 03:47:36 2008//TBUGZILLA-3_3_2
+/Group.pm/1.24/Sun Jan 25 18:49:31 2009//TBUGZILLA-3_3_2
+/Hook.pm/1.24/Thu Dec 18 17:18:25 2008//TBUGZILLA-3_3_2
+/Install.pm/1.19/Sun Jan 25 18:49:31 2009//TBUGZILLA-3_3_2
+/JobQueue.pm/1.1/Wed Dec 24 03:43:38 2008//TBUGZILLA-3_3_2
+/Keyword.pm/1.7/Tue Sep  5 19:18:26 2006//TBUGZILLA-3_3_2
+/Mailer.pm/1.26/Wed Dec 24 03:43:38 2008//TBUGZILLA-3_3_2
+/Milestone.pm/1.12/Fri Jan 18 15:56:54 2008//TBUGZILLA-3_3_2
+/Object.pm/1.30/Fri Jan 23 03:27:45 2009//TBUGZILLA-3_3_2
+/Product.pm/1.33/Fri Jan  2 13:47:56 2009//TBUGZILLA-3_3_2
+/Search.pm/1.171/Sun Jan 25 18:49:31 2009//TBUGZILLA-3_3_2
+/Series.pm/1.18/Fri Aug 22 15:33:03 2008//TBUGZILLA-3_3_2
+/Status.pm/1.11/Fri Nov  7 11:34:42 2008//TBUGZILLA-3_3_2
+/Template.pm/1.99/Mon Feb  2 18:33:59 2009//TBUGZILLA-3_3_2
+/Token.pm/1.57/Mon Feb  2 18:33:59 2009//TBUGZILLA-3_3_2
+/Update.pm/1.10/Fri May  2 19:14:13 2008//TBUGZILLA-3_3_2
+/User.pm/1.178/Sun Jan 25 18:49:31 2009//TBUGZILLA-3_3_2
+/Util.pm/1.83/Mon Feb  2 18:21:37 2009//TBUGZILLA-3_3_2
+/Version.pm/1.14/Thu Aug 23 21:31:20 2007//TBUGZILLA-3_3_2
+/WebService.pm/1.16/Fri Jan  9 07:44:05 2009//TBUGZILLA-3_3_2
 D/Attachment////
 D/Auth////
 D/Config////
diff --git a/Bugzilla/CVS/Tag b/Bugzilla/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/CVS/Tag
+++ b/Bugzilla/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/Config/Attachment.pm b/Bugzilla/Config/Attachment.pm
index 72ad29a2de3540507e0effe23f3dc498364986b5..2b014deda1f971e3f919307244627b9f75fcebfa 100644
--- a/Bugzilla/Config/Attachment.pm
+++ b/Bugzilla/Config/Attachment.pm
@@ -40,6 +40,19 @@ $Bugzilla::Config::Attachment::sortkey = "025";
 sub get_param_list {
   my $class = shift;
   my @param_list = (
+  {
+   name => 'allow_attachment_display',
+   type => 'b',
+   default => 0
+  },
+
+  {
+   name => 'attachment_base',
+   type => 't',
+   default => '',
+   checker => \&check_urlbase
+  },
+
   {
   name => 'allow_attachment_deletion',
   type => 'b',
diff --git a/Bugzilla/Config/CVS/Entries b/Bugzilla/Config/CVS/Entries
index 5471abfb882c898771fdd7901bc6451bb5938e15..0416eb3899eb015e6aa8f91127f023de80584120 100644
--- a/Bugzilla/Config/CVS/Entries
+++ b/Bugzilla/Config/CVS/Entries
@@ -1,18 +1,18 @@
-/Admin.pm/1.4/Tue Dec 16 21:22:02 2008//TBUGZILLA-3_3_1
-/Attachment.pm/1.4/Wed Dec 10 18:32:28 2008//TBUGZILLA-3_3_1
-/Auth.pm/1.3/Thu Aug  2 22:38:39 2007//TBUGZILLA-3_3_1
-/BugChange.pm/1.7/Wed Dec 10 18:40:00 2008//TBUGZILLA-3_3_1
-/BugFields.pm/1.6/Wed Dec 10 18:43:28 2008//TBUGZILLA-3_3_1
-/BugMove.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_3_1
-/Common.pm/1.24/Wed Dec 24 03:43:40 2008//TBUGZILLA-3_3_1
-/Core.pm/1.10/Wed Aug 27 23:26:15 2008//TBUGZILLA-3_3_1
-/DependencyGraph.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_3_1
-/GroupSecurity.pm/1.8/Mon Aug  7 23:05:00 2006//TBUGZILLA-3_3_1
-/LDAP.pm/1.2/Fri Jun  2 11:52:48 2006//TBUGZILLA-3_3_1
-/MTA.pm/1.17/Wed Dec 24 03:43:40 2008//TBUGZILLA-3_3_1
-/PatchViewer.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_3_1
-/Query.pm/1.5/Tue Jul  3 16:22:01 2007//TBUGZILLA-3_3_1
-/RADIUS.pm/1.1/Thu Aug  2 22:38:39 2007//TBUGZILLA-3_3_1
-/ShadowDB.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_3_1
-/UserMatch.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_3_1
+/Admin.pm/1.4/Tue Dec 16 21:22:02 2008//TBUGZILLA-3_3_2
+/Attachment.pm/1.6/Mon Feb  2 19:10:33 2009//TBUGZILLA-3_3_2
+/Auth.pm/1.3/Thu Aug  2 22:38:39 2007//TBUGZILLA-3_3_2
+/BugChange.pm/1.7/Wed Dec 10 18:40:00 2008//TBUGZILLA-3_3_2
+/BugFields.pm/1.6/Wed Dec 10 18:43:28 2008//TBUGZILLA-3_3_2
+/BugMove.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_3_2
+/Common.pm/1.24/Wed Dec 24 03:43:40 2008//TBUGZILLA-3_3_2
+/Core.pm/1.10/Wed Aug 27 23:26:15 2008//TBUGZILLA-3_3_2
+/DependencyGraph.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_3_2
+/GroupSecurity.pm/1.8/Mon Aug  7 23:05:00 2006//TBUGZILLA-3_3_2
+/LDAP.pm/1.2/Fri Jun  2 11:52:48 2006//TBUGZILLA-3_3_2
+/MTA.pm/1.17/Wed Dec 24 03:43:40 2008//TBUGZILLA-3_3_2
+/PatchViewer.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_3_2
+/Query.pm/1.6/Mon Jan 26 22:05:59 2009//TBUGZILLA-3_3_2
+/RADIUS.pm/1.1/Thu Aug  2 22:38:39 2007//TBUGZILLA-3_3_2
+/ShadowDB.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_3_2
+/UserMatch.pm/1.1/Wed Oct 12 08:51:53 2005//TBUGZILLA-3_3_2
 D
diff --git a/Bugzilla/Config/CVS/Tag b/Bugzilla/Config/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/Config/CVS/Tag
+++ b/Bugzilla/Config/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/Config/Query.pm b/Bugzilla/Config/Query.pm
index 74e26503790ecc104e912fb683df95c441a7989f..fbfdb4c22bb03a31ff8b750f567d19617fe62444 100644
--- a/Bugzilla/Config/Query.pm
+++ b/Bugzilla/Config/Query.pm
@@ -77,7 +77,7 @@ sub get_param_list {
   {
    name => 'specific_search_allow_empty_words',
    type => 'b',
-   default => 0
+   default => 1
   }
   
   );
diff --git a/Bugzilla/Constants.pm b/Bugzilla/Constants.pm
index 1d2ebea70d39fa32c50d01fc27dc50574c5bb7af..09c3771cbda61f14bd6200182798c46fd5d0493c 100644
--- a/Bugzilla/Constants.pm
+++ b/Bugzilla/Constants.pm
@@ -124,6 +124,7 @@ use File::Basename;
     FIELD_TYPE_TEXTAREA
     FIELD_TYPE_DATETIME
     FIELD_TYPE_BUG_ID
+    FIELD_TYPE_BUG_URLS
 
     USAGE_MODE_BROWSER
     USAGE_MODE_CMDLINE
@@ -142,6 +143,7 @@ use File::Basename;
     ON_WINDOWS
 
     MAX_TOKEN_AGE
+    MAX_LOGINCOOKIE_AGE
 
     SAFE_PROTOCOLS
 
@@ -155,6 +157,7 @@ use File::Basename;
     MAX_COMPONENT_SIZE
     MAX_FIELD_VALUE_SIZE
     MAX_FREETEXT_LENGTH
+    MAX_BUG_URL_LENGTH
 
     PASSWORD_DIGEST_ALGORITHM
     PASSWORD_SALT_LENGTH
@@ -165,7 +168,7 @@ use File::Basename;
 # CONSTANTS
 #
 # Bugzilla version
-use constant BUGZILLA_VERSION => "3.3.1";
+use constant BUGZILLA_VERSION => "3.3.2";
 
 # These are unique values that are unlikely to match a string or a number,
 # to be used in criteria for match() functions and other things. They start
@@ -360,9 +363,12 @@ use constant FIELD_TYPE_MULTI_SELECT => 3;
 use constant FIELD_TYPE_TEXTAREA  => 4;
 use constant FIELD_TYPE_DATETIME  => 5;
 use constant FIELD_TYPE_BUG_ID  => 6;
+use constant FIELD_TYPE_BUG_URLS => 7;
 
 # The maximum number of days a token will remain valid.
 use constant MAX_TOKEN_AGE => 3;
+# How many days a logincookie will remain valid if not used.
+use constant MAX_LOGINCOOKIE_AGE => 30;
 
 # Protocols which are considered as safe.
 use constant SAFE_PROTOCOLS => ('afs', 'cid', 'ftp', 'gopher', 'http', 'https',
@@ -444,6 +450,9 @@ use constant MAX_FIELD_VALUE_SIZE => 64;
 # Maximum length allowed for free text fields.
 use constant MAX_FREETEXT_LENGTH => 255;
 
+# The longest a bug URL in a BUG_URLS field can be.
+use constant MAX_BUG_URL_LENGTH => 255;
+
 # This is the name of the algorithm used to hash passwords before storing
 # them in the database. This can be any string that is valid to pass to
 # Perl's "Digest" module. Note that if you change this, it won't take
diff --git a/Bugzilla/DB.pm b/Bugzilla/DB.pm
index 377f839300f30b99cb0836b208e2093e127d8c6a..81a720ee59eb04da7b538b0ef17965f1a10c84b9 100644
--- a/Bugzilla/DB.pm
+++ b/Bugzilla/DB.pm
@@ -342,6 +342,12 @@ sub sql_string_concat {
     return '(' . join(' || ', @params) . ')';
 }
 
+sub sql_string_until {
+    my ($self, $string, $substring) = @_;
+    return "SUBSTRING($string FROM 1 FOR " .
+                      $self->sql_position($substring, $string) . " - 1)";
+}
+
 sub sql_in {
     my ($self, $column_name, $in_list_ref) = @_;
     return " $column_name IN (" . join(',', @$in_list_ref) . ") ";
@@ -1811,6 +1817,25 @@ Formatted SQL for concatenating specified strings
 
 =back
 
+=item C<sql_string_until>
+
+=over
+
+=item B<Description>
+
+Returns SQL for truncating a string at the first occurrence of a certain
+substring.
+
+=item B<Params>
+
+Note that both parameters need to be sql-quoted.
+
+=item C<$string> The string we're truncating
+
+=item C<$substring> The substring we're truncating at.
+
+=back
+
 =item C<sql_fulltext_search>
 
 =over
diff --git a/Bugzilla/DB/CVS/Entries b/Bugzilla/DB/CVS/Entries
index c5d1afe109453006b44ff3ff83cadebf270c91e1..e4ca73a4ea62ac34c930051b706d2739454f9e7b 100644
--- a/Bugzilla/DB/CVS/Entries
+++ b/Bugzilla/DB/CVS/Entries
@@ -1,5 +1,5 @@
-/Mysql.pm/1.71/Wed Dec 24 03:43:41 2008//TBUGZILLA-3_3_1
-/Oracle.pm/1.21/Mon Jan  5 19:52:06 2009//TBUGZILLA-3_3_1
-/Pg.pm/1.31/Wed Dec 24 03:43:41 2008//TBUGZILLA-3_3_1
-/Schema.pm/1.109/Wed Dec 24 03:43:41 2008//TBUGZILLA-3_3_1
+/Mysql.pm/1.71/Wed Dec 24 03:43:41 2008//TBUGZILLA-3_3_2
+/Oracle.pm/1.21/Mon Jan  5 19:52:06 2009//TBUGZILLA-3_3_2
+/Pg.pm/1.31/Wed Dec 24 03:43:41 2008//TBUGZILLA-3_3_2
+/Schema.pm/1.111/Thu Jan 22 04:08:44 2009//TBUGZILLA-3_3_2
 D/Schema////
diff --git a/Bugzilla/DB/CVS/Tag b/Bugzilla/DB/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/DB/CVS/Tag
+++ b/Bugzilla/DB/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/DB/Schema.pm b/Bugzilla/DB/Schema.pm
index f11c86e75399d5e5b2e3783ffbc1df59c1192a0f..a3fefd8d8bcbf603a35aab92263d06c96c811df6 100644
--- a/Bugzilla/DB/Schema.pm
+++ b/Bugzilla/DB/Schema.pm
@@ -487,6 +487,17 @@ use constant ABSTRACT_SCHEMA => {
         ],
     },
 
+    bug_see_also => {
+        FIELDS => [
+            bug_id => {TYPE => 'INT3', NOTNULL => 1},
+            value  => {TYPE => 'varchar(255)', NOTNULL => 1},
+        ],
+        INDEXES => [
+            bug_see_also_bug_id_idx => {FIELDS => [qw(bug_id value)], 
+                                        TYPE   => 'UNIQUE'},
+        ],
+    },
+
     # Keywords
     # --------
 
@@ -654,6 +665,8 @@ use constant ABSTRACT_SCHEMA => {
                             DEFAULT => 'FALSE'},
             enter_bug   => {TYPE => 'BOOLEAN', NOTNULL => 1,
                             DEFAULT => 'FALSE'},
+            buglist     => {TYPE => 'BOOLEAN', NOTNULL => 1,
+                            DEFAULT => 'FALSE'},
             visibility_field_id => {TYPE => 'INT3', 
                                     REFERENCES => {TABLE  => 'fielddefs',
                                                    COLUMN => 'id'}},
@@ -1498,7 +1511,6 @@ use constant MULTI_SELECT_VALUE_TABLE => {
     ],
 };
 
-
 #--------------------------------------------------------------------------
 
 =head1 METHODS
diff --git a/Bugzilla/DB/Schema/CVS/Entries b/Bugzilla/DB/Schema/CVS/Entries
index 6ff61f8b9da31e8b23a005936b19639c63f1bb36..f7ca2bf4737c9e88efa9658ab3cb2b2783bd1ebb 100644
--- a/Bugzilla/DB/Schema/CVS/Entries
+++ b/Bugzilla/DB/Schema/CVS/Entries
@@ -1,4 +1,4 @@
-/Mysql.pm/1.20/Mon Mar 24 22:47:25 2008//TBUGZILLA-3_3_1
-/Oracle.pm/1.9/Mon Jan  5 19:52:08 2009//TBUGZILLA-3_3_1
-/Pg.pm/1.15/Tue Dec 11 02:26:49 2007//TBUGZILLA-3_3_1
+/Mysql.pm/1.20/Mon Mar 24 22:47:25 2008//TBUGZILLA-3_3_2
+/Oracle.pm/1.9/Mon Jan  5 19:52:08 2009//TBUGZILLA-3_3_2
+/Pg.pm/1.15/Tue Dec 11 02:26:49 2007//TBUGZILLA-3_3_2
 D
diff --git a/Bugzilla/DB/Schema/CVS/Tag b/Bugzilla/DB/Schema/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/DB/Schema/CVS/Tag
+++ b/Bugzilla/DB/Schema/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/Field.pm b/Bugzilla/Field.pm
index 6d271fe11d16a60a06dc773d736235fbfd6fb8b5..91e9bb8b40a5351850681445ce7f73df6e577629 100644
--- a/Bugzilla/Field.pm
+++ b/Bugzilla/Field.pm
@@ -96,6 +96,7 @@ use constant DB_COLUMNS => qw(
     sortkey
     obsolete
     enter_bug
+    buglist
     visibility_field_id
     visibility_value_id
     value_field_id
@@ -107,6 +108,7 @@ use constant VALIDATORS => {
     custom      => \&_check_custom,
     description => \&_check_description,
     enter_bug   => \&_check_enter_bug,
+    buglist     => \&Bugzilla::Object::check_boolean,
     mailhead    => \&_check_mailhead,
     obsolete    => \&_check_obsolete,
     sortkey     => \&_check_sortkey,
@@ -125,6 +127,7 @@ use constant UPDATE_COLUMNS => qw(
     sortkey
     obsolete
     enter_bug
+    buglist
     visibility_field_id
     visibility_value_id
     value_field_id
@@ -148,32 +151,42 @@ use constant SQL_DEFINITIONS => {
 # These are used by populate_field_definitions to populate
 # the fielddefs table.
 use constant DEFAULT_FIELDS => (
-    {name => 'bug_id',       desc => 'Bug #',      in_new_bugmail => 1},
-    {name => 'short_desc',   desc => 'Summary',    in_new_bugmail => 1},
-    {name => 'classification', desc => 'Classification', in_new_bugmail => 1},
-    {name => 'product',      desc => 'Product',    in_new_bugmail => 1},
-    {name => 'version',      desc => 'Version',    in_new_bugmail => 1},
+    {name => 'bug_id',       desc => 'Bug #',      in_new_bugmail => 1,
+     buglist => 1},
+    {name => 'short_desc',   desc => 'Summary',    in_new_bugmail => 1,
+     buglist => 1},
+    {name => 'classification', desc => 'Classification', in_new_bugmail => 1,
+     buglist => 1},
+    {name => 'product',      desc => 'Product',    in_new_bugmail => 1,
+     buglist => 1},
+    {name => 'version',      desc => 'Version',    in_new_bugmail => 1,
+     buglist => 1},
     {name => 'rep_platform', desc => 'Platform',   in_new_bugmail => 1,
-     type => FIELD_TYPE_SINGLE_SELECT},
+     type => FIELD_TYPE_SINGLE_SELECT, buglist => 1},
     {name => 'bug_file_loc', desc => 'URL',        in_new_bugmail => 1},
     {name => 'op_sys',       desc => 'OS/Version', in_new_bugmail => 1,
-     type => FIELD_TYPE_SINGLE_SELECT},
+     type => FIELD_TYPE_SINGLE_SELECT, buglist => 1},
     {name => 'bug_status',   desc => 'Status',     in_new_bugmail => 1,
-     type => FIELD_TYPE_SINGLE_SELECT},
+     type => FIELD_TYPE_SINGLE_SELECT, buglist => 1},
     {name => 'status_whiteboard', desc => 'Status Whiteboard',
-     in_new_bugmail => 1},
-    {name => 'keywords',     desc => 'Keywords',   in_new_bugmail => 1},
+     in_new_bugmail => 1, buglist => 1},
+    {name => 'keywords',     desc => 'Keywords',   in_new_bugmail => 1,
+     buglist => 1},
     {name => 'resolution',   desc => 'Resolution',
-     type => FIELD_TYPE_SINGLE_SELECT},
+     type => FIELD_TYPE_SINGLE_SELECT, buglist => 1},
     {name => 'bug_severity', desc => 'Severity',   in_new_bugmail => 1,
-     type => FIELD_TYPE_SINGLE_SELECT},
+     type => FIELD_TYPE_SINGLE_SELECT, buglist => 1},
     {name => 'priority',     desc => 'Priority',   in_new_bugmail => 1,
-     type => FIELD_TYPE_SINGLE_SELECT},
-    {name => 'component',    desc => 'Component',  in_new_bugmail => 1},
-    {name => 'assigned_to',  desc => 'AssignedTo', in_new_bugmail => 1},
-    {name => 'reporter',     desc => 'ReportedBy', in_new_bugmail => 1},
-    {name => 'votes',        desc => 'Votes'},
-    {name => 'qa_contact',   desc => 'QAContact',  in_new_bugmail => 1},
+     type => FIELD_TYPE_SINGLE_SELECT, buglist => 1},
+    {name => 'component',    desc => 'Component',  in_new_bugmail => 1,
+     buglist => 1},
+    {name => 'assigned_to',  desc => 'AssignedTo', in_new_bugmail => 1,
+     buglist => 1},
+    {name => 'reporter',     desc => 'ReportedBy', in_new_bugmail => 1,
+     buglist => 1},
+    {name => 'votes',        desc => 'Votes',      buglist => 1},
+    {name => 'qa_contact',   desc => 'QAContact',  in_new_bugmail => 1,
+     buglist => 1},
     {name => 'cc',           desc => 'CC',         in_new_bugmail => 1},
     {name => 'dependson',    desc => 'Depends on', in_new_bugmail => 1},
     {name => 'blocked',      desc => 'Blocks',     in_new_bugmail => 1},
@@ -186,29 +199,37 @@ use constant DEFAULT_FIELDS => (
     {name => 'attachments.isprivate',   desc => 'Attachment is private'},
     {name => 'attachments.submitter',   desc => 'Attachment creator'},
 
-    {name => 'target_milestone',      desc => 'Target Milestone'},
-    {name => 'creation_ts', desc => 'Creation date', in_new_bugmail => 1},
-    {name => 'delta_ts', desc => 'Last changed date', in_new_bugmail => 1},
+    {name => 'target_milestone',      desc => 'Target Milestone',
+     buglist => 1},
+    {name => 'creation_ts',           desc => 'Creation date',
+     in_new_bugmail => 1, buglist => 1},
+    {name => 'delta_ts',              desc => 'Last changed date',
+     in_new_bugmail => 1, buglist => 1},
     {name => 'longdesc',              desc => 'Comment'},
     {name => 'longdescs.isprivate',   desc => 'Comment is private'},
-    {name => 'alias',                 desc => 'Alias'},
+    {name => 'alias',                 desc => 'Alias', buglist => 1},
     {name => 'everconfirmed',         desc => 'Ever Confirmed'},
     {name => 'reporter_accessible',   desc => 'Reporter Accessible'},
     {name => 'cclist_accessible',     desc => 'CC Accessible'},
     {name => 'bug_group',             desc => 'Group', in_new_bugmail => 1},
-    {name => 'estimated_time', desc => 'Estimated Hours', in_new_bugmail => 1},
-    {name => 'remaining_time',        desc => 'Remaining Hours'},
-    {name => 'deadline',              desc => 'Deadline', in_new_bugmail => 1},
+    {name => 'estimated_time',        desc => 'Estimated Hours',
+     in_new_bugmail => 1, buglist => 1},
+    {name => 'remaining_time',        desc => 'Remaining Hours', buglist => 1},
+    {name => 'deadline',              desc => 'Deadline',
+     in_new_bugmail => 1, buglist => 1},
     {name => 'commenter',             desc => 'Commenter'},
     {name => 'flagtypes.name',        desc => 'Flag'},
     {name => 'requestees.login_name', desc => 'Flag Requestee'},
     {name => 'setters.login_name',    desc => 'Flag Setter'},
-    {name => 'work_time',             desc => 'Hours Worked'},
-    {name => 'percentage_complete',   desc => 'Percentage Complete'},
+    {name => 'work_time',             desc => 'Hours Worked', buglist => 1},
+    {name => 'percentage_complete',   desc => 'Percentage Complete',
+     buglist => 1},
     {name => 'content',               desc => 'Content'},
     {name => 'attach_data.thedata',   desc => 'Attachment data'},
     {name => 'attachments.isurl',     desc => 'Attachment is a URL'},
     {name => "owner_idle_time",       desc => "Time Since Assignee Touched"},
+    {name => 'see_also',              desc => "See Also",
+     type => FIELD_TYPE_BUG_URLS},
 );
 
 ################
@@ -290,7 +311,7 @@ sub _check_type {
     my $saved_type = $type;
     # The constant here should be updated every time a new,
     # higher field type is added.
-    (detaint_natural($type) && $type <= FIELD_TYPE_BUG_ID)
+    (detaint_natural($type) && $type <= FIELD_TYPE_BUG_URLS)
       || ThrowCodeError('invalid_customfield_type', { type => $saved_type });
     return $type;
 }
@@ -438,6 +459,19 @@ sub enter_bug { return $_[0]->{enter_bug} }
 
 =over
 
+=item C<buglist>
+
+A boolean specifying whether or not this field is selectable
+as a display or order column in buglist.cgi
+
+=back
+
+=cut
+
+sub buglist { return $_[0]->{buglist} }
+
+=over
+
 =item C<is_select>
 
 True if this is a C<FIELD_TYPE_SINGLE_SELECT> or C<FIELD_TYPE_MULTI_SELECT>
@@ -602,6 +636,8 @@ They will throw an error if you try to set the values to something invalid.
 
 =item C<set_in_new_bugmail>
 
+=item C<set_buglist>
+
 =item C<set_visibility_field>
 
 =item C<set_visibility_value>
@@ -617,6 +653,7 @@ sub set_enter_bug      { $_[0]->set('enter_bug',   $_[1]); }
 sub set_obsolete       { $_[0]->set('obsolete',    $_[1]); }
 sub set_sortkey        { $_[0]->set('sortkey',     $_[1]); }
 sub set_in_new_bugmail { $_[0]->set('mailhead',    $_[1]); }
+sub set_buglist        { $_[0]->set('buglist',     $_[1]); }
 sub set_visibility_field {
     my ($self, $value) = @_;
     $self->set('visibility_field_id', $value);
@@ -745,6 +782,9 @@ will be added to the C<bugs> table if it does not exist. Defaults to 0.
 =item C<enter_bug> - boolean - Whether this field is
 editable on the bug creation form. Defaults to 0.
 
+=item C<buglist> - boolean - Whether this field is
+selectable as a display or order column in bug lists. Defaults to 0.
+
 C<obsolete> - boolean - Whether this field is obsolete. Defaults to 0.
 
 =back
@@ -867,6 +907,7 @@ sub populate_field_definitions {
         if ($field) {
             $field->set_description($def->{desc});
             $field->set_in_new_bugmail($def->{in_new_bugmail});
+            $field->set_buglist($def->{buglist});
             $field->_set_type($def->{type}) if $def->{type};
             $field->update();
         }
diff --git a/Bugzilla/Field/CVS/Entries b/Bugzilla/Field/CVS/Entries
index 598af3d7a71191215612f9fc55526ebbad041cd0..dfcb2d0ff81196afaecf0d6ae9a5c23a97edcdad 100644
--- a/Bugzilla/Field/CVS/Entries
+++ b/Bugzilla/Field/CVS/Entries
@@ -1,2 +1,2 @@
-/Choice.pm/1.7/Fri Nov  7 11:34:44 2008//TBUGZILLA-3_3_1
+/Choice.pm/1.7/Fri Nov  7 11:34:44 2008//TBUGZILLA-3_3_2
 D
diff --git a/Bugzilla/Field/CVS/Tag b/Bugzilla/Field/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/Field/CVS/Tag
+++ b/Bugzilla/Field/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/Group.pm b/Bugzilla/Group.pm
index 455276c99c80ae2e39ffe72c5ce650fc6fe70fba..e33ce6347101320b2c41c8c4c864fc9fd5001dbe 100644
--- a/Bugzilla/Group.pm
+++ b/Bugzilla/Group.pm
@@ -238,6 +238,33 @@ sub members_non_inherited {
     return $self->{members_non_inherited};
 }
 
+sub flatten_group_membership {
+    my ($self, @groups) = @_;
+
+    my $dbh = Bugzilla->dbh;
+    my $sth;
+    my @groupidstocheck = @groups;
+    my %groupidschecked = ();
+    $sth = $dbh->prepare("SELECT member_id FROM group_group_map
+                             WHERE grantor_id = ? 
+                               AND grant_type = " . GROUP_MEMBERSHIP);
+    while (my $node = shift @groupidstocheck) {
+        $sth->execute($node);
+        my $member;
+        while (($member) = $sth->fetchrow_array) {
+            if (!$groupidschecked{$member}) {
+                $groupidschecked{$member} = 1;
+                push @groupidstocheck, $member;
+                push @groups, $member unless grep $_ == $member, @groups;
+            }
+        }
+    }
+    return \@groups;
+}
+
+
+
+
 ################################
 #####  Module Subroutines    ###
 ################################
@@ -394,4 +421,12 @@ Returns an arrayref of L<Bugzilla::User> objects representing people who are
 the group regular expression, or they have been actually added to the
 group manually.
 
+=item C<flatten_group_membership>
+
+Accepts a list of groups and returns a list of all the groups whose members 
+inherit membership in any group on the list.  So, we can determine if a user
+is in any of the groups input to flatten_group_membership by querying the
+user_group_map for any user with DIRECT or REGEXP membership IN() the list
+of groups returned.
+
 =back
diff --git a/Bugzilla/Install.pm b/Bugzilla/Install.pm
index 3d382add8b494eaaff5d21a40c514d5476d42a0e..0a1f0e955b7993b4be134d194c6ec479b02aa4e6 100644
--- a/Bugzilla/Install.pm
+++ b/Bugzilla/Install.pm
@@ -274,7 +274,7 @@ sub create_admin {
 
     my $admin_group = new Bugzilla::Group({ name => 'admin' });
     my $admin_inheritors = 
-        Bugzilla::User->flatten_group_membership($admin_group->id);
+        Bugzilla::Group->flatten_group_membership($admin_group->id);
     my $admin_group_ids = join(',', @$admin_inheritors);
 
     my ($admin_count) = $dbh->selectrow_array(
diff --git a/Bugzilla/Install/CVS/Entries b/Bugzilla/Install/CVS/Entries
index 5bef5ad7d970eef44ff8bc954f02be34aaceacf8..c3442f1025b9422afb9e2f93a267b06df5901d31 100644
--- a/Bugzilla/Install/CVS/Entries
+++ b/Bugzilla/Install/CVS/Entries
@@ -1,7 +1,7 @@
-/CPAN.pm/1.2/Sun Dec 23 05:43:44 2007//TBUGZILLA-3_3_1
-/DB.pm/1.58/Fri Nov  7 11:34:45 2008//TBUGZILLA-3_3_1
-/Filesystem.pm/1.33/Sun Jan  4 14:29:54 2009//TBUGZILLA-3_3_1
-/Localconfig.pm/1.13/Sun Jan  4 14:29:55 2009//TBUGZILLA-3_3_1
-/Requirements.pm/1.56/Fri Jan  2 23:31:22 2009//TBUGZILLA-3_3_1
-/Util.pm/1.16/Sat Dec  6 19:52:06 2008//TBUGZILLA-3_3_1
+/CPAN.pm/1.2/Sun Dec 23 05:43:44 2007//TBUGZILLA-3_3_2
+/DB.pm/1.59/Thu Jan 15 15:47:57 2009//TBUGZILLA-3_3_2
+/Filesystem.pm/1.34/Fri Jan 23 21:34:42 2009//TBUGZILLA-3_3_2
+/Localconfig.pm/1.15/Mon Feb  2 18:39:14 2009//TBUGZILLA-3_3_2
+/Requirements.pm/1.60/Thu Jan 22 04:08:45 2009//TBUGZILLA-3_3_2
+/Util.pm/1.17/Sat Jan 24 14:12:20 2009//TBUGZILLA-3_3_2
 D
diff --git a/Bugzilla/Install/CVS/Tag b/Bugzilla/Install/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/Install/CVS/Tag
+++ b/Bugzilla/Install/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/Install/DB.pm b/Bugzilla/Install/DB.pm
index b6bda167e7e1c80d552b527eae55b5e6562d6484..44ad4c814cc23713496597970c99cff7b367f9ab 100644
--- a/Bugzilla/Install/DB.pm
+++ b/Bugzilla/Install/DB.pm
@@ -92,6 +92,16 @@ sub update_fielddefs_definition {
     $dbh->bz_add_index('fielddefs', 'fielddefs_value_field_id_idx',
                        ['value_field_id']);
 
+    # Bug 344878
+    if (!$dbh->bz_column_info('fielddefs', 'buglist')) {
+        $dbh->bz_add_column('fielddefs', 'buglist',
+            {TYPE => 'BOOLEAN', NOTNULL => 1, DEFAULT => 'FALSE'});
+        # Set non-multiselect custom fields as valid buglist fields
+        # Note that default fields will be handled in Field.pm
+        $dbh->do('UPDATE fielddefs SET buglist = 1 WHERE custom = 1 AND type != ' . FIELD_TYPE_MULTI_SELECT);
+    }
+
+
     # Remember, this is not the function for adding general table changes.
     # That is below. Add new changes to the fielddefs table above this
     # comment.
diff --git a/Bugzilla/Install/Filesystem.pm b/Bugzilla/Install/Filesystem.pm
index bf5ef8e61c67a32cee9fc72b30251c130df72bde..17129b2abb40914281c5ff7e205db97701624b76 100644
--- a/Bugzilla/Install/Filesystem.pm
+++ b/Bugzilla/Install/Filesystem.pm
@@ -171,7 +171,7 @@ sub FILESYSTEM {
                                      dirs => $ws_dir_readable },
          js                    => { files => $ws_readable,
                                      dirs => $ws_dir_readable },
-         skins                 => { files => $ws_readable,
+         $skinsdir             => { files => $ws_readable,
                                      dirs => $ws_dir_readable },
          t                     => { files => $owner_readable,
                                      dirs => $owner_dir_readable },
@@ -201,8 +201,8 @@ sub FILESYSTEM {
         $extensionsdir          => $ws_dir_readable,
         graphs                  => $ws_dir_writeable,
         $webdotdir              => $ws_dir_writeable,
-        'skins/custom'          => $ws_dir_readable,
-        'skins/contrib'         => $ws_dir_readable,
+        "$skinsdir/custom"      => $ws_dir_readable,
+        "$skinsdir/contrib"     => $ws_dir_readable,
     );
 
     # The name of each file, pointing at its default permissions and
@@ -213,7 +213,6 @@ sub FILESYSTEM {
     # we create. Also, we create placeholders for standard stylesheets
     # for contrib skins which don't provide them themselves.
     foreach my $skin_dir ("$skinsdir/custom", <$skinsdir/contrib/*>) {
-        next unless -d $skin_dir;
         next if basename($skin_dir) =~ /^cvs$/i;
         $create_dirs{"$skin_dir/yui"} = $ws_dir_readable;
         foreach my $base_css (<$skinsdir/standard/*.css>) {
diff --git a/Bugzilla/Install/Localconfig.pm b/Bugzilla/Install/Localconfig.pm
index 45005f032037da74cbfed8e8482427018b23222b..e22a47afa61e61de8b48451280b5696f2a7ab0b4 100644
--- a/Bugzilla/Install/Localconfig.pm
+++ b/Bugzilla/Install/Localconfig.pm
@@ -32,6 +32,7 @@ use strict;
 
 use Bugzilla::Constants;
 use Bugzilla::Install::Util qw(bin_loc);
+use Bugzilla::Util qw(generate_random_password);
 
 use Data::Dumper;
 use File::Basename qw(dirname);
@@ -183,6 +184,17 @@ EOT
         desc    => <<EOT
 # The interdiff feature needs diff, so we have to have that path.
 # Please specify the directory name only; do not use trailing slash.
+EOT
+    },
+    {
+        name    => 'site_wide_secret',
+        default => generate_random_password(256),
+        desc    => <<EOT
+# This secret key is used by your installation for the creation and
+# validation of encrypted tokens to prevent unsolicited changes,
+# such as bug changes. A random string is generated by default.
+# It's very important that this key is kept secret. It also must be
+# very long.
 EOT
     },
 );
diff --git a/Bugzilla/Install/Requirements.pm b/Bugzilla/Install/Requirements.pm
index 5647181cc75dacd4100f633aa6c81abba27abea8..4f17ae0535ec60f10462478fd2379a177fbe7d37 100644
--- a/Bugzilla/Install/Requirements.pm
+++ b/Bugzilla/Install/Requirements.pm
@@ -25,6 +25,7 @@ package Bugzilla::Install::Requirements;
 
 use strict;
 
+use Bugzilla::Constants;
 use Bugzilla::Install::Util qw(vers_cmp install_string);
 use List::Util qw(max);
 use Safe;
@@ -40,7 +41,9 @@ our @EXPORT = qw(
     install_command
 );
 
-use Bugzilla::Constants;
+# This is how many *'s are in the top of each "box" message printed
+# by checksetup.pl.
+use constant TABLE_WIDTH => 71;
 
 # The below two constants are subroutines so that they can implement
 # a hook. Other than that they are actually constants.
@@ -80,6 +83,15 @@ sub REQUIRED_MODULES {
         module  => 'DateTime',
         version => '0.28'
     },
+    # 0.79 is required to work on Windows Vista and Windows Server 2008.
+    # As correctly detecting the flavor of Windows is not easy,
+    # we require this version for all Windows installations.
+    # 0.71 fixes a major bug affecting all platforms.
+    {
+        package => 'DateTime-TimeZone',
+        module  => 'DateTime::TimeZone',
+        version => ON_WINDOWS ? '0.79' : '0.71'
+    },
     {
         package => 'PathTools',
         module  => 'File::Spec',
@@ -110,6 +122,11 @@ sub REQUIRED_MODULES {
         module  => 'Email::MIME::Modifier',
         version => '1.442'
     },
+    {
+        package => 'URI',
+        module  => 'URI',
+        version => 0
+    },
     );
 
     my $all_modules = _get_extension_requirements(
@@ -351,142 +368,89 @@ sub _get_activestate_build_id {
 sub print_module_instructions {
     my ($check_results, $output) = @_;
 
-    # We only print these notes if we have to.
+    # First we print the long explanatory messages.
+
+    if (scalar @{$check_results->{missing}}) {
+        print install_string('modules_message_required');
+    }
+
+    if (!$check_results->{one_dbd}) {
+        print install_string('modules_message_db');
+    }
+
+    if (my @missing = @{$check_results->{optional}} and $output) {
+        print install_string('modules_message_optional');
+        # Now we have to determine how large the table cols will be.
+        my $longest_name = max(map(length($_->{package}), @missing));
+
+        # The first column header is at least 11 characters long.
+        $longest_name = 11 if $longest_name < 11;
+
+        # The table is TABLE_WIDTH characters long. There are seven mandatory
+        # characters (* and space) in the string. So, we have a total
+        # of TABLE_WIDTH - 7 characters to work with.
+        my $remaining_space = (TABLE_WIDTH - 7) - $longest_name;
+        print '*' x TABLE_WIDTH . "\n";
+        printf "* \%${longest_name}s * %-${remaining_space}s *\n",
+               'MODULE NAME', 'ENABLES FEATURE(S)';
+        print '*' x TABLE_WIDTH . "\n";
+        foreach my $package (@missing) {
+            printf "* \%${longest_name}s * %-${remaining_space}s *\n",
+                   $package->{package}, $package->{feature};
+        }
+    }
+
+    # We only print the PPM repository note if we have to.
     if ((!$output && @{$check_results->{missing}})
         || ($output && $check_results->{any_missing}))
     {
-        
         if (ON_WINDOWS) {
-
-            print "\n* NOTE: You must run any commands listed below as "
-                  . ROOT_USER . ".\n\n";
-
             my $perl_ver = sprintf('%vd', $^V);
             
             # URL when running Perl 5.8.x.
             my $url_to_theory58S = 'http://theoryx5.uwinnipeg.ca/ppms';
-            my $repo_up_cmd =
-'*                                                                     *';
             # Packages for Perl 5.10 are not compatible with Perl 5.8.
             if (vers_cmp($perl_ver, '5.10') > -1) {
                 $url_to_theory58S = 'http://cpan.uwinnipeg.ca/PPMPackages/10xx/';
             }
-            # ActivePerl older than revision 819 require an additional command.
+            print install_string('ppm_repo_add', 
+                                 { theory_url => $url_to_theory58S });
+            # ActivePerls older than revision 819 require an additional command.
             if (_get_activestate_build_id() < 819) {
-                $repo_up_cmd = <<EOT;
-*                                                                     *
-* Then you have to do (also as an Administrator):                     *
-*                                                                     *
-*   ppm repo up theory58S                                             *
-*                                                                     *
-* Do that last command over and over until you see "theory58S" at the *
-* top of the displayed list.                                          *
-EOT
+                print install_string('ppm_repo_up');
             }
-            print <<EOT;
-***********************************************************************
-* Note For Windows Users                                              *
-***********************************************************************
-* In order to install the modules listed below, you first have to run * 
-* the following command as an Administrator:                          *
-*                                                                     *
-*   ppm repo add theory58S $url_to_theory58S
-$repo_up_cmd
-***********************************************************************
-EOT
         }
+
+        # If any output was required, we want to close the "table"
+        print "*" x TABLE_WIDTH . "\n";
     }
 
-    # Required Modules
-    if (my @missing = @{$check_results->{missing}}) {
-        print <<EOT;
-***********************************************************************
-* REQUIRED MODULES                                                    *
-***********************************************************************
-* Bugzilla requires you to install some Perl modules which are either *
-* missing from your system, or the version on your system is too old. *
-*                                                                     *
-* The latest versions of each module can be installed by running the  *
-* commands below.                                                     *
-***********************************************************************
-EOT
-
-        print "COMMANDS:\n\n";
-        foreach my $package (@missing) {
-            my $command = install_command($package);
-            print "    $command\n";
+    # And now we print the actual installation commands.
+
+    if (my @missing = @{$check_results->{optional}} and $output) {
+        print install_string('commands_optional') . "\n\n";
+        foreach my $module (@missing) {
+            my $command = install_command($module);
+            printf "%15s: $command\n", $module->{package};
         }
         print "\n";
     }
 
     if (!$check_results->{one_dbd}) {
-        print <<EOT;
-***********************************************************************
-* DATABASE ACCESS                                                     *
-***********************************************************************
-* In order to access your database, Bugzilla requires that the        *
-* correct "DBD" module be installed for the database that you are     *
-* running.                                                            *
-*                                                                     *
-* Pick and run the correct command below for the database that you    *
-* plan to use with Bugzilla.                                          *
-***********************************************************************
-COMMANDS:
-
-EOT
-
+        print install_string('commands_dbd') . "\n";
         my %db_modules = %{DB_MODULE()};
         foreach my $db (keys %db_modules) {
             my $command = install_command($db_modules{$db}->{dbd});
             printf "%10s: \%s\n", $db_modules{$db}->{name}, $command;
-            print ' ' x 12 . "Minimum version required: "
-                  . $db_modules{$db}->{dbd}->{version} . "\n";
         }
         print "\n";
     }
 
-    return unless $output;
-
-    if (my @missing = @{$check_results->{optional}}) {
-        print <<EOT;
-**********************************************************************
-* OPTIONAL MODULES                                                   *
-**********************************************************************
-* Certain Perl modules are not required by Bugzilla, but by          *
-* installing the latest version you gain access to additional        *
-* features.                                                          *
-*                                                                    *
-* The optional modules you do not have installed are listed below,   *
-* with the name of the feature they enable. If you want to install   *
-* one of these modules, just run the appropriate command in the      *
-* "COMMANDS TO INSTALL" section.                                     *
-**********************************************************************
-
-EOT
-        # Now we have to determine how large the table cols will be.
-        my $longest_name = max(map(length($_->{package}), @missing));
-
-        # The first column header is at least 11 characters long.
-        $longest_name = 11 if $longest_name < 11;
-
-        # The table is 71 characters long. There are seven mandatory
-        # characters (* and space) in the string. So, we have a total
-        # of 64 characters to work with.
-        my $remaining_space = 64 - $longest_name;
-        print '*' x 71 . "\n";
-        printf "* \%${longest_name}s * %-${remaining_space}s *\n",
-               'MODULE NAME', 'ENABLES FEATURE(S)';
-        print '*' x 71 . "\n";
+    if (my @missing = @{$check_results->{missing}}) {
+        print install_string('commands_required') . "\n";
         foreach my $package (@missing) {
-            printf "* \%${longest_name}s * %-${remaining_space}s *\n",
-                   $package->{package}, $package->{feature};
-        }
-        print '*' x 71 . "\n";
-
-        print "COMMANDS TO INSTALL:\n\n";
-        foreach my $module (@missing) {
-            my $command = install_command($module);
-            printf "%15s: $command\n", $module->{package};
+            my $command = install_command($package);
+            print "    $command\n";
         }
     }
 
diff --git a/Bugzilla/Install/Util.pm b/Bugzilla/Install/Util.pm
index 9cec8c435c1d995fd434a9dc6f84b463787e00b4..250ab9157d008ce03beecd7aea5c51eb008a99a4 100644
--- a/Bugzilla/Install/Util.pm
+++ b/Bugzilla/Install/Util.pm
@@ -31,6 +31,7 @@ use Bugzilla::Constants;
 use File::Basename;
 use POSIX qw(setlocale LC_CTYPE);
 use Safe;
+use Scalar::Util qw(tainted);
 
 use base qw(Exporter);
 our @EXPORT_OK = qw(
@@ -109,7 +110,7 @@ sub install_string {
     foreach my $key (@replace_keys) {
         my $replacement = $vars->{$key};
         die "'$key' in '$string_id' is tainted: '$replacement'"
-            if is_tainted($replacement);
+            if tainted($replacement);
         # We don't want people to start getting clever and inserting
         # ##variable## into their values. So we check if any other
         # key is listed in the *replacement* string, before doing
@@ -354,10 +355,6 @@ sub trick_taint {
     return (defined($_[0]));
 }
 
-sub is_tainted {
-    return not eval { my $foo = join('',@_), kill 0; 1; };
-}
-
 __END__
 
 =head1 NAME
diff --git a/Bugzilla/Job/CVS/Entries b/Bugzilla/Job/CVS/Entries
index a2691d4479f9bc293d2fc29a52b5f45f06207e90..c959c2e17461d4404575ea4a5a1875a205102d99 100644
--- a/Bugzilla/Job/CVS/Entries
+++ b/Bugzilla/Job/CVS/Entries
@@ -1,2 +1,2 @@
-/Mailer.pm/1.2/Wed Dec 24 04:30:55 2008//TBUGZILLA-3_3_1
+/Mailer.pm/1.2/Wed Dec 24 04:30:55 2008//TBUGZILLA-3_3_2
 D
diff --git a/Bugzilla/Job/CVS/Tag b/Bugzilla/Job/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/Job/CVS/Tag
+++ b/Bugzilla/Job/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/JobQueue/CVS/Entries b/Bugzilla/JobQueue/CVS/Entries
index 961e6e7c37e89da3da7fd83bdde42ecd4e1346bc..266258e4c55cc68ed87234638df2d1cdda8f3d99 100644
--- a/Bugzilla/JobQueue/CVS/Entries
+++ b/Bugzilla/JobQueue/CVS/Entries
@@ -1,2 +1,2 @@
-/Runner.pm/1.2/Sat Dec 27 00:52:12 2008//TBUGZILLA-3_3_1
+/Runner.pm/1.2/Sat Dec 27 00:52:12 2008//TBUGZILLA-3_3_2
 D
diff --git a/Bugzilla/JobQueue/CVS/Tag b/Bugzilla/JobQueue/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/JobQueue/CVS/Tag
+++ b/Bugzilla/JobQueue/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/Object.pm b/Bugzilla/Object.pm
index 53720327b59be3e20abf69763456c48d470ddefd..adc96fa503a871375e72c8e65901fc67efeeb659 100644
--- a/Bugzilla/Object.pm
+++ b/Bugzilla/Object.pm
@@ -156,9 +156,28 @@ sub match {
 
     return [$class->get_all] if !$criteria;
 
-    my (@terms, @values);
+    my (@terms, @values, $postamble);
     foreach my $field (keys %$criteria) {
         my $value = $criteria->{$field};
+        
+        # allow for LIMIT and OFFSET expressions via the criteria.
+        next if $field eq 'OFFSET';
+        if ( $field eq 'LIMIT' ) {
+            next unless defined $value;
+            $postamble = $dbh->sql_limit( $value, $criteria->{OFFSET} );
+            next;
+        }
+        elsif ( $field eq 'WHERE' ) {
+            # the WHERE value is a hashref where the keys are
+            # "column_name operator ?" and values are the placeholder's
+            # value.
+            foreach my $k (keys( %$value )) {
+                push( @terms, $k );
+                push( @values, $value->{$k} );
+            }            
+            next;
+        }
+                
         if (ref $value eq 'ARRAY') {
             # IN () is invalid SQL, and if we have an empty list
             # to match against, we're just returning an empty
@@ -181,12 +200,12 @@ sub match {
         }
     }
 
-    my $where = join(' AND ', @terms);
-    return $class->_do_list_select($where, \@values);
+    my $where = join(' AND ', @terms) if scalar @terms;
+    return $class->_do_list_select($where, \@values, $postamble);
 }
 
 sub _do_list_select {
-    my ($class, $where, $values) = @_;
+    my ($class, $where, $values, $postamble) = @_;
     my $table = $class->DB_TABLE;
     my $cols  = join(',', $class->DB_COLUMNS);
     my $order = $class->LIST_ORDER;
@@ -196,7 +215,9 @@ sub _do_list_select {
         $sql .= " WHERE $where ";
     }
     $sql .= " ORDER BY $order";
-
+    
+    $sql .= " $postamble" if $postamble;
+        
     my $dbh = Bugzilla->dbh;
     my $objects = $dbh->selectall_arrayref($sql, {Slice=>{}}, @$values);
     bless ($_, $class) foreach @$objects;
@@ -625,6 +646,26 @@ There are two special values, the constants C<NULL> and C<NOT_NULL>,
 which means "give me objects where this field is NULL or NOT NULL,
 respectively."
 
+In addition to the column keys, there are a few special keys that
+can be used to rig the underlying database queries. These are 
+C<LIMIT>, C<OFFSET>, and C<WHERE>.
+
+The value for the C<LIMIT> key is expected to be an integer defining 
+the number of objects to return, while the value for C<OFFSET> defines
+the position, relative to the number of objects the query would normally 
+return, at which to begin the result set. If C<OFFSET> is defined without 
+a corresponding C<LIMIT> it is silently ignored.
+
+The C<WHERE> key provides a mechanism for adding arbitrary WHERE
+clauses to the underlying query. Its value is expected to a hash 
+reference whose keys are the columns, operators and placeholders, and the 
+values are the placeholders' bind value. For example:
+
+ WHERE => { 'some_column >= ?' => $some_value }
+    
+would constrain the query to only those objects in the table whose
+'some_column' column has a value greater than or equal to $some_value.
+
 If you don't specify any criteria, calling this function is the same
 as doing C<[$class-E<gt>get_all]>.
 
diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm
index 47b4e129631c0716ee44981990b6ec7a32dd9992..2b3b2304415d591321ffef567fa210342437632d 100644
--- a/Bugzilla/Search.pm
+++ b/Bugzilla/Search.pm
@@ -104,8 +104,9 @@ sub init {
     my @select_fields = 
         Bugzilla->get_fields({ type => FIELD_TYPE_SINGLE_SELECT });
     
-    my @multi_select_fields = Bugzilla->get_fields({ type => FIELD_TYPE_MULTI_SELECT,
-                                                     obsolete => 0 });
+    my @multi_select_fields = Bugzilla->get_fields({
+        type     => [FIELD_TYPE_MULTI_SELECT, FIELD_TYPE_BUG_URLS],
+        obsolete => 0 });
     foreach my $field (@select_fields) {
         my $name = $field->name;
         $special_order{"bugs.$name"} = [ "$name.sortkey", "$name.value" ],
@@ -1066,7 +1067,7 @@ sub _contact_exact_group {
     my $group = $1;
     my $groupid = Bugzilla::Group::ValidateGroupName( $group, ($user));
     $groupid || ThrowUserError('invalid_group_name',{name => $group});
-    my @childgroups = @{$user->flatten_group_membership($groupid)};
+    my @childgroups = @{Bugzilla::Group->flatten_group_membership($groupid)};
     my $table = "user_group_map_$$chartid";
     push (@$supptables, "LEFT JOIN user_group_map AS $table " .
                         "ON $table.user_id = bugs.$$f " .
@@ -1138,7 +1139,7 @@ sub _cc_exact_group {
     my $group = $1;
     my $groupid = Bugzilla::Group::ValidateGroupName( $group, ($user));
     $groupid || ThrowUserError('invalid_group_name',{name => $group});
-    my @childgroups = @{$user->flatten_group_membership($groupid)};
+    my @childgroups = @{Bugzilla::Group->flatten_group_membership($groupid)};
     my $chartseq = $$chartid;
     if ($$chartid eq "") {
         $chartseq = "CC$$sequence";
diff --git a/Bugzilla/Search/CVS/Entries b/Bugzilla/Search/CVS/Entries
index 8431e79cf3def36b25297035330e9dec63d18253..dd88b66edd68d1a271378d3f53bf9777b52efc13 100644
--- a/Bugzilla/Search/CVS/Entries
+++ b/Bugzilla/Search/CVS/Entries
@@ -1,3 +1,3 @@
-/Quicksearch.pm/1.21/Fri Oct 10 17:42:45 2008//TBUGZILLA-3_3_1
-/Saved.pm/1.8/Sat Nov  8 19:01:41 2008//TBUGZILLA-3_3_1
+/Quicksearch.pm/1.21/Fri Oct 10 17:42:45 2008//TBUGZILLA-3_3_2
+/Saved.pm/1.8/Sat Nov  8 19:01:41 2008//TBUGZILLA-3_3_2
 D
diff --git a/Bugzilla/Search/CVS/Tag b/Bugzilla/Search/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/Search/CVS/Tag
+++ b/Bugzilla/Search/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm
index 3141c8a4cded1c5697c82f7a59124b8b26550fc6..8c34bb493e87a24447d3ab81d161fd96251c9a8f 100644
--- a/Bugzilla/Template.pm
+++ b/Bugzilla/Template.pm
@@ -41,6 +41,7 @@ use Bugzilla::Util;
 use Bugzilla::User;
 use Bugzilla::Error;
 use Bugzilla::Status;
+use Bugzilla::Token;
 use Bugzilla::Template::Parser;
 
 use Cwd qw(abs_path);
@@ -195,7 +196,7 @@ sub quoteUrls {
         map { qr/$_/ } grep($_, Bugzilla->params->{'urlbase'}, 
                             Bugzilla->params->{'sslbase'})) . ')';
     $text =~ s~\b(${urlbase_re}\Qshow_bug.cgi?id=\E([0-9]+)(\#c([0-9]+))?)\b
-              ~($things[$count++] = get_bug_link($3, $1, $5)) &&
+              ~($things[$count++] = get_bug_link($3, $1, { comment_num => $5 })) &&
                ("\0\0" . ($count-1) . "\0\0")
               ~egox;
 
@@ -249,7 +250,7 @@ sub quoteUrls {
     $text =~ s~\b($bug_re(?:$s*,?$s*$comment_re)?|$comment_re)
               ~ # We have several choices. $1 here is the link, and $2-4 are set
                 # depending on which part matched
-               (defined($2) ? get_bug_link($2,$1,$3) :
+               (defined($2) ? get_bug_link($2, $1, { comment_num => $3 }) :
                               "<a href=\"$current_bugurl#c$4\">$1</a>")
               ~egox;
 
@@ -314,7 +315,7 @@ sub get_attachment_link {
 #    comment in the bug
 
 sub get_bug_link {
-    my ($bug_num, $link_text, $comment_num) = @_;
+    my ($bug_num, $link_text, $options) = @_;
     my $dbh = Bugzilla->dbh;
 
     if (!defined($bug_num) || ($bug_num eq "")) {
@@ -323,11 +324,15 @@ sub get_bug_link {
     my $quote_bug_num = html_quote($bug_num);
     detaint_natural($bug_num) || return "&lt;invalid bug number: $quote_bug_num&gt;";
 
-    my ($bug_state, $bug_res, $bug_desc) =
-        $dbh->selectrow_array('SELECT bugs.bug_status, resolution, short_desc
+    my ($bug_alias, $bug_state, $bug_res, $bug_desc) =
+        $dbh->selectrow_array('SELECT bugs.alias, bugs.bug_status, bugs.resolution, bugs.short_desc
                                FROM bugs WHERE bugs.bug_id = ?',
                                undef, $bug_num);
 
+    if ($options->{use_alias} && $link_text =~ /^\d+$/ && $bug_alias) {
+        $link_text = $bug_alias;
+    }
+
     if ($bug_state) {
         # Initialize these variables to be "" so that we don't get warnings
         # if we don't change them below (which is highly likely).
@@ -350,8 +355,8 @@ sub get_bug_link {
         $title = html_quote(clean_text($title));
 
         my $linkval = "show_bug.cgi?id=$bug_num";
-        if (defined $comment_num) {
-            $linkval .= "#c$comment_num";
+        if ($options->{comment_num}) {
+            $linkval .= "#c" . $options->{comment_num};
         }
         return qq{$pre<a href="$linkval" title="$title">$link_text</a>$post};
     }
@@ -562,10 +567,10 @@ sub create {
                          ],
 
             bug_link => [ sub {
-                              my ($context, $bug) = @_;
+                              my ($context, $bug, $options) = @_;
                               return sub {
                                   my $text = shift;
-                                  return get_bug_link($bug, $text);
+                                  return get_bug_link($bug, $text, $options);
                               };
                           },
                           1
@@ -660,6 +665,8 @@ sub create {
 
             html_light => \&Bugzilla::Util::html_light_quote,
 
+            email => \&Bugzilla::Util::email_filter,
+
             # iCalendar contentline filter
             ics => [ sub {
                          my ($context, @args) = @_;
@@ -698,6 +705,10 @@ sub create {
                 $var =~ s/\&gt;/>/g;
                 $var =~ s/\&quot;/\"/g;
                 $var =~ s/\&amp;/\&/g;
+                # Now remove extra whitespace, and wrap it to 72 characters.
+                my $collapse_filter = $Template::Filters::FILTERS->{collapse};
+                $var = $collapse_filter->($var);
+                $var = wrap_comment($var, 72);
                 return $var;
             },
 
@@ -755,6 +766,9 @@ sub create {
                 return $docs_urlbase;
             },
 
+            # Allow templates to generate a token themselves.
+            'issue_hash_token' => \&Bugzilla::Token::issue_hash_token,
+
             # These don't work as normal constants.
             DB_MODULE        => \&Bugzilla::Constants::DB_MODULE,
             REQUIRED_MODULES => 
diff --git a/Bugzilla/Template/CVS/Entries b/Bugzilla/Template/CVS/Entries
index 483001723b1abfbb73981e88b9af739fe358eaa6..1f4a8ebef78a0ce010af1b4c0c81d6eb81743708 100644
--- a/Bugzilla/Template/CVS/Entries
+++ b/Bugzilla/Template/CVS/Entries
@@ -1,2 +1,2 @@
-/Parser.pm/1.1/Wed Feb 13 22:40:10 2008//TBUGZILLA-3_3_1
+/Parser.pm/1.1/Wed Feb 13 22:40:10 2008//TBUGZILLA-3_3_2
 D/Plugin////
diff --git a/Bugzilla/Template/CVS/Tag b/Bugzilla/Template/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/Template/CVS/Tag
+++ b/Bugzilla/Template/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/Template/Plugin/CVS/Entries b/Bugzilla/Template/Plugin/CVS/Entries
index f6935b9732332c0d0587ff1bab343d3d1580a25f..cb7dc301fb975147d7b422003476bd4c747773ba 100644
--- a/Bugzilla/Template/Plugin/CVS/Entries
+++ b/Bugzilla/Template/Plugin/CVS/Entries
@@ -1,4 +1,4 @@
-/Bugzilla.pm/1.2/Fri Feb  7 07:19:15 2003//TBUGZILLA-3_3_1
-/Hook.pm/1.12/Mon Oct  6 16:30:56 2008//TBUGZILLA-3_3_1
-/User.pm/1.1/Wed Aug  4 18:08:21 2004//TBUGZILLA-3_3_1
+/Bugzilla.pm/1.2/Fri Feb  7 07:19:15 2003//TBUGZILLA-3_3_2
+/Hook.pm/1.12/Mon Oct  6 16:30:56 2008//TBUGZILLA-3_3_2
+/User.pm/1.1/Wed Aug  4 18:08:21 2004//TBUGZILLA-3_3_2
 D
diff --git a/Bugzilla/Template/Plugin/CVS/Tag b/Bugzilla/Template/Plugin/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/Template/Plugin/CVS/Tag
+++ b/Bugzilla/Template/Plugin/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/Token.pm b/Bugzilla/Token.pm
index 157cc0622c3051cd1011f77f3dd849d9d80a7977..f87490db19e197f250dce805889716fb8ca910fc 100644
--- a/Bugzilla/Token.pm
+++ b/Bugzilla/Token.pm
@@ -39,10 +39,12 @@ use Bugzilla::User;
 use Date::Format;
 use Date::Parse;
 use File::Basename;
+use Digest::MD5 qw(md5_hex);
 
 use base qw(Exporter);
 
-@Bugzilla::Token::EXPORT = qw(issue_session_token check_token_data delete_token);
+@Bugzilla::Token::EXPORT = qw(issue_session_token check_token_data delete_token
+                              issue_hash_token check_hash_token);
 
 ################################################################################
 # Public Functions
@@ -74,7 +76,7 @@ sub issue_new_user_account_token {
     my ($token, $token_ts) = _create_token(undef, 'account', $login_name);
 
     $vars->{'email'} = $login_name . Bugzilla->params->{'emailsuffix'};
-    $vars->{'token_ts'} = $token_ts;
+    $vars->{'expiration_ts'} = ctime($token_ts + MAX_TOKEN_AGE * 86400);
     $vars->{'token'} = $token;
 
     my $message;
@@ -103,10 +105,7 @@ sub IssueEmailChangeToken {
 
     $vars->{'oldemailaddress'} = $old_email . $email_suffix;
     $vars->{'newemailaddress'} = $new_email . $email_suffix;
-    
-    $vars->{'max_token_age'} = MAX_TOKEN_AGE;
-    $vars->{'token_ts'} = $token_ts;
-
+    $vars->{'expiration_ts'} = ctime($token_ts + MAX_TOKEN_AGE * 86400);
     $vars->{'token'} = $token;
     $vars->{'emailaddress'} = $old_email . $email_suffix;
 
@@ -151,8 +150,10 @@ sub IssuePasswordToken {
 
     $vars->{'token'} = $token;
     $vars->{'emailaddress'} = $user->email;
-    $vars->{'max_token_age'} = MAX_TOKEN_AGE;
-    $vars->{'token_ts'} = $token_ts;
+    $vars->{'expiration_ts'} = ctime($token_ts + MAX_TOKEN_AGE * 86400);
+    # The user is not logged in (else he wouldn't request a new password).
+    # So we have to pass this information to the template.
+    $vars->{'timezone'} = $user->timezone;
 
     my $message = "";
     $template->process("account/password/forgotten-password.txt.tmpl", 
@@ -171,6 +172,53 @@ sub issue_session_token {
     return _create_token(Bugzilla->user->id, 'session', $data);
 }
 
+sub issue_hash_token {
+    my ($data, $time) = @_;
+    $data ||= [];
+    $time ||= time();
+
+    # The concatenated string is of the form
+    # token creation time + site-wide secret + user ID + data
+    my @args = ($time, Bugzilla->localconfig->{'site_wide_secret'}, Bugzilla->user->id, @$data);
+    my $token = md5_hex(join('*', @args));
+
+    # Prepend the token creation time, unencrypted, so that the token
+    # lifetime can be validated.
+    return $time . '-' . $token;
+}
+
+sub check_hash_token {
+    my ($token, $data) = @_;
+    $data ||= [];
+    my ($time, $expected_token);
+
+    if ($token) {
+        ($time, undef) = split(/-/, $token);
+        # Regenerate the token based on the information we have.
+        $expected_token = issue_hash_token($data, $time);
+    }
+
+    if (!$token
+        || $expected_token ne $token
+        || time() - $time > MAX_TOKEN_AGE * 86400)
+    {
+        my $template = Bugzilla->template;
+        my $vars = {};
+        $vars->{'script_name'} = basename($0);
+        $vars->{'token'} = issue_hash_token($data);
+        $vars->{'reason'} = (!$token) ?                   'missing_token' :
+                            ($expected_token ne $token) ? 'invalid_token' :
+                                                          'expired_token';
+        print Bugzilla->cgi->header();
+        $template->process('global/confirm-action.html.tmpl', $vars)
+          || ThrowTemplateError($template->error());
+        exit;
+    }
+
+    # If we come here, then the token is valid and not too old.
+    return 1;
+}
+
 sub CleanTokenTable {
     my $dbh = Bugzilla->dbh;
     $dbh->do('DELETE FROM tokens
@@ -233,6 +281,9 @@ sub Cancel {
     $vars->{'token'} = $token;
     $vars->{'tokentype'} = $tokentype;
     $vars->{'issuedate'} = $issuedate;
+    # The user is probably not logged in.
+    # So we have to pass this information to the template.
+    $vars->{'timezone'} = $user->timezone;
     $vars->{'eventdata'} = $eventdata;
     $vars->{'cancelaction'} = $cancelaction;
 
@@ -308,7 +359,7 @@ sub delete_token {
 # Note: this routine must not be called while tables are locked as it will try
 # to lock some tables itself, see CleanTokenTable().
 sub check_token_data {
-    my ($token, $expected_action) = @_;
+    my ($token, $expected_action, $alternate_script) = @_;
     my $user = Bugzilla->user;
     my $template = Bugzilla->template;
     my $cgi = Bugzilla->cgi;
@@ -328,6 +379,7 @@ sub check_token_data {
         $vars->{'token_action'} = $token_action;
         $vars->{'expected_action'} = $expected_action;
         $vars->{'script_name'} = basename($0);
+        $vars->{'alternate_script'} = $alternate_script || basename($0);
 
         # Now is a good time to remove old tokens from the DB.
         CleanTokenTable();
diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm
index 0c0f45bc05013c3119aebc60a6a9822677e041c9..fe04856aa600aeb477357b9df39309b06835d6a6 100644
--- a/Bugzilla/User.pm
+++ b/Bugzilla/User.pm
@@ -48,6 +48,7 @@ use Bugzilla::User::Setting;
 use Bugzilla::Product;
 use Bugzilla::Classification;
 use Bugzilla::Field;
+use Bugzilla::Group;
 
 use Scalar::Util qw(blessed);
 use DateTime::TimeZone;
@@ -830,7 +831,7 @@ sub visible_groups_inherited {
     return $self->{visible_groups_inherited} if defined $self->{visible_groups_inherited};
     return [] unless $self->id;
     my @visgroups = @{$self->visible_groups_direct};
-    @visgroups = @{$self->flatten_group_membership(@visgroups)};
+    @visgroups = @{Bugzilla::Group->flatten_group_membership(@visgroups)};
     $self->{visible_groups_inherited} = \@visgroups;
     return $self->{visible_groups_inherited};
 }
@@ -992,30 +993,6 @@ sub can_bless {
     return grep($_->id == $group_id, @{ $self->bless_groups }) ? 1 : 0;
 }
 
-sub flatten_group_membership {
-    my ($self, @groups) = @_;
-
-    my $dbh = Bugzilla->dbh;
-    my $sth;
-    my @groupidstocheck = @groups;
-    my %groupidschecked = ();
-    $sth = $dbh->prepare("SELECT member_id FROM group_group_map
-                             WHERE grantor_id = ? 
-                               AND grant_type = " . GROUP_MEMBERSHIP);
-    while (my $node = shift @groupidstocheck) {
-        $sth->execute($node);
-        my $member;
-        while (($member) = $sth->fetchrow_array) {
-            if (!$groupidschecked{$member}) {
-                $groupidschecked{$member} = 1;
-                push @groupidstocheck, $member;
-                push @groups, $member unless grep $_ == $member, @groups;
-            }
-        }
-    }
-    return \@groups;
-}
-
 sub match {
     # Generates a list of users whose login name (email address) or real name
     # matches a substring or wildcard.
@@ -2049,14 +2026,6 @@ Returns a reference to an array of users.  The array is populated with hashrefs
 containing the login, identity and visibility.  Users that are not visible to this
 user will have 'visible' set to zero.
 
-=item C<flatten_group_membership>
-
-Accepts a list of groups and returns a list of all the groups whose members 
-inherit membership in any group on the list.  So, we can determine if a user
-is in any of the groups input to flatten_group_membership by querying the
-user_group_map for any user with DIRECT or REGEXP membership IN() the list
-of groups returned.
-
 =item C<direct_group_membership>
 
 Returns a reference to an array of group objects. Groups the user belong to
diff --git a/Bugzilla/User/CVS/Entries b/Bugzilla/User/CVS/Entries
index d4519c8ac1a9c91b02192b550e0f5a55e446d669..bf5cce13d57c319955d8d815665ad3fe76226d9e 100644
--- a/Bugzilla/User/CVS/Entries
+++ b/Bugzilla/User/CVS/Entries
@@ -1,2 +1,2 @@
-/Setting.pm/1.13/Fri Sep  5 23:01:18 2008//TBUGZILLA-3_3_1
+/Setting.pm/1.13/Fri Sep  5 23:01:18 2008//TBUGZILLA-3_3_2
 D/Setting////
diff --git a/Bugzilla/User/CVS/Tag b/Bugzilla/User/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/User/CVS/Tag
+++ b/Bugzilla/User/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/User/Setting/CVS/Entries b/Bugzilla/User/Setting/CVS/Entries
index f02ebbf99a6aa7663e917eb57c1dc74c74e09034..fba87188c37bf3f091e0ff1ff5dd653242799225 100644
--- a/Bugzilla/User/Setting/CVS/Entries
+++ b/Bugzilla/User/Setting/CVS/Entries
@@ -1,4 +1,4 @@
-/Lang.pm/1.1/Tue Aug 21 20:47:54 2007//TBUGZILLA-3_3_1
-/Skin.pm/1.4/Tue Aug 14 21:54:34 2007//TBUGZILLA-3_3_1
-/Timezone.pm/1.1/Wed Aug 27 02:32:15 2008//TBUGZILLA-3_3_1
+/Lang.pm/1.1/Tue Aug 21 20:47:54 2007//TBUGZILLA-3_3_2
+/Skin.pm/1.4/Tue Aug 14 21:54:34 2007//TBUGZILLA-3_3_2
+/Timezone.pm/1.1/Wed Aug 27 02:32:15 2008//TBUGZILLA-3_3_2
 D
diff --git a/Bugzilla/User/Setting/CVS/Tag b/Bugzilla/User/Setting/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/User/Setting/CVS/Tag
+++ b/Bugzilla/User/Setting/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm
index 376bcf6cdbbf5fec8fa8c5de8df049791a67f657..951c4df3c841adea39f974e0ece902e69f229c71 100644
--- a/Bugzilla/Util.pm
+++ b/Bugzilla/Util.pm
@@ -31,12 +31,12 @@ package Bugzilla::Util;
 use strict;
 
 use base qw(Exporter);
-@Bugzilla::Util::EXPORT = qw(is_tainted trick_taint detaint_natural
+@Bugzilla::Util::EXPORT = qw(trick_taint detaint_natural
                              detaint_signed
                              html_quote url_quote xml_quote
                              css_class_quote html_light_quote url_decode
                              i_am_cgi get_netaddr correct_urlbase
-                             lsearch ssl_require_redirect
+                             lsearch ssl_require_redirect use_attachbase
                              diff_arrays diff_strings
                              trim wrap_hard wrap_comment find_wrap_point
                              format_time format_time_decimal validate_date
@@ -53,19 +53,10 @@ use Date::Format;
 use DateTime;
 use DateTime::TimeZone;
 use Digest;
+use Email::Address;
 use Scalar::Util qw(tainted);
 use Text::Wrap;
 
-# This is from the perlsec page, slightly modified to remove a warning
-# From that page:
-#      This function makes use of the fact that the presence of
-#      tainted data anywhere within an expression renders the
-#      entire expression tainted.
-# Don't ask me how it works...
-sub is_tainted {
-    return not eval { my $foo = join('',@_), kill 0; 1; };
-}
-
 sub trick_taint {
     require Carp;
     Carp::confess("Undef to trick_taint") unless defined $_[0];
@@ -180,6 +171,20 @@ sub html_light_quote {
     }
 }
 
+sub email_filter {
+    my ($toencode) = @_;
+    if (!Bugzilla->user->id) {
+        my @emails = Email::Address->parse($toencode);
+        if (scalar @emails) {
+            my @hosts = map { quotemeta($_->host) } @emails;
+            my $hosts_re = join('|', @hosts);
+            $toencode =~ s/\@(?:$hosts_re)//g;
+            return $toencode;
+        }
+    }
+    return $toencode;
+}
+
 # This originally came from CGI.pm, by Lincoln D. Stein
 sub url_quote {
     my ($toencode) = (@_);
@@ -289,6 +294,13 @@ sub correct_urlbase {
     return Bugzilla->params->{'urlbase'};
 }
 
+sub use_attachbase {
+    my $attachbase = Bugzilla->params->{'attachment_base'};
+    return ($attachbase ne ''
+            && $attachbase ne Bugzilla->params->{'urlbase'}
+            && $attachbase ne Bugzilla->params->{'sslbase'}) ? 1 : 0;
+}
+
 sub lsearch {
     my ($list,$item) = (@_);
     my $count = 0;
@@ -623,7 +635,7 @@ sub get_netaddr {
 
 sub disable_utf8 {
     if (Bugzilla->params->{'utf8'}) {
-        binmode STDOUT, ':raw'; # Turn off UTF8 encoding.
+        binmode STDOUT, ':bytes'; # Turn off UTF8 encoding.
     }
 }
 
@@ -640,7 +652,6 @@ Bugzilla::Util - Generic utility functions for bugzilla
   use Bugzilla::Util;
 
   # Functions for dealing with variable tainting
-  $rv = is_tainted($var);
   trick_taint($var);
   detaint_natural($var);
   detaint_signed($var);
@@ -649,6 +660,7 @@ Bugzilla::Util - Generic utility functions for bugzilla
   html_quote($var);
   url_quote($var);
   xml_quote($var);
+  email_filter($var);
 
   # Functions for decoding
   $rv = url_decode($var);
@@ -704,10 +716,6 @@ with care> to avoid security holes.
 
 =over 4
 
-=item C<is_tainted>
-
-Determines whether a particular variable is tainted
-
 =item C<trick_taint($val)>
 
 Tricks perl into untainting a particular variable.
@@ -770,6 +778,12 @@ is kept separate from html_quote partly for compatibility with previous code
 
 Converts the %xx encoding from the given URL back to its original form.
 
+=item C<email_filter>
+
+Removes the hostname from email addresses in the string, if the user
+currently viewing Bugzilla is logged out. If the user is logged-in,
+this filter just returns the input string.
+
 =back
 
 =head2 Environment and Location
@@ -796,6 +810,11 @@ cookies) to only some addresses.
 Returns either the C<sslbase> or C<urlbase> parameter, depending on the
 current setting for the C<ssl> parameter.
 
+=item C<use_attachbase()>
+
+Returns true if an alternate host is used to display attachments; false
+otherwise.
+
 =back
 
 =head2 Searching
diff --git a/Bugzilla/WebService.pm b/Bugzilla/WebService.pm
index 438a6671040637999edafa260e6784a2682247f1..3152ef04f5bffb1376995b8df475cd092d7f4884 100755
--- a/Bugzilla/WebService.pm
+++ b/Bugzilla/WebService.pm
@@ -97,6 +97,7 @@ sub initialize {
     my $self = shift;
     my %retval = $self->SUPER::initialize(@_);
     $retval{'serializer'} = Bugzilla::WebService::XMLRPC::Serializer->new;
+    $retval{'deserializer'} = Bugzilla::WebService::XMLRPC::Deserializer->new;
     return %retval;
 }
 
@@ -114,6 +115,74 @@ sub make_response {
 
 1;
 
+# This exists to validate input parameters (which XMLRPC::Lite doesn't do)
+# and also, in some cases, to more-usefully decode them.
+package Bugzilla::WebService::XMLRPC::Deserializer;
+use strict;
+# We can't use "use base" because XMLRPC::Serializer doesn't return
+# a true value.
+eval { require XMLRPC::Lite; };
+our @ISA = qw(XMLRPC::Deserializer);
+
+use Bugzilla::Error;
+
+# Some method arguments need to be converted in some way, when they are input.
+sub decode_value {
+    my $self = shift;
+    my ($type) = @{ $_[0] };
+    my $value = $self->SUPER::decode_value(@_);
+    
+    # We only validate/convert certain types here.
+    return $value if $type !~ /^(?:int|i4|boolean|double|dateTime\.iso8601)$/;
+    
+    # Though the XML-RPC standard doesn't allow an empty <int>,
+    # <double>,or <dateTime.iso8601>,  we do, and we just say
+    # "that's undef".
+    if (grep($type eq $_, qw(int double dateTime))) {
+        return undef if $value eq '';
+    }
+    
+    my $validator = $self->_validation_subs->{$type};
+    if (!$validator->($value)) {
+        ThrowUserError('xmlrpc_invalid_value',
+                       { type => $type, value => $value });
+    }
+    
+    # We convert dateTimes to a DB-friendly date format.
+    if ($type eq 'dateTime.iso8601') {
+        # We leave off the $ from the end of this regex to allow for possible
+        # extensions to the XML-RPC date standard.
+        $value =~ /^(\d{4})(\d{2})(\d{2})T(\d{2}):(\d{2}):(\d{2})/;
+        $value = "$1-$2-$3 $4:$5:$6";
+    }
+
+    return $value;
+}
+
+sub _validation_subs {
+    my $self = shift;
+    return $self->{_validation_subs} if $self->{_validation_subs};
+    # The only place that XMLRPC::Lite stores any sort of validation
+    # regex is in XMLRPC::Serializer. We want to re-use those regexes here.
+    my $lookup = Bugzilla::WebService::XMLRPC::Serializer->new->typelookup;
+    
+    # $lookup is a hash whose values are arrayrefs, and whose keys are the
+    # names of types. The second item of each arrayref is a subroutine
+    # that will do our validation for us.
+    my %validators = map { $_ => $lookup->{$_}->[1] } (keys %$lookup);
+    # Add a boolean validator
+    $validators{'boolean'} = sub {$_[0] =~ /^[01]$/};
+    # Some types have multiple names, or have a different name in
+    # XMLRPC::Serializer than their standard XML-RPC name.
+    $validators{'dateTime.iso8601'} = $validators{'dateTime'};
+    $validators{'i4'} = $validators{'int'};
+    
+    $self->{_validation_subs} = \%validators;
+    return \%validators;
+}
+
+1;
+
 # This package exists to fix a UTF-8 bug in SOAP::Lite.
 # See http://rt.cpan.org/Public/Bug/Display.html?id=32952.
 package Bugzilla::WebService::XMLRPC::Serializer;
@@ -294,3 +363,82 @@ an error 302, there won't be an error -302.
 Sometimes a function will throw an error that doesn't have a specific
 error code. In this case, the code will be C<-32000> if it's a "fatal"
 error, and C<32000> if it's a "transient" error.
+
+=head1 COMMON PARAMETERS
+
+Many Webservice methods take similar arguments. Instead of re-writing
+the documentation for each method, we document the parameters here, once,
+and then refer back to this documentation from the individual methods
+where these parameters are used.
+
+=head2 Limiting What Fields Are Returned
+
+Many WebService methods return an array of structs with various
+fields in the structs. (For example, L<Bugzilla::WebService::Bug/get>
+returns a list of C<bugs> that have fields like C<id>, C<summary>, 
+C<creation_time>, etc.)
+
+These parameters allow you to limit what fields are present in
+the structs, to possibly improve performance or save some bandwidth.
+
+=over
+
+=item C<include_fields> (array)
+
+An array of strings, representing the (case-sensitive) names of fields.
+Only the fields specified in this hash will be returned, the rest will
+not be included.
+
+If you specify an empty array, then this function will return empty
+hashes.
+
+Invalid field names are ignored.
+
+Example:
+
+  User.get( ids => [1], include_fields => ['id', 'name'] )
+
+would return something like:
+
+  { users => [{ id => 1, name => 'user@domain.com' }] }
+
+=item C<exclude_fields> (array)
+
+An array of strings, representing the (case-sensitive) names of fields.
+The fields specified will not be included in the returned hashes.
+
+If you specify all the fields, then this function will return empty
+hashes.
+
+Invalid field names are ignored.
+
+Specifying fields here overrides C<include_fields>, so if you specify a
+field in both, it will be excluded, not included.
+
+Example:
+
+  User.get( ids => [1], exclude_fields => ['name'] )
+
+would return something like:
+
+  { users => [{ id => 1, real_name => 'John Smith' }] }
+
+=back
+
+
+=head1 EXTENSIONS TO THE XML-RPC STANDARD
+
+=head2 Undefined Values
+
+Normally, XML-RPC does not allow empty values for C<int>, C<double>, or
+C<dateTime.iso8601> fields. Bugzilla does--it treats empty values as
+C<undef> (called C<NULL> or C<None> in some programming languages).
+
+Bugzilla also accepts a type called C<< <nil> >>, which is always considered
+to be C<undef>, no matter what it contains.
+
+=begin private
+
+nil is implemented by XMLRPC::Lite, in XMLRPC::Deserializer::decode_value.
+
+=end private
diff --git a/Bugzilla/WebService/Bug.pm b/Bugzilla/WebService/Bug.pm
index aaaf753a3788a8d5faad76df647d0baafe228f93..5b1f6b6e0c137c236770f885be9a4871d93578bf 100755
--- a/Bugzilla/WebService/Bug.pm
+++ b/Bugzilla/WebService/Bug.pm
@@ -27,6 +27,7 @@ use Bugzilla::Constants;
 use Bugzilla::Error;
 use Bugzilla::Field;
 use Bugzilla::WebService::Constants;
+use Bugzilla::WebService::Util qw(filter validate);
 use Bugzilla::Bug;
 use Bugzilla::BugMail;
 use Bugzilla::Util qw(trim);
@@ -39,11 +40,18 @@ use Bugzilla::Util qw(trim);
 # make sense to somebody who's not intimately familiar with the inner workings
 # of Bugzilla. (These are the field names that the WebService uses.)
 use constant FIELD_MAP => {
-    status      => 'bug_status',
-    severity    => 'bug_severity',
-    description => 'comment',
-    summary     => 'short_desc',
-    platform    => 'rep_platform',
+    creation_time    => 'creation_ts',
+    description      => 'comment',
+    id               => 'bug_id',
+    last_change_time => 'delta_ts',
+    platform         => 'rep_platform',
+    severity         => 'bug_severity',
+    status           => 'bug_status',
+    summary          => 'short_desc',
+    url              => 'bug_file_loc',
+    whiteboard       => 'status_whiteboard',
+    limit            => 'LIMIT',
+    offset           => 'OFFSET',
 };
 
 use constant PRODUCT_SPECIFIC_FIELDS => qw(version target_milestone component);
@@ -58,42 +66,95 @@ BEGIN { *get_bugs = \&get }
 # Methods #
 ###########
 
-sub get {
-    my ($self, $params) = @_;
-    my $ids = $params->{ids};
-    defined $ids || ThrowCodeError('param_required', { param => 'ids' });
+sub comments {
+    my ($self, $params) = validate(@_, 'bug_ids', 'comment_ids');
 
-    my @return;
-    foreach my $bug_id (@$ids) {
-        my $bug = Bugzilla::Bug->check($bug_id);
+    if (!(defined $params->{bug_ids} || defined $params->{comment_ids})) {
+        ThrowCodeError('params_required',
+                       { function => 'Bug.comments',
+                         params   => ['bug_ids', 'comment_ids'] });
+    }
+
+    my $bug_ids = $params->{bug_ids} || [];
+    my $comment_ids = $params->{comment_ids} || [];
 
-        # Timetracking fields are deleted if the user doesn't belong to
-        # the corresponding group.
-        unless (Bugzilla->user->in_group(Bugzilla->params->{'timetrackinggroup'})) {
-            delete $bug->{'estimated_time'};
-            delete $bug->{'remaining_time'};
-            delete $bug->{'deadline'};
+    my $dbh  = Bugzilla->dbh;
+    my $user = Bugzilla->user;
+
+    my %bugs;
+    foreach my $bug_id (@$bug_ids) {
+        my $bug = Bugzilla::Bug->check($bug_id);
+        # We want the API to always return comments in the same order.
+        my $comments = Bugzilla::Bug::GetComments(
+            $bug->id, 'oldest_to_newest', $params->{new_since});
+        my @result;
+        foreach my $comment (@$comments) {
+            next if $comment->{isprivate} && !$user->is_insider;
+            $comment->{bug_id} = $bug->id;
+            push(@result, $self->_translate_comment($comment, $params));
         }
-        # This is done in this fashion in order to produce a stable API.
-        # The internals of Bugzilla::Bug are not stable enough to just
-        # return them directly.
-        my %item;
-        $item{'creation_time'}    = $self->type('dateTime', $bug->creation_ts);
-        $item{'last_change_time'} = $self->type('dateTime', $bug->delta_ts);
-        $item{'internals'}        = $bug;
-        $item{'id'}               = $self->type('int', $bug->bug_id);
-        $item{'summary'}          = $self->type('string', $bug->short_desc);
+        $bugs{$bug->id}{'comments'} = \@result;
+    }
 
-        if (Bugzilla->params->{'usebugaliases'}) {
-            $item{'alias'} = $self->type('string', $bug->alias);
+    my %comments;
+    if (scalar @$comment_ids) {
+        my @ids = map { trim($_) } @$comment_ids;
+        my @sql_ids = map { $dbh->quote($_) } @ids;
+        my $comment_data = $dbh->selectall_arrayref(
+            'SELECT comment_id AS id, bug_id, who, bug_when AS time,
+                    isprivate, thetext AS body, type, extra_data
+               FROM longdescs WHERE ' . $dbh->sql_in('comment_id', \@sql_ids),
+            {Slice=>{}});
+
+        # See if we were passed any invalid comment ids.
+        my %got_ids = map { $_->{id} => 1 } @$comment_data;
+        foreach my $comment_id (@ids) {
+            if (!$got_ids{$comment_id}) {
+                ThrowUserError('comment_id_invalid', { id => $comment_id });
+            }
         }
-        else {
-            # For API reasons, we always want the value to appear, we just
-            # don't want it to have a value if aliases are turned off.
-            $item{'alias'} = undef;
+ 
+        # Now make sure that we can see all the associated bugs.
+        my %got_bug_ids = map { $_->{bug_id} => 1 } @$comment_data;
+        Bugzilla::Bug->check($_) foreach (keys %got_bug_ids);
+
+        foreach my $comment (@$comment_data) {
+            if ($comment->{isprivate} && !$user->is_insider) {
+                ThrowUserError('comment_is_private', { id => $comment->{id} });
+            }
+            $comment->{author} = new Bugzilla::User($comment->{who});
+            $comment->{body} = Bugzilla::Bug::format_comment($comment);
+            $comments{$comment->{id}} =
+                $self->_translate_comment($comment, $params);
         }
+    }
 
-        push(@return, \%item);
+    return { bugs => \%bugs, comments => \%comments };
+}
+
+# Helper for Bug.comments
+sub _translate_comment {
+    my ($self, $comment, $filters) = @_;
+    return filter $filters, {
+        id         => $self->type('int', $comment->{id}),
+        bug_id     => $self->type('int', $comment->{bug_id}),
+        author     => $self->type('string', $comment->{author}->login),
+        time       => $self->type('dateTime', $comment->{'time'}),
+        is_private => $self->type('boolean', $comment->{isprivate}),
+        text       => $self->type('string', $comment->{body}),
+    };
+}
+
+sub get {
+    my ($self, $params) = validate(@_, 'ids');
+
+    my $ids = $params->{ids};
+    defined $ids || ThrowCodeError('param_required', { param => 'ids' });
+
+    my @return;
+    foreach my $bug_id (@$ids) {
+        my $bug = Bugzilla::Bug->check($bug_id);
+        push(@return, $self->_bug_to_hash($bug))
     }
 
     return { bugs => \@return };
@@ -103,7 +164,7 @@ sub get {
 # it can be called as the following:
 # $call = $rpc->call( 'Bug.get_history', { ids => [1,2] });
 sub get_history {
-    my ($self, $params) = @_;
+    my ($self, $params) = validate(@_, 'ids');
 
     my $ids = $params->{ids};
     defined $ids || ThrowCodeError('param_required', { param => 'ids' });
@@ -159,21 +220,40 @@ sub get_history {
     return { bugs => \@return };
 }
 
+sub search {
+    my ($self, $params) = @_;
+    
+    if ( defined($params->{offset}) and !defined($params->{limit}) ) {
+        ThrowCodeError('param_required', 
+                       { param => 'limit', function => 'Bug.search()' });
+    }
+    
+    $params = _map_fields($params);
+    
+    # If the user set the 'last_change_time' param (translated into delta_ts
+    # by the field map), use a custom WHERE to constrain the query to only 
+    # those bugs that have a delta_ts greater than or equal to 
+    # the specified time.
+    if ( my $bug_when = delete $params->{delta_ts} ) {
+        $params->{WHERE} = {'delta_ts >= ?' => $bug_when};
+    }
+    
+    my $bugs = Bugzilla::Bug->match($params);
+    my $visible = Bugzilla->user->visible_bugs($bugs);
+    my @hashes = map { $self->_bug_to_hash($_) } @$visible;
+    return { bugs => \@hashes };
+}
+
 sub create {
     my ($self, $params) = @_;
 
     Bugzilla->login(LOGIN_REQUIRED);
 
-    my %field_values;
-    foreach my $field (keys %$params) {
-        my $field_name = FIELD_MAP->{$field} || $field;
-        $field_values{$field_name} = $params->{$field}; 
-    }
-
+    $params = _map_fields($params);
     # WebService users can't set the creation date of a bug.
-    delete $field_values{'creation_ts'};
+    delete $params->{'creation_ts'};
 
-    my $bug = Bugzilla::Bug->create(\%field_values);
+    my $bug = Bugzilla::Bug->create($params);
 
     Bugzilla::BugMail::Send($bug->bug_id, { changer => $bug->reporter->login });
 
@@ -245,11 +325,139 @@ sub add_comment {
     # Append comment
     $bug->add_comment($comment, { isprivate => $params->{private},
                                   work_time => $params->{work_time} });
+    
+    # Capture the call to bug->update (which creates the new comment) in 
+    # a transaction so we're sure to get the correct comment_id.
+    
+    my $dbh = Bugzilla->dbh;
+    $dbh->bz_start_transaction();
+    
     $bug->update();
     
+    my $new_comment_id = $dbh->bz_last_key('longdescs', 'comment_id');
+    
+    $dbh->bz_commit_transaction();
+    
     # Send mail.
     Bugzilla::BugMail::Send($bug->bug_id, { changer => Bugzilla->user->login });
-    return undef;
+    
+    return { id => $self->type('int', $new_comment_id) };
+}
+
+sub update_see_also {
+    my ($self, $params) = @_;
+
+    my $user = Bugzilla->login(LOGIN_REQUIRED);
+
+    # Check parameters
+    $params->{ids}
+        || ThrowCodeError('param_required', { param => 'id' });
+    my ($add, $remove) = @$params{qw(add remove)};
+    ($add || $remove)
+        or ThrowCodeError('params_required', { params => ['add', 'remove'] });
+
+    my @bugs;
+    foreach my $id (@{ $params->{ids} }) {
+        my $bug = Bugzilla::Bug->check($id);
+        $user->can_edit_product($bug->product_id)
+            || ThrowUserError("product_edit_denied", 
+                              { product => $bug->product });
+        push(@bugs, $bug);
+        if ($remove) {
+            $bug->remove_see_also($_) foreach @$remove;
+        }
+        if ($add) {
+            $bug->add_see_also($_) foreach @$add;
+        }
+    }
+    
+    my %changes;
+    foreach my $bug (@bugs) {
+        my $change = $bug->update();
+        if (my $see_also = $change->{see_also}) {
+            $changes{$bug->id}->{see_also} = {
+                removed => [split(', ', $see_also->[0])],
+                added   => [split(', ', $see_also->[1])],
+            };
+        }
+        else {
+            # We still want a changes entry, for API consistency.
+            $changes{$bug->id}->{see_also} = { added => [], removed => [] };
+        }
+
+        Bugzilla::BugMail::Send($bug->id, { changer => $user->login });
+    }
+
+    return { changes => \%changes };
+}
+
+##############################
+# Private Helper Subroutines #
+##############################
+
+# A helper for get() and search().
+sub _bug_to_hash {
+    my ($self, $bug) = @_;
+
+    # Timetracking fields are deleted if the user doesn't belong to
+    # the corresponding group.
+    unless (Bugzilla->user->is_timetracker) {
+        delete $bug->{'estimated_time'};
+        delete $bug->{'remaining_time'};
+        delete $bug->{'deadline'};
+    }
+
+    # This is done in this fashion in order to produce a stable API.
+    # The internals of Bugzilla::Bug are not stable enough to just
+    # return them directly.
+    my %item;
+    $item{'internals'}        = $bug;
+    $item{'creation_time'}    = $self->type('dateTime', $bug->creation_ts);
+    $item{'last_change_time'} = $self->type('dateTime', $bug->delta_ts);
+    $item{'id'}               = $self->type('int', $bug->bug_id);
+    $item{'summary'}          = $self->type('string', $bug->short_desc);
+    $item{'assigned_to'}      = $self->type('string', $bug->assigned_to->login);
+    $item{'resolution'}       = $self->type('string', $bug->resolution);
+    $item{'status'}           = $self->type('string', $bug->bug_status);
+    $item{'is_open'}          = $self->type('boolean', $bug->status->is_open);
+    $item{'severity'}         = $self->type('string', $bug->bug_severity);
+    $item{'priority'}         = $self->type('string', $bug->priority);
+    $item{'product'}          = $self->type('string', $bug->product);
+    $item{'component'}        = $self->type('string', $bug->component);
+    $item{'dupe_of'}          = $self->type('int', $bug->dup_id);
+
+    # if we do not delete this key, additional user info, including their
+    # real name, etc, will wind up in the 'internals' hashref
+    delete $item{internals}->{assigned_to_obj};
+
+    if (Bugzilla->params->{'usebugaliases'}) {
+        $item{'alias'} = $self->type('string', $bug->alias);
+    }
+    else {
+        # For API reasons, we always want the value to appear, we just
+        # don't want it to have a value if aliases are turned off.
+        $item{'alias'} = undef;
+    }
+
+    return \%item;
+}
+
+# Convert WebService API field names to internal DB field names.
+# Used by create() and search().
+sub _map_fields {
+    my ($params) = @_;
+    
+    my %field_values;
+    foreach my $field (keys %$params) {
+        my $field_name = FIELD_MAP->{$field} || $field;
+        $field_values{$field_name} = $params->{$field};
+    }
+
+    unless (Bugzilla->user->is_timetracker) {
+        delete @field_values{qw(estimated_time remaining_time deadline)};
+    }
+    
+    return \%field_values;
 }
 
 1;
@@ -326,6 +534,130 @@ You specified a field that doesn't exist or isn't a drop-down field.
 
 =over
 
+
+=item C<comments>
+
+B<UNSTABLE>
+
+=over
+
+=item B<Description>
+
+This allows you to get data about comments, given a list of bugs 
+and/or comment ids.
+
+=item B<Params>
+
+B<Note>: At least one of C<bug_ids> or C<comment_ids> is required.
+
+In addition to the parameters below, this method also accepts the
+standard L<include_fields|Bugzilla::WebService/include_fields> and
+L<exclude_fields|Bugzilla::WebService/exclude_fields> arguments.
+
+=over
+
+=item C<bug_ids> 
+
+C<array> An array that can contain both bug IDs and bug aliases.
+All of the comments (that are visible to you) will be returned for the
+specified bugs.
+
+=item C<comment_ids> 
+
+C<array> An array of integer comment_ids. These comments will be
+returned individually, separate from any other comments in their
+respective bugs.
+
+=item C<new_since>
+
+C<dateTime> If specified, the method will only return comments I<newer>
+than this time. This only affects comments returned from the C<bug_ids>
+argument. You will always be returned all comments you request in the
+C<comment_ids> argument, even if they are older than this date.
+
+=back
+
+=item B<Returns>
+
+Two items are returned:
+
+=over
+
+=item C<bugs>
+
+This is used for bugs specified in C<bug_ids>. This is a hash,
+where the keys are the numeric ids of the bugs, and the value is
+a hash with a single key, C<comments>, which is an array of comments.
+(The format of comments is described below.)
+
+Note that any individual bug will only be returned once, so if you
+specify an id multiple times in C<bug_ids>, it will still only be
+returned once.
+
+=item C<comments>
+
+Each individual comment requested in C<comment_ids> is returned here,
+in a hash where the numeric comment id is the key, and the value
+is the comment. (The format of comments is described below.) 
+
+=back
+
+A "comment" as described above is a hash that contains the following
+keys:
+
+=over
+
+=item id
+
+C<int> The globally unique ID for the comment.
+
+=item bug_id
+
+C<int> The ID of the bug that this comment is on.
+
+=item text
+
+C<string> The actual text of the comment.
+
+=item author
+
+C<string> The login name of the comment's author.
+
+=item time
+
+C<dateTime> The time (in Bugzilla's timezone) that the comment was added.
+
+=item is_private
+
+C<boolean> True if this comment is private (only visible to a certain
+group called the "insidergroup"), False otherwise.
+
+=back
+
+=item B<Errors>
+
+This method can throw all the same errors as L</get>. In addition,
+it can also throw the following errors:
+
+=over
+
+=item 110 (Comment Is Private)
+
+You specified the id of a private comment in the C<comment_ids>
+argument, and you are not in the "insider group" that can see
+private comments.
+
+=item 111 (Invalid Comment ID)
+
+You specified an id in the C<comment_ids> argument that is invalid--either
+you specified something that wasn't a number, or there is no comment with
+that id.
+
+=back
+
+=back
+
+
 =item C<get> 
 
 B<EXPERIMENTAL>
@@ -364,26 +696,31 @@ Each hash contains the following items:
 
 =over
 
-=item id
-
-C<int> The numeric bug_id of this bug.
-
 =item alias
 
 C<string> The alias of this bug. If there is no alias or aliases are 
 disabled in this Bugzilla, this will be an empty string.
 
-=item summary
+=item assigned_to 
 
-C<string> The summary of this bug.
+C<string> The login name of the user to whom the bug is assigned.
+
+=item component
+
+C<string> The name of the current component of this bug.
 
 =item creation_time
 
 C<dateTime> When the bug was created.
 
-=item last_change_time
+=item dupe_of
 
-C<dateTime> When the bug was last changed.
+C<int> The bug ID of the bug that this bug is a duplicate of. If this bug 
+isn't a duplicate of any bug, this will be an empty int.
+
+=item id
+
+C<int> The numeric bug_id of this bug.
 
 =item internals B<UNSTABLE>
 
@@ -391,6 +728,38 @@ A hash. The internals of a L<Bugzilla::Bug> object. This is extremely
 unstable, and you should only rely on this if you absolutely have to. The
 structure of the hash may even change between point releases of Bugzilla.
 
+=item is_open 
+
+C<boolean> Returns true (1) if this bug is open, false (0) if it is closed.
+
+=item last_change_time
+
+C<dateTime> When the bug was last changed.
+
+=item priority
+
+C<string> The priority of the bug.
+
+=item product
+
+C<string> The name of the product this bug is in.
+
+=item resolution
+
+C<string> The current resolution of the bug, or an empty string if the bug is open. 
+
+=item severity
+
+C<string> The current severity of the bug.
+
+=item status 
+
+C<string> The current status of the bug.
+
+=item summary
+
+C<string> The summary of this bug.
+
 =back
 
 =item B<Errors>
@@ -412,6 +781,37 @@ You do not have access to the bug_id you specified.
 
 =back
 
+=item B<History>
+
+=over
+
+=item The following properties were added to this method's return value
+in Bugzilla B<3.4>:
+
+=over
+
+=item assigned_to
+
+=item component 
+
+=item dupe_of
+
+=item is_open
+
+=item priority
+
+=item product
+
+=item resolution
+
+=item severity
+
+=item status
+
+=back
+
+=back
+
 =back
 
 =item C<get_history> 
@@ -513,12 +913,195 @@ The same as L</get>.
 
 =back
 
+
+=item C<search>
+
+B<UNSTABLE>
+
+=over
+
+=item B<Description>
+
+Allows you to search for bugs based on particular criteria.
+
+=item B<Params>
+
+Bugs are returned if they match I<exactly> the criteria you specify
+in these parameters. That is, we don't match against 
+substrings--if a bug is in the "Widgets" product and you ask for bugs in
+the "Widg" product, you won't get anything.
+
+Criteria are joined in a logical AND. That is, you will be returned
+bugs that match I<all> of the criteria, not bugs that match I<any> of
+the criteria.
+
+Each parameter can be either the type it says, or an array of the types
+it says. If you pass an array, it means "Give me bugs with I<any> of
+these values." For example, if you wanted bugs that were in either
+the "Foo" or "Bar" products, you'd pass:
+
+ product => ['Foo', 'Bar']
+
+Fields below only have descriptions if it's not clear what bug field
+they match up to, or if they have some special behavior.
+
+Some Bugzillas may treat your arguments case-sensitively, depending
+on what database system they are using. Most commonly, though, Bugzilla is 
+not case-sensitive with the arguments passed (because MySQL is the 
+most-common database to use with Bugzilla, and MySQL is not case sensitive).
+
+=over
+
+=item C<alias>
+
+C<string> The unique alias for this bug. Note that you can search
+by alias even if the alias field is disabled in this Bugzilla, but
+it's likely that there won't be any aliases set on bugs, in that case.
+
+=item C<assigned_to>
+
+C<string> The login name of a user that a bug is assigned to.
+
+=item C<component>
+
+C<string> The name of the Component that the bug is in. Note that
+if there are multiple Compoonents with the same name, and you search
+for that name, bugs in I<all> those Components will be returned. If you
+don't want this, be sure to also specify the C<product> argument.
+
+=item C<creation_time>
+
+C<dateTime> When the bug was created.
+
+=item C<id>
+
+C<int> The numeric id of the bug.
+
+=item C<last_change_time>
+
+C<dateTime> Limit the search to only those bugs which have changed 
+in some way since the specified time. It includes all bugs changed 
+between the specified time and the present. Note: only a single 
+C<dateTime> will accepted, not an array.
+
+=item C<limit>
+
+C<int> Limit the number of results returned to C<int> records.
+
+=item C<offset>
+
+C<int> Used in conjunction with the C<limit> argument, C<offset> defines 
+the starting position for the search. For example, given a search that 
+would return 100 bugs, setting C<limit> to 10 and C<offset> to 10 would return 
+bugs 11 through 20 from the set of 100.
+
+=item C<op_sys>
+
+C<string> The "Operating System" field of a bug.
+
+=item C<platform>
+
+C<string> The Platform (sometimes called "Hardware") field of a bug.
+
+=item C<priority>
+
+C<string> The Priority field on a bug.
+
+=item C<product>
+
+C<string> The name of the Product that the bug is in.
+
+=item C<reporter>
+
+C<string> The login name of the user who reported the bug.
+
+=item C<resolution>
+
+C<string> The current resolution--only set if a bug is closed. You can
+find open bugs by searching for bugs with an empty resolution.
+
+=item C<severity>
+
+C<string> The Severity field on a bug.
+
+=item C<status>
+
+C<string> The current status of a bug (not including its resolution,
+if it has one, which is a separate field above).
+
+=item C<summary>
+
+C<string> The single-line summary field of a bug. (This isn't very
+useful to search on, since we don't do substring matches, only exact
+matches.)
+
+=item C<target_milestone>
+
+C<string> The Target Milestone field of a bug. Note that even if this
+Bugzilla does not have the Target Milestone field enabled, you can
+still search for bugs by Target Milestone. However, it is likely that
+in that case, most bugs will not have a Target Milestone set (it
+defaults to "---" when the field isn't enabled).
+
+=item C<qa_contact>
+
+C<string> The login name of the bug's QA Contact. Note that even if
+this Bugzilla does not have the QA Contact field enabled, you can
+still search for bugs by QA Contact (though it is likely that no bug
+will have a QA Contact set, if the field is disabled).
+
+=item C<url>
+
+C<string> The "URL" field of a bug.
+
+=item C<version>
+
+C<string> The Version field of a bug.
+
+=item C<votes>
+
+C<int> How many votes this bug has, total.
+
+=item C<whiteboard>
+
+C<string> The "Status Whiteboard" field of a bug.
+
+=back
+
+=item B<Returns>
+
+The same as L</get>.
+
+Note that you will only be returned information about bugs that you
+can see. Bugs that you can't see will be entirely excluded from the
+results. So, if you want to see private bugs, you will have to first 
+log in and I<then> call this method.
+
+=item B<Errors>
+
+Currently, this function doesn't throw any special errors (other than
+the ones that all webservice functions can throw). If you specify
+an invalid value for a particular field, you just won't get any results
+for that value.
+
+=item B<History>
+
+=over
+
+=item Added in Bugzilla B<3.4>.
+
+=back
+
+=back
+
+
 =back
 
 =head2 Bug Creation and Modification
 
 =over
 
+
 =item C<create> 
 
 B<EXPERIMENTAL>
@@ -693,6 +1276,10 @@ be ignored.
 
 =back
 
+=item B<Returns>
+
+A hash with one element, C<id> whose value is the id of the newly-created comment.
+
 =item B<Errors>
 
 =over
@@ -718,6 +1305,114 @@ You did not have the necessary rights to edit the bug.
 
 =item Added in Bugzilla B<3.2>.
 
+=item Modified to return the new comment's id in Bugzilla B<3.4>
+
+=back
+
+=back
+
+
+=item C<update_see_also>
+
+B<UNSTABLE>
+
+=over
+
+=item B<Description>
+
+Adds or removes URLs for the "See Also" field on bugs. These URLs must
+point to some valid bug in some Bugzilla installation or in Launchpad.
+
+=item B<Params>
+
+=over
+
+=item C<ids>
+
+Array of C<int>s or C<string>s. The ids or aliases of bugs that you want
+to modify.
+
+=item C<add>
+
+Array of C<string>s. URLs to Bugzilla bugs. These URLs will be added to
+the See Also field. They must be valid URLs to C<show_bug.cgi> in a
+Bugzilla installation or to a bug filed at launchpad.net.
+
+If the URLs don't start with C<http://> or C<https://>, it will be assumed
+that C<http://> should be added to the beginning of the string.
+
+It is safe to specify URLs that are already in the "See Also" field on
+a bug--they will just be silently ignored.
+
+=item C<remove>
+
+Array of C<string>s. These URLs will be removed from the See Also field.
+You must specify the full URL that you want removed. However, matching
+is done case-insensitively, so you don't have to specify the URL in
+exact case, if you don't want to.
+
+If you specify a URL that is not in the See Also field of a particular bug,
+it will just be silently ignored. Invaild URLs are currently silently ignored,
+though this may change in some future version of Bugzilla.
+
+=back
+
+NOTE: If you specify the same URL in both C<add> and C<remove>, it will
+be I<added>. (That is, C<add> overrides C<remove>.)
+
+=item B<Returns>
+
+C<changes>, a hash where the keys are numeric bug ids and the contents
+are a hash with one key, C<see_also>. C<see_also> points to a hash, which
+contains two keys, C<added> and C<removed>. These are arrays of strings,
+representing the actual changes that were made to the bug.
+
+Here's a diagram of what the return value looks like for updating
+bug ids 1 and 2:
+
+ {
+   changes => {
+       1 => {
+           see_also => {
+               added   => (an array of bug URLs),
+               removed => (an array of bug URLs),
+           }
+       },
+       2 => {
+           see_also => {
+               added   => (an array of bug URLs),
+               removed => (an array of bug URLs),
+           }
+       }
+   }
+ }
+
+This return value allows you to tell what this method actually did. It is in
+this format to be compatible with the return value of a future C<Bug.update>
+method.
+
+=item B<Errors>
+
+This method can throw all of the errors that L</get> throws, plus:
+
+=over
+
+=item 108 (Bug Edit Denied)
+
+You did not have the necessary rights to edit the bug.
+
+=item 112 (Invalid Bug URL)
+
+One of the URLs you provided did not look like a valid bug URL.
+
+=back
+
+=item B<History>
+
+=over
+
+=item Added in Bugzilla B<3.4>.
+
 =back
 
 =back
diff --git a/Bugzilla/WebService/Bugzilla.pm b/Bugzilla/WebService/Bugzilla.pm
index 2f35bbe595a01002fbcf36167841526a4b2996e6..b1ab8f34f0403cbfe400a9a47c7c5aa884b4c483 100755
--- a/Bugzilla/WebService/Bugzilla.pm
+++ b/Bugzilla/WebService/Bugzilla.pm
@@ -57,6 +57,29 @@ sub timezone {
     return { timezone => $self->type('string', $offset) };
 }
 
+sub time {
+    my ($self) = @_;
+    my $dbh = Bugzilla->dbh;
+
+    my $db_time = $dbh->selectrow_array('SELECT LOCALTIMESTAMP(0)');
+    my $now_utc = DateTime->now();
+
+    my $tz = Bugzilla->local_timezone;
+    my $now_local = $now_utc->clone->set_time_zone($tz);
+    my $tz_offset = $tz->offset_for_datetime($now_local);
+
+    return {
+        db_time       => $self->type('dateTime', $db_time),
+        web_time      => $self->type('dateTime', $now_local),
+        web_time_utc  => $self->type('dateTime', $now_utc),
+        tz_name       => $self->type('string', $tz->name),
+        tz_offset     => $self->type('string', 
+                                     $tz->offset_as_string($tz_offset)),
+        tz_short_name => $self->type('string', 
+                                     $now_local->time_zone_short_name),
+    };
+}
+
 1;
 
 __END__
@@ -129,7 +152,8 @@ extension
 
 =item C<timezone>
 
-B<STABLE>
+B<DEPRECATED> This method may be removed in a future version of Bugzilla.
+Use L</time> instead.
 
 =over
 
@@ -148,4 +172,80 @@ string in (+/-)XXXX (RFC 2822) format.
 
 =back
 
+
+=item C<time>
+
+B<UNSTABLE>
+
+=over
+
+=item B<Description>
+
+Gets information about what time the Bugzilla server thinks it is, and
+what timezone it's running in.
+
+=item B<Params> (none)
+
+=item B<Returns>
+
+A struct with the following items:
+
+=over
+
+=item C<db_time>
+
+C<dateTime> The current time in Bugzilla's B<local time zone>, according 
+to the Bugzilla I<database server>.
+
+Note that Bugzilla assumes that the database and the webserver are running
+in the same time zone. However, if the web server and the database server
+aren't synchronized for some reason, I<this> is the time that you should
+rely on for doing searches and other input to the WebService.
+
+=item C<web_time>
+
+C<dateTime> This is the current time in Bugzilla's B<local time zone>, 
+according to Bugzilla's I<web server>.
+
+This might be different by a second from C<db_time> since this comes from
+a different source. If it's any more different than a second, then there is
+likely some problem with this Bugzilla instance. In this case you should
+rely on the C<db_time>, not the C<web_time>.
+
+=item C<web_time_utc>
+
+The same as C<web_time>, but in the B<UTC> time zone instead of the local
+time zone.
+
+=item C<tz_name>
+
+C<string> The long name of the time zone that the Bugzilla web server is 
+in. Will usually look something like: C<America/Los Angeles>
+
+=item C<tz_short_name>
+
+C<string> The "short name" of the time zone that the Bugzilla web server
+is in. This should only be used for display, and not relied on for your
+programs, because different time zones can have the same short name.
+(For example, there are two C<EST>s.)
+
+This will look something like: C<PST>.
+
+=item C<tz_offset>
+
+C<string> The timezone offset as a string in (+/-)XXXX (RFC 2822) format.
+
+=back
+
+=item B<History>
+
+=over
+
+=item Added in Bugzilla B<3.4>.
+
+=back
+
+=back
+
+
 =back
diff --git a/Bugzilla/WebService/CVS/Entries b/Bugzilla/WebService/CVS/Entries
index 4c9f968678b906e0c14190f2743037aff1a380d4..9a2acf33f34eec24811a1bccec9d3a7d71d211e0 100644
--- a/Bugzilla/WebService/CVS/Entries
+++ b/Bugzilla/WebService/CVS/Entries
@@ -1,7 +1,7 @@
-/Bug.pm/1.19/Wed Nov 26 01:20:42 2008//TBUGZILLA-3_3_1
-/Bugzilla.pm/1.10/Wed Nov 26 01:20:42 2008//TBUGZILLA-3_3_1
-/Constants.pm/1.20/Fri Oct 24 23:11:40 2008//TBUGZILLA-3_3_1
-/Product.pm/1.7/Wed Nov 26 01:20:42 2008//TBUGZILLA-3_3_1
-/User.pm/1.12/Wed Nov 26 01:20:42 2008//TBUGZILLA-3_3_1
-/Util.pm/1.2/Wed Nov 26 01:20:42 2008//TBUGZILLA-3_3_1
+/Bug.pm/1.30/Mon Jan 26 21:59:56 2009//TBUGZILLA-3_3_2
+/Bugzilla.pm/1.11/Fri Jan  9 19:13:32 2009//TBUGZILLA-3_3_2
+/Constants.pm/1.23/Thu Jan 22 06:15:52 2009//TBUGZILLA-3_3_2
+/Product.pm/1.8/Mon Jan 26 20:40:22 2009//TBUGZILLA-3_3_2
+/User.pm/1.14/Mon Jan 26 20:40:22 2009//TBUGZILLA-3_3_2
+/Util.pm/1.3/Mon Jan 26 20:40:23 2009//TBUGZILLA-3_3_2
 D
diff --git a/Bugzilla/WebService/CVS/Tag b/Bugzilla/WebService/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/Bugzilla/WebService/CVS/Tag
+++ b/Bugzilla/WebService/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/Bugzilla/WebService/Constants.pm b/Bugzilla/WebService/Constants.pm
index 593801a6f4447a1b23c108466bad6ca838db747f..2ccca5ae9bfe24e9a922e0eae963d81e7d9f9177 100755
--- a/Bugzilla/WebService/Constants.pm
+++ b/Bugzilla/WebService/Constants.pm
@@ -48,10 +48,12 @@ use base qw(Exporter);
 # comment that it was retired. Also, if an error changes its name, you'll
 # have to fix it here.
 use constant WS_ERROR_CODE => {
-    # Generic Bugzilla::Object errors are 50-99.
+    # Generic errors (Bugzilla::Object and others) are 50-99.    
     object_not_specified        => 50,
     param_required              => 50,
+    params_required             => 50,
     object_does_not_exist       => 51,
+    xmlrpc_invalid_value        => 52,
     # Bug errors usually occupy the 100-200 range.
     improper_bug_id_field_value => 100,
     bug_id_does_not_exist       => 101,
@@ -79,6 +81,12 @@ use constant WS_ERROR_CODE => {
     invalid_field_name => 108,
     # Not authorized to edit the bug
     product_edit_denied => 109,
+    # Comment-related errors
+    comment_is_private => 110,
+    comment_id_invalid => 111,
+    # See Also errors
+    bug_url_invalid => 112,
+    bug_url_too_long => 112,
 
     # Authentication errors are usually 300-400.
     invalid_username_or_password => 300,
diff --git a/Bugzilla/WebService/Product.pm b/Bugzilla/WebService/Product.pm
index 4dd8944539138c4f8c454917aa7b82c0d1bc2fd8..eaec012a471175922bdf0ff6e3b9bbbda1def051 100755
--- a/Bugzilla/WebService/Product.pm
+++ b/Bugzilla/WebService/Product.pm
@@ -21,6 +21,7 @@ use strict;
 use base qw(Bugzilla::WebService);
 use Bugzilla::Product;
 use Bugzilla::User;
+use Bugzilla::WebService::Util qw(validate);
 
 ##################################################
 # Add aliases here for method name compatibility #
@@ -45,7 +46,7 @@ sub get_accessible_products {
 
 # Get a list of actual products, based on list of ids
 sub get {
-    my ($self, $params) = @_;
+    my ($self, $params) = validate(@_, 'ids');
     
     # Only products that are in the users accessible products, 
     # can be allowed to be returned
diff --git a/Bugzilla/WebService/User.pm b/Bugzilla/WebService/User.pm
index 24b9be70932f9a334712a5bfc3497f9adb51cdec..790a9da7c2a8f2393dc2db4cd66387fe5bc74078 100755
--- a/Bugzilla/WebService/User.pm
+++ b/Bugzilla/WebService/User.pm
@@ -28,7 +28,7 @@ use Bugzilla::Error;
 use Bugzilla::User;
 use Bugzilla::Util qw(trim);
 use Bugzilla::Token;
-use Bugzilla::WebService::Util qw(filter);
+use Bugzilla::WebService::Util qw(filter validate);
 
 # Don't need auth to login
 use constant LOGIN_EXEMPT => {
@@ -131,7 +131,7 @@ sub create {
 # $call = $rpc->call( 'User.get', { ids => [1,2,3], 
 #         names => ['testusera@redhat.com', 'testuserb@redhat.com'] });
 sub get {
-    my ($self, $params) = @_;
+    my ($self, $params) = validate(@_, 'names', 'ids');
 
     my @user_objects;
     @user_objects = map { Bugzilla::User->check($_) } @{ $params->{names} }
@@ -451,6 +451,10 @@ B<Note>: At least one of C<ids>, C<names>, or C<match> must be specified.
 B<Note>: Users will not be returned more than once, so even if a user 
 is matched by more than one argument, only one user will be returned.
 
+In addition to the parameters below, this method also accepts the
+standard L<include_fields|Bugzilla::WebService/include_fields> and
+L<exclude_fields|Bugzilla::WebService/exclude_fields> arguments.
+
 =over
 
 =item C<ids> (array) 
@@ -482,34 +486,6 @@ if they try. (This is to make it harder for spammers to harvest email
 addresses from Bugzilla, and also to enforce the user visibility
 restrictions that are implemented on some Bugzillas.)
 
-=item C<include_fields> (array)
-
-An array of strings, representing the names of keys in the hashes 
-this function returns. Only the fields specified in this hash will be 
-returned, the rest will not be included.
-
-Essentially, this is a way to make the return value smaller, for performance
-or bandwidth reasons.
-
-If you specify an empty array, then this function will return empty hashes.
-
-Invalid field names are ignored.
-
-=item C<exclude_fields> (array)
-
-An array of strings, representing the names of keys in the hashes this 
-function returns. The fields specified will not be excluded from the 
-returned hashes.
-
-Essentially, this is a way to exclude certain fields from the returned
-hashes, for performance or bandwidth reasons.
-
-If you specify all the fields, then this function will return empty hashes.
-
-Invalid field names are ignored.
-
-This overrides C<include_fields>.
-
 =back
 
 =item B<Returns> 
diff --git a/Bugzilla/WebService/Util.pm b/Bugzilla/WebService/Util.pm
index cd75bee8cd83f4348d0a689787ca51fa2da9605a..74c1f2f02f3199521f22ba1d0adc170fcfa79e66 100644
--- a/Bugzilla/WebService/Util.pm
+++ b/Bugzilla/WebService/Util.pm
@@ -24,7 +24,7 @@ use strict;
 
 use base qw(Exporter);
 
-our @EXPORT_OK = qw(filter);
+our @EXPORT_OK = qw(filter validate);
 
 sub filter ($$) {
     my ($params, $hash) = @_;
@@ -44,6 +44,23 @@ sub filter ($$) {
     return \%newhash;
 }
 
+sub validate  {
+    my ($self, $params, @keys) = @_;
+    
+    # If @keys is not empty then we convert any named 
+    # parameters that have scalar values to arrayrefs
+    # that match.
+    foreach my $key (@keys) {
+        if (exists $params->{$key}) {
+            $params->{$key} = ref $params->{$key} 
+                              ? $params->{$key} 
+                              : [ $params->{$key} ];
+        }
+    }
+
+    return ($self, $params);
+}
+
 __END__
 
 =head1 NAME
@@ -61,6 +78,8 @@ internally in the WebService code.
  filter({ include_fields => ['id', 'name'], 
           exclude_fields => ['name'] }, $hash);
 
+ validate(@_, 'ids');
+
 =head1 METHODS
 
 =over
@@ -72,4 +91,11 @@ of WebService methods. Given a hash (the second argument to this subroutine),
 this will remove any keys that are I<not> in C<include_fields> and then remove
 any keys that I<are> in C<exclude_fields>.
 
+=item C<validate>
+
+This helps in the validation of parameters passed into the WebSerice
+methods. Currently it converts listed parameters into an array reference
+if the client only passed a single scalar value. It modifies the parameters
+hash in place so other parameters should be unaltered.
+
 =back
diff --git a/CVS/Entries b/CVS/Entries
index be8bd6734db415a8b344bcb4928c9f1d947f11bf..7d5e39be3bfeebd7ced7f47489047736a6e79591 100644
--- a/CVS/Entries
+++ b/CVS/Entries
@@ -1,75 +1,75 @@
-/.cvsignore/1.8/Fri Oct 19 07:58:48 2007//TBUGZILLA-3_3_1
-/Bugzilla.pm/1.72/Wed Dec 24 03:43:36 2008//TBUGZILLA-3_3_1
-/QUICKSTART/1.8/Tue Oct 23 08:06:36 2007//TBUGZILLA-3_3_1
-/README/1.52/Fri Oct 10 02:22:39 2003//TBUGZILLA-3_3_1
-/UPGRADING/1.1/Fri Aug 10 22:35:21 2001//TBUGZILLA-3_3_1
-/UPGRADING-pre-2.8/1.4/Mon Dec 24 01:37:43 2007//TBUGZILLA-3_3_1
-/admin.cgi/1.2/Fri Oct 19 06:46:10 2007//TBUGZILLA-3_3_1
-/attachment.cgi/1.150/Wed Dec 17 15:07:28 2008//TBUGZILLA-3_3_1
-/buglist.cgi/1.388/Sun Jan  4 17:44:35 2009//TBUGZILLA-3_3_1
-/bugzilla.dtd/1.15/Sat Jan  6 23:51:56 2007//TBUGZILLA-3_3_1
-/chart.cgi/1.27/Wed Aug 27 02:32:12 2008//TBUGZILLA-3_3_1
-/checksetup.pl/1.561/Mon Dec 22 15:50:51 2008//TBUGZILLA-3_3_1
-/colchange.cgi/1.65/Wed Sep 10 19:07:01 2008//TBUGZILLA-3_3_1
-/collectstats.pl/1.68/Tue Dec 16 21:16:28 2008//TBUGZILLA-3_3_1
-/config.cgi/1.30/Fri Oct 24 23:11:30 2008//TBUGZILLA-3_3_1
-/createaccount.cgi/1.57/Sun Nov 11 22:03:16 2007//TBUGZILLA-3_3_1
-/describecomponents.cgi/1.38/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_1
-/describekeywords.cgi/1.21/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_1
-/duplicates.cgi/1.62/Wed May 21 00:00:57 2008//TBUGZILLA-3_3_1
-/editclassifications.cgi/1.33/Fri Jan  2 13:59:22 2009//TBUGZILLA-3_3_1
-/editcomponents.cgi/1.86/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_3_1
-/editfields.cgi/1.11/Fri Nov  7 11:34:39 2008//TBUGZILLA-3_3_1
-/editflagtypes.cgi/1.54/Thu Jan  1 19:04:52 2009//TBUGZILLA-3_3_1
-/editgroups.cgi/1.89/Sat Oct 18 16:15:19 2008//TBUGZILLA-3_3_1
-/editkeywords.cgi/1.46/Sat Oct 18 16:30:20 2008//TBUGZILLA-3_3_1
-/editmilestones.cgi/1.62/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_3_1
-/editparams.cgi/1.50/Fri Aug 22 16:00:33 2008//TBUGZILLA-3_3_1
-/editproducts.cgi/1.147/Fri Jan  2 13:47:18 2009//TBUGZILLA-3_3_1
-/editsettings.cgi/1.11/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_3_1
-/editusers.cgi/1.152/Wed Dec  3 07:00:43 2008//TBUGZILLA-3_3_1
-/editvalues.cgi/1.38/Fri Nov  7 11:34:39 2008//TBUGZILLA-3_3_1
-/editversions.cgi/1.58/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_3_1
-/editwhines.cgi/1.23/Wed Aug 27 23:26:13 2008//TBUGZILLA-3_3_1
-/editworkflow.cgi/1.6/Wed Jul  2 19:10:17 2008//TBUGZILLA-3_3_1
-/email_in.pl/1.21/Fri Jul 11 21:27:12 2008//TBUGZILLA-3_3_1
-/enter_bug.cgi/1.167/Fri Jan  2 13:26:51 2009//TBUGZILLA-3_3_1
-/importxml.pl/1.87/Tue Dec 16 21:16:28 2008//TBUGZILLA-3_3_1
-/index.cgi/1.27/Mon Aug 18 04:16:12 2008//TBUGZILLA-3_3_1
-/install-module.pl/1.3/Mon Aug 18 23:27:50 2008//TBUGZILLA-3_3_1
-/jobqueue.pl/1.2/Wed Dec 24 04:30:41 2008//TBUGZILLA-3_3_1
-/long_list.cgi/1.48/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_1
-/mod_perl.pl/1.10/Sun Jan  6 02:55:59 2008//TBUGZILLA-3_3_1
-/page.cgi/1.20/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_1
-/post_bug.cgi/1.198/Wed Sep 17 23:48:57 2008//TBUGZILLA-3_3_1
-/process_bug.cgi/1.415/Sun Jan  4 04:38:35 2009//TBUGZILLA-3_3_1
-/query.cgi/1.182/Sat Jan  3 01:08:27 2009//TBUGZILLA-3_3_1
-/quips.cgi/1.39/Wed Nov  5 18:38:49 2008//TBUGZILLA-3_3_1
-/relogin.cgi/1.41/Wed Apr  2 17:42:26 2008//TBUGZILLA-3_3_1
-/report.cgi/1.43/Sat Jan  3 01:08:27 2009//TBUGZILLA-3_3_1
-/reports.cgi/1.94/Sun Dec 14 14:28:29 2008//TBUGZILLA-3_3_1
-/request.cgi/1.48/Tue Aug 19 16:09:03 2008//TBUGZILLA-3_3_1
-/robots.txt/1.2/Wed Apr 24 18:11:00 2002//TBUGZILLA-3_3_1
-/runtests.pl/1.5/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_1
-/sanitycheck.cgi/1.143/Sat Jun 14 11:15:22 2008//TBUGZILLA-3_3_1
-/sanitycheck.pl/1.4/Tue Dec 16 21:16:29 2008//TBUGZILLA-3_3_1
-/search_plugin.cgi/1.4/Tue Dec 16 22:39:41 2008//TBUGZILLA-3_3_1
-/show_activity.cgi/1.25/Sun Jun 29 21:57:54 2008//TBUGZILLA-3_3_1
-/show_bug.cgi/1.55/Wed Sep 17 23:48:57 2008//TBUGZILLA-3_3_1
-/showattachment.cgi/1.16/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_1
-/showdependencygraph.cgi/1.67/Tue Oct  7 19:49:58 2008//TBUGZILLA-3_3_1
-/showdependencytree.cgi/1.53/Sun Jun 29 21:57:54 2008//TBUGZILLA-3_3_1
-/sidebar.cgi/1.19/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_1
-/summarize_time.cgi/1.24/Sun Jun 29 21:57:54 2008//TBUGZILLA-3_3_1
-/testagent.cgi/1.3/Sun Feb 11 00:12:24 2007//TBUGZILLA-3_3_1
-/testserver.pl/1.19/Mon Dec 22 15:50:53 2008//TBUGZILLA-3_3_1
-/token.cgi/1.59/Fri Sep 19 20:00:25 2008//TBUGZILLA-3_3_1
-/userprefs.cgi/1.124/Wed Dec 10 18:26:51 2008//TBUGZILLA-3_3_1
-/votes.cgi/1.56/Sun Jun 29 21:57:54 2008//TBUGZILLA-3_3_1
-/whine.pl/1.37/Wed Apr  2 17:42:26 2008//TBUGZILLA-3_3_1
-/whineatnews.pl/1.31/Wed Apr  2 17:42:26 2008//TBUGZILLA-3_3_1
-/xml.cgi/1.14/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_1
-/xmlrpc.cgi/1.10/Wed Aug 27 01:54:05 2008//TBUGZILLA-3_3_1
+/.cvsignore/1.8/Fri Oct 19 07:58:48 2007//TBUGZILLA-3_3_2
+/Bugzilla.pm/1.73/Thu Jan 15 00:50:30 2009//TBUGZILLA-3_3_2
+/QUICKSTART/1.8/Tue Oct 23 08:06:36 2007//TBUGZILLA-3_3_2
+/README/1.52/Fri Oct 10 02:22:39 2003//TBUGZILLA-3_3_2
+/UPGRADING/1.1/Fri Aug 10 22:35:21 2001//TBUGZILLA-3_3_2
+/UPGRADING-pre-2.8/1.4/Mon Dec 24 01:37:43 2007//TBUGZILLA-3_3_2
+/admin.cgi/1.2/Fri Oct 19 06:46:10 2007//TBUGZILLA-3_3_2
+/attachment.cgi/1.152/Mon Feb  2 19:10:32 2009//TBUGZILLA-3_3_2
+/buglist.cgi/1.392/Mon Feb  2 18:48:38 2009//TBUGZILLA-3_3_2
+/bugzilla.dtd/1.15/Sat Jan  6 23:51:56 2007//TBUGZILLA-3_3_2
+/chart.cgi/1.28/Thu Jan 15 01:13:50 2009//TBUGZILLA-3_3_2
+/checksetup.pl/1.561/Mon Dec 22 15:50:51 2008//TBUGZILLA-3_3_2
+/colchange.cgi/1.65/Wed Sep 10 19:07:01 2008//TBUGZILLA-3_3_2
+/collectstats.pl/1.68/Tue Dec 16 21:16:28 2008//TBUGZILLA-3_3_2
+/config.cgi/1.31/Sun Jan 25 12:42:51 2009//TBUGZILLA-3_3_2
+/createaccount.cgi/1.57/Sun Nov 11 22:03:16 2007//TBUGZILLA-3_3_2
+/describecomponents.cgi/1.39/Sun Jan 25 12:42:51 2009//TBUGZILLA-3_3_2
+/describekeywords.cgi/1.22/Sun Jan 25 12:42:51 2009//TBUGZILLA-3_3_2
+/duplicates.cgi/1.62/Wed May 21 00:00:57 2008//TBUGZILLA-3_3_2
+/editclassifications.cgi/1.33/Fri Jan  2 13:59:22 2009//TBUGZILLA-3_3_2
+/editcomponents.cgi/1.86/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_3_2
+/editfields.cgi/1.12/Thu Jan 15 15:47:36 2009//TBUGZILLA-3_3_2
+/editflagtypes.cgi/1.55/Mon Feb  2 18:59:17 2009//TBUGZILLA-3_3_2
+/editgroups.cgi/1.90/Sun Jan 25 18:49:30 2009//TBUGZILLA-3_3_2
+/editkeywords.cgi/1.47/Mon Feb  2 18:59:17 2009//TBUGZILLA-3_3_2
+/editmilestones.cgi/1.62/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_3_2
+/editparams.cgi/1.50/Fri Aug 22 16:00:33 2008//TBUGZILLA-3_3_2
+/editproducts.cgi/1.147/Fri Jan  2 13:47:18 2009//TBUGZILLA-3_3_2
+/editsettings.cgi/1.11/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_3_2
+/editusers.cgi/1.153/Sun Jan 25 18:49:30 2009//TBUGZILLA-3_3_2
+/editvalues.cgi/1.38/Fri Nov  7 11:34:39 2008//TBUGZILLA-3_3_2
+/editversions.cgi/1.58/Sun Jan 27 23:14:14 2008//TBUGZILLA-3_3_2
+/editwhines.cgi/1.23/Wed Aug 27 23:26:13 2008//TBUGZILLA-3_3_2
+/editworkflow.cgi/1.6/Wed Jul  2 19:10:17 2008//TBUGZILLA-3_3_2
+/email_in.pl/1.22/Mon Feb  2 18:33:29 2009//TBUGZILLA-3_3_2
+/enter_bug.cgi/1.168/Wed Jan 28 23:27:27 2009//TBUGZILLA-3_3_2
+/importxml.pl/1.87/Tue Dec 16 21:16:28 2008//TBUGZILLA-3_3_2
+/index.cgi/1.27/Mon Aug 18 04:16:12 2008//TBUGZILLA-3_3_2
+/install-module.pl/1.3/Mon Aug 18 23:27:50 2008//TBUGZILLA-3_3_2
+/jobqueue.pl/1.2/Wed Dec 24 04:30:41 2008//TBUGZILLA-3_3_2
+/long_list.cgi/1.48/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_2
+/mod_perl.pl/1.10/Sun Jan  6 02:55:59 2008//TBUGZILLA-3_3_2
+/page.cgi/1.20/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_2
+/post_bug.cgi/1.198/Wed Sep 17 23:48:57 2008//TBUGZILLA-3_3_2
+/process_bug.cgi/1.417/Mon Feb  2 18:33:29 2009//TBUGZILLA-3_3_2
+/query.cgi/1.183/Sun Jan 25 12:42:51 2009//TBUGZILLA-3_3_2
+/quips.cgi/1.39/Wed Nov  5 18:38:49 2008//TBUGZILLA-3_3_2
+/relogin.cgi/1.41/Wed Apr  2 17:42:26 2008//TBUGZILLA-3_3_2
+/report.cgi/1.44/Thu Jan 15 01:13:50 2009//TBUGZILLA-3_3_2
+/reports.cgi/1.94/Sun Dec 14 14:28:29 2008//TBUGZILLA-3_3_2
+/request.cgi/1.49/Sun Jan 25 12:42:52 2009//TBUGZILLA-3_3_2
+/robots.txt/1.2/Wed Apr 24 18:11:00 2002//TBUGZILLA-3_3_2
+/runtests.pl/1.5/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_2
+/sanitycheck.cgi/1.143/Sat Jun 14 11:15:22 2008//TBUGZILLA-3_3_2
+/sanitycheck.pl/1.4/Tue Dec 16 21:16:29 2008//TBUGZILLA-3_3_2
+/search_plugin.cgi/1.4/Tue Dec 16 22:39:41 2008//TBUGZILLA-3_3_2
+/show_activity.cgi/1.26/Sun Jan 25 12:42:52 2009//TBUGZILLA-3_3_2
+/show_bug.cgi/1.56/Sun Jan 25 12:42:52 2009//TBUGZILLA-3_3_2
+/showattachment.cgi/1.16/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_2
+/showdependencygraph.cgi/1.67/Tue Oct  7 19:49:58 2008//TBUGZILLA-3_3_2
+/showdependencytree.cgi/1.53/Sun Jun 29 21:57:54 2008//TBUGZILLA-3_3_2
+/sidebar.cgi/1.19/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_2
+/summarize_time.cgi/1.24/Sun Jun 29 21:57:54 2008//TBUGZILLA-3_3_2
+/testagent.cgi/1.3/Sun Feb 11 00:12:24 2007//TBUGZILLA-3_3_2
+/testserver.pl/1.19/Mon Dec 22 15:50:53 2008//TBUGZILLA-3_3_2
+/token.cgi/1.60/Thu Jan  8 16:09:46 2009//TBUGZILLA-3_3_2
+/userprefs.cgi/1.126/Mon Feb  2 19:21:09 2009//TBUGZILLA-3_3_2
+/votes.cgi/1.57/Thu Jan 29 21:22:20 2009//TBUGZILLA-3_3_2
+/whine.pl/1.38/Sun Jan 25 18:49:30 2009//TBUGZILLA-3_3_2
+/whineatnews.pl/1.31/Wed Apr  2 17:42:26 2008//TBUGZILLA-3_3_2
+/xml.cgi/1.14/Fri Oct 19 06:46:11 2007//TBUGZILLA-3_3_2
+/xmlrpc.cgi/1.10/Wed Aug 27 01:54:05 2008//TBUGZILLA-3_3_2
 D/Bugzilla////
 D/contrib////
 D/docs////
diff --git a/CVS/Tag b/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/CVS/Tag
+++ b/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/attachment.cgi b/attachment.cgi
index 35829343fa2fb229f1d25c7d3ab11686d665df81..16615abaee634c350ff0825f96a81ad4c3d561d0 100755
--- a/attachment.cgi
+++ b/attachment.cgi
@@ -27,6 +27,7 @@
 #                 Greg Hendricks <ghendricks@novell.com>
 #                 Frédéric Buclin <LpSolit@gmail.com>
 #                 Marc Schumann <wurblzap@gmail.com>
+#                 Byron Jones <bugzilla@glob.com.au>
 
 ################################################################################
 # Script Initialization
@@ -51,8 +52,6 @@ use Bugzilla::Attachment::PatchReader;
 use Bugzilla::Token;
 use Bugzilla::Keyword;
 
-Bugzilla->login();
-
 # For most scripts we don't make $cgi and $template global variables. But
 # when preparing Bugzilla for mod_perl, this script used these
 # variables in so many subroutines that it was easier to just
@@ -73,13 +72,27 @@ local our $vars = {};
 # Determine whether to use the action specified by the user or the default.
 my $action = $cgi->param('action') || 'view';
 
+# You must use the appropriate urlbase/sslbase param when doing anything
+# but viewing an attachment.
+if ($action ne 'view') {
+    my $urlbase = Bugzilla->params->{'urlbase'};
+    my $sslbase = Bugzilla->params->{'sslbase'};
+    my $path_regexp = $sslbase ? qr/^(\Q$urlbase\E|\Q$sslbase\E)/ : qr/^\Q$urlbase\E/;
+    if (use_attachbase() && $cgi->self_url !~ /$path_regexp/) {
+        $cgi->redirect_to_urlbase;
+    }
+    Bugzilla->login();
+}
+
 # Determine if PatchReader is installed
 eval {
     require PatchReader;
     $vars->{'patchviewerinstalled'} = 1;
 };
 
-if ($action eq "view")  
+# When viewing an attachment, do not request credentials if we are on
+# the alternate host. Let view() decide when to call Bugzilla->login.
+if ($action eq "view")
 {
     view();
 }
@@ -131,7 +144,8 @@ exit;
 # Validates an attachment ID. Optionally takes a parameter of a form
 # variable name that contains the ID to be validated. If not specified,
 # uses 'id'.
-# 
+# If the second parameter is true, the attachment ID will be validated,
+# however the current user's access to the attachment will not be checked.
 # Will throw an error if 1) attachment ID is not a valid number,
 # 2) attachment does not exist, or 3) user isn't allowed to access the
 # attachment.
@@ -139,8 +153,8 @@ exit;
 # Returns an attachment object.
 
 sub validateID {
-    my $param = @_ ? $_[0] : 'id';
-    my $user = Bugzilla->user;
+    my($param, $dont_validate_access) = @_;
+    $param ||= 'id';
 
     # If we're not doing interdiffs, check if id wasn't specified and
     # prompt them with a page that allows them to choose an attachment.
@@ -164,6 +178,14 @@ sub validateID {
     my $attachment = new Bugzilla::Attachment($attach_id)
       || ThrowUserError("invalid_attach_id", { attach_id => $attach_id });
 
+    return $attachment if ($dont_validate_access || check_can_access($attachment));
+}
+
+# Make sure the current user has access to the specified attachment.
+sub check_can_access {
+    my $attachment = shift;
+    my $user = Bugzilla->user;
+
     # Make sure the user is authorized to access this attachment's bug.
     Bugzilla::Bug->check($attachment->bug_id);
     if ($attachment->isprivate && $user->id != $attachment->attacher->id 
@@ -172,7 +194,19 @@ sub validateID {
         ThrowUserError('auth_failure', {action => 'access',
                                         object => 'attachment'});
     }
-    return $attachment;
+    return 1;
+}
+
+# Determines if the attachment is public -- that is, if users who are
+# not logged in have access to the attachment
+sub attachmentIsPublic {
+    my $attachment = shift;
+
+    return 0 if Bugzilla->params->{'requirelogin'};
+    return 0 if $attachment->isprivate;
+
+    my $anon_user = new Bugzilla::User;
+    return $anon_user->can_see_bug($attachment->bug_id);
 }
 
 # Validates format of a diff/interdiff. Takes a list as an parameter, which
@@ -223,8 +257,60 @@ sub validateCanChangeBug
 
 # Display an attachment.
 sub view {
-    # Retrieve and validate parameters
-    my $attachment = validateID();
+    my $attachment;
+
+    if (use_attachbase()) {
+        $attachment = validateID(undef, 1);
+        # Replace %bugid% by the ID of the bug the attachment belongs to, if present.
+        my $attachbase = Bugzilla->params->{'attachment_base'};
+        my $bug_id = $attachment->bug_id;
+        $attachbase =~ s/%bugid%/$bug_id/;
+        my $path = 'attachment.cgi?id=' . $attachment->id;
+
+        # Make sure the attachment is served from the correct server.
+        if ($cgi->self_url !~ /^\Q$attachbase\E/) {
+            # We couldn't call Bugzilla->login earlier as we first had to make sure
+            # we were not going to request credentials on the alternate host.
+            Bugzilla->login();
+            if (attachmentIsPublic($attachment)) {
+                # No need for a token; redirect to attachment base.
+                print $cgi->redirect(-location => $attachbase . $path);
+                exit;
+            } else {
+                # Make sure the user can view the attachment.
+                check_can_access($attachment);
+                # Create a token and redirect.
+                my $token = url_quote(issue_session_token($attachment->id));
+                print $cgi->redirect(-location => $attachbase . "$path&t=$token");
+                exit;
+            }
+        } else {
+            # No need to validate the token for public attachments. We cannot request
+            # credentials as we are on the alternate host.
+            if (!attachmentIsPublic($attachment)) {
+                my $token = $cgi->param('t');
+                my ($userid, undef, $token_attach_id) = Bugzilla::Token::GetTokenData($token);
+                unless ($userid
+                        && detaint_natural($token_attach_id)
+                        && ($token_attach_id == $attachment->id))
+                {
+                    # Not a valid token.
+                    print $cgi->redirect('-location' => correct_urlbase() . $path);
+                    exit;
+                }
+                # Change current user without creating cookies.
+                Bugzilla->set_user(new Bugzilla::User($userid));
+                # Tokens are single use only, delete it.
+                delete_token($token);
+            }
+        }
+    } else {
+        # No alternate host is used. Request credentials if required.
+        Bugzilla->login();
+        $attachment = validateID();
+    }
+
+    # At this point, Bugzilla->login has been called if it had to.
     my $contenttype = $attachment->contenttype;
     my $filename = $attachment->filename;
 
@@ -246,8 +332,10 @@ sub view {
     $filename =~ s/\\/\\\\/g; # escape backslashes
     $filename =~ s/"/\\"/g; # escape quotes
 
+    my $disposition = Bugzilla->params->{'allow_attachment_display'} ? 'inline' : 'attachment';
+
     print $cgi->header(-type=>"$contenttype; name=\"$filename\"",
-                       -content_disposition=> "inline; filename=\"$filename\"",
+                       -content_disposition=> "$disposition; filename=\"$filename\"",
                        -content_length => $attachment->datasize);
     disable_utf8();
     print $attachment->data;
diff --git a/buglist.cgi b/buglist.cgi
index 32fb1b3f0a2dcd896f83b174e7b0051868a08a17..de7e56bd7eddd14570711335257be2e093fc9941 100755
--- a/buglist.cgi
+++ b/buglist.cgi
@@ -47,6 +47,7 @@ use Bugzilla::Product;
 use Bugzilla::Keyword;
 use Bugzilla::Field;
 use Bugzilla::Status;
+use Bugzilla::Token;
 
 use Date::Parse;
 
@@ -289,7 +290,7 @@ sub LookupNamedQuery {
     $result
        || ThrowUserError("buglist_parameters_required", {'queryname' => $name});
 
-    return $result;
+    return wantarray ? ($result, $id) : $result;
 }
 
 # Inserts a Named Query (a "Saved Search") into the database, or
@@ -447,14 +448,16 @@ $filename =~ s/"/\\"/g; # escape quotes
 # Take appropriate action based on user's request.
 if ($cgi->param('cmdtype') eq "dorem") {  
     if ($cgi->param('remaction') eq "run") {
-        $buffer = LookupNamedQuery(scalar $cgi->param("namedcmd"),
-                                   scalar $cgi->param('sharer_id'));
+        my $query_id;
+        ($buffer, $query_id) = LookupNamedQuery(scalar $cgi->param("namedcmd"),
+                                                scalar $cgi->param('sharer_id'));
         # If this is the user's own query, remember information about it
         # so that it can be modified easily.
         $vars->{'searchname'} = $cgi->param('namedcmd');
         if (!$cgi->param('sharer_id') ||
             $cgi->param('sharer_id') == Bugzilla->user->id) {
             $vars->{'searchtype'} = "saved";
+            $vars->{'search_id'} = $query_id;
         }
         $params = new Bugzilla::CGI($buffer);
         $order = $params->param('order') || $order;
@@ -503,6 +506,10 @@ if ($cgi->param('cmdtype') eq "dorem") {
             # The user has no query of this name. Play along.
         }
         else {
+            # Make sure the user really wants to delete his saved search.
+            my $token = $cgi->param('token');
+            check_hash_token($token, [$query_id, $qname]);
+
             $dbh->do('DELETE FROM namedqueries
                             WHERE id = ?',
                      undef, $query_id);
@@ -556,9 +563,12 @@ elsif (($cgi->param('cmdtype') eq "doit") && defined $cgi->param('remtype')) {
             my %bug_ids;
             my $is_new_name = 0;
             if ($query_name) {
+                my ($query, $query_id) =
+                  LookupNamedQuery($query_name, undef, QUERY_LIST, !THROW_ERROR);
                 # Make sure this name is not already in use by a normal saved search.
-                if (LookupNamedQuery($query_name, undef, QUERY_LIST, !THROW_ERROR)) {
-                    ThrowUserError('query_name_exists', {'name' => $query_name});
+                if ($query) {
+                    ThrowUserError('query_name_exists', {name     => $query_name,
+                                                         query_id => $query_id});
                 }
                 $is_new_name = 1;
             }
@@ -652,63 +662,72 @@ if (!$params->param('query_format')) {
 # Note: For column names using aliasing (SQL "<field> AS <alias>"), the column
 #       ID needs to be identical to the field ID for list ordering to work.
 
-local our $columns = {};
-sub DefineColumn {
-    my ($id, $name, $title) = @_;
-    $columns->{$id} = { 'name' => $name , 'title' => $title };
-}
+my $columns = { relevance => {name => 'relevance', title => 'Relevance'},
+                short_short_desc => {name => 'bugs.short_desc', title => 'Summary'} };
 
-# Column:     ID                    Name                           Title
-DefineColumn("bug_id"            , "bugs.bug_id"                , "ID"               );
-DefineColumn("alias"             , "bugs.alias"                 , "Alias"            );
-DefineColumn("opendate"          , "bugs.creation_ts"           , "Opened"           );
-DefineColumn("changeddate"       , "bugs.delta_ts"              , "Changed"          );
-DefineColumn("bug_severity"      , "bugs.bug_severity"          , "Severity"         );
-DefineColumn("priority"          , "bugs.priority"              , "Priority"         );
-DefineColumn("rep_platform"      , "bugs.rep_platform"          , "Hardware"         );
-DefineColumn("assigned_to"       , "map_assigned_to.login_name" , "Assignee"         );
-DefineColumn("reporter"          , "map_reporter.login_name"    , "Reporter"         );
-DefineColumn("qa_contact"        , "map_qa_contact.login_name"  , "QA Contact"       );
-if ($format->{'extension'} eq 'html') {
-    DefineColumn("assigned_to_realname", "CASE WHEN map_assigned_to.realname = '' THEN map_assigned_to.login_name ELSE map_assigned_to.realname END AS assigned_to_realname", "Assignee"  );
-    DefineColumn("reporter_realname"   , "CASE WHEN map_reporter.realname    = '' THEN map_reporter.login_name    ELSE map_reporter.realname    END AS reporter_realname"   , "Reporter"  );
-    DefineColumn("qa_contact_realname" , "CASE WHEN map_qa_contact.realname  = '' THEN map_qa_contact.login_name  ELSE map_qa_contact.realname  END AS qa_contact_realname" , "QA Contact");
-} else {
-    DefineColumn("assigned_to_realname", "map_assigned_to.realname AS assigned_to_realname", "Assignee"  );
-    DefineColumn("reporter_realname"   , "map_reporter.realname AS reporter_realname"      , "Reporter"  );
-    DefineColumn("qa_contact_realname" , "map_qa_contact.realname AS qa_contact_realname"  , "QA Contact");
-}
-DefineColumn("bug_status"        , "bugs.bug_status"            , "Status"           );
-DefineColumn("resolution"        , "bugs.resolution"            , "Resolution"       );
-DefineColumn("short_short_desc"  , "bugs.short_desc"            , "Summary"          );
-DefineColumn("short_desc"        , "bugs.short_desc"            , "Summary"          );
-DefineColumn("status_whiteboard" , "bugs.status_whiteboard"     , "Whiteboard"       );
-DefineColumn("component"         , "map_components.name"        , "Component"        );
-DefineColumn("product"           , "map_products.name"          , "Product"          );
-DefineColumn("classification"    , "map_classifications.name"   , "Classification"   );
-DefineColumn("version"           , "bugs.version"               , "Version"          );
-DefineColumn("op_sys"            , "bugs.op_sys"                , "OS"               );
-DefineColumn("target_milestone"  , "bugs.target_milestone"      , "Target Milestone" );
-DefineColumn("votes"             , "bugs.votes"                 , "Votes"            );
-DefineColumn("keywords"          , "bugs.keywords"              , "Keywords"         );
-DefineColumn("estimated_time"    , "bugs.estimated_time"        , "Estimated Hours"  );
-DefineColumn("remaining_time"    , "bugs.remaining_time"        , "Remaining Hours"  );
-DefineColumn("actual_time"       , "(SUM(ldtime.work_time)*COUNT(DISTINCT ldtime.bug_when)/COUNT(bugs.bug_id)) AS actual_time", "Actual Hours");
-DefineColumn("percentage_complete",
+foreach my $field (Bugzilla->get_fields({ obsolete => 0, buglist => 1 })) {
+    # Rename some field names for backward compatibility
+    my $id = $field->name;
+    if ($id eq 'creation_ts') {
+        $id = 'opendate';
+    }
+    elsif ($id eq 'delta_ts') {
+        $id = 'changeddate';
+    }
+    elsif ($id eq 'work_time') {
+        $id = 'actual_time';
+    }
+
+    # Database column names and expressions
+    # XXX Move these to fielddefs/Field.pm or Search.pm?
+    my $name = 'bugs.' . $field->name;
+    if ($id eq 'assigned_to' || $id eq 'reporter' || $id eq 'qa_contact') {
+        $name = 'map_' . $field->name . '.login_name';
+        if (!Bugzilla->user->id) {
+            $name = $dbh->sql_string_until($name, $dbh->quote('@'));
+        }
+    }
+    elsif ($id eq 'product' || $id eq 'component' || $id eq 'classification') {
+        $name = 'map_' . $field->name . 's.name';
+    }
+    elsif ($id eq 'deadline') {
+        $name = $dbh->sql_date_format('bugs.deadline', '%Y-%m-%d') . " AS deadline";
+    }
+    elsif ($id eq 'actual_time') {
+        $name = '(SUM(ldtime.work_time)*COUNT(DISTINCT ldtime.bug_when)/COUNT(bugs.bug_id)) AS actual_time';
+    }
+    elsif ($id eq 'percentage_complete') {
+        $name = 
     "(CASE WHEN (SUM(ldtime.work_time)*COUNT(DISTINCT ldtime.bug_when)/COUNT(bugs.bug_id)) " .
     "            + bugs.remaining_time = 0.0 " .
     "THEN 0.0 " .
     "ELSE 100*((SUM(ldtime.work_time)*COUNT(DISTINCT ldtime.bug_when)/COUNT(bugs.bug_id)) " .
     "     /((SUM(ldtime.work_time)*COUNT(DISTINCT ldtime.bug_when)/COUNT(bugs.bug_id)) + bugs.remaining_time)) " .
-    "END) AS percentage_complete"                               , "% Complete"); 
-DefineColumn("relevance"         , "relevance"                  , "Relevance"        );
-DefineColumn("deadline"          , $dbh->sql_date_format('bugs.deadline', '%Y-%m-%d') . " AS deadline", "Deadline");
-
-foreach my $field (Bugzilla->active_custom_fields) {
-    # Multi-select fields are not (yet) supported in buglists.
-    next if $field->type == FIELD_TYPE_MULTI_SELECT;
-    DefineColumn($field->name, 'bugs.' . $field->name, $field->description);
+    "END) AS percentage_complete"
+    }
+
+    $columns->{$id} = { 'name' => $name, 'title' => $field->description };
+}
+
+foreach my $col (qw(assigned_to reporter qa_contact)) {
+    my $colname = "${col}_realname";
+    if ($format->{'extension'} eq 'html') {
+        my $login = "map_${col}.login_name";
+        if (!Bugzilla->user->id) {
+            $login = $dbh->sql_string_until($login, $dbh->quote('@'));
+        }
+        $columns->{$colname}->{name} =
+            "CASE WHEN map_${col}.realname = '' 
+                  THEN $login ELSE map_${col}.realname 
+                   END AS $colname";
+    }
+    else {
+        $columns->{$colname}->{name} = "map_${col}.realname AS $colname";
+    }
 }
+$columns->{assigned_to_realname}->{title} = "Assignee";
+$columns->{reporter_realname}->{title} = "Reporter";
+$columns->{qa_contact_realname}->{title} = "QA Contact";
 
 Bugzilla::Hook::process("buglist-columns", {'columns' => $columns} );
 
@@ -1232,6 +1251,7 @@ if ($dotweak && scalar @bugs) {
     }
     $vars->{'dotweak'} = 1;
     $vars->{'use_keywords'} = 1 if Bugzilla::Keyword::keyword_count();
+    $vars->{'token'} = issue_session_token('buglist_mass_change');
 
     $vars->{'products'} = Bugzilla->user->get_enterable_products;
     $vars->{'platforms'} = get_legal_field_values('rep_platform');
diff --git a/chart.cgi b/chart.cgi
index 25d5b446decb5cae211f8a92bf8be2f520cf5283..ab145c42a941ec80ef0a4965975a51562fdce69d 100755
--- a/chart.cgi
+++ b/chart.cgi
@@ -282,6 +282,8 @@ sub plot {
     }
 
     print $cgi->header($format->{'ctype'});
+    disable_utf8() if ($format->{'ctype'} =~ /^image\//);
+
     $template->process($format->{'template'}, $vars)
       || ThrowTemplateError($template->error());
 }
diff --git a/config.cgi b/config.cgi
index c229dacd693e44815d44fb2bd4177ae0da3add00..282b959571a32f36caa34fe96d9643ca61721df2 100755
--- a/config.cgi
+++ b/config.cgi
@@ -46,6 +46,9 @@ if (Bugzilla->params->{'requirelogin'} && !$user->id) {
     display_data();
 }
 
+# Get data from the shadow DB as they don't change very often.
+Bugzilla->switch_to_shadow_db;
+
 # Pass a bunch of Bugzilla configuration to the templates.
 my $vars = {};
 $vars->{'priority'}  = get_legal_field_values('priority');
diff --git a/contrib/CVS/Entries b/contrib/CVS/Entries
index 655102709f350b317f79f8a2f2501059447772da..5207e6845f0b0d22481e92b66eac604f99940e83 100644
--- a/contrib/CVS/Entries
+++ b/contrib/CVS/Entries
@@ -1,17 +1,17 @@
-/README/1.12/Tue Oct 16 10:13:54 2007//TBUGZILLA-3_3_1
-/bugzilla_ldapsync.rb/1.2/Sat Apr 26 16:35:04 2003//TBUGZILLA-3_3_1
-/bz_webservice_demo.pl/1.14/Mon May 19 18:38:26 2008//TBUGZILLA-3_3_1
-/bzdbcopy.pl/1.8/Tue Dec 16 21:16:33 2008//TBUGZILLA-3_3_1
-/cvs-update.pl/1.1/Tue Nov 11 05:58:52 2003//TBUGZILLA-3_3_1
-/gnats2bz.pl/1.8/Sun Sep  3 20:37:01 2006//TBUGZILLA-3_3_1
-/jb2bz.py/1.5/Fri Aug 26 23:11:32 2005//TBUGZILLA-3_3_1
-/merge-users.pl/1.8/Tue Mar 11 15:50:04 2008//TBUGZILLA-3_3_1
-/mysqld-watcher.pl/1.5/Thu Mar 27 00:06:53 2003//TBUGZILLA-3_3_1
-/recode.pl/1.5/Fri Oct 19 06:46:17 2007//TBUGZILLA-3_3_1
-/sendbugmail.pl/1.8/Fri Oct 19 06:46:17 2007//TBUGZILLA-3_3_1
-/sendunsentbugmail.pl/1.10/Fri Oct 19 06:46:17 2007//TBUGZILLA-3_3_1
-/syncLDAP.pl/1.14/Mon Jul  7 09:01:51 2008//TBUGZILLA-3_3_1
-/yp_nomail.sh/1.1/Tue Sep 12 23:50:31 2000//TBUGZILLA-3_3_1
+/README/1.12/Tue Oct 16 10:13:54 2007//TBUGZILLA-3_3_2
+/bugzilla_ldapsync.rb/1.2/Sat Apr 26 16:35:04 2003//TBUGZILLA-3_3_2
+/bz_webservice_demo.pl/1.14/Mon May 19 18:38:26 2008//TBUGZILLA-3_3_2
+/bzdbcopy.pl/1.8/Tue Dec 16 21:16:33 2008//TBUGZILLA-3_3_2
+/cvs-update.pl/1.1/Tue Nov 11 05:58:52 2003//TBUGZILLA-3_3_2
+/gnats2bz.pl/1.8/Sun Sep  3 20:37:01 2006//TBUGZILLA-3_3_2
+/jb2bz.py/1.5/Fri Aug 26 23:11:32 2005//TBUGZILLA-3_3_2
+/merge-users.pl/1.8/Tue Mar 11 15:50:04 2008//TBUGZILLA-3_3_2
+/mysqld-watcher.pl/1.5/Thu Mar 27 00:06:53 2003//TBUGZILLA-3_3_2
+/recode.pl/1.5/Fri Oct 19 06:46:17 2007//TBUGZILLA-3_3_2
+/sendbugmail.pl/1.8/Fri Oct 19 06:46:17 2007//TBUGZILLA-3_3_2
+/sendunsentbugmail.pl/1.10/Fri Oct 19 06:46:17 2007//TBUGZILLA-3_3_2
+/syncLDAP.pl/1.14/Mon Jul  7 09:01:51 2008//TBUGZILLA-3_3_2
+/yp_nomail.sh/1.1/Tue Sep 12 23:50:31 2000//TBUGZILLA-3_3_2
 D/bugzilla-submit////
 D/cmdline////
 D/gnatsparse////
diff --git a/contrib/CVS/Tag b/contrib/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/contrib/CVS/Tag
+++ b/contrib/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/contrib/bugzilla-submit/CVS/Entries b/contrib/bugzilla-submit/CVS/Entries
index 9ac204840b0e0c70b4f31ddb99e36f9459ae3f7f..abdf783d82cd2c95ff63cbb396457bf49ad2b366 100644
--- a/contrib/bugzilla-submit/CVS/Entries
+++ b/contrib/bugzilla-submit/CVS/Entries
@@ -1,5 +1,5 @@
-/README/1.2/Wed Dec 10 23:36:21 2003//TBUGZILLA-3_3_1
-/bugdata.txt/1.2/Fri Jan 16 22:26:49 2004//TBUGZILLA-3_3_1
-/bugzilla-submit/1.6/Fri Jul 16 03:56:35 2004//TBUGZILLA-3_3_1
-/bugzilla-submit.xml/1.7/Mon Apr 11 14:23:32 2005//TBUGZILLA-3_3_1
+/README/1.2/Wed Dec 10 23:36:21 2003//TBUGZILLA-3_3_2
+/bugdata.txt/1.2/Fri Jan 16 22:26:49 2004//TBUGZILLA-3_3_2
+/bugzilla-submit/1.6/Fri Jul 16 03:56:35 2004//TBUGZILLA-3_3_2
+/bugzilla-submit.xml/1.7/Mon Apr 11 14:23:32 2005//TBUGZILLA-3_3_2
 D
diff --git a/contrib/bugzilla-submit/CVS/Tag b/contrib/bugzilla-submit/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/contrib/bugzilla-submit/CVS/Tag
+++ b/contrib/bugzilla-submit/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/contrib/cmdline/CVS/Entries b/contrib/cmdline/CVS/Entries
index 54faf70c21eaf42a4df58bfa74527e395838af5d..1bad907f830823ae9d21b92e14ce878829b734b3 100644
--- a/contrib/cmdline/CVS/Entries
+++ b/contrib/cmdline/CVS/Entries
@@ -1,8 +1,8 @@
-/bugcount/1.1/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_1
-/bugids/1.1/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_1
-/buglist/1.2/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_1
-/bugs/1.2/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_1
-/bugslink/1.1/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_1
-/makequery/1.1/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_1
-/query.conf/1.3/Fri Aug 26 23:11:32 2005//TBUGZILLA-3_3_1
+/bugcount/1.1/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_2
+/bugids/1.1/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_2
+/buglist/1.2/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_2
+/bugs/1.2/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_2
+/bugslink/1.1/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_2
+/makequery/1.1/Thu Jan 27 19:42:34 2005//TBUGZILLA-3_3_2
+/query.conf/1.3/Fri Aug 26 23:11:32 2005//TBUGZILLA-3_3_2
 D
diff --git a/contrib/cmdline/CVS/Tag b/contrib/cmdline/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/contrib/cmdline/CVS/Tag
+++ b/contrib/cmdline/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/contrib/gnatsparse/CVS/Entries b/contrib/gnatsparse/CVS/Entries
index d14fc4fa9d70ee36712e1a23e20fcbcbfb265edb..aa1f4dba66e3e3c72f9ad0a0fb05f50fa4fd0225 100644
--- a/contrib/gnatsparse/CVS/Entries
+++ b/contrib/gnatsparse/CVS/Entries
@@ -1,5 +1,5 @@
-/README/1.2/Tue Mar 23 17:59:11 2004//TBUGZILLA-3_3_1
-/gnatsparse.py/1.4/Mon Jun 19 15:58:33 2006//TBUGZILLA-3_3_1
-/magic.py/1.1/Sun Mar 21 21:32:16 2004//TBUGZILLA-3_3_1
-/specialuu.py/1.1/Sun Mar 21 21:32:16 2004//TBUGZILLA-3_3_1
+/README/1.2/Tue Mar 23 17:59:11 2004//TBUGZILLA-3_3_2
+/gnatsparse.py/1.4/Mon Jun 19 15:58:33 2006//TBUGZILLA-3_3_2
+/magic.py/1.1/Sun Mar 21 21:32:16 2004//TBUGZILLA-3_3_2
+/specialuu.py/1.1/Sun Mar 21 21:32:16 2004//TBUGZILLA-3_3_2
 D
diff --git a/contrib/gnatsparse/CVS/Tag b/contrib/gnatsparse/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/contrib/gnatsparse/CVS/Tag
+++ b/contrib/gnatsparse/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/describecomponents.cgi b/describecomponents.cgi
index 806183783667bd8b4665cf835645065a7f346702..6d4722ad820acae38a4252ec6873af16e3f04215 100755
--- a/describecomponents.cgi
+++ b/describecomponents.cgi
@@ -32,14 +32,15 @@ use Bugzilla::Error;
 use Bugzilla::Product;
 
 my $user = Bugzilla->login();
-
 my $cgi = Bugzilla->cgi;
-my $dbh = Bugzilla->dbh;
 my $template = Bugzilla->template;
 my $vars = {};
 
 print $cgi->header();
 
+# This script does nothing but displaying mostly static data.
+Bugzilla->switch_to_shadow_db;
+
 my $product_name = trim($cgi->param('product') || '');
 my $product = new Bugzilla::Product({'name' => $product_name});
 
diff --git a/describekeywords.cgi b/describekeywords.cgi
index 5ff5c5089631e98a05423ebed55700f790e1f10a..9796b77d502b9d7460133fe4bcd66902aac172ae 100755
--- a/describekeywords.cgi
+++ b/describekeywords.cgi
@@ -35,6 +35,9 @@ my $cgi = Bugzilla->cgi;
 my $template = Bugzilla->template;
 my $vars = {};
 
+# Run queries against the shadow DB.
+Bugzilla->switch_to_shadow_db;
+
 $vars->{'keywords'} = Bugzilla::Keyword->get_all_with_bug_count();
 $vars->{'caneditkeywords'} = Bugzilla->user->in_group("editkeywords");
 
diff --git a/docs/CVS/Entries b/docs/CVS/Entries
index ab464955c21d15f929fbe12ba3b9c3ea2ce90c1c..738e20b2efdd9d54f31283113efa0ff1cb637db3 100644
--- a/docs/CVS/Entries
+++ b/docs/CVS/Entries
@@ -1,4 +1,4 @@
-/makedocs.pl/1.20/Sat Apr 12 22:24:17 2008//TBUGZILLA-3_3_1
-/style.css/1.1/Fri Apr  4 06:48:15 2008//TBUGZILLA-3_3_1
+/makedocs.pl/1.20/Sat Apr 12 22:24:17 2008//TBUGZILLA-3_3_2
+/style.css/1.1/Fri Apr  4 06:48:15 2008//TBUGZILLA-3_3_2
 D/en////
 D/lib////
diff --git a/docs/CVS/Tag b/docs/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/docs/CVS/Tag
+++ b/docs/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/docs/bugzilla.ent b/docs/bugzilla.ent
index e78530c3388a1f398733382e1cdc5b0fa1d9a526..fe13bf468dfe4df20e0ce0e29fae7af25191fa59 100644
--- a/docs/bugzilla.ent
+++ b/docs/bugzilla.ent
@@ -5,12 +5,14 @@
 <!ENTITY min-digest-sha-ver "any">
 <!ENTITY min-date-format-ver "2.21">
 <!ENTITY min-datetime-ver "0.28">
+<!ENTITY min-datetime-timezone-ver "0.71">
 <!ENTITY min-file-spec-ver "0.84">
 <!ENTITY min-dbi-ver "1.41">
 <!ENTITY min-template-ver "2.15">
 <!ENTITY min-email-send-ver "2.00">
 <!ENTITY min-email-mime-ver "1.861">
 <!ENTITY min-email-mime-modifier-ver "1.442">
+<!ENTITY min-uri-ver "any">
 <!ENTITY min-gd-ver "1.20">
 <!ENTITY min-chart-base-ver "1.0">
 <!ENTITY min-template-plugin-gd-image-ver "any">
diff --git a/docs/en/CVS/Entries b/docs/en/CVS/Entries
index e44d0fe752bb1158463d5b6124187b3d86c3e046..07d7696408f5755ca631a965593e8e47068f6090 100644
--- a/docs/en/CVS/Entries
+++ b/docs/en/CVS/Entries
@@ -1,5 +1,5 @@
-/.cvsignore/1.4/Fri Apr  4 11:29:21 2008//TBUGZILLA-3_3_1
-/README.docs/1.12/Fri Apr  4 06:48:15 2008//TBUGZILLA-3_3_1
-/rel_notes.txt/1.48/Fri Apr  4 06:48:16 2008//TBUGZILLA-3_3_1
+/.cvsignore/1.4/Fri Apr  4 11:29:21 2008//TBUGZILLA-3_3_2
+/README.docs/1.12/Fri Apr  4 06:48:15 2008//TBUGZILLA-3_3_2
+/rel_notes.txt/1.48/Fri Apr  4 06:48:16 2008//TBUGZILLA-3_3_2
 D/images////
 D/xml////
diff --git a/docs/en/CVS/Tag b/docs/en/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/docs/en/CVS/Tag
+++ b/docs/en/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/docs/en/html/Bugzilla-Guide.html b/docs/en/html/Bugzilla-Guide.html
index 4ddb958ba9887de2ee9527c46ee3a4c1f2a8188b..89349fbd20589994c400eb4cd568efe48de090b8 100644
--- a/docs/en/html/Bugzilla-Guide.html
+++ b/docs/en/html/Bugzilla-Guide.html
@@ -2,7 +2,7 @@
 <HTML
 ><HEAD
 ><TITLE
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TITLE
 ><META
@@ -44,7 +44,7 @@ CLASS="TITLEPAGE"
 CLASS="title"
 ><A
 NAME="AEN2"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</A
 ></H1
@@ -53,7 +53,7 @@ CLASS="corpauthor"
 >The Bugzilla Team</H3
 ><P
 CLASS="pubdate"
->2009-01-05<BR></P
+>2009-02-02<BR></P
 ><DIV
 ><DIV
 CLASS="abstract"
@@ -716,7 +716,7 @@ NAME="newversions"
 >1.3. New Versions</A
 ></H2
 ><P
->&#13;      This is the 3.3.1 version of The Bugzilla Guide. It is so named 
+>&#13;      This is the 3.3.2 version of The Bugzilla Guide. It is so named 
       to match the current version of Bugzilla. 
        This version of the guide, like its associated Bugzilla version, is a
       development version. 
@@ -4569,7 +4569,7 @@ NAME="os-win32"
         Bugzilla running on Windows, you will need to make the following
         adjustments. A detailed step-by-step
         <A
-HREF="http://www.bugzilla.org/docs/win32install.html"
+HREF="https://wiki.mozilla.org/Bugzilla:Win32Install"
 TARGET="_top"
 >&#13;        installation guide for Windows</A
 > is also available
diff --git a/docs/en/html/about.html b/docs/en/html/about.html
index aaf2bb867852d7042fc1a9dafbe95d802c5cb174..f9f667593f766f4ba16a00bf17d122ad9f99a8d8 100644
--- a/docs/en/html/about.html
+++ b/docs/en/html/about.html
@@ -7,12 +7,12 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
 REL="PREVIOUS"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -38,7 +38,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
@@ -157,7 +157,7 @@ ACCESSKEY="N"
 WIDTH="33%"
 ALIGN="left"
 VALIGN="top"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TD
 ><TD
diff --git a/docs/en/html/administration.html b/docs/en/html/administration.html
index 856b1fc21d0686fb0c63ca28c78e5588be1f2f85..40232e5238c97f03f8df2482b02cafe109456bc7 100644
--- a/docs/en/html/administration.html
+++ b/docs/en/html/administration.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -36,7 +36,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/api/Bugzilla/CGI.html b/docs/en/html/api/Bugzilla/CGI.html
index a4185a3974ae270752f1d35ba8915d23b0185238..6a0faf28beae16124d7801f4d1056160e7343430 100644
--- a/docs/en/html/api/Bugzilla/CGI.html
+++ b/docs/en/html/api/Bugzilla/CGI.html
@@ -95,6 +95,12 @@ name="ADDITIONAL_FUNCTIONS"
 <p>This routine redirects the client to a different location using the https protocol. If the client is using XMLRPC, it will not retain the QUERY_STRING since XMLRPC uses POST.</p>
 
 <p>It takes an optional argument which will be used as the base URL. If $baseurl is not provided, the current URL is used.</p>
+
+<dt><a name="redirect_to_urlbase"
+><code  class="code">redirect_to_urlbase</code></a></dt>
+
+<dd>
+<p>Redirects from the current URL to one prefixed by the urlbase parameter.</p>
 </dd>
 </dl>
 
diff --git a/docs/en/html/api/Bugzilla/DB.html b/docs/en/html/api/Bugzilla/DB.html
index 7186468b7ef98d0571183b096ce7c982c4cfd30e..2ec0efa39e05e8eb83cc1982b3eb8993a9915735 100644
--- a/docs/en/html/api/Bugzilla/DB.html
+++ b/docs/en/html/api/Bugzilla/DB.html
@@ -653,6 +653,29 @@ name="SQL_Generation"
 </dd>
 </dl>
 
+<dt><a name="sql_string_until"
+><code  class="code">sql_string_until</code></a></dt>
+
+<dd>
+<dl>
+<dt><a name="Description"
+><b>Description</b></a></dt>
+
+<dd>
+<p>Returns SQL for truncating a string at the first occurrence of a certain substring.</p>
+
+<dt><a name="Params"
+><b>Params</b></a></dt>
+
+<dd>
+<p>Note that both parameters need to be sql-quoted.</p>
+
+<dt><a name="$string_The_string_we&#39;re_truncating"
+><code  class="code">$string</code> The string we&#39;re truncating
+<dt><a name="$substring_The_substring_we&#39;re_truncating_at."
+><code  class="code">$substring</code> The substring we&#39;re truncating at.</a></dt>
+</dl>
+
 <dt><a name="sql_fulltext_search"
 ><code  class="code">sql_fulltext_search</code></a></dt>
 
diff --git a/docs/en/html/api/Bugzilla/Field.html b/docs/en/html/api/Bugzilla/Field.html
index 1467cf8504ee313398d0f17c4bf3d8f9d151d1c3..1dc96e10feb18f3a258f130eec744e083b9108af 100644
--- a/docs/en/html/api/Bugzilla/Field.html
+++ b/docs/en/html/api/Bugzilla/Field.html
@@ -150,6 +150,15 @@ name="Instance_Properties"
 </dd>
 </dl>
 
+<dl>
+<dt><a name="buglist"
+><code  class="code">buglist</code></a></dt>
+
+<dd>
+<p>A boolean specifying whether or not this field is selectable as a display or order column in buglist.cgi</p>
+</dd>
+</dl>
+
 <dl>
 <dt><a name="is_select"
 ><code  class="code">is_select</code></a></dt>
@@ -239,6 +248,8 @@ name="Instance_Mutators"
 ><code  class="code">set_sortkey</code>
 <dt><a name="set_in_new_bugmail"
 ><code  class="code">set_in_new_bugmail</code>
+<dt><a name="set_buglist"
+><code  class="code">set_buglist</code>
 <dt><a name="set_visibility_field"
 ><code  class="code">set_visibility_field</code>
 <dt><a name="set_visibility_value"
@@ -284,7 +295,9 @@ name="Class_Methods"
 <dt><a name="sortkey_-_integer_-_The_sortkey_of_the_field._Defaults_to_0."
 ><code  class="code">sortkey</code> - integer - The sortkey of the field. Defaults to 0.
 <dt><a name="enter_bug_-_boolean_-_Whether_this_field_is_editable_on_the_bug_creation_form._Defaults_to_0."
-><code  class="code">enter_bug</code> - boolean - Whether this field is editable on the bug creation form. Defaults to 0.</a></dt>
+><code  class="code">enter_bug</code> - boolean - Whether this field is editable on the bug creation form. Defaults to 0.
+<dt><a name="buglist_-_boolean_-_Whether_this_field_is_selectable_as_a_display_or_order_column_in_bug_lists._Defaults_to_0."
+><code  class="code">buglist</code> - boolean - Whether this field is selectable as a display or order column in bug lists. Defaults to 0.</a></dt>
 
 <dd>
 <p><code  class="code">obsolete</code> - boolean - Whether this field is obsolete. Defaults to 0.</p>
diff --git a/docs/en/html/api/Bugzilla/Group.html b/docs/en/html/api/Bugzilla/Group.html
index 83a9251355527e96e5f2d17cc664858aa503c6aa..2e917328e3729095e7b6a322553660b6276312e8 100644
--- a/docs/en/html/api/Bugzilla/Group.html
+++ b/docs/en/html/api/Bugzilla/Group.html
@@ -93,6 +93,12 @@ name="METHODS"
 <dd>
 <p>Returns an arrayref of <a href="../Bugzilla/User.html" class="podlinkpod"
 >Bugzilla::User</a> objects representing people who are &#34;directly&#34; in this group, meaning that they&#39;re in it because they match the group regular expression, or they have been actually added to the group manually.</p>
+
+<dt><a name="flatten_group_membership"
+><code  class="code">flatten_group_membership</code></a></dt>
+
+<dd>
+<p>Accepts a list of groups and returns a list of all the groups whose members inherit membership in any group on the list. So, we can determine if a user is in any of the groups input to flatten_group_membership by querying the user_group_map for any user with DIRECT or REGEXP membership IN() the list of groups returned.</p>
 </dd>
 </dl>
 <p class="backlinkbottom"><b><a name="___bottom" href="../index.html" title="All Documents">&lt;&lt;</a></b></p>
diff --git a/docs/en/html/api/Bugzilla/Object.html b/docs/en/html/api/Bugzilla/Object.html
index 0151a78f482a37c78aee14a4a3e91b3318e4e180..bf4cf1b070d474817364cee90e7e4b38f739b074 100644
--- a/docs/en/html/api/Bugzilla/Object.html
+++ b/docs/en/html/api/Bugzilla/Object.html
@@ -279,6 +279,16 @@ name="Constructors"
 
 <p>There are two special values, the constants <code  class="code">NULL</code> and <code  class="code">NOT_NULL</code>, which means &#34;give me objects where this field is NULL or NOT NULL, respectively.&#34;</p>
 
+<p>In addition to the column keys, there are a few special keys that can be used to rig the underlying database queries. These are <code  class="code">LIMIT</code>, <code  class="code">OFFSET</code>, and <code  class="code">WHERE</code>.</p>
+
+<p>The value for the <code  class="code">LIMIT</code> key is expected to be an integer defining the number of objects to return, while the value for <code  class="code">OFFSET</code> defines the position, relative to the number of objects the query would normally return, at which to begin the result set. If <code  class="code">OFFSET</code> is defined without a corresponding <code  class="code">LIMIT</code> it is silently ignored.</p>
+
+<p>The <code  class="code">WHERE</code> key provides a mechanism for adding arbitrary WHERE clauses to the underlying query. Its value is expected to a hash reference whose keys are the columns, operators and placeholders, and the values are the placeholders&#39; bind value. For example:</p>
+
+<pre  class="code"> WHERE =&#62; { &#39;some_column &#62;= ?&#39; =&#62; $some_value }</pre>
+
+<p>would constrain the query to only those objects in the table whose &#39;some_column&#39; column has a value greater than or equal to $some_value.</p>
+
 <p>If you don&#39;t specify any criteria, calling this function is the same as doing <code  class="code">[$class-&#62;get_all]</code>.</p>
 
 <dt><a name="Returns"
diff --git a/docs/en/html/api/Bugzilla/User.html b/docs/en/html/api/Bugzilla/User.html
index 69f193e500b3c577a19b34e15afc2f3fea5902c1..047c04eecfe1907940b9059676df242f9fc41eb0 100644
--- a/docs/en/html/api/Bugzilla/User.html
+++ b/docs/en/html/api/Bugzilla/User.html
@@ -382,12 +382,6 @@ name="Other_Methods"
 <dd>
 <p>Returns a reference to an array of users. The array is populated with hashrefs containing the login, identity and visibility. Users that are not visible to this user will have &#39;visible&#39; set to zero.</p>
 
-<dt><a name="flatten_group_membership"
-><code  class="code">flatten_group_membership</code></a></dt>
-
-<dd>
-<p>Accepts a list of groups and returns a list of all the groups whose members inherit membership in any group on the list. So, we can determine if a user is in any of the groups input to flatten_group_membership by querying the user_group_map for any user with DIRECT or REGEXP membership IN() the list of groups returned.</p>
-
 <dt><a name="direct_group_membership"
 ><code  class="code">direct_group_membership</code></a></dt>
 
diff --git a/docs/en/html/api/Bugzilla/Util.html b/docs/en/html/api/Bugzilla/Util.html
index 8170630013585c666465812b5399ba8d12d7736c..7ad6972a848c03c70010c5678d2b33d71f067524 100644
--- a/docs/en/html/api/Bugzilla/Util.html
+++ b/docs/en/html/api/Bugzilla/Util.html
@@ -44,7 +44,6 @@ name="SYNOPSIS"
 <pre  class="code">  use Bugzilla::Util;
 
   # Functions for dealing with variable tainting
-  $rv = is_tainted($var);
   trick_taint($var);
   detaint_natural($var);
   detaint_signed($var);
@@ -53,6 +52,7 @@ name="SYNOPSIS"
   html_quote($var);
   url_quote($var);
   xml_quote($var);
+  email_filter($var);
 
   # Functions for decoding
   $rv = url_decode($var);
@@ -108,12 +108,6 @@ name="Tainting"
 <p>Several functions are available to deal with tainted variables. <b>Use these with care</b> to avoid security holes.</p>
 
 <dl>
-<dt><a name="is_tainted"
-><code  class="code">is_tainted</code></a></dt>
-
-<dd>
-<p>Determines whether a particular variable is tainted</p>
-
 <dt><a name="trick_taint($val)"
 ><code  class="code">trick_taint($val)</code></a></dt>
 
@@ -180,6 +174,12 @@ name="Quoting"
 
 <dd>
 <p>Converts the %xx encoding from the given URL back to its original form.</p>
+
+<dt><a name="email_filter"
+><code  class="code">email_filter</code></a></dt>
+
+<dd>
+<p>Removes the hostname from email addresses in the string, if the user currently viewing Bugzilla is logged out. If the user is logged-in, this filter just returns the input string.</p>
 </dd>
 </dl>
 
@@ -207,6 +207,12 @@ name="Environment_and_Location"
 
 <dd>
 <p>Returns either the <code  class="code">sslbase</code> or <code  class="code">urlbase</code> parameter, depending on the current setting for the <code  class="code">ssl</code> parameter.</p>
+
+<dt><a name="use_attachbase()"
+><code  class="code">use_attachbase()</code></a></dt>
+
+<dd>
+<p>Returns true if an alternate host is used to display attachments; false otherwise.</p>
 </dd>
 </dl>
 
diff --git a/docs/en/html/api/Bugzilla/WebService.html b/docs/en/html/api/Bugzilla/WebService.html
index 1ec8a824c6a3cb68329746ced5c458a9e857b40c..4e6bdff21dfc33d2de720b9d08189a562c4fff15 100644
--- a/docs/en/html/api/Bugzilla/WebService.html
+++ b/docs/en/html/api/Bugzilla/WebService.html
@@ -28,6 +28,14 @@ Bugzilla::WebService</title>
     <li class='indexItem indexItem2'><a href='#Transient_vs._Fatal_Errors'>Transient vs. Fatal Errors</a>
     <li class='indexItem indexItem2'><a href='#Unknown_Errors'>Unknown Errors</a>
   </ul>
+  <li class='indexItem indexItem1'><a href='#COMMON_PARAMETERS'>COMMON PARAMETERS</a>
+  <ul   class='indexList indexList2'>
+    <li class='indexItem indexItem2'><a href='#Limiting_What_Fields_Are_Returned'>Limiting What Fields Are Returned</a>
+  </ul>
+  <li class='indexItem indexItem1'><a href='#EXTENSIONS_TO_THE_XML-RPC_STANDARD'>EXTENSIONS TO THE XML-RPC STANDARD</a>
+  <ul   class='indexList indexList2'>
+    <li class='indexItem indexItem2'><a href='#Undefined_Values'>Undefined Values</a>
+  </ul>
 </ul>
 </div>
 
@@ -178,6 +186,74 @@ name="Unknown_Errors"
 >Unknown Errors</a></h2>
 
 <p>Sometimes a function will throw an error that doesn&#39;t have a specific error code. In this case, the code will be <code  class="code">-32000</code> if it&#39;s a &#34;fatal&#34; error, and <code  class="code">32000</code> if it&#39;s a &#34;transient&#34; error.</p>
+
+<h1><a class='u' href='#___top' title='click to go to top of document'
+name="COMMON_PARAMETERS"
+>COMMON PARAMETERS</a></h1>
+
+<p>Many Webservice methods take similar arguments. Instead of re-writing the documentation for each method, we document the parameters here, once, and then refer back to this documentation from the individual methods where these parameters are used.</p>
+
+<h2><a class='u' href='#___top' title='click to go to top of document'
+name="Limiting_What_Fields_Are_Returned"
+>Limiting What Fields Are Returned</a></h2>
+
+<p>Many WebService methods return an array of structs with various fields in the structs. (For example, <a href="../Bugzilla/WebService/Bug.html#get" class="podlinkpod"
+>&#34;get&#34; in Bugzilla::WebService::Bug</a> returns a list of <code  class="code">bugs</code> that have fields like <code  class="code">id</code>, <code  class="code">summary</code>, <code  class="code">creation_time</code>, etc.)</p>
+
+<p>These parameters allow you to limit what fields are present in the structs, to possibly improve performance or save some bandwidth.</p>
+
+<dl>
+<dt><a name="include_fields_(array)"
+><code  class="code">include_fields</code> (array)</a></dt>
+
+<dd>
+<p>An array of strings, representing the (case-sensitive) names of fields. Only the fields specified in this hash will be returned, the rest will not be included.</p>
+
+<p>If you specify an empty array, then this function will return empty hashes.</p>
+
+<p>Invalid field names are ignored.</p>
+
+<p>Example:</p>
+
+<pre  class="code">  User.get( ids =&#62; [1], include_fields =&#62; [&#39;id&#39;, &#39;name&#39;] )</pre>
+
+<p>would return something like:</p>
+
+<pre  class="code">  { users =&#62; [{ id =&#62; 1, name =&#62; &#39;user@domain.com&#39; }] }</pre>
+
+<dt><a name="exclude_fields_(array)"
+><code  class="code">exclude_fields</code> (array)</a></dt>
+
+<dd>
+<p>An array of strings, representing the (case-sensitive) names of fields. The fields specified will not be included in the returned hashes.</p>
+
+<p>If you specify all the fields, then this function will return empty hashes.</p>
+
+<p>Invalid field names are ignored.</p>
+
+<p>Specifying fields here overrides <code  class="code">include_fields</code>, so if you specify a field in both, it will be excluded, not included.</p>
+
+<p>Example:</p>
+
+<pre  class="code">  User.get( ids =&#62; [1], exclude_fields =&#62; [&#39;name&#39;] )</pre>
+
+<p>would return something like:</p>
+
+<pre  class="code">  { users =&#62; [{ id =&#62; 1, real_name =&#62; &#39;John Smith&#39; }] }</pre>
+</dd>
+</dl>
+
+<h1><a class='u' href='#___top' title='click to go to top of document'
+name="EXTENSIONS_TO_THE_XML-RPC_STANDARD"
+>EXTENSIONS TO THE XML-RPC STANDARD</a></h1>
+
+<h2><a class='u' href='#___top' title='click to go to top of document'
+name="Undefined_Values"
+>Undefined Values</a></h2>
+
+<p>Normally, XML-RPC does not allow empty values for <code  class="code">int</code>, <code  class="code">double</code>, or <code  class="code">dateTime.iso8601</code> fields. Bugzilla does--it treats empty values as <code  class="code">undef</code> (called <code  class="code">NULL</code> or <code  class="code">None</code> in some programming languages).</p>
+
+<p>Bugzilla also accepts a type called <code  class="code">&#60;nil&#62;</code>, which is always considered to be <code  class="code">undef</code>, no matter what it contains.</p>
 <p class="backlinkbottom"><b><a name="___bottom" href="../index.html" title="All Documents">&lt;&lt;</a></b></p>
 
 <!-- end doc -->
diff --git a/docs/en/html/api/Bugzilla/WebService/Bug.html b/docs/en/html/api/Bugzilla/WebService/Bug.html
index ac5d3fa73ba511eb4dba26202182e10531ccf2aa..2a35b12857a869fb3c5994812b752c9a84e46d11 100644
--- a/docs/en/html/api/Bugzilla/WebService/Bug.html
+++ b/docs/en/html/api/Bugzilla/WebService/Bug.html
@@ -118,6 +118,163 @@ name="Bug_Information"
 >Bug Information</a></h2>
 
 <dl>
+<dt><a name="comments"
+><code  class="code">comments</code></a></dt>
+
+<dd>
+<p><b>UNSTABLE</b></p>
+
+<dl>
+<dt><a name="Description"
+><b>Description</b></a></dt>
+
+<dd>
+<p>This allows you to get data about comments,
+given a list of bugs and/or comment ids.</p>
+
+<dt><a name="Params"
+><b>Params</b></a></dt>
+
+<dd>
+<p><b>Note</b>: At least one of <code  class="code">bug_ids</code> or <code  class="code">comment_ids</code> is required.</p>
+
+<p>In addition to the parameters below,
+this method also accepts the standard <a href="../../Bugzilla/WebService.html#include_fields" class="podlinkpod"
+>include_fields</a> and <a href="../../Bugzilla/WebService.html#exclude_fields" class="podlinkpod"
+>exclude_fields</a> arguments.</p>
+
+<dl>
+<dt><a name="bug_ids"
+><code  class="code">bug_ids</code></a></dt>
+
+<dd>
+<p><code  class="code">array</code> An array that can contain both bug IDs and bug aliases.
+All of the comments (that are visible to you) will be returned for the specified bugs.</p>
+
+<dt><a name="comment_ids"
+><code  class="code">comment_ids</code></a></dt>
+
+<dd>
+<p><code  class="code">array</code> An array of integer comment_ids.
+These comments will be returned individually,
+separate from any other comments in their respective bugs.</p>
+
+<dt><a name="new_since"
+><code  class="code">new_since</code></a></dt>
+
+<dd>
+<p><code  class="code">dateTime</code> If specified,
+the method will only return comments <i>newer</i> than this time.
+This only affects comments returned from the <code  class="code">bug_ids</code> argument.
+You will always be returned all comments you request in the <code  class="code">comment_ids</code> argument,
+even if they are older than this date.</p>
+</dd>
+</dl>
+
+<dt><a name="Returns"
+><b>Returns</b></a></dt>
+
+<dd>
+<p>Two items are returned:</p>
+
+<dl>
+<dt><a name="bugs"
+><code  class="code">bugs</code></a></dt>
+
+<dd>
+<p>This is used for bugs specified in <code  class="code">bug_ids</code>.
+This is a hash,
+where the keys are the numeric ids of the bugs,
+and the value is a hash with a single key,
+<code  class="code">comments</code>,
+which is an array of comments.
+(The format of comments is described below.)</p>
+
+<p>Note that any individual bug will only be returned once,
+so if you specify an id multiple times in <code  class="code">bug_ids</code>,
+it will still only be returned once.</p>
+
+<dt><a name="comments"
+><code  class="code">comments</code></a></dt>
+
+<dd>
+<p>Each individual comment requested in <code  class="code">comment_ids</code> is returned here,
+in a hash where the numeric comment id is the key,
+and the value is the comment.
+(The format of comments is described below.)</p>
+</dd>
+</dl>
+
+<p>A &#34;comment&#34; as described above is a hash that contains the following keys:</p>
+
+<dl>
+<dt><a name="id"
+>id</a></dt>
+
+<dd>
+<p><code  class="code">int</code> The globally unique ID for the comment.</p>
+
+<dt><a name="bug_id"
+>bug_id</a></dt>
+
+<dd>
+<p><code  class="code">int</code> The ID of the bug that this comment is on.</p>
+
+<dt><a name="text"
+>text</a></dt>
+
+<dd>
+<p><code  class="code">string</code> The actual text of the comment.</p>
+
+<dt><a name="author"
+>author</a></dt>
+
+<dd>
+<p><code  class="code">string</code> The login name of the comment&#39;s author.</p>
+
+<dt><a name="time"
+>time</a></dt>
+
+<dd>
+<p><code  class="code">dateTime</code> The time (in Bugzilla&#39;s timezone) that the comment was added.</p>
+
+<dt><a name="is_private"
+>is_private</a></dt>
+
+<dd>
+<p><code  class="code">boolean</code> True if this comment is private (only visible to a certain group called the &#34;insidergroup&#34;),
+False otherwise.</p>
+</dd>
+</dl>
+
+<dt><a name="Errors"
+><b>Errors</b></a></dt>
+
+<dd>
+<p>This method can throw all the same errors as <a href="#get" class="podlinkpod"
+>&#34;get&#34;</a>.
+In addition,
+it can also throw the following errors:</p>
+
+<dl>
+<dt><a name="110_(Comment_Is_Private)"
+>110 (Comment Is Private)</a></dt>
+
+<dd>
+<p>You specified the id of a private comment in the <code  class="code">comment_ids</code> argument,
+and you are not in the &#34;insider group&#34; that can see private comments.</p>
+
+<dt><a name="111_(Invalid_Comment_ID)"
+>111 (Invalid Comment ID)</a></dt>
+
+<dd>
+<p>You specified an id in the <code  class="code">comment_ids</code> argument that is invalid--either you specified something that wasn&#39;t a number,
+or there is no comment with that id.</p>
+</dd>
+</dl>
+</dd>
+</dl>
+
 <dt><a name="get"
 ><code  class="code">get</code></a></dt>
 
@@ -166,12 +323,6 @@ This is an array of hashes.
 Each hash contains the following items:</p>
 
 <dl>
-<dt><a name="id"
->id</a></dt>
-
-<dd>
-<p><code  class="code">int</code> The numeric bug_id of this bug.</p>
-
 <dt><a name="alias"
 >alias</a></dt>
 
@@ -180,11 +331,17 @@ Each hash contains the following items:</p>
 If there is no alias or aliases are disabled in this Bugzilla,
 this will be an empty string.</p>
 
-<dt><a name="summary"
->summary</a></dt>
+<dt><a name="assigned_to"
+>assigned_to</a></dt>
 
 <dd>
-<p><code  class="code">string</code> The summary of this bug.</p>
+<p><code  class="code">string</code> The login name of the user to whom the bug is assigned.</p>
+
+<dt><a name="component"
+>component</a></dt>
+
+<dd>
+<p><code  class="code">string</code> The name of the current component of this bug.</p>
 
 <dt><a name="creation_time"
 >creation_time</a></dt>
@@ -192,11 +349,19 @@ this will be an empty string.</p>
 <dd>
 <p><code  class="code">dateTime</code> When the bug was created.</p>
 
-<dt><a name="last_change_time"
->last_change_time</a></dt>
+<dt><a name="dupe_of"
+>dupe_of</a></dt>
 
 <dd>
-<p><code  class="code">dateTime</code> When the bug was last changed.</p>
+<p><code  class="code">int</code> The bug ID of the bug that this bug is a duplicate of.
+If this bug isn&#39;t a duplicate of any bug,
+this will be an empty int.</p>
+
+<dt><a name="id"
+>id</a></dt>
+
+<dd>
+<p><code  class="code">int</code> The numeric bug_id of this bug.</p>
 
 <dt><a name="internals_UNSTABLE"
 >internals <b>UNSTABLE</b></a></dt>
@@ -208,6 +373,56 @@ The internals of a <a href="../../Bugzilla/Bug.html" class="podlinkpod"
 This is extremely unstable,
 and you should only rely on this if you absolutely have to.
 The structure of the hash may even change between point releases of Bugzilla.</p>
+
+<dt><a name="is_open"
+>is_open</a></dt>
+
+<dd>
+<p><code  class="code">boolean</code> Returns true (1) if this bug is open,
+false (0) if it is closed.</p>
+
+<dt><a name="last_change_time"
+>last_change_time</a></dt>
+
+<dd>
+<p><code  class="code">dateTime</code> When the bug was last changed.</p>
+
+<dt><a name="priority"
+>priority</a></dt>
+
+<dd>
+<p><code  class="code">string</code> The priority of the bug.</p>
+
+<dt><a name="product"
+>product</a></dt>
+
+<dd>
+<p><code  class="code">string</code> The name of the product this bug is in.</p>
+
+<dt><a name="resolution"
+>resolution</a></dt>
+
+<dd>
+<p><code  class="code">string</code> The current resolution of the bug,
+or an empty string if the bug is open.</p>
+
+<dt><a name="severity"
+>severity</a></dt>
+
+<dd>
+<p><code  class="code">string</code> The current severity of the bug.</p>
+
+<dt><a name="status"
+>status</a></dt>
+
+<dd>
+<p><code  class="code">string</code> The current status of the bug.</p>
+
+<dt><a name="summary"
+>summary</a></dt>
+
+<dd>
+<p><code  class="code">string</code> The summary of this bug.</p>
 </dd>
 </dl>
 
@@ -235,6 +450,38 @@ The structure of the hash may even change between point releases of Bugzilla.</p
 <p>You do not have access to the bug_id you specified.</p>
 </dd>
 </dl>
+
+<dt><a name="History"
+><b>History</b></a></dt>
+
+<dd>
+<dl>
+<dt><a name="The_following_properties_were_added_to_this_method&#39;s_return_value_in_Bugzilla_3.4:"
+>The following properties were added to this method&#39;s return value in Bugzilla <b>3.4</b>:</a></dt>
+
+<dd>
+<dl>
+<dt><a name="assigned_to"
+>assigned_to
+<dt><a name="component"
+>component
+<dt><a name="dupe_of"
+>dupe_of
+<dt><a name="is_open"
+>is_open
+<dt><a name="priority"
+>priority
+<dt><a name="product"
+>product
+<dt><a name="resolution"
+>resolution
+<dt><a name="severity"
+>severity
+<dt><a name="status"
+>status</a></dt>
+</dl>
+</dd>
+</dl>
 </dd>
 </dl>
 
@@ -356,6 +603,213 @@ otherwise <code  class="code">attachment_id</code> will not be present in this h
 <dt><a name="History"
 ><b>History</b></a></dt>
 
+<dd>
+<dl>
+<dt><a name="Added_in_Bugzilla_3.4."
+>Added in Bugzilla <b>3.4</b>.</a></dt>
+</dl>
+</dd>
+</dl>
+
+<dt><a name="search"
+><code  class="code">search</code></a></dt>
+
+<dd>
+<p><b>UNSTABLE</b></p>
+
+<dl>
+<dt><a name="Description"
+><b>Description</b></a></dt>
+
+<dd>
+<p>Allows you to search for bugs based on particular criteria.</p>
+
+<dt><a name="Params"
+><b>Params</b></a></dt>
+
+<dd>
+<p>Bugs are returned if they match <i>exactly</i> the criteria you specify in these parameters.
+That is,
+we don&#39;t match against substrings--if a bug is in the &#34;Widgets&#34; product and you ask for bugs in the &#34;Widg&#34; product,
+you won&#39;t get anything.</p>
+
+<p>Criteria are joined in a logical AND.
+That is,
+you will be returned bugs that match <i>all</i> of the criteria,
+not bugs that match <i>any</i> of the criteria.</p>
+
+<p>Each parameter can be either the type it says,
+or an array of the types it says.
+If you pass an array,
+it means &#34;Give me bugs with <i>any</i> of these values.&#34; For example,
+if you wanted bugs that were in either the &#34;Foo&#34; or &#34;Bar&#34; products,
+you&#39;d pass:</p>
+
+<pre  class="code"> product =&#62; [&#39;Foo&#39;, &#39;Bar&#39;]</pre>
+
+<p>Fields below only have descriptions if it&#39;s not clear what bug field they match up to, or if they have some special behavior.</p>
+
+<p>Some Bugzillas may treat your arguments case-sensitively, depending on what database system they are using. Most commonly, though, Bugzilla is not case-sensitive with the arguments passed (because MySQL is the most-common database to use with Bugzilla, and MySQL is not case sensitive).</p>
+
+<dl>
+<dt><a name="alias"
+><code  class="code">alias</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The unique alias for this bug. Note that you can search by alias even if the alias field is disabled in this Bugzilla, but it&#39;s likely that there won&#39;t be any aliases set on bugs, in that case.</p>
+
+<dt><a name="assigned_to"
+><code  class="code">assigned_to</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The login name of a user that a bug is assigned to.</p>
+
+<dt><a name="component"
+><code  class="code">component</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The name of the Component that the bug is in. Note that if there are multiple Compoonents with the same name, and you search for that name, bugs in <i>all</i> those Components will be returned. If you don&#39;t want this, be sure to also specify the <code  class="code">product</code> argument.</p>
+
+<dt><a name="creation_time"
+><code  class="code">creation_time</code></a></dt>
+
+<dd>
+<p><code  class="code">dateTime</code> When the bug was created.</p>
+
+<dt><a name="id"
+><code  class="code">id</code></a></dt>
+
+<dd>
+<p><code  class="code">int</code> The numeric id of the bug.</p>
+
+<dt><a name="last_change_time"
+><code  class="code">last_change_time</code></a></dt>
+
+<dd>
+<p><code  class="code">dateTime</code> Limit the search to only those bugs which have changed in some way since the specified time. It includes all bugs changed between the specified time and the present. Note: only a single <code  class="code">dateTime</code> will accepted, not an array.</p>
+
+<dt><a name="limit"
+><code  class="code">limit</code></a></dt>
+
+<dd>
+<p><code  class="code">int</code> Limit the number of results returned to <code  class="code">int</code> records.</p>
+
+<dt><a name="offset"
+><code  class="code">offset</code></a></dt>
+
+<dd>
+<p><code  class="code">int</code> Used in conjunction with the <code  class="code">limit</code> argument, <code  class="code">offset</code> defines the starting position for the search. For example, given a search that would return 100 bugs, setting <code  class="code">limit</code> to 10 and <code  class="code">offset</code> to 10 would return bugs 11 through 20 from the set of 100.</p>
+
+<dt><a name="op_sys"
+><code  class="code">op_sys</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The &#34;Operating System&#34; field of a bug.</p>
+
+<dt><a name="platform"
+><code  class="code">platform</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The Platform (sometimes called &#34;Hardware&#34;) field of a bug.</p>
+
+<dt><a name="priority"
+><code  class="code">priority</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The Priority field on a bug.</p>
+
+<dt><a name="product"
+><code  class="code">product</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The name of the Product that the bug is in.</p>
+
+<dt><a name="reporter"
+><code  class="code">reporter</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The login name of the user who reported the bug.</p>
+
+<dt><a name="resolution"
+><code  class="code">resolution</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The current resolution--only set if a bug is closed. You can find open bugs by searching for bugs with an empty resolution.</p>
+
+<dt><a name="severity"
+><code  class="code">severity</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The Severity field on a bug.</p>
+
+<dt><a name="status"
+><code  class="code">status</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The current status of a bug (not including its resolution, if it has one, which is a separate field above).</p>
+
+<dt><a name="summary"
+><code  class="code">summary</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The single-line summary field of a bug. (This isn&#39;t very useful to search on, since we don&#39;t do substring matches, only exact matches.)</p>
+
+<dt><a name="target_milestone"
+><code  class="code">target_milestone</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The Target Milestone field of a bug. Note that even if this Bugzilla does not have the Target Milestone field enabled, you can still search for bugs by Target Milestone. However, it is likely that in that case, most bugs will not have a Target Milestone set (it defaults to &#34;---&#34; when the field isn&#39;t enabled).</p>
+
+<dt><a name="qa_contact"
+><code  class="code">qa_contact</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The login name of the bug&#39;s QA Contact. Note that even if this Bugzilla does not have the QA Contact field enabled, you can still search for bugs by QA Contact (though it is likely that no bug will have a QA Contact set, if the field is disabled).</p>
+
+<dt><a name="url"
+><code  class="code">url</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The &#34;URL&#34; field of a bug.</p>
+
+<dt><a name="version"
+><code  class="code">version</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The Version field of a bug.</p>
+
+<dt><a name="votes"
+><code  class="code">votes</code></a></dt>
+
+<dd>
+<p><code  class="code">int</code> How many votes this bug has, total.</p>
+
+<dt><a name="whiteboard"
+><code  class="code">whiteboard</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The &#34;Status Whiteboard&#34; field of a bug.</p>
+</dd>
+</dl>
+
+<dt><a name="Returns"
+><b>Returns</b></a></dt>
+
+<dd>
+<p>The same as <a href="#get" class="podlinkpod"
+>&#34;get&#34;</a>.</p>
+
+<p>Note that you will only be returned information about bugs that you can see. Bugs that you can&#39;t see will be entirely excluded from the results. So, if you want to see private bugs, you will have to first log in and <i>then</i> call this method.</p>
+
+<dt><a name="Errors"
+><b>Errors</b></a></dt>
+
+<dd>
+<p>Currently, this function doesn&#39;t throw any special errors (other than the ones that all webservice functions can throw). If you specify an invalid value for a particular field, you just won&#39;t get any results for that value.</p>
+
+<dt><a name="History"
+><b>History</b></a></dt>
+
 <dd>
 <dl>
 <dt><a name="Added_in_Bugzilla_3.4."
@@ -382,37 +836,23 @@ name="Bug_Creation_and_Modification"
 ><b>Description</b></a></dt>
 
 <dd>
-<p>This allows you to create a new bug in Bugzilla.
-If you specify any invalid fields,
-they will be ignored.
-If you specify any fields you are not allowed to set,
-they will just be set to their defaults or ignored.</p>
+<p>This allows you to create a new bug in Bugzilla. If you specify any invalid fields, they will be ignored. If you specify any fields you are not allowed to set, they will just be set to their defaults or ignored.</p>
 
 <p>You cannot currently set all the items here that you can set on enter_bug.cgi.</p>
 
-<p>The WebService interface may allow you to set things other than those listed here,
-but realize that anything undocumented is <b>UNSTABLE</b> and will very likely change in the future.</p>
+<p>The WebService interface may allow you to set things other than those listed here, but realize that anything undocumented is <b>UNSTABLE</b> and will very likely change in the future.</p>
 
 <dt><a name="Params"
 ><b>Params</b></a></dt>
 
 <dd>
-<p>Some params must be set,
-or an error will be thrown.
-These params are marked <b>Required</b>.</p>
+<p>Some params must be set, or an error will be thrown. These params are marked <b>Required</b>.</p>
 
-<p>Some parameters can have defaults set in Bugzilla,
-by the administrator.
-If these parameters have defaults set,
-you can omit them.
-These parameters are marked <b>Defaulted</b>.</p>
+<p>Some parameters can have defaults set in Bugzilla, by the administrator. If these parameters have defaults set, you can omit them. These parameters are marked <b>Defaulted</b>.</p>
 
-<p>Clients that want to be able to interact uniformly with multiple Bugzillas should always set both the params marked <b>Required</b> and those marked <b>Defaulted</b>,
-because some Bugzillas may not have defaults set for <b>Defaulted</b> parameters,
-and then this method will throw an error if you don&#39;t specify them.</p>
+<p>Clients that want to be able to interact uniformly with multiple Bugzillas should always set both the params marked <b>Required</b> and those marked <b>Defaulted</b>, because some Bugzillas may not have defaults set for <b>Defaulted</b> parameters, and then this method will throw an error if you don&#39;t specify them.</p>
 
-<p>The descriptions of the parameters below are what they mean when Bugzilla is being used to track software bugs.
-They may have other meanings in some installations.</p>
+<p>The descriptions of the parameters below are what they mean when Bugzilla is being used to track software bugs. They may have other meanings in some installations.</p>
 
 <dl>
 <dt><a name="product_(string)_Required_-_The_name_of_the_product_the_bug_is_being_filed_against."
@@ -424,46 +864,36 @@ They may have other meanings in some installations.</p>
 <dt><a name="version_(string)_Required_-_A_version_of_the_product_above;_the_version_the_bug_was_found_in."
 ><code  class="code">version</code> (string) <b>Required</b> - A version of the product above; the version the bug was found in.
 <dt><a 
-><code  class="code">description</code> (string) <b>Defaulted</b> - The initial description for this bug.
-Some Bugzilla installations require this to not be blank.
+><code  class="code">description</code> (string) <b>Defaulted</b> - The initial description for this bug. Some Bugzilla installations require this to not be blank.
 <dt><a name="op_sys_(string)_Defaulted_-_The_operating_system_the_bug_was_discovered_on."
 ><code  class="code">op_sys</code> (string) <b>Defaulted</b> - The operating system the bug was discovered on.
 <dt><a name="platform_(string)_Defaulted_-_What_type_of_hardware_the_bug_was_experienced_on."
 ><code  class="code">platform</code> (string) <b>Defaulted</b> - What type of hardware the bug was experienced on.
 <dt><a 
-><code  class="code">priority</code> (string) <b>Defaulted</b> - What order the bug will be fixed in by the developer,
-compared to the developer&#39;s other bugs.
+><code  class="code">priority</code> (string) <b>Defaulted</b> - What order the bug will be fixed in by the developer, compared to the developer&#39;s other bugs.
 <dt><a name="severity_(string)_Defaulted_-_How_severe_the_bug_is."
 ><code  class="code">severity</code> (string) <b>Defaulted</b> - How severe the bug is.
 <dt><a 
-><code  class="code">alias</code> (string) - A brief alias for the bug that can be used instead of a bug number when accessing this bug.
-Must be unique in all of this Bugzilla.
+><code  class="code">alias</code> (string) - A brief alias for the bug that can be used instead of a bug number when accessing this bug. Must be unique in all of this Bugzilla.
 <dt><a name="assigned_to_(username)_-_A_user_to_assign_this_bug_to,_if_you_don&#39;t_want_it_to_be_assigned_to_the_component_owner."
-><code  class="code">assigned_to</code> (username) - A user to assign this bug to,
-if you don&#39;t want it to be assigned to the component owner.
+><code  class="code">assigned_to</code> (username) - A user to assign this bug to, if you don&#39;t want it to be assigned to the component owner.
 <dt><a name="cc_(array)_-_An_array_of_usernames_to_CC_on_this_bug."
 ><code  class="code">cc</code> (array) - An array of usernames to CC on this bug.
 <dt><a 
-><code  class="code">qa_contact</code> (username) - If this installation has QA Contacts enabled,
-you can set the QA Contact here if you don&#39;t want to use the component&#39;s default QA Contact.
+><code  class="code">qa_contact</code> (username) - If this installation has QA Contacts enabled, you can set the QA Contact here if you don&#39;t want to use the component&#39;s default QA Contact.
 <dt><a 
-><code  class="code">status</code> (string) - The status that this bug should start out as.
-Note that only certain statuses can be set on bug creation.
+><code  class="code">status</code> (string) - The status that this bug should start out as. Note that only certain statuses can be set on bug creation.
 <dt><a name="target_milestone_(string)_-_A_valid_target_milestone_for_this_product."
 ><code  class="code">target_milestone</code> (string) - A valid target milestone for this product.</a></dt>
 </dl>
 
-<p>In addition to the above parameters,
-if your installation has any custom fields,
-you can set them just by passing in the name of the field and its value as a string.</p>
+<p>In addition to the above parameters, if your installation has any custom fields, you can set them just by passing in the name of the field and its value as a string.</p>
 
 <dt><a name="Returns"
 ><b>Returns</b></a></dt>
 
 <dd>
-<p>A hash with one element,
-<code  class="code">id</code>.
-This is the id of the newly-filed bug.</p>
+<p>A hash with one element, <code  class="code">id</code>. This is the id of the newly-filed bug.</p>
 
 <dt><a name="Errors"
 ><b>Errors</b></a></dt>
@@ -480,16 +910,13 @@ This is the id of the newly-filed bug.</p>
 >103 (Invalid Alias)</a></dt>
 
 <dd>
-<p>The alias you specified is invalid for some reason.
-See the error message for more details.</p>
+<p>The alias you specified is invalid for some reason. See the error message for more details.</p>
 
 <dt><a name="104_(Invalid_Field)"
 >104 (Invalid Field)</a></dt>
 
 <dd>
-<p>One of the drop-down fields has an invalid value,
-or a value entered in a text field is too long.
-The error message will have more detail.</p>
+<p>One of the drop-down fields has an invalid value, or a value entered in a text field is too long. The error message will have more detail.</p>
 
 <dt><a name="105_(Invalid_Component)"
 >105 (Invalid Component)</a></dt>
@@ -501,9 +928,7 @@ The error message will have more detail.</p>
 >106 (Invalid Product)</a></dt>
 
 <dd>
-<p>Either you didn&#39;t specify a product,
-this product doesn&#39;t exist,
-or you don&#39;t have permission to enter bugs in this product.</p>
+<p>Either you didn&#39;t specify a product, this product doesn&#39;t exist, or you don&#39;t have permission to enter bugs in this product.</p>
 
 <dt><a name="107_(Invalid_Summary)"
 >107 (Invalid Summary)</a></dt>
@@ -515,10 +940,7 @@ or you don&#39;t have permission to enter bugs in this product.</p>
 >504 (Invalid User)</a></dt>
 
 <dd>
-<p>Either the QA Contact,
-Assignee,
-or CC lists have some invalid user in them.
-The error message will have more details.</p>
+<p>Either the QA Contact, Assignee, or CC lists have some invalid user in them. The error message will have more details.</p>
 </dd>
 </dl>
 
@@ -528,9 +950,7 @@ The error message will have more details.</p>
 <dd>
 <dl>
 <dt><a name="Before_3.0.4,_parameters_marked_as_Defaulted_were_actually_Required,_due_to_a_bug_in_Bugzilla."
->Before <b>3.0.4</b>,
-parameters marked as <b>Defaulted</b> were actually <b>Required</b>,
-due to a bug in Bugzilla.</a></dt>
+>Before <b>3.0.4</b>, parameters marked as <b>Defaulted</b> were actually <b>Required</b>, due to a bug in Bugzilla.</a></dt>
 </dl>
 </dd>
 </dl>
@@ -556,19 +976,19 @@ due to a bug in Bugzilla.</a></dt>
 <dt><a name="id_(int)_Required_-_The_id_or_alias_of_the_bug_to_append_a_comment_to."
 ><code  class="code">id</code> (int) <b>Required</b> - The id or alias of the bug to append a comment to.
 <dt><a 
-><code  class="code">comment</code> (string) <b>Required</b> - The comment to append to the bug.
-If this is empty or all whitespace,
-an error will be thrown saying that you did not set the <code  class="code">comment</code> parameter.
+><code  class="code">comment</code> (string) <b>Required</b> - The comment to append to the bug. If this is empty or all whitespace, an error will be thrown saying that you did not set the <code  class="code">comment</code> parameter.
 <dt><a name="private_(boolean)_-_If_set_to_true,_the_comment_is_private,_otherwise_it_is_assumed_to_be_public."
-><code  class="code">private</code> (boolean) - If set to true,
-the comment is private,
-otherwise it is assumed to be public.
+><code  class="code">private</code> (boolean) - If set to true, the comment is private, otherwise it is assumed to be public.
 <dt><a 
-><code  class="code">work_time</code> (double) - Adds this many hours to the &#34;Hours Worked&#34; on the bug.
-If you are not in the time tracking group,
-this value will be ignored.</a></dt>
+><code  class="code">work_time</code> (double) - Adds this many hours to the &#34;Hours Worked&#34; on the bug. If you are not in the time tracking group, this value will be ignored.</a></dt>
 </dl>
 
+<dt><a name="Returns"
+><b>Returns</b></a></dt>
+
+<dd>
+<p>A hash with one element, <code  class="code">id</code> whose value is the id of the newly-created comment.</p>
+
 <dt><a name="Errors"
 ><b>Errors</b></a></dt>
 
@@ -600,7 +1020,115 @@ this value will be ignored.</a></dt>
 <dd>
 <dl>
 <dt><a name="Added_in_Bugzilla_3.2."
->Added in Bugzilla <b>3.2</b>.</a></dt>
+>Added in Bugzilla <b>3.2</b>.
+<dt><a name="Modified_to_return_the_new_comment&#39;s_id_in_Bugzilla_3.4"
+>Modified to return the new comment&#39;s id in Bugzilla <b>3.4</b></a></dt>
+</dl>
+</dd>
+</dl>
+
+<dt><a name="update_see_also"
+><code  class="code">update_see_also</code></a></dt>
+
+<dd>
+<p><b>UNSTABLE</b></p>
+
+<dl>
+<dt><a name="Description"
+><b>Description</b></a></dt>
+
+<dd>
+<p>Adds or removes URLs for the &#34;See Also&#34; field on bugs. These URLs must point to some valid bug in some Bugzilla installation or in Launchpad.</p>
+
+<dt><a name="Params"
+><b>Params</b></a></dt>
+
+<dd>
+<dl>
+<dt><a name="ids"
+><code  class="code">ids</code></a></dt>
+
+<dd>
+<p>Array of <code  class="code">int</code>s or <code  class="code">string</code>s. The ids or aliases of bugs that you want to modify.</p>
+
+<dt><a name="add"
+><code  class="code">add</code></a></dt>
+
+<dd>
+<p>Array of <code  class="code">string</code>s. URLs to Bugzilla bugs. These URLs will be added to the See Also field. They must be valid URLs to <code  class="code">show_bug.cgi</code> in a Bugzilla installation or to a bug filed at launchpad.net.</p>
+
+<p>If the URLs don&#39;t start with <code  class="code">http://</code> or <code  class="code">https://</code>, it will be assumed that <code  class="code">http://</code> should be added to the beginning of the string.</p>
+
+<p>It is safe to specify URLs that are already in the &#34;See Also&#34; field on a bug--they will just be silently ignored.</p>
+
+<dt><a name="remove"
+><code  class="code">remove</code></a></dt>
+
+<dd>
+<p>Array of <code  class="code">string</code>s. These URLs will be removed from the See Also field. You must specify the full URL that you want removed. However, matching is done case-insensitively, so you don&#39;t have to specify the URL in exact case, if you don&#39;t want to.</p>
+
+<p>If you specify a URL that is not in the See Also field of a particular bug, it will just be silently ignored. Invaild URLs are currently silently ignored, though this may change in some future version of Bugzilla.</p>
+</dd>
+</dl>
+
+<p>NOTE: If you specify the same URL in both <code  class="code">add</code> and <code  class="code">remove</code>, it will be <i>added</i>. (That is, <code  class="code">add</code> overrides <code  class="code">remove</code>.)</p>
+
+<dt><a name="Returns"
+><b>Returns</b></a></dt>
+
+<dd>
+<p><code  class="code">changes</code>, a hash where the keys are numeric bug ids and the contents are a hash with one key, <code  class="code">see_also</code>. <code  class="code">see_also</code> points to a hash, which contains two keys, <code  class="code">added</code> and <code  class="code">removed</code>. These are arrays of strings, representing the actual changes that were made to the bug.</p>
+
+<p>Here&#39;s a diagram of what the return value looks like for updating bug ids 1 and 2:</p>
+
+<pre  class="code"> {
+   changes =&#62; {
+       1 =&#62; {
+           see_also =&#62; {
+               added   =&#62; (an array of bug URLs),
+               removed =&#62; (an array of bug URLs),
+           }
+       },
+       2 =&#62; {
+           see_also =&#62; {
+               added   =&#62; (an array of bug URLs),
+               removed =&#62; (an array of bug URLs),
+           }
+       }
+   }
+ }</pre>
+
+<p>This return value allows you to tell what this method actually did. It is in this format to be compatible with the return value of a future <code  class="code">Bug.update</code> method.</p>
+
+<dt><a name="Errors"
+><b>Errors</b></a></dt>
+
+<dd>
+<p>This method can throw all of the errors that <a href="#get" class="podlinkpod"
+>&#34;get&#34;</a> throws, plus:</p>
+
+<dl>
+<dt><a name="108_(Bug_Edit_Denied)"
+>108 (Bug Edit Denied)</a></dt>
+
+<dd>
+<p>You did not have the necessary rights to edit the bug.</p>
+
+<dt><a name="112_(Invalid_Bug_URL)"
+>112 (Invalid Bug URL)</a></dt>
+
+<dd>
+<p>One of the URLs you provided did not look like a valid bug URL.</p>
+</dd>
+</dl>
+
+<dt><a name="History"
+><b>History</b></a></dt>
+
+<dd>
+<dl>
+<dt><a name="Added_in_Bugzilla_3.4."
+>Added in Bugzilla <b>3.4</b>.</a></dt>
 </dl>
 </dd>
 </dl>
diff --git a/docs/en/html/api/Bugzilla/WebService/Bugzilla.html b/docs/en/html/api/Bugzilla/WebService/Bugzilla.html
index 7c69f7a1f883f20333561973621cd4dda6d9dfc1..f4ffbb68b58e5ab49d76355f4a3dd3fa1f788aa9 100644
--- a/docs/en/html/api/Bugzilla/WebService/Bugzilla.html
+++ b/docs/en/html/api/Bugzilla/WebService/Bugzilla.html
@@ -109,7 +109,9 @@ One of the values that must be returned is the &#39;version&#39; of the extensio
 ><code  class="code">timezone</code></a></dt>
 
 <dd>
-<p><b>STABLE</b></p>
+<p><b>DEPRECATED</b> This method may be removed in a future version of Bugzilla.
+Use <a href="#time" class="podlinkpod"
+>&#34;time&#34;</a> instead.</p>
 
 <dl>
 <dt><a name="Description"
@@ -130,6 +132,100 @@ This is important because all dates/times that the webservice interface returns
 that is the timezone offset as a string in (+/-)XXXX (RFC 2822) format.</p>
 </dd>
 </dl>
+
+<dt><a name="time"
+><code  class="code">time</code></a></dt>
+
+<dd>
+<p><b>UNSTABLE</b></p>
+
+<dl>
+<dt><a name="Description"
+><b>Description</b></a></dt>
+
+<dd>
+<p>Gets information about what time the Bugzilla server thinks it is,
+and what timezone it&#39;s running in.</p>
+
+<dt><a name="Params_(none)"
+><b>Params</b> (none)
+<dt><a name="Returns"
+><b>Returns</b></a></dt>
+
+<dd>
+<p>A struct with the following items:</p>
+
+<dl>
+<dt><a name="db_time"
+><code  class="code">db_time</code></a></dt>
+
+<dd>
+<p><code  class="code">dateTime</code> The current time in Bugzilla&#39;s <b>local time zone</b>,
+according to the Bugzilla <i>database server</i>.</p>
+
+<p>Note that Bugzilla assumes that the database and the webserver are running in the same time zone.
+However,
+if the web server and the database server aren&#39;t synchronized for some reason,
+<i>this</i> is the time that you should rely on for doing searches and other input to the WebService.</p>
+
+<dt><a name="web_time"
+><code  class="code">web_time</code></a></dt>
+
+<dd>
+<p><code  class="code">dateTime</code> This is the current time in Bugzilla&#39;s <b>local time zone</b>,
+according to Bugzilla&#39;s <i>web server</i>.</p>
+
+<p>This might be different by a second from <code  class="code">db_time</code> since this comes from a different source.
+If it&#39;s any more different than a second,
+then there is likely some problem with this Bugzilla instance.
+In this case you should rely on the <code  class="code">db_time</code>,
+not the <code  class="code">web_time</code>.</p>
+
+<dt><a name="web_time_utc"
+><code  class="code">web_time_utc</code></a></dt>
+
+<dd>
+<p>The same as <code  class="code">web_time</code>,
+but in the <b>UTC</b> time zone instead of the local time zone.</p>
+
+<dt><a name="tz_name"
+><code  class="code">tz_name</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The long name of the time zone that the Bugzilla web server is in.
+Will usually look something like: <code  class="code">America/Los Angeles</code></p>
+
+<dt><a name="tz_short_name"
+><code  class="code">tz_short_name</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The &#34;short name&#34; of the time zone that the Bugzilla web server is in.
+This should only be used for display,
+and not relied on for your programs,
+because different time zones can have the same short name.
+(For example,
+there are two <code  class="code">EST</code>s.)</p>
+
+<p>This will look something like: <code  class="code">PST</code>.</p>
+
+<dt><a name="tz_offset"
+><code  class="code">tz_offset</code></a></dt>
+
+<dd>
+<p><code  class="code">string</code> The timezone offset as a string in (+/-)XXXX (RFC 2822) format.</p>
+</dd>
+</dl>
+
+<dt><a name="History"
+><b>History</b></a></dt>
+
+<dd>
+<dl>
+<dt><a name="Added_in_Bugzilla_3.4."
+>Added in Bugzilla <b>3.4</b>.</a></dt>
+</dl>
+</dd>
+</dl>
 </dd>
 </dl>
 <p class="backlinkbottom"><b><a name="___bottom" href="../../index.html" title="All Documents">&lt;&lt;</a></b></p>
diff --git a/docs/en/html/api/Bugzilla/WebService/User.html b/docs/en/html/api/Bugzilla/WebService/User.html
index ee6197bceaff54b35249906f4046b26b4b80465d..0da2720378e70dee9b68c634cc795a65050b858d 100644
--- a/docs/en/html/api/Bugzilla/WebService/User.html
+++ b/docs/en/html/api/Bugzilla/WebService/User.html
@@ -316,6 +316,11 @@ or <code  class="code">match</code> must be specified.</p>
 so even if a user is matched by more than one argument,
 only one user will be returned.</p>
 
+<p>In addition to the parameters below,
+this method also accepts the standard <a href="../../Bugzilla/WebService.html#include_fields" class="podlinkpod"
+>include_fields</a> and <a href="../../Bugzilla/WebService.html#exclude_fields" class="podlinkpod"
+>exclude_fields</a> arguments.</p>
+
 <dl>
 <dt><a name="ids_(array)"
 ><code  class="code">ids</code> (array)</a></dt>
@@ -350,43 +355,6 @@ which defaults to 1000 but can be changed by the Bugzilla administrator.</p>
 and an error will be thrown if they try.
 (This is to make it harder for spammers to harvest email addresses from Bugzilla,
 and also to enforce the user visibility restrictions that are implemented on some Bugzillas.)</p>
-
-<dt><a name="include_fields_(array)"
-><code  class="code">include_fields</code> (array)</a></dt>
-
-<dd>
-<p>An array of strings,
-representing the names of keys in the hashes this function returns.
-Only the fields specified in this hash will be returned,
-the rest will not be included.</p>
-
-<p>Essentially,
-this is a way to make the return value smaller,
-for performance or bandwidth reasons.</p>
-
-<p>If you specify an empty array,
-then this function will return empty hashes.</p>
-
-<p>Invalid field names are ignored.</p>
-
-<dt><a name="exclude_fields_(array)"
-><code  class="code">exclude_fields</code> (array)</a></dt>
-
-<dd>
-<p>An array of strings,
-representing the names of keys in the hashes this function returns.
-The fields specified will not be excluded from the returned hashes.</p>
-
-<p>Essentially,
-this is a way to exclude certain fields from the returned hashes,
-for performance or bandwidth reasons.</p>
-
-<p>If you specify all the fields,
-then this function will return empty hashes.</p>
-
-<p>Invalid field names are ignored.</p>
-
-<p>This overrides <code  class="code">include_fields</code>.</p>
 </dd>
 </dl>
 
diff --git a/docs/en/html/api/Bugzilla/WebService/Util.html b/docs/en/html/api/Bugzilla/WebService/Util.html
index 28e34618024f9c055160f7a304bd306f701356e3..709e14db7d47262766cece629af17350b2d8febd 100644
--- a/docs/en/html/api/Bugzilla/WebService/Util.html
+++ b/docs/en/html/api/Bugzilla/WebService/Util.html
@@ -39,7 +39,9 @@ name="SYNOPSIS"
 >SYNOPSIS</a></h1>
 
 <pre  class="code"> filter({ include_fields =&#62; [&#39;id&#39;, &#39;name&#39;], 
-          exclude_fields =&#62; [&#39;name&#39;] }, $hash);</pre>
+          exclude_fields =&#62; [&#39;name&#39;] }, $hash);
+
+ validate(@_, &#39;ids&#39;);</pre>
 
 <h1><a class='u' href='#___top' title='click to go to top of document'
 name="METHODS"
@@ -51,6 +53,12 @@ name="METHODS"
 
 <dd>
 <p>This helps implement the <code  class="code">include_fields</code> and <code  class="code">exclude_fields</code> arguments of WebService methods. Given a hash (the second argument to this subroutine), this will remove any keys that are <i>not</i> in <code  class="code">include_fields</code> and then remove any keys that <i>are</i> in <code  class="code">exclude_fields</code>.</p>
+
+<dt><a name="validate"
+><code  class="code">validate</code></a></dt>
+
+<dd>
+<p>This helps in the validation of parameters passed into the WebSerice methods. Currently it converts listed parameters into an array reference if the client only passed a single scalar value. It modifies the parameters hash in place so other parameters should be unaltered.</p>
 </dd>
 </dl>
 <p class="backlinkbottom"><b><a name="___bottom" href="../../index.html" title="All Documents">&lt;&lt;</a></b></p>
diff --git a/docs/en/html/api/index.html b/docs/en/html/api/index.html
index bfc01b86402e7f9dc322ec425403bf13ace3dfa6..a88cdc7adc054cdd3df97a1a871b9cd2bee416d3 100644
--- a/docs/en/html/api/index.html
+++ b/docs/en/html/api/index.html
@@ -2,13 +2,13 @@
 <html>
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    <title>Bugzilla 3.3.1 API Documentation</title>
+    <title>Bugzilla 3.3.2 API Documentation</title>
   
 <link rel="stylesheet" title="style" type="text/css" href="./../../../style.css" media="all" >
 
 </head>
   <body class="contentspage">
-    <h1>Bugzilla 3.3.1 API Documentation</h1>
+    <h1>Bugzilla 3.3.2 API Documentation</h1>
 <dl class='superindex'>
 <dt><a name="Files">Files</a></dt>
 <dd>
diff --git a/docs/en/html/attachments.html b/docs/en/html/attachments.html
index 715ef29792c30df0a19ce04285a0c6d6febe2610..ccfe055d4da5e4b620ff311c2cce2718eb524ae3 100644
--- a/docs/en/html/attachments.html
+++ b/docs/en/html/attachments.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/bug_page.html b/docs/en/html/bug_page.html
index 2759d57d40e120305ccb0d8922e661818b049453..feb819a10bf2881e832ccc1b3cb08c79ef5724bf 100644
--- a/docs/en/html/bug_page.html
+++ b/docs/en/html/bug_page.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/bug_status_workflow.html b/docs/en/html/bug_status_workflow.html
index 4af7c01ab6c09bee8b7a3d6da70251592dad24a7..44e0b181e0089189975d3fbcb2ebe7ce67f9d194 100644
--- a/docs/en/html/bug_status_workflow.html
+++ b/docs/en/html/bug_status_workflow.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/bugreports.html b/docs/en/html/bugreports.html
index e6cc457ba5e90b54edf45096c73ca22282012118..343792384c4c409e102b79a06038af889d0960d4 100644
--- a/docs/en/html/bugreports.html
+++ b/docs/en/html/bugreports.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/classifications.html b/docs/en/html/classifications.html
index 91779cf9a864b0f616af4e5f13e85ca47ab7f9e5..b19de71e0c1dccc4b546dbffe059c1d8a1c52733 100644
--- a/docs/en/html/classifications.html
+++ b/docs/en/html/classifications.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/cmdline-bugmail.html b/docs/en/html/cmdline-bugmail.html
index 01ecb30f9450c551cfe2586e76598f2bd4b8ac27..d862a5488dc66fa29036762a3086b3d64a2df8f8 100644
--- a/docs/en/html/cmdline-bugmail.html
+++ b/docs/en/html/cmdline-bugmail.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/cmdline.html b/docs/en/html/cmdline.html
index 070f4ebc1f6a37e33666a68b9dd5a6ad1f7cd7a0..2ce6a66bb8ab793dfdaedf6126cd761c86453970 100644
--- a/docs/en/html/cmdline.html
+++ b/docs/en/html/cmdline.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/components.html b/docs/en/html/components.html
index c8bcd6f3f69c8f4878d9292de026e0ab2ebc416e..e5b6d0d5a03dd9a8fdbed2433e36e5c308ee2c67 100644
--- a/docs/en/html/components.html
+++ b/docs/en/html/components.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/configuration.html b/docs/en/html/configuration.html
index 90964083f54be35f5a44d672a8fc110b0ff28f2f..c05135e6fbc81783c39251682722651c13daf6da 100644
--- a/docs/en/html/configuration.html
+++ b/docs/en/html/configuration.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/conventions.html b/docs/en/html/conventions.html
index 5de95c853bcc0a2c903863029766331a28e6b946..5ff508d62f5f66eeb7e1a87b00df7c4940ac4d46 100644
--- a/docs/en/html/conventions.html
+++ b/docs/en/html/conventions.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/copyright.html b/docs/en/html/copyright.html
index 4ba32b5806185f8a099768a1a822141f7cfca456..94ced43b01601fd5a2d0552d33711fafb21de60f 100644
--- a/docs/en/html/copyright.html
+++ b/docs/en/html/copyright.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/credits.html b/docs/en/html/credits.html
index 25306e73724ce7cbcf3b550f165b260d7e9f4f65..025da160afda23cf6cea3544511e97528320ea5b 100644
--- a/docs/en/html/credits.html
+++ b/docs/en/html/credits.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/cust-change-permissions.html b/docs/en/html/cust-change-permissions.html
index c3c9407fb0d3dc2ad83c0e4f3a402a53eaeecbae..933c7d0ddf241b9dc7303482edc4a6051de6b1fb 100644
--- a/docs/en/html/cust-change-permissions.html
+++ b/docs/en/html/cust-change-permissions.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/cust-hooks.html b/docs/en/html/cust-hooks.html
index a88e152079e18600cb0c5b1845ee945a6e30b613..71e297d6081f9e982972b84f76c6c7f51dac77e1 100644
--- a/docs/en/html/cust-hooks.html
+++ b/docs/en/html/cust-hooks.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/cust-skins.html b/docs/en/html/cust-skins.html
index bdf084fb577b8f3d9d8dd3860ea359bb113238eb..f9f3363770d6cc3478c36ccb9e66e68818c31c64 100644
--- a/docs/en/html/cust-skins.html
+++ b/docs/en/html/cust-skins.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/cust-templates.html b/docs/en/html/cust-templates.html
index 140d84f99fdb14b859e66689cc542aca06a97054..e59f0889bb94bd2ef73fcb9fe6fd77a54913749c 100644
--- a/docs/en/html/cust-templates.html
+++ b/docs/en/html/cust-templates.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/custom-fields.html b/docs/en/html/custom-fields.html
index 26e14158cf9ff3c0c66d9fd224467ebb6ff93db0..fc1b69cffa4160a02db1dd7e605e2833adfa3834 100644
--- a/docs/en/html/custom-fields.html
+++ b/docs/en/html/custom-fields.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/customization.html b/docs/en/html/customization.html
index b8c85a053f683cc28c9a66d6facd7971e7cc3741..f8f1d0ee89f675499cd3e07d3e811cf1db67ef4f 100644
--- a/docs/en/html/customization.html
+++ b/docs/en/html/customization.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -36,7 +36,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/disclaimer.html b/docs/en/html/disclaimer.html
index 8e4abb102a5eed57aa520d1a4d9868480e58b3c4..d617f070357d5ff12cad872d21a7bdc6449b45ca 100644
--- a/docs/en/html/disclaimer.html
+++ b/docs/en/html/disclaimer.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/edit-values.html b/docs/en/html/edit-values.html
index d5f5ab7385739d09a317a06d42febd333d7e4a85..7c396f4a535eaf8e2792664206a4e290b6b35750 100644
--- a/docs/en/html/edit-values.html
+++ b/docs/en/html/edit-values.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/extraconfig.html b/docs/en/html/extraconfig.html
index 362c83e39d0de0d79afc07cfed919f53689e8892..d3fab01f56b8544a27d6c48b1372d6c28a5d0196 100644
--- a/docs/en/html/extraconfig.html
+++ b/docs/en/html/extraconfig.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/flags-overview.html b/docs/en/html/flags-overview.html
index 7001a6a16956c7ef5f9498ddbe05fb18f008ad11..6a110dfdc055f0d99e0ebb3f3a6c8dd814d5472d 100644
--- a/docs/en/html/flags-overview.html
+++ b/docs/en/html/flags-overview.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/flags.html b/docs/en/html/flags.html
index 85e9ea271aed9f72e07aae110703dbb9fdbd334c..5acc892f57895a106ae2ddd1b059fd8cfaded319 100644
--- a/docs/en/html/flags.html
+++ b/docs/en/html/flags.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/general-advice.html b/docs/en/html/general-advice.html
index 1394881816cdc7c835649b9a6f1723c555869dd7..118afb3a63ce0c7c62a4e8347ed8ffb2ef9ed3a0 100644
--- a/docs/en/html/general-advice.html
+++ b/docs/en/html/general-advice.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/gfdl-0.html b/docs/en/html/gfdl-0.html
index e20c3d6dc3559732613df9f4661bb35b95c43915..29ef7940013236245f50d8f5d0aca1367b5a479c 100644
--- a/docs/en/html/gfdl-0.html
+++ b/docs/en/html/gfdl-0.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/gfdl-1.html b/docs/en/html/gfdl-1.html
index acdea68041129144683a5c7e9c4f7445f85300fc..a0cb9f00a771f79b28f727995e84363d3568eb2a 100644
--- a/docs/en/html/gfdl-1.html
+++ b/docs/en/html/gfdl-1.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/gfdl-10.html b/docs/en/html/gfdl-10.html
index dcc103b62072a650052e9a235d9791f50cd5b301..d1b802e8e64ae834134cbefeced88fc408e3dc57 100644
--- a/docs/en/html/gfdl-10.html
+++ b/docs/en/html/gfdl-10.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/gfdl-2.html b/docs/en/html/gfdl-2.html
index 6864569fa65db1e9842ab258913f0da53190d020..6ee868109956a3735d05841933cb5724b1910005 100644
--- a/docs/en/html/gfdl-2.html
+++ b/docs/en/html/gfdl-2.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/gfdl-3.html b/docs/en/html/gfdl-3.html
index c62aaefc1a8e4f75f25af36ab3b254cd7229fb19..3c8bd7a0a816d41fea1197c581031b49d1b9714c 100644
--- a/docs/en/html/gfdl-3.html
+++ b/docs/en/html/gfdl-3.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/gfdl-4.html b/docs/en/html/gfdl-4.html
index d53b653324d80d4507c5d6968744a2a4fa00e53c..439c4d279aa85f20ddb02d068058d96f0e752ee2 100644
--- a/docs/en/html/gfdl-4.html
+++ b/docs/en/html/gfdl-4.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/gfdl-5.html b/docs/en/html/gfdl-5.html
index 1bcbadeff159373594627a9163b463ab3ee2da9e..4d2c0d674182ebdb4a142210c7f56cecc86eca60 100644
--- a/docs/en/html/gfdl-5.html
+++ b/docs/en/html/gfdl-5.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/gfdl-6.html b/docs/en/html/gfdl-6.html
index 9642e094bc0f4083453646681a764fc0cde27961..dcacf31e5dab01fe5498111b87c049ff39ce292d 100644
--- a/docs/en/html/gfdl-6.html
+++ b/docs/en/html/gfdl-6.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/gfdl-7.html b/docs/en/html/gfdl-7.html
index 1dc8e3e94189fbca07c4707160ecb3f935291913..6b2546a97f8af7d6dcacb2634ce8156a5de9a7e2 100644
--- a/docs/en/html/gfdl-7.html
+++ b/docs/en/html/gfdl-7.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/gfdl-8.html b/docs/en/html/gfdl-8.html
index fe8ea2d8d038d9006cd1b6af3bca307d2d7f9aee..8f0daf984577d2edb2ea58bc666dce136ecd7bfb 100644
--- a/docs/en/html/gfdl-8.html
+++ b/docs/en/html/gfdl-8.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/gfdl-9.html b/docs/en/html/gfdl-9.html
index 708547607edcdcb460e654964728ec6fe34ea6ec..665a9ff62aacc1397fc615a28fdd36e9683e1842 100644
--- a/docs/en/html/gfdl-9.html
+++ b/docs/en/html/gfdl-9.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/gfdl-howto.html b/docs/en/html/gfdl-howto.html
index 309c7b185106e798a9d5dd6413e1666a690dd781..7e91573276bc9db48393678293e25c639d5f9b9f 100644
--- a/docs/en/html/gfdl-howto.html
+++ b/docs/en/html/gfdl-howto.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/gfdl.html b/docs/en/html/gfdl.html
index 0a3cce735a109ef10ce603443a5fa01a66918052..d090501e23f3b0be5c7d5bc04d85218699cef0f4 100644
--- a/docs/en/html/gfdl.html
+++ b/docs/en/html/gfdl.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -36,7 +36,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/glossary.html b/docs/en/html/glossary.html
index 9fa4c1c186053f389b14b4fad03014fe5de8ed72..547385f0909830e50735aa31620014230bb9f61f 100644
--- a/docs/en/html/glossary.html
+++ b/docs/en/html/glossary.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -33,7 +33,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/groups.html b/docs/en/html/groups.html
index bd191e81c1ec6abdfccb577cbb2b93f3c2436dbd..5552f8c3846758ebd3f09ba3d1032fffbce7b9f2 100644
--- a/docs/en/html/groups.html
+++ b/docs/en/html/groups.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/hintsandtips.html b/docs/en/html/hintsandtips.html
index efd36592f925be5eb381ffcaeb98062dec5a049e..8bb8e67a8fff2578b05ccf003ee727c42c5a7f43 100644
--- a/docs/en/html/hintsandtips.html
+++ b/docs/en/html/hintsandtips.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/index.html b/docs/en/html/index.html
index 3b9e8b21e854c2797159845469d7b9d690552a34..eab1028ba0154d6ef940f49a8671218c96f29fe6 100644
--- a/docs/en/html/index.html
+++ b/docs/en/html/index.html
@@ -2,7 +2,7 @@
 <HTML
 ><HEAD
 ><TITLE
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TITLE
 ><META
@@ -47,7 +47,7 @@ CLASS="TITLEPAGE"
 CLASS="title"
 ><A
 NAME="AEN2"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</A
 ></H1
@@ -56,7 +56,7 @@ CLASS="corpauthor"
 >The Bugzilla Team</H3
 ><P
 CLASS="pubdate"
->2009-01-05<BR></P
+>2009-02-02<BR></P
 ><DIV
 ><DIV
 CLASS="abstract"
diff --git a/docs/en/html/install-perlmodules-manual.html b/docs/en/html/install-perlmodules-manual.html
index 75de63c125923e8b829ee199040ce05fe715aa34..d20dd715dfe3edddc3e0ebe6344ab7566ad34975 100644
--- a/docs/en/html/install-perlmodules-manual.html
+++ b/docs/en/html/install-perlmodules-manual.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -36,7 +36,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/installation.html b/docs/en/html/installation.html
index 20bdd8678d8d4e9f62faaeac7014ce5a5d1ac97f..79a6d1cfea15eeb284fe263f1e38954bac7ad1fb 100644
--- a/docs/en/html/installation.html
+++ b/docs/en/html/installation.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/installing-bugzilla.html b/docs/en/html/installing-bugzilla.html
index ecda006ba54541ed4eb65813f15ed29046955f99..3995aa2e82aa0ff7099b58349d9d59d28f0f8eb4 100644
--- a/docs/en/html/installing-bugzilla.html
+++ b/docs/en/html/installing-bugzilla.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -36,7 +36,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/integration.html b/docs/en/html/integration.html
index 8f7bba54e1906696dd8d6e299c52aae60f770c06..85c8711e13b0614007f63b2864672d9361ad0f17 100644
--- a/docs/en/html/integration.html
+++ b/docs/en/html/integration.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/keywords.html b/docs/en/html/keywords.html
index e83282cca01d11f7632876f55a003fa5d9602575..bfa1800f887bb481f83bc05ff7c7fcea4cb0c399 100644
--- a/docs/en/html/keywords.html
+++ b/docs/en/html/keywords.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/lifecycle.html b/docs/en/html/lifecycle.html
index 2b1c3c593bacc03e5e7f03ccacdc6b03f3ca1231..f13390440d8026d7566dce363084a9431b910f7e 100644
--- a/docs/en/html/lifecycle.html
+++ b/docs/en/html/lifecycle.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/milestones.html b/docs/en/html/milestones.html
index 03a79df2b552cf07f756a227dba5cbf381832514..dbb3def022eb7c856224c7899c591b8c68160d95 100644
--- a/docs/en/html/milestones.html
+++ b/docs/en/html/milestones.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/modules-manual-download.html b/docs/en/html/modules-manual-download.html
index 7f8e1b66097efe39c2c8b2e4ab75f2284789c98e..725f13ec9c14a2d1fea129a81666fb4fed9d0d5d 100644
--- a/docs/en/html/modules-manual-download.html
+++ b/docs/en/html/modules-manual-download.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/modules-manual-instructions.html b/docs/en/html/modules-manual-instructions.html
index 72c2b5b825d262a79b90422a1242c9e176f08ff6..540901b49309702d4be953ac273303671451d2e3 100644
--- a/docs/en/html/modules-manual-instructions.html
+++ b/docs/en/html/modules-manual-instructions.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/modules-manual-optional.html b/docs/en/html/modules-manual-optional.html
index 05fb463e7d50a0224713531b53cba517cbd00905..89d6a8434da283ba030494c2ec048e8339a24225 100644
--- a/docs/en/html/modules-manual-optional.html
+++ b/docs/en/html/modules-manual-optional.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/multiple-bz-dbs.html b/docs/en/html/multiple-bz-dbs.html
index ba50208a9f713d8a8d7c2b8bbb0810e2ec49dbcf..728304f1e0b74561b7b545edf4509a535fe4af1f 100644
--- a/docs/en/html/multiple-bz-dbs.html
+++ b/docs/en/html/multiple-bz-dbs.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/myaccount.html b/docs/en/html/myaccount.html
index 3bdadf76d4e4a6868e7c6b12937d6614567dc5a0..d5704fc1d4cbffdcfcee9b1cc64d7bb302342f9f 100644
--- a/docs/en/html/myaccount.html
+++ b/docs/en/html/myaccount.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/newversions.html b/docs/en/html/newversions.html
index fe24676b7933fa15b9ca5ada2d88e964d9fbb58d..ef6220707ad52d91bc50292db5a15939182d6cb5 100644
--- a/docs/en/html/newversions.html
+++ b/docs/en/html/newversions.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
@@ -81,7 +81,7 @@ NAME="newversions"
 >1.3. New Versions</A
 ></H1
 ><P
->&#13;      This is the 3.3.1 version of The Bugzilla Guide. It is so named 
+>&#13;      This is the 3.3.2 version of The Bugzilla Guide. It is so named 
       to match the current version of Bugzilla. 
        This version of the guide, like its associated Bugzilla version, is a
       development version. 
diff --git a/docs/en/html/nonroot.html b/docs/en/html/nonroot.html
index e2b53374814a22292574ddce3bf4d9860bcd5f95..ac557a2e9a451798afeafe2a9316a63b7076272f 100644
--- a/docs/en/html/nonroot.html
+++ b/docs/en/html/nonroot.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/os-specific.html b/docs/en/html/os-specific.html
index c7dbf8e76b2633a8c312f107b97394ccf1f07424..a7fb7b9add54caebac3ecb2e8946537d75545411 100644
--- a/docs/en/html/os-specific.html
+++ b/docs/en/html/os-specific.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
@@ -110,7 +110,7 @@ NAME="os-win32"
         Bugzilla running on Windows, you will need to make the following
         adjustments. A detailed step-by-step
         <A
-HREF="http://www.bugzilla.org/docs/win32install.html"
+HREF="https://wiki.mozilla.org/Bugzilla:Win32Install"
 TARGET="_top"
 >&#13;        installation guide for Windows</A
 > is also available
diff --git a/docs/en/html/parameters.html b/docs/en/html/parameters.html
index eb499556953de76b1151560dd8dd6a5d465adc67..f11a756b0740012d83c8276a9800f48b8ce8f071 100644
--- a/docs/en/html/parameters.html
+++ b/docs/en/html/parameters.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/paranoid-security.html b/docs/en/html/paranoid-security.html
index a499d8195f3e2d81c8e040c830f0a8277dc99de2..da56718ea40046dea9ab21dccfbac57f0dd24467 100644
--- a/docs/en/html/paranoid-security.html
+++ b/docs/en/html/paranoid-security.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/patches.html b/docs/en/html/patches.html
index 317ab0ae01fceb449ed81d98146b3f80dc66ad5f..e519c254d3a175b1f4b3e5e0621bfa69a74c8453 100644
--- a/docs/en/html/patches.html
+++ b/docs/en/html/patches.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/products.html b/docs/en/html/products.html
index d9ce0d0ea5fb10f5b93009b4ef76da900b4fef29..aaee8da53500aa169c9e283c8d3e4d255f5cc9d9 100644
--- a/docs/en/html/products.html
+++ b/docs/en/html/products.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/query.html b/docs/en/html/query.html
index 578d7c6ab60f5f462a5d47907007b9827a0675c8..4f965d0e6b68258db13431dcb9c0a9720ca8be4b 100644
--- a/docs/en/html/query.html
+++ b/docs/en/html/query.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/quips.html b/docs/en/html/quips.html
index dbfa6b11ccba63c9efadb8d4fae72b36e0de3812..f07597ea69ee134cd795707f53ba02d9ea1d6617 100644
--- a/docs/en/html/quips.html
+++ b/docs/en/html/quips.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/reporting.html b/docs/en/html/reporting.html
index 28b773f5510ff0635e734a4b952560d9e6e879c8..2169608b20b6d0243ac8cab710fef4dada1517ba 100644
--- a/docs/en/html/reporting.html
+++ b/docs/en/html/reporting.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/sanitycheck.html b/docs/en/html/sanitycheck.html
index b4e46f73826b4653dc6bf3ba4d8e4b71a02b5c8f..8efb33eb27e1f7ce7b9fafb5bcf40455f8f31f0e 100644
--- a/docs/en/html/sanitycheck.html
+++ b/docs/en/html/sanitycheck.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/security-bugzilla.html b/docs/en/html/security-bugzilla.html
index c083f9a6dbdf59bae01ed6337e6d592d174be111..afdf8bab00d9c1cb16c17d9a72588ab8b4de9da7 100644
--- a/docs/en/html/security-bugzilla.html
+++ b/docs/en/html/security-bugzilla.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/security-mysql.html b/docs/en/html/security-mysql.html
index 4d429e7b70c19b540ebec944d74bf7fa73b0ae58..b95ad5e45481d82c9f542138ce0a90dacf29a14c 100644
--- a/docs/en/html/security-mysql.html
+++ b/docs/en/html/security-mysql.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/security-os.html b/docs/en/html/security-os.html
index 808dba3c4c702f24a5b31b5b1d62ec245476c5ed..a0c8f1189360c2d0b191aa12f8257bef3b78f35a 100644
--- a/docs/en/html/security-os.html
+++ b/docs/en/html/security-os.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/security-webserver.html b/docs/en/html/security-webserver.html
index 1101c99d8be4290c90cb44efffd571bb80bd8aa6..60035228366f1c8eee843b2555555da461827258 100644
--- a/docs/en/html/security-webserver.html
+++ b/docs/en/html/security-webserver.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/security.html b/docs/en/html/security.html
index a9fcb3ea883521fbca4a6ed30f47306f0c450547..86bcd9396680cfbc9e2fe943cb14bd4643f20610 100644
--- a/docs/en/html/security.html
+++ b/docs/en/html/security.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -36,7 +36,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/timetracking.html b/docs/en/html/timetracking.html
index 5d275ed9b93cff6c36d4fe42992d67364dbf255f..b2dc3fc3c6cecbf129871065e95843975b7ac5b2 100644
--- a/docs/en/html/timetracking.html
+++ b/docs/en/html/timetracking.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/trbl-dbdsponge.html b/docs/en/html/trbl-dbdsponge.html
index 0d35fb28fefa6c5a287c36b24ed41349923ca6c5..0da72b1ec1fb41cb12b9316e086eb0e08d6b9d9c 100644
--- a/docs/en/html/trbl-dbdsponge.html
+++ b/docs/en/html/trbl-dbdsponge.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -40,7 +40,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/trbl-index.html b/docs/en/html/trbl-index.html
index 212c8c585059198c1f936388ceb5d3eb63cf2ed4..eddabe6a08a3c4f8c5ffc0ec80de2e582f719f12 100644
--- a/docs/en/html/trbl-index.html
+++ b/docs/en/html/trbl-index.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -42,7 +42,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/trbl-passwd-encryption.html b/docs/en/html/trbl-passwd-encryption.html
index 7046a5c6f244e05cec59276a5fc3df10c56fd36b..bbf816df68d8b05291f9b65da182fbe71fc99967 100644
--- a/docs/en/html/trbl-passwd-encryption.html
+++ b/docs/en/html/trbl-passwd-encryption.html
@@ -9,7 +9,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -41,7 +41,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/trbl-perlmodule.html b/docs/en/html/trbl-perlmodule.html
index a738b663027c3188c6466ed020bf574f3cc10eb7..84287661bfd16d5709e88695d85a493237660fa2 100644
--- a/docs/en/html/trbl-perlmodule.html
+++ b/docs/en/html/trbl-perlmodule.html
@@ -8,7 +8,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -40,7 +40,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/trbl-relogin-everyone.html b/docs/en/html/trbl-relogin-everyone.html
index a9b09546380f643771ebe40c47f814b583ac5a13..39ea713e0cbece4fdcf1d41cd1c21078875a2e8e 100644
--- a/docs/en/html/trbl-relogin-everyone.html
+++ b/docs/en/html/trbl-relogin-everyone.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/trbl-relogin-some.html b/docs/en/html/trbl-relogin-some.html
index 6455efb412af583fc8e90af2e43ded72e303ce16..2e96b3f9060c225d121d34775a5f256779f1714b 100644
--- a/docs/en/html/trbl-relogin-some.html
+++ b/docs/en/html/trbl-relogin-some.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/trbl-testserver.html b/docs/en/html/trbl-testserver.html
index 770654e370a919616488d10173b0048ce99db1fe..37544eb856611b768d1f073ea1acbe86614d8c5d 100644
--- a/docs/en/html/trbl-testserver.html
+++ b/docs/en/html/trbl-testserver.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -40,7 +40,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/troubleshooting.html b/docs/en/html/troubleshooting.html
index b0ee12accd323783d52c591ca2e9675cc9260d86..1191043333fcd9e91e85603e693f577b22936435 100644
--- a/docs/en/html/troubleshooting.html
+++ b/docs/en/html/troubleshooting.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -36,7 +36,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/upgrade.html b/docs/en/html/upgrade.html
index 33c644c5b831854f253e6fa5d16328fb93e8fada..2fcbcfa5d734ed65a459fa536d620727bda9fea2 100644
--- a/docs/en/html/upgrade.html
+++ b/docs/en/html/upgrade.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/useradmin.html b/docs/en/html/useradmin.html
index 2e2b9b7389a383ae7c2071cc08fcc0a4bc6cb02a..7fc74e920c6a82b07f65a47410f61f938709f95f 100644
--- a/docs/en/html/useradmin.html
+++ b/docs/en/html/useradmin.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/userpreferences.html b/docs/en/html/userpreferences.html
index 682bdc63f6a41a9775c3ff92215ff65ad314aae3..ab6ab86edb298177285f4317999285191def5382 100644
--- a/docs/en/html/userpreferences.html
+++ b/docs/en/html/userpreferences.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/using-intro.html b/docs/en/html/using-intro.html
index ad03824feb84c2074543d1de0d1b17536a6886e5..2efe895d2cd114c13ff610c456b7956379566696 100644
--- a/docs/en/html/using-intro.html
+++ b/docs/en/html/using-intro.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/using.html b/docs/en/html/using.html
index f5212071bbc24b54de3a2de6767a184041566cfe..9a22ee2aadf72f3ea1f18ef0d5121167806b061e 100644
--- a/docs/en/html/using.html
+++ b/docs/en/html/using.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -36,7 +36,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/versions.html b/docs/en/html/versions.html
index 8450238f1dd44a3c5785c8b981ef00e6f453f06b..e713afea3f4960d2dbcb312c34b14fedcf86e2e0 100644
--- a/docs/en/html/versions.html
+++ b/docs/en/html/versions.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/voting.html b/docs/en/html/voting.html
index 219e5a62fbb37803b26c217b2c3639b7ba64882c..3d4ebc26ec9041cf5cdc06c3089e9074817167df 100644
--- a/docs/en/html/voting.html
+++ b/docs/en/html/voting.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/html/whining.html b/docs/en/html/whining.html
index 4fc2ae729ac91bad0a820e3f7a4556780c5c2120..89e98f3490b3d086b01a074558764f8174b49439 100644
--- a/docs/en/html/whining.html
+++ b/docs/en/html/whining.html
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="The Bugzilla Guide - 3.3.1 
+TITLE="The Bugzilla Guide - 3.3.2 
     Development 
     Release"
 HREF="index.html"><LINK
@@ -39,7 +39,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->The Bugzilla Guide - 3.3.1 
+>The Bugzilla Guide - 3.3.2 
     Development 
     Release</TH
 ></TR
diff --git a/docs/en/images/CVS/Entries b/docs/en/images/CVS/Entries
index 6b58b4c7efe2bb477f442aeba2993762559bffce..d9ae19d02bc1d38828d1dea158a08c8bf7d9c17e 100644
--- a/docs/en/images/CVS/Entries
+++ b/docs/en/images/CVS/Entries
@@ -1,7 +1,7 @@
-/bzLifecycle.png/1.4/Fri Apr  4 06:48:16 2008/-kb/TBUGZILLA-3_3_1
-/bzLifecycle.xml/1.3/Fri Apr  4 06:48:17 2008//TBUGZILLA-3_3_1
-/caution.gif/1.2/Fri Apr  4 06:48:17 2008/-kb/TBUGZILLA-3_3_1
-/note.gif/1.1/Fri Apr  4 06:48:17 2008/-kb/TBUGZILLA-3_3_1
-/tip.gif/1.2/Fri Apr  4 06:48:17 2008/-kb/TBUGZILLA-3_3_1
-/warning.gif/1.2/Fri Apr  4 06:48:17 2008/-kb/TBUGZILLA-3_3_1
+/bzLifecycle.png/1.4/Fri Apr  4 06:48:16 2008/-kb/TBUGZILLA-3_3_2
+/bzLifecycle.xml/1.3/Fri Apr  4 06:48:17 2008//TBUGZILLA-3_3_2
+/caution.gif/1.2/Fri Apr  4 06:48:17 2008/-kb/TBUGZILLA-3_3_2
+/note.gif/1.1/Fri Apr  4 06:48:17 2008/-kb/TBUGZILLA-3_3_2
+/tip.gif/1.2/Fri Apr  4 06:48:17 2008/-kb/TBUGZILLA-3_3_2
+/warning.gif/1.2/Fri Apr  4 06:48:17 2008/-kb/TBUGZILLA-3_3_2
 D/callouts////
diff --git a/docs/en/images/CVS/Tag b/docs/en/images/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/docs/en/images/CVS/Tag
+++ b/docs/en/images/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/docs/en/images/callouts/CVS/Entries b/docs/en/images/callouts/CVS/Entries
index bdc9f75226e145baf3a354b7a847ec7cf77bffd6..df815172a8c65860c7d7b45a821cddbf7a77c619 100644
--- a/docs/en/images/callouts/CVS/Entries
+++ b/docs/en/images/callouts/CVS/Entries
@@ -1,4 +1,4 @@
-/1.gif/1.1/Fri Apr  4 06:48:17 2008/-kb/TBUGZILLA-3_3_1
-/2.gif/1.1/Fri Apr  4 06:48:17 2008/-kb/TBUGZILLA-3_3_1
-/3.gif/1.1/Fri Apr  4 06:48:17 2008/-kb/TBUGZILLA-3_3_1
+/1.gif/1.1/Fri Apr  4 06:48:17 2008/-kb/TBUGZILLA-3_3_2
+/2.gif/1.1/Fri Apr  4 06:48:17 2008/-kb/TBUGZILLA-3_3_2
+/3.gif/1.1/Fri Apr  4 06:48:17 2008/-kb/TBUGZILLA-3_3_2
 D
diff --git a/docs/en/images/callouts/CVS/Tag b/docs/en/images/callouts/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/docs/en/images/callouts/CVS/Tag
+++ b/docs/en/images/callouts/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/docs/en/pdf/Bugzilla-Guide.pdf b/docs/en/pdf/Bugzilla-Guide.pdf
index 50f1678c72cc2eb74c22369d0b6f77a326d0a17f..dd2938ee68d5b3d949b5101c0068533e225fdc58 100644
--- a/docs/en/pdf/Bugzilla-Guide.pdf
+++ b/docs/en/pdf/Bugzilla-Guide.pdf
@@ -3,7 +3,7 @@
 << /S /GoTo /D (1.0) >>
 endobj
 4 0 obj
-(The Bugzilla Guide 3.3.1 Development Release)
+(The Bugzilla Guide 3.3.2 Development Release)
 endobj
 5 0 obj
 << /S /GoTo /D (2.0) >>
@@ -1928,7 +1928,7 @@ endobj
 >>
 stream
 xڍP�N1��+<�
1����Z*uD�É�R�*A;���B�ó������C��*8!��26���4�H\ȞB=~a��9��i�����CM�_A��
-j-23��S��JgXc�:�/�a��ks:��� (H�.��\���X޿���%EF��+���P��2)nQH�ɻ)��l}���\^�_yrl[�qrj����Kw.b���_��Uendstream
+j-23��S��JgXc�:�/�a��ks:��� (��.��\���X޿���%EF��+���P��2)nQH�ɻ)��l}���\^�_yrl[�qrj����Kw.b���_�XUendstream
 endobj
 1282 0 obj <<
 /Type /Page
@@ -1954,13 +1954,13 @@ endobj
 /ProcSet [ /PDF /Text ]
 >> endobj
 1294 0 obj <<
-/Length 525       
+/Length 526       
 /Filter /FlateDecode
 >>
 stream
-xڍT�n�0��)��HʤĎA����B[ہ�(Y�I�p��|ɱ��^�{x�S�	�?����=��Q�4�%�u=�p����bf/_x3Z��W�%٭�C���"�3뫻k$T�b_�I���Q�)+����8�p{^�6:�p��8��2���q9Mr6�%G)�L��?m��&,J2L �x�#.�E1�5n";8-�brB�)��#��ӗ�0�(�@%���+����X٠-�1N
-��h�viV��0�2_���۲�p�CJX��(Ѽs������SK���	�hEqzx/}������#�I
Zf�(t���ȭ��6.]h�^:sN1B�~��0�r��`O6��6޶ױ���9vv�z����q�[%�O
-���2���njjY7A�
ۧ����ע�����FVr�Cmk`ͪ�_2��œJ��9�e�N����lވH�u��Cօ<�޼���������A/.%�9�?���1��y~>�S;N�5���m�:�d웲{���v�d��0�����	^%Aendstream
+xڍT�n�0��+t���&)�{��)(tk{�%J�� ���w�ȱ�
+����զ	�MJ��&0�K�iG�\O;)�1+(��'ެ�K,*Ɠ�V�����<Xp���5�p~�ˤn���Ҍ�zX��ae�=�CY8r�c�G����q9Oj���F%�J��? ly�$eX��#_�AAbd0n";8-	RrrB�)+� L����q�I���a�K\��+�8G�,��h�fu�K;,s�u��-�/�=����Ϭ���a�Ӽ������iq)E�(�P��ﳒs�C>J��`T֌�D�yP��ʻm�҅&�����$u�=I-��	����x�^Ǻ"*�����UE0t��:�Z�b��+dx�����n�v�Ou�c��E���z�F^
+衁xEP�j���/n�6~lpY���a;�6ۀ72���F�F�1�B�^o��T��������g���?��oR�������rIa�86�kn뱇����7e������O�P�r���
���%@endstream
 endobj
 1293 0 obj <<
 /Type /Page
@@ -9070,9 +9070,9 @@ E
 6Y۽}D���PY�'�f⣱G^дL�oV�:��*�J\�˹܂w@e��7-n)�`�<���)_-)J�
 Tl���kU~^O�ϴW������5��<�LS�C�+7�ü��Øj���T�_�|�i�.�Qj=�|4
����Y��g�T�+���ڄm�@��?6a���	ϵ�	�B^Z�ۭʐ��8�I���̶��QaX�%1�j`�w�=��y��a��Ls`!�Y付�e��B��=aROb������M۬u�K�5%����oG(G~��[:��ʡS�*�����N��*G��(I�rDR9ޚ�D7�ʜ��߭�1L�«!6�ڙ��'���+y.���L����$�L��Ҫa�N����P1+�ɜL��<��tif���P���QwڈF%[�t�FV�0�3�gل���eLL-"�(�|/�Pu�q�' ��1t�4�g�=�9 $j"�R'u�L��?�V�nyR��&qV�m8ssC"�f@�����۵=!7g5�j{Q���QǣR�lQ���Z.���k��JvH�uk1�ng��;��N�,�ܝ�f(�l�N
 �*I<�)���ZVK^G�j@T��')�:Q�nS��6-ȧ�j��箭�X�Hu,����Zl���q�Z �Q�׺a�qH���h�r�Bl-2	�$E��*1J��l"�.�'� 6��f���&���X�X�h
U���H�ZZ������(�E���tc��_�`��2��!����N��6�z�v�.]��Vo��֞u:(�B��qyQٱCx��!)�`��4A
-E�z4� ���6I�� zU[��.0N��<@�%9#���5u{���,dl9"@��>#�7H?tZ�pI�m�2�a����k&�E��֐����=�n�i� �v[c�J�j�D�R���C\Q��<4�2��}��Ԓ��Z
�g�K=-�_�JKR�c� {��.�.#�z��-%�ɦR/2��%��Q6���A��b�U���?�x�%���hL�s�|�(�����>��$��
�������T��#xW����mh4�.M�	O@����*	]s���z���f��h�t�?C
6��Y��2��3ch|�k�3�.�NB��7l�!��W������'���=��'�V�u����}3�1��i$�B{�<���R�`<8�	X�M��9�v��oyި�:��R�Jly�S�kS;�%lJ<�2�	Y�6�����_;4�ֽ|8ݕ�����4ʺ�ϼ��lx;3��7bi�r1S��3�	��dz�A�(������Ԥ�������I�v"��'/S�<�t���r�y||ď��`�8H�έl��NG]��*a�b��n�ͧ��ue�D�#��f��YtK��[+�ɸ��\YzjgFn�/�������y��(+���@C�ޙ@q'����Yd�ͣ�ٶ���N���F��,f�_ܲ8M����DIye7Lp�a��En�Js%�PrdD>C�R��x4p8,�I�z9���"ŶY�����O�ibz��+PgPY6ч�;	�"K	RH�Q.{8A�㯱�2�y��1���}�15�$(�3�
+E�z4� ���6I�� zU[��.0N��<@�%9#���5u{���,dl9"@��>#�7H?tZ�pI�m�2�a����k&�E��֐����=�n�i� �v[c�J�j�D�R���C\Q��<4�2��}��Ԓ��Z
�g�K=-�_�JKR�c� {��.�.#�z��-%�ɦR/2��%��Q6���A��b�U���?�x�%���hL�s�|�(�����>��$��
�������T��#xW����mh4�.M�	O@����*	]s���z���f��h�t�?C
6��Y��2��3ch|�k�3�.�NB��7l�!��W������'���=��'�V�u����}3�1��i$�B{D<���R�`<8�	X�M��9�v��oyި�:��R�Jly�S�kS;�%lJ<�2�	Y�6�����_;4�ֽ|8ݕ�����4ʺ�ϼ��lx;3��7bi�r1S��3�	��dz�A�(������Ԥ�������I�v"��'/S�<�t���r�y||ď��`�8H�έl��NG]��*a�b��n�ͧ��ue�D�#��f��YtK��[+�ɸ��\YzjgFn�/�������y��(+���@C�ޙ@q'����Yd�ͣ�ٶ���N���F��,f�_ܲ8M����DIye7Lp�a��En�Js%�PrdD>C�R��x4p8,�I�z9���"ŶY�����O�ibz��+PgPY6ч�;	�"K	RH�Q.{8A�㯱�2�y��1���}�15�$(�3�
 o��V�a�rڿd�w���e�]���t�#���)�
���@l�q�AH�!´H�;h�1Ta�LuO�!�r����o���q����Ϊ��l��og��aN:������uo:��<��B��.Y��UzrF��"�����o0�ZaE�4�G�N��.��j�1w2�nKU�ߥ�B>��~��VB��$��yB
-/��Y��m!r�ޟw-a�o�J��� ��]�#�g@~)¯:�J����:��PR�?��Z��bV5�������I��^�,C0O�|�^7��d��$��w���N��~h;;�$4�ş���������Ʋ�vpJ�Y��6�s��{QǘL���NW���w��z@��*��!.�~b�?ms?�L��}UD���Ǔ�ıa<j�.�z��W��yiendstream
+/��Y��m!r�ޟw-a�o�J��� ��]�#�g@~)¯:�J����:��PR�?��Z��bV5�������I��^�,C0O�|�^7��d��$��w���N��~h;;�$4�ş���������Ʋ�vpJ�Y��6�s��{QǘL���NW���w��z@��*��!.�~b�?ms?�L��}UD���Ǔ�ıa<j�.�z��W����iendstream
 endobj
 2091 0 obj <<
 /Type /Page
@@ -11795,22 +11795,24 @@ endobj
 /ProcSet [ /PDF /Text ]
 >> endobj
 2749 0 obj <<
-/Length 2217      
+/Length 2213      
 /Filter /FlateDecode
 >>
 stream
 xڕko�6���
-��@LK�{��!�n�-�4�doq���ĺȢ!JI�_�-;���!9΋��Y��,U����D���`v[?�	e)8�)���oV?FѬPE�����,sUdA4�"��$�g�տ�?l̮��b��`��[ߛ���{^?��U7�Y����7n���(SE�*�륀:�8��*���Ļ]��܁y>���I1v0��
hК��v�қ�v�c�w�=��"L��\'��O�8���ˇn��9����u���m��:TO��@yQ��(j����8�Ԯa�#��@ea�60`��F��#t7���[�x�Q�~�@��e�*�l��*�0&���CC�)��G��n,�K0��D�d>��1ʗ'*Ȁ(��8@,]{W�+��K}�H%q�
->ݚ�y��3�c�tX����N
-f���Pբ]���K���ye}��k+����+���aOu��Yg�lg�Ҳe5X6�d�lB�����څN�O��Lo��eDi+�tv	�s�kB�\�^E{�Q���

;<��^��vc�oI2�"M�(V,�
-�I�3UD���ʉ&�b���l�Bb0� �(��p_h���762y�k�x���nzT�w���L-3�b�=֝k����#�d��,����|��.�1ei�����#�1x�>�\~��� 8�?�����5QP��`n�!�)LDI�D1����k�"eK�#��t�kN9f�k��ml�� �����a���(�/w��B��%t���Үw���gwޚg����@�QgbN�P�a^��o��V���P1B�%*L"�u�6�#�p(	����$���
�e�+��|ҊZ�~��<B�?���z��2���9�˦��D��z,X�|4�������`?'䷫��ߝ	H�C��S���]��"���&E�ս��>u4^fG18�%�������CH��eIfD�Q��n�i�d%vw�"�J�9�o��?�	e��4����d�$P:�ԏ�*�����o�7;[֘"J}��b�\����f��H�@ �� x�N������=8R����p�G՟�K#��0��e�y�v�Oh���Z���ۖP�ݍs^��q��X�xr�+�?����e���Bq�5�e�5���(W�ҝ{Aew���6��rE��l��A���Pk�T{�s�3�����xF����V��!���QE��~��y��6�^J��n,����í�6݊?��,�L��nj�+�[�1V7�#tk!���T�V���Iz*��Q�(�D�I��-qdsp�#�T(���RlДC���0U��C�1���N����B�1^���KH�Akx�����7�.�}��4�ԙK�#H�M�����J��q�u<JV\��GPTy_�}׹j(�w#ǿ�n�s- �;b,�I:�ቐjI�6����(o��.;d弻��R�Y��$�Plj$�)���"�zBWq�����o�����y���Cg'���~c���=�k�+,����S��GT��8��\�O� """��"�����s�
-��6�G��9����8���Ͱ����qE�q�OW�W���@�Gܼ
-���y��c�4���H�0�4�B�̀�.N&����"��i�N�c'K�|��3d
-�?�,�D�c:�Y:���3D���!�>�Ӹ������0ގ�-��K�$�'E
q�B"�`����H�@��h�B^;
-�1P+W�ia�6��� ���O��W�k-��-I�'+�z��m���L^f|`ڍ���V�>�*΂|��$�������v����w��>���w:�D/m��T�.�j��e�p�<��b�97���t��݇9���� DW���?!&��W~�/�� �dR����
-����߉+��խ鰹��9�'�D^h��W�����Z�gc��3�_��M�RL�SH�4dbn纁z�H���w9�!��LX��ņC�<����HT�į�v�̅\��>
-��tO�*xihyU��-#��Y'�?�Ai��i�:B�����eO��~K��H/�ԝ��5�3$?�ֹ0�O(�K�
-��T�6���C����'1���;�v�����h��gטUǦ3?tҸ�+MQ�}۫q��*n�_!#�������.X�#���;�(��6��"
�#�~��q��0-���v���Km�s�E��DY-x��������lendstream
+��@LK�{��!�n{[�i��vq��DǺȢ�G���߼dˏ�8��p8�ʟx��O_%:S:��$߾�&����_P�3#}�|��>&��bO��I�*K�`�Z���N�ſ��m̮��l�#o���3UU֏������*3����7���� QY
+�����%�:18��*���[�Roꀋ4����I6�w0��HP���v�ܛ�t�
c��o;�ٙM߹F���f�7����-߭�c
++�v�e���kT�
+�#~�S^�e %��ol�<�;���D��S���
0�n#l��y���ʭU<�(R��Hv2O�^�L�VY�D��m_n*�����+��Tc'��O�q����� ��UsW��G�z��'
TF��ҭ)���B?�J�����v�)?T��臢�M�^
+fM��M��‹Y94�3��7݆ۗg�]��ֹe�jЬ�'Ѡو���ᡶ3M��(LgV�%ʈR<i�<������?�&�';��+vxX����rc��fQ4m���R,��d*�g*4GםI����y�13����A0{���f���doW<im�'��Q=ݙ�Δ2�5��sٸzk��xF�LS��?]U���
����mѸ�z4��T��ϟ~�!x����98�0yM�e�Eכ���q�`
+SQR?Q_���_��b-R��=I׼�c��J�@x���~������*V8��
L��vg�on��a�̖vu�A{*<��ּ��kd�"�}F]�Y8�}�iF'������O�A��(?
+�������n�C��p/���N?�[��3[�g!���i��ǁ���C�̨��(C�]ÿ�J4&b,VC���i����`���׋���\	H�5���\?߻���	�U���G+�C�Z�� ��dyG�'�Gȡ!r�˒̈bQ��n��[�J��DE��!��~�>�G�9����&�5�
>yJ��QZE�}�t����ag�SDΠ��R̐;����Z���3�	Ă�\ݮ�F��{prTX���~nd��F�>�0����M��
�@m�}���(P��ƹV���8����X�x��+{{-'QuKfU��"`k
+�kڒ�P�4�$�����3�m��b�%;� ��(�Z0���u&���V;�����\�	�t娢&C?s�Ay]j�&�Ki�؍�7۱;!�h�&��g���IߕUI�J��C���1Ɔݚ����)%U��5>�G�
+(G�G�>HE/AvV;qKœ��w��v��)6hʡ{�����!�O�Q����Q��V�9�KH�A+d�����7�.�}��4��#��Eަ�v���B��q�u<JV\���GPT�X�}׸�ϻwÍ��v�j@|wr-\��QO�XK���ItxHG�x��e��U�ukq�/e]����%!O�:�$	=IQ�G��]�5O�rT�(�!�΂�z˛���8;v#T���.N���re<�\��+�~�bQ�����k���""�B�Q��>h|~ͪ�{j��av48�c1PO����˱�Ii�W  �p�y�SY���ͫ�����5��9��FR���Qg�ez\wq22l��p~�):��N�.>d��zY$���x�9�x��yg� S�C}�UL�7
+�ARb�h���^�8��Q�ϊ�<�%W�Hr����/"u_>�:(���p@ɍ�yO�Jj-%����d%Io}��ɫ��;|�>H�?Ta⥣��䟧�30�m��Q�o2�=�="����]��C��]*�0�ذf�p�<��B�9/?t�lK�@S���j�9�mWAx.8���|L=��
�ƌH���3�,��kA�7�)*k�`cSM�	�Аկ2{�p�x�ʪ+g�vq�T�B1azH!��p	��kz�SZF�Gd����)��_WB�.����]T-F�R%~=�"Wvt�����<t�����E�ٷ��#d�� ����"�)��a4=
+
+`�=�(�-9"@=_Qgs
+7�D��pd\���>��.�*0�PE�ϮT�0�p�+��$��zg��\�2�r5����5dԡ�L�]4.BScO���\i���[�W�H^>���棢�FF��DW��
b`ne+�s{�
�?����0U�g��v�s��6ҩ��,;P������ʅ�N;�endstream
 endobj
 2748 0 obj <<
 /Type /Page
@@ -23681,16 +23683,12 @@ endobj
 /Filter /FlateDecode
 >>
 stream
-x��T}8Ti��Ҭ�I>�'%_�/��-�f�壈3�8�L��X�ɪ6�
-Qڈ)[6IZ*�ح7�Y�Rz�%)՞��j���^�_���k�u�s߿��}��s��y��t�c��r%-Yt�pEPA(D�ɤ�Lk��1�!�PW�����<�쩟�=�p0Q4��I������(�}�S�� 4Z�S�-j
2a�O�u+�n�ԍ��`�!!��
-�@x0J�f Á���0��ȋ&蔖3 @�`Bm�%<X$��G"A�8��0�@P�P̗@�a�p(�Q�G�yaI�pDD*����u��)�M 
�0*���đ0J*8J�bIA	@�R�+|�	�h*7%&�Eb���C�� �/�	��������'��{H$F+vc���5 $��4��I�
-�Ɛۿ
�����Ep�a\1 �wŒ��c�0��0���TV`�\�:S?�����Ob��3s�!Fo�_���:��B!���}�M��(F�9h|�?���հ@,����
-�uF԰�t�[!�#��p	�)(p_��B�)�����q�O8‹@�S��QP0�_65E�/�*�������'�-�
-z��*��~!���I@�%X�[{;�c����,
-և�*��	�:e���{?����|��0��~��
�p��1)I��5�aQg�K��?0�(FR[�HL���
M~��L6`@,k�~�X)�G�b�V J��8u�j��w�%0��Ҍ��o��<D���u��5��j�����bY����ږ��/��!c�;�%��/D7=��t7磌��T���͉�ov9gz��r[��8FpޔC���1��=�Ul�~]�ޫ�O�M4h,����G̤�7�Hg-x&���K?��U1�Diƙ�ǽSzF���^�v�JՀ��N}��ɓ��lV��p�t�Q����ĖQeO'���l%����W��4�
-��[+�>���N�<d����w���3�t7~t�m��X1���B�U��>����ژų:�ݾ��SU͞}}�ME����v����N<������'�u�Gͧ��j�����l����o�!�-�zo]�����G��f'޺t����!Y3e�-���mk�jh����k�c8��$�ͩ��;7���R_/oB����e^b[�D��W�
-n/;���Q�=�뜟�������<��͈�Kf�o�Q�Z�ꕽ&=�f��R+��D�x��#�R�[3xbU�1+qN�q���I�g���Z��}�}�2'��Iۡ/*��p�w?k��,I>y2�{wǠ���6��H�]g���������"���o�Gw�����ܺS�L��;^��mT�K�S�޼�ES����SN��x��k�V[[nK�ӛC�7��B�����vQМ4�%���2�����#�����ڶ�TW�����g�7���@��a�����]����O��[�V�����\�V��m�?�k�z���U�Ǿ0���p;��邕yyL�@Y)-Iwب$]�{,Gs���
�!�H}V;X��b�kMH\ǃ����J<{�GSg���J��g����K�C���N���*l	��e�ћ���ji~Ց��N�5]�듲�\��vl@CՑAO�'�(pJ�D<Dj��-Tޓ�V�y�m�1�er�N��)}������dm$�<x���I��œх��&7ј���{	I�TI=��Cvi��hw�?�\%K�1������LY�������
-R���~Y���.[+���F�!X�A�D�b�=$d��᭭C˘Z�!���)�{k�[���UլZ&HL(X:�*����
>|/a������/��\���ȩ!�1�W�ϒLC��y���r��$�(�~�}������Xr伙$U��c�m�7����>|�������9|������:g�W
��p�,�\�A�{�a^����R���=�|٤ׅVu�Ma�v�m=��[�gd�w>^�vz����/�d]is�}�N�΄�v�~ӭ��}^�rxJY���a$0�p/�4�jHOHm����e�ߵ Mƛ�_��X��ڝd�:����6�e|�ܢ����6���iN��ԵN�D�QG���0��H���j��m4/���$J�-�j�Ѭ�|�Ҡ��:�f��¦�.����7�L�=��X��\z�k������<!�$	����$�endstream
+x��T{<Ti�KiV��K��䖹�5�\6�4(�"r��d�3�s&3+5Y�&R!J1e�F")BK���ƛ"�XJ/�$��3S[���c�����y�g��3���{����y��<�5��<,^���%��t�n��H0�ԚiM36v�a�D0�
"a�+���,{�goO3��P�#����k�p2��E�T�-��y*��E��a@F� ����{�
+�;0u��w�qH��Ea�<.���p x��\�!�	:��L�B��P�`1ʩE@�QAP�B�>�$�$�+��Px85JD�cTD�Qb�A\�������m�dD�sE,���a\Q��
+���XBP�����
+�!�HB�Ą8�(CDPV|�`�a>��0AP2��|:�u	��b7��z_B� �Nc�����a0Ai��+�p��oq�H���2}w ̨: �
+$������ӿ�*�ә�	,�$�~;����
�0z���f��Y.8Pe��o¿�@Q�@���1��ZV�|�����+H�j��S�fҙoA�X��a�7Br#@8$�����P���R
+Xڲ�Q�7�O��FA�(o|���E38n�^�>�T�ޔ���DH���U��B����K�d-��v,`Dz��Y*��U�#bDu�d)�}�~X����b<��lk��8$�1)I��5�aQg����?0�(FR[�PD���
M~��L6`@,k�~�X)�G�b�V J��8u�j��w��0��Ҍq��o��<D���u��-�j���¼b_Y����ږ��/���c�;�%��/H�_uz�w�UkL��}����7��3�ma��EW#$oʡހĘ�۞���6L���z��!'�&4�[���#f���s��<jn妟M֪�V�4�L��ޅ)=#�Lj�_�z�j@�r�������K6�NY�G����@�|b˨���J�h��er��+�Jm�]!���ku'�>d����
w���3��0~t�m��X1���B�U��>����ژE�:y�~��SU͞}}�M�����o�UM�_'JZ����v��:���SU�gvi�f�t}_�3���-��l]���QI�U��f�k�u����5C�f�:�[/�����4��o��=��y�p^�I|�S9�wnL��^ބ��?qʼE8��:^M�Z6�^vHCO�N{��9?OW/�-��*y6�+�������+{Lz��:��,R.\׉*q��G���/�f�ĪbcV✢�"Uk���Z	+�)���4e��'m����S�y���Q��$���4�u��ZR�ڤ�#�u�:��kXp�i�/�+$~�;����o�֝zeژx���2mol��]ʞ���},��tp_�~g�r���;�^���r[���"��a5��10�W������!.����7'?��P95U��ֶ���jŞ���\w1z��N�A�f���؅�X��f��oe�(ͽ��N�����Sx���WQ�Qex��J����3I�.X��DŽ��Ғt��Jҵ9�r4g?*��z���g���.vj�ք�u<Ȫ����ij{4uf�/��dx�*�����Y�D4�)���~����_f�Y�'���W9P��_��>)����j�4T��y����K�C����B��=��a%��>�s^&��Ա�҇�io�O�Cb˃Gj+���^<]���ar���Q��GH���<�a���&�q��S�U�4�;_!iqonΔ�nxqjo9{y,� u���u�/貵Ÿ<�k���4K�+��CBw���:����r�_�r��&����~]Uͪe�Ą��Ӭұzz�ܐ��&�(}���b``��E1O����~��,�4��ǯM.wH0O2������_,m0�%GΛ�Se��?��V~zs����s���qY��j�#&�I���asՐK��r�5Ծ7�V����-E1�h}�#̗Mz]�iU��nn����ݾe~F�z���1l�'�H^��L֕6�ݗ��L!k��7�*���F+G����FcO��N���Ԇ]��]v�]�d�	媍Uy��I���m#}P�wA�-�[�im��t��@]��THX=pd�]OcMWq_�Tm�֣���╄i�%_�<�5�oT<�U��l�b[ؔ��eS}�V�����t|�����KOЯw-���_�B�+�!�Ģ <��;��%�endstream
 endobj
 2842 0 obj <<
 /Type /Font
@@ -23699,14 +23697,14 @@ endobj
 /FirstChar 202
 /LastChar 204
 /Widths 5513 0 R
-/BaseFont /PCMNLT+Dingbats
+/BaseFont /NDZOTQ+Dingbats
 /FontDescriptor 2840 0 R
 >> endobj
 2840 0 obj <<
 /Ascent 708
 /CapHeight 708
 /Descent 0
-/FontName /PCMNLT+Dingbats
+/FontName /NDZOTQ+Dingbats
 /ItalicAngle 0
 /StemV 0
 /XHeight 400
@@ -23736,7 +23734,7 @@ endobj
 stream
 x��wUp]˒��e1�3333X��333Z�`133�b����b����~o����&�D��]�Y+W�ʪ؛�XI�^���(ao�B����P��5vu�������1�1�Ñ��:�\,��Č\�<�
�)@h`a0sssÑD�<�,�-\�T_U4�ii��i�+`���?;�-���܀6��@;�?�퍪@ ��0��D���$T�
 _�@;���
@����� gi�sR���6�X�L��L-�*͙���3����4���
�at��Ep�:�Z:;�yX:̝��\����`igb�j��?v3��	98��������d���l�d����UIL�<],�\���l��
�7�ijo��WI�����Y�9\�.�2L-�l�<�����d�7
WgK;�2�8͍�Lm���`�`�՝�	�O�98�x�������`���1c�cf�����OnsK;8ƿE���������ÿ�܀N7�ꯙ��C������`
-4�cT�w��@��S��O����W�_��&�j�����<�+�����������s�����1�W����������0��@�]���A����LL�0Z:KXz�M�,]L,�fF6z�����)�����G˿��gfb��������_Mg��hg������7oFQe1eI��M��R�������b�V����,�����xӳ��Y8��\��.Nf��"��0��\��8Yz�t�����w�����J�_`��L�M��U#;�?�����&�NN�����)����8�4�[]�7�
�J��p������c	u(mT+*����O���4|�
eh���h�\<sx?��9�чiCٛ
+4�cT�w��@��S��O����W�_��&�j�����<�+�����������s�����1�W����������0��@�]���A����LL�0Z:KXz�M�,]L,�fF6z�����)�����G˿��gfb��������_Mg��hg������7oFI5m	q��M��R�������b�V����,�����xӳ��Y8��\��.Nf��"��0��\��8Yz�t�����w�����J�_`��L�M��U#;�?�����&�NN�����)����8�4�[]�7�
�J��p������c	u(mT+*����O���4|�
eh���h�\<sx?��9�чiCٛ
 ����KJ�_��I��I{Ĩ_��q��}�SnB��I�pwRYE��
�`���	���:�ԭ ����ዟIZC<Frj]��9E���#�����p�/��<��xXr^7D����\<A���ޑ4�G��6�B�L�#�\�������#�WX�'�����#Į�N^A�Is}�C��{�Mf�ķ՝��I׮2g�k��'���fKu#��n��9����.p�Ǐ�|;����"Ra�! �Aב
 ����_�l���捕�ո�!{��gpW�2����gc���,������d���l��	֠�[`��(���>�,�u� ��As�ȫj��s�l�sT��d�w^s�MMS�x�����9I1T
 0��-�HC���[QܓDc����
�Z�aη~�G��f7�c������]��Ǩu����G��#�pKC=ћ���χ�9i��br��^Uu�<�Q�K�?�	�Fix�e�yL�W~X�d�ъ<Kv�������>�'-&22<jFj�֮0L�<���M�=0a޹RE4f"���Z�x��U�ҝ\�ɮk:M?:6��}:�b�5��j��a���a�Q���RMIs�Ͱ�F%�KM�֕�����ѽ #&H�+\�y�3�f w)EK�ko0���m�P�A��*x���Q���9D�������i��MJ�y�F��;1�Ŀ��,��6���@bw����w�ѥ�P���O2��t+?��яu��f�������Ё�[�t��N�\\�O �/+?�
@@ -23784,7 +23782,7 @@ Yɳ
 (^9��4	��&�,��T�$[n��~%oD��r�}GH&�����
�wp�y����Ü0�1҆�&z�]�Q��l����]���L���</��8:�Q�iSk���ȳ�����Y>��n�
���E��08(W@���P)t׬��2�;��u����pܔ��	n��ׅ7����S�V������R3o=5�w3���Re�!�/ӾJ�Ғ����;i��ЫPÆ�p�Y�-�M����P��9}�<����h���ƭ�LB +�6����wj��8r~\��#!<��l�X?���	��Q�}YL�H_�k���&}Y�?/=�^LSd��]��dNPlu�Q�)��t���cjB���#l[L�D�@�7��/�p]�F��Mn�p��#�[/G0"y����k͏�OR)N���g�����w8`���e�/w��+����lF�J�S|K���4�h�����*N��rMȸ
 �8�ݎ'����羚s.!xXy�٧�'eB$M�+v��m�\��]JR�%��G6!�	��4��jEF�4/>J$��k?���� ,q���o��c���嚕��h��U�+a/c*��;V~;�J���]�p���?�j�8)�Bd$qY��q��ՉhJ���[9>��l^{�W�rهj	Ex6�`����X�����W�!D���d@���`���:ŀ����ISЀW�ͱ�I������p�aASb�Sy��;M�u��|�޸?o1٘@�*D��K^�2�M+�� �OԵ�l���t��q��՗���� �s��V����W����������!�S�R������H�Q��������'?J��3��7gy��}.B!�)ۊ3�I������9|����V
��qẴ�7f�w~H�%��}��HD��?F����.�a��<�e��AxOwt�
 �c��T1ŝx���t�r�qć��TW@��z�r���_T!ɪ2���^-�F�{�O�/EO�O��mՒ&˴�)���&֍5�(`D5����>��	̮鎤1޾OR�����rfRFz"����8��h�~�;dX��P��H��f�/Iۖ]���Uc�xv4'�!��ݼz_�'i�S��5�0�n�E�g㺕S����ݍ-{�X[՟3�d0l�?�Pl�`Ce鲊0n"s&j���m9��-XV1pu�Y���zI�%�)��p�W�bP�5a�T'ϯ��W�		
-��QԶ��]��xl�Cm}����YA�7GK��}!�I-��
)&�W���լ}�_CՇi�`#[)��mF�
���.s3+I<�Ь�;��%Z g���"�/���L�)뗜��T�T]w�.Ac���')BintzD(�~e��Dq��N����:e�[�jmfD��pke�9�eډf���wnj޵��&"}�2�b�3��S\4���t�8
W0i\��/��'I�+5:��ؘ�2k��z
��I�����lmR�!�uT̘��TYP+f�@�����U�*+K靴εڜ�{�D�e_��H��6�wW��ؘ��W��g�K�P�� C�k��娾�yWHc�u5����N�T	�L���(iVt���%V���i�t�rg��O�j����A�~
��_��~�2�C��#r�I�U��Gl��G�E�N��E!�L�m;e��i?GI]O�a��Ք#�IL�>x���*ӷ���e�S��1�ݕ���8S�R�$�~K��j˸�a���"�E���|m������]E���$^m�Ca�B����im��c�Kn��p��ƧWi#��Q*�>���@_��N�-MFJ=2�\"�9*�4s���/�(/����z/��q+�s:������Q�����A�ե�
�9hA��ۍ1�^���
9�Y��}&J�}~�����S�?��;C���Od�5"Ro��oa�-ȩ���W�������@���Y�:�:*ǩ2�p���	���������5��*�Tendstream
+��QԶ��]��xl�Cm}����YA�7GK��}!�I-��
)&�W���լ}�_CՇi�`#[)��mF�
���.s3+I<�Ь�;��%Z g���"�/���L�)뗜��T�T]w�.Ac���')BintzD(�~e��Dq��N����:e�[�jmfD��pke�9�eډf���wnj޵��&"}�2�b�3��S\4���t�8
W0i\��/��'I�+5:��ؘ�2k��z
��I�����lmR�!�uT̘��TYP+f�@�����U�*+K靴εڜ�{�D�e_��H��6�wW��ؘ��W��g�K�P�� C�k��娾�yWHc�u5����N�T	�L���(iVt���%V���i�t�rg��O�j����A�~
��_��~�2�C��#r�I�U��Gl��G�E�N��E!�L�m;e��i?GI]O�a��Ք#�IL�>x���*ӷ���e�S��1�ݕ���8S�R�$�~K��j˸�a���"�E���|m������]E���$^m�Ca�B����im��c�Kn��p��ƧWi#��Q*�>���@_��N�-MFJ=2�\"�9*�4s���/�(/����z/��q+�s:������Q�����A�ե�
�9hA��ۍ1�^���
9�Y��}&J�}~�����S�?��;C���Od�5"Ro��oa�-ȩ���W�������@���Y�:�:*ǩ2�p���	���������5���Y�hendstream
 endobj
 2701 0 obj <<
 /Type /Font
@@ -23793,14 +23791,14 @@ endobj
 /FirstChar 38
 /LastChar 122
 /Widths 5515 0 R
-/BaseFont /CQJDQG+NimbusMonL-Bold
+/BaseFont /NGTZFE+NimbusMonL-Bold
 /FontDescriptor 2699 0 R
 >> endobj
 2699 0 obj <<
 /Ascent 623
 /CapHeight 552
 /Descent -126
-/FontName /CQJDQG+NimbusMonL-Bold
+/FontName /NGTZFE+NimbusMonL-Bold
 /ItalicAngle 0
 /StemV 101
 /XHeight 439
@@ -23825,7 +23823,7 @@ x
 �w��zؽb�d�'g'3G��3�5�����u:[�8���z��WOs��˟���^i^Qg�	�tw���09�ۚx��~%�w�U��l��
 �@KGs[���+�+����g���ҽ�����_ѐ�������ւ���5���knK��ϰȀ- �6ֿ��.���\��mퟙ�{-������-�X!ί)��3���}"�$���o��'�j�_���<�+�����������}��^o@�瞱5q��k\��W�����	�WG-����߿�2�&��"
 �|������o3�I
-�4W9�Y,Ll_��/���h_��k[_�XY�S��ـ����7��k��r�U<������,�w����:	���@���R������������`b����px��|���Ѱ�s�`��r�2���^������_h$�f�?���l6��4���\_5����6���_c�͐� f��S�S�k𲿍J��v���l_\�^��_����Wn�T��0����1{h��-K�3ԍkK�5	x�K�CAד��B��ð�bX��z��u�C~
F��UsgcTEհ�	�x�����Ο�5���=��Yr���(����#����[����o_/`{�	�� R	� RG�;d
+�4W9�Y,Ll_��/���h_��k[_�XY�S��ـ����7��k��r�U<������(�w����:	���@���R������������`b����px��|���Ѱ�s�`��r�2���^������_h$�f�?���l6��4���\_5����6���_c�͐� f��S�S�k𲿍J��v���l_\�^��_����Wn�T��0����1{h��-K�3ԍkK�5	x�K�CAד��B��ð�bX��z��u�C~
F��UsgcTEհ�	�x�����Ο�5���=��Yr���(����#����[����o_/`{�	�� R	� RG�;d
 �j�{�3lA��F��es�`Y�J=$~�H�Q��b��~��ۑ�!��(�Su���&��=_��s�g�&U�����&[�}���R��ga��>ɿ�6�n2�o�ӟ-˜ڷ"b�$J����T\�y����[9y�
.6��fi���u���}���Z���=�'�؅��jy�"d!���bM|겏���k�C�x�O~*J� ���/J�L4�_U��S��D\Ʃ�Z�^����H��zJP���f�3�˛g xa8n��T'fo/9�MQ�~⥻�/���E6���Ѡ�w=W
l_
"����!LG��#��R�EvK�m��vd7��Y�F�n	I�]�jq�Q/M<a�n��WC��c��P5MHlm���R?2���U^����4"�U"��	*
�����{}8� ���wc�����L�h0��a�u�.ݭ�')�:B�e�EzN?�:5�oׇMf�{|-0ds���~�}�3<�=�2����QBT�k�}��D�mj��I;��:�V4Mگ�Q:))�p�*R�
a�����h�o��ҟn��P�{Ɇ�0�v�q�Z�ĪK���ȳ�e�l.��ɒ����r���a�ş�yI�H��*"D���Q��|����L�t�|���އ���p%������~��n���TD:&[{0.���9���1�]@T�"�<�p�z�}A�/
 ���V�_�4C�Y�';VAG(r@�������6A�m:t����m�Ѳؗ�cF�6.��ղ�o�W��t��#*W��I
 v�u�o� ˌ�R
@@ -23852,7 +23850,7 @@ T
 ��|߭���A�Цba�aq'�i���:jgǔ��ۑɍzb�,����.���P���F���v��,�މ(��@5W|[�Q�p���y��aA8d��#
 ug¿n���gF��9�{+��DW�$<��J_�PL`��K~�+Cyu��;Ds�;S|��K�O�
Tf�6)8蔯}��
����MƕA�E:P'#Y���@�3�,���?�t.d���t�>�����F�d�lK�t���������)�We�a�yZH-��w)��*�M��i.윳���l�ml�%m��?�� �?Qn�o���S9G�I{���v����������c��;Z����)�l�`E䴡"/��b��C�X��Nz(g�����e�e�����!g�nz���x��BHͮׄ�
���<|ܐ>�S'�`uw>��P�>#v�ѩ���T6�<��r(֠_2`>����a\c�O8��mgQ������v�B���X"���ݱ�@��g����H�Ch$<��"���/&}.�H?֟U�c_���<�9D$(A-
�ZS�Ӫ��v��֡4�u�=����)16t����M܊+^�a�ro^��N7�r�"��zV�$|&�� ���q�z\�
 �,���q�%�!u�2�=���k0��me!��3F�^���0a��`��97e	N�	\�H����N��q�� E7L<a���w�c0����)�Y�3����[���H&�J��j�$��8kom�E9k^���0��g9w�.}^s�`�y�!Zy�l֑��븭Cկ���R;�T�\�٦�빟��(��.Cз�{�Te�������S>�{���Y�"�
-*�o*&�����A���O��M�!v&�6H�xﵚendstream
+*�o*&�����A���O��M�!v&�6H����endstream
 endobj
 2469 0 obj <<
 /Type /Font
@@ -23861,14 +23859,14 @@ endobj
 /FirstChar 36
 /LastChar 121
 /Widths 5516 0 R
-/BaseFont /QLUGPJ+NimbusMonL-ReguObli
+/BaseFont /QKKLFA+NimbusMonL-ReguObli
 /FontDescriptor 2467 0 R
 >> endobj
 2467 0 obj <<
 /Ascent 625
 /CapHeight 557
 /Descent -147
-/FontName /QLUGPJ+NimbusMonL-ReguObli
+/FontName /QKKLFA+NimbusMonL-ReguObli
 /ItalicAngle -12
 /StemV 43
 /XHeight 426
@@ -23884,7 +23882,7 @@ endobj
 /Length1 1199
 /Length2 8891
 /Length3 544
-/Length 9720      
+/Length 9719      
 /Filter /FlateDecode
 >>
 stream
@@ -23892,36 +23890,48 @@ x
 ������
 �>3@��	���v0���cfee���KPP`��/ v����n`{��lO�`(�T��_
�����˟�L�..�B���s����p2?+���9�!p�����
zj̓��4���ܡ�Al���g����j��
 V��g��	�?6+���

-��N��Ț�OjOG�_ ��9��������;�}m ������w�z�����apq,m@.���ӑ������c�j����9�@.����߫�O�k	��{��]���|#+/�/��w���SJ
-�D���/�`��pq=�)���߬���_Z�e�0��g���P*B!0��?Zz��_m����O�
-`�k����_
�b��3F�@>��==��v����C��9�\���R�����4q����b�tq�(c�?��l�=�&��������o��P+{0����Fg9��������/�-���`
��͟+����_���
�
-vv~:�� 0���BA0K�@��iD���6��A�p��N��S�����`0cq��i�U)I�ξ9�����գ+5/F�=�:R��]o��@�g�ak�r#dUdİX
-�h~w;A�64|�P|$���5�'ϙ&N�=�qQ�ə�Ҟ_�iJ��ŤG��`D�/n�8��RP�䔡���1��+��i
-�����m�“1�:�'o�1��	����f�z����g��1\�O,(����G;�o��[ ����9|J<o���k�����ڥXS+]�H��Kh�s}�s�:��G��6��:�;���:Q��T��A�T�'엔����T2�vrE�qi�Er&���-�����:�F]?�m˻#�w�l�S���/U_�_�wh�����PO���f1�����(�C�u��U�^'|�	G������M�H�:#m��I0�o�,�*1�|s��z�`$��"Q�������1����]�{�x�֘<e�
�8�@��n�aٽ����R��>�_tO��=�8�Q�����n�n�Ff�&A�bS2���J޼O�h]y��6JC��~-n;�r�1f�n1���3��t/�������w��n��[G�}dj��H�E~�����7$�Jl�I{�w�N�Ӈ�o�ʕ��D���s���BW�>��X�gJ]YA�{�x�q�~?��B&�r�k�k��/sC�rY7`�p����T��O#;qƞ|�1-�;�%�s������D���b��l��w�hٴ�{wQ���]U4W����)�|S.߯je8����T{Q�~E%l�3^�Ya�=�r]3�>R����,~A��ww[[�WK����-$�ſ�{o��O9WP@��M^@���yg�&���^�y��R�b���t��o�4[&&�o~\���1�G��A���z
x�6�G[m�l��Q%�^�&K�\ă�Idh<����=�|�{9{�aLhp�	F���٧���o���L�L�S節�h��Ypm�BݏS!�k��*b1Ԟ#����i�m^qi�t���I�����O�v�߬j�_���e=䋂,��/7#[����)�3�U���~�K��čĴ�5ш��I�N�āL�uώ�0�������ѷ&̭��V�(�<j����P�w��������%]������b
0�/Gy��H��V^��؛Y��C��\|��.u`b��u=��!�vݓ���|�Q����3E���"O��
u�R���u͛x�&��E���t����'���d^|�҃r���}���!�)���u+�%?�<9vϕ5$���M����0�j	�֪�X�>@�M6�aF!e	hh��Ͷ/~z+�%.;4�gDs�F����'BN^`1��R�ޜ2c6ɶ�C
-�h
-iҲ���u����6�ǮiT.�NLP����JD"�@�v?�pT㮪�ʫ����S�xuW�a�b��¹��M-޾<?5��z	�u`���|| (����#���5Ԗ��
ر�ȲX��~�B���d?n-fU�Ӕ�~t哽"�ku�zUw����8;1G��x�%��2��f*FY��Z����cM>h�G������~9c}�إ̀�1���y�k)Ep�]��<�J�Y�^|��v��f��Q��l�烷��"<"{Χ��T�$�I�T��f<~�޲�����c}���p�R�q	i�;�:��WNASA;���H�Ϝ�v�K��},�fRu����+)��:���``v��5�*��hh����|˘(F4�d��OYVt�9|I�@ƙC3h���Qra�N��^����_4?Ա1k�8?,j�}*i/W��堆�.X�����B����h�!q��\�f��)a�X�٭���y�8��;��?Hp���+
-�0q�p&�z�~��c�qxZD�#TڍI��W�4
-2��G#rAy\]϶�:�3���/<ile��0�R���Dwn��?v�+ytg��J0���J��Z��Tn�&�o�zipji:�PQ��2�ȃ+�@ǎ�_��$*��DԒ��ÈĿ�M�j|w*$���E�QꑬAą�nNCT�T��K�O�g�@�9��5�lϣ0�v��;QZE\/2��c�?L	�ND@�X���hJ�h#]�?k���+���f�43՜�0!(>���nw��m��D4	XbK߱�T��Q�O��_��:re���~_~��U�O���t��ygB-ի
�x�e����_��[?�#ɝ�7�W��Aւ�c���~����Bk����b�B��<��9��&-/�B���}ۊ8a�/܁ݨN>�Ԋ�-A4�$}A�)�1/�~a@��9-�!�ӓl��eh���A�|Hq
��i`�Rޡ�{M(�!2|�^��mˏ}k2�uÍ�ӊ�_;���#U|��r��{O���\����Chn��kDΗ�!U(6W�Y%o`��ǃ��@jE{T������v-2�������$�`�~�쥃Mc�{m\�����H�����ց�X��B��F%��Y�o����4�5v�
-󣽤l`�ėj�P)���s�[4&�C��J��<
-�,��x�Ⓡ���:���G�i�����gb?�&��_���*r�	�|X^��	���y(�-���h�5����B2r&ST�EbT��_�*��`Q��u���\h�Z:�Fc������4���	�̼��`�6�B-�"J�T����MI�©��r���i� *Pర�k�Q��zM�`��Z^y��n��	�ez3�y���Χhi�3���#�1&e�;j�@�G���=j9z�N��V"��1�j�c̉�£�W�S��+�+u|G:􃈾6&�r��Ӣ8:��K�6��'��G�^xq�#��4!��p��D^9�V��Oq�̩-0-�ٌg����(}YH;�I�oD/<\�G2bhp\�-wzE�c2���3�i�n�f��W�jvuLsF�tPݵ��a�Q�b-�rU6��	�ݱ�?P�HWy��P'F�r���m���^��G��1�$��=�ScnP�/[������z����M�M���%1=?��>+�B�nN=|�;~&3�0r���v.3y�&�v�WuǪ�ll_��9��K�fo!@��{Ԯ$J�A�����M~�nƺ��� �̴��0mu���^����4}�Tb�=K�2���o�9�
�ǘΗL�jS��;���ȍT5�*�C�_z���7����y��R��c��v�7`��"�&���eZ�emt�6�p��JE�J���l�m_�)풎���g�gu��(�r3|[��́΃d��<,a�pi껈U�h��G�.ٶ���
L��&��%�c=";WZXJ������~��|'!�g7�_�9b���9��i��vzc���:ZF+F�β�թ����sl�U�Z���Ԝ�
-���b��@)b���fo�s��{��G�XJJ*^��=̃����!���2B���H;H��!I�Ć��ͷ��-�sS��l:�^p.�<�[x�T�0R$;mӅ���
-�u`L�z~h����Jÿ7镬���0c�=f�+�l�h���܁T��۴U�f���rO��&����$`g%���[t�-�Gc9oU|zߡ/M���(?
��o"��^Ql|�(գx���1�ϛGbcd|���}���A�u��욌q�%�f{��p�,$�\��EJ��]�+oUW&F�i���Z�II�=�K�|�E"���,#���W��zU��청��"Dg�4	�q��bX_�Lc�]#��S��+
�V+��^�o��Np��Z�R�����p�r�c���+��Vα�����(�v�d�kE�Oj�e�m W���Ȓڝ�Px�Ee.0��uɺ��BT��6J����ƴ� �^�S�CƔoU�I]�#�ݟ���1��d쁳�A��-��MvU����q��Dy�H\��e]��
-���3l���_!��Es�����%����q�t��	�h�q�p�h%�rQ�7��T���t�$o�y|�R��̸�b�����ȢL\�����d�i爵E;m���/�h�0�ϐ~3a��2��(�M��oa׍\���edC������b_�U��~��-�1��sdQ���Q�"�N\����Cb}%�&(.�CC1�?s)̄��׷��=c�w]KP��N��!1�;u\�Ȕ�t��)��OM����-�����8=���'��.D(Z×�8y��@`�~�6+�SBѐ�C�Y"ӯÚ'��p*��LU�w���5P������]S�Q8r�����Te����N�ֳ;ELך%p-JI{L����)urڭ��~1|U[J��_�
�{^��~��,�1JjTٱ���C=R�K{���������Iv3/���O�l�"0S��qo?La�Q�E۾D�7��
-D�ױ���j�)�(V��7�'�o>��q��ak*<zi���vIˢ
�h׫WW�<�H��p��7��#�(��Σ�R��_�%kN&c�{���I��
-#?�d8@RDtO{/�{%��2��6��V���3�y#;�/:	�&D�*�9#~��WL�X8�%7WM���հ��4+z���P�£�\�a6J�?�8�����j�a�2\�ˆ4��: �T��@�Iq?�C�V�B$�E4�}=�4q��U��"�E*������HGu��k�
-f���8NT)���C<�Qp�i"�,��m�'�&5��]�u�ql��GyG�.M�x6���"ڛr�$�+�s����1*���`3
-����6kBӰ�9oA�b�Ѯ���c�cy�C;�ZI��șvIAQa���{Kԅ�9���㴃
-Yѕ�8�F�走�+���������kV Ψ E���2	p8���2,�>;
-1��{�%h[i����oe��K��m$H}��w������A�_�m8��r�ʱF�4�}�r�i'�2�텴 d�u�6(�<�7"��`����Vs7up9\R��K�좗L˄MT��pS��]2WCl�i�7=��'l�Õ0F���dubY6܏P0�}�f�VB[�9���I}]Cܼ=�}5�i�d�s�t�0:�&r����o%XJ��!���y&��v�����4ځ�͈�7���PX���!��1���<�+���?p�^G~ϊ��n�>V>Z�,Fڀ/���)�����j�M�E��"��'��9"�/E�A��oM�{@���Nڙ��7AHBj/M<���)jχb@�L��E�_�tU@'jc�I�mi��n�����W5U5����~h������>!�P�"����C[�V>S��Q��re����l+{U�[5RQț�!&��U@�?-H�(-���;�y~�t�E��x�@��s��j��֭�;J*D�����zN�� 9��yW|+6��Uba��hάl߼Sgv��`�-��e�
oq,�9+~��젞�h�%�g��Wqk;�N]�uC�:�R[��&��~�Y��ZFQ͸�����V�Di�Z��
-w_,vl�^��sT���e�E.w�=A'�*쮥����ۺZ�T8]��M��ҲL����rM?�.�A��R9�xy��g��n��ֹS
��:OQ���[����O�b*v�1nA��if�)ڹ�����j"3#�b��xJ7����xv�8m=٭�@��z��ת@�跱c.�����~;�	<w^jGeX�,���jt;��
��W����u��aE�|:ڡ�WÝ,NNb�G�i'�±WUL
�+�vUv��k��m��-^~�>~a5<1���M+z����~�	��}s�cG�2�A���Ej�K&-Vm��\���RZ�'�os��S��`�f��ވ@����:\/_�7ҟP�ш?��j�P�v���MԻ�
-��4��•(�y�2e���_}�6�â)��F��*���K��3'Py�1�|������&�	6�n~3T�>%�ʛUT��7�4���"�F�c|�e�l݈��B[����b�㜰ʯ���^��&���f��yfY�=r�>�3t՗ef�xRD�eq�W��u~6٩�3�^��I�s��kn�p�T�뫸�gߕ��u'�*֭���r��Y�]@ ��(�d�Z/.��
��:}�"j
-�#b�V:�r�`��]��Rzr��O�����*�-��=q]B�H�J��rb+�[;��w^o'ل�H�ڌ�����(P�����E:E*C&/��t����aps\	�i����Q��7�C�����p��ˇ[�$�4x`79�	S�����0�m�ah�P}�o�4Mޤ�N�"���\O�=�K�z��#���VA]7����s���hZu���7(z�Vfߢ�lv��e1��&(�[Aͺ`īں3�H���(��3Wi�?!��Àn�$�nަ	�D��[?�Q�n��R���B�#�:��>=*����x<�D���������vG�i��l<������އ,,d��Iz%���S�blMɁJڛ���r��=���)$�Wk#���0\��6�������JN-]��4W�Q���봫���Giw�$�J���\��"W���F�vz뒇X�a��Y���	#�aT/Mk����\$�̌�^7-��opS�{���Ɏ�UU5^�b7�ک�:i@�<l���J�V_��t�՜��d�4�܊�G֊�����x`N�e�_^�/��L^�rm������o: �߶GU���<�2Mg�HEնJS`�R�"�x�(�Hg�kp�PeDq�iƼ��xk@�t�X�e	|���M8��MCޑK��=�MMp���:&#�eKҧ�*f������ʍV5n�a������ڑ����{�ɀ�~iKڡ�\��m��%s
-����i�S�W�Ei_)嶒����=��t�%愑(��W�[j�Qq�5�)x���l�c�[k��sh�E6���Q{
-��0-!�b�����3Ɗ�S��Z=S:�BK�8�!\�|ƶ{"���ȻD����)I����cx�8Kbp�4�A���j�����Ȑ����d�S�j�o�hvb��Y��|$/$s��d�����̖h�@��:෿�w���p���,2��H�(�+�P�x��k�*O|\�zh��ߋONj2��l1ؖ}�\p��.-���ݚX����(�IM�~���@2���$�^��1�R�!�8=
R/uZ�Xj\�O$>H96�3����o�f��
9ӥf����K��姓��f�+��AE�]
��g����u�j.L�B/�Eb�RȾ��B����F���N+��vb�g4�f�e��&�][� n�}"�x�rEL�iWն�뎶�D�۞0��e(���&�1���kӗi���J?��z32��O��PK<��Ҭ���9��A�~4���	��7�Wb1�ۜF|�������s���WLg,u�vz�V�Ui���ؿ��%���ɳ��ƕ��
L�C^Ļ�LK�`?��k��"�n��x0f ��/�E�5���:c0��t�x;�F���Y����G����\�W�zh����8����?���o�~��d��uC-/^3��"���>�$�.����Ԟꌇs���9����H"�R1��u�����+�w��z��C&�C��:N���veS=
-1���Q���Qў8�M~u�WG��k��_���dZ�4>�:?��B�%D^���������K�D;�T֝+�p�s�Z�q��Y_a{�53�h�yhc��A4�<玐j9�����?�E-�b�	�
e�<nvk��(�h_����A�P������a[�W�KC���
�J;�/��?u��]�O>#q�y^�o�n�~���j%V#s��a
4�{��/���&ⳛd�e@"�Y�h��⩸\��\�z�[g�F��.s>7ϟE?v�]p�}b"a�/�kDz���7�v�}��QT(��?={�<f�2��	e��iH���i��T��j<��G\R�(��(^���E�3�q҇"&�
�Y_1���q�23�>����ٹ�/I�>E舺KC\��7���1��3��	��ڥ՗D�U~�x�mL�_���0�f��-:4�^�l2�{s$t(�c��z�� 	\�8�M;�֪K[�!��7�U6�X���2Mp2p�*��TQ�$B@M*ê�kN�.���	�g�_������P9?Sq�r����s���-dfj�)ڵ&����H����^�
-�����B��c.�8 ���g��u����4�����H�x?�L���z���[ԙ��l�gʋ������8QE��`�$�d�J�~�$̙��U��S��'���B�C�p��w��,��������D�4�F(�D���~�[���u�@Dn�/fV���YJ:ig��s�c�ҧ� ���I�1������sYZ����w�N���C8�5*���\�)�4��ʍtbޱ��	�n���,�'xV�ɤ6��n�*����{���s�Ѧ���ث�8twس�{wf<��K������?�]��8���hoi�[��sU7��
g)l	>H�����Nޠ�PD��D��\U	I6=H`�a�n��)W�c���U�Iy�%����[?��#f�c-?��əsF�ɕm�?�<Ѧ������}�u�E�o�Ϋ%�I�H�s�����I̩Ԣ�B���C�l�a����ק|V�K��F��Q�A�]~b��ּi)6٥��biݰ2O�5L��˵`lN�Y�	�im�cYz��Qz|J�*��p�
-�r.�!<Ը��ke�U��ݢzA�lL<l#
-1t��g5$I�)��)=��¢p�מ.�2/�:F'hĸ7�b���䠔C��W�s9s���n�##�Wc��lev�?y���d��;�n�n�L��x�R�ܮ��J�}đP�W[��� ���}�u�É�����9����`���'@�`s���n��
;����y�����3�endstream
+��N��Ț�OjOG�_ ��9��������;�}m ������w�z�����apq,m@.���ӑ������c�j����9�@.����߫�O�k	��{��]�����5��R`�����)%{�e����s��������o���/-��j����V�(�@�-=i�����p�Y0�5�̀�ɯs��L�#c �i��\;^���!��r���)��I�O�8T�T��8���Q�6���ߎz�\���7�vI��=����������R��d�����ܖ]P�����
+���/L��d;;?�_j�_Ie� ��
�
+���4��p��� W8�I��N�)�_{��S�`���8	��V������pg���y���ѕ�#�q��[�Ԯ��7�R �ư�X��*2bX,�l4����T>A(>�B�G���Ћ��L���(���]iϯ
+�4%W�bң��a0"����w��Q)�Jr���w��o�����4�Pg�e��A�ɘJ��7�J����em�f�s�RX|�3a�.�'E�B��ܷ��-���A�>%���Kl�5zL��A�R�)��������%�ݹ�ŹG���٣u��\�Tw��X��m�(DO*�xC��O���K�W�OD�V*��[;�"�8�4��"9ՉJ–���@���s���|�����;�^����}���/�/�;�	�h\�I��~b�\�_KYANء��[���:��V��Մ�F`Y�Wצt�z������$���7��a�c��
+��=\0��M���r��u|b����vT���=�r<NkL���I�m��Y7���nj
L~)�M��/��'Z�i���(Vsm�N�V7t#�C��s��)���r%o�'��<U|��VX��x���[���m��z�b��`�����E]��ͭ#�>25Ux$�"���y�w��r%6����;r���Cψ�j�JG_���Ň��	DV�+zQc,�3�.�����g<{�8B���a!�t����a旹�p��0��L{T]*ƌ����8cO>ۘ�Β�9BOJ�sr��Vv1bw6��	[�lZ򽻨A\�.�*�+�����I�)��W�2VLmd���E���6�
/��0�g���^)rwrq��\ӻ����ƫ%p����k��_�7�ŧ�+(�Q�&/�F}ռ3�
+���Z�pμ�m)@���z���7��?��
�7?�������`� Cll�<Z�L����`6�娒q�T��B.��E�$�
�
+�tr�X�l>|�p�0&48���I��S�T�7���V&a&ܩ�TKw4��,�6t��G����5�n�jϑ�_TȴY�6����l:oC���������?
��oV5�/����EA�䗛�-pEc���bi?����t�FbZ
t��hDv�	Τr��
+�@����gGC�TUo�V����[�VON
+�~k5ފG�d(ݻ��He������.���w��?	�󗏣<Hr$����?/���,S١�O.��F�:01�����pǁC��IO�]>�(�����"VWM�'ņ�H��c�^���M�iH�ע��؉X��
O�ד���t2/��U�A�Cy��X����Ts���钟h������zJ�&YOf}�o�Nk�b,E��&�0���4�Q�f�?�������3��9J#oC�!'/��B)�Ko��1�d��!
�W4��iY|u�:�IGu��ʋc�4*Q'&(��]b%"�]�j�R8�qWUm���NV�)M���ӰH1�B��\�&���o_�����F��:0��i�]>>����O��{�jK����^dY���^�?\�Y��������i�M?����뵺p���������h�����Mk<ђ�P�A3���,�n���]�D��&��#A�B��~wD���>O��f@ޘ���<е�"��.�F
+O%�,Z/��^�i{���(�~�����[�h�=�S�au��^�$q*Kv3?boYst���n��>֋�n8D����4؝J�+��)���LR���gNH�ͥO�>t3���Q���Ε�T�S�n00;LŊn����B44b����eL#�R��m��,+:���R �̡����(��U��F�փH��/��ؘ5y���>���+f�rP�T,Jx��q!�B�f�oy�3��N��������<�����c�$��|��^�8F8�i=H?��1�8<-��
+yԋ*�Ƥ��+Q�JW��9��<.��g��F�������46��QLK��Q���;���;ŕ<�3�d%�r�j%[t��X*��m�ķo=�48�4�W��Hb��C�cG�/��H~��p"j�T�aD���o5�;W��"�(�H֠
�BI7�!�S*���ا?s�3�f���b��K���F��՝(�"����1���O'" A��?��H|4%�B�����������ƍu�3W��jN@�DLn�;��~`"�,���Xu���(�'[�/�@��THf�/�|�*߿'�[h:@�3����j<�2w`̓j��Fɭ���N��+�� k��1E�b	��k��F��
+PK]a�X��W�
s�WA���g���ᇾmE�0s���nT'��	jE� �l�����m�0�c����I����2�͋��]>�����40D)���&���>J�����G���5�ܺ���i�����|��*�PZ9�ν'�Ip�����!4�|�5"�KȐ*�+۬�7�ʉ����YD �"�=*���vlN��K�_U�M�P�k0?u^����1ٽ6.��m{Z$b���P��z��}�Hw�����,�7U�P�y��;t���^R60N�K5i���Ĺ�-�Ρ����V%��c���l<Q��C�zfp`�#���
+�c�w��3�L�D�/�~k�Y�~>,�a������<���R�u��h4ɚ�\sh!9�)���"1*@�/\���(R�:Ct�?.4_�E�1�au�zQh����`f^�h�N��U%�
+�T�u��������O���ش}
+(pX���ԨYV�&�e�w�
+-/�<�^7����2��e�a�S��������2�5V �xãQO�����x'}I+R��O��1�������+�)��b��:�#�
+�AD_�S�J�iQ�����%M�����#�
/��ޑW~�MA8ƂT"�v+V��8`�ԅ���lƳa��\��,���$�7"�.�#148.ז;�"�1���ϴK7j�l��`5�:�9#Y:��Z�԰ԨK�z�*�����?��X��{����V��~�Q�v¶I�}/g�#E�j
��٩17�ח����v�p=�s��&�&_
ǒ���s���o�e7'�>{�?��C9BB;�����Ci�﫺cUc6�/Q
+ڜi��F��� ��=jW%� P|���&�x�
7c�\�tV��rf�_S���Nk���VQP�D��L*1ɞ�p�~շ��ʆ�cL�K��i��J��Pf�F��e�!���/�sf��`��<�k�ر��z;������{o����2�ֲ6��Xx8��
�"Y%�DF�ඎ�ҔvIGG��3㳺�O�e����_���A���|�0L�4�]Īt�uI�#k�l[����BW�`��ұ��+-,%Ht�sލ�hz�ЎR��ͳ�̯w�1Z����^A;�1�Q�{-��Fg���T���l��96�*e�Zˀbj�bو�O��T�1�v\���9
+}���b,%%����AZg��w}�
+��
+��|i�$����pb����[I���9��)R~6m/8Q��-�o��)�����PC	RF�:0&J=�4�_\s��ߛ�JV�zd���3��h6B4Q\w�@*h�mڪ��QPt��ug���\A���C�r�-:�ң���*>��З&b�H�����^�7M_�(6�z��Q<bw�������#�12>\��>َC� �:�kvMƸŒn�=s�F��y�Z.wEp�"%[J������+#�ִ�MV-褤ލ��%@��"���Xx�����+Cj�*}v�V{v��Z��ၸ�\1��}�1�܊��]ތ)bq��b���B��7�l'8|V�Q����w����I�f9s߱I�����m+�X�{JYr��K;^��5���'5�2�6���nkdI���H(����2^�źd�mm!��a%�[ZScZS�y�ϩ�!cʷ�|��.������ܘ�o2���� M�m�&��|X�����d�<|$����.�I�����c��P�9���v��L��8�J:���u4�8{���^��
+�(y͛�q���v�V�7˼�?>���|f��1B��grd�&.`eh}Q�ﴌs�ڢ��_j��D��
+��gH?����`�\k���|ᷰ�F.��x��2��I
+}I��H�/�*�w?N�ט
+��9�(FPwʨnt'.�����!���Uġ����f����[l���޻�%��o'����ޝ:�]dJ~����h�&�u��ՖZ��wIr�����G"���K�R�<��{ 
�k�z���)�hH�!p�,���aM��^8��
+����@��({�v�������(	�q�����
+�2���h'T�ٝ"�k�����=&�`���:9�V}��w���-%W����=/_L�ri��%5*��XFՉá)�����QLl�K�@��$����xԈ�G�M�	�)�縷�&����(qI��m_"�ԁW"��X���A��
+uH+�N�ʓ�7q���PȰ5��mqz�$�e��i��U��+E�G$�b8V�	��~�P�`����L�/Ȓ5'��̽�e�Q[���K2 )"������c��R��z�q���ּ������E�mwќ?�[�+�c,g����&bb�j��h����h�d�P��G.�0��؟�kPlzRf�
�0Q.�YaD�}{�E�Rn��8��!i+@!��"Ӿ�^�8SȪ
Ed��"���p�da�l$�#��:��y����m'�G��!��(8�4N���ֶ�D�]�.ٺ�8���<�#�_��k<������N�M��T���9�H���?�g��zEBw�5�iX𜷠�
�B�?�hW_��1汼���M-�$�|�L����0M��%����S�q�A����lO�B�ZX����Zއ�U�EOe�5+gT����|�8�v�}K�G���W�=i����K�s�2X犥��6��f����[A� �/�6��k9B�X#i�p�>x�ش@���BZ2�xL���~�SR�@����:�.��ѥ_v�K�e�&���G���Ί.��!�����]����J��L�o�:�,���
+(�>R3d+����޿������!n�ྚ״A��9B:�t9�M݈ŷ,%p����<��`;�	���x�@��fD��J�C(,��������wh���~���A�#�gEDl�|+-R�m���zk��Z���a5�&ᇢ�G�q�Q��"M� �˷��=��]�'�L��� $!��&��������C1�[��b�`�/l�*����$޶4ix�Xč�q�����	͏r�m?�qZ����}����o�D�v�ס�w+�)o���p�2LopN���*֭�(����Y�* ���$�B��������<�c��"X�W<�
+ ��Թ��
5Iu���%�w����rV=�gx�g�+�T�*����
+C4gV�oީ3�u{�֖���Ԇ�8�ʜ?�xvPOF4ג�3�����p�.�!G��Q�-zco�?�,��w�	#��f�^�L�tT+i�4E-]V��/;6b�}�9��e���"�;잠�{v����W��m]-V*�.SѦ�]iY&���r���mĠ�f��@�<��3�f�^��ܩCT�'��^U�-Q��ɧ{1��7��J�4����]��W5���c1e{<����B<;C�����S�E^���kU�i���1�{��o����;/��2,P�Mi����B�u����
+��r���"B>��ƫ���''��Ŵ�_�ث*��tK�*;~��N˶��/?��
+�����p�����q�l���̾9Ᵽw��b��"5z�%��6�s.qx��)-�ɷ�w��)�M0r3�{oD�g|�Qh���/��O��h��y�t(y�b�I�&�]vJ��|��y�J��ټB���BIد��m�aє�M#�m��
����Z��<ۘW>�o��U���o�d7�*�?��d��*�?b�g���I���1>�2�qL6�n�OV�-�r1�qN���E�G��a����w3��<��,��?�J����23p<)"ɲ8���:?��Tv�~/��$йP�5�|8D*��U�^���ʌXǺ}�Vˉt�J9|�,��. ��alu�N-�e�G	�>o5��1n�j9E0���.zl)��OЧx�`]`��̞�.!k$��%�d9����m�;����lBM�XmFNzh�j���|��"�"�!�Āl���i�0���9���4G�Y�X���!�Lq�V8���íQh<���f��)T�yg}߶���e���S�&oRt'X�e�{�'��%L����}�����u���?L��LM4���Ob�=B+�o�k6���2	�t��O���f]0�Um��k$�~v�����������Q�a@7y�e7o��D�[˭èT��H)E�G�K��@�ހG�o�F݊U<�I"�i|�X��|pu���ނ�Ww6jj`\FV�C���$��e��)i1���@%�MVv�G9v��z��B���{yp.���@E�A�z%��.�j�+Ө���u��h�֣���hA��Uq.f�C����^#�^;�u��,��O�,T�ℑ�0���&�5���i.Sf�R�����7����?��d�檪/h��x�Tl�4�]��JH%K�/�
+i:y��j��T�Pmn��#k�Pgr`rT<0'�2lj/��fg&/^���I��|�7��oۣ*Q@ʿ�A��3o��j[�)0q)e�u�O�v���5�m�2���4c�~�P�5 Z:g�ײ����&O��!�Ȏ%_���&�&8R�v��S��%��u�NR��[K��
+�7���{fn�o�H�]��=�d�x��%�Pq.|�6ƀђ9��ی�̴�)�+آ����r[�p�|��f��s�H\���-�ͨ8�����M6ñۭ5��9��"o����=��Je����A1c�lw�c�ͩ[g��)��o��_z��a>c�=�|�f�]"�r������D�1<X�%��q���]�m5���DA�adH�
+w�H���کE�ʷF4;1K�,B]>��9If2�
FN�rLfK4��xN�^���_ܻ\�g���t�ڍX��WΕ_(g<�صv�'>.k=4V��ŧ�E��\�lˇ>V.8\T�����nM,������&�?[SW ���S�\/�n�ߘn���Z����:�g,5�ъ'����X
׷_�?�ʆ���R3y�~y�%N�����{��O��"ۮ�]�3~g��Y5&}���"1r)d_���B�s_���]���p;1�3͊��2�J�̃�-e7�>M�e�"&�j[	�uG�y"߁mO���2�{{u���ܵ�˴���|��X^�����Ƨ�f�%�AiV�U`�{�� c?�i�����h�+��mN#�G���K�J�9}V�+�3��L;�A��*�4��e�_W�GP���@�G�JE���ơ
+/�]p�%�Z�Z�5�Hk7ar<3����"��Vh�1��k�r�~��v�,�DJN�#Jfr��ܫb=4q���B���u����7m��t����������V��w�C�UF��{Q_jOu��9�i����q�~�$�b��S��v�֊�H��;�`=��
�!\`�w��U������DNa���~|���hO�&�:��#Dc�5~�/�b�s@2-k�Q
+��t{!�y���h���xzQ�Mv�%�F�x*�N�{
8N�9n���8����0��҃��k4�<��N� �a�sG�5����n�[g�â��T��w��ֆ2_�
+��w��C�/`cx� y\���|GYh_u��-r�+ݥ!���i�������ڮ�'����Ͽ<��7n7�?�E�c���9Տ����=h�x{q��M2�2 ��,H��{�T��Es�y=�3K#M`�9���Ϣ;�.���>1��˗�5"�N���	��>[�(*�Dܟ��={�nQ̄�K~�4$S^��4�x�
+��@5�Q��#.�f��j�U������8�C��Ԭ���g	�8�i�`�AxQ����\�˗$��"tD]��!.���v����po��Wi���K"�*�s��6&��я�ob����B/M6߽9:��@F=��]��.��ekե��s���*�f,]{l�&8�K��}��_!
+�&��a��5'RV���3f���I��@�X�����h9�y����J��235��Z\�{�^�Dbyy/L�Ky��v!F��1d�?�������:��~y����MQ�T�����J����-���P6@�3�E�U�Ɋ�s��"�y0�O2o%b�H����*��M�)�ȉzS|��!d8�u�����s��{
+��FE�Z"r�f#���f���]?߭c��:_ "��3����%��3�������Z�SqKk��$Ҙ�md����,-�h{ٻ}����!�C�O.Ӕ~�x�F:1�X|愎ˋ7��?a�<��dRby7t��N�=�����hSxDn��D�;�Y��;3��d�O����q���[x�g|4��4�q�ӹ�������$�V��BYp'oPB(��g���{���$�$0��K�T��+DZ���*��<Β�?Y�ݭ�^��̱���h��̍9#���6��i�hSa����ʾ[���ڷf�Ւ�$K�܇�������Ղ$�Tj�f�����o6�0�r����S>+�%�~���(� �.��XRk޴����y��nX����l��Z�?6'�,��ɴ6ܱ,=��(=>%[KC8C��@�	�j�U�
+���Ϫ��nQ��t6���:�I���ؔP�Ɣ��kaQ��kO����g
+�4b�X1p��FgrPʡ�ӫ���9��m�Y����1eu�2;�˟��~D��ۿ�H7m��H�_~��y)BnWXm%x��>�H�y��-N�rZ�UY�>�:���}�
������_~0�?�� {�9��`������]`�?����_#�3�endstream
 endobj
 2196 0 obj <<
 /Type /Font
@@ -23930,14 +23940,14 @@ endobj
 /FirstChar 2
 /LastChar 122
 /Widths 5517 0 R
-/BaseFont /UEGGXE+NimbusSanL-ReguItal
+/BaseFont /VVYDBH+NimbusSanL-ReguItal
 /FontDescriptor 2194 0 R
 >> endobj
 2194 0 obj <<
 /Ascent 712
 /CapHeight 712
 /Descent -213
-/FontName /UEGGXE+NimbusSanL-ReguItal
+/FontName /VVYDBH+NimbusSanL-ReguItal
 /ItalicAngle -12
 /StemV 88
 /XHeight 523
@@ -23957,51 +23967,50 @@ endobj
 /Filter /FlateDecode
 >>
 stream
-x��{U\�_�%�Npwww� �ݡ�B
-+<x���Npww
���2�w���}�i��7U�9k�o���٧ފ�BU�E��� ��p�������\5�@J,��k7�? �
�&l��!�0A�f�?������9';9� ;� ǟ5;�?]�U]�����0���CI;Z�9�@`
7''{ �R����bp$��S�f%�rt�rZۀ���u�����p��{��!���A���{G��2�����.���+V��L���]rz0�I������cu�b�l
-�YJ9:�%����g�@�ş�����7;����?`+ ��o-Y�9�i���n���
-�!����y�9��9����O��Rjz9�Fr���,}}��ȭ��]�@+������;������߉��C�� �Z������_�`�����f`�'�;+;;9�_������#���_�*f�r6Yuy)e����Q���$Y8���Y8�y�L�E�W�����o����d����ʑ\������-�\\��&9��Ƙ����8���r���!;�������G����`�{Y7{���B�w;����J�D��#�f.�n�����^��@�ߧ�����6�ZH����i�U�	�T�-l�>.�p��o����
-��&��p�p��i��\]����(����Rʀ,-� kr
�4s��'�m����Ǟ�Пw����)��X �,:Z}�����X+A�����k�W���7R�=�+T�
-�]w�r��긍h��24dh�L4����d+<v�|�)k��� �%����a|~jװ�EŽ���$�F�#�?ɣ����'8"Ҋ�*�O����A�������Ǻ��m��R�?�4�<�}�Gn>}����2]X�D���C�_���	vO�p>۔wX=׎9�|�2rZc*$�l^�9h�Z�d��ÄK*��Av�[�"H�i�����س<�,���~��D��h]���zO:���W�f��Vo�ec�	���Z�pK���A��ZG"~g�z$���w�K���Xu��Y�{ɦ�X�9C�8�h ����.�.W���.V���2�ůesnУ���y�3!gh�}(:�%C�dž���κ������1�֜(�U~�'HN�|JV�QBd�t��Q��>v���hEgM�I�`���y&��"p��<���R��=Ϟdz�Zօp[]c������J�J���W��y�ie��~臐�Y�N0��Ok4wj�����ջ�Z((��b��ҩ�*�*D �{k|̡�MsP
-�}��F&���#i�$[:,�T����D�%`.e�cE�A|Ў��%\a����� �����mWP�RL��Z+� 1�J,h�,��C �E��!nˉ
{5���S1��Y&4�t��
�-�"W��o~+��avgO��fGnn��ф?�銪��d��ڠj��s��I��ݖ |7���+�,)���*��"2�6��{S�w�W3[zطԃ�͕g�ڈ�?zDkg�����&c�.�x�R�<�Vz܏=���̭#>��������zƧ�c���P�Ͼ��?B��zP����~���
,�c�c�(ۛA�B���Yk�O���Ye��!��Ń�k�qjc��>�:"��?{��g�*N�w�P��0����F�oY��G��%���(�c;��~"ôg��j����Y��G�j,ʤ@k� _�OJ��T����X��Uh�[�%Uł�#w��߄�m&��dVr��.�R>;\����d1��$o����
->�Z��$t]b�~}�Ȣ�,9��1�]��i�u;:����K�SV눲C��S��p�p7��b��Y.������J�]��b����@�p?oG�ד:W�`*nF�����Bc�yUy�h�L�?�rҠ}H,J,ʽ/�إ�>���
īғ������<�sYw���.s�����O�����2��Q���f��ؓ�e)=���n.�U����d����A��N�V��SXj��S~p_%���
��ml�-�!ѩr�l:��r���3|r�0�&�J���<Zuc�%[lB�b����:�М3i�~�y�:>��u2�ĸ��X���x�Q�%��J���U�H[�89��;���g���k��=�I1����Q��Qݽ�ͥ��d�Oՙ)L��=E�+�U���@V��7h
���p��*�S~v�N�$��dc�ۇ��N�+壬\#�[����{�h�k.�[s���z�25E�r��Xӥ�b�w.��q-�O��T؃fY�8����)�;ɀI{��R����L~2$~,�
�{O�� �nG�]��`�A�����|�[2
����{�n%He�?�Ӱ@zK;��Z�l�B��zi���L��NC֔8���C`���;�.xp��2cf�'�7ZV���аG�}�`z����e�N��ѫ9mm�h�܄���Y�5�h��]Kە�h�9���A��"{uH.���4j�\�C8*����)	j�)�.�s������v~���5��F���y�Z��T��$u�[��.��L�B�)<6�~��W��$$��V�zY��P�MH所������pS�
-S,fT(\60��������q�*��M�=�9>�x�@�gvc(w%������Ve'�Q&{`��M#e>�+3�^$1�L�+T4��q�Z/�yn*6n��P	��e��A�5~V=<]�w����ػ���a�N�D�\ѐ�Wm�q�q#��x:)�ylr�����s7��B�[}����Y�l_��
�)fM}
-+�f7�%�u�#-��m
-.f�Î|/�nH����?X��)�cO�ɸ,���F�� �0D1����*����/(��^��nl��ɨ�����q�`��w���XQ��t�u!M&l�\'M�ʯ�gc�\K@{�ߐ���ų�G��μ��h��f�`PӋ����"F�z1&��`׹ �9M���%����:�Vڝw�1��s��Rӣ�m`'(���y�VM��h6Y�W��Z�y�WpD㗭a��(=}_�[���p�r�m�9�Ԯ���b���Њ�._��k�y�I�3�B�т_�wP�n��_��kԧ��кG��dd�������x�{�9L$W���۰�zL�X*��#�h�`��= Ol�:�o84�۔HGȦz�N���������dJIFr�e�L۷������P�z�:���+��QB�Ѵ��x��B2;�w��|���^q����v��\�Oc�����d��#ܵLK�M/�<�wH���+g{o�j��yA0��'�\�?�$�1��W>=;�Mg�����"#��1���Ju�A�3�h~.��l\\@�.�D��ptT���y�PT%'��s��ٚɉ�{Jy��3Q�Y?��')|�u}���+���h�[Z����Q�CV6�`1���P��p�%#�V��ivJ�0r��	�hF2:�g}'��Ƚ�o�H��E$��Y|U7�AL�:\6O��#� �	([U�=��J��h��F�A�Ş-ق&�(��`G���2�}�9y���7��|�蔦2R�IhQ���/|F�����ό��S�v��1������b0�H�fW5w��ݪ�~	���w6]�nZ��Ď��l����z�츌����ۖ�~( ���
��"ڿ@��%��ZATcBs�_h	���8�,���%�m.�]���avZ��g�M�f�-}���� �[Х��ʴ�t�q?�7�hA�g��Ɯ=bo�ŨE"H�0�s����l�h��&£�hHɀP�-�r���K*�G@�J|�h��d�[4��Aߧ�l���*�A��:�8�:�;�@ąnJ1`���%h�n6H�AW!���Y�}p�k���1�0�W��ڠ|w�����l��Uam��u�$�Ť��[ņU(�ˌSY0n�\La�_ܦS-C�L��&�p�J�e�X^Giʮ�\�˼ݩ����
-�5
��K���g����!�
-�0&�җVr��=�LN9�F���Ԟ^�"�_��������Y+H�����f�t
��sK��?�f5mw�l�N������Co��#��A;B�J�ɹ'7d��9Ny��n���9��P@�ly�OmR��~��Ս����^�٬��~N(�bC�y%�ts$�"i��>�Oyof�q��PÙ�we��J!f�4a��`��2�^�q���K��"�;�q��B�!��zoU���,��,�|nZ�]�[v��XQg��&4i0ά1�����|[?_uw#BD��r�y&��d��j�����a�Q� �L��ZJv="�G6�9i��Ovޏx�Ё�#�ߏ��Y��%���G�(Sx�G����+�JG�ڭ`�MaG��&;R(چWj��ޓB�X��T�+��"9���?�Į�(I�g���~��������-��T�I�a���Ob����-Y��._9��ʹ
c���Ȟ^�p���Nψ�t[�x�r��qoo\���a�U�b�g+}�:
-"���
��Di5��"z�h��ۖ���;�p�񳿆C����n]~H[��UF_!�d�K�Ih�\Ȉ�1��
-����!I¡����D�m����3x��Gf�����9p�M�=H�"��$��R�โ���e-�e��G~��\�I&��˦�\Q!����-�����{�P4��#�G���3�~��#�ӡ���s��0ߐk�w�OZ�p�H��Dl�,��V�֞��e-��m���5�w:�2��A.>�z��	C\�9���A�7���V<�0-�-�J����/�_0�m����W&ɩĚPw���F��)Eοr�ά'��g.�׽~n��u��R���G��2���W�d-%�*c�]�D������b���KM�),��+����*VŬ�~7���n�|5%���B8>��Z��o]}����'h�f���*���&n�ѰM�I�eA���A�)�h�tB��P�N�
��6�%���z}��k� 
-���@�عڒ����X'C ��=dTJ"N\��$��
-;�dn�V@%-@�̉�o�&�'ᶓ������?'�b�W�0e�EM���ּTb���hk�x���~gX���U���J�)2$m��%��O�ޤ��L�#�*9d���7�s&"�T�G'�T�=��GM�4NWw%
�	!�L���n?��tS_湁K�߳*�)qb�&d�\#E�`����r����ߕ^kgd��]�9q$`{`S=�j`R@y��pTG��a��h�{�)قs'�ֵQ�u<bv�����
-���@�W�����@�ꮚ��E�����B���aec�P��8�ԱG���lA�؃��R�ͥ{]�P��M�ǐ7��~�} �`h�r֋&	��[�_jq��	��.���K�7�S��d�:���gE>��)@�x��?��%��K�+ڋ_��	�j]&�^��lV�4	Y��'�R����2ˉ������\g����e����v.�ҸI�B�~��L��q|��J��ğ�q�d}?"	�~z㰎����U�pi�C�0���FԦ�y��m���iޑ��/��_�U-��s����U�I-y�k�I����q��W�[���5���js�(=ř��;�Z�=1�iP����֕��Y�}��$l�z�K� �v��*�$u�ȗս�xh����W��R���W���<e�k��|�L����(�8���E.��Z�d^�j�AH�����Oՙ#9AN��ܫ���(�
-���aw�vǘ_���N&��x$-nN��ԷO@Ɇ��k��7 ��03��Cd1��	�;���b��a��-��d�-3]q4�V���n�a�7��	~|��3ɱ�m�kV�f����F7�|��
4!��ML/�ג�qNB��U@���
-0�X):�t۸/�fa{�q�.�>(����\�2���Q��ޫrͅj܇,�Ug��o�
-����T?q���=�8G�ri ~���V��+�T#���	y�38�@�uU�C���$��r�1D�{x^l�x7�C�&x�b�x\�³x��D^�Mz�E���x�����!&>y���_OZ�S4㧳IML\o�,o�"8X��ըI�2�h����s0��I��:��̫�!}��d?�ta����_
-����UK:�M>����qL]�~������&~|?��W���!��CҚp
-��7���<�b�����g�Y_�2����3�����/�p�8��l�i���.d���e]�%��7��Y�C������c7S�lw,�GzL`�Fco�j�(�erX!ky|���G���"5��JG	#R�mM��58����>Q"�GA :��ӧ���d�J�����$>ɮx6�m8��%~O۲��!X]_u������n�p�S��n����7�Y8hb�+zm���G�<�e��ӥ�,��*�Fa�\�(z�VI��r�)(K7o�S�~��
�[&
[Q;0ܨ;��^e@%��#�F8Z(}�k;�
'j����{$��Ĥ9-<�����2x3P|^ޔ]�v�mz���w؅�5�B�L�t�͐��xn��
L�PD,(k�BǢ���D*���_�3��kV`�ͰQ+B^;u���8�b��}?+��BQ������hq�����0<��`ס�b<�QМ|���C�֏v
\f4w)�ʌM�g�hw�p�o`��\LyB�:(i^��/�B�j�{�=�J��"VC�/�i��Hd|I�yV��^�7TF09׉+K���5��H�J�z�|g~�� <�S����9�H�Z�@���I�	%�d)��9x=�N��٢x(S�,M��s�P����)-��D2͐�Yy�I��cxY)��e!q�A�$�*߽<:���|�����6��j�)�*0m��~z�M��ҏa�����̮]i���C�o�"A�=��
-|2$��)M���ӁЂ�o='&�����EH�.��O�����W��Wly�̷t�o�έS�'ǩ���B5<��yW���55��z�޹b�K.�f�?G��},0!*�J ~<{�c�ևK2,���82y%�'���+g���&n���1?_�����`j�Aw���o�ʂ��_�0�	U�R�ۜwr�N����?o5�
-&�g�iY��+}�7ٶF�ւƧ��~�����H��`�hE5�'-�g�h1����qv�J	�*Ʒ*ʑo�#y�B��1���t������YA�?L�g_����u}1V�(YvKc���
^��:�����M�kU� ����,��>��wGҳ������a-O�W�J|��BU���3�O�	��y:9fQ���z2)�=^�胰#/�JI5
-0H
-0K9�*M���kIm�_�
-��z����S}Ʒ쀸ߕ
��'��k!��)�6����a�`��o�5��(�s>��sJ�J���#��^g����]g��ӣ�|�n:HG-�Aay�����xt{��\�yi�U�7i�.#KOy��p�L�Q@�UG�T.����)]zb�B@��	��9�y>���N	8�Hg�Vհ9���A�3E&�	us�ɿ&�C"��-�y�}|x>:��ի<x�����W�F�}������P����5�?�ҳ������@�����;�3��?C�ڬ��y��C*m�ixM������Z5h�پ2�{�	�v mG7e��vo��s�����7pH�E[~�k�]_����/��ad�^�Q�EN�E+����\��n@���A���@�c^�������}�J�swN�+7�Pm��/��5��rf,H�c����>�b�,I�by��C�W�;�)�Ƞ�Q��[��};i�WC��
%u��V�o���M{5�J���)�n~D��#X^`F�*�Q����Z4s�wv�j�
-�B犯<ibY�D�ʊAFNݗa�����@�{M���7�Đ@C�Bd�=9��c"����V�6����W��R��/���FfWe��ި�Z�I� �OU��C��m5~}�����y���o�v�-}�>7�ʭw���.�?�/���B�>x�	.���k��q�E�qg��@�?(Gf~���k[�������	�f
������x9d��%�,�x���7x��B9]���,�'�*8���3������%M
�����Ѯ���4��H�O�秂H
-i���m�pz��1(ߠ������s���I���S֛I���Т����|*�5��ś���o�͛3=l���i�ϴN����V�E�hȷ\
-����j���"����ž��E
�)M�����D���
-,��k���<�2���i�����|��ie}J��2�����у��h	��E��rk��Hw�$܊�FV ��jBC&�򘶠����ì����5Ӹ
-ʠ'�rXoŮ�9}֦��'ѯ�s����Ի��h�<�dT����F%*t;��b��l&\U��wPb���G:4r��E���&bS�o��?w�s�j�&_U�f�k�I����Ǯc���M̪1��;�H�/�|t��\�<��=���	�����()N�k���+�&��1[a�UP`�V�9˶��*OC+۶�P����F$��B�.3�OiO����W��o6�Je\Ig���z'.� #��\trnZ�MC@,Q]�\}a��(﬇c��ݣB����V�K�a�-j,��%bf3��oux�r?�nŒ�\��7���t��A��
-���x�\	j@1��w���J��Fͥ���yu�n���:�C�CvI��r�Q̫�??р7�b
���5]U�#m:�ʖFQ�G�
f�Z���I��_����c���T���/TD탿/Jc��/�sD�r�y��R[��<��\�GΆ�&����f��H�ޗ��Y�
-�N@C��c�?!��XK;J�h�%�j����k3�q5��8}q� rQ���]���н^�U-V�{6'�MÚ�ʌi=���7�c��K��4TiǮ]5�z��;�,��:��V�4�H=�X/Rmҗ�D>�5^㊣n*`b��n�ĈB�����g���`��qʉ5���u�=:�o��DX�N�{�3Oc	���S?���;��xs_��mn�XU��z2��نi`�%0B���)EV�C-�<�DR�@q��G�B����ąf�7y�J%$/_��U�Xѓ�������C��=�8��!LV	V�}�=g���;^���n1�J�I�3=��;�Q���Y�,����@�	��Xc�5d�KuhF�B��a�3D��=?�h���y����ĵN���r���	p�����&̠|���n��m&�pq�U��@.Ԕ���:���[,�� *1�'R�,w8��i���W��a�N������"=
-���w��N=~�0������]@�����.�����.M����)�P)q	e"0�E��NA�`
-��k�Ds�J�Bde��<$t={V%�WZ]�
-�,��P�6MQY��ƪ�ޑ�2�Ǣ��X�E;Iv�!��wI�v�����5�&ӡZ��_c��g��G�8�|�����{ĺϹ��uybSS6��]V*J�V%�s,�p��lx�������{RX���<��st\�ek�Ks�jD,md��cP�]1��
�aRf�钓,�Q��	ށ�jp��(bRn��~f��bnS�x��eۼ���1��=:0�%����<�%�bB�k)��'���A��'p3�r���f�&^�8�������l�-G���.���gǠ0�
-�I[>VQ6�-vN�SHр��5w��/v{�Ex�8o��d�+<�N�Sʆbm��Nj���#�o�E�s?qaW���Z���z�Q�Ye� �Y���yp���Ȳ����{�<-J��+��P�����9�6T�S�L(��g]	*�	��k5�b���_}_�lc���U](<�>�*xyKr�u��6��"c������T�>/� U@�ϛ��|��Yj�],�e��bmԩYV�*��Ͳ���*n��y��V�E�h�b�N��$4�x�����ߤÂ�X��>:=A��)5��o	[z�j��
��x��Rr�,w���wە�͉���t{�$r��ۂ�^��E�����Ds��FX������0���9��)d|͠���8c��Wc4�'�~���e�X�����J��'�-ѣ]3K�^��l�k��ᕿ���'�6$hhN�NW����E�u�E*Sd���C*�/�>[[�t03Dz����Zb�	ҫ[r
G?9uT�~P═�v����6��iD��S�x�k��7,3��:���tNJ( 08<s��ğ��ޣz���N
�s�Ks]���/e�!�)�1)�h��),�����
�c�v4�-��;k�~��#����I���ں�4�wz'j�+|&�+�F��ӎ�����M�t��9�Z�c��p��td6xl|T�����ooζ�_�r��2�%.��ƛ����c�*��o~>�^��KW����!�@+�W�=�MjQ��!��n9}m.'}�K	Y>�Š;�/� r�su��L����|�ƍ�PtPOσ�O|�H9������G�يI[�KC��>���Ϣ{u�����#\�r�V��{ix��`|D��/���'����mM��x�+���{,�q+��桌�\�_�&o\ߪ-1{��Tu��CT^~J"A�PO5w\6���h�7��Z\�^^C�ڭз��+V�2K���x�yl�� ��y�t+�&�-Q	I�W��[��:��ߴ"���ҋ/�+��_k"`�7��2����K�;V�8kD�A����b�)��^�˦.�]A���g]&6>�r�8v�UT*<1���������D,�e �+��Or,LZqNɆfB9��\�@'���M�Œ�����b�2gG
-�F�,JɎ�),6��}nd[z�K�i��I䭭���,,<bP��/M�φ��/*�[��w����.�����Sn�+���2�}���u�n��񶻦��7�|��GQ{S��o�����\�X�b�ު(?�ּ�҃Tq�/
-w�P$���i�'ͷ��o�t򫿨��PtϮ�/�S�,�97���[����B�A�bo�y�Z��6�<�|��JD	?�� ӄU������{4�V�ژg%}m
-^��2>1F�g�wǖ"�G͊ox������+�0�.��/k����LK������w3P���5Sq���(��X7WL��ߚ��5P)�Ug$m�P�\�գ�4�}A_�*��|�-��^<��]t�L�vkS�`�y�����S��}.�&.7H�����f�癁�K�k�����{��S�}wv.��8(m���P�dlax�7N���H@o��5��rq������E�2=fgx��Nk�C�M'����O�g3#�S�EgZ��G�e#�IgZK�� �i��N�j��^�	�Mg���.�u.x��]��E����W�/�cu*��ϙg�
-�4�1�rp�UY"������~�ѿ�
�]��{����4���Q+E�
-�1
-���L*���*��%��wf��&�ɘb�8)�	c��6l�"�	����lW��;t���������m���D��O�+UJxC��n��~�l� Y�IQ-�k3:C�o�Rղ����E���%��0-W�˧`�*j���f�?z�uR*B1�ŖFǢ���h_�(Ӻ�ڃ.@�H�.�ESā�!�gIu��ORpp�W�#����-k1���-Ԕ�t�8���ΐ�x�'���������A���OX��\��f.vH>.�W���_@�_���endstream
+x��{U\�_�%�Npwww���N�Vx�`�����	 �'��;���}�{n���y��T=|笵���^g�z+
+5M	+'������.H�t�pw�4)�h�l����<�H44Z@��?�?��+�tI����Z������������<��\�tr$Ws::�����W �%�d����5ݝ���+
�����%�M���Oe���\����hc&����e`bb��!  @n���\�����Yx������GB���)��X5ks+ ��v��m�`gA66gks���͚��1�)Td%������_�I]���f�w��AN� ����� ���d��̦
����+���/��&�a�d`�$���,m��J������l���uvr&�6wp��H�n��r��;���'������
+h	&����9������+��]�^������}��2�s�VN ����;�ٴ5%��
����FIJ:��d���&g����3)x��]�^���j������_�
+ k'r��������pu�3���c�����Z���5:F�<����������9d���
+��� ����_�8���G��#���x��u�������h)�q��M@7Y��J
�������e���C����L�����o��-��ps�s�� �K)�t��l�5�������_�����{�v@������@��`����d)�ٮ�s�S��'��w������ɸ�b wY�U��+����Sr��&lEk
���!��db�<�${XᱰC���#	�X��UQ��g�ٿ&D��Ky��_RT=�ӈJMai�9��<����V� �-1�_��;���-��J����!�k�}��h��z��]Ӄe��4$���&�n�� ү����|���~�w.���e��<\Dպl{����d�	�4\c����E���6V+L��5�oeYB[��jO�R�٦fqQ���G�\I[M���QVͱ�d� �u�m-�G�]��ݯ?4��-�~�=�^^/��C5���+6]�#�R�Y�Ġ�A@���5
Y�����ڽN׉l~m��>=�A���I9#�#�y.ڨ}6D��8v�5T]u�X_ͅ��$���#��#r�3��"@0"󔇶�B	"<��UKX��5�7}��wz��4��m���S&J���8<{��UZex�}iTt�I����[�V*e�+�
+r��A���ݷ�u�w�qB�nEP'�ȇ>��¹Y<AT��{$�WT��g��rښ��[�j�������1�*.�Q)�������Q���l��({H]�&sZE��������Q'�W�@p����VƓrz��S�Q�wZ1�&{��ļ&��C�"��`EO<��#7r,���=7 �^�p@w�д��N>L4B��nH`�\LSz{�UR
+>����ə6mω�����O�,�'��Z��gS_T�C.�L8�++D�f�%O(ER��uMX�Ed�}B���ﺟV�$�_�'#�#Ά�1'�`̨�������LƮ=>Ɖ��y��P����R��Y��|�'���&߆��M�d�%/J�0_��1���h����T��k��&Yz�yǵPv��8�x���Ӻ���$�+�,[$B�PK�2+�ٿƫ�'Mh�N�X��@���m@�:c�݃C�g�i�@��9�c�_������c� ��+���ОC����������j9�(��lx���cU��p��p���8Nj�ܺ�{	�jK�F��J��4l'㱌�eV���jR?�:^�?���e3��$����
+>�Y�$�\c�~�̦�*;��3�[��m�y;�u��Ϗ0���	e��������a��͆�'�Rh���52˕����;6b{ׅ@�<qщ��/u�l�Tڊ^�G!������	�p���I��T�T��P��G}B��W�/υ)D�yu������M�� �	��:;��u<��ׅ�d�g�gϫrz 7��| �D�kɢ+��/VeR:�zLa���FL����S
+4HFUڸ$;�#�3�����|wf<����-���U�����&��Jv؄�(٫�
�y$҆�Ƌ
|>{��	!�$:���+j����GC�x�K2���IJ0�C7w�C���͗��">�R~�C�+�R��1��+m�G�ߚs3�6/�lRoVL�"MC���_�:����,�uh?>���j� <JYPk���/ǭ���'Y�f����}�_a��m�4�,P�V"�+�a+��b��̖�KI~q�O�hé�E0Ra�gP/�@��0���&&��y�I��~�7�����,/��W��M'J�Z/#�7����i�xh4��~f���`���8��L#m�<��s����)�JdT���ĻM���X�2�A��"R�z࡯gv�������ɿѲk$��G<��3��)��)�tC���,h�	E�H�'E����a���8|[�YީDK�@o�92�;h@rIm6�S�#P
�7�HP��xX�py�X\"���v���䭻�6&�V�[�f�*�x!i��6���x�%v��p
"_ᩩ��}�´�019���g��J\b
+O$���L������5�R1�"ኯ�a	�OJ�~���"��F8�Z�s�~��ʉg�F���9yƪ��0�bjV�m�, }cf��׏"f���I$x��A�8i[�'¹�Kc��m�*�	���A��;�����j��+��_:q?w������O�2��3O4���uGV|k��>�n*a>�\A�^�������{Ķf���V�d��e�^���i���vY2�8'��
+�����"a։}�_��;M�A������˓�|�2�������WS�]�(����e��<���}���+u]��M�<�U��|�� �]L���n	��5��L��T���1�m��&��v..ح��\�$�~/,�m�4���G۷�(s��^�\t61���	��&��%��Y��,	M�w�9����]�Y��㕶�>��������Cw�Ru@���F���O_yG5�u�+q�����.)�	�)���UX�K��M�*Vm�
����%ܿe]��&��1*/��~S����k��[�E�&G�5<��� �>f�4'�(?���b"���݅�42`R�Q�T��p����y�r��y}xǹ좉,ڡ@B8F6�җv�•/�.]h�ZS�!#P�H2�Ǩ#�mֹ]�0�b����D\��j��m“���
��'��kO�x�?�{y�g$�����d%Ӹ�gZ�jy�㙹G�2Z=��'�P����9p�8}�B7�/AǍ������?��&/�����״~�;�e���XL���B��py	鶬�=��IQ�F�Wo��CQ��Զ�y��
�3���>Oof��A/R2�<�
�>��kS����;Z����i�C�ֶ�`�����C�0�Ep�yye�o�V��J�0r7�3h�2�����f;��C�HU���$�f�|5��6AL�\6/��c�`�I(;5�}͠j����f�!�Užm���耕�'���
+���yy�W��w��ܘԖC2R�iXq�ޗ�|ƤaЎ/��	�����>��^;b0	H���u���̽j��Q��=��ڿ�Ď5��Z�����������+ �����!:�B�
$��CT�`Bsv^
+h�2�KuZ]ik�OR�Z|�"?D��춼(>�Ϯ���z_V����"�[أ��ƴV�t��8�7�lC7`����;fo�ŨG"H�4����n�h��.£�dDŀP�#�r��K*�G@�F|�d��d�_2��A?������*�I��6�4�6�;�HąnF���� J�&�\�B��B������P��=��Q��
+��!����c�X4�e���>s�I��){����M�0��Y��4�آF��-�z���-������M.���Ҵ}����3���X�m��W$ɩ/2хA��zaL0���"�Gҹ�r�XS"6�3�E���YU-��^����P[b�|��{G�;8�n=c�b�N����<�]��+���Q'R�Z�ɥ//t��%^y��~����J(�c�2��T̠.�n��f�n�[/�\v�� 'i�����w�e�4c&���j���t<+:�H�&�}E\�R��M��]=s���bR|��$����A`��{��i��џH,e(��:�����x��S� V�9 �MB�3g¥�f7��1��W�ی�o�#��k�V�vͧ�N3K�`\)� �񻞒]�H��{^Zh]���	�p:hn����t�������C��1e*�#9�(��
+UO�hG�5�i �O�h��'
+E��jW�R[�U��Zv�`Y$�Y���׸
%Ʌ�t�<���܃����]�>Rl-�𐔚F:��$�Qm��9�
��_�{�v`�u��3���T/|����vġOƪ�l���g�5���X�/'x�3樣!"�+:���ʔ�r��#�7��h�oK�\y�m'��?�8�ɛ��6�u�~�Z�bQM%����·��� ��ҹ{�$�� Kt�%�<�Ё�k�g��XS�3�C_���%�1]���պ/U]L,�!mӇݏ}�;n�W-2	���{ye�8��]��~^�j��D�Y��|�1��r�w6\�z�}��R��na��M^'�dK�v�{`u���U��J���C,A�@�D���-��˛O��1ĥ��{�E��^��+�b�b����8�"���N.?�>gu��J���qW٣iLl�R��� ��F��`�2x����iQz�(
�$y�] cA�-L��V�2�УL���SgsnQnFMh�/�_�R��X��O�
+n�)��9|�6fF�8L�pz���DOؾ�2k��HБ��P�]���+L��i���~ےXw�J5�x�lR����I���>�%���~s��g�(
+L��D�ܽޖ����� G ��=bTJ&NZ�$�����eWAem@ݬɍ�><-������ˡUy�L�lj��c�+&����9ݯ{��Z�S"����4�'��δ9��C�,�XVdH�v#�K�D�K���D�?:Vs$����l!�NF���11�MF�Q{nc��9�k���IqB���x[�}�)륾�w3���ʮ�ĉm��iq�J���ZT��u�p���V?+��Tʉ#���%U�
+�M��:n�
+�=A�ۗO��?�����m��Ӵ/w29P-4x�i^s�FE���k{���F�U�Q
+�LdEJ��WU��iB�{|���D�0��a��I%�~���wC
H1�G�:��X�-�<hĒ�I�-L���Ը���%��S9�?��J;aΧp��|(,���|�=S���+���JS�0�?�x?a��~34̻}��[9���y��<lT�7��Ji>b��'�w2?{8��K������ݦ;
+����$K��
+D���:�!��ў+(�pQ�і]qLD���am��q��N��a����C!�%����90ˢ+*j�@���.R�V��X;�ދ6F�\�z��i�#�w�6�/�w�	���1���������u���6�b��3�$	K�+�k�����#�ؖ�*�W
+�؝�9�5b�Q�k�m�	� [y�/Vq�_�H_����n\�
+P���?Al�;���h�~�*�h��y%0^�_�!�ġ?�f��G:Wf
+s�}+x��X�X,�u4P�ݵ�g~��9��摴�=3���9��h|�1�z�|���Z����{\(&��J*�_��w�l����t���[��m+"����d!6��V�4��ɾ#Dc�U� �t�{��7Ȕ�Z6)��^[��%c�Wip�~:�,r���}�x����ύ�L�Ԏ�3k�(z?@1���Q�5����_����);TK��@K��C�6���<}ە�<�]Z�[	��R���Rn4�-��4G���Max�u��J�T�zۑ�0���E��{���wyې��9�	K��Uy
w�9�N!���
����''����,�j����h�Ӻ���<Y��%p��ۛq�e���`Cӧ��Ӕ�M
.�7i#�l�A�����{�H�˯�m�<j��'�
�U[�dҧ[�	�\�*_��Z�5!�8H����LV%�AyzŐ�sq��t}��1�ߟ}�:q���yO�]�Ȉ�*z����n���K��Κ)�
+�o�9��YV����B�&>n���P@���"�ʄ�ݓ�
+_�D�t؛��G�~ۙ��hrN��%��R"wFC �Wj3����e��f�+�$Te�
+}���4���J�v��%X�Xs������i�t����i
+���.0�Y4dj�3f}ґ��8@�2�c��ۣ�,��*�Aa�\�(z�VM��r�%(K�`����~���W!
[U�u�Yo���W�LT'��[����/��������6< �|b &�m�1b�󲔰j���������!����oF�u�]$Y�VcJ�7h�T��s'ohZ�"bIY��638�$J��ಀ��B�
+Kl���Z�ƹ����g����9��Wz���F� %'�C|~�Ǒ��.M��q���ԓ�t>��A��[�
+��k)UV�h2^�G�K��AC���R�S��!I�Ə�U��k��5Z������X�7�F���/�[ut�:}�2CȹNE�XYz�on0�G��U�4J?��˔�	����Z�F�si��O�L*��H������rz��'@��e�hz�_b��	��/�h�u&Sh�5�+�N���"��ʙ����#\�2%QԈ���y&~����"wp����J�րi3�
2o{5����L|U����ٓ���O%:b()	���y�M�c�)̀my�ؗ>�.�6�A�y1��&0%�(B�tE_A2T�ߜ�
+�58�j�Kf���a�do~��2%^����Io��ۤF�M��ո��A�1f���/����`�0�*�s�xPbtL�@�D&�����Wd4X�5�d��J��4��$Vϑ�EMݻ�vb�!Iy����������ލ���(a����t���v�%)h��1e|�naL��R׶a�P""�t`�c;�6�
�O��5��m-�c�U�"ɯ����X��܀�:��d�nz0��I�!8#4�ߺ08W�ݞ�u�9��P�ۆ���O��_�/
+ƒ��}�o��Kq��)�ۚk�>����q��p���=#��:�	����A�iX\~��^��W�?l���y���{V��lj�1� l�^�00MR�u����1��<~���I-��@��x�UJ�S�AR�Y��u�Pi!m^�H�h�RQ����<P�A�	ߪ�aO6�A�l�uX��J�|�0�1�8���gj�I
+�b���"�l�TS�{�w��Λ����$�꓁|�^HW=�Aa�+\U�?����˥����il��]A���<�#�̝�3��ү���^���S���̖���u�%�z��,|b��x���⣦i{2���'g>�L���Sp-L��D�WI������t|V��_}�(9=}5�@�@��`)Y�����-R�gfp����q��@{��w�'��W~���9��/�4ڰy҈�.Qw��Z��Cd��Sx� ڮ^�(	��<ѧZ�Q�/��м#ˎ��M�x�s�6�??�w¨�a�9����R�v����le��3Q�2o����6�ѝo���
+ڗ��"7n���r�0E�Y��X��t'��Rat���X�"����	G�o����RjQ�m�c�K&�f���N���D�[J���x���o5[�`��KV�3��*��Bs�'�����u��-g�h�W[ܹ��5k
+i�k�����2�kk9
?r����2���C��u�����_�$F�Җ"�����p<'���ލa�풎~�B��!Uk���&otniQ�3�������t홡8D��v�З�)k.Q���v�:ҷ���ָ�p�6v�g���\):�.1A…�9x4Ns�2��l��(�g�娬o����|\��=��ü��m �x����� z�a������ub�T��/p��"g�����e9�dV'�t~�b�~��7���>t|ߡ|ڵ�|��
i���Li�K!����#s
N�Ws��"|l!J	��
ܓycX�!ك{�f+��?	ZT�K���B%�."�t���`�}�uk���D8�V ����ى���z��
�ΑKA��1"P�}��Jd���r�4p��贤):�e���P����PV��r+;��_@YA�Z9���ӳ]�61K�lL-�T&T>��|�1~4�+#5��9{VnO�M���[���"�VKl��^�T0���#w���t�"�a�PA�B=G��"���2��"��t���U�v�ҕ#�J60\ѬD�n�Ha��Ä�F���Ժ�����azI)稅����3�Ǯ|��}��ԛ��\g��I@�8|��M\�pӌ�y-���n&R���ݬ�)O�DOg��49d���J���k{�Ɔ�	e��W�U��5��.&���{��3��vm��&}�Qɠa�0��L�3ڳ�����ۭ��r7�Y����ɫ�D�ȁϗݜ[�|3�T7��%����ݍp�1w�THw��9*�)}l�EM�8b�D�m�>�⭍�YĻ�M�s^H���F:�	'b��'d[ł��/��+C
,e�&ؾW��ڬ��uxbA��Wd����ȗ��]R��~�z3��_4���T�tl]OM�X�ΰ��YA���d���n��vJ:�g�au�x�!�]\�+Q������ڀ+�\�Ǽ{�$���vc)/40�����I���9�d����_��,XE��a-�q�����]�ƴ��u�5�9�C�1����~8�yK�(��n��L�ޯj�M��}[�%3�w2�����
��ƙp��ӹT����uj��.pG�B�CߦQ�˗���'�EjMrB�ȇ�'�a�p4�L͛<L?�aA�t��ߗ���T�H��j�<A9������O��F݅����M�Hy��i.c�{$����o(X���M�F��HF�2��j+
�F|�>�Ȏ~L��X �L��Z:Xe�ٸ�#��S�b�ϻ<G5�����v���c�i��F�i�i�>~<a��&��E��������=�Q$�I�y5ܔӹ��ES&��z~��z��v��r���NW���:��4��L�+���9"Zp��?��܂%VTgN�z7��s��@K�8��{JenX���аZ�)�M(ZZr�6Ԅ�g+7���u�P��=��L�^�*�-�e���l`D��2}��e��ғH��]����3��L�da�0�G��Pa�}j{�$�c�3���h
+2TJ\�BY��1�~������:.�<�r�ٙ�0��=/^UD�����W���B�+� �@B�-��Tօ�zq���s��h�#5�B�n���t(~�}��=�&�]Hw���L���ŗX��Y•�1��}�-`��p��sC����V�qW�������>�x(�&;B�prqO	�t�Vsx�Mȱlykm[�����z}�7��+�޾��0�@J�4[v�� >�:<'�;t\)X�CL�k�:�*�Z�k)���Xp�޸�&�1z @Ƽf���T浥��X���R���e��:�]�J�n�YM�����뚀R;��c��C�����<��c�_��NU�J>e�'#�J 
+�����iw)�з��~?���݊,o���׹tZو�P��!�d醞st�=Ӯ8a�.���#T�zĀa�
+��;��|Q�.b�
Y��3�`_⍧M�k�g��2��[�A�-q�4&����cO�J�fby�zݑ�[�/�/~O���vq�>j��X���}$�8;��ޚIKۑM����iOXY�r	_�|�� *Le�5�,��.UB��_N�6�֭(NW��f[z��A�j�4F�A�΢i|P5N�'rF�u=G�X�9l�aAU-������!�앚ළ�<6���}V<��)9v�w@B�ŧ�ZM���CڕP��M���]�m?��M[��ox�QN3,w���?WfUA����:�n�DLq��G���1ȓ����:q������)`5����ڎ�ɾ�%b�~i.�%����:@F�V�ƴ������� ��7�@�ss���ev;ш�%�3��������<��Xc��ڶ\��N]���xe$�]r|<�M$��1e�&�������M+�E���d?<�"	�����}���m}t҂�]��ݖ��o
��Œ�V݋��J4%��N�F�E�3�x�Ǖ���7�<�MRT�A)���)./�ٍ��E�F��4M伫쭤K�q�9��{^�^��i&�3�3�
���`3�LJ���᧑�ە�F�+�ɖ��L�8�J��/�w���u�asA(:К��g��j�Z�:�w��U�{��@���@�rb��71�.�+c�\��<��sSo<�?�	��@�DԳ���S?4R�t���׎�O�b���p9�/*s)‹�~=����(׋\`�uso�~�&����~<���&j{Gm=���t�>�R�j��(���W�)�7w���ާ�5�#���7���$�_75�,�V���3���{�VcV�Q���lm�K����Ө
2�>u�f��>B�s��������+Z�;|�JlY�_?`�Ǘ�P�70���
+�~�A``����C�3�� ��L{����q� �eې桠`n��!�	
+�m�ew���.*���E�?���~V&�
+ǂ��5���oJ0,Lzin٦Vb%��\�@7���m4���=��W��teήT|;9�L�]�3Xlȱ�Pܨ����8��G�Ө;;ǵ�9Xx8��v��Zʟ���^U@w�ݿTj��^��ƖD�&�y�o��+|m�4�7
za�';Z&V�����E]�/K�,��𹪱�Ķ|�P�����g���_튡H�X�HO)Zl���5� ��~V�1���[�_���Ysi9�� s�"6�.���"0�D�2�mby$�$d=��q��$ӂU�
9����<�Q�ڜo-}c^
�695A�g��+G揞��09 ��WQa�]�_�Y��{��!8 3��{D�e�����Sq�}�,���0_B��О����.J��h�����~�g
h�$��~M�?/
+5�V-Z.%�tH1������ζ�Ѷ�췇���P1��"\�-L|^�����Z
^�zǮ1n�".b�뿢���zs�`�&@�{��Gr�`K���	*�\'�@z]����+�,�,�V�豻#�
ڳ�]�����|r?r�Q�/�{�j(?2�*#L��Z�a���u���~���M��jA�0&�mp�S�����,Y��V^�p~����[5�}�<�]�УE��ǀ_Rc�$^�+�h߯d���.wQ���W8&O�ӕ�6��z9�ux�q��UTrd��u�<-��3~�/Al�4�i�H�l�i�IO�| ,e��~Х[p��3쮟�$oǏ.��}�R�X���v���o��G����Za�PX�Q�9�DB󶚶�����
�`,�֦��R=>��3Q�T��u+��vp��R1����:�@	2�C�L�rZ��i3i��hW4M1Fȇ0�e��b>I���f\-����֎쥐��03��]�x�z:#�z��H��J�7�������?!`��0w;9���#����N����0�endstream
 endobj
 2183 0 obj <<
 /Type /Font
@@ -24010,14 +24019,14 @@ endobj
 /FirstChar 2
 /LastChar 149
 /Widths 5518 0 R
-/BaseFont /FRHCWM+NimbusSanL-Regu
+/BaseFont /USATHZ+NimbusSanL-Regu
 /FontDescriptor 2181 0 R
 >> endobj
 2181 0 obj <<
 /Ascent 712
 /CapHeight 712
 /Descent -213
-/FontName /FRHCWM+NimbusSanL-Regu
+/FontName /USATHZ+NimbusSanL-Regu
 /ItalicAngle 0
 /StemV 85
 /XHeight 523
@@ -24040,7 +24049,7 @@ stream
 xڬ�ctf��&W��m۶m�z�Ķ��8�ضm�vŶ�ʩw���z���O���c���5��"'VR�6�7H�۹�330�)Xښ�:����ѫ���D����N�cK{;1c��&��H`J��B����
KN$j���d	�p!�RWѤ����/�?&D&��S����hGD���
`c�`�s����
 ��X���-m�D��J��
 �DT�
-�D��;���
������)���)��@Mdn�Dd��������?�93��v&2&rv��Z�ux��Q�9��l-����Y:���\���Ş�����������������_ۿ��`J��.ΦN�.D�*�I�;Oc�b;[�Uٛ��4�7u�������պ[�9��<\��e 2�tv�1���/�����pu���WtDN�����
���/�_���_u�o�;8�x����_V�+Kg��9,3�ߘ�.c-�`�i;s{"f���\���
���Q�33��06����$2��2*ػ�
ID��2���
����B��?r����������	-�jc�`l�w���`��n{"9�v��������������🆚�'���#�b���v���010�[h�,a�0S�t1� 27��۩�����N6�v������D��LL��S��4�������V���3��$�+uF-u-Q	��ܩ��R�˽�������G)��f��������7��H���I��7 3���!ڿ`���,o��d�A���d&��?��:��������?���blg�w���������_V�u���?��t��`
+�D��;���
������)���)��@Mdn�Dd��������?�93��v&2&rv��Z�ux��Q�9��l-����Y:���\���Ş�����������������_ۿ��`J��.ΦN�.D�*�I�;Oc�b;[�Uٛ��4�7u�������պ[�9��<\��e 2�tv�1���/�����pu���WtDN�����
���/�_���_u�o�;8�x����_V�+Kg��9,3�ߘ�.c-�`�i;s{"f���\���
���Q�33��06����$2��2*ػ�
ID��2���
����B��?r����������	-�jc�`l�w���`��n{"9�v��������������🆚�'���#�b���v���010�[h�,a�0S�t1� 27��۩�����N6�v������D��LL��S��4�������V���3��$�+uFM1uU	i��ܩ��R�˽�������G)��f��������7��H���I��7 3���!ڿ`���,o��d�A���d&��?��:��������?���blg�w���������_V�u���?��t��`
 ��lo�b�+#ͥ3gxRL���|8ԡ�A�0?�ھ��W�.w��GM(C�4ϟ6ϥ3�����^ʞ�U�/)u_>�E'�a�A	|ڹf���������ޤ��A��t���3u��[~�ٓ��ij},z'R#Jm��9E��������P�-d�.mv,9�<Et�c6���z�w$5TZ�m��B�no�\r2�([�7%`޺]��GdZ� _���T�A����t4�p�4�\�׆+��3&_�Tp�ݬ5Y�LƷz��G��~��Z�j��>�����Βz��r&��H�J�Vgr/�Y�GiV�]l��Ӣ�	G�u͹�Y��Sm��Ys�)�iG�q�����ppӍ�„iѹ�g��U�[?.Y|��s�����_��%�-rj�I��Em�m�K!Y�d~܉pdq�&���_g���v(�*N�N�\1H`g
 �W�4��yd6¶Z�C�����Z�5?y�R��9����!LgF���b��u�!��5ر���,��;
AZ��[�#�{!�a�u�c�{��h��H��jI�3'q5_cR�O=ۅ��r�<|�p^pwL�������$�����ag�$�f̮ъ�F���f���F���&t{{3&dRӂ��
 5�)���toΐ�再d�f�L.a�g��� gH���Eꀳ	*b������H'a��@M���"2架�k�K[P��f����Ħ��U|��m���+:��av*� ��١�j(_��hF��TϏ�c+�O���??p�'
@@ -24096,7 +24105,7 @@ S
 /�����NJ��A]*Ei=�Q�+��:�[W��R�%�t�|�E0��e#�MR
���D]��M���6t�$�
�����t�O: D/�)Sڈ#�f��@����zp��,`HÉ�b�%Y� ֤hEB��FB-u�R!]{I�\mYX��$מ�Q�ןfB�����S��fj�;6s]3cC�u���G�yqp���g�D��s;�t~cҰ�3pZ��|ו�zpT���(ܫN��V*Cm�P�搈{��ld�����t���{B�_�>�<�P�9����xD:�B��(��4����F+�M��� �NJ�{�ῴ��M`\�b��W��� >i��N�Ĭ@��v�`�?ouS���;Z���j+*7n�ُ
	מ2V�L�>�L�T$c"E<�f߾��Ʒ�����0�}�s��h��g��r�"�&�p����^f���N1��(a�̄�����熅�E���j|���/=�h@�nwc�<��GȽ��2O9�rۚY�CZƖ�k��u2�[��m��[����7�"��eN c���Q�s4Gr�l}��زג;[�Yո9�@Һ2����l��ٶ''Yfz���K���w�ِʝ���?���G�z�\��c!���@�	��j�Қ����j�d�\D�K����ʆ�x%?���0k��#�P�hR�S�$o}�E|�B��nɶ�MˎMs>�Gj@-�2φ]]֦p�����ʳ2���ݷ75����|	�8�K/R�X�KF���͎����X��E{-�
��c�~�o�Y$?Pw2��1{�`ձA�5��	���di�pr�3����H����+5������0��XiOkk��oq���:��nb���5�A�W���b�gS�|b�f��oZ؈�\j{3y�4�if �@���8�t�9]"ύU�}�2H���R�_�ǽ���⎕z�c�!�͛�
 l4ٚ�D.@e��n%�9���Do��W����a���8o�������TA]��i�&\�B*�;{���/�6&��p
�v�׎�����VM�2��q��u�G�?��}��ϸ��"����K4�#�1R���,KK�!7����N"��7��&ft�"�CI�GY���?[���C0�\34h0�Y��Uۙu�eϝ��*�:�*-�K)�G�} ��	�A03Ī�ŧq;6M7vuR�
 �*�S��2RC{[�j����-�E����2�\t=�䭂׶l=h���j�_���[����Nξ�,c��w��Izn��o�˟)��J�!��/\�`͝�KhB.��\���_S��\��Fy��;��&��
-,�y��Q��ؕJ�8�0��S&Ѓ]-���Y���!m���*7���3'�I��L�#0���*��)���������W��7f�x4�}��&�r�e�ܱ���P���VI��T��w�f�o�r�CA�ղ�W����=�#*��.])��~��CX4l�̓�fh���X���g%���6�i��fy�͆���_yhi�B,����U�آ�(Y.�}�c�����q�4��lB�m!�����r�o���x/[�y���Z��"��E�I��7I�KĈ��'FC��nU���!�V��]����K����O��΄bb�/�V'��0M>bV�",�a>�5������k;.n���o~)�"EmU\�ʿ��p�h�kY+ݺ���`�*��8�A�*�<n�!@������"�u��q��l�����e��endstream
+,�y��Q��ؕJ�8�0��S&Ѓ]-���Y���!m���*7���3'�I��L�#0���*��)���������W��7f�x4�}��&�r�e�ܱ���P���VI��T��w�f�o�r�CA�ղ�W����=�#*��.])��~��CX4l�̓�fh���X���g%���6�i��fy�͆���_yhi�B,����U�آ�(Y.�}�c�����q�4��lB�m!�����r�o���x/[�y���Z��"��E�I��7I�KĈ��'FC��nU���!�V��]����K����O��΄bb�/�V'��0M>bV�",�a>�5������k;.n���o~)�"EmU\�ʿ��p�h�kY+ݺ���`�*��8�A�*�<n�!@������"�u��q��l��������endstream
 endobj
 1752 0 obj <<
 /Type /Font
@@ -24105,14 +24114,14 @@ endobj
 /FirstChar 34
 /LastChar 148
 /Widths 5519 0 R
-/BaseFont /XUXCRF+NimbusMonL-Regu
+/BaseFont /WDUSFI+NimbusMonL-Regu
 /FontDescriptor 1750 0 R
 >> endobj
 1750 0 obj <<
 /Ascent 625
 /CapHeight 557
 /Descent -147
-/FontName /XUXCRF+NimbusMonL-Regu
+/FontName /WDUSFI+NimbusMonL-Regu
 /ItalicAngle 0
 /StemV 41
 /XHeight 426
@@ -24133,7 +24142,7 @@ endobj
 >>
 stream
 xڬ�UT�Ͳ%��K�pwwwww�����E�N���P��K����ݧO�so�t���Ɨ13fD䌌1��XI�^���(�`�J����P��3qsQq�Sp���WZ�I���b�p���@cW+{1cW @h�XX�����p��QG/g+KW����&5--�Z��0��䯧���=���;����h������Q�Z�V�@�������$�JRA 	�:�-B����� ge
-�wR����^�L�ͬ�)ͅ�/�����4����4:����vV..�V.�gc{׿g�����7�u3�'��vs�%����w��_�/����������+�oT%1���ji��Ol��0����N3S�J����/�jle�pz���0�rq�5���/���տ�ps��������@cg3[���_�������	�ߪ7vt�����ÿv���\]���p�,c����mae��O�Hۛ;����m7ss��������g��&al�`o�0��1*8��
	���S��O����[�o���M�����v��_����p��U0������3������w�����g�?�����jlge��r���5����r�W��!��-�*D�����o�����'�L����`nl����eW�7:�Z�����������_05K+S��`�7�7��5���_0�*�ʫ������6+��
+�wR����^�L�ͬ�)ͅ�/�����4����4:����vV..�V.�gc{׿g�����7�u3�'��vs�%����w��_�/����������+�oT%1���ji��Ol��0����N3S�J����/�jle�pz���0�rq�5���/���տ�ps��������@cg3[���_�������	�ߪ7vt�����ÿv���\]���p�,c����mae��O�Hۛ;����m7ss��������g��&al�`o�0��1*8��
	���S��O����[�o���M�����v��_����p��U0������3������w�����g�?�����jlge��r���5����r�W��!��-�*D�����o�����'�L����`nl����eW�7:�Z�����������_05K+S��`�7�7��5���_0*kȊ˫�����6+��
 W5/G �FҔw0�_��DD<>����zN�����u�fa���	�/"��\��:[yt���������+��B#no�`�O��ۛ�m��e�6usv���������c��K�zM��WLyC�3s�\�
 F��t���G�+��J�kz2#w���ׅ14��|vx-�9~����}���M^���R��nStq�3T f�k��\/�����`�8ܝRV1(�"��bu��~�$u/� ���o�ј�������"��������p�-d�m~,9�;"EL�S>����w�xty���3��#� �Yl��/� T��;Ŀ��J�xe��)�>�ذ�� 
W�5�>Ώ:R��W|�D�5<����Gh��v��ש~����$ݓ�\�1u�bY��y�;Ec����+2y(��o>�{��>�i�z?]_����ڤ	H(�xў�D��eZA��Ĥ�v�1��Ya"׷dV�~��8��D8�T)ѱi^��#������k�E4������Q�T~
 ���\s�Ka�G�o��&�yѰ�xDL`du�A��-W
r��Ц$y��ʑ/I�Q�.N���7^Z\Nν���Г<W��ʰ)�N�G�K���pY>��H*vNF8�q�=�0ܷg�o�q/hӸ��D�l^���r�����I&(�r��2yx�o����������.?�W�zS��.���jR�%�z�H�,Q�.|����Pc�o2�Y"I�4H��o��xdsh���vF�]�۟i�um�Q""F���1�������f���i �l�{ %���ngs��w���WS�%�7$�?-����YM���!$���ěz{�ݍ�����|�v�.5�&�
�b���9��gӣ.82�Rm��\#�W����Y ����}R�"T�
@@ -24189,7 +24198,7 @@ P
 �w�Ya���	���E�9�*��W��
��&�����WTcc����@��X��D�),� �g���:��c�=_@/1h�&_��������d�޵��ij�A
8�ľWfC��ș�&塓�8�J|����HKF�E�}J���z���oc���
 c�,ܣ�-���s���pFeC�����*<�S*O�\�g�/0��%Jw�K١��
 �k�%w��=>Ic����&�Mu{ͯ���#�4口*��"�pЇ�n�9y
-��h֥n��9x�+����بq�MӮC�,�AV��Z�%�]�V�4_�"����L��z^1��D��H(r�J��(ۦ�D�9��Oe;m�I�ֹ�"�n����^�T�.t����R;9��������nx$Sˋz7(S����,ҭ)�
��������B�K'������X"�+}3��DJ�;A�z�������-�l��E�V�������n�%����'"(Z��tUzCjH�����;&�U������bJ{mj��r�����������27S��$����Ɔ�S�/���P�]u_Y����~/�V�,���
�X	ʾvy�^����Nff�%���j�����HzD��)1 ��bk;յ��!ïGފ��e�s��/v��X��*lCWN���Hϼj�K��-��i$�&?������ΨC���0~�]$�T0 �.mn�WG�K����> m��X/*o�b��3f">�.Y�A����_ܬ�����SB������M�4Nړ��S=���uK"Q`�sRse����i�g�lb7�+��W��ys��76tW~	�}�W_�,�8��!V����8FL�_t+foǜ�����v�ɌŸ.itxۆ��7W�u��N�%��ϱs�z@k���5F��!��D��n�褩��UE�����~�GJ��b���;���ui'��ʓ�ϣ��ڵ'�7�#�.�RǸU����7�!0����ų��KG�
�B���S*b��b9��Ѫ��}\u��$�	�W�����a����?\�]���|%!�Z<�@Eendstream
+��h֥n��9x�+����بq�MӮC�,�AV��Z�%�]�V�4_�"����L��z^1��D��H(r�J��(ۦ�D�9��Oe;m�I�ֹ�"�n����^�T�.t����R;9��������nx$Sˋz7(S����,ҭ)�
��������B�K'������X"�+}3��DJ�;A�z�������-�l��E�V�������n�%����'"(Z��tUzCjH�����;&�U������bJ{mj��r�����������27S��$����Ɔ�S�/���P�]u_Y����~/�V�,���
�X	ʾvy�^����Nff�%���j�����HzD��)1 ��bk;յ��!ïGފ��e�s��/v��X��*lCWN���Hϼj�K��-��i$�&?������ΨC���0~�]$�T0 �.mn�WG�K����> m��X/*o�b��3f">�.Y�A����_ܬ�����SB������M�4Nړ��S=���uK"Q`�sRse����i�g�lb7�+��W��ys��76tW~	�}�W_�,�8��!V����8FL�_t+foǜ�����v�ɌŸ.itxۆ��7W�u��N�%��ϱs�z@k���5F��!��D��n�褩��UE�����~�GJ��b���;���ui'��ʓ�ϣ��ڵ'�7�#�.�RǸU����7�!0����ų��KG�
�B���S*b��b9��Ѫ��}\u��$�	�W�����a����?\�]���|%!�Z<�6T.endstream
 endobj
 1398 0 obj <<
 /Type /Font
@@ -24198,14 +24207,14 @@ endobj
 /FirstChar 2
 /LastChar 122
 /Widths 5520 0 R
-/BaseFont /CNCMTK+NimbusRomNo9L-ReguItal
+/BaseFont /QVKEMR+NimbusRomNo9L-ReguItal
 /FontDescriptor 1396 0 R
 >> endobj
 1396 0 obj <<
 /Ascent 669
 /CapHeight 669
 /Descent -193
-/FontName /CNCMTK+NimbusRomNo9L-ReguItal
+/FontName /QVKEMR+NimbusRomNo9L-ReguItal
 /ItalicAngle -15.5
 /StemV 78
 /XHeight 441
@@ -24228,7 +24237,7 @@ stream
 x���sp�o�&�vv̎m۶wl�Fw�I:��vұm۶�I&����o�;s����:u�����u-�kצ QR�&l�`�p�w�����P��3qsQq�Sp���&4�|���((D��ƮV�bƮ@�&� 4��������(���^�V���juM::����c0���/O+{��ׇ;����h����
 \-��s+[ @TQI[ZA@-������mJn&�V��9+S���`�����`�`of�Oj._X�.�c��#����
�i
 t�GEp:�Y��|}�\�����_5pu�Xٛں��C�Kn��/B��_v_�/0%WSg+GW�WT%1��t�4v�'��՗�`�ei�`��OJ��}�|i]���]��@O�b��fV.���^_������E������?�����f�@�/�/���y���m�����/������hk��������+���=�?�"mo��`f�������܁��*�?3C�E������`4�cTpp�
-	��?�2�]��Z�_�������5�?��������?CK���*�}
��w�k����@�Ϣq����Y�z��9�gkM�ي8ؚ�g����WI��-������o�����'�L����`nl�U����̀ζV��������o�LL�I�fiejc�O���ڛ�g�_��yFE5-Qm���r�������y9~q���;����?0""���o�\�o�l�_w�7���&俀���,o��l�	��ʛ��_����?N��	F����쟱Qu5�7����)�Gm������]������_3zM�VLyC��~���`�����v3��9׫�V9t�Ens���ch���h�Z8u|ߗ�=�Ʋ��J^�&�#���Cݠl�;f4(FL?ӌ����ۂ��`�8�WV1(�E8���s�DH��A���o���fJZM��e���#U����@�
d�>>]�X
+	��?�2�]��Z�_�������5�?��������?CK���*�}
��w�k����@�Ϣq����Y�z��9�gkM�ي8ؚ�g����WI��-������o�����'�L����`nl�U����̀ζV��������o�LL�I�fiejc�O���ڛ�g�_��yFyE)e���r�������y9~q���;����?0""���o�\�o�l�_w�7���&俀���,o��l�	��ʛ��_����?N��	F����쟱Qu5�7����)�Gm������]������_3zM�VLyC��~���`�����v3��9׫�V9t�Ens���ch���h�Z8u|ߗ�=�Ʋ��J^�&�#���Cݠl�;f4(FL?ӌ����ۂ��`�8�WV1(�E8���s�DH��A���o���fJZM��e���#U����@�
d�>>]�X
 ^wDʘ@�l|A�r���,�H�����ͧ��s�`;���G5�nU' �?h�e�Ç��F,<���N}*~��|C��0� B��p���`��Npl0~��6e���R-�D��mf�*�C���gII�UXNz3�KN�
BU�b���2��pI)j��C���"6~ �s�&�8�!��L4��.mS�A梵4#O�;�����j叽�O��;y>*C�x$D��_$7�Z�"'���������ۅVz�&D��2�l��,�����a�0��v��?����C��d�(h�=���SjCT���:3��B����mp`�����}�*0j!?�/�O2r�f
 {����P'�(�j@\���>c��Ȅ���h�V��ЄAIi� ��j2�<8�}3�*5^ݮ��ؽ.ILm�N��Ɠ�ӫ_7B��̕OyerA
�P�ɷ��?���8B���,Bʯm�KS�X�<I43��0C��{������~Ss�6DmZ�>'j���X[����
 �5f�8�]ΓR�,�1R�G��.k{�i���g�@-`7��6Qޭ:@�4)���"�;�k[�3�g��L?K7<����PK]ٻ]ݨWۡ�fwN���{.���aPT�^�5'��(��<�qӘ
@@ -24284,7 +24293,7 @@ tN;y
 s�R٤vKK��l���A��M	)�ط����}4�	1Ƙذ���_"�vjc����?��%餿?�jqL�����yu<�c����8����m���-��`jx��S�Fq���q�����F�Y<�!���?�����1M���ӟ����l��X
�O� �8'%���c�;q+���\:����`���ԃ�{��7&,�C��
 #cVt�E����|���Iҷ|���Vr_�Ȣ�&�>^!?�Qi��J`�1����� }�F��%��.����EKYW�/�g,�����DL��h
xF���}��w�S/�ㅥ��'�]���0SNo��D�(�k�D�B>��9���:O�#�����p1�DGn��+Y�yh���Z1џ�s,���k
 �N�O�Ynmt����&�����u@���~�"K�+଄OU��EE�H��ܭ�����:�m6ެ"TQ�T?�*O��XIf��@��=�`_{�k�k,dVc��<S5��s	%��	��˂��*oqp)f�NYc`e�9H��xQ(��vP�>0���*]W5�P*��̺_<C[�W�8�m����.;�N�w.y��xC@�O��/�~���"x��Z��\kۄ���4�A���p"�"��_p�ga�9A}>���nچK���ͬ)�F��I�������w6�5N�&2I%q�ṃ�a����=~Z�	��COx���v����C����8u�s�Xՙ���\������Z[^�4���W
-���dd,�z{�]�V��oH��76�X��`2�_>p�?��'�Lm��ήv��6p�
�i�endstream
+���dd,�z{�]�V��oH��76�X��`2�_>p�?��'�Lm��ήv��6p�
�A�endstream
 endobj
 1306 0 obj <<
 /Type /Font
@@ -24293,14 +24302,14 @@ endobj
 /FirstChar 2
 /LastChar 148
 /Widths 5521 0 R
-/BaseFont /OTJXCY+NimbusRomNo9L-Medi
+/BaseFont /MOZNHQ+NimbusRomNo9L-Medi
 /FontDescriptor 1304 0 R
 >> endobj
 1304 0 obj <<
 /Ascent 690
 /CapHeight 690
 /Descent -209
-/FontName /OTJXCY+NimbusRomNo9L-Medi
+/FontName /MOZNHQ+NimbusRomNo9L-Medi
 /ItalicAngle 0
 /StemV 140
 /XHeight 461
@@ -24322,7 +24331,7 @@ endobj
 stream
 xڬ�ctf]�&��b۸c۶m���b۶�m���Q����z޷O�����}~�1���&���؛�XI�^����\��H����P��7qsUq�Wp䖣W1�t���Ò�����Č��<�Ms3���)������
Kut�r�����U4�ii��S�	���?4=]�-�_�������!��U��@+s����9@TQI[ZA@%���4w0w1�(���Y��M�\ͩ�.�����f������K�`pu27���f�ij���d�bo����`�
 �t1v����`�`j�f�O���J�����_�_0%GW������7���Ŀ�Z���j�W
p��ki�h��OI������[;����b��̬]�쌽�����b��4�\�,�3:�����������_����t�?��/�;9�y����_V�3k����,3�ߘ����-�`��iG�3ӿ�fnN��s7w�W�����I�9:�y��-`�C���Xf��#�������[��#��r��\�����_�%��������w��1v���3�9�?�������clom�����֚��N���&
4��a˿�010�[h�*a�in�d
4�X���ٿ��f�.v����W[��LL�E�femj��	��V�;���
-������ed��i�7�_�J����7��Q�����<�#"��	�g��гp1���fa���	�/ ��<�]�=��fb�W����ϓ��w0u4�gtT��f��
+�����E��%�dh�7�_�J����7��Q�����<�#"��	�g��гp1���fa���	�/ ��<�]�=��fb�W����ϓ��w0u4�gtT��f��
 �Q�����%�_�o��q��ܛ�{��®�8���ddg��G��t�����:�7���9��gD�rW�ׇ2���|vx-�9}����c�Q���_�'�(B٢��=b4(G�<׌�^����`�8ܛVV1({�$��bu��~� u/
 @'{rB�3Mo���FnAm(>;�H>y~��黅8��͋�!�uG��p���Q���à:LN��;2��s(�Jf��ڼ8L������D�y�$kg�P�q��Xi�G�I�	=X�Ը6�����O���,P7�."�?]up5�a2u���}�̍.؈�/�u�x��Ӿ�7��G��<
��G7KR*� ��J�+J�k
 �{���ש!y���h}�Wu���r�pI�
@@ -24398,7 +24407,7 @@ Y
 K�rt�zU�?��M����s�k����,Sp	�*���Mf�Ol.��
 ��I�:���x�$���:����*����E5��B�+�ctCg�&]�����	$ת�s��%	ޛ���c{�Q�,�jc����3'�E� מ�U_d�2hi����z�c�}:6�L�-Z�XC$�~���?iD�ȣ���P���¥��	����᳂��x��H�8i�����Oy�޲@e�}�%U޼��,$�䱚'�;�NK����}�驑�Bs�j�Wgzi/�pq�Q
�]�NN��L\w,�`[qs��k쥫B6�BF�P`2�<������`.�zߴ	�������6ԅԲ+�OQׅCd3�F��Nf�0C�Q�>��6�8Qρ%5���,�Ϗ��b?YVNR�u/�sfY'�}*P����?�=d�I���0;Ջ��K�D\ZXL"<^�J^s	Jיw!!7%�]�zk����EV&�W�������<N��9e��@�fPt��L֛�yC4�5��6/��?X�R�WT�ٝ�!^8�0n��9���bf�-��Wkx���gbW��3Yu���x�
Ζ/j���H��Fe�G������G������������{�,����mYݰ���߷͈��:��Y.CD��9r��m�L�+�>R5��ʧ���Z�q�+�~��������@g���_]�"GqA�/���?4�n}�k�'��|�oH�Gs��F�������GƇC)Qa4ߏ����<,��],�eu��:�_�t�(���^u�ʯ$WM�ʒ�М���,�(D5U P����g���4�l�5�L��7��t�0��[��(����t'��5��G�k׽�!NB��Z��L��i�]
>�~ݏ'�[	���X��Kv�4�&��(���h��}����B�=��8H8f�����A��o���4/�:�`_���@s�x��o6WAc�۫����~����7i�, ����3��>_�q�.%�DG�cH���lczѶjVP_1�y��aj��Pl��2�$�#H��Epo)�(�8[����,�g�2Q��6�>�Gt="t32*7�x2�n�:V�F��f��+ds���.���?&�V>"�Ա(�^�4��`'va�*�[\���=���˞�@w��,Lآ�A���v�V>��f�g2,q�	jj-��diƜϿL���$8��`&���y�� �6ן���=f1b��u>�O��O-��`��RJ�������B�=/G��ʲ+.^�hs�ă����Z-/��np�4�� �����e�65������C�
 Y��a��!����ԌG��	��
-"��i�v������1�Oǩ&��D��Rw��X�ϸ;�����\%�e�A����T�<�ETe-�zq:L	��v^@��sl����>�wx7Au�"�lfҨ�S��/	[��Hi]������X���Pt'�}u	�C��ߒ�xN�<��&-�B�*81Me܂����k�Q����i�$���R���e����M9�RBL���ݰ��P��"������X������5����H5D�Tlň����4�SN;R�r��sa9�()~18^��k�'����>Ǖ������Y��.�N���L���þc����H%����{�[<��P<���t�����ך�{3��B�/�_�st���n*����6>�h��笚i(���8J�5��S|�G$�:�!�D��=i8���$d+3�#F#�U[�FS��T��-]�3\2�C���5P�d�J����hj��#1�h)ppK	�|/��/]�L��<[����s���˭�F�R�>�ƩK�I����k`����d�M�<"�m�F���p��5S��X�q�Њ(��+��<�c�����}�RH�,��M�ϷF�'��P�6Lp�-X�6��w��V�qk�u;�M�Џ�<�^����ҚHb>��,�E�%]�n�8ʻb!��A�z������+�
�P�`k)�ח��@L8fn������t~��󾟀F;���k3���;ru�ݛ����2\���O���&�t|"��h�~�Lխ���>`��72I�[P���w��1$��^�BG��!���	���O,��\ݝ�\��� ���endstream
+"��i�v������1�Oǩ&��D��Rw��X�ϸ;�����\%�e�A����T�<�ETe-�zq:L	��v^@��sl����>�wx7Au�"�lfҨ�S��/	[��Hi]������X���Pt'�}u	�C��ߒ�xN�<��&-�B�*81Me܂����k�Q����i�$���R���e����M9�RBL���ݰ��P��"������X������5����H5D�Tlň����4�SN;R�r��sa9�()~18^��k�'����>Ǖ������Y��.�N���L���þc����H%����{�[<��P<���t�����ך�{3��B�/�_�st���n*����6>�h��笚i(���8J�5��S|�G$�:�!�D��=i8���$d+3�#F#�U[�FS��T��-]�3\2�C���5P�d�J����hj��#1�h)ppK	�|/��/]�L��<[����s���˭�F�R�>�ƩK�I����k`����d�M�<"�m�F���p��5S��X�q�Њ(��+��<�c�����}�RH�,��M�ϷF�'��P�6Lp�-X�6��w��V�qk�u;�M�Џ�<�^����ҚHb>��,�E�%]�n�8ʻb!��A�z������+�
�P�`k)�ח��@L8fn������t~��󾟀F;���k3���;ru�ݛ����2\���O���&�t|"��h�~�Lխ���>`��72I�[P���w��1$��^�BG��!���	���O,��\ݝ�\�������endstream
 endobj
 1298 0 obj <<
 /Type /Font
@@ -24407,14 +24416,14 @@ endobj
 /FirstChar 2
 /LastChar 151
 /Widths 5522 0 R
-/BaseFont /AJJOPA+NimbusRomNo9L-Regu
+/BaseFont /BMEGHJ+NimbusRomNo9L-Regu
 /FontDescriptor 1296 0 R
 >> endobj
 1296 0 obj <<
 /Ascent 678
 /CapHeight 651
 /Descent -216
-/FontName /AJJOPA+NimbusRomNo9L-Regu
+/FontName /BMEGHJ+NimbusRomNo9L-Regu
 /ItalicAngle 0
 /StemV 85
 /XHeight 450
@@ -24435,7 +24444,7 @@ endobj
 >>
 stream
 x��yUp]˒��,��d133Z�̬#f�-����bfffff�X�����x�_��51;bG���Z�2WV�lR"y%ZAc[C1['ZF:.�,����Q��F�V����id�#%v01p�ڈ8�p�L�"&F�&&�#''')@����hf��PQT����������?=�;�f6���+[;k�O���J&&�'s�)�� ,'�!!+��U��ؘ8X�
��F�i�����	%���`�������Wi�t�X��������s������_.����5�����t�9�8}�����1�r6�������oBv��֟�O0y[G'G#���3����?x:�8�����ؚ~F�9�U�߾O�O�����d���W.C�1������3�'���oΎ@�1�8��8[�8:~�|b�՝�	�ߪ7���r�{���Q����hbeJ�������3�����A��1�02��n�l�O�����
��kf(?I��X��ML��em�>S(��T����@����G������o���{��Z���J���s��q��>oG�4�;���5�Z�����f�������gm�>�`�c���(t31�:�L
�>{��]�����
-hc���m�2����O�hdi�W��8�v���;�Oy��M//�&!)G����Q�;)��}��:dl��s����������@����y���,�^�E������1pr���>�f`����x����7Q#[��D�����s���������SѿO�g��\�=�&&n&Fp��F܁�i)NU�Yc"Z=]��AvE�������>ɡ[�e���Atu\����'vo{�T�C]V䝉&9x^�(�sQ��Z٩���u�RN�"</�7!4�T���u_��'Z�`.(}��������C�6J���ކ\�Z�wrJw����oxp����{�:�,)�Y��}&.��J�g�a!c\_E|Wp�
+hc���m�2����O�hdi�W��8�v���;�Oy��M�*�,�&G����Q�;)��}��:dl��s����������@����y���,�^�E������1pr���>�f`����x����7Q#[��D�����s���������SѿO�g��\�=�&&n&Fp��F܁�i)NU�Yc"Z=]��AvE�������>ɡ[�e���Atu\����'vo{�T�C]V䝉&9x^�(�sQ��Z٩���u�RN�"</�7!4�T���u_��'Z�`.(}��������C�6J���ކ\�Z�wrJw����oxp����{�:�,)�Y��}&.��J�g�a!c\_E|Wp�
 ���5F�&3@����h��ڤ���������9XNA��\�K�JA�ew�%)�4��	o��t<��;�GB��wg��{a0�}��X�$�NK��ȸe:�@��n&Tk��$]�o��Tct�T�o%l�8�j�����?y�qأe�L\�O��������t�K�CDE=1�=B��S����ˈzN�O�0vˌ�B�������[�…]��!V�M_�Q�s�(˜SOD$�a����t�B����E�'}��љb8�̼���?Ӈ{�hT1ڱ=
�qM"V��0[e�d}����0�w�T��EH��Ap�c�v!�"�V��1y�Q���w���<=�}�<�=��K�WWc[�_� .Mz��Y�'����@��kRC�pym�(����I����ОX�bLFG����߭�N�&(�2�	i�Р;ˎB$�IB�1��	�K��eʱ�0�0
-f7*���|�	��싂a��]�΍]�y����OB&e9�̪[a(w��K6j1�FWC��n<�pl�dg?�H�\�[��V��������7���l�����Ю����� ���l���D{C�#��l��52�Ό'���Z*8z?=ON[O0Rwv�K{}<Ҝ�^O���s4��1��4���&�3�,�jЋ`�zh5Zf��U�-l�NKn���
 F����K&�v��}g� �|I�G���P������$���G�c~��V^`��zt�_����,\pkc����q}��T\�x�#7�pq˞l�
��
 ?82=��N�d[����dp=��o.�u���i,:��ܞ��M�[���}�W>v�b3w���L8��YT��1�ޱ�+�p@�ܣԎ�V��ms�ߒY��lC���/�m��I��ִ�
@@ -24475,7 +24484,7 @@ Wrט
 kf�����:\���컚�qC��lN+ע���ׁ��w�\p��q��(}\�?_�ۖp�B8�d=H�.�$��G�})�L���w������dj�5�_99h<jT�q���bۇ❇ĹByjh��߃U}v����"���&��>2N��?���iUf�Kw-'ߜ)]%NTGk�G5U�M�2�b�V��Iy}���e��a�	�/��-�ĊO_�D��KR������%i�{>�P̳���/",��tKL���m�$c���_;�ru��=
��#��q$}X���;@^��a�K�=�����Է���||��p���U�8��#�ؗ�$���V���K�ga���.�{�a_�1��6R]�*��%*XY����0�����D���S�K��Eej��`-�v�fi��L��k�e�c���".�)�D:�F���My��������W������-]U)-�8.v��뼨�8����;��L�'���ۖ�ml
 E�u�Ȳ���}�8�=�f1	�$��{�M��|$�35��SC�}�����HXP	z4z��R�TϺT��>���u��&����`M���7.`Z�694Q�*��:���7���8�A�T�����!���N�0-s���by1��O�n�vσp��a��U"L��k�X����k.��wb�r��/o)|����d���t��dN�Ĕ�z�#ʖ�Ͳ�1�к]���,�N��b��,��>~�c�/�pO�ۓ�<�vG���?�vJ��9���4#6�+����>��
Hk�j��3�a5��vѠ�.�w�y۰�ȶ�X[b�|��@a���D�"�Y^r�]��=֪"�r`*�,$q���9���y��P�}a�3	?��0���L8@8�{�_n?��Vcb,&�\̀aCD�ݮ<5j����>L5:��J-�H�K�><�a�*x�<ev�p�`؞B:��qp)̢mS�P.��󀠱���\�틛��G��_��q��T�e����=�hi�Cf?��VN���?_�q�i���S$�6k��!��pi���8I�H��a1�Q���T���aOU�
c�_h���>✾�I�襁��+���j��Qw�����4
 �'�/�oS�D#:���־s������L�c.{�"�h��>�"��D��m]H����mؓ�V�eP_����L(܁��5-�-�F�0��p���#��/���ݜCOfg�K/�u!�n�cZ!��T�e+�	b��D�(
-�
(_�>qǽ6��os�������?`deb��dkm�`	���F�endstream
+�
(_�>qǽ6��os�������?`deb��dkm�`	���F��endstream
 endobj
 1290 0 obj <<
 /Type /Font
@@ -24484,14 +24493,14 @@ endobj
 /FirstChar 2
 /LastChar 148
 /Widths 5523 0 R
-/BaseFont /PDWIJO+NimbusSanL-Bold
+/BaseFont /VPTAWO+NimbusSanL-Bold
 /FontDescriptor 1288 0 R
 >> endobj
 1288 0 obj <<
 /Ascent 722
 /CapHeight 722
 /Descent -217
-/FontName /PDWIJO+NimbusSanL-Bold
+/FontName /VPTAWO+NimbusSanL-Bold
 /ItalicAngle 0
 /StemV 141
 /XHeight 532
@@ -27006,7 +27015,7 @@ endobj
 >> endobj
 5534 0 obj <<
 /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords()
-/CreationDate (D:20090105235147-08'00')
+/CreationDate (D:20090202155945-08'00')
 /PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4)
 >> endobj
 xref
@@ -27014,1283 +27023,1283 @@ xref
 0000000000 65535 f 
 0000000009 00000 n 
 0000030152 00000 n 
-0001211904 00000 n 
+0001211900 00000 n 
 0000000048 00000 n 
 0000000110 00000 n 
-0000104817 00000 n 
-0001211819 00000 n 
+0000104818 00000 n 
+0001211815 00000 n 
 0000000149 00000 n 
 0000000184 00000 n 
-0000435467 00000 n 
-0001211732 00000 n 
+0000435468 00000 n 
+0001211728 00000 n 
 0000000223 00000 n 
 0000000257 00000 n 
-0000438584 00000 n 
-0001211606 00000 n 
+0000438585 00000 n 
+0001211602 00000 n 
 0000000297 00000 n 
 0000000343 00000 n 
-0000438710 00000 n 
-0001211532 00000 n 
+0000438711 00000 n 
+0001211528 00000 n 
 0000000385 00000 n 
 0000000430 00000 n 
-0000439094 00000 n 
-0001211445 00000 n 
+0000439095 00000 n 
+0001211441 00000 n 
 0000000472 00000 n 
 0000000506 00000 n 
-0000439411 00000 n 
-0001211358 00000 n 
+0000439412 00000 n 
+0001211354 00000 n 
 0000000548 00000 n 
 0000000584 00000 n 
-0000443511 00000 n 
-0001211271 00000 n 
+0000443512 00000 n 
+0001211267 00000 n 
 0000000626 00000 n 
 0000000657 00000 n 
-0000448397 00000 n 
-0001211197 00000 n 
+0000448398 00000 n 
+0001211193 00000 n 
 0000000699 00000 n 
 0000000743 00000 n 
-0000452860 00000 n 
-0001211069 00000 n 
+0000452861 00000 n 
+0001211065 00000 n 
 0000000783 00000 n 
 0000000832 00000 n 
-0000452987 00000 n 
-0001210956 00000 n 
+0000452988 00000 n 
+0001210952 00000 n 
 0000000874 00000 n 
 0000000910 00000 n 
-0000454203 00000 n 
-0001210882 00000 n 
+0000454204 00000 n 
+0001210878 00000 n 
 0000000954 00000 n 
 0000000984 00000 n 
-0000456459 00000 n 
-0001210758 00000 n 
+0000456460 00000 n 
+0001210754 00000 n 
 0000001028 00000 n 
 0000001069 00000 n 
-0000456649 00000 n 
-0001210684 00000 n 
+0000456650 00000 n 
+0001210680 00000 n 
 0000001115 00000 n 
 0000001148 00000 n 
-0000457359 00000 n 
-0001210597 00000 n 
+0000457360 00000 n 
+0001210593 00000 n 
 0000001194 00000 n 
 0000001232 00000 n 
-0000457809 00000 n 
-0001210523 00000 n 
+0000457810 00000 n 
+0001210519 00000 n 
 0000001278 00000 n 
 0000001312 00000 n 
-0000461599 00000 n 
-0001210436 00000 n 
+0000461600 00000 n 
+0001210432 00000 n 
 0000001356 00000 n 
 0000001392 00000 n 
-0000462051 00000 n 
-0001210349 00000 n 
+0000462052 00000 n 
+0001210345 00000 n 
 0000001436 00000 n 
 0000001470 00000 n 
-0000462893 00000 n 
-0001210223 00000 n 
+0000462894 00000 n 
+0001210219 00000 n 
 0000001514 00000 n 
 0000001552 00000 n 
-0000475804 00000 n 
-0001210149 00000 n 
+0000475805 00000 n 
+0001210145 00000 n 
 0000001598 00000 n 
 0000001636 00000 n 
-0000476060 00000 n 
-0001210062 00000 n 
+0000476061 00000 n 
+0001210058 00000 n 
 0000001682 00000 n 
 0000001735 00000 n 
-0000476251 00000 n 
-0001209975 00000 n 
+0000476252 00000 n 
+0001209971 00000 n 
 0000001781 00000 n 
 0000001820 00000 n 
-0000478927 00000 n 
-0001209888 00000 n 
+0000478928 00000 n 
+0001209884 00000 n 
 0000001866 00000 n 
 0000001913 00000 n 
-0000479118 00000 n 
-0001209801 00000 n 
+0000479119 00000 n 
+0001209797 00000 n 
 0000001959 00000 n 
 0000002004 00000 n 
-0000479310 00000 n 
-0001209712 00000 n 
+0000479311 00000 n 
+0001209708 00000 n 
 0000002050 00000 n 
 0000002095 00000 n 
-0000479500 00000 n 
-0001209621 00000 n 
+0000479501 00000 n 
+0001209617 00000 n 
 0000002143 00000 n 
 0000002189 00000 n 
-0000479759 00000 n 
-0001209529 00000 n 
+0000479760 00000 n 
+0001209525 00000 n 
 0000002237 00000 n 
 0000002284 00000 n 
-0000479950 00000 n 
-0001209451 00000 n 
+0000479951 00000 n 
+0001209447 00000 n 
 0000002332 00000 n 
 0000002382 00000 n 
-0000480139 00000 n 
-0001209360 00000 n 
+0000480140 00000 n 
+0001209356 00000 n 
 0000002427 00000 n 
 0000002481 00000 n 
-0000484123 00000 n 
-0001209282 00000 n 
+0000484124 00000 n 
+0001209278 00000 n 
 0000002526 00000 n 
 0000002583 00000 n 
-0000484772 00000 n 
-0001209152 00000 n 
+0000484773 00000 n 
+0001209148 00000 n 
 0000002626 00000 n 
 0000002664 00000 n 
-0000485030 00000 n 
-0001209073 00000 n 
+0000485031 00000 n 
+0001209069 00000 n 
 0000002709 00000 n 
 0000002747 00000 n 
-0000490571 00000 n 
-0001208941 00000 n 
+0000490572 00000 n 
+0001208937 00000 n 
 0000002792 00000 n 
 0000002834 00000 n 
-0000490764 00000 n 
-0001208862 00000 n 
+0000490765 00000 n 
+0001208858 00000 n 
 0000002882 00000 n 
 0000002935 00000 n 
-0000491020 00000 n 
-0001208730 00000 n 
+0000491021 00000 n 
+0001208726 00000 n 
 0000002983 00000 n 
 0000003017 00000 n 
-0000494393 00000 n 
-0001208651 00000 n 
+0000494394 00000 n 
+0001208647 00000 n 
 0000003067 00000 n 
 0000003135 00000 n 
-0000494780 00000 n 
-0001208558 00000 n 
+0000494781 00000 n 
+0001208554 00000 n 
 0000003185 00000 n 
 0000003235 00000 n 
-0000495955 00000 n 
-0001208479 00000 n 
+0000495956 00000 n 
+0001208475 00000 n 
 0000003285 00000 n 
 0000003359 00000 n 
-0000499429 00000 n 
-0001208347 00000 n 
+0000499430 00000 n 
+0001208343 00000 n 
 0000003407 00000 n 
 0000003446 00000 n 
-0000499558 00000 n 
-0001208268 00000 n 
+0000499559 00000 n 
+0001208264 00000 n 
 0000003496 00000 n 
 0000003551 00000 n 
-0000500529 00000 n 
-0001208189 00000 n 
+0000500530 00000 n 
+0001208185 00000 n 
 0000003601 00000 n 
 0000003652 00000 n 
-0000501438 00000 n 
-0001208071 00000 n 
+0000501439 00000 n 
+0001208067 00000 n 
 0000003700 00000 n 
 0000003735 00000 n 
-0000501566 00000 n 
-0001207992 00000 n 
+0000501567 00000 n 
+0001207988 00000 n 
 0000003785 00000 n 
 0000003839 00000 n 
-0000504397 00000 n 
-0001207899 00000 n 
+0000504398 00000 n 
+0001207895 00000 n 
 0000003889 00000 n 
 0000003940 00000 n 
-0000504912 00000 n 
-0001207820 00000 n 
+0000504913 00000 n 
+0001207816 00000 n 
 0000003990 00000 n 
 0000004045 00000 n 
-0000505298 00000 n 
-0001207727 00000 n 
+0000505299 00000 n 
+0001207723 00000 n 
 0000004091 00000 n 
 0000004131 00000 n 
-0000509797 00000 n 
-0001207595 00000 n 
+0000509798 00000 n 
+0001207591 00000 n 
 0000004177 00000 n 
 0000004214 00000 n 
-0000510119 00000 n 
-0001207477 00000 n 
+0000510120 00000 n 
+0001207473 00000 n 
 0000004263 00000 n 
 0000004313 00000 n 
-0000510311 00000 n 
-0001207398 00000 n 
+0000510312 00000 n 
+0001207394 00000 n 
 0000004364 00000 n 
 0000004419 00000 n 
-0000515601 00000 n 
-0001207319 00000 n 
+0000515602 00000 n 
+0001207315 00000 n 
 0000004471 00000 n 
 0000004527 00000 n 
-0000521675 00000 n 
-0001207240 00000 n 
+0000521676 00000 n 
+0001207236 00000 n 
 0000004576 00000 n 
 0000004644 00000 n 
-0000523561 00000 n 
-0001207161 00000 n 
+0000523562 00000 n 
+0001207157 00000 n 
 0000004690 00000 n 
 0000004725 00000 n 
-0000527570 00000 n 
-0001207030 00000 n 
+0000527571 00000 n 
+0001207026 00000 n 
 0000004768 00000 n 
 0000004826 00000 n 
-0000527763 00000 n 
-0001206951 00000 n 
+0000527764 00000 n 
+0001206947 00000 n 
 0000004872 00000 n 
 0000004909 00000 n 
-0000528599 00000 n 
-0001206858 00000 n 
+0000528600 00000 n 
+0001206854 00000 n 
 0000004955 00000 n 
 0000004998 00000 n 
-0000532292 00000 n 
-0001206765 00000 n 
+0000532293 00000 n 
+0001206761 00000 n 
 0000005044 00000 n 
 0000005078 00000 n 
-0000532936 00000 n 
-0001206686 00000 n 
+0000532937 00000 n 
+0001206682 00000 n 
 0000005124 00000 n 
 0000005201 00000 n 
-0000533845 00000 n 
-0001206594 00000 n 
+0000533846 00000 n 
+0001206590 00000 n 
 0000005244 00000 n 
 0000005323 00000 n 
-0000537572 00000 n 
-0001206463 00000 n 
+0000537569 00000 n 
+0001206459 00000 n 
 0000005367 00000 n 
 0000005421 00000 n 
-0000537895 00000 n 
-0001206345 00000 n 
+0000537892 00000 n 
+0001206341 00000 n 
 0000005468 00000 n 
 0000005512 00000 n 
-0000538154 00000 n 
-0001206266 00000 n 
+0000538151 00000 n 
+0001206262 00000 n 
 0000005562 00000 n 
 0000005601 00000 n 
-0000541151 00000 n 
-0001206173 00000 n 
+0000541148 00000 n 
+0001206169 00000 n 
 0000005651 00000 n 
 0000005701 00000 n 
-0000542435 00000 n 
-0001206080 00000 n 
+0000542432 00000 n 
+0001206076 00000 n 
 0000005751 00000 n 
 0000005817 00000 n 
-0000546603 00000 n 
-0001205987 00000 n 
+0000546600 00000 n 
+0001205983 00000 n 
 0000005867 00000 n 
 0000005917 00000 n 
-0000547249 00000 n 
-0001205908 00000 n 
+0000547246 00000 n 
+0001205904 00000 n 
 0000005967 00000 n 
 0000006009 00000 n 
-0000547442 00000 n 
-0001205776 00000 n 
+0000547439 00000 n 
+0001205772 00000 n 
 0000006056 00000 n 
 0000006091 00000 n 
-0000547635 00000 n 
-0001205697 00000 n 
+0000547632 00000 n 
+0001205693 00000 n 
 0000006141 00000 n 
 0000006178 00000 n 
-0000547958 00000 n 
-0001205618 00000 n 
+0000547955 00000 n 
+0001205614 00000 n 
 0000006228 00000 n 
 0000006296 00000 n 
-0000552284 00000 n 
-0001205539 00000 n 
+0000552281 00000 n 
+0001205535 00000 n 
 0000006343 00000 n 
 0000006389 00000 n 
-0000552607 00000 n 
-0001205408 00000 n 
+0000552604 00000 n 
+0001205404 00000 n 
 0000006433 00000 n 
 0000006493 00000 n 
-0000552736 00000 n 
-0001205329 00000 n 
+0000552733 00000 n 
+0001205325 00000 n 
 0000006540 00000 n 
 0000006579 00000 n 
-0000552928 00000 n 
-0001205197 00000 n 
+0000552925 00000 n 
+0001205193 00000 n 
 0000006626 00000 n 
 0000006658 00000 n 
-0000555479 00000 n 
-0001205093 00000 n 
+0000555476 00000 n 
+0001205089 00000 n 
 0000006708 00000 n 
 0000006761 00000 n 
-0000555608 00000 n 
-0001205014 00000 n 
+0000555605 00000 n 
+0001205010 00000 n 
 0000006814 00000 n 
 0000006876 00000 n 
-0000555864 00000 n 
-0001204921 00000 n 
+0000555861 00000 n 
+0001204917 00000 n 
 0000006929 00000 n 
 0000006983 00000 n 
-0000556189 00000 n 
-0001204842 00000 n 
+0000556186 00000 n 
+0001204838 00000 n 
 0000007036 00000 n 
 0000007086 00000 n 
-0000559392 00000 n 
-0001204749 00000 n 
+0000559389 00000 n 
+0001204745 00000 n 
 0000007133 00000 n 
 0000007164 00000 n 
-0000560437 00000 n 
-0001204656 00000 n 
+0000560434 00000 n 
+0001204652 00000 n 
 0000007211 00000 n 
 0000007250 00000 n 
-0000564051 00000 n 
-0001204524 00000 n 
+0000564048 00000 n 
+0001204520 00000 n 
 0000007297 00000 n 
 0000007335 00000 n 
-0000564244 00000 n 
-0001204459 00000 n 
+0000564241 00000 n 
+0001204455 00000 n 
 0000007385 00000 n 
 0000007439 00000 n 
-0000564826 00000 n 
-0001204341 00000 n 
+0000564823 00000 n 
+0001204337 00000 n 
 0000007486 00000 n 
 0000007521 00000 n 
-0000565475 00000 n 
-0001204276 00000 n 
+0000565472 00000 n 
+0001204272 00000 n 
 0000007571 00000 n 
 0000007624 00000 n 
-0000569677 00000 n 
-0001204159 00000 n 
+0000569674 00000 n 
+0001204155 00000 n 
 0000007668 00000 n 
 0000007718 00000 n 
-0000570125 00000 n 
-0001204080 00000 n 
+0000570122 00000 n 
+0001204076 00000 n 
 0000007765 00000 n 
 0000007810 00000 n 
-0000575252 00000 n 
-0001203948 00000 n 
+0000575249 00000 n 
+0001203944 00000 n 
 0000007857 00000 n 
 0000007908 00000 n 
-0000576217 00000 n 
-0001203869 00000 n 
+0000576214 00000 n 
+0001203865 00000 n 
 0000007958 00000 n 
 0000008021 00000 n 
-0000576473 00000 n 
-0001203776 00000 n 
+0000576470 00000 n 
+0001203772 00000 n 
 0000008071 00000 n 
 0000008119 00000 n 
-0000579756 00000 n 
-0001203683 00000 n 
+0000579753 00000 n 
+0001203679 00000 n 
 0000008169 00000 n 
 0000008225 00000 n 
-0000584254 00000 n 
-0001203604 00000 n 
+0000584251 00000 n 
+0001203600 00000 n 
 0000008275 00000 n 
 0000008327 00000 n 
-0000585292 00000 n 
-0001203511 00000 n 
+0000585289 00000 n 
+0001203507 00000 n 
 0000008374 00000 n 
 0000008424 00000 n 
-0000589753 00000 n 
-0001203432 00000 n 
+0000589750 00000 n 
+0001203428 00000 n 
 0000008471 00000 n 
 0000008537 00000 n 
-0000592578 00000 n 
-0001203299 00000 n 
+0000592575 00000 n 
+0001203295 00000 n 
 0000008578 00000 n 
 0000008631 00000 n 
-0000592706 00000 n 
-0001203180 00000 n 
+0000592703 00000 n 
+0001203176 00000 n 
 0000008675 00000 n 
 0000008722 00000 n 
-0000592897 00000 n 
-0001203101 00000 n 
+0000592894 00000 n 
+0001203097 00000 n 
 0000008769 00000 n 
 0000008813 00000 n 
-0000603292 00000 n 
-0001203008 00000 n 
+0000603289 00000 n 
+0001203004 00000 n 
 0000008860 00000 n 
 0000008910 00000 n 
-0000603485 00000 n 
-0001202915 00000 n 
+0000603482 00000 n 
+0001202911 00000 n 
 0000008957 00000 n 
 0000009003 00000 n 
-0000604259 00000 n 
-0001202822 00000 n 
+0000604256 00000 n 
+0001202818 00000 n 
 0000009050 00000 n 
 0000009088 00000 n 
-0000604452 00000 n 
-0001202729 00000 n 
+0000604449 00000 n 
+0001202725 00000 n 
 0000009135 00000 n 
 0000009181 00000 n 
-0000607713 00000 n 
-0001202636 00000 n 
+0000607710 00000 n 
+0001202632 00000 n 
 0000009228 00000 n 
 0000009265 00000 n 
-0000608353 00000 n 
-0001202543 00000 n 
+0000608350 00000 n 
+0001202539 00000 n 
 0000009312 00000 n 
 0000009349 00000 n 
-0000608611 00000 n 
-0001202450 00000 n 
+0000608608 00000 n 
+0001202446 00000 n 
 0000009396 00000 n 
 0000009440 00000 n 
-0000612542 00000 n 
-0001202357 00000 n 
+0000612539 00000 n 
+0001202353 00000 n 
 0000009487 00000 n 
 0000009528 00000 n 
-0000613636 00000 n 
-0001202264 00000 n 
+0000613633 00000 n 
+0001202260 00000 n 
 0000009575 00000 n 
 0000009622 00000 n 
-0000622070 00000 n 
-0001202171 00000 n 
+0000622067 00000 n 
+0001202167 00000 n 
 0000009669 00000 n 
 0000009718 00000 n 
-0000623615 00000 n 
-0001202078 00000 n 
+0000623612 00000 n 
+0001202074 00000 n 
 0000009765 00000 n 
 0000009798 00000 n 
-0000627776 00000 n 
-0001201985 00000 n 
+0000627773 00000 n 
+0001201981 00000 n 
 0000009845 00000 n 
 0000009885 00000 n 
-0000627967 00000 n 
-0001201892 00000 n 
+0000627964 00000 n 
+0001201888 00000 n 
 0000009932 00000 n 
 0000009974 00000 n 
-0000628160 00000 n 
-0001201799 00000 n 
+0000628157 00000 n 
+0001201795 00000 n 
 0000010021 00000 n 
 0000010064 00000 n 
-0000631266 00000 n 
-0001201720 00000 n 
+0000631263 00000 n 
+0001201716 00000 n 
 0000010111 00000 n 
 0000010152 00000 n 
-0000631459 00000 n 
-0001201588 00000 n 
+0000631456 00000 n 
+0001201584 00000 n 
 0000010196 00000 n 
 0000010240 00000 n 
-0000631588 00000 n 
-0001201509 00000 n 
+0000631585 00000 n 
+0001201505 00000 n 
 0000010287 00000 n 
 0000010339 00000 n 
-0000631909 00000 n 
-0001201391 00000 n 
+0000631906 00000 n 
+0001201387 00000 n 
 0000010386 00000 n 
 0000010433 00000 n 
-0000632038 00000 n 
-0001201312 00000 n 
+0000632035 00000 n 
+0001201308 00000 n 
 0000010483 00000 n 
 0000010540 00000 n 
-0000635649 00000 n 
-0001201180 00000 n 
+0000635646 00000 n 
+0001201176 00000 n 
 0000010590 00000 n 
 0000010637 00000 n 
-0000635778 00000 n 
-0001201101 00000 n 
+0000635775 00000 n 
+0001201097 00000 n 
 0000010690 00000 n 
 0000010737 00000 n 
-0000636167 00000 n 
-0001201022 00000 n 
+0000636164 00000 n 
+0001201018 00000 n 
 0000010790 00000 n 
 0000010857 00000 n 
-0000637008 00000 n 
-0001200929 00000 n 
+0000637005 00000 n 
+0001200925 00000 n 
 0000010907 00000 n 
 0000010951 00000 n 
-0000647280 00000 n 
-0001200836 00000 n 
+0000647277 00000 n 
+0001200832 00000 n 
 0000011001 00000 n 
 0000011044 00000 n 
-0000647538 00000 n 
-0001200757 00000 n 
+0000647535 00000 n 
+0001200753 00000 n 
 0000011094 00000 n 
 0000011142 00000 n 
-0000648248 00000 n 
-0001200664 00000 n 
+0000648245 00000 n 
+0001200660 00000 n 
 0000011186 00000 n 
 0000011226 00000 n 
-0000651395 00000 n 
-0001200532 00000 n 
+0000651392 00000 n 
+0001200528 00000 n 
 0000011270 00000 n 
 0000011303 00000 n 
-0000657517 00000 n 
-0001200453 00000 n 
+0000657514 00000 n 
+0001200449 00000 n 
 0000011350 00000 n 
 0000011398 00000 n 
-0000658488 00000 n 
-0001200360 00000 n 
+0000658485 00000 n 
+0001200356 00000 n 
 0000011445 00000 n 
 0000011488 00000 n 
-0000658681 00000 n 
-0001200267 00000 n 
+0000658678 00000 n 
+0001200263 00000 n 
 0000011535 00000 n 
 0000011622 00000 n 
-0000659065 00000 n 
-0001200149 00000 n 
+0000659062 00000 n 
+0001200145 00000 n 
 0000011669 00000 n 
 0000011732 00000 n 
-0000664550 00000 n 
-0001200084 00000 n 
+0000664547 00000 n 
+0001200080 00000 n 
 0000011782 00000 n 
 0000011848 00000 n 
-0000671323 00000 n 
-0001199991 00000 n 
+0000671320 00000 n 
+0001199987 00000 n 
 0000011892 00000 n 
 0000011927 00000 n 
-0000675269 00000 n 
-0001199898 00000 n 
+0000675266 00000 n 
+0001199894 00000 n 
 0000011971 00000 n 
 0000012004 00000 n 
-0000675973 00000 n 
-0001199805 00000 n 
+0000675970 00000 n 
+0001199801 00000 n 
 0000012048 00000 n 
 0000012083 00000 n 
-0000676933 00000 n 
-0001199673 00000 n 
+0000676930 00000 n 
+0001199669 00000 n 
 0000012127 00000 n 
 0000012157 00000 n 
-0000679604 00000 n 
-0001199594 00000 n 
+0000679601 00000 n 
+0001199590 00000 n 
 0000012204 00000 n 
 0000012247 00000 n 
-0000681033 00000 n 
-0001199462 00000 n 
+0000681030 00000 n 
+0001199458 00000 n 
 0000012294 00000 n 
 0000012332 00000 n 
-0000681162 00000 n 
-0001199397 00000 n 
+0000681159 00000 n 
+0001199393 00000 n 
 0000012382 00000 n 
 0000012417 00000 n 
-0000682452 00000 n 
-0001199304 00000 n 
+0000682449 00000 n 
+0001199300 00000 n 
 0000012464 00000 n 
 0000012510 00000 n 
-0000686014 00000 n 
-0001199172 00000 n 
+0000686011 00000 n 
+0001199168 00000 n 
 0000012557 00000 n 
 0000012602 00000 n 
-0000686206 00000 n 
-0001199093 00000 n 
+0000686203 00000 n 
+0001199089 00000 n 
 0000012652 00000 n 
 0000012697 00000 n 
-0000687569 00000 n 
-0001199014 00000 n 
+0000687566 00000 n 
+0001199010 00000 n 
 0000012747 00000 n 
 0000012785 00000 n 
-0000688024 00000 n 
-0001198896 00000 n 
+0000688021 00000 n 
+0001198892 00000 n 
 0000012832 00000 n 
 0000012878 00000 n 
-0000691587 00000 n 
-0001198817 00000 n 
+0000691584 00000 n 
+0001198813 00000 n 
 0000012928 00000 n 
 0000012971 00000 n 
-0000691846 00000 n 
-0001198684 00000 n 
+0000691843 00000 n 
+0001198680 00000 n 
 0000013021 00000 n 
 0000013065 00000 n 
-0000692104 00000 n 
-0001198605 00000 n 
+0000692101 00000 n 
+0001198601 00000 n 
 0000013118 00000 n 
 0000013153 00000 n 
-0000692296 00000 n 
-0001198512 00000 n 
+0000692293 00000 n 
+0001198508 00000 n 
 0000013206 00000 n 
 0000013248 00000 n 
-0000692620 00000 n 
-0001198419 00000 n 
+0000692617 00000 n 
+0001198415 00000 n 
 0000013301 00000 n 
 0000013340 00000 n 
-0000697357 00000 n 
-0001198326 00000 n 
+0000697354 00000 n 
+0001198322 00000 n 
 0000013393 00000 n 
 0000013432 00000 n 
-0000697678 00000 n 
-0001198233 00000 n 
+0000697675 00000 n 
+0001198229 00000 n 
 0000013485 00000 n 
 0000013522 00000 n 
-0000697937 00000 n 
-0001198140 00000 n 
+0000697934 00000 n 
+0001198136 00000 n 
 0000013575 00000 n 
 0000013617 00000 n 
-0000698458 00000 n 
-0001198047 00000 n 
+0000698455 00000 n 
+0001198043 00000 n 
 0000013670 00000 n 
 0000013725 00000 n 
-0000698715 00000 n 
-0001197954 00000 n 
+0000698712 00000 n 
+0001197950 00000 n 
 0000013778 00000 n 
 0000013822 00000 n 
-0000699106 00000 n 
-0001197861 00000 n 
+0000699103 00000 n 
+0001197857 00000 n 
 0000013875 00000 n 
 0000013913 00000 n 
-0000699299 00000 n 
-0001197768 00000 n 
+0000699296 00000 n 
+0001197764 00000 n 
 0000013966 00000 n 
 0000014009 00000 n 
-0000702681 00000 n 
-0001197689 00000 n 
+0000702678 00000 n 
+0001197685 00000 n 
 0000014062 00000 n 
 0000014107 00000 n 
-0000702940 00000 n 
-0001197610 00000 n 
+0000702937 00000 n 
+0001197606 00000 n 
 0000014157 00000 n 
 0000014201 00000 n 
-0000703591 00000 n 
-0001197517 00000 n 
+0000703588 00000 n 
+0001197513 00000 n 
 0000014245 00000 n 
 0000014278 00000 n 
-0000703912 00000 n 
-0001197385 00000 n 
+0000703909 00000 n 
+0001197381 00000 n 
 0000014322 00000 n 
 0000014361 00000 n 
-0000707916 00000 n 
-0001197306 00000 n 
+0000707913 00000 n 
+0001197302 00000 n 
 0000014408 00000 n 
 0000014456 00000 n 
-0000709792 00000 n 
-0001197213 00000 n 
+0000709789 00000 n 
+0001197209 00000 n 
 0000014503 00000 n 
 0000014552 00000 n 
-0000709983 00000 n 
-0001197134 00000 n 
+0000709980 00000 n 
+0001197130 00000 n 
 0000014599 00000 n 
 0000014649 00000 n 
-0000712844 00000 n 
-0001197002 00000 n 
+0000712841 00000 n 
+0001196998 00000 n 
 0000014693 00000 n 
 0000014731 00000 n 
-0000713103 00000 n 
-0001196923 00000 n 
+0000713100 00000 n 
+0001196919 00000 n 
 0000014778 00000 n 
 0000014834 00000 n 
-0000713426 00000 n 
-0001196844 00000 n 
+0000713423 00000 n 
+0001196840 00000 n 
 0000014881 00000 n 
 0000014930 00000 n 
-0000714003 00000 n 
-0001196751 00000 n 
+0000714000 00000 n 
+0001196747 00000 n 
 0000014974 00000 n 
 0000015019 00000 n 
-0000714260 00000 n 
-0001196658 00000 n 
+0000714257 00000 n 
+0001196654 00000 n 
 0000015063 00000 n 
 0000015095 00000 n 
-0000718521 00000 n 
-0001196565 00000 n 
+0000718518 00000 n 
+0001196561 00000 n 
 0000015139 00000 n 
 0000015170 00000 n 
-0000719034 00000 n 
-0001196433 00000 n 
+0000719031 00000 n 
+0001196429 00000 n 
 0000015214 00000 n 
 0000015265 00000 n 
-0000724436 00000 n 
-0001196354 00000 n 
+0000724433 00000 n 
+0001196350 00000 n 
 0000015312 00000 n 
 0000015355 00000 n 
-0000729038 00000 n 
-0001196261 00000 n 
+0000729035 00000 n 
+0001196257 00000 n 
 0000015402 00000 n 
 0000015476 00000 n 
-0000735268 00000 n 
-0001196168 00000 n 
+0000735265 00000 n 
+0001196164 00000 n 
 0000015523 00000 n 
 0000015576 00000 n 
-0000735910 00000 n 
-0001196089 00000 n 
+0000735907 00000 n 
+0001196085 00000 n 
 0000015623 00000 n 
 0000015687 00000 n 
-0000736103 00000 n 
-0001196010 00000 n 
+0000736100 00000 n 
+0001196006 00000 n 
 0000015731 00000 n 
 0000015800 00000 n 
-0000741074 00000 n 
-0001195877 00000 n 
+0000741071 00000 n 
+0001195873 00000 n 
 0000015841 00000 n 
 0000015889 00000 n 
-0000741394 00000 n 
-0001195759 00000 n 
+0000741391 00000 n 
+0001195755 00000 n 
 0000015933 00000 n 
 0000015974 00000 n 
-0000741523 00000 n 
-0001195680 00000 n 
+0000741520 00000 n 
+0001195676 00000 n 
 0000016021 00000 n 
 0000016060 00000 n 
-0000741716 00000 n 
-0001195587 00000 n 
+0000741713 00000 n 
+0001195583 00000 n 
 0000016107 00000 n 
 0000016154 00000 n 
-0000742888 00000 n 
-0001195508 00000 n 
+0000742885 00000 n 
+0001195504 00000 n 
 0000016201 00000 n 
 0000016243 00000 n 
-0000745719 00000 n 
-0001195376 00000 n 
+0000745716 00000 n 
+0001195372 00000 n 
 0000016287 00000 n 
 0000016317 00000 n 
-0000745848 00000 n 
-0001195297 00000 n 
+0000745845 00000 n 
+0001195293 00000 n 
 0000016364 00000 n 
 0000016415 00000 n 
-0000746041 00000 n 
-0001195204 00000 n 
+0000746038 00000 n 
+0001195200 00000 n 
 0000016462 00000 n 
 0000016523 00000 n 
-0000747394 00000 n 
-0001195125 00000 n 
+0000747391 00000 n 
+0001195121 00000 n 
 0000016570 00000 n 
 0000016611 00000 n 
-0000750722 00000 n 
-0001194993 00000 n 
+0000750719 00000 n 
+0001194989 00000 n 
 0000016655 00000 n 
 0000016690 00000 n 
-0000750851 00000 n 
-0001194928 00000 n 
+0000750848 00000 n 
+0001194924 00000 n 
 0000016737 00000 n 
 0000016819 00000 n 
-0000757519 00000 n 
-0001194810 00000 n 
+0000757516 00000 n 
+0001194806 00000 n 
 0000016863 00000 n 
 0000016896 00000 n 
-0000757648 00000 n 
-0001194745 00000 n 
+0000757645 00000 n 
+0001194741 00000 n 
 0000016943 00000 n 
 0000017014 00000 n 
-0000760958 00000 n 
-0001194611 00000 n 
+0000760955 00000 n 
+0001194607 00000 n 
 0000017055 00000 n 
 0000017100 00000 n 
-0000761086 00000 n 
-0001194532 00000 n 
+0000761083 00000 n 
+0001194528 00000 n 
 0000017144 00000 n 
 0000017181 00000 n 
-0000761475 00000 n 
-0001194439 00000 n 
+0000761472 00000 n 
+0001194435 00000 n 
 0000017225 00000 n 
 0000017275 00000 n 
-0000766816 00000 n 
-0001194346 00000 n 
+0000766813 00000 n 
+0001194342 00000 n 
 0000017319 00000 n 
 0000017360 00000 n 
-0000774240 00000 n 
-0001194253 00000 n 
+0000774237 00000 n 
+0001194249 00000 n 
 0000017404 00000 n 
 0000017448 00000 n 
-0000825717 00000 n 
-0001194121 00000 n 
+0000825714 00000 n 
+0001194117 00000 n 
 0000017492 00000 n 
 0000017535 00000 n 
-0000828803 00000 n 
-0001194003 00000 n 
+0000828800 00000 n 
+0001193999 00000 n 
 0000017582 00000 n 
 0000017623 00000 n 
-0000829967 00000 n 
-0001193924 00000 n 
+0000829964 00000 n 
+0001193920 00000 n 
 0000017673 00000 n 
 0000017722 00000 n 
-0000830224 00000 n 
-0001193831 00000 n 
+0000830221 00000 n 
+0001193827 00000 n 
 0000017772 00000 n 
 0000017809 00000 n 
-0000834119 00000 n 
-0001193752 00000 n 
+0000834116 00000 n 
+0001193748 00000 n 
 0000017859 00000 n 
 0000017903 00000 n 
-0000834635 00000 n 
-0001193659 00000 n 
+0000834632 00000 n 
+0001193655 00000 n 
 0000017950 00000 n 
 0000017988 00000 n 
-0000835090 00000 n 
-0001193566 00000 n 
+0000835087 00000 n 
+0001193562 00000 n 
 0000018035 00000 n 
 0000018090 00000 n 
-0000835282 00000 n 
-0001193473 00000 n 
+0000835279 00000 n 
+0001193469 00000 n 
 0000018137 00000 n 
 0000018173 00000 n 
-0000839173 00000 n 
-0001193394 00000 n 
+0000839170 00000 n 
+0001193390 00000 n 
 0000018220 00000 n 
 0000018280 00000 n 
-0000839690 00000 n 
-0001193262 00000 n 
+0000839687 00000 n 
+0001193258 00000 n 
 0000018324 00000 n 
 0000018360 00000 n 
-0000839819 00000 n 
-0001193183 00000 n 
+0000839816 00000 n 
+0001193179 00000 n 
 0000018407 00000 n 
 0000018453 00000 n 
-0000845186 00000 n 
-0001193104 00000 n 
+0000845183 00000 n 
+0001193100 00000 n 
 0000018500 00000 n 
 0000018548 00000 n 
-0000848353 00000 n 
-0001192972 00000 n 
+0000848350 00000 n 
+0001192968 00000 n 
 0000018592 00000 n 
 0000018628 00000 n 
-0000849126 00000 n 
-0001192868 00000 n 
+0000849123 00000 n 
+0001192864 00000 n 
 0000018675 00000 n 
 0000018714 00000 n 
-0000849510 00000 n 
-0001192789 00000 n 
+0000849507 00000 n 
+0001192785 00000 n 
 0000018764 00000 n 
 0000018824 00000 n 
-0000852059 00000 n 
-0001192696 00000 n 
+0000852056 00000 n 
+0001192692 00000 n 
 0000018874 00000 n 
 0000018944 00000 n 
-0000852252 00000 n 
-0001192603 00000 n 
+0000852249 00000 n 
+0001192599 00000 n 
 0000018994 00000 n 
 0000019054 00000 n 
-0000852443 00000 n 
-0001192510 00000 n 
+0000852440 00000 n 
+0001192506 00000 n 
 0000019104 00000 n 
 0000019177 00000 n 
-0000852635 00000 n 
-0001192417 00000 n 
+0000852632 00000 n 
+0001192413 00000 n 
 0000019227 00000 n 
 0000019287 00000 n 
-0000852828 00000 n 
-0001192324 00000 n 
+0000852825 00000 n 
+0001192320 00000 n 
 0000019337 00000 n 
 0000019389 00000 n 
-0000853085 00000 n 
-0001192245 00000 n 
+0000853082 00000 n 
+0001192241 00000 n 
 0000019439 00000 n 
 0000019491 00000 n 
-0000853278 00000 n 
-0001192113 00000 n 
+0000853275 00000 n 
+0001192109 00000 n 
 0000019535 00000 n 
 0000019574 00000 n 
-0000855839 00000 n 
-0001192034 00000 n 
+0000855836 00000 n 
+0001192030 00000 n 
 0000019621 00000 n 
 0000019665 00000 n 
-0000856226 00000 n 
-0001191941 00000 n 
+0000856223 00000 n 
+0001191937 00000 n 
 0000019712 00000 n 
 0000019747 00000 n 
-0000856483 00000 n 
-0001191848 00000 n 
+0000856480 00000 n 
+0001191844 00000 n 
 0000019794 00000 n 
 0000019848 00000 n 
-0000856676 00000 n 
-0001191769 00000 n 
+0000856673 00000 n 
+0001191765 00000 n 
 0000019895 00000 n 
 0000019937 00000 n 
-0000860114 00000 n 
-0001191676 00000 n 
+0000860111 00000 n 
+0001191672 00000 n 
 0000019981 00000 n 
 0000020031 00000 n 
-0000860568 00000 n 
-0001191544 00000 n 
+0000860565 00000 n 
+0001191540 00000 n 
 0000020075 00000 n 
 0000020117 00000 n 
-0000860761 00000 n 
-0001191465 00000 n 
+0000860758 00000 n 
+0001191461 00000 n 
 0000020164 00000 n 
 0000020211 00000 n 
-0000862303 00000 n 
-0001191372 00000 n 
+0000862300 00000 n 
+0001191368 00000 n 
 0000020258 00000 n 
 0000020303 00000 n 
-0000871109 00000 n 
-0001191279 00000 n 
+0000871106 00000 n 
+0001191275 00000 n 
 0000020350 00000 n 
 0000020392 00000 n 
-0000871302 00000 n 
-0001191186 00000 n 
+0000871299 00000 n 
+0001191182 00000 n 
 0000020439 00000 n 
 0000020484 00000 n 
-0000871627 00000 n 
-0001191107 00000 n 
+0000871624 00000 n 
+0001191103 00000 n 
 0000020531 00000 n 
 0000020570 00000 n 
-0000877018 00000 n 
-0001190975 00000 n 
+0000877015 00000 n 
+0001190971 00000 n 
 0000020614 00000 n 
 0000020658 00000 n 
-0000877209 00000 n 
-0001190896 00000 n 
+0000877206 00000 n 
+0001190892 00000 n 
 0000020705 00000 n 
 0000020740 00000 n 
-0000880593 00000 n 
-0001190778 00000 n 
+0000880590 00000 n 
+0001190774 00000 n 
 0000020787 00000 n 
 0000020821 00000 n 
-0000881106 00000 n 
-0001190699 00000 n 
+0000881103 00000 n 
+0001190695 00000 n 
 0000020871 00000 n 
 0000020916 00000 n 
-0000881554 00000 n 
-0001190620 00000 n 
+0000881551 00000 n 
+0001190616 00000 n 
 0000020966 00000 n 
 0000021018 00000 n 
-0000884334 00000 n 
-0001190527 00000 n 
+0000884331 00000 n 
+0001190523 00000 n 
 0000021062 00000 n 
 0000021093 00000 n 
-0000884974 00000 n 
-0001190409 00000 n 
+0000884971 00000 n 
+0001190405 00000 n 
 0000021137 00000 n 
 0000021170 00000 n 
-0000888821 00000 n 
-0001190330 00000 n 
+0000888818 00000 n 
+0001190326 00000 n 
 0000021217 00000 n 
 0000021254 00000 n 
-0000889141 00000 n 
-0001190237 00000 n 
+0000889138 00000 n 
+0001190233 00000 n 
 0000021301 00000 n 
 0000021345 00000 n 
-0000893092 00000 n 
-0001190144 00000 n 
+0000893089 00000 n 
+0001190140 00000 n 
 0000021392 00000 n 
 0000021436 00000 n 
-0000894859 00000 n 
-0001190065 00000 n 
+0000894856 00000 n 
+0001190061 00000 n 
 0000021483 00000 n 
 0000021530 00000 n 
-0000897946 00000 n 
-0001189932 00000 n 
+0000897943 00000 n 
+0001189928 00000 n 
 0000021571 00000 n 
 0000021622 00000 n 
-0000898074 00000 n 
-0001189853 00000 n 
+0000898071 00000 n 
+0001189849 00000 n 
 0000021666 00000 n 
 0000021703 00000 n 
-0000898916 00000 n 
-0001189721 00000 n 
+0000898913 00000 n 
+0001189717 00000 n 
 0000021747 00000 n 
 0000021794 00000 n 
-0000899172 00000 n 
-0001189642 00000 n 
+0000899169 00000 n 
+0001189638 00000 n 
 0000021841 00000 n 
 0000021896 00000 n 
-0000903086 00000 n 
-0001189549 00000 n 
+0000903083 00000 n 
+0001189545 00000 n 
 0000021943 00000 n 
 0000022001 00000 n 
-0000904769 00000 n 
-0001189456 00000 n 
+0000904766 00000 n 
+0001189452 00000 n 
 0000022048 00000 n 
 0000022096 00000 n 
-0000908920 00000 n 
-0001189363 00000 n 
+0000908917 00000 n 
+0001189359 00000 n 
 0000022144 00000 n 
 0000022197 00000 n 
-0000913934 00000 n 
-0001189270 00000 n 
+0000913931 00000 n 
+0001189266 00000 n 
 0000022245 00000 n 
 0000022292 00000 n 
-0000919298 00000 n 
-0001189191 00000 n 
+0000919295 00000 n 
+0001189187 00000 n 
 0000022340 00000 n 
 0000022417 00000 n 
-0000919555 00000 n 
-0001189098 00000 n 
+0000919552 00000 n 
+0001189094 00000 n 
 0000022461 00000 n 
 0000022518 00000 n 
-0000933472 00000 n 
-0001189005 00000 n 
+0000933469 00000 n 
+0001189001 00000 n 
 0000022562 00000 n 
 0000022618 00000 n 
-0000938048 00000 n 
-0001188887 00000 n 
+0000938045 00000 n 
+0001188883 00000 n 
 0000022662 00000 n 
 0000022729 00000 n 
-0000938177 00000 n 
-0001188808 00000 n 
+0000938174 00000 n 
+0001188804 00000 n 
 0000022777 00000 n 
 0000022810 00000 n 
-0000938370 00000 n 
-0001188715 00000 n 
+0000938367 00000 n 
+0001188711 00000 n 
 0000022858 00000 n 
 0000022888 00000 n 
-0000940762 00000 n 
-0001188622 00000 n 
+0000940759 00000 n 
+0001188618 00000 n 
 0000022936 00000 n 
 0000022975 00000 n 
-0000941212 00000 n 
-0001188529 00000 n 
+0000941209 00000 n 
+0001188525 00000 n 
 0000023023 00000 n 
 0000023060 00000 n 
-0000941471 00000 n 
-0001188450 00000 n 
+0000941468 00000 n 
+0001188446 00000 n 
 0000023108 00000 n 
 0000023155 00000 n 
-0000944957 00000 n 
-0001188315 00000 n 
+0000944954 00000 n 
+0001188311 00000 n 
 0000023197 00000 n 
 0000023244 00000 n 
-0000945149 00000 n 
-0001188234 00000 n 
+0000945146 00000 n 
+0001188230 00000 n 
 0000023289 00000 n 
 0000023329 00000 n 
-0000945863 00000 n 
-0001188137 00000 n 
+0000945860 00000 n 
+0001188133 00000 n 
 0000023375 00000 n 
 0000023452 00000 n 
-0000946313 00000 n 
-0001188039 00000 n 
+0000946310 00000 n 
+0001188035 00000 n 
 0000023498 00000 n 
 0000023595 00000 n 
-0000949047 00000 n 
-0001187941 00000 n 
+0000949044 00000 n 
+0001187937 00000 n 
 0000023641 00000 n 
 0000023697 00000 n 
-0000949690 00000 n 
-0001187843 00000 n 
+0000949687 00000 n 
+0001187839 00000 n 
 0000023743 00000 n 
 0000023802 00000 n 
-0000950469 00000 n 
-0001187745 00000 n 
+0000950466 00000 n 
+0001187741 00000 n 
 0000023848 00000 n 
 0000023921 00000 n 
-0000954392 00000 n 
-0001187647 00000 n 
+0000954389 00000 n 
+0001187643 00000 n 
 0000023967 00000 n 
 0000024042 00000 n 
-0000957205 00000 n 
-0001187549 00000 n 
+0000957202 00000 n 
+0001187545 00000 n 
 0000024088 00000 n 
 0000024167 00000 n 
-0000957594 00000 n 
-0001187466 00000 n 
+0000957591 00000 n 
+0001187462 00000 n 
 0000024213 00000 n 
 0000024333 00000 n 
-0000961408 00000 n 
-0001187327 00000 n 
+0000961405 00000 n 
+0001187323 00000 n 
 0000024376 00000 n 
 0000024416 00000 n 
-0000961666 00000 n 
-0001187243 00000 n 
+0000961663 00000 n 
+0001187239 00000 n 
 0000024462 00000 n 
 0000024516 00000 n 
-0000963685 00000 n 
-0001187159 00000 n 
+0000963682 00000 n 
+0001187155 00000 n 
 0000024562 00000 n 
 0000024626 00000 n 
-0000966592 00000 n 
-0001187019 00000 n 
+0000966589 00000 n 
+0001187015 00000 n 
 0000024669 00000 n 
 0000024737 00000 n 
-0000966722 00000 n 
-0001186935 00000 n 
+0000966719 00000 n 
+0001186931 00000 n 
 0000024783 00000 n 
 0000024821 00000 n 
-0000967752 00000 n 
-0001186836 00000 n 
+0000967749 00000 n 
+0001186832 00000 n 
 0000024867 00000 n 
 0000024911 00000 n 
-0000972960 00000 n 
-0001186752 00000 n 
+0000972957 00000 n 
+0001186748 00000 n 
 0000024957 00000 n 
 0000024999 00000 n 
-0000978402 00000 n 
-0001186611 00000 n 
+0000978399 00000 n 
+0001186607 00000 n 
 0000025042 00000 n 
 0000025105 00000 n 
-0000978721 00000 n 
-0001186527 00000 n 
+0000978718 00000 n 
+0001186523 00000 n 
 0000025151 00000 n 
 0000025183 00000 n 
-0000979039 00000 n 
-0001186428 00000 n 
+0000979036 00000 n 
+0001186424 00000 n 
 0000025229 00000 n 
 0000025281 00000 n 
-0000983037 00000 n 
-0001186329 00000 n 
+0000983034 00000 n 
+0001186325 00000 n 
 0000025327 00000 n 
 0000025367 00000 n 
-0000983294 00000 n 
-0001186230 00000 n 
+0000983291 00000 n 
+0001186226 00000 n 
 0000025413 00000 n 
 0000025456 00000 n 
-0000987211 00000 n 
-0001186131 00000 n 
+0000987208 00000 n 
+0001186127 00000 n 
 0000025502 00000 n 
 0000025539 00000 n 
-0000992406 00000 n 
-0001186032 00000 n 
+0000992403 00000 n 
+0001186028 00000 n 
 0000025585 00000 n 
 0000025628 00000 n 
-0000992728 00000 n 
-0001185933 00000 n 
+0000992725 00000 n 
+0001185929 00000 n 
 0000025674 00000 n 
 0000025722 00000 n 
-0000992985 00000 n 
-0001185834 00000 n 
+0000992982 00000 n 
+0001185830 00000 n 
 0000025768 00000 n 
 0000025826 00000 n 
-0000996042 00000 n 
-0001185735 00000 n 
+0000996039 00000 n 
+0001185731 00000 n 
 0000025872 00000 n 
 0000025907 00000 n 
-0000996236 00000 n 
-0001185636 00000 n 
+0000996233 00000 n 
+0001185632 00000 n 
 0000025953 00000 n 
 0000025988 00000 n 
-0000996429 00000 n 
-0001185537 00000 n 
+0000996426 00000 n 
+0001185533 00000 n 
 0000026034 00000 n 
 0000026091 00000 n 
-0000996752 00000 n 
-0001185453 00000 n 
+0000996749 00000 n 
+0001185449 00000 n 
 0000026137 00000 n 
 0000026200 00000 n 
-0001000718 00000 n 
-0001185354 00000 n 
+0001000715 00000 n 
+0001185350 00000 n 
 0000026243 00000 n 
 0000026272 00000 n 
-0001000846 00000 n 
-0001185214 00000 n 
+0001000843 00000 n 
+0001185210 00000 n 
 0000026315 00000 n 
 0000026350 00000 n 
-0001000976 00000 n 
-0001185145 00000 n 
+0001000973 00000 n 
+0001185141 00000 n 
 0000026400 00000 n 
 0000026430 00000 n 
-0001001363 00000 n 
-0001185005 00000 n 
+0001001360 00000 n 
+0001185001 00000 n 
 0000026473 00000 n 
 0000026495 00000 n 
-0001001492 00000 n 
-0001184895 00000 n 
+0001001489 00000 n 
+0001184891 00000 n 
 0000026545 00000 n 
 0000026572 00000 n 
-0001001945 00000 n 
-0001184826 00000 n 
+0001001942 00000 n 
+0001184822 00000 n 
 0000026625 00000 n 
 0000026689 00000 n 
-0001005932 00000 n 
-0001184686 00000 n 
+0001005929 00000 n 
+0001184682 00000 n 
 0000026732 00000 n 
 0000026754 00000 n 
-0001006061 00000 n 
-0001184576 00000 n 
+0001006058 00000 n 
+0001184572 00000 n 
 0000026804 00000 n 
 0000026828 00000 n 
-0001006513 00000 n 
-0001184492 00000 n 
+0001006510 00000 n 
+0001184488 00000 n 
 0000026878 00000 n 
 0000026909 00000 n 
-0001006771 00000 n 
-0001184408 00000 n 
+0001006768 00000 n 
+0001184404 00000 n 
 0000026959 00000 n 
 0000026988 00000 n 
-0001007028 00000 n 
-0001184268 00000 n 
+0001007025 00000 n 
+0001184264 00000 n 
 0000027031 00000 n 
 0000027053 00000 n 
-0001007157 00000 n 
-0001184158 00000 n 
+0001007154 00000 n 
+0001184154 00000 n 
 0000027103 00000 n 
 0000027148 00000 n 
-0001007543 00000 n 
-0001184074 00000 n 
+0001007540 00000 n 
+0001184070 00000 n 
 0000027198 00000 n 
 0000027228 00000 n 
-0001007800 00000 n 
-0001183975 00000 n 
+0001007797 00000 n 
+0001183971 00000 n 
 0000027278 00000 n 
 0000027333 00000 n 
-0001008317 00000 n 
-0001183891 00000 n 
+0001008314 00000 n 
+0001183887 00000 n 
 0000027383 00000 n 
 0000027411 00000 n 
-0001010693 00000 n 
-0001183751 00000 n 
+0001010690 00000 n 
+0001183747 00000 n 
 0000027454 00000 n 
 0000027476 00000 n 
-0001010822 00000 n 
-0001183641 00000 n 
+0001010819 00000 n 
+0001183637 00000 n 
 0000027526 00000 n 
 0000027553 00000 n 
-0001011210 00000 n 
-0001183572 00000 n 
+0001011207 00000 n 
+0001183568 00000 n 
 0000027603 00000 n 
 0000027634 00000 n 
-0001011468 00000 n 
-0001183432 00000 n 
+0001011465 00000 n 
+0001183428 00000 n 
 0000027677 00000 n 
 0000027699 00000 n 
-0001011596 00000 n 
-0001183363 00000 n 
+0001011593 00000 n 
+0001183359 00000 n 
 0000027749 00000 n 
 0000027776 00000 n 
-0001012051 00000 n 
-0001183223 00000 n 
+0001012048 00000 n 
+0001183219 00000 n 
 0000027819 00000 n 
 0000027841 00000 n 
-0001012179 00000 n 
-0001183154 00000 n 
+0001012176 00000 n 
+0001183150 00000 n 
 0000027891 00000 n 
 0000027922 00000 n 
-0001014666 00000 n 
-0001183014 00000 n 
+0001014663 00000 n 
+0001183010 00000 n 
 0000027965 00000 n 
 0000027987 00000 n 
-0001014795 00000 n 
-0001182904 00000 n 
+0001014792 00000 n 
+0001182900 00000 n 
 0000028037 00000 n 
 0000028081 00000 n 
-0001015381 00000 n 
-0001182835 00000 n 
+0001015378 00000 n 
+0001182831 00000 n 
 0000028131 00000 n 
 0000028157 00000 n 
-0001016607 00000 n 
-0001182695 00000 n 
+0001016604 00000 n 
+0001182691 00000 n 
 0000028200 00000 n 
 0000028222 00000 n 
-0001016736 00000 n 
-0001182585 00000 n 
+0001016733 00000 n 
+0001182581 00000 n 
 0000028272 00000 n 
 0000028313 00000 n 
-0001017057 00000 n 
-0001182501 00000 n 
+0001017054 00000 n 
+0001182497 00000 n 
 0000028363 00000 n 
 0000028391 00000 n 
-0001019006 00000 n 
-0001182417 00000 n 
+0001019003 00000 n 
+0001182413 00000 n 
 0000028441 00000 n 
 0000028466 00000 n 
-0001019328 00000 n 
-0001182277 00000 n 
+0001019325 00000 n 
+0001182273 00000 n 
 0000028509 00000 n 
 0000028531 00000 n 
-0001019457 00000 n 
-0001182208 00000 n 
+0001019454 00000 n 
+0001182204 00000 n 
 0000028581 00000 n 
 0000028604 00000 n 
-0001020042 00000 n 
-0001182068 00000 n 
+0001020039 00000 n 
+0001182064 00000 n 
 0000028647 00000 n 
 0000028669 00000 n 
-0001020171 00000 n 
-0001181958 00000 n 
+0001020168 00000 n 
+0001181954 00000 n 
 0000028719 00000 n 
 0000028777 00000 n 
-0001020427 00000 n 
-0001181889 00000 n 
+0001020424 00000 n 
+0001181885 00000 n 
 0000028827 00000 n 
 0000028866 00000 n 
-0001020749 00000 n 
-0001181749 00000 n 
+0001020746 00000 n 
+0001181745 00000 n 
 0000028909 00000 n 
 0000028931 00000 n 
-0001020878 00000 n 
-0001181639 00000 n 
+0001020875 00000 n 
+0001181635 00000 n 
 0000028981 00000 n 
 0000029009 00000 n 
-0001023613 00000 n 
-0001181570 00000 n 
+0001023610 00000 n 
+0001181566 00000 n 
 0000029059 00000 n 
 0000029085 00000 n 
-0001024527 00000 n 
-0001181430 00000 n 
+0001024524 00000 n 
+0001181426 00000 n 
 0000029128 00000 n 
 0000029150 00000 n 
-0001024655 00000 n 
-0001181320 00000 n 
+0001024652 00000 n 
+0001181316 00000 n 
 0000029200 00000 n 
 0000029237 00000 n 
-0001024979 00000 n 
-0001181251 00000 n 
+0001024976 00000 n 
+0001181247 00000 n 
 0000029287 00000 n 
 0000029329 00000 n 
-0001025237 00000 n 
-0001181126 00000 n 
+0001025234 00000 n 
+0001181122 00000 n 
 0000029372 00000 n 
 0000029394 00000 n 
-0001025366 00000 n 
-0001181057 00000 n 
+0001025363 00000 n 
+0001181053 00000 n 
 0000029444 00000 n 
 0000029482 00000 n 
 0000029834 00000 n 
@@ -28299,4260 +28308,4260 @@ xref
 0000029960 00000 n 
 0000030024 00000 n 
 0000030088 00000 n 
-0001176814 00000 n 
-0001162753 00000 n 
-0001176640 00000 n 
-0001177794 00000 n 
-0000031085 00000 n 
-0000030895 00000 n 
+0001176810 00000 n 
+0001162749 00000 n 
+0001176636 00000 n 
+0001177790 00000 n 
+0000031086 00000 n 
+0000030896 00000 n 
 0000030289 00000 n 
-0000031021 00000 n 
-0001161626 00000 n 
-0001139780 00000 n 
-0001161449 00000 n 
-0000104879 00000 n 
-0000089218 00000 n 
-0000031173 00000 n 
-0000104753 00000 n 
-0000090166 00000 n 
-0001138834 00000 n 
-0001122043 00000 n 
-0001138657 00000 n 
-0000090318 00000 n 
-0000090470 00000 n 
-0000090626 00000 n 
-0000090782 00000 n 
-0000090939 00000 n 
-0000091096 00000 n 
-0000091254 00000 n 
-0000091412 00000 n 
-0000091566 00000 n 
-0000091720 00000 n 
-0000091878 00000 n 
-0000092036 00000 n 
-0000092200 00000 n 
-0000092365 00000 n 
-0000092523 00000 n 
-0000092681 00000 n 
-0000092841 00000 n 
-0000093000 00000 n 
-0000093164 00000 n 
-0000093327 00000 n 
-0000093488 00000 n 
-0000093648 00000 n 
-0000093806 00000 n 
-0000093963 00000 n 
-0000094124 00000 n 
-0000094285 00000 n 
-0000094450 00000 n 
-0000094614 00000 n 
-0000094776 00000 n 
-0000094937 00000 n 
-0000095104 00000 n 
-0000095270 00000 n 
-0000095443 00000 n 
-0000095615 00000 n 
-0000095787 00000 n 
-0000095958 00000 n 
-0000096124 00000 n 
-0000096289 00000 n 
-0000096463 00000 n 
-0000096636 00000 n 
-0000096808 00000 n 
-0000096979 00000 n 
-0000097148 00000 n 
-0000097316 00000 n 
-0000097488 00000 n 
-0000097659 00000 n 
-0000097832 00000 n 
-0000098004 00000 n 
-0000098179 00000 n 
-0000098353 00000 n 
-0000098512 00000 n 
-0000098670 00000 n 
-0000098846 00000 n 
-0000099022 00000 n 
-0000099182 00000 n 
-0000099343 00000 n 
-0000099501 00000 n 
-0000099659 00000 n 
-0000099822 00000 n 
-0000099985 00000 n 
-0000100147 00000 n 
-0000100310 00000 n 
-0000100463 00000 n 
-0000100616 00000 n 
-0000100774 00000 n 
-0000100932 00000 n 
-0000101085 00000 n 
-0000101239 00000 n 
-0000101390 00000 n 
-0000101541 00000 n 
-0000101693 00000 n 
-0000101845 00000 n 
-0000102004 00000 n 
-0000102163 00000 n 
-0000102317 00000 n 
-0000102471 00000 n 
-0000102642 00000 n 
-0000102813 00000 n 
-0000102970 00000 n 
-0000103129 00000 n 
-0000103280 00000 n 
-0000103431 00000 n 
-0000103604 00000 n 
-0000103777 00000 n 
-0000103944 00000 n 
-0000104111 00000 n 
-0000104272 00000 n 
-0000104434 00000 n 
-0000104593 00000 n 
-0001121197 00000 n 
-0001102972 00000 n 
-0001121016 00000 n 
-0000438520 00000 n 
-0000438647 00000 n 
-0000439030 00000 n 
-0000439348 00000 n 
-0000443447 00000 n 
-0000446485 00000 n 
-0000452796 00000 n 
-0000452923 00000 n 
-0000454139 00000 n 
-0000456395 00000 n 
-0000456586 00000 n 
-0000457295 00000 n 
-0000457745 00000 n 
-0000461535 00000 n 
-0000461987 00000 n 
-0000462829 00000 n 
-0000475739 00000 n 
-0000475996 00000 n 
-0000476187 00000 n 
-0000478863 00000 n 
-0000479054 00000 n 
-0000479246 00000 n 
-0000479438 00000 n 
-0000479695 00000 n 
-0000479886 00000 n 
-0000480076 00000 n 
-0000484060 00000 n 
-0000484708 00000 n 
-0000484966 00000 n 
-0000490507 00000 n 
-0000490700 00000 n 
-0000490957 00000 n 
-0000499365 00000 n 
-0000501374 00000 n 
-0000505235 00000 n 
-0000505750 00000 n 
-0000510055 00000 n 
-0000521611 00000 n 
-0000523497 00000 n 
-0000527506 00000 n 
-0000527699 00000 n 
-0000528535 00000 n 
-0000529047 00000 n 
-0000532872 00000 n 
-0000533781 00000 n 
-0000178561 00000 n 
-0000162407 00000 n 
-0000104995 00000 n 
-0000178497 00000 n 
-0000163391 00000 n 
-0000163549 00000 n 
-0000163708 00000 n 
-0000163864 00000 n 
-0000164020 00000 n 
-0000164177 00000 n 
-0000164334 00000 n 
-0000164500 00000 n 
-0000164666 00000 n 
-0000164832 00000 n 
-0000164998 00000 n 
-0000165156 00000 n 
-0000165314 00000 n 
-0000165472 00000 n 
-0000165630 00000 n 
-0000165787 00000 n 
-0000165944 00000 n 
-0000166107 00000 n 
-0000166270 00000 n 
-0000166433 00000 n 
-0000166596 00000 n 
-0000166752 00000 n 
-0000166908 00000 n 
-0000167062 00000 n 
-0000167217 00000 n 
-0000167368 00000 n 
-0000167519 00000 n 
-0000167669 00000 n 
-0000167819 00000 n 
-0000167970 00000 n 
-0000168121 00000 n 
-0000168272 00000 n 
-0000168423 00000 n 
-0000168597 00000 n 
-0000168771 00000 n 
-0000168922 00000 n 
-0000169073 00000 n 
-0000169224 00000 n 
-0000169375 00000 n 
-0000169526 00000 n 
-0000169677 00000 n 
-0000169830 00000 n 
-0000169983 00000 n 
-0000170137 00000 n 
-0000170292 00000 n 
-0000170453 00000 n 
-0000170614 00000 n 
-0000170774 00000 n 
-0000170935 00000 n 
-0000171099 00000 n 
-0000171263 00000 n 
-0000171422 00000 n 
-0000171581 00000 n 
-0000171744 00000 n 
-0000171907 00000 n 
-0000172070 00000 n 
-0000172233 00000 n 
-0000172399 00000 n 
-0000172565 00000 n 
-0000172733 00000 n 
-0000172901 00000 n 
-0000173061 00000 n 
-0000173223 00000 n 
-0000173380 00000 n 
-0000173538 00000 n 
-0000173707 00000 n 
-0000173877 00000 n 
-0000174045 00000 n 
-0000174213 00000 n 
-0000174386 00000 n 
-0000174559 00000 n 
-0000174723 00000 n 
-0000174888 00000 n 
-0000175060 00000 n 
-0000175232 00000 n 
-0000175395 00000 n 
-0000175558 00000 n 
-0000175720 00000 n 
-0000175883 00000 n 
-0000176054 00000 n 
-0000176225 00000 n 
-0000176393 00000 n 
-0000176561 00000 n 
-0000176715 00000 n 
-0000176869 00000 n 
-0000177025 00000 n 
-0000177181 00000 n 
-0000177340 00000 n 
-0000177499 00000 n 
-0000177664 00000 n 
-0000177829 00000 n 
-0000177995 00000 n 
-0000178161 00000 n 
-0000178329 00000 n 
-0000537508 00000 n 
-0000537831 00000 n 
-0000538090 00000 n 
-0000538543 00000 n 
-0000542371 00000 n 
-0000542564 00000 n 
-0000547185 00000 n 
-0000547378 00000 n 
-0000547571 00000 n 
-0000547894 00000 n 
-0000552220 00000 n 
-0000552543 00000 n 
-0000552672 00000 n 
-0000552865 00000 n 
-0000551834 00000 n 
-0000559329 00000 n 
-0000560373 00000 n 
-0000560762 00000 n 
-0000564180 00000 n 
-0000564762 00000 n 
-0000565411 00000 n 
-0000569613 00000 n 
-0000570062 00000 n 
-0000575188 00000 n 
-0000576153 00000 n 
-0000576409 00000 n 
-0000579692 00000 n 
-0000584192 00000 n 
-0000585228 00000 n 
-0000589689 00000 n 
-0000592514 00000 n 
-0000592642 00000 n 
-0000592834 00000 n 
-0000603228 00000 n 
-0000603421 00000 n 
-0000604195 00000 n 
-0000604388 00000 n 
-0000607649 00000 n 
-0000608289 00000 n 
-0000608547 00000 n 
-0000608806 00000 n 
-0000613572 00000 n 
-0000622006 00000 n 
-0000623551 00000 n 
-0000627712 00000 n 
-0000627904 00000 n 
-0000628096 00000 n 
-0000254970 00000 n 
-0000238448 00000 n 
-0000178663 00000 n 
-0000254906 00000 n 
-0000239450 00000 n 
-0000239616 00000 n 
-0000239782 00000 n 
-0000239937 00000 n 
-0000240094 00000 n 
-0000240253 00000 n 
-0000240412 00000 n 
-0000240571 00000 n 
-0000240730 00000 n 
-0000240897 00000 n 
-0000241064 00000 n 
-0000241226 00000 n 
-0000241388 00000 n 
-0000241546 00000 n 
-0000241704 00000 n 
-0000241872 00000 n 
-0000242041 00000 n 
-0000242207 00000 n 
-0000242373 00000 n 
-0000242534 00000 n 
-0000242696 00000 n 
-0000242851 00000 n 
-0000243007 00000 n 
-0000243169 00000 n 
-0000243331 00000 n 
-0000243492 00000 n 
-0000243653 00000 n 
-0000243825 00000 n 
-0000243997 00000 n 
-0000244167 00000 n 
-0000244337 00000 n 
-0000244507 00000 n 
-0000244677 00000 n 
-0000244834 00000 n 
-0000244992 00000 n 
-0000245147 00000 n 
-0000245303 00000 n 
-0000245460 00000 n 
-0000245618 00000 n 
-0000245779 00000 n 
-0000245941 00000 n 
-0000246107 00000 n 
-0000246273 00000 n 
-0000246432 00000 n 
-0000246591 00000 n 
-0000246749 00000 n 
-0000246907 00000 n 
-0000247065 00000 n 
-0000247223 00000 n 
-0000247381 00000 n 
-0000247539 00000 n 
-0000247707 00000 n 
-0000247875 00000 n 
-0000248036 00000 n 
-0000248197 00000 n 
-0000248356 00000 n 
-0000248515 00000 n 
-0000248673 00000 n 
-0000248831 00000 n 
-0000248990 00000 n 
-0000249149 00000 n 
-0000249309 00000 n 
-0000249469 00000 n 
-0000249624 00000 n 
-0000249780 00000 n 
-0000249940 00000 n 
-0000250101 00000 n 
-0000250266 00000 n 
-0000250431 00000 n 
-0000250597 00000 n 
-0000250763 00000 n 
-0000250931 00000 n 
-0000251099 00000 n 
-0000251255 00000 n 
-0000251412 00000 n 
-0000251576 00000 n 
-0000251740 00000 n 
-0000251906 00000 n 
-0000252072 00000 n 
-0000252237 00000 n 
-0000252404 00000 n 
-0000252557 00000 n 
-0000252711 00000 n 
-0000252863 00000 n 
-0000253016 00000 n 
-0000253169 00000 n 
-0000253323 00000 n 
-0000253482 00000 n 
-0000253641 00000 n 
-0000253800 00000 n 
-0000253959 00000 n 
-0000254123 00000 n 
-0000254287 00000 n 
-0000254439 00000 n 
-0000254591 00000 n 
-0000254748 00000 n 
-0000631202 00000 n 
-0000631395 00000 n 
-0000631524 00000 n 
-0000631845 00000 n 
-0000631974 00000 n 
-0000635585 00000 n 
-0000636944 00000 n 
-0000644195 00000 n 
-0000647474 00000 n 
-0000648184 00000 n 
-0000648699 00000 n 
-0000653839 00000 n 
-0000658424 00000 n 
-0000658617 00000 n 
-0000659001 00000 n 
-0000664486 00000 n 
-0000671261 00000 n 
-0000672754 00000 n 
-0000675909 00000 n 
-0000676869 00000 n 
-0000677260 00000 n 
-0000680969 00000 n 
-0000681098 00000 n 
-0000682388 00000 n 
-0000685950 00000 n 
-0000686142 00000 n 
-0000687505 00000 n 
-0000687960 00000 n 
-0000688414 00000 n 
-0000691782 00000 n 
-0000702876 00000 n 
-0000703527 00000 n 
-0000703848 00000 n 
-0000707852 00000 n 
-0000709728 00000 n 
-0000709919 00000 n 
-0000710112 00000 n 
-0000713039 00000 n 
-0000713362 00000 n 
-0000713939 00000 n 
-0000714196 00000 n 
-0000718457 00000 n 
-0000718970 00000 n 
-0000724371 00000 n 
-0000728974 00000 n 
-0000735204 00000 n 
-0000735846 00000 n 
-0000736039 00000 n 
-0000330532 00000 n 
-0000314303 00000 n 
-0000255058 00000 n 
-0000330468 00000 n 
-0000315287 00000 n 
-0000315440 00000 n 
-0000315595 00000 n 
-0000315753 00000 n 
-0000315912 00000 n 
-0000316076 00000 n 
-0000316240 00000 n 
-0000316408 00000 n 
-0000316576 00000 n 
-0001101930 00000 n 
-0001081653 00000 n 
-0001101755 00000 n 
-0000316742 00000 n 
-0000316908 00000 n 
-0000317069 00000 n 
-0000317231 00000 n 
-0000317400 00000 n 
-0000317569 00000 n 
-0000317736 00000 n 
-0000317903 00000 n 
-0000318073 00000 n 
-0000318243 00000 n 
-0000318407 00000 n 
-0000318572 00000 n 
-0000318745 00000 n 
-0000318918 00000 n 
-0000319082 00000 n 
-0000319247 00000 n 
-0000319420 00000 n 
-0000319593 00000 n 
-0000319745 00000 n 
-0000319898 00000 n 
-0000320056 00000 n 
-0000320215 00000 n 
-0000320368 00000 n 
-0000320522 00000 n 
-0000320677 00000 n 
-0000320833 00000 n 
-0000320989 00000 n 
-0000321146 00000 n 
-0000321298 00000 n 
-0000321451 00000 n 
-0000321605 00000 n 
-0000321759 00000 n 
-0000321915 00000 n 
-0000322071 00000 n 
-0000322227 00000 n 
-0000322383 00000 n 
-0000322544 00000 n 
-0000322705 00000 n 
-0000322864 00000 n 
-0000323023 00000 n 
-0000323186 00000 n 
-0000323349 00000 n 
-0000323501 00000 n 
-0000323653 00000 n 
-0000323820 00000 n 
-0000323987 00000 n 
-0000324144 00000 n 
-0000324302 00000 n 
-0000324460 00000 n 
-0000324619 00000 n 
-0000324777 00000 n 
-0000324935 00000 n 
-0000325093 00000 n 
-0000325252 00000 n 
-0000325411 00000 n 
-0000325570 00000 n 
-0000325734 00000 n 
-0000325898 00000 n 
-0000326061 00000 n 
-0000326225 00000 n 
-0000326392 00000 n 
-0000326559 00000 n 
-0000326727 00000 n 
-0000326895 00000 n 
-0000327058 00000 n 
-0000327221 00000 n 
-0000327391 00000 n 
-0000327561 00000 n 
-0000327732 00000 n 
-0000327903 00000 n 
-0000328062 00000 n 
-0000328222 00000 n 
-0000328374 00000 n 
-0000328526 00000 n 
-0000328684 00000 n 
-0000328842 00000 n 
-0000329006 00000 n 
-0000329170 00000 n 
-0000329332 00000 n 
-0000329494 00000 n 
-0000329653 00000 n 
-0000329813 00000 n 
-0000329974 00000 n 
-0000330136 00000 n 
-0000330302 00000 n 
-0000741010 00000 n 
-0000741330 00000 n 
-0000741459 00000 n 
-0000741652 00000 n 
-0000742824 00000 n 
-0000743082 00000 n 
-0000745784 00000 n 
-0000745977 00000 n 
-0000747330 00000 n 
-0000750658 00000 n 
-0000750787 00000 n 
-0000757456 00000 n 
-0000757584 00000 n 
-0000760894 00000 n 
-0000761022 00000 n 
-0000761411 00000 n 
-0000766752 00000 n 
-0000774176 00000 n 
-0000772429 00000 n 
-0000826040 00000 n 
-0000829904 00000 n 
-0000830160 00000 n 
-0000834055 00000 n 
-0000834571 00000 n 
-0000835026 00000 n 
-0000835218 00000 n 
-0000839109 00000 n 
-0000839626 00000 n 
-0000839755 00000 n 
-0000845122 00000 n 
-0000845444 00000 n 
-0000849062 00000 n 
-0000849446 00000 n 
-0000849638 00000 n 
-0000852188 00000 n 
-0000852380 00000 n 
-0000852571 00000 n 
-0000852764 00000 n 
-0000853021 00000 n 
-0000853214 00000 n 
-0000853407 00000 n 
-0000856162 00000 n 
-0000856419 00000 n 
-0000856612 00000 n 
-0000856934 00000 n 
-0000860504 00000 n 
-0000860697 00000 n 
-0000401272 00000 n 
-0000385850 00000 n 
-0000330648 00000 n 
-0000401208 00000 n 
-0000386798 00000 n 
-0000386962 00000 n 
-0000387126 00000 n 
-0000387287 00000 n 
-0000387448 00000 n 
-0000387614 00000 n 
-0000387780 00000 n 
-0000387945 00000 n 
-0000388110 00000 n 
-0000388266 00000 n 
-0000388423 00000 n 
-0000388578 00000 n 
-0000388733 00000 n 
-0000388887 00000 n 
-0000389041 00000 n 
-0000389193 00000 n 
-0000389345 00000 n 
-0000389510 00000 n 
-0000389675 00000 n 
-0000389827 00000 n 
-0000389980 00000 n 
-0000390134 00000 n 
-0000390289 00000 n 
-0000390453 00000 n 
-0000390617 00000 n 
-0000390781 00000 n 
-0000390945 00000 n 
-0000391105 00000 n 
-0000391265 00000 n 
-0000391417 00000 n 
-0000391569 00000 n 
-0000391729 00000 n 
-0000391890 00000 n 
-0000392047 00000 n 
-0000392205 00000 n 
-0000392366 00000 n 
-0000392528 00000 n 
-0000392694 00000 n 
-0000392860 00000 n 
-0000393023 00000 n 
-0000393186 00000 n 
-0000393347 00000 n 
-0000393508 00000 n 
-0000393672 00000 n 
-0000393836 00000 n 
-0000393999 00000 n 
-0000394162 00000 n 
-0000394330 00000 n 
-0000394498 00000 n 
-0000394655 00000 n 
-0000394813 00000 n 
-0000394983 00000 n 
-0000395154 00000 n 
-0000395312 00000 n 
-0000395471 00000 n 
-0000395625 00000 n 
-0000395779 00000 n 
-0000395930 00000 n 
-0000396081 00000 n 
-0000396231 00000 n 
-0000396381 00000 n 
-0000396532 00000 n 
-0000396683 00000 n 
-0000396840 00000 n 
-0000396997 00000 n 
-0000397159 00000 n 
-0000397322 00000 n 
-0000397483 00000 n 
-0000397645 00000 n 
-0000397807 00000 n 
-0000397970 00000 n 
-0000398132 00000 n 
-0000398295 00000 n 
-0000398456 00000 n 
-0000398618 00000 n 
-0000398782 00000 n 
-0000398947 00000 n 
-0000399114 00000 n 
-0000399282 00000 n 
-0000399446 00000 n 
-0000399611 00000 n 
-0000399768 00000 n 
-0000399926 00000 n 
-0000400095 00000 n 
-0000400265 00000 n 
-0000400419 00000 n 
-0000400574 00000 n 
-0000400728 00000 n 
-0000400883 00000 n 
-0000401045 00000 n 
-0001177919 00000 n 
-0000862239 00000 n 
-0000871045 00000 n 
-0000871238 00000 n 
-0000871563 00000 n 
-0000876954 00000 n 
-0000877146 00000 n 
-0000875672 00000 n 
-0000881042 00000 n 
-0000881490 00000 n 
-0000884270 00000 n 
-0000884910 00000 n 
-0000888756 00000 n 
-0000889077 00000 n 
-0000893028 00000 n 
-0000893733 00000 n 
-0000897882 00000 n 
-0000898010 00000 n 
-0000898852 00000 n 
-0000899108 00000 n 
-0000899891 00000 n 
-0000904706 00000 n 
-0000908856 00000 n 
-0000910084 00000 n 
-0000919234 00000 n 
-0000919491 00000 n 
-0000930212 00000 n 
-0000937984 00000 n 
-0000938113 00000 n 
-0000938306 00000 n 
-0000940698 00000 n 
-0000941149 00000 n 
-0000941407 00000 n 
-0000944893 00000 n 
-0000945085 00000 n 
-0000945799 00000 n 
-0000946250 00000 n 
-0000948983 00000 n 
-0000949626 00000 n 
-0000950405 00000 n 
-0000954328 00000 n 
-0000957141 00000 n 
-0000957530 00000 n 
-0000961344 00000 n 
-0000961602 00000 n 
-0000963621 00000 n 
-0000432881 00000 n 
-0000426682 00000 n 
-0000401388 00000 n 
-0000432817 00000 n 
-0000427144 00000 n 
-0000427317 00000 n 
-0000427491 00000 n 
-0000427665 00000 n 
-0000427840 00000 n 
-0000428009 00000 n 
-0000428179 00000 n 
-0000428349 00000 n 
-0000428520 00000 n 
-0000428670 00000 n 
-0000428822 00000 n 
-0000428975 00000 n 
-0000429129 00000 n 
-0000429282 00000 n 
-0000429436 00000 n 
-0000429589 00000 n 
-0000429743 00000 n 
-0000429894 00000 n 
-0000430046 00000 n 
-0000430198 00000 n 
-0000430352 00000 n 
-0000430505 00000 n 
-0000430659 00000 n 
-0000430812 00000 n 
-0000430966 00000 n 
-0000431119 00000 n 
-0000431273 00000 n 
-0000431426 00000 n 
-0000431580 00000 n 
-0000431733 00000 n 
-0000431887 00000 n 
-0000432039 00000 n 
-0000432192 00000 n 
-0000432348 00000 n 
-0000432506 00000 n 
-0000432661 00000 n 
-0000966528 00000 n 
-0000966658 00000 n 
-0000967688 00000 n 
-0000972896 00000 n 
-0000978338 00000 n 
-0000978657 00000 n 
-0000978975 00000 n 
-0000982973 00000 n 
-0000983231 00000 n 
-0000987147 00000 n 
-0000992342 00000 n 
-0000992664 00000 n 
-0000992921 00000 n 
-0000995978 00000 n 
-0000996172 00000 n 
-0000996366 00000 n 
-0000996688 00000 n 
-0001000654 00000 n 
-0000435530 00000 n 
-0000434922 00000 n 
-0000432983 00000 n 
-0000435403 00000 n 
-0000435078 00000 n 
-0000435240 00000 n 
-0000774501 00000 n 
-0000440648 00000 n 
-0000438222 00000 n 
-0000435632 00000 n 
-0000438774 00000 n 
-0000438838 00000 n 
-0000438902 00000 n 
-0000438369 00000 n 
-0000438966 00000 n 
-0000439158 00000 n 
-0000439221 00000 n 
-0000439285 00000 n 
-0000439475 00000 n 
-0000439539 00000 n 
-0000439603 00000 n 
-0000439669 00000 n 
-0000439735 00000 n 
-0000439799 00000 n 
-0000439863 00000 n 
-0000439929 00000 n 
-0000439995 00000 n 
-0000440059 00000 n 
-0000440123 00000 n 
-0000440189 00000 n 
-0000440254 00000 n 
-0000440320 00000 n 
-0000440386 00000 n 
-0000440452 00000 n 
-0000440516 00000 n 
-0000440582 00000 n 
-0000446549 00000 n 
-0000442927 00000 n 
-0000440764 00000 n 
-0000443053 00000 n 
-0000443119 00000 n 
-0000443185 00000 n 
-0000443251 00000 n 
-0000443317 00000 n 
-0000443381 00000 n 
-0000443573 00000 n 
-0000443637 00000 n 
-0000443701 00000 n 
-0000443765 00000 n 
-0000443831 00000 n 
-0000443895 00000 n 
-0000443960 00000 n 
-0000444024 00000 n 
-0000444090 00000 n 
-0000444152 00000 n 
-0000444216 00000 n 
-0000444280 00000 n 
-0000444346 00000 n 
-0000444410 00000 n 
-0000444475 00000 n 
-0000444539 00000 n 
-0000444605 00000 n 
-0000444669 00000 n 
-0000444733 00000 n 
-0000444797 00000 n 
-0000444863 00000 n 
-0000444927 00000 n 
-0000444992 00000 n 
-0000445056 00000 n 
-0000445122 00000 n 
-0000445186 00000 n 
-0000445251 00000 n 
-0000445315 00000 n 
-0000445381 00000 n 
-0000445445 00000 n 
-0000445509 00000 n 
-0000445573 00000 n 
-0000445638 00000 n 
-0000445704 00000 n 
-0000445770 00000 n 
-0000445836 00000 n 
-0000445902 00000 n 
-0000445968 00000 n 
-0000446034 00000 n 
-0000446100 00000 n 
-0000446166 00000 n 
-0000446228 00000 n 
-0000446292 00000 n 
-0000446356 00000 n 
-0000446420 00000 n 
-0000448911 00000 n 
-0000448090 00000 n 
-0000446665 00000 n 
-0000448461 00000 n 
-0000448525 00000 n 
-0000448589 00000 n 
-0000448653 00000 n 
-0000448717 00000 n 
-0001080589 00000 n 
-0001068376 00000 n 
-0001080415 00000 n 
-0000448237 00000 n 
-0000448781 00000 n 
-0000448845 00000 n 
-0001006707 00000 n 
-0000454525 00000 n 
-0000451304 00000 n 
-0000449055 00000 n 
-0000453051 00000 n 
-0000453115 00000 n 
-0000453179 00000 n 
-0001067616 00000 n 
-0001057596 00000 n 
-0001067438 00000 n 
-0000453245 00000 n 
-0000451514 00000 n 
-0000451673 00000 n 
-0000453309 00000 n 
-0000453373 00000 n 
-0000453437 00000 n 
-0000453503 00000 n 
-0000453567 00000 n 
-0000453630 00000 n 
-0000453692 00000 n 
-0000451829 00000 n 
-0000453756 00000 n 
-0000451988 00000 n 
-0000453820 00000 n 
-0000452150 00000 n 
-0000453884 00000 n 
-0000452314 00000 n 
-0000453948 00000 n 
-0000452475 00000 n 
-0000454012 00000 n 
-0000452639 00000 n 
-0000454076 00000 n 
-0000454267 00000 n 
-0000454331 00000 n 
-0000454395 00000 n 
-0000454459 00000 n 
-0001178044 00000 n 
-0000458129 00000 n 
-0000456269 00000 n 
-0000454669 00000 n 
-0000456522 00000 n 
-0000456713 00000 n 
-0000456777 00000 n 
-0000456841 00000 n 
-0000456905 00000 n 
-0000456971 00000 n 
-0000457035 00000 n 
-0000457099 00000 n 
-0000457165 00000 n 
-0000457231 00000 n 
-0000457423 00000 n 
-0000457487 00000 n 
-0000457551 00000 n 
-0000457615 00000 n 
-0000457681 00000 n 
-0000457873 00000 n 
-0000457935 00000 n 
-0000457999 00000 n 
-0000458063 00000 n 
-0000463473 00000 n 
-0000460933 00000 n 
-0000458259 00000 n 
-0000461407 00000 n 
-0000461471 00000 n 
-0000461663 00000 n 
-0000461727 00000 n 
-0000461089 00000 n 
-0000461791 00000 n 
-0000461857 00000 n 
-0000461921 00000 n 
-0000462115 00000 n 
-0000462179 00000 n 
-0000462243 00000 n 
-0000462309 00000 n 
-0000462375 00000 n 
-0000462441 00000 n 
-0000462505 00000 n 
-0000462571 00000 n 
-0000462636 00000 n 
-0000462701 00000 n 
-0000462765 00000 n 
-0000462957 00000 n 
-0000463021 00000 n 
-0000461246 00000 n 
-0000463087 00000 n 
-0000463151 00000 n 
-0000463217 00000 n 
-0000463281 00000 n 
-0000463345 00000 n 
-0000463409 00000 n 
-0001007093 00000 n 
-0000469944 00000 n 
-0000466272 00000 n 
-0000463603 00000 n 
-0000467296 00000 n 
-0000466455 00000 n 
-0000466621 00000 n 
-0000467360 00000 n 
-0000467424 00000 n 
-0000467488 00000 n 
-0000467552 00000 n 
-0000467617 00000 n 
-0000467681 00000 n 
-0000467745 00000 n 
-0000467811 00000 n 
-0000467877 00000 n 
-0000467942 00000 n 
-0000468006 00000 n 
-0000468072 00000 n 
-0000468136 00000 n 
-0000468200 00000 n 
-0000468266 00000 n 
-0000468330 00000 n 
-0000468395 00000 n 
-0000468459 00000 n 
-0000468524 00000 n 
-0000468588 00000 n 
-0000468653 00000 n 
-0000468717 00000 n 
-0000466794 00000 n 
-0000468782 00000 n 
-0000468846 00000 n 
-0000468911 00000 n 
-0000468975 00000 n 
-0000469040 00000 n 
-0000469104 00000 n 
-0000469169 00000 n 
-0000469233 00000 n 
-0000466964 00000 n 
-0000469298 00000 n 
-0000469362 00000 n 
-0000469427 00000 n 
-0000469491 00000 n 
-0000469556 00000 n 
-0000469622 00000 n 
-0000469686 00000 n 
-0000467132 00000 n 
-0000469751 00000 n 
-0000469815 00000 n 
-0000469880 00000 n 
-0000476443 00000 n 
-0000472390 00000 n 
-0000470088 00000 n 
-0000473610 00000 n 
-0000472582 00000 n 
-0000473675 00000 n 
-0000473739 00000 n 
-0000472755 00000 n 
-0000473804 00000 n 
-0000473868 00000 n 
-0000472926 00000 n 
-0000473933 00000 n 
-0000473997 00000 n 
-0000473095 00000 n 
-0000474062 00000 n 
-0000474126 00000 n 
-0000474191 00000 n 
-0000474255 00000 n 
-0000474320 00000 n 
-0000474384 00000 n 
-0000473266 00000 n 
-0000474449 00000 n 
-0000474513 00000 n 
-0000474578 00000 n 
-0000474642 00000 n 
-0000474707 00000 n 
-0000474771 00000 n 
-0000474836 00000 n 
-0000474900 00000 n 
-0000473439 00000 n 
-0000474965 00000 n 
-0000475029 00000 n 
-0000475094 00000 n 
-0000475158 00000 n 
-0000475223 00000 n 
-0000475287 00000 n 
-0000475352 00000 n 
-0000475416 00000 n 
-0000475481 00000 n 
-0000475545 00000 n 
-0000475610 00000 n 
-0000475674 00000 n 
-0000475868 00000 n 
-0000475932 00000 n 
-0000476123 00000 n 
-0000476315 00000 n 
-0000476379 00000 n 
-0000480332 00000 n 
-0000478283 00000 n 
-0000476545 00000 n 
-0000478409 00000 n 
-0000478473 00000 n 
-0000478538 00000 n 
-0000478603 00000 n 
-0000478668 00000 n 
-0000478732 00000 n 
-0000478797 00000 n 
-0000478991 00000 n 
-0000479182 00000 n 
-0000479374 00000 n 
-0000479565 00000 n 
-0000479629 00000 n 
-0000479822 00000 n 
-0000480015 00000 n 
-0000480204 00000 n 
-0000480268 00000 n 
-0000485415 00000 n 
-0000483078 00000 n 
-0000480462 00000 n 
-0000483547 00000 n 
-0000483611 00000 n 
-0000483675 00000 n 
-0000483739 00000 n 
-0000483234 00000 n 
-0000483805 00000 n 
-0000483869 00000 n 
-0000483933 00000 n 
-0000483997 00000 n 
-0000484187 00000 n 
-0000484251 00000 n 
-0000484316 00000 n 
-0000484382 00000 n 
-0000484448 00000 n 
-0000484512 00000 n 
-0000484578 00000 n 
-0000484644 00000 n 
-0000484836 00000 n 
-0000484900 00000 n 
-0000483392 00000 n 
-0000485095 00000 n 
-0000485159 00000 n 
-0000485223 00000 n 
-0000485287 00000 n 
-0000485351 00000 n 
-0001178169 00000 n 
-0000491279 00000 n 
-0000488313 00000 n 
-0000485545 00000 n 
-0000489274 00000 n 
-0000489338 00000 n 
-0000489402 00000 n 
-0000489466 00000 n 
-0000489532 00000 n 
-0000489598 00000 n 
-0000489662 00000 n 
-0000489728 00000 n 
-0000489792 00000 n 
-0000489856 00000 n 
-0000489921 00000 n 
-0000489985 00000 n 
-0000490051 00000 n 
-0000490116 00000 n 
-0000490182 00000 n 
-0000490246 00000 n 
-0000490312 00000 n 
-0000488496 00000 n 
-0000490377 00000 n 
-0000490441 00000 n 
-0000490636 00000 n 
-0000488649 00000 n 
-0000488800 00000 n 
-0000488958 00000 n 
-0000490828 00000 n 
-0000490892 00000 n 
-0000491085 00000 n 
-0000491149 00000 n 
-0000489112 00000 n 
-0000491215 00000 n 
-0000496798 00000 n 
-0000494023 00000 n 
-0000491423 00000 n 
-0000494329 00000 n 
-0000494458 00000 n 
-0000494522 00000 n 
-0000494586 00000 n 
-0000494650 00000 n 
-0000494716 00000 n 
-0000494845 00000 n 
-0000494909 00000 n 
-0000494975 00000 n 
-0001057018 00000 n 
-0001047036 00000 n 
-0001056839 00000 n 
-0000495041 00000 n 
-0000494170 00000 n 
-0000495107 00000 n 
-0000495171 00000 n 
-0000495237 00000 n 
-0000495303 00000 n 
-0000495369 00000 n 
-0000495435 00000 n 
-0000495501 00000 n 
-0000495565 00000 n 
-0000495631 00000 n 
-0000495695 00000 n 
-0000495760 00000 n 
-0000495826 00000 n 
-0000495891 00000 n 
-0000496020 00000 n 
-0000496084 00000 n 
-0000496148 00000 n 
-0000496214 00000 n 
-0000496280 00000 n 
-0000496346 00000 n 
-0000496410 00000 n 
-0000496475 00000 n 
-0000496541 00000 n 
-0000496606 00000 n 
-0000496670 00000 n 
-0000496734 00000 n 
-0000501822 00000 n 
-0000498995 00000 n 
-0000496970 00000 n 
-0000499301 00000 n 
-0000499494 00000 n 
-0000499623 00000 n 
-0000499687 00000 n 
-0000499753 00000 n 
-0000499819 00000 n 
-0000499142 00000 n 
-0000499885 00000 n 
-0000499949 00000 n 
-0000500013 00000 n 
-0000500078 00000 n 
-0000500142 00000 n 
-0000500206 00000 n 
-0000500271 00000 n 
-0000500335 00000 n 
-0000500400 00000 n 
-0000500465 00000 n 
-0000500594 00000 n 
-0000500658 00000 n 
-0000500724 00000 n 
-0000500790 00000 n 
-0000500854 00000 n 
-0000500918 00000 n 
-0000500982 00000 n 
-0000501046 00000 n 
-0000501112 00000 n 
-0000501176 00000 n 
-0000501242 00000 n 
-0000501308 00000 n 
-0000501503 00000 n 
-0000501631 00000 n 
-0000501694 00000 n 
-0000501756 00000 n 
-0000505814 00000 n 
-0000503947 00000 n 
-0000501966 00000 n 
-0000504073 00000 n 
-0000504137 00000 n 
-0000504201 00000 n 
-0000504267 00000 n 
-0000504333 00000 n 
-0000504462 00000 n 
-0000504526 00000 n 
-0000504590 00000 n 
-0000504654 00000 n 
-0000504718 00000 n 
-0000504782 00000 n 
-0000504848 00000 n 
-0000504977 00000 n 
-0000505041 00000 n 
-0000505107 00000 n 
-0000505171 00000 n 
-0000505362 00000 n 
-0000505426 00000 n 
-0000505492 00000 n 
-0000505556 00000 n 
-0000505620 00000 n 
-0000505684 00000 n 
-0000512068 00000 n 
-0000508997 00000 n 
-0000505958 00000 n 
-0000509669 00000 n 
-0000509733 00000 n 
-0000509862 00000 n 
-0000509925 00000 n 
-0000509162 00000 n 
-0000509990 00000 n 
-0000510184 00000 n 
-0000509334 00000 n 
-0000509501 00000 n 
-0000510248 00000 n 
-0000510376 00000 n 
-0000510440 00000 n 
-0000510504 00000 n 
-0000510568 00000 n 
-0000510634 00000 n 
-0000510700 00000 n 
-0000510764 00000 n 
-0000510830 00000 n 
-0000510895 00000 n 
-0000510959 00000 n 
-0000511023 00000 n 
-0000511089 00000 n 
-0000511154 00000 n 
-0000511218 00000 n 
-0000511282 00000 n 
-0000511348 00000 n 
-0000511413 00000 n 
-0000511478 00000 n 
-0000511544 00000 n 
-0000511610 00000 n 
-0000511676 00000 n 
-0000511742 00000 n 
-0000511808 00000 n 
-0000511872 00000 n 
-0000511938 00000 n 
-0000512004 00000 n 
-0000518138 00000 n 
-0000515347 00000 n 
-0000512226 00000 n 
-0000515473 00000 n 
-0000515537 00000 n 
-0000515666 00000 n 
-0000515730 00000 n 
-0000515794 00000 n 
-0000515858 00000 n 
-0000515924 00000 n 
-0000515990 00000 n 
-0000516054 00000 n 
-0000516118 00000 n 
-0000516182 00000 n 
-0000516248 00000 n 
-0000516314 00000 n 
-0000516379 00000 n 
-0000516445 00000 n 
-0000516511 00000 n 
-0000516575 00000 n 
-0000516639 00000 n 
-0000516704 00000 n 
-0000516770 00000 n 
-0000516836 00000 n 
-0000516902 00000 n 
-0000516968 00000 n 
-0000517034 00000 n 
-0000517098 00000 n 
-0000517162 00000 n 
-0000517226 00000 n 
-0000517291 00000 n 
-0000517355 00000 n 
-0000517421 00000 n 
-0000517485 00000 n 
-0000517551 00000 n 
-0000517617 00000 n 
-0000517683 00000 n 
-0000517746 00000 n 
-0000517812 00000 n 
-0000517878 00000 n 
-0000517942 00000 n 
-0000518008 00000 n 
-0000518072 00000 n 
-0001178294 00000 n 
-0000523884 00000 n 
-0000521058 00000 n 
-0000518296 00000 n 
-0000521547 00000 n 
-0000521740 00000 n 
-0000521804 00000 n 
-0000521870 00000 n 
-0000521936 00000 n 
-0000522002 00000 n 
-0000522068 00000 n 
-0000522134 00000 n 
-0000522199 00000 n 
-0000522264 00000 n 
-0000522330 00000 n 
-0000522393 00000 n 
-0000522459 00000 n 
-0000522525 00000 n 
-0000522591 00000 n 
-0000522655 00000 n 
-0000522721 00000 n 
-0000522785 00000 n 
-0000522849 00000 n 
-0000522913 00000 n 
-0000522977 00000 n 
-0000523041 00000 n 
-0000523105 00000 n 
-0000523171 00000 n 
-0000523237 00000 n 
-0000523301 00000 n 
-0000523365 00000 n 
-0000523431 00000 n 
-0000521214 00000 n 
-0000523626 00000 n 
-0000523690 00000 n 
-0000521384 00000 n 
-0000523756 00000 n 
-0000523820 00000 n 
-0000529111 00000 n 
-0000526317 00000 n 
-0000524028 00000 n 
-0000526790 00000 n 
-0000526854 00000 n 
-0000526918 00000 n 
-0000526473 00000 n 
-0000526984 00000 n 
-0000527050 00000 n 
-0000527116 00000 n 
-0000527181 00000 n 
-0000527247 00000 n 
-0000527311 00000 n 
-0000527377 00000 n 
-0000527442 00000 n 
-0000526631 00000 n 
-0000527635 00000 n 
-0000527828 00000 n 
-0000527892 00000 n 
-0000527956 00000 n 
-0000528020 00000 n 
-0001046357 00000 n 
-0001030644 00000 n 
-0001046182 00000 n 
-0000528086 00000 n 
-0000528149 00000 n 
-0000528215 00000 n 
-0000528279 00000 n 
-0000528341 00000 n 
-0000528405 00000 n 
-0000528469 00000 n 
-0000528663 00000 n 
-0000528725 00000 n 
-0000528789 00000 n 
-0000528853 00000 n 
-0000528917 00000 n 
-0000528981 00000 n 
-0000534370 00000 n 
-0000531927 00000 n 
-0000529269 00000 n 
-0000532228 00000 n 
-0000532357 00000 n 
-0000532074 00000 n 
-0000532421 00000 n 
-0000532485 00000 n 
-0000532549 00000 n 
-0000532613 00000 n 
-0000532677 00000 n 
-0000532742 00000 n 
-0000532806 00000 n 
-0000533001 00000 n 
-0000533065 00000 n 
-0000533130 00000 n 
-0000533196 00000 n 
-0000533262 00000 n 
-0000533328 00000 n 
-0000533394 00000 n 
-0000533457 00000 n 
-0000533523 00000 n 
-0000533589 00000 n 
-0000533653 00000 n 
-0000533717 00000 n 
-0000533910 00000 n 
-0000533974 00000 n 
-0000534040 00000 n 
-0000534106 00000 n 
-0000534172 00000 n 
-0000534238 00000 n 
-0000534304 00000 n 
-0000538607 00000 n 
-0000536798 00000 n 
-0000534500 00000 n 
-0000536924 00000 n 
-0000536988 00000 n 
-0000537052 00000 n 
-0000537118 00000 n 
-0000537184 00000 n 
-0000537250 00000 n 
-0000537316 00000 n 
-0000537380 00000 n 
-0000537444 00000 n 
-0000537637 00000 n 
-0000537701 00000 n 
-0000537765 00000 n 
-0000537960 00000 n 
-0000538024 00000 n 
-0000538219 00000 n 
-0000538283 00000 n 
-0000538349 00000 n 
-0000538415 00000 n 
-0000538479 00000 n 
-0000542628 00000 n 
-0000540610 00000 n 
-0000538751 00000 n 
-0000541087 00000 n 
-0000541216 00000 n 
-0000540766 00000 n 
-0000540932 00000 n 
-0000541280 00000 n 
-0000541344 00000 n 
-0000541410 00000 n 
-0000541473 00000 n 
-0000541537 00000 n 
-0000541601 00000 n 
-0000541665 00000 n 
-0000541729 00000 n 
-0000541793 00000 n 
-0000541857 00000 n 
-0000541921 00000 n 
-0000541985 00000 n 
-0000542049 00000 n 
-0000542114 00000 n 
-0000542178 00000 n 
-0000542242 00000 n 
-0000542307 00000 n 
-0000542500 00000 n 
-0001016672 00000 n 
-0000549064 00000 n 
-0000545660 00000 n 
-0000542772 00000 n 
-0000546475 00000 n 
-0000546539 00000 n 
-0000546668 00000 n 
-0000545834 00000 n 
-0000546007 00000 n 
-0000546732 00000 n 
-0000546795 00000 n 
-0000546858 00000 n 
-0000546924 00000 n 
-0000546988 00000 n 
-0000547053 00000 n 
-0000547119 00000 n 
-0000547314 00000 n 
-0000547507 00000 n 
-0000547700 00000 n 
-0000547764 00000 n 
-0000547830 00000 n 
-0000546159 00000 n 
-0000548023 00000 n 
-0000548087 00000 n 
-0000548151 00000 n 
-0000548216 00000 n 
-0000548282 00000 n 
-0000548346 00000 n 
-0000548411 00000 n 
-0000546317 00000 n 
-0000548475 00000 n 
-0000548539 00000 n 
-0000548603 00000 n 
-0000548669 00000 n 
-0000548735 00000 n 
-0000548800 00000 n 
-0000548866 00000 n 
-0000548932 00000 n 
-0000548998 00000 n 
-0001178419 00000 n 
-0001007736 00000 n 
-0000553121 00000 n 
-0000551463 00000 n 
-0000549194 00000 n 
-0000551770 00000 n 
-0000551898 00000 n 
-0001028415 00000 n 
-0001025919 00000 n 
-0001028246 00000 n 
-0000551962 00000 n 
-0000552026 00000 n 
-0000552090 00000 n 
-0000552154 00000 n 
-0000552349 00000 n 
-0000552413 00000 n 
-0000552477 00000 n 
-0000552801 00000 n 
-0000551610 00000 n 
-0000552993 00000 n 
-0000553057 00000 n 
-0000556578 00000 n 
-0000555026 00000 n 
-0000553251 00000 n 
-0000555152 00000 n 
-0000555216 00000 n 
-0000555282 00000 n 
-0000555347 00000 n 
-0000555413 00000 n 
-0000555544 00000 n 
-0000555673 00000 n 
-0000555737 00000 n 
-0000555800 00000 n 
-0000555929 00000 n 
-0000555993 00000 n 
-0000556059 00000 n 
-0000556125 00000 n 
-0000556254 00000 n 
-0000556318 00000 n 
-0000556382 00000 n 
-0000556448 00000 n 
-0000556514 00000 n 
-0000560826 00000 n 
-0000558554 00000 n 
-0000556736 00000 n 
-0000558680 00000 n 
-0000558744 00000 n 
-0000558808 00000 n 
-0000558874 00000 n 
-0000558940 00000 n 
-0000559004 00000 n 
-0000559070 00000 n 
-0000559134 00000 n 
-0000559198 00000 n 
-0000559263 00000 n 
-0000559457 00000 n 
-0000559520 00000 n 
-0000559584 00000 n 
-0000559650 00000 n 
-0000559716 00000 n 
-0000559782 00000 n 
-0000559848 00000 n 
-0000559914 00000 n 
-0000559979 00000 n 
-0000560045 00000 n 
-0000560111 00000 n 
-0000560177 00000 n 
-0000560243 00000 n 
-0000560307 00000 n 
-0000560502 00000 n 
-0000560565 00000 n 
-0000560630 00000 n 
-0000560696 00000 n 
-0000565800 00000 n 
-0000563665 00000 n 
-0000560984 00000 n 
-0000563987 00000 n 
-0000564116 00000 n 
-0000564309 00000 n 
-0000564373 00000 n 
-0000564439 00000 n 
-0000564503 00000 n 
-0000564567 00000 n 
-0000564631 00000 n 
-0000564696 00000 n 
-0000564891 00000 n 
-0000564955 00000 n 
-0000565020 00000 n 
-0000563812 00000 n 
-0000565085 00000 n 
-0000565151 00000 n 
-0000565215 00000 n 
-0000565281 00000 n 
-0000565346 00000 n 
-0000565540 00000 n 
-0000565604 00000 n 
-0000565668 00000 n 
-0000565734 00000 n 
-0000571095 00000 n 
-0000568716 00000 n 
-0000565944 00000 n 
-0000569355 00000 n 
-0000569419 00000 n 
-0000569485 00000 n 
-0000569549 00000 n 
-0000569742 00000 n 
-0000569806 00000 n 
-0000569870 00000 n 
-0000569933 00000 n 
-0000569997 00000 n 
-0000570190 00000 n 
-0000570254 00000 n 
-0000570318 00000 n 
-0000570381 00000 n 
-0000570446 00000 n 
-0000570512 00000 n 
-0000570576 00000 n 
-0000568881 00000 n 
-0000570641 00000 n 
-0000570705 00000 n 
-0000569040 00000 n 
-0000569198 00000 n 
-0000570770 00000 n 
-0000570834 00000 n 
-0000570899 00000 n 
-0000570965 00000 n 
-0000571029 00000 n 
-0000576602 00000 n 
-0000573659 00000 n 
-0000571239 00000 n 
-0000574478 00000 n 
-0000574542 00000 n 
-0000574606 00000 n 
-0000574670 00000 n 
-0000574734 00000 n 
-0000574796 00000 n 
-0000574862 00000 n 
-0000574928 00000 n 
-0000574992 00000 n 
-0000575056 00000 n 
-0000575122 00000 n 
-0000575317 00000 n 
-0000575381 00000 n 
-0000575445 00000 n 
-0000573833 00000 n 
-0000575509 00000 n 
-0000575573 00000 n 
-0000575638 00000 n 
-0000575704 00000 n 
-0000573991 00000 n 
-0000575768 00000 n 
-0000575832 00000 n 
-0000575897 00000 n 
-0000574154 00000 n 
-0000575960 00000 n 
-0000576024 00000 n 
-0000576089 00000 n 
-0000576282 00000 n 
-0000574315 00000 n 
-0000576346 00000 n 
-0000576538 00000 n 
-0001178544 00000 n 
-0000581062 00000 n 
-0000578784 00000 n 
-0000576718 00000 n 
-0000578910 00000 n 
-0000578974 00000 n 
-0000579038 00000 n 
-0000579102 00000 n 
-0000579168 00000 n 
-0000579234 00000 n 
-0000579300 00000 n 
-0000579366 00000 n 
-0000579430 00000 n 
-0000579494 00000 n 
-0000579560 00000 n 
-0000579626 00000 n 
-0000579821 00000 n 
-0000579885 00000 n 
-0000579950 00000 n 
-0000580014 00000 n 
-0000580080 00000 n 
-0000580144 00000 n 
-0000580210 00000 n 
-0000580276 00000 n 
-0000580340 00000 n 
-0000580406 00000 n 
-0000580470 00000 n 
-0000580536 00000 n 
-0000580602 00000 n 
-0000580668 00000 n 
-0000580734 00000 n 
-0000580800 00000 n 
-0000580866 00000 n 
-0000580930 00000 n 
-0000580996 00000 n 
-0000586328 00000 n 
-0000583589 00000 n 
-0000581220 00000 n 
-0000584064 00000 n 
-0000584128 00000 n 
-0000584319 00000 n 
-0000584382 00000 n 
-0000584446 00000 n 
-0000584512 00000 n 
-0000584576 00000 n 
-0000584640 00000 n 
-0000584706 00000 n 
-0000584772 00000 n 
-0000584836 00000 n 
-0000584902 00000 n 
-0000584968 00000 n 
-0000585032 00000 n 
-0000585096 00000 n 
-0000585162 00000 n 
-0000583745 00000 n 
-0000585357 00000 n 
-0000585421 00000 n 
-0000585485 00000 n 
-0000585549 00000 n 
-0000585614 00000 n 
-0000585679 00000 n 
-0000585745 00000 n 
-0000585809 00000 n 
-0000583904 00000 n 
-0000585873 00000 n 
-0000585937 00000 n 
-0000586002 00000 n 
-0000586068 00000 n 
-0000586132 00000 n 
-0000586198 00000 n 
-0000586264 00000 n 
-0000590209 00000 n 
-0000588503 00000 n 
-0000586500 00000 n 
-0000588976 00000 n 
-0000589040 00000 n 
-0000589106 00000 n 
-0000589172 00000 n 
-0000589236 00000 n 
-0000589302 00000 n 
-0000589366 00000 n 
-0000589431 00000 n 
-0000589496 00000 n 
-0000589560 00000 n 
-0000588659 00000 n 
-0000589625 00000 n 
-0000589818 00000 n 
-0000589882 00000 n 
-0000588818 00000 n 
-0000589946 00000 n 
-0000590011 00000 n 
-0000590077 00000 n 
-0000590143 00000 n 
-0000595158 00000 n 
-0000592324 00000 n 
-0000590339 00000 n 
-0000592450 00000 n 
-0000592770 00000 n 
-0000592962 00000 n 
-0000593026 00000 n 
-0000593090 00000 n 
-0000593154 00000 n 
-0000593218 00000 n 
-0000593282 00000 n 
-0000593347 00000 n 
-0000593411 00000 n 
-0000593475 00000 n 
-0000593540 00000 n 
-0000593604 00000 n 
-0000593670 00000 n 
-0000593736 00000 n 
-0000593802 00000 n 
-0000593866 00000 n 
-0000593930 00000 n 
-0000593995 00000 n 
-0000594059 00000 n 
-0000594124 00000 n 
-0000594190 00000 n 
-0000594254 00000 n 
-0000594318 00000 n 
-0000594382 00000 n 
-0000594447 00000 n 
-0000594511 00000 n 
-0000594576 00000 n 
-0000594641 00000 n 
-0000594707 00000 n 
-0000594771 00000 n 
-0000594834 00000 n 
-0000594899 00000 n 
-0000594965 00000 n 
-0000595029 00000 n 
-0000595093 00000 n 
-0000600707 00000 n 
-0000598059 00000 n 
-0000595288 00000 n 
-0000598185 00000 n 
-0000598249 00000 n 
-0000598315 00000 n 
-0000598381 00000 n 
-0000598446 00000 n 
-0000598510 00000 n 
-0000598574 00000 n 
-0000598639 00000 n 
-0000598703 00000 n 
-0000598768 00000 n 
-0000598833 00000 n 
-0000598898 00000 n 
-0000598962 00000 n 
-0000599025 00000 n 
-0000599090 00000 n 
-0000599156 00000 n 
-0000599220 00000 n 
-0000599284 00000 n 
-0000599350 00000 n 
-0000599414 00000 n 
-0000599478 00000 n 
-0000599542 00000 n 
-0000599606 00000 n 
-0000599670 00000 n 
-0000599736 00000 n 
-0000599802 00000 n 
-0000599866 00000 n 
-0000599930 00000 n 
-0000599995 00000 n 
-0000600061 00000 n 
-0000600126 00000 n 
-0000600192 00000 n 
-0000600255 00000 n 
-0000600319 00000 n 
-0000600384 00000 n 
-0000600450 00000 n 
-0000600515 00000 n 
-0000600579 00000 n 
-0000600643 00000 n 
-0000604965 00000 n 
-0000603038 00000 n 
-0000600851 00000 n 
-0000603164 00000 n 
-0000603357 00000 n 
-0000603549 00000 n 
-0000603613 00000 n 
-0000603677 00000 n 
-0000603741 00000 n 
-0000603805 00000 n 
-0000603870 00000 n 
-0000603936 00000 n 
-0000604000 00000 n 
-0000604064 00000 n 
-0000604129 00000 n 
-0000604324 00000 n 
-0000604517 00000 n 
-0000604581 00000 n 
-0000604645 00000 n 
-0000604709 00000 n 
-0000604773 00000 n 
-0000604838 00000 n 
-0000604902 00000 n 
-0001178669 00000 n 
-0000608870 00000 n 
-0000607202 00000 n 
-0000605081 00000 n 
-0000607328 00000 n 
-0000607392 00000 n 
-0000607456 00000 n 
-0000607520 00000 n 
-0000607584 00000 n 
-0000607778 00000 n 
-0000607842 00000 n 
-0000607905 00000 n 
-0000607967 00000 n 
-0000608031 00000 n 
-0000608096 00000 n 
-0000608160 00000 n 
-0000608224 00000 n 
-0000608417 00000 n 
-0000608481 00000 n 
-0000608676 00000 n 
-0000608740 00000 n 
-0000613893 00000 n 
-0000611777 00000 n 
-0000609000 00000 n 
-0000612414 00000 n 
-0000612478 00000 n 
-0000612607 00000 n 
-0000611942 00000 n 
-0000612671 00000 n 
-0000612735 00000 n 
-0000612799 00000 n 
-0000612863 00000 n 
-0000612928 00000 n 
-0000612992 00000 n 
-0000613056 00000 n 
-0000613121 00000 n 
-0000613187 00000 n 
-0000613251 00000 n 
-0000613315 00000 n 
-0000612095 00000 n 
-0000613379 00000 n 
-0000613443 00000 n 
-0000613507 00000 n 
-0000612253 00000 n 
-0000613701 00000 n 
-0000613765 00000 n 
-0000613829 00000 n 
-0000619316 00000 n 
-0000616487 00000 n 
-0000613995 00000 n 
-0000616795 00000 n 
-0000616859 00000 n 
-0000616925 00000 n 
-0000616634 00000 n 
-0000616991 00000 n 
-0000617057 00000 n 
-0000617121 00000 n 
-0000617185 00000 n 
-0000617249 00000 n 
-0000617314 00000 n 
-0000617380 00000 n 
-0000617446 00000 n 
-0000617512 00000 n 
-0000617576 00000 n 
-0000617640 00000 n 
-0000617705 00000 n 
-0000617769 00000 n 
-0000617835 00000 n 
-0000617901 00000 n 
-0000617964 00000 n 
-0000618028 00000 n 
-0000618092 00000 n 
-0000618156 00000 n 
-0000618222 00000 n 
-0000618287 00000 n 
-0000618353 00000 n 
-0000618416 00000 n 
-0000618480 00000 n 
-0000618545 00000 n 
-0000618609 00000 n 
-0000618674 00000 n 
-0000618738 00000 n 
-0000618802 00000 n 
-0000618867 00000 n 
-0000618931 00000 n 
-0000618996 00000 n 
-0000619060 00000 n 
-0000619124 00000 n 
-0000619189 00000 n 
-0000619253 00000 n 
-0001008189 00000 n 
-0000623807 00000 n 
-0000621318 00000 n 
-0000619460 00000 n 
-0000621619 00000 n 
-0000621683 00000 n 
-0000621747 00000 n 
-0000621811 00000 n 
-0000621876 00000 n 
-0000621940 00000 n 
-0000622135 00000 n 
-0000622199 00000 n 
-0000622263 00000 n 
-0000621465 00000 n 
-0000622327 00000 n 
-0000622391 00000 n 
-0000622455 00000 n 
-0000622518 00000 n 
-0000622582 00000 n 
-0000622647 00000 n 
-0000622713 00000 n 
-0000622779 00000 n 
-0000622845 00000 n 
-0000622909 00000 n 
-0000622973 00000 n 
-0000623038 00000 n 
-0000623101 00000 n 
-0000623165 00000 n 
-0000623230 00000 n 
-0000623294 00000 n 
-0000623357 00000 n 
-0000623422 00000 n 
-0000623486 00000 n 
-0000623679 00000 n 
-0000623743 00000 n 
-0000628289 00000 n 
-0000626491 00000 n 
-0000623937 00000 n 
-0000626617 00000 n 
-0000626681 00000 n 
-0000626745 00000 n 
-0000626809 00000 n 
-0000626874 00000 n 
-0000626940 00000 n 
-0000627004 00000 n 
-0000627068 00000 n 
-0000627133 00000 n 
-0000627197 00000 n 
-0000627261 00000 n 
-0000627326 00000 n 
-0000627390 00000 n 
-0000627454 00000 n 
-0000627519 00000 n 
-0000627583 00000 n 
-0000627647 00000 n 
-0000627840 00000 n 
-0000628032 00000 n 
-0000628225 00000 n 
-0000632428 00000 n 
-0000630691 00000 n 
-0000628405 00000 n 
-0000630817 00000 n 
-0000630881 00000 n 
-0000630945 00000 n 
-0000631009 00000 n 
-0000631074 00000 n 
-0000631138 00000 n 
-0000631331 00000 n 
-0000631653 00000 n 
-0000631717 00000 n 
-0000631781 00000 n 
-0000632102 00000 n 
-0000632166 00000 n 
-0000632232 00000 n 
-0000632298 00000 n 
-0000632362 00000 n 
-0001178794 00000 n 
-0000637913 00000 n 
-0000635216 00000 n 
-0000632544 00000 n 
-0000635521 00000 n 
-0000635714 00000 n 
-0000635843 00000 n 
-0000635907 00000 n 
-0000635973 00000 n 
-0000636039 00000 n 
-0000635363 00000 n 
-0000636103 00000 n 
-0000636232 00000 n 
-0000636296 00000 n 
-0000636362 00000 n 
-0000636426 00000 n 
-0000636490 00000 n 
-0000636555 00000 n 
-0000636619 00000 n 
-0000636684 00000 n 
-0000636748 00000 n 
-0000636812 00000 n 
-0000636878 00000 n 
-0000637073 00000 n 
-0000637137 00000 n 
-0000637201 00000 n 
-0000637265 00000 n 
-0000637330 00000 n 
-0000637395 00000 n 
-0000637461 00000 n 
-0000637525 00000 n 
-0000637590 00000 n 
-0000637655 00000 n 
-0000637719 00000 n 
-0000637784 00000 n 
-0000637849 00000 n 
-0000644258 00000 n 
-0000641289 00000 n 
-0000638043 00000 n 
-0000641415 00000 n 
-0000641479 00000 n 
-0000641544 00000 n 
-0000641609 00000 n 
-0000641673 00000 n 
-0000641738 00000 n 
-0000641803 00000 n 
-0000641867 00000 n 
-0000641931 00000 n 
-0000641995 00000 n 
-0000642059 00000 n 
-0000642125 00000 n 
-0000642190 00000 n 
-0000642256 00000 n 
-0000642321 00000 n 
-0000642386 00000 n 
-0000642451 00000 n 
-0000642515 00000 n 
-0000642580 00000 n 
-0000642645 00000 n 
-0000642709 00000 n 
-0000642773 00000 n 
-0000642837 00000 n 
-0000642901 00000 n 
-0000642966 00000 n 
-0000643031 00000 n 
-0000643094 00000 n 
-0000643158 00000 n 
-0000643222 00000 n 
-0000643286 00000 n 
-0000643351 00000 n 
-0000643416 00000 n 
-0000643480 00000 n 
-0000643545 00000 n 
-0000643610 00000 n 
-0000643674 00000 n 
-0000643739 00000 n 
-0000643804 00000 n 
-0000643870 00000 n 
-0000643934 00000 n 
-0000643999 00000 n 
-0000644064 00000 n 
-0000644129 00000 n 
-0000648763 00000 n 
-0000646911 00000 n 
-0000644402 00000 n 
-0000647216 00000 n 
-0000647345 00000 n 
-0000647409 00000 n 
-0000647058 00000 n 
-0000647603 00000 n 
-0000647667 00000 n 
-0000647733 00000 n 
-0000647797 00000 n 
-0000647861 00000 n 
-0000647927 00000 n 
-0000647991 00000 n 
-0000648055 00000 n 
-0000648119 00000 n 
-0000648313 00000 n 
-0000648377 00000 n 
-0000648441 00000 n 
-0000648505 00000 n 
-0000648569 00000 n 
-0000648635 00000 n 
-0000653903 00000 n 
-0000650675 00000 n 
-0000648907 00000 n 
-0000651331 00000 n 
-0000651460 00000 n 
-0000650840 00000 n 
-0000651000 00000 n 
-0000651524 00000 n 
-0000651590 00000 n 
-0000651654 00000 n 
-0000651720 00000 n 
-0000651784 00000 n 
-0000651848 00000 n 
-0000651912 00000 n 
-0000651976 00000 n 
-0000652041 00000 n 
-0000652104 00000 n 
-0000652168 00000 n 
-0000652233 00000 n 
-0000652297 00000 n 
-0000652361 00000 n 
-0000652426 00000 n 
-0000652490 00000 n 
-0000652554 00000 n 
-0000652618 00000 n 
-0000652682 00000 n 
-0000652746 00000 n 
-0000652811 00000 n 
-0000652875 00000 n 
-0000652939 00000 n 
-0000653004 00000 n 
-0000653068 00000 n 
-0000653132 00000 n 
-0000653197 00000 n 
-0000653261 00000 n 
-0000653325 00000 n 
-0000653390 00000 n 
-0000653454 00000 n 
-0000653518 00000 n 
-0000653583 00000 n 
-0000653647 00000 n 
-0000653710 00000 n 
-0000653775 00000 n 
-0000651163 00000 n 
-0001016993 00000 n 
-0000659454 00000 n 
-0000656489 00000 n 
-0000654005 00000 n 
-0000657453 00000 n 
-0000657582 00000 n 
-0000657646 00000 n 
-0000657710 00000 n 
-0000657774 00000 n 
-0000657839 00000 n 
-0000657905 00000 n 
-0000657971 00000 n 
-0000658035 00000 n 
-0000658100 00000 n 
-0000658166 00000 n 
-0000658230 00000 n 
-0000658295 00000 n 
-0000658359 00000 n 
-0000656672 00000 n 
-0000658553 00000 n 
-0000658746 00000 n 
-0000658810 00000 n 
-0000656829 00000 n 
-0000658874 00000 n 
-0000656987 00000 n 
-0000658938 00000 n 
-0000657143 00000 n 
-0000659130 00000 n 
-0000659194 00000 n 
-0000659260 00000 n 
-0000659326 00000 n 
-0000657300 00000 n 
-0000659390 00000 n 
-0000665001 00000 n 
-0000662552 00000 n 
-0000659556 00000 n 
-0000662868 00000 n 
-0000662932 00000 n 
-0000662699 00000 n 
-0000662996 00000 n 
-0000663060 00000 n 
-0000663124 00000 n 
-0000663187 00000 n 
-0000663253 00000 n 
-0000663319 00000 n 
-0000663385 00000 n 
-0000663448 00000 n 
-0000663514 00000 n 
-0000663580 00000 n 
-0000663645 00000 n 
-0000663710 00000 n 
-0000663775 00000 n 
-0000663839 00000 n 
-0000663905 00000 n 
-0000663969 00000 n 
-0000664035 00000 n 
-0000664099 00000 n 
-0000664163 00000 n 
-0000664227 00000 n 
-0000664292 00000 n 
-0000664356 00000 n 
-0000664420 00000 n 
-0000664615 00000 n 
-0000664679 00000 n 
-0000664745 00000 n 
-0000664809 00000 n 
-0000664873 00000 n 
-0000664937 00000 n 
-0001178919 00000 n 
-0000668403 00000 n 
-0000666930 00000 n 
-0000665131 00000 n 
-0000667056 00000 n 
-0000667120 00000 n 
-0000667184 00000 n 
-0000667248 00000 n 
-0000667312 00000 n 
-0000667376 00000 n 
-0000667440 00000 n 
-0000667504 00000 n 
-0000667568 00000 n 
-0000667632 00000 n 
-0000667696 00000 n 
-0000667760 00000 n 
-0000667824 00000 n 
-0000667888 00000 n 
-0000667953 00000 n 
-0000668017 00000 n 
-0000668082 00000 n 
-0000668146 00000 n 
-0000668211 00000 n 
-0000668275 00000 n 
-0000668339 00000 n 
-0000672818 00000 n 
-0000670514 00000 n 
-0000668505 00000 n 
-0000670813 00000 n 
-0000670877 00000 n 
-0000670941 00000 n 
-0000671005 00000 n 
-0000671069 00000 n 
-0000671133 00000 n 
-0000671197 00000 n 
-0000670661 00000 n 
-0000671388 00000 n 
-0000671452 00000 n 
-0000671516 00000 n 
-0000671582 00000 n 
-0000671646 00000 n 
-0000671710 00000 n 
-0000671774 00000 n 
-0000671839 00000 n 
-0000671905 00000 n 
-0000671970 00000 n 
-0000672034 00000 n 
-0000672099 00000 n 
-0000672165 00000 n 
-0000672228 00000 n 
-0000672293 00000 n 
-0000672359 00000 n 
-0000672425 00000 n 
-0000672491 00000 n 
-0000672557 00000 n 
-0000672623 00000 n 
-0000672689 00000 n 
-0000677324 00000 n 
-0000675015 00000 n 
-0000672948 00000 n 
-0000675141 00000 n 
-0000675205 00000 n 
-0000675334 00000 n 
-0000675398 00000 n 
-0000675461 00000 n 
-0000675525 00000 n 
-0000675589 00000 n 
-0000675653 00000 n 
-0000675717 00000 n 
-0000675782 00000 n 
-0000675845 00000 n 
-0000676035 00000 n 
-0000676099 00000 n 
-0000676162 00000 n 
-0000676225 00000 n 
-0000676289 00000 n 
-0000676353 00000 n 
-0000676417 00000 n 
-0000676482 00000 n 
-0000676546 00000 n 
-0000676611 00000 n 
-0000676675 00000 n 
-0000676740 00000 n 
-0000676804 00000 n 
-0000676998 00000 n 
-0000677062 00000 n 
-0000677128 00000 n 
-0000677194 00000 n 
-0000682844 00000 n 
-0000679414 00000 n 
-0000677440 00000 n 
-0000679540 00000 n 
-0000679669 00000 n 
-0000679733 00000 n 
-0000679799 00000 n 
-0000679865 00000 n 
-0000679929 00000 n 
-0000679995 00000 n 
-0000680061 00000 n 
-0000680127 00000 n 
-0000680191 00000 n 
-0000680256 00000 n 
-0000680322 00000 n 
-0000680386 00000 n 
-0000680450 00000 n 
-0000680515 00000 n 
-0000680580 00000 n 
-0000680644 00000 n 
-0000680709 00000 n 
-0000680774 00000 n 
-0000680840 00000 n 
-0000680904 00000 n 
-0000681227 00000 n 
-0000681291 00000 n 
-0000681357 00000 n 
-0000681421 00000 n 
-0000681485 00000 n 
-0000681549 00000 n 
-0000681613 00000 n 
-0000681677 00000 n 
-0000681741 00000 n 
-0000681804 00000 n 
-0000681869 00000 n 
-0000681935 00000 n 
-0000681999 00000 n 
-0000682063 00000 n 
-0000682127 00000 n 
-0000682192 00000 n 
-0000682258 00000 n 
-0000682322 00000 n 
-0000682517 00000 n 
-0000682581 00000 n 
-0000682647 00000 n 
-0000682712 00000 n 
-0000682778 00000 n 
-0000688478 00000 n 
-0000685368 00000 n 
-0000682960 00000 n 
-0000685494 00000 n 
-0000685558 00000 n 
-0000685622 00000 n 
-0000685688 00000 n 
-0000685752 00000 n 
-0000685818 00000 n 
-0000685884 00000 n 
-0000686078 00000 n 
-0000686271 00000 n 
-0000686335 00000 n 
-0000686399 00000 n 
-0000686465 00000 n 
-0000686531 00000 n 
-0000686595 00000 n 
-0000686659 00000 n 
-0000686725 00000 n 
-0000686789 00000 n 
-0000686854 00000 n 
-0000686920 00000 n 
-0000686984 00000 n 
-0000687049 00000 n 
-0000687113 00000 n 
-0000687179 00000 n 
-0000687243 00000 n 
-0000687308 00000 n 
-0000687373 00000 n 
-0000687439 00000 n 
-0000687634 00000 n 
-0000687698 00000 n 
-0000687764 00000 n 
-0000687830 00000 n 
-0000687894 00000 n 
-0000688089 00000 n 
-0000688153 00000 n 
-0000688219 00000 n 
-0000688284 00000 n 
-0000688350 00000 n 
-0000694767 00000 n 
-0000691216 00000 n 
-0000688594 00000 n 
-0000691523 00000 n 
-0000691652 00000 n 
-0000691716 00000 n 
-0000691363 00000 n 
-0000691911 00000 n 
-0000691975 00000 n 
-0000692040 00000 n 
-0000692168 00000 n 
-0000692232 00000 n 
-0000692361 00000 n 
-0000692425 00000 n 
-0000692491 00000 n 
-0000692556 00000 n 
-0000692684 00000 n 
-0000692747 00000 n 
-0000692811 00000 n 
-0000692877 00000 n 
-0000692941 00000 n 
-0000693005 00000 n 
-0000693071 00000 n 
-0000693137 00000 n 
-0000693203 00000 n 
-0000693269 00000 n 
-0000693333 00000 n 
-0000693399 00000 n 
-0000693463 00000 n 
-0000693529 00000 n 
-0000693595 00000 n 
-0000693659 00000 n 
-0000693725 00000 n 
-0000693791 00000 n 
-0000693857 00000 n 
-0000693923 00000 n 
-0000693989 00000 n 
-0000694053 00000 n 
-0000694119 00000 n 
-0000694183 00000 n 
-0000694247 00000 n 
-0000694311 00000 n 
-0000694376 00000 n 
-0000694442 00000 n 
-0000694508 00000 n 
-0000694574 00000 n 
-0000694639 00000 n 
-0000694703 00000 n 
-0001179044 00000 n 
-0000699688 00000 n 
-0000697167 00000 n 
-0000694883 00000 n 
-0000697293 00000 n 
-0000697422 00000 n 
-0000697486 00000 n 
-0000697550 00000 n 
-0000697614 00000 n 
-0000697743 00000 n 
-0000697807 00000 n 
-0000697873 00000 n 
-0000698002 00000 n 
-0000698065 00000 n 
-0000698131 00000 n 
-0000698197 00000 n 
-0000698263 00000 n 
-0000698329 00000 n 
-0000698395 00000 n 
-0000698523 00000 n 
-0000698587 00000 n 
-0000698651 00000 n 
-0000698780 00000 n 
-0000698844 00000 n 
-0000698910 00000 n 
-0000698976 00000 n 
-0000699042 00000 n 
-0000699171 00000 n 
-0000699235 00000 n 
-0000699363 00000 n 
-0000699427 00000 n 
-0000699493 00000 n 
-0000699559 00000 n 
-0000699624 00000 n 
-0000704169 00000 n 
-0000702311 00000 n 
-0000699790 00000 n 
-0000702617 00000 n 
-0000702746 00000 n 
-0000702810 00000 n 
-0000703005 00000 n 
-0000703069 00000 n 
-0000703135 00000 n 
-0000703199 00000 n 
-0000703265 00000 n 
-0000703329 00000 n 
-0000703395 00000 n 
-0000703461 00000 n 
-0000703656 00000 n 
-0000703720 00000 n 
-0000702458 00000 n 
-0000703784 00000 n 
-0000703977 00000 n 
-0000704041 00000 n 
-0000704105 00000 n 
-0000710175 00000 n 
-0000706835 00000 n 
-0000704299 00000 n 
-0000707658 00000 n 
-0000707722 00000 n 
-0000707786 00000 n 
-0000707981 00000 n 
-0000708045 00000 n 
-0000708109 00000 n 
-0000708175 00000 n 
-0000708238 00000 n 
-0000708303 00000 n 
-0000708368 00000 n 
-0000708434 00000 n 
-0000708498 00000 n 
-0000708563 00000 n 
-0000708628 00000 n 
-0000708692 00000 n 
-0000708757 00000 n 
-0000708822 00000 n 
-0000708888 00000 n 
-0000707009 00000 n 
-0000707173 00000 n 
-0000708952 00000 n 
-0000709016 00000 n 
-0000709081 00000 n 
-0000709146 00000 n 
-0000709210 00000 n 
-0000709275 00000 n 
-0000707337 00000 n 
-0000709340 00000 n 
-0000709404 00000 n 
-0000709469 00000 n 
-0000709534 00000 n 
-0000709598 00000 n 
-0000709663 00000 n 
-0000709855 00000 n 
-0000707494 00000 n 
-0000710048 00000 n 
-0000714389 00000 n 
-0000712590 00000 n 
-0000710277 00000 n 
-0000712716 00000 n 
-0000712780 00000 n 
-0000712909 00000 n 
-0000712973 00000 n 
-0000713168 00000 n 
-0000713232 00000 n 
-0000713298 00000 n 
-0000713490 00000 n 
-0000713554 00000 n 
-0000713618 00000 n 
-0000713682 00000 n 
-0000713747 00000 n 
-0000713811 00000 n 
-0000713876 00000 n 
-0000714068 00000 n 
-0000714132 00000 n 
-0000714325 00000 n 
-0000719355 00000 n 
-0000717365 00000 n 
-0000714505 00000 n 
-0000717491 00000 n 
-0000717555 00000 n 
-0000717619 00000 n 
-0000717683 00000 n 
-0000717748 00000 n 
-0000717812 00000 n 
-0000717877 00000 n 
-0000717942 00000 n 
-0000718006 00000 n 
-0000718071 00000 n 
-0000718136 00000 n 
-0000718200 00000 n 
-0000718264 00000 n 
-0000718328 00000 n 
-0000718392 00000 n 
-0000718586 00000 n 
-0000718649 00000 n 
-0000718712 00000 n 
-0000718778 00000 n 
-0000718842 00000 n 
-0000718906 00000 n 
-0000719099 00000 n 
-0000719163 00000 n 
-0000719227 00000 n 
-0000719291 00000 n 
-0000725470 00000 n 
-0000722510 00000 n 
-0000719457 00000 n 
-0000723532 00000 n 
-0000723596 00000 n 
-0000723661 00000 n 
-0000723724 00000 n 
-0000722693 00000 n 
-0000722861 00000 n 
-0000723789 00000 n 
-0000723853 00000 n 
-0000723028 00000 n 
-0000723918 00000 n 
-0000723982 00000 n 
-0000723198 00000 n 
-0000724047 00000 n 
-0000724111 00000 n 
-0000723362 00000 n 
-0000724177 00000 n 
-0000724241 00000 n 
-0000724305 00000 n 
-0000724500 00000 n 
-0000724563 00000 n 
-0000724627 00000 n 
-0000724691 00000 n 
-0000724756 00000 n 
-0000724822 00000 n 
-0000724888 00000 n 
-0000724952 00000 n 
-0000725017 00000 n 
-0000725083 00000 n 
-0000725147 00000 n 
-0000725212 00000 n 
-0000725276 00000 n 
-0000725340 00000 n 
-0000725405 00000 n 
-0001179169 00000 n 
-0000730578 00000 n 
-0000728241 00000 n 
-0000725586 00000 n 
-0000728714 00000 n 
-0000728778 00000 n 
-0000728844 00000 n 
-0000728909 00000 n 
-0000728397 00000 n 
-0000729101 00000 n 
-0000729164 00000 n 
-0000729230 00000 n 
-0000729295 00000 n 
-0000729359 00000 n 
-0000728556 00000 n 
-0000729423 00000 n 
-0000729489 00000 n 
-0000729553 00000 n 
-0000729617 00000 n 
-0000729681 00000 n 
-0000729745 00000 n 
-0000729810 00000 n 
-0000729873 00000 n 
-0000729936 00000 n 
-0000730000 00000 n 
-0000730065 00000 n 
-0000730129 00000 n 
-0000730193 00000 n 
-0000730256 00000 n 
-0000730321 00000 n 
-0000730385 00000 n 
-0000730449 00000 n 
-0000730513 00000 n 
-0000736296 00000 n 
-0000733411 00000 n 
-0000730694 00000 n 
-0000734562 00000 n 
-0000734626 00000 n 
-0000734690 00000 n 
-0000734754 00000 n 
-0000734818 00000 n 
-0000734882 00000 n 
-0000733603 00000 n 
-0000734947 00000 n 
-0000735011 00000 n 
-0000735075 00000 n 
-0000735139 00000 n 
-0000733761 00000 n 
-0000735333 00000 n 
-0000735397 00000 n 
-0000735461 00000 n 
-0000735524 00000 n 
-0000733919 00000 n 
-0000735589 00000 n 
-0000735653 00000 n 
-0000734075 00000 n 
-0000735718 00000 n 
-0000735781 00000 n 
-0000734234 00000 n 
-0000735975 00000 n 
-0000734394 00000 n 
-0000736168 00000 n 
-0000736232 00000 n 
-0000737753 00000 n 
-0000737237 00000 n 
-0000736398 00000 n 
-0000737363 00000 n 
-0000737427 00000 n 
-0000737491 00000 n 
-0000737557 00000 n 
-0000737623 00000 n 
-0000737687 00000 n 
-0000743146 00000 n 
-0000740470 00000 n 
-0000737897 00000 n 
-0000740946 00000 n 
-0000741138 00000 n 
-0000741202 00000 n 
-0000741267 00000 n 
-0000741588 00000 n 
-0000741780 00000 n 
-0000740626 00000 n 
-0000741844 00000 n 
-0000741910 00000 n 
-0000741976 00000 n 
-0000742042 00000 n 
-0000740785 00000 n 
-0000742108 00000 n 
-0000742173 00000 n 
-0000742238 00000 n 
-0000742303 00000 n 
-0000742368 00000 n 
-0000742434 00000 n 
-0000742500 00000 n 
-0000742564 00000 n 
-0000742628 00000 n 
-0000742693 00000 n 
-0000742758 00000 n 
-0000742952 00000 n 
-0000743016 00000 n 
-0001010758 00000 n 
-0001020814 00000 n 
-0000747779 00000 n 
-0000744983 00000 n 
-0000743290 00000 n 
-0000745655 00000 n 
-0000745913 00000 n 
-0000745148 00000 n 
-0000746106 00000 n 
-0000746169 00000 n 
-0000746235 00000 n 
-0000746301 00000 n 
-0000746367 00000 n 
-0000746431 00000 n 
-0000746495 00000 n 
-0000746559 00000 n 
-0000746623 00000 n 
-0000746689 00000 n 
-0000746752 00000 n 
-0000746816 00000 n 
-0000746880 00000 n 
-0000746944 00000 n 
-0000747008 00000 n 
-0000747074 00000 n 
-0000747138 00000 n 
-0000747202 00000 n 
-0000747266 00000 n 
-0000745315 00000 n 
-0000747459 00000 n 
-0000745490 00000 n 
-0000747523 00000 n 
-0000747587 00000 n 
-0000747650 00000 n 
-0000747715 00000 n 
-0000755199 00000 n 
-0000750117 00000 n 
-0000747937 00000 n 
-0000750594 00000 n 
-0000750916 00000 n 
-0000750980 00000 n 
-0000751046 00000 n 
-0000751110 00000 n 
-0000750273 00000 n 
-0000750435 00000 n 
-0000751174 00000 n 
-0000751239 00000 n 
-0000751303 00000 n 
-0000751368 00000 n 
-0000751432 00000 n 
-0000751496 00000 n 
-0000751561 00000 n 
-0000751626 00000 n 
-0000751691 00000 n 
-0000751757 00000 n 
-0000751823 00000 n 
-0000751888 00000 n 
-0000751953 00000 n 
-0000752018 00000 n 
-0000752082 00000 n 
-0000752146 00000 n 
-0000752210 00000 n 
-0000752275 00000 n 
-0000752340 00000 n 
-0000752405 00000 n 
-0000752469 00000 n 
-0000752533 00000 n 
-0000752598 00000 n 
-0000752662 00000 n 
-0000752726 00000 n 
-0000752791 00000 n 
-0000752855 00000 n 
-0000752921 00000 n 
-0000752987 00000 n 
-0000753053 00000 n 
-0000753118 00000 n 
-0000753183 00000 n 
-0000753247 00000 n 
-0000753311 00000 n 
-0000753377 00000 n 
-0000753441 00000 n 
-0000753507 00000 n 
-0000753573 00000 n 
-0000753639 00000 n 
-0000753705 00000 n 
-0000753771 00000 n 
-0000753837 00000 n 
-0000753903 00000 n 
-0000753969 00000 n 
-0000754035 00000 n 
-0000754100 00000 n 
-0000754165 00000 n 
-0000754229 00000 n 
-0000754293 00000 n 
-0000754359 00000 n 
-0000754424 00000 n 
-0000754489 00000 n 
-0000754554 00000 n 
-0000754618 00000 n 
-0000754682 00000 n 
-0000754747 00000 n 
-0000754812 00000 n 
-0000754877 00000 n 
-0000754942 00000 n 
-0000755006 00000 n 
-0000755070 00000 n 
-0000755135 00000 n 
-0001179294 00000 n 
-0001000912 00000 n 
-0000758104 00000 n 
-0000756768 00000 n 
-0000755343 00000 n 
-0000757066 00000 n 
-0000757130 00000 n 
-0000757196 00000 n 
-0000757262 00000 n 
-0000757328 00000 n 
-0000757392 00000 n 
-0000756915 00000 n 
-0000757713 00000 n 
-0000757777 00000 n 
-0000757843 00000 n 
-0000757908 00000 n 
-0000757974 00000 n 
-0000758038 00000 n 
-0000762830 00000 n 
-0000760704 00000 n 
-0000758234 00000 n 
-0000760830 00000 n 
-0000761151 00000 n 
-0000761215 00000 n 
-0000761281 00000 n 
-0000761345 00000 n 
-0000761539 00000 n 
-0000761602 00000 n 
-0000761665 00000 n 
-0000761729 00000 n 
-0000761793 00000 n 
-0000761858 00000 n 
-0000761924 00000 n 
-0000761990 00000 n 
-0000762056 00000 n 
-0000762122 00000 n 
-0000762186 00000 n 
-0000762250 00000 n 
-0000762315 00000 n 
-0000762379 00000 n 
-0000762444 00000 n 
-0000762508 00000 n 
-0000762572 00000 n 
-0000762637 00000 n 
-0000762701 00000 n 
-0000762766 00000 n 
-0000769592 00000 n 
-0000766301 00000 n 
-0000762960 00000 n 
-0000766427 00000 n 
-0000766491 00000 n 
-0000766556 00000 n 
-0000766622 00000 n 
-0000766688 00000 n 
-0000766881 00000 n 
-0000766945 00000 n 
-0000767009 00000 n 
-0000767073 00000 n 
-0000767137 00000 n 
-0000767202 00000 n 
-0000767267 00000 n 
-0000767332 00000 n 
-0000767396 00000 n 
-0000767460 00000 n 
-0000767525 00000 n 
-0000767590 00000 n 
-0000767654 00000 n 
-0000767719 00000 n 
-0000767784 00000 n 
-0000767848 00000 n 
-0000767913 00000 n 
-0000767978 00000 n 
-0000768042 00000 n 
-0000768107 00000 n 
-0000768172 00000 n 
-0000768235 00000 n 
-0000768300 00000 n 
-0000768365 00000 n 
-0000768429 00000 n 
-0000768494 00000 n 
-0000768559 00000 n 
-0000768623 00000 n 
-0000768688 00000 n 
-0000768753 00000 n 
-0000768817 00000 n 
-0000768882 00000 n 
-0000768947 00000 n 
-0000769011 00000 n 
-0000769076 00000 n 
-0000769141 00000 n 
-0000769205 00000 n 
-0000769270 00000 n 
-0000769335 00000 n 
-0000769399 00000 n 
-0000769464 00000 n 
-0000769529 00000 n 
-0000775929 00000 n 
-0000774565 00000 n 
-0000772055 00000 n 
-0000769694 00000 n 
-0000772365 00000 n 
-0000772493 00000 n 
-0000772558 00000 n 
-0000772623 00000 n 
-0000772686 00000 n 
-0000772751 00000 n 
-0000772816 00000 n 
-0000772880 00000 n 
-0000772945 00000 n 
-0000773010 00000 n 
-0000773074 00000 n 
-0000773139 00000 n 
-0000773204 00000 n 
-0000773270 00000 n 
-0000773336 00000 n 
-0000773400 00000 n 
-0000773464 00000 n 
-0000773529 00000 n 
-0000773594 00000 n 
-0000773658 00000 n 
-0000773723 00000 n 
-0000773788 00000 n 
-0000773852 00000 n 
-0000773917 00000 n 
-0000773982 00000 n 
-0000774046 00000 n 
-0000774111 00000 n 
-0000774305 00000 n 
-0000772202 00000 n 
-0000774369 00000 n 
-0000774435 00000 n 
-0000826104 00000 n 
-0000775782 00000 n 
-0000774667 00000 n 
-0000825525 00000 n 
-0000825589 00000 n 
-0000825653 00000 n 
-0000825782 00000 n 
-0000825846 00000 n 
-0000825912 00000 n 
-0000825976 00000 n 
-0000825364 00000 n 
-0000831065 00000 n 
-0000828613 00000 n 
-0000826257 00000 n 
-0000828739 00000 n 
-0000828868 00000 n 
-0000828932 00000 n 
-0000828996 00000 n 
-0000829062 00000 n 
-0000829128 00000 n 
-0000829194 00000 n 
-0000829258 00000 n 
-0000829322 00000 n 
-0000829386 00000 n 
-0000829451 00000 n 
-0000829516 00000 n 
-0000829580 00000 n 
-0000829645 00000 n 
-0000829710 00000 n 
-0000829774 00000 n 
-0000829839 00000 n 
-0000830032 00000 n 
-0000830096 00000 n 
-0000830288 00000 n 
-0000830352 00000 n 
-0000830416 00000 n 
-0000830479 00000 n 
-0000830545 00000 n 
-0000830609 00000 n 
-0000830675 00000 n 
-0000830739 00000 n 
-0000830805 00000 n 
-0000830869 00000 n 
-0000830935 00000 n 
-0000830999 00000 n 
-0001179419 00000 n 
-0000835603 00000 n 
-0000833801 00000 n 
-0000831167 00000 n 
-0000833927 00000 n 
-0000833991 00000 n 
-0000834184 00000 n 
-0000834248 00000 n 
-0000834314 00000 n 
-0000834378 00000 n 
-0000834443 00000 n 
-0000834507 00000 n 
-0000834700 00000 n 
-0000834764 00000 n 
-0000834830 00000 n 
-0000834896 00000 n 
-0000834960 00000 n 
-0000835155 00000 n 
-0000835347 00000 n 
-0000835411 00000 n 
-0000835475 00000 n 
-0000835539 00000 n 
-0000840788 00000 n 
-0000838671 00000 n 
-0000835719 00000 n 
-0000838981 00000 n 
-0000839045 00000 n 
-0000839237 00000 n 
-0000839300 00000 n 
-0000838818 00000 n 
-0000839365 00000 n 
-0000839429 00000 n 
-0000839495 00000 n 
-0000839560 00000 n 
-0000839884 00000 n 
-0000839948 00000 n 
-0000840014 00000 n 
-0000840078 00000 n 
-0000840142 00000 n 
-0000840206 00000 n 
-0000840271 00000 n 
-0000840337 00000 n 
-0000840403 00000 n 
-0000840467 00000 n 
-0000840531 00000 n 
-0000840597 00000 n 
-0000840662 00000 n 
-0000840726 00000 n 
-0000845507 00000 n 
-0000843897 00000 n 
-0000840904 00000 n 
-0000844023 00000 n 
-0000844087 00000 n 
-0000844152 00000 n 
-0000844217 00000 n 
-0000844281 00000 n 
-0000844346 00000 n 
-0000844412 00000 n 
-0000844476 00000 n 
-0000844540 00000 n 
-0000844605 00000 n 
-0000844670 00000 n 
-0000844734 00000 n 
-0000844799 00000 n 
-0000844863 00000 n 
-0000844928 00000 n 
-0000844994 00000 n 
-0000845058 00000 n 
-0000845250 00000 n 
-0000845314 00000 n 
-0000845380 00000 n 
-0000849702 00000 n 
-0000848163 00000 n 
-0000845623 00000 n 
-0000848289 00000 n 
-0000848418 00000 n 
-0000848482 00000 n 
-0000848545 00000 n 
-0000848609 00000 n 
-0000848673 00000 n 
-0000848736 00000 n 
-0000848802 00000 n 
-0000848867 00000 n 
-0000848933 00000 n 
-0000848997 00000 n 
-0000849191 00000 n 
-0000849254 00000 n 
-0000849318 00000 n 
-0000849382 00000 n 
-0000849575 00000 n 
-0000853471 00000 n 
-0000851805 00000 n 
-0000849818 00000 n 
-0000851931 00000 n 
-0000851995 00000 n 
-0000852124 00000 n 
-0000852317 00000 n 
-0000852507 00000 n 
-0000852700 00000 n 
-0000852893 00000 n 
-0000852957 00000 n 
-0000853150 00000 n 
-0000853343 00000 n 
-0000856998 00000 n 
-0000855585 00000 n 
-0000853573 00000 n 
-0000855711 00000 n 
-0000855775 00000 n 
-0000855904 00000 n 
-0000855968 00000 n 
-0000856034 00000 n 
-0000856098 00000 n 
-0000856291 00000 n 
-0000856355 00000 n 
-0000856548 00000 n 
-0000856741 00000 n 
-0000856804 00000 n 
-0000856870 00000 n 
-0001179544 00000 n 
-0000862690 00000 n 
-0000859924 00000 n 
-0000857100 00000 n 
-0000860050 00000 n 
-0000860179 00000 n 
-0000860243 00000 n 
-0000860309 00000 n 
-0000860375 00000 n 
-0000860440 00000 n 
-0000860633 00000 n 
-0000860825 00000 n 
-0000860888 00000 n 
-0000860951 00000 n 
-0000861015 00000 n 
-0000861080 00000 n 
-0000861144 00000 n 
-0000861208 00000 n 
-0000861272 00000 n 
-0000861337 00000 n 
-0000861401 00000 n 
-0000861466 00000 n 
-0000861530 00000 n 
-0000861595 00000 n 
-0000861658 00000 n 
-0000861723 00000 n 
-0000861787 00000 n 
-0000861852 00000 n 
-0000861916 00000 n 
-0000861981 00000 n 
-0000862045 00000 n 
-0000862110 00000 n 
-0000862174 00000 n 
-0000862368 00000 n 
-0000862432 00000 n 
-0000862495 00000 n 
-0000862560 00000 n 
-0000862626 00000 n 
-0000868375 00000 n 
-0000865856 00000 n 
-0000862806 00000 n 
-0000865982 00000 n 
-0000866046 00000 n 
-0000866110 00000 n 
-0000866176 00000 n 
-0000866240 00000 n 
-0000866306 00000 n 
-0000866372 00000 n 
-0000866436 00000 n 
-0000866502 00000 n 
-0000866566 00000 n 
-0000866630 00000 n 
-0000866694 00000 n 
-0000866759 00000 n 
-0000866822 00000 n 
-0000866887 00000 n 
-0000866953 00000 n 
-0000867017 00000 n 
-0000867082 00000 n 
-0000867148 00000 n 
-0000867211 00000 n 
-0000867276 00000 n 
-0000867341 00000 n 
-0000867405 00000 n 
-0000867469 00000 n 
-0000867534 00000 n 
-0000867598 00000 n 
-0000867662 00000 n 
-0000867726 00000 n 
-0000867792 00000 n 
-0000867857 00000 n 
-0000867923 00000 n 
-0000867987 00000 n 
-0000868051 00000 n 
-0000868117 00000 n 
-0000868181 00000 n 
-0000868247 00000 n 
-0000868311 00000 n 
-0000873299 00000 n 
-0000870355 00000 n 
-0000868491 00000 n 
-0000870655 00000 n 
-0000870719 00000 n 
-0000870783 00000 n 
-0000870847 00000 n 
-0000870913 00000 n 
-0000870979 00000 n 
-0000871174 00000 n 
-0000870502 00000 n 
-0000871367 00000 n 
-0000871431 00000 n 
-0000871497 00000 n 
-0000871692 00000 n 
-0000871756 00000 n 
-0000871820 00000 n 
-0000871886 00000 n 
-0000871950 00000 n 
-0000872014 00000 n 
-0000872078 00000 n 
-0000872143 00000 n 
-0000872207 00000 n 
-0000872271 00000 n 
-0000872336 00000 n 
-0000872400 00000 n 
-0000872464 00000 n 
-0000872529 00000 n 
-0000872593 00000 n 
-0000872657 00000 n 
-0000872722 00000 n 
-0000872786 00000 n 
-0000872850 00000 n 
-0000872915 00000 n 
-0000872977 00000 n 
-0000873041 00000 n 
-0000873106 00000 n 
-0000873170 00000 n 
-0000873234 00000 n 
-0000877594 00000 n 
-0000875290 00000 n 
-0000873401 00000 n 
-0000875608 00000 n 
-0000875736 00000 n 
-0000875800 00000 n 
-0000875864 00000 n 
-0000875929 00000 n 
-0000875993 00000 n 
-0000876058 00000 n 
-0000876122 00000 n 
-0000876186 00000 n 
-0000876251 00000 n 
-0000876315 00000 n 
-0000876379 00000 n 
-0000876444 00000 n 
-0000876507 00000 n 
-0000876571 00000 n 
-0000876636 00000 n 
-0000876700 00000 n 
-0000876764 00000 n 
-0000876829 00000 n 
-0000876891 00000 n 
-0000875437 00000 n 
-0000877083 00000 n 
-0000877274 00000 n 
-0000877338 00000 n 
-0000877402 00000 n 
-0000877466 00000 n 
-0000877530 00000 n 
-0000881683 00000 n 
-0000880403 00000 n 
-0000877710 00000 n 
-0000880529 00000 n 
-0000880658 00000 n 
-0000880722 00000 n 
-0000880786 00000 n 
-0000880850 00000 n 
-0000880914 00000 n 
-0000880978 00000 n 
-0000881170 00000 n 
-0000881234 00000 n 
-0000881298 00000 n 
-0000881362 00000 n 
-0000881426 00000 n 
-0000881619 00000 n 
-0000885167 00000 n 
-0000883952 00000 n 
-0000881799 00000 n 
-0000884078 00000 n 
-0000884142 00000 n 
-0000884206 00000 n 
-0000884399 00000 n 
-0000884463 00000 n 
-0000884527 00000 n 
-0000884591 00000 n 
-0000884655 00000 n 
-0000884719 00000 n 
-0000884782 00000 n 
-0000884846 00000 n 
-0000885039 00000 n 
-0000885103 00000 n 
-0001179669 00000 n 
-0000889464 00000 n 
-0000887871 00000 n 
-0000885269 00000 n 
-0000888368 00000 n 
-0000888432 00000 n 
-0000888498 00000 n 
-0000888564 00000 n 
-0000888027 00000 n 
-0000888628 00000 n 
-0000888693 00000 n 
-0000888195 00000 n 
-0000888886 00000 n 
-0000888949 00000 n 
-0000889013 00000 n 
-0000889206 00000 n 
-0000889270 00000 n 
-0000889334 00000 n 
-0000889398 00000 n 
-0000893796 00000 n 
-0000892411 00000 n 
-0000889580 00000 n 
-0000892710 00000 n 
-0000892774 00000 n 
-0000892838 00000 n 
-0000892902 00000 n 
-0000892965 00000 n 
-0000893157 00000 n 
-0000893221 00000 n 
-0000893285 00000 n 
-0000892558 00000 n 
-0000893349 00000 n 
-0000893411 00000 n 
-0000893475 00000 n 
-0000893539 00000 n 
-0000893603 00000 n 
-0000893667 00000 n 
-0000895115 00000 n 
-0000894669 00000 n 
-0000893912 00000 n 
-0000894795 00000 n 
-0000894924 00000 n 
-0000894988 00000 n 
-0000895051 00000 n 
-0000899955 00000 n 
-0000897503 00000 n 
-0000895231 00000 n 
-0000897818 00000 n 
-0000898139 00000 n 
-0000898203 00000 n 
-0000898269 00000 n 
-0000898333 00000 n 
-0000898398 00000 n 
-0000898464 00000 n 
-0000898528 00000 n 
-0000898593 00000 n 
-0000898659 00000 n 
-0000898724 00000 n 
-0000898788 00000 n 
-0000898981 00000 n 
-0000899045 00000 n 
-0000897650 00000 n 
-0000899237 00000 n 
-0000899301 00000 n 
-0000899367 00000 n 
-0000899433 00000 n 
-0000899499 00000 n 
-0000899563 00000 n 
-0000899629 00000 n 
-0000899693 00000 n 
-0000899759 00000 n 
-0000899825 00000 n 
-0000905027 00000 n 
-0000902832 00000 n 
-0000900099 00000 n 
-0000902958 00000 n 
-0000903022 00000 n 
-0000903151 00000 n 
-0000903215 00000 n 
-0000903279 00000 n 
-0000903344 00000 n 
-0000903410 00000 n 
-0000903473 00000 n 
-0000903536 00000 n 
-0000903600 00000 n 
-0000903663 00000 n 
-0000903729 00000 n 
-0000903793 00000 n 
-0000903857 00000 n 
-0000903923 00000 n 
-0000903987 00000 n 
-0000904051 00000 n 
-0000904115 00000 n 
-0000904179 00000 n 
-0000904245 00000 n 
-0000904311 00000 n 
-0000904377 00000 n 
-0000904442 00000 n 
-0000904508 00000 n 
-0000904574 00000 n 
-0000904640 00000 n 
-0000904833 00000 n 
-0000904897 00000 n 
-0000904961 00000 n 
-0000910148 00000 n 
-0000908278 00000 n 
-0000905185 00000 n 
-0000908404 00000 n 
-0000908468 00000 n 
-0000908532 00000 n 
-0000908596 00000 n 
-0000908660 00000 n 
-0000908724 00000 n 
-0000908790 00000 n 
-0000908985 00000 n 
-0000909049 00000 n 
-0000909115 00000 n 
-0000909179 00000 n 
-0000909245 00000 n 
-0000909309 00000 n 
-0000909374 00000 n 
-0000909438 00000 n 
-0000909502 00000 n 
-0000909566 00000 n 
-0000909630 00000 n 
-0000909695 00000 n 
-0000909759 00000 n 
-0000909823 00000 n 
-0000909889 00000 n 
-0000909953 00000 n 
-0000910018 00000 n 
-0001179794 00000 n 
-0000916128 00000 n 
-0000913680 00000 n 
-0000910278 00000 n 
-0000913806 00000 n 
-0000913870 00000 n 
-0000913999 00000 n 
-0000914063 00000 n 
-0000914127 00000 n 
-0000914191 00000 n 
-0000914255 00000 n 
-0000914319 00000 n 
-0000914385 00000 n 
-0000914449 00000 n 
-0000914513 00000 n 
-0000914577 00000 n 
-0000914641 00000 n 
-0000914707 00000 n 
-0000914773 00000 n 
-0000914839 00000 n 
-0000914903 00000 n 
-0000914967 00000 n 
-0000915031 00000 n 
-0000915095 00000 n 
-0000915159 00000 n 
-0000915223 00000 n 
-0000915287 00000 n 
-0000915351 00000 n 
-0000915415 00000 n 
-0000915480 00000 n 
-0000915544 00000 n 
-0000915608 00000 n 
-0000915672 00000 n 
-0000915738 00000 n 
-0000915804 00000 n 
-0000915866 00000 n 
-0000915930 00000 n 
-0000915996 00000 n 
-0000916062 00000 n 
-0000920006 00000 n 
-0000918658 00000 n 
-0000916258 00000 n 
-0000918784 00000 n 
-0000918848 00000 n 
-0000918912 00000 n 
-0000918978 00000 n 
-0000919042 00000 n 
-0000919106 00000 n 
-0000919170 00000 n 
-0000919363 00000 n 
-0000919427 00000 n 
-0000919619 00000 n 
-0000919683 00000 n 
-0000919749 00000 n 
-0000919813 00000 n 
-0000919877 00000 n 
-0000919941 00000 n 
-0000925476 00000 n 
-0000923279 00000 n 
-0000920136 00000 n 
-0000923405 00000 n 
-0000923469 00000 n 
-0000923533 00000 n 
-0000923597 00000 n 
-0000923662 00000 n 
-0000923727 00000 n 
-0000923792 00000 n 
-0000923858 00000 n 
-0000923922 00000 n 
-0000923986 00000 n 
-0000924051 00000 n 
-0000924117 00000 n 
-0000924183 00000 n 
-0000924247 00000 n 
-0000924313 00000 n 
-0000924379 00000 n 
-0000924445 00000 n 
-0000924509 00000 n 
-0000924575 00000 n 
-0000924639 00000 n 
-0000924703 00000 n 
-0000924767 00000 n 
-0000924831 00000 n 
-0000924895 00000 n 
-0000924959 00000 n 
-0000925023 00000 n 
-0000925089 00000 n 
-0000925153 00000 n 
-0000925219 00000 n 
-0000925285 00000 n 
-0000925350 00000 n 
-0000925414 00000 n 
-0000930275 00000 n 
-0000928210 00000 n 
-0000925592 00000 n 
-0000928336 00000 n 
-0000928400 00000 n 
-0000928464 00000 n 
-0000928528 00000 n 
-0000928594 00000 n 
-0000928658 00000 n 
-0000928721 00000 n 
-0000928787 00000 n 
-0000928851 00000 n 
-0000928916 00000 n 
-0000928980 00000 n 
-0000929044 00000 n 
-0000929108 00000 n 
-0000929171 00000 n 
-0000929235 00000 n 
-0000929299 00000 n 
-0000929363 00000 n 
-0000929429 00000 n 
-0000929495 00000 n 
-0000929561 00000 n 
-0000929625 00000 n 
-0000929691 00000 n 
-0000929757 00000 n 
-0000929822 00000 n 
-0000929886 00000 n 
-0000929951 00000 n 
-0000930017 00000 n 
-0000930083 00000 n 
-0000930148 00000 n 
-0000934572 00000 n 
-0000933218 00000 n 
-0000930377 00000 n 
-0000933344 00000 n 
-0000933408 00000 n 
-0000933537 00000 n 
-0000933601 00000 n 
-0000933666 00000 n 
-0000933728 00000 n 
-0000933794 00000 n 
-0000933860 00000 n 
-0000933923 00000 n 
-0000933988 00000 n 
-0000934054 00000 n 
-0000934120 00000 n 
-0000934184 00000 n 
-0000934250 00000 n 
-0000934314 00000 n 
-0000934378 00000 n 
-0000934444 00000 n 
-0000934508 00000 n 
-0000938823 00000 n 
-0000937032 00000 n 
-0000934702 00000 n 
-0000937660 00000 n 
-0000937724 00000 n 
-0000937788 00000 n 
-0000937854 00000 n 
-0000937920 00000 n 
-0000938242 00000 n 
-0000937197 00000 n 
-0000937348 00000 n 
-0000937504 00000 n 
-0000938434 00000 n 
-0000938498 00000 n 
-0000938562 00000 n 
-0000938628 00000 n 
-0000938693 00000 n 
-0000938757 00000 n 
-0001179919 00000 n 
-0000941730 00000 n 
-0000940378 00000 n 
-0000938953 00000 n 
-0000940504 00000 n 
-0000940568 00000 n 
-0000940632 00000 n 
-0000940827 00000 n 
-0000940891 00000 n 
-0000940955 00000 n 
-0000941020 00000 n 
-0000941086 00000 n 
-0000941277 00000 n 
-0000941341 00000 n 
-0000941536 00000 n 
-0000941600 00000 n 
-0000941664 00000 n 
-0000946760 00000 n 
-0000944353 00000 n 
-0000941832 00000 n 
-0000944829 00000 n 
-0000945021 00000 n 
-0000945214 00000 n 
-0000945278 00000 n 
-0000945344 00000 n 
-0000945410 00000 n 
-0000944509 00000 n 
-0000944669 00000 n 
-0000945474 00000 n 
-0000945539 00000 n 
-0000945603 00000 n 
-0000945669 00000 n 
-0000945733 00000 n 
-0000945929 00000 n 
-0000945993 00000 n 
-0000946058 00000 n 
-0000946124 00000 n 
-0000946187 00000 n 
-0000946377 00000 n 
-0000946441 00000 n 
-0000946505 00000 n 
-0000946569 00000 n 
-0000946634 00000 n 
-0000946697 00000 n 
-0000950663 00000 n 
-0000948728 00000 n 
-0000946904 00000 n 
-0000948854 00000 n 
-0000948918 00000 n 
-0000949113 00000 n 
-0000949177 00000 n 
-0000949240 00000 n 
-0000949304 00000 n 
-0000949370 00000 n 
-0000949434 00000 n 
-0000949498 00000 n 
-0000949562 00000 n 
-0000949756 00000 n 
-0000949820 00000 n 
-0000949886 00000 n 
-0000949950 00000 n 
-0000950014 00000 n 
-0000950080 00000 n 
-0000950145 00000 n 
-0000950211 00000 n 
-0000950275 00000 n 
-0000950339 00000 n 
-0000950534 00000 n 
-0000950598 00000 n 
-0000954584 00000 n 
-0000952974 00000 n 
-0000950807 00000 n 
-0000953100 00000 n 
-0000953164 00000 n 
-0000953228 00000 n 
-0000953294 00000 n 
-0000953358 00000 n 
-0000953422 00000 n 
-0000953486 00000 n 
-0000953550 00000 n 
-0000953614 00000 n 
-0000953680 00000 n 
-0000953746 00000 n 
-0000953810 00000 n 
-0000953873 00000 n 
-0000953937 00000 n 
-0000954001 00000 n 
-0000954066 00000 n 
-0000954132 00000 n 
-0000954196 00000 n 
-0000954262 00000 n 
-0000954457 00000 n 
-0000954520 00000 n 
-0000957984 00000 n 
-0000956577 00000 n 
-0000954700 00000 n 
-0000956882 00000 n 
-0000956946 00000 n 
-0000957010 00000 n 
-0000957076 00000 n 
-0000957271 00000 n 
-0000957334 00000 n 
-0000957398 00000 n 
-0000957464 00000 n 
-0000956724 00000 n 
-0000957660 00000 n 
-0000957724 00000 n 
-0000957788 00000 n 
-0000957854 00000 n 
-0000957918 00000 n 
-0000964333 00000 n 
-0000961154 00000 n 
-0000958114 00000 n 
-0000961280 00000 n 
-0000961472 00000 n 
-0000961536 00000 n 
-0000961732 00000 n 
-0000961796 00000 n 
-0000961862 00000 n 
-0000961928 00000 n 
-0000961994 00000 n 
-0000962060 00000 n 
-0000962124 00000 n 
-0000962190 00000 n 
-0000962254 00000 n 
-0000962318 00000 n 
-0000962382 00000 n 
-0000962448 00000 n 
-0000962512 00000 n 
-0000962576 00000 n 
-0000962642 00000 n 
-0000962708 00000 n 
-0000962774 00000 n 
-0000962840 00000 n 
-0000962906 00000 n 
-0000962972 00000 n 
-0000963036 00000 n 
-0000963102 00000 n 
-0000963166 00000 n 
-0000963230 00000 n 
-0000963296 00000 n 
-0000963360 00000 n 
-0000963425 00000 n 
-0000963489 00000 n 
-0000963555 00000 n 
-0000963751 00000 n 
-0000963815 00000 n 
-0000963881 00000 n 
-0000963947 00000 n 
-0000964011 00000 n 
-0000964076 00000 n 
-0000964141 00000 n 
-0000964205 00000 n 
-0000964269 00000 n 
-0001180044 00000 n 
-0000968529 00000 n 
-0000966146 00000 n 
-0000964477 00000 n 
-0000966464 00000 n 
-0000966787 00000 n 
-0000966851 00000 n 
-0000966915 00000 n 
-0000966979 00000 n 
-0000967043 00000 n 
-0000967107 00000 n 
-0000967171 00000 n 
-0000967235 00000 n 
-0000967299 00000 n 
-0000967363 00000 n 
-0000967428 00000 n 
-0000967492 00000 n 
-0000967558 00000 n 
-0000967624 00000 n 
-0000966293 00000 n 
-0000967818 00000 n 
-0000967881 00000 n 
-0000967945 00000 n 
-0000968010 00000 n 
-0000968075 00000 n 
-0000968139 00000 n 
-0000968203 00000 n 
-0000968269 00000 n 
-0000968335 00000 n 
-0000968399 00000 n 
-0000968463 00000 n 
-0000971165 00000 n 
-0000969286 00000 n 
-0000968659 00000 n 
-0000969412 00000 n 
-0000969476 00000 n 
-0000969542 00000 n 
-0000969606 00000 n 
-0000969669 00000 n 
-0000969735 00000 n 
-0000969801 00000 n 
-0000969865 00000 n 
-0000969929 00000 n 
-0000969995 00000 n 
-0000970061 00000 n 
-0000970125 00000 n 
-0000970189 00000 n 
-0000970255 00000 n 
-0000970321 00000 n 
-0000970385 00000 n 
-0000970449 00000 n 
-0000970515 00000 n 
-0000970581 00000 n 
-0000970645 00000 n 
-0000970709 00000 n 
-0000970775 00000 n 
-0000970841 00000 n 
-0000970905 00000 n 
-0000970969 00000 n 
-0000971035 00000 n 
-0000971101 00000 n 
-0000974065 00000 n 
-0000971990 00000 n 
-0000971253 00000 n 
-0000972116 00000 n 
-0000972180 00000 n 
-0000972244 00000 n 
-0000972310 00000 n 
-0000972376 00000 n 
-0000972440 00000 n 
-0000972504 00000 n 
-0000972570 00000 n 
-0000972636 00000 n 
-0000972700 00000 n 
-0000972764 00000 n 
-0000972830 00000 n 
-0000973026 00000 n 
-0000973090 00000 n 
-0000973154 00000 n 
-0000973220 00000 n 
-0000973285 00000 n 
-0000973349 00000 n 
-0000973413 00000 n 
-0000973479 00000 n 
-0000973545 00000 n 
-0000973609 00000 n 
-0000973673 00000 n 
-0000973739 00000 n 
-0000973805 00000 n 
-0000973869 00000 n 
-0000973933 00000 n 
-0000973999 00000 n 
-0000975392 00000 n 
-0000974683 00000 n 
-0000974167 00000 n 
-0000974809 00000 n 
-0000974873 00000 n 
-0000974937 00000 n 
-0000975001 00000 n 
-0000975067 00000 n 
-0000975133 00000 n 
-0000975197 00000 n 
-0000975261 00000 n 
-0000975326 00000 n 
-0000979489 00000 n 
-0000978148 00000 n 
-0000975480 00000 n 
-0000978274 00000 n 
-0000978465 00000 n 
-0000978529 00000 n 
-0000978593 00000 n 
-0000978785 00000 n 
-0000978849 00000 n 
-0000978913 00000 n 
-0000979105 00000 n 
-0000979169 00000 n 
-0000979233 00000 n 
-0000979297 00000 n 
-0000979361 00000 n 
-0000979425 00000 n 
-0000983552 00000 n 
-0000982655 00000 n 
-0000979591 00000 n 
-0000982781 00000 n 
-0000982845 00000 n 
-0000982909 00000 n 
-0000983103 00000 n 
-0000983167 00000 n 
-0000983360 00000 n 
-0000983424 00000 n 
-0000983488 00000 n 
-0001180169 00000 n 
-0000989271 00000 n 
-0000986829 00000 n 
-0000983654 00000 n 
-0000986955 00000 n 
-0000987019 00000 n 
-0000987083 00000 n 
-0000987277 00000 n 
-0000987341 00000 n 
-0000987405 00000 n 
-0000987468 00000 n 
-0000987533 00000 n 
-0000987597 00000 n 
-0000987662 00000 n 
-0000987726 00000 n 
-0000987791 00000 n 
-0000987855 00000 n 
-0000987920 00000 n 
-0000987983 00000 n 
-0000988048 00000 n 
-0000988112 00000 n 
-0000988177 00000 n 
-0000988241 00000 n 
-0000988306 00000 n 
-0000988370 00000 n 
-0000988435 00000 n 
-0000988499 00000 n 
-0000988564 00000 n 
-0000988628 00000 n 
-0000988693 00000 n 
-0000988756 00000 n 
-0000988821 00000 n 
-0000988885 00000 n 
-0000988950 00000 n 
-0000989014 00000 n 
-0000989079 00000 n 
-0000989143 00000 n 
-0000989207 00000 n 
-0000993115 00000 n 
-0000992024 00000 n 
-0000989373 00000 n 
-0000992150 00000 n 
-0000992214 00000 n 
-0000992278 00000 n 
-0000992472 00000 n 
-0000992536 00000 n 
-0000992600 00000 n 
-0000992794 00000 n 
-0000992858 00000 n 
-0000993051 00000 n 
-0000997009 00000 n 
-0000995724 00000 n 
-0000993217 00000 n 
-0000995850 00000 n 
-0000995914 00000 n 
-0000996108 00000 n 
-0000996302 00000 n 
-0000996494 00000 n 
-0000996558 00000 n 
-0000996624 00000 n 
-0000996818 00000 n 
-0000996882 00000 n 
-0000996945 00000 n 
-0000998274 00000 n 
-0000997956 00000 n 
-0000997111 00000 n 
-0000998082 00000 n 
-0000998146 00000 n 
-0000998210 00000 n 
-0001004077 00000 n 
-0001000284 00000 n 
-0000998362 00000 n 
-0001000590 00000 n 
-0001000783 00000 n 
-0001001040 00000 n 
-0001001104 00000 n 
-0001001168 00000 n 
-0001001234 00000 n 
-0001001299 00000 n 
-0001001428 00000 n 
-0001001558 00000 n 
-0001001622 00000 n 
-0001001686 00000 n 
-0001001751 00000 n 
-0001001817 00000 n 
-0001001881 00000 n 
-0001002011 00000 n 
-0001002075 00000 n 
-0001002139 00000 n 
-0001002203 00000 n 
-0001002267 00000 n 
-0001002333 00000 n 
-0001002397 00000 n 
-0001002461 00000 n 
-0001002525 00000 n 
-0001002589 00000 n 
-0001002653 00000 n 
-0001002717 00000 n 
-0001002781 00000 n 
-0001002847 00000 n 
-0001002913 00000 n 
-0001002977 00000 n 
-0001003041 00000 n 
-0001003105 00000 n 
-0001003169 00000 n 
-0001003235 00000 n 
-0001003301 00000 n 
-0001003366 00000 n 
-0001003431 00000 n 
-0001003496 00000 n 
-0001003561 00000 n 
-0001003627 00000 n 
-0001003691 00000 n 
-0001003755 00000 n 
-0001003819 00000 n 
-0001003883 00000 n 
-0001003949 00000 n 
-0001000431 00000 n 
-0001004013 00000 n 
-0001008577 00000 n 
-0001005742 00000 n 
-0001004207 00000 n 
-0001005868 00000 n 
-0001005997 00000 n 
-0001006126 00000 n 
-0001006190 00000 n 
-0001006254 00000 n 
-0001006320 00000 n 
-0001006384 00000 n 
-0001006449 00000 n 
-0001006579 00000 n 
-0001006643 00000 n 
-0001006837 00000 n 
-0001006901 00000 n 
-0001006965 00000 n 
-0001007223 00000 n 
-0001007286 00000 n 
-0001007350 00000 n 
-0001007414 00000 n 
-0001007479 00000 n 
-0001007609 00000 n 
-0001007673 00000 n 
-0001007866 00000 n 
-0001007930 00000 n 
-0001007994 00000 n 
-0001008058 00000 n 
-0001008123 00000 n 
-0001008253 00000 n 
-0001008383 00000 n 
-0001008447 00000 n 
-0001008511 00000 n 
-0001180294 00000 n 
-0001012373 00000 n 
-0001010179 00000 n 
-0001008707 00000 n 
-0001010305 00000 n 
-0001010369 00000 n 
-0001010433 00000 n 
-0001010499 00000 n 
-0001010563 00000 n 
-0001010629 00000 n 
-0001010888 00000 n 
-0001010951 00000 n 
-0001011015 00000 n 
-0001011081 00000 n 
-0001011146 00000 n 
-0001011276 00000 n 
-0001011340 00000 n 
-0001011404 00000 n 
-0001011533 00000 n 
-0001011662 00000 n 
-0001011726 00000 n 
-0001011790 00000 n 
-0001011856 00000 n 
-0001011922 00000 n 
-0001011987 00000 n 
-0001012115 00000 n 
-0001012245 00000 n 
-0001012309 00000 n 
-0001017250 00000 n 
-0001014125 00000 n 
-0001012503 00000 n 
-0001014602 00000 n 
-0001014731 00000 n 
-0001014861 00000 n 
-0001014925 00000 n 
-0001014989 00000 n 
-0001015055 00000 n 
-0001015120 00000 n 
-0001015186 00000 n 
-0001015252 00000 n 
-0001015317 00000 n 
-0001015446 00000 n 
-0001015510 00000 n 
-0001014281 00000 n 
-0001015573 00000 n 
-0001015639 00000 n 
-0001015703 00000 n 
-0001015767 00000 n 
-0001015831 00000 n 
-0001015895 00000 n 
-0001015961 00000 n 
-0001016025 00000 n 
-0001016089 00000 n 
-0001016153 00000 n 
-0001016219 00000 n 
-0001016285 00000 n 
-0001016349 00000 n 
-0001016413 00000 n 
-0001016477 00000 n 
-0001014440 00000 n 
-0001016543 00000 n 
-0001016801 00000 n 
-0001016865 00000 n 
-0001016929 00000 n 
-0001017123 00000 n 
-0001017186 00000 n 
-0001020107 00000 n 
-0001021137 00000 n 
-0001018752 00000 n 
-0001017366 00000 n 
-0001018878 00000 n 
-0001018942 00000 n 
-0001019071 00000 n 
-0001019135 00000 n 
-0001019199 00000 n 
-0001019264 00000 n 
-0001019393 00000 n 
-0001019522 00000 n 
-0001019586 00000 n 
-0001019650 00000 n 
-0001019714 00000 n 
-0001019780 00000 n 
-0001019846 00000 n 
-0001019912 00000 n 
-0001019978 00000 n 
-0001020237 00000 n 
-0001020301 00000 n 
-0001020364 00000 n 
-0001020492 00000 n 
-0001020556 00000 n 
-0001020620 00000 n 
-0001020686 00000 n 
-0001020944 00000 n 
-0001021008 00000 n 
-0001021072 00000 n 
-0001025817 00000 n 
-0001023295 00000 n 
-0001021239 00000 n 
-0001023421 00000 n 
-0001023485 00000 n 
-0001023549 00000 n 
-0001023679 00000 n 
-0001023743 00000 n 
-0001023807 00000 n 
-0001023871 00000 n 
-0001023937 00000 n 
-0001024003 00000 n 
-0001024069 00000 n 
-0001024135 00000 n 
-0001024201 00000 n 
-0001024266 00000 n 
-0001024331 00000 n 
-0001024397 00000 n 
-0001024463 00000 n 
-0001024591 00000 n 
-0001024721 00000 n 
-0001024785 00000 n 
-0001024849 00000 n 
-0001024915 00000 n 
-0001025045 00000 n 
-0001025109 00000 n 
-0001025173 00000 n 
-0001025302 00000 n 
-0001025432 00000 n 
-0001025496 00000 n 
-0001025559 00000 n 
-0001025623 00000 n 
-0001025687 00000 n 
-0001025751 00000 n 
-0001028657 00000 n 
-0001028624 00000 n 
-0001028755 00000 n 
-0001046739 00000 n 
-0001057341 00000 n 
-0001068001 00000 n 
-0001081161 00000 n 
-0001102541 00000 n 
-0001121640 00000 n 
-0001139325 00000 n 
-0001162245 00000 n 
-0001177321 00000 n 
-0001180410 00000 n 
-0001180536 00000 n 
-0001180662 00000 n 
-0001180788 00000 n 
-0001180887 00000 n 
-0001180979 00000 n 
-0001211976 00000 n 
-0001272116 00000 n 
-0001272157 00000 n 
-0001272197 00000 n 
-0001272332 00000 n 
+0000031022 00000 n 
+0001161622 00000 n 
+0001139776 00000 n 
+0001161445 00000 n 
+0000104880 00000 n 
+0000089219 00000 n 
+0000031174 00000 n 
+0000104754 00000 n 
+0000090167 00000 n 
+0001138830 00000 n 
+0001122039 00000 n 
+0001138653 00000 n 
+0000090319 00000 n 
+0000090471 00000 n 
+0000090627 00000 n 
+0000090783 00000 n 
+0000090940 00000 n 
+0000091097 00000 n 
+0000091255 00000 n 
+0000091413 00000 n 
+0000091567 00000 n 
+0000091721 00000 n 
+0000091879 00000 n 
+0000092037 00000 n 
+0000092201 00000 n 
+0000092366 00000 n 
+0000092524 00000 n 
+0000092682 00000 n 
+0000092842 00000 n 
+0000093001 00000 n 
+0000093165 00000 n 
+0000093328 00000 n 
+0000093489 00000 n 
+0000093649 00000 n 
+0000093807 00000 n 
+0000093964 00000 n 
+0000094125 00000 n 
+0000094286 00000 n 
+0000094451 00000 n 
+0000094615 00000 n 
+0000094777 00000 n 
+0000094938 00000 n 
+0000095105 00000 n 
+0000095271 00000 n 
+0000095444 00000 n 
+0000095616 00000 n 
+0000095788 00000 n 
+0000095959 00000 n 
+0000096125 00000 n 
+0000096290 00000 n 
+0000096464 00000 n 
+0000096637 00000 n 
+0000096809 00000 n 
+0000096980 00000 n 
+0000097149 00000 n 
+0000097317 00000 n 
+0000097489 00000 n 
+0000097660 00000 n 
+0000097833 00000 n 
+0000098005 00000 n 
+0000098180 00000 n 
+0000098354 00000 n 
+0000098513 00000 n 
+0000098671 00000 n 
+0000098847 00000 n 
+0000099023 00000 n 
+0000099183 00000 n 
+0000099344 00000 n 
+0000099502 00000 n 
+0000099660 00000 n 
+0000099823 00000 n 
+0000099986 00000 n 
+0000100148 00000 n 
+0000100311 00000 n 
+0000100464 00000 n 
+0000100617 00000 n 
+0000100775 00000 n 
+0000100933 00000 n 
+0000101086 00000 n 
+0000101240 00000 n 
+0000101391 00000 n 
+0000101542 00000 n 
+0000101694 00000 n 
+0000101846 00000 n 
+0000102005 00000 n 
+0000102164 00000 n 
+0000102318 00000 n 
+0000102472 00000 n 
+0000102643 00000 n 
+0000102814 00000 n 
+0000102971 00000 n 
+0000103130 00000 n 
+0000103281 00000 n 
+0000103432 00000 n 
+0000103605 00000 n 
+0000103778 00000 n 
+0000103945 00000 n 
+0000104112 00000 n 
+0000104273 00000 n 
+0000104435 00000 n 
+0000104594 00000 n 
+0001121193 00000 n 
+0001102968 00000 n 
+0001121012 00000 n 
+0000438521 00000 n 
+0000438648 00000 n 
+0000439031 00000 n 
+0000439349 00000 n 
+0000443448 00000 n 
+0000446486 00000 n 
+0000452797 00000 n 
+0000452924 00000 n 
+0000454140 00000 n 
+0000456396 00000 n 
+0000456587 00000 n 
+0000457296 00000 n 
+0000457746 00000 n 
+0000461536 00000 n 
+0000461988 00000 n 
+0000462830 00000 n 
+0000475740 00000 n 
+0000475997 00000 n 
+0000476188 00000 n 
+0000478864 00000 n 
+0000479055 00000 n 
+0000479247 00000 n 
+0000479439 00000 n 
+0000479696 00000 n 
+0000479887 00000 n 
+0000480077 00000 n 
+0000484061 00000 n 
+0000484709 00000 n 
+0000484967 00000 n 
+0000490508 00000 n 
+0000490701 00000 n 
+0000490958 00000 n 
+0000499366 00000 n 
+0000501375 00000 n 
+0000505236 00000 n 
+0000505751 00000 n 
+0000510056 00000 n 
+0000521612 00000 n 
+0000523498 00000 n 
+0000527507 00000 n 
+0000527700 00000 n 
+0000528536 00000 n 
+0000529048 00000 n 
+0000532873 00000 n 
+0000533782 00000 n 
+0000178562 00000 n 
+0000162408 00000 n 
+0000104996 00000 n 
+0000178498 00000 n 
+0000163392 00000 n 
+0000163550 00000 n 
+0000163709 00000 n 
+0000163865 00000 n 
+0000164021 00000 n 
+0000164178 00000 n 
+0000164335 00000 n 
+0000164501 00000 n 
+0000164667 00000 n 
+0000164833 00000 n 
+0000164999 00000 n 
+0000165157 00000 n 
+0000165315 00000 n 
+0000165473 00000 n 
+0000165631 00000 n 
+0000165788 00000 n 
+0000165945 00000 n 
+0000166108 00000 n 
+0000166271 00000 n 
+0000166434 00000 n 
+0000166597 00000 n 
+0000166753 00000 n 
+0000166909 00000 n 
+0000167063 00000 n 
+0000167218 00000 n 
+0000167369 00000 n 
+0000167520 00000 n 
+0000167670 00000 n 
+0000167820 00000 n 
+0000167971 00000 n 
+0000168122 00000 n 
+0000168273 00000 n 
+0000168424 00000 n 
+0000168598 00000 n 
+0000168772 00000 n 
+0000168923 00000 n 
+0000169074 00000 n 
+0000169225 00000 n 
+0000169376 00000 n 
+0000169527 00000 n 
+0000169678 00000 n 
+0000169831 00000 n 
+0000169984 00000 n 
+0000170138 00000 n 
+0000170293 00000 n 
+0000170454 00000 n 
+0000170615 00000 n 
+0000170775 00000 n 
+0000170936 00000 n 
+0000171100 00000 n 
+0000171264 00000 n 
+0000171423 00000 n 
+0000171582 00000 n 
+0000171745 00000 n 
+0000171908 00000 n 
+0000172071 00000 n 
+0000172234 00000 n 
+0000172400 00000 n 
+0000172566 00000 n 
+0000172734 00000 n 
+0000172902 00000 n 
+0000173062 00000 n 
+0000173224 00000 n 
+0000173381 00000 n 
+0000173539 00000 n 
+0000173708 00000 n 
+0000173878 00000 n 
+0000174046 00000 n 
+0000174214 00000 n 
+0000174387 00000 n 
+0000174560 00000 n 
+0000174724 00000 n 
+0000174889 00000 n 
+0000175061 00000 n 
+0000175233 00000 n 
+0000175396 00000 n 
+0000175559 00000 n 
+0000175721 00000 n 
+0000175884 00000 n 
+0000176055 00000 n 
+0000176226 00000 n 
+0000176394 00000 n 
+0000176562 00000 n 
+0000176716 00000 n 
+0000176870 00000 n 
+0000177026 00000 n 
+0000177182 00000 n 
+0000177341 00000 n 
+0000177500 00000 n 
+0000177665 00000 n 
+0000177830 00000 n 
+0000177996 00000 n 
+0000178162 00000 n 
+0000178330 00000 n 
+0000537505 00000 n 
+0000537828 00000 n 
+0000538087 00000 n 
+0000538540 00000 n 
+0000542368 00000 n 
+0000542561 00000 n 
+0000547182 00000 n 
+0000547375 00000 n 
+0000547568 00000 n 
+0000547891 00000 n 
+0000552217 00000 n 
+0000552540 00000 n 
+0000552669 00000 n 
+0000552862 00000 n 
+0000551831 00000 n 
+0000559326 00000 n 
+0000560370 00000 n 
+0000560759 00000 n 
+0000564177 00000 n 
+0000564759 00000 n 
+0000565408 00000 n 
+0000569610 00000 n 
+0000570059 00000 n 
+0000575185 00000 n 
+0000576150 00000 n 
+0000576406 00000 n 
+0000579689 00000 n 
+0000584189 00000 n 
+0000585225 00000 n 
+0000589686 00000 n 
+0000592511 00000 n 
+0000592639 00000 n 
+0000592831 00000 n 
+0000603225 00000 n 
+0000603418 00000 n 
+0000604192 00000 n 
+0000604385 00000 n 
+0000607646 00000 n 
+0000608286 00000 n 
+0000608544 00000 n 
+0000608803 00000 n 
+0000613569 00000 n 
+0000622003 00000 n 
+0000623548 00000 n 
+0000627709 00000 n 
+0000627901 00000 n 
+0000628093 00000 n 
+0000254971 00000 n 
+0000238449 00000 n 
+0000178664 00000 n 
+0000254907 00000 n 
+0000239451 00000 n 
+0000239617 00000 n 
+0000239783 00000 n 
+0000239938 00000 n 
+0000240095 00000 n 
+0000240254 00000 n 
+0000240413 00000 n 
+0000240572 00000 n 
+0000240731 00000 n 
+0000240898 00000 n 
+0000241065 00000 n 
+0000241227 00000 n 
+0000241389 00000 n 
+0000241547 00000 n 
+0000241705 00000 n 
+0000241873 00000 n 
+0000242042 00000 n 
+0000242208 00000 n 
+0000242374 00000 n 
+0000242535 00000 n 
+0000242697 00000 n 
+0000242852 00000 n 
+0000243008 00000 n 
+0000243170 00000 n 
+0000243332 00000 n 
+0000243493 00000 n 
+0000243654 00000 n 
+0000243826 00000 n 
+0000243998 00000 n 
+0000244168 00000 n 
+0000244338 00000 n 
+0000244508 00000 n 
+0000244678 00000 n 
+0000244835 00000 n 
+0000244993 00000 n 
+0000245148 00000 n 
+0000245304 00000 n 
+0000245461 00000 n 
+0000245619 00000 n 
+0000245780 00000 n 
+0000245942 00000 n 
+0000246108 00000 n 
+0000246274 00000 n 
+0000246433 00000 n 
+0000246592 00000 n 
+0000246750 00000 n 
+0000246908 00000 n 
+0000247066 00000 n 
+0000247224 00000 n 
+0000247382 00000 n 
+0000247540 00000 n 
+0000247708 00000 n 
+0000247876 00000 n 
+0000248037 00000 n 
+0000248198 00000 n 
+0000248357 00000 n 
+0000248516 00000 n 
+0000248674 00000 n 
+0000248832 00000 n 
+0000248991 00000 n 
+0000249150 00000 n 
+0000249310 00000 n 
+0000249470 00000 n 
+0000249625 00000 n 
+0000249781 00000 n 
+0000249941 00000 n 
+0000250102 00000 n 
+0000250267 00000 n 
+0000250432 00000 n 
+0000250598 00000 n 
+0000250764 00000 n 
+0000250932 00000 n 
+0000251100 00000 n 
+0000251256 00000 n 
+0000251413 00000 n 
+0000251577 00000 n 
+0000251741 00000 n 
+0000251907 00000 n 
+0000252073 00000 n 
+0000252238 00000 n 
+0000252405 00000 n 
+0000252558 00000 n 
+0000252712 00000 n 
+0000252864 00000 n 
+0000253017 00000 n 
+0000253170 00000 n 
+0000253324 00000 n 
+0000253483 00000 n 
+0000253642 00000 n 
+0000253801 00000 n 
+0000253960 00000 n 
+0000254124 00000 n 
+0000254288 00000 n 
+0000254440 00000 n 
+0000254592 00000 n 
+0000254749 00000 n 
+0000631199 00000 n 
+0000631392 00000 n 
+0000631521 00000 n 
+0000631842 00000 n 
+0000631971 00000 n 
+0000635582 00000 n 
+0000636941 00000 n 
+0000644192 00000 n 
+0000647471 00000 n 
+0000648181 00000 n 
+0000648696 00000 n 
+0000653836 00000 n 
+0000658421 00000 n 
+0000658614 00000 n 
+0000658998 00000 n 
+0000664483 00000 n 
+0000671258 00000 n 
+0000672751 00000 n 
+0000675906 00000 n 
+0000676866 00000 n 
+0000677257 00000 n 
+0000680966 00000 n 
+0000681095 00000 n 
+0000682385 00000 n 
+0000685947 00000 n 
+0000686139 00000 n 
+0000687502 00000 n 
+0000687957 00000 n 
+0000688411 00000 n 
+0000691779 00000 n 
+0000702873 00000 n 
+0000703524 00000 n 
+0000703845 00000 n 
+0000707849 00000 n 
+0000709725 00000 n 
+0000709916 00000 n 
+0000710109 00000 n 
+0000713036 00000 n 
+0000713359 00000 n 
+0000713936 00000 n 
+0000714193 00000 n 
+0000718454 00000 n 
+0000718967 00000 n 
+0000724368 00000 n 
+0000728971 00000 n 
+0000735201 00000 n 
+0000735843 00000 n 
+0000736036 00000 n 
+0000330533 00000 n 
+0000314304 00000 n 
+0000255059 00000 n 
+0000330469 00000 n 
+0000315288 00000 n 
+0000315441 00000 n 
+0000315596 00000 n 
+0000315754 00000 n 
+0000315913 00000 n 
+0000316077 00000 n 
+0000316241 00000 n 
+0000316409 00000 n 
+0000316577 00000 n 
+0001101926 00000 n 
+0001081649 00000 n 
+0001101751 00000 n 
+0000316743 00000 n 
+0000316909 00000 n 
+0000317070 00000 n 
+0000317232 00000 n 
+0000317401 00000 n 
+0000317570 00000 n 
+0000317737 00000 n 
+0000317904 00000 n 
+0000318074 00000 n 
+0000318244 00000 n 
+0000318408 00000 n 
+0000318573 00000 n 
+0000318746 00000 n 
+0000318919 00000 n 
+0000319083 00000 n 
+0000319248 00000 n 
+0000319421 00000 n 
+0000319594 00000 n 
+0000319746 00000 n 
+0000319899 00000 n 
+0000320057 00000 n 
+0000320216 00000 n 
+0000320369 00000 n 
+0000320523 00000 n 
+0000320678 00000 n 
+0000320834 00000 n 
+0000320990 00000 n 
+0000321147 00000 n 
+0000321299 00000 n 
+0000321452 00000 n 
+0000321606 00000 n 
+0000321760 00000 n 
+0000321916 00000 n 
+0000322072 00000 n 
+0000322228 00000 n 
+0000322384 00000 n 
+0000322545 00000 n 
+0000322706 00000 n 
+0000322865 00000 n 
+0000323024 00000 n 
+0000323187 00000 n 
+0000323350 00000 n 
+0000323502 00000 n 
+0000323654 00000 n 
+0000323821 00000 n 
+0000323988 00000 n 
+0000324145 00000 n 
+0000324303 00000 n 
+0000324461 00000 n 
+0000324620 00000 n 
+0000324778 00000 n 
+0000324936 00000 n 
+0000325094 00000 n 
+0000325253 00000 n 
+0000325412 00000 n 
+0000325571 00000 n 
+0000325735 00000 n 
+0000325899 00000 n 
+0000326062 00000 n 
+0000326226 00000 n 
+0000326393 00000 n 
+0000326560 00000 n 
+0000326728 00000 n 
+0000326896 00000 n 
+0000327059 00000 n 
+0000327222 00000 n 
+0000327392 00000 n 
+0000327562 00000 n 
+0000327733 00000 n 
+0000327904 00000 n 
+0000328063 00000 n 
+0000328223 00000 n 
+0000328375 00000 n 
+0000328527 00000 n 
+0000328685 00000 n 
+0000328843 00000 n 
+0000329007 00000 n 
+0000329171 00000 n 
+0000329333 00000 n 
+0000329495 00000 n 
+0000329654 00000 n 
+0000329814 00000 n 
+0000329975 00000 n 
+0000330137 00000 n 
+0000330303 00000 n 
+0000741007 00000 n 
+0000741327 00000 n 
+0000741456 00000 n 
+0000741649 00000 n 
+0000742821 00000 n 
+0000743079 00000 n 
+0000745781 00000 n 
+0000745974 00000 n 
+0000747327 00000 n 
+0000750655 00000 n 
+0000750784 00000 n 
+0000757453 00000 n 
+0000757581 00000 n 
+0000760891 00000 n 
+0000761019 00000 n 
+0000761408 00000 n 
+0000766749 00000 n 
+0000774173 00000 n 
+0000772426 00000 n 
+0000826037 00000 n 
+0000829901 00000 n 
+0000830157 00000 n 
+0000834052 00000 n 
+0000834568 00000 n 
+0000835023 00000 n 
+0000835215 00000 n 
+0000839106 00000 n 
+0000839623 00000 n 
+0000839752 00000 n 
+0000845119 00000 n 
+0000845441 00000 n 
+0000849059 00000 n 
+0000849443 00000 n 
+0000849635 00000 n 
+0000852185 00000 n 
+0000852377 00000 n 
+0000852568 00000 n 
+0000852761 00000 n 
+0000853018 00000 n 
+0000853211 00000 n 
+0000853404 00000 n 
+0000856159 00000 n 
+0000856416 00000 n 
+0000856609 00000 n 
+0000856931 00000 n 
+0000860501 00000 n 
+0000860694 00000 n 
+0000401273 00000 n 
+0000385851 00000 n 
+0000330649 00000 n 
+0000401209 00000 n 
+0000386799 00000 n 
+0000386963 00000 n 
+0000387127 00000 n 
+0000387288 00000 n 
+0000387449 00000 n 
+0000387615 00000 n 
+0000387781 00000 n 
+0000387946 00000 n 
+0000388111 00000 n 
+0000388267 00000 n 
+0000388424 00000 n 
+0000388579 00000 n 
+0000388734 00000 n 
+0000388888 00000 n 
+0000389042 00000 n 
+0000389194 00000 n 
+0000389346 00000 n 
+0000389511 00000 n 
+0000389676 00000 n 
+0000389828 00000 n 
+0000389981 00000 n 
+0000390135 00000 n 
+0000390290 00000 n 
+0000390454 00000 n 
+0000390618 00000 n 
+0000390782 00000 n 
+0000390946 00000 n 
+0000391106 00000 n 
+0000391266 00000 n 
+0000391418 00000 n 
+0000391570 00000 n 
+0000391730 00000 n 
+0000391891 00000 n 
+0000392048 00000 n 
+0000392206 00000 n 
+0000392367 00000 n 
+0000392529 00000 n 
+0000392695 00000 n 
+0000392861 00000 n 
+0000393024 00000 n 
+0000393187 00000 n 
+0000393348 00000 n 
+0000393509 00000 n 
+0000393673 00000 n 
+0000393837 00000 n 
+0000394000 00000 n 
+0000394163 00000 n 
+0000394331 00000 n 
+0000394499 00000 n 
+0000394656 00000 n 
+0000394814 00000 n 
+0000394984 00000 n 
+0000395155 00000 n 
+0000395313 00000 n 
+0000395472 00000 n 
+0000395626 00000 n 
+0000395780 00000 n 
+0000395931 00000 n 
+0000396082 00000 n 
+0000396232 00000 n 
+0000396382 00000 n 
+0000396533 00000 n 
+0000396684 00000 n 
+0000396841 00000 n 
+0000396998 00000 n 
+0000397160 00000 n 
+0000397323 00000 n 
+0000397484 00000 n 
+0000397646 00000 n 
+0000397808 00000 n 
+0000397971 00000 n 
+0000398133 00000 n 
+0000398296 00000 n 
+0000398457 00000 n 
+0000398619 00000 n 
+0000398783 00000 n 
+0000398948 00000 n 
+0000399115 00000 n 
+0000399283 00000 n 
+0000399447 00000 n 
+0000399612 00000 n 
+0000399769 00000 n 
+0000399927 00000 n 
+0000400096 00000 n 
+0000400266 00000 n 
+0000400420 00000 n 
+0000400575 00000 n 
+0000400729 00000 n 
+0000400884 00000 n 
+0000401046 00000 n 
+0001177915 00000 n 
+0000862236 00000 n 
+0000871042 00000 n 
+0000871235 00000 n 
+0000871560 00000 n 
+0000876951 00000 n 
+0000877143 00000 n 
+0000875669 00000 n 
+0000881039 00000 n 
+0000881487 00000 n 
+0000884267 00000 n 
+0000884907 00000 n 
+0000888753 00000 n 
+0000889074 00000 n 
+0000893025 00000 n 
+0000893730 00000 n 
+0000897879 00000 n 
+0000898007 00000 n 
+0000898849 00000 n 
+0000899105 00000 n 
+0000899888 00000 n 
+0000904703 00000 n 
+0000908853 00000 n 
+0000910081 00000 n 
+0000919231 00000 n 
+0000919488 00000 n 
+0000930209 00000 n 
+0000937981 00000 n 
+0000938110 00000 n 
+0000938303 00000 n 
+0000940695 00000 n 
+0000941146 00000 n 
+0000941404 00000 n 
+0000944890 00000 n 
+0000945082 00000 n 
+0000945796 00000 n 
+0000946247 00000 n 
+0000948980 00000 n 
+0000949623 00000 n 
+0000950402 00000 n 
+0000954325 00000 n 
+0000957138 00000 n 
+0000957527 00000 n 
+0000961341 00000 n 
+0000961599 00000 n 
+0000963618 00000 n 
+0000432882 00000 n 
+0000426683 00000 n 
+0000401389 00000 n 
+0000432818 00000 n 
+0000427145 00000 n 
+0000427318 00000 n 
+0000427492 00000 n 
+0000427666 00000 n 
+0000427841 00000 n 
+0000428010 00000 n 
+0000428180 00000 n 
+0000428350 00000 n 
+0000428521 00000 n 
+0000428671 00000 n 
+0000428823 00000 n 
+0000428976 00000 n 
+0000429130 00000 n 
+0000429283 00000 n 
+0000429437 00000 n 
+0000429590 00000 n 
+0000429744 00000 n 
+0000429895 00000 n 
+0000430047 00000 n 
+0000430199 00000 n 
+0000430353 00000 n 
+0000430506 00000 n 
+0000430660 00000 n 
+0000430813 00000 n 
+0000430967 00000 n 
+0000431120 00000 n 
+0000431274 00000 n 
+0000431427 00000 n 
+0000431581 00000 n 
+0000431734 00000 n 
+0000431888 00000 n 
+0000432040 00000 n 
+0000432193 00000 n 
+0000432349 00000 n 
+0000432507 00000 n 
+0000432662 00000 n 
+0000966525 00000 n 
+0000966655 00000 n 
+0000967685 00000 n 
+0000972893 00000 n 
+0000978335 00000 n 
+0000978654 00000 n 
+0000978972 00000 n 
+0000982970 00000 n 
+0000983228 00000 n 
+0000987144 00000 n 
+0000992339 00000 n 
+0000992661 00000 n 
+0000992918 00000 n 
+0000995975 00000 n 
+0000996169 00000 n 
+0000996363 00000 n 
+0000996685 00000 n 
+0001000651 00000 n 
+0000435531 00000 n 
+0000434923 00000 n 
+0000432984 00000 n 
+0000435404 00000 n 
+0000435079 00000 n 
+0000435241 00000 n 
+0000774498 00000 n 
+0000440649 00000 n 
+0000438223 00000 n 
+0000435633 00000 n 
+0000438775 00000 n 
+0000438839 00000 n 
+0000438903 00000 n 
+0000438370 00000 n 
+0000438967 00000 n 
+0000439159 00000 n 
+0000439222 00000 n 
+0000439286 00000 n 
+0000439476 00000 n 
+0000439540 00000 n 
+0000439604 00000 n 
+0000439670 00000 n 
+0000439736 00000 n 
+0000439800 00000 n 
+0000439864 00000 n 
+0000439930 00000 n 
+0000439996 00000 n 
+0000440060 00000 n 
+0000440124 00000 n 
+0000440190 00000 n 
+0000440255 00000 n 
+0000440321 00000 n 
+0000440387 00000 n 
+0000440453 00000 n 
+0000440517 00000 n 
+0000440583 00000 n 
+0000446550 00000 n 
+0000442928 00000 n 
+0000440765 00000 n 
+0000443054 00000 n 
+0000443120 00000 n 
+0000443186 00000 n 
+0000443252 00000 n 
+0000443318 00000 n 
+0000443382 00000 n 
+0000443574 00000 n 
+0000443638 00000 n 
+0000443702 00000 n 
+0000443766 00000 n 
+0000443832 00000 n 
+0000443896 00000 n 
+0000443961 00000 n 
+0000444025 00000 n 
+0000444091 00000 n 
+0000444153 00000 n 
+0000444217 00000 n 
+0000444281 00000 n 
+0000444347 00000 n 
+0000444411 00000 n 
+0000444476 00000 n 
+0000444540 00000 n 
+0000444606 00000 n 
+0000444670 00000 n 
+0000444734 00000 n 
+0000444798 00000 n 
+0000444864 00000 n 
+0000444928 00000 n 
+0000444993 00000 n 
+0000445057 00000 n 
+0000445123 00000 n 
+0000445187 00000 n 
+0000445252 00000 n 
+0000445316 00000 n 
+0000445382 00000 n 
+0000445446 00000 n 
+0000445510 00000 n 
+0000445574 00000 n 
+0000445639 00000 n 
+0000445705 00000 n 
+0000445771 00000 n 
+0000445837 00000 n 
+0000445903 00000 n 
+0000445969 00000 n 
+0000446035 00000 n 
+0000446101 00000 n 
+0000446167 00000 n 
+0000446229 00000 n 
+0000446293 00000 n 
+0000446357 00000 n 
+0000446421 00000 n 
+0000448912 00000 n 
+0000448091 00000 n 
+0000446666 00000 n 
+0000448462 00000 n 
+0000448526 00000 n 
+0000448590 00000 n 
+0000448654 00000 n 
+0000448718 00000 n 
+0001080585 00000 n 
+0001068372 00000 n 
+0001080411 00000 n 
+0000448238 00000 n 
+0000448782 00000 n 
+0000448846 00000 n 
+0001006704 00000 n 
+0000454526 00000 n 
+0000451305 00000 n 
+0000449056 00000 n 
+0000453052 00000 n 
+0000453116 00000 n 
+0000453180 00000 n 
+0001067612 00000 n 
+0001057593 00000 n 
+0001067434 00000 n 
+0000453246 00000 n 
+0000451515 00000 n 
+0000451674 00000 n 
+0000453310 00000 n 
+0000453374 00000 n 
+0000453438 00000 n 
+0000453504 00000 n 
+0000453568 00000 n 
+0000453631 00000 n 
+0000453693 00000 n 
+0000451830 00000 n 
+0000453757 00000 n 
+0000451989 00000 n 
+0000453821 00000 n 
+0000452151 00000 n 
+0000453885 00000 n 
+0000452315 00000 n 
+0000453949 00000 n 
+0000452476 00000 n 
+0000454013 00000 n 
+0000452640 00000 n 
+0000454077 00000 n 
+0000454268 00000 n 
+0000454332 00000 n 
+0000454396 00000 n 
+0000454460 00000 n 
+0001178040 00000 n 
+0000458130 00000 n 
+0000456270 00000 n 
+0000454670 00000 n 
+0000456523 00000 n 
+0000456714 00000 n 
+0000456778 00000 n 
+0000456842 00000 n 
+0000456906 00000 n 
+0000456972 00000 n 
+0000457036 00000 n 
+0000457100 00000 n 
+0000457166 00000 n 
+0000457232 00000 n 
+0000457424 00000 n 
+0000457488 00000 n 
+0000457552 00000 n 
+0000457616 00000 n 
+0000457682 00000 n 
+0000457874 00000 n 
+0000457936 00000 n 
+0000458000 00000 n 
+0000458064 00000 n 
+0000463474 00000 n 
+0000460934 00000 n 
+0000458260 00000 n 
+0000461408 00000 n 
+0000461472 00000 n 
+0000461664 00000 n 
+0000461728 00000 n 
+0000461090 00000 n 
+0000461792 00000 n 
+0000461858 00000 n 
+0000461922 00000 n 
+0000462116 00000 n 
+0000462180 00000 n 
+0000462244 00000 n 
+0000462310 00000 n 
+0000462376 00000 n 
+0000462442 00000 n 
+0000462506 00000 n 
+0000462572 00000 n 
+0000462637 00000 n 
+0000462702 00000 n 
+0000462766 00000 n 
+0000462958 00000 n 
+0000463022 00000 n 
+0000461247 00000 n 
+0000463088 00000 n 
+0000463152 00000 n 
+0000463218 00000 n 
+0000463282 00000 n 
+0000463346 00000 n 
+0000463410 00000 n 
+0001007090 00000 n 
+0000469945 00000 n 
+0000466273 00000 n 
+0000463604 00000 n 
+0000467297 00000 n 
+0000466456 00000 n 
+0000466622 00000 n 
+0000467361 00000 n 
+0000467425 00000 n 
+0000467489 00000 n 
+0000467553 00000 n 
+0000467618 00000 n 
+0000467682 00000 n 
+0000467746 00000 n 
+0000467812 00000 n 
+0000467878 00000 n 
+0000467943 00000 n 
+0000468007 00000 n 
+0000468073 00000 n 
+0000468137 00000 n 
+0000468201 00000 n 
+0000468267 00000 n 
+0000468331 00000 n 
+0000468396 00000 n 
+0000468460 00000 n 
+0000468525 00000 n 
+0000468589 00000 n 
+0000468654 00000 n 
+0000468718 00000 n 
+0000466795 00000 n 
+0000468783 00000 n 
+0000468847 00000 n 
+0000468912 00000 n 
+0000468976 00000 n 
+0000469041 00000 n 
+0000469105 00000 n 
+0000469170 00000 n 
+0000469234 00000 n 
+0000466965 00000 n 
+0000469299 00000 n 
+0000469363 00000 n 
+0000469428 00000 n 
+0000469492 00000 n 
+0000469557 00000 n 
+0000469623 00000 n 
+0000469687 00000 n 
+0000467133 00000 n 
+0000469752 00000 n 
+0000469816 00000 n 
+0000469881 00000 n 
+0000476444 00000 n 
+0000472391 00000 n 
+0000470089 00000 n 
+0000473611 00000 n 
+0000472583 00000 n 
+0000473676 00000 n 
+0000473740 00000 n 
+0000472756 00000 n 
+0000473805 00000 n 
+0000473869 00000 n 
+0000472927 00000 n 
+0000473934 00000 n 
+0000473998 00000 n 
+0000473096 00000 n 
+0000474063 00000 n 
+0000474127 00000 n 
+0000474192 00000 n 
+0000474256 00000 n 
+0000474321 00000 n 
+0000474385 00000 n 
+0000473267 00000 n 
+0000474450 00000 n 
+0000474514 00000 n 
+0000474579 00000 n 
+0000474643 00000 n 
+0000474708 00000 n 
+0000474772 00000 n 
+0000474837 00000 n 
+0000474901 00000 n 
+0000473440 00000 n 
+0000474966 00000 n 
+0000475030 00000 n 
+0000475095 00000 n 
+0000475159 00000 n 
+0000475224 00000 n 
+0000475288 00000 n 
+0000475353 00000 n 
+0000475417 00000 n 
+0000475482 00000 n 
+0000475546 00000 n 
+0000475611 00000 n 
+0000475675 00000 n 
+0000475869 00000 n 
+0000475933 00000 n 
+0000476124 00000 n 
+0000476316 00000 n 
+0000476380 00000 n 
+0000480333 00000 n 
+0000478284 00000 n 
+0000476546 00000 n 
+0000478410 00000 n 
+0000478474 00000 n 
+0000478539 00000 n 
+0000478604 00000 n 
+0000478669 00000 n 
+0000478733 00000 n 
+0000478798 00000 n 
+0000478992 00000 n 
+0000479183 00000 n 
+0000479375 00000 n 
+0000479566 00000 n 
+0000479630 00000 n 
+0000479823 00000 n 
+0000480016 00000 n 
+0000480205 00000 n 
+0000480269 00000 n 
+0000485416 00000 n 
+0000483079 00000 n 
+0000480463 00000 n 
+0000483548 00000 n 
+0000483612 00000 n 
+0000483676 00000 n 
+0000483740 00000 n 
+0000483235 00000 n 
+0000483806 00000 n 
+0000483870 00000 n 
+0000483934 00000 n 
+0000483998 00000 n 
+0000484188 00000 n 
+0000484252 00000 n 
+0000484317 00000 n 
+0000484383 00000 n 
+0000484449 00000 n 
+0000484513 00000 n 
+0000484579 00000 n 
+0000484645 00000 n 
+0000484837 00000 n 
+0000484901 00000 n 
+0000483393 00000 n 
+0000485096 00000 n 
+0000485160 00000 n 
+0000485224 00000 n 
+0000485288 00000 n 
+0000485352 00000 n 
+0001178165 00000 n 
+0000491280 00000 n 
+0000488314 00000 n 
+0000485546 00000 n 
+0000489275 00000 n 
+0000489339 00000 n 
+0000489403 00000 n 
+0000489467 00000 n 
+0000489533 00000 n 
+0000489599 00000 n 
+0000489663 00000 n 
+0000489729 00000 n 
+0000489793 00000 n 
+0000489857 00000 n 
+0000489922 00000 n 
+0000489986 00000 n 
+0000490052 00000 n 
+0000490117 00000 n 
+0000490183 00000 n 
+0000490247 00000 n 
+0000490313 00000 n 
+0000488497 00000 n 
+0000490378 00000 n 
+0000490442 00000 n 
+0000490637 00000 n 
+0000488650 00000 n 
+0000488801 00000 n 
+0000488959 00000 n 
+0000490829 00000 n 
+0000490893 00000 n 
+0000491086 00000 n 
+0000491150 00000 n 
+0000489113 00000 n 
+0000491216 00000 n 
+0000496799 00000 n 
+0000494024 00000 n 
+0000491424 00000 n 
+0000494330 00000 n 
+0000494459 00000 n 
+0000494523 00000 n 
+0000494587 00000 n 
+0000494651 00000 n 
+0000494717 00000 n 
+0000494846 00000 n 
+0000494910 00000 n 
+0000494976 00000 n 
+0001057015 00000 n 
+0001047033 00000 n 
+0001056836 00000 n 
+0000495042 00000 n 
+0000494171 00000 n 
+0000495108 00000 n 
+0000495172 00000 n 
+0000495238 00000 n 
+0000495304 00000 n 
+0000495370 00000 n 
+0000495436 00000 n 
+0000495502 00000 n 
+0000495566 00000 n 
+0000495632 00000 n 
+0000495696 00000 n 
+0000495761 00000 n 
+0000495827 00000 n 
+0000495892 00000 n 
+0000496021 00000 n 
+0000496085 00000 n 
+0000496149 00000 n 
+0000496215 00000 n 
+0000496281 00000 n 
+0000496347 00000 n 
+0000496411 00000 n 
+0000496476 00000 n 
+0000496542 00000 n 
+0000496607 00000 n 
+0000496671 00000 n 
+0000496735 00000 n 
+0000501823 00000 n 
+0000498996 00000 n 
+0000496971 00000 n 
+0000499302 00000 n 
+0000499495 00000 n 
+0000499624 00000 n 
+0000499688 00000 n 
+0000499754 00000 n 
+0000499820 00000 n 
+0000499143 00000 n 
+0000499886 00000 n 
+0000499950 00000 n 
+0000500014 00000 n 
+0000500079 00000 n 
+0000500143 00000 n 
+0000500207 00000 n 
+0000500272 00000 n 
+0000500336 00000 n 
+0000500401 00000 n 
+0000500466 00000 n 
+0000500595 00000 n 
+0000500659 00000 n 
+0000500725 00000 n 
+0000500791 00000 n 
+0000500855 00000 n 
+0000500919 00000 n 
+0000500983 00000 n 
+0000501047 00000 n 
+0000501113 00000 n 
+0000501177 00000 n 
+0000501243 00000 n 
+0000501309 00000 n 
+0000501504 00000 n 
+0000501632 00000 n 
+0000501695 00000 n 
+0000501757 00000 n 
+0000505815 00000 n 
+0000503948 00000 n 
+0000501967 00000 n 
+0000504074 00000 n 
+0000504138 00000 n 
+0000504202 00000 n 
+0000504268 00000 n 
+0000504334 00000 n 
+0000504463 00000 n 
+0000504527 00000 n 
+0000504591 00000 n 
+0000504655 00000 n 
+0000504719 00000 n 
+0000504783 00000 n 
+0000504849 00000 n 
+0000504978 00000 n 
+0000505042 00000 n 
+0000505108 00000 n 
+0000505172 00000 n 
+0000505363 00000 n 
+0000505427 00000 n 
+0000505493 00000 n 
+0000505557 00000 n 
+0000505621 00000 n 
+0000505685 00000 n 
+0000512069 00000 n 
+0000508998 00000 n 
+0000505959 00000 n 
+0000509670 00000 n 
+0000509734 00000 n 
+0000509863 00000 n 
+0000509926 00000 n 
+0000509163 00000 n 
+0000509991 00000 n 
+0000510185 00000 n 
+0000509335 00000 n 
+0000509502 00000 n 
+0000510249 00000 n 
+0000510377 00000 n 
+0000510441 00000 n 
+0000510505 00000 n 
+0000510569 00000 n 
+0000510635 00000 n 
+0000510701 00000 n 
+0000510765 00000 n 
+0000510831 00000 n 
+0000510896 00000 n 
+0000510960 00000 n 
+0000511024 00000 n 
+0000511090 00000 n 
+0000511155 00000 n 
+0000511219 00000 n 
+0000511283 00000 n 
+0000511349 00000 n 
+0000511414 00000 n 
+0000511479 00000 n 
+0000511545 00000 n 
+0000511611 00000 n 
+0000511677 00000 n 
+0000511743 00000 n 
+0000511809 00000 n 
+0000511873 00000 n 
+0000511939 00000 n 
+0000512005 00000 n 
+0000518139 00000 n 
+0000515348 00000 n 
+0000512227 00000 n 
+0000515474 00000 n 
+0000515538 00000 n 
+0000515667 00000 n 
+0000515731 00000 n 
+0000515795 00000 n 
+0000515859 00000 n 
+0000515925 00000 n 
+0000515991 00000 n 
+0000516055 00000 n 
+0000516119 00000 n 
+0000516183 00000 n 
+0000516249 00000 n 
+0000516315 00000 n 
+0000516380 00000 n 
+0000516446 00000 n 
+0000516512 00000 n 
+0000516576 00000 n 
+0000516640 00000 n 
+0000516705 00000 n 
+0000516771 00000 n 
+0000516837 00000 n 
+0000516903 00000 n 
+0000516969 00000 n 
+0000517035 00000 n 
+0000517099 00000 n 
+0000517163 00000 n 
+0000517227 00000 n 
+0000517292 00000 n 
+0000517356 00000 n 
+0000517422 00000 n 
+0000517486 00000 n 
+0000517552 00000 n 
+0000517618 00000 n 
+0000517684 00000 n 
+0000517747 00000 n 
+0000517813 00000 n 
+0000517879 00000 n 
+0000517943 00000 n 
+0000518009 00000 n 
+0000518073 00000 n 
+0001178290 00000 n 
+0000523885 00000 n 
+0000521059 00000 n 
+0000518297 00000 n 
+0000521548 00000 n 
+0000521741 00000 n 
+0000521805 00000 n 
+0000521871 00000 n 
+0000521937 00000 n 
+0000522003 00000 n 
+0000522069 00000 n 
+0000522135 00000 n 
+0000522200 00000 n 
+0000522265 00000 n 
+0000522331 00000 n 
+0000522394 00000 n 
+0000522460 00000 n 
+0000522526 00000 n 
+0000522592 00000 n 
+0000522656 00000 n 
+0000522722 00000 n 
+0000522786 00000 n 
+0000522850 00000 n 
+0000522914 00000 n 
+0000522978 00000 n 
+0000523042 00000 n 
+0000523106 00000 n 
+0000523172 00000 n 
+0000523238 00000 n 
+0000523302 00000 n 
+0000523366 00000 n 
+0000523432 00000 n 
+0000521215 00000 n 
+0000523627 00000 n 
+0000523691 00000 n 
+0000521385 00000 n 
+0000523757 00000 n 
+0000523821 00000 n 
+0000529112 00000 n 
+0000526318 00000 n 
+0000524029 00000 n 
+0000526791 00000 n 
+0000526855 00000 n 
+0000526919 00000 n 
+0000526474 00000 n 
+0000526985 00000 n 
+0000527051 00000 n 
+0000527117 00000 n 
+0000527182 00000 n 
+0000527248 00000 n 
+0000527312 00000 n 
+0000527378 00000 n 
+0000527443 00000 n 
+0000526632 00000 n 
+0000527636 00000 n 
+0000527829 00000 n 
+0000527893 00000 n 
+0000527957 00000 n 
+0000528021 00000 n 
+0001046354 00000 n 
+0001030641 00000 n 
+0001046179 00000 n 
+0000528087 00000 n 
+0000528150 00000 n 
+0000528216 00000 n 
+0000528280 00000 n 
+0000528342 00000 n 
+0000528406 00000 n 
+0000528470 00000 n 
+0000528664 00000 n 
+0000528726 00000 n 
+0000528790 00000 n 
+0000528854 00000 n 
+0000528918 00000 n 
+0000528982 00000 n 
+0000534371 00000 n 
+0000531928 00000 n 
+0000529270 00000 n 
+0000532229 00000 n 
+0000532358 00000 n 
+0000532075 00000 n 
+0000532422 00000 n 
+0000532486 00000 n 
+0000532550 00000 n 
+0000532614 00000 n 
+0000532678 00000 n 
+0000532743 00000 n 
+0000532807 00000 n 
+0000533002 00000 n 
+0000533066 00000 n 
+0000533131 00000 n 
+0000533197 00000 n 
+0000533263 00000 n 
+0000533329 00000 n 
+0000533395 00000 n 
+0000533458 00000 n 
+0000533524 00000 n 
+0000533590 00000 n 
+0000533654 00000 n 
+0000533718 00000 n 
+0000533911 00000 n 
+0000533975 00000 n 
+0000534041 00000 n 
+0000534107 00000 n 
+0000534173 00000 n 
+0000534239 00000 n 
+0000534305 00000 n 
+0000538604 00000 n 
+0000536795 00000 n 
+0000534501 00000 n 
+0000536921 00000 n 
+0000536985 00000 n 
+0000537049 00000 n 
+0000537115 00000 n 
+0000537181 00000 n 
+0000537247 00000 n 
+0000537313 00000 n 
+0000537377 00000 n 
+0000537441 00000 n 
+0000537634 00000 n 
+0000537698 00000 n 
+0000537762 00000 n 
+0000537957 00000 n 
+0000538021 00000 n 
+0000538216 00000 n 
+0000538280 00000 n 
+0000538346 00000 n 
+0000538412 00000 n 
+0000538476 00000 n 
+0000542625 00000 n 
+0000540607 00000 n 
+0000538748 00000 n 
+0000541084 00000 n 
+0000541213 00000 n 
+0000540763 00000 n 
+0000540929 00000 n 
+0000541277 00000 n 
+0000541341 00000 n 
+0000541407 00000 n 
+0000541470 00000 n 
+0000541534 00000 n 
+0000541598 00000 n 
+0000541662 00000 n 
+0000541726 00000 n 
+0000541790 00000 n 
+0000541854 00000 n 
+0000541918 00000 n 
+0000541982 00000 n 
+0000542046 00000 n 
+0000542111 00000 n 
+0000542175 00000 n 
+0000542239 00000 n 
+0000542304 00000 n 
+0000542497 00000 n 
+0001016669 00000 n 
+0000549061 00000 n 
+0000545657 00000 n 
+0000542769 00000 n 
+0000546472 00000 n 
+0000546536 00000 n 
+0000546665 00000 n 
+0000545831 00000 n 
+0000546004 00000 n 
+0000546729 00000 n 
+0000546792 00000 n 
+0000546855 00000 n 
+0000546921 00000 n 
+0000546985 00000 n 
+0000547050 00000 n 
+0000547116 00000 n 
+0000547311 00000 n 
+0000547504 00000 n 
+0000547697 00000 n 
+0000547761 00000 n 
+0000547827 00000 n 
+0000546156 00000 n 
+0000548020 00000 n 
+0000548084 00000 n 
+0000548148 00000 n 
+0000548213 00000 n 
+0000548279 00000 n 
+0000548343 00000 n 
+0000548408 00000 n 
+0000546314 00000 n 
+0000548472 00000 n 
+0000548536 00000 n 
+0000548600 00000 n 
+0000548666 00000 n 
+0000548732 00000 n 
+0000548797 00000 n 
+0000548863 00000 n 
+0000548929 00000 n 
+0000548995 00000 n 
+0001178415 00000 n 
+0001007733 00000 n 
+0000553118 00000 n 
+0000551460 00000 n 
+0000549191 00000 n 
+0000551767 00000 n 
+0000551895 00000 n 
+0001028412 00000 n 
+0001025916 00000 n 
+0001028243 00000 n 
+0000551959 00000 n 
+0000552023 00000 n 
+0000552087 00000 n 
+0000552151 00000 n 
+0000552346 00000 n 
+0000552410 00000 n 
+0000552474 00000 n 
+0000552798 00000 n 
+0000551607 00000 n 
+0000552990 00000 n 
+0000553054 00000 n 
+0000556575 00000 n 
+0000555023 00000 n 
+0000553248 00000 n 
+0000555149 00000 n 
+0000555213 00000 n 
+0000555279 00000 n 
+0000555344 00000 n 
+0000555410 00000 n 
+0000555541 00000 n 
+0000555670 00000 n 
+0000555734 00000 n 
+0000555797 00000 n 
+0000555926 00000 n 
+0000555990 00000 n 
+0000556056 00000 n 
+0000556122 00000 n 
+0000556251 00000 n 
+0000556315 00000 n 
+0000556379 00000 n 
+0000556445 00000 n 
+0000556511 00000 n 
+0000560823 00000 n 
+0000558551 00000 n 
+0000556733 00000 n 
+0000558677 00000 n 
+0000558741 00000 n 
+0000558805 00000 n 
+0000558871 00000 n 
+0000558937 00000 n 
+0000559001 00000 n 
+0000559067 00000 n 
+0000559131 00000 n 
+0000559195 00000 n 
+0000559260 00000 n 
+0000559454 00000 n 
+0000559517 00000 n 
+0000559581 00000 n 
+0000559647 00000 n 
+0000559713 00000 n 
+0000559779 00000 n 
+0000559845 00000 n 
+0000559911 00000 n 
+0000559976 00000 n 
+0000560042 00000 n 
+0000560108 00000 n 
+0000560174 00000 n 
+0000560240 00000 n 
+0000560304 00000 n 
+0000560499 00000 n 
+0000560562 00000 n 
+0000560627 00000 n 
+0000560693 00000 n 
+0000565797 00000 n 
+0000563662 00000 n 
+0000560981 00000 n 
+0000563984 00000 n 
+0000564113 00000 n 
+0000564306 00000 n 
+0000564370 00000 n 
+0000564436 00000 n 
+0000564500 00000 n 
+0000564564 00000 n 
+0000564628 00000 n 
+0000564693 00000 n 
+0000564888 00000 n 
+0000564952 00000 n 
+0000565017 00000 n 
+0000563809 00000 n 
+0000565082 00000 n 
+0000565148 00000 n 
+0000565212 00000 n 
+0000565278 00000 n 
+0000565343 00000 n 
+0000565537 00000 n 
+0000565601 00000 n 
+0000565665 00000 n 
+0000565731 00000 n 
+0000571092 00000 n 
+0000568713 00000 n 
+0000565941 00000 n 
+0000569352 00000 n 
+0000569416 00000 n 
+0000569482 00000 n 
+0000569546 00000 n 
+0000569739 00000 n 
+0000569803 00000 n 
+0000569867 00000 n 
+0000569930 00000 n 
+0000569994 00000 n 
+0000570187 00000 n 
+0000570251 00000 n 
+0000570315 00000 n 
+0000570378 00000 n 
+0000570443 00000 n 
+0000570509 00000 n 
+0000570573 00000 n 
+0000568878 00000 n 
+0000570638 00000 n 
+0000570702 00000 n 
+0000569037 00000 n 
+0000569195 00000 n 
+0000570767 00000 n 
+0000570831 00000 n 
+0000570896 00000 n 
+0000570962 00000 n 
+0000571026 00000 n 
+0000576599 00000 n 
+0000573656 00000 n 
+0000571236 00000 n 
+0000574475 00000 n 
+0000574539 00000 n 
+0000574603 00000 n 
+0000574667 00000 n 
+0000574731 00000 n 
+0000574793 00000 n 
+0000574859 00000 n 
+0000574925 00000 n 
+0000574989 00000 n 
+0000575053 00000 n 
+0000575119 00000 n 
+0000575314 00000 n 
+0000575378 00000 n 
+0000575442 00000 n 
+0000573830 00000 n 
+0000575506 00000 n 
+0000575570 00000 n 
+0000575635 00000 n 
+0000575701 00000 n 
+0000573988 00000 n 
+0000575765 00000 n 
+0000575829 00000 n 
+0000575894 00000 n 
+0000574151 00000 n 
+0000575957 00000 n 
+0000576021 00000 n 
+0000576086 00000 n 
+0000576279 00000 n 
+0000574312 00000 n 
+0000576343 00000 n 
+0000576535 00000 n 
+0001178540 00000 n 
+0000581059 00000 n 
+0000578781 00000 n 
+0000576715 00000 n 
+0000578907 00000 n 
+0000578971 00000 n 
+0000579035 00000 n 
+0000579099 00000 n 
+0000579165 00000 n 
+0000579231 00000 n 
+0000579297 00000 n 
+0000579363 00000 n 
+0000579427 00000 n 
+0000579491 00000 n 
+0000579557 00000 n 
+0000579623 00000 n 
+0000579818 00000 n 
+0000579882 00000 n 
+0000579947 00000 n 
+0000580011 00000 n 
+0000580077 00000 n 
+0000580141 00000 n 
+0000580207 00000 n 
+0000580273 00000 n 
+0000580337 00000 n 
+0000580403 00000 n 
+0000580467 00000 n 
+0000580533 00000 n 
+0000580599 00000 n 
+0000580665 00000 n 
+0000580731 00000 n 
+0000580797 00000 n 
+0000580863 00000 n 
+0000580927 00000 n 
+0000580993 00000 n 
+0000586325 00000 n 
+0000583586 00000 n 
+0000581217 00000 n 
+0000584061 00000 n 
+0000584125 00000 n 
+0000584316 00000 n 
+0000584379 00000 n 
+0000584443 00000 n 
+0000584509 00000 n 
+0000584573 00000 n 
+0000584637 00000 n 
+0000584703 00000 n 
+0000584769 00000 n 
+0000584833 00000 n 
+0000584899 00000 n 
+0000584965 00000 n 
+0000585029 00000 n 
+0000585093 00000 n 
+0000585159 00000 n 
+0000583742 00000 n 
+0000585354 00000 n 
+0000585418 00000 n 
+0000585482 00000 n 
+0000585546 00000 n 
+0000585611 00000 n 
+0000585676 00000 n 
+0000585742 00000 n 
+0000585806 00000 n 
+0000583901 00000 n 
+0000585870 00000 n 
+0000585934 00000 n 
+0000585999 00000 n 
+0000586065 00000 n 
+0000586129 00000 n 
+0000586195 00000 n 
+0000586261 00000 n 
+0000590206 00000 n 
+0000588500 00000 n 
+0000586497 00000 n 
+0000588973 00000 n 
+0000589037 00000 n 
+0000589103 00000 n 
+0000589169 00000 n 
+0000589233 00000 n 
+0000589299 00000 n 
+0000589363 00000 n 
+0000589428 00000 n 
+0000589493 00000 n 
+0000589557 00000 n 
+0000588656 00000 n 
+0000589622 00000 n 
+0000589815 00000 n 
+0000589879 00000 n 
+0000588815 00000 n 
+0000589943 00000 n 
+0000590008 00000 n 
+0000590074 00000 n 
+0000590140 00000 n 
+0000595155 00000 n 
+0000592321 00000 n 
+0000590336 00000 n 
+0000592447 00000 n 
+0000592767 00000 n 
+0000592959 00000 n 
+0000593023 00000 n 
+0000593087 00000 n 
+0000593151 00000 n 
+0000593215 00000 n 
+0000593279 00000 n 
+0000593344 00000 n 
+0000593408 00000 n 
+0000593472 00000 n 
+0000593537 00000 n 
+0000593601 00000 n 
+0000593667 00000 n 
+0000593733 00000 n 
+0000593799 00000 n 
+0000593863 00000 n 
+0000593927 00000 n 
+0000593992 00000 n 
+0000594056 00000 n 
+0000594121 00000 n 
+0000594187 00000 n 
+0000594251 00000 n 
+0000594315 00000 n 
+0000594379 00000 n 
+0000594444 00000 n 
+0000594508 00000 n 
+0000594573 00000 n 
+0000594638 00000 n 
+0000594704 00000 n 
+0000594768 00000 n 
+0000594831 00000 n 
+0000594896 00000 n 
+0000594962 00000 n 
+0000595026 00000 n 
+0000595090 00000 n 
+0000600704 00000 n 
+0000598056 00000 n 
+0000595285 00000 n 
+0000598182 00000 n 
+0000598246 00000 n 
+0000598312 00000 n 
+0000598378 00000 n 
+0000598443 00000 n 
+0000598507 00000 n 
+0000598571 00000 n 
+0000598636 00000 n 
+0000598700 00000 n 
+0000598765 00000 n 
+0000598830 00000 n 
+0000598895 00000 n 
+0000598959 00000 n 
+0000599022 00000 n 
+0000599087 00000 n 
+0000599153 00000 n 
+0000599217 00000 n 
+0000599281 00000 n 
+0000599347 00000 n 
+0000599411 00000 n 
+0000599475 00000 n 
+0000599539 00000 n 
+0000599603 00000 n 
+0000599667 00000 n 
+0000599733 00000 n 
+0000599799 00000 n 
+0000599863 00000 n 
+0000599927 00000 n 
+0000599992 00000 n 
+0000600058 00000 n 
+0000600123 00000 n 
+0000600189 00000 n 
+0000600252 00000 n 
+0000600316 00000 n 
+0000600381 00000 n 
+0000600447 00000 n 
+0000600512 00000 n 
+0000600576 00000 n 
+0000600640 00000 n 
+0000604962 00000 n 
+0000603035 00000 n 
+0000600848 00000 n 
+0000603161 00000 n 
+0000603354 00000 n 
+0000603546 00000 n 
+0000603610 00000 n 
+0000603674 00000 n 
+0000603738 00000 n 
+0000603802 00000 n 
+0000603867 00000 n 
+0000603933 00000 n 
+0000603997 00000 n 
+0000604061 00000 n 
+0000604126 00000 n 
+0000604321 00000 n 
+0000604514 00000 n 
+0000604578 00000 n 
+0000604642 00000 n 
+0000604706 00000 n 
+0000604770 00000 n 
+0000604835 00000 n 
+0000604899 00000 n 
+0001178665 00000 n 
+0000608867 00000 n 
+0000607199 00000 n 
+0000605078 00000 n 
+0000607325 00000 n 
+0000607389 00000 n 
+0000607453 00000 n 
+0000607517 00000 n 
+0000607581 00000 n 
+0000607775 00000 n 
+0000607839 00000 n 
+0000607902 00000 n 
+0000607964 00000 n 
+0000608028 00000 n 
+0000608093 00000 n 
+0000608157 00000 n 
+0000608221 00000 n 
+0000608414 00000 n 
+0000608478 00000 n 
+0000608673 00000 n 
+0000608737 00000 n 
+0000613890 00000 n 
+0000611774 00000 n 
+0000608997 00000 n 
+0000612411 00000 n 
+0000612475 00000 n 
+0000612604 00000 n 
+0000611939 00000 n 
+0000612668 00000 n 
+0000612732 00000 n 
+0000612796 00000 n 
+0000612860 00000 n 
+0000612925 00000 n 
+0000612989 00000 n 
+0000613053 00000 n 
+0000613118 00000 n 
+0000613184 00000 n 
+0000613248 00000 n 
+0000613312 00000 n 
+0000612092 00000 n 
+0000613376 00000 n 
+0000613440 00000 n 
+0000613504 00000 n 
+0000612250 00000 n 
+0000613698 00000 n 
+0000613762 00000 n 
+0000613826 00000 n 
+0000619313 00000 n 
+0000616484 00000 n 
+0000613992 00000 n 
+0000616792 00000 n 
+0000616856 00000 n 
+0000616922 00000 n 
+0000616631 00000 n 
+0000616988 00000 n 
+0000617054 00000 n 
+0000617118 00000 n 
+0000617182 00000 n 
+0000617246 00000 n 
+0000617311 00000 n 
+0000617377 00000 n 
+0000617443 00000 n 
+0000617509 00000 n 
+0000617573 00000 n 
+0000617637 00000 n 
+0000617702 00000 n 
+0000617766 00000 n 
+0000617832 00000 n 
+0000617898 00000 n 
+0000617961 00000 n 
+0000618025 00000 n 
+0000618089 00000 n 
+0000618153 00000 n 
+0000618219 00000 n 
+0000618284 00000 n 
+0000618350 00000 n 
+0000618413 00000 n 
+0000618477 00000 n 
+0000618542 00000 n 
+0000618606 00000 n 
+0000618671 00000 n 
+0000618735 00000 n 
+0000618799 00000 n 
+0000618864 00000 n 
+0000618928 00000 n 
+0000618993 00000 n 
+0000619057 00000 n 
+0000619121 00000 n 
+0000619186 00000 n 
+0000619250 00000 n 
+0001008186 00000 n 
+0000623804 00000 n 
+0000621315 00000 n 
+0000619457 00000 n 
+0000621616 00000 n 
+0000621680 00000 n 
+0000621744 00000 n 
+0000621808 00000 n 
+0000621873 00000 n 
+0000621937 00000 n 
+0000622132 00000 n 
+0000622196 00000 n 
+0000622260 00000 n 
+0000621462 00000 n 
+0000622324 00000 n 
+0000622388 00000 n 
+0000622452 00000 n 
+0000622515 00000 n 
+0000622579 00000 n 
+0000622644 00000 n 
+0000622710 00000 n 
+0000622776 00000 n 
+0000622842 00000 n 
+0000622906 00000 n 
+0000622970 00000 n 
+0000623035 00000 n 
+0000623098 00000 n 
+0000623162 00000 n 
+0000623227 00000 n 
+0000623291 00000 n 
+0000623354 00000 n 
+0000623419 00000 n 
+0000623483 00000 n 
+0000623676 00000 n 
+0000623740 00000 n 
+0000628286 00000 n 
+0000626488 00000 n 
+0000623934 00000 n 
+0000626614 00000 n 
+0000626678 00000 n 
+0000626742 00000 n 
+0000626806 00000 n 
+0000626871 00000 n 
+0000626937 00000 n 
+0000627001 00000 n 
+0000627065 00000 n 
+0000627130 00000 n 
+0000627194 00000 n 
+0000627258 00000 n 
+0000627323 00000 n 
+0000627387 00000 n 
+0000627451 00000 n 
+0000627516 00000 n 
+0000627580 00000 n 
+0000627644 00000 n 
+0000627837 00000 n 
+0000628029 00000 n 
+0000628222 00000 n 
+0000632425 00000 n 
+0000630688 00000 n 
+0000628402 00000 n 
+0000630814 00000 n 
+0000630878 00000 n 
+0000630942 00000 n 
+0000631006 00000 n 
+0000631071 00000 n 
+0000631135 00000 n 
+0000631328 00000 n 
+0000631650 00000 n 
+0000631714 00000 n 
+0000631778 00000 n 
+0000632099 00000 n 
+0000632163 00000 n 
+0000632229 00000 n 
+0000632295 00000 n 
+0000632359 00000 n 
+0001178790 00000 n 
+0000637910 00000 n 
+0000635213 00000 n 
+0000632541 00000 n 
+0000635518 00000 n 
+0000635711 00000 n 
+0000635840 00000 n 
+0000635904 00000 n 
+0000635970 00000 n 
+0000636036 00000 n 
+0000635360 00000 n 
+0000636100 00000 n 
+0000636229 00000 n 
+0000636293 00000 n 
+0000636359 00000 n 
+0000636423 00000 n 
+0000636487 00000 n 
+0000636552 00000 n 
+0000636616 00000 n 
+0000636681 00000 n 
+0000636745 00000 n 
+0000636809 00000 n 
+0000636875 00000 n 
+0000637070 00000 n 
+0000637134 00000 n 
+0000637198 00000 n 
+0000637262 00000 n 
+0000637327 00000 n 
+0000637392 00000 n 
+0000637458 00000 n 
+0000637522 00000 n 
+0000637587 00000 n 
+0000637652 00000 n 
+0000637716 00000 n 
+0000637781 00000 n 
+0000637846 00000 n 
+0000644255 00000 n 
+0000641286 00000 n 
+0000638040 00000 n 
+0000641412 00000 n 
+0000641476 00000 n 
+0000641541 00000 n 
+0000641606 00000 n 
+0000641670 00000 n 
+0000641735 00000 n 
+0000641800 00000 n 
+0000641864 00000 n 
+0000641928 00000 n 
+0000641992 00000 n 
+0000642056 00000 n 
+0000642122 00000 n 
+0000642187 00000 n 
+0000642253 00000 n 
+0000642318 00000 n 
+0000642383 00000 n 
+0000642448 00000 n 
+0000642512 00000 n 
+0000642577 00000 n 
+0000642642 00000 n 
+0000642706 00000 n 
+0000642770 00000 n 
+0000642834 00000 n 
+0000642898 00000 n 
+0000642963 00000 n 
+0000643028 00000 n 
+0000643091 00000 n 
+0000643155 00000 n 
+0000643219 00000 n 
+0000643283 00000 n 
+0000643348 00000 n 
+0000643413 00000 n 
+0000643477 00000 n 
+0000643542 00000 n 
+0000643607 00000 n 
+0000643671 00000 n 
+0000643736 00000 n 
+0000643801 00000 n 
+0000643867 00000 n 
+0000643931 00000 n 
+0000643996 00000 n 
+0000644061 00000 n 
+0000644126 00000 n 
+0000648760 00000 n 
+0000646908 00000 n 
+0000644399 00000 n 
+0000647213 00000 n 
+0000647342 00000 n 
+0000647406 00000 n 
+0000647055 00000 n 
+0000647600 00000 n 
+0000647664 00000 n 
+0000647730 00000 n 
+0000647794 00000 n 
+0000647858 00000 n 
+0000647924 00000 n 
+0000647988 00000 n 
+0000648052 00000 n 
+0000648116 00000 n 
+0000648310 00000 n 
+0000648374 00000 n 
+0000648438 00000 n 
+0000648502 00000 n 
+0000648566 00000 n 
+0000648632 00000 n 
+0000653900 00000 n 
+0000650672 00000 n 
+0000648904 00000 n 
+0000651328 00000 n 
+0000651457 00000 n 
+0000650837 00000 n 
+0000650997 00000 n 
+0000651521 00000 n 
+0000651587 00000 n 
+0000651651 00000 n 
+0000651717 00000 n 
+0000651781 00000 n 
+0000651845 00000 n 
+0000651909 00000 n 
+0000651973 00000 n 
+0000652038 00000 n 
+0000652101 00000 n 
+0000652165 00000 n 
+0000652230 00000 n 
+0000652294 00000 n 
+0000652358 00000 n 
+0000652423 00000 n 
+0000652487 00000 n 
+0000652551 00000 n 
+0000652615 00000 n 
+0000652679 00000 n 
+0000652743 00000 n 
+0000652808 00000 n 
+0000652872 00000 n 
+0000652936 00000 n 
+0000653001 00000 n 
+0000653065 00000 n 
+0000653129 00000 n 
+0000653194 00000 n 
+0000653258 00000 n 
+0000653322 00000 n 
+0000653387 00000 n 
+0000653451 00000 n 
+0000653515 00000 n 
+0000653580 00000 n 
+0000653644 00000 n 
+0000653707 00000 n 
+0000653772 00000 n 
+0000651160 00000 n 
+0001016990 00000 n 
+0000659451 00000 n 
+0000656486 00000 n 
+0000654002 00000 n 
+0000657450 00000 n 
+0000657579 00000 n 
+0000657643 00000 n 
+0000657707 00000 n 
+0000657771 00000 n 
+0000657836 00000 n 
+0000657902 00000 n 
+0000657968 00000 n 
+0000658032 00000 n 
+0000658097 00000 n 
+0000658163 00000 n 
+0000658227 00000 n 
+0000658292 00000 n 
+0000658356 00000 n 
+0000656669 00000 n 
+0000658550 00000 n 
+0000658743 00000 n 
+0000658807 00000 n 
+0000656826 00000 n 
+0000658871 00000 n 
+0000656984 00000 n 
+0000658935 00000 n 
+0000657140 00000 n 
+0000659127 00000 n 
+0000659191 00000 n 
+0000659257 00000 n 
+0000659323 00000 n 
+0000657297 00000 n 
+0000659387 00000 n 
+0000664998 00000 n 
+0000662549 00000 n 
+0000659553 00000 n 
+0000662865 00000 n 
+0000662929 00000 n 
+0000662696 00000 n 
+0000662993 00000 n 
+0000663057 00000 n 
+0000663121 00000 n 
+0000663184 00000 n 
+0000663250 00000 n 
+0000663316 00000 n 
+0000663382 00000 n 
+0000663445 00000 n 
+0000663511 00000 n 
+0000663577 00000 n 
+0000663642 00000 n 
+0000663707 00000 n 
+0000663772 00000 n 
+0000663836 00000 n 
+0000663902 00000 n 
+0000663966 00000 n 
+0000664032 00000 n 
+0000664096 00000 n 
+0000664160 00000 n 
+0000664224 00000 n 
+0000664289 00000 n 
+0000664353 00000 n 
+0000664417 00000 n 
+0000664612 00000 n 
+0000664676 00000 n 
+0000664742 00000 n 
+0000664806 00000 n 
+0000664870 00000 n 
+0000664934 00000 n 
+0001178915 00000 n 
+0000668400 00000 n 
+0000666927 00000 n 
+0000665128 00000 n 
+0000667053 00000 n 
+0000667117 00000 n 
+0000667181 00000 n 
+0000667245 00000 n 
+0000667309 00000 n 
+0000667373 00000 n 
+0000667437 00000 n 
+0000667501 00000 n 
+0000667565 00000 n 
+0000667629 00000 n 
+0000667693 00000 n 
+0000667757 00000 n 
+0000667821 00000 n 
+0000667885 00000 n 
+0000667950 00000 n 
+0000668014 00000 n 
+0000668079 00000 n 
+0000668143 00000 n 
+0000668208 00000 n 
+0000668272 00000 n 
+0000668336 00000 n 
+0000672815 00000 n 
+0000670511 00000 n 
+0000668502 00000 n 
+0000670810 00000 n 
+0000670874 00000 n 
+0000670938 00000 n 
+0000671002 00000 n 
+0000671066 00000 n 
+0000671130 00000 n 
+0000671194 00000 n 
+0000670658 00000 n 
+0000671385 00000 n 
+0000671449 00000 n 
+0000671513 00000 n 
+0000671579 00000 n 
+0000671643 00000 n 
+0000671707 00000 n 
+0000671771 00000 n 
+0000671836 00000 n 
+0000671902 00000 n 
+0000671967 00000 n 
+0000672031 00000 n 
+0000672096 00000 n 
+0000672162 00000 n 
+0000672225 00000 n 
+0000672290 00000 n 
+0000672356 00000 n 
+0000672422 00000 n 
+0000672488 00000 n 
+0000672554 00000 n 
+0000672620 00000 n 
+0000672686 00000 n 
+0000677321 00000 n 
+0000675012 00000 n 
+0000672945 00000 n 
+0000675138 00000 n 
+0000675202 00000 n 
+0000675331 00000 n 
+0000675395 00000 n 
+0000675458 00000 n 
+0000675522 00000 n 
+0000675586 00000 n 
+0000675650 00000 n 
+0000675714 00000 n 
+0000675779 00000 n 
+0000675842 00000 n 
+0000676032 00000 n 
+0000676096 00000 n 
+0000676159 00000 n 
+0000676222 00000 n 
+0000676286 00000 n 
+0000676350 00000 n 
+0000676414 00000 n 
+0000676479 00000 n 
+0000676543 00000 n 
+0000676608 00000 n 
+0000676672 00000 n 
+0000676737 00000 n 
+0000676801 00000 n 
+0000676995 00000 n 
+0000677059 00000 n 
+0000677125 00000 n 
+0000677191 00000 n 
+0000682841 00000 n 
+0000679411 00000 n 
+0000677437 00000 n 
+0000679537 00000 n 
+0000679666 00000 n 
+0000679730 00000 n 
+0000679796 00000 n 
+0000679862 00000 n 
+0000679926 00000 n 
+0000679992 00000 n 
+0000680058 00000 n 
+0000680124 00000 n 
+0000680188 00000 n 
+0000680253 00000 n 
+0000680319 00000 n 
+0000680383 00000 n 
+0000680447 00000 n 
+0000680512 00000 n 
+0000680577 00000 n 
+0000680641 00000 n 
+0000680706 00000 n 
+0000680771 00000 n 
+0000680837 00000 n 
+0000680901 00000 n 
+0000681224 00000 n 
+0000681288 00000 n 
+0000681354 00000 n 
+0000681418 00000 n 
+0000681482 00000 n 
+0000681546 00000 n 
+0000681610 00000 n 
+0000681674 00000 n 
+0000681738 00000 n 
+0000681801 00000 n 
+0000681866 00000 n 
+0000681932 00000 n 
+0000681996 00000 n 
+0000682060 00000 n 
+0000682124 00000 n 
+0000682189 00000 n 
+0000682255 00000 n 
+0000682319 00000 n 
+0000682514 00000 n 
+0000682578 00000 n 
+0000682644 00000 n 
+0000682709 00000 n 
+0000682775 00000 n 
+0000688475 00000 n 
+0000685365 00000 n 
+0000682957 00000 n 
+0000685491 00000 n 
+0000685555 00000 n 
+0000685619 00000 n 
+0000685685 00000 n 
+0000685749 00000 n 
+0000685815 00000 n 
+0000685881 00000 n 
+0000686075 00000 n 
+0000686268 00000 n 
+0000686332 00000 n 
+0000686396 00000 n 
+0000686462 00000 n 
+0000686528 00000 n 
+0000686592 00000 n 
+0000686656 00000 n 
+0000686722 00000 n 
+0000686786 00000 n 
+0000686851 00000 n 
+0000686917 00000 n 
+0000686981 00000 n 
+0000687046 00000 n 
+0000687110 00000 n 
+0000687176 00000 n 
+0000687240 00000 n 
+0000687305 00000 n 
+0000687370 00000 n 
+0000687436 00000 n 
+0000687631 00000 n 
+0000687695 00000 n 
+0000687761 00000 n 
+0000687827 00000 n 
+0000687891 00000 n 
+0000688086 00000 n 
+0000688150 00000 n 
+0000688216 00000 n 
+0000688281 00000 n 
+0000688347 00000 n 
+0000694764 00000 n 
+0000691213 00000 n 
+0000688591 00000 n 
+0000691520 00000 n 
+0000691649 00000 n 
+0000691713 00000 n 
+0000691360 00000 n 
+0000691908 00000 n 
+0000691972 00000 n 
+0000692037 00000 n 
+0000692165 00000 n 
+0000692229 00000 n 
+0000692358 00000 n 
+0000692422 00000 n 
+0000692488 00000 n 
+0000692553 00000 n 
+0000692681 00000 n 
+0000692744 00000 n 
+0000692808 00000 n 
+0000692874 00000 n 
+0000692938 00000 n 
+0000693002 00000 n 
+0000693068 00000 n 
+0000693134 00000 n 
+0000693200 00000 n 
+0000693266 00000 n 
+0000693330 00000 n 
+0000693396 00000 n 
+0000693460 00000 n 
+0000693526 00000 n 
+0000693592 00000 n 
+0000693656 00000 n 
+0000693722 00000 n 
+0000693788 00000 n 
+0000693854 00000 n 
+0000693920 00000 n 
+0000693986 00000 n 
+0000694050 00000 n 
+0000694116 00000 n 
+0000694180 00000 n 
+0000694244 00000 n 
+0000694308 00000 n 
+0000694373 00000 n 
+0000694439 00000 n 
+0000694505 00000 n 
+0000694571 00000 n 
+0000694636 00000 n 
+0000694700 00000 n 
+0001179040 00000 n 
+0000699685 00000 n 
+0000697164 00000 n 
+0000694880 00000 n 
+0000697290 00000 n 
+0000697419 00000 n 
+0000697483 00000 n 
+0000697547 00000 n 
+0000697611 00000 n 
+0000697740 00000 n 
+0000697804 00000 n 
+0000697870 00000 n 
+0000697999 00000 n 
+0000698062 00000 n 
+0000698128 00000 n 
+0000698194 00000 n 
+0000698260 00000 n 
+0000698326 00000 n 
+0000698392 00000 n 
+0000698520 00000 n 
+0000698584 00000 n 
+0000698648 00000 n 
+0000698777 00000 n 
+0000698841 00000 n 
+0000698907 00000 n 
+0000698973 00000 n 
+0000699039 00000 n 
+0000699168 00000 n 
+0000699232 00000 n 
+0000699360 00000 n 
+0000699424 00000 n 
+0000699490 00000 n 
+0000699556 00000 n 
+0000699621 00000 n 
+0000704166 00000 n 
+0000702308 00000 n 
+0000699787 00000 n 
+0000702614 00000 n 
+0000702743 00000 n 
+0000702807 00000 n 
+0000703002 00000 n 
+0000703066 00000 n 
+0000703132 00000 n 
+0000703196 00000 n 
+0000703262 00000 n 
+0000703326 00000 n 
+0000703392 00000 n 
+0000703458 00000 n 
+0000703653 00000 n 
+0000703717 00000 n 
+0000702455 00000 n 
+0000703781 00000 n 
+0000703974 00000 n 
+0000704038 00000 n 
+0000704102 00000 n 
+0000710172 00000 n 
+0000706832 00000 n 
+0000704296 00000 n 
+0000707655 00000 n 
+0000707719 00000 n 
+0000707783 00000 n 
+0000707978 00000 n 
+0000708042 00000 n 
+0000708106 00000 n 
+0000708172 00000 n 
+0000708235 00000 n 
+0000708300 00000 n 
+0000708365 00000 n 
+0000708431 00000 n 
+0000708495 00000 n 
+0000708560 00000 n 
+0000708625 00000 n 
+0000708689 00000 n 
+0000708754 00000 n 
+0000708819 00000 n 
+0000708885 00000 n 
+0000707006 00000 n 
+0000707170 00000 n 
+0000708949 00000 n 
+0000709013 00000 n 
+0000709078 00000 n 
+0000709143 00000 n 
+0000709207 00000 n 
+0000709272 00000 n 
+0000707334 00000 n 
+0000709337 00000 n 
+0000709401 00000 n 
+0000709466 00000 n 
+0000709531 00000 n 
+0000709595 00000 n 
+0000709660 00000 n 
+0000709852 00000 n 
+0000707491 00000 n 
+0000710045 00000 n 
+0000714386 00000 n 
+0000712587 00000 n 
+0000710274 00000 n 
+0000712713 00000 n 
+0000712777 00000 n 
+0000712906 00000 n 
+0000712970 00000 n 
+0000713165 00000 n 
+0000713229 00000 n 
+0000713295 00000 n 
+0000713487 00000 n 
+0000713551 00000 n 
+0000713615 00000 n 
+0000713679 00000 n 
+0000713744 00000 n 
+0000713808 00000 n 
+0000713873 00000 n 
+0000714065 00000 n 
+0000714129 00000 n 
+0000714322 00000 n 
+0000719352 00000 n 
+0000717362 00000 n 
+0000714502 00000 n 
+0000717488 00000 n 
+0000717552 00000 n 
+0000717616 00000 n 
+0000717680 00000 n 
+0000717745 00000 n 
+0000717809 00000 n 
+0000717874 00000 n 
+0000717939 00000 n 
+0000718003 00000 n 
+0000718068 00000 n 
+0000718133 00000 n 
+0000718197 00000 n 
+0000718261 00000 n 
+0000718325 00000 n 
+0000718389 00000 n 
+0000718583 00000 n 
+0000718646 00000 n 
+0000718709 00000 n 
+0000718775 00000 n 
+0000718839 00000 n 
+0000718903 00000 n 
+0000719096 00000 n 
+0000719160 00000 n 
+0000719224 00000 n 
+0000719288 00000 n 
+0000725467 00000 n 
+0000722507 00000 n 
+0000719454 00000 n 
+0000723529 00000 n 
+0000723593 00000 n 
+0000723658 00000 n 
+0000723721 00000 n 
+0000722690 00000 n 
+0000722858 00000 n 
+0000723786 00000 n 
+0000723850 00000 n 
+0000723025 00000 n 
+0000723915 00000 n 
+0000723979 00000 n 
+0000723195 00000 n 
+0000724044 00000 n 
+0000724108 00000 n 
+0000723359 00000 n 
+0000724174 00000 n 
+0000724238 00000 n 
+0000724302 00000 n 
+0000724497 00000 n 
+0000724560 00000 n 
+0000724624 00000 n 
+0000724688 00000 n 
+0000724753 00000 n 
+0000724819 00000 n 
+0000724885 00000 n 
+0000724949 00000 n 
+0000725014 00000 n 
+0000725080 00000 n 
+0000725144 00000 n 
+0000725209 00000 n 
+0000725273 00000 n 
+0000725337 00000 n 
+0000725402 00000 n 
+0001179165 00000 n 
+0000730575 00000 n 
+0000728238 00000 n 
+0000725583 00000 n 
+0000728711 00000 n 
+0000728775 00000 n 
+0000728841 00000 n 
+0000728906 00000 n 
+0000728394 00000 n 
+0000729098 00000 n 
+0000729161 00000 n 
+0000729227 00000 n 
+0000729292 00000 n 
+0000729356 00000 n 
+0000728553 00000 n 
+0000729420 00000 n 
+0000729486 00000 n 
+0000729550 00000 n 
+0000729614 00000 n 
+0000729678 00000 n 
+0000729742 00000 n 
+0000729807 00000 n 
+0000729870 00000 n 
+0000729933 00000 n 
+0000729997 00000 n 
+0000730062 00000 n 
+0000730126 00000 n 
+0000730190 00000 n 
+0000730253 00000 n 
+0000730318 00000 n 
+0000730382 00000 n 
+0000730446 00000 n 
+0000730510 00000 n 
+0000736293 00000 n 
+0000733408 00000 n 
+0000730691 00000 n 
+0000734559 00000 n 
+0000734623 00000 n 
+0000734687 00000 n 
+0000734751 00000 n 
+0000734815 00000 n 
+0000734879 00000 n 
+0000733600 00000 n 
+0000734944 00000 n 
+0000735008 00000 n 
+0000735072 00000 n 
+0000735136 00000 n 
+0000733758 00000 n 
+0000735330 00000 n 
+0000735394 00000 n 
+0000735458 00000 n 
+0000735521 00000 n 
+0000733916 00000 n 
+0000735586 00000 n 
+0000735650 00000 n 
+0000734072 00000 n 
+0000735715 00000 n 
+0000735778 00000 n 
+0000734231 00000 n 
+0000735972 00000 n 
+0000734391 00000 n 
+0000736165 00000 n 
+0000736229 00000 n 
+0000737750 00000 n 
+0000737234 00000 n 
+0000736395 00000 n 
+0000737360 00000 n 
+0000737424 00000 n 
+0000737488 00000 n 
+0000737554 00000 n 
+0000737620 00000 n 
+0000737684 00000 n 
+0000743143 00000 n 
+0000740467 00000 n 
+0000737894 00000 n 
+0000740943 00000 n 
+0000741135 00000 n 
+0000741199 00000 n 
+0000741264 00000 n 
+0000741585 00000 n 
+0000741777 00000 n 
+0000740623 00000 n 
+0000741841 00000 n 
+0000741907 00000 n 
+0000741973 00000 n 
+0000742039 00000 n 
+0000740782 00000 n 
+0000742105 00000 n 
+0000742170 00000 n 
+0000742235 00000 n 
+0000742300 00000 n 
+0000742365 00000 n 
+0000742431 00000 n 
+0000742497 00000 n 
+0000742561 00000 n 
+0000742625 00000 n 
+0000742690 00000 n 
+0000742755 00000 n 
+0000742949 00000 n 
+0000743013 00000 n 
+0001010755 00000 n 
+0001020811 00000 n 
+0000747776 00000 n 
+0000744980 00000 n 
+0000743287 00000 n 
+0000745652 00000 n 
+0000745910 00000 n 
+0000745145 00000 n 
+0000746103 00000 n 
+0000746166 00000 n 
+0000746232 00000 n 
+0000746298 00000 n 
+0000746364 00000 n 
+0000746428 00000 n 
+0000746492 00000 n 
+0000746556 00000 n 
+0000746620 00000 n 
+0000746686 00000 n 
+0000746749 00000 n 
+0000746813 00000 n 
+0000746877 00000 n 
+0000746941 00000 n 
+0000747005 00000 n 
+0000747071 00000 n 
+0000747135 00000 n 
+0000747199 00000 n 
+0000747263 00000 n 
+0000745312 00000 n 
+0000747456 00000 n 
+0000745487 00000 n 
+0000747520 00000 n 
+0000747584 00000 n 
+0000747647 00000 n 
+0000747712 00000 n 
+0000755196 00000 n 
+0000750114 00000 n 
+0000747934 00000 n 
+0000750591 00000 n 
+0000750913 00000 n 
+0000750977 00000 n 
+0000751043 00000 n 
+0000751107 00000 n 
+0000750270 00000 n 
+0000750432 00000 n 
+0000751171 00000 n 
+0000751236 00000 n 
+0000751300 00000 n 
+0000751365 00000 n 
+0000751429 00000 n 
+0000751493 00000 n 
+0000751558 00000 n 
+0000751623 00000 n 
+0000751688 00000 n 
+0000751754 00000 n 
+0000751820 00000 n 
+0000751885 00000 n 
+0000751950 00000 n 
+0000752015 00000 n 
+0000752079 00000 n 
+0000752143 00000 n 
+0000752207 00000 n 
+0000752272 00000 n 
+0000752337 00000 n 
+0000752402 00000 n 
+0000752466 00000 n 
+0000752530 00000 n 
+0000752595 00000 n 
+0000752659 00000 n 
+0000752723 00000 n 
+0000752788 00000 n 
+0000752852 00000 n 
+0000752918 00000 n 
+0000752984 00000 n 
+0000753050 00000 n 
+0000753115 00000 n 
+0000753180 00000 n 
+0000753244 00000 n 
+0000753308 00000 n 
+0000753374 00000 n 
+0000753438 00000 n 
+0000753504 00000 n 
+0000753570 00000 n 
+0000753636 00000 n 
+0000753702 00000 n 
+0000753768 00000 n 
+0000753834 00000 n 
+0000753900 00000 n 
+0000753966 00000 n 
+0000754032 00000 n 
+0000754097 00000 n 
+0000754162 00000 n 
+0000754226 00000 n 
+0000754290 00000 n 
+0000754356 00000 n 
+0000754421 00000 n 
+0000754486 00000 n 
+0000754551 00000 n 
+0000754615 00000 n 
+0000754679 00000 n 
+0000754744 00000 n 
+0000754809 00000 n 
+0000754874 00000 n 
+0000754939 00000 n 
+0000755003 00000 n 
+0000755067 00000 n 
+0000755132 00000 n 
+0001179290 00000 n 
+0001000909 00000 n 
+0000758101 00000 n 
+0000756765 00000 n 
+0000755340 00000 n 
+0000757063 00000 n 
+0000757127 00000 n 
+0000757193 00000 n 
+0000757259 00000 n 
+0000757325 00000 n 
+0000757389 00000 n 
+0000756912 00000 n 
+0000757710 00000 n 
+0000757774 00000 n 
+0000757840 00000 n 
+0000757905 00000 n 
+0000757971 00000 n 
+0000758035 00000 n 
+0000762827 00000 n 
+0000760701 00000 n 
+0000758231 00000 n 
+0000760827 00000 n 
+0000761148 00000 n 
+0000761212 00000 n 
+0000761278 00000 n 
+0000761342 00000 n 
+0000761536 00000 n 
+0000761599 00000 n 
+0000761662 00000 n 
+0000761726 00000 n 
+0000761790 00000 n 
+0000761855 00000 n 
+0000761921 00000 n 
+0000761987 00000 n 
+0000762053 00000 n 
+0000762119 00000 n 
+0000762183 00000 n 
+0000762247 00000 n 
+0000762312 00000 n 
+0000762376 00000 n 
+0000762441 00000 n 
+0000762505 00000 n 
+0000762569 00000 n 
+0000762634 00000 n 
+0000762698 00000 n 
+0000762763 00000 n 
+0000769589 00000 n 
+0000766298 00000 n 
+0000762957 00000 n 
+0000766424 00000 n 
+0000766488 00000 n 
+0000766553 00000 n 
+0000766619 00000 n 
+0000766685 00000 n 
+0000766878 00000 n 
+0000766942 00000 n 
+0000767006 00000 n 
+0000767070 00000 n 
+0000767134 00000 n 
+0000767199 00000 n 
+0000767264 00000 n 
+0000767329 00000 n 
+0000767393 00000 n 
+0000767457 00000 n 
+0000767522 00000 n 
+0000767587 00000 n 
+0000767651 00000 n 
+0000767716 00000 n 
+0000767781 00000 n 
+0000767845 00000 n 
+0000767910 00000 n 
+0000767975 00000 n 
+0000768039 00000 n 
+0000768104 00000 n 
+0000768169 00000 n 
+0000768232 00000 n 
+0000768297 00000 n 
+0000768362 00000 n 
+0000768426 00000 n 
+0000768491 00000 n 
+0000768556 00000 n 
+0000768620 00000 n 
+0000768685 00000 n 
+0000768750 00000 n 
+0000768814 00000 n 
+0000768879 00000 n 
+0000768944 00000 n 
+0000769008 00000 n 
+0000769073 00000 n 
+0000769138 00000 n 
+0000769202 00000 n 
+0000769267 00000 n 
+0000769332 00000 n 
+0000769396 00000 n 
+0000769461 00000 n 
+0000769526 00000 n 
+0000775926 00000 n 
+0000774562 00000 n 
+0000772052 00000 n 
+0000769691 00000 n 
+0000772362 00000 n 
+0000772490 00000 n 
+0000772555 00000 n 
+0000772620 00000 n 
+0000772683 00000 n 
+0000772748 00000 n 
+0000772813 00000 n 
+0000772877 00000 n 
+0000772942 00000 n 
+0000773007 00000 n 
+0000773071 00000 n 
+0000773136 00000 n 
+0000773201 00000 n 
+0000773267 00000 n 
+0000773333 00000 n 
+0000773397 00000 n 
+0000773461 00000 n 
+0000773526 00000 n 
+0000773591 00000 n 
+0000773655 00000 n 
+0000773720 00000 n 
+0000773785 00000 n 
+0000773849 00000 n 
+0000773914 00000 n 
+0000773979 00000 n 
+0000774043 00000 n 
+0000774108 00000 n 
+0000774302 00000 n 
+0000772199 00000 n 
+0000774366 00000 n 
+0000774432 00000 n 
+0000826101 00000 n 
+0000775779 00000 n 
+0000774664 00000 n 
+0000825522 00000 n 
+0000825586 00000 n 
+0000825650 00000 n 
+0000825779 00000 n 
+0000825843 00000 n 
+0000825909 00000 n 
+0000825973 00000 n 
+0000825361 00000 n 
+0000831062 00000 n 
+0000828610 00000 n 
+0000826254 00000 n 
+0000828736 00000 n 
+0000828865 00000 n 
+0000828929 00000 n 
+0000828993 00000 n 
+0000829059 00000 n 
+0000829125 00000 n 
+0000829191 00000 n 
+0000829255 00000 n 
+0000829319 00000 n 
+0000829383 00000 n 
+0000829448 00000 n 
+0000829513 00000 n 
+0000829577 00000 n 
+0000829642 00000 n 
+0000829707 00000 n 
+0000829771 00000 n 
+0000829836 00000 n 
+0000830029 00000 n 
+0000830093 00000 n 
+0000830285 00000 n 
+0000830349 00000 n 
+0000830413 00000 n 
+0000830476 00000 n 
+0000830542 00000 n 
+0000830606 00000 n 
+0000830672 00000 n 
+0000830736 00000 n 
+0000830802 00000 n 
+0000830866 00000 n 
+0000830932 00000 n 
+0000830996 00000 n 
+0001179415 00000 n 
+0000835600 00000 n 
+0000833798 00000 n 
+0000831164 00000 n 
+0000833924 00000 n 
+0000833988 00000 n 
+0000834181 00000 n 
+0000834245 00000 n 
+0000834311 00000 n 
+0000834375 00000 n 
+0000834440 00000 n 
+0000834504 00000 n 
+0000834697 00000 n 
+0000834761 00000 n 
+0000834827 00000 n 
+0000834893 00000 n 
+0000834957 00000 n 
+0000835152 00000 n 
+0000835344 00000 n 
+0000835408 00000 n 
+0000835472 00000 n 
+0000835536 00000 n 
+0000840785 00000 n 
+0000838668 00000 n 
+0000835716 00000 n 
+0000838978 00000 n 
+0000839042 00000 n 
+0000839234 00000 n 
+0000839297 00000 n 
+0000838815 00000 n 
+0000839362 00000 n 
+0000839426 00000 n 
+0000839492 00000 n 
+0000839557 00000 n 
+0000839881 00000 n 
+0000839945 00000 n 
+0000840011 00000 n 
+0000840075 00000 n 
+0000840139 00000 n 
+0000840203 00000 n 
+0000840268 00000 n 
+0000840334 00000 n 
+0000840400 00000 n 
+0000840464 00000 n 
+0000840528 00000 n 
+0000840594 00000 n 
+0000840659 00000 n 
+0000840723 00000 n 
+0000845504 00000 n 
+0000843894 00000 n 
+0000840901 00000 n 
+0000844020 00000 n 
+0000844084 00000 n 
+0000844149 00000 n 
+0000844214 00000 n 
+0000844278 00000 n 
+0000844343 00000 n 
+0000844409 00000 n 
+0000844473 00000 n 
+0000844537 00000 n 
+0000844602 00000 n 
+0000844667 00000 n 
+0000844731 00000 n 
+0000844796 00000 n 
+0000844860 00000 n 
+0000844925 00000 n 
+0000844991 00000 n 
+0000845055 00000 n 
+0000845247 00000 n 
+0000845311 00000 n 
+0000845377 00000 n 
+0000849699 00000 n 
+0000848160 00000 n 
+0000845620 00000 n 
+0000848286 00000 n 
+0000848415 00000 n 
+0000848479 00000 n 
+0000848542 00000 n 
+0000848606 00000 n 
+0000848670 00000 n 
+0000848733 00000 n 
+0000848799 00000 n 
+0000848864 00000 n 
+0000848930 00000 n 
+0000848994 00000 n 
+0000849188 00000 n 
+0000849251 00000 n 
+0000849315 00000 n 
+0000849379 00000 n 
+0000849572 00000 n 
+0000853468 00000 n 
+0000851802 00000 n 
+0000849815 00000 n 
+0000851928 00000 n 
+0000851992 00000 n 
+0000852121 00000 n 
+0000852314 00000 n 
+0000852504 00000 n 
+0000852697 00000 n 
+0000852890 00000 n 
+0000852954 00000 n 
+0000853147 00000 n 
+0000853340 00000 n 
+0000856995 00000 n 
+0000855582 00000 n 
+0000853570 00000 n 
+0000855708 00000 n 
+0000855772 00000 n 
+0000855901 00000 n 
+0000855965 00000 n 
+0000856031 00000 n 
+0000856095 00000 n 
+0000856288 00000 n 
+0000856352 00000 n 
+0000856545 00000 n 
+0000856738 00000 n 
+0000856801 00000 n 
+0000856867 00000 n 
+0001179540 00000 n 
+0000862687 00000 n 
+0000859921 00000 n 
+0000857097 00000 n 
+0000860047 00000 n 
+0000860176 00000 n 
+0000860240 00000 n 
+0000860306 00000 n 
+0000860372 00000 n 
+0000860437 00000 n 
+0000860630 00000 n 
+0000860822 00000 n 
+0000860885 00000 n 
+0000860948 00000 n 
+0000861012 00000 n 
+0000861077 00000 n 
+0000861141 00000 n 
+0000861205 00000 n 
+0000861269 00000 n 
+0000861334 00000 n 
+0000861398 00000 n 
+0000861463 00000 n 
+0000861527 00000 n 
+0000861592 00000 n 
+0000861655 00000 n 
+0000861720 00000 n 
+0000861784 00000 n 
+0000861849 00000 n 
+0000861913 00000 n 
+0000861978 00000 n 
+0000862042 00000 n 
+0000862107 00000 n 
+0000862171 00000 n 
+0000862365 00000 n 
+0000862429 00000 n 
+0000862492 00000 n 
+0000862557 00000 n 
+0000862623 00000 n 
+0000868372 00000 n 
+0000865853 00000 n 
+0000862803 00000 n 
+0000865979 00000 n 
+0000866043 00000 n 
+0000866107 00000 n 
+0000866173 00000 n 
+0000866237 00000 n 
+0000866303 00000 n 
+0000866369 00000 n 
+0000866433 00000 n 
+0000866499 00000 n 
+0000866563 00000 n 
+0000866627 00000 n 
+0000866691 00000 n 
+0000866756 00000 n 
+0000866819 00000 n 
+0000866884 00000 n 
+0000866950 00000 n 
+0000867014 00000 n 
+0000867079 00000 n 
+0000867145 00000 n 
+0000867208 00000 n 
+0000867273 00000 n 
+0000867338 00000 n 
+0000867402 00000 n 
+0000867466 00000 n 
+0000867531 00000 n 
+0000867595 00000 n 
+0000867659 00000 n 
+0000867723 00000 n 
+0000867789 00000 n 
+0000867854 00000 n 
+0000867920 00000 n 
+0000867984 00000 n 
+0000868048 00000 n 
+0000868114 00000 n 
+0000868178 00000 n 
+0000868244 00000 n 
+0000868308 00000 n 
+0000873296 00000 n 
+0000870352 00000 n 
+0000868488 00000 n 
+0000870652 00000 n 
+0000870716 00000 n 
+0000870780 00000 n 
+0000870844 00000 n 
+0000870910 00000 n 
+0000870976 00000 n 
+0000871171 00000 n 
+0000870499 00000 n 
+0000871364 00000 n 
+0000871428 00000 n 
+0000871494 00000 n 
+0000871689 00000 n 
+0000871753 00000 n 
+0000871817 00000 n 
+0000871883 00000 n 
+0000871947 00000 n 
+0000872011 00000 n 
+0000872075 00000 n 
+0000872140 00000 n 
+0000872204 00000 n 
+0000872268 00000 n 
+0000872333 00000 n 
+0000872397 00000 n 
+0000872461 00000 n 
+0000872526 00000 n 
+0000872590 00000 n 
+0000872654 00000 n 
+0000872719 00000 n 
+0000872783 00000 n 
+0000872847 00000 n 
+0000872912 00000 n 
+0000872974 00000 n 
+0000873038 00000 n 
+0000873103 00000 n 
+0000873167 00000 n 
+0000873231 00000 n 
+0000877591 00000 n 
+0000875287 00000 n 
+0000873398 00000 n 
+0000875605 00000 n 
+0000875733 00000 n 
+0000875797 00000 n 
+0000875861 00000 n 
+0000875926 00000 n 
+0000875990 00000 n 
+0000876055 00000 n 
+0000876119 00000 n 
+0000876183 00000 n 
+0000876248 00000 n 
+0000876312 00000 n 
+0000876376 00000 n 
+0000876441 00000 n 
+0000876504 00000 n 
+0000876568 00000 n 
+0000876633 00000 n 
+0000876697 00000 n 
+0000876761 00000 n 
+0000876826 00000 n 
+0000876888 00000 n 
+0000875434 00000 n 
+0000877080 00000 n 
+0000877271 00000 n 
+0000877335 00000 n 
+0000877399 00000 n 
+0000877463 00000 n 
+0000877527 00000 n 
+0000881680 00000 n 
+0000880400 00000 n 
+0000877707 00000 n 
+0000880526 00000 n 
+0000880655 00000 n 
+0000880719 00000 n 
+0000880783 00000 n 
+0000880847 00000 n 
+0000880911 00000 n 
+0000880975 00000 n 
+0000881167 00000 n 
+0000881231 00000 n 
+0000881295 00000 n 
+0000881359 00000 n 
+0000881423 00000 n 
+0000881616 00000 n 
+0000885164 00000 n 
+0000883949 00000 n 
+0000881796 00000 n 
+0000884075 00000 n 
+0000884139 00000 n 
+0000884203 00000 n 
+0000884396 00000 n 
+0000884460 00000 n 
+0000884524 00000 n 
+0000884588 00000 n 
+0000884652 00000 n 
+0000884716 00000 n 
+0000884779 00000 n 
+0000884843 00000 n 
+0000885036 00000 n 
+0000885100 00000 n 
+0001179665 00000 n 
+0000889461 00000 n 
+0000887868 00000 n 
+0000885266 00000 n 
+0000888365 00000 n 
+0000888429 00000 n 
+0000888495 00000 n 
+0000888561 00000 n 
+0000888024 00000 n 
+0000888625 00000 n 
+0000888690 00000 n 
+0000888192 00000 n 
+0000888883 00000 n 
+0000888946 00000 n 
+0000889010 00000 n 
+0000889203 00000 n 
+0000889267 00000 n 
+0000889331 00000 n 
+0000889395 00000 n 
+0000893793 00000 n 
+0000892408 00000 n 
+0000889577 00000 n 
+0000892707 00000 n 
+0000892771 00000 n 
+0000892835 00000 n 
+0000892899 00000 n 
+0000892962 00000 n 
+0000893154 00000 n 
+0000893218 00000 n 
+0000893282 00000 n 
+0000892555 00000 n 
+0000893346 00000 n 
+0000893408 00000 n 
+0000893472 00000 n 
+0000893536 00000 n 
+0000893600 00000 n 
+0000893664 00000 n 
+0000895112 00000 n 
+0000894666 00000 n 
+0000893909 00000 n 
+0000894792 00000 n 
+0000894921 00000 n 
+0000894985 00000 n 
+0000895048 00000 n 
+0000899952 00000 n 
+0000897500 00000 n 
+0000895228 00000 n 
+0000897815 00000 n 
+0000898136 00000 n 
+0000898200 00000 n 
+0000898266 00000 n 
+0000898330 00000 n 
+0000898395 00000 n 
+0000898461 00000 n 
+0000898525 00000 n 
+0000898590 00000 n 
+0000898656 00000 n 
+0000898721 00000 n 
+0000898785 00000 n 
+0000898978 00000 n 
+0000899042 00000 n 
+0000897647 00000 n 
+0000899234 00000 n 
+0000899298 00000 n 
+0000899364 00000 n 
+0000899430 00000 n 
+0000899496 00000 n 
+0000899560 00000 n 
+0000899626 00000 n 
+0000899690 00000 n 
+0000899756 00000 n 
+0000899822 00000 n 
+0000905024 00000 n 
+0000902829 00000 n 
+0000900096 00000 n 
+0000902955 00000 n 
+0000903019 00000 n 
+0000903148 00000 n 
+0000903212 00000 n 
+0000903276 00000 n 
+0000903341 00000 n 
+0000903407 00000 n 
+0000903470 00000 n 
+0000903533 00000 n 
+0000903597 00000 n 
+0000903660 00000 n 
+0000903726 00000 n 
+0000903790 00000 n 
+0000903854 00000 n 
+0000903920 00000 n 
+0000903984 00000 n 
+0000904048 00000 n 
+0000904112 00000 n 
+0000904176 00000 n 
+0000904242 00000 n 
+0000904308 00000 n 
+0000904374 00000 n 
+0000904439 00000 n 
+0000904505 00000 n 
+0000904571 00000 n 
+0000904637 00000 n 
+0000904830 00000 n 
+0000904894 00000 n 
+0000904958 00000 n 
+0000910145 00000 n 
+0000908275 00000 n 
+0000905182 00000 n 
+0000908401 00000 n 
+0000908465 00000 n 
+0000908529 00000 n 
+0000908593 00000 n 
+0000908657 00000 n 
+0000908721 00000 n 
+0000908787 00000 n 
+0000908982 00000 n 
+0000909046 00000 n 
+0000909112 00000 n 
+0000909176 00000 n 
+0000909242 00000 n 
+0000909306 00000 n 
+0000909371 00000 n 
+0000909435 00000 n 
+0000909499 00000 n 
+0000909563 00000 n 
+0000909627 00000 n 
+0000909692 00000 n 
+0000909756 00000 n 
+0000909820 00000 n 
+0000909886 00000 n 
+0000909950 00000 n 
+0000910015 00000 n 
+0001179790 00000 n 
+0000916125 00000 n 
+0000913677 00000 n 
+0000910275 00000 n 
+0000913803 00000 n 
+0000913867 00000 n 
+0000913996 00000 n 
+0000914060 00000 n 
+0000914124 00000 n 
+0000914188 00000 n 
+0000914252 00000 n 
+0000914316 00000 n 
+0000914382 00000 n 
+0000914446 00000 n 
+0000914510 00000 n 
+0000914574 00000 n 
+0000914638 00000 n 
+0000914704 00000 n 
+0000914770 00000 n 
+0000914836 00000 n 
+0000914900 00000 n 
+0000914964 00000 n 
+0000915028 00000 n 
+0000915092 00000 n 
+0000915156 00000 n 
+0000915220 00000 n 
+0000915284 00000 n 
+0000915348 00000 n 
+0000915412 00000 n 
+0000915477 00000 n 
+0000915541 00000 n 
+0000915605 00000 n 
+0000915669 00000 n 
+0000915735 00000 n 
+0000915801 00000 n 
+0000915863 00000 n 
+0000915927 00000 n 
+0000915993 00000 n 
+0000916059 00000 n 
+0000920003 00000 n 
+0000918655 00000 n 
+0000916255 00000 n 
+0000918781 00000 n 
+0000918845 00000 n 
+0000918909 00000 n 
+0000918975 00000 n 
+0000919039 00000 n 
+0000919103 00000 n 
+0000919167 00000 n 
+0000919360 00000 n 
+0000919424 00000 n 
+0000919616 00000 n 
+0000919680 00000 n 
+0000919746 00000 n 
+0000919810 00000 n 
+0000919874 00000 n 
+0000919938 00000 n 
+0000925473 00000 n 
+0000923276 00000 n 
+0000920133 00000 n 
+0000923402 00000 n 
+0000923466 00000 n 
+0000923530 00000 n 
+0000923594 00000 n 
+0000923659 00000 n 
+0000923724 00000 n 
+0000923789 00000 n 
+0000923855 00000 n 
+0000923919 00000 n 
+0000923983 00000 n 
+0000924048 00000 n 
+0000924114 00000 n 
+0000924180 00000 n 
+0000924244 00000 n 
+0000924310 00000 n 
+0000924376 00000 n 
+0000924442 00000 n 
+0000924506 00000 n 
+0000924572 00000 n 
+0000924636 00000 n 
+0000924700 00000 n 
+0000924764 00000 n 
+0000924828 00000 n 
+0000924892 00000 n 
+0000924956 00000 n 
+0000925020 00000 n 
+0000925086 00000 n 
+0000925150 00000 n 
+0000925216 00000 n 
+0000925282 00000 n 
+0000925347 00000 n 
+0000925411 00000 n 
+0000930272 00000 n 
+0000928207 00000 n 
+0000925589 00000 n 
+0000928333 00000 n 
+0000928397 00000 n 
+0000928461 00000 n 
+0000928525 00000 n 
+0000928591 00000 n 
+0000928655 00000 n 
+0000928718 00000 n 
+0000928784 00000 n 
+0000928848 00000 n 
+0000928913 00000 n 
+0000928977 00000 n 
+0000929041 00000 n 
+0000929105 00000 n 
+0000929168 00000 n 
+0000929232 00000 n 
+0000929296 00000 n 
+0000929360 00000 n 
+0000929426 00000 n 
+0000929492 00000 n 
+0000929558 00000 n 
+0000929622 00000 n 
+0000929688 00000 n 
+0000929754 00000 n 
+0000929819 00000 n 
+0000929883 00000 n 
+0000929948 00000 n 
+0000930014 00000 n 
+0000930080 00000 n 
+0000930145 00000 n 
+0000934569 00000 n 
+0000933215 00000 n 
+0000930374 00000 n 
+0000933341 00000 n 
+0000933405 00000 n 
+0000933534 00000 n 
+0000933598 00000 n 
+0000933663 00000 n 
+0000933725 00000 n 
+0000933791 00000 n 
+0000933857 00000 n 
+0000933920 00000 n 
+0000933985 00000 n 
+0000934051 00000 n 
+0000934117 00000 n 
+0000934181 00000 n 
+0000934247 00000 n 
+0000934311 00000 n 
+0000934375 00000 n 
+0000934441 00000 n 
+0000934505 00000 n 
+0000938820 00000 n 
+0000937029 00000 n 
+0000934699 00000 n 
+0000937657 00000 n 
+0000937721 00000 n 
+0000937785 00000 n 
+0000937851 00000 n 
+0000937917 00000 n 
+0000938239 00000 n 
+0000937194 00000 n 
+0000937345 00000 n 
+0000937501 00000 n 
+0000938431 00000 n 
+0000938495 00000 n 
+0000938559 00000 n 
+0000938625 00000 n 
+0000938690 00000 n 
+0000938754 00000 n 
+0001179915 00000 n 
+0000941727 00000 n 
+0000940375 00000 n 
+0000938950 00000 n 
+0000940501 00000 n 
+0000940565 00000 n 
+0000940629 00000 n 
+0000940824 00000 n 
+0000940888 00000 n 
+0000940952 00000 n 
+0000941017 00000 n 
+0000941083 00000 n 
+0000941274 00000 n 
+0000941338 00000 n 
+0000941533 00000 n 
+0000941597 00000 n 
+0000941661 00000 n 
+0000946757 00000 n 
+0000944350 00000 n 
+0000941829 00000 n 
+0000944826 00000 n 
+0000945018 00000 n 
+0000945211 00000 n 
+0000945275 00000 n 
+0000945341 00000 n 
+0000945407 00000 n 
+0000944506 00000 n 
+0000944666 00000 n 
+0000945471 00000 n 
+0000945536 00000 n 
+0000945600 00000 n 
+0000945666 00000 n 
+0000945730 00000 n 
+0000945926 00000 n 
+0000945990 00000 n 
+0000946055 00000 n 
+0000946121 00000 n 
+0000946184 00000 n 
+0000946374 00000 n 
+0000946438 00000 n 
+0000946502 00000 n 
+0000946566 00000 n 
+0000946631 00000 n 
+0000946694 00000 n 
+0000950660 00000 n 
+0000948725 00000 n 
+0000946901 00000 n 
+0000948851 00000 n 
+0000948915 00000 n 
+0000949110 00000 n 
+0000949174 00000 n 
+0000949237 00000 n 
+0000949301 00000 n 
+0000949367 00000 n 
+0000949431 00000 n 
+0000949495 00000 n 
+0000949559 00000 n 
+0000949753 00000 n 
+0000949817 00000 n 
+0000949883 00000 n 
+0000949947 00000 n 
+0000950011 00000 n 
+0000950077 00000 n 
+0000950142 00000 n 
+0000950208 00000 n 
+0000950272 00000 n 
+0000950336 00000 n 
+0000950531 00000 n 
+0000950595 00000 n 
+0000954581 00000 n 
+0000952971 00000 n 
+0000950804 00000 n 
+0000953097 00000 n 
+0000953161 00000 n 
+0000953225 00000 n 
+0000953291 00000 n 
+0000953355 00000 n 
+0000953419 00000 n 
+0000953483 00000 n 
+0000953547 00000 n 
+0000953611 00000 n 
+0000953677 00000 n 
+0000953743 00000 n 
+0000953807 00000 n 
+0000953870 00000 n 
+0000953934 00000 n 
+0000953998 00000 n 
+0000954063 00000 n 
+0000954129 00000 n 
+0000954193 00000 n 
+0000954259 00000 n 
+0000954454 00000 n 
+0000954517 00000 n 
+0000957981 00000 n 
+0000956574 00000 n 
+0000954697 00000 n 
+0000956879 00000 n 
+0000956943 00000 n 
+0000957007 00000 n 
+0000957073 00000 n 
+0000957268 00000 n 
+0000957331 00000 n 
+0000957395 00000 n 
+0000957461 00000 n 
+0000956721 00000 n 
+0000957657 00000 n 
+0000957721 00000 n 
+0000957785 00000 n 
+0000957851 00000 n 
+0000957915 00000 n 
+0000964330 00000 n 
+0000961151 00000 n 
+0000958111 00000 n 
+0000961277 00000 n 
+0000961469 00000 n 
+0000961533 00000 n 
+0000961729 00000 n 
+0000961793 00000 n 
+0000961859 00000 n 
+0000961925 00000 n 
+0000961991 00000 n 
+0000962057 00000 n 
+0000962121 00000 n 
+0000962187 00000 n 
+0000962251 00000 n 
+0000962315 00000 n 
+0000962379 00000 n 
+0000962445 00000 n 
+0000962509 00000 n 
+0000962573 00000 n 
+0000962639 00000 n 
+0000962705 00000 n 
+0000962771 00000 n 
+0000962837 00000 n 
+0000962903 00000 n 
+0000962969 00000 n 
+0000963033 00000 n 
+0000963099 00000 n 
+0000963163 00000 n 
+0000963227 00000 n 
+0000963293 00000 n 
+0000963357 00000 n 
+0000963422 00000 n 
+0000963486 00000 n 
+0000963552 00000 n 
+0000963748 00000 n 
+0000963812 00000 n 
+0000963878 00000 n 
+0000963944 00000 n 
+0000964008 00000 n 
+0000964073 00000 n 
+0000964138 00000 n 
+0000964202 00000 n 
+0000964266 00000 n 
+0001180040 00000 n 
+0000968526 00000 n 
+0000966143 00000 n 
+0000964474 00000 n 
+0000966461 00000 n 
+0000966784 00000 n 
+0000966848 00000 n 
+0000966912 00000 n 
+0000966976 00000 n 
+0000967040 00000 n 
+0000967104 00000 n 
+0000967168 00000 n 
+0000967232 00000 n 
+0000967296 00000 n 
+0000967360 00000 n 
+0000967425 00000 n 
+0000967489 00000 n 
+0000967555 00000 n 
+0000967621 00000 n 
+0000966290 00000 n 
+0000967815 00000 n 
+0000967878 00000 n 
+0000967942 00000 n 
+0000968007 00000 n 
+0000968072 00000 n 
+0000968136 00000 n 
+0000968200 00000 n 
+0000968266 00000 n 
+0000968332 00000 n 
+0000968396 00000 n 
+0000968460 00000 n 
+0000971162 00000 n 
+0000969283 00000 n 
+0000968656 00000 n 
+0000969409 00000 n 
+0000969473 00000 n 
+0000969539 00000 n 
+0000969603 00000 n 
+0000969666 00000 n 
+0000969732 00000 n 
+0000969798 00000 n 
+0000969862 00000 n 
+0000969926 00000 n 
+0000969992 00000 n 
+0000970058 00000 n 
+0000970122 00000 n 
+0000970186 00000 n 
+0000970252 00000 n 
+0000970318 00000 n 
+0000970382 00000 n 
+0000970446 00000 n 
+0000970512 00000 n 
+0000970578 00000 n 
+0000970642 00000 n 
+0000970706 00000 n 
+0000970772 00000 n 
+0000970838 00000 n 
+0000970902 00000 n 
+0000970966 00000 n 
+0000971032 00000 n 
+0000971098 00000 n 
+0000974062 00000 n 
+0000971987 00000 n 
+0000971250 00000 n 
+0000972113 00000 n 
+0000972177 00000 n 
+0000972241 00000 n 
+0000972307 00000 n 
+0000972373 00000 n 
+0000972437 00000 n 
+0000972501 00000 n 
+0000972567 00000 n 
+0000972633 00000 n 
+0000972697 00000 n 
+0000972761 00000 n 
+0000972827 00000 n 
+0000973023 00000 n 
+0000973087 00000 n 
+0000973151 00000 n 
+0000973217 00000 n 
+0000973282 00000 n 
+0000973346 00000 n 
+0000973410 00000 n 
+0000973476 00000 n 
+0000973542 00000 n 
+0000973606 00000 n 
+0000973670 00000 n 
+0000973736 00000 n 
+0000973802 00000 n 
+0000973866 00000 n 
+0000973930 00000 n 
+0000973996 00000 n 
+0000975389 00000 n 
+0000974680 00000 n 
+0000974164 00000 n 
+0000974806 00000 n 
+0000974870 00000 n 
+0000974934 00000 n 
+0000974998 00000 n 
+0000975064 00000 n 
+0000975130 00000 n 
+0000975194 00000 n 
+0000975258 00000 n 
+0000975323 00000 n 
+0000979486 00000 n 
+0000978145 00000 n 
+0000975477 00000 n 
+0000978271 00000 n 
+0000978462 00000 n 
+0000978526 00000 n 
+0000978590 00000 n 
+0000978782 00000 n 
+0000978846 00000 n 
+0000978910 00000 n 
+0000979102 00000 n 
+0000979166 00000 n 
+0000979230 00000 n 
+0000979294 00000 n 
+0000979358 00000 n 
+0000979422 00000 n 
+0000983549 00000 n 
+0000982652 00000 n 
+0000979588 00000 n 
+0000982778 00000 n 
+0000982842 00000 n 
+0000982906 00000 n 
+0000983100 00000 n 
+0000983164 00000 n 
+0000983357 00000 n 
+0000983421 00000 n 
+0000983485 00000 n 
+0001180165 00000 n 
+0000989268 00000 n 
+0000986826 00000 n 
+0000983651 00000 n 
+0000986952 00000 n 
+0000987016 00000 n 
+0000987080 00000 n 
+0000987274 00000 n 
+0000987338 00000 n 
+0000987402 00000 n 
+0000987465 00000 n 
+0000987530 00000 n 
+0000987594 00000 n 
+0000987659 00000 n 
+0000987723 00000 n 
+0000987788 00000 n 
+0000987852 00000 n 
+0000987917 00000 n 
+0000987980 00000 n 
+0000988045 00000 n 
+0000988109 00000 n 
+0000988174 00000 n 
+0000988238 00000 n 
+0000988303 00000 n 
+0000988367 00000 n 
+0000988432 00000 n 
+0000988496 00000 n 
+0000988561 00000 n 
+0000988625 00000 n 
+0000988690 00000 n 
+0000988753 00000 n 
+0000988818 00000 n 
+0000988882 00000 n 
+0000988947 00000 n 
+0000989011 00000 n 
+0000989076 00000 n 
+0000989140 00000 n 
+0000989204 00000 n 
+0000993112 00000 n 
+0000992021 00000 n 
+0000989370 00000 n 
+0000992147 00000 n 
+0000992211 00000 n 
+0000992275 00000 n 
+0000992469 00000 n 
+0000992533 00000 n 
+0000992597 00000 n 
+0000992791 00000 n 
+0000992855 00000 n 
+0000993048 00000 n 
+0000997006 00000 n 
+0000995721 00000 n 
+0000993214 00000 n 
+0000995847 00000 n 
+0000995911 00000 n 
+0000996105 00000 n 
+0000996299 00000 n 
+0000996491 00000 n 
+0000996555 00000 n 
+0000996621 00000 n 
+0000996815 00000 n 
+0000996879 00000 n 
+0000996942 00000 n 
+0000998271 00000 n 
+0000997953 00000 n 
+0000997108 00000 n 
+0000998079 00000 n 
+0000998143 00000 n 
+0000998207 00000 n 
+0001004074 00000 n 
+0001000281 00000 n 
+0000998359 00000 n 
+0001000587 00000 n 
+0001000780 00000 n 
+0001001037 00000 n 
+0001001101 00000 n 
+0001001165 00000 n 
+0001001231 00000 n 
+0001001296 00000 n 
+0001001425 00000 n 
+0001001555 00000 n 
+0001001619 00000 n 
+0001001683 00000 n 
+0001001748 00000 n 
+0001001814 00000 n 
+0001001878 00000 n 
+0001002008 00000 n 
+0001002072 00000 n 
+0001002136 00000 n 
+0001002200 00000 n 
+0001002264 00000 n 
+0001002330 00000 n 
+0001002394 00000 n 
+0001002458 00000 n 
+0001002522 00000 n 
+0001002586 00000 n 
+0001002650 00000 n 
+0001002714 00000 n 
+0001002778 00000 n 
+0001002844 00000 n 
+0001002910 00000 n 
+0001002974 00000 n 
+0001003038 00000 n 
+0001003102 00000 n 
+0001003166 00000 n 
+0001003232 00000 n 
+0001003298 00000 n 
+0001003363 00000 n 
+0001003428 00000 n 
+0001003493 00000 n 
+0001003558 00000 n 
+0001003624 00000 n 
+0001003688 00000 n 
+0001003752 00000 n 
+0001003816 00000 n 
+0001003880 00000 n 
+0001003946 00000 n 
+0001000428 00000 n 
+0001004010 00000 n 
+0001008574 00000 n 
+0001005739 00000 n 
+0001004204 00000 n 
+0001005865 00000 n 
+0001005994 00000 n 
+0001006123 00000 n 
+0001006187 00000 n 
+0001006251 00000 n 
+0001006317 00000 n 
+0001006381 00000 n 
+0001006446 00000 n 
+0001006576 00000 n 
+0001006640 00000 n 
+0001006834 00000 n 
+0001006898 00000 n 
+0001006962 00000 n 
+0001007220 00000 n 
+0001007283 00000 n 
+0001007347 00000 n 
+0001007411 00000 n 
+0001007476 00000 n 
+0001007606 00000 n 
+0001007670 00000 n 
+0001007863 00000 n 
+0001007927 00000 n 
+0001007991 00000 n 
+0001008055 00000 n 
+0001008120 00000 n 
+0001008250 00000 n 
+0001008380 00000 n 
+0001008444 00000 n 
+0001008508 00000 n 
+0001180290 00000 n 
+0001012370 00000 n 
+0001010176 00000 n 
+0001008704 00000 n 
+0001010302 00000 n 
+0001010366 00000 n 
+0001010430 00000 n 
+0001010496 00000 n 
+0001010560 00000 n 
+0001010626 00000 n 
+0001010885 00000 n 
+0001010948 00000 n 
+0001011012 00000 n 
+0001011078 00000 n 
+0001011143 00000 n 
+0001011273 00000 n 
+0001011337 00000 n 
+0001011401 00000 n 
+0001011530 00000 n 
+0001011659 00000 n 
+0001011723 00000 n 
+0001011787 00000 n 
+0001011853 00000 n 
+0001011919 00000 n 
+0001011984 00000 n 
+0001012112 00000 n 
+0001012242 00000 n 
+0001012306 00000 n 
+0001017247 00000 n 
+0001014122 00000 n 
+0001012500 00000 n 
+0001014599 00000 n 
+0001014728 00000 n 
+0001014858 00000 n 
+0001014922 00000 n 
+0001014986 00000 n 
+0001015052 00000 n 
+0001015117 00000 n 
+0001015183 00000 n 
+0001015249 00000 n 
+0001015314 00000 n 
+0001015443 00000 n 
+0001015507 00000 n 
+0001014278 00000 n 
+0001015570 00000 n 
+0001015636 00000 n 
+0001015700 00000 n 
+0001015764 00000 n 
+0001015828 00000 n 
+0001015892 00000 n 
+0001015958 00000 n 
+0001016022 00000 n 
+0001016086 00000 n 
+0001016150 00000 n 
+0001016216 00000 n 
+0001016282 00000 n 
+0001016346 00000 n 
+0001016410 00000 n 
+0001016474 00000 n 
+0001014437 00000 n 
+0001016540 00000 n 
+0001016798 00000 n 
+0001016862 00000 n 
+0001016926 00000 n 
+0001017120 00000 n 
+0001017183 00000 n 
+0001020104 00000 n 
+0001021134 00000 n 
+0001018749 00000 n 
+0001017363 00000 n 
+0001018875 00000 n 
+0001018939 00000 n 
+0001019068 00000 n 
+0001019132 00000 n 
+0001019196 00000 n 
+0001019261 00000 n 
+0001019390 00000 n 
+0001019519 00000 n 
+0001019583 00000 n 
+0001019647 00000 n 
+0001019711 00000 n 
+0001019777 00000 n 
+0001019843 00000 n 
+0001019909 00000 n 
+0001019975 00000 n 
+0001020234 00000 n 
+0001020298 00000 n 
+0001020361 00000 n 
+0001020489 00000 n 
+0001020553 00000 n 
+0001020617 00000 n 
+0001020683 00000 n 
+0001020941 00000 n 
+0001021005 00000 n 
+0001021069 00000 n 
+0001025814 00000 n 
+0001023292 00000 n 
+0001021236 00000 n 
+0001023418 00000 n 
+0001023482 00000 n 
+0001023546 00000 n 
+0001023676 00000 n 
+0001023740 00000 n 
+0001023804 00000 n 
+0001023868 00000 n 
+0001023934 00000 n 
+0001024000 00000 n 
+0001024066 00000 n 
+0001024132 00000 n 
+0001024198 00000 n 
+0001024263 00000 n 
+0001024328 00000 n 
+0001024394 00000 n 
+0001024460 00000 n 
+0001024588 00000 n 
+0001024718 00000 n 
+0001024782 00000 n 
+0001024846 00000 n 
+0001024912 00000 n 
+0001025042 00000 n 
+0001025106 00000 n 
+0001025170 00000 n 
+0001025299 00000 n 
+0001025429 00000 n 
+0001025493 00000 n 
+0001025556 00000 n 
+0001025620 00000 n 
+0001025684 00000 n 
+0001025748 00000 n 
+0001028654 00000 n 
+0001028621 00000 n 
+0001028752 00000 n 
+0001046736 00000 n 
+0001057338 00000 n 
+0001067997 00000 n 
+0001081157 00000 n 
+0001102537 00000 n 
+0001121636 00000 n 
+0001139321 00000 n 
+0001162241 00000 n 
+0001177317 00000 n 
+0001180406 00000 n 
+0001180532 00000 n 
+0001180658 00000 n 
+0001180784 00000 n 
+0001180883 00000 n 
+0001180975 00000 n 
+0001211972 00000 n 
+0001272112 00000 n 
+0001272153 00000 n 
+0001272193 00000 n 
+0001272328 00000 n 
 trailer
 <<
 /Size 5535
 /Root 5533 0 R
 /Info 5534 0 R
-/ID [<AC9FBA1A5F444FAD110EEAC21342C06C> <AC9FBA1A5F444FAD110EEAC21342C06C>]
+/ID [<ECC68BEC95BD5BE8A58AA4EA3FF8B397> <ECC68BEC95BD5BE8A58AA4EA3FF8B397>]
 >>
 startxref
-1272596
+1272592
 %%EOF
diff --git a/docs/en/txt/Bugzilla-Guide.txt b/docs/en/txt/Bugzilla-Guide.txt
index c2f2cd009e27dfa80e0ff262aba93d9b6d8eaa86..9f1424a82957a1ab5396080111a49b892892e3f9 100644
--- a/docs/en/txt/Bugzilla-Guide.txt
+++ b/docs/en/txt/Bugzilla-Guide.txt
@@ -1,9 +1,9 @@
 
-The Bugzilla Guide - 3.3.1 Development Release
+The Bugzilla Guide - 3.3.2 Development Release
 
 The Bugzilla Team
 
-   2009-01-05
+   2009-02-02
 
    This is the documentation for Bugzilla, a bug-tracking system from
    mozilla.org. Bugzilla is an enterprise-class piece of software that tracks
@@ -177,7 +177,7 @@ Chapter 1. About This Guide
 
 1.3. New Versions
 
-   This is the 3.3.1 version of The Bugzilla Guide. It is so named to match the
+   This is the 3.3.2 version of The Bugzilla Guide. It is so named to match the
    current version of Bugzilla. This version of the guide, like its associated
    Bugzilla version, is a development version.
 
diff --git a/docs/en/xml/Bugzilla-Guide.xml b/docs/en/xml/Bugzilla-Guide.xml
index 751b2d002b5927290998af15fe3e40a538a81551..e18fde9cc82c467c4a009de2bc659589960a483e 100644
--- a/docs/en/xml/Bugzilla-Guide.xml
+++ b/docs/en/xml/Bugzilla-Guide.xml
@@ -34,9 +34,9 @@
      For a devel release, simple bump bz-ver and bz-date
 -->
 
-<!ENTITY bz-ver "3.3.1">
+<!ENTITY bz-ver "3.3.2">
 <!ENTITY bz-nextver "3.4">
-<!ENTITY bz-date "2009-01-05">
+<!ENTITY bz-date "2009-02-02">
 <!ENTITY current-year "2009">
 
 <!ENTITY landfillbase "http://landfill.bugzilla.org/bugzilla-tip/">
diff --git a/docs/en/xml/CVS/Entries b/docs/en/xml/CVS/Entries
index b088ab51963e3dd9a05b136d096e697eab712e6c..349daacc03e37d2d11b97893ff7593541eb40b41 100644
--- a/docs/en/xml/CVS/Entries
+++ b/docs/en/xml/CVS/Entries
@@ -1,19 +1,19 @@
-/.cvsignore/1.1/Fri Apr  4 06:48:17 2008//TBUGZILLA-3_3_1
-/Bugzilla-Guide.xml/1.81/Tue Jan  6 07:34:42 2009//TBUGZILLA-3_3_1
-/about.xml/1.26/Fri Apr  4 06:48:18 2008//TBUGZILLA-3_3_1
-/administration.xml/1.93/Wed Dec 10 18:26:54 2008//TBUGZILLA-3_3_1
-/conventions.xml/1.12/Fri Apr  4 06:48:20 2008//TBUGZILLA-3_3_1
-/customization.xml/1.45/Fri Aug  8 01:26:36 2008//TBUGZILLA-3_3_1
-/gfdl.xml/1.11/Fri Apr  4 06:48:21 2008//TBUGZILLA-3_3_1
-/glossary.xml/1.25/Fri Apr  4 06:48:21 2008//TBUGZILLA-3_3_1
-/index.xml/1.6/Fri Apr  4 06:48:21 2008//TBUGZILLA-3_3_1
-/installation.xml/1.163/Wed Dec 17 16:19:23 2008//TBUGZILLA-3_3_1
-/integration.xml/1.14/Fri Apr  4 06:48:25 2008//TBUGZILLA-3_3_1
-/introduction.xml/1.6/Fri Apr  4 06:48:25 2008//TBUGZILLA-3_3_1
-/modules.xml/1.13/Fri Apr  4 06:48:25 2008//TBUGZILLA-3_3_1
-/patches.xml/1.25/Fri Apr  4 06:48:25 2008//TBUGZILLA-3_3_1
-/requiredsoftware.xml/1.7/Fri Apr  4 06:48:25 2008//TBUGZILLA-3_3_1
-/security.xml/1.19/Wed May 21 00:01:04 2008//TBUGZILLA-3_3_1
-/troubleshooting.xml/1.13/Fri Apr  4 06:48:25 2008//TBUGZILLA-3_3_1
-/using.xml/1.79/Fri Apr  4 06:48:26 2008//TBUGZILLA-3_3_1
+/.cvsignore/1.1/Fri Apr  4 06:48:17 2008//TBUGZILLA-3_3_2
+/Bugzilla-Guide.xml/1.82/Mon Feb  2 23:27:38 2009//TBUGZILLA-3_3_2
+/about.xml/1.26/Fri Apr  4 06:48:18 2008//TBUGZILLA-3_3_2
+/administration.xml/1.93/Wed Dec 10 18:26:54 2008//TBUGZILLA-3_3_2
+/conventions.xml/1.12/Fri Apr  4 06:48:20 2008//TBUGZILLA-3_3_2
+/customization.xml/1.45/Fri Aug  8 01:26:36 2008//TBUGZILLA-3_3_2
+/gfdl.xml/1.11/Fri Apr  4 06:48:21 2008//TBUGZILLA-3_3_2
+/glossary.xml/1.25/Fri Apr  4 06:48:21 2008//TBUGZILLA-3_3_2
+/index.xml/1.6/Fri Apr  4 06:48:21 2008//TBUGZILLA-3_3_2
+/installation.xml/1.164/Thu Jan  8 23:42:53 2009//TBUGZILLA-3_3_2
+/integration.xml/1.14/Fri Apr  4 06:48:25 2008//TBUGZILLA-3_3_2
+/introduction.xml/1.6/Fri Apr  4 06:48:25 2008//TBUGZILLA-3_3_2
+/modules.xml/1.13/Fri Apr  4 06:48:25 2008//TBUGZILLA-3_3_2
+/patches.xml/1.25/Fri Apr  4 06:48:25 2008//TBUGZILLA-3_3_2
+/requiredsoftware.xml/1.7/Fri Apr  4 06:48:25 2008//TBUGZILLA-3_3_2
+/security.xml/1.19/Wed May 21 00:01:04 2008//TBUGZILLA-3_3_2
+/troubleshooting.xml/1.13/Fri Apr  4 06:48:25 2008//TBUGZILLA-3_3_2
+/using.xml/1.79/Fri Apr  4 06:48:26 2008//TBUGZILLA-3_3_2
 D
diff --git a/docs/en/xml/CVS/Tag b/docs/en/xml/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/docs/en/xml/CVS/Tag
+++ b/docs/en/xml/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/docs/en/xml/bugzilla.ent b/docs/en/xml/bugzilla.ent
index e78530c3388a1f398733382e1cdc5b0fa1d9a526..fe13bf468dfe4df20e0ce0e29fae7af25191fa59 100644
--- a/docs/en/xml/bugzilla.ent
+++ b/docs/en/xml/bugzilla.ent
@@ -5,12 +5,14 @@
 <!ENTITY min-digest-sha-ver "any">
 <!ENTITY min-date-format-ver "2.21">
 <!ENTITY min-datetime-ver "0.28">
+<!ENTITY min-datetime-timezone-ver "0.71">
 <!ENTITY min-file-spec-ver "0.84">
 <!ENTITY min-dbi-ver "1.41">
 <!ENTITY min-template-ver "2.15">
 <!ENTITY min-email-send-ver "2.00">
 <!ENTITY min-email-mime-ver "1.861">
 <!ENTITY min-email-mime-modifier-ver "1.442">
+<!ENTITY min-uri-ver "any">
 <!ENTITY min-gd-ver "1.20">
 <!ENTITY min-chart-base-ver "1.0">
 <!ENTITY min-template-plugin-gd-image-ver "any">
diff --git a/docs/en/xml/installation.xml b/docs/en/xml/installation.xml
index 43c2d9422c73d24cae12400526aced40c1f9a669..244f080014447f050a7ed8d1577daae6a4f90e34 100644
--- a/docs/en/xml/installation.xml
+++ b/docs/en/xml/installation.xml
@@ -1,5 +1,5 @@
 <!-- <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"> -->
-<!-- $Id: installation.xml,v 1.163 2008/12/17 16:19:23 lpsolit%gmail.com Exp $ -->
+<!-- $Id: installation.xml,v 1.164 2009/01/08 23:42:53 lpsolit%gmail.com Exp $ -->
 <chapter id="installing-bugzilla">
   <title>Installing Bugzilla</title>
 
@@ -1576,7 +1576,7 @@ AddType application/rdf+xml .rdf</screen>
         based system such as GNU/Linux.  That said, if you do want to get
         Bugzilla running on Windows, you will need to make the following
         adjustments. A detailed step-by-step
-        <ulink url="http://www.bugzilla.org/docs/win32install.html">
+        <ulink url="https://wiki.mozilla.org/Bugzilla:Win32Install">
         installation guide for Windows</ulink> is also available
         if you need more help with your installation.
       </para>
diff --git a/docs/lib/CVS/Tag b/docs/lib/CVS/Tag
index 8d751ae8a4f2d445287de3bcefb6f8a590304c1c..1b5eaed1d1b6ae40508059e711ded1b472bbb1d5 100644
--- a/docs/lib/CVS/Tag
+++ b/docs/lib/CVS/Tag
@@ -1 +1 @@
-TBUGZILLA-3_3_1
+TBUGZILLA-3_3_2
diff --git a/docs/lib/Pod/CVS/Tag b/docs/lib/Pod/CVS/Tag
index 8d751ae8a4f2d445287de3bcefb6f8a590304c1c..1b5eaed1d1b6ae40508059e711ded1b472bbb1d5 100644
--- a/docs/lib/Pod/CVS/Tag
+++ b/docs/lib/Pod/CVS/Tag
@@ -1 +1 @@
-TBUGZILLA-3_3_1
+TBUGZILLA-3_3_2
diff --git a/docs/lib/Pod/Simple/CVS/Tag b/docs/lib/Pod/Simple/CVS/Tag
index 8d751ae8a4f2d445287de3bcefb6f8a590304c1c..1b5eaed1d1b6ae40508059e711ded1b472bbb1d5 100644
--- a/docs/lib/Pod/Simple/CVS/Tag
+++ b/docs/lib/Pod/Simple/CVS/Tag
@@ -1 +1 @@
-TBUGZILLA-3_3_1
+TBUGZILLA-3_3_2
diff --git a/docs/lib/Pod/Simple/HTML/CVS/Entries b/docs/lib/Pod/Simple/HTML/CVS/Entries
index b0b7464da520e7682a9ceead12c27200e4fe20b6..d2df8347beff87820f217a56d7b6085aeec39c48 100644
--- a/docs/lib/Pod/Simple/HTML/CVS/Entries
+++ b/docs/lib/Pod/Simple/HTML/CVS/Entries
@@ -1,2 +1,2 @@
-/Bugzilla.pm/1.1/Tue Sep  5 19:00:56 2006//TBUGZILLA-3_3_1
+/Bugzilla.pm/1.1/Tue Sep  5 19:00:56 2006//TBUGZILLA-3_3_2
 D
diff --git a/docs/lib/Pod/Simple/HTML/CVS/Tag b/docs/lib/Pod/Simple/HTML/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/docs/lib/Pod/Simple/HTML/CVS/Tag
+++ b/docs/lib/Pod/Simple/HTML/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/docs/lib/Pod/Simple/HTMLBatch/CVS/Entries b/docs/lib/Pod/Simple/HTMLBatch/CVS/Entries
index 44aa0ee537a891bd3baaf8fbaa21251cce20edbb..2dd900d2c4f9ec600b7a1a7b490c0446fb890261 100644
--- a/docs/lib/Pod/Simple/HTMLBatch/CVS/Entries
+++ b/docs/lib/Pod/Simple/HTMLBatch/CVS/Entries
@@ -1,2 +1,2 @@
-/Bugzilla.pm/1.5/Wed Nov 26 00:55:59 2008//TBUGZILLA-3_3_1
+/Bugzilla.pm/1.5/Wed Nov 26 00:55:59 2008//TBUGZILLA-3_3_2
 D
diff --git a/docs/lib/Pod/Simple/HTMLBatch/CVS/Tag b/docs/lib/Pod/Simple/HTMLBatch/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/docs/lib/Pod/Simple/HTMLBatch/CVS/Tag
+++ b/docs/lib/Pod/Simple/HTMLBatch/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/editfields.cgi b/editfields.cgi
index 4467530441f9153bd2126f90deb5d0d24a4a81b8..09147d69ab6b0d289ca93c525648603468de0f77 100644
--- a/editfields.cgi
+++ b/editfields.cgi
@@ -64,6 +64,7 @@ elsif ($action eq 'new') {
         enter_bug   => scalar $cgi->param('enter_bug'),
         obsolete    => scalar $cgi->param('obsolete'),
         custom      => 1,
+        buglist     => (scalar $cgi->param('type') == FIELD_TYPE_MULTI_SELECT ? 0 : 1),
         visibility_field_id => scalar $cgi->param('visibility_field_id'),
         visibility_value_id => scalar $cgi->param('visibility_value_id'),
         value_field_id => scalar $cgi->param('value_field_id'),
diff --git a/editflagtypes.cgi b/editflagtypes.cgi
index d77c6b8a3cd3f3a771acdb96d4ffe7ab8ae82045..4dbaae573019bb230b96a5de1384c07ff21fba6c 100755
--- a/editflagtypes.cgi
+++ b/editflagtypes.cgi
@@ -80,7 +80,7 @@ elsif ($action eq 'edit')           { edit($action);    }
 elsif ($action eq 'insert')         { insert($token);   }
 elsif ($action eq 'update')         { update($token);   }
 elsif ($action eq 'confirmdelete')  { confirmDelete();  } 
-elsif ($action eq 'delete')         { deleteType(undef, $token); }
+elsif ($action eq 'delete')         { deleteType($token); }
 elsif ($action eq 'deactivate')     { deactivate($token); }
 else { 
     ThrowCodeError("action_unrecognized", { action => $action });
@@ -460,9 +460,8 @@ sub update {
 
 
 sub confirmDelete {
-  my $flag_type = validateID();
+    my $flag_type = validateID();
 
-  if ($flag_type->flag_count) {
     $vars->{'flag_type'} = $flag_type;
     $vars->{'token'} = issue_session_token('delete_flagtype');
     # Return the appropriate HTTP response headers.
@@ -471,20 +470,13 @@ sub confirmDelete {
     # Generate and return the UI (HTML page) from the appropriate template.
     $template->process("admin/flag-type/confirm-delete.html.tmpl", $vars)
       || ThrowTemplateError($template->error());
-  } 
-  else {
-    # We should *always* ask if the admin really wants to delete
-    # a flagtype, even if there is no flag belonging to this type.
-    my $token = issue_session_token('delete_flagtype');
-    deleteType($flag_type, $token);
-  }
 }
 
 
 sub deleteType {
-    my $flag_type = shift || validateID();
     my $token = shift;
     check_token_data($token, 'delete_flagtype');
+    my $flag_type = validateID();
     my $id = $flag_type->id;
     my $dbh = Bugzilla->dbh;
 
diff --git a/editgroups.cgi b/editgroups.cgi
index 7dd8a7b6304e56995cf5eee5e69c718ff1ab75d6..475b805cc175c730ca27c3a5a7ffeb42b75c18f8 100755
--- a/editgroups.cgi
+++ b/editgroups.cgi
@@ -262,7 +262,7 @@ if ($action eq 'del') {
     }
 
     # Group inheritance no longer appears in user_group_map.
-    my $grouplist = join(',', @{Bugzilla::User->flatten_group_membership($gid)});
+    my $grouplist = join(',', @{Bugzilla::Group->flatten_group_membership($gid)});
     my $hasusers =
         $dbh->selectrow_array("SELECT 1 FROM user_group_map
                                WHERE group_id IN ($grouplist) AND isbless = 0 " .
@@ -337,7 +337,7 @@ if ($action eq 'delete') {
     my $cantdelete = 0;
 
     # Group inheritance no longer appears in user_group_map.
-    my $grouplist = join(',', @{Bugzilla::User->flatten_group_membership($gid)});
+    my $grouplist = join(',', @{Bugzilla::Group->flatten_group_membership($gid)});
     my $hasusers =
         $dbh->selectrow_array("SELECT 1 FROM user_group_map
                                WHERE group_id IN ($grouplist) AND isbless = 0 " .
diff --git a/editkeywords.cgi b/editkeywords.cgi
index dbc92971d6f83676f65aa0ad09d2c4c1a2fe4a6f..76bba4817714ed002715766835c5d5672d5fff49 100755
--- a/editkeywords.cgi
+++ b/editkeywords.cgi
@@ -151,26 +151,23 @@ if ($action eq 'update') {
     exit;
 }
 
-
-if ($action eq 'delete') {
+if ($action eq 'del') {
     my $keyword =  new Bugzilla::Keyword($key_id)
         || ThrowCodeError('invalid_keyword_id', { id => $key_id });
 
     $vars->{'keyword'} = $keyword;
+    $vars->{'token'} = issue_session_token('delete_keyword');
 
-    # We need this token even if there is no bug using this keyword.
-    $token = issue_session_token('delete_keyword');
-
-    if (!$cgi->param('reallydelete') && $keyword->bug_count) {
-        $vars->{'token'} = $token;
+    print $cgi->header();
+    $template->process("admin/keywords/confirm-delete.html.tmpl", $vars)
+      || ThrowTemplateError($template->error());
+    exit;
+}
 
-        print $cgi->header();
-        $template->process("admin/keywords/confirm-delete.html.tmpl", $vars)
-            || ThrowTemplateError($template->error());
-        exit;
-    }
-    # We cannot do this check earlier as we have to check 'reallydelete' first.
+if ($action eq 'delete') {
     check_token_data($token, 'delete_keyword');
+    my $keyword =  new Bugzilla::Keyword($key_id)
+        || ThrowCodeError('invalid_keyword_id', { id => $key_id });
 
     $dbh->do('DELETE FROM keywords WHERE keywordid = ?', undef, $keyword->id);
     $dbh->do('DELETE FROM keyworddefs WHERE id = ?', undef, $keyword->id);
diff --git a/editusers.cgi b/editusers.cgi
index 6dac967886550d824e4bafdf1ef232c9493cf936..3d8b661844d8bfaa530e4e603ce8e96e0c283f2c 100755
--- a/editusers.cgi
+++ b/editusers.cgi
@@ -164,7 +164,7 @@ if ($action eq 'search') {
         # Handle selection by group.
         if ($grouprestrict eq '1') {
             my $grouplist = join(',',
-                @{Bugzilla::User->flatten_group_membership($group->id)});
+                @{Bugzilla::Group->flatten_group_membership($group->id)});
             $query .= " $nextCondition ugm.group_id IN($grouplist) ";
         }
         $query .= ' ORDER BY profiles.login_name';
diff --git a/email_in.pl b/email_in.pl
index bed5a1477ccdf3f9a96b7d6df971c983a149fe11..1edce55d8268c167d5091abf563c9f1fe3c12a71 100644
--- a/email_in.pl
+++ b/email_in.pl
@@ -47,6 +47,7 @@ use Bugzilla::Error;
 use Bugzilla::Mailer;
 use Bugzilla::User;
 use Bugzilla::Util;
+use Bugzilla::Token;
 
 #############
 # Constants #
@@ -201,6 +202,7 @@ sub process_bug {
         $cgi->param(-name => $field, -value => $fields{$field});
     }
     $cgi->param('longdesclength', scalar $bug->longdescs);
+    $cgi->param('token', issue_hash_token([$bug->id, $bug->delta_ts]));
 
     require 'process_bug.cgi';
 }
diff --git a/enter_bug.cgi b/enter_bug.cgi
index d463a7a11eead83f3949bc71e0a822c9f15cf6e5..ef0314bcafaf4669cf67ab95e259db5a77b618f6 100755
--- a/enter_bug.cgi
+++ b/enter_bug.cgi
@@ -422,14 +422,17 @@ if ($cloned_bug_id) {
     # We need to ensure that we respect the 'insider' status of
     # the first comment, if it has one. Either way, make a note
     # that this bug was cloned from another bug.
-
-    my $isprivate             = $cloned_bug->longdescs->[0]->{'isprivate'};
+    # We cannot use $cloned_bug->longdescs because this method
+    # depends on the "comment_sort_order" user pref, and we
+    # really want the first comment of the bug.
+    my $bug_desc = Bugzilla::Bug::GetComments($cloned_bug_id, 'oldest_to_newest');
+    my $isprivate = $bug_desc->[0]->{'isprivate'};
 
     $vars->{'comment'}        = "";
     $vars->{'commentprivacy'} = 0;
 
-    if ( !($isprivate) || Bugzilla->user->is_insider ) {
-        $vars->{'comment'}        = $cloned_bug->longdescs->[0]->{'body'};
+    if (!$isprivate || Bugzilla->user->is_insider) {
+        $vars->{'comment'}        = $bug_desc->[0]->{'body'};
         $vars->{'commentprivacy'} = $isprivate;
     }
 
diff --git a/extensions/CVS/Tag b/extensions/CVS/Tag
index 8d751ae8a4f2d445287de3bcefb6f8a590304c1c..1b5eaed1d1b6ae40508059e711ded1b472bbb1d5 100644
--- a/extensions/CVS/Tag
+++ b/extensions/CVS/Tag
@@ -1 +1 @@
-TBUGZILLA-3_3_1
+TBUGZILLA-3_3_2
diff --git a/extensions/example/CVS/Entries b/extensions/example/CVS/Entries
index aa5cd15f78df102abd5749780d73621409876783..d8f58e50f1615ee503e2814b76b37e037a38d4f4 100644
--- a/extensions/example/CVS/Entries
+++ b/extensions/example/CVS/Entries
@@ -1,5 +1,5 @@
-/disabled/1.1/Fri Oct 19 07:58:49 2007//TBUGZILLA-3_3_1
-/info.pl/1.1/Mon May 19 18:38:27 2008//TBUGZILLA-3_3_1
+/disabled/1.1/Fri Oct 19 07:58:49 2007//TBUGZILLA-3_3_2
+/info.pl/1.1/Mon May 19 18:38:27 2008//TBUGZILLA-3_3_2
 D/code////
 D/lib////
 D/template////
diff --git a/extensions/example/CVS/Tag b/extensions/example/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/extensions/example/CVS/Tag
+++ b/extensions/example/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/extensions/example/code/CVS/Entries b/extensions/example/code/CVS/Entries
index 77cfcdfc7065f3dfb77f5b508af0b67b4ac85468..22b76f1e9ce1cc3ab172f1a3009253edac58fd05 100644
--- a/extensions/example/code/CVS/Entries
+++ b/extensions/example/code/CVS/Entries
@@ -1,17 +1,17 @@
-/auth-login_methods.pl/1.1/Wed Aug  6 23:38:29 2008//TBUGZILLA-3_3_1
-/auth-verify_methods.pl/1.1/Wed Aug  6 23:38:29 2008//TBUGZILLA-3_3_1
-/bug-columns.pl/1.1/Thu Aug 21 22:56:49 2008//TBUGZILLA-3_3_1
-/bug-end_of_update.pl/1.1/Wed Nov  5 19:15:07 2008//TBUGZILLA-3_3_1
-/bug-fields.pl/1.1/Thu Aug 21 22:56:49 2008//TBUGZILLA-3_3_1
-/buglist-columns.pl/1.1/Sat Jun 28 18:04:55 2008//TBUGZILLA-3_3_1
-/colchange-columns.pl/1.1/Tue Aug 19 21:28:03 2008//TBUGZILLA-3_3_1
-/config-add_panels.pl/1.1/Wed Aug  6 23:38:29 2008//TBUGZILLA-3_3_1
-/config-modify_panels.pl/1.1/Wed Aug  6 23:38:29 2008//TBUGZILLA-3_3_1
-/config.pl/1.1/Mon May  5 23:01:25 2008//TBUGZILLA-3_3_1
-/flag-end_of_update.pl/1.1/Wed Nov  5 19:15:07 2008//TBUGZILLA-3_3_1
-/install-before_final_checks.pl/1.1/Thu Aug 21 22:58:46 2008//TBUGZILLA-3_3_1
-/mailer-before_send.pl/1.1/Mon Oct 20 00:04:45 2008//TBUGZILLA-3_3_1
-/product-confirm_delete.pl/1.2/Thu Dec 18 17:33:35 2008//TBUGZILLA-3_3_1
-/webservice-error_codes.pl/1.1/Tue May 27 22:09:05 2008//TBUGZILLA-3_3_1
-/webservice.pl/1.2/Fri Oct 19 08:01:51 2007//TBUGZILLA-3_3_1
+/auth-login_methods.pl/1.1/Wed Aug  6 23:38:29 2008//TBUGZILLA-3_3_2
+/auth-verify_methods.pl/1.1/Wed Aug  6 23:38:29 2008//TBUGZILLA-3_3_2
+/bug-columns.pl/1.1/Thu Aug 21 22:56:49 2008//TBUGZILLA-3_3_2
+/bug-end_of_update.pl/1.1/Wed Nov  5 19:15:07 2008//TBUGZILLA-3_3_2
+/bug-fields.pl/1.1/Thu Aug 21 22:56:49 2008//TBUGZILLA-3_3_2
+/buglist-columns.pl/1.1/Sat Jun 28 18:04:55 2008//TBUGZILLA-3_3_2
+/colchange-columns.pl/1.1/Tue Aug 19 21:28:03 2008//TBUGZILLA-3_3_2
+/config-add_panels.pl/1.1/Wed Aug  6 23:38:29 2008//TBUGZILLA-3_3_2
+/config-modify_panels.pl/1.1/Wed Aug  6 23:38:29 2008//TBUGZILLA-3_3_2
+/config.pl/1.1/Mon May  5 23:01:25 2008//TBUGZILLA-3_3_2
+/flag-end_of_update.pl/1.1/Wed Nov  5 19:15:07 2008//TBUGZILLA-3_3_2
+/install-before_final_checks.pl/1.1/Thu Aug 21 22:58:46 2008//TBUGZILLA-3_3_2
+/mailer-before_send.pl/1.1/Mon Oct 20 00:04:45 2008//TBUGZILLA-3_3_2
+/product-confirm_delete.pl/1.2/Thu Dec 18 17:33:35 2008//TBUGZILLA-3_3_2
+/webservice-error_codes.pl/1.1/Tue May 27 22:09:05 2008//TBUGZILLA-3_3_2
+/webservice.pl/1.2/Fri Oct 19 08:01:51 2007//TBUGZILLA-3_3_2
 D
diff --git a/extensions/example/code/CVS/Tag b/extensions/example/code/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/extensions/example/code/CVS/Tag
+++ b/extensions/example/code/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/extensions/example/lib/CVS/Entries b/extensions/example/lib/CVS/Entries
index 352769480f92e86466a5128f0aa4de192106fa0d..d63176b3694e8ecba6578eed72716d71ec1187b6 100644
--- a/extensions/example/lib/CVS/Entries
+++ b/extensions/example/lib/CVS/Entries
@@ -1,5 +1,5 @@
-/AuthLogin.pm/1.1/Wed Aug  6 23:38:31 2008//TBUGZILLA-3_3_1
-/AuthVerify.pm/1.1/Wed Aug  6 23:38:31 2008//TBUGZILLA-3_3_1
-/ConfigExample.pm/1.1/Mon May  5 23:01:31 2008//TBUGZILLA-3_3_1
-/WSExample.pm/1.3/Tue May 27 22:09:17 2008//TBUGZILLA-3_3_1
+/AuthLogin.pm/1.1/Wed Aug  6 23:38:31 2008//TBUGZILLA-3_3_2
+/AuthVerify.pm/1.1/Wed Aug  6 23:38:31 2008//TBUGZILLA-3_3_2
+/ConfigExample.pm/1.1/Mon May  5 23:01:31 2008//TBUGZILLA-3_3_2
+/WSExample.pm/1.3/Tue May 27 22:09:17 2008//TBUGZILLA-3_3_2
 D
diff --git a/extensions/example/lib/CVS/Tag b/extensions/example/lib/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/extensions/example/lib/CVS/Tag
+++ b/extensions/example/lib/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/extensions/example/template/CVS/Tag b/extensions/example/template/CVS/Tag
index 8d751ae8a4f2d445287de3bcefb6f8a590304c1c..1b5eaed1d1b6ae40508059e711ded1b472bbb1d5 100644
--- a/extensions/example/template/CVS/Tag
+++ b/extensions/example/template/CVS/Tag
@@ -1 +1 @@
-TBUGZILLA-3_3_1
+TBUGZILLA-3_3_2
diff --git a/extensions/example/template/en/CVS/Tag b/extensions/example/template/en/CVS/Tag
index 8d751ae8a4f2d445287de3bcefb6f8a590304c1c..1b5eaed1d1b6ae40508059e711ded1b472bbb1d5 100644
--- a/extensions/example/template/en/CVS/Tag
+++ b/extensions/example/template/en/CVS/Tag
@@ -1 +1 @@
-TBUGZILLA-3_3_1
+TBUGZILLA-3_3_2
diff --git a/extensions/example/template/en/default/CVS/Tag b/extensions/example/template/en/default/CVS/Tag
index 8d751ae8a4f2d445287de3bcefb6f8a590304c1c..1b5eaed1d1b6ae40508059e711ded1b472bbb1d5 100644
--- a/extensions/example/template/en/default/CVS/Tag
+++ b/extensions/example/template/en/default/CVS/Tag
@@ -1 +1 @@
-TBUGZILLA-3_3_1
+TBUGZILLA-3_3_2
diff --git a/extensions/example/template/en/default/admin/CVS/Tag b/extensions/example/template/en/default/admin/CVS/Tag
index 8d751ae8a4f2d445287de3bcefb6f8a590304c1c..1b5eaed1d1b6ae40508059e711ded1b472bbb1d5 100644
--- a/extensions/example/template/en/default/admin/CVS/Tag
+++ b/extensions/example/template/en/default/admin/CVS/Tag
@@ -1 +1 @@
-TBUGZILLA-3_3_1
+TBUGZILLA-3_3_2
diff --git a/extensions/example/template/en/default/admin/params/CVS/Entries b/extensions/example/template/en/default/admin/params/CVS/Entries
index 2c0e2b283714019d258d98945291087266c51c42..b264a596a95378574a8d32730d4ee8916ad3d17a 100644
--- a/extensions/example/template/en/default/admin/params/CVS/Entries
+++ b/extensions/example/template/en/default/admin/params/CVS/Entries
@@ -1,2 +1,2 @@
-/example.html.tmpl/1.1/Mon May  5 23:01:33 2008//TBUGZILLA-3_3_1
+/example.html.tmpl/1.1/Mon May  5 23:01:33 2008//TBUGZILLA-3_3_2
 D
diff --git a/extensions/example/template/en/default/admin/params/CVS/Tag b/extensions/example/template/en/default/admin/params/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/extensions/example/template/en/default/admin/params/CVS/Tag
+++ b/extensions/example/template/en/default/admin/params/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/extensions/example/template/en/global/CVS/Entries b/extensions/example/template/en/global/CVS/Entries
index c4e371fee3c07f0e16d3c43ea7820a2077c543b3..ff1ea5c31be232642722025d0acdbbc0b4907708 100644
--- a/extensions/example/template/en/global/CVS/Entries
+++ b/extensions/example/template/en/global/CVS/Entries
@@ -1,2 +1,2 @@
-/user-error-errors.html.tmpl/1.1/Tue May 27 22:09:22 2008//TBUGZILLA-3_3_1
+/user-error-errors.html.tmpl/1.1/Tue May 27 22:09:22 2008//TBUGZILLA-3_3_2
 D
diff --git a/extensions/example/template/en/global/CVS/Tag b/extensions/example/template/en/global/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/extensions/example/template/en/global/CVS/Tag
+++ b/extensions/example/template/en/global/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/images/CVS/Entries b/images/CVS/Entries
index 10500984302545b3929312a8fe0814e043a3caad..0d34353cb0749ff026aea3595ec6f53cc05ead16 100644
--- a/images/CVS/Entries
+++ b/images/CVS/Entries
@@ -1,3 +1,3 @@
-/favicon.ico/1.1/Wed Jul 30 11:13:48 2008/-kb/TBUGZILLA-3_3_1
-/padlock.png/1.2/Thu Sep 23 18:08:31 2004/-kb/TBUGZILLA-3_3_1
+/favicon.ico/1.1/Wed Jul 30 11:13:48 2008/-kb/TBUGZILLA-3_3_2
+/padlock.png/1.2/Thu Sep 23 18:08:31 2004/-kb/TBUGZILLA-3_3_2
 D
diff --git a/images/CVS/Tag b/images/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/images/CVS/Tag
+++ b/images/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/js/CVS/Entries b/js/CVS/Entries
index 0978ee760674f8f852bf7b470afcf73c928714ce..980965e2c9fff31ac957a1d294ea49fced8577b5 100644
--- a/js/CVS/Entries
+++ b/js/CVS/Entries
@@ -1,10 +1,10 @@
-/TUI.js/1.1/Tue Jul 12 12:32:16 2005//TBUGZILLA-3_3_1
-/attachment.js/1.4/Tue Oct 21 16:41:02 2008//TBUGZILLA-3_3_1
-/change-columns.js/1.1/Wed Sep 10 19:07:02 2008//TBUGZILLA-3_3_1
-/expanding-tree.js/1.2/Wed Feb 22 22:02:09 2006//TBUGZILLA-3_3_1
-/field.js/1.14/Thu Jan  1 23:32:26 2009//TBUGZILLA-3_3_1
-/help.js/1.1/Sun Apr 15 18:43:26 2007//TBUGZILLA-3_3_1
-/params.js/1.1/Thu Aug  2 22:38:44 2007//TBUGZILLA-3_3_1
-/productform.js/1.3/Tue Apr 17 22:08:06 2007//TBUGZILLA-3_3_1
-/util.js/1.6/Fri Nov  7 11:34:47 2008//TBUGZILLA-3_3_1
+/TUI.js/1.1/Tue Jul 12 12:32:16 2005//TBUGZILLA-3_3_2
+/attachment.js/1.4/Tue Oct 21 16:41:02 2008//TBUGZILLA-3_3_2
+/change-columns.js/1.1/Wed Sep 10 19:07:02 2008//TBUGZILLA-3_3_2
+/expanding-tree.js/1.2/Wed Feb 22 22:02:09 2006//TBUGZILLA-3_3_2
+/field.js/1.14/Thu Jan  1 23:32:26 2009//TBUGZILLA-3_3_2
+/help.js/1.1/Sun Apr 15 18:43:26 2007//TBUGZILLA-3_3_2
+/params.js/1.1/Thu Aug  2 22:38:44 2007//TBUGZILLA-3_3_2
+/productform.js/1.3/Tue Apr 17 22:08:06 2007//TBUGZILLA-3_3_2
+/util.js/1.7/Fri Jan 23 21:08:13 2009//TBUGZILLA-3_3_2
 D/yui////
diff --git a/js/CVS/Tag b/js/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/js/CVS/Tag
+++ b/js/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/js/util.js b/js/util.js
index 86924210ca889c189576750160092c5fb1d1c78a..8e787847a4de21d2ff3ff6e7f7d926cb2cca260e 100644
--- a/js/util.js
+++ b/js/util.js
@@ -166,7 +166,7 @@ function bz_isValueInArray(aArray, aValue)
  */
 function bz_createOptionInSelect(aSelect, aTextValue, aValue) {
   var myOption = new Option(aTextValue, aValue);
-  aSelect.appendChild(myOption);
+  aSelect.options[aSelect.length] = myOption;
   return myOption;
 }
 
diff --git a/js/yui/CVS/Entries b/js/yui/CVS/Entries
index 526b83b03041071d8d4e013c04372d85d8e53ef6..a9a351a58855e2cfe9c3fbfe7e6ddae439bae3c5 100644
--- a/js/yui/CVS/Entries
+++ b/js/yui/CVS/Entries
@@ -1,3 +1,3 @@
-/calendar.js/1.1/Thu Nov 29 02:20:27 2007//TBUGZILLA-3_3_1
-/yahoo-dom-event.js/1.1/Thu Nov 29 02:20:27 2007//TBUGZILLA-3_3_1
+/calendar.js/1.2/Thu Jan 15 01:01:24 2009//TBUGZILLA-3_3_2
+/yahoo-dom-event.js/1.2/Thu Jan 15 01:01:24 2009//TBUGZILLA-3_3_2
 D
diff --git a/js/yui/CVS/Tag b/js/yui/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/js/yui/CVS/Tag
+++ b/js/yui/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/js/yui/calendar.js b/js/yui/calendar.js
index a8eff37de749c965b497a708a0e3370a9b4779b6..005c7def8ed4f8a084806a93680e4505c02f1e22 100644
--- a/js/yui/calendar.js
+++ b/js/yui/calendar.js
@@ -1,16 +1,18 @@
 /*
-Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Copyright (c) 2008, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.net/yui/license.txt
-version: 2.3.1
+version: 2.6.0
 */
-(function(){YAHOO.util.Config=function(D){if(D){this.init(D);}if(!D){}};var B=YAHOO.lang,C=YAHOO.util.CustomEvent,A=YAHOO.util.Config;A.CONFIG_CHANGED_EVENT="configChanged";A.BOOLEAN_TYPE="boolean";A.prototype={owner:null,queueInProgress:false,config:null,initialConfig:null,eventQueue:null,configChangedEvent:null,init:function(D){this.owner=D;this.configChangedEvent=this.createEvent(A.CONFIG_CHANGED_EVENT);this.configChangedEvent.signature=C.LIST;this.queueInProgress=false;this.config={};this.initialConfig={};this.eventQueue=[];},checkBoolean:function(D){return(typeof D==A.BOOLEAN_TYPE);},checkNumber:function(D){return(!isNaN(D));},fireEvent:function(D,F){var E=this.config[D];if(E&&E.event){E.event.fire(F);}},addProperty:function(E,D){E=E.toLowerCase();this.config[E]=D;D.event=this.createEvent(E,{scope:this.owner});D.event.signature=C.LIST;D.key=E;if(D.handler){D.event.subscribe(D.handler,this.owner);}this.setProperty(E,D.value,true);if(!D.suppressEvent){this.queueProperty(E,D.value);}},getConfig:function(){var D={},F,E;for(F in this.config){E=this.config[F];if(E&&E.event){D[F]=E.value;}}return D;},getProperty:function(D){var E=this.config[D.toLowerCase()];if(E&&E.event){return E.value;}else{return undefined;}},resetProperty:function(D){D=D.toLowerCase();var E=this.config[D];if(E&&E.event){if(this.initialConfig[D]&&!B.isUndefined(this.initialConfig[D])){this.setProperty(D,this.initialConfig[D]);return true;}}else{return false;}},setProperty:function(E,G,D){var F;E=E.toLowerCase();if(this.queueInProgress&&!D){this.queueProperty(E,G);return true;}else{F=this.config[E];if(F&&F.event){if(F.validator&&!F.validator(G)){return false;}else{F.value=G;if(!D){this.fireEvent(E,G);this.configChangedEvent.fire([E,G]);}return true;}}else{return false;}}},queueProperty:function(S,P){S=S.toLowerCase();var R=this.config[S],K=false,J,G,H,I,O,Q,F,M,N,D,L,T,E;if(R&&R.event){if(!B.isUndefined(P)&&R.validator&&!R.validator(P)){return false;}else{if(!B.isUndefined(P)){R.value=P;}else{P=R.value;}K=false;J=this.eventQueue.length;for(L=0;L<J;L++){G=this.eventQueue[L];if(G){H=G[0];I=G[1];if(H==S){this.eventQueue[L]=null;this.eventQueue.push([S,(!B.isUndefined(P)?P:I)]);K=true;break;}}}if(!K&&!B.isUndefined(P)){this.eventQueue.push([S,P]);}}if(R.supercedes){O=R.supercedes.length;for(T=0;T<O;T++){Q=R.supercedes[T];F=this.eventQueue.length;for(E=0;E<F;E++){M=this.eventQueue[E];if(M){N=M[0];D=M[1];if(N==Q.toLowerCase()){this.eventQueue.push([N,D]);this.eventQueue[E]=null;break;}}}}}return true;}else{return false;}},refireEvent:function(D){D=D.toLowerCase();var E=this.config[D];if(E&&E.event&&!B.isUndefined(E.value)){if(this.queueInProgress){this.queueProperty(D);}else{this.fireEvent(D,E.value);}}},applyConfig:function(E,H){var G,D,F;if(H){F={};for(G in E){if(B.hasOwnProperty(E,G)){F[G.toLowerCase()]=E[G];}}this.initialConfig=F;}for(G in E){if(B.hasOwnProperty(E,G)){this.queueProperty(G,E[G]);}}},refresh:function(){var D;for(D in this.config){this.refireEvent(D);}},fireQueue:function(){var E,H,D,G,F;this.queueInProgress=true;for(E=0;E<this.eventQueue.length;E++){H=this.eventQueue[E];if(H){D=H[0];G=H[1];F=this.config[D];F.value=G;this.fireEvent(D,G);}}this.queueInProgress=false;this.eventQueue=[];},subscribeToConfigEvent:function(E,F,H,D){var G=this.config[E.toLowerCase()];if(G&&G.event){if(!A.alreadySubscribed(G.event,F,H)){G.event.subscribe(F,H,D);}return true;}else{return false;}},unsubscribeFromConfigEvent:function(D,E,G){var F=this.config[D.toLowerCase()];if(F&&F.event){return F.event.unsubscribe(E,G);}else{return false;}},toString:function(){var D="Config";if(this.owner){D+=" ["+this.owner.toString()+"]";}return D;},outputEventQueue:function(){var D="",G,E,F=this.eventQueue.length;for(E=0;E<F;E++){G=this.eventQueue[E];if(G){D+=G[0]+"="+G[1]+", ";}}return D;},destroy:function(){var E=this.config,D,F;for(D in E){if(B.hasOwnProperty(E,D)){F=E[D];F.event.unsubscribeAll();F.event=null;}}this.configChangedEvent.unsubscribeAll();this.configChangedEvent=null;this.owner=null;this.config=null;this.initialConfig=null;this.eventQueue=null;}};A.alreadySubscribed=function(E,H,I){var F=E.subscribers.length,D,G;if(F>0){G=F-1;do{D=E.subscribers[G];if(D&&D.obj==I&&D.fn==H){return true;}}while(G--);}return false;};YAHOO.lang.augmentProto(A,YAHOO.util.EventProvider);}());YAHOO.widget.DateMath={DAY:"D",WEEK:"W",YEAR:"Y",MONTH:"M",ONE_DAY_MS:1000*60*60*24,add:function(A,D,C){var F=new Date(A.getTime());switch(D){case this.MONTH:var E=A.getMonth()+C;var B=0;if(E<0){while(E<0){E+=12;B-=1;}}else{if(E>11){while(E>11){E-=12;B+=1;}}}F.setMonth(E);F.setFullYear(A.getFullYear()+B);break;case this.DAY:F.setDate(A.getDate()+C);break;case this.YEAR:F.setFullYear(A.getFullYear()+C);break;case this.WEEK:F.setDate(A.getDate()+(C*7));break;}return F;},subtract:function(A,C,B){return this.add(A,C,(B*-1));},before:function(C,B){var A=B.getTime();if(C.getTime()<A){return true;}else{return false;}},after:function(C,B){var A=B.getTime();if(C.getTime()>A){return true;}else{return false;}},between:function(B,A,C){if(this.after(B,A)&&this.before(B,C)){return true;}else{return false;}},getJan1:function(A){return new Date(A,0,1);},getDayOffset:function(B,D){var C=this.getJan1(D);var A=Math.ceil((B.getTime()-C.getTime())/this.ONE_DAY_MS);return A;},getWeekNumber:function(C,F){C=this.clearTime(C);var E=new Date(C.getTime()+(4*this.ONE_DAY_MS)-((C.getDay())*this.ONE_DAY_MS));var B=new Date(E.getFullYear(),0,1);var A=((E.getTime()-B.getTime())/this.ONE_DAY_MS)-1;var D=Math.ceil((A)/7);return D;},isYearOverlapWeek:function(A){var C=false;var B=this.add(A,this.DAY,6);if(B.getFullYear()!=A.getFullYear()){C=true;}return C;},isMonthOverlapWeek:function(A){var C=false;var B=this.add(A,this.DAY,6);if(B.getMonth()!=A.getMonth()){C=true;}return C;},findMonthStart:function(A){var B=new Date(A.getFullYear(),A.getMonth(),1);return B;},findMonthEnd:function(B){var D=this.findMonthStart(B);var C=this.add(D,this.MONTH,1);var A=this.subtract(C,this.DAY,1);return A;},clearTime:function(A){A.setHours(12,0,0,0);
-return A;}};YAHOO.widget.Calendar=function(C,A,B){this.init(C,A,B);};YAHOO.widget.Calendar.IMG_ROOT=null;YAHOO.widget.Calendar.DATE="D";YAHOO.widget.Calendar.MONTH_DAY="MD";YAHOO.widget.Calendar.WEEKDAY="WD";YAHOO.widget.Calendar.RANGE="R";YAHOO.widget.Calendar.MONTH="M";YAHOO.widget.Calendar.DISPLAY_DAYS=42;YAHOO.widget.Calendar.STOP_RENDER="S";YAHOO.widget.Calendar.SHORT="short";YAHOO.widget.Calendar.LONG="long";YAHOO.widget.Calendar.MEDIUM="medium";YAHOO.widget.Calendar.ONE_CHAR="1char";YAHOO.widget.Calendar._DEFAULT_CONFIG={PAGEDATE:{key:"pagedate",value:null},SELECTED:{key:"selected",value:null},TITLE:{key:"title",value:""},CLOSE:{key:"close",value:false},IFRAME:{key:"iframe",value:(YAHOO.env.ua.ie&&YAHOO.env.ua.ie<=6)?true:false},MINDATE:{key:"mindate",value:null},MAXDATE:{key:"maxdate",value:null},MULTI_SELECT:{key:"multi_select",value:false},START_WEEKDAY:{key:"start_weekday",value:0},SHOW_WEEKDAYS:{key:"show_weekdays",value:true},SHOW_WEEK_HEADER:{key:"show_week_header",value:false},SHOW_WEEK_FOOTER:{key:"show_week_footer",value:false},HIDE_BLANK_WEEKS:{key:"hide_blank_weeks",value:false},NAV_ARROW_LEFT:{key:"nav_arrow_left",value:null},NAV_ARROW_RIGHT:{key:"nav_arrow_right",value:null},MONTHS_SHORT:{key:"months_short",value:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]},MONTHS_LONG:{key:"months_long",value:["January","February","March","April","May","June","July","August","September","October","November","December"]},WEEKDAYS_1CHAR:{key:"weekdays_1char",value:["S","M","T","W","T","F","S"]},WEEKDAYS_SHORT:{key:"weekdays_short",value:["Su","Mo","Tu","We","Th","Fr","Sa"]},WEEKDAYS_MEDIUM:{key:"weekdays_medium",value:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},WEEKDAYS_LONG:{key:"weekdays_long",value:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},LOCALE_MONTHS:{key:"locale_months",value:"long"},LOCALE_WEEKDAYS:{key:"locale_weekdays",value:"short"},DATE_DELIMITER:{key:"date_delimiter",value:","},DATE_FIELD_DELIMITER:{key:"date_field_delimiter",value:"/"},DATE_RANGE_DELIMITER:{key:"date_range_delimiter",value:"-"},MY_MONTH_POSITION:{key:"my_month_position",value:1},MY_YEAR_POSITION:{key:"my_year_position",value:2},MD_MONTH_POSITION:{key:"md_month_position",value:1},MD_DAY_POSITION:{key:"md_day_position",value:2},MDY_MONTH_POSITION:{key:"mdy_month_position",value:1},MDY_DAY_POSITION:{key:"mdy_day_position",value:2},MDY_YEAR_POSITION:{key:"mdy_year_position",value:3},MY_LABEL_MONTH_POSITION:{key:"my_label_month_position",value:1},MY_LABEL_YEAR_POSITION:{key:"my_label_year_position",value:2},MY_LABEL_MONTH_SUFFIX:{key:"my_label_month_suffix",value:" "},MY_LABEL_YEAR_SUFFIX:{key:"my_label_year_suffix",value:""}};YAHOO.widget.Calendar._EVENT_TYPES={BEFORE_SELECT:"beforeSelect",SELECT:"select",BEFORE_DESELECT:"beforeDeselect",DESELECT:"deselect",CHANGE_PAGE:"changePage",BEFORE_RENDER:"beforeRender",RENDER:"render",RESET:"reset",CLEAR:"clear"};YAHOO.widget.Calendar._STYLES={CSS_ROW_HEADER:"calrowhead",CSS_ROW_FOOTER:"calrowfoot",CSS_CELL:"calcell",CSS_CELL_SELECTOR:"selector",CSS_CELL_SELECTED:"selected",CSS_CELL_SELECTABLE:"selectable",CSS_CELL_RESTRICTED:"restricted",CSS_CELL_TODAY:"today",CSS_CELL_OOM:"oom",CSS_CELL_OOB:"previous",CSS_HEADER:"calheader",CSS_HEADER_TEXT:"calhead",CSS_BODY:"calbody",CSS_WEEKDAY_CELL:"calweekdaycell",CSS_WEEKDAY_ROW:"calweekdayrow",CSS_FOOTER:"calfoot",CSS_CALENDAR:"yui-calendar",CSS_SINGLE:"single",CSS_CONTAINER:"yui-calcontainer",CSS_NAV_LEFT:"calnavleft",CSS_NAV_RIGHT:"calnavright",CSS_CLOSE:"calclose",CSS_CELL_TOP:"calcelltop",CSS_CELL_LEFT:"calcellleft",CSS_CELL_RIGHT:"calcellright",CSS_CELL_BOTTOM:"calcellbottom",CSS_CELL_HOVER:"calcellhover",CSS_CELL_HIGHLIGHT1:"highlight1",CSS_CELL_HIGHLIGHT2:"highlight2",CSS_CELL_HIGHLIGHT3:"highlight3",CSS_CELL_HIGHLIGHT4:"highlight4"};YAHOO.widget.Calendar.prototype={Config:null,parent:null,index:-1,cells:null,cellDates:null,id:null,oDomContainer:null,today:null,renderStack:null,_renderStack:null,_selectedDates:null,domEventMap:null};YAHOO.widget.Calendar.prototype.init=function(C,A,B){this.initEvents();this.today=new Date();YAHOO.widget.DateMath.clearTime(this.today);this.id=C;this.oDomContainer=document.getElementById(A);this.cfg=new YAHOO.util.Config(this);this.Options={};this.Locale={};this.initStyles();YAHOO.util.Dom.addClass(this.oDomContainer,this.Style.CSS_CONTAINER);YAHOO.util.Dom.addClass(this.oDomContainer,this.Style.CSS_SINGLE);this.cellDates=[];this.cells=[];this.renderStack=[];this._renderStack=[];this.setupConfig();if(B){this.cfg.applyConfig(B,true);}this.cfg.fireQueue();};YAHOO.widget.Calendar.prototype.configIframe=function(C,B,D){var A=B[0];if(!this.parent){if(YAHOO.util.Dom.inDocument(this.oDomContainer)){if(A){var E=YAHOO.util.Dom.getStyle(this.oDomContainer,"position");if(E=="absolute"||E=="relative"){if(!YAHOO.util.Dom.inDocument(this.iframe)){this.iframe=document.createElement("iframe");this.iframe.src="javascript:false;";YAHOO.util.Dom.setStyle(this.iframe,"opacity","0");if(YAHOO.env.ua.ie&&YAHOO.env.ua.ie<=6){YAHOO.util.Dom.addClass(this.iframe,"fixedsize");}this.oDomContainer.insertBefore(this.iframe,this.oDomContainer.firstChild);}}}else{if(this.iframe){if(this.iframe.parentNode){this.iframe.parentNode.removeChild(this.iframe);}this.iframe=null;}}}}};YAHOO.widget.Calendar.prototype.configTitle=function(B,A,C){var E=A[0],F;if(E){this.createTitleBar(E);}else{var D=this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.CLOSE.key);if(!D){this.removeTitleBar();}else{this.createTitleBar("&#160;");}}};YAHOO.widget.Calendar.prototype.configClose=function(B,A,C){var E=A[0],D=this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.TITLE.key);if(E){if(!D){this.createTitleBar("&#160;");}this.createCloseButton();}else{this.removeCloseButton();if(!D){this.removeTitleBar();}}};YAHOO.widget.Calendar.prototype.initEvents=function(){var A=YAHOO.widget.Calendar._EVENT_TYPES;this.beforeSelectEvent=new YAHOO.util.CustomEvent(A.BEFORE_SELECT);this.selectEvent=new YAHOO.util.CustomEvent(A.SELECT);
-this.beforeDeselectEvent=new YAHOO.util.CustomEvent(A.BEFORE_DESELECT);this.deselectEvent=new YAHOO.util.CustomEvent(A.DESELECT);this.changePageEvent=new YAHOO.util.CustomEvent(A.CHANGE_PAGE);this.beforeRenderEvent=new YAHOO.util.CustomEvent(A.BEFORE_RENDER);this.renderEvent=new YAHOO.util.CustomEvent(A.RENDER);this.resetEvent=new YAHOO.util.CustomEvent(A.RESET);this.clearEvent=new YAHOO.util.CustomEvent(A.CLEAR);this.beforeSelectEvent.subscribe(this.onBeforeSelect,this,true);this.selectEvent.subscribe(this.onSelect,this,true);this.beforeDeselectEvent.subscribe(this.onBeforeDeselect,this,true);this.deselectEvent.subscribe(this.onDeselect,this,true);this.changePageEvent.subscribe(this.onChangePage,this,true);this.renderEvent.subscribe(this.onRender,this,true);this.resetEvent.subscribe(this.onReset,this,true);this.clearEvent.subscribe(this.onClear,this,true);};YAHOO.widget.Calendar.prototype.doSelectCell=function(G,A){var L,F,I,C;var H=YAHOO.util.Event.getTarget(G);var B=H.tagName.toLowerCase();var E=false;while(B!="td"&&!YAHOO.util.Dom.hasClass(H,A.Style.CSS_CELL_SELECTABLE)){if(!E&&B=="a"&&YAHOO.util.Dom.hasClass(H,A.Style.CSS_CELL_SELECTOR)){E=true;}H=H.parentNode;B=H.tagName.toLowerCase();if(B=="html"){return ;}}if(E){YAHOO.util.Event.preventDefault(G);}L=H;if(YAHOO.util.Dom.hasClass(L,A.Style.CSS_CELL_SELECTABLE)){F=L.id.split("cell")[1];I=A.cellDates[F];C=new Date(I[0],I[1]-1,I[2]);var K;if(A.Options.MULTI_SELECT){K=L.getElementsByTagName("a")[0];if(K){K.blur();}var D=A.cellDates[F];var J=A._indexOfSelectedFieldArray(D);if(J>-1){A.deselectCell(F);}else{A.selectCell(F);}}else{K=L.getElementsByTagName("a")[0];if(K){K.blur();}A.selectCell(F);}}};YAHOO.widget.Calendar.prototype.doCellMouseOver=function(C,B){var A;if(C){A=YAHOO.util.Event.getTarget(C);}else{A=this;}while(A.tagName.toLowerCase()!="td"){A=A.parentNode;if(A.tagName.toLowerCase()=="html"){return ;}}if(YAHOO.util.Dom.hasClass(A,B.Style.CSS_CELL_SELECTABLE)){YAHOO.util.Dom.addClass(A,B.Style.CSS_CELL_HOVER);}};YAHOO.widget.Calendar.prototype.doCellMouseOut=function(C,B){var A;if(C){A=YAHOO.util.Event.getTarget(C);}else{A=this;}while(A.tagName.toLowerCase()!="td"){A=A.parentNode;if(A.tagName.toLowerCase()=="html"){return ;}}if(YAHOO.util.Dom.hasClass(A,B.Style.CSS_CELL_SELECTABLE)){YAHOO.util.Dom.removeClass(A,B.Style.CSS_CELL_HOVER);}};YAHOO.widget.Calendar.prototype.setupConfig=function(){var A=YAHOO.widget.Calendar._DEFAULT_CONFIG;this.cfg.addProperty(A.PAGEDATE.key,{value:new Date(),handler:this.configPageDate});this.cfg.addProperty(A.SELECTED.key,{value:[],handler:this.configSelected});this.cfg.addProperty(A.TITLE.key,{value:A.TITLE.value,handler:this.configTitle});this.cfg.addProperty(A.CLOSE.key,{value:A.CLOSE.value,handler:this.configClose});this.cfg.addProperty(A.IFRAME.key,{value:A.IFRAME.value,handler:this.configIframe,validator:this.cfg.checkBoolean});this.cfg.addProperty(A.MINDATE.key,{value:A.MINDATE.value,handler:this.configMinDate});this.cfg.addProperty(A.MAXDATE.key,{value:A.MAXDATE.value,handler:this.configMaxDate});this.cfg.addProperty(A.MULTI_SELECT.key,{value:A.MULTI_SELECT.value,handler:this.configOptions,validator:this.cfg.checkBoolean});this.cfg.addProperty(A.START_WEEKDAY.key,{value:A.START_WEEKDAY.value,handler:this.configOptions,validator:this.cfg.checkNumber});this.cfg.addProperty(A.SHOW_WEEKDAYS.key,{value:A.SHOW_WEEKDAYS.value,handler:this.configOptions,validator:this.cfg.checkBoolean});this.cfg.addProperty(A.SHOW_WEEK_HEADER.key,{value:A.SHOW_WEEK_HEADER.value,handler:this.configOptions,validator:this.cfg.checkBoolean});this.cfg.addProperty(A.SHOW_WEEK_FOOTER.key,{value:A.SHOW_WEEK_FOOTER.value,handler:this.configOptions,validator:this.cfg.checkBoolean});this.cfg.addProperty(A.HIDE_BLANK_WEEKS.key,{value:A.HIDE_BLANK_WEEKS.value,handler:this.configOptions,validator:this.cfg.checkBoolean});this.cfg.addProperty(A.NAV_ARROW_LEFT.key,{value:A.NAV_ARROW_LEFT.value,handler:this.configOptions});this.cfg.addProperty(A.NAV_ARROW_RIGHT.key,{value:A.NAV_ARROW_RIGHT.value,handler:this.configOptions});this.cfg.addProperty(A.MONTHS_SHORT.key,{value:A.MONTHS_SHORT.value,handler:this.configLocale});this.cfg.addProperty(A.MONTHS_LONG.key,{value:A.MONTHS_LONG.value,handler:this.configLocale});this.cfg.addProperty(A.WEEKDAYS_1CHAR.key,{value:A.WEEKDAYS_1CHAR.value,handler:this.configLocale});this.cfg.addProperty(A.WEEKDAYS_SHORT.key,{value:A.WEEKDAYS_SHORT.value,handler:this.configLocale});this.cfg.addProperty(A.WEEKDAYS_MEDIUM.key,{value:A.WEEKDAYS_MEDIUM.value,handler:this.configLocale});this.cfg.addProperty(A.WEEKDAYS_LONG.key,{value:A.WEEKDAYS_LONG.value,handler:this.configLocale});var B=function(){this.cfg.refireEvent(A.LOCALE_MONTHS.key);this.cfg.refireEvent(A.LOCALE_WEEKDAYS.key);};this.cfg.subscribeToConfigEvent(A.START_WEEKDAY.key,B,this,true);this.cfg.subscribeToConfigEvent(A.MONTHS_SHORT.key,B,this,true);this.cfg.subscribeToConfigEvent(A.MONTHS_LONG.key,B,this,true);this.cfg.subscribeToConfigEvent(A.WEEKDAYS_1CHAR.key,B,this,true);this.cfg.subscribeToConfigEvent(A.WEEKDAYS_SHORT.key,B,this,true);this.cfg.subscribeToConfigEvent(A.WEEKDAYS_MEDIUM.key,B,this,true);this.cfg.subscribeToConfigEvent(A.WEEKDAYS_LONG.key,B,this,true);this.cfg.addProperty(A.LOCALE_MONTHS.key,{value:A.LOCALE_MONTHS.value,handler:this.configLocaleValues});this.cfg.addProperty(A.LOCALE_WEEKDAYS.key,{value:A.LOCALE_WEEKDAYS.value,handler:this.configLocaleValues});this.cfg.addProperty(A.DATE_DELIMITER.key,{value:A.DATE_DELIMITER.value,handler:this.configLocale});this.cfg.addProperty(A.DATE_FIELD_DELIMITER.key,{value:A.DATE_FIELD_DELIMITER.value,handler:this.configLocale});this.cfg.addProperty(A.DATE_RANGE_DELIMITER.key,{value:A.DATE_RANGE_DELIMITER.value,handler:this.configLocale});this.cfg.addProperty(A.MY_MONTH_POSITION.key,{value:A.MY_MONTH_POSITION.value,handler:this.configLocale,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MY_YEAR_POSITION.key,{value:A.MY_YEAR_POSITION.value,handler:this.configLocale,validator:this.cfg.checkNumber});
-this.cfg.addProperty(A.MD_MONTH_POSITION.key,{value:A.MD_MONTH_POSITION.value,handler:this.configLocale,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MD_DAY_POSITION.key,{value:A.MD_DAY_POSITION.value,handler:this.configLocale,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MDY_MONTH_POSITION.key,{value:A.MDY_MONTH_POSITION.value,handler:this.configLocale,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MDY_DAY_POSITION.key,{value:A.MDY_DAY_POSITION.value,handler:this.configLocale,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MDY_YEAR_POSITION.key,{value:A.MDY_YEAR_POSITION.value,handler:this.configLocale,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MY_LABEL_MONTH_POSITION.key,{value:A.MY_LABEL_MONTH_POSITION.value,handler:this.configLocale,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MY_LABEL_YEAR_POSITION.key,{value:A.MY_LABEL_YEAR_POSITION.value,handler:this.configLocale,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MY_LABEL_MONTH_SUFFIX.key,{value:A.MY_LABEL_MONTH_SUFFIX.value,handler:this.configLocale});this.cfg.addProperty(A.MY_LABEL_YEAR_SUFFIX.key,{value:A.MY_LABEL_YEAR_SUFFIX.value,handler:this.configLocale});};YAHOO.widget.Calendar.prototype.configPageDate=function(B,A,C){this.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key,this._parsePageDate(A[0]),true);};YAHOO.widget.Calendar.prototype.configMinDate=function(B,A,C){var D=A[0];if(YAHOO.lang.isString(D)){D=this._parseDate(D);this.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MINDATE.key,new Date(D[0],(D[1]-1),D[2]));}};YAHOO.widget.Calendar.prototype.configMaxDate=function(B,A,C){var D=A[0];if(YAHOO.lang.isString(D)){D=this._parseDate(D);this.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MAXDATE.key,new Date(D[0],(D[1]-1),D[2]));}};YAHOO.widget.Calendar.prototype.configSelected=function(C,A,E){var B=A[0];var D=YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;if(B){if(YAHOO.lang.isString(B)){this.cfg.setProperty(D,this._parseDates(B),true);}}if(!this._selectedDates){this._selectedDates=this.cfg.getProperty(D);}};YAHOO.widget.Calendar.prototype.configOptions=function(B,A,C){this.Options[B.toUpperCase()]=A[0];};YAHOO.widget.Calendar.prototype.configLocale=function(C,B,D){var A=YAHOO.widget.Calendar._DEFAULT_CONFIG;this.Locale[C.toUpperCase()]=B[0];this.cfg.refireEvent(A.LOCALE_MONTHS.key);this.cfg.refireEvent(A.LOCALE_WEEKDAYS.key);};YAHOO.widget.Calendar.prototype.configLocaleValues=function(D,C,E){var B=YAHOO.widget.Calendar._DEFAULT_CONFIG;D=D.toLowerCase();var G=C[0];switch(D){case B.LOCALE_MONTHS.key:switch(G){case YAHOO.widget.Calendar.SHORT:this.Locale.LOCALE_MONTHS=this.cfg.getProperty(B.MONTHS_SHORT.key).concat();break;case YAHOO.widget.Calendar.LONG:this.Locale.LOCALE_MONTHS=this.cfg.getProperty(B.MONTHS_LONG.key).concat();break;}break;case B.LOCALE_WEEKDAYS.key:switch(G){case YAHOO.widget.Calendar.ONE_CHAR:this.Locale.LOCALE_WEEKDAYS=this.cfg.getProperty(B.WEEKDAYS_1CHAR.key).concat();break;case YAHOO.widget.Calendar.SHORT:this.Locale.LOCALE_WEEKDAYS=this.cfg.getProperty(B.WEEKDAYS_SHORT.key).concat();break;case YAHOO.widget.Calendar.MEDIUM:this.Locale.LOCALE_WEEKDAYS=this.cfg.getProperty(B.WEEKDAYS_MEDIUM.key).concat();break;case YAHOO.widget.Calendar.LONG:this.Locale.LOCALE_WEEKDAYS=this.cfg.getProperty(B.WEEKDAYS_LONG.key).concat();break;}var F=this.cfg.getProperty(B.START_WEEKDAY.key);if(F>0){for(var A=0;A<F;++A){this.Locale.LOCALE_WEEKDAYS.push(this.Locale.LOCALE_WEEKDAYS.shift());}}break;}};YAHOO.widget.Calendar.prototype.initStyles=function(){var A=YAHOO.widget.Calendar._STYLES;this.Style={CSS_ROW_HEADER:A.CSS_ROW_HEADER,CSS_ROW_FOOTER:A.CSS_ROW_FOOTER,CSS_CELL:A.CSS_CELL,CSS_CELL_SELECTOR:A.CSS_CELL_SELECTOR,CSS_CELL_SELECTED:A.CSS_CELL_SELECTED,CSS_CELL_SELECTABLE:A.CSS_CELL_SELECTABLE,CSS_CELL_RESTRICTED:A.CSS_CELL_RESTRICTED,CSS_CELL_TODAY:A.CSS_CELL_TODAY,CSS_CELL_OOM:A.CSS_CELL_OOM,CSS_CELL_OOB:A.CSS_CELL_OOB,CSS_HEADER:A.CSS_HEADER,CSS_HEADER_TEXT:A.CSS_HEADER_TEXT,CSS_BODY:A.CSS_BODY,CSS_WEEKDAY_CELL:A.CSS_WEEKDAY_CELL,CSS_WEEKDAY_ROW:A.CSS_WEEKDAY_ROW,CSS_FOOTER:A.CSS_FOOTER,CSS_CALENDAR:A.CSS_CALENDAR,CSS_SINGLE:A.CSS_SINGLE,CSS_CONTAINER:A.CSS_CONTAINER,CSS_NAV_LEFT:A.CSS_NAV_LEFT,CSS_NAV_RIGHT:A.CSS_NAV_RIGHT,CSS_CLOSE:A.CSS_CLOSE,CSS_CELL_TOP:A.CSS_CELL_TOP,CSS_CELL_LEFT:A.CSS_CELL_LEFT,CSS_CELL_RIGHT:A.CSS_CELL_RIGHT,CSS_CELL_BOTTOM:A.CSS_CELL_BOTTOM,CSS_CELL_HOVER:A.CSS_CELL_HOVER,CSS_CELL_HIGHLIGHT1:A.CSS_CELL_HIGHLIGHT1,CSS_CELL_HIGHLIGHT2:A.CSS_CELL_HIGHLIGHT2,CSS_CELL_HIGHLIGHT3:A.CSS_CELL_HIGHLIGHT3,CSS_CELL_HIGHLIGHT4:A.CSS_CELL_HIGHLIGHT4};};YAHOO.widget.Calendar.prototype.buildMonthLabel=function(){var A=this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key);var C=this.Locale.LOCALE_MONTHS[A.getMonth()]+this.Locale.MY_LABEL_MONTH_SUFFIX;var B=A.getFullYear()+this.Locale.MY_LABEL_YEAR_SUFFIX;if(this.Locale.MY_LABEL_MONTH_POSITION==2||this.Locale.MY_LABEL_YEAR_POSITION==1){return B+C;}else{return C+B;}};YAHOO.widget.Calendar.prototype.buildDayLabel=function(A){return A.getDate();};YAHOO.widget.Calendar.prototype.createTitleBar=function(A){var B=YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.CalendarGroup.CSS_2UPTITLE,"div",this.oDomContainer)[0]||document.createElement("div");B.className=YAHOO.widget.CalendarGroup.CSS_2UPTITLE;B.innerHTML=A;this.oDomContainer.insertBefore(B,this.oDomContainer.firstChild);YAHOO.util.Dom.addClass(this.oDomContainer,"withtitle");return B;};YAHOO.widget.Calendar.prototype.removeTitleBar=function(){var A=YAHOO.util.Dom.getElementsByClassName(YAHOO.widget.CalendarGroup.CSS_2UPTITLE,"div",this.oDomContainer)[0]||null;if(A){YAHOO.util.Event.purgeElement(A);this.oDomContainer.removeChild(A);}YAHOO.util.Dom.removeClass(this.oDomContainer,"withtitle");};YAHOO.widget.Calendar.prototype.createCloseButton=function(){var D=YAHOO.util.Dom,A=YAHOO.util.Event,C=YAHOO.widget.CalendarGroup.CSS_2UPCLOSE,F="us/my/bn/x_d.gif";var E=D.getElementsByClassName("link-close","a",this.oDomContainer)[0];
-if(!E){E=document.createElement("a");A.addListener(E,"click",function(H,G){G.hide();A.preventDefault(H);},this);}E.href="#";E.className="link-close";if(YAHOO.widget.Calendar.IMG_ROOT!==null){var B=D.getElementsByClassName(C,"img",E)[0]||document.createElement("img");B.src=YAHOO.widget.Calendar.IMG_ROOT+F;B.className=C;E.appendChild(B);}else{E.innerHTML="<span class=\""+C+" "+this.Style.CSS_CLOSE+"\"></span>";}this.oDomContainer.appendChild(E);return E;};YAHOO.widget.Calendar.prototype.removeCloseButton=function(){var A=YAHOO.util.Dom.getElementsByClassName("link-close","a",this.oDomContainer)[0]||null;if(A){YAHOO.util.Event.purgeElement(A);this.oDomContainer.removeChild(A);}};YAHOO.widget.Calendar.prototype.renderHeader=function(E){var H=7;var F="us/tr/callt.gif";var G="us/tr/calrt.gif";var L=YAHOO.widget.Calendar._DEFAULT_CONFIG;if(this.cfg.getProperty(L.SHOW_WEEK_HEADER.key)){H+=1;}if(this.cfg.getProperty(L.SHOW_WEEK_FOOTER.key)){H+=1;}E[E.length]="<thead>";E[E.length]="<tr>";E[E.length]="<th colspan=\""+H+"\" class=\""+this.Style.CSS_HEADER_TEXT+"\">";E[E.length]="<div class=\""+this.Style.CSS_HEADER+"\">";var J,K=false;if(this.parent){if(this.index===0){J=true;}if(this.index==(this.parent.cfg.getProperty("pages")-1)){K=true;}}else{J=true;K=true;}var B=this.parent||this;if(J){var A=this.cfg.getProperty(L.NAV_ARROW_LEFT.key);if(A===null&&YAHOO.widget.Calendar.IMG_ROOT!==null){A=YAHOO.widget.Calendar.IMG_ROOT+F;}var C=(A===null)?"":" style=\"background-image:url("+A+")\"";E[E.length]="<a class=\""+this.Style.CSS_NAV_LEFT+"\""+C+" >&#160;</a>";}E[E.length]=this.buildMonthLabel();if(K){var D=this.cfg.getProperty(L.NAV_ARROW_RIGHT.key);if(D===null&&YAHOO.widget.Calendar.IMG_ROOT!==null){D=YAHOO.widget.Calendar.IMG_ROOT+G;}var I=(D===null)?"":" style=\"background-image:url("+D+")\"";E[E.length]="<a class=\""+this.Style.CSS_NAV_RIGHT+"\""+I+" >&#160;</a>";}E[E.length]="</div>\n</th>\n</tr>";if(this.cfg.getProperty(L.SHOW_WEEKDAYS.key)){E=this.buildWeekdays(E);}E[E.length]="</thead>";return E;};YAHOO.widget.Calendar.prototype.buildWeekdays=function(C){var A=YAHOO.widget.Calendar._DEFAULT_CONFIG;C[C.length]="<tr class=\""+this.Style.CSS_WEEKDAY_ROW+"\">";if(this.cfg.getProperty(A.SHOW_WEEK_HEADER.key)){C[C.length]="<th>&#160;</th>";}for(var B=0;B<this.Locale.LOCALE_WEEKDAYS.length;++B){C[C.length]="<th class=\"calweekdaycell\">"+this.Locale.LOCALE_WEEKDAYS[B]+"</th>";}if(this.cfg.getProperty(A.SHOW_WEEK_FOOTER.key)){C[C.length]="<th>&#160;</th>";}C[C.length]="</tr>";return C;};YAHOO.widget.Calendar.prototype.renderBody=function(c,a){var m=YAHOO.widget.Calendar._DEFAULT_CONFIG;var AC=this.cfg.getProperty(m.START_WEEKDAY.key);this.preMonthDays=c.getDay();if(AC>0){this.preMonthDays-=AC;}if(this.preMonthDays<0){this.preMonthDays+=7;}this.monthDays=YAHOO.widget.DateMath.findMonthEnd(c).getDate();this.postMonthDays=YAHOO.widget.Calendar.DISPLAY_DAYS-this.preMonthDays-this.monthDays;c=YAHOO.widget.DateMath.subtract(c,YAHOO.widget.DateMath.DAY,this.preMonthDays);var Q,H;var G="w";var W="_cell";var U="wd";var k="d";var I;var h;var O=this.today.getFullYear();var j=this.today.getMonth();var D=this.today.getDate();var q=this.cfg.getProperty(m.PAGEDATE.key);var C=this.cfg.getProperty(m.HIDE_BLANK_WEEKS.key);var Z=this.cfg.getProperty(m.SHOW_WEEK_FOOTER.key);var T=this.cfg.getProperty(m.SHOW_WEEK_HEADER.key);var M=this.cfg.getProperty(m.MINDATE.key);var S=this.cfg.getProperty(m.MAXDATE.key);if(M){M=YAHOO.widget.DateMath.clearTime(M);}if(S){S=YAHOO.widget.DateMath.clearTime(S);}a[a.length]="<tbody class=\"m"+(q.getMonth()+1)+" "+this.Style.CSS_BODY+"\">";var AA=0;var J=document.createElement("div");var b=document.createElement("td");J.appendChild(b);var z=new Date(q.getFullYear(),0,1);var o=this.parent||this;for(var u=0;u<6;u++){Q=YAHOO.widget.DateMath.getWeekNumber(c,q.getFullYear(),AC);H=G+Q;if(u!==0&&C===true&&c.getMonth()!=q.getMonth()){break;}else{a[a.length]="<tr class=\""+H+"\">";if(T){a=this.renderRowHeader(Q,a);}for(var AB=0;AB<7;AB++){I=[];h=null;this.clearElement(b);b.className=this.Style.CSS_CELL;b.id=this.id+W+AA;if(c.getDate()==D&&c.getMonth()==j&&c.getFullYear()==O){I[I.length]=o.renderCellStyleToday;}var R=[c.getFullYear(),c.getMonth()+1,c.getDate()];this.cellDates[this.cellDates.length]=R;if(c.getMonth()!=q.getMonth()){I[I.length]=o.renderCellNotThisMonth;}else{YAHOO.util.Dom.addClass(b,U+c.getDay());YAHOO.util.Dom.addClass(b,k+c.getDate());for(var t=0;t<this.renderStack.length;++t){var l=this.renderStack[t];var AD=l[0];var B;var V;var F;switch(AD){case YAHOO.widget.Calendar.DATE:B=l[1][1];V=l[1][2];F=l[1][0];if(c.getMonth()+1==B&&c.getDate()==V&&c.getFullYear()==F){h=l[2];this.renderStack.splice(t,1);}break;case YAHOO.widget.Calendar.MONTH_DAY:B=l[1][0];V=l[1][1];if(c.getMonth()+1==B&&c.getDate()==V){h=l[2];this.renderStack.splice(t,1);}break;case YAHOO.widget.Calendar.RANGE:var Y=l[1][0];var X=l[1][1];var e=Y[1];var L=Y[2];var P=Y[0];var y=new Date(P,e-1,L);var E=X[1];var g=X[2];var A=X[0];var w=new Date(A,E-1,g);if(c.getTime()>=y.getTime()&&c.getTime()<=w.getTime()){h=l[2];if(c.getTime()==w.getTime()){this.renderStack.splice(t,1);}}break;case YAHOO.widget.Calendar.WEEKDAY:var K=l[1][0];if(c.getDay()+1==K){h=l[2];}break;case YAHOO.widget.Calendar.MONTH:B=l[1][0];if(c.getMonth()+1==B){h=l[2];}break;}if(h){I[I.length]=h;}}}if(this._indexOfSelectedFieldArray(R)>-1){I[I.length]=o.renderCellStyleSelected;}if((M&&(c.getTime()<M.getTime()))||(S&&(c.getTime()>S.getTime()))){I[I.length]=o.renderOutOfBoundsDate;}else{I[I.length]=o.styleCellDefault;I[I.length]=o.renderCellDefault;}for(var n=0;n<I.length;++n){if(I[n].call(o,c,b)==YAHOO.widget.Calendar.STOP_RENDER){break;}}c.setTime(c.getTime()+YAHOO.widget.DateMath.ONE_DAY_MS);if(AA>=0&&AA<=6){YAHOO.util.Dom.addClass(b,this.Style.CSS_CELL_TOP);}if((AA%7)===0){YAHOO.util.Dom.addClass(b,this.Style.CSS_CELL_LEFT);}if(((AA+1)%7)===0){YAHOO.util.Dom.addClass(b,this.Style.CSS_CELL_RIGHT);}var f=this.postMonthDays;if(C&&f>=7){var N=Math.floor(f/7);for(var v=0;
-v<N;++v){f-=7;}}if(AA>=((this.preMonthDays+f+this.monthDays)-7)){YAHOO.util.Dom.addClass(b,this.Style.CSS_CELL_BOTTOM);}a[a.length]=J.innerHTML;AA++;}if(Z){a=this.renderRowFooter(Q,a);}a[a.length]="</tr>";}}a[a.length]="</tbody>";return a;};YAHOO.widget.Calendar.prototype.renderFooter=function(A){return A;};YAHOO.widget.Calendar.prototype.render=function(){this.beforeRenderEvent.fire();var A=YAHOO.widget.Calendar._DEFAULT_CONFIG;var C=YAHOO.widget.DateMath.findMonthStart(this.cfg.getProperty(A.PAGEDATE.key));this.resetRenderers();this.cellDates.length=0;YAHOO.util.Event.purgeElement(this.oDomContainer,true);var B=[];B[B.length]="<table cellSpacing=\"0\" class=\""+this.Style.CSS_CALENDAR+" y"+C.getFullYear()+"\" id=\""+this.id+"\">";B=this.renderHeader(B);B=this.renderBody(C,B);B=this.renderFooter(B);B[B.length]="</table>";this.oDomContainer.innerHTML=B.join("\n");this.applyListeners();this.cells=this.oDomContainer.getElementsByTagName("td");this.cfg.refireEvent(A.TITLE.key);this.cfg.refireEvent(A.CLOSE.key);this.cfg.refireEvent(A.IFRAME.key);this.renderEvent.fire();};YAHOO.widget.Calendar.prototype.applyListeners=function(){var K=this.oDomContainer;var B=this.parent||this;var G="a";var D="mousedown";var H=YAHOO.util.Dom.getElementsByClassName(this.Style.CSS_NAV_LEFT,G,K);var C=YAHOO.util.Dom.getElementsByClassName(this.Style.CSS_NAV_RIGHT,G,K);if(H&&H.length>0){this.linkLeft=H[0];YAHOO.util.Event.addListener(this.linkLeft,D,B.previousMonth,B,true);}if(C&&C.length>0){this.linkRight=C[0];YAHOO.util.Event.addListener(this.linkRight,D,B.nextMonth,B,true);}if(this.domEventMap){var E,A;for(var M in this.domEventMap){if(YAHOO.lang.hasOwnProperty(this.domEventMap,M)){var I=this.domEventMap[M];if(!(I instanceof Array)){I=[I];}for(var F=0;F<I.length;F++){var L=I[F];A=YAHOO.util.Dom.getElementsByClassName(M,L.tag,this.oDomContainer);for(var J=0;J<A.length;J++){E=A[J];YAHOO.util.Event.addListener(E,L.event,L.handler,L.scope,L.correct);}}}}}YAHOO.util.Event.addListener(this.oDomContainer,"click",this.doSelectCell,this);YAHOO.util.Event.addListener(this.oDomContainer,"mouseover",this.doCellMouseOver,this);YAHOO.util.Event.addListener(this.oDomContainer,"mouseout",this.doCellMouseOut,this);};YAHOO.widget.Calendar.prototype.getDateByCellId=function(B){var A=this.getDateFieldsByCellId(B);return new Date(A[0],A[1]-1,A[2]);};YAHOO.widget.Calendar.prototype.getDateFieldsByCellId=function(A){A=A.toLowerCase().split("_cell")[1];A=parseInt(A,10);return this.cellDates[A];};YAHOO.widget.Calendar.prototype.renderOutOfBoundsDate=function(B,A){YAHOO.util.Dom.addClass(A,this.Style.CSS_CELL_OOB);A.innerHTML=B.getDate();return YAHOO.widget.Calendar.STOP_RENDER;};YAHOO.widget.Calendar.prototype.renderRowHeader=function(B,A){A[A.length]="<th class=\"calrowhead\">"+B+"</th>";return A;};YAHOO.widget.Calendar.prototype.renderRowFooter=function(B,A){A[A.length]="<th class=\"calrowfoot\">"+B+"</th>";return A;};YAHOO.widget.Calendar.prototype.renderCellDefault=function(B,A){A.innerHTML="<a href=\"#\" class=\""+this.Style.CSS_CELL_SELECTOR+"\">"+this.buildDayLabel(B)+"</a>";};YAHOO.widget.Calendar.prototype.styleCellDefault=function(B,A){YAHOO.util.Dom.addClass(A,this.Style.CSS_CELL_SELECTABLE);};YAHOO.widget.Calendar.prototype.renderCellStyleHighlight1=function(B,A){YAHOO.util.Dom.addClass(A,this.Style.CSS_CELL_HIGHLIGHT1);};YAHOO.widget.Calendar.prototype.renderCellStyleHighlight2=function(B,A){YAHOO.util.Dom.addClass(A,this.Style.CSS_CELL_HIGHLIGHT2);};YAHOO.widget.Calendar.prototype.renderCellStyleHighlight3=function(B,A){YAHOO.util.Dom.addClass(A,this.Style.CSS_CELL_HIGHLIGHT3);};YAHOO.widget.Calendar.prototype.renderCellStyleHighlight4=function(B,A){YAHOO.util.Dom.addClass(A,this.Style.CSS_CELL_HIGHLIGHT4);};YAHOO.widget.Calendar.prototype.renderCellStyleToday=function(B,A){YAHOO.util.Dom.addClass(A,this.Style.CSS_CELL_TODAY);};YAHOO.widget.Calendar.prototype.renderCellStyleSelected=function(B,A){YAHOO.util.Dom.addClass(A,this.Style.CSS_CELL_SELECTED);};YAHOO.widget.Calendar.prototype.renderCellNotThisMonth=function(B,A){YAHOO.util.Dom.addClass(A,this.Style.CSS_CELL_OOM);A.innerHTML=B.getDate();return YAHOO.widget.Calendar.STOP_RENDER;};YAHOO.widget.Calendar.prototype.renderBodyCellRestricted=function(B,A){YAHOO.util.Dom.addClass(A,this.Style.CSS_CELL);YAHOO.util.Dom.addClass(A,this.Style.CSS_CELL_RESTRICTED);A.innerHTML=B.getDate();return YAHOO.widget.Calendar.STOP_RENDER;};YAHOO.widget.Calendar.prototype.addMonths=function(B){var A=YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;this.cfg.setProperty(A,YAHOO.widget.DateMath.add(this.cfg.getProperty(A),YAHOO.widget.DateMath.MONTH,B));this.resetRenderers();this.changePageEvent.fire();};YAHOO.widget.Calendar.prototype.subtractMonths=function(B){var A=YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;this.cfg.setProperty(A,YAHOO.widget.DateMath.subtract(this.cfg.getProperty(A),YAHOO.widget.DateMath.MONTH,B));this.resetRenderers();this.changePageEvent.fire();};YAHOO.widget.Calendar.prototype.addYears=function(B){var A=YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;this.cfg.setProperty(A,YAHOO.widget.DateMath.add(this.cfg.getProperty(A),YAHOO.widget.DateMath.YEAR,B));this.resetRenderers();this.changePageEvent.fire();};YAHOO.widget.Calendar.prototype.subtractYears=function(B){var A=YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;this.cfg.setProperty(A,YAHOO.widget.DateMath.subtract(this.cfg.getProperty(A),YAHOO.widget.DateMath.YEAR,B));this.resetRenderers();this.changePageEvent.fire();};YAHOO.widget.Calendar.prototype.nextMonth=function(){this.addMonths(1);};YAHOO.widget.Calendar.prototype.previousMonth=function(){this.subtractMonths(1);};YAHOO.widget.Calendar.prototype.nextYear=function(){this.addYears(1);};YAHOO.widget.Calendar.prototype.previousYear=function(){this.subtractYears(1);};YAHOO.widget.Calendar.prototype.reset=function(){var A=YAHOO.widget.Calendar._DEFAULT_CONFIG;this.cfg.resetProperty(A.SELECTED.key);this.cfg.resetProperty(A.PAGEDATE.key);this.resetEvent.fire();
-};YAHOO.widget.Calendar.prototype.clear=function(){var A=YAHOO.widget.Calendar._DEFAULT_CONFIG;this.cfg.setProperty(A.SELECTED.key,[]);this.cfg.setProperty(A.PAGEDATE.key,new Date(this.today.getTime()));this.clearEvent.fire();};YAHOO.widget.Calendar.prototype.select=function(C){var F=this._toFieldArray(C);var B=[];var E=[];var G=YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;for(var A=0;A<F.length;++A){var D=F[A];if(!this.isDateOOB(this._toDate(D))){if(B.length===0){this.beforeSelectEvent.fire();E=this.cfg.getProperty(G);}B.push(D);if(this._indexOfSelectedFieldArray(D)==-1){E[E.length]=D;}}}if(B.length>0){if(this.parent){this.parent.cfg.setProperty(G,E);}else{this.cfg.setProperty(G,E);}this.selectEvent.fire(B);}return this.getSelectedDates();};YAHOO.widget.Calendar.prototype.selectCell=function(D){var B=this.cells[D];var H=this.cellDates[D];var G=this._toDate(H);var C=YAHOO.util.Dom.hasClass(B,this.Style.CSS_CELL_SELECTABLE);if(C){this.beforeSelectEvent.fire();var F=YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;var E=this.cfg.getProperty(F);var A=H.concat();if(this._indexOfSelectedFieldArray(A)==-1){E[E.length]=A;}if(this.parent){this.parent.cfg.setProperty(F,E);}else{this.cfg.setProperty(F,E);}this.renderCellStyleSelected(G,B);this.selectEvent.fire([A]);this.doCellMouseOut.call(B,null,this);}return this.getSelectedDates();};YAHOO.widget.Calendar.prototype.deselect=function(E){var A=this._toFieldArray(E);var D=[];var G=[];var H=YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;for(var B=0;B<A.length;++B){var F=A[B];if(!this.isDateOOB(this._toDate(F))){if(D.length===0){this.beforeDeselectEvent.fire();G=this.cfg.getProperty(H);}D.push(F);var C=this._indexOfSelectedFieldArray(F);if(C!=-1){G.splice(C,1);}}}if(D.length>0){if(this.parent){this.parent.cfg.setProperty(H,G);}else{this.cfg.setProperty(H,G);}this.deselectEvent.fire(D);}return this.getSelectedDates();};YAHOO.widget.Calendar.prototype.deselectCell=function(E){var H=this.cells[E];var B=this.cellDates[E];var F=this._indexOfSelectedFieldArray(B);var G=YAHOO.util.Dom.hasClass(H,this.Style.CSS_CELL_SELECTABLE);if(G){this.beforeDeselectEvent.fire();var I=YAHOO.widget.Calendar._DEFAULT_CONFIG;var D=this.cfg.getProperty(I.SELECTED.key);var C=this._toDate(B);var A=B.concat();if(F>-1){if(this.cfg.getProperty(I.PAGEDATE.key).getMonth()==C.getMonth()&&this.cfg.getProperty(I.PAGEDATE.key).getFullYear()==C.getFullYear()){YAHOO.util.Dom.removeClass(H,this.Style.CSS_CELL_SELECTED);}D.splice(F,1);}if(this.parent){this.parent.cfg.setProperty(I.SELECTED.key,D);}else{this.cfg.setProperty(I.SELECTED.key,D);}this.deselectEvent.fire(A);}return this.getSelectedDates();};YAHOO.widget.Calendar.prototype.deselectAll=function(){this.beforeDeselectEvent.fire();var D=YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key;var A=this.cfg.getProperty(D);var B=A.length;var C=A.concat();if(this.parent){this.parent.cfg.setProperty(D,[]);}else{this.cfg.setProperty(D,[]);}if(B>0){this.deselectEvent.fire(C);}return this.getSelectedDates();};YAHOO.widget.Calendar.prototype._toFieldArray=function(B){var A=[];if(B instanceof Date){A=[[B.getFullYear(),B.getMonth()+1,B.getDate()]];}else{if(YAHOO.lang.isString(B)){A=this._parseDates(B);}else{if(YAHOO.lang.isArray(B)){for(var C=0;C<B.length;++C){var D=B[C];A[A.length]=[D.getFullYear(),D.getMonth()+1,D.getDate()];}}}}return A;};YAHOO.widget.Calendar.prototype._toDate=function(A){if(A instanceof Date){return A;}else{return new Date(A[0],A[1]-1,A[2]);}};YAHOO.widget.Calendar.prototype._fieldArraysAreEqual=function(C,B){var A=false;if(C[0]==B[0]&&C[1]==B[1]&&C[2]==B[2]){A=true;}return A;};YAHOO.widget.Calendar.prototype._indexOfSelectedFieldArray=function(E){var D=-1;var A=this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key);for(var C=0;C<A.length;++C){var B=A[C];if(E[0]==B[0]&&E[1]==B[1]&&E[2]==B[2]){D=C;break;}}return D;};YAHOO.widget.Calendar.prototype.isDateOOM=function(A){return(A.getMonth()!=this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key).getMonth());};YAHOO.widget.Calendar.prototype.isDateOOB=function(D){var A=YAHOO.widget.Calendar._DEFAULT_CONFIG;var E=this.cfg.getProperty(A.MINDATE.key);var F=this.cfg.getProperty(A.MAXDATE.key);var C=YAHOO.widget.DateMath;if(E){E=C.clearTime(E);}if(F){F=C.clearTime(F);}var B=new Date(D.getTime());B=C.clearTime(B);return((E&&B.getTime()<E.getTime())||(F&&B.getTime()>F.getTime()));};YAHOO.widget.Calendar.prototype._parsePageDate=function(B){var E;var A=YAHOO.widget.Calendar._DEFAULT_CONFIG;if(B){if(B instanceof Date){E=YAHOO.widget.DateMath.findMonthStart(B);}else{var F,D,C;C=B.split(this.cfg.getProperty(A.DATE_FIELD_DELIMITER.key));F=parseInt(C[this.cfg.getProperty(A.MY_MONTH_POSITION.key)-1],10)-1;D=parseInt(C[this.cfg.getProperty(A.MY_YEAR_POSITION.key)-1],10);E=new Date(D,F,1);}}else{E=new Date(this.today.getFullYear(),this.today.getMonth(),1);}return E;};YAHOO.widget.Calendar.prototype.onBeforeSelect=function(){if(this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MULTI_SELECT.key)===false){if(this.parent){this.parent.callChildFunction("clearAllBodyCellStyles",this.Style.CSS_CELL_SELECTED);this.parent.deselectAll();}else{this.clearAllBodyCellStyles(this.Style.CSS_CELL_SELECTED);this.deselectAll();}}};YAHOO.widget.Calendar.prototype.onSelect=function(A){};YAHOO.widget.Calendar.prototype.onBeforeDeselect=function(){};YAHOO.widget.Calendar.prototype.onDeselect=function(A){};YAHOO.widget.Calendar.prototype.onChangePage=function(){this.render();};YAHOO.widget.Calendar.prototype.onRender=function(){};YAHOO.widget.Calendar.prototype.onReset=function(){this.render();};YAHOO.widget.Calendar.prototype.onClear=function(){this.render();};YAHOO.widget.Calendar.prototype.validate=function(){return true;};YAHOO.widget.Calendar.prototype._parseDate=function(C){var D=C.split(this.Locale.DATE_FIELD_DELIMITER);var A;if(D.length==2){A=[D[this.Locale.MD_MONTH_POSITION-1],D[this.Locale.MD_DAY_POSITION-1]];A.type=YAHOO.widget.Calendar.MONTH_DAY;}else{A=[D[this.Locale.MDY_YEAR_POSITION-1],D[this.Locale.MDY_MONTH_POSITION-1],D[this.Locale.MDY_DAY_POSITION-1]];
-A.type=YAHOO.widget.Calendar.DATE;}for(var B=0;B<A.length;B++){A[B]=parseInt(A[B],10);}return A;};YAHOO.widget.Calendar.prototype._parseDates=function(B){var I=[];var H=B.split(this.Locale.DATE_DELIMITER);for(var G=0;G<H.length;++G){var F=H[G];if(F.indexOf(this.Locale.DATE_RANGE_DELIMITER)!=-1){var A=F.split(this.Locale.DATE_RANGE_DELIMITER);var E=this._parseDate(A[0]);var J=this._parseDate(A[1]);var D=this._parseRange(E,J);I=I.concat(D);}else{var C=this._parseDate(F);I.push(C);}}return I;};YAHOO.widget.Calendar.prototype._parseRange=function(A,F){var E=new Date(A[0],A[1]-1,A[2]);var B=YAHOO.widget.DateMath.add(new Date(A[0],A[1]-1,A[2]),YAHOO.widget.DateMath.DAY,1);var D=new Date(F[0],F[1]-1,F[2]);var C=[];C.push(A);while(B.getTime()<=D.getTime()){C.push([B.getFullYear(),B.getMonth()+1,B.getDate()]);B=YAHOO.widget.DateMath.add(B,YAHOO.widget.DateMath.DAY,1);}return C;};YAHOO.widget.Calendar.prototype.resetRenderers=function(){this.renderStack=this._renderStack.concat();};YAHOO.widget.Calendar.prototype.clearElement=function(A){A.innerHTML="&#160;";A.className="";};YAHOO.widget.Calendar.prototype.addRenderer=function(A,B){var D=this._parseDates(A);for(var C=0;C<D.length;++C){var E=D[C];if(E.length==2){if(E[0] instanceof Array){this._addRenderer(YAHOO.widget.Calendar.RANGE,E,B);}else{this._addRenderer(YAHOO.widget.Calendar.MONTH_DAY,E,B);}}else{if(E.length==3){this._addRenderer(YAHOO.widget.Calendar.DATE,E,B);}}}};YAHOO.widget.Calendar.prototype._addRenderer=function(B,C,A){var D=[B,C,A];this.renderStack.unshift(D);this._renderStack=this.renderStack.concat();};YAHOO.widget.Calendar.prototype.addMonthRenderer=function(B,A){this._addRenderer(YAHOO.widget.Calendar.MONTH,[B],A);};YAHOO.widget.Calendar.prototype.addWeekdayRenderer=function(B,A){this._addRenderer(YAHOO.widget.Calendar.WEEKDAY,[B],A);};YAHOO.widget.Calendar.prototype.clearAllBodyCellStyles=function(A){for(var B=0;B<this.cells.length;++B){YAHOO.util.Dom.removeClass(this.cells[B],A);}};YAHOO.widget.Calendar.prototype.setMonth=function(C){var A=YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;var B=this.cfg.getProperty(A);B.setMonth(parseInt(C,10));this.cfg.setProperty(A,B);};YAHOO.widget.Calendar.prototype.setYear=function(B){var A=YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key;var C=this.cfg.getProperty(A);C.setFullYear(parseInt(B,10));this.cfg.setProperty(A,C);};YAHOO.widget.Calendar.prototype.getSelectedDates=function(){var C=[];var B=this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.SELECTED.key);for(var E=0;E<B.length;++E){var D=B[E];var A=new Date(D[0],D[1]-1,D[2]);C.push(A);}C.sort(function(G,F){return G-F;});return C;};YAHOO.widget.Calendar.prototype.hide=function(){this.oDomContainer.style.display="none";};YAHOO.widget.Calendar.prototype.show=function(){this.oDomContainer.style.display="block";};YAHOO.widget.Calendar.prototype.browser=function(){var A=navigator.userAgent.toLowerCase();if(A.indexOf("opera")!=-1){return"opera";}else{if(A.indexOf("msie 7")!=-1){return"ie7";}else{if(A.indexOf("msie")!=-1){return"ie";}else{if(A.indexOf("safari")!=-1){return"safari";}else{if(A.indexOf("gecko")!=-1){return"gecko";}else{return false;}}}}}}();YAHOO.widget.Calendar.prototype.toString=function(){return"Calendar "+this.id;};YAHOO.widget.Calendar_Core=YAHOO.widget.Calendar;YAHOO.widget.Cal_Core=YAHOO.widget.Calendar;YAHOO.widget.CalendarGroup=function(C,A,B){if(arguments.length>0){this.init(C,A,B);}};YAHOO.widget.CalendarGroup.prototype.init=function(C,A,B){this.initEvents();this.initStyles();this.pages=[];this.id=C;this.containerId=A;this.oDomContainer=document.getElementById(A);YAHOO.util.Dom.addClass(this.oDomContainer,YAHOO.widget.CalendarGroup.CSS_CONTAINER);YAHOO.util.Dom.addClass(this.oDomContainer,YAHOO.widget.CalendarGroup.CSS_MULTI_UP);this.cfg=new YAHOO.util.Config(this);this.Options={};this.Locale={};this.setupConfig();if(B){this.cfg.applyConfig(B,true);}this.cfg.fireQueue();if(YAHOO.env.ua.opera){this.renderEvent.subscribe(this._fixWidth,this,true);}};YAHOO.widget.CalendarGroup.prototype.setupConfig=function(){var A=YAHOO.widget.CalendarGroup._DEFAULT_CONFIG;this.cfg.addProperty(A.PAGES.key,{value:A.PAGES.value,validator:this.cfg.checkNumber,handler:this.configPages});this.cfg.addProperty(A.PAGEDATE.key,{value:new Date(),handler:this.configPageDate});this.cfg.addProperty(A.SELECTED.key,{value:[],handler:this.configSelected});this.cfg.addProperty(A.TITLE.key,{value:A.TITLE.value,handler:this.configTitle});this.cfg.addProperty(A.CLOSE.key,{value:A.CLOSE.value,handler:this.configClose});this.cfg.addProperty(A.IFRAME.key,{value:A.IFRAME.value,handler:this.configIframe,validator:this.cfg.checkBoolean});this.cfg.addProperty(A.MINDATE.key,{value:A.MINDATE.value,handler:this.delegateConfig});this.cfg.addProperty(A.MAXDATE.key,{value:A.MAXDATE.value,handler:this.delegateConfig});this.cfg.addProperty(A.MULTI_SELECT.key,{value:A.MULTI_SELECT.value,handler:this.delegateConfig,validator:this.cfg.checkBoolean});this.cfg.addProperty(A.START_WEEKDAY.key,{value:A.START_WEEKDAY.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(A.SHOW_WEEKDAYS.key,{value:A.SHOW_WEEKDAYS.value,handler:this.delegateConfig,validator:this.cfg.checkBoolean});this.cfg.addProperty(A.SHOW_WEEK_HEADER.key,{value:A.SHOW_WEEK_HEADER.value,handler:this.delegateConfig,validator:this.cfg.checkBoolean});this.cfg.addProperty(A.SHOW_WEEK_FOOTER.key,{value:A.SHOW_WEEK_FOOTER.value,handler:this.delegateConfig,validator:this.cfg.checkBoolean});this.cfg.addProperty(A.HIDE_BLANK_WEEKS.key,{value:A.HIDE_BLANK_WEEKS.value,handler:this.delegateConfig,validator:this.cfg.checkBoolean});this.cfg.addProperty(A.NAV_ARROW_LEFT.key,{value:A.NAV_ARROW_LEFT.value,handler:this.delegateConfig});this.cfg.addProperty(A.NAV_ARROW_RIGHT.key,{value:A.NAV_ARROW_RIGHT.value,handler:this.delegateConfig});this.cfg.addProperty(A.MONTHS_SHORT.key,{value:A.MONTHS_SHORT.value,handler:this.delegateConfig});this.cfg.addProperty(A.MONTHS_LONG.key,{value:A.MONTHS_LONG.value,handler:this.delegateConfig});
-this.cfg.addProperty(A.WEEKDAYS_1CHAR.key,{value:A.WEEKDAYS_1CHAR.value,handler:this.delegateConfig});this.cfg.addProperty(A.WEEKDAYS_SHORT.key,{value:A.WEEKDAYS_SHORT.value,handler:this.delegateConfig});this.cfg.addProperty(A.WEEKDAYS_MEDIUM.key,{value:A.WEEKDAYS_MEDIUM.value,handler:this.delegateConfig});this.cfg.addProperty(A.WEEKDAYS_LONG.key,{value:A.WEEKDAYS_LONG.value,handler:this.delegateConfig});this.cfg.addProperty(A.LOCALE_MONTHS.key,{value:A.LOCALE_MONTHS.value,handler:this.delegateConfig});this.cfg.addProperty(A.LOCALE_WEEKDAYS.key,{value:A.LOCALE_WEEKDAYS.value,handler:this.delegateConfig});this.cfg.addProperty(A.DATE_DELIMITER.key,{value:A.DATE_DELIMITER.value,handler:this.delegateConfig});this.cfg.addProperty(A.DATE_FIELD_DELIMITER.key,{value:A.DATE_FIELD_DELIMITER.value,handler:this.delegateConfig});this.cfg.addProperty(A.DATE_RANGE_DELIMITER.key,{value:A.DATE_RANGE_DELIMITER.value,handler:this.delegateConfig});this.cfg.addProperty(A.MY_MONTH_POSITION.key,{value:A.MY_MONTH_POSITION.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MY_YEAR_POSITION.key,{value:A.MY_YEAR_POSITION.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MD_MONTH_POSITION.key,{value:A.MD_MONTH_POSITION.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MD_DAY_POSITION.key,{value:A.MD_DAY_POSITION.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MDY_MONTH_POSITION.key,{value:A.MDY_MONTH_POSITION.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MDY_DAY_POSITION.key,{value:A.MDY_DAY_POSITION.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MDY_YEAR_POSITION.key,{value:A.MDY_YEAR_POSITION.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MY_LABEL_MONTH_POSITION.key,{value:A.MY_LABEL_MONTH_POSITION.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MY_LABEL_YEAR_POSITION.key,{value:A.MY_LABEL_YEAR_POSITION.value,handler:this.delegateConfig,validator:this.cfg.checkNumber});this.cfg.addProperty(A.MY_LABEL_MONTH_SUFFIX.key,{value:A.MY_LABEL_MONTH_SUFFIX.value,handler:this.delegateConfig});this.cfg.addProperty(A.MY_LABEL_YEAR_SUFFIX.key,{value:A.MY_LABEL_YEAR_SUFFIX.value,handler:this.delegateConfig});};YAHOO.widget.CalendarGroup.prototype.initEvents=function(){var C=this;var E="Event";var B=function(G,J,F){for(var I=0;I<C.pages.length;++I){var H=C.pages[I];H[this.type+E].subscribe(G,J,F);}};var A=function(F,I){for(var H=0;H<C.pages.length;++H){var G=C.pages[H];G[this.type+E].unsubscribe(F,I);}};var D=YAHOO.widget.Calendar._EVENT_TYPES;this.beforeSelectEvent=new YAHOO.util.CustomEvent(D.BEFORE_SELECT);this.beforeSelectEvent.subscribe=B;this.beforeSelectEvent.unsubscribe=A;this.selectEvent=new YAHOO.util.CustomEvent(D.SELECT);this.selectEvent.subscribe=B;this.selectEvent.unsubscribe=A;this.beforeDeselectEvent=new YAHOO.util.CustomEvent(D.BEFORE_DESELECT);this.beforeDeselectEvent.subscribe=B;this.beforeDeselectEvent.unsubscribe=A;this.deselectEvent=new YAHOO.util.CustomEvent(D.DESELECT);this.deselectEvent.subscribe=B;this.deselectEvent.unsubscribe=A;this.changePageEvent=new YAHOO.util.CustomEvent(D.CHANGE_PAGE);this.changePageEvent.subscribe=B;this.changePageEvent.unsubscribe=A;this.beforeRenderEvent=new YAHOO.util.CustomEvent(D.BEFORE_RENDER);this.beforeRenderEvent.subscribe=B;this.beforeRenderEvent.unsubscribe=A;this.renderEvent=new YAHOO.util.CustomEvent(D.RENDER);this.renderEvent.subscribe=B;this.renderEvent.unsubscribe=A;this.resetEvent=new YAHOO.util.CustomEvent(D.RESET);this.resetEvent.subscribe=B;this.resetEvent.unsubscribe=A;this.clearEvent=new YAHOO.util.CustomEvent(D.CLEAR);this.clearEvent.subscribe=B;this.clearEvent.unsubscribe=A;};YAHOO.widget.CalendarGroup.prototype.configPages=function(K,J,G){var E=J[0];var C=YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGEDATE.key;var O="_";var L="groupcal";var N="first-of-type";var D="last-of-type";for(var B=0;B<E;++B){var M=this.id+O+B;var I=this.containerId+O+B;var H=this.cfg.getConfig();H.close=false;H.title=false;var A=this.constructChild(M,I,H);var F=A.cfg.getProperty(C);this._setMonthOnDate(F,F.getMonth()+B);A.cfg.setProperty(C,F);YAHOO.util.Dom.removeClass(A.oDomContainer,this.Style.CSS_SINGLE);YAHOO.util.Dom.addClass(A.oDomContainer,L);if(B===0){YAHOO.util.Dom.addClass(A.oDomContainer,N);}if(B==(E-1)){YAHOO.util.Dom.addClass(A.oDomContainer,D);}A.parent=this;A.index=B;this.pages[this.pages.length]=A;}};YAHOO.widget.CalendarGroup.prototype.configPageDate=function(H,G,E){var C=G[0];var F;var D=YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGEDATE.key;for(var B=0;B<this.pages.length;++B){var A=this.pages[B];if(B===0){F=A._parsePageDate(C);A.cfg.setProperty(D,F);}else{var I=new Date(F);this._setMonthOnDate(I,I.getMonth()+B);A.cfg.setProperty(D,I);}}};YAHOO.widget.CalendarGroup.prototype.configSelected=function(C,A,E){var D=YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.SELECTED.key;this.delegateConfig(C,A,E);var B=(this.pages.length>0)?this.pages[0].cfg.getProperty(D):[];this.cfg.setProperty(D,B,true);};YAHOO.widget.CalendarGroup.prototype.delegateConfig=function(B,A,E){var F=A[0];var D;for(var C=0;C<this.pages.length;C++){D=this.pages[C];D.cfg.setProperty(B,F);}};YAHOO.widget.CalendarGroup.prototype.setChildFunction=function(D,B){var A=this.cfg.getProperty(YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGES.key);for(var C=0;C<A;++C){this.pages[C][D]=B;}};YAHOO.widget.CalendarGroup.prototype.callChildFunction=function(F,B){var A=this.cfg.getProperty(YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGES.key);for(var E=0;E<A;++E){var D=this.pages[E];if(D[F]){var C=D[F];C.call(D,B);}}};YAHOO.widget.CalendarGroup.prototype.constructChild=function(D,B,C){var A=document.getElementById(B);if(!A){A=document.createElement("div");A.id=B;this.oDomContainer.appendChild(A);
-}return new YAHOO.widget.Calendar(D,B,C);};YAHOO.widget.CalendarGroup.prototype.setMonth=function(E){E=parseInt(E,10);var F;var B=YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGEDATE.key;for(var D=0;D<this.pages.length;++D){var C=this.pages[D];var A=C.cfg.getProperty(B);if(D===0){F=A.getFullYear();}else{A.setYear(F);}this._setMonthOnDate(A,E+D);C.cfg.setProperty(B,A);}};YAHOO.widget.CalendarGroup.prototype.setYear=function(C){var B=YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGEDATE.key;C=parseInt(C,10);for(var E=0;E<this.pages.length;++E){var D=this.pages[E];var A=D.cfg.getProperty(B);if((A.getMonth()+1)==1&&E>0){C+=1;}D.setYear(C);}};YAHOO.widget.CalendarGroup.prototype.render=function(){this.renderHeader();for(var B=0;B<this.pages.length;++B){var A=this.pages[B];A.render();}this.renderFooter();};YAHOO.widget.CalendarGroup.prototype.select=function(A){for(var C=0;C<this.pages.length;++C){var B=this.pages[C];B.select(A);}return this.getSelectedDates();};YAHOO.widget.CalendarGroup.prototype.selectCell=function(A){for(var C=0;C<this.pages.length;++C){var B=this.pages[C];B.selectCell(A);}return this.getSelectedDates();};YAHOO.widget.CalendarGroup.prototype.deselect=function(A){for(var C=0;C<this.pages.length;++C){var B=this.pages[C];B.deselect(A);}return this.getSelectedDates();};YAHOO.widget.CalendarGroup.prototype.deselectAll=function(){for(var B=0;B<this.pages.length;++B){var A=this.pages[B];A.deselectAll();}return this.getSelectedDates();};YAHOO.widget.CalendarGroup.prototype.deselectCell=function(A){for(var C=0;C<this.pages.length;++C){var B=this.pages[C];B.deselectCell(A);}return this.getSelectedDates();};YAHOO.widget.CalendarGroup.prototype.reset=function(){for(var B=0;B<this.pages.length;++B){var A=this.pages[B];A.reset();}};YAHOO.widget.CalendarGroup.prototype.clear=function(){for(var B=0;B<this.pages.length;++B){var A=this.pages[B];A.clear();}};YAHOO.widget.CalendarGroup.prototype.nextMonth=function(){for(var B=0;B<this.pages.length;++B){var A=this.pages[B];A.nextMonth();}};YAHOO.widget.CalendarGroup.prototype.previousMonth=function(){for(var B=this.pages.length-1;B>=0;--B){var A=this.pages[B];A.previousMonth();}};YAHOO.widget.CalendarGroup.prototype.nextYear=function(){for(var B=0;B<this.pages.length;++B){var A=this.pages[B];A.nextYear();}};YAHOO.widget.CalendarGroup.prototype.previousYear=function(){for(var B=0;B<this.pages.length;++B){var A=this.pages[B];A.previousYear();}};YAHOO.widget.CalendarGroup.prototype.getSelectedDates=function(){var C=[];var B=this.cfg.getProperty(YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.SELECTED.key);for(var E=0;E<B.length;++E){var D=B[E];var A=new Date(D[0],D[1]-1,D[2]);C.push(A);}C.sort(function(G,F){return G-F;});return C;};YAHOO.widget.CalendarGroup.prototype.addRenderer=function(A,B){for(var D=0;D<this.pages.length;++D){var C=this.pages[D];C.addRenderer(A,B);}};YAHOO.widget.CalendarGroup.prototype.addMonthRenderer=function(D,A){for(var C=0;C<this.pages.length;++C){var B=this.pages[C];B.addMonthRenderer(D,A);}};YAHOO.widget.CalendarGroup.prototype.addWeekdayRenderer=function(B,A){for(var D=0;D<this.pages.length;++D){var C=this.pages[D];C.addWeekdayRenderer(B,A);}};YAHOO.widget.CalendarGroup.prototype.renderHeader=function(){};YAHOO.widget.CalendarGroup.prototype.renderFooter=function(){};YAHOO.widget.CalendarGroup.prototype.addMonths=function(A){this.callChildFunction("addMonths",A);};YAHOO.widget.CalendarGroup.prototype.subtractMonths=function(A){this.callChildFunction("subtractMonths",A);};YAHOO.widget.CalendarGroup.prototype.addYears=function(A){this.callChildFunction("addYears",A);};YAHOO.widget.CalendarGroup.prototype.subtractYears=function(A){this.callChildFunction("subtractYears",A);};YAHOO.widget.CalendarGroup.prototype.show=function(){this.oDomContainer.style.display="block";if(YAHOO.env.ua.opera){this._fixWidth();}};YAHOO.widget.CalendarGroup.prototype._setMonthOnDate=function(C,D){if(YAHOO.env.ua.webkit&&YAHOO.env.ua.webkit<420&&(D<0||D>11)){var B=YAHOO.widget.DateMath;var A=B.add(C,B.MONTH,D-C.getMonth());C.setTime(A.getTime());}else{C.setMonth(D);}};YAHOO.widget.CalendarGroup.prototype._fixWidth=function(){var B=this.oDomContainer.offsetWidth;var A=0;for(var D=0;D<this.pages.length;++D){var C=this.pages[D];A+=C.oDomContainer.offsetWidth;}if(A>0){this.oDomContainer.style.width=A+"px";}};YAHOO.widget.CalendarGroup.CSS_CONTAINER="yui-calcontainer";YAHOO.widget.CalendarGroup.CSS_MULTI_UP="multi";YAHOO.widget.CalendarGroup.CSS_2UPTITLE="title";YAHOO.widget.CalendarGroup.CSS_2UPCLOSE="close-icon";YAHOO.lang.augmentProto(YAHOO.widget.CalendarGroup,YAHOO.widget.Calendar,"buildDayLabel","buildMonthLabel","renderOutOfBoundsDate","renderRowHeader","renderRowFooter","renderCellDefault","styleCellDefault","renderCellStyleHighlight1","renderCellStyleHighlight2","renderCellStyleHighlight3","renderCellStyleHighlight4","renderCellStyleToday","renderCellStyleSelected","renderCellNotThisMonth","renderBodyCellRestricted","initStyles","configTitle","configClose","configIframe","createTitleBar","createCloseButton","removeTitleBar","removeCloseButton","hide","browser");YAHOO.widget.CalendarGroup._DEFAULT_CONFIG=YAHOO.widget.Calendar._DEFAULT_CONFIG;YAHOO.widget.CalendarGroup._DEFAULT_CONFIG.PAGES={key:"pages",value:2};YAHOO.widget.CalendarGroup.prototype.toString=function(){return"CalendarGroup "+this.id;};YAHOO.widget.CalGrp=YAHOO.widget.CalendarGroup;YAHOO.widget.Calendar2up=function(C,A,B){this.init(C,A,B);};YAHOO.extend(YAHOO.widget.Calendar2up,YAHOO.widget.CalendarGroup);YAHOO.widget.Cal2up=YAHOO.widget.Calendar2up;YAHOO.register("calendar",YAHOO.widget.Calendar,{version:"2.3.1",build:"541"});
\ No newline at end of file
+(function(){YAHOO.util.Config=function(D){if(D){this.init(D);}};var B=YAHOO.lang,C=YAHOO.util.CustomEvent,A=YAHOO.util.Config;A.CONFIG_CHANGED_EVENT="configChanged";A.BOOLEAN_TYPE="boolean";A.prototype={owner:null,queueInProgress:false,config:null,initialConfig:null,eventQueue:null,configChangedEvent:null,init:function(D){this.owner=D;this.configChangedEvent=this.createEvent(A.CONFIG_CHANGED_EVENT);this.configChangedEvent.signature=C.LIST;this.queueInProgress=false;this.config={};this.initialConfig={};this.eventQueue=[];},checkBoolean:function(D){return(typeof D==A.BOOLEAN_TYPE);},checkNumber:function(D){return(!isNaN(D));},fireEvent:function(D,F){var E=this.config[D];if(E&&E.event){E.event.fire(F);}},addProperty:function(E,D){E=E.toLowerCase();this.config[E]=D;D.event=this.createEvent(E,{scope:this.owner});D.event.signature=C.LIST;D.key=E;if(D.handler){D.event.subscribe(D.handler,this.owner);}this.setProperty(E,D.value,true);if(!D.suppressEvent){this.queueProperty(E,D.value);}},getConfig:function(){var D={},F=this.config,G,E;for(G in F){if(B.hasOwnProperty(F,G)){E=F[G];if(E&&E.event){D[G]=E.value;}}}return D;},getProperty:function(D){var E=this.config[D.toLowerCase()];if(E&&E.event){return E.value;}else{return undefined;}},resetProperty:function(D){D=D.toLowerCase();var E=this.config[D];if(E&&E.event){if(this.initialConfig[D]&&!B.isUndefined(this.initialConfig[D])){this.setProperty(D,this.initialConfig[D]);return true;}}else{return false;}},setProperty:function(E,G,D){var F;E=E.toLowerCase();if(this.queueInProgress&&!D){this.queueProperty(E,G);return true;}else{F=this.config[E];if(F&&F.event){if(F.validator&&!F.validator(G)){return false;}else{F.value=G;if(!D){this.fireEvent(E,G);this.configChangedEvent.fire([E,G]);}return true;}}else{return false;}}},queueProperty:function(S,P){S=S.toLowerCase();var R=this.config[S],K=false,J,G,H,I,O,Q,F,M,N,D,L,T,E;if(R&&R.event){if(!B.isUndefined(P)&&R.validator&&!R.validator(P)){return false;}else{if(!B.isUndefined(P)){R.value=P;}else{P=R.value;}K=false;J=this.eventQueue.length;for(L=0;L<J;L++){G=this.eventQueue[L];if(G){H=G[0];I=G[1];if(H==S){this.eventQueue[L]=null;this.eventQueue.push([S,(!B.isUndefined(P)?P:I)]);K=true;break;}}}if(!K&&!B.isUndefined(P)){this.eventQueue.push([S,P]);}}if(R.supercedes){O=R.supercedes.length;for(T=0;T<O;T++){Q=R.supercedes[T];F=this.eventQueue.length;for(E=0;E<F;E++){M=this.eventQueue[E];if(M){N=M[0];D=M[1];if(N==Q.toLowerCase()){this.eventQueue.push([N,D]);this.eventQueue[E]=null;break;}}}}}return true;}else{return false;}},refireEvent:function(D){D=D.toLowerCase();var E=this.config[D];if(E&&E.event&&!B.isUndefined(E.value)){if(this.queueInProgress){this.queueProperty(D);}else{this.fireEvent(D,E.value);}}},applyConfig:function(D,G){var F,E;if(G){E={};for(F in D){if(B.hasOwnProperty(D,F)){E[F.toLowerCase()]=D[F];}}this.initialConfig=E;}for(F in D){if(B.hasOwnProperty(D,F)){this.queueProperty(F,D[F]);}}},refresh:function(){var D;for(D in this.config){if(B.hasOwnProperty(this.config,D)){this.refireEvent(D);}}},fireQueue:function(){var E,H,D,G,F;this.queueInProgress=true;for(E=0;E<this.eventQueue.length;E++){H=this.eventQueue[E];if(H){D=H[0];G=H[1];F=this.config[D];F.value=G;this.fireEvent(D,G);}}this.queueInProgress=false;this.eventQueue=[];},subscribeToConfigEvent:function(E,F,H,D){var G=this.config[E.toLowerCase()];if(G&&G.event){if(!A.alreadySubscribed(G.event,F,H)){G.event.subscribe(F,H,D);}return true;}else{return false;}},unsubscribeFromConfigEvent:function(D,E,G){var F=this.config[D.toLowerCase()];if(F&&F.event){return F.event.unsubscribe(E,G);}else{return false;}},toString:function(){var D="Config";if(this.owner){D+=" ["+this.owner.toString()+"]";}return D;},outputEventQueue:function(){var D="",G,E,F=this.eventQueue.length;for(E=0;E<F;E++){G=this.eventQueue[E];if(G){D+=G[0]+"="+G[1]+", ";}}return D;},destroy:function(){var E=this.config,D,F;for(D in E){if(B.hasOwnProperty(E,D)){F=E[D];F.event.unsubscribeAll();F.event=null;}}this.configChangedEvent.unsubscribeAll();this.configChangedEvent=null;this.owner=null;this.config=null;this.initialConfig=null;this.eventQueue=null;}};A.alreadySubscribed=function(E,H,I){var F=E.subscribers.length,D,G;if(F>0){G=F-1;do{D=E.subscribers[G];if(D&&D.obj==I&&D.fn==H){return true;}}while(G--);}return false;};YAHOO.lang.augmentProto(A,YAHOO.util.EventProvider);}());YAHOO.widget.DateMath={DAY:"D",WEEK:"W",YEAR:"Y",MONTH:"M",ONE_DAY_MS:1000*60*60*24,WEEK_ONE_JAN_DATE:1,add:function(A,D,C){var F=new Date(A.getTime());switch(D){case this.MONTH:var E=A.getMonth()+C;var B=0;if(E<0){while(E<0){E+=12;B-=1;}}else{if(E>11){while(E>11){E-=12;B+=1;}}}F.setMonth(E);F.setFullYear(A.getFullYear()+B);break;case this.DAY:this._addDays(F,C);break;case this.YEAR:F.setFullYear(A.getFullYear()+C);break;case this.WEEK:this._addDays(F,(C*7));break;}return F;},_addDays:function(D,C){if(YAHOO.env.ua.webkit&&YAHOO.env.ua.webkit<420){if(C<0){for(var B=-128;C<B;C-=B){D.setDate(D.getDate()+B);}}else{for(var A=96;C>A;C-=A){D.setDate(D.getDate()+A);}}}D.setDate(D.getDate()+C);},subtract:function(A,C,B){return this.add(A,C,(B*-1));},before:function(C,B){var A=B.getTime();if(C.getTime()<A){return true;}else{return false;}},after:function(C,B){var A=B.getTime();if(C.getTime()>A){return true;}else{return false;}},between:function(B,A,C){if(this.after(B,A)&&this.before(B,C)){return true;}else{return false;}},getJan1:function(A){return this.getDate(A,0,1);},getDayOffset:function(B,D){var C=this.getJan1(D);var A=Math.ceil((B.getTime()-C.getTime())/this.ONE_DAY_MS);return A;},getWeekNumber:function(E,B,H){B=B||0;H=H||this.WEEK_ONE_JAN_DATE;var I=this.clearTime(E),M,N;if(I.getDay()===B){M=I;}else{M=this.getFirstDayOfWeek(I,B);}var J=M.getFullYear(),C=M.getTime();N=new Date(M.getTime()+6*this.ONE_DAY_MS);var G;if(J!==N.getFullYear()&&N.getDate()>=H){G=1;}else{var F=this.clearTime(this.getDate(J,0,H)),A=this.getFirstDayOfWeek(F,B);var K=Math.round((I.getTime()-A.getTime())/this.ONE_DAY_MS);var L=K%7;var D=(K-L)/7;G=D+1;}return G;
+},getFirstDayOfWeek:function(D,A){A=A||0;var B=D.getDay(),C=(B-A+7)%7;return this.subtract(D,this.DAY,C);},isYearOverlapWeek:function(A){var C=false;var B=this.add(A,this.DAY,6);if(B.getFullYear()!=A.getFullYear()){C=true;}return C;},isMonthOverlapWeek:function(A){var C=false;var B=this.add(A,this.DAY,6);if(B.getMonth()!=A.getMonth()){C=true;}return C;},findMonthStart:function(A){var B=this.getDate(A.getFullYear(),A.getMonth(),1);return B;},findMonthEnd:function(B){var D=this.findMonthStart(B);var C=this.add(D,this.MONTH,1);var A=this.subtract(C,this.DAY,1);return A;},clearTime:function(A){A.setHours(12,0,0,0);return A;},getDate:function(D,A,C){var B=null;if(YAHOO.lang.isUndefined(C)){C=1;}if(D>=100){B=new Date(D,A,C);}else{B=new Date();B.setFullYear(D);B.setMonth(A);B.setDate(C);B.setHours(0,0,0,0);}return B;}};(function(){var C=YAHOO.util.Dom,A=YAHOO.util.Event,E=YAHOO.lang,D=YAHOO.widget.DateMath;function F(I,G,H){this.init.apply(this,arguments);}F.IMG_ROOT=null;F.DATE="D";F.MONTH_DAY="MD";F.WEEKDAY="WD";F.RANGE="R";F.MONTH="M";F.DISPLAY_DAYS=42;F.STOP_RENDER="S";F.SHORT="short";F.LONG="long";F.MEDIUM="medium";F.ONE_CHAR="1char";F._DEFAULT_CONFIG={PAGEDATE:{key:"pagedate",value:null},SELECTED:{key:"selected",value:null},TITLE:{key:"title",value:""},CLOSE:{key:"close",value:false},IFRAME:{key:"iframe",value:(YAHOO.env.ua.ie&&YAHOO.env.ua.ie<=6)?true:false},MINDATE:{key:"mindate",value:null},MAXDATE:{key:"maxdate",value:null},MULTI_SELECT:{key:"multi_select",value:false},START_WEEKDAY:{key:"start_weekday",value:0},SHOW_WEEKDAYS:{key:"show_weekdays",value:true},SHOW_WEEK_HEADER:{key:"show_week_header",value:false},SHOW_WEEK_FOOTER:{key:"show_week_footer",value:false},HIDE_BLANK_WEEKS:{key:"hide_blank_weeks",value:false},NAV_ARROW_LEFT:{key:"nav_arrow_left",value:null},NAV_ARROW_RIGHT:{key:"nav_arrow_right",value:null},MONTHS_SHORT:{key:"months_short",value:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]},MONTHS_LONG:{key:"months_long",value:["January","February","March","April","May","June","July","August","September","October","November","December"]},WEEKDAYS_1CHAR:{key:"weekdays_1char",value:["S","M","T","W","T","F","S"]},WEEKDAYS_SHORT:{key:"weekdays_short",value:["Su","Mo","Tu","We","Th","Fr","Sa"]},WEEKDAYS_MEDIUM:{key:"weekdays_medium",value:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},WEEKDAYS_LONG:{key:"weekdays_long",value:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},LOCALE_MONTHS:{key:"locale_months",value:"long"},LOCALE_WEEKDAYS:{key:"locale_weekdays",value:"short"},DATE_DELIMITER:{key:"date_delimiter",value:","},DATE_FIELD_DELIMITER:{key:"date_field_delimiter",value:"/"},DATE_RANGE_DELIMITER:{key:"date_range_delimiter",value:"-"},MY_MONTH_POSITION:{key:"my_month_position",value:1},MY_YEAR_POSITION:{key:"my_year_position",value:2},MD_MONTH_POSITION:{key:"md_month_position",value:1},MD_DAY_POSITION:{key:"md_day_position",value:2},MDY_MONTH_POSITION:{key:"mdy_month_position",value:1},MDY_DAY_POSITION:{key:"mdy_day_position",value:2},MDY_YEAR_POSITION:{key:"mdy_year_position",value:3},MY_LABEL_MONTH_POSITION:{key:"my_label_month_position",value:1},MY_LABEL_YEAR_POSITION:{key:"my_label_year_position",value:2},MY_LABEL_MONTH_SUFFIX:{key:"my_label_month_suffix",value:" "},MY_LABEL_YEAR_SUFFIX:{key:"my_label_year_suffix",value:""},NAV:{key:"navigator",value:null},STRINGS:{key:"strings",value:{previousMonth:"Previous Month",nextMonth:"Next Month",close:"Close"},supercedes:["close","title"]}};var B=F._DEFAULT_CONFIG;F._EVENT_TYPES={BEFORE_SELECT:"beforeSelect",SELECT:"select",BEFORE_DESELECT:"beforeDeselect",DESELECT:"deselect",CHANGE_PAGE:"changePage",BEFORE_RENDER:"beforeRender",RENDER:"render",BEFORE_DESTROY:"beforeDestroy",DESTROY:"destroy",RESET:"reset",CLEAR:"clear",BEFORE_HIDE:"beforeHide",HIDE:"hide",BEFORE_SHOW:"beforeShow",SHOW:"show",BEFORE_HIDE_NAV:"beforeHideNav",HIDE_NAV:"hideNav",BEFORE_SHOW_NAV:"beforeShowNav",SHOW_NAV:"showNav",BEFORE_RENDER_NAV:"beforeRenderNav",RENDER_NAV:"renderNav"};F._STYLES={CSS_ROW_HEADER:"calrowhead",CSS_ROW_FOOTER:"calrowfoot",CSS_CELL:"calcell",CSS_CELL_SELECTOR:"selector",CSS_CELL_SELECTED:"selected",CSS_CELL_SELECTABLE:"selectable",CSS_CELL_RESTRICTED:"restricted",CSS_CELL_TODAY:"today",CSS_CELL_OOM:"oom",CSS_CELL_OOB:"previous",CSS_HEADER:"calheader",CSS_HEADER_TEXT:"calhead",CSS_BODY:"calbody",CSS_WEEKDAY_CELL:"calweekdaycell",CSS_WEEKDAY_ROW:"calweekdayrow",CSS_FOOTER:"calfoot",CSS_CALENDAR:"yui-calendar",CSS_SINGLE:"single",CSS_CONTAINER:"yui-calcontainer",CSS_NAV_LEFT:"calnavleft",CSS_NAV_RIGHT:"calnavright",CSS_NAV:"calnav",CSS_CLOSE:"calclose",CSS_CELL_TOP:"calcelltop",CSS_CELL_LEFT:"calcellleft",CSS_CELL_RIGHT:"calcellright",CSS_CELL_BOTTOM:"calcellbottom",CSS_CELL_HOVER:"calcellhover",CSS_CELL_HIGHLIGHT1:"highlight1",CSS_CELL_HIGHLIGHT2:"highlight2",CSS_CELL_HIGHLIGHT3:"highlight3",CSS_CELL_HIGHLIGHT4:"highlight4"};F.prototype={Config:null,parent:null,index:-1,cells:null,cellDates:null,id:null,containerId:null,oDomContainer:null,today:null,renderStack:null,_renderStack:null,oNavigator:null,_selectedDates:null,domEventMap:null,_parseArgs:function(H){var G={id:null,container:null,config:null};if(H&&H.length&&H.length>0){switch(H.length){case 1:G.id=null;G.container=H[0];G.config=null;break;case 2:if(E.isObject(H[1])&&!H[1].tagName&&!(H[1] instanceof String)){G.id=null;G.container=H[0];G.config=H[1];}else{G.id=H[0];G.container=H[1];G.config=null;}break;default:G.id=H[0];G.container=H[1];G.config=H[2];break;}}else{}return G;},init:function(J,H,I){var G=this._parseArgs(arguments);J=G.id;H=G.container;I=G.config;this.oDomContainer=C.get(H);if(!this.oDomContainer.id){this.oDomContainer.id=C.generateId();}if(!J){J=this.oDomContainer.id+"_t";}this.id=J;this.containerId=this.oDomContainer.id;this.initEvents();this.today=new Date();D.clearTime(this.today);this.cfg=new YAHOO.util.Config(this);this.Options={};this.Locale={};this.initStyles();C.addClass(this.oDomContainer,this.Style.CSS_CONTAINER);
+C.addClass(this.oDomContainer,this.Style.CSS_SINGLE);this.cellDates=[];this.cells=[];this.renderStack=[];this._renderStack=[];this.setupConfig();if(I){this.cfg.applyConfig(I,true);}this.cfg.fireQueue();},configIframe:function(I,H,J){var G=H[0];if(!this.parent){if(C.inDocument(this.oDomContainer)){if(G){var K=C.getStyle(this.oDomContainer,"position");if(K=="absolute"||K=="relative"){if(!C.inDocument(this.iframe)){this.iframe=document.createElement("iframe");this.iframe.src="javascript:false;";C.setStyle(this.iframe,"opacity","0");if(YAHOO.env.ua.ie&&YAHOO.env.ua.ie<=6){C.addClass(this.iframe,"fixedsize");}this.oDomContainer.insertBefore(this.iframe,this.oDomContainer.firstChild);}}}else{if(this.iframe){if(this.iframe.parentNode){this.iframe.parentNode.removeChild(this.iframe);}this.iframe=null;}}}}},configTitle:function(H,G,I){var K=G[0];if(K){this.createTitleBar(K);}else{var J=this.cfg.getProperty(B.CLOSE.key);if(!J){this.removeTitleBar();}else{this.createTitleBar("&#160;");}}},configClose:function(H,G,I){var K=G[0],J=this.cfg.getProperty(B.TITLE.key);if(K){if(!J){this.createTitleBar("&#160;");}this.createCloseButton();}else{this.removeCloseButton();if(!J){this.removeTitleBar();}}},initEvents:function(){var G=F._EVENT_TYPES,I=YAHOO.util.CustomEvent,H=this;H.beforeSelectEvent=new I(G.BEFORE_SELECT);H.selectEvent=new I(G.SELECT);H.beforeDeselectEvent=new I(G.BEFORE_DESELECT);H.deselectEvent=new I(G.DESELECT);H.changePageEvent=new I(G.CHANGE_PAGE);H.beforeRenderEvent=new I(G.BEFORE_RENDER);H.renderEvent=new I(G.RENDER);H.beforeDestroyEvent=new I(G.BEFORE_DESTROY);H.destroyEvent=new I(G.DESTROY);H.resetEvent=new I(G.RESET);H.clearEvent=new I(G.CLEAR);H.beforeShowEvent=new I(G.BEFORE_SHOW);H.showEvent=new I(G.SHOW);H.beforeHideEvent=new I(G.BEFORE_HIDE);H.hideEvent=new I(G.HIDE);H.beforeShowNavEvent=new I(G.BEFORE_SHOW_NAV);H.showNavEvent=new I(G.SHOW_NAV);H.beforeHideNavEvent=new I(G.BEFORE_HIDE_NAV);H.hideNavEvent=new I(G.HIDE_NAV);H.beforeRenderNavEvent=new I(G.BEFORE_RENDER_NAV);H.renderNavEvent=new I(G.RENDER_NAV);H.beforeSelectEvent.subscribe(H.onBeforeSelect,this,true);H.selectEvent.subscribe(H.onSelect,this,true);H.beforeDeselectEvent.subscribe(H.onBeforeDeselect,this,true);H.deselectEvent.subscribe(H.onDeselect,this,true);H.changePageEvent.subscribe(H.onChangePage,this,true);H.renderEvent.subscribe(H.onRender,this,true);H.resetEvent.subscribe(H.onReset,this,true);H.clearEvent.subscribe(H.onClear,this,true);},doPreviousMonthNav:function(H,G){A.preventDefault(H);setTimeout(function(){G.previousMonth();var I=C.getElementsByClassName(G.Style.CSS_NAV_LEFT,"a",G.oDomContainer);if(I&&I[0]){try{I[0].focus();}catch(J){}}},0);},doNextMonthNav:function(H,G){A.preventDefault(H);setTimeout(function(){G.nextMonth();var I=C.getElementsByClassName(G.Style.CSS_NAV_RIGHT,"a",G.oDomContainer);if(I&&I[0]){try{I[0].focus();}catch(J){}}},0);},doSelectCell:function(M,G){var R,O,I,L;var N=A.getTarget(M),H=N.tagName.toLowerCase(),K=false;while(H!="td"&&!C.hasClass(N,G.Style.CSS_CELL_SELECTABLE)){if(!K&&H=="a"&&C.hasClass(N,G.Style.CSS_CELL_SELECTOR)){K=true;}N=N.parentNode;H=N.tagName.toLowerCase();if(N==this.oDomContainer||H=="html"){return ;}}if(K){A.preventDefault(M);}R=N;if(C.hasClass(R,G.Style.CSS_CELL_SELECTABLE)){L=G.getIndexFromId(R.id);if(L>-1){O=G.cellDates[L];if(O){I=D.getDate(O[0],O[1]-1,O[2]);var Q;if(G.Options.MULTI_SELECT){Q=R.getElementsByTagName("a")[0];if(Q){Q.blur();}var J=G.cellDates[L];var P=G._indexOfSelectedFieldArray(J);if(P>-1){G.deselectCell(L);}else{G.selectCell(L);}}else{Q=R.getElementsByTagName("a")[0];if(Q){Q.blur();}G.selectCell(L);}}}}},doCellMouseOver:function(I,H){var G;if(I){G=A.getTarget(I);}else{G=this;}while(G.tagName&&G.tagName.toLowerCase()!="td"){G=G.parentNode;if(!G.tagName||G.tagName.toLowerCase()=="html"){return ;}}if(C.hasClass(G,H.Style.CSS_CELL_SELECTABLE)){C.addClass(G,H.Style.CSS_CELL_HOVER);}},doCellMouseOut:function(I,H){var G;if(I){G=A.getTarget(I);}else{G=this;}while(G.tagName&&G.tagName.toLowerCase()!="td"){G=G.parentNode;if(!G.tagName||G.tagName.toLowerCase()=="html"){return ;}}if(C.hasClass(G,H.Style.CSS_CELL_SELECTABLE)){C.removeClass(G,H.Style.CSS_CELL_HOVER);}},setupConfig:function(){var G=this.cfg;G.addProperty(B.PAGEDATE.key,{value:new Date(),handler:this.configPageDate});G.addProperty(B.SELECTED.key,{value:[],handler:this.configSelected});G.addProperty(B.TITLE.key,{value:B.TITLE.value,handler:this.configTitle});G.addProperty(B.CLOSE.key,{value:B.CLOSE.value,handler:this.configClose});G.addProperty(B.IFRAME.key,{value:B.IFRAME.value,handler:this.configIframe,validator:G.checkBoolean});G.addProperty(B.MINDATE.key,{value:B.MINDATE.value,handler:this.configMinDate});G.addProperty(B.MAXDATE.key,{value:B.MAXDATE.value,handler:this.configMaxDate});G.addProperty(B.MULTI_SELECT.key,{value:B.MULTI_SELECT.value,handler:this.configOptions,validator:G.checkBoolean});G.addProperty(B.START_WEEKDAY.key,{value:B.START_WEEKDAY.value,handler:this.configOptions,validator:G.checkNumber});G.addProperty(B.SHOW_WEEKDAYS.key,{value:B.SHOW_WEEKDAYS.value,handler:this.configOptions,validator:G.checkBoolean});G.addProperty(B.SHOW_WEEK_HEADER.key,{value:B.SHOW_WEEK_HEADER.value,handler:this.configOptions,validator:G.checkBoolean});G.addProperty(B.SHOW_WEEK_FOOTER.key,{value:B.SHOW_WEEK_FOOTER.value,handler:this.configOptions,validator:G.checkBoolean});G.addProperty(B.HIDE_BLANK_WEEKS.key,{value:B.HIDE_BLANK_WEEKS.value,handler:this.configOptions,validator:G.checkBoolean});G.addProperty(B.NAV_ARROW_LEFT.key,{value:B.NAV_ARROW_LEFT.value,handler:this.configOptions});G.addProperty(B.NAV_ARROW_RIGHT.key,{value:B.NAV_ARROW_RIGHT.value,handler:this.configOptions});G.addProperty(B.MONTHS_SHORT.key,{value:B.MONTHS_SHORT.value,handler:this.configLocale});G.addProperty(B.MONTHS_LONG.key,{value:B.MONTHS_LONG.value,handler:this.configLocale});G.addProperty(B.WEEKDAYS_1CHAR.key,{value:B.WEEKDAYS_1CHAR.value,handler:this.configLocale});G.addProperty(B.WEEKDAYS_SHORT.key,{value:B.WEEKDAYS_SHORT.value,handler:this.configLocale});
+G.addProperty(B.WEEKDAYS_MEDIUM.key,{value:B.WEEKDAYS_MEDIUM.value,handler:this.configLocale});G.addProperty(B.WEEKDAYS_LONG.key,{value:B.WEEKDAYS_LONG.value,handler:this.configLocale});var H=function(){G.refireEvent(B.LOCALE_MONTHS.key);G.refireEvent(B.LOCALE_WEEKDAYS.key);};G.subscribeToConfigEvent(B.START_WEEKDAY.key,H,this,true);G.subscribeToConfigEvent(B.MONTHS_SHORT.key,H,this,true);G.subscribeToConfigEvent(B.MONTHS_LONG.key,H,this,true);G.subscribeToConfigEvent(B.WEEKDAYS_1CHAR.key,H,this,true);G.subscribeToConfigEvent(B.WEEKDAYS_SHORT.key,H,this,true);G.subscribeToConfigEvent(B.WEEKDAYS_MEDIUM.key,H,this,true);G.subscribeToConfigEvent(B.WEEKDAYS_LONG.key,H,this,true);G.addProperty(B.LOCALE_MONTHS.key,{value:B.LOCALE_MONTHS.value,handler:this.configLocaleValues});G.addProperty(B.LOCALE_WEEKDAYS.key,{value:B.LOCALE_WEEKDAYS.value,handler:this.configLocaleValues});G.addProperty(B.DATE_DELIMITER.key,{value:B.DATE_DELIMITER.value,handler:this.configLocale});G.addProperty(B.DATE_FIELD_DELIMITER.key,{value:B.DATE_FIELD_DELIMITER.value,handler:this.configLocale});G.addProperty(B.DATE_RANGE_DELIMITER.key,{value:B.DATE_RANGE_DELIMITER.value,handler:this.configLocale});G.addProperty(B.MY_MONTH_POSITION.key,{value:B.MY_MONTH_POSITION.value,handler:this.configLocale,validator:G.checkNumber});G.addProperty(B.MY_YEAR_POSITION.key,{value:B.MY_YEAR_POSITION.value,handler:this.configLocale,validator:G.checkNumber});G.addProperty(B.MD_MONTH_POSITION.key,{value:B.MD_MONTH_POSITION.value,handler:this.configLocale,validator:G.checkNumber});G.addProperty(B.MD_DAY_POSITION.key,{value:B.MD_DAY_POSITION.value,handler:this.configLocale,validator:G.checkNumber});G.addProperty(B.MDY_MONTH_POSITION.key,{value:B.MDY_MONTH_POSITION.value,handler:this.configLocale,validator:G.checkNumber});G.addProperty(B.MDY_DAY_POSITION.key,{value:B.MDY_DAY_POSITION.value,handler:this.configLocale,validator:G.checkNumber});G.addProperty(B.MDY_YEAR_POSITION.key,{value:B.MDY_YEAR_POSITION.value,handler:this.configLocale,validator:G.checkNumber});G.addProperty(B.MY_LABEL_MONTH_POSITION.key,{value:B.MY_LABEL_MONTH_POSITION.value,handler:this.configLocale,validator:G.checkNumber});G.addProperty(B.MY_LABEL_YEAR_POSITION.key,{value:B.MY_LABEL_YEAR_POSITION.value,handler:this.configLocale,validator:G.checkNumber});G.addProperty(B.MY_LABEL_MONTH_SUFFIX.key,{value:B.MY_LABEL_MONTH_SUFFIX.value,handler:this.configLocale});G.addProperty(B.MY_LABEL_YEAR_SUFFIX.key,{value:B.MY_LABEL_YEAR_SUFFIX.value,handler:this.configLocale});G.addProperty(B.NAV.key,{value:B.NAV.value,handler:this.configNavigator});G.addProperty(B.STRINGS.key,{value:B.STRINGS.value,handler:this.configStrings,validator:function(I){return E.isObject(I);},supercedes:B.STRINGS.supercedes});},configStrings:function(H,G,I){var J=E.merge(B.STRINGS.value,G[0]);this.cfg.setProperty(B.STRINGS.key,J,true);},configPageDate:function(H,G,I){this.cfg.setProperty(B.PAGEDATE.key,this._parsePageDate(G[0]),true);},configMinDate:function(H,G,I){var J=G[0];if(E.isString(J)){J=this._parseDate(J);this.cfg.setProperty(B.MINDATE.key,D.getDate(J[0],(J[1]-1),J[2]));}},configMaxDate:function(H,G,I){var J=G[0];if(E.isString(J)){J=this._parseDate(J);this.cfg.setProperty(B.MAXDATE.key,D.getDate(J[0],(J[1]-1),J[2]));}},configSelected:function(I,G,K){var H=G[0],J=B.SELECTED.key;if(H){if(E.isString(H)){this.cfg.setProperty(J,this._parseDates(H),true);}}if(!this._selectedDates){this._selectedDates=this.cfg.getProperty(J);}},configOptions:function(H,G,I){this.Options[H.toUpperCase()]=G[0];},configLocale:function(H,G,I){this.Locale[H.toUpperCase()]=G[0];this.cfg.refireEvent(B.LOCALE_MONTHS.key);this.cfg.refireEvent(B.LOCALE_WEEKDAYS.key);},configLocaleValues:function(J,I,K){J=J.toLowerCase();var M=I[0],H=this.cfg,N=this.Locale;switch(J){case B.LOCALE_MONTHS.key:switch(M){case F.SHORT:N.LOCALE_MONTHS=H.getProperty(B.MONTHS_SHORT.key).concat();break;case F.LONG:N.LOCALE_MONTHS=H.getProperty(B.MONTHS_LONG.key).concat();break;}break;case B.LOCALE_WEEKDAYS.key:switch(M){case F.ONE_CHAR:N.LOCALE_WEEKDAYS=H.getProperty(B.WEEKDAYS_1CHAR.key).concat();break;case F.SHORT:N.LOCALE_WEEKDAYS=H.getProperty(B.WEEKDAYS_SHORT.key).concat();break;case F.MEDIUM:N.LOCALE_WEEKDAYS=H.getProperty(B.WEEKDAYS_MEDIUM.key).concat();break;case F.LONG:N.LOCALE_WEEKDAYS=H.getProperty(B.WEEKDAYS_LONG.key).concat();break;}var L=H.getProperty(B.START_WEEKDAY.key);if(L>0){for(var G=0;G<L;++G){N.LOCALE_WEEKDAYS.push(N.LOCALE_WEEKDAYS.shift());}}break;}},configNavigator:function(H,G,I){var J=G[0];if(YAHOO.widget.CalendarNavigator&&(J===true||E.isObject(J))){if(!this.oNavigator){this.oNavigator=new YAHOO.widget.CalendarNavigator(this);this.beforeRenderEvent.subscribe(function(){if(!this.pages){this.oNavigator.erase();}},this,true);}}else{if(this.oNavigator){this.oNavigator.destroy();this.oNavigator=null;}}},initStyles:function(){var G=F._STYLES;this.Style={CSS_ROW_HEADER:G.CSS_ROW_HEADER,CSS_ROW_FOOTER:G.CSS_ROW_FOOTER,CSS_CELL:G.CSS_CELL,CSS_CELL_SELECTOR:G.CSS_CELL_SELECTOR,CSS_CELL_SELECTED:G.CSS_CELL_SELECTED,CSS_CELL_SELECTABLE:G.CSS_CELL_SELECTABLE,CSS_CELL_RESTRICTED:G.CSS_CELL_RESTRICTED,CSS_CELL_TODAY:G.CSS_CELL_TODAY,CSS_CELL_OOM:G.CSS_CELL_OOM,CSS_CELL_OOB:G.CSS_CELL_OOB,CSS_HEADER:G.CSS_HEADER,CSS_HEADER_TEXT:G.CSS_HEADER_TEXT,CSS_BODY:G.CSS_BODY,CSS_WEEKDAY_CELL:G.CSS_WEEKDAY_CELL,CSS_WEEKDAY_ROW:G.CSS_WEEKDAY_ROW,CSS_FOOTER:G.CSS_FOOTER,CSS_CALENDAR:G.CSS_CALENDAR,CSS_SINGLE:G.CSS_SINGLE,CSS_CONTAINER:G.CSS_CONTAINER,CSS_NAV_LEFT:G.CSS_NAV_LEFT,CSS_NAV_RIGHT:G.CSS_NAV_RIGHT,CSS_NAV:G.CSS_NAV,CSS_CLOSE:G.CSS_CLOSE,CSS_CELL_TOP:G.CSS_CELL_TOP,CSS_CELL_LEFT:G.CSS_CELL_LEFT,CSS_CELL_RIGHT:G.CSS_CELL_RIGHT,CSS_CELL_BOTTOM:G.CSS_CELL_BOTTOM,CSS_CELL_HOVER:G.CSS_CELL_HOVER,CSS_CELL_HIGHLIGHT1:G.CSS_CELL_HIGHLIGHT1,CSS_CELL_HIGHLIGHT2:G.CSS_CELL_HIGHLIGHT2,CSS_CELL_HIGHLIGHT3:G.CSS_CELL_HIGHLIGHT3,CSS_CELL_HIGHLIGHT4:G.CSS_CELL_HIGHLIGHT4};},buildMonthLabel:function(){return this._buildMonthLabel(this.cfg.getProperty(B.PAGEDATE.key));},_buildMonthLabel:function(G){var I=this.Locale.LOCALE_MONTHS[G.getMonth()]+this.Locale.MY_LABEL_MONTH_SUFFIX,H=G.getFullYear()+this.Locale.MY_LABEL_YEAR_SUFFIX;
+if(this.Locale.MY_LABEL_MONTH_POSITION==2||this.Locale.MY_LABEL_YEAR_POSITION==1){return H+I;}else{return I+H;}},buildDayLabel:function(G){return G.getDate();},createTitleBar:function(G){var H=C.getElementsByClassName(YAHOO.widget.CalendarGroup.CSS_2UPTITLE,"div",this.oDomContainer)[0]||document.createElement("div");H.className=YAHOO.widget.CalendarGroup.CSS_2UPTITLE;H.innerHTML=G;this.oDomContainer.insertBefore(H,this.oDomContainer.firstChild);C.addClass(this.oDomContainer,"withtitle");return H;},removeTitleBar:function(){var G=C.getElementsByClassName(YAHOO.widget.CalendarGroup.CSS_2UPTITLE,"div",this.oDomContainer)[0]||null;if(G){A.purgeElement(G);this.oDomContainer.removeChild(G);}C.removeClass(this.oDomContainer,"withtitle");},createCloseButton:function(){var J=YAHOO.widget.CalendarGroup.CSS_2UPCLOSE,L="us/my/bn/x_d.gif",K=C.getElementsByClassName("link-close","a",this.oDomContainer)[0],G=this.cfg.getProperty(B.STRINGS.key),H=(G&&G.close)?G.close:"";if(!K){K=document.createElement("a");A.addListener(K,"click",function(N,M){M.hide();A.preventDefault(N);},this);}K.href="#";K.className="link-close";if(F.IMG_ROOT!==null){var I=C.getElementsByClassName(J,"img",K)[0]||document.createElement("img");I.src=F.IMG_ROOT+L;I.className=J;K.appendChild(I);}else{K.innerHTML='<span class="'+J+" "+this.Style.CSS_CLOSE+'">'+H+"</span>";}this.oDomContainer.appendChild(K);return K;},removeCloseButton:function(){var G=C.getElementsByClassName("link-close","a",this.oDomContainer)[0]||null;if(G){A.purgeElement(G);this.oDomContainer.removeChild(G);}},renderHeader:function(Q){var P=7,O="us/tr/callt.gif",G="us/tr/calrt.gif",N=this.cfg,K=N.getProperty(B.PAGEDATE.key),L=N.getProperty(B.STRINGS.key),V=(L&&L.previousMonth)?L.previousMonth:"",H=(L&&L.nextMonth)?L.nextMonth:"",M;if(N.getProperty(B.SHOW_WEEK_HEADER.key)){P+=1;}if(N.getProperty(B.SHOW_WEEK_FOOTER.key)){P+=1;}Q[Q.length]="<thead>";Q[Q.length]="<tr>";Q[Q.length]='<th colspan="'+P+'" class="'+this.Style.CSS_HEADER_TEXT+'">';Q[Q.length]='<div class="'+this.Style.CSS_HEADER+'">';var X,U=false;if(this.parent){if(this.index===0){X=true;}if(this.index==(this.parent.cfg.getProperty("pages")-1)){U=true;}}else{X=true;U=true;}if(X){M=this._buildMonthLabel(D.subtract(K,D.MONTH,1));var R=N.getProperty(B.NAV_ARROW_LEFT.key);if(R===null&&F.IMG_ROOT!==null){R=F.IMG_ROOT+O;}var I=(R===null)?"":' style="background-image:url('+R+')"';Q[Q.length]='<a class="'+this.Style.CSS_NAV_LEFT+'"'+I+' href="#">'+V+" ("+M+")"+"</a>";}var W=this.buildMonthLabel();var S=this.parent||this;if(S.cfg.getProperty("navigator")){W='<a class="'+this.Style.CSS_NAV+'" href="#">'+W+"</a>";}Q[Q.length]=W;if(U){M=this._buildMonthLabel(D.add(K,D.MONTH,1));var T=N.getProperty(B.NAV_ARROW_RIGHT.key);if(T===null&&F.IMG_ROOT!==null){T=F.IMG_ROOT+G;}var J=(T===null)?"":' style="background-image:url('+T+')"';Q[Q.length]='<a class="'+this.Style.CSS_NAV_RIGHT+'"'+J+' href="#">'+H+" ("+M+")"+"</a>";}Q[Q.length]="</div>\n</th>\n</tr>";if(N.getProperty(B.SHOW_WEEKDAYS.key)){Q=this.buildWeekdays(Q);}Q[Q.length]="</thead>";return Q;},buildWeekdays:function(H){H[H.length]='<tr class="'+this.Style.CSS_WEEKDAY_ROW+'">';if(this.cfg.getProperty(B.SHOW_WEEK_HEADER.key)){H[H.length]="<th>&#160;</th>";}for(var G=0;G<this.Locale.LOCALE_WEEKDAYS.length;++G){H[H.length]='<th class="calweekdaycell">'+this.Locale.LOCALE_WEEKDAYS[G]+"</th>";}if(this.cfg.getProperty(B.SHOW_WEEK_FOOTER.key)){H[H.length]="<th>&#160;</th>";}H[H.length]="</tr>";return H;},renderBody:function(l,j){var AJ=this.cfg.getProperty(B.START_WEEKDAY.key);this.preMonthDays=l.getDay();if(AJ>0){this.preMonthDays-=AJ;}if(this.preMonthDays<0){this.preMonthDays+=7;}this.monthDays=D.findMonthEnd(l).getDate();this.postMonthDays=F.DISPLAY_DAYS-this.preMonthDays-this.monthDays;l=D.subtract(l,D.DAY,this.preMonthDays);var X,N,M="w",e="_cell",b="wd",v="d",P,q,AB=this.today,O=this.cfg,V=AB.getFullYear(),u=AB.getMonth(),J=AB.getDate(),AA=O.getProperty(B.PAGEDATE.key),I=O.getProperty(B.HIDE_BLANK_WEEKS.key),h=O.getProperty(B.SHOW_WEEK_FOOTER.key),a=O.getProperty(B.SHOW_WEEK_HEADER.key),T=O.getProperty(B.MINDATE.key),Z=O.getProperty(B.MAXDATE.key);if(T){T=D.clearTime(T);}if(Z){Z=D.clearTime(Z);}j[j.length]='<tbody class="m'+(AA.getMonth()+1)+" "+this.Style.CSS_BODY+'">';var AH=0,Q=document.createElement("div"),k=document.createElement("td");Q.appendChild(k);var z=this.parent||this;for(var AD=0;AD<6;AD++){X=D.getWeekNumber(l,AJ);N=M+X;if(AD!==0&&I===true&&l.getMonth()!=AA.getMonth()){break;}else{j[j.length]='<tr class="'+N+'">';if(a){j=this.renderRowHeader(X,j);}for(var AI=0;AI<7;AI++){P=[];this.clearElement(k);k.className=this.Style.CSS_CELL;k.id=this.id+e+AH;if(l.getDate()==J&&l.getMonth()==u&&l.getFullYear()==V){P[P.length]=z.renderCellStyleToday;}var Y=[l.getFullYear(),l.getMonth()+1,l.getDate()];this.cellDates[this.cellDates.length]=Y;if(l.getMonth()!=AA.getMonth()){P[P.length]=z.renderCellNotThisMonth;}else{C.addClass(k,b+l.getDay());C.addClass(k,v+l.getDate());for(var AC=0;AC<this.renderStack.length;++AC){q=null;var w=this.renderStack[AC],AK=w[0],H,c,L;switch(AK){case F.DATE:H=w[1][1];c=w[1][2];L=w[1][0];if(l.getMonth()+1==H&&l.getDate()==c&&l.getFullYear()==L){q=w[2];this.renderStack.splice(AC,1);}break;case F.MONTH_DAY:H=w[1][0];c=w[1][1];if(l.getMonth()+1==H&&l.getDate()==c){q=w[2];this.renderStack.splice(AC,1);}break;case F.RANGE:var g=w[1][0],f=w[1][1],m=g[1],S=g[2],W=g[0],AG=D.getDate(W,m-1,S),K=f[1],o=f[2],G=f[0],AF=D.getDate(G,K-1,o);if(l.getTime()>=AG.getTime()&&l.getTime()<=AF.getTime()){q=w[2];if(l.getTime()==AF.getTime()){this.renderStack.splice(AC,1);}}break;case F.WEEKDAY:var R=w[1][0];if(l.getDay()+1==R){q=w[2];}break;case F.MONTH:H=w[1][0];if(l.getMonth()+1==H){q=w[2];}break;}if(q){P[P.length]=q;}}}if(this._indexOfSelectedFieldArray(Y)>-1){P[P.length]=z.renderCellStyleSelected;}if((T&&(l.getTime()<T.getTime()))||(Z&&(l.getTime()>Z.getTime()))){P[P.length]=z.renderOutOfBoundsDate;}else{P[P.length]=z.styleCellDefault;P[P.length]=z.renderCellDefault;}for(var y=0;
+y<P.length;++y){if(P[y].call(z,l,k)==F.STOP_RENDER){break;}}l.setTime(l.getTime()+D.ONE_DAY_MS);l=D.clearTime(l);if(AH>=0&&AH<=6){C.addClass(k,this.Style.CSS_CELL_TOP);}if((AH%7)===0){C.addClass(k,this.Style.CSS_CELL_LEFT);}if(((AH+1)%7)===0){C.addClass(k,this.Style.CSS_CELL_RIGHT);}var n=this.postMonthDays;if(I&&n>=7){var U=Math.floor(n/7);for(var AE=0;AE<U;++AE){n-=7;}}if(AH>=((this.preMonthDays+n+this.monthDays)-7)){C.addClass(k,this.Style.CSS_CELL_BOTTOM);}j[j.length]=Q.innerHTML;AH++;}if(h){j=this.renderRowFooter(X,j);}j[j.length]="</tr>";}}j[j.length]="</tbody>";return j;},renderFooter:function(G){return G;},render:function(){this.beforeRenderEvent.fire();var H=D.findMonthStart(this.cfg.getProperty(B.PAGEDATE.key));this.resetRenderers();this.cellDates.length=0;A.purgeElement(this.oDomContainer,true);var G=[];G[G.length]='<table cellSpacing="0" class="'+this.Style.CSS_CALENDAR+" y"+H.getFullYear()+'" id="'+this.id+'">';G=this.renderHeader(G);G=this.renderBody(H,G);G=this.renderFooter(G);G[G.length]="</table>";this.oDomContainer.innerHTML=G.join("\n");this.applyListeners();this.cells=this.oDomContainer.getElementsByTagName("td");this.cfg.refireEvent(B.TITLE.key);this.cfg.refireEvent(B.CLOSE.key);this.cfg.refireEvent(B.IFRAME.key);this.renderEvent.fire();},applyListeners:function(){var P=this.oDomContainer,H=this.parent||this,L="a",S="click";var M=C.getElementsByClassName(this.Style.CSS_NAV_LEFT,L,P),I=C.getElementsByClassName(this.Style.CSS_NAV_RIGHT,L,P);if(M&&M.length>0){this.linkLeft=M[0];A.addListener(this.linkLeft,S,this.doPreviousMonthNav,H,true);}if(I&&I.length>0){this.linkRight=I[0];A.addListener(this.linkRight,S,this.doNextMonthNav,H,true);}if(H.cfg.getProperty("navigator")!==null){this.applyNavListeners();}if(this.domEventMap){var J,G;for(var R in this.domEventMap){if(E.hasOwnProperty(this.domEventMap,R)){var N=this.domEventMap[R];if(!(N instanceof Array)){N=[N];}for(var K=0;K<N.length;K++){var Q=N[K];G=C.getElementsByClassName(R,Q.tag,this.oDomContainer);for(var O=0;O<G.length;O++){J=G[O];A.addListener(J,Q.event,Q.handler,Q.scope,Q.correct);}}}}}A.addListener(this.oDomContainer,"click",this.doSelectCell,this);A.addListener(this.oDomContainer,"mouseover",this.doCellMouseOver,this);A.addListener(this.oDomContainer,"mouseout",this.doCellMouseOut,this);},applyNavListeners:function(){var H=this.parent||this,I=this,G=C.getElementsByClassName(this.Style.CSS_NAV,"a",this.oDomContainer);if(G.length>0){A.addListener(G,"click",function(N,M){var L=A.getTarget(N);if(this===L||C.isAncestor(this,L)){A.preventDefault(N);}var J=H.oNavigator;if(J){var K=I.cfg.getProperty("pagedate");J.setYear(K.getFullYear());J.setMonth(K.getMonth());J.show();}});}},getDateByCellId:function(H){var G=this.getDateFieldsByCellId(H);return(G)?D.getDate(G[0],G[1]-1,G[2]):null;},getDateFieldsByCellId:function(G){G=this.getIndexFromId(G);return(G>-1)?this.cellDates[G]:null;},getCellIndex:function(I){var H=-1;if(I){var G=I.getMonth(),N=I.getFullYear(),M=I.getDate(),K=this.cellDates;for(var J=0;J<K.length;++J){var L=K[J];if(L[0]===N&&L[1]===G+1&&L[2]===M){H=J;break;}}}return H;},getIndexFromId:function(I){var H=-1,G=I.lastIndexOf("_cell");if(G>-1){H=parseInt(I.substring(G+5),10);}return H;},renderOutOfBoundsDate:function(H,G){C.addClass(G,this.Style.CSS_CELL_OOB);G.innerHTML=H.getDate();return F.STOP_RENDER;},renderRowHeader:function(H,G){G[G.length]='<th class="calrowhead">'+H+"</th>";return G;},renderRowFooter:function(H,G){G[G.length]='<th class="calrowfoot">'+H+"</th>";return G;},renderCellDefault:function(H,G){G.innerHTML='<a href="#" class="'+this.Style.CSS_CELL_SELECTOR+'">'+this.buildDayLabel(H)+"</a>";},styleCellDefault:function(H,G){C.addClass(G,this.Style.CSS_CELL_SELECTABLE);},renderCellStyleHighlight1:function(H,G){C.addClass(G,this.Style.CSS_CELL_HIGHLIGHT1);},renderCellStyleHighlight2:function(H,G){C.addClass(G,this.Style.CSS_CELL_HIGHLIGHT2);},renderCellStyleHighlight3:function(H,G){C.addClass(G,this.Style.CSS_CELL_HIGHLIGHT3);},renderCellStyleHighlight4:function(H,G){C.addClass(G,this.Style.CSS_CELL_HIGHLIGHT4);},renderCellStyleToday:function(H,G){C.addClass(G,this.Style.CSS_CELL_TODAY);},renderCellStyleSelected:function(H,G){C.addClass(G,this.Style.CSS_CELL_SELECTED);},renderCellNotThisMonth:function(H,G){C.addClass(G,this.Style.CSS_CELL_OOM);G.innerHTML=H.getDate();return F.STOP_RENDER;},renderBodyCellRestricted:function(H,G){C.addClass(G,this.Style.CSS_CELL);C.addClass(G,this.Style.CSS_CELL_RESTRICTED);G.innerHTML=H.getDate();return F.STOP_RENDER;},addMonths:function(H){var G=B.PAGEDATE.key;this.cfg.setProperty(G,D.add(this.cfg.getProperty(G),D.MONTH,H));this.resetRenderers();this.changePageEvent.fire();},subtractMonths:function(H){var G=B.PAGEDATE.key;this.cfg.setProperty(G,D.subtract(this.cfg.getProperty(G),D.MONTH,H));this.resetRenderers();this.changePageEvent.fire();},addYears:function(H){var G=B.PAGEDATE.key;this.cfg.setProperty(G,D.add(this.cfg.getProperty(G),D.YEAR,H));this.resetRenderers();this.changePageEvent.fire();},subtractYears:function(H){var G=B.PAGEDATE.key;this.cfg.setProperty(G,D.subtract(this.cfg.getProperty(G),D.YEAR,H));this.resetRenderers();this.changePageEvent.fire();},nextMonth:function(){this.addMonths(1);},previousMonth:function(){this.subtractMonths(1);},nextYear:function(){this.addYears(1);},previousYear:function(){this.subtractYears(1);},reset:function(){this.cfg.resetProperty(B.SELECTED.key);this.cfg.resetProperty(B.PAGEDATE.key);this.resetEvent.fire();},clear:function(){this.cfg.setProperty(B.SELECTED.key,[]);this.cfg.setProperty(B.PAGEDATE.key,new Date(this.today.getTime()));this.clearEvent.fire();},select:function(I){var L=this._toFieldArray(I),H=[],K=[],M=B.SELECTED.key;for(var G=0;G<L.length;++G){var J=L[G];if(!this.isDateOOB(this._toDate(J))){if(H.length===0){this.beforeSelectEvent.fire();K=this.cfg.getProperty(M);}H.push(J);if(this._indexOfSelectedFieldArray(J)==-1){K[K.length]=J;}}}if(H.length>0){if(this.parent){this.parent.cfg.setProperty(M,K);}else{this.cfg.setProperty(M,K);
+}this.selectEvent.fire(H);}return this.getSelectedDates();},selectCell:function(J){var H=this.cells[J],N=this.cellDates[J],M=this._toDate(N),I=C.hasClass(H,this.Style.CSS_CELL_SELECTABLE);if(I){this.beforeSelectEvent.fire();var L=B.SELECTED.key;var K=this.cfg.getProperty(L);var G=N.concat();if(this._indexOfSelectedFieldArray(G)==-1){K[K.length]=G;}if(this.parent){this.parent.cfg.setProperty(L,K);}else{this.cfg.setProperty(L,K);}this.renderCellStyleSelected(M,H);this.selectEvent.fire([G]);this.doCellMouseOut.call(H,null,this);}return this.getSelectedDates();},deselect:function(K){var G=this._toFieldArray(K),J=[],M=[],N=B.SELECTED.key;for(var H=0;H<G.length;++H){var L=G[H];if(!this.isDateOOB(this._toDate(L))){if(J.length===0){this.beforeDeselectEvent.fire();M=this.cfg.getProperty(N);}J.push(L);var I=this._indexOfSelectedFieldArray(L);if(I!=-1){M.splice(I,1);}}}if(J.length>0){if(this.parent){this.parent.cfg.setProperty(N,M);}else{this.cfg.setProperty(N,M);}this.deselectEvent.fire(J);}return this.getSelectedDates();},deselectCell:function(K){var H=this.cells[K],N=this.cellDates[K],I=this._indexOfSelectedFieldArray(N);var J=C.hasClass(H,this.Style.CSS_CELL_SELECTABLE);if(J){this.beforeDeselectEvent.fire();var L=this.cfg.getProperty(B.SELECTED.key),M=this._toDate(N),G=N.concat();if(I>-1){if(this.cfg.getProperty(B.PAGEDATE.key).getMonth()==M.getMonth()&&this.cfg.getProperty(B.PAGEDATE.key).getFullYear()==M.getFullYear()){C.removeClass(H,this.Style.CSS_CELL_SELECTED);}L.splice(I,1);}if(this.parent){this.parent.cfg.setProperty(B.SELECTED.key,L);}else{this.cfg.setProperty(B.SELECTED.key,L);}this.deselectEvent.fire(G);}return this.getSelectedDates();},deselectAll:function(){this.beforeDeselectEvent.fire();var J=B.SELECTED.key,G=this.cfg.getProperty(J),H=G.length,I=G.concat();if(this.parent){this.parent.cfg.setProperty(J,[]);}else{this.cfg.setProperty(J,[]);}if(H>0){this.deselectEvent.fire(I);}return this.getSelectedDates();},_toFieldArray:function(H){var G=[];if(H instanceof Date){G=[[H.getFullYear(),H.getMonth()+1,H.getDate()]];}else{if(E.isString(H)){G=this._parseDates(H);}else{if(E.isArray(H)){for(var I=0;I<H.length;++I){var J=H[I];G[G.length]=[J.getFullYear(),J.getMonth()+1,J.getDate()];}}}}return G;},toDate:function(G){return this._toDate(G);},_toDate:function(G){if(G instanceof Date){return G;}else{return D.getDate(G[0],G[1]-1,G[2]);}},_fieldArraysAreEqual:function(I,H){var G=false;if(I[0]==H[0]&&I[1]==H[1]&&I[2]==H[2]){G=true;}return G;},_indexOfSelectedFieldArray:function(K){var J=-1,G=this.cfg.getProperty(B.SELECTED.key);for(var I=0;I<G.length;++I){var H=G[I];if(K[0]==H[0]&&K[1]==H[1]&&K[2]==H[2]){J=I;break;}}return J;},isDateOOM:function(G){return(G.getMonth()!=this.cfg.getProperty(B.PAGEDATE.key).getMonth());},isDateOOB:function(I){var J=this.cfg.getProperty(B.MINDATE.key),K=this.cfg.getProperty(B.MAXDATE.key),H=D;if(J){J=H.clearTime(J);}if(K){K=H.clearTime(K);}var G=new Date(I.getTime());G=H.clearTime(G);return((J&&G.getTime()<J.getTime())||(K&&G.getTime()>K.getTime()));},_parsePageDate:function(G){var J;if(G){if(G instanceof Date){J=D.findMonthStart(G);}else{var K,I,H;H=G.split(this.cfg.getProperty(B.DATE_FIELD_DELIMITER.key));K=parseInt(H[this.cfg.getProperty(B.MY_MONTH_POSITION.key)-1],10)-1;I=parseInt(H[this.cfg.getProperty(B.MY_YEAR_POSITION.key)-1],10);J=D.getDate(I,K,1);}}else{J=D.getDate(this.today.getFullYear(),this.today.getMonth(),1);}return J;},onBeforeSelect:function(){if(this.cfg.getProperty(B.MULTI_SELECT.key)===false){if(this.parent){this.parent.callChildFunction("clearAllBodyCellStyles",this.Style.CSS_CELL_SELECTED);this.parent.deselectAll();}else{this.clearAllBodyCellStyles(this.Style.CSS_CELL_SELECTED);this.deselectAll();}}},onSelect:function(G){},onBeforeDeselect:function(){},onDeselect:function(G){},onChangePage:function(){this.render();},onRender:function(){},onReset:function(){this.render();},onClear:function(){this.render();},validate:function(){return true;},_parseDate:function(I){var J=I.split(this.Locale.DATE_FIELD_DELIMITER),G;if(J.length==2){G=[J[this.Locale.MD_MONTH_POSITION-1],J[this.Locale.MD_DAY_POSITION-1]];G.type=F.MONTH_DAY;}else{G=[J[this.Locale.MDY_YEAR_POSITION-1],J[this.Locale.MDY_MONTH_POSITION-1],J[this.Locale.MDY_DAY_POSITION-1]];G.type=F.DATE;}for(var H=0;H<G.length;H++){G[H]=parseInt(G[H],10);}return G;},_parseDates:function(H){var O=[],N=H.split(this.Locale.DATE_DELIMITER);for(var M=0;M<N.length;++M){var L=N[M];if(L.indexOf(this.Locale.DATE_RANGE_DELIMITER)!=-1){var G=L.split(this.Locale.DATE_RANGE_DELIMITER),K=this._parseDate(G[0]),P=this._parseDate(G[1]),J=this._parseRange(K,P);O=O.concat(J);}else{var I=this._parseDate(L);O.push(I);}}return O;},_parseRange:function(G,K){var H=D.add(D.getDate(G[0],G[1]-1,G[2]),D.DAY,1),J=D.getDate(K[0],K[1]-1,K[2]),I=[];I.push(G);while(H.getTime()<=J.getTime()){I.push([H.getFullYear(),H.getMonth()+1,H.getDate()]);H=D.add(H,D.DAY,1);}return I;},resetRenderers:function(){this.renderStack=this._renderStack.concat();},removeRenderers:function(){this._renderStack=[];this.renderStack=[];},clearElement:function(G){G.innerHTML="&#160;";G.className="";},addRenderer:function(G,H){var J=this._parseDates(G);for(var I=0;I<J.length;++I){var K=J[I];if(K.length==2){if(K[0] instanceof Array){this._addRenderer(F.RANGE,K,H);}else{this._addRenderer(F.MONTH_DAY,K,H);}}else{if(K.length==3){this._addRenderer(F.DATE,K,H);}}}},_addRenderer:function(H,I,G){var J=[H,I,G];this.renderStack.unshift(J);this._renderStack=this.renderStack.concat();},addMonthRenderer:function(H,G){this._addRenderer(F.MONTH,[H],G);},addWeekdayRenderer:function(H,G){this._addRenderer(F.WEEKDAY,[H],G);},clearAllBodyCellStyles:function(G){for(var H=0;H<this.cells.length;++H){C.removeClass(this.cells[H],G);}},setMonth:function(I){var G=B.PAGEDATE.key,H=this.cfg.getProperty(G);H.setMonth(parseInt(I,10));this.cfg.setProperty(G,H);},setYear:function(H){var G=B.PAGEDATE.key,I=this.cfg.getProperty(G);I.setFullYear(parseInt(H,10));this.cfg.setProperty(G,I);},getSelectedDates:function(){var I=[],H=this.cfg.getProperty(B.SELECTED.key);
+for(var K=0;K<H.length;++K){var J=H[K];var G=D.getDate(J[0],J[1]-1,J[2]);I.push(G);}I.sort(function(M,L){return M-L;});return I;},hide:function(){if(this.beforeHideEvent.fire()){this.oDomContainer.style.display="none";this.hideEvent.fire();}},show:function(){if(this.beforeShowEvent.fire()){this.oDomContainer.style.display="block";this.showEvent.fire();}},browser:(function(){var G=navigator.userAgent.toLowerCase();if(G.indexOf("opera")!=-1){return"opera";}else{if(G.indexOf("msie 7")!=-1){return"ie7";}else{if(G.indexOf("msie")!=-1){return"ie";}else{if(G.indexOf("safari")!=-1){return"safari";}else{if(G.indexOf("gecko")!=-1){return"gecko";}else{return false;}}}}}})(),toString:function(){return"Calendar "+this.id;},destroy:function(){if(this.beforeDestroyEvent.fire()){var G=this;if(G.navigator){G.navigator.destroy();}if(G.cfg){G.cfg.destroy();}A.purgeElement(G.oDomContainer,true);C.removeClass(G.oDomContainer,"withtitle");C.removeClass(G.oDomContainer,G.Style.CSS_CONTAINER);C.removeClass(G.oDomContainer,G.Style.CSS_SINGLE);G.oDomContainer.innerHTML="";G.oDomContainer=null;G.cells=null;this.destroyEvent.fire();}}};YAHOO.widget.Calendar=F;YAHOO.widget.Calendar_Core=YAHOO.widget.Calendar;YAHOO.widget.Cal_Core=YAHOO.widget.Calendar;})();(function(){var D=YAHOO.util.Dom,F=YAHOO.widget.DateMath,A=YAHOO.util.Event,E=YAHOO.lang,G=YAHOO.widget.Calendar;function B(J,H,I){if(arguments.length>0){this.init.apply(this,arguments);}}B._DEFAULT_CONFIG=G._DEFAULT_CONFIG;B._DEFAULT_CONFIG.PAGES={key:"pages",value:2};var C=B._DEFAULT_CONFIG;B.prototype={init:function(K,I,J){var H=this._parseArgs(arguments);K=H.id;I=H.container;J=H.config;this.oDomContainer=D.get(I);if(!this.oDomContainer.id){this.oDomContainer.id=D.generateId();}if(!K){K=this.oDomContainer.id+"_t";}this.id=K;this.containerId=this.oDomContainer.id;this.initEvents();this.initStyles();this.pages=[];D.addClass(this.oDomContainer,B.CSS_CONTAINER);D.addClass(this.oDomContainer,B.CSS_MULTI_UP);this.cfg=new YAHOO.util.Config(this);this.Options={};this.Locale={};this.setupConfig();if(J){this.cfg.applyConfig(J,true);}this.cfg.fireQueue();if(YAHOO.env.ua.opera){this.renderEvent.subscribe(this._fixWidth,this,true);this.showEvent.subscribe(this._fixWidth,this,true);}},setupConfig:function(){var H=this.cfg;H.addProperty(C.PAGES.key,{value:C.PAGES.value,validator:H.checkNumber,handler:this.configPages});H.addProperty(C.PAGEDATE.key,{value:new Date(),handler:this.configPageDate});H.addProperty(C.SELECTED.key,{value:[],handler:this.configSelected});H.addProperty(C.TITLE.key,{value:C.TITLE.value,handler:this.configTitle});H.addProperty(C.CLOSE.key,{value:C.CLOSE.value,handler:this.configClose});H.addProperty(C.IFRAME.key,{value:C.IFRAME.value,handler:this.configIframe,validator:H.checkBoolean});H.addProperty(C.MINDATE.key,{value:C.MINDATE.value,handler:this.delegateConfig});H.addProperty(C.MAXDATE.key,{value:C.MAXDATE.value,handler:this.delegateConfig});H.addProperty(C.MULTI_SELECT.key,{value:C.MULTI_SELECT.value,handler:this.delegateConfig,validator:H.checkBoolean});H.addProperty(C.START_WEEKDAY.key,{value:C.START_WEEKDAY.value,handler:this.delegateConfig,validator:H.checkNumber});H.addProperty(C.SHOW_WEEKDAYS.key,{value:C.SHOW_WEEKDAYS.value,handler:this.delegateConfig,validator:H.checkBoolean});H.addProperty(C.SHOW_WEEK_HEADER.key,{value:C.SHOW_WEEK_HEADER.value,handler:this.delegateConfig,validator:H.checkBoolean});H.addProperty(C.SHOW_WEEK_FOOTER.key,{value:C.SHOW_WEEK_FOOTER.value,handler:this.delegateConfig,validator:H.checkBoolean});H.addProperty(C.HIDE_BLANK_WEEKS.key,{value:C.HIDE_BLANK_WEEKS.value,handler:this.delegateConfig,validator:H.checkBoolean});H.addProperty(C.NAV_ARROW_LEFT.key,{value:C.NAV_ARROW_LEFT.value,handler:this.delegateConfig});H.addProperty(C.NAV_ARROW_RIGHT.key,{value:C.NAV_ARROW_RIGHT.value,handler:this.delegateConfig});H.addProperty(C.MONTHS_SHORT.key,{value:C.MONTHS_SHORT.value,handler:this.delegateConfig});H.addProperty(C.MONTHS_LONG.key,{value:C.MONTHS_LONG.value,handler:this.delegateConfig});H.addProperty(C.WEEKDAYS_1CHAR.key,{value:C.WEEKDAYS_1CHAR.value,handler:this.delegateConfig});H.addProperty(C.WEEKDAYS_SHORT.key,{value:C.WEEKDAYS_SHORT.value,handler:this.delegateConfig});H.addProperty(C.WEEKDAYS_MEDIUM.key,{value:C.WEEKDAYS_MEDIUM.value,handler:this.delegateConfig});H.addProperty(C.WEEKDAYS_LONG.key,{value:C.WEEKDAYS_LONG.value,handler:this.delegateConfig});H.addProperty(C.LOCALE_MONTHS.key,{value:C.LOCALE_MONTHS.value,handler:this.delegateConfig});H.addProperty(C.LOCALE_WEEKDAYS.key,{value:C.LOCALE_WEEKDAYS.value,handler:this.delegateConfig});H.addProperty(C.DATE_DELIMITER.key,{value:C.DATE_DELIMITER.value,handler:this.delegateConfig});H.addProperty(C.DATE_FIELD_DELIMITER.key,{value:C.DATE_FIELD_DELIMITER.value,handler:this.delegateConfig});H.addProperty(C.DATE_RANGE_DELIMITER.key,{value:C.DATE_RANGE_DELIMITER.value,handler:this.delegateConfig});H.addProperty(C.MY_MONTH_POSITION.key,{value:C.MY_MONTH_POSITION.value,handler:this.delegateConfig,validator:H.checkNumber});H.addProperty(C.MY_YEAR_POSITION.key,{value:C.MY_YEAR_POSITION.value,handler:this.delegateConfig,validator:H.checkNumber});H.addProperty(C.MD_MONTH_POSITION.key,{value:C.MD_MONTH_POSITION.value,handler:this.delegateConfig,validator:H.checkNumber});H.addProperty(C.MD_DAY_POSITION.key,{value:C.MD_DAY_POSITION.value,handler:this.delegateConfig,validator:H.checkNumber});H.addProperty(C.MDY_MONTH_POSITION.key,{value:C.MDY_MONTH_POSITION.value,handler:this.delegateConfig,validator:H.checkNumber});H.addProperty(C.MDY_DAY_POSITION.key,{value:C.MDY_DAY_POSITION.value,handler:this.delegateConfig,validator:H.checkNumber});H.addProperty(C.MDY_YEAR_POSITION.key,{value:C.MDY_YEAR_POSITION.value,handler:this.delegateConfig,validator:H.checkNumber});H.addProperty(C.MY_LABEL_MONTH_POSITION.key,{value:C.MY_LABEL_MONTH_POSITION.value,handler:this.delegateConfig,validator:H.checkNumber});H.addProperty(C.MY_LABEL_YEAR_POSITION.key,{value:C.MY_LABEL_YEAR_POSITION.value,handler:this.delegateConfig,validator:H.checkNumber});
+H.addProperty(C.MY_LABEL_MONTH_SUFFIX.key,{value:C.MY_LABEL_MONTH_SUFFIX.value,handler:this.delegateConfig});H.addProperty(C.MY_LABEL_YEAR_SUFFIX.key,{value:C.MY_LABEL_YEAR_SUFFIX.value,handler:this.delegateConfig});H.addProperty(C.NAV.key,{value:C.NAV.value,handler:this.configNavigator});H.addProperty(C.STRINGS.key,{value:C.STRINGS.value,handler:this.configStrings,validator:function(I){return E.isObject(I);},supercedes:C.STRINGS.supercedes});},initEvents:function(){var J=this,L="Event",M=YAHOO.util.CustomEvent;var I=function(O,R,N){for(var Q=0;Q<J.pages.length;++Q){var P=J.pages[Q];P[this.type+L].subscribe(O,R,N);}};var H=function(N,Q){for(var P=0;P<J.pages.length;++P){var O=J.pages[P];O[this.type+L].unsubscribe(N,Q);}};var K=G._EVENT_TYPES;J.beforeSelectEvent=new M(K.BEFORE_SELECT);J.beforeSelectEvent.subscribe=I;J.beforeSelectEvent.unsubscribe=H;J.selectEvent=new M(K.SELECT);J.selectEvent.subscribe=I;J.selectEvent.unsubscribe=H;J.beforeDeselectEvent=new M(K.BEFORE_DESELECT);J.beforeDeselectEvent.subscribe=I;J.beforeDeselectEvent.unsubscribe=H;J.deselectEvent=new M(K.DESELECT);J.deselectEvent.subscribe=I;J.deselectEvent.unsubscribe=H;J.changePageEvent=new M(K.CHANGE_PAGE);J.changePageEvent.subscribe=I;J.changePageEvent.unsubscribe=H;J.beforeRenderEvent=new M(K.BEFORE_RENDER);J.beforeRenderEvent.subscribe=I;J.beforeRenderEvent.unsubscribe=H;J.renderEvent=new M(K.RENDER);J.renderEvent.subscribe=I;J.renderEvent.unsubscribe=H;J.resetEvent=new M(K.RESET);J.resetEvent.subscribe=I;J.resetEvent.unsubscribe=H;J.clearEvent=new M(K.CLEAR);J.clearEvent.subscribe=I;J.clearEvent.unsubscribe=H;J.beforeShowEvent=new M(K.BEFORE_SHOW);J.showEvent=new M(K.SHOW);J.beforeHideEvent=new M(K.BEFORE_HIDE);J.hideEvent=new M(K.HIDE);J.beforeShowNavEvent=new M(K.BEFORE_SHOW_NAV);J.showNavEvent=new M(K.SHOW_NAV);J.beforeHideNavEvent=new M(K.BEFORE_HIDE_NAV);J.hideNavEvent=new M(K.HIDE_NAV);J.beforeRenderNavEvent=new M(K.BEFORE_RENDER_NAV);J.renderNavEvent=new M(K.RENDER_NAV);J.beforeDestroyEvent=new M(K.BEFORE_DESTROY);J.destroyEvent=new M(K.DESTROY);},configPages:function(R,Q,N){var L=Q[0],J=C.PAGEDATE.key,V="_",S="groupcal",U="first-of-type",K="last-of-type";for(var I=0;I<L;++I){var T=this.id+V+I,P=this.containerId+V+I,O=this.cfg.getConfig();O.close=false;O.title=false;O.navigator=null;var H=this.constructChild(T,P,O);var M=H.cfg.getProperty(J);this._setMonthOnDate(M,M.getMonth()+I);H.cfg.setProperty(J,M);D.removeClass(H.oDomContainer,this.Style.CSS_SINGLE);D.addClass(H.oDomContainer,S);if(I===0){D.addClass(H.oDomContainer,U);}if(I==(L-1)){D.addClass(H.oDomContainer,K);}H.parent=this;H.index=I;this.pages[this.pages.length]=H;}},configPageDate:function(O,N,L){var J=N[0],M;var K=C.PAGEDATE.key;for(var I=0;I<this.pages.length;++I){var H=this.pages[I];if(I===0){M=H._parsePageDate(J);H.cfg.setProperty(K,M);}else{var P=new Date(M);this._setMonthOnDate(P,P.getMonth()+I);H.cfg.setProperty(K,P);}}},configSelected:function(J,H,L){var K=C.SELECTED.key;this.delegateConfig(J,H,L);var I=(this.pages.length>0)?this.pages[0].cfg.getProperty(K):[];this.cfg.setProperty(K,I,true);},delegateConfig:function(I,H,L){var M=H[0];var K;for(var J=0;J<this.pages.length;J++){K=this.pages[J];K.cfg.setProperty(I,M);}},setChildFunction:function(K,I){var H=this.cfg.getProperty(C.PAGES.key);for(var J=0;J<H;++J){this.pages[J][K]=I;}},callChildFunction:function(M,I){var H=this.cfg.getProperty(C.PAGES.key);for(var L=0;L<H;++L){var K=this.pages[L];if(K[M]){var J=K[M];J.call(K,I);}}},constructChild:function(K,I,J){var H=document.getElementById(I);if(!H){H=document.createElement("div");H.id=I;this.oDomContainer.appendChild(H);}return new G(K,I,J);},setMonth:function(L){L=parseInt(L,10);var M;var I=C.PAGEDATE.key;for(var K=0;K<this.pages.length;++K){var J=this.pages[K];var H=J.cfg.getProperty(I);if(K===0){M=H.getFullYear();}else{H.setFullYear(M);}this._setMonthOnDate(H,L+K);J.cfg.setProperty(I,H);}},setYear:function(J){var I=C.PAGEDATE.key;J=parseInt(J,10);for(var L=0;L<this.pages.length;++L){var K=this.pages[L];var H=K.cfg.getProperty(I);if((H.getMonth()+1)==1&&L>0){J+=1;}K.setYear(J);}},render:function(){this.renderHeader();for(var I=0;I<this.pages.length;++I){var H=this.pages[I];H.render();}this.renderFooter();},select:function(H){for(var J=0;J<this.pages.length;++J){var I=this.pages[J];I.select(H);}return this.getSelectedDates();},selectCell:function(H){for(var J=0;J<this.pages.length;++J){var I=this.pages[J];I.selectCell(H);}return this.getSelectedDates();},deselect:function(H){for(var J=0;J<this.pages.length;++J){var I=this.pages[J];I.deselect(H);}return this.getSelectedDates();},deselectAll:function(){for(var I=0;I<this.pages.length;++I){var H=this.pages[I];H.deselectAll();}return this.getSelectedDates();},deselectCell:function(H){for(var J=0;J<this.pages.length;++J){var I=this.pages[J];I.deselectCell(H);}return this.getSelectedDates();},reset:function(){for(var I=0;I<this.pages.length;++I){var H=this.pages[I];H.reset();}},clear:function(){for(var I=0;I<this.pages.length;++I){var H=this.pages[I];H.clear();}this.cfg.setProperty(C.SELECTED.key,[]);this.cfg.setProperty(C.PAGEDATE.key,new Date(this.pages[0].today.getTime()));this.render();},nextMonth:function(){for(var I=0;I<this.pages.length;++I){var H=this.pages[I];H.nextMonth();}},previousMonth:function(){for(var I=this.pages.length-1;I>=0;--I){var H=this.pages[I];H.previousMonth();}},nextYear:function(){for(var I=0;I<this.pages.length;++I){var H=this.pages[I];H.nextYear();}},previousYear:function(){for(var I=0;I<this.pages.length;++I){var H=this.pages[I];H.previousYear();}},getSelectedDates:function(){var J=[];var I=this.cfg.getProperty(C.SELECTED.key);for(var L=0;L<I.length;++L){var K=I[L];var H=F.getDate(K[0],K[1]-1,K[2]);J.push(H);}J.sort(function(N,M){return N-M;});return J;},addRenderer:function(H,I){for(var K=0;K<this.pages.length;++K){var J=this.pages[K];J.addRenderer(H,I);}},addMonthRenderer:function(K,H){for(var J=0;J<this.pages.length;++J){var I=this.pages[J];I.addMonthRenderer(K,H);}},addWeekdayRenderer:function(I,H){for(var K=0;
+K<this.pages.length;++K){var J=this.pages[K];J.addWeekdayRenderer(I,H);}},removeRenderers:function(){this.callChildFunction("removeRenderers");},renderHeader:function(){},renderFooter:function(){},addMonths:function(H){this.callChildFunction("addMonths",H);},subtractMonths:function(H){this.callChildFunction("subtractMonths",H);},addYears:function(H){this.callChildFunction("addYears",H);},subtractYears:function(H){this.callChildFunction("subtractYears",H);},getCalendarPage:function(K){var M=null;if(K){var N=K.getFullYear(),J=K.getMonth();var I=this.pages;for(var L=0;L<I.length;++L){var H=I[L].cfg.getProperty("pagedate");if(H.getFullYear()===N&&H.getMonth()===J){M=I[L];break;}}}return M;},_setMonthOnDate:function(I,J){if(YAHOO.env.ua.webkit&&YAHOO.env.ua.webkit<420&&(J<0||J>11)){var H=F.add(I,F.MONTH,J-I.getMonth());I.setTime(H.getTime());}else{I.setMonth(J);}},_fixWidth:function(){var H=0;for(var J=0;J<this.pages.length;++J){var I=this.pages[J];H+=I.oDomContainer.offsetWidth;}if(H>0){this.oDomContainer.style.width=H+"px";}},toString:function(){return"CalendarGroup "+this.id;},destroy:function(){if(this.beforeDestroyEvent.fire()){var J=this;if(J.navigator){J.navigator.destroy();}if(J.cfg){J.cfg.destroy();}A.purgeElement(J.oDomContainer,true);D.removeClass(J.oDomContainer,B.CSS_CONTAINER);D.removeClass(J.oDomContainer,B.CSS_MULTI_UP);for(var I=0,H=J.pages.length;I<H;I++){J.pages[I].destroy();J.pages[I]=null;}J.oDomContainer.innerHTML="";J.oDomContainer=null;this.destroyEvent.fire();}}};B.CSS_CONTAINER="yui-calcontainer";B.CSS_MULTI_UP="multi";B.CSS_2UPTITLE="title";B.CSS_2UPCLOSE="close-icon";YAHOO.lang.augmentProto(B,G,"buildDayLabel","buildMonthLabel","renderOutOfBoundsDate","renderRowHeader","renderRowFooter","renderCellDefault","styleCellDefault","renderCellStyleHighlight1","renderCellStyleHighlight2","renderCellStyleHighlight3","renderCellStyleHighlight4","renderCellStyleToday","renderCellStyleSelected","renderCellNotThisMonth","renderBodyCellRestricted","initStyles","configTitle","configClose","configIframe","configStrings","configNavigator","createTitleBar","createCloseButton","removeTitleBar","removeCloseButton","hide","show","toDate","_toDate","_parseArgs","browser");YAHOO.widget.CalGrp=B;YAHOO.widget.CalendarGroup=B;YAHOO.widget.Calendar2up=function(J,H,I){this.init(J,H,I);};YAHOO.extend(YAHOO.widget.Calendar2up,B);YAHOO.widget.Cal2up=YAHOO.widget.Calendar2up;})();YAHOO.widget.CalendarNavigator=function(A){this.init(A);};(function(){var A=YAHOO.widget.CalendarNavigator;A.CLASSES={NAV:"yui-cal-nav",NAV_VISIBLE:"yui-cal-nav-visible",MASK:"yui-cal-nav-mask",YEAR:"yui-cal-nav-y",MONTH:"yui-cal-nav-m",BUTTONS:"yui-cal-nav-b",BUTTON:"yui-cal-nav-btn",ERROR:"yui-cal-nav-e",YEAR_CTRL:"yui-cal-nav-yc",MONTH_CTRL:"yui-cal-nav-mc",INVALID:"yui-invalid",DEFAULT:"yui-default"};A._DEFAULT_CFG={strings:{month:"Month",year:"Year",submit:"Okay",cancel:"Cancel",invalidYear:"Year needs to be a number"},monthFormat:YAHOO.widget.Calendar.LONG,initialFocus:"year"};A.ID_SUFFIX="_nav";A.MONTH_SUFFIX="_month";A.YEAR_SUFFIX="_year";A.ERROR_SUFFIX="_error";A.CANCEL_SUFFIX="_cancel";A.SUBMIT_SUFFIX="_submit";A.YR_MAX_DIGITS=4;A.YR_MINOR_INC=1;A.YR_MAJOR_INC=10;A.UPDATE_DELAY=50;A.YR_PATTERN=/^\d+$/;A.TRIM=/^\s*(.*?)\s*$/;})();YAHOO.widget.CalendarNavigator.prototype={id:null,cal:null,navEl:null,maskEl:null,yearEl:null,monthEl:null,errorEl:null,submitEl:null,cancelEl:null,firstCtrl:null,lastCtrl:null,_doc:null,_year:null,_month:0,__rendered:false,init:function(A){var C=A.oDomContainer;this.cal=A;this.id=C.id+YAHOO.widget.CalendarNavigator.ID_SUFFIX;this._doc=C.ownerDocument;var B=YAHOO.env.ua.ie;this.__isIEQuirks=(B&&((B<=6)||(B===7&&this._doc.compatMode=="BackCompat")));},show:function(){var A=YAHOO.widget.CalendarNavigator.CLASSES;if(this.cal.beforeShowNavEvent.fire()){if(!this.__rendered){this.render();}this.clearErrors();this._updateMonthUI();this._updateYearUI();this._show(this.navEl,true);this.setInitialFocus();this.showMask();YAHOO.util.Dom.addClass(this.cal.oDomContainer,A.NAV_VISIBLE);this.cal.showNavEvent.fire();}},hide:function(){var A=YAHOO.widget.CalendarNavigator.CLASSES;if(this.cal.beforeHideNavEvent.fire()){this._show(this.navEl,false);this.hideMask();YAHOO.util.Dom.removeClass(this.cal.oDomContainer,A.NAV_VISIBLE);this.cal.hideNavEvent.fire();}},showMask:function(){this._show(this.maskEl,true);if(this.__isIEQuirks){this._syncMask();}},hideMask:function(){this._show(this.maskEl,false);},getMonth:function(){return this._month;},getYear:function(){return this._year;},setMonth:function(A){if(A>=0&&A<12){this._month=A;}this._updateMonthUI();},setYear:function(B){var A=YAHOO.widget.CalendarNavigator.YR_PATTERN;if(YAHOO.lang.isNumber(B)&&A.test(B+"")){this._year=B;}this._updateYearUI();},render:function(){this.cal.beforeRenderNavEvent.fire();if(!this.__rendered){this.createNav();this.createMask();this.applyListeners();this.__rendered=true;}this.cal.renderNavEvent.fire();},createNav:function(){var B=YAHOO.widget.CalendarNavigator;var C=this._doc;var D=C.createElement("div");D.className=B.CLASSES.NAV;var A=this.renderNavContents([]);D.innerHTML=A.join("");this.cal.oDomContainer.appendChild(D);this.navEl=D;this.yearEl=C.getElementById(this.id+B.YEAR_SUFFIX);this.monthEl=C.getElementById(this.id+B.MONTH_SUFFIX);this.errorEl=C.getElementById(this.id+B.ERROR_SUFFIX);this.submitEl=C.getElementById(this.id+B.SUBMIT_SUFFIX);this.cancelEl=C.getElementById(this.id+B.CANCEL_SUFFIX);if(YAHOO.env.ua.gecko&&this.yearEl&&this.yearEl.type=="text"){this.yearEl.setAttribute("autocomplete","off");}this._setFirstLastElements();},createMask:function(){var B=YAHOO.widget.CalendarNavigator.CLASSES;var A=this._doc.createElement("div");A.className=B.MASK;this.cal.oDomContainer.appendChild(A);this.maskEl=A;},_syncMask:function(){var B=this.cal.oDomContainer;if(B&&this.maskEl){var A=YAHOO.util.Dom.getRegion(B);YAHOO.util.Dom.setStyle(this.maskEl,"width",A.right-A.left+"px");YAHOO.util.Dom.setStyle(this.maskEl,"height",A.bottom-A.top+"px");
+}},renderNavContents:function(A){var D=YAHOO.widget.CalendarNavigator,E=D.CLASSES,B=A;B[B.length]='<div class="'+E.MONTH+'">';this.renderMonth(B);B[B.length]="</div>";B[B.length]='<div class="'+E.YEAR+'">';this.renderYear(B);B[B.length]="</div>";B[B.length]='<div class="'+E.BUTTONS+'">';this.renderButtons(B);B[B.length]="</div>";B[B.length]='<div class="'+E.ERROR+'" id="'+this.id+D.ERROR_SUFFIX+'"></div>';return B;},renderMonth:function(D){var G=YAHOO.widget.CalendarNavigator,H=G.CLASSES;var I=this.id+G.MONTH_SUFFIX,F=this.__getCfg("monthFormat"),A=this.cal.cfg.getProperty((F==YAHOO.widget.Calendar.SHORT)?"MONTHS_SHORT":"MONTHS_LONG"),E=D;if(A&&A.length>0){E[E.length]='<label for="'+I+'">';E[E.length]=this.__getCfg("month",true);E[E.length]="</label>";E[E.length]='<select name="'+I+'" id="'+I+'" class="'+H.MONTH_CTRL+'">';for(var B=0;B<A.length;B++){E[E.length]='<option value="'+B+'">';E[E.length]=A[B];E[E.length]="</option>";}E[E.length]="</select>";}return E;},renderYear:function(B){var E=YAHOO.widget.CalendarNavigator,F=E.CLASSES;var G=this.id+E.YEAR_SUFFIX,A=E.YR_MAX_DIGITS,D=B;D[D.length]='<label for="'+G+'">';D[D.length]=this.__getCfg("year",true);D[D.length]="</label>";D[D.length]='<input type="text" name="'+G+'" id="'+G+'" class="'+F.YEAR_CTRL+'" maxlength="'+A+'"/>';return D;},renderButtons:function(A){var D=YAHOO.widget.CalendarNavigator.CLASSES;var B=A;B[B.length]='<span class="'+D.BUTTON+" "+D.DEFAULT+'">';B[B.length]='<button type="button" id="'+this.id+"_submit"+'">';B[B.length]=this.__getCfg("submit",true);B[B.length]="</button>";B[B.length]="</span>";B[B.length]='<span class="'+D.BUTTON+'">';B[B.length]='<button type="button" id="'+this.id+"_cancel"+'">';B[B.length]=this.__getCfg("cancel",true);B[B.length]="</button>";B[B.length]="</span>";return B;},applyListeners:function(){var B=YAHOO.util.Event;function A(){if(this.validate()){this.setYear(this._getYearFromUI());}}function C(){this.setMonth(this._getMonthFromUI());}B.on(this.submitEl,"click",this.submit,this,true);B.on(this.cancelEl,"click",this.cancel,this,true);B.on(this.yearEl,"blur",A,this,true);B.on(this.monthEl,"change",C,this,true);if(this.__isIEQuirks){YAHOO.util.Event.on(this.cal.oDomContainer,"resize",this._syncMask,this,true);}this.applyKeyListeners();},purgeListeners:function(){var A=YAHOO.util.Event;A.removeListener(this.submitEl,"click",this.submit);A.removeListener(this.cancelEl,"click",this.cancel);A.removeListener(this.yearEl,"blur");A.removeListener(this.monthEl,"change");if(this.__isIEQuirks){A.removeListener(this.cal.oDomContainer,"resize",this._syncMask);}this.purgeKeyListeners();},applyKeyListeners:function(){var D=YAHOO.util.Event,A=YAHOO.env.ua;var C=(A.ie||A.webkit)?"keydown":"keypress";var B=(A.ie||A.opera||A.webkit)?"keydown":"keypress";D.on(this.yearEl,"keypress",this._handleEnterKey,this,true);D.on(this.yearEl,C,this._handleDirectionKeys,this,true);D.on(this.lastCtrl,B,this._handleTabKey,this,true);D.on(this.firstCtrl,B,this._handleShiftTabKey,this,true);},purgeKeyListeners:function(){var D=YAHOO.util.Event,A=YAHOO.env.ua;var C=(A.ie||A.webkit)?"keydown":"keypress";var B=(A.ie||A.opera||A.webkit)?"keydown":"keypress";D.removeListener(this.yearEl,"keypress",this._handleEnterKey);D.removeListener(this.yearEl,C,this._handleDirectionKeys);D.removeListener(this.lastCtrl,B,this._handleTabKey);D.removeListener(this.firstCtrl,B,this._handleShiftTabKey);},submit:function(){if(this.validate()){this.hide();this.setMonth(this._getMonthFromUI());this.setYear(this._getYearFromUI());var B=this.cal;var A=YAHOO.widget.CalendarNavigator.UPDATE_DELAY;if(A>0){var C=this;window.setTimeout(function(){C._update(B);},A);}else{this._update(B);}}},_update:function(A){A.setYear(this.getYear());A.setMonth(this.getMonth());A.render();},cancel:function(){this.hide();},validate:function(){if(this._getYearFromUI()!==null){this.clearErrors();return true;}else{this.setYearError();this.setError(this.__getCfg("invalidYear",true));return false;}},setError:function(A){if(this.errorEl){this.errorEl.innerHTML=A;this._show(this.errorEl,true);}},clearError:function(){if(this.errorEl){this.errorEl.innerHTML="";this._show(this.errorEl,false);}},setYearError:function(){YAHOO.util.Dom.addClass(this.yearEl,YAHOO.widget.CalendarNavigator.CLASSES.INVALID);},clearYearError:function(){YAHOO.util.Dom.removeClass(this.yearEl,YAHOO.widget.CalendarNavigator.CLASSES.INVALID);},clearErrors:function(){this.clearError();this.clearYearError();},setInitialFocus:function(){var A=this.submitEl,C=this.__getCfg("initialFocus");if(C&&C.toLowerCase){C=C.toLowerCase();if(C=="year"){A=this.yearEl;try{this.yearEl.select();}catch(B){}}else{if(C=="month"){A=this.monthEl;}}}if(A&&YAHOO.lang.isFunction(A.focus)){try{A.focus();}catch(D){}}},erase:function(){if(this.__rendered){this.purgeListeners();this.yearEl=null;this.monthEl=null;this.errorEl=null;this.submitEl=null;this.cancelEl=null;this.firstCtrl=null;this.lastCtrl=null;if(this.navEl){this.navEl.innerHTML="";}var B=this.navEl.parentNode;if(B){B.removeChild(this.navEl);}this.navEl=null;var A=this.maskEl.parentNode;if(A){A.removeChild(this.maskEl);}this.maskEl=null;this.__rendered=false;}},destroy:function(){this.erase();this._doc=null;this.cal=null;this.id=null;},_show:function(B,A){if(B){YAHOO.util.Dom.setStyle(B,"display",(A)?"block":"none");}},_getMonthFromUI:function(){if(this.monthEl){return this.monthEl.selectedIndex;}else{return 0;}},_getYearFromUI:function(){var B=YAHOO.widget.CalendarNavigator;var A=null;if(this.yearEl){var C=this.yearEl.value;C=C.replace(B.TRIM,"$1");if(B.YR_PATTERN.test(C)){A=parseInt(C,10);}}return A;},_updateYearUI:function(){if(this.yearEl&&this._year!==null){this.yearEl.value=this._year;}},_updateMonthUI:function(){if(this.monthEl){this.monthEl.selectedIndex=this._month;}},_setFirstLastElements:function(){this.firstCtrl=this.monthEl;this.lastCtrl=this.cancelEl;if(this.__isMac){if(YAHOO.env.ua.webkit&&YAHOO.env.ua.webkit<420){this.firstCtrl=this.monthEl;this.lastCtrl=this.yearEl;
+}if(YAHOO.env.ua.gecko){this.firstCtrl=this.yearEl;this.lastCtrl=this.yearEl;}}},_handleEnterKey:function(B){var A=YAHOO.util.KeyListener.KEY;if(YAHOO.util.Event.getCharCode(B)==A.ENTER){YAHOO.util.Event.preventDefault(B);this.submit();}},_handleDirectionKeys:function(H){var G=YAHOO.util.Event,A=YAHOO.util.KeyListener.KEY,D=YAHOO.widget.CalendarNavigator;var F=(this.yearEl.value)?parseInt(this.yearEl.value,10):null;if(isFinite(F)){var B=false;switch(G.getCharCode(H)){case A.UP:this.yearEl.value=F+D.YR_MINOR_INC;B=true;break;case A.DOWN:this.yearEl.value=Math.max(F-D.YR_MINOR_INC,0);B=true;break;case A.PAGE_UP:this.yearEl.value=F+D.YR_MAJOR_INC;B=true;break;case A.PAGE_DOWN:this.yearEl.value=Math.max(F-D.YR_MAJOR_INC,0);B=true;break;default:break;}if(B){G.preventDefault(H);try{this.yearEl.select();}catch(C){}}}},_handleTabKey:function(D){var C=YAHOO.util.Event,A=YAHOO.util.KeyListener.KEY;if(C.getCharCode(D)==A.TAB&&!D.shiftKey){try{C.preventDefault(D);this.firstCtrl.focus();}catch(B){}}},_handleShiftTabKey:function(D){var C=YAHOO.util.Event,A=YAHOO.util.KeyListener.KEY;if(D.shiftKey&&C.getCharCode(D)==A.TAB){try{C.preventDefault(D);this.lastCtrl.focus();}catch(B){}}},__getCfg:function(D,B){var C=YAHOO.widget.CalendarNavigator._DEFAULT_CFG;var A=this.cal.cfg.getProperty("navigator");if(B){return(A!==true&&A.strings&&A.strings[D])?A.strings[D]:C.strings[D];}else{return(A!==true&&A[D])?A[D]:C[D];}},__isMac:(navigator.userAgent.toLowerCase().indexOf("macintosh")!=-1)};YAHOO.register("calendar",YAHOO.widget.Calendar,{version:"2.6.0",build:"1321"});
\ No newline at end of file
diff --git a/js/yui/yahoo-dom-event.js b/js/yui/yahoo-dom-event.js
index d089967edf360d253a6171af148c0e1d43793555..2465a2a70c3a035d8f2b870b54011ea548c30849 100644
--- a/js/yui/yahoo-dom-event.js
+++ b/js/yui/yahoo-dom-event.js
@@ -1,10 +1,12 @@
 /*
-Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Copyright (c) 2008, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.net/yui/license.txt
-version: 2.3.1
+version: 2.6.0
 */
-if(typeof YAHOO=="undefined"){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=A[C].split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules;if(!I[A]){I[A]={versions:[],builds:[]};}var B=I[A],H=D.version,G=D.build,F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(var C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0};var B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang={isArray:function(B){if(B){var A=YAHOO.lang;return A.isNumber(B.length)&&A.isFunction(B.splice)&&!A.hasOwnProperty(B.length);}return false;},isBoolean:function(A){return typeof A==="boolean";},isFunction:function(A){return typeof A==="function";},isNull:function(A){return A===null;},isNumber:function(A){return typeof A==="number"&&isFinite(A);},isObject:function(A){return(A&&(typeof A==="object"||YAHOO.lang.isFunction(A)))||false;},isString:function(A){return typeof A==="string";},isUndefined:function(A){return typeof A==="undefined";},hasOwnProperty:function(A,B){if(Object.prototype.hasOwnProperty){return A.hasOwnProperty(B);}return !YAHOO.lang.isUndefined(A[B])&&A.constructor.prototype[B]!==A[B];},_IEEnumFix:function(C,B){if(YAHOO.env.ua.ie){var E=["toString","valueOf"],A;for(A=0;A<E.length;A=A+1){var F=E[A],D=B[F];if(YAHOO.lang.isFunction(D)&&D!=Object.prototype[F]){C[F]=D;}}}},extend:function(D,E,C){if(!E||!D){throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");}var B=function(){};B.prototype=E.prototype;D.prototype=new B();D.prototype.constructor=D;D.superclass=E.prototype;if(E.prototype.constructor==Object.prototype.constructor){E.prototype.constructor=E;}if(C){for(var A in C){D.prototype[A]=C[A];}YAHOO.lang._IEEnumFix(D.prototype,C);}},augmentObject:function(E,D){if(!D||!E){throw new Error("Absorb failed, verify dependencies.");}var A=arguments,C,F,B=A[2];if(B&&B!==true){for(C=2;C<A.length;C=C+1){E[A[C]]=D[A[C]];}}else{for(F in D){if(B||!E[F]){E[F]=D[F];}}YAHOO.lang._IEEnumFix(E,D);}},augmentProto:function(D,C){if(!C||!D){throw new Error("Augment failed, verify dependencies.");}var A=[D.prototype,C.prototype];for(var B=2;B<arguments.length;B=B+1){A.push(arguments[B]);}YAHOO.lang.augmentObject.apply(this,A);},dump:function(A,G){var C=YAHOO.lang,D,F,I=[],J="{...}",B="f(){...}",H=", ",E=" => ";if(!C.isObject(A)){return A+"";}else{if(A instanceof Date||("nodeType" in A&&"tagName" in A)){return A;}else{if(C.isFunction(A)){return B;}}}G=(C.isNumber(G))?G:3;if(C.isArray(A)){I.push("[");for(D=0,F=A.length;D<F;D=D+1){if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}if(I.length>1){I.pop();}I.push("]");}else{I.push("{");for(D in A){if(C.hasOwnProperty(A,D)){I.push(D+E);if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}}if(I.length>1){I.pop();}I.push("}");}return I.join("");},substitute:function(Q,B,J){var G,F,E,M,N,P,D=YAHOO.lang,L=[],C,H="dump",K=" ",A="{",O="}";for(;;){G=Q.lastIndexOf(A);if(G<0){break;}F=Q.indexOf(O,G);if(G+1>=F){break;}C=Q.substring(G+1,F);M=C;P=null;E=M.indexOf(K);if(E>-1){P=M.substring(E+1);M=M.substring(0,E);}N=B[M];if(J){N=J(M,N,P);}if(D.isObject(N)){if(D.isArray(N)){N=D.dump(N,parseInt(P,10));}else{P=P||"";var I=P.indexOf(H);if(I>-1){P=P.substring(4);}if(N.toString===Object.prototype.toString||I>-1){N=D.dump(N,parseInt(P,10));}else{N=N.toString();}}}else{if(!D.isString(N)&&!D.isNumber(N)){N="~-"+L.length+"-~";L[L.length]=C;}}Q=Q.substring(0,G)+N+Q.substring(F+1);}for(G=L.length-1;G>=0;G=G-1){Q=Q.replace(new RegExp("~-"+G+"-~"),"{"+L[G]+"}","g");}return Q;},trim:function(A){try{return A.replace(/^\s+|\s+$/g,"");}catch(B){return A;}},merge:function(){var C={},A=arguments,B;for(B=0;B<A.length;B=B+1){YAHOO.lang.augmentObject(C,A[B],true);}return C;},isValue:function(B){var A=YAHOO.lang;return(A.isObject(B)||A.isString(B)||A.isNumber(B)||A.isBoolean(B));}};YAHOO.util.Lang=YAHOO.lang;YAHOO.lang.augment=YAHOO.lang.augmentProto;YAHOO.augment=YAHOO.lang.augmentProto;YAHOO.extend=YAHOO.lang.extend;YAHOO.register("yahoo",YAHOO,{version:"2.3.1",build:"541"});(function(){var B=YAHOO.util,K,I,H=0,J={},F={};var C=YAHOO.env.ua.opera,L=YAHOO.env.ua.webkit,A=YAHOO.env.ua.gecko,G=YAHOO.env.ua.ie;var E={HYPHEN:/(-[a-z])/i,ROOT_TAG:/^body|html$/i};var M=function(O){if(!E.HYPHEN.test(O)){return O;}if(J[O]){return J[O];}var P=O;while(E.HYPHEN.exec(P)){P=P.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}J[O]=P;return P;};var N=function(P){var O=F[P];if(!O){O=new RegExp("(?:^|\\s+)"+P+"(?:\\s+|$)");F[P]=O;}return O;};if(document.defaultView&&document.defaultView.getComputedStyle){K=function(O,R){var Q=null;if(R=="float"){R="cssFloat";}var P=document.defaultView.getComputedStyle(O,"");if(P){Q=P[M(R)];}return O.style[R]||Q;};}else{if(document.documentElement.currentStyle&&G){K=function(O,Q){switch(M(Q)){case"opacity":var S=100;try{S=O.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(R){try{S=O.filters("alpha").opacity;}catch(R){}}return S/100;case"float":Q="styleFloat";default:var P=O.currentStyle?O.currentStyle[Q]:null;return(O.style[Q]||P);}};}else{K=function(O,P){return O.style[P];};}}if(G){I=function(O,P,Q){switch(P){case"opacity":if(YAHOO.lang.isString(O.style.filter)){O.style.filter="alpha(opacity="+Q*100+")";if(!O.currentStyle||!O.currentStyle.hasLayout){O.style.zoom=1;}}break;case"float":P="styleFloat";default:O.style[P]=Q;}};}else{I=function(O,P,Q){if(P=="float"){P="cssFloat";}O.style[P]=Q;};}var D=function(O,P){return O&&O.nodeType==1&&(!P||P(O));};YAHOO.util.Dom={get:function(Q){if(Q&&(Q.tagName||Q.item)){return Q;}if(YAHOO.lang.isString(Q)||!Q){return document.getElementById(Q);}if(Q.length!==undefined){var R=[];for(var P=0,O=Q.length;P<O;++P){R[R.length]=B.Dom.get(Q[P]);}return R;}return Q;},getStyle:function(O,Q){Q=M(Q);var P=function(R){return K(R,Q);};return B.Dom.batch(O,P,B.Dom,true);},setStyle:function(O,Q,R){Q=M(Q);var P=function(S){I(S,Q,R);};B.Dom.batch(O,P,B.Dom,true);},getXY:function(O){var P=function(R){if((R.parentNode===null||R.offsetParent===null||this.getStyle(R,"display")=="none")&&R!=document.body){return false;}var Q=null;var V=[];var S;var T=R.ownerDocument;if(R.getBoundingClientRect){S=R.getBoundingClientRect();return[S.left+B.Dom.getDocumentScrollLeft(R.ownerDocument),S.top+B.Dom.getDocumentScrollTop(R.ownerDocument)];}else{V=[R.offsetLeft,R.offsetTop];Q=R.offsetParent;var U=this.getStyle(R,"position")=="absolute";if(Q!=R){while(Q){V[0]+=Q.offsetLeft;V[1]+=Q.offsetTop;if(L&&!U&&this.getStyle(Q,"position")=="absolute"){U=true;}Q=Q.offsetParent;}}if(L&&U){V[0]-=R.ownerDocument.body.offsetLeft;V[1]-=R.ownerDocument.body.offsetTop;}}Q=R.parentNode;while(Q.tagName&&!E.ROOT_TAG.test(Q.tagName)){if(B.Dom.getStyle(Q,"display").search(/^inline|table-row.*$/i)){V[0]-=Q.scrollLeft;V[1]-=Q.scrollTop;}Q=Q.parentNode;}return V;};return B.Dom.batch(O,P,B.Dom,true);},getX:function(O){var P=function(Q){return B.Dom.getXY(Q)[0];};return B.Dom.batch(O,P,B.Dom,true);},getY:function(O){var P=function(Q){return B.Dom.getXY(Q)[1];};return B.Dom.batch(O,P,B.Dom,true);},setXY:function(O,R,Q){var P=function(U){var T=this.getStyle(U,"position");if(T=="static"){this.setStyle(U,"position","relative");T="relative";}var W=this.getXY(U);if(W===false){return false;}var V=[parseInt(this.getStyle(U,"left"),10),parseInt(this.getStyle(U,"top"),10)];if(isNaN(V[0])){V[0]=(T=="relative")?0:U.offsetLeft;}if(isNaN(V[1])){V[1]=(T=="relative")?0:U.offsetTop;}if(R[0]!==null){U.style.left=R[0]-W[0]+V[0]+"px";}if(R[1]!==null){U.style.top=R[1]-W[1]+V[1]+"px";}if(!Q){var S=this.getXY(U);if((R[0]!==null&&S[0]!=R[0])||(R[1]!==null&&S[1]!=R[1])){this.setXY(U,R,true);}}};B.Dom.batch(O,P,B.Dom,true);},setX:function(P,O){B.Dom.setXY(P,[O,null]);},setY:function(O,P){B.Dom.setXY(O,[null,P]);},getRegion:function(O){var P=function(Q){if((Q.parentNode===null||Q.offsetParent===null||this.getStyle(Q,"display")=="none")&&Q!=document.body){return false;}var R=B.Region.getRegion(Q);return R;};return B.Dom.batch(O,P,B.Dom,true);},getClientWidth:function(){return B.Dom.getViewportWidth();},getClientHeight:function(){return B.Dom.getViewportHeight();},getElementsByClassName:function(S,W,T,U){W=W||"*";T=(T)?B.Dom.get(T):null||document;if(!T){return[];}var P=[],O=T.getElementsByTagName(W),V=N(S);for(var Q=0,R=O.length;Q<R;++Q){if(V.test(O[Q].className)){P[P.length]=O[Q];if(U){U.call(O[Q],O[Q]);}}}return P;},hasClass:function(Q,P){var O=N(P);var R=function(S){return O.test(S.className);};return B.Dom.batch(Q,R,B.Dom,true);},addClass:function(P,O){var Q=function(R){if(this.hasClass(R,O)){return false;}R.className=YAHOO.lang.trim([R.className,O].join(" "));return true;};return B.Dom.batch(P,Q,B.Dom,true);},removeClass:function(Q,P){var O=N(P);var R=function(S){if(!this.hasClass(S,P)){return false;}var T=S.className;S.className=T.replace(O," ");if(this.hasClass(S,P)){this.removeClass(S,P);}S.className=YAHOO.lang.trim(S.className);return true;};return B.Dom.batch(Q,R,B.Dom,true);},replaceClass:function(R,P,O){if(!O||P===O){return false;}var Q=N(P);var S=function(T){if(!this.hasClass(T,P)){this.addClass(T,O);return true;}T.className=T.className.replace(Q," "+O+" ");if(this.hasClass(T,P)){this.replaceClass(T,P,O);}T.className=YAHOO.lang.trim(T.className);return true;};return B.Dom.batch(R,S,B.Dom,true);},generateId:function(O,Q){Q=Q||"yui-gen";var P=function(R){if(R&&R.id){return R.id;}var S=Q+H++;if(R){R.id=S;}return S;};return B.Dom.batch(O,P,B.Dom,true)||P.apply(B.Dom,arguments);},isAncestor:function(P,Q){P=B.Dom.get(P);if(!P||!Q){return false;}var O=function(R){if(P.contains&&R.nodeType&&!L){return P.contains(R);}else{if(P.compareDocumentPosition&&R.nodeType){return !!(P.compareDocumentPosition(R)&16);}else{if(R.nodeType){return !!this.getAncestorBy(R,function(S){return S==P;});}}}return false;};return B.Dom.batch(Q,O,B.Dom,true);},inDocument:function(O){var P=function(Q){if(L){while(Q=Q.parentNode){if(Q==document.documentElement){return true;}}return false;}return this.isAncestor(document.documentElement,Q);};return B.Dom.batch(O,P,B.Dom,true);},getElementsBy:function(V,P,Q,S){P=P||"*";
-Q=(Q)?B.Dom.get(Q):null||document;if(!Q){return[];}var R=[],U=Q.getElementsByTagName(P);for(var T=0,O=U.length;T<O;++T){if(V(U[T])){R[R.length]=U[T];if(S){S(U[T]);}}}return R;},batch:function(S,V,U,Q){S=(S&&(S.tagName||S.item))?S:B.Dom.get(S);if(!S||!V){return false;}var R=(Q)?U:window;if(S.tagName||S.length===undefined){return V.call(R,S,U);}var T=[];for(var P=0,O=S.length;P<O;++P){T[T.length]=V.call(R,S[P],U);}return T;},getDocumentHeight:function(){var P=(document.compatMode!="CSS1Compat")?document.body.scrollHeight:document.documentElement.scrollHeight;var O=Math.max(P,B.Dom.getViewportHeight());return O;},getDocumentWidth:function(){var P=(document.compatMode!="CSS1Compat")?document.body.scrollWidth:document.documentElement.scrollWidth;var O=Math.max(P,B.Dom.getViewportWidth());return O;},getViewportHeight:function(){var O=self.innerHeight;var P=document.compatMode;if((P||G)&&!C){O=(P=="CSS1Compat")?document.documentElement.clientHeight:document.body.clientHeight;}return O;},getViewportWidth:function(){var O=self.innerWidth;var P=document.compatMode;if(P||G){O=(P=="CSS1Compat")?document.documentElement.clientWidth:document.body.clientWidth;}return O;},getAncestorBy:function(O,P){while(O=O.parentNode){if(D(O,P)){return O;}}return null;},getAncestorByClassName:function(P,O){P=B.Dom.get(P);if(!P){return null;}var Q=function(R){return B.Dom.hasClass(R,O);};return B.Dom.getAncestorBy(P,Q);},getAncestorByTagName:function(P,O){P=B.Dom.get(P);if(!P){return null;}var Q=function(R){return R.tagName&&R.tagName.toUpperCase()==O.toUpperCase();};return B.Dom.getAncestorBy(P,Q);},getPreviousSiblingBy:function(O,P){while(O){O=O.previousSibling;if(D(O,P)){return O;}}return null;},getPreviousSibling:function(O){O=B.Dom.get(O);if(!O){return null;}return B.Dom.getPreviousSiblingBy(O);},getNextSiblingBy:function(O,P){while(O){O=O.nextSibling;if(D(O,P)){return O;}}return null;},getNextSibling:function(O){O=B.Dom.get(O);if(!O){return null;}return B.Dom.getNextSiblingBy(O);},getFirstChildBy:function(O,Q){var P=(D(O.firstChild,Q))?O.firstChild:null;return P||B.Dom.getNextSiblingBy(O.firstChild,Q);},getFirstChild:function(O,P){O=B.Dom.get(O);if(!O){return null;}return B.Dom.getFirstChildBy(O);},getLastChildBy:function(O,Q){if(!O){return null;}var P=(D(O.lastChild,Q))?O.lastChild:null;return P||B.Dom.getPreviousSiblingBy(O.lastChild,Q);},getLastChild:function(O){O=B.Dom.get(O);return B.Dom.getLastChildBy(O);},getChildrenBy:function(P,R){var Q=B.Dom.getFirstChildBy(P,R);var O=Q?[Q]:[];B.Dom.getNextSiblingBy(Q,function(S){if(!R||R(S)){O[O.length]=S;}return false;});return O;},getChildren:function(O){O=B.Dom.get(O);if(!O){}return B.Dom.getChildrenBy(O);},getDocumentScrollLeft:function(O){O=O||document;return Math.max(O.documentElement.scrollLeft,O.body.scrollLeft);},getDocumentScrollTop:function(O){O=O||document;return Math.max(O.documentElement.scrollTop,O.body.scrollTop);},insertBefore:function(P,O){P=B.Dom.get(P);O=B.Dom.get(O);if(!P||!O||!O.parentNode){return null;}return O.parentNode.insertBefore(P,O);},insertAfter:function(P,O){P=B.Dom.get(P);O=B.Dom.get(O);if(!P||!O||!O.parentNode){return null;}if(O.nextSibling){return O.parentNode.insertBefore(P,O.nextSibling);}else{return O.parentNode.appendChild(P);}}};})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this[0]=B;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top);var D=Math.min(this.right,E.right);var A=Math.min(this.bottom,E.bottom);var B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top);var D=Math.max(this.right,E.right);var A=Math.max(this.bottom,E.bottom);var B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D);var C=F[1];var E=F[0]+D.offsetWidth;var A=F[1]+D.offsetHeight;var B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}this.x=this.right=this.left=this[0]=A;this.y=this.top=this.bottom=this[1]=B;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.3.1",build:"541"});YAHOO.util.CustomEvent=function(D,B,C,A){this.type=D;this.scope=B||window;this.silent=C;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,A){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,A);}this.subscribers.push(new YAHOO.util.Subscriber(B,C,A));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){var E=this.subscribers.length;if(!E&&this.silent){return true;}var H=[],G=true,D,I=false;for(D=0;D<arguments.length;++D){H.push(arguments[D]);}var A=H.length;if(!this.silent){}for(D=0;D<E;++D){var L=this.subscribers[D];if(!L){I=true;}else{if(!this.silent){}var K=L.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var B=null;if(H.length>0){B=H[0];}try{G=L.fn.call(K,B,L.obj);}catch(F){this.lastError=F;}}else{try{G=L.fn.call(K,this.type,H,L.obj);}catch(F){this.lastError=F;}}if(false===G){if(!this.silent){}return false;}}}if(I){var J=[],C=this.subscribers;for(D=0,E=C.length;D<E;D=D+1){J.push(C[D]);}this.subscribers=J;}return true;},unsubscribeAll:function(){for(var B=0,A=this.subscribers.length;B<A;++B){this._delete(A-1-B);}this.subscribers=[];return B;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers[A]=null;},toString:function(){return"CustomEvent: '"+this.type+"', scope: "+this.scope;}};YAHOO.util.Subscriber=function(B,C,A){this.fn=B;this.obj=YAHOO.lang.isUndefined(C)?null:C;this.override=A;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var J=false;var I=[];var K=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39};return{POLL_RETRYS:4000,POLL_INTERVAL:10,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,startInterval:function(){if(!this._interval){var L=this;var M=function(){L._tryPreloadAttach();};this._interval=setInterval(M,this.POLL_INTERVAL);}},onAvailable:function(N,L,O,M){F.push({id:N,fn:L,obj:O,override:M,checkReady:false});C=this.POLL_RETRYS;this.startInterval();},onDOMReady:function(L,N,M){if(J){setTimeout(function(){var O=window;if(M){if(M===true){O=N;}else{O=M;}}L.call(O,"DOMReady",[],N);},0);}else{this.DOMReadyEvent.subscribe(L,N,M);}},onContentReady:function(N,L,O,M){F.push({id:N,fn:L,obj:O,override:M,checkReady:true});C=this.POLL_RETRYS;this.startInterval();},addListener:function(N,L,W,R,M){if(!W||!W.call){return false;}if(this._isValidCollection(N)){var X=true;for(var S=0,U=N.length;S<U;++S){X=this.on(N[S],L,W,R,M)&&X;}return X;}else{if(YAHOO.lang.isString(N)){var Q=this.getEl(N);if(Q){N=Q;}else{this.onAvailable(N,function(){YAHOO.util.Event.on(N,L,W,R,M);});return true;}}}if(!N){return false;}if("unload"==L&&R!==this){K[K.length]=[N,L,W,R,M];return true;}var Z=N;if(M){if(M===true){Z=R;}else{Z=M;}}var O=function(a){return W.call(Z,YAHOO.util.Event.getEvent(a,N),R);};var Y=[N,L,W,O,Z,R,M];var T=I.length;I[T]=Y;if(this.useLegacyEvent(N,L)){var P=this.getLegacyIndex(N,L);if(P==-1||N!=G[P][0]){P=G.length;B[N.id+L]=P;G[P]=[N,L,N["on"+L]];E[P]=[];N["on"+L]=function(a){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(a),P);};}E[P].push(Y);}else{try{this._simpleAdd(N,L,O,false);}catch(V){this.lastError=V;this.removeListener(N,L,W);return false;}}return true;},fireLegacyEvent:function(P,N){var R=true,L,T,S,U,Q;T=E[N];for(var M=0,O=T.length;M<O;++M){S=T[M];if(S&&S[this.WFN]){U=S[this.ADJ_SCOPE];Q=S[this.WFN].call(U,P);R=(R&&Q);}}L=G[N];if(L&&L[2]){L[2](P);}return R;},getLegacyIndex:function(M,N){var L=this.generateId(M)+N;if(typeof B[L]=="undefined"){return -1;}else{return B[L];}},useLegacyEvent:function(M,N){if(this.webkit&&("click"==N||"dblclick"==N)){var L=parseInt(this.webkit,10);if(!isNaN(L)&&L<418){return true;}}return false;},removeListener:function(M,L,U){var P,S,W;if(typeof M=="string"){M=this.getEl(M);}else{if(this._isValidCollection(M)){var V=true;for(P=0,S=M.length;P<S;++P){V=(this.removeListener(M[P],L,U)&&V);}return V;}}if(!U||!U.call){return this.purgeElement(M,false,L);}if("unload"==L){for(P=0,S=K.length;P<S;P++){W=K[P];if(W&&W[0]==M&&W[1]==L&&W[2]==U){K[P]=null;return true;}}return false;}var Q=null;var R=arguments[3];if("undefined"===typeof R){R=this._getCacheIndex(M,L,U);}if(R>=0){Q=I[R];}if(!M||!Q){return false;}if(this.useLegacyEvent(M,L)){var O=this.getLegacyIndex(M,L);var N=E[O];if(N){for(P=0,S=N.length;P<S;++P){W=N[P];if(W&&W[this.EL]==M&&W[this.TYPE]==L&&W[this.FN]==U){N[P]=null;break;}}}}else{try{this._simpleRemove(M,L,Q[this.WFN],false);}catch(T){this.lastError=T;return false;}}delete I[R][this.WFN];delete I[R][this.FN];I[R]=null;return true;},getTarget:function(N,M){var L=N.target||N.srcElement;return this.resolveTextNode(L);},resolveTextNode:function(L){if(L&&3==L.nodeType){return L.parentNode;}else{return L;}},getPageX:function(M){var L=M.pageX;if(!L&&0!==L){L=M.clientX||0;if(this.isIE){L+=this._getScrollLeft();}}return L;},getPageY:function(L){var M=L.pageY;if(!M&&0!==M){M=L.clientY||0;if(this.isIE){M+=this._getScrollTop();}}return M;},getXY:function(L){return[this.getPageX(L),this.getPageY(L)];
-},getRelatedTarget:function(M){var L=M.relatedTarget;if(!L){if(M.type=="mouseout"){L=M.toElement;}else{if(M.type=="mouseover"){L=M.fromElement;}}}return this.resolveTextNode(L);},getTime:function(N){if(!N.time){var M=new Date().getTime();try{N.time=M;}catch(L){this.lastError=L;return M;}}return N.time;},stopEvent:function(L){this.stopPropagation(L);this.preventDefault(L);},stopPropagation:function(L){if(L.stopPropagation){L.stopPropagation();}else{L.cancelBubble=true;}},preventDefault:function(L){if(L.preventDefault){L.preventDefault();}else{L.returnValue=false;}},getEvent:function(Q,O){var P=Q||window.event;if(!P){var R=this.getEvent.caller;while(R){P=R.arguments[0];if(P&&Event==P.constructor){break;}R=R.caller;}}if(P&&this.isIE){try{var N=P.srcElement;if(N){var M=N.type;}}catch(L){P.target=O;}}return P;},getCharCode:function(M){var L=M.keyCode||M.charCode||0;if(YAHOO.env.ua.webkit&&(L in D)){L=D[L];}return L;},_getCacheIndex:function(P,Q,O){for(var N=0,M=I.length;N<M;++N){var L=I[N];if(L&&L[this.FN]==O&&L[this.EL]==P&&L[this.TYPE]==Q){return N;}}return -1;},generateId:function(L){var M=L.id;if(!M){M="yuievtautoid-"+A;++A;L.id=M;}return M;},_isValidCollection:function(M){try{return(typeof M!=="string"&&M.length&&!M.tagName&&!M.alert&&typeof M[0]!=="undefined");}catch(L){return false;}},elCache:{},getEl:function(L){return(typeof L==="string")?document.getElementById(L):L;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(M){if(!H){H=true;var L=YAHOO.util.Event;L._ready();L._tryPreloadAttach();}},_ready:function(M){if(!J){J=true;var L=YAHOO.util.Event;L.DOMReadyEvent.fire();L._simpleRemove(document,"DOMContentLoaded",L._ready);}},_tryPreloadAttach:function(){if(this.locked){return false;}if(this.isIE){if(!J){this.startInterval();return false;}}this.locked=true;var Q=!H;if(!Q){Q=(C>0);}var P=[];var R=function(T,U){var S=T;if(U.override){if(U.override===true){S=U.obj;}else{S=U.override;}}U.fn.call(S,U.obj);};var M,L,O,N;for(M=0,L=F.length;M<L;++M){O=F[M];if(O&&!O.checkReady){N=this.getEl(O.id);if(N){R(N,O);F[M]=null;}else{P.push(O);}}}for(M=0,L=F.length;M<L;++M){O=F[M];if(O&&O.checkReady){N=this.getEl(O.id);if(N){if(H||N.nextSibling){R(N,O);F[M]=null;}}else{P.push(O);}}}C=(P.length===0)?0:C-1;if(Q){this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;return true;},purgeElement:function(O,P,R){var Q=this.getListeners(O,R),N,L;if(Q){for(N=0,L=Q.length;N<L;++N){var M=Q[N];this.removeListener(O,M.type,M.fn,M.index);}}if(P&&O&&O.childNodes){for(N=0,L=O.childNodes.length;N<L;++N){this.purgeElement(O.childNodes[N],P,R);}}},getListeners:function(N,L){var Q=[],M;if(!L){M=[I,K];}else{if(L=="unload"){M=[K];}else{M=[I];}}for(var P=0;P<M.length;P=P+1){var T=M[P];if(T&&T.length>0){for(var R=0,S=T.length;R<S;++R){var O=T[R];if(O&&O[this.EL]===N&&(!L||L===O[this.TYPE])){Q.push({type:O[this.TYPE],fn:O[this.FN],obj:O[this.OBJ],adjust:O[this.OVERRIDE],scope:O[this.ADJ_SCOPE],index:R});}}}}return(Q.length)?Q:null;},_unload:function(S){var R=YAHOO.util.Event,P,O,M,L,N;for(P=0,L=K.length;P<L;++P){M=K[P];if(M){var Q=window;if(M[R.ADJ_SCOPE]){if(M[R.ADJ_SCOPE]===true){Q=M[R.UNLOAD_OBJ];}else{Q=M[R.ADJ_SCOPE];}}M[R.FN].call(Q,R.getEvent(S,M[R.EL]),M[R.UNLOAD_OBJ]);K[P]=null;M=null;Q=null;}}K=null;if(I&&I.length>0){O=I.length;while(O){N=O-1;M=I[N];if(M){R.removeListener(M[R.EL],M[R.TYPE],M[R.FN],N);}O=O-1;}M=null;R.clearCache();}for(P=0,L=G.length;P<L;++P){G[P][0]=null;G[P]=null;}G=null;R._simpleRemove(window,"unload",R._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var L=document.documentElement,M=document.body;if(L&&(L.scrollTop||L.scrollLeft)){return[L.scrollTop,L.scrollLeft];}else{if(M){return[M.scrollTop,M.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(N,O,M,L){N.addEventListener(O,M,(L));};}else{if(window.attachEvent){return function(N,O,M,L){N.attachEvent("on"+O,M);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(N,O,M,L){N.removeEventListener(O,M,(L));};}else{if(window.detachEvent){return function(M,N,L){M.detachEvent("on"+N,L);};}else{return function(){};}}}()};}();(function(){var D=YAHOO.util.Event;D.on=D.addListener;if(D.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var B,E=document,A=E.body;if(("undefined"!==typeof YAHOO_config)&&YAHOO_config.injecting){B=document.createElement("script");var C=E.getElementsByTagName("head")[0]||A;C.insertBefore(B,C.firstChild);}else{E.write("<script id=\"_yui_eu_dr\" defer=\"true\" src=\"//:\"></script>");B=document.getElementById("_yui_eu_dr");}if(B){B.onreadystatechange=function(){if("complete"===this.readyState){this.parentNode.removeChild(this);YAHOO.util.Event._ready();}};}else{}B=null;}else{if(D.webkit){D._drwatch=setInterval(function(){var F=document.readyState;if("loaded"==F||"complete"==F){clearInterval(D._drwatch);D._drwatch=null;D._ready();}},D.POLL_INTERVAL);}else{D._simpleAdd(document,"DOMContentLoaded",D._ready);}}D._simpleAdd(window,"load",D._load);D._simpleAdd(window,"unload",D._unload);D._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,override:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};
-var A=D||{};var I=this.__yui_events;if(I[G]){}else{var H=A.scope||this;var E=(A.silent);var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var F=this.__yui_subscribers[G];if(F){for(var C=0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].override);}}}return I[G];},fireEvent:function(E,D,A,C){this.__yui_events=this.__yui_events||{};var G=this.__yui_events[E];if(!G){return null;}var B=[];for(var F=1;F<arguments.length;++F){B.push(arguments[F]);}return G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};YAHOO.util.KeyListener=function(A,F,B,C){if(!A){}else{if(!F){}else{if(!B){}}}if(!C){C=YAHOO.util.KeyListener.KEYDOWN;}var D=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(typeof A=="string"){A=document.getElementById(A);}if(typeof B=="function"){D.subscribe(B);}else{D.subscribe(B.fn,B.scope,B.correctScope);}function E(K,J){if(!F.shift){F.shift=false;}if(!F.alt){F.alt=false;}if(!F.ctrl){F.ctrl=false;}if(K.shiftKey==F.shift&&K.altKey==F.alt&&K.ctrlKey==F.ctrl){var H;var G;if(F.keys instanceof Array){for(var I=0;I<F.keys.length;I++){H=F.keys[I];if(H==K.charCode){D.fire(K.charCode,K);break;}else{if(H==K.keyCode){D.fire(K.keyCode,K);break;}}}}else{H=F.keys;if(H==K.charCode){D.fire(K.charCode,K);}else{if(H==K.keyCode){D.fire(K.keyCode,K);}}}}}this.enable=function(){if(!this.enabled){YAHOO.util.Event.addListener(A,C,E);this.enabledEvent.fire(F);}this.enabled=true;};this.disable=function(){if(this.enabled){YAHOO.util.Event.removeListener(A,C,E);this.disabledEvent.fire(F);}this.enabled=false;};this.toString=function(){return"KeyListener ["+F.keys+"] "+A.tagName+(A.id?"["+A.id+"]":"");};};YAHOO.util.KeyListener.KEYDOWN="keydown";YAHOO.util.KeyListener.KEYUP="keyup";YAHOO.register("event",YAHOO.util.Event,{version:"2.3.1",build:"541"});YAHOO.register("yahoo-dom-event", YAHOO, {version: "2.3.1", build: "541"});
+if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=A[C].split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules;if(!I[A]){I[A]={versions:[],builds:[]};}var B=I[A],H=D.version,G=D.build,F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(var C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0};var B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);if(/ Mobile\//.test(B)){C.mobile="Apple";}else{A=B.match(/NokiaN[^\/]*/);if(A){C.mobile=A[0];}}A=B.match(/AdobeAIR\/([^\s]*)/);if(A){C.air=A[0];}}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);A=B.match(/Opera Mini[^;]*/);if(A){C.mobile=A[0];}}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var A=YAHOO.lang,C=["toString","valueOf"],B={isArray:function(D){if(D){return A.isNumber(D.length)&&A.isFunction(D.splice);}return false;},isBoolean:function(D){return typeof D==="boolean";},isFunction:function(D){return typeof D==="function";},isNull:function(D){return D===null;},isNumber:function(D){return typeof D==="number"&&isFinite(D);},isObject:function(D){return(D&&(typeof D==="object"||A.isFunction(D)))||false;},isString:function(D){return typeof D==="string";},isUndefined:function(D){return typeof D==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(F,E){for(var D=0;D<C.length;D=D+1){var H=C[D],G=E[H];if(A.isFunction(G)&&G!=Object.prototype[H]){F[H]=G;}}}:function(){},extend:function(H,I,G){if(!I||!H){throw new Error("extend failed, please check that "+"all dependencies are included.");}var E=function(){};E.prototype=I.prototype;H.prototype=new E();H.prototype.constructor=H;H.superclass=I.prototype;if(I.prototype.constructor==Object.prototype.constructor){I.prototype.constructor=I;}if(G){for(var D in G){if(A.hasOwnProperty(G,D)){H.prototype[D]=G[D];}}A._IEEnumFix(H.prototype,G);}},augmentObject:function(H,G){if(!G||!H){throw new Error("Absorb failed, verify dependencies.");}var D=arguments,F,I,E=D[2];if(E&&E!==true){for(F=2;F<D.length;F=F+1){H[D[F]]=G[D[F]];}}else{for(I in G){if(E||!(I in H)){H[I]=G[I];}}A._IEEnumFix(H,G);}},augmentProto:function(G,F){if(!F||!G){throw new Error("Augment failed, verify dependencies.");}var D=[G.prototype,F.prototype];for(var E=2;E<arguments.length;E=E+1){D.push(arguments[E]);}A.augmentObject.apply(this,D);},dump:function(D,I){var F,H,K=[],L="{...}",E="f(){...}",J=", ",G=" => ";if(!A.isObject(D)){return D+"";}else{if(D instanceof Date||("nodeType" in D&&"tagName" in D)){return D;}else{if(A.isFunction(D)){return E;}}}I=(A.isNumber(I))?I:3;if(A.isArray(D)){K.push("[");for(F=0,H=D.length;F<H;F=F+1){if(A.isObject(D[F])){K.push((I>0)?A.dump(D[F],I-1):L);}else{K.push(D[F]);}K.push(J);}if(K.length>1){K.pop();}K.push("]");}else{K.push("{");for(F in D){if(A.hasOwnProperty(D,F)){K.push(F+G);if(A.isObject(D[F])){K.push((I>0)?A.dump(D[F],I-1):L);}else{K.push(D[F]);}K.push(J);}}if(K.length>1){K.pop();}K.push("}");}return K.join("");},substitute:function(S,E,L){var I,H,G,O,P,R,N=[],F,J="dump",M=" ",D="{",Q="}";for(;;){I=S.lastIndexOf(D);if(I<0){break;}H=S.indexOf(Q,I);if(I+1>=H){break;}F=S.substring(I+1,H);O=F;R=null;G=O.indexOf(M);if(G>-1){R=O.substring(G+1);O=O.substring(0,G);}P=E[O];if(L){P=L(O,P,R);}if(A.isObject(P)){if(A.isArray(P)){P=A.dump(P,parseInt(R,10));}else{R=R||"";var K=R.indexOf(J);if(K>-1){R=R.substring(4);}if(P.toString===Object.prototype.toString||K>-1){P=A.dump(P,parseInt(R,10));}else{P=P.toString();}}}else{if(!A.isString(P)&&!A.isNumber(P)){P="~-"+N.length+"-~";N[N.length]=F;}}S=S.substring(0,I)+P+S.substring(H+1);}for(I=N.length-1;I>=0;I=I-1){S=S.replace(new RegExp("~-"+I+"-~"),"{"+N[I]+"}","g");}return S;},trim:function(D){try{return D.replace(/^\s+|\s+$/g,"");}catch(E){return D;}},merge:function(){var G={},E=arguments;for(var F=0,D=E.length;F<D;F=F+1){A.augmentObject(G,E[F],true);}return G;},later:function(K,E,L,G,H){K=K||0;E=E||{};var F=L,J=G,I,D;if(A.isString(L)){F=E[L];}if(!F){throw new TypeError("method undefined");}if(!A.isArray(J)){J=[G];}I=function(){F.apply(E,J);};D=(H)?setInterval(I,K):setTimeout(I,K);return{interval:H,cancel:function(){if(this.interval){clearInterval(D);}else{clearTimeout(D);}}};},isValue:function(D){return(A.isObject(D)||A.isString(D)||A.isNumber(D)||A.isBoolean(D));}};A.hasOwnProperty=(Object.prototype.hasOwnProperty)?function(D,E){return D&&D.hasOwnProperty(E);}:function(D,E){return !A.isUndefined(D[E])&&D.constructor.prototype[E]!==D[E];};B.augmentObject(A,B,true);YAHOO.util.Lang=A;A.augment=A.augmentProto;YAHOO.augment=A.augmentProto;YAHOO.extend=A.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.6.0",build:"1321"});(function(){var B=YAHOO.util,F=YAHOO.lang,L,J,K={},G={},N=window.document;YAHOO.env._id_counter=YAHOO.env._id_counter||0;var C=YAHOO.env.ua.opera,M=YAHOO.env.ua.webkit,A=YAHOO.env.ua.gecko,H=YAHOO.env.ua.ie;var E={HYPHEN:/(-[a-z])/i,ROOT_TAG:/^body|html$/i,OP_SCROLL:/^(?:inline|table-row)$/i};var O=function(Q){if(!E.HYPHEN.test(Q)){return Q;}if(K[Q]){return K[Q];}var R=Q;while(E.HYPHEN.exec(R)){R=R.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}K[Q]=R;return R;};var P=function(R){var Q=G[R];if(!Q){Q=new RegExp("(?:^|\\s+)"+R+"(?:\\s+|$)");G[R]=Q;}return Q;};if(N.defaultView&&N.defaultView.getComputedStyle){L=function(Q,T){var S=null;if(T=="float"){T="cssFloat";}var R=Q.ownerDocument.defaultView.getComputedStyle(Q,"");if(R){S=R[O(T)];}return Q.style[T]||S;};}else{if(N.documentElement.currentStyle&&H){L=function(Q,S){switch(O(S)){case"opacity":var U=100;try{U=Q.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(T){try{U=Q.filters("alpha").opacity;}catch(T){}}return U/100;case"float":S="styleFloat";default:var R=Q.currentStyle?Q.currentStyle[S]:null;return(Q.style[S]||R);}};}else{L=function(Q,R){return Q.style[R];};}}if(H){J=function(Q,R,S){switch(R){case"opacity":if(F.isString(Q.style.filter)){Q.style.filter="alpha(opacity="+S*100+")";if(!Q.currentStyle||!Q.currentStyle.hasLayout){Q.style.zoom=1;}}break;case"float":R="styleFloat";default:Q.style[R]=S;}};}else{J=function(Q,R,S){if(R=="float"){R="cssFloat";}Q.style[R]=S;};}var D=function(Q,R){return Q&&Q.nodeType==1&&(!R||R(Q));};YAHOO.util.Dom={get:function(S){if(S){if(S.nodeType||S.item){return S;}if(typeof S==="string"){return N.getElementById(S);}if("length" in S){var T=[];for(var R=0,Q=S.length;R<Q;++R){T[T.length]=B.Dom.get(S[R]);}return T;}return S;}return null;},getStyle:function(Q,S){S=O(S);var R=function(T){return L(T,S);};return B.Dom.batch(Q,R,B.Dom,true);},setStyle:function(Q,S,T){S=O(S);var R=function(U){J(U,S,T);};B.Dom.batch(Q,R,B.Dom,true);},getXY:function(Q){var R=function(S){if((S.parentNode===null||S.offsetParent===null||this.getStyle(S,"display")=="none")&&S!=S.ownerDocument.body){return false;}return I(S);};return B.Dom.batch(Q,R,B.Dom,true);},getX:function(Q){var R=function(S){return B.Dom.getXY(S)[0];};return B.Dom.batch(Q,R,B.Dom,true);},getY:function(Q){var R=function(S){return B.Dom.getXY(S)[1];};return B.Dom.batch(Q,R,B.Dom,true);},setXY:function(Q,T,S){var R=function(W){var V=this.getStyle(W,"position");if(V=="static"){this.setStyle(W,"position","relative");V="relative";}var Y=this.getXY(W);if(Y===false){return false;}var X=[parseInt(this.getStyle(W,"left"),10),parseInt(this.getStyle(W,"top"),10)];if(isNaN(X[0])){X[0]=(V=="relative")?0:W.offsetLeft;}if(isNaN(X[1])){X[1]=(V=="relative")?0:W.offsetTop;}if(T[0]!==null){W.style.left=T[0]-Y[0]+X[0]+"px";}if(T[1]!==null){W.style.top=T[1]-Y[1]+X[1]+"px";}if(!S){var U=this.getXY(W);if((T[0]!==null&&U[0]!=T[0])||(T[1]!==null&&U[1]!=T[1])){this.setXY(W,T,true);}}};B.Dom.batch(Q,R,B.Dom,true);},setX:function(R,Q){B.Dom.setXY(R,[Q,null]);},setY:function(Q,R){B.Dom.setXY(Q,[null,R]);},getRegion:function(Q){var R=function(S){if((S.parentNode===null||S.offsetParent===null||this.getStyle(S,"display")=="none")&&S!=S.ownerDocument.body){return false;}var T=B.Region.getRegion(S);return T;};return B.Dom.batch(Q,R,B.Dom,true);},getClientWidth:function(){return B.Dom.getViewportWidth();},getClientHeight:function(){return B.Dom.getViewportHeight();},getElementsByClassName:function(U,Y,V,W){U=F.trim(U);Y=Y||"*";V=(V)?B.Dom.get(V):null||N;if(!V){return[];}var R=[],Q=V.getElementsByTagName(Y),X=P(U);for(var S=0,T=Q.length;S<T;++S){if(X.test(Q[S].className)){R[R.length]=Q[S];if(W){W.call(Q[S],Q[S]);}}}return R;},hasClass:function(S,R){var Q=P(R);var T=function(U){return Q.test(U.className);};return B.Dom.batch(S,T,B.Dom,true);},addClass:function(R,Q){var S=function(T){if(this.hasClass(T,Q)){return false;}T.className=F.trim([T.className,Q].join(" "));return true;};return B.Dom.batch(R,S,B.Dom,true);},removeClass:function(S,R){var Q=P(R);var T=function(W){var V=false,X=W.className;if(R&&X&&this.hasClass(W,R)){W.className=X.replace(Q," ");if(this.hasClass(W,R)){this.removeClass(W,R);}W.className=F.trim(W.className);if(W.className===""){var U=(W.hasAttribute)?"class":"className";W.removeAttribute(U);}V=true;}return V;};return B.Dom.batch(S,T,B.Dom,true);},replaceClass:function(T,R,Q){if(!Q||R===Q){return false;}var S=P(R);var U=function(V){if(!this.hasClass(V,R)){this.addClass(V,Q);return true;}V.className=V.className.replace(S," "+Q+" ");if(this.hasClass(V,R)){this.removeClass(V,R);}V.className=F.trim(V.className);return true;};return B.Dom.batch(T,U,B.Dom,true);},generateId:function(Q,S){S=S||"yui-gen";var R=function(T){if(T&&T.id){return T.id;}var U=S+YAHOO.env._id_counter++;if(T){T.id=U;}return U;};return B.Dom.batch(Q,R,B.Dom,true)||R.apply(B.Dom,arguments);},isAncestor:function(R,S){R=B.Dom.get(R);S=B.Dom.get(S);var Q=false;if((R&&S)&&(R.nodeType&&S.nodeType)){if(R.contains&&R!==S){Q=R.contains(S);}else{if(R.compareDocumentPosition){Q=!!(R.compareDocumentPosition(S)&16);}}}else{}return Q;},inDocument:function(Q){return this.isAncestor(N.documentElement,Q);},getElementsBy:function(X,R,S,U){R=R||"*";S=(S)?B.Dom.get(S):null||N;if(!S){return[];}var T=[],W=S.getElementsByTagName(R);for(var V=0,Q=W.length;V<Q;++V){if(X(W[V])){T[T.length]=W[V];if(U){U(W[V]);}}}return T;},batch:function(U,X,W,S){U=(U&&(U.tagName||U.item))?U:B.Dom.get(U);if(!U||!X){return false;}var T=(S)?W:window;if(U.tagName||U.length===undefined){return X.call(T,U,W);}var V=[];for(var R=0,Q=U.length;R<Q;++R){V[V.length]=X.call(T,U[R],W);}return V;},getDocumentHeight:function(){var R=(N.compatMode!="CSS1Compat")?N.body.scrollHeight:N.documentElement.scrollHeight;var Q=Math.max(R,B.Dom.getViewportHeight());return Q;},getDocumentWidth:function(){var R=(N.compatMode!="CSS1Compat")?N.body.scrollWidth:N.documentElement.scrollWidth;var Q=Math.max(R,B.Dom.getViewportWidth());return Q;},getViewportHeight:function(){var Q=self.innerHeight;
+var R=N.compatMode;if((R||H)&&!C){Q=(R=="CSS1Compat")?N.documentElement.clientHeight:N.body.clientHeight;}return Q;},getViewportWidth:function(){var Q=self.innerWidth;var R=N.compatMode;if(R||H){Q=(R=="CSS1Compat")?N.documentElement.clientWidth:N.body.clientWidth;}return Q;},getAncestorBy:function(Q,R){while((Q=Q.parentNode)){if(D(Q,R)){return Q;}}return null;},getAncestorByClassName:function(R,Q){R=B.Dom.get(R);if(!R){return null;}var S=function(T){return B.Dom.hasClass(T,Q);};return B.Dom.getAncestorBy(R,S);},getAncestorByTagName:function(R,Q){R=B.Dom.get(R);if(!R){return null;}var S=function(T){return T.tagName&&T.tagName.toUpperCase()==Q.toUpperCase();};return B.Dom.getAncestorBy(R,S);},getPreviousSiblingBy:function(Q,R){while(Q){Q=Q.previousSibling;if(D(Q,R)){return Q;}}return null;},getPreviousSibling:function(Q){Q=B.Dom.get(Q);if(!Q){return null;}return B.Dom.getPreviousSiblingBy(Q);},getNextSiblingBy:function(Q,R){while(Q){Q=Q.nextSibling;if(D(Q,R)){return Q;}}return null;},getNextSibling:function(Q){Q=B.Dom.get(Q);if(!Q){return null;}return B.Dom.getNextSiblingBy(Q);},getFirstChildBy:function(Q,S){var R=(D(Q.firstChild,S))?Q.firstChild:null;return R||B.Dom.getNextSiblingBy(Q.firstChild,S);},getFirstChild:function(Q,R){Q=B.Dom.get(Q);if(!Q){return null;}return B.Dom.getFirstChildBy(Q);},getLastChildBy:function(Q,S){if(!Q){return null;}var R=(D(Q.lastChild,S))?Q.lastChild:null;return R||B.Dom.getPreviousSiblingBy(Q.lastChild,S);},getLastChild:function(Q){Q=B.Dom.get(Q);return B.Dom.getLastChildBy(Q);},getChildrenBy:function(R,T){var S=B.Dom.getFirstChildBy(R,T);var Q=S?[S]:[];B.Dom.getNextSiblingBy(S,function(U){if(!T||T(U)){Q[Q.length]=U;}return false;});return Q;},getChildren:function(Q){Q=B.Dom.get(Q);if(!Q){}return B.Dom.getChildrenBy(Q);},getDocumentScrollLeft:function(Q){Q=Q||N;return Math.max(Q.documentElement.scrollLeft,Q.body.scrollLeft);},getDocumentScrollTop:function(Q){Q=Q||N;return Math.max(Q.documentElement.scrollTop,Q.body.scrollTop);},insertBefore:function(R,Q){R=B.Dom.get(R);Q=B.Dom.get(Q);if(!R||!Q||!Q.parentNode){return null;}return Q.parentNode.insertBefore(R,Q);},insertAfter:function(R,Q){R=B.Dom.get(R);Q=B.Dom.get(Q);if(!R||!Q||!Q.parentNode){return null;}if(Q.nextSibling){return Q.parentNode.insertBefore(R,Q.nextSibling);}else{return Q.parentNode.appendChild(R);}},getClientRegion:function(){var S=B.Dom.getDocumentScrollTop(),R=B.Dom.getDocumentScrollLeft(),T=B.Dom.getViewportWidth()+R,Q=B.Dom.getViewportHeight()+S;return new B.Region(S,T,Q,R);}};var I=function(){if(N.documentElement.getBoundingClientRect){return function(S){var T=S.getBoundingClientRect(),R=Math.round;var Q=S.ownerDocument;return[R(T.left+B.Dom.getDocumentScrollLeft(Q)),R(T.top+B.Dom.getDocumentScrollTop(Q))];};}else{return function(S){var T=[S.offsetLeft,S.offsetTop];var R=S.offsetParent;var Q=(M&&B.Dom.getStyle(S,"position")=="absolute"&&S.offsetParent==S.ownerDocument.body);if(R!=S){while(R){T[0]+=R.offsetLeft;T[1]+=R.offsetTop;if(!Q&&M&&B.Dom.getStyle(R,"position")=="absolute"){Q=true;}R=R.offsetParent;}}if(Q){T[0]-=S.ownerDocument.body.offsetLeft;T[1]-=S.ownerDocument.body.offsetTop;}R=S.parentNode;while(R.tagName&&!E.ROOT_TAG.test(R.tagName)){if(R.scrollTop||R.scrollLeft){T[0]-=R.scrollLeft;T[1]-=R.scrollTop;}R=R.parentNode;}return T;};}}();})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this[0]=B;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top);var D=Math.min(this.right,E.right);var A=Math.min(this.bottom,E.bottom);var B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top);var D=Math.max(this.right,E.right);var A=Math.max(this.bottom,E.bottom);var B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D);var C=F[1];var E=F[0]+D.offsetWidth;var A=F[1]+D.offsetHeight;var B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}this.x=this.right=this.left=this[0]=A;this.y=this.top=this.bottom=this[1]=B;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.6.0",build:"1321"});YAHOO.util.CustomEvent=function(D,B,C,A){this.type=D;this.scope=B||window;this.silent=C;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,A){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,A);}this.subscribers.push(new YAHOO.util.Subscriber(B,C,A));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){this.lastError=null;var K=[],E=this.subscribers.length;if(!E&&this.silent){return true;}var I=[].slice.call(arguments,0),G=true,D,J=false;if(!this.silent){}var C=this.subscribers.slice(),A=YAHOO.util.Event.throwErrors;for(D=0;D<E;++D){var M=C[D];if(!M){J=true;}else{if(!this.silent){}var L=M.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var B=null;if(I.length>0){B=I[0];}try{G=M.fn.call(L,B,M.obj);}catch(F){this.lastError=F;if(A){throw F;}}}else{try{G=M.fn.call(L,this.type,I,M.obj);}catch(H){this.lastError=H;if(A){throw H;}}}if(false===G){if(!this.silent){}break;}}}return(G!==false);},unsubscribeAll:function(){for(var A=this.subscribers.length-1;A>-1;A--){this._delete(A);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"scope: "+this.scope;}};YAHOO.util.Subscriber=function(B,C,A){this.fn=B;this.obj=YAHOO.lang.isUndefined(C)?null:C;this.override=A;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var I=[];var J=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};var K=YAHOO.env.ua.ie?"focusin":"focus";var L=YAHOO.env.ua.ie?"focusout":"blur";return{POLL_RETRYS:2000,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,CAPTURE:7,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){var M=this;var N=function(){M._tryPreloadAttach();};this._interval=setInterval(N,this.POLL_INTERVAL);}},onAvailable:function(R,O,S,Q,P){var M=(YAHOO.lang.isString(R))?[R]:R;for(var N=0;N<M.length;N=N+1){F.push({id:M[N],fn:O,obj:S,override:Q,checkReady:P});}C=this.POLL_RETRYS;this.startInterval();},onContentReady:function(O,M,P,N){this.onAvailable(O,M,P,N,true);},onDOMReady:function(M,O,N){if(this.DOMReady){setTimeout(function(){var P=window;if(N){if(N===true){P=O;}else{P=N;}}M.call(P,"DOMReady",[],O);},0);}else{this.DOMReadyEvent.subscribe(M,O,N);}},_addListener:function(O,M,X,S,N,a){if(!X||!X.call){return false;}if(this._isValidCollection(O)){var Y=true;for(var T=0,V=O.length;T<V;++T){Y=this._addListener(O[T],M,X,S,N,a)&&Y;}return Y;}else{if(YAHOO.lang.isString(O)){var R=this.getEl(O);if(R){O=R;}else{this.onAvailable(O,function(){YAHOO.util.Event._addListener(O,M,X,S,N,a);});return true;}}}if(!O){return false;}if("unload"==M&&S!==this){J[J.length]=[O,M,X,S,N,a];return true;}var b=O;if(N){if(N===true){b=S;}else{b=N;}}var P=function(c){return X.call(b,YAHOO.util.Event.getEvent(c,O),S);};var Z=[O,M,X,P,b,S,N,a];var U=I.length;I[U]=Z;if(this.useLegacyEvent(O,M)){var Q=this.getLegacyIndex(O,M);if(Q==-1||O!=G[Q][0]){Q=G.length;B[O.id+M]=Q;G[Q]=[O,M,O["on"+M]];E[Q]=[];O["on"+M]=function(c){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(c),Q);};}E[Q].push(Z);}else{try{this._simpleAdd(O,M,P,a);}catch(W){this.lastError=W;this._removeListener(O,M,X,a);return false;}}return true;},addListener:function(O,Q,N,P,M){return this._addListener(O,Q,N,P,M,false);},addFocusListener:function(O,N,P,M){return this._addListener(O,K,N,P,M,true);},removeFocusListener:function(N,M){return this._removeListener(N,K,M,true);},addBlurListener:function(O,N,P,M){return this._addListener(O,L,N,P,M,true);},removeBlurListener:function(N,M){return this._removeListener(N,L,M,true);},fireLegacyEvent:function(Q,O){var S=true,M,U,T,V,R;U=E[O].slice();for(var N=0,P=U.length;N<P;++N){T=U[N];if(T&&T[this.WFN]){V=T[this.ADJ_SCOPE];R=T[this.WFN].call(V,Q);S=(S&&R);}}M=G[O];if(M&&M[2]){M[2](Q);}return S;},getLegacyIndex:function(N,O){var M=this.generateId(N)+O;if(typeof B[M]=="undefined"){return -1;}else{return B[M];}},useLegacyEvent:function(M,N){return(this.webkit&&this.webkit<419&&("click"==N||"dblclick"==N));},_removeListener:function(N,M,V,Y){var Q,T,X;if(typeof N=="string"){N=this.getEl(N);}else{if(this._isValidCollection(N)){var W=true;for(Q=N.length-1;Q>-1;Q--){W=(this._removeListener(N[Q],M,V,Y)&&W);}return W;}}if(!V||!V.call){return this.purgeElement(N,false,M);}if("unload"==M){for(Q=J.length-1;Q>-1;Q--){X=J[Q];if(X&&X[0]==N&&X[1]==M&&X[2]==V){J.splice(Q,1);return true;}}return false;}var R=null;var S=arguments[4];if("undefined"===typeof S){S=this._getCacheIndex(N,M,V);}if(S>=0){R=I[S];}if(!N||!R){return false;}if(this.useLegacyEvent(N,M)){var P=this.getLegacyIndex(N,M);var O=E[P];if(O){for(Q=0,T=O.length;Q<T;++Q){X=O[Q];if(X&&X[this.EL]==N&&X[this.TYPE]==M&&X[this.FN]==V){O.splice(Q,1);break;}}}}else{try{this._simpleRemove(N,M,R[this.WFN],Y);}catch(U){this.lastError=U;return false;}}delete I[S][this.WFN];delete I[S][this.FN];
+I.splice(S,1);return true;},removeListener:function(N,O,M){return this._removeListener(N,O,M,false);},getTarget:function(O,N){var M=O.target||O.srcElement;return this.resolveTextNode(M);},resolveTextNode:function(N){try{if(N&&3==N.nodeType){return N.parentNode;}}catch(M){}return N;},getPageX:function(N){var M=N.pageX;if(!M&&0!==M){M=N.clientX||0;if(this.isIE){M+=this._getScrollLeft();}}return M;},getPageY:function(M){var N=M.pageY;if(!N&&0!==N){N=M.clientY||0;if(this.isIE){N+=this._getScrollTop();}}return N;},getXY:function(M){return[this.getPageX(M),this.getPageY(M)];},getRelatedTarget:function(N){var M=N.relatedTarget;if(!M){if(N.type=="mouseout"){M=N.toElement;}else{if(N.type=="mouseover"){M=N.fromElement;}}}return this.resolveTextNode(M);},getTime:function(O){if(!O.time){var N=new Date().getTime();try{O.time=N;}catch(M){this.lastError=M;return N;}}return O.time;},stopEvent:function(M){this.stopPropagation(M);this.preventDefault(M);},stopPropagation:function(M){if(M.stopPropagation){M.stopPropagation();}else{M.cancelBubble=true;}},preventDefault:function(M){if(M.preventDefault){M.preventDefault();}else{M.returnValue=false;}},getEvent:function(O,M){var N=O||window.event;if(!N){var P=this.getEvent.caller;while(P){N=P.arguments[0];if(N&&Event==N.constructor){break;}P=P.caller;}}return N;},getCharCode:function(N){var M=N.keyCode||N.charCode||0;if(YAHOO.env.ua.webkit&&(M in D)){M=D[M];}return M;},_getCacheIndex:function(Q,R,P){for(var O=0,N=I.length;O<N;O=O+1){var M=I[O];if(M&&M[this.FN]==P&&M[this.EL]==Q&&M[this.TYPE]==R){return O;}}return -1;},generateId:function(M){var N=M.id;if(!N){N="yuievtautoid-"+A;++A;M.id=N;}return N;},_isValidCollection:function(N){try{return(N&&typeof N!=="string"&&N.length&&!N.tagName&&!N.alert&&typeof N[0]!=="undefined");}catch(M){return false;}},elCache:{},getEl:function(M){return(typeof M==="string")?document.getElementById(M):M;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(N){if(!H){H=true;var M=YAHOO.util.Event;M._ready();M._tryPreloadAttach();}},_ready:function(N){var M=YAHOO.util.Event;if(!M.DOMReady){M.DOMReady=true;M.DOMReadyEvent.fire();M._simpleRemove(document,"DOMContentLoaded",M._ready);}},_tryPreloadAttach:function(){if(F.length===0){C=0;clearInterval(this._interval);this._interval=null;return ;}if(this.locked){return ;}if(this.isIE){if(!this.DOMReady){this.startInterval();return ;}}this.locked=true;var S=!H;if(!S){S=(C>0&&F.length>0);}var R=[];var T=function(V,W){var U=V;if(W.override){if(W.override===true){U=W.obj;}else{U=W.override;}}W.fn.call(U,W.obj);};var N,M,Q,P,O=[];for(N=0,M=F.length;N<M;N=N+1){Q=F[N];if(Q){P=this.getEl(Q.id);if(P){if(Q.checkReady){if(H||P.nextSibling||!S){O.push(Q);F[N]=null;}}else{T(P,Q);F[N]=null;}}else{R.push(Q);}}}for(N=0,M=O.length;N<M;N=N+1){Q=O[N];T(this.getEl(Q.id),Q);}C--;if(S){for(N=F.length-1;N>-1;N--){Q=F[N];if(!Q||!Q.id){F.splice(N,1);}}this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;},purgeElement:function(Q,R,T){var O=(YAHOO.lang.isString(Q))?this.getEl(Q):Q;var S=this.getListeners(O,T),P,M;if(S){for(P=S.length-1;P>-1;P--){var N=S[P];this._removeListener(O,N.type,N.fn,N.capture);}}if(R&&O&&O.childNodes){for(P=0,M=O.childNodes.length;P<M;++P){this.purgeElement(O.childNodes[P],R,T);}}},getListeners:function(O,M){var R=[],N;if(!M){N=[I,J];}else{if(M==="unload"){N=[J];}else{N=[I];}}var T=(YAHOO.lang.isString(O))?this.getEl(O):O;for(var Q=0;Q<N.length;Q=Q+1){var V=N[Q];if(V){for(var S=0,U=V.length;S<U;++S){var P=V[S];if(P&&P[this.EL]===T&&(!M||M===P[this.TYPE])){R.push({type:P[this.TYPE],fn:P[this.FN],obj:P[this.OBJ],adjust:P[this.OVERRIDE],scope:P[this.ADJ_SCOPE],capture:P[this.CAPTURE],index:S});}}}}return(R.length)?R:null;},_unload:function(S){var M=YAHOO.util.Event,P,O,N,R,Q,T=J.slice();for(P=0,R=J.length;P<R;++P){N=T[P];if(N){var U=window;if(N[M.ADJ_SCOPE]){if(N[M.ADJ_SCOPE]===true){U=N[M.UNLOAD_OBJ];}else{U=N[M.ADJ_SCOPE];}}N[M.FN].call(U,M.getEvent(S,N[M.EL]),N[M.UNLOAD_OBJ]);T[P]=null;N=null;U=null;}}J=null;if(I){for(O=I.length-1;O>-1;O--){N=I[O];if(N){M._removeListener(N[M.EL],N[M.TYPE],N[M.FN],N[M.CAPTURE],O);}}N=null;}G=null;M._simpleRemove(window,"unload",M._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var M=document.documentElement,N=document.body;if(M&&(M.scrollTop||M.scrollLeft)){return[M.scrollTop,M.scrollLeft];}else{if(N){return[N.scrollTop,N.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(O,P,N,M){O.addEventListener(P,N,(M));};}else{if(window.attachEvent){return function(O,P,N,M){O.attachEvent("on"+P,N);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(O,P,N,M){O.removeEventListener(P,N,(M));};}else{if(window.detachEvent){return function(N,O,M){N.detachEvent("on"+O,M);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;EU.onFocus=EU.addFocusListener;EU.onBlur=EU.addBlurListener;
+/* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller */
+if(EU.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var n=document.createElement("p");EU._dri=setInterval(function(){try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){}},EU.POLL_INTERVAL);}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};
+var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,override:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;if(I[G]){}else{var H=A.scope||this;var E=(A.silent);var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var F=this.__yui_subscribers[G];if(F){for(var C=0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].override);}}}return I[G];},fireEvent:function(E,D,A,C){this.__yui_events=this.__yui_events||{};var G=this.__yui_events[E];if(!G){return null;}var B=[];for(var F=1;F<arguments.length;++F){B.push(arguments[F]);}return G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};YAHOO.util.KeyListener=function(A,F,B,C){if(!A){}else{if(!F){}else{if(!B){}}}if(!C){C=YAHOO.util.KeyListener.KEYDOWN;}var D=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(typeof A=="string"){A=document.getElementById(A);}if(typeof B=="function"){D.subscribe(B);}else{D.subscribe(B.fn,B.scope,B.correctScope);}function E(J,I){if(!F.shift){F.shift=false;}if(!F.alt){F.alt=false;}if(!F.ctrl){F.ctrl=false;}if(J.shiftKey==F.shift&&J.altKey==F.alt&&J.ctrlKey==F.ctrl){var G;if(F.keys instanceof Array){for(var H=0;H<F.keys.length;H++){G=F.keys[H];if(G==J.charCode){D.fire(J.charCode,J);break;}else{if(G==J.keyCode){D.fire(J.keyCode,J);break;}}}}else{G=F.keys;if(G==J.charCode){D.fire(J.charCode,J);}else{if(G==J.keyCode){D.fire(J.keyCode,J);}}}}}this.enable=function(){if(!this.enabled){YAHOO.util.Event.addListener(A,C,E);this.enabledEvent.fire(F);}this.enabled=true;};this.disable=function(){if(this.enabled){YAHOO.util.Event.removeListener(A,C,E);this.disabledEvent.fire(F);}this.enabled=false;};this.toString=function(){return"KeyListener ["+F.keys+"] "+A.tagName+(A.id?"["+A.id+"]":"");};};YAHOO.util.KeyListener.KEYDOWN="keydown";YAHOO.util.KeyListener.KEYUP="keyup";YAHOO.util.KeyListener.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};YAHOO.register("event",YAHOO.util.Event,{version:"2.6.0",build:"1321"});YAHOO.register("yahoo-dom-event", YAHOO, {version: "2.6.0", build: "1321"});
diff --git a/lib/CVS/Entries b/lib/CVS/Entries
index af182c5d5c30674726d31bf7d974dd175a089196..aec82230652a0d381d663489e5414eb376bb14d8 100644
--- a/lib/CVS/Entries
+++ b/lib/CVS/Entries
@@ -1,2 +1,2 @@
-/README/1.1/Fri Oct 19 06:46:19 2007//TBUGZILLA-3_3_1
+/README/1.1/Fri Oct 19 06:46:19 2007//TBUGZILLA-3_3_2
 D
diff --git a/lib/CVS/Tag b/lib/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/lib/CVS/Tag
+++ b/lib/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/process_bug.cgi b/process_bug.cgi
index c64594bd94dc21fcc06d6546e1cf022a0c5f68d6..83041230bb18605b4ec650370484764cf99ea6c6 100755
--- a/process_bug.cgi
+++ b/process_bug.cgi
@@ -59,6 +59,7 @@ use Bugzilla::Component;
 use Bugzilla::Keyword;
 use Bugzilla::Flag;
 use Bugzilla::Status;
+use Bugzilla::Token;
 
 use Storable qw(dclone);
 
@@ -158,10 +159,6 @@ if (defined $cgi->param('dontchange')) {
 # reference to flags if $cgi->param('id') is undefined.
 Bugzilla::Flag::validate($cgi->param('id'));
 
-######################################################################
-# End Data/Security Validation
-######################################################################
-
 print $cgi->header() unless Bugzilla->usage_mode == USAGE_MODE_EMAIL;
 
 # Check for a mid-air collision. Currently this only works when updating
@@ -184,6 +181,8 @@ if (defined $cgi->param('delta_ts')
     $vars->{'comments'} = Bugzilla::Bug::GetComments($first_bug->id,
                                                      "oldest_to_newest");
     $vars->{'bug'} = $first_bug;
+    # The token contains the old delta_ts. We need a new one.
+    $cgi->param('token', issue_hash_token([$first_bug->id, $first_bug->delta_ts]));
     
     # Warn the user about the mid-air collision and ask them what to do.
     $template->process("bug/process/midair.html.tmpl", $vars)
@@ -191,6 +190,22 @@ if (defined $cgi->param('delta_ts')
     exit;
 }
 
+# We couldn't do this check earlier as we first had to validate bug IDs
+# and display the mid-air collision page if delta_ts changed.
+# If we do a mass-change, we use session tokens.
+my $token = $cgi->param('token');
+
+if ($cgi->param('id')) {
+    check_hash_token($token, [$first_bug->id, $first_bug->delta_ts]);
+}
+else {
+    check_token_data($token, 'buglist_mass_change', 'query.cgi');
+}
+
+######################################################################
+# End Data/Security Validation
+######################################################################
+
 $vars->{'title_tag'} = "bug_processed";
 
 # Set up the vars for navigational <link> elements
@@ -336,6 +351,14 @@ foreach my $b (@bug_objects) {
     $b->reset_assigned_to if $cgi->param('set_default_assignee');
     $b->reset_qa_contact  if $cgi->param('set_default_qa_contact');
 
+    if (should_set('see_also')) {
+        my @see_also = split(',', $cgi->param('see_also'));
+        $b->add_see_also($_) foreach @see_also;
+    }
+    if (should_set('remove_see_also')) {
+        $b->remove_see_also($_) foreach $cgi->param('remove_see_also')
+    }
+
     # And set custom fields.
     foreach my $field (@custom_fields) {
         my $fname = $field->name;
diff --git a/query.cgi b/query.cgi
index f41310bb73d09a6da1962ab1e827467b983298b8..a3e3445b8180bea0cc00f69d7deb9da5e949e221 100755
--- a/query.cgi
+++ b/query.cgi
@@ -96,6 +96,9 @@ if ($cgi->param('nukedefaultquery')) {
     $buffer = "";
 }
 
+# We are done with changes committed to the DB.
+$dbh = Bugzilla->switch_to_shadow_db;
+
 my $userdefaultquery;
 if ($userid) {
     $userdefaultquery = $dbh->selectrow_array(
diff --git a/report.cgi b/report.cgi
index c84ed6208ed0842bdd87cbfaba3f789ccd6e5f34..fd2f28943af469a4e5031a79007e9265b162faf3 100755
--- a/report.cgi
+++ b/report.cgi
@@ -328,6 +328,8 @@ if ($cgi->param('debug')) {
 # All formats point to the same section of the documentation.
 $vars->{'doc_section'} = 'reporting.html#reports';
 
+disable_utf8() if ($format->{'ctype'} =~ /^image\//);
+
 $template->process("$format->{'template'}", $vars)
   || ThrowTemplateError($template->error());
 
diff --git a/request.cgi b/request.cgi
index 666b74b17e5106d41d8386d602910c5bfff20d5e..5dfb76ddb975a26525ad4c5899d173d2dbd66aa5 100755
--- a/request.cgi
+++ b/request.cgi
@@ -42,6 +42,8 @@ use Bugzilla::Component;
 # Make sure the user is logged in.
 my $user = Bugzilla->login();
 my $cgi = Bugzilla->cgi;
+# Force the script to run against the shadow DB. We already validated credentials.
+Bugzilla->switch_to_shadow_db;
 my $template = Bugzilla->template;
 my $action = $cgi->param('action') || '';
 
@@ -94,7 +96,6 @@ exit;
 
 sub queue {
     my $cgi = Bugzilla->cgi;
-    # There are some user privilege checks to do. We do them against the main DB.
     my $dbh = Bugzilla->dbh;
     my $template = Bugzilla->template;
     my $user = Bugzilla->user;
@@ -164,9 +165,7 @@ sub queue {
     $query .= " AND flags.status = '?' " unless $status;
 
     # The set of criteria by which we filter records to display in the queue.
-    # We now move to the shadow DB to query the DB.
     my @criteria = ();
-    $dbh = Bugzilla->switch_to_shadow_db;
 
     # A list of columns to exclude from the report because the report conditions
     # limit the data being displayed to exact matches for those columns.
@@ -304,9 +303,6 @@ sub queue {
     my $flagtypes = get_flag_types();
     push(@types, @$flagtypes);
 
-    # We move back to the main DB to get the list of products the user can see.
-    $dbh = Bugzilla->switch_to_main_db;
-
     $vars->{'products'} = $user->get_selectable_products;
     $vars->{'excluded_columns'} = \@excluded_columns;
     $vars->{'group_field'} = $form_group;
diff --git a/show_activity.cgi b/show_activity.cgi
index f7db3dd0b79f0c259f60dea1ecc95dc08e2a1315..27096018fcdbe628c3c61e99200cad7f8d439c9e 100755
--- a/show_activity.cgi
+++ b/show_activity.cgi
@@ -50,6 +50,10 @@ my $bug = Bugzilla::Bug->check($id);
 # End Data/Security Validation
 ###############################################################################
 
+# Run queries against the shadow DB. In the worst case, new changes are not
+# visible immediately due to replication lag.
+Bugzilla->switch_to_shadow_db;
+
 ($vars->{'operations'}, $vars->{'incomplete_data'}) = 
     Bugzilla::Bug::GetBugActivity($bug->id);
 
diff --git a/show_bug.cgi b/show_bug.cgi
index 62575c5ced1af03cf4b250a4284e998b52764f2e..0578733beeaeffe1a4988f89794cdfaf01e28426 100755
--- a/show_bug.cgi
+++ b/show_bug.cgi
@@ -55,6 +55,11 @@ my $format = $template->get_format("bug/show", scalar $cgi->param('format'),
 my @bugs = ();
 my %marks;
 
+# If the user isn't logged in, we use data from the shadow DB. If he plans
+# to edit the bug(s), he will have to log in first, meaning that the data
+# will be reloaded anyway, from the main DB.
+Bugzilla->switch_to_shadow_db unless $user->id;
+
 if ($single) {
     my $id = $cgi->param('id');
     push @bugs, Bugzilla::Bug->check($id);
diff --git a/skins/CVS/Entries b/skins/CVS/Entries
index e6058cb496cb6b354e2cd74fac45012765c6a746..a242416d543ad8125cc8ef2bc2cd1c806b6c061c 100644
--- a/skins/CVS/Entries
+++ b/skins/CVS/Entries
@@ -1,3 +1,3 @@
-/.cvsignore/1.2/Tue Aug 14 21:54:35 2007//TBUGZILLA-3_3_1
+/.cvsignore/1.2/Tue Aug 14 21:54:35 2007//TBUGZILLA-3_3_2
 D/contrib////
 D/standard////
diff --git a/skins/CVS/Tag b/skins/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/skins/CVS/Tag
+++ b/skins/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/skins/contrib/CVS/Tag b/skins/contrib/CVS/Tag
index 8d751ae8a4f2d445287de3bcefb6f8a590304c1c..1b5eaed1d1b6ae40508059e711ded1b472bbb1d5 100644
--- a/skins/contrib/CVS/Tag
+++ b/skins/contrib/CVS/Tag
@@ -1 +1 @@
-TBUGZILLA-3_3_1
+TBUGZILLA-3_3_2
diff --git a/skins/contrib/Dusk/CVS/Entries b/skins/contrib/Dusk/CVS/Entries
index 1380337881895ce9b9b78f213679fad932110302..a51296e2c88435d96018db06d9be46f062900c82 100644
--- a/skins/contrib/Dusk/CVS/Entries
+++ b/skins/contrib/Dusk/CVS/Entries
@@ -1,4 +1,4 @@
-/.cvsignore/1.3/Sun Jan 27 19:21:12 2008//TBUGZILLA-3_3_1
-/buglist.css/1.2/Tue Aug 19 10:03:18 2008//TBUGZILLA-3_3_1
-/global.css/1.5/Sat Nov 29 22:08:50 2008//TBUGZILLA-3_3_1
+/.cvsignore/1.3/Sun Jan 27 19:21:12 2008//TBUGZILLA-3_3_2
+/buglist.css/1.2/Tue Aug 19 10:03:18 2008//TBUGZILLA-3_3_2
+/global.css/1.5/Sat Nov 29 22:08:50 2008//TBUGZILLA-3_3_2
 D
diff --git a/skins/contrib/Dusk/CVS/Tag b/skins/contrib/Dusk/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/skins/contrib/Dusk/CVS/Tag
+++ b/skins/contrib/Dusk/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/skins/standard/CVS/Entries b/skins/standard/CVS/Entries
index 9d8530c94370357bd221d8cd9dd4398f5c01b378..cda8759bb0a870a50b0bdbb6c74497c4e363166d 100644
--- a/skins/standard/CVS/Entries
+++ b/skins/standard/CVS/Entries
@@ -1,20 +1,20 @@
-/IE-fixes.css/1.2/Fri Feb  8 23:18:59 2008//TBUGZILLA-3_3_1
-/admin.css/1.7/Mon Sep  8 20:37:50 2008//TBUGZILLA-3_3_1
-/buglist.css/1.15/Sun Jan  4 17:44:51 2009//TBUGZILLA-3_3_1
-/create_attachment.css/1.2/Tue Dec  9 18:09:59 2008//TBUGZILLA-3_3_1
-/dependency-tree.css/1.3/Sat Jan  6 19:48:10 2007//TBUGZILLA-3_3_1
-/duplicates.css/1.2/Fri Nov 15 22:04:04 2002//TBUGZILLA-3_3_1
-/editusers.css/1.3/Sun May 13 18:58:26 2007//TBUGZILLA-3_3_1
-/global.css/1.57/Fri Dec 19 01:07:23 2008//TBUGZILLA-3_3_1
-/help.css/1.1/Sun Apr 15 18:43:26 2007//TBUGZILLA-3_3_1
-/index.css/1.8/Sun Mar 25 02:10:20 2007//TBUGZILLA-3_3_1
-/panel.css/1.1/Wed Dec 12 22:41:11 2001//TBUGZILLA-3_3_1
-/params.css/1.4/Thu Aug  2 22:38:45 2007//TBUGZILLA-3_3_1
-/release-notes.css/1.1/Thu Feb 22 18:41:29 2007//TBUGZILLA-3_3_1
-/show_bug.css/1.10/Wed Nov 19 19:13:24 2008//TBUGZILLA-3_3_1
-/show_multiple.css/1.4/Sun Jun 18 23:11:59 2006//TBUGZILLA-3_3_1
-/summarize-time.css/1.1/Mon Feb 28 17:52:57 2005//TBUGZILLA-3_3_1
-/voting.css/1.1/Tue Feb  8 15:49:57 2005//TBUGZILLA-3_3_1
+/IE-fixes.css/1.2/Fri Feb  8 23:18:59 2008//TBUGZILLA-3_3_2
+/admin.css/1.7/Mon Sep  8 20:37:50 2008//TBUGZILLA-3_3_2
+/buglist.css/1.15/Sun Jan  4 17:44:51 2009//TBUGZILLA-3_3_2
+/create_attachment.css/1.2/Tue Dec  9 18:09:59 2008//TBUGZILLA-3_3_2
+/dependency-tree.css/1.3/Sat Jan  6 19:48:10 2007//TBUGZILLA-3_3_2
+/duplicates.css/1.2/Fri Nov 15 22:04:04 2002//TBUGZILLA-3_3_2
+/editusers.css/1.3/Sun May 13 18:58:26 2007//TBUGZILLA-3_3_2
+/global.css/1.58/Thu Jan 22 04:08:46 2009//TBUGZILLA-3_3_2
+/help.css/1.1/Sun Apr 15 18:43:26 2007//TBUGZILLA-3_3_2
+/index.css/1.8/Sun Mar 25 02:10:20 2007//TBUGZILLA-3_3_2
+/panel.css/1.1/Wed Dec 12 22:41:11 2001//TBUGZILLA-3_3_2
+/params.css/1.4/Thu Aug  2 22:38:45 2007//TBUGZILLA-3_3_2
+/release-notes.css/1.1/Thu Feb 22 18:41:29 2007//TBUGZILLA-3_3_2
+/show_bug.css/1.11/Fri Jan 30 00:50:48 2009//TBUGZILLA-3_3_2
+/show_multiple.css/1.4/Sun Jun 18 23:11:59 2006//TBUGZILLA-3_3_2
+/summarize-time.css/1.1/Mon Feb 28 17:52:57 2005//TBUGZILLA-3_3_2
+/voting.css/1.1/Tue Feb  8 15:49:57 2005//TBUGZILLA-3_3_2
 D/dependency-tree////
 D/global////
 D/index////
diff --git a/skins/standard/CVS/Tag b/skins/standard/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/skins/standard/CVS/Tag
+++ b/skins/standard/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/skins/standard/dependency-tree/CVS/Entries b/skins/standard/dependency-tree/CVS/Entries
index ec4de214c749c7d1e7a02d3e57d72cb23b749188..2c92e48b0c42117d744a34da0db5f3846c0f4743 100644
--- a/skins/standard/dependency-tree/CVS/Entries
+++ b/skins/standard/dependency-tree/CVS/Entries
@@ -1,5 +1,5 @@
-/bug-item.png/1.1/Fri Feb 24 01:31:13 2006/-kb/TBUGZILLA-3_3_1
-/tree-closed.png/1.1/Fri Feb 24 01:31:13 2006/-kb/TBUGZILLA-3_3_1
-/tree-open.png/1.1/Fri Feb 24 01:31:13 2006/-kb/TBUGZILLA-3_3_1
-/tree.png/1.1/Tue May 23 00:31:35 2006/-kb/TBUGZILLA-3_3_1
+/bug-item.png/1.1/Fri Feb 24 01:31:13 2006/-kb/TBUGZILLA-3_3_2
+/tree-closed.png/1.1/Fri Feb 24 01:31:13 2006/-kb/TBUGZILLA-3_3_2
+/tree-open.png/1.1/Fri Feb 24 01:31:13 2006/-kb/TBUGZILLA-3_3_2
+/tree.png/1.1/Tue May 23 00:31:35 2006/-kb/TBUGZILLA-3_3_2
 D
diff --git a/skins/standard/dependency-tree/CVS/Tag b/skins/standard/dependency-tree/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/skins/standard/dependency-tree/CVS/Tag
+++ b/skins/standard/dependency-tree/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/skins/standard/global.css b/skins/standard/global.css
index cd5e489a3189005d969bd2ca32230ad264041f77..4e225a1b471a491ff7640c8fb72894bb4af5476a 100644
--- a/skins/standard/global.css
+++ b/skins/standard/global.css
@@ -462,6 +462,12 @@ div.user_match {
     border: 1px solid #404D6C;
 }
 
+.bug_urls {
+    margin: 0 0 1em 0;
+    padding: 0;
+    list-style-type: none;
+}
+
 form#Create th {
     text-align: right;
 }
diff --git a/skins/standard/global/CVS/Entries b/skins/standard/global/CVS/Entries
index 6f25080be5b94d090cc07587329982625ee01f42..4ff96b70e08acfd21eadfe30c235ad89647c5bd1 100644
--- a/skins/standard/global/CVS/Entries
+++ b/skins/standard/global/CVS/Entries
@@ -1,8 +1,8 @@
-/body-back.gif/1.1/Fri Mar 11 03:07:18 2005/-kb/TBUGZILLA-3_3_1
-/calendar.png/1.1/Thu Nov 29 02:20:30 2007/-kb/TBUGZILLA-3_3_1
-/down.png/1.1/Wed Sep 10 19:07:07 2008/-kb/TBUGZILLA-3_3_1
-/header.png/1.1/Thu Feb  3 19:23:17 2005/-kb/TBUGZILLA-3_3_1
-/left.png/1.1/Wed Sep 10 19:07:07 2008/-kb/TBUGZILLA-3_3_1
-/right.png/1.1/Wed Sep 10 19:07:07 2008/-kb/TBUGZILLA-3_3_1
-/up.png/1.1/Wed Sep 10 19:07:07 2008/-kb/TBUGZILLA-3_3_1
+/body-back.gif/1.1/Fri Mar 11 03:07:18 2005/-kb/TBUGZILLA-3_3_2
+/calendar.png/1.1/Thu Nov 29 02:20:30 2007/-kb/TBUGZILLA-3_3_2
+/down.png/1.1/Wed Sep 10 19:07:07 2008/-kb/TBUGZILLA-3_3_2
+/header.png/1.1/Thu Feb  3 19:23:17 2005/-kb/TBUGZILLA-3_3_2
+/left.png/1.1/Wed Sep 10 19:07:07 2008/-kb/TBUGZILLA-3_3_2
+/right.png/1.1/Wed Sep 10 19:07:07 2008/-kb/TBUGZILLA-3_3_2
+/up.png/1.1/Wed Sep 10 19:07:07 2008/-kb/TBUGZILLA-3_3_2
 D
diff --git a/skins/standard/global/CVS/Tag b/skins/standard/global/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/skins/standard/global/CVS/Tag
+++ b/skins/standard/global/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/skins/standard/index/CVS/Entries b/skins/standard/index/CVS/Entries
index 7dd03a98fc07d07053246617e04f546856365088..5e100c9e0cfd4bf5f1c85f2fa9a0bd0a8c942c1d 100644
--- a/skins/standard/index/CVS/Entries
+++ b/skins/standard/index/CVS/Entries
@@ -1,2 +1,2 @@
-/front.png/1.1/Thu Feb  3 19:23:17 2005/-kb/TBUGZILLA-3_3_1
+/front.png/1.1/Thu Feb  3 19:23:17 2005/-kb/TBUGZILLA-3_3_2
 D
diff --git a/skins/standard/index/CVS/Tag b/skins/standard/index/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/skins/standard/index/CVS/Tag
+++ b/skins/standard/index/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/skins/standard/show_bug.css b/skins/standard/show_bug.css
index e21cad1b8e86c7a18bef4263b7e6c331c2118a25..17ce9afd028781b783ea8af717ef553c86ff0489 100644
--- a/skins/standard/show_bug.css
+++ b/skins/standard/show_bug.css
@@ -66,6 +66,6 @@
     margin-bottom: 3ex;
 }
 
-#knob-buttons {
+.knob-buttons {
     float: right;
 }
diff --git a/skins/standard/yui/CVS/Entries b/skins/standard/yui/CVS/Entries
index 6c06659e44a5e2e43c9050c245bf39872c31a567..d9c847b0256d17870a0a510a140602b69c13d0bb 100644
--- a/skins/standard/yui/CVS/Entries
+++ b/skins/standard/yui/CVS/Entries
@@ -1,3 +1,3 @@
-/calendar.css/1.1/Thu Nov 29 02:20:31 2007//TBUGZILLA-3_3_1
-/sprite.png/1.1/Thu Nov 29 02:20:31 2007/-kb/TBUGZILLA-3_3_1
+/calendar.css/1.2/Thu Jan 15 01:01:25 2009//TBUGZILLA-3_3_2
+/sprite.png/1.2/Thu Jan 15 01:01:26 2009/-kb/TBUGZILLA-3_3_2
 D
diff --git a/skins/standard/yui/CVS/Tag b/skins/standard/yui/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/skins/standard/yui/CVS/Tag
+++ b/skins/standard/yui/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/skins/standard/yui/calendar.css b/skins/standard/yui/calendar.css
index 80886d511744553fc70f4d15ee715cc8e27fad18..aad17821a300944dfdbdd6eb377c47bd2e411d22 100644
--- a/skins/standard/yui/calendar.css
+++ b/skins/standard/yui/calendar.css
@@ -1,7 +1,7 @@
 /*
-Copyright (c) 2007, Yahoo! Inc. All rights reserved.
+Copyright (c) 2008, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.net/yui/license.txt
-version: 2.3.1
+version: 2.6.0
 */
-.yui-calcontainer{position:relative;float:left;_overflow:hidden;}.yui-calcontainer iframe{position:absolute;border:none;margin:0;padding:0;z-index:0;width:100%;height:100%;left:0px;top:0px;}.yui-calcontainer iframe.fixedsize{width:50em;height:50em;top:-1px;left:-1px;}.yui-calcontainer.multi .groupcal{z-index:1;float:left;position:relative;}.yui-calcontainer .title{position:relative;z-index:1;}.yui-calcontainer .close-icon{position:absolute;z-index:1;}.yui-calendar{position:relative;}.yui-calendar .calnavleft{position:absolute;z-index:1;}.yui-calendar .calnavright{position:absolute;z-index:1;}.yui-calendar .calheader{position:relative;width:100%;text-align:center;}.yui-calendar .calbody a:hover{background:inherit;}p#clear{clear:left;padding-top:10px;}.yui-skin-sam .yui-calcontainer{background-color:#f2f2f2;border:1px solid #808080;padding:10px;}.yui-skin-sam .yui-calcontainer.multi{padding:0 5px 0 5px;}.yui-skin-sam .yui-calcontainer.multi .groupcal{background-color:transparent;border:none;padding:10px 5px 10px 5px;margin:0;}.yui-skin-sam .yui-calcontainer .title{background:url(sprite.png) repeat-x 0 0;border-bottom:1px solid #cccccc;font:100% sans-serif;color:#000;font-weight:bold;height:auto;padding:.4em;margin:0 -10px 10px -10px;top:0;left:0;text-align:left;}.yui-skin-sam .yui-calcontainer.multi .title{margin:0 -5px 0 -5px;}.yui-skin-sam .yui-calcontainer.withtitle{padding-top:0;}.yui-skin-sam .yui-calcontainer .calclose{background:url(sprite.png) no-repeat 0 -300px;width:25px;height:15px;top:.4em;right:.4em;cursor:pointer;}.yui-skin-sam .yui-calendar{border-spacing:0;border-collapse:collapse;font:100% sans-serif;text-align:center;}.yui-skin-sam .yui-calendar .calhead{background:transparent;border:none;vertical-align:middle;}.yui-skin-sam .yui-calendar .calheader{background:transparent;font-weight:bold;padding:0 0 .6em 0;text-align:center;}.yui-skin-sam .yui-calendar .calheader img{border:none;}.yui-skin-sam .yui-calendar .calnavleft{background:url(sprite.png) no-repeat 0 -450px;width:25px;height:15px;top:0;bottom:0;left:-10px;margin-left:.4em;cursor:pointer;}.yui-skin-sam .yui-calendar .calnavright{background:url(sprite.png) no-repeat 0 -500px;width:25px;height:15px;top:0;bottom:0;right:-10px;margin-right:.4em;cursor:pointer;}.yui-skin-sam .yui-calendar .calweekdayrow{height:2em;}.yui-skin-sam .yui-calendar .calweekdaycell{color:#000;font-weight:bold;text-align:center;width:2em;}.yui-skin-sam .yui-calendar .calfoot{background-color:#f2f2f2;}.yui-skin-sam .yui-calendar .calrowhead,.yui-skin-sam .yui-calendar .calrowfoot{color:#a6a6a6;font-size:85%;font-style:normal;font-weight:normal;}.yui-skin-sam .yui-calendar .calrowhead{text-align:right;padding-right:2px;}.yui-skin-sam .yui-calendar .calrowfoot{text-align:left;padding-left:2px;}.yui-skin-sam .yui-calendar td.calcell{border:1px solid #cccccc;background:#fff;padding:1px;height:1.6em;line-height:1.6em;text-align:center;white-space:nowrap;}.yui-skin-sam .yui-calendar td.calcell a{color:#0066cc;display:block;height:100%;text-decoration:none;}.yui-skin-sam .yui-calendar td.calcell.today{background-color:#000;}.yui-skin-sam .yui-calendar td.calcell.today a{background-color:#fff;}.yui-skin-sam .yui-calendar td.calcell.oom{background-color:#cccccc;color:#a6a6a6;cursor:default;}.yui-skin-sam .yui-calendar td.calcell.selected{background-color:#fff;color:#000;}.yui-skin-sam .yui-calendar td.calcell.selected a{background-color:#b3d4ff;color:#000;}.yui-skin-sam .yui-calendar td.calcell.calcellhover{background-color:#426fd9;color:#fff;cursor:pointer;}.yui-skin-sam .yui-calendar td.calcell.calcellhover a{background-color:#426fd9;color:#fff;}.yui-skin-sam .yui-calendar td.calcell.previous{color:#e0e0e0;}.yui-skin-sam .yui-calendar td.calcell.restricted{text-decoration:line-through;}.yui-skin-sam .yui-calendar td.calcell.highlight1{background-color:#ccff99;}.yui-skin-sam .yui-calendar td.calcell.highlight2{background-color:#99ccff;}.yui-skin-sam .yui-calendar td.calcell.highlight3{background-color:#ffcccc;}.yui-skin-sam .yui-calendar td.calcell.highlight4{background-color:#ccff99;}
+.yui-calcontainer{position:relative;float:left;_overflow:hidden;}.yui-calcontainer iframe{position:absolute;border:none;margin:0;padding:0;z-index:0;width:100%;height:100%;left:0px;top:0px;}.yui-calcontainer iframe.fixedsize{width:50em;height:50em;top:-1px;left:-1px;}.yui-calcontainer.multi .groupcal{z-index:1;float:left;position:relative;}.yui-calcontainer .title{position:relative;z-index:1;}.yui-calcontainer .close-icon{position:absolute;z-index:1;text-indent:-10000em;overflow:hidden;}.yui-calendar{position:relative;}.yui-calendar .calnavleft{position:absolute;z-index:1;text-indent:-10000em;overflow:hidden;}.yui-calendar .calnavright{position:absolute;z-index:1;text-indent:-10000em;overflow:hidden;}.yui-calendar .calheader{position:relative;width:100%;text-align:center;}.yui-calcontainer .yui-cal-nav-mask{position:absolute;z-index:2;margin:0;padding:0;width:100%;height:100%;_width:0;_height:0;left:0;top:0;display:none;}.yui-calcontainer .yui-cal-nav{position:absolute;z-index:3;top:0;display:none;}.yui-calcontainer .yui-cal-nav .yui-cal-nav-btn{display:-moz-inline-box;display:inline-block;}.yui-calcontainer .yui-cal-nav .yui-cal-nav-btn button{display:block;*display:inline-block;*overflow:visible;border:none;background-color:transparent;cursor:pointer;}.yui-calendar .calbody a:hover{background:inherit;}p#clear{clear:left;padding-top:10px;}.yui-skin-sam .yui-calcontainer{background-color:#f2f2f2;border:1px solid #808080;padding:10px;}.yui-skin-sam .yui-calcontainer.multi{padding:0 5px 0 5px;}.yui-skin-sam .yui-calcontainer.multi .groupcal{background-color:transparent;border:none;padding:10px 5px 10px 5px;margin:0;}.yui-skin-sam .yui-calcontainer .title{background:url(sprite.png) repeat-x 0 0;border-bottom:1px solid #cccccc;font:100% sans-serif;color:#000;font-weight:bold;height:auto;padding:.4em;margin:0 -10px 10px -10px;top:0;left:0;text-align:left;}.yui-skin-sam .yui-calcontainer.multi .title{margin:0 -5px 0 -5px;}.yui-skin-sam .yui-calcontainer.withtitle{padding-top:0;}.yui-skin-sam .yui-calcontainer .calclose{background:url(sprite.png) no-repeat 0 -300px;width:25px;height:15px;top:.4em;right:.4em;cursor:pointer;}.yui-skin-sam .yui-calendar{border-spacing:0;border-collapse:collapse;font:100% sans-serif;text-align:center;margin:0;}.yui-skin-sam .yui-calendar .calhead{background:transparent;border:none;vertical-align:middle;padding:0;}.yui-skin-sam .yui-calendar .calheader{background:transparent;font-weight:bold;padding:0 0 .6em 0;text-align:center;}.yui-skin-sam .yui-calendar .calheader img{border:none;}.yui-skin-sam .yui-calendar .calnavleft{background:url(sprite.png) no-repeat 0 -450px;width:25px;height:15px;top:0;bottom:0;left:-10px;margin-left:.4em;cursor:pointer;}.yui-skin-sam .yui-calendar .calnavright{background:url(sprite.png) no-repeat 0 -500px;width:25px;height:15px;top:0;bottom:0;right:-10px;margin-right:.4em;cursor:pointer;}.yui-skin-sam .yui-calendar .calweekdayrow{height:2em;}.yui-skin-sam .yui-calendar .calweekdayrow th{padding:0;border:none;}.yui-skin-sam .yui-calendar .calweekdaycell{color:#000;font-weight:bold;text-align:center;width:2em;}.yui-skin-sam .yui-calendar .calfoot{background-color:#f2f2f2;}.yui-skin-sam .yui-calendar .calrowhead,.yui-skin-sam .yui-calendar .calrowfoot{color:#a6a6a6;font-size:85%;font-style:normal;font-weight:normal;border:none;}.yui-skin-sam .yui-calendar .calrowhead{text-align:right;padding:0 2px 0 0;}.yui-skin-sam .yui-calendar .calrowfoot{text-align:left;padding:0 0 0 2px;}.yui-skin-sam .yui-calendar td.calcell{border:1px solid #cccccc;background:#fff;padding:1px;height:1.6em;line-height:1.6em;text-align:center;white-space:nowrap;}.yui-skin-sam .yui-calendar td.calcell a{color:#0066cc;display:block;height:100%;text-decoration:none;}.yui-skin-sam .yui-calendar td.calcell.today{background-color:#000;}.yui-skin-sam .yui-calendar td.calcell.today a{background-color:#fff;}.yui-skin-sam .yui-calendar td.calcell.oom{background-color:#cccccc;color:#a6a6a6;cursor:default;}.yui-skin-sam .yui-calendar td.calcell.selected{background-color:#fff;color:#000;}.yui-skin-sam .yui-calendar td.calcell.selected a{background-color:#b3d4ff;color:#000;}.yui-skin-sam .yui-calendar td.calcell.calcellhover{background-color:#426fd9;color:#fff;cursor:pointer;}.yui-skin-sam .yui-calendar td.calcell.calcellhover a{background-color:#426fd9;color:#fff;}.yui-skin-sam .yui-calendar td.calcell.previous{color:#e0e0e0;}.yui-skin-sam .yui-calendar td.calcell.restricted{text-decoration:line-through;}.yui-skin-sam .yui-calendar td.calcell.highlight1{background-color:#ccff99;}.yui-skin-sam .yui-calendar td.calcell.highlight2{background-color:#99ccff;}.yui-skin-sam .yui-calendar td.calcell.highlight3{background-color:#ffcccc;}.yui-skin-sam .yui-calendar td.calcell.highlight4{background-color:#ccff99;}.yui-skin-sam .yui-calendar a.calnav{border:1px solid #f2f2f2;padding:0 4px;text-decoration:none;color:#000;zoom:1;}.yui-skin-sam .yui-calendar a.calnav:hover{background:url(sprite.png) repeat-x 0 0;border-color:#A0A0A0;cursor:pointer;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-mask{background-color:#000;opacity:0.25;*filter:alpha(opacity=25);}.yui-skin-sam .yui-calcontainer .yui-cal-nav{font-family:arial,helvetica,clean,sans-serif;font-size:93%;border:1px solid #808080;left:50%;margin-left:-7em;width:14em;padding:0;top:2.5em;background-color:#f2f2f2;}.yui-skin-sam .yui-calcontainer.withtitle .yui-cal-nav{top:4.5em;}.yui-skin-sam .yui-calcontainer.multi .yui-cal-nav{width:16em;margin-left:-8em;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-y,.yui-skin-sam .yui-calcontainer .yui-cal-nav-m,.yui-skin-sam .yui-calcontainer .yui-cal-nav-b{padding:5px 10px 5px 10px;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-b{text-align:center;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-e{margin-top:5px;padding:5px;background-color:#EDF5FF;border-top:1px solid black;display:none;}.yui-skin-sam .yui-calcontainer .yui-cal-nav label{display:block;font-weight:bold;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-mc{width:100%;_width:auto;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-y input.yui-invalid{background-color:#FFEE69;border:1px solid #000;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-yc{width:4em;}.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn{border:1px solid #808080;background:url(sprite.png) repeat-x 0 0;background-color:#ccc;margin:auto .15em;}.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn button{padding:0 8px;font-size:93%;line-height:2;*line-height:1.7;min-height:2em;*min-height:auto;color:#000;}.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn.yui-default{border:1px solid #304369;background-color:#426fd9;background:url(sprite.png) repeat-x 0 -1400px;}.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn.yui-default button{color:#fff;}
diff --git a/skins/standard/yui/sprite.png b/skins/standard/yui/sprite.png
index afd65e05aaabc820fc2e6bba0740818773fcd599..73634d6a22c4377060f49217b63f31b59fe22d51 100644
Binary files a/skins/standard/yui/sprite.png and b/skins/standard/yui/sprite.png differ
diff --git a/t/007util.t b/t/007util.t
index dad5dfb02b1602a3929d4e93ba03ee88ddc4feff..c0433639bf0c8932dc833891fc9cd64f006faa7f 100644
--- a/t/007util.t
+++ b/t/007util.t
@@ -13,11 +13,11 @@
 # The Original Code are the Bugzilla Tests.
 # 
 # The Initial Developer of the Original Code is Zach Lipton
-# Portions created by Zach Lipton are 
-# Copyright (C) 2002 Zach Lipton.  All
-# Rights Reserved.
+# Portions created by Zach Lipton are Copyright (C) 2002 Zach Lipton.
+# All Rights Reserved.
 # 
 # Contributor(s): Zach Lipton <zach@zachlipton.com>
+#                 Max Kanat-Alexander <mkanat@bugzilla.org>
 
 
 #################
@@ -26,11 +26,11 @@
 
 use lib 't';
 use Support::Files;
+use Test::More tests => 16;
 
 BEGIN { 
-        use Test::More tests => 12;
-        use_ok(Bugzilla);
-        use_ok(Bugzilla::Util);
+    use_ok(Bugzilla);
+    use_ok(Bugzilla::Util);
 }
 
 # We need to override user preferences so we can get an expected value when
@@ -64,3 +64,17 @@ is(format_time("2002.11.24 00:05"), "2002-11-24 00:05 $tz",'format_time("2002.11
 is(format_time("2002.11.24 00:05:56"), "2002-11-24 00:05:56 $tz",'format_time("2002.11.24 00:05:56")');
 is(format_time("2002.11.24 00:05:56", "%Y-%m-%d %R"), '2002-11-24 00:05', 'format_time("2002.11.24 00:05:56", "%Y-%m-%d %R") (with no timezone)');
 is(format_time("2002.11.24 00:05:56", "%Y-%m-%d %R %Z"), "2002-11-24 00:05 $tz", 'format_time("2002.11.24 00:05:56", "%Y-%m-%d %R %Z") (with timezone)');
+
+# email_filter
+my %email_strings = (
+    'somebody@somewhere.com' => 'somebody',
+    'Somebody <somebody@somewhere.com>' => 'Somebody <somebody>',
+    'One Person <one@person.com>, Two Person <two@person.com>' 
+        => 'One Person <one>, Two Person <two>',
+    'This string contains somebody@somewhere.com and also this@that.com'
+        => 'This string contains somebody and also this',
+);
+foreach my $input (keys %email_strings) {
+    is(Bugzilla::Util::email_filter($input), $email_strings{$input}, 
+       "email_filter('$input')");
+}
diff --git a/t/CVS/Entries b/t/CVS/Entries
index a34f020c7533750bcfa809e9185c8fbab60a59c2..6961bb214f23bbdaa87f526d76ce65e77e3d9eba 100644
--- a/t/CVS/Entries
+++ b/t/CVS/Entries
@@ -1,13 +1,13 @@
-/001compile.t/1.17/Tue Mar 18 17:30:02 2008//TBUGZILLA-3_3_1
-/002goodperl.t/1.15/Wed Sep  8 22:46:34 2004//TBUGZILLA-3_3_1
-/003safesys.t/1.6/Sun Dec  5 14:13:27 2004//TBUGZILLA-3_3_1
-/004template.t/1.40/Wed Mar  5 17:19:48 2008//TBUGZILLA-3_3_1
-/005no_tabs.t/1.13/Fri Aug  5 23:47:27 2005//TBUGZILLA-3_3_1
-/006spellcheck.t/1.6/Wed Jul 25 14:47:20 2007//TBUGZILLA-3_3_1
-/007util.t/1.11/Wed Aug 27 10:17:56 2008//TBUGZILLA-3_3_1
-/008filter.t/1.29/Mon Dec 29 00:02:14 2008//TBUGZILLA-3_3_1
-/009bugwords.t/1.7/Wed Jul 25 14:51:00 2007//TBUGZILLA-3_3_1
-/010dependencies.t/1.1/Tue Sep  5 17:02:45 2006//TBUGZILLA-3_3_1
-/011pod.t/1.1/Tue Jul 26 14:23:50 2005//TBUGZILLA-3_3_1
-/012throwables.t/1.5/Wed Oct  4 20:20:59 2006//TBUGZILLA-3_3_1
+/001compile.t/1.17/Tue Mar 18 17:30:02 2008//TBUGZILLA-3_3_2
+/002goodperl.t/1.15/Wed Sep  8 22:46:34 2004//TBUGZILLA-3_3_2
+/003safesys.t/1.6/Sun Dec  5 14:13:27 2004//TBUGZILLA-3_3_2
+/004template.t/1.40/Wed Mar  5 17:19:48 2008//TBUGZILLA-3_3_2
+/005no_tabs.t/1.13/Fri Aug  5 23:47:27 2005//TBUGZILLA-3_3_2
+/006spellcheck.t/1.6/Wed Jul 25 14:47:20 2007//TBUGZILLA-3_3_2
+/007util.t/1.12/Thu Jan 29 21:22:23 2009//TBUGZILLA-3_3_2
+/008filter.t/1.29/Mon Dec 29 00:02:14 2008//TBUGZILLA-3_3_2
+/009bugwords.t/1.7/Wed Jul 25 14:51:00 2007//TBUGZILLA-3_3_2
+/010dependencies.t/1.1/Tue Sep  5 17:02:45 2006//TBUGZILLA-3_3_2
+/011pod.t/1.1/Tue Jul 26 14:23:50 2005//TBUGZILLA-3_3_2
+/012throwables.t/1.5/Wed Oct  4 20:20:59 2006//TBUGZILLA-3_3_2
 D/Support////
diff --git a/t/CVS/Tag b/t/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/t/CVS/Tag
+++ b/t/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/t/Support/CVS/Entries b/t/Support/CVS/Entries
index ebfa3d13ffe3769a6ff54dc6ec363af3ac73f750..69d44c95969548067ca935951922e038c3104a9f 100644
--- a/t/Support/CVS/Entries
+++ b/t/Support/CVS/Entries
@@ -1,4 +1,4 @@
-/Files.pm/1.23/Fri Aug  3 13:41:43 2007//TBUGZILLA-3_3_1
-/Systemexec.pm/1.2/Fri Oct 19 22:39:51 2001//TBUGZILLA-3_3_1
-/Templates.pm/1.15/Tue Jul  4 22:25:47 2006//TBUGZILLA-3_3_1
+/Files.pm/1.23/Fri Aug  3 13:41:43 2007//TBUGZILLA-3_3_2
+/Systemexec.pm/1.2/Fri Oct 19 22:39:51 2001//TBUGZILLA-3_3_2
+/Templates.pm/1.15/Tue Jul  4 22:25:47 2006//TBUGZILLA-3_3_2
 D
diff --git a/t/Support/CVS/Tag b/t/Support/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/t/Support/CVS/Tag
+++ b/t/Support/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/CVS/Entries b/template/CVS/Entries
index 3d833419daf840b24bb90224d8d565324c569291..89f15b072539baac3beaf5b7d1af8139fd20ac28 100644
--- a/template/CVS/Entries
+++ b/template/CVS/Entries
@@ -1,2 +1,2 @@
-/.cvsignore/1.3/Tue May  7 21:33:53 2002//TBUGZILLA-3_3_1
+/.cvsignore/1.3/Tue May  7 21:33:53 2002//TBUGZILLA-3_3_2
 D/en////
diff --git a/template/CVS/Tag b/template/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/CVS/Tag
+++ b/template/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/CVS/Entries b/template/en/CVS/Entries
index 65d71e9564d791aaceb62febc550e61319bd57f5..4bf7a4f1a1098a0187041f2614489d92b2600b9f 100644
--- a/template/en/CVS/Entries
+++ b/template/en/CVS/Entries
@@ -1,3 +1,3 @@
-/.cvsignore/1.1/Wed Apr 24 07:29:49 2002//TBUGZILLA-3_3_1
+/.cvsignore/1.1/Wed Apr 24 07:29:49 2002//TBUGZILLA-3_3_2
 D/default////
 D/extension////
diff --git a/template/en/CVS/Tag b/template/en/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/CVS/Tag
+++ b/template/en/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/CVS/Entries b/template/en/default/CVS/Entries
index 1b7d60594bb57c45646c5c41c33fd0971af98c2c..2aa2447f5a1bebbca7c0ad6a2f49ec7a10c8cef5 100644
--- a/template/en/default/CVS/Entries
+++ b/template/en/default/CVS/Entries
@@ -1,9 +1,9 @@
-/config.js.tmpl/1.12/Wed Sep 24 02:55:22 2008//TBUGZILLA-3_3_1
-/config.rdf.tmpl/1.16/Sat Dec  6 19:48:23 2008//TBUGZILLA-3_3_1
-/filterexceptions.pl/1.123/Tue Dec  9 18:41:25 2008//TBUGZILLA-3_3_1
-/index.html.tmpl/1.40/Thu Apr  3 19:05:49 2008//TBUGZILLA-3_3_1
-/sidebar.xul.tmpl/1.26/Fri Aug  8 01:26:37 2008//TBUGZILLA-3_3_1
-/welcome-admin.html.tmpl/1.4/Mon Feb 25 16:16:33 2008//TBUGZILLA-3_3_1
+/config.js.tmpl/1.12/Wed Sep 24 02:55:22 2008//TBUGZILLA-3_3_2
+/config.rdf.tmpl/1.17/Thu Jan 29 21:00:24 2009//TBUGZILLA-3_3_2
+/filterexceptions.pl/1.124/Thu Jan 15 22:35:06 2009//TBUGZILLA-3_3_2
+/index.html.tmpl/1.40/Thu Apr  3 19:05:49 2008//TBUGZILLA-3_3_2
+/sidebar.xul.tmpl/1.26/Fri Aug  8 01:26:37 2008//TBUGZILLA-3_3_2
+/welcome-admin.html.tmpl/1.5/Sun Jan 25 22:41:37 2009//TBUGZILLA-3_3_2
 D/account////
 D/admin////
 D/attachment////
diff --git a/template/en/default/CVS/Tag b/template/en/default/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/CVS/Tag
+++ b/template/en/default/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/account/CVS/Entries b/template/en/default/account/CVS/Entries
index 4c3407a08267c1d3a2fd617b2e5b9a52a087b34c..407ba3a0ab7b071453ecffeb68c9a4d43f0e1385 100644
--- a/template/en/default/account/CVS/Entries
+++ b/template/en/default/account/CVS/Entries
@@ -1,7 +1,7 @@
-/cancel-token.txt.tmpl/1.15/Wed Apr  2 17:42:28 2008//TBUGZILLA-3_3_1
-/create.html.tmpl/1.13/Tue Oct 28 21:27:20 2008//TBUGZILLA-3_3_1
-/created.html.tmpl/1.9/Mon Aug 20 18:24:40 2007//TBUGZILLA-3_3_1
-/profile-activity.html.tmpl/1.5/Fri May 23 22:34:12 2008//TBUGZILLA-3_3_1
+/cancel-token.txt.tmpl/1.16/Thu Jan  8 16:09:56 2009//TBUGZILLA-3_3_2
+/create.html.tmpl/1.13/Tue Oct 28 21:27:20 2008//TBUGZILLA-3_3_2
+/created.html.tmpl/1.9/Mon Aug 20 18:24:40 2007//TBUGZILLA-3_3_2
+/profile-activity.html.tmpl/1.5/Fri May 23 22:34:12 2008//TBUGZILLA-3_3_2
 D/auth////
 D/email////
 D/password////
diff --git a/template/en/default/account/CVS/Tag b/template/en/default/account/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/account/CVS/Tag
+++ b/template/en/default/account/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/account/auth/CVS/Entries b/template/en/default/account/auth/CVS/Entries
index 6e2e55272c96e2bd9e9aa01af55ff4b5cf544904..508d3493dc525a1c287e32836449dc59186262d0 100644
--- a/template/en/default/account/auth/CVS/Entries
+++ b/template/en/default/account/auth/CVS/Entries
@@ -1,3 +1,3 @@
-/login-small.html.tmpl/1.11/Mon Mar 31 08:51:03 2008//TBUGZILLA-3_3_1
-/login.html.tmpl/1.21/Mon Mar 31 08:51:03 2008//TBUGZILLA-3_3_1
+/login-small.html.tmpl/1.11/Mon Mar 31 08:51:03 2008//TBUGZILLA-3_3_2
+/login.html.tmpl/1.21/Mon Mar 31 08:51:03 2008//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/account/auth/CVS/Tag b/template/en/default/account/auth/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/account/auth/CVS/Tag
+++ b/template/en/default/account/auth/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/account/cancel-token.txt.tmpl b/template/en/default/account/cancel-token.txt.tmpl
index 155c441366f1625a38c2e2632def780873316947..6619dedd3c71b059d776e14d0b6021d19a53074e 100644
--- a/template/en/default/account/cancel-token.txt.tmpl
+++ b/template/en/default/account/cancel-token.txt.tmpl
@@ -37,7 +37,7 @@ to [% Param('maintainer') %] if you suspect foul play.
             Token: [% token %]
        Token Type: [% tokentype %]
              User: [% emailaddress %]
-       Issue Date: [% issuedate %]
+       Issue Date: [% issuedate FILTER time("%Y-%m-%d %H:%M:%S %Z", timezone) %]
        Event Data: [% eventdata %]
 Canceled Because: [% PROCESS cancelactionmessage %]
 
diff --git a/template/en/default/account/email/CVS/Entries b/template/en/default/account/email/CVS/Entries
index 3bd6cf2a4f53cb436a07d4cdbe92989bfcadbdb6..a8fe6b32fdbd587816454690df769202d35408fb 100644
--- a/template/en/default/account/email/CVS/Entries
+++ b/template/en/default/account/email/CVS/Entries
@@ -1,6 +1,6 @@
-/change-new.txt.tmpl/1.12/Mon Aug 20 18:24:41 2007//TBUGZILLA-3_3_1
-/change-old.txt.tmpl/1.13/Mon Aug 20 18:24:41 2007//TBUGZILLA-3_3_1
-/confirm-new.html.tmpl/1.5/Mon Aug 20 18:24:41 2007//TBUGZILLA-3_3_1
-/confirm.html.tmpl/1.11/Mon Aug 20 18:24:41 2007//TBUGZILLA-3_3_1
-/request-new.txt.tmpl/1.6/Mon Aug 20 18:24:41 2007//TBUGZILLA-3_3_1
+/change-new.txt.tmpl/1.13/Thu Jan  8 16:10:00 2009//TBUGZILLA-3_3_2
+/change-old.txt.tmpl/1.14/Thu Jan  8 16:10:00 2009//TBUGZILLA-3_3_2
+/confirm-new.html.tmpl/1.6/Thu Jan  8 16:10:00 2009//TBUGZILLA-3_3_2
+/confirm.html.tmpl/1.11/Mon Aug 20 18:24:41 2007//TBUGZILLA-3_3_2
+/request-new.txt.tmpl/1.7/Thu Jan  8 16:10:00 2009//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/account/email/CVS/Tag b/template/en/default/account/email/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/account/email/CVS/Tag
+++ b/template/en/default/account/email/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/account/email/change-new.txt.tmpl b/template/en/default/account/email/change-new.txt.tmpl
index e7f32e8d7da5f1aaaf9af744011ae4a994541ab3..5803b027473a960a21560cb60f54aa6048ac3320 100644
--- a/template/en/default/account/email/change-new.txt.tmpl
+++ b/template/en/default/account/email/change-new.txt.tmpl
@@ -20,7 +20,6 @@
 
 [% PROCESS global/variables.none.tmpl %]
 
-[% expiration_ts = token_ts + (max_token_age * 86400) %]
 From: [% Param('mailfrom') %]
 To: [% emailaddress %]
 Subject: [% terms.Bugzilla %] Change Email Address Request
@@ -38,5 +37,5 @@ this request, visit the following link:
 
 [%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cxlem
 
-If you do nothing, the request will lapse after [%+ max_token_age %] days
-(on [%+ time2str("%B %o, %Y at %H:%M %Z", expiration_ts) %]).
+If you do nothing, the request will lapse after [% constants.MAX_TOKEN_AGE %] days
+(on [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %]).
diff --git a/template/en/default/account/email/change-old.txt.tmpl b/template/en/default/account/email/change-old.txt.tmpl
index cf00ebbcfbb3dfec8f39019c30c49639e6673865..6b777442084981d7c5c67040b8789d8d07a86e3b 100644
--- a/template/en/default/account/email/change-old.txt.tmpl
+++ b/template/en/default/account/email/change-old.txt.tmpl
@@ -25,7 +25,6 @@
 
 [% PROCESS global/variables.none.tmpl %]
 
-[% expiration_ts = token_ts + (max_token_age * 86400) %]
 From: [% Param('mailfrom') %]
 To: [% emailaddress %]
 Subject: [% terms.Bugzilla %] Change Email Address Request
@@ -43,5 +42,5 @@ this request, visit the following link:
 [%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cxlem
 
 If you do nothing, and [%+ newemailaddress %] confirms this request,
-the change will be made permanent after [%+ max_token_age %] days
-(on [%+ time2str("%B %o, %Y at %H:%M %Z", expiration_ts) %]).
+the change will be made permanent after [% constants.MAX_TOKEN_AGE %] days
+(on [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %]).
diff --git a/template/en/default/account/email/confirm-new.html.tmpl b/template/en/default/account/email/confirm-new.html.tmpl
index 437c1b758e807636bde4ce39508e1075b5090231..ed0ff34052d5ab0bcbfda74c5b7aabdfeb97e886 100644
--- a/template/en/default/account/email/confirm-new.html.tmpl
+++ b/template/en/default/account/email/confirm-new.html.tmpl
@@ -16,7 +16,7 @@
 [%# INTERFACE:
   # token: string. The token to be used in the user account creation.
   # email: email address of the user account.
-  # date: creation date of the token.
+  # expiration_ts: expiration date of the token.
   #%]
 
 [% title = BLOCK %]Create a new user account for '[% email FILTER html %]'[% END %]
@@ -24,7 +24,6 @@
            title = title
            onload = "document.forms['confirm_account_form'].realname.focus();" %]
 
-[% expiration_ts = date + (constants.MAX_TOKEN_AGE * 86400) %]
 <div>
   To create your account, you must enter a password in the form below.
   Your email address and Real Name (if provided) will be shown with
@@ -60,7 +59,7 @@
 
 <p>
   This account will not be created if this form is not completed by
-  <u>[%+ time2str("%B %o, %Y at %H:%M %Z", expiration_ts) %]</u>.
+  <u>[% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %]</u>.
 </p>
 
 <p>
diff --git a/template/en/default/account/email/request-new.txt.tmpl b/template/en/default/account/email/request-new.txt.tmpl
index 36cd9478746077dca4a091db85c85203eb173905..c56054b94110894727af0a86e971c14321a5cf19 100644
--- a/template/en/default/account/email/request-new.txt.tmpl
+++ b/template/en/default/account/email/request-new.txt.tmpl
@@ -15,13 +15,12 @@
 
 [%# INTERFACE:
   # token: random string used to authenticate the transaction.
-  # token_ts: creation date of the token.
+  # expiration_ts: expiration date of the token.
   # email: email address of the new account.
   #%]
 
 [% PROCESS global/variables.none.tmpl %]
 
-[% expiration_ts = token_ts + (constants.MAX_TOKEN_AGE * 86400) %]
 From: [% Param('mailfrom') %]
 To: [% email %]
 Subject: [% terms.Bugzilla %]: confirm account creation
@@ -31,11 +30,11 @@ X-Bugzilla-Type: admin
 using your email address ([% email %]).
 
 To continue creating an account using this email address, visit the 
-following link by [%+ time2str("%B %o, %Y at %H:%M %Z", expiration_ts) %]:
+following link by [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %]:
 
 [%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=request_new_account
 
-If you did not receive this email before [%+ time2str("%B %o, %Y at %H:%M %Z", expiration_ts) %] or
+If you did not receive this email before [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %] or
 you wish to create an account using a different email address you can begin
 again by going to:
 
diff --git a/template/en/default/account/password/CVS/Entries b/template/en/default/account/password/CVS/Entries
index 14adef7e3525d5116e2c1ed2682548947f356dfd..5c3f730301127290f6432c23183def08b9873d86 100644
--- a/template/en/default/account/password/CVS/Entries
+++ b/template/en/default/account/password/CVS/Entries
@@ -1,3 +1,3 @@
-/forgotten-password.txt.tmpl/1.10/Mon Aug 20 18:24:42 2007//TBUGZILLA-3_3_1
-/set-forgotten-password.html.tmpl/1.8/Mon Aug 20 18:24:42 2007//TBUGZILLA-3_3_1
+/forgotten-password.txt.tmpl/1.11/Thu Jan  8 16:10:04 2009//TBUGZILLA-3_3_2
+/set-forgotten-password.html.tmpl/1.8/Mon Aug 20 18:24:42 2007//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/account/password/CVS/Tag b/template/en/default/account/password/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/account/password/CVS/Tag
+++ b/template/en/default/account/password/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/account/password/forgotten-password.txt.tmpl b/template/en/default/account/password/forgotten-password.txt.tmpl
index f8687cb4d743b28c569c582faf1e24bc3fe9a6c0..574975c85a9c36a18fc05595700e9f00eb59f874 100644
--- a/template/en/default/account/password/forgotten-password.txt.tmpl
+++ b/template/en/default/account/password/forgotten-password.txt.tmpl
@@ -20,7 +20,6 @@
 
 [% PROCESS global/variables.none.tmpl %]
 
-[% expiration_ts = token_ts + (max_token_age * 86400) %]
 From: [% Param('mailfrom') %]
 To: [% emailaddress %]
 Subject:  [% terms.Bugzilla %] Change Password Request
@@ -36,6 +35,6 @@ this request, visit the following link:
 
 [%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cxlpw
 
-If you do nothing, the request will lapse after [%+ max_token_age +%] days (at 
-precisely [%+ time2str("%H:%M on the %o of %B, %Y", expiration_ts) -%]) or when you 
+If you do nothing, the request will lapse after [% constants.MAX_TOKEN_AGE %] days
+(on [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z", timezone) %]) or when you
 log in successfully.
diff --git a/template/en/default/account/prefs/CVS/Entries b/template/en/default/account/prefs/CVS/Entries
index 1aa311e8d8aab8743420574e1bad6a30995f8efa..14a6f26abfe2b000a2fb61f1dc1fcf7b24911c8e 100644
--- a/template/en/default/account/prefs/CVS/Entries
+++ b/template/en/default/account/prefs/CVS/Entries
@@ -1,7 +1,7 @@
-/account.html.tmpl/1.10/Sat Oct 18 16:33:33 2008//TBUGZILLA-3_3_1
-/email.html.tmpl/1.32/Wed Dec 10 18:26:55 2008//TBUGZILLA-3_3_1
-/permissions.html.tmpl/1.14/Fri Aug  8 01:26:38 2008//TBUGZILLA-3_3_1
-/prefs.html.tmpl/1.30/Sun Oct 21 20:59:28 2007//TBUGZILLA-3_3_1
-/saved-searches.html.tmpl/1.19/Thu Dec 18 15:55:31 2008//TBUGZILLA-3_3_1
-/settings.html.tmpl/1.6/Mon Aug 20 18:24:42 2007//TBUGZILLA-3_3_1
+/account.html.tmpl/1.10/Sat Oct 18 16:33:33 2008//TBUGZILLA-3_3_2
+/email.html.tmpl/1.32/Wed Dec 10 18:26:55 2008//TBUGZILLA-3_3_2
+/permissions.html.tmpl/1.14/Fri Aug  8 01:26:38 2008//TBUGZILLA-3_3_2
+/prefs.html.tmpl/1.31/Mon Feb  2 19:21:10 2009//TBUGZILLA-3_3_2
+/saved-searches.html.tmpl/1.20/Mon Feb  2 18:48:39 2009//TBUGZILLA-3_3_2
+/settings.html.tmpl/1.6/Mon Aug 20 18:24:42 2007//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/account/prefs/CVS/Tag b/template/en/default/account/prefs/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/account/prefs/CVS/Tag
+++ b/template/en/default/account/prefs/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/account/prefs/prefs.html.tmpl b/template/en/default/account/prefs/prefs.html.tmpl
index ed9cbce72ed6b683b3131aae9a0eac6c3f895927..71e411d8640f80f27ee8bd7933f70410c741f953 100644
--- a/template/en/default/account/prefs/prefs.html.tmpl
+++ b/template/en/default/account/prefs/prefs.html.tmpl
@@ -85,6 +85,7 @@
 [% IF current_tab.saveable %]
   <form name="userprefsform" method="post" action="userprefs.cgi">
     <input type="hidden" name="tab" value="[% current_tab.name %]">
+    <input type="hidden" name="token" value="[% token FILTER html %]">
 [% END %]
 
 [% PROCESS "account/prefs/${current_tab.name}.html.tmpl" 
diff --git a/template/en/default/account/prefs/saved-searches.html.tmpl b/template/en/default/account/prefs/saved-searches.html.tmpl
index 709cf49c5fd7929b48a20569c63410200a415ca6..280b932ba8a076747ed8bcf10cd991994e47d630 100644
--- a/template/en/default/account/prefs/saved-searches.html.tmpl
+++ b/template/en/default/account/prefs/saved-searches.html.tmpl
@@ -108,7 +108,8 @@
             Remove from <a href="editwhines.cgi">whining</a> first
           [% ELSE %]
             <a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
-                     [% q.name FILTER url_quote %]">Forget</a>
+                     [% q.name FILTER url_quote %]&amp;token=
+                     [% issue_hash_token([q.id, q.name]) FILTER url_quote %]">Forget</a>
           [% END %]
         </td>
         <td align="center">
diff --git a/template/en/default/admin/CVS/Entries b/template/en/default/admin/CVS/Entries
index 530f146bbf0d230b058f47e633237446b5df4bd2..7e7c7bbda8ebceec2a5ebb5805acfb6c879ad646 100644
--- a/template/en/default/admin/CVS/Entries
+++ b/template/en/default/admin/CVS/Entries
@@ -1,7 +1,7 @@
-/admin.html.tmpl/1.7/Fri Aug  8 01:26:51 2008//TBUGZILLA-3_3_1
-/confirm-action.html.tmpl/1.2/Mon Aug 20 18:24:43 2007//TBUGZILLA-3_3_1
-/sudo.html.tmpl/1.8/Wed Nov 19 22:08:09 2008//TBUGZILLA-3_3_1
-/table.html.tmpl/1.10/Wed Mar 19 23:41:05 2008//TBUGZILLA-3_3_1
+/admin.html.tmpl/1.7/Fri Aug  8 01:26:51 2008//TBUGZILLA-3_3_2
+/confirm-action.html.tmpl/1.3/Mon Feb  2 18:34:38 2009//TBUGZILLA-3_3_2
+/sudo.html.tmpl/1.8/Wed Nov 19 22:08:09 2008//TBUGZILLA-3_3_2
+/table.html.tmpl/1.10/Wed Mar 19 23:41:05 2008//TBUGZILLA-3_3_2
 D/classifications////
 D/components////
 D/custom_fields////
diff --git a/template/en/default/admin/CVS/Tag b/template/en/default/admin/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/CVS/Tag
+++ b/template/en/default/admin/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/admin/classifications/CVS/Entries b/template/en/default/admin/classifications/CVS/Entries
index 9e440ebd06cbfee9c6ea103104faa77d452531b9..51a847152b2ecc72fdd27233cc7d79e507be6d06 100644
--- a/template/en/default/admin/classifications/CVS/Entries
+++ b/template/en/default/admin/classifications/CVS/Entries
@@ -1,6 +1,6 @@
-/add.html.tmpl/1.5/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_1
-/del.html.tmpl/1.8/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_1
-/edit.html.tmpl/1.12/Fri Aug 24 05:03:42 2007//TBUGZILLA-3_3_1
-/reclassify.html.tmpl/1.9/Mon Mar 17 14:48:57 2008//TBUGZILLA-3_3_1
-/select.html.tmpl/1.8/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_1
+/add.html.tmpl/1.5/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_2
+/del.html.tmpl/1.8/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_2
+/edit.html.tmpl/1.12/Fri Aug 24 05:03:42 2007//TBUGZILLA-3_3_2
+/reclassify.html.tmpl/1.9/Mon Mar 17 14:48:57 2008//TBUGZILLA-3_3_2
+/select.html.tmpl/1.8/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/admin/classifications/CVS/Tag b/template/en/default/admin/classifications/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/classifications/CVS/Tag
+++ b/template/en/default/admin/classifications/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/admin/components/CVS/Entries b/template/en/default/admin/components/CVS/Entries
index 06bff037a7bb7b2439cb67cef98cffc69f2a4951..df58ff7206dad18b90d41a1ffdc14eb238f3487d 100644
--- a/template/en/default/admin/components/CVS/Entries
+++ b/template/en/default/admin/components/CVS/Entries
@@ -1,7 +1,7 @@
-/confirm-delete.html.tmpl/1.12/Sun Oct  7 23:18:21 2007//TBUGZILLA-3_3_1
-/create.html.tmpl/1.16/Mon Dec 29 00:02:15 2008//TBUGZILLA-3_3_1
-/edit.html.tmpl/1.16/Wed Nov 19 21:01:49 2008//TBUGZILLA-3_3_1
-/footer.html.tmpl/1.4/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_1
-/list.html.tmpl/1.6/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_1
-/select-product.html.tmpl/1.4/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_1
+/confirm-delete.html.tmpl/1.12/Sun Oct  7 23:18:21 2007//TBUGZILLA-3_3_2
+/create.html.tmpl/1.16/Mon Dec 29 00:02:15 2008//TBUGZILLA-3_3_2
+/edit.html.tmpl/1.16/Wed Nov 19 21:01:49 2008//TBUGZILLA-3_3_2
+/footer.html.tmpl/1.4/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_2
+/list.html.tmpl/1.6/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_2
+/select-product.html.tmpl/1.4/Mon Aug 20 18:24:44 2007//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/admin/components/CVS/Tag b/template/en/default/admin/components/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/components/CVS/Tag
+++ b/template/en/default/admin/components/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/admin/confirm-action.html.tmpl b/template/en/default/admin/confirm-action.html.tmpl
index da551d0d7e3fe646a3c5b3c7dae81e316f485146..521d2d157bf4a19b2f3c0701fe98dfacc1aa7682 100644
--- a/template/en/default/admin/confirm-action.html.tmpl
+++ b/template/en/default/admin/confirm-action.html.tmpl
@@ -20,6 +20,8 @@
   # token_action: the action the token was supposed to serve.
   # expected_action: the action the user was going to do.
   # script_name: the script generating this warning.
+  # alternate_script: the suggested script to redirect the user to
+  #                   if he declines submission.
   #%]
 
 [% PROCESS "global/field-descs.none.tmpl" %]
@@ -89,8 +91,8 @@
                exclude="^(Bugzilla_login|Bugzilla_password)$" %]
     <input type="submit" id="confirm" value="Confirm Changes">
   </form>
-  <p>Or throw away these changes and go back to <a href="[% script_name FILTER html %]">
-    [%- script_name FILTER html %]</a>.</p>
+  <p>Or throw away these changes and go back to <a href="[% alternate_script FILTER html %]">
+    [%- alternate_script FILTER html %]</a>.</p>
 [% END %]
 
 [% PROCESS global/footer.html.tmpl %]
diff --git a/template/en/default/admin/custom_fields/CVS/Entries b/template/en/default/admin/custom_fields/CVS/Entries
index 984e7adc6016f99cfa5d50b161c7d71fbf22c322..8ab02c2b3f385b08f250d8467fd6a9007b3a3297 100644
--- a/template/en/default/admin/custom_fields/CVS/Entries
+++ b/template/en/default/admin/custom_fields/CVS/Entries
@@ -1,6 +1,6 @@
-/cf-js.js.tmpl/1.3/Fri Nov  7 11:34:49 2008//TBUGZILLA-3_3_1
-/confirm-delete.html.tmpl/1.1/Wed Feb  6 16:18:13 2008//TBUGZILLA-3_3_1
-/create.html.tmpl/1.12/Fri Nov  7 11:34:49 2008//TBUGZILLA-3_3_1
-/edit.html.tmpl/1.12/Fri Nov  7 11:34:49 2008//TBUGZILLA-3_3_1
-/list.html.tmpl/1.7/Wed Feb  6 16:15:40 2008//TBUGZILLA-3_3_1
+/cf-js.js.tmpl/1.4/Fri Jan 23 21:08:27 2009//TBUGZILLA-3_3_2
+/confirm-delete.html.tmpl/1.1/Wed Feb  6 16:18:13 2008//TBUGZILLA-3_3_2
+/create.html.tmpl/1.12/Fri Nov  7 11:34:49 2008//TBUGZILLA-3_3_2
+/edit.html.tmpl/1.12/Fri Nov  7 11:34:49 2008//TBUGZILLA-3_3_2
+/list.html.tmpl/1.7/Wed Feb  6 16:15:40 2008//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/admin/custom_fields/CVS/Tag b/template/en/default/admin/custom_fields/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/custom_fields/CVS/Tag
+++ b/template/en/default/admin/custom_fields/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/admin/custom_fields/cf-js.js.tmpl b/template/en/default/admin/custom_fields/cf-js.js.tmpl
index 6c5bbf626240c130eeeda23788c6ddd36fa2f707..891f5da7641782cab6e7f012af181b6435254dc4 100644
--- a/template/en/default/admin/custom_fields/cf-js.js.tmpl
+++ b/template/en/default/admin/custom_fields/cf-js.js.tmpl
@@ -27,7 +27,7 @@ var select_values = new Array();
 [% FOREACH sel_field = Bugzilla.get_fields({ is_select => 1 }) %]
   select_values[[% sel_field.id FILTER js %]] = [
   [% FOREACH legal_value = sel_field.legal_values %]
-    [[% legal_value.id FILTER js %], '[% legal_value.name FILTER html %]'],
+    [[% legal_value.id FILTER js %], '[% legal_value.name FILTER html %]'][% ',' UNLESS loop.last %]
   [% END %]
   ];
 [% END %]
diff --git a/template/en/default/admin/fieldvalues/CVS/Entries b/template/en/default/admin/fieldvalues/CVS/Entries
index e7728aa96116836c078cc835682c55491e265ffb..b1dd73c88a56af14c262d7905fe730b3aab26d96 100644
--- a/template/en/default/admin/fieldvalues/CVS/Entries
+++ b/template/en/default/admin/fieldvalues/CVS/Entries
@@ -1,7 +1,7 @@
-/confirm-delete.html.tmpl/1.13/Fri Nov  7 11:34:50 2008//TBUGZILLA-3_3_1
-/create.html.tmpl/1.12/Fri Nov  7 11:34:50 2008//TBUGZILLA-3_3_1
-/edit.html.tmpl/1.14/Fri Nov  7 11:34:50 2008//TBUGZILLA-3_3_1
-/footer.html.tmpl/1.7/Fri Oct  3 01:40:18 2008//TBUGZILLA-3_3_1
-/list.html.tmpl/1.9/Fri Oct  3 01:40:18 2008//TBUGZILLA-3_3_1
-/select-field.html.tmpl/1.4/Mon Aug 20 18:24:46 2007//TBUGZILLA-3_3_1
+/confirm-delete.html.tmpl/1.13/Fri Nov  7 11:34:50 2008//TBUGZILLA-3_3_2
+/create.html.tmpl/1.12/Fri Nov  7 11:34:50 2008//TBUGZILLA-3_3_2
+/edit.html.tmpl/1.14/Fri Nov  7 11:34:50 2008//TBUGZILLA-3_3_2
+/footer.html.tmpl/1.7/Fri Oct  3 01:40:18 2008//TBUGZILLA-3_3_2
+/list.html.tmpl/1.9/Fri Oct  3 01:40:18 2008//TBUGZILLA-3_3_2
+/select-field.html.tmpl/1.4/Mon Aug 20 18:24:46 2007//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/admin/fieldvalues/CVS/Tag b/template/en/default/admin/fieldvalues/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/fieldvalues/CVS/Tag
+++ b/template/en/default/admin/fieldvalues/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/admin/flag-type/CVS/Entries b/template/en/default/admin/flag-type/CVS/Entries
index f221c88f505205f937e22e1f078f7d9fd95cb881..1965667f53402cafbe0b5957dac8c1dba0cb3704 100644
--- a/template/en/default/admin/flag-type/CVS/Entries
+++ b/template/en/default/admin/flag-type/CVS/Entries
@@ -1,4 +1,4 @@
-/confirm-delete.html.tmpl/1.9/Mon Oct 22 21:42:00 2007//TBUGZILLA-3_3_1
-/edit.html.tmpl/1.26/Mon Oct 22 21:42:00 2007//TBUGZILLA-3_3_1
-/list.html.tmpl/1.20/Thu Jan  1 19:04:53 2009//TBUGZILLA-3_3_1
+/confirm-delete.html.tmpl/1.10/Mon Feb  2 18:59:18 2009//TBUGZILLA-3_3_2
+/edit.html.tmpl/1.26/Mon Oct 22 21:42:00 2007//TBUGZILLA-3_3_2
+/list.html.tmpl/1.20/Thu Jan  1 19:04:53 2009//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/admin/flag-type/CVS/Tag b/template/en/default/admin/flag-type/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/flag-type/CVS/Tag
+++ b/template/en/default/admin/flag-type/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/admin/flag-type/confirm-delete.html.tmpl b/template/en/default/admin/flag-type/confirm-delete.html.tmpl
index cc6a064a92832c360ea1056e1bb5ad95f975b271..ed909417dca7a3659d65ebcbd0bb97ae3b34c827 100644
--- a/template/en/default/admin/flag-type/confirm-delete.html.tmpl
+++ b/template/en/default/admin/flag-type/confirm-delete.html.tmpl
@@ -28,13 +28,16 @@
 %]
 
 <p>
-   There are [% flag_type.flag_count %] flags of type [% flag_type.name FILTER html %].
-   If you delete this type, those flags will also be deleted.  Note that
-   instead of deleting the type you can
+  [% IF flag_type.flag_count %]
+    There are [% flag_type.flag_count %] flags of type [% flag_type.name FILTER html %].
+    If you delete this type, those flags will also be deleted.
+  [% END %]
+
+  Note that instead of deleting the type you can
    <a href="editflagtypes.cgi?action=deactivate&amp;id=[% flag_type.id %]&amp;token=
            [%- token FILTER html %]">deactivate it</a>,
-   in which case the type and its flags will remain in the database
-   but will not appear in the [% terms.Bugzilla %] UI.
+   in which case the type [% IF flag_type.flag_count %] and its flags [% END %] will remain
+   in the database but will not appear in the [% terms.Bugzilla %] UI.
 </p>
 
 <table>
diff --git a/template/en/default/admin/groups/CVS/Entries b/template/en/default/admin/groups/CVS/Entries
index ab9f2bdf8f7a4cb99691b47980e212b1585f6736..0b3927b1ec2f4d0da514afdc453f6c3769a8ee6e 100644
--- a/template/en/default/admin/groups/CVS/Entries
+++ b/template/en/default/admin/groups/CVS/Entries
@@ -1,6 +1,6 @@
-/confirm-remove.html.tmpl/1.5/Sun Dec 16 10:32:54 2007//TBUGZILLA-3_3_1
-/create.html.tmpl/1.14/Sat Oct 18 16:33:35 2008//TBUGZILLA-3_3_1
-/delete.html.tmpl/1.13/Tue Nov 20 08:46:57 2007//TBUGZILLA-3_3_1
-/edit.html.tmpl/1.18/Sat Oct 18 16:33:35 2008//TBUGZILLA-3_3_1
-/list.html.tmpl/1.13/Sun Nov 11 21:57:10 2007//TBUGZILLA-3_3_1
+/confirm-remove.html.tmpl/1.5/Sun Dec 16 10:32:54 2007//TBUGZILLA-3_3_2
+/create.html.tmpl/1.14/Sat Oct 18 16:33:35 2008//TBUGZILLA-3_3_2
+/delete.html.tmpl/1.13/Tue Nov 20 08:46:57 2007//TBUGZILLA-3_3_2
+/edit.html.tmpl/1.18/Sat Oct 18 16:33:35 2008//TBUGZILLA-3_3_2
+/list.html.tmpl/1.13/Sun Nov 11 21:57:10 2007//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/admin/groups/CVS/Tag b/template/en/default/admin/groups/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/groups/CVS/Tag
+++ b/template/en/default/admin/groups/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/admin/keywords/CVS/Entries b/template/en/default/admin/keywords/CVS/Entries
index a0c98ee59ed3e4a606f0dbd0570613b7cda16141..19caa68cec35dea4c672a29be6336cf372bc4c4a 100644
--- a/template/en/default/admin/keywords/CVS/Entries
+++ b/template/en/default/admin/keywords/CVS/Entries
@@ -1,5 +1,5 @@
-/confirm-delete.html.tmpl/1.7/Mon Aug 20 18:24:48 2007//TBUGZILLA-3_3_1
-/create.html.tmpl/1.9/Mon Aug 20 18:24:48 2007//TBUGZILLA-3_3_1
-/edit.html.tmpl/1.10/Mon Aug 20 18:24:48 2007//TBUGZILLA-3_3_1
-/list.html.tmpl/1.11/Mon Aug 20 18:24:48 2007//TBUGZILLA-3_3_1
+/confirm-delete.html.tmpl/1.8/Mon Feb  2 18:59:19 2009//TBUGZILLA-3_3_2
+/create.html.tmpl/1.9/Mon Aug 20 18:24:48 2007//TBUGZILLA-3_3_2
+/edit.html.tmpl/1.10/Mon Aug 20 18:24:48 2007//TBUGZILLA-3_3_2
+/list.html.tmpl/1.12/Mon Feb  2 18:59:20 2009//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/admin/keywords/CVS/Tag b/template/en/default/admin/keywords/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/keywords/CVS/Tag
+++ b/template/en/default/admin/keywords/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/admin/keywords/confirm-delete.html.tmpl b/template/en/default/admin/keywords/confirm-delete.html.tmpl
index 6bde05abfbc891f76681d6dfe38b29c07905881e..20a6deee757f0bd557fb1a3ce18eb44818f0c5e8 100644
--- a/template/en/default/admin/keywords/confirm-delete.html.tmpl
+++ b/template/en/default/admin/keywords/confirm-delete.html.tmpl
@@ -31,7 +31,7 @@
 <p>
   [% IF keyword.bug_count == 1 %]
     There is one [% terms.bug %] with this keyword set.
-  [% ELSE %]
+  [% ELSIF keyword.bug_count > 1 %]
     There are [% keyword.bug_count FILTER html %] [%+ terms.bugs %] with
     this keyword set.
   [% END %]
@@ -43,7 +43,6 @@
 <form method="post" action="editkeywords.cgi">
   <input type="hidden" name="id" value="[% keyword.id FILTER html %]">
   <input type="hidden" name="action" value="delete">
-  <input type="hidden" name="reallydelete" value="1">
   <input type="hidden" name="token" value="[% token FILTER html %]">
   <input type="submit" id="delete"
          value="Yes, really delete the keyword">
diff --git a/template/en/default/admin/keywords/list.html.tmpl b/template/en/default/admin/keywords/list.html.tmpl
index 5fb6b3aa69fe3f091ee9ab4f03989ce3e8a96b88..c400a23629fc41959c75d17603cc488ce0afd82b 100644
--- a/template/en/default/admin/keywords/list.html.tmpl
+++ b/template/en/default/admin/keywords/list.html.tmpl
@@ -54,7 +54,7 @@
      { 
        heading => "Action" 
        content => "Delete"
-       contentlink => "editkeywords.cgi?action=delete&amp;id=%%id%%"
+       contentlink => "editkeywords.cgi?action=del&amp;id=%%id%%"
      }
    ]
 %]
diff --git a/template/en/default/admin/milestones/CVS/Entries b/template/en/default/admin/milestones/CVS/Entries
index 90714307f37270fdcc49e64a86817e0299f555a6..edf446fa795e9fee7946e5990cf0ceae72aed22a 100644
--- a/template/en/default/admin/milestones/CVS/Entries
+++ b/template/en/default/admin/milestones/CVS/Entries
@@ -1,7 +1,7 @@
-/confirm-delete.html.tmpl/1.9/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_1
-/create.html.tmpl/1.8/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_1
-/edit.html.tmpl/1.9/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_1
-/footer.html.tmpl/1.4/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_1
-/list.html.tmpl/1.6/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_1
-/select-product.html.tmpl/1.5/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_1
+/confirm-delete.html.tmpl/1.9/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_2
+/create.html.tmpl/1.8/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_2
+/edit.html.tmpl/1.9/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_2
+/footer.html.tmpl/1.4/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_2
+/list.html.tmpl/1.6/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_2
+/select-product.html.tmpl/1.5/Mon Aug 20 18:24:49 2007//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/admin/milestones/CVS/Tag b/template/en/default/admin/milestones/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/milestones/CVS/Tag
+++ b/template/en/default/admin/milestones/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/admin/params/CVS/Entries b/template/en/default/admin/params/CVS/Entries
index c906ff9f5a1c71c38c6d59f654a2cc9541a2f58b..6669c737e94f228e1b4934be301e6c7f8946720a 100644
--- a/template/en/default/admin/params/CVS/Entries
+++ b/template/en/default/admin/params/CVS/Entries
@@ -1,20 +1,20 @@
-/admin.html.tmpl/1.5/Wed Dec 10 18:26:56 2008//TBUGZILLA-3_3_1
-/attachment.html.tmpl/1.5/Wed Dec 10 18:32:29 2008//TBUGZILLA-3_3_1
-/auth.html.tmpl/1.4/Wed Dec  5 00:48:30 2007//TBUGZILLA-3_3_1
-/bugchange.html.tmpl/1.8/Wed Dec 10 18:40:02 2008//TBUGZILLA-3_3_1
-/bugfields.html.tmpl/1.5/Wed Dec 10 18:43:29 2008//TBUGZILLA-3_3_1
-/bugmove.html.tmpl/1.3/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_1
-/common.html.tmpl/1.7/Thu Oct 16 17:12:10 2008//TBUGZILLA-3_3_1
-/core.html.tmpl/1.12/Wed Aug 27 23:26:22 2008//TBUGZILLA-3_3_1
-/dependencygraph.html.tmpl/1.2/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_1
-/editparams.html.tmpl/1.8/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_3_1
-/groupsecurity.html.tmpl/1.6/Mon Oct 27 22:44:43 2008//TBUGZILLA-3_3_1
-/index.html.tmpl/1.2/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_1
-/ldap.html.tmpl/1.8/Wed May 21 22:59:24 2008//TBUGZILLA-3_3_1
-/mta.html.tmpl/1.13/Wed Dec 24 03:43:48 2008//TBUGZILLA-3_3_1
-/patchviewer.html.tmpl/1.3/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_1
-/query.html.tmpl/1.5/Wed Aug  6 12:06:33 2008//TBUGZILLA-3_3_1
-/radius.html.tmpl/1.2/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_1
-/shadowdb.html.tmpl/1.2/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_1
-/usermatch.html.tmpl/1.3/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_1
+/admin.html.tmpl/1.5/Wed Dec 10 18:26:56 2008//TBUGZILLA-3_3_2
+/attachment.html.tmpl/1.7/Mon Feb  2 19:10:34 2009//TBUGZILLA-3_3_2
+/auth.html.tmpl/1.4/Wed Dec  5 00:48:30 2007//TBUGZILLA-3_3_2
+/bugchange.html.tmpl/1.8/Wed Dec 10 18:40:02 2008//TBUGZILLA-3_3_2
+/bugfields.html.tmpl/1.5/Wed Dec 10 18:43:29 2008//TBUGZILLA-3_3_2
+/bugmove.html.tmpl/1.3/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_2
+/common.html.tmpl/1.7/Thu Oct 16 17:12:10 2008//TBUGZILLA-3_3_2
+/core.html.tmpl/1.12/Wed Aug 27 23:26:22 2008//TBUGZILLA-3_3_2
+/dependencygraph.html.tmpl/1.2/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_2
+/editparams.html.tmpl/1.8/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_3_2
+/groupsecurity.html.tmpl/1.6/Mon Oct 27 22:44:43 2008//TBUGZILLA-3_3_2
+/index.html.tmpl/1.3/Thu Jan 15 00:53:22 2009//TBUGZILLA-3_3_2
+/ldap.html.tmpl/1.8/Wed May 21 22:59:24 2008//TBUGZILLA-3_3_2
+/mta.html.tmpl/1.13/Wed Dec 24 03:43:48 2008//TBUGZILLA-3_3_2
+/patchviewer.html.tmpl/1.3/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_2
+/query.html.tmpl/1.5/Wed Aug  6 12:06:33 2008//TBUGZILLA-3_3_2
+/radius.html.tmpl/1.2/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_2
+/shadowdb.html.tmpl/1.2/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_2
+/usermatch.html.tmpl/1.3/Mon Aug 20 18:24:50 2007//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/admin/params/CVS/Tag b/template/en/default/admin/params/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/params/CVS/Tag
+++ b/template/en/default/admin/params/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/admin/params/attachment.html.tmpl b/template/en/default/admin/params/attachment.html.tmpl
index ef3363bbb494c80be5935a1f5f22ee08c4a0aacd..39f60470e73f3ab4c5da31ee8e6e9ca4d68b92ee 100644
--- a/template/en/default/admin/params/attachment.html.tmpl
+++ b/template/en/default/admin/params/attachment.html.tmpl
@@ -24,6 +24,39 @@
 %]
 
 [% param_descs = {
+  allow_attachment_display =>
+    "If this option is on, users will be able to view attachments from"
+    _ " their browser, if their browser supports the attachment's MIME type."
+    _ " If this option is off, users are forced to download attachments,"
+    _ " even if the browser is able to display them."
+    _ "<p>This is a security restriction for installations where untrusted"
+    _ " users may upload attachments that could be potentially damaging if"
+    _ " viewed directly in the browser.</p>"
+    _ "<p>It is highly recommended that you set the <tt>attachment_base</tt>"
+    _ " parameter if you turn this parameter on.",
+
+  attachment_base => 
+    "When the <tt>allow_attachment_display</tt> parameter is on, it is "
+    _ " possible for a malicious attachment to steal your cookies or"
+    _ " perform an attack on $terms.Bugzilla using your credentials."
+    _ "<p>If you would like additional security on attachments to avoid"
+    _ " this, set this parameter to an alternate URL for your $terms.Bugzilla"
+    _ " that is not the same as <tt>urlbase</tt> or <tt>sslbase</tt>."
+    _ " That is, a different domain name that resolves to this exact"
+    _ " same $terms.Bugzilla installation.</p>"
+    _ "<p>Note that if you have set the"
+    _ " <a href=\"editparams.cgi?section=core#cookiedomain\"><tt>cookiedomain</tt>"
+    _" parameter</a>, you should set <tt>attachment_base</tt> to use a"
+    _ " domain that would <em>not</em> be matched by"
+    _ " <tt>cookiedomain</tt>.</p>"
+    _ "<p>For added security, you can insert <tt>%bugid%</tt> into the URL,"
+    _ " which will be replaced with the ID of the current $terms.bug that"
+    _ " the attachment is on, when you access an attachment. This will limit"
+    _ " attachments to accessing only other attachments on the same"
+    _ " ${terms.bug}. Remember, though, that all those possible domain names "
+    _ " (such as <tt>1234.your.domain.com</tt>) must point to this same"
+    _ " $terms.Bugzilla instance.",
+
   allow_attachment_deletion => "If this option is on, administrators will be able to delete " _
                                "the content of attachments.",
 
diff --git a/template/en/default/admin/params/index.html.tmpl b/template/en/default/admin/params/index.html.tmpl
index bfa3e2c43da4b77616debf09e4a47bf253f6f4d8..1629c8c6fdc88b90025046d9b6c5ced8018c6ac5 100644
--- a/template/en/default/admin/params/index.html.tmpl
+++ b/template/en/default/admin/params/index.html.tmpl
@@ -16,6 +16,7 @@
   # Rights Reserved.
   #
   # Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
+  #                 Nitish Bezzala <nbezzala@yahoo.com>
   #%]
 
 <p>
@@ -32,11 +33,13 @@
     [% FOREACH panel = panels %]
       [% FOREACH param = panel.param_list.sort('name') %]
         <tr>
-          <td>[% param.name FILTER html %]</td>
           <td>
             <a href="editparams.cgi?section=
-               [%- panel.name FILTER url_quote %]#[% param.name FILTER url_quote %]">
-               [% panel.title FILTER html %]</a>
+              [%- panel.name FILTER url_quote %]#[% param.name FILTER url_quote %]">
+              [% param.name FILTER html %]</a>
+          </td>    
+          <td>
+            [% panel.title FILTER html %]
           </td>
         </tr>
       [% END %]
diff --git a/template/en/default/admin/products/CVS/Entries b/template/en/default/admin/products/CVS/Entries
index 8328d8f262a2db7c65b01424babf7aac60fdcc68..589630726134e07eb15cb35396e43115464d7ffa 100644
--- a/template/en/default/admin/products/CVS/Entries
+++ b/template/en/default/admin/products/CVS/Entries
@@ -1,9 +1,9 @@
-/confirm-delete.html.tmpl/1.11/Thu Dec 18 17:18:20 2008//TBUGZILLA-3_3_1
-/create.html.tmpl/1.6/Wed Jul 30 21:47:29 2008//TBUGZILLA-3_3_1
-/edit-common.html.tmpl/1.9/Mon Aug 20 18:24:51 2007//TBUGZILLA-3_3_1
-/edit.html.tmpl/1.14/Thu Aug 14 16:36:10 2008//TBUGZILLA-3_3_1
-/footer.html.tmpl/1.12/Wed Jul 30 21:47:29 2008//TBUGZILLA-3_3_1
-/list-classifications.html.tmpl/1.4/Thu Sep 20 21:23:44 2007//TBUGZILLA-3_3_1
-/list.html.tmpl/1.6/Wed Jul 30 21:47:29 2008//TBUGZILLA-3_3_1
-/updated.html.tmpl/1.8/Wed Jul 30 21:47:29 2008//TBUGZILLA-3_3_1
+/confirm-delete.html.tmpl/1.11/Thu Dec 18 17:18:20 2008//TBUGZILLA-3_3_2
+/create.html.tmpl/1.6/Wed Jul 30 21:47:29 2008//TBUGZILLA-3_3_2
+/edit-common.html.tmpl/1.9/Mon Aug 20 18:24:51 2007//TBUGZILLA-3_3_2
+/edit.html.tmpl/1.14/Thu Aug 14 16:36:10 2008//TBUGZILLA-3_3_2
+/footer.html.tmpl/1.12/Wed Jul 30 21:47:29 2008//TBUGZILLA-3_3_2
+/list-classifications.html.tmpl/1.4/Thu Sep 20 21:23:44 2007//TBUGZILLA-3_3_2
+/list.html.tmpl/1.6/Wed Jul 30 21:47:29 2008//TBUGZILLA-3_3_2
+/updated.html.tmpl/1.8/Wed Jul 30 21:47:29 2008//TBUGZILLA-3_3_2
 D/groupcontrol////
diff --git a/template/en/default/admin/products/CVS/Tag b/template/en/default/admin/products/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/products/CVS/Tag
+++ b/template/en/default/admin/products/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/admin/products/groupcontrol/CVS/Entries b/template/en/default/admin/products/groupcontrol/CVS/Entries
index e3d11d5edee8d61882a76a410e73b4f44d20de32..4f29783ece9c7b8c9eed3f964881ac98ed928636 100644
--- a/template/en/default/admin/products/groupcontrol/CVS/Entries
+++ b/template/en/default/admin/products/groupcontrol/CVS/Entries
@@ -1,4 +1,4 @@
-/confirm-edit.html.tmpl/1.9/Mon Aug 20 18:24:52 2007//TBUGZILLA-3_3_1
-/edit.html.tmpl/1.12/Thu Aug 14 16:36:11 2008//TBUGZILLA-3_3_1
-/updated.html.tmpl/1.4/Thu Aug 14 16:36:11 2008//TBUGZILLA-3_3_1
+/confirm-edit.html.tmpl/1.9/Mon Aug 20 18:24:52 2007//TBUGZILLA-3_3_2
+/edit.html.tmpl/1.12/Thu Aug 14 16:36:11 2008//TBUGZILLA-3_3_2
+/updated.html.tmpl/1.4/Thu Aug 14 16:36:11 2008//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/admin/products/groupcontrol/CVS/Tag b/template/en/default/admin/products/groupcontrol/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/products/groupcontrol/CVS/Tag
+++ b/template/en/default/admin/products/groupcontrol/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/admin/sanitycheck/CVS/Entries b/template/en/default/admin/sanitycheck/CVS/Entries
index 471955f2a70200383b62f31f1a1a47fecc410cdd..5a19cf28c7301344f83946f05e45d92a28912507 100644
--- a/template/en/default/admin/sanitycheck/CVS/Entries
+++ b/template/en/default/admin/sanitycheck/CVS/Entries
@@ -1,3 +1,3 @@
-/list.html.tmpl/1.2/Mon Aug 20 18:24:53 2007//TBUGZILLA-3_3_1
-/messages.html.tmpl/1.8/Wed Aug  6 12:06:42 2008//TBUGZILLA-3_3_1
+/list.html.tmpl/1.2/Mon Aug 20 18:24:53 2007//TBUGZILLA-3_3_2
+/messages.html.tmpl/1.9/Tue Jan 20 20:22:10 2009//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/admin/sanitycheck/CVS/Tag b/template/en/default/admin/sanitycheck/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/sanitycheck/CVS/Tag
+++ b/template/en/default/admin/sanitycheck/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/admin/sanitycheck/messages.html.tmpl b/template/en/default/admin/sanitycheck/messages.html.tmpl
index 2847a35e761ffe137c43cfa0aaffaf27aac2e8f8..b65f8eac545322d9fc098be5969fc42b2546fcd7 100644
--- a/template/en/default/admin/sanitycheck/messages.html.tmpl
+++ b/template/en/default/admin/sanitycheck/messages.html.tmpl
@@ -310,8 +310,13 @@
   [% END %]
 [% END %]
 
-[% san_message FILTER html %]
-
+[% USE Bugzilla %]
+[% IF Bugzilla.usage_mode == constants.USAGE_MODE_CMDLINE %]
+  [% san_message FILTER none %]
+[% ELSE %]
+  [%# Avoid the txt filter in message.txt.tmpl. %]
+  [% san_message FILTER html %]
+[% END %]
 
 [% BLOCK bug_list %]
   [% FOREACH bug_id = badbugs %]
diff --git a/template/en/default/admin/settings/CVS/Entries b/template/en/default/admin/settings/CVS/Entries
index 832d41a7041c915001283df2e44a0f8f5ef5278f..7d22b06cf59b84db9b73a2922fa173337c3f15c3 100644
--- a/template/en/default/admin/settings/CVS/Entries
+++ b/template/en/default/admin/settings/CVS/Entries
@@ -1,2 +1,2 @@
-/edit.html.tmpl/1.9/Sun Jan 27 23:14:25 2008//TBUGZILLA-3_3_1
+/edit.html.tmpl/1.9/Sun Jan 27 23:14:25 2008//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/admin/settings/CVS/Tag b/template/en/default/admin/settings/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/settings/CVS/Tag
+++ b/template/en/default/admin/settings/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/admin/users/CVS/Entries b/template/en/default/admin/users/CVS/Entries
index ab0d24837dd675ebd1696fc6a9e4a895e526b597..6531ccab75132a3c22645024fdf03822992f7be5 100644
--- a/template/en/default/admin/users/CVS/Entries
+++ b/template/en/default/admin/users/CVS/Entries
@@ -1,9 +1,9 @@
-/confirm-delete.html.tmpl/1.24/Mon Dec  1 01:48:24 2008//TBUGZILLA-3_3_1
-/create.html.tmpl/1.5/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_3_1
-/edit.html.tmpl/1.15/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_3_1
-/list.html.tmpl/1.6/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_3_1
-/listselectvars.html.tmpl/1.2/Mon Aug 20 18:24:54 2007//TBUGZILLA-3_3_1
-/responsibilities.html.tmpl/1.2/Mon Aug 20 18:24:54 2007//TBUGZILLA-3_3_1
-/search.html.tmpl/1.6/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_3_1
-/userdata.html.tmpl/1.13/Fri Aug  8 01:26:58 2008//TBUGZILLA-3_3_1
+/confirm-delete.html.tmpl/1.25/Fri Jan 23 22:22:12 2009//TBUGZILLA-3_3_2
+/create.html.tmpl/1.5/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_3_2
+/edit.html.tmpl/1.15/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_3_2
+/list.html.tmpl/1.6/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_3_2
+/listselectvars.html.tmpl/1.2/Mon Aug 20 18:24:54 2007//TBUGZILLA-3_3_2
+/responsibilities.html.tmpl/1.2/Mon Aug 20 18:24:54 2007//TBUGZILLA-3_3_2
+/search.html.tmpl/1.6/Mon Oct 22 21:42:01 2007//TBUGZILLA-3_3_2
+/userdata.html.tmpl/1.13/Fri Aug  8 01:26:58 2008//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/admin/users/CVS/Tag b/template/en/default/admin/users/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/users/CVS/Tag
+++ b/template/en/default/admin/users/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/admin/users/confirm-delete.html.tmpl b/template/en/default/admin/users/confirm-delete.html.tmpl
index 83d6ca4f6a77f90b77abdb372f56fc54c121e296..b61a995411d281b72989e295b80c53c2a90237f6 100644
--- a/template/en/default/admin/users/confirm-delete.html.tmpl
+++ b/template/en/default/admin/users/confirm-delete.html.tmpl
@@ -269,7 +269,7 @@
               one component
             [% ELSE %]
               [%+ component_cc %] components
-            [% END %]</a>.
+            [% END %].
             If you delete the user account, it will be removed from these CC lists.
           </li>
         [% END %]
diff --git a/template/en/default/admin/versions/CVS/Entries b/template/en/default/admin/versions/CVS/Entries
index 7396448922be41fed7ff977dd78f71d782552d6c..04e2b6df9ea5030af69afba60d2257262fdea635 100644
--- a/template/en/default/admin/versions/CVS/Entries
+++ b/template/en/default/admin/versions/CVS/Entries
@@ -1,7 +1,7 @@
-/confirm-delete.html.tmpl/1.8/Mon Aug 20 18:24:54 2007//TBUGZILLA-3_3_1
-/create.html.tmpl/1.7/Mon Aug 20 18:24:54 2007//TBUGZILLA-3_3_1
-/edit.html.tmpl/1.7/Mon Aug 20 18:24:55 2007//TBUGZILLA-3_3_1
-/footer.html.tmpl/1.4/Mon Aug 20 18:24:55 2007//TBUGZILLA-3_3_1
-/list.html.tmpl/1.5/Mon Aug 20 18:24:55 2007//TBUGZILLA-3_3_1
-/select-product.html.tmpl/1.4/Mon Aug 20 18:24:55 2007//TBUGZILLA-3_3_1
+/confirm-delete.html.tmpl/1.8/Mon Aug 20 18:24:54 2007//TBUGZILLA-3_3_2
+/create.html.tmpl/1.7/Mon Aug 20 18:24:54 2007//TBUGZILLA-3_3_2
+/edit.html.tmpl/1.7/Mon Aug 20 18:24:55 2007//TBUGZILLA-3_3_2
+/footer.html.tmpl/1.4/Mon Aug 20 18:24:55 2007//TBUGZILLA-3_3_2
+/list.html.tmpl/1.5/Mon Aug 20 18:24:55 2007//TBUGZILLA-3_3_2
+/select-product.html.tmpl/1.4/Mon Aug 20 18:24:55 2007//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/admin/versions/CVS/Tag b/template/en/default/admin/versions/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/versions/CVS/Tag
+++ b/template/en/default/admin/versions/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/admin/workflow/CVS/Entries b/template/en/default/admin/workflow/CVS/Entries
index adf64f4170bbc6993f49c0a1c6e52792f3ac1b5e..67aaacab6e9fa3305bdcbe18e351d6f29d29f6ab 100644
--- a/template/en/default/admin/workflow/CVS/Entries
+++ b/template/en/default/admin/workflow/CVS/Entries
@@ -1,3 +1,3 @@
-/comment.html.tmpl/1.4/Mon Oct  6 21:09:53 2008//TBUGZILLA-3_3_1
-/edit.html.tmpl/1.6/Mon Oct  6 21:09:53 2008//TBUGZILLA-3_3_1
+/comment.html.tmpl/1.4/Mon Oct  6 21:09:53 2008//TBUGZILLA-3_3_2
+/edit.html.tmpl/1.6/Mon Oct  6 21:09:53 2008//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/admin/workflow/CVS/Tag b/template/en/default/admin/workflow/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/admin/workflow/CVS/Tag
+++ b/template/en/default/admin/workflow/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/attachment/CVS/Entries b/template/en/default/attachment/CVS/Entries
index e700999fa974ab2fc4a698a622be52279879d451..1fd6a07cd114fd9eda00e966c8a78fdcaec90b12 100644
--- a/template/en/default/attachment/CVS/Entries
+++ b/template/en/default/attachment/CVS/Entries
@@ -1,17 +1,17 @@
-/cancel-create-dupe.html.tmpl/1.2/Fri Jun 27 19:56:25 2008//TBUGZILLA-3_3_1
-/choose.html.tmpl/1.6/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1
-/confirm-delete.html.tmpl/1.6/Sun Nov 11 22:03:17 2007//TBUGZILLA-3_3_1
-/content-types.html.tmpl/1.6/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1
-/create.html.tmpl/1.37/Thu Sep 18 18:56:26 2008//TBUGZILLA-3_3_1
-/created.html.tmpl/1.22/Wed Sep 17 23:49:01 2008//TBUGZILLA-3_3_1
-/createformcontents.html.tmpl/1.2/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1
-/delete_reason.txt.tmpl/1.3/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1
-/diff-file.html.tmpl/1.7/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1
-/diff-footer.html.tmpl/1.3/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1
-/diff-header.html.tmpl/1.22/Tue Dec  9 18:10:08 2008//TBUGZILLA-3_3_1
-/edit.html.tmpl/1.54/Thu Sep 18 18:56:26 2008//TBUGZILLA-3_3_1
-/list.html.tmpl/1.38/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1
-/midair.html.tmpl/1.2/Fri Feb  8 23:19:10 2008//TBUGZILLA-3_3_1
-/show-multiple.html.tmpl/1.25/Tue Mar 18 08:31:51 2008//TBUGZILLA-3_3_1
-/updated.html.tmpl/1.20/Wed Sep 17 23:49:01 2008//TBUGZILLA-3_3_1
+/cancel-create-dupe.html.tmpl/1.2/Fri Jun 27 19:56:25 2008//TBUGZILLA-3_3_2
+/choose.html.tmpl/1.6/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_2
+/confirm-delete.html.tmpl/1.6/Sun Nov 11 22:03:17 2007//TBUGZILLA-3_3_2
+/content-types.html.tmpl/1.6/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_2
+/create.html.tmpl/1.37/Thu Sep 18 18:56:26 2008//TBUGZILLA-3_3_2
+/created.html.tmpl/1.22/Wed Sep 17 23:49:01 2008//TBUGZILLA-3_3_2
+/createformcontents.html.tmpl/1.2/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_2
+/delete_reason.txt.tmpl/1.3/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_2
+/diff-file.html.tmpl/1.7/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_2
+/diff-footer.html.tmpl/1.3/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_2
+/diff-header.html.tmpl/1.22/Tue Dec  9 18:10:08 2008//TBUGZILLA-3_3_2
+/edit.html.tmpl/1.56/Mon Feb  2 19:10:35 2009//TBUGZILLA-3_3_2
+/list.html.tmpl/1.40/Mon Feb  2 19:10:35 2009//TBUGZILLA-3_3_2
+/midair.html.tmpl/1.2/Fri Feb  8 23:19:10 2008//TBUGZILLA-3_3_2
+/show-multiple.html.tmpl/1.25/Tue Mar 18 08:31:51 2008//TBUGZILLA-3_3_2
+/updated.html.tmpl/1.20/Wed Sep 17 23:49:01 2008//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/attachment/CVS/Tag b/template/en/default/attachment/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/attachment/CVS/Tag
+++ b/template/en/default/attachment/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/attachment/edit.html.tmpl b/template/en/default/attachment/edit.html.tmpl
index 2550d4f468a563c3fa8a83f671589b9db45032bd..10c6153235451307a8ec9386e717da3bdf9c8845 100644
--- a/template/en/default/attachment/edit.html.tmpl
+++ b/template/en/default/attachment/edit.html.tmpl
@@ -39,6 +39,9 @@
   doc_section = "attachments.html"
 %]
 
+[%# No need to display the Diff button and iframe if the attachment is not a patch. %]
+[% patchviewerinstalled = (patchviewerinstalled && attachment.ispatch) %]
+
 <script type="text/javascript">
   <!--
   var prev_mode = 'raw';
@@ -47,37 +50,7 @@
   var has_viewed_as_diff = 0;
   function editAsComment()
     {
-      // Get the content of the document as a string.
-      var viewFrame = document.getElementById('viewFrame');
-      var aSerializer = new XMLSerializer();
-      var contentDocument = viewFrame.contentDocument;
-      var theContent = aSerializer.serializeToString(contentDocument);
-
-      // If this is a plaintext document, remove cruft that Mozilla adds
-      // because it treats it as an HTML document with a big PRE section.
-      // http://bugzilla.mozilla.org/show_bug.cgi?id=86012
-      var contentType = '[% attachment.contenttype FILTER js %]';
-      if ( contentType == 'text/plain' )
-        {
-          theContent = theContent.replace( /^<html><head\/?><body><pre>/i , "" );
-          theContent = theContent.replace( /<\/pre><\/body><\/html>$/i , "" );
-          theContent = theContent.replace( /&lt;/gi , "<" );
-          theContent = theContent.replace( /&gt;/gi , ">" );
-          theContent = theContent.replace( /&amp;/gi , "&" );
-        }
-
-      // Add mail-style quote indicators (>) to the beginning of each line.
-      // ".*\n" matches lines that end with a newline, while ".+" matches
-      // the rare situation in which the last line of a file does not end
-      // with a newline.
-      theContent = theContent.replace( /(.*\n|.+)/g , ">$1" );
-
       switchToMode('edit');
-
-      // Copy the contents of the diff into the textarea
-      var editFrame = document.getElementById('editFrame');
-      editFrame.value = theContent + "\n\n";
-
       has_edited = 1;
     }
   function undoEditAsComment()
@@ -297,6 +270,17 @@
             [% END %]
           </a>
         </td>
+      [% ELSIF !Param("allow_attachment_display") %]
+        <td id="view_disabled" width="50%">
+          <p><b>
+            The attachment is not viewable in your browser due to security
+            restrictions enabled by [% terms.Bugzilla %].
+          </b></p>
+          <p><b>
+            In order to view the attachment, you first have to
+            <a href="attachment.cgi?id=[% attachment.id %]">download it</a>.
+          </b></p>
+        </td>
       [% ELSIF attachment.is_viewable %]
         <td width="75%">
           [% INCLUDE global/textarea.html.tmpl
@@ -306,6 +290,8 @@
             minrows = 10
             cols    = 80
             wrap    = 'soft'
+            defaultcontent = (attachment.contenttype.match('^text\/')) ?
+                               attachment.data.replace('(.*\n|.+)', '>$1') : undef
           %]
           <iframe id="viewFrame" src="attachment.cgi?id=[% attachment.id %]" style="height: 400px; width: 100%;">
             <b>You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
diff --git a/template/en/default/attachment/list.html.tmpl b/template/en/default/attachment/list.html.tmpl
index 054b684551c91dde8c075508972ef4363e5f3409..08c575dbf83a95fac2b39d722e96d97d017f7aa6 100644
--- a/template/en/default/attachment/list.html.tmpl
+++ b/template/en/default/attachment/list.html.tmpl
@@ -95,10 +95,7 @@
                title="Go to the comment associated with the attachment">
               [%- attachment.attached FILTER time %]</a>,
 
-            <a href="mailto:[% attachment.attacher.email FILTER html %]"
-               title="Write an email to the creator of the attachment">
-              [% attachment.attacher.name || attachment.attacher.login FILTER html %]
-            </a>
+            [% INCLUDE global/user.html.tmpl who = attachment.attacher %]
           </span>
         </td>
 
@@ -134,9 +131,11 @@
       [% IF attachments.size %]
         <span class="bz_attach_view_hide">
           [% IF obsolete_attachments %]
-            <a href="#a0" onClick="return toggle_display(this);">Hide Obsolete</a> ([% obsolete_attachments %]) |
+            <a href="#a0" onClick="return toggle_display(this);">Hide Obsolete</a> ([% obsolete_attachments %])
+          [% END %]
+          [% IF Param("allow_attachment_display") %]
+            <a href="attachment.cgi?bugid=[% bugid %]&amp;action=viewall">View All</a>
           [% END %]
-          <a href="attachment.cgi?bugid=[% bugid %]&amp;action=viewall">View All</a>
         </span>
       [% END %]
       <a href="attachment.cgi?bugid=[% bugid %]&amp;action=enter">Add an attachment</a>
diff --git a/template/en/default/bug/CVS/Entries b/template/en/default/bug/CVS/Entries
index bfd754e228d71cf6e1ec7b3676e29f14f2be07ec..41600e9e742c2a72d8d8a5829c92c550ae4990ac 100644
--- a/template/en/default/bug/CVS/Entries
+++ b/template/en/default/bug/CVS/Entries
@@ -1,17 +1,17 @@
-/choose.html.tmpl/1.8/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1
-/comments.html.tmpl/1.39/Wed Nov 19 05:33:07 2008//TBUGZILLA-3_3_1
-/dependency-graph.html.tmpl/1.14/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_1
-/dependency-tree.html.tmpl/1.30/Fri Aug  8 01:27:14 2008//TBUGZILLA-3_3_1
-/edit.html.tmpl/1.144/Mon Dec 29 00:02:16 2008//TBUGZILLA-3_3_1
-/field-events.js.tmpl/1.1/Fri Nov  7 11:34:52 2008//TBUGZILLA-3_3_1
-/field.html.tmpl/1.21/Fri Nov  7 11:34:52 2008//TBUGZILLA-3_3_1
-/knob.html.tmpl/1.40/Wed Nov 12 14:11:30 2008//TBUGZILLA-3_3_1
-/navigate.html.tmpl/1.11/Sun Jan 27 19:21:16 2008//TBUGZILLA-3_3_1
-/show-multiple.html.tmpl/1.43/Tue Jun  3 22:47:20 2008//TBUGZILLA-3_3_1
-/show.html.tmpl/1.26/Wed Sep 17 23:49:05 2008//TBUGZILLA-3_3_1
-/show.xml.tmpl/1.25/Wed Nov 26 01:03:06 2008//TBUGZILLA-3_3_1
-/summarize-time.html.tmpl/1.13/Wed Aug 27 23:26:23 2008//TBUGZILLA-3_3_1
-/time.html.tmpl/1.3/Mon Aug 20 18:24:58 2007//TBUGZILLA-3_3_1
+/choose.html.tmpl/1.8/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_2
+/comments.html.tmpl/1.40/Thu Jan 29 21:22:26 2009//TBUGZILLA-3_3_2
+/dependency-graph.html.tmpl/1.14/Mon Aug 20 18:24:57 2007//TBUGZILLA-3_3_2
+/dependency-tree.html.tmpl/1.31/Thu Jan 29 21:22:26 2009//TBUGZILLA-3_3_2
+/edit.html.tmpl/1.151/Mon Feb  2 18:34:39 2009//TBUGZILLA-3_3_2
+/field-events.js.tmpl/1.1/Fri Nov  7 11:34:52 2008//TBUGZILLA-3_3_2
+/field.html.tmpl/1.22/Thu Jan 22 04:08:50 2009//TBUGZILLA-3_3_2
+/knob.html.tmpl/1.40/Wed Nov 12 14:11:30 2008//TBUGZILLA-3_3_2
+/navigate.html.tmpl/1.11/Sun Jan 27 19:21:16 2008//TBUGZILLA-3_3_2
+/show-multiple.html.tmpl/1.44/Thu Jan 29 21:22:26 2009//TBUGZILLA-3_3_2
+/show.html.tmpl/1.26/Wed Sep 17 23:49:05 2008//TBUGZILLA-3_3_2
+/show.xml.tmpl/1.26/Thu Jan 29 21:22:26 2009//TBUGZILLA-3_3_2
+/summarize-time.html.tmpl/1.14/Thu Jan 15 22:35:08 2009//TBUGZILLA-3_3_2
+/time.html.tmpl/1.3/Mon Aug 20 18:24:58 2007//TBUGZILLA-3_3_2
 D/activity////
 D/create////
 D/process////
diff --git a/template/en/default/bug/CVS/Tag b/template/en/default/bug/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/bug/CVS/Tag
+++ b/template/en/default/bug/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/bug/activity/CVS/Entries b/template/en/default/bug/activity/CVS/Entries
index 8a4671fea420fa601e3d389c07bf62c354c675be..41e8cce084935fb03bc184f428372cb156ad81dc 100644
--- a/template/en/default/bug/activity/CVS/Entries
+++ b/template/en/default/bug/activity/CVS/Entries
@@ -1,3 +1,3 @@
-/show.html.tmpl/1.10/Wed Oct  3 13:38:34 2007//TBUGZILLA-3_3_1
-/table.html.tmpl/1.16/Wed Apr  2 00:23:05 2008//TBUGZILLA-3_3_1
+/show.html.tmpl/1.10/Wed Oct  3 13:38:34 2007//TBUGZILLA-3_3_2
+/table.html.tmpl/1.17/Thu Jan 29 21:22:27 2009//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/bug/activity/CVS/Tag b/template/en/default/bug/activity/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/bug/activity/CVS/Tag
+++ b/template/en/default/bug/activity/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/bug/activity/table.html.tmpl b/template/en/default/bug/activity/table.html.tmpl
index b676eb1c9d021e24925c53e2dcfddd55fc4e59f5..8e44230ae117d934331178d513addc5a4bd6662c 100644
--- a/template/en/default/bug/activity/table.html.tmpl
+++ b/template/en/default/bug/activity/table.html.tmpl
@@ -61,7 +61,7 @@
     [% FOREACH operation = operations %]
       <tr>
         <td rowspan="[% operation.changes.size %]" valign="top">
-          [% operation.who FILTER html %]
+          [% operation.who FILTER email FILTER html %]
         </td>
         <td rowspan="[% operation.changes.size %]" valign="top">
           [% operation.when FILTER time %]
@@ -89,7 +89,7 @@
                          change.fieldname == 'dependson' %]
                   [% change.removed FILTER bug_list_link FILTER none %]
                 [% ELSE %]
-                  [% change.removed FILTER html %]
+                  [% change.removed FILTER email FILTER html %]
                 [% END %]
               [% ELSE %]
                 &nbsp;
@@ -109,7 +109,7 @@
                          change.fieldname == 'dependson' %]
                   [% change.added FILTER bug_list_link FILTER none %]
                 [% ELSE %]
-                  [% change.added FILTER html %]
+                  [% change.added FILTER email FILTER html %]
                 [% END %]
               [% ELSE %]
                 &nbsp;
diff --git a/template/en/default/bug/comments.html.tmpl b/template/en/default/bug/comments.html.tmpl
index 1e8ee8c546ae14c552cc4c17ca0029d012435bce..3a30ca5b2868e30787cddd667026c5d1ab7cc0aa 100644
--- a/template/en/default/bug/comments.html.tmpl
+++ b/template/en/default/bug/comments.html.tmpl
@@ -188,11 +188,7 @@
         </span>
 
         <span class="bz_comment_user">
-          <span class="vcard">
-            <a class="fn email" 
-               href="mailto:[% comment.author.email FILTER html %]">
-              [% (comment.author.name || comment.author.login) FILTER html %]</a>
-          </span>
+          [% INCLUDE global/user.html.tmpl who = comment.author %]
         </span>
 
         <span class="bz_comment_user_images">
@@ -226,7 +222,8 @@
 [% END %]
 <pre class="bz_comment_text" 
      [% ' id="comment_text_' _ count _ '"' IF mode == "edit" %]>
-  [%- wrapped_comment FILTER quoteUrls(bug.bug_id, comment.already_wrapped) -%]
+  [%- wrapped_comment FILTER email 
+                      FILTER quoteUrls(bug.bug_id, comment.already_wrapped) -%]
 </pre>
     </div>
   [% END %]
diff --git a/template/en/default/bug/create/CVS/Entries b/template/en/default/bug/create/CVS/Entries
index d636cbc552830efc54491ef6a988eee8c235e780..50cd419f9c32ddbcb881ad3cbeb7b2950870fd5e 100644
--- a/template/en/default/bug/create/CVS/Entries
+++ b/template/en/default/bug/create/CVS/Entries
@@ -1,9 +1,9 @@
-/comment-guided.txt.tmpl/1.7/Thu Jan  1 23:11:59 2009//TBUGZILLA-3_3_1
-/comment.txt.tmpl/1.5/Mon Aug 20 18:25:00 2007//TBUGZILLA-3_3_1
-/confirm-create-dupe.html.tmpl/1.4/Mon Aug 20 18:25:00 2007//TBUGZILLA-3_3_1
-/create-guided.html.tmpl/1.44/Mon Dec 29 21:17:21 2008//TBUGZILLA-3_3_1
-/create.html.tmpl/1.91/Mon Dec 29 00:02:17 2008//TBUGZILLA-3_3_1
-/created.html.tmpl/1.15/Thu Jan  1 19:16:48 2009//TBUGZILLA-3_3_1
-/make-template.html.tmpl/1.10/Mon Aug 20 18:25:00 2007//TBUGZILLA-3_3_1
-/user-message.html.tmpl/1.5/Mon Aug 20 18:25:00 2007//TBUGZILLA-3_3_1
+/comment-guided.txt.tmpl/1.7/Thu Jan  1 23:11:59 2009//TBUGZILLA-3_3_2
+/comment.txt.tmpl/1.5/Mon Aug 20 18:25:00 2007//TBUGZILLA-3_3_2
+/confirm-create-dupe.html.tmpl/1.4/Mon Aug 20 18:25:00 2007//TBUGZILLA-3_3_2
+/create-guided.html.tmpl/1.44/Mon Dec 29 21:17:21 2008//TBUGZILLA-3_3_2
+/create.html.tmpl/1.91/Mon Dec 29 00:02:17 2008//TBUGZILLA-3_3_2
+/created.html.tmpl/1.15/Thu Jan  1 19:16:48 2009//TBUGZILLA-3_3_2
+/make-template.html.tmpl/1.10/Mon Aug 20 18:25:00 2007//TBUGZILLA-3_3_2
+/user-message.html.tmpl/1.5/Mon Aug 20 18:25:00 2007//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/bug/create/CVS/Tag b/template/en/default/bug/create/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/bug/create/CVS/Tag
+++ b/template/en/default/bug/create/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/bug/dependency-tree.html.tmpl b/template/en/default/bug/dependency-tree.html.tmpl
index adabf8ea2f914acd000d4a601cd19405b72b8db6..347478bfcf96d58e83eea6d5b68580e5fcf7164b 100644
--- a/template/en/default/bug/dependency-tree.html.tmpl
+++ b/template/en/default/bug/dependency-tree.html.tmpl
@@ -154,7 +154,7 @@
 
 [% BLOCK buginfo %]
   [% get_status(bug.bug_status) FILTER html -%] [%+ get_resolution(bug.resolution) FILTER html %];
-  [%-%] assigned to [% bug.assigned_to.login FILTER html %]
+  [%-%] assigned to [% bug.assigned_to.login FILTER email FILTER html %]
   [%-%][% "; Target: " _ bug.target_milestone IF bug.target_milestone %]
 [% END %]
 
diff --git a/template/en/default/bug/edit.html.tmpl b/template/en/default/bug/edit.html.tmpl
index 4cb5017e12b03fe26c78c35424c935acf9505460..80c5745fcef6a103313227ea5d12c5af74f0e24d 100644
--- a/template/en/default/bug/edit.html.tmpl
+++ b/template/en/default/bug/edit.html.tmpl
@@ -1,4 +1,4 @@
-[%# The contents of this file are subject to the Mozilla Public
+[%# The contents of this file are subject to the Mozilla Public
   # License Version 1.1 (the "License"); you may not use this file
   # except in compliance with the License. You may obtain a copy of
   # the License at http://www.mozilla.org/MPL/
@@ -144,6 +144,7 @@
   <input type="hidden" name="delta_ts" value="[% bug.delta_ts %]">
   <input type="hidden" name="longdesclength" value="[% bug.longdescs.size %]">
   <input type="hidden" name="id" value="[% bug.bug_id %]">
+  <input type="hidden" name="token" value="[% issue_hash_token([bug.id, bug.delta_ts]) FILTER html %]">
 
   [% PROCESS section_title %]
   <table>
@@ -188,7 +189,9 @@
          
          [% PROCESS section_cclist %]
          
-         [% PROCESS section_spacer %] 
+         [% PROCESS section_spacer %]
+
+         [% PROCESS section_see_also %] 
          
          [% PROCESS section_customfields %]
          
@@ -252,13 +255,8 @@
                      cols      = constants.COMMENT_COLS
           %]
           <br>
-          <div id="knob-buttons">
-            <input type="submit" value="Commit" id="commit">
-            [% IF bug.user.canmove %]
-              <input type="submit" name="action" id="action" value="[% Param("move-button-text") %]">
-            [% END %]
-          </div>
-          <table class="status">
+          [% PROCESS commit_button id=""%]
+          <table class="status" cellspacing="0" cellpadding="0">
             <tr>
               <td class="field_label">
                 <b><a href="page.cgi?id=fields.html#status">Status</a></b>:
@@ -301,7 +299,7 @@
 [% BLOCK section_title %]
   [%# That's the main table, which contains all editable fields. %]
   <div class="bz_alias_short_desc_container">
-    
+      [% PROCESS commit_button id="_top"%]
      <a href="show_bug.cgi?id=[% bug.bug_id %]">
         <b>[% terms.Bug %]&nbsp;[% bug.bug_id FILTER html %]</b></a> - 
      <span id="summary_alias_container" class="bz_default_hidden"> 
@@ -522,7 +520,7 @@
         [% IF bug.check_can_change_field("assigned_to", 0, 1) %]
           <div id="bz_assignee_edit_container" class="bz_default_hidden">
             <span>
-              [% INCLUDE user_identity user=> bug.assigned_to %]
+              [% INCLUDE global/user.html.tmpl who = bug.assigned_to %]
               (<a href="#" id="bz_assignee_edit_action">edit</a>)
             </span>
           </div>
@@ -546,7 +544,7 @@
            initDefaultCheckbox('assignee');                  
           </script>
         [% ELSE %]
-          [% INCLUDE user_identity user => bug.assigned_to %]
+          [% INCLUDE global/user.html.tmpl who = bug.assigned_to %]
         [% END %]
       </td>
     </tr>
@@ -557,13 +555,12 @@
         <label for="qa_contact" accesskey="q"><b><u>Q</u>A Contact</b></label>:
       </td>
       <td>
-
         [% IF bug.check_can_change_field("qa_contact", 0, 1) %]
           [% IF bug.qa_contact != "" %]
            <div id="bz_qa_contact_edit_container" class="bz_default_hidden">
             <span>
               <span id="bz_qa_contact_edit_display">
-              [% INCLUDE user_identity user=> bug.qa_contact %]</span>
+              [% INCLUDE global/user.html.tmpl who = bug.qa_contact %]</span>
               (<a href="#" id="bz_qa_contact_edit_action">edit</a>)
             </span>
           </div>
@@ -591,7 +588,7 @@
             initDefaultCheckbox('qa_contact');
           </script>
         [% ELSE %]
-          [% INCLUDE user_identity user => bug.qa_contact %]
+          [% INCLUDE global/user.html.tmpl who = bug.qa_contact %]
         [% END %]
       </td>
     </tr>
@@ -701,22 +698,25 @@
 
 [% BLOCK section_restrict_visibility %]
   [% RETURN UNLESS bug.groups.size %]
-  <table class="bz_group_visibility_section">
-    <tr>
-      <td class="field_label">
-        <label id="bz_restrict_group_visibility_label"><b> Restrict Group Visibility</b>:</label>
-      </td>
-      <td>
-        [% inallgroups = 1 %]
-        [% inagroup = 0 %]
-        [% FOREACH group = bug.groups %]
-          [% SET inallgroups = 0 IF NOT group.ingroup %]
-          [% SET inagroup = 1 IF group.ison %]
 
-          [% NEXT IF group.mandatory %]
+  [% inallgroups = 1 %]
+  [% inagroup = 0 %]
+  [% emitted_description = 0 %]
+
+  [% FOREACH group = bug.groups %]
+    [% SET inallgroups = 0 IF NOT group.ingroup %]
+    [% SET inagroup = 1 IF group.ison %]
 
-          [% IF NOT emitted_description %]
-            [% emitted_description = 1 %]
+    [% NEXT IF group.mandatory %]
+
+    [% IF NOT emitted_description %]
+      [% emitted_description = 1 %]
+      <table class="bz_group_visibility_section">
+        <tr>
+          <td class="field_label">
+            <label id="bz_restrict_group_visibility_label"><b>Restrict Group Visibility</b>:</label>
+          </td>
+          <td>
             <div id="bz_restrict_group_visibility_help">
               <b>Only users in all of the selected groups can view this [% terms.bug %]:</b>
               <br>
@@ -724,30 +724,33 @@
                 (Unchecking all boxes makes this a more public [% terms.bug %].)
               </small>
             </div>
-          [% END %]
+    [% END %]
 
-          [% IF group.ingroup %]
-            <input type="hidden" name="defined_bit-[% group.bit %]" value="1">
-          [% END %]
-          <input type="checkbox" value="1"
-                 name="bit-[% group.bit %]" id="bit-[% group.bit %]"
-                 [% " checked=\"checked\"" IF group.ison %]
-                 [% " disabled=\"disabled\"" IF NOT group.ingroup %]>
-          <label for="bit-[% group.bit %]">[% group.description FILTER html_light %]</label>
-          <br>
-        [% END %]
+    [% IF group.ingroup %]
+      <input type="hidden" name="defined_bit-[% group.bit %]" value="1">
+    [% END %]
+    <input type="checkbox" value="1" name="bit-[% group.bit %]" id="bit-[% group.bit %]"
+           [% ' checked="checked"' IF group.ison %]
+           [% ' disabled="disabled"' IF NOT group.ingroup %]>
+    <label for="bit-[% group.bit %]">[% group.description FILTER html_light %]</label>
+    <br>
+  [% END %]
 
-        [% IF NOT inallgroups %]
-          <b>
-            Only members of a group can change the visibility of [% terms.abug %] for
-            that group.
-          </b>
-          <br>
-        [% END %]
+  [% IF emitted_description %]
+    [% IF NOT inallgroups %]
+      <b>Only members of a group can change the visibility of [% terms.abug %] for that group.</b>
+      <br>
+    [% END %]
       </td>
     </tr>
+    [% "</table>" IF NOT inagroup %]
+  [% END %]
 
-    [% IF inagroup %]
+  [% IF inagroup %]
+    [% IF NOT emitted_description %]
+      [% emitted_description = 1 %]
+      <table class="bz_group_visibility_section">
+    [% END %]
     <tr>
       <td class="field_label">
         <label id="bz_enable_role_visibility_label"><b>Enable Role Visibility</b>:</label>
@@ -791,8 +794,8 @@
         </div>
       </td>
     </tr>
-    [% END %]
-  </table>  
+  </table>
+  [% END %]
 [% END %]
 
 [%############################################################################%]
@@ -805,7 +808,7 @@
       <b>Reported</b>:
     </td>
     <td>
-     [% bug.creation_ts FILTER time %] by [% INCLUDE user_identity user => bug.reporter %]
+     [% bug.creation_ts FILTER time %] by [% INCLUDE global/user.html.tmpl who = bug.reporter %]
     </td>
   </tr>
   
@@ -825,11 +828,10 @@
 [%# Block for CC LIST                                                        #%]
 [%############################################################################%]
 [% BLOCK section_cclist %]
-  [% IF user.id %]
     <tr>
-        <td class="field_label">
-          <label for="newcc" accesskey="a"><b>CC List</b>:</label>
-        </td>
+      <td class="field_label">
+        <label for="newcc" accesskey="a"><b>CC List</b>:</label>
+      </td>
       <td>
         [% IF user.id %]
           [% IF NOT bug.cc || NOT bug.cc.contains(user.login) %]
@@ -859,35 +861,35 @@
           [% END %]
         [% END %]
         <span id="cc_edit_area_showhide_container" class="bz_default_hidden">
-          (<a href="#" id="cc_edit_area_showhide">edit</a>)
+          (<a href="#" id="cc_edit_area_showhide">[% IF user.id %]edit[% ELSE %]show[% END %]</a>)
         </span>
         <div id="cc_edit_area">
-          <div>
+          <br>
+          [% IF user.id %]
             <div>
-              <label for="cc">
-                <b>Add</b>
-              </label>
+              <div><label for="cc"><b>Add</b></label></div>
+              [% INCLUDE global/userselect.html.tmpl
+                  id => "newcc"
+                  name => "newcc"
+                  size => 30
+                  multiple => 5
+                %]
             </div>
-            [% INCLUDE global/userselect.html.tmpl
-                id => "newcc"
-                name => "newcc"
-                size => 30
-                multiple => 5
-              %]
-          </div>
-        [% IF bug.cc %]
-          <select id="cc" name="cc" multiple="multiple" size="5">
-          [% FOREACH c = bug.cc %]
-            <option value="[% c FILTER html %]">[% c FILTER html %]</option>
           [% END %]
-          </select>
-          [% IF user.id %]
-            <br>
-            <input type="checkbox" id="removecc" name="removecc">
-            [%%]<label for="removecc">Remove selected CCs</label>
-            <br>
+          [% IF bug.cc %]
+            <select id="cc" name="cc" multiple="multiple" size="5">
+              [% FOREACH c = bug.cc %]
+                <option value="[% c FILTER email FILTER html %]">
+                  [% c FILTER email FILTER html %]</option>
+              [% END %]
+            </select>
+            [% IF user.id %]
+              <br>
+              <input type="checkbox" id="removecc" name="removecc">
+              [%%]<label for="removecc">Remove selected CCs</label>
+              <br>
+            [% END %]
           [% END %]
-        [% END %]
         </div>
         <script type="text/javascript">
           hideEditableField( 'cc_edit_area_showhide_container', 
@@ -898,7 +900,19 @@
         </script>
       </td>
     </tr>
-  [% END %]
+[% END %]
+
+[%############################################################################%]
+[%# Block for See Also                                                       #%]
+[%############################################################################%]
+[% BLOCK section_see_also %]
+  <tr>
+    [% INCLUDE bug/field.html.tmpl 
+         field    = bug_fields.see_also
+         value    = bug.see_also
+         editable = bug.check_can_change_field('see_also', 0, 1)
+    %]
+  </tr>
 [% END %]
 
 [%############################################################################%]
@@ -993,7 +1007,7 @@
     </span>
     
     [% FOREACH depbug = bug.${dep.fieldname} %]
-      [% depbug FILTER bug_link(depbug) FILTER none %][% " " %]
+      [% depbug FILTER bug_link(depbug, use_alias => 1) FILTER none %][% " " %]
     [% END %]
     [% IF bug.check_can_change_field(dep.fieldname, 0, 1) %]
       <span id="[% dep.fieldname %]_edit_container" class="edit_me bz_default_hidden" >
@@ -1146,23 +1160,11 @@
   [% value = undef %]
   [% spellcheck = undef %]
 [% END %]
-
-[%############################################################################%]
-[%# Block for user identities. Wraps the information inside of an hCard.     #%]
-[%############################################################################%]
-
-[% BLOCK user_identity %]
-  <span class="vcard">
-    [% FILTER collapse %]
-      [% IF user.name %]
-        <a class="email" href="mailto:[% user.email FILTER html %]" 
-           title="[% user.email FILTER html %]"
-          ><span class="fn">[% user.name FILTER html %]</span
-        ></a>
-      [% ELSE %]
-        <a class="fn email" href="mailto:[% user.email FILTER html %]">
-          [% user.email FILTER html %]</a>
-      [% END %]
-    [% END %]</span>
+[% BLOCK commit_button %]
+  <div class="knob-buttons">
+    <input type="submit" value="Commit" id="commit[% id FILTER css_class_quote %]">
+    [% IF bug.user.canmove %]
+      <input type="submit" name="action" id="action[% id FILTER css_class_quote %]" value="[% Param("move-button-text") %]">
+    [% END %]
+  </div>
 [% END %]
-
diff --git a/template/en/default/bug/field.html.tmpl b/template/en/default/bug/field.html.tmpl
index d29aaa305c8491934ddd8ad1c9d0c62de9184106..04443579eb138b966df11ad42d26d899e0ca8344 100644
--- a/template/en/default/bug/field.html.tmpl
+++ b/template/en/default/bug/field.html.tmpl
@@ -164,6 +164,23 @@
        [% INCLUDE global/textarea.html.tmpl
            id = field.name name = field.name minrows = 4 maxrows = 8
            cols = 60 defaultcontent = value %]
+     [% CASE constants.FIELD_TYPE_BUG_URLS %]
+       [% '<ul class="bug_urls">' IF value.size %]
+       [% FOREACH url = value %]
+         <li>
+           <a href="[% url FILTER html %]">[% url FILTER html %]</a>
+           <label><input type="checkbox" value="[% url FILTER html %]"
+                         name="remove_[% field.name FILTER html %]">
+             Remove</label>
+         </li>
+       [% END %]
+       [% '</ul>' IF value.size %]
+
+       <label for="[% field.name FILTER html %]">
+         <strong>Add [% terms.Bug %] URLs:</strong>
+       </label><br>
+       <input type="text" id="[% field.name FILTER html %]" 
+              name="[% field.name FILTER html %]" size="40">
   [% END %]
 [% ELSIF field.type == constants.FIELD_TYPE_TEXTAREA %]
   <div class="uneditable_textarea">[% value FILTER wrap_comment(60)
diff --git a/template/en/default/bug/process/CVS/Entries b/template/en/default/bug/process/CVS/Entries
index de5da073f659c16d8b9d5c47b831e5dbdd9ab764..915b182c4d2c2709a97a9f22873d3c37342923d5 100644
--- a/template/en/default/bug/process/CVS/Entries
+++ b/template/en/default/bug/process/CVS/Entries
@@ -1,7 +1,7 @@
-/bugmail.html.tmpl/1.8/Mon Aug 20 18:25:01 2007//TBUGZILLA-3_3_1
-/confirm-duplicate.html.tmpl/1.12/Mon Aug 20 18:25:01 2007//TBUGZILLA-3_3_1
-/header.html.tmpl/1.11/Wed Sep 17 23:49:07 2008//TBUGZILLA-3_3_1
-/midair.html.tmpl/1.23/Thu Dec 18 15:42:45 2008//TBUGZILLA-3_3_1
-/results.html.tmpl/1.12/Mon Aug 20 18:25:01 2007//TBUGZILLA-3_3_1
-/verify-new-product.html.tmpl/1.27/Fri Oct  3 01:53:09 2008//TBUGZILLA-3_3_1
+/bugmail.html.tmpl/1.8/Mon Aug 20 18:25:01 2007//TBUGZILLA-3_3_2
+/confirm-duplicate.html.tmpl/1.12/Mon Aug 20 18:25:01 2007//TBUGZILLA-3_3_2
+/header.html.tmpl/1.11/Wed Sep 17 23:49:07 2008//TBUGZILLA-3_3_2
+/midair.html.tmpl/1.23/Thu Dec 18 15:42:45 2008//TBUGZILLA-3_3_2
+/results.html.tmpl/1.12/Mon Aug 20 18:25:01 2007//TBUGZILLA-3_3_2
+/verify-new-product.html.tmpl/1.27/Fri Oct  3 01:53:09 2008//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/bug/process/CVS/Tag b/template/en/default/bug/process/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/bug/process/CVS/Tag
+++ b/template/en/default/bug/process/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/bug/show-multiple.html.tmpl b/template/en/default/bug/show-multiple.html.tmpl
index 173d98e924bd44cb0bbd58c8e1c4479b9726b899..f1a5cc466014134b20e8c1e5c6c325f200c25e98 100644
--- a/template/en/default/bug/show-multiple.html.tmpl
+++ b/template/en/default/bug/show-multiple.html.tmpl
@@ -336,12 +336,12 @@
       <th class="rightcell">[% field_descs.cc FILTER html %]:</th>
       <td>
         [% FOREACH c = bug.cc %]
-          [% c FILTER html %][% ", " IF not loop.last() %]
+          [% c FILTER email FILTER html %][% ", " IF not loop.last() %]
         [% END %]
     [% ELSIF name == "reporter" || name == "assigned_to" 
              || name == "qa_contact" %]
       <th class="rightcell">[% field_descs.${name} FILTER html %]:</th>
-      <td>[% bug.${name}.identity FILTER html %]</td>
+      <td>[% bug.${name}.identity FILTER email FILTER html %]</td>
     [% ELSIF name == "flags" %]
         <th class="rightcell">Flags:</th>
         <td>
diff --git a/template/en/default/bug/show.xml.tmpl b/template/en/default/bug/show.xml.tmpl
index 23874d989b1535498336b255fdced3f51b78bdf6..f6f3617a0b4bf7401d0d9d0914c56bc589402aa1 100644
--- a/template/en/default/bug/show.xml.tmpl
+++ b/template/en/default/bug/show.xml.tmpl
@@ -25,9 +25,13 @@
 
 <bugzilla version="[% constants.BUGZILLA_VERSION %]"
           urlbase="[% urlbase FILTER xml %]"
+          [%# Note that the maintainer's email is not filtered, 
+            # intentionally. Even logged-out users should be able
+            # to see that, since it will be in error messages anyway. 
+          %]
           maintainer="[% Param('maintainer') FILTER xml %]"
 [% IF user.id %]
-          exporter="[% user.email FILTER xml %]"
+          exporter="[% user.email FILTER email FILTER xml %]"
 [% END %]
 >
 
@@ -58,9 +62,9 @@
           <flag name="[% type.name FILTER xml %]"
                 id="[% flag.id FILTER xml %]"
                 status="[% flag.status FILTER xml %]"
-                setter="[% flag.setter.login FILTER xml %]"
+                setter="[% flag.setter.login FILTER email FILTER xml %]"
           [% IF flag.requestee %]
-              requestee="[% flag.requestee.login FILTER xml %]"
+              requestee="[% flag.requestee.login FILTER email FILTER xml %]"
           [% END %]
           />
         [% END %]
@@ -69,12 +73,12 @@
         [% FOREACH c = bug.longdescs %]
           [% NEXT IF c.isprivate && !user.in_group(Param("insidergroup")) %]
           <long_desc isprivate="[% c.isprivate FILTER xml %]">
-            <who name="[% c.author.name FILTER xml %]">[% c.author.email FILTER xml %]</who>
+            <who name="[% c.author.name FILTER xml %]">[% c.author.email FILTER email FILTER xml %]</who>
             <bug_when>[% c.time FILTER time FILTER xml %]</bug_when>
             [% IF user.in_group(Param('timetrackinggroup')) && (c.work_time - 0 != 0) %]
               <work_time>[% PROCESS formattimeunit time_unit = c.work_time FILTER xml %]</work_time>
             [% END %]
-            <thetext>[% c.body FILTER xml %]</thetext>
+            <thetext>[% c.body FILTER email FILTER xml %]</thetext>
           </long_desc>
         [% END %]
       [% END %]
@@ -93,7 +97,7 @@
             <filename>[% a.filename FILTER xml %]</filename>
             <type>[% a.contenttype FILTER xml %]</type>
             <size>[% a.datasize FILTER xml %]</size>
-            <attacher>[% a.attacher.email FILTER xml %]</attacher>
+            <attacher>[% a.attacher.email FILTER email FILTER xml %]</attacher>
         [% IF displayfields.attachmentdata %]
             <data encoding="base64">[% a.data FILTER base64 %]</data>
         [% END %]        
@@ -102,9 +106,9 @@
               <flag name="[% flag.type.name FILTER xml %]"
                     id="[% flag.id FILTER xml %]"
                     status="[% flag.status FILTER xml %]"
-                    setter="[% flag.setter.email FILTER xml %]"
+                    setter="[% flag.setter.email FILTER email FILTER xml %]"
                     [% IF flag.status == "?" && flag.requestee %]
-                      requestee="[% flag.requestee.email FILTER xml %]"
+                      requestee="[% flag.requestee.email FILTER email FILTER xml %]"
                     [% END %]
                />
             [% END %]
@@ -129,10 +133,13 @@
     [% IF field == 'reporter' OR field == 'assigned_to' OR
           field == 'qa_contact' %]
       [% name = val.name %]
-      [% val = val.email %]
+      [% val = val.email FILTER email %]
+    [% ELSIF field == 'cc' %]
+        [% val = val FILTER email %]
     [% ELSIF field == 'creation_ts' OR field == 'delta_ts' %]
       [% val = val FILTER time %]
     [% END %]
-    <[% field %][% IF name != '' %] name="[% name FILTER xml %]"[% END -%]>[% val FILTER xml %]</[% field %]>
+    <[% field %][% IF name != '' %] name="[% name FILTER xml %]"[% END -%]>
+      [%- val FILTER xml %]</[% field %]>
   [% END %]
 [% END %]
diff --git a/template/en/default/bug/summarize-time.html.tmpl b/template/en/default/bug/summarize-time.html.tmpl
index 14ae68da264b5ab6d5dde470dca8aa04676c4c13..12fb46e6d19a69dee2f38ca5d5a3dcfa71749561 100644
--- a/template/en/default/bug/summarize-time.html.tmpl
+++ b/template/en/default/bug/summarize-time.html.tmpl
@@ -38,7 +38,7 @@
 
 [% IF do_report %]
 
-  [% global.grand_total = 0 %]
+  [% global.grand_total = 0 global.estimated = 0 global.remaining = 0 %]
 
   [% FOREACH workdata = part_list %]
     [%# parts contains date ranges (from, to). %]
@@ -59,6 +59,16 @@
     [% END %]
   [% END %]
 
+  [% IF detailed %]
+    <h4 style="margin: 0">
+      Total of [% global.remaining FILTER format("%.2f") %]h remains from
+      original estimate of [% global.estimated FILTER format("%.2f") %]h
+      [% IF global.deadline %]
+        (deadline [% global.deadline FILTER html %])
+      [% END %]
+    </h4>
+  [% END %]
+
   [% IF monthly %]
     <h4 style="margin: 0">Total of [% global.grand_total FILTER format("%.2f") %] hours worked</h4>
     <hr noshade size="1">
@@ -101,6 +111,7 @@
     [% col = 0 subtotal = 0%]
     [% FOREACH bugdata=ownerdata.nsort("bug_id") %]
         [% bug_id = bugdata.bug_id %]
+        [% INCLUDE calc_bug_total id=bug_id %]
         [% global.bug_count.$bug_id = 1 %]
         [% IF detailed %]
             [% INCLUDE bug_header cid=col id=bug_id bugdata=bugdata extra=1 %]
@@ -139,6 +150,7 @@
 
 [% BLOCK do_one_bug %]
     [% subtotal = 0.00 cid = 0 %]
+    [% INCLUDE calc_bug_total id=id %]
     [% global.bug_count.$id = 1 %]
     [% INCLUDE bug_header id=id %]
 
@@ -180,8 +192,40 @@
           <td align="right" valign="top">[% bugdata.total_time FILTER html %]</td>
         [% END %]
     </tr>
+    [% IF detailed %]
+      <tr class="bug_header[% '2' IF cid % 2 %]">
+        <td>&nbsp;</td>
+        <td colspan="3">
+          <table width="100%" cellpadding="0" cellspacing="0">
+            <tr>
+              <td width="33%">
+                Estimated: [% bugs.$id.estimated_time FILTER format("%.2f") %]h
+              </td>
+              <td width="33%">
+                Remaining: [% bugs.$id.remaining_time FILTER format("%.2f") %]h
+              </td>
+              <td width="33%">
+                Deadline: [% bugs.$id.deadline || "<b>Not set</b>" %]
+              </td>
+            </tr>
+          </table>
+        </td>
+        [% IF extra %]
+          <td>&nbsp;</td>
+        [% END %]
+      </tr>
+   [% END %]
 [% END %]
 
+[% BLOCK calc_bug_total %]
+  [% IF !global.bug_count.$id %]
+    [% global.estimated = global.estimated + bugs.$id.estimated_time %]
+    [% global.remaining = global.remaining + bugs.$id.remaining_time %]
+    [% IF bugs.$id.deadline && global.deadline < bugs.$id.deadline %]
+      [% SET global.deadline = bugs.$id.deadline %]
+    [% END %]
+  [% END %]
+[% END %]
 
 [% BLOCK inactive_report %]
     <h3>Inactive [% terms.bugs %]</h3>
diff --git a/template/en/default/bug/votes/CVS/Entries b/template/en/default/bug/votes/CVS/Entries
index b4c67dca5ba40c9253a193e512bb6257f9cbb0e4..89e0aad2f532be80d5df96bb93a36628a184ddca 100644
--- a/template/en/default/bug/votes/CVS/Entries
+++ b/template/en/default/bug/votes/CVS/Entries
@@ -1,4 +1,4 @@
-/delete-all.html.tmpl/1.8/Mon Aug 20 18:25:02 2007//TBUGZILLA-3_3_1
-/list-for-bug.html.tmpl/1.12/Mon Aug 20 18:25:02 2007//TBUGZILLA-3_3_1
-/list-for-user.html.tmpl/1.28/Sun Feb  3 11:37:23 2008//TBUGZILLA-3_3_1
+/delete-all.html.tmpl/1.8/Mon Aug 20 18:25:02 2007//TBUGZILLA-3_3_2
+/list-for-bug.html.tmpl/1.13/Thu Jan 29 21:22:32 2009//TBUGZILLA-3_3_2
+/list-for-user.html.tmpl/1.28/Sun Feb  3 11:37:23 2008//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/bug/votes/CVS/Tag b/template/en/default/bug/votes/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/bug/votes/CVS/Tag
+++ b/template/en/default/bug/votes/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/bug/votes/list-for-bug.html.tmpl b/template/en/default/bug/votes/list-for-bug.html.tmpl
index b93d1f3466b6cd70a36ec3fad154b92d6b29c57b..a599dc0fb9e3415c65eb866399a3d2753b83780b 100644
--- a/template/en/default/bug/votes/list-for-bug.html.tmpl
+++ b/template/en/default/bug/votes/list-for-bug.html.tmpl
@@ -43,8 +43,9 @@
     [% total = total + voter.vote_count %]
     <tr>
       <td>
-        <a href="votes.cgi?action=show_user&amp;user=[% voter.login_name FILTER url_quote %]">
-          [% voter.login_name FILTER html %]
+          <a href="votes.cgi?action=show_user&amp;user_id=
+                  [%- voter.id FILTER url_quote %]">
+          [% voter.login_name FILTER email FILTER html %]
         </a>
       </td>
       <td align="right">
diff --git a/template/en/default/config.rdf.tmpl b/template/en/default/config.rdf.tmpl
index 84465ddd5eda21bf40b858a7b227743e1d6b806e..e8050489a2bc8a630693595e14868d8f4d495ee2 100644
--- a/template/en/default/config.rdf.tmpl
+++ b/template/en/default/config.rdf.tmpl
@@ -224,6 +224,10 @@
             <bz:requestable>[% flag_type.is_requestable FILTER html %]</bz:requestable>
             <bz:specifically_requestable>[% flag_type.is_requesteeble FILTER html %]</bz:specifically_requestable>
             <bz:multiplicable>[% flag_type.is_multiplicable FILTER html %]</bz:multiplicable>
+            [% IF user.in_group("editcomponents") %]
+              <bz:grant_group>[% flag_type.grant_group.name FILTER html %]</bz:grant_group>
+              <bz:request_group>[% flag_type.request_group.name FILTER html %]</bz:request_group>
+            [% END %]
           </bz:flag_type>
         </li>
       [% END %]
diff --git a/template/en/default/email/CVS/Entries b/template/en/default/email/CVS/Entries
index 79e97cc18fb9858face571947747767f0b40a3ea..25c4b068086fff42d8fdd9da1d0eeb4a0eccb350 100644
--- a/template/en/default/email/CVS/Entries
+++ b/template/en/default/email/CVS/Entries
@@ -1,6 +1,6 @@
-/newchangedmail.txt.tmpl/1.12/Wed Sep 17 17:44:10 2008//TBUGZILLA-3_3_1
-/sanitycheck.txt.tmpl/1.3/Mon Aug 20 18:25:02 2007//TBUGZILLA-3_3_1
-/sudo.txt.tmpl/1.5/Mon Aug 20 18:25:02 2007//TBUGZILLA-3_3_1
-/votes-removed.txt.tmpl/1.5/Wed Apr  2 17:42:29 2008//TBUGZILLA-3_3_1
-/whine.txt.tmpl/1.7/Wed Aug  6 12:06:43 2008//TBUGZILLA-3_3_1
+/newchangedmail.txt.tmpl/1.12/Wed Sep 17 17:44:10 2008//TBUGZILLA-3_3_2
+/sanitycheck.txt.tmpl/1.4/Tue Jan 20 20:22:11 2009//TBUGZILLA-3_3_2
+/sudo.txt.tmpl/1.5/Mon Aug 20 18:25:02 2007//TBUGZILLA-3_3_2
+/votes-removed.txt.tmpl/1.5/Wed Apr  2 17:42:29 2008//TBUGZILLA-3_3_2
+/whine.txt.tmpl/1.7/Wed Aug  6 12:06:43 2008//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/email/CVS/Tag b/template/en/default/email/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/email/CVS/Tag
+++ b/template/en/default/email/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/email/sanitycheck.txt.tmpl b/template/en/default/email/sanitycheck.txt.tmpl
index 9c19269257181d61d0d32e91c156b2f0f4b627da..8826d4e3955a5c0f4bb350fcfd52ab6e87c1d61b 100644
--- a/template/en/default/email/sanitycheck.txt.tmpl
+++ b/template/en/default/email/sanitycheck.txt.tmpl
@@ -33,4 +33,4 @@ Some errors have been found.
 No errors have been found.
 [% END %]
 
-[% output FILTER txt %]
+[% output %]
diff --git a/template/en/default/filterexceptions.pl b/template/en/default/filterexceptions.pl
index ab9ff00e9576b517bf8e3f566aaa03330637bba4..449f6290d15e7ce6e55be6d746270172c4d3974f 100644
--- a/template/en/default/filterexceptions.pl
+++ b/template/en/default/filterexceptions.pl
@@ -328,6 +328,10 @@
   'subtotal FILTER format("%.2f")',
   'work_time FILTER format("%.2f")',
   'global.total FILTER format("%.2f")',
+  'global.remaining FILTER format("%.2f")',
+  'global.estimated FILTER format("%.2f")',
+  'bugs.$id.remaining_time FILTER format("%.2f")',
+  'bugs.$id.estimated_time FILTER format("%.2f")',
 ],
 
 
diff --git a/template/en/default/flag/CVS/Entries b/template/en/default/flag/CVS/Entries
index 88448ccf34ee02bc8c0b89962adfa0679d04fe45..671214243b31ac7dab84cf9390c74b92f44b7409 100644
--- a/template/en/default/flag/CVS/Entries
+++ b/template/en/default/flag/CVS/Entries
@@ -1,2 +1,2 @@
-/list.html.tmpl/1.33/Fri May 30 07:29:26 2008//TBUGZILLA-3_3_1
+/list.html.tmpl/1.33/Fri May 30 07:29:26 2008//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/flag/CVS/Tag b/template/en/default/flag/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/flag/CVS/Tag
+++ b/template/en/default/flag/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/global/CVS/Entries b/template/en/default/global/CVS/Entries
index f6ef8c06c329d946733fa537bf2ee468f8f72e17..4fcbf4b18498b24f34d37b5c318ded694682c99b 100644
--- a/template/en/default/global/CVS/Entries
+++ b/template/en/default/global/CVS/Entries
@@ -1,28 +1,30 @@
-/banner.html.tmpl/1.11/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1
-/choose-classification.html.tmpl/1.11/Wed Dec 10 18:43:36 2008//TBUGZILLA-3_3_1
-/choose-product.html.tmpl/1.18/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1
-/code-error.html.tmpl/1.108/Wed Dec 24 03:43:49 2008//TBUGZILLA-3_3_1
-/common-links.html.tmpl/1.18/Wed Nov  5 17:45:16 2008//TBUGZILLA-3_3_1
-/confirm-user-match.html.tmpl/1.19/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1
-/docslinks.html.tmpl/1.3/Thu Apr  3 19:05:50 2008//TBUGZILLA-3_3_1
-/field-descs.none.tmpl/1.30/Sat Dec  6 19:44:46 2008//TBUGZILLA-3_3_1
-/footer.html.tmpl/1.14/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1
-/header.html.tmpl/1.59/Thu Oct  2 17:08:04 2008//TBUGZILLA-3_3_1
-/help.html.tmpl/1.6/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1
-/hidden-fields.html.tmpl/1.11/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1
-/initialize.none.tmpl/1.2/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1
-/js-products.html.tmpl/1.3/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1
-/message.html.tmpl/1.8/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1
-/message.txt.tmpl/1.4/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1
-/messages.html.tmpl/1.83/Fri Jan  2 14:12:32 2009//TBUGZILLA-3_3_1
-/per-bug-queries.html.tmpl/1.13/Thu Apr  3 19:05:50 2008//TBUGZILLA-3_3_1
-/select-menu.html.tmpl/1.6/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1
-/setting-descs.none.tmpl/1.15/Wed Aug 27 02:32:21 2008//TBUGZILLA-3_3_1
-/site-navigation.html.tmpl/1.26/Fri Aug  8 01:27:15 2008//TBUGZILLA-3_3_1
-/tabs.html.tmpl/1.4/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1
-/textarea.html.tmpl/1.3/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1
-/useful-links.html.tmpl/1.59/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_1
-/user-error.html.tmpl/1.269/Sun Jan  4 23:15:31 2009//TBUGZILLA-3_3_1
-/userselect.html.tmpl/1.10/Mon Dec 29 00:02:20 2008//TBUGZILLA-3_3_1
-/variables.none.tmpl/1.7/Wed Feb  6 21:02:21 2008//TBUGZILLA-3_3_1
+/banner.html.tmpl/1.11/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_2
+/choose-classification.html.tmpl/1.11/Wed Dec 10 18:43:36 2008//TBUGZILLA-3_3_2
+/choose-product.html.tmpl/1.18/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_2
+/code-error.html.tmpl/1.109/Wed Jan  7 21:22:11 2009//TBUGZILLA-3_3_2
+/common-links.html.tmpl/1.18/Wed Nov  5 17:45:16 2008//TBUGZILLA-3_3_2
+/confirm-action.html.tmpl/1.1/Mon Feb  2 18:37:24 2009//TBUGZILLA-3_3_2
+/confirm-user-match.html.tmpl/1.19/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_2
+/docslinks.html.tmpl/1.3/Thu Apr  3 19:05:50 2008//TBUGZILLA-3_3_2
+/field-descs.none.tmpl/1.31/Thu Jan 22 04:08:51 2009//TBUGZILLA-3_3_2
+/footer.html.tmpl/1.14/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_2
+/header.html.tmpl/1.59/Thu Oct  2 17:08:04 2008//TBUGZILLA-3_3_2
+/help.html.tmpl/1.6/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_2
+/hidden-fields.html.tmpl/1.11/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_2
+/initialize.none.tmpl/1.2/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_2
+/js-products.html.tmpl/1.3/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_2
+/message.html.tmpl/1.8/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_2
+/message.txt.tmpl/1.4/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_2
+/messages.html.tmpl/1.83/Fri Jan  2 14:12:32 2009//TBUGZILLA-3_3_2
+/per-bug-queries.html.tmpl/1.13/Thu Apr  3 19:05:50 2008//TBUGZILLA-3_3_2
+/select-menu.html.tmpl/1.6/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_2
+/setting-descs.none.tmpl/1.15/Wed Aug 27 02:32:21 2008//TBUGZILLA-3_3_2
+/site-navigation.html.tmpl/1.26/Fri Aug  8 01:27:15 2008//TBUGZILLA-3_3_2
+/tabs.html.tmpl/1.4/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_2
+/textarea.html.tmpl/1.3/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_2
+/useful-links.html.tmpl/1.59/Mon Aug 20 18:25:04 2007//TBUGZILLA-3_3_2
+/user-error.html.tmpl/1.274/Mon Feb  2 18:48:40 2009//TBUGZILLA-3_3_2
+/user.html.tmpl/1.1/Thu Jan 29 21:22:33 2009//TBUGZILLA-3_3_2
+/userselect.html.tmpl/1.10/Mon Dec 29 00:02:20 2008//TBUGZILLA-3_3_2
+/variables.none.tmpl/1.7/Wed Feb  6 21:02:21 2008//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/global/CVS/Tag b/template/en/default/global/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/global/CVS/Tag
+++ b/template/en/default/global/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/global/code-error.html.tmpl b/template/en/default/global/code-error.html.tmpl
index 37e052f81d1fc17b6426950c84833b55d5485ada..da8f902d47a2cdb436225d1e3cf07d7cecb7f852 100644
--- a/template/en/default/global/code-error.html.tmpl
+++ b/template/en/default/global/code-error.html.tmpl
@@ -345,6 +345,12 @@
     a <code>[% param FILTER html %]</code> argument, and that
     argument was not set.
 
+  [% ELSIF error == "params_required" %]
+    [% title = "Missing Parameter" %]
+    The function <code>[% function FILTER html %]</code> requires
+    that you set one of the following parameters:
+    <code>[% params.join(', ') FILTER html %]</code>
+
   [% ELSIF error == "product_empty_group_controls" %]
     [% title = "Missing Group Controls" %]
     New settings must be defined to edit group controls for
diff --git a/template/en/default/global/confirm-action.html.tmpl b/template/en/default/global/confirm-action.html.tmpl
new file mode 100644
index 0000000000000000000000000000000000000000..e57a83c281c209ec1c8c6c0f9d7b9184c37162df
--- /dev/null
+++ b/template/en/default/global/confirm-action.html.tmpl
@@ -0,0 +1,63 @@
+[%# The contents of this file are subject to the Mozilla Public
+  # License Version 1.1 (the "License"); you may not use this file
+  # except in compliance with the License. You may obtain a copy of
+  # the License at http://www.mozilla.org/MPL/
+  #
+  # Software distributed under the License is distributed on an "AS
+  # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+  # implied. See the License for the specific language governing
+  # rights and limitations under the License.
+  #
+  # The Original Code is the Bugzilla Bug Tracking System.
+  #
+  # The Initial Developer of the Original Code is Frédéric Buclin.
+  # Portions created by Frédéric Buclin are Copyright (C) 2008
+  # Frédéric Buclin. All Rights Reserved.
+  #
+  # Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
+  #%]
+
+[%# INTERFACE:
+  # script_name: the script generating this warning.
+  # token: a valid token for the current action.
+  # reason: reason of the failure.
+  #%]
+
+[% PROCESS global/header.html.tmpl title = "Suspicious Action"
+                                   style_urls = ['skins/standard/global.css'] %]
+
+<div class="throw_error">
+  [% IF reason == "expired_token" %]
+    Your changes have been rejected because you exceeded the time limit
+    of [% constants.MAX_TOKEN_AGE FILTER html %] days before submitting your
+    changes to [% script_name FILTER html %]. Your page may have been displayed
+    for too long, or old changes have been resubmitted by accident.
+
+  [% ELSIF reason == "missing_token" %]
+    It looks like you didn't come from the right page.
+    One reason could be that you entered the URL in the address bar of your
+    web browser directly, which should be safe. Another reason could be that
+    you clicked on a URL which redirected you here <b>without your consent</b>.
+
+  [% ELSIF reason == "invalid_token" %]
+    You submitted changes to [% script_name FILTER html %] with an invalid
+    token, which may indicate that someone tried to abuse you, for instance
+    by making you click on a URL which redirected you here <b>without your
+    consent</b>.
+  [% END %]
+  <p>
+    Are you sure you want to commit these changes?
+  </p>
+</div>
+
+<form name="check" id="check" method="post" action="[% script_name FILTER html %]">
+  [% PROCESS "global/hidden-fields.html.tmpl"
+             exclude="^(Bugzilla_login|Bugzilla_password|token)$" %]
+  <input type="hidden" name="token" value="[% token FILTER html %]">
+  <input type="submit" id="confirm" value="Yes, Confirm Changes">
+</form>
+
+<p><a href="index.cgi">No, throw away these changes</a> (you will be redirected
+to the home page).</p>
+
+[% PROCESS global/footer.html.tmpl %]
diff --git a/template/en/default/global/field-descs.none.tmpl b/template/en/default/global/field-descs.none.tmpl
index 324edb592880b3f2ebdb12510e184c1a21d3e03d..40300207453ff2ca794e5d1602bd06372b479958 100644
--- a/template/en/default/global/field-descs.none.tmpl
+++ b/template/en/default/global/field-descs.none.tmpl
@@ -76,6 +76,7 @@
                    "reporter_accessible"     => "Reporter accessible",
                    "requestees.login_name"   => "Flag Requestee",
                    "resolution"              => "Resolution",
+                   "see_also"                => "See Also",
                    "setters.login_name"      => "Flag Setter",
                    "setting"                 => "Setting",
                    "settings"                => "Settings",
@@ -90,12 +91,14 @@
     Description here, by copying their Description from the
     database. If you want to override this for your language
     or your installation, just use a hook. %]
-
+[%# Also create the bug_fields hash. %]
 [% UNLESS Param('shutdownhtml') %]
   [% USE Bugzilla %]
+  [% SET bug_fields = {} %]
   [% FOREACH bz_field = Bugzilla.get_fields() %]
     [% SET field_descs.${bz_field.name} = bz_field.description
        IF !field_descs.${bz_field.name}.defined %]
+    [% SET bug_fields.${bz_field.name} = bz_field %]
   [% END %]
 [% END %]
 
diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl
index 191f6eebd9ca04f29e20080f460e8437612743ec..1efee9a5e5549cdaefab6c6dca05b2e42cd9b9a5 100644
--- a/template/en/default/global/user-error.html.tmpl
+++ b/template/en/default/global/user-error.html.tmpl
@@ -229,6 +229,24 @@
                    [% bug_id FILTER url_quote %]&amp;GoAheadAndLogIn=1">log
     in to an account</a> with the appropriate permissions.
 
+  [% ELSIF error == "bug_url_invalid" %]
+    [% title = "Invalid $terms.Bug URL" %]
+    <code>[% url FILTER html %]</code> is not a valid URL to [% terms.abug %].
+    [% IF reason == 'http' %]
+      URLs must start with "http" or "https".
+    [% ELSIF reason == 'show_bug' %]
+      [%+ terms.Bug %] URLs should point to <code>show_bug.cgi</code>
+      in a [% terms.Bugzilla %] installation.
+    [% ELSIF reason == 'id' %]
+      There is no valid [% terms.bug %] id in that URL.
+    [% END %]
+
+  [% ELSIF error == "bug_url_too_long" %]
+    [% title = "Invalid $terms.Bug URL" %]
+    [% terms.Bug %] URLs can not be longer than 
+    [%+ constants.MAX_BUG_URL_LENGTH FILTER none %] characters long.
+    <code>[% url FILTER html %]</code> is too long.
+
   [% ELSIF error == "buglist_parameters_required" %]
     [% title = "Parameters Required" %]
     [% docslinks = {'query.html' => "Searching for $terms.bugs",
@@ -239,10 +257,16 @@
     [% title = "Chart Too Large" %]
     Sorry, but 2000 x 2000 is the maximum size for a chart.
 
+  [% ELSIF error == "comment_id_invalid" %]
+    [% id FILTER html %] is not a valid comment id.
+
   [% ELSIF error == "comment_invalid_isprivate" %]
     You tried to modify the privacy of comment id [% id FILTER html %],
     but that is not a valid comment on this [% terms.bug %].
 
+  [% ELSIF error == "comment_is_private" %]
+    Comment id [% id FILTER html %] is private.
+
   [% ELSIF error == "comment_required" %]
     [% title = "Comment Required" %]
     You have to specify a
@@ -1367,8 +1391,9 @@
     The name <em>[% name FILTER html %]</em> is already used by another
     saved search. You first have to
     <a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
-    [%- name FILTER url_quote %]">delete</a> it if you really want to use
-    this name.
+    [%- name FILTER url_quote %]&amp;token=
+    [% issue_hash_token([query_id, name]) FILTER url_quote %]">delete</a>
+    it if you really want to use this name.
 
   [% ELSIF error == "query_name_missing" %]
     [% title = "No Search Name Specified" %]
@@ -1612,6 +1637,11 @@
     [% title = "Wrong Token" %]
     That token cannot be used to create a user account.
 
+  [% ELSIF error == "xmlrpc_invalid_value" %]
+    "[% value FILTER html %]" is not a valid value for a
+    &lt;[% type FILTER html %]&gt; field. (See the XML-RPC specification
+    for details.)
+
   [% ELSIF error == "zero_length_file" %]
     [% title = "File Is Empty" %]
     The file you are trying to attach is empty, does not exist, or you don't
diff --git a/template/en/default/global/user.html.tmpl b/template/en/default/global/user.html.tmpl
new file mode 100644
index 0000000000000000000000000000000000000000..df902b451d73c315d37f92fef321536473845e77
--- /dev/null
+++ b/template/en/default/global/user.html.tmpl
@@ -0,0 +1,39 @@
+[%# The contents of this file are subject to the Mozilla Public
+  # License Version 1.1 (the "License"); you may not use this file
+  # except in compliance with the License. You may obtain a copy of
+  # the License at http://www.mozilla.org/MPL/
+  #
+  # Software distributed under the License is distributed on an "AS
+  # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+  # implied. See the License for the specific language governing
+  # rights and limitations under the License.
+  #
+  # The Original Code is the Bugzilla Bug Tracking System.
+  #
+  # The Initial Developer of the Original Code is Daniel Brooks.
+  # Portions created by the Initial Developer are Copyright (C) 2007
+  # the Initial Developer. All Rights Reserved.
+  #
+  # Contributor(s): 
+  #   Daniel Brooks <db48x@db48x.net>
+  #   Max Kanat-Alexander <mkanat@bugzilla.org>
+  #%]
+
+[%# INTERFACE:
+  # who: A Bugzilla::User object that we are going to represent.
+  #%]
+
+<span class="vcard">
+  [% FILTER collapse %]
+    [% IF user.id %]
+      <a class="email" href="mailto:[% who.email FILTER html %]"
+         title="[% who.identity FILTER html %]">
+    [%- END -%]
+    [% IF who.name %]
+       <span class="fn">[% who.name FILTER html %]</span>
+    [% ELSE %]
+      [% who.login FILTER email FILTER html %]
+    [% END %]
+    [% '</a>' IF user.id %]
+  [% END %]
+</span>
diff --git a/template/en/default/list/CVS/Entries b/template/en/default/list/CVS/Entries
index 1bf6751dbc79413b5ff9e1f7597d2b9669734c68..5e194b1e4cba01772ccd701402cc207a90fbc1aa 100644
--- a/template/en/default/list/CVS/Entries
+++ b/template/en/default/list/CVS/Entries
@@ -1,13 +1,13 @@
-/change-columns.html.tmpl/1.19/Wed Sep 17 11:26:01 2008//TBUGZILLA-3_3_1
-/edit-multiple.html.tmpl/1.54/Sun Jan  4 04:38:42 2009//TBUGZILLA-3_3_1
-/list-simple.html.tmpl/1.12/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_1
-/list.atom.tmpl/1.6/Wed Aug 27 23:26:24 2008//TBUGZILLA-3_3_1
-/list.csv.tmpl/1.8/Wed Aug 27 23:26:24 2008//TBUGZILLA-3_3_1
-/list.html.tmpl/1.63/Sat Dec  6 19:44:47 2008//TBUGZILLA-3_3_1
-/list.ics.tmpl/1.10/Wed Aug 27 23:26:24 2008//TBUGZILLA-3_3_1
-/list.js.tmpl/1.3/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_1
-/list.rdf.tmpl/1.7/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_1
-/quips.html.tmpl/1.24/Wed Nov  5 18:38:52 2008//TBUGZILLA-3_3_1
-/server-push.html.tmpl/1.7/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_1
-/table.html.tmpl/1.42/Sun Jan  4 17:44:52 2009//TBUGZILLA-3_3_1
+/change-columns.html.tmpl/1.19/Wed Sep 17 11:26:01 2008//TBUGZILLA-3_3_2
+/edit-multiple.html.tmpl/1.55/Mon Feb  2 18:34:40 2009//TBUGZILLA-3_3_2
+/list-simple.html.tmpl/1.12/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_2
+/list.atom.tmpl/1.6/Wed Aug 27 23:26:24 2008//TBUGZILLA-3_3_2
+/list.csv.tmpl/1.8/Wed Aug 27 23:26:24 2008//TBUGZILLA-3_3_2
+/list.html.tmpl/1.65/Mon Feb  2 18:48:41 2009//TBUGZILLA-3_3_2
+/list.ics.tmpl/1.10/Wed Aug 27 23:26:24 2008//TBUGZILLA-3_3_2
+/list.js.tmpl/1.3/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_2
+/list.rdf.tmpl/1.7/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_2
+/quips.html.tmpl/1.24/Wed Nov  5 18:38:52 2008//TBUGZILLA-3_3_2
+/server-push.html.tmpl/1.7/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_2
+/table.html.tmpl/1.42/Sun Jan  4 17:44:52 2009//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/list/CVS/Tag b/template/en/default/list/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/list/CVS/Tag
+++ b/template/en/default/list/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/list/edit-multiple.html.tmpl b/template/en/default/list/edit-multiple.html.tmpl
index 6a62a80dccc8526ab033992a0f6f2fd22f3b541e..46130ef6bf18b553aed9e18af231d11aba41a674 100644
--- a/template/en/default/list/edit-multiple.html.tmpl
+++ b/template/en/default/list/edit-multiple.html.tmpl
@@ -25,6 +25,7 @@
 
 [% dontchange = "--do_not_change--" %]
 <input type="hidden" name="dontchange" value="[% dontchange FILTER html %]">
+<input type="hidden" name="token" value="[% token FILTER html %]">
 
 <script type="text/javascript">
   var numelements = document.forms.changeform.elements.length;
diff --git a/template/en/default/list/list.html.tmpl b/template/en/default/list/list.html.tmpl
index 467e4dfc76854f8044693c78a9f5e867f3f552a9..a75f1340cf1d1ce512e7623b788903fb6ba660b3 100644
--- a/template/en/default/list/list.html.tmpl
+++ b/template/en/default/list/list.html.tmpl
@@ -206,7 +206,7 @@
           |
         [% END %]
 
-        [% IF bugowners %]
+        [% IF bugowners && user.id %]
           <a href="mailto:
             [% bugowners FILTER html %]">Send&nbsp;Mail&nbsp;to&nbsp;[% terms.Bug %]&nbsp;Assignees</a> |
         [% END %]
@@ -228,8 +228,9 @@
       <td valign="middle" nowrap="nowrap" class="bz_query_forget">
         |
         <a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
-                [% searchname FILTER url_quote %]">Forget&nbsp;Search&nbsp;'
-                [% searchname FILTER html %]'</a>
+                [% searchname FILTER url_quote %]&amp;token=
+                [% issue_hash_token([search_id, searchname]) FILTER url_quote %]">
+          Forget&nbsp;Search&nbsp;'[% searchname FILTER html %]'</a>
       </td>
     [% ELSE %]
       <td>&nbsp;</td>
diff --git a/template/en/default/pages/CVS/Entries b/template/en/default/pages/CVS/Entries
index e851f8db2cdaf894f572107c58b5ba36b8257d2b..4833eb7daae551b0c3dc748f0c83fa7ab16babbb 100644
--- a/template/en/default/pages/CVS/Entries
+++ b/template/en/default/pages/CVS/Entries
@@ -1,10 +1,10 @@
-/bug-writing.html.tmpl/1.9/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_1
-/fields.html.tmpl/1.14/Wed Sep 17 11:11:30 2008//TBUGZILLA-3_3_1
-/linked.html.tmpl/1.10/Fri Feb  8 23:19:32 2008//TBUGZILLA-3_3_1
-/linkify.html.tmpl/1.9/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_1
-/quicksearch.html.tmpl/1.3/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_1
-/quicksearchhack.html.tmpl/1.7/Sun Dec  2 23:12:10 2007//TBUGZILLA-3_3_1
-/release-notes.html.tmpl/1.27/Sat Dec  6 19:54:17 2008//TBUGZILLA-3_3_1
-/sudo.html.tmpl/1.3/Fri Aug  8 01:27:20 2008//TBUGZILLA-3_3_1
-/voting.html.tmpl/1.5/Mon Sep 15 22:34:32 2008//TBUGZILLA-3_3_1
+/bug-writing.html.tmpl/1.9/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_2
+/fields.html.tmpl/1.15/Thu Jan 22 04:08:53 2009//TBUGZILLA-3_3_2
+/linked.html.tmpl/1.10/Fri Feb  8 23:19:32 2008//TBUGZILLA-3_3_2
+/linkify.html.tmpl/1.9/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_2
+/quicksearch.html.tmpl/1.3/Mon Aug 20 18:25:05 2007//TBUGZILLA-3_3_2
+/quicksearchhack.html.tmpl/1.7/Sun Dec  2 23:12:10 2007//TBUGZILLA-3_3_2
+/release-notes.html.tmpl/1.29/Mon Feb  2 22:59:59 2009//TBUGZILLA-3_3_2
+/sudo.html.tmpl/1.3/Fri Aug  8 01:27:20 2008//TBUGZILLA-3_3_2
+/voting.html.tmpl/1.5/Mon Sep 15 22:34:32 2008//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/pages/CVS/Tag b/template/en/default/pages/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/pages/CVS/Tag
+++ b/template/en/default/pages/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/pages/fields.html.tmpl b/template/en/default/pages/fields.html.tmpl
index 90ec2d045087388a7dffba436dfa5605c5a0025c..f5458de37a20dd36ba675523b29cc69fbdbc3f56 100644
--- a/template/en/default/pages/fields.html.tmpl
+++ b/template/en/default/pages/fields.html.tmpl
@@ -315,4 +315,16 @@ When searching for [% terms.bugs %] that have been resolved or
 verified, remember to set the status field appropriately. 
 </p>
 
+<h2><a name="see_also"></a>See Also</h2>
+
+<p>This allows you to refer to [% terms.bugs %] in other installations.
+  You can enter a URL to a [%+ terms.bug %] in the "Add [% terms.Bug %] URLs"
+  field to note that that [% terms.bug %] is related to this one. You can
+  enter multiple URLs at once by separating them with a comma.</p>
+
+<p>You should normally use this field to refer to [% terms.bugs %] in 
+  <em>other</em> installations. For [% terms.bugs %] in this 
+  installation, it is better to use the "Depends On" and "Blocks"
+  fields.</p>
+
 [% INCLUDE global/footer.html.tmpl %]
diff --git a/template/en/default/pages/release-notes.html.tmpl b/template/en/default/pages/release-notes.html.tmpl
index 21b98b5e26889d2ca4982245664bb4797eb55991..6f5a7fa9fa6f09abd8f15e756ab2a34c641e5021 100644
--- a/template/en/default/pages/release-notes.html.tmpl
+++ b/template/en/default/pages/release-notes.html.tmpl
@@ -19,7 +19,7 @@
 
 [% PROCESS global/variables.none.tmpl %]
 [% INCLUDE global/header.html.tmpl 
-  title = "$terms.Bugzilla 3.2 Release Notes" 
+  title = "$terms.Bugzilla 3.2.1 Release Notes" 
   style_urls = ['skins/standard/release-notes.css'] 
 %]
 
@@ -27,6 +27,8 @@
 
 <ul class="bz_toc">
   <li><a href="#v32_introduction">Introduction</a></li>
+  <li><a href="#v32_point">Updates In This 3.2.x Release</a></li>
+  <li><a href="#v32_security">Security Fixes In This 3.2.x Release</a></li>
   <li><a href="#v32_req">Minimum Requirements</a></li>
   <li><a href="#v32_feat">New Features and Improvements</a></li>
   <li><a href="#v32_issues">Outstanding Issues</a></li>
@@ -49,6 +51,59 @@
   and this one, <strong>particularly the "Notes For Upgraders" section of each
   version's release notes</strong>.</p>
 
+<h2><a name="v32_point">Updates in this 3.2.x Release</a></h2>
+
+<p>This section describes what's changed in the most recent b<!-- -->ug-fix
+  releases of [% terms.Bugzilla %] after 3.2. We only list the
+  most important fixes in each release. If you want a detailed list of
+  <em>everything</em> that's changed in each version, you should use our
+  <a href="http://www.bugzilla.org/status/changes.html">Change Log 
+  Page</a>.</p>
+
+<h3>3.2.1</h3>
+
+<ul>
+  <li>Attachments, charts, and graphs would sometimes be garbled on Windows.
+  (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=464992">[% terms.Bug %] 464992</a>)</li>
+
+  <li>Saving changes to parameters would sometimes fail silently (particularly
+    on Windows when the web server didn't have the right permissions to
+    update the <code>params</code> file). [% terms.Bugzilla %] will now
+    throw an error in this case, telling you what is wrong.
+    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=347707">[% terms.Bug %] 347707</a>)</li>
+
+  <li>If you were using the <code>usemenuforusers</code> parameter,
+    and [% terms.abug %] was assigned to (or had a QA Contact of) a disabled
+    user, that field would be reset to the first user in the list when
+    updating [% terms.abug %].
+    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=465589">[% terms.Bug %] 465589</a>)</li>
+
+  <li>If you were using the <code>PROJECT</code> environment variable
+    to have multiple [% terms.Bugzilla %] installations using one codebase,
+    project-specific templates were being ignored. 
+    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=467324">[% terms.Bug %] 467324</a>)</li>
+
+  <li>Some versions of the SOAP::Lite Perl module had a b[% %]ug that caused
+    [%+ terms.Bugzilla %]'s XML-RPC service to break. 
+    <code>checksetup.pl</code> now checks for these bad versions and 
+    will reject them.
+    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=468009">[% terms.Bug %] 468009</a>)</li>
+
+  <li>The font sizes in various places were too small, when using the
+    Classic skin.
+    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=469136">[% terms.Bug %] 469136</a>)</li>
+</ul>
+
+<h2><a name="v32_security">Security Fixes In This 3.2.x Release</a></h2>
+
+<h3>3.2.1</h3>
+
+<p>This release contains several security fixes. One fix may break any
+  automated scripts you have that are loading <kbd>process_bug.cgi</kbd>
+  directly. We recommend that you read the entire 
+  <a href="http://www.bugzilla.org/security/2.22.6/">Security Advisory</a>
+  for this release.</p>
+
 <h2><a name="v32_req"></a>Minimum Requirements</h2>
 
 <p>Any requirements that are new since 3.0.5 will look like
@@ -87,7 +142,7 @@
   features of [% terms.Bugzilla %]:</p>
 
 [% INCLUDE req_table reqs = OPTIONAL_MODULES
-                     new  = ['SASL-Authen', 'RadiusPerl']
+                     new  = ['Authen-SASL', 'RadiusPerl']
                      updated = []
                      include_feature = 1 %]
 
@@ -305,7 +360,7 @@
   <li><strong>Authentication</strong>: [% terms.Bugzilla %] now supports 
     RADIUS authentication.</li>
 
-  <li><strong>Security</strong>: The login cookies is now created as 
+  <li><strong>Security</strong>: The login cookie is now created as 
     "HTTPOnly" so that it can't be read by possibly malicious scripts. 
     Also, if SSL is enabled on your installation, the login cookie is
     now only sent over SSL connections.</li>
diff --git a/template/en/default/reports/CVS/Entries b/template/en/default/reports/CVS/Entries
index 0f9904ce00ad4bec1eb17921baab83c8261e86ad..f1e1a60dc2043508700e186c17d6816254cdffc7 100644
--- a/template/en/default/reports/CVS/Entries
+++ b/template/en/default/reports/CVS/Entries
@@ -1,23 +1,23 @@
-/chart.csv.tmpl/1.3/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1
-/chart.html.tmpl/1.5/Wed Aug 27 02:32:26 2008//TBUGZILLA-3_3_1
-/chart.png.tmpl/1.6/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1
-/components.html.tmpl/1.13/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1
-/create-chart.html.tmpl/1.16/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1
-/duplicates-simple.html.tmpl/1.5/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1
-/duplicates-table.html.tmpl/1.14/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1
-/duplicates.html.tmpl/1.19/Mon Mar 31 08:51:06 2008//TBUGZILLA-3_3_1
-/edit-series.html.tmpl/1.7/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1
-/keywords.html.tmpl/1.10/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1
-/menu.html.tmpl/1.9/Sun Nov 11 22:03:19 2007//TBUGZILLA-3_3_1
-/old-charts.html.tmpl/1.3/Sun Nov 11 22:03:19 2007//TBUGZILLA-3_3_1
-/report-bar.png.tmpl/1.8/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1
-/report-line.png.tmpl/1.9/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1
-/report-pie.png.tmpl/1.7/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1
-/report-simple.html.tmpl/1.3/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1
-/report-table.csv.tmpl/1.11/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1
-/report-table.html.tmpl/1.16/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1
-/report.csv.tmpl/1.3/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1
-/report.html.tmpl/1.15/Wed Aug 27 02:32:26 2008//TBUGZILLA-3_3_1
-/series-common.html.tmpl/1.5/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_1
-/series.html.tmpl/1.10/Mon Mar 31 08:51:06 2008//TBUGZILLA-3_3_1
+/chart.csv.tmpl/1.3/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_2
+/chart.html.tmpl/1.5/Wed Aug 27 02:32:26 2008//TBUGZILLA-3_3_2
+/chart.png.tmpl/1.6/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_2
+/components.html.tmpl/1.14/Thu Jan 29 21:22:36 2009//TBUGZILLA-3_3_2
+/create-chart.html.tmpl/1.16/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_2
+/duplicates-simple.html.tmpl/1.5/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_2
+/duplicates-table.html.tmpl/1.14/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_2
+/duplicates.html.tmpl/1.19/Mon Mar 31 08:51:06 2008//TBUGZILLA-3_3_2
+/edit-series.html.tmpl/1.7/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_2
+/keywords.html.tmpl/1.10/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_2
+/menu.html.tmpl/1.9/Sun Nov 11 22:03:19 2007//TBUGZILLA-3_3_2
+/old-charts.html.tmpl/1.3/Sun Nov 11 22:03:19 2007//TBUGZILLA-3_3_2
+/report-bar.png.tmpl/1.8/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_2
+/report-line.png.tmpl/1.9/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_2
+/report-pie.png.tmpl/1.7/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_2
+/report-simple.html.tmpl/1.3/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_2
+/report-table.csv.tmpl/1.12/Thu Jan 29 21:22:36 2009//TBUGZILLA-3_3_2
+/report-table.html.tmpl/1.17/Thu Jan 29 21:22:37 2009//TBUGZILLA-3_3_2
+/report.csv.tmpl/1.3/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_2
+/report.html.tmpl/1.16/Thu Jan 29 21:22:37 2009//TBUGZILLA-3_3_2
+/series-common.html.tmpl/1.5/Mon Aug 20 18:25:06 2007//TBUGZILLA-3_3_2
+/series.html.tmpl/1.10/Mon Mar 31 08:51:06 2008//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/reports/CVS/Tag b/template/en/default/reports/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/reports/CVS/Tag
+++ b/template/en/default/reports/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/reports/components.html.tmpl b/template/en/default/reports/components.html.tmpl
index 351c7d01b5e6679c34829538ff5742b401cff4b6..eb08a35ac2079fa08626cf6acdc856469b2811e1 100644
--- a/template/en/default/reports/components.html.tmpl
+++ b/template/en/default/reports/components.html.tmpl
@@ -74,13 +74,11 @@
       <a name="[% comp.name FILTER html %]">[% comp.name FILTER html %]</a>
     </td>
     <td>
-      <a href="mailto:[% comp.default_assignee.email FILTER html %]">
-      [% comp.default_assignee.login FILTER html %]</a>
+      [% INCLUDE global/user.html.tmpl who = comp.default_assignee %]
     </td>
     [% IF Param("useqacontact") %]
       <td>
-        <a href="mailto:[% comp.default_qa_contact.email FILTER html %]">
-        [% comp.default_qa_contact.login FILTER html %]</a>
+        [% INCLUDE global/user.html.tmpl who = comp.default_qa_contact %]
       </td>
     [% END %]
   </tr>
diff --git a/template/en/default/reports/report-table.csv.tmpl b/template/en/default/reports/report-table.csv.tmpl
index cf3774973d43608d45c756874f3d1d760a041a33..0f315cc023a8d43bcee9ceeb83aae771a32df12c 100644
--- a/template/en/default/reports/report-table.csv.tmpl
+++ b/template/en/default/reports/report-table.csv.tmpl
@@ -30,7 +30,14 @@
 [% row_field_disp = field_descs.$row_field || row_field %]
 
 [% IF tbl_field %]
-  [% tbl_field_disp FILTER csv %]: [% tbl FILTER csv %]
+  [% IF tbl_field == 'assigned_to' OR tbl_field == 'reporter'
+        OR tbl_field == 'qa_contact'
+  %]
+    [% tbl_disp = tbl FILTER email %]
+  [% ELSE %]
+    [% tbl_disp = tbl %]
+  [% END %]
+  [% tbl_field_disp FILTER csv %]: [% tbl_disp FILTER csv %]
 [% END %]
 [% IF row_field %]
   [% row_field_disp FILTER csv %]
@@ -40,26 +47,14 @@
 [% IF col_field -%]
   [% FOREACH col = col_names -%]
     [% colsepchar %]
-    [% IF col_field == 'bug_status' %]
-      [% get_status(col) FILTER csv -%]
-    [% ELSIF col_field == 'resolution' %]
-      [% get_resolution(col) FILTER csv -%]
-    [% ELSE %]
-      [% col FILTER csv -%]
-    [% END %]
+    [% PROCESS value_display value = col field = col_field %]
   [% END -%]
 [% ELSE -%]
   [% colsepchar %][% num_bugs FILTER csv %]
 [% END %]
 
 [% FOREACH row = row_names %]
-  [% IF row_field == 'bug_status' %]
-    [% get_status(row) FILTER csv -%]
-  [% ELSIF row_field == 'resolution' %]
-    [% get_resolution(row) FILTER csv -%]
-  [% ELSE %]
-    [% row FILTER csv -%]
-  [% END %]
+  [% PROCESS value_display value = row field = row_field %]
   [% FOREACH col = col_names %]
     [% colsepchar %]
     [% IF data.$tbl AND data.$tbl.$col AND data.$tbl.$col.$row %]
@@ -70,3 +65,17 @@
   [% END %]
 
 [% END %]
+
+[% BLOCK value_display %]
+  [% SET disp_value = value %]
+  [% IF field == 'bug_status' %]
+    [% SET disp_value = get_status(value) %]
+  [% ELSIF field == 'resolution' %]
+    [% SET disp_value = get_resolution(value) %]
+  [% ELSIF field == 'assigned_to' OR field == 'reporter'
+           OR field == 'qa_contact'
+  %]
+    [% disp_value = value FILTER email %]
+  [% END %]
+  [% disp_value FILTER csv %]
+[% END %]
diff --git a/template/en/default/reports/report-table.html.tmpl b/template/en/default/reports/report-table.html.tmpl
index 0ebe631d1fee8585a0683f69c29163f0f1974e76..6c5d6ede2fa8e4969cfe659192109688930ccbad 100644
--- a/template/en/default/reports/report-table.html.tmpl
+++ b/template/en/default/reports/report-table.html.tmpl
@@ -44,7 +44,7 @@
 [% END %]
 
 [% IF tbl_field %]
-  <h2>[% tbl_disp FILTER html %]</h2>
+  <h2>[% tbl_disp FILTER email FILTER html %]</h2>
 [% END %]
 
 <table>
@@ -79,13 +79,7 @@
         
         [% col_idx = 1 - col_idx %]
         <td class="[% classes.$row_idx.$col_idx %]">
-          [% IF col_field == 'bug_status' %]
-            [% get_status(col) FILTER html FILTER replace('^ $','&nbsp;') %]
-          [% ELSIF col_field == 'resolution' %]
-            [% get_resolution(col) FILTER html FILTER replace('^ $','&nbsp;') %]
-          [% ELSE %]
-            [% col FILTER html FILTER replace('^ $','&nbsp;') %]
-          [% END %]
+          [% PROCESS value_display value = col field = col_field %]
         </td>
       [% END %]
       <td class="ttotal">
@@ -100,13 +94,7 @@
     [% row_idx = 1 - row_idx %]
     <tr>
       <td class="[% classes.$row_idx.$col_idx %]" align="right">
-        [% IF row_field == 'bug_status' %]
-          [% get_status(row) FILTER html FILTER replace('^ $','&nbsp;') %]
-        [% ELSIF row_field == 'resolution' %]
-          [% get_resolution(row) FILTER html FILTER replace('^ $','&nbsp;') %]
-        [% ELSE %]
-          [% row FILTER html FILTER replace('^ $','&nbsp;') %]
-        [% END %]
+        [% PROCESS value_display value = row field = row_field %]
       </td>
       [% FOREACH col = col_names %]
         [% row_total = row_total + data.$tbl.$col.$row %]
@@ -163,4 +151,18 @@
       
     </td>
   </tr>
-</table>    
+</table>
+
+[% BLOCK value_display %]
+  [% SET disp_value = value %]
+  [% IF field == 'bug_status' %]
+    [% SET disp_value = get_status(value) %]
+  [% ELSIF field == 'resolution' %]
+    [% SET disp_value = get_resolution(value) %]
+  [% ELSIF field == 'assigned_to' OR field == 'reporter'
+           OR field == 'qa_contact'
+  %]
+    [% disp_value = value FILTER email %]
+  [% END %]
+  [% disp_value FILTER html FILTER replace('^ $','&nbsp;') %]
+[% END %] 
diff --git a/template/en/default/reports/report.html.tmpl b/template/en/default/reports/report.html.tmpl
index 37af0b3006c0e9ad453c24a61f12f5eee2fbd848..4f7ee49b61a5de3834edc9cf11371456f412de0e 100644
--- a/template/en/default/reports/report.html.tmpl
+++ b/template/en/default/reports/report.html.tmpl
@@ -96,7 +96,7 @@
       [% PROCESS "reports/report-table.html.tmpl" %]
     [% ELSE %]
       [% IF tbl %]
-        <h2>[% tbl_disp FILTER html %]</h2>
+        <h2>[% tbl_disp FILTER email FILTER html %]</h2>
       [% END %]
       
       [% imageurl = BLOCK %]report.cgi?[% imagebase FILTER html %]&amp;format=
diff --git a/template/en/default/request/CVS/Entries b/template/en/default/request/CVS/Entries
index 34aa17f6acbb0eea98505b81f9c8a60bdfe92a3a..91507d50143b0e582448a359edc00904a34f997d 100644
--- a/template/en/default/request/CVS/Entries
+++ b/template/en/default/request/CVS/Entries
@@ -1,3 +1,3 @@
-/email.txt.tmpl/1.21/Wed Aug 27 20:38:46 2008//TBUGZILLA-3_3_1
-/queue.html.tmpl/1.20/Wed May 14 03:34:25 2008//TBUGZILLA-3_3_1
+/email.txt.tmpl/1.21/Wed Aug 27 20:38:46 2008//TBUGZILLA-3_3_2
+/queue.html.tmpl/1.21/Thu Jan 29 21:22:39 2009//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/request/CVS/Tag b/template/en/default/request/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/request/CVS/Tag
+++ b/template/en/default/request/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/request/queue.html.tmpl b/template/en/default/request/queue.html.tmpl
index af911b2efaf9f9377a5930ba64ba3704e849dad0..8dd0f0400eb9a0a23cb233068acea0f7e5d7eaa5 100644
--- a/template/en/default/request/queue.html.tmpl
+++ b/template/en/default/request/queue.html.tmpl
@@ -157,7 +157,8 @@ to some group are shown by default.
 [% PROCESS global/footer.html.tmpl %]
 
 [% BLOCK start_new_table %]
-  <h3>[% column_headers.$group_field %]: [% (request.$group_field || "None") FILTER html %]</h3>
+  <h3>[% column_headers.$group_field %]: 
+    [%+ (request.$group_field || "None") FILTER email FILTER html %]</h3>
   <table class="requests" cellspacing="0" cellpadding="4" border="1">
     <tr>
       [% FOREACH column = display_columns %]
@@ -190,11 +191,11 @@ to some group are shown by default.
 [% END %]
 
 [% BLOCK display_requestee %]
-  [% request.requestee FILTER html %]
+  [% request.requestee FILTER email FILTER html %]
 [% END %]
 
 [% BLOCK display_requester %]
-  [% request.requester FILTER html %]
+  [% request.requester FILTER email FILTER html %]
 [% END %]
 
 [% BLOCK display_created %]
diff --git a/template/en/default/search/CVS/Entries b/template/en/default/search/CVS/Entries
index 10eb22f9cff14b90caece5236fafb1a694f06bc6..411c3b92db98b618d7324de32628662d99cc4742 100644
--- a/template/en/default/search/CVS/Entries
+++ b/template/en/default/search/CVS/Entries
@@ -1,14 +1,14 @@
-/boolean-charts.html.tmpl/1.19/Sat Dec  6 19:44:48 2008//TBUGZILLA-3_3_1
-/form.html.tmpl/1.55/Sat Dec  6 19:44:48 2008//TBUGZILLA-3_3_1
-/knob.html.tmpl/1.21/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_3_1
-/search-advanced.html.tmpl/1.33/Thu Sep 11 22:09:21 2008//TBUGZILLA-3_3_1
-/search-create-series.html.tmpl/1.14/Sun Nov 11 22:03:21 2007//TBUGZILLA-3_3_1
-/search-help.html.tmpl/1.10/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_3_1
-/search-plugin.xml.tmpl/1.5/Tue Dec 16 22:39:42 2008//TBUGZILLA-3_3_1
-/search-report-graph.html.tmpl/1.13/Tue Aug 12 07:58:07 2008//TBUGZILLA-3_3_1
-/search-report-select.html.tmpl/1.8/Sat Jan  3 01:08:28 2009//TBUGZILLA-3_3_1
-/search-report-table.html.tmpl/1.14/Tue Aug 12 07:58:07 2008//TBUGZILLA-3_3_1
-/search-specific.html.tmpl/1.24/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_3_1
-/tabs.html.tmpl/1.7/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_3_1
-/type-select.html.tmpl/1.2/Sat Dec  6 21:12:51 2008//TBUGZILLA-3_3_1
+/boolean-charts.html.tmpl/1.19/Sat Dec  6 19:44:48 2008//TBUGZILLA-3_3_2
+/form.html.tmpl/1.55/Sat Dec  6 19:44:48 2008//TBUGZILLA-3_3_2
+/knob.html.tmpl/1.21/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_3_2
+/search-advanced.html.tmpl/1.33/Thu Sep 11 22:09:21 2008//TBUGZILLA-3_3_2
+/search-create-series.html.tmpl/1.14/Sun Nov 11 22:03:21 2007//TBUGZILLA-3_3_2
+/search-help.html.tmpl/1.10/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_3_2
+/search-plugin.xml.tmpl/1.5/Tue Dec 16 22:39:42 2008//TBUGZILLA-3_3_2
+/search-report-graph.html.tmpl/1.13/Tue Aug 12 07:58:07 2008//TBUGZILLA-3_3_2
+/search-report-select.html.tmpl/1.8/Sat Jan  3 01:08:28 2009//TBUGZILLA-3_3_2
+/search-report-table.html.tmpl/1.14/Tue Aug 12 07:58:07 2008//TBUGZILLA-3_3_2
+/search-specific.html.tmpl/1.24/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_3_2
+/tabs.html.tmpl/1.7/Mon Aug 20 18:25:07 2007//TBUGZILLA-3_3_2
+/type-select.html.tmpl/1.2/Sat Dec  6 21:12:51 2008//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/search/CVS/Tag b/template/en/default/search/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/search/CVS/Tag
+++ b/template/en/default/search/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/setup/CVS/Entries b/template/en/default/setup/CVS/Entries
index ca7db186c429a91eb6dbdff5387d6102ecc53f5b..71caf8573b9e51636ea54c8fdd59d37af264234d 100644
--- a/template/en/default/setup/CVS/Entries
+++ b/template/en/default/setup/CVS/Entries
@@ -1,2 +1,2 @@
-/strings.txt.pl/1.8/Mon Jan 28 00:54:59 2008//TBUGZILLA-3_3_1
+/strings.txt.pl/1.10/Fri Jan 16 03:37:53 2009//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/setup/CVS/Tag b/template/en/default/setup/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/setup/CVS/Tag
+++ b/template/en/default/setup/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/default/setup/strings.txt.pl b/template/en/default/setup/strings.txt.pl
index 51e1ac0597b1249957305e3ffd942ee92ecdc6be..d2a846d51820753c68a98a6007bcac40be93eabe 100644
--- a/template/en/default/setup/strings.txt.pl
+++ b/template/en/default/setup/strings.txt.pl
@@ -33,6 +33,15 @@
     checking_dbd      => 'Checking available perl DBD modules...',
     checking_optional => 'The following Perl modules are optional:',
     checking_modules  => 'Checking perl modules...',
+    commands_dbd      => <<EOT,
+YOU MUST RUN ONE OF THE FOLLOWING COMMANDS (depending on which database
+you use):
+EOT
+    commands_optional => 'COMMANDS TO INSTALL OPTIONAL MODULES:',
+    commands_required => <<EOT,
+COMMANDS TO INSTALL REQUIRED MODULES (You *must* run all these commands
+and then re-run checksetup.pl):
+EOT
     done => 'done.',
     header => "* This is Bugzilla ##bz_ver## on perl ##perl_ver##\n"
             . "* Running on ##os_name## ##os_ver##",
@@ -52,10 +61,63 @@ then the value of the ##column## column that needs to be fixed:
 
 EOT
     install_module => 'Installing ##module## version ##version##...',
+    min_version_required => "Minimum version required: ",
+
+# Note: When translating these "modules" messages, don't change the formatting
+# if possible, because there is hardcoded formatting in 
+# Bugzilla::Install::Requirements to match the box formatting.
+    modules_message_db => <<EOT,
+***********************************************************************
+* DATABASE ACCESS                                                     *
+***********************************************************************
+* In order to access your database, Bugzilla requires that the        *
+* correct "DBD" module be installed for the database that you are     *
+* running. See below for the correct command to run to install the    *
+* appropriate module for your database.                               *
+EOT
+    modules_message_optional => <<EOT,
+***********************************************************************
+* OPTIONAL MODULES                                                    *
+***********************************************************************
+* Certain Perl modules are not required by Bugzilla, but by           *
+* installing the latest version you gain access to additional         *
+* features.                                                           *
+*                                                                     *
+* The optional modules you do not have installed are listed below,    *
+* with the name of the feature they enable. Below that table are the  *
+* commands to install each module.                                    *
+EOT
+    modules_message_required => <<EOT,
+***********************************************************************
+* REQUIRED MODULES                                                    *
+***********************************************************************
+* Bugzilla requires you to install some Perl modules which are either *
+* missing from your system, or the version on your system is too old. *
+* See below for commands to install these modules.                    *
+EOT
+
     module_found => "found v##ver##",
     module_not_found => "not found",
     module_ok => 'ok',
     module_unknown_version => "found unknown version",
+    ppm_repo_add => <<EOT,
+***********************************************************************
+* Note For Windows Users                                              *
+***********************************************************************
+* In order to install the modules listed below, you first have to run * 
+* the following command as an Administrator:                          *
+*                                                                     *
+*   ppm repo add theory58S ##theory_url##
+EOT
+    ppm_repo_up => <<EOT,
+*                                                                     *
+* Then you have to do (also as an Administrator):                     *
+*                                                                     *
+*   ppm repo up theory58S                                             *
+*                                                                     *
+* Do that last command over and over until you see "theory58S" at the *
+* top of the displayed list.                                          *
+EOT
     template_precompile   => "Precompiling templates...",
     template_removing_dir => "Removing existing compiled templates...",
 );
diff --git a/template/en/default/welcome-admin.html.tmpl b/template/en/default/welcome-admin.html.tmpl
index ff26fcbc9f1391d74bab5f6033ac13916f87289a..6e5e36ba4e17d2b2c6bc5d518f5a99f717a28518 100644
--- a/template/en/default/welcome-admin.html.tmpl
+++ b/template/en/default/welcome-admin.html.tmpl
@@ -34,11 +34,11 @@
   The goal of this page is to inform you about the last steps required to set up
   your installation correctly.</p>
 
-  <p>As an administrator, several administrative links are available at the bottom of
-  this page. These links will always be visible, on all pages. Among these links,
-  you must visit at least the <a href="editparams.cgi">Parameters</a> one,
-  which is the page from where you can set all important parameters for this installation.
-  By clicking this link, you will be able to set among others:</p>
+  <p>As an administrator, you have access to all administrative pages, accessible from
+  the <a href="admin.cgi">Administration</a> link visible at the bottom of this page.
+  This link will always be visible, on all pages. From there, you must visit at least
+  the <a href="editparams.cgi">Parameters</a> page, from where you can set all important
+  parameters for this installation; among others:</p>
 
   <ul>
     <li><a href="editparams.cgi?section=core#maintainer">maintainer</a>, the person
diff --git a/template/en/default/whine/CVS/Entries b/template/en/default/whine/CVS/Entries
index 0e0c085d3b5c1398b39df06d505ee7e1be3ddc6c..7f3c529f00f6f82beb102df8fa8eb79d008bbdca 100644
--- a/template/en/default/whine/CVS/Entries
+++ b/template/en/default/whine/CVS/Entries
@@ -1,5 +1,5 @@
-/mail.html.tmpl/1.7/Mon Aug 20 18:25:09 2007//TBUGZILLA-3_3_1
-/mail.txt.tmpl/1.7/Mon Aug 20 18:25:09 2007//TBUGZILLA-3_3_1
-/multipart-mime.txt.tmpl/1.6/Mon Aug 20 18:25:09 2007//TBUGZILLA-3_3_1
-/schedule.html.tmpl/1.13/Mon Sep  8 20:37:51 2008//TBUGZILLA-3_3_1
+/mail.html.tmpl/1.7/Mon Aug 20 18:25:09 2007//TBUGZILLA-3_3_2
+/mail.txt.tmpl/1.7/Mon Aug 20 18:25:09 2007//TBUGZILLA-3_3_2
+/multipart-mime.txt.tmpl/1.6/Mon Aug 20 18:25:09 2007//TBUGZILLA-3_3_2
+/schedule.html.tmpl/1.13/Mon Sep  8 20:37:51 2008//TBUGZILLA-3_3_2
 D
diff --git a/template/en/default/whine/CVS/Tag b/template/en/default/whine/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/default/whine/CVS/Tag
+++ b/template/en/default/whine/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/template/en/extension/CVS/Entries b/template/en/extension/CVS/Entries
index 2c245a28a6799600695b3342ebcb4c579f7e83fd..3b2b465d9618f9b2f125817bd381c886eb2038ae 100644
--- a/template/en/extension/CVS/Entries
+++ b/template/en/extension/CVS/Entries
@@ -1,2 +1,2 @@
-/filterexceptions.pl/1.2/Sat Feb 25 23:10:53 2006//TBUGZILLA-3_3_1
+/filterexceptions.pl/1.2/Sat Feb 25 23:10:53 2006//TBUGZILLA-3_3_2
 D
diff --git a/template/en/extension/CVS/Tag b/template/en/extension/CVS/Tag
index fbedea21ce8ecdf9268a4ea4704638ca4869f24c..528fc77a55e72ffd9dae757fb7a20efa54558691 100644
--- a/template/en/extension/CVS/Tag
+++ b/template/en/extension/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-3_3_1
+NBUGZILLA-3_3_2
diff --git a/token.cgi b/token.cgi
index 34a0173760625229f9649191a439b6c99da6008b..53538004267926d353cd8056cf879bb8b08f1399 100755
--- a/token.cgi
+++ b/token.cgi
@@ -37,6 +37,7 @@ use Bugzilla::Error;
 use Bugzilla::Token;
 use Bugzilla::User;
 
+use Date::Format;
 use Date::Parse;
 
 my $dbh = Bugzilla->dbh;
@@ -351,7 +352,7 @@ sub request_create_account {
     my (undef, $date, $login_name) = Bugzilla::Token::GetTokenData($token);
     $vars->{'token'} = $token;
     $vars->{'email'} = $login_name . Bugzilla->params->{'emailsuffix'};
-    $vars->{'date'} = str2time($date);
+    $vars->{'expiration_ts'} = ctime(str2time($date) + MAX_TOKEN_AGE * 86400);
 
     # When 'ssl' equals 'always' or 'authenticated sessions', 
     # we want this form to always be over SSL.
diff --git a/userprefs.cgi b/userprefs.cgi
index 1bf2d7f5f3ea8cdfb803fd36b8afdc089e43b8e6..cffae38ccbdfdd62dbf810da5b45cee121d41c61 100755
--- a/userprefs.cgi
+++ b/userprefs.cgi
@@ -127,7 +127,6 @@ sub SaveAccount {
             $cgi->param('Bugzilla_password') 
               || ThrowUserError("old_password_required");
 
-            use Bugzilla::Token;
             # Block multiple email changes for the same user.
             if (Bugzilla::Token::HasEmailChangeToken($user->id)) {
                 ThrowUserError("email_change_in_progress");
@@ -183,6 +182,7 @@ sub SaveSettings {
     foreach my $name (@setting_list) {
         next if ! ($settings->{$name}->{'is_enabled'});
         my $value = $cgi->param($name);
+        next unless defined $value;
         my $setting = new Bugzilla::User::Setting($name);
 
         if ($value eq "${name}-isdefault" ) {
@@ -517,6 +517,9 @@ trick_taint($current_tab_name);
 
 $vars->{'current_tab_name'} = $current_tab_name;
 
+my $token = $cgi->param('token');
+check_token_data($token, 'edit_user_prefs') if $cgi->param('dosave');
+
 # Do any saving, and then display the current tab.
 SWITCH: for ($current_tab_name) {
     /^account$/ && do {
@@ -547,6 +550,11 @@ SWITCH: for ($current_tab_name) {
                    { current_tab_name => $current_tab_name });
 }
 
+delete_token($token) if $cgi->param('dosave');
+if ($current_tab_name ne 'permissions') {
+    $vars->{'token'} = issue_session_token('edit_user_prefs');
+}
+
 # Generate and return the UI (HTML page) from the appropriate template.
 print $cgi->header();
 $template->process("account/prefs/prefs.html.tmpl", $vars)
diff --git a/votes.cgi b/votes.cgi
index af41af0e48111f0a72ee49740d0740871221d46c..3e33d8fa9a4253157cff7465581634953b0130f0 100755
--- a/votes.cgi
+++ b/votes.cgi
@@ -52,7 +52,7 @@ my $bug_id = $cgi->param('bug_id');
 my $action = $cgi->param('action') || ($bug_id ? "show_bug" : "show_user");
 
 if ($action eq "show_bug" ||
-    ($action eq "show_user" && defined $cgi->param('user')))
+    ($action eq "show_user" && defined $cgi->param('user_id')))
 {
     Bugzilla->login();
 }
@@ -103,7 +103,9 @@ sub show_bug {
 
     $vars->{'bug_id'} = $bug_id;
     $vars->{'users'} =
-        $dbh->selectall_arrayref('SELECT profiles.login_name, votes.vote_count 
+        $dbh->selectall_arrayref('SELECT profiles.login_name,
+                                         profiles.userid AS id,
+                                         votes.vote_count
                                     FROM votes
                               INNER JOIN profiles 
                                       ON profiles.userid = votes.who
@@ -127,11 +129,11 @@ sub show_user {
     # If a bug_id is given, and we're editing, we'll add it to the votes list.
     $bug_id ||= "";
 
-    my $name = $cgi->param('user') || $user->login;
-    my $who = login_to_id($name, THROW_ERROR);
-    my $userid = $user->id;
+    my $who_id = $cgi->param('user_id') || $user->id;
+    my $who = Bugzilla::User->check({ id => $who_id });
 
-    my $canedit = (Bugzilla->params->{'usevotes'} && $userid == $who) ? 1 : 0;
+    my $canedit = (Bugzilla->params->{'usevotes'} && $user->id == $who->id) 
+                  ? 1 : 0;
 
     $dbh->bz_start_transaction();
 
@@ -140,10 +142,10 @@ sub show_user {
         # in the vote table, just so that things display right.
         my $has_votes = $dbh->selectrow_array('SELECT vote_count FROM votes 
                                                WHERE bug_id = ? AND who = ?',
-                                               undef, ($bug_id, $who));
+                                               undef, ($bug_id, $who->id));
         if (!$has_votes) {
             $dbh->do('INSERT INTO votes (who, bug_id, vote_count) 
-                      VALUES (?, ?, 0)', undef, ($who, $bug_id));
+                      VALUES (?, ?, 0)', undef, ($who->id, $bug_id));
         }
     }
 
@@ -168,7 +170,7 @@ sub show_user {
                                        WHERE votes.who = ?
                                          AND bugs.product_id = ?
                                     ORDER BY votes.bug_id',
-                                      undef, ($who, $product->id));
+                                      undef, ($who->id, $product->id));
 
         foreach (@$vote_list) {
             my ($id, $count, $summary) = @$_;
@@ -206,7 +208,7 @@ sub show_user {
     $dbh->bz_commit_transaction();
 
     $vars->{'canedit'} = $canedit;
-    $vars->{'voting_user'} = { "login" => $name };
+    $vars->{'voting_user'} = { "login" => $who->name };
     $vars->{'products'} = \@products;
     $vars->{'bug_id'} = $bug_id;
     $vars->{'all_bug_ids'} = \@all_bug_ids;
diff --git a/whine.pl b/whine.pl
index e49e4816a26d5cd1224d2fcecac3bc84b168eaa5..3eb757dd4d154c46bebfdd82930937dfa52f422f 100755
--- a/whine.pl
+++ b/whine.pl
@@ -34,6 +34,7 @@ use Bugzilla::Search;
 use Bugzilla::User;
 use Bugzilla::Mailer;
 use Bugzilla::Util;
+use Bugzilla::Group;
 
 # create some handles that we'll need
 my $template = Bugzilla->template;
@@ -250,7 +251,7 @@ sub get_next_event {
                         $groupname, $owner);
                     if ($group_id) {
                         my $glist = join(',',
-                            @{Bugzilla::User->flatten_group_membership(
+                            @{Bugzilla::Group->flatten_group_membership(
                             $group_id)});
                         $sth = $dbh->prepare("SELECT user_id FROM " .
                                              "user_group_map " .