]> git.donarmstrong.com Git - deb_pkgs/libhtml-calendarmonth-perl.git/commitdiff
New upstream release
authorDon Armstrong <don@donarmstrong.com>
Thu, 20 Jan 2011 00:38:48 +0000 (00:38 +0000)
committerDon Armstrong <don@donarmstrong.com>
Thu, 20 Jan 2011 00:38:48 +0000 (00:38 +0000)
38 files changed:
Changes
LICENSE [new file with mode: 0644]
MANIFEST
MANIFEST.SKIP [new file with mode: 0644]
META.json [new file with mode: 0644]
META.yml [deleted file]
Makefile.PL
README
debian/changelog
dist.ini [new file with mode: 0644]
lib/HTML/CalendarMonth.pm
lib/HTML/CalendarMonth/DateTool.pm
lib/HTML/CalendarMonth/DateTool/Cal.pm
lib/HTML/CalendarMonth/DateTool/DateCalc.pm
lib/HTML/CalendarMonth/DateTool/DateManip.pm
lib/HTML/CalendarMonth/DateTool/DateTime.pm
lib/HTML/CalendarMonth/DateTool/Ncal.pm [new file with mode: 0644]
lib/HTML/CalendarMonth/DateTool/TimeLocal.pm
lib/HTML/CalendarMonth/Locale.pm
t/01_autodetect.t
t/02_timelocal.t
t/03_datetime.t
t/04_datemanip.t
t/05_datecalc.t
t/06_cal.t
t/07_ncal.t [new file with mode: 0644]
t/20_i8n.t
t/21_narrow.t [new file with mode: 0644]
t/author-critic.t [new file with mode: 0644]
t/dat/bulk.dat [new file with mode: 0644]
t/dat/i8n.dat [new file with mode: 0644]
t/dat/narrow.dat [new file with mode: 0644]
t/dat/odd.dat [new file with mode: 0644]
t/dat/woy.dat [new file with mode: 0644]
t/release-pod-coverage.t [new file with mode: 0644]
t/release-pod-syntax.t [new file with mode: 0644]
t/test.dat [deleted file]
t/testload.pm

diff --git a/Changes b/Changes
index 9c7f964db0bc86f62c37ed17729f70c9af84d11a..6d946d9409a0adbf0cb6c199f9d877e497aff862 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,4 +1,26 @@
-Revision history for Perl extension HTML-CalendarMonth.
+Revision history for HTML-CalendarMonth
+
+1.25  Fri Sep 24 03:09:38 EDT 2010
+        - Switched to File::Which for finding cal/ncal
+        - Added some sanity checks for the cal/ncal output
+
+1.23  Sat Jun 12 21:12:45 EDT 2010
+        - Updated interface with DateTime::Locale (will eventually
+          require another update when Locale::CLDR is released
+        - Deprecated offsets; too much complexity for little gain
+        - Fixed week-of-year bug in end-of-year edge cases (first
+          week has higher number than the next) RT #53795
+        - Made row globbing optimize on row elements if possible
+        - Updated default HTML style to be more CSS friendly (inspired
+          by RT #37548)
+        - Added option for semantic CSS classes on cells (past, present,
+          future) ala RT #37549
+        - Updated test data
+        - Improved date tool auto detect
+        - Fixed Date::Manip parse error for negative day deltas
+        - Doc updates
+        - Test updates
+        - Added linux 'ncal' harness
 
 1.19  Sat Mar 15 00:47:26 EDT 2008
         - Fixed longstanding test failure due to HTML::Tree (properly)
diff --git a/LICENSE b/LICENSE
new file mode 100644 (file)
index 0000000..e26392a
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,377 @@
+This software is copyright (c) 2010 by Matthew Sisk.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+Terms of the Perl programming language system itself
+
+a) the GNU General Public License as published by the Free
+   Software Foundation; either version 1, or (at your option) any
+   later version, or
+b) the "Artistic License"
+
+--- The GNU General Public License, Version 1, February 1989 ---
+
+This software is Copyright (c) 2010 by Matthew Sisk.
+
+This is free software, licensed under:
+
+  The GNU General Public License, Version 1, February 1989
+
+                   GNU GENERAL PUBLIC LICENSE
+                    Version 1, February 1989
+
+ Copyright (C) 1989 Free Software Foundation, Inc.
+                59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The license agreements of most software companies try to keep users
+at the mercy of those companies.  By contrast, our General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  The
+General Public License applies to the Free Software Foundation's
+software and to any other program whose authors commit to using it.
+You can use it for your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Specifically, the General Public License is designed to make
+sure that you have the freedom to give away or sell copies of free
+software, that you receive source code or can get it if you want it,
+that you can change the software or use pieces of it in new free
+programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of a such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must tell them their rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any program or other work which
+contains a notice placed by the copyright holder saying it may be
+distributed under the terms of this General Public License.  The
+"Program", below, refers to any such program or work, and a "work based
+on the Program" means either the Program or any work containing the
+Program or a portion of it, either verbatim or with modifications.  Each
+licensee is addressed as "you".
+
+  1. You may copy and distribute verbatim copies of the Program's source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this
+General Public License and to the absence of any warranty; and give any
+other recipients of the Program a copy of this General Public License
+along with the Program.  You may charge a fee for the physical act of
+transferring a copy.
+
+  2. You may modify your copy or copies of the Program or any portion of
+it, and copy and distribute such modifications under the terms of Paragraph
+1 above, provided that you also do the following:
+
+    a) cause the modified files to carry prominent notices stating that
+    you changed the files and the date of any change; and
+
+    b) cause the whole of any work that you distribute or publish, that
+    in whole or in part contains the Program or any part thereof, either
+    with or without modifications, to be licensed at no charge to all
+    third parties under the terms of this General Public License (except
+    that you may choose to grant warranty protection to some or all
+    third parties, at your option).
+
+    c) If the modified program normally reads commands interactively when
+    run, you must cause it, when started running for such interactive use
+    in the simplest and most usual way, to print or display an
+    announcement including an appropriate copyright notice and a notice
+    that there is no warranty (or else, saying that you provide a
+    warranty) and that users may redistribute the program under these
+    conditions, and telling the user how to view a copy of this General
+    Public License.
+
+    d) You may charge a fee for the physical act of transferring a
+    copy, and you may at your option offer warranty protection in
+    exchange for a fee.
+
+Mere aggregation of another independent work with the Program (or its
+derivative) on a volume of a storage or distribution medium does not bring
+the other work under the scope of these terms.
+
+  3. You may copy and distribute the Program (or a portion or derivative of
+it, under Paragraph 2) in object code or executable form under the terms of
+Paragraphs 1 and 2 above provided that you also do one of the following:
+
+    a) accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of
+    Paragraphs 1 and 2 above; or,
+
+    b) accompany it with a written offer, valid for at least three
+    years, to give any third party free (except for a nominal charge
+    for the cost of distribution) a complete machine-readable copy of the
+    corresponding source code, to be distributed under the terms of
+    Paragraphs 1 and 2 above; or,
+
+    c) accompany it with the information you received as to where the
+    corresponding source code may be obtained.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form alone.)
+
+Source code for a work means the preferred form of the work for making
+modifications to it.  For an executable file, complete source code means
+all the source code for all modules it contains; but, as a special
+exception, it need not include source code for modules which are standard
+libraries that accompany the operating system on which the executable
+file runs, or for standard header files or definitions files that
+accompany that operating system.
+
+  4. You may not copy, modify, sublicense, distribute or transfer the
+Program except as expressly provided under this General Public License.
+Any attempt otherwise to copy, modify, sublicense, distribute or transfer
+the Program is void, and will automatically terminate your rights to use
+the Program under this License.  However, parties who have received
+copies, or rights to use copies, from you under this General Public
+License will not have their licenses terminated so long as such parties
+remain in full compliance.
+
+  5. By copying, distributing or modifying the Program (or any work based
+on the Program) you indicate your acceptance of this license to do so,
+and all its terms and conditions.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these
+terms and conditions.  You may not impose any further restrictions on the
+recipients' exercise of the rights granted herein.
+
+  7. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of the license which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+the license, you may choose any version ever published by the Free Software
+Foundation.
+
+  8. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+
+       Appendix: How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to humanity, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
+terms.
+
+  To do so, attach the following notices to the program.  It is safest to
+attach them to the start of each source file to most effectively convey
+the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 1, or (at your option)
+    any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software Foundation,
+    Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19xx name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the
+appropriate parts of the General Public License.  Of course, the
+commands you use may be called something other than `show w' and `show
+c'; they could even be mouse-clicks or menu items--whatever suits your
+program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  program `Gnomovision' (a program to direct compilers to make passes
+  at assemblers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
+--- The Artistic License 1.0 ---
+
+This software is Copyright (c) 2010 by Matthew Sisk.
+
+This is free software, licensed under:
+
+  The Artistic License 1.0
+
+The Artistic License
+
+Preamble
+
+The intent of this document is to state the conditions under which a Package
+may be copied, such that the Copyright Holder maintains some semblance of
+artistic control over the development of the package, while giving the users of
+the package the right to use and distribute the Package in a more-or-less
+customary fashion, plus the right to make reasonable modifications.
+
+Definitions:
+
+  - "Package" refers to the collection of files distributed by the Copyright
+    Holder, and derivatives of that collection of files created through
+    textual modification. 
+  - "Standard Version" refers to such a Package if it has not been modified,
+    or has been modified in accordance with the wishes of the Copyright
+    Holder. 
+  - "Copyright Holder" is whoever is named in the copyright or copyrights for
+    the package. 
+  - "You" is you, if you're thinking about copying or distributing this Package.
+  - "Reasonable copying fee" is whatever you can justify on the basis of media
+    cost, duplication charges, time of people involved, and so on. (You will
+    not be required to justify it to the Copyright Holder, but only to the
+    computing community at large as a market that must bear the fee.) 
+  - "Freely Available" means that no fee is charged for the item itself, though
+    there may be fees involved in handling the item. It also means that
+    recipients of the item may redistribute it under the same conditions they
+    received it. 
+
+1. You may make and give away verbatim copies of the source form of the
+Standard Version of this Package without restriction, provided that you
+duplicate all of the original copyright notices and associated disclaimers.
+
+2. You may apply bug fixes, portability fixes and other modifications derived
+from the Public Domain or from the Copyright Holder. A Package modified in such
+a way shall still be considered the Standard Version.
+
+3. You may otherwise modify your copy of this Package in any way, provided that
+you insert a prominent notice in each changed file stating how and when you
+changed that file, and provided that you do at least ONE of the following:
+
+  a) place your modifications in the Public Domain or otherwise make them
+     Freely Available, such as by posting said modifications to Usenet or an
+     equivalent medium, or placing the modifications on a major archive site
+     such as ftp.uu.net, or by allowing the Copyright Holder to include your
+     modifications in the Standard Version of the Package.
+
+  b) use the modified Package only within your corporation or organization.
+
+  c) rename any non-standard executables so the names do not conflict with
+     standard executables, which must also be provided, and provide a separate
+     manual page for each non-standard executable that clearly documents how it
+     differs from the Standard Version.
+
+  d) make other distribution arrangements with the Copyright Holder.
+
+4. You may distribute the programs of this Package in object code or executable
+form, provided that you do at least ONE of the following:
+
+  a) distribute a Standard Version of the executables and library files,
+     together with instructions (in the manual page or equivalent) on where to
+     get the Standard Version.
+
+  b) accompany the distribution with the machine-readable source of the Package
+     with your modifications.
+
+  c) accompany any non-standard executables with their corresponding Standard
+     Version executables, giving the non-standard executables non-standard
+     names, and clearly documenting the differences in manual pages (or
+     equivalent), together with instructions on where to get the Standard
+     Version.
+
+  d) make other distribution arrangements with the Copyright Holder.
+
+5. You may charge a reasonable copying fee for any distribution of this
+Package.  You may charge any fee you choose for support of this Package. You
+may not charge a fee for this Package itself. However, you may distribute this
+Package in aggregate with other (possibly commercial) programs as part of a
+larger (possibly commercial) software distribution provided that you do not
+advertise this Package as a product of your own.
+
+6. The scripts and library files supplied as input to or produced as output
+from the programs of this Package do not automatically fall under the copyright
+of this Package, but belong to whomever generated them, and may be sold
+commercially, and may be aggregated with this Package.
+
+7. C or perl subroutines supplied by you and linked into this Package shall not
+be considered part of this Package.
+
+8. The name of the Copyright Holder may not be used to endorse or promote
+products derived from this software without specific prior written permission.
+
+9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+The End
+
index c919613c8c6f7cf05cc752d3e9c441d95155e7f1..54556bf983f85313943c3a3ee5f10aa837bf28e4 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,15 +1,20 @@
-README
 Changes
+LICENSE
 MANIFEST
+MANIFEST.SKIP
+META.json
 Makefile.PL
+README
+dist.ini
 lib/HTML/CalendarMonth.pm
-lib/HTML/CalendarMonth/Locale.pm
 lib/HTML/CalendarMonth/DateTool.pm
-lib/HTML/CalendarMonth/DateTool/TimeLocal.pm
 lib/HTML/CalendarMonth/DateTool/Cal.pm
 lib/HTML/CalendarMonth/DateTool/DateCalc.pm
 lib/HTML/CalendarMonth/DateTool/DateManip.pm
 lib/HTML/CalendarMonth/DateTool/DateTime.pm
+lib/HTML/CalendarMonth/DateTool/Ncal.pm
+lib/HTML/CalendarMonth/DateTool/TimeLocal.pm
+lib/HTML/CalendarMonth/Locale.pm
 t/00_basic.t
 t/01_autodetect.t
 t/02_timelocal.t
@@ -17,7 +22,15 @@ t/03_datetime.t
 t/04_datemanip.t
 t/05_datecalc.t
 t/06_cal.t
+t/07_ncal.t
 t/20_i8n.t
-t/test.dat
+t/21_narrow.t
+t/author-critic.t
+t/dat/bulk.dat
+t/dat/i8n.dat
+t/dat/narrow.dat
+t/dat/odd.dat
+t/dat/woy.dat
+t/release-pod-coverage.t
+t/release-pod-syntax.t
 t/testload.pm
-META.yml                                 Module meta-data (added by MakeMaker)
diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP
new file mode 100644 (file)
index 0000000..8d5c2de
--- /dev/null
@@ -0,0 +1,4 @@
+\.pl$
+\.out$
+\.old$
+\.bak$
diff --git a/META.json b/META.json
new file mode 100644 (file)
index 0000000..6b466b3
--- /dev/null
+++ b/META.json
@@ -0,0 +1,48 @@
+{
+   "abstract" : "Generate and manipulate HTML calendar months",
+   "author" : [
+      "Matthew P. Sisk <msisk@cpan.org>"
+   ],
+   "dynamic_config" : 0,
+   "generated_by" : "Dist::Zilla version 4.101612, CPAN::Meta::Converter version 2.101610",
+   "license" : [
+      "perl_5"
+   ],
+   "meta-spec" : {
+      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+      "version" : "2"
+   },
+   "name" : "HTML-CalendarMonth",
+   "prereqs" : {
+      "configure" : {
+         "requires" : {
+            "ExtUtils::MakeMaker" : "6.31"
+         }
+      },
+      "runtime" : {
+         "requires" : {
+            "Carp" : 0,
+            "Class::Accessor" : 0,
+            "DateTime::Locale" : "0.45",
+            "File::Which" : 0,
+            "HTML::ElementTable" : "1.18",
+            "Time::Local" : 0,
+            "constant" : 0
+         }
+      },
+      "test" : {
+         "requires" : {
+            "Cwd" : 0,
+            "English" : 0,
+            "Exporter" : 0,
+            "File::Spec" : 0,
+            "FindBin" : 0,
+            "Test::More" : 0,
+            "vars" : 0
+         }
+      }
+   },
+   "release_status" : "stable",
+   "version" : "1.25"
+}
+
diff --git a/META.yml b/META.yml
deleted file mode 100644 (file)
index fcb9c14..0000000
--- a/META.yml
+++ /dev/null
@@ -1,17 +0,0 @@
---- #YAML:1.0
-name:                HTML-CalendarMonth
-version:             1.19
-abstract:            ~
-license:             ~
-author:              ~
-generated_by:        ExtUtils::MakeMaker version 6.42
-distribution_type:   module
-requires:     
-    Class::Accessor:               0
-    DateTime::Locale:              0
-    File::Spec:                    0
-    HTML::ElementTable:            1.15
-    Time::Local:                   0
-meta-spec:
-    url:     http://module-build.sourceforge.net/META-spec-v1.3.html
-    version: 1.3
index c293ba754543953e913bd644a4b1d31e59ef3437..dbaf014ee391d54a57ce04023ccbb93245bd7244 100644 (file)
@@ -1,55 +1,65 @@
-# Check for non-standard modules used by this module.
-use ExtUtils::MakeMaker;
 
-$DISTNAME = "HTML-CalendarMonth";
-$NAME = "HTML::CalendarMonth";
+use strict;
+use warnings;
 
-$| = 1;
 
-print "Checking for DateTime, Date::Calc or Date::Manip ... ";
-unless (eval "require DateTime"  ||
-        eval "require Date::Calc" ||
-        eval "require Date::Manip") {
-  print " failed\n";
-  print <<EOT;
-Could not locate DateTime, Date::Calc, or Date::Manip (don't worry).
 
-The presence of One of these modules is only required if you want to use
-week-of- year numbering, or if you plan on manipulating dates that
-exceed the ability of localtime() (Prior to Jan 1, 1970 or after 2038).
+use ExtUtils::MakeMaker 6.31;
 
-You can obtain any of these modules from CPAN:
-    http://search.cpan.org/search?dist=DateTime
-    http://search.cpan.org/search?dist=Date-Calc
-    http://search.cpan.org/search?dist=DateManip
 
-EOT
-  sleep(2);  # Don't hurry too much
-}
-else {
-  ++$found_date_mods;
+
+my %WriteMakefileArgs = (
+  'ABSTRACT' => 'Generate and manipulate HTML calendar months',
+  'AUTHOR' => 'Matthew P. Sisk <msisk@cpan.org>',
+  'BUILD_REQUIRES' => {
+    'Cwd' => '0',
+    'English' => '0',
+    'Exporter' => '0',
+    'File::Spec' => '0',
+    'FindBin' => '0',
+    'Test::More' => '0',
+    'vars' => '0'
+  },
+  'CONFIGURE_REQUIRES' => {
+    'ExtUtils::MakeMaker' => '6.31'
+  },
+  'DISTNAME' => 'HTML-CalendarMonth',
+  'EXE_FILES' => [],
+  'LICENSE' => 'perl',
+  'NAME' => 'HTML::CalendarMonth',
+  'PREREQ_PM' => {
+    'Carp' => '0',
+    'Class::Accessor' => '0',
+    'DateTime::Locale' => '0.45',
+    'File::Which' => '0',
+    'HTML::ElementTable' => '1.18',
+    'Time::Local' => '0',
+    'constant' => '0'
+  },
+  'VERSION' => '1.25',
+  'test' => {
+    'TESTS' => 't/*.t'
+  }
+);
+
+
+unless ( eval { ExtUtils::MakeMaker->VERSION(6.56) } ) {
+  my $br = delete $WriteMakefileArgs{BUILD_REQUIRES};
+  my $pp = $WriteMakefileArgs{PREREQ_PM};
+  for my $mod ( keys %$br ) {
+    if ( exists $pp->{$mod} ) {
+      $pp->{$mod} = $br->{$mod} if $br->{$mod} > $pp->{$mod};
+    }
+    else {
+      $pp->{$mod} = $br->{$mod};
+    }
+  }
 }
-print " ok\n" if $found_date_mods;
-
-# Time to make a makefile
-
-use ExtUtils::MakeMaker;
-
-# See lib/ExtUtils/MakeMaker.pm for details of how to influence
-# the contents of the Makefile that is written.
-WriteMakefile(
-              DISTNAME     => $DISTNAME,
-              NAME         => $NAME,
-              VERSION_FROM => 'lib/HTML/CalendarMonth.pm',
-              PREREQ_PM    => {
-                               Time::Local        => 0,
-                               HTML::ElementTable => 1.15,
-                               DateTime::Locale   => 0,
-                               Class::Accessor    => 0,
-                               File::Spec         => 0,
-                              },
-              dist         => {
-                               COMPRESS => 'gzip -9f',
-                               SUFFIX => 'gz',
-                              },
-             );
+
+delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
+  unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
+
+WriteMakefile(%WriteMakefileArgs);
+
+
+
diff --git a/README b/README
index efd6c4031dafec03ec7a1e8b6abda6709526edff..d64588d9c7b85b1dd4963dbe02bf6ec176db944c 100644 (file)
--- a/README
+++ b/README
@@ -8,12 +8,11 @@ Calendars are represented as HTML::Element based structures, derived
 from the HTML::ElementTable class.
 
 The module includes support for 'week of the year' numbering, arbitrary
-1st day of the week definitions, and aliasing so that you can express
-any element in any language HTML can handle.
+1st day of the week definitions, and locale support.
 
 If you wish to use 'week of the year' numbering, or want to explore
 dates beyond the capability of the internal perl time functions, then
-you will need Date::Calc or Date::Manip.
+you will need Date::Calc, DateTime, or Date::Manip.
 
 INSTALLATION
 
@@ -67,6 +66,6 @@ W. for some helpful bug spotting.
 
 COPYRIGHT
 
-Copyright (c) 1999-2008 Matthew P. Sisk. All rights reserved. All wrongs
+Copyright (c) 1999-2010 Matthew P. Sisk. All rights reserved. All wrongs
 revenged. This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
index 320eae1544ee6203960a7af27a133fb08c0e2d49..3427b3004d7d4184c2348e9bf641acc2072de7a5 100644 (file)
@@ -1,3 +1,9 @@
+libhtml-calendarmonth-perl (1.25-1) UNRELEASED; urgency=low
+
+  * New upstream release
+
+ -- Don Armstrong <don@debian.org>  Wed, 19 Jan 2011 16:32:18 -0800
+
 libhtml-calendarmonth-perl (1.19-2) unstable; urgency=low
 
   * Fix FTBFS caused by new version of Date::Manip (closes: 571421)
diff --git a/dist.ini b/dist.ini
new file mode 100644 (file)
index 0000000..11692d6
--- /dev/null
+++ b/dist.ini
@@ -0,0 +1,34 @@
+name             = HTML-CalendarMonth
+author           = Matthew P. Sisk <msisk@cpan.org>
+license          = Perl_5
+copyright_holder = Matthew Sisk
+
+[VersionFromModule]
+
+[NextRelease]
+format =  %-5v %{eee LLL dd HH:MM:ss zzz yyyy}d
+
+[@Git]
+
+[GatherDir]
+[ManifestSkip]
+[PruneCruft]
+[MetaJSON]
+[MakeMaker]
+[License]
+
+[ExtraTests]
+[CriticTests]
+[PodSyntaxTests]
+[PodCoverageTests]
+
+[PkgVersion]
+
+[AutoPrereq]
+skip = ^testload|Date::Calc|Date::Manip|DateTime$
+
+[Manifest]
+
+[TestRelease]
+[ConfirmRelease]
+[UploadToCPAN]
index 8d4445647c685f787c2780f92630504da2e0f021..5ca73498c7e135449d994c17e108329e73fd9ffb 100644 (file)
 package HTML::CalendarMonth;
+BEGIN {
+  $HTML::CalendarMonth::VERSION = '1.25';
+}
 
 use strict;
-use vars qw($VERSION @ISA);
-
-$VERSION = '1.19';
-
+use warnings;
 use Carp;
 
-use HTML::ElementTable 1.15;
+BEGIN { $HTML::CalendarMonth::VERSION = 1.25 }
+
+use HTML::ElementTable 1.18;
 use HTML::CalendarMonth::Locale;
 use HTML::CalendarMonth::DateTool;
 
-@ISA = qw(HTML::CalendarMonth::Accessor HTML::ElementTable);
+use base qw( Class::Accessor HTML::ElementTable );
+
+my %Objects;
+
+# default complex attributes
+my %Calmonth_Attrs = (
+  head_m      => 1,     # month heading mode
+  head_y      => 1,     # year heading mode
+  head_dow    => 1,     # DOW heading mode
+  head_week   => 0,     # weak of year
+  year_span   => 2,     # default col span of year
 
-# Calmonth attribute method overrides
+  today       => undef, # DOM, if not now
+  week_begin  => 1,     # what DOW (1-7) is the 1st DOW?
+
+  historic    => 1,     # if able to choose, use ncal/cal
+                        # rather than Date::Calc, which
+                        # blindly extrapolates Gregorian
+
+  alias       => {},    # what gets displayed if not
+                        # the default item
+
+  month       => undef, # these will get initialized
+  year        => undef,
+
+  locale      => 'en_US',
+  full_days   => 0,
+  full_months => 1,
 
-sub row_offset {
-  # Displace calendar how many rows into table?
+  datetool    => undef,
+
+  enable_css   => 1,
+  semantic_css => 0,
+
+  # internal muckety muck
+  _cal      => undef,
+  _itoch    => {},
+  _ctoih    => {},
+  _caltool  => undef,
+  _weeknums => undef,
+  _today    => undef,
+
+  dow1st   => undef,
+  lastday  => undef,
+  loc      => undef,
+
+  # deprecated
+  row_offset => undef,
+  col_offset => undef,
+);
+
+__PACKAGE__->mk_accessors(keys %Calmonth_Attrs);
+
+# Class::Accessor overrides
+
+sub set {
+  my($self, $key) = splice(@_, 0, 2);
+  if (@_ == 1) {
+    $Objects{$self}{$key} = $_[0];
+  }
+  elsif (@_ > 1) {
+    $Objects{$self}{$key} = [@_];
+  }
+  else {
+    Carp::confess("wrong number of arguments received");
+  }
+}
+
+sub get {
   my $self = shift;
-  if (@_) {
-    $_[0] >= 0 or croak "Offset must be zero or more";
+  if (@_ == 1) {
+    return $Objects{$self}{$_[0]};
+  }
+  elsif ( @_ > 1 ) {
+    return @{$Objects{$self}{@_}};
+  }
+  else {
+    Carp::confess("wrong number of arguments received.");
   }
-  $self->SUPER::row_offset(@_);
 }
 
-sub col_offset {
-  # Displace calendar how many columns into table?
+sub _is_calmonth_attr { shift; exists $Calmonth_Attrs{shift()} }
+
+sub _set_defaults {
   my $self = shift;
-  if (@_) {
-    $_[0] >= 0 or croak "Offset must be zero or more";
+  foreach (keys %Calmonth_Attrs) {
+    $self->$_($Calmonth_Attrs{$_});
   }
-  $self->SUPER::col_offset(@_);
+  $self;
 }
 
+sub DESTROY { delete $Objects{shift()} }
+
+# last dow col, first week row
+
+use constant LDC => 6;
+use constant FWR => 2;
+
+# alias
+
 sub item_alias {
   my($self, $item) = splice(@_, 0, 2);
-  defined $item or croak "Item name required";
+  defined $item or croak "item name required";
   $self->alias->{$item} = shift if @_;
   $self->alias->{$item} || $item;
 }
 
 sub item_aliased {
   my($self, $item) = splice(@_, 0, 2);
-  defined $item or croak "Item name required.\n";
+  defined $item or croak "item name required.\n";
   defined $self->alias->{$item};
 }
 
-# Header Toggles
+# header toggles
 
 sub _head {
   # Set/test entire heading (month,year,and dow headers) (does not
@@ -68,10 +148,10 @@ sub _initialized {
   @_ ? $self->{_initialized} = shift : $self->{_initialized};
 }
 
-# Circa Interface
+# circa interface
 
 sub _date {
-  # Set target month, year
+  # set target month, year
   my $self = shift;
   if (@_) {
     my ($month, $year) = @_;
@@ -89,52 +169,42 @@ sub _date {
     $self->year($year);
     $month = $self->monthnum($month);
 
-    # Trigger _gencal...this should be the only place where this occurs
+    # trigger _gencal...this should be the only place where this occurs
     $self->_gencal;
   }
   return($self->month, $self->year);
 }
 
-# locale accessors
-sub locales                 { shift->loc->locales          }
-sub locale_days             { shift->loc->days             }
-sub locale_daynum           { shift->loc->daynum(@_)       }
-sub locale_months           { shift->loc->months           }
-sub locale_daynums          { shift->loc->daynums          }
-sub locale_minmatch         { shift->loc->minmatch         }
-sub locale_monthnum         { shift->loc->monthnum(@_)     }
-sub locale_monthnums        { shift->loc->monthnums        }
-sub locale_minmatch_pattern { shift->loc->minmatch_pattern }
-
 # class factory access
 
-sub class_element_table { 'HTML::ElementTable' }
-sub class_datetool { __PACKAGE__ . '::DateTool' }
-sub class_locale   { __PACKAGE__ . '::Locale' }
+use constant CLASS_HET      => 'HTML::ElementTable';
+use constant CLASS_DATETOOL => 'HTML::CalendarMonth::DateTool';
+use constant CLASS_LOCALE   => 'HTML::CalendarMonth::Locale';
 
 sub _gencal {
-  # Generate internal calendar representation
+  # generate internal calendar representation
   my $self = shift;
 
-  # New calendar...clobber day-specific settings
-  my $itoc = $self->_itoc({});
+  # new calendar...clobber day-specific settings
+  my $itoc = $self->_itoch({});
+  my $ctoi = $self->_ctoih({});
 
-  # Figure out dow of 1st day of the month as well as last day of the
+  # figure out dow of 1st day of the month as well as last day of the
   # month (uses date calculator backends)
   $self->_anchor_month();
 
   # row count for weeks in grid
-  my ($wcnt) = 0;
+  my $wcnt = 0;
 
   my ($dowc) = $self->dow1st;
-  my $skips  = $self->_caltool->skips;
+  my $skips  = $self->_caltool->_skips;
 
-  # For each day
+  # for each day
   foreach (1 .. $self->lastday) {
     next if $skips->{$_};
-    my $r = $wcnt + 2 + $self->row_offset;
-    my $c = $dowc + $self->col_offset;
-    # This is a bootstrap until we know the number of rows in the month.
+    my $r = $wcnt + FWR;
+    my $c = $dowc;
+    # this is a bootstrap until we know the number of rows in the month.
     $itoc->{$_} = [$r, $c];
     $dowc = ++$dowc % 7;
     ++$wcnt unless $dowc || $_ == $self->lastday;
@@ -142,32 +212,30 @@ sub _gencal {
 
   $self->{_week_rows} = $wcnt;
 
-  my $row_extent = $wcnt + 2;
-  my $col_extent = 6;
+  my $row_extent = $wcnt + FWR;
+  my $col_extent = LDC;
   $col_extent += 1 if $self->head_week;
 
-  $self->extent($row_extent + $self->row_offset,
-                $col_extent + $self->col_offset);
+  $self->SUPER::extent($row_extent, $col_extent);
 
-  # Table can contain the days now, so replace our bootstrap coordinates
+  # table can contain the days now, so replace our bootstrap coordinates
   # with references to the actual elements.
   foreach (keys %$itoc) {
     my $cellref = $self->cell(@{$itoc->{$_}});
-    $self->itoc($_, $cellref);
-    $self->ctoi($cellref, $_);
+    $self->_itoc($_, $cellref);
+    $self->_ctoi($cellref, $_);
   }
 
   # week num affects month/year spans
   my $width = $self->head_week ? 8 : 7;
 
   # month/year headers
-  my $cellref = $self->cell($self->row_offset, $self->col_offset);
-  $self->itoc($self->month, $cellref);
-  $self->ctoi($cellref, $self->month);
-  $cellref = $self->cell($self->row_offset,
-                         $width - $self->year_span + $self->col_offset);
-  $self->itoc($self->year,  $cellref);
-  $self->ctoi($cellref, $self->year);
+  my $cellref = $self->cell(0, 0);
+  $self->_itoc($self->month, $cellref);
+  $self->_ctoi($cellref, $self->month);
+  $cellref = $self->cell(0, $width - $self->year_span);
+  $self->_itoc($self->year,  $cellref);
+  $self->_ctoi($cellref, $self->year);
 
   $self->item($self->month)->replace_content($self->item_alias($self->month));
   $self->item($self->year)->replace_content($self->item_alias($self->year));
@@ -189,65 +257,152 @@ sub _gencal {
     }
   }
   else {
-    $self->row($self->first_row)->mask(1);
+    $self->row(0)->mask(1);
   }
 
   # DOW headers
   my $trans;
-  my $days = $self->locale_days;
+  my $days = $self->loc->days;
   foreach (0..$#$days) {
     # Transform for week_begin 1..7
     $trans = ($_ + $self->week_begin - 1) % 7;
-    my $cellref = $self->cell(1 + $self->row_offset, $_ + $self->col_offset);
-    $self->itoc($days->[$trans], $cellref);
-    $self->ctoi($cellref, $days->[$trans]);
+    my $cellref = $self->cell(1, $_);
+    $self->_itoc($days->[$trans], $cellref);
+    $self->_ctoi($cellref, $days->[$trans]);
   }
   if ($self->head_dow) {
     grep($self->item($_)->replace_content($self->item_alias($_)), @$days);
   }
   else {
-    $self->row($self->first_row + 1)->mask(1);
+    $self->row(1)->mask(1);
   }
 
-  # Week number column
+  # week number column
   if ($self->head_week) {
-    # Week nums can collide with days. Use "w" in front of the number
+    # week nums can collide with days. Use "w" in front of the number
     # for uniqueness, and automatically alias to just the number (unless
     # already aliased, of course).
     $self->_gen_week_nums();
     my $ws;
-    my $row_count = $self->first_week_row;
+    my $row_count = FWR;
     foreach ($self->_numeric_week_nums) {
       $ws = "w$_";
       $self->item_alias($ws, $_) unless $self->item_aliased($ws);
       my $cellref = $self->cell($row_count, $self->last_col);
-      $self->itoc($ws, $cellref);
-      $self->ctoi($cellref, $ws);
+      $self->_itoc($ws, $cellref);
+      $self->_ctoi($cellref, $ws);
       $self->item($ws)->replace_content($self->item_alias($ws));
       ++$row_count;
     }
   }
 
-  # Fill in days of the month
+  # fill in days of the month
   my $i;
-  foreach my $r ($self->first_week_row .. $self->last_row) {
-    foreach my $c ($self->first_col .. $self->last_week_col) {
+  foreach my $r (FWR .. $self->last_row) {
+    foreach my $c (0 .. LDC) {
       $self->cell($r,$c)->replace_content($self->item_alias($i))
         if ($i = $self->item_at($r,$c));
     }
   }
 
-  # Defaults
-  $self->table->attr(align => 'center');
-  $self->item($self->month)->attr(align => 'left') if $self->head_m;
-  $self->attr(bgcolor => 'white') unless defined $self->attr('bgcolor');
-  $self->attr(border => 1)        unless defined $self->attr('border');
-  $self->attr(cellspacing => 0)   unless defined $self->attr('cellspacing');
-  $self->attr(cellpadding => 0)   unless defined $self->attr('cellpadding');
+  # css classes
+  if ($self->enable_css) {
+    $self                             ->push_attr(class => 'hcm-table'     );
+    $self->item_row($self->dayheaders)->push_attr(class => 'hcm-day-head'  );
+    $self->item    ($self->year)      ->push_attr(class => 'hcm-year-head' );
+    $self->item    ($self->month)     ->push_attr(class => 'hcm-month-head');
+    $self->item    ($self->week_nums) ->push_attr(class => 'hcm-week-head' )
+      if $self->head_week;
+  }
+
+  if ($self->semantic_css) {
+    my $today = $self->today;
+    if ($today < 0) {
+      $self->item($self->days)->push_attr(class => 'hcm-past');
+    }
+    elsif ($today == 0) {
+      $self->item($self->days)->push_attr(class => 'hcm-future');
+    }
+    else {
+      for my $d ($self->days) {
+        if ($d < $today) {
+          $self->item($d)->push_attr(class => 'hcm-past');
+        }
+        elsif ($d > $today) {
+          $self->item($d)->push_attr(class => 'hcm-future');
+        }
+        else {
+          $self->item($d)->push_attr(class => 'hcm-today');
+        }
+      }
+    }
+  }
 
   $self;
 }
 
+sub default_css {
+  my $hbgc = '#DDDDDD';
+  my $bc   = '#888888';
+
+  my $str = <<__CSS;
+<style type="text/css">
+  <!--
+
+  table.hcm-table {
+    border: thin solid $bc;
+    border-collapse: collapse;
+    text-align: right;
+  }
+
+  .hcm-table td, th {
+    padding-left:  2px;
+    padding-right: 2px;
+  }
+
+  .hcm-year-head  {
+    text-align: right;
+    background-color: $hbgc;
+  }
+
+  .hcm-month-head {
+    text-align: left;
+    background-color: $hbgc;
+  }
+
+  .hcm-day-head   {
+    text-align: right;
+    background-color: $hbgc;
+    border-bottom: thin solid $bc;
+   }
+
+  .hcm-week-head  {
+    font-size: small;
+    background-color: $hbgc;
+    border-left: thin solid $bc;
+  }
+
+-->
+</style>
+__CSS
+
+}
+
+sub _datetool {
+  my $self = shift;
+  my $ct;
+  if (! ($ct = $self->_caltool)) {
+    $ct = $self->_caltool(CLASS_DATETOOL->new(
+      year     => $self->year,
+      month    => $self->month,
+      weeknum  => $self->head_week,
+      historic => $self->historic,
+      datetool => $self->datetool,
+    ));
+  }
+  $ct;
+}
+
 sub _anchor_month {
   # Figure out what our month grid looks like.
   # Let HTML::CalendarMonth::DateTool determine which method is
@@ -257,21 +412,12 @@ sub _anchor_month {
   my $month = $self->monthnum($self->month);
   my $year  = $self->year;
 
-  my $tool = $self->_caltool;
-  if (!$tool) {
-    $tool = $self->class_datetool->new(
-              year     => $year,
-              month    => $month,
-              weeknum  => $self->head_week,
-              historic => $self->historic,
-              datetool => $self->datetool,
-            );
-    $self->_caltool($tool);
-  }
-  my $dow1st  = $tool->dow1st;
+  my $tool = $self->_datetool;
+
+  my $dow1st  = $tool->dow1st; # 0..6, starting with Sun
   my $lastday = $tool->lastday;
 
-  # If the first day of the week is not Sunday...
+  # week_begin given as 1..7 starting with Sun
   $dow1st = ($dow1st - ($self->week_begin - 1)) % 7;
 
   $self->dow1st($dow1st);
@@ -292,8 +438,8 @@ sub _gen_week_nums {
   my($year, $month, $lastday) = ($self->year, $self->monthnum, $self->lastday);
 
   my $tool = $self->_caltool;
-  $tool->can('week_of_year')
-    or croak "Oops. $tool not set up for week of year calculations.\n";
+  croak "Oops. " . ref $tool . " not set up for week of year calculations.\n"
+    unless $tool->can('week_of_year');
 
   my $fdow = $self->dow1st;
   my $delta = 4 - $fdow;
@@ -311,227 +457,225 @@ sub _gen_week_nums {
 
   my $fweek = $tool->week_of_year(@ft);
   my $lweek = $tool->week_of_year(@lt);
-  my @wnums = $fweek .. $lweek;
+  my @wnums = $fweek > $lweek ? ($fweek, 1 .. $lweek) : ($fweek .. $lweek);
 
-  # Do we have days above our first Thursday?
-  if ($self->row_of($ft[0]) != $self->first_week_row) {
+  # do we have days above our first Thursday?
+  if ($self->row_of($ft[0]) != FWR) {
     unshift(@wnums, $wnums[0] -1);
   }
 
-  # Do we have days below our last Thursday?
+  # do we have days below our last Thursday?
   if ($self->row_of($lt[0]) != $self->last_row) {
     push(@wnums, $wnums[-1] + 1);
   }
 
-  # First visible week is from last year
+  # first visible week is from last year
   if ($wnums[0] == 0) {
     $wnums[0] = $tool->week_of_year($tool->add_days(-7, $ft[0]));
   }
 
-  # Last visible week is from subsequent year
+  # last visible week is from subsequent year
   if ($wnums[-1] > $lweek) {
     $wnums[-1] = $tool->week_of_year($tool->add_days(7, $lt[0]));
   }
 
-  $self->_weeknums(@wnums);
+  $self->_weeknums(\@wnums);
 }
 
-# Month hooks
+# month hooks
 
 sub row_items {
-  # Given a list of items, return all items in rows shared by the
+  # given a list of items, return all items in rows shared by the
   # provided items.
   my $self = shift;
-  my($item,$row,$col,$i,@i,%i);
-  foreach $item (@_) {
-    $row = ($self->coords_of($item))[0];
-    foreach $col ($self->first_col .. $self->last_col) {
-      $i = $self->item_at($row,$col) || next;
-      ++$i{$i};
+  my %items;
+  foreach my $item (@_) {
+    my $row = ($self->coords_of($item))[0];
+    foreach my $col (0 .. $self->last_col) {
+      my $i = $self->item_at($row, $col) || next;
+      ++$items{$i};
     }
   }
-  @i = keys %i;
-  @i ? @i : $i[0];
+  keys %items > 1 ? keys %items : (keys %items)[0];
 }
 
 sub col_items {
-  # Return all item cells in the columns occupied by the provided list
+  # return all item cells in the columns occupied by the provided list
   # of items.
   my $self = shift;
-  $self->_col_items($self->first_row,$self->last_row,@_);
+  $self->_col_items(0, $self->last_row, @_);
 }
 
 sub daycol_items {
-  # Same as col_items(), but excludes header cells.
+  # same as col_items(), but excludes header cells.
   my $self = shift;
-  $self->_col_items($self->first_week_row,$self->last_row,@_);
+  $self->_col_items(FWR, $self->last_row, @_);
 }
 
 sub _col_items {
-  # Given row bounds and a list of items, return all item elements
+  # given row bounds and a list of items, return all item elements
   # in the columns occupied by the provided items. Does not return
   # empty cells.
   my($self, $rfirst, $rlast) = splice(@_, 0, 3);
+  my %items;
   my($item, $row, $col, %i);
-  foreach $item (@_) {
-    $col = ($self->coords_of($item))[1];
-    foreach $row ($rfirst .. $rlast) {
+  foreach my $item (@_) {
+    my $col = ($self->coords_of($item))[1];
+    foreach my $row ($rfirst .. $rlast) {
       my $i = $self->item_at($row,$col) || next;
-      ++$i{$i};
+      ++$items{$i};
     }
   }
-  my @i = keys %i;
-  $#i ? @i : $i[0];
+  keys %items > 1 ? keys %items : (keys %items)[0];
 }
 
 sub daytime {
-  # Return seconds since epoch for a given day
+  # return seconds since epoch for a given day
   my($self, $day) = splice(@_, 0, 2);
-  $day or croak "Must specify day of month";
-  croak "Day does not exist" unless $self->_daycheck($day);
+  $day or croak "must specify day of month";
+  croak "day does not exist" unless $self->_daycheck($day);
   $self->_caltool->day_epoch($day);
 }
 
 sub week_nums {
-  # Return list of all week numbers
-  map("w$_", shift->_numeric_week_nums);
+  # return list of all week number labels
+  my @wnums = map("w$_", shift->_numeric_week_nums);
+  wantarray ? @wnums : \@wnums;
 }
 
 sub _numeric_week_nums {
-  # Return list of all week numbers as numbers
+  # return list of all week numbers as numbers
   my $self = shift;
-  $self->head_week ? @{$self->_weeknums} : ();
+  return unless $self->head_week;
+  wantarray ? @{$self->_weeknums} : $self->_weeknums;
 }
 
 sub days {
-  # Return list of all days of the month (1..$c->lastday).
+  # return list of all days of the month (1..$c->lastday).
   my $self = shift;
-  my $skips = $self->_caltool->skips;
-  grep(!$skips->{$_}, (1 .. $self->lastday));
+  my $skips = $self->_caltool->_skips;
+  my @days = grep { !$skips->{$_} } (1 .. $self->lastday);
+  wantarray ? @days : \@days;
 }
 
 sub dayheaders {
-  # Return list of all day headers (Su..Sa).
-  shift->locale_days;
+  # return list of all day headers (Su..Sa).
+  shift->loc->days;
 }
 
 sub headers {
-  # Return list of all headers (month,year,dayheaders)
+  # return list of all headers (month,year,dayheaders)
   my $self = shift;
-  ($self->year, $self->month, $self->dayheaders);
+  wantarray ? ($self->year, $self->month, $self->dayheaders)
+            : [$self->year, $self->month, $self->dayheaders];
 }
 
 sub items {
-  # Return list of all items (days, headers)
+  # return list of all items (days, headers)
   my $self = shift;
-  ($self->headers, $self->days);
+  wantarray ? ($self->headers, $self->days)
+            : [$self->headers, $self->days];
 }
 
-sub first_col {
-  # Where is the first column of the calendar within the table?
-  shift->col_offset();
+sub last_col {
+  # what's the max col of the calendar?
+  my $self = shift;
+  $self->head_week ? LDC + 1 : LDC;
 }
 
-sub first_week_col { first_col(@_) }
+sub last_day_col { LDC }
 
-sub last_col {
-  # What's the max col of the calendar?
+sub last_row {
+  # last row of the calendar
   my $self = shift;
-  $self->head_week ? $self->last_week_col + 1 : $self->last_week_col;
+  return ($self->coords_of($self->lastday))[0];
 }
 
-sub last_week_col {
-  # What column does the last DOW fall in? Should be the same as
-  # last_col unless head_week is activated
-  shift->first_col + 6;
-}
+*last_week_row = \&last_row;
 
-sub first_row {
-  # Where is the first row of the calendar?
-  shift->row_offset();
-}
+sub first_week_row { FWR };
 
-sub first_week_row {
-  # Returns the first row containing days of the month. This used to
-  # take into account whether the header rows were active or not,
-  # but since masking was implemented this should always be offset 2
-  # from the first row (thereby taking into account the month/year
-  # and DOW rows).
-  my $w = 2;
-  shift->first_row + $w;
+sub past_days {
+  my $self  = shift;
+  my $today = $self->_today;
+  if ($today < 0) {
+    return $self->days;
+  }
+  elsif ($today == 0) {
+    return;
+  }
+  return(1 .. $today);
 }
 
-sub last_row {
-  # Last row of the calendar
-  my $self = shift;
-  return ($self->coords_of($self->lastday))[0];
+sub future_days {
+  my $self  = shift;
+  my $today = $self->_today;
+  if ($today < 0) {
+    return;
+  }
+  elsif ($today == 0) {
+    return $self->days;
+  }
+  return($today .. $self->last_day);
 }
 
-sub last_week_row { last_row(@_) }
-
-# Custom glob interfaces
+# custom glob interfaces
 
 sub item {
-  # Return TD elements containing items
+  # return TD elements containing items
   my $self = shift;
-  @_ || croak "Item(s) must be provided";
+  @_ || croak "item(s) must be provided";
   $self->cell(grep(defined $_, map($self->coords_of($_), @_)));
 }
 
 sub item_row {
-  # Return a glob of the rows of a list of items, including empty cells.
+  # return a glob of the rows of a list of items, including empty cells.
   my $self = shift;
-  $self->_item_row($self->first_col, $self->last_col, @_);
+  $self->row(map { $self->row_of($_) } @_);
 }
 
 sub item_day_row {
-  # Same as item_row, but excludes possible week number cells
+  # same as item_row, but excludes possible week number cells
   my $self = shift;
-  $self->_item_row($self->first_col, $self->last_week_col, @_);
-}
-
-sub _item_row {
-  # Given column bounds and a list of items, return a glob representing
-  # the cells in the rows occupied by the provided items, including
-  # empty cells.
-  my($self, $cfirst, $clast) = splice(@_, 0, 3);
-  defined $cfirst && defined $clast or croak "No items provided";
-  my($row, $col, @coords);
-  foreach $row (map($self->row_of($_), @_)) {
-    foreach $col ($cfirst .. $clast) {
-      push(@coords, $row, $col);
+  return $self->item_row(@_) unless $self->head_week;
+  my(%rows, @coords);
+  for my $r (map { $self->row_of($_) } @_) {
+    next if ++$rows{$r} > 1;
+    for my $c (0 .. 6) {
+      push(@coords, ($r, $c));
     }
   }
   $self->cell(@coords);
 }
 
 sub item_week_nums {
-  # Glob of all week numbers
+  # glob of all week numbers
   my $self = shift;
   $self->item($self->week_nums);
 }
 
 sub item_col {
-  # Return a glob of the cols of a list of items, including empty cells.
+  # return a glob of the cols of a list of items, including empty cells.
   my $self = shift;
-  $self->_item_col($self->first_row, $self->last_row, @_);
+  $self->_item_col(0, $self->last_row, @_);
 }
 
 sub item_daycol {
-  # Same as item_col(), but excludes header cells.
+  # same as item_col(), but excludes header cells.
   my $self = shift;
-  $self->_item_col($self->first_week_row, $self->last_row, @_);
+  $self->_item_col(2, $self->last_row, @_);
 }
 
 sub _item_col {
-  # Given row bounds and a list of items, return a glob representing
+  # given row bounds and a list of items, return a glob representing
   # the cells in the columns occupied by the provided items, including
   # empty cells.
   my($self, $rfirst, $rlast) = splice(@_, 0, 3);
-  defined $rfirst && defined $rlast or croak "No items provided";
-  my($row, $col, @coords);
-  foreach $col (map($self->col_of($_), @_)) {
-    foreach $row ($rfirst .. $rlast) {
+  defined $rfirst && defined $rlast or Carp::confess "No items provided";
+  my(%seen, @coords);
+  foreach my $col (map { $self->col_of($_) } @_) {
+    next if ++$seen{$col} > 1;
+    foreach my $row ($rfirst .. $rlast) {
       push(@coords, $row, $col);
     }
   }
@@ -539,53 +683,52 @@ sub _item_col {
 }
 
 sub item_box {
-  # Return a glob of the box defined by two items
+  # return a glob of the box defined by two items
   my($self, $item1, $item2) = splice(@_, 0, 3);
   defined $item1 && defined $item2 or croak "Two items required";
   $self->box($self->coords_of($item1), $self->coords_of($item2));
 }
 
 sub all {
-  # Return a glob of all calendar cells, including empty cells.
+  # return a glob of all calendar cells, including empty cells.
   my $self = shift;
-  $self->box( $self->first_row => $self->first_col,
-              $self->last_row  => $self->last_col   );
+  $self->box( 0,0 => $self->last_row, $self->last_col );
 }
 
 sub alldays {
-  # Return a glob of all cells other than header cells
+  # return a glob of all cells other than header cells
   my $self = shift;
-  $self->box( $self->first_week_row => $self->first_col,
-              $self->last_row       => $self->last_week_col );
+  $self->box( 2, 0 => $self->last_row, 6 );
 }
 
 sub allheaders {
-  # Return a glob of all header cells
+  # return a glob of all header cells
   my $self = shift;
   $self->item($self->headers);
 }
 
-# Transformation Methods
+# transformation Methods
 
 sub coords_of {
-  # Convert an item into grid coordinates
+  # convert an item into grid coordinates
   my $self = shift;
-  my $ref = $self->itoc(@_);
+  croak "undefined value passed to coords_of()" if @_ && ! defined $_[0];
+  my $ref = $self->_itoc(@_);
   my @pos = ref $ref ? $ref->position : ();
   @pos ? (@pos[$#pos - 1, $#pos]) : ();
 }
 
 sub item_at {
-  # Convert grid coords into item
+  # convert grid coords into item
   my $self = shift;
-  $self->ctoi($self->cell(@_));
+  $self->_ctoi($self->cell(@_));
 }
 
-sub itoc {
-  # Item to grid
+sub _itoc {
+  # item to grid
   my($self, $item, $ref) = splice(@_, 0, 3);
   defined $item or croak "item required";
-  my $itoc = $self->_itoc;
+  my $itoc = $self->_itoch;
   if ($ref) {
     croak "Reference required" unless ref $ref;
     $itoc->{$item} = $ref;
@@ -593,11 +736,11 @@ sub itoc {
   $itoc->{$item};
 }
 
-sub ctoi {
-  # Cell reference to item
+sub _ctoi {
+  # cell reference to item
   my($self, $refstring, $item) = splice(@_, 0, 3);
   defined $refstring or croak "cell id required";
-  my $ctoi = $self->_ctoi;
+  my $ctoi = $self->_ctoih;
   if (defined $item) {
     $ctoi->{$refstring} = $item;
   }
@@ -615,117 +758,106 @@ sub col_of {
 }
 
 sub monthname {
-  # Check/return month...returns name. Accepts 1-12, or Jan..Dec
+  # check/return month...returns name. Accepts month number or string.
   my $self = shift;
   return $self->month unless @_;
-  my(@mn, $month);
-  my $months   = $self->locale_months;
-  my $monthnum = $self->locale_monthnums;
-  my $minmatch = $self->locale_minmatch;
-  my $mmpat    = $self->locale_minmatch_pattern;
-  
-  foreach $month (@_) {
-    if ($month =~ /^\d+$/) {
-      $month >= 1 && $month <= 12 || return 0;  
-      push(@mn, $months->[$month-1]);
-    }
-    else {
-      if (exists $monthnum->{$month}) {
-        push(@mn, $month);
-      }
-      else {
-        # Make one last attempt
-        if ($month =~ /^($mmpat)/) {
-          push(@mn, $minmatch->{$1});
-        }
-        else {
-          return undef;
-        }
-      }
-    }
+  my $loc = $self->loc;
+  my @names;
+  for my $m (@_) {
+    $m = ($m - 1) % 12 if $m && $m =~ /^\d+$/;
+    $m = $loc->monthname($m) || croak "month not found " . join(', ', @_);
+    return $m if @_ == 1;
+    push(@names, $m);
   }
-  $#mn > 0 ? @mn : $mn[0];
+  @names;
 }
 
 sub monthnum {
-  # Check/return month, returns number. Accepts 1-12, or Jan..Dec
-  my $self = shift;
-  my $monthnum = $self->locale_monthnums;
-  my @mn;
-  push(@mn, map(exists $monthnum->{$_} ?
-                $monthnum->{$_}+1 : undef, $self->monthname(@_)));
-  $#mn > 0 ? @mn : $mn[0];
+  # check/return month, returns number. Accepts month number or string.
+  my $self   = shift;
+  my @months = @_ ? @_ : $self->month;
+  my $loc = $self->loc;
+  my @nums;
+  for my $m (@months) {
+    $m = ($m - 1) % 12 if $m && $m =~ /^\d+$/;
+    $m = $loc->monthnum($m);
+    croak "month not found ", join(', ', @_) unless defined $m;
+    $m += 1;
+    return $m if @_ == 1;
+    push(@nums, $m);
+  }
+  @nums;
 }
 
 sub dayname {
-  # Check/return day...returns name. Accepts 1..7, or Su..Sa
+  # check/return day...returns name. Accepts 1..7, or Su..Sa
   my $self = shift;
-  @_ || croak "Day must be provided";
-  my(@dn, $day);
-  my $days = $self->locale_days;
-  my $daynum = $self->locale_daynums;
-  foreach $day (@_) {
-    if ($day =~ /^\d+$/) {
-      $day >= 1 && $day <= 7 || return undef;
-      # week_begin is at least 1, so skew is automatic
-      push(@dn, $days->[($day - 1 + $self->week_begin - 1) % 8]);
-    }
-    else {
-      $day = ucfirst(lc($day));
-      if (exists $daynum->{$day}) {
-        push(@dn, $day);
-      }
-      else {
-        return undef;
-      }
+  @_ || croak "day string or num required";
+  my $loc = $self->loc;
+  my @names;
+  for my $d (@_) {
+    if ($d =~ /^\d+$/) {
+      $d = (($d - 1) % 7) + $self->week_begin - 1;
     }
+    $d = $loc->dayname($d) || croak "day not found ", join(', ', @_);
+    return $d if @_ == 1;
+    push(@names, $d);
   }
-  $#dn > 0 ? @dn : $dn[0];
+  @names;
 }
 
 sub daynum {
-  # Check/return day number 1..7, returns number. Accepts 1..7,
+  # check/return day number 1..7, returns number. Accepts 1..7,
   # or Su..Sa
   my $self = shift;
-  my $daynum = $self->locale_daynums;
-  my @dn;
-  push(@dn, map(exists $daynum->{$_} ?
-                $daynum->{$_}+1 : undef,$self->dayname(@_)));
-  $#dn > 0 ? @dn : $dn[0];
+  @_ || croak "day string or num required";
+  my $loc  = $self->loc;
+  my @nums;
+  for my $d (@_) {
+    if ($d =~ /^\d+$/) {
+      $d = (($d - 1) % 7) + $self->week_begin - 1;
+    }
+    $d = $loc->daynum($d);
+    croak "day not found ", join(', ', @_) unless defined $d;
+    $d += 1;
+    return $d if @_ == 1;
+    push(@nums, $d);
+  }
+  @nums;
 }
 
-# Tests-n-checks
+# tests-n-checks
 
 sub _dayheadcheck {
-  # Test day head names
+  # test day head names
   my($self, $name) = splice(@_, 0, 2);
-  $name or croak "Name missing";
-  return undef if $name =~ /^\d+$/;
+  $name or croak "name missing";
+  return if $name =~ /^\d+$/;
   $self->daynum($name);
 }
 
 sub _daycheck {
-  # Check if an item is a day of the month (1..31)
+  # check if an item is a day of the month (1..31)
   my($self, $item) = splice(@_, 0, 2);
-  $item = shift or croak "Item required";
-  # Can't just invert _headcheck because coords_of() needs _daycheck,
+  croak "item required" unless $item;
+  # can't just invert _headcheck because coords_of() needs _daycheck,
   # and _headcheck uses coords_of()
   $item =~ /^\d{1,2}$/ && $item <= 31;
 }
 
 sub _headcheck {
-  # Check if an item is a header
+  # check if an item is a header
   !_daycheck(@_);
 }
 
-# Constructors/Destructors
+# constructors/destructors
 
 sub new {
   my $class = shift;
   my %parms = @_;
   my(%attrs, %tattrs);
   foreach (keys %parms) {
-    if (__PACKAGE__->is_calmonth_attr($_)) {
+    if (__PACKAGE__->_is_calmonth_attr($_)) {
       $attrs{$_} = $parms{$_};
     }
     else {
@@ -733,15 +865,11 @@ sub new {
     }
   }
 
-  my $self = __PACKAGE__->class_element_table->new(%tattrs);
+  my $self = CLASS_HET->new(%tattrs);
   bless $self, $class;
 
   # set defaults
-  $self->set_defaults;
-
-  # Enable blank cell fill so BGCOLOR shows up by default
-  # (HTML::ElementTable)
-  $self->blank_fill(1);
+  $self->_set_defaults;
 
   my $month = delete $attrs{month};
   my $year  = delete $attrs{year};
@@ -755,220 +883,166 @@ sub new {
   $self->year($year);
 
   # set overrides
-  $self->$_($attrs{$_}) foreach (keys %attrs);
+  for my $k (keys %attrs) {
+    $self->$k($attrs{$k}) if defined $attrs{$k};
+  }
 
-  $self->loc($self->class_locale->new(
+  my $loc = CLASS_LOCALE->new(
     id          => $self->locale,
     full_days   => $self->full_days,
     full_months => $self->full_months,
-  )) or croak "Problem creating locale " . $self->locale . "\n";
+  ) or croak "Problem creating locale " . $self->locale . "\n";
+  $self->loc($loc);
+
+  my $dt = CLASS_DATETOOL->new(
+      year     => $self->year,
+      month    => $self->month,
+      weeknum  => $self->head_week,
+      historic => $self->historic,
+      datetool => $self->datetool,
+  );
+  $self->_caltool($dt);
+
+  $self->week_begin($loc->first_day_of_week + 1)
+    unless defined $attrs{week_begin};
+
+  my $dom_now = defined $attrs{today} ? $dt->_dom_now(delete $attrs{today})
+                                      : $dt->_dom_now;
+  $self->_today($dom_now);
+  $self->today($dom_now) if $dom_now > 0;
+
+  my $alias = $attrs{alias} || {};
+  if ($self->full_days < 0) {
+    my @full   = $self->loc->days;
+    my @narrow = $self->loc->narrow_days;
+    for my $i (0 .. $#narrow) {
+      $alias->{$full[$i]} = $narrow[$i];
+    }
+  }
+  if ($self->full_months < 0) {
+    my @full   = $self->loc->months;
+    my @narrow = $self->loc->narrow_months;
+    for my $i (0 .. $#narrow) {
+      $alias->{$full[$i]} = $narrow[$i];
+    }
+  }
+  $self->alias($alias) if keys %$alias;
 
-  # For now, this is the only time this will every happen for this
+  # for now, this is the only time this will every happen for this
   # object. It is now 'initialized'.
   $self->_date($month, $year);
 
   $self;
 }
 
-{
-
-package HTML::CalendarMonth::Accessor;
-
-use strict;
-use vars qw($VERSION @ISA);
-
-$VERSION = '0.01';
-
-use Carp;
-
-use Class::Accessor;
-
-@ISA = qw(Class::Accessor);
-
-my %Objects;
-
-# Default complex attributes
-my %Calmonth_Attrs = (
-  head_m      => 1,  # Month heading mode
-  head_y      => 1,  # Year heading mode
-  head_dow    => 1,  # DOW heading mode
-  head_week   => 0,  # European week number mode
-  year_span   => 2,  # Default col span of year
-
-  week_begin  => 1,  # What DOW (1-7) is the 1st DOW?
-
-  historic    => 1,  # If able to choose, use 'cal'
-                     # rather than Date::Calc, which
-                     # blindly extrapolates Gregorian
-
-  row_offset  => 0,  # Displacment within table
-  col_offset  => 0,
-
-  alias       => {}, # What gets displayed if not
-                     # the default item
-
-  month       => '', # These will get initialized
-  year        => '',
-
-  locale      => 'en_US',
-  full_days   => 0,
-  full_months => 1,
-
-  datetool    => '',
-  caltool     => '',
-
-  # internal muckety muck
-  _cal      => '',
-  _itoc     => {},
-  _ctoi     => {},
-  _caltool  => '',
-  _weeknums => '',
-
-  dow1st   => '',
-  lastday  => '',
-  loc      => '',
-);
-
-__PACKAGE__->mk_accessors(keys %Calmonth_Attrs);
-
-# Class::Accessor overrides
-
-sub new {
-  my $class = shift;
-  my $self = $class->SUPER::new(@_);
-  foreach (sort keys %Calmonth_Attrs) {
-    $self->$_($Calmonth_Attrs{$_});
-  }
-  $self;
-}
-
-sub set {
-  my($self, $key) = splice(@_, 0, 2);
-  if (@_ == 1) {
-    $Objects{$self}{$key} = $_[0];
-  }
-  elsif (@_ > 1) {
-    $Objects{$self}{$key} = [@_];
-  }
-  else {
-    Carp::confess("Wrong number of arguments received");
-  }
-}
+### overrides (our table is static)
 
-sub get {
-  my $self = shift;
-  if (@_ == 1) {
-    return $Objects{$self}{$_[0]};
-  }
-  elsif ( @_ > 1 ) {
-    return @{$Objects{$self}{@_}};
-  }
-  else {
-    Carp::confess("Wrong number of arguments received.");
-  }
-}
+sub extent { }
+sub maxrow { shift->SUPER::maxrow }
+sub maxcol { shift->SUPER::maxcol }
 
-sub is_calmonth_attr { shift; exists $Calmonth_Attrs{shift()} }
+### deprecated
 
-sub set_defaults {
-  my $self = shift;
-  foreach (keys %Calmonth_Attrs) {
-    $self->$_($Calmonth_Attrs{$_});
-  }
-  $self;
-}
+use constant row_offset     => 0;
+use constant col_offset     => 0;
+use constant first_col      => 0;
+use constant first_row      => 0;
+use constant first_week_col => 0;
+use constant last_week_col  => 6;
 
-} # end HTML::CalendarMonth::Accessor
+###
 
-# Go forth and prosper.
 1;
 
 __END__
 
 =head1 NAME
 
-HTML::CalendarMonth - Perl extension for generating and manipulating HTML calendar months
+HTML::CalendarMonth - Generate and manipulate HTML calendar months
 
 =head1 SYNOPSIS
 
  use HTML::CalendarMonth;
- use HTML::AsSubs;
 
- # Using HTML::AsSubs
- $c = HTML::CalendarMonth->new( month => 3, year => 69 );
- $c->item($c->year, $c->month)->attr(bgcolor => 'wheat');
- $c->item($c->year, $c->month)->wrap_content(font({size => '+2'}));
- $c->item(12, 16, 28)->wrap_content(strong());
+ # Using regular HTML::Element creation
+ my $c = HTML::CalendarMonth->new( month => 8, year => 2010 );
  print $c->as_HTML;
 
- # Using regular HTML::Element creation
- $c2 = HTML::CalendarMonth->new( month => 8, year => 79 );
- $c2->item($c2->year, $c2->month)->attr(bgcolor => 'wheat');
- $f = HTML::Element->new('font', size => '+2');
- $c2->item($c2->year, $c2->month)->wrap_content($f);
$c2->item_daycol('Su', 'Sa')->attr(bgcolor => 'cyan');
+ # Full locale support via DateTime::Locale
+ my $c2 = HTML::CalendarMonth->new(
+   month  => 8,
+   year   => 2010,
+   locale => 'zu_ZA'
+ );
  print $c2->as_HTML;
 
  # Full locale support via DateTime::Locale
  $c3 = HTML::CalendarMonth->new( month => 8, year => 79, locale => 'fr' );
  print $c3->as_HTML
 
+ # HTML-Tree integration
+ my $tree = HTML::TreeBuilder->parse_file('cal.html');
+ $tree->find_by_attribute(class => 'hcm-calendar')->replace_with($c);
+ print $tree->as_HTML;
+
+ # clean up if you're not done, HTML::Element structures must be
+ # manually destroyed
+ $c->delete; $c2->delete;
+
 =head1 DESCRIPTION
 
 HTML::CalendarMonth is a subclass of HTML::ElementTable. See
 L<HTML::ElementTable(3)> for how that class works, for it affects this
-module on many levels. Like HTML::ElementTable, HTML::CalendarMonth
-behaves as if it were an HTML::ElementSuper, which is a regular
-HTML::Element with methods added to easily manipulate the appearance of
-the HTML table containing the calendar.
-
-The primary interaction with HTML::CalendarMonth is through I<items>. An
-I<item> is merely a symbol that represents the content of the cell of
-interest within the calendar. For instance, the element representing the
-14th day of the month would be returned by C<$c-E<gt>item(14)>.
-Similarly, the element representing the header for Monday would be
-returned by C<$c-E<gt>item('Mo')>. If the year happened to by 1984, then
-C<$c-E<gt>item(1984)> would return the cell representing the year. Since
+module on many levels. Like HTML::ElementTable, HTML::CalendarMonth is
+an enhanced HTML::Element with methods added to facilitate the
+manipulation of the calendar table elements as a whole.
+
+The primary interaction with HTML::CalendarMonth is through I<items>
+rather than cell coordinates like HTML::ElementTable uses. An I<item> is
+merely a string that represents the content of the cell of interest
+within the calendar. For instance, the element representing the 14th day
+of the month would be returned by C<$c-E<gt>item(14)>. Similarly, the
+element representing the header for Monday would be returned by C<$c-
+E<gt>item('Mo')>. If the year happened to by 2010, then C<$c-
+E<gt>item(2010)> would return the cell representing the year. Since
 years and particular months change frequently, it is probably more
 useful to take advantage of the C<month()> and C<year()> methods, which
-return the respective item symbol for the current calendar. In the prior
-example, using 1984, the following is equivalent: C<$c-E<gt>item($c-
-E<gt>year())>.
+return their respective values. The following is therefore the same as
+explicitely referencing the year: C<$c-E<gt>item($c- E<gt>year())>.
 
 Multiple cells of the calendar can be manipulated as if they were a
-single element. For instance, C<$c-E<gt>item(15)-E<gt>attr(bgcolor
-=E<gt> 'cyan')> would alter the background color of the cell
-representing the 15th. By the same token, C<$c-E<gt>item(15, 16, 17,
-23)-E<gt>attr(bgcolor =E<gt> 'cyan')> would do the same thing for all
-cells containing the item symbols passed to the C<item()> method.
-
-The calendar structure is still nothing more than a table structure; the
-same table structure provided by the HTML::ElementTable class. In
-addition to the I<item> based access methods above, calendar cells can
-still be accessed using row and column grid coordinates using the
-C<cell()> method provided by the table class. All coordinate-based
-methods in the table class are accessible to the calendar class.
+single element. For instance, C<$c-E<gt>item(15)-E<gt>attr(class =E<gt>
+'fancyday')> would alter the class of the cell representing the 15th. By
+the same token, C<$c-E<gt>item(15, 16, 17,
+23)-E<gt>attr(class =E<gt> 'fancyday')> would do the same thing for all
+cells containing the days passed to the C<item()> method.
+
+Underneath, the calendar is still nothing more than a table structure,
+the same as provided by the HTML::ElementTable class. In addition to the
+I<item> based access methods above, calendar cells can still be accessed
+using row and column grid coordinates using the C<cell()> method
+provided by the table class. All coordinate-based methods in the table
+class are accessible to the calendar class.
 
 The module includes support for week-of-the-year numbering, arbitrary
-1st day of the week definitions, and aliasing so that you can express
-any element in any language HTML can handle.
+1st day of the week definitions, and locale support.
 
 Dates that are beyond the range of the built-in time functions of perl
-are handled either by the 'cal' command, Date::Calc, or Date::Manip. The
-presence of any one of these utilities and modules will suffice for
-these far flung date calculations. If you want to use week-of-year
-numbering, then either one of the date modules is required.
+are handled either by the ncal/cal command, Date::Calc, DateTime, or
+Date::Manip. The presence of any one of these utilities and modules will
+suffice for these far flung date calculations. One of these utilities
+(with the exception of 'cal') is also required if you want to use week-of-
+year numbering.
 
 Full locale support is offered via DateTime::Locale. For a full list of
-supported locale id's, look at HTML::CalendarMonth::Locale->locales() or
-DateTime::Locale->ids().
+supported locale id's, look at HTML::CalendarMonth::Locale->locales().
 
 =head1 METHODS
 
 All arguments appearing in [brackets] are optional, and do not represent
 anonymous array references.
 
-B<Constructor>
+=head2 Constructor
 
 =over
 
@@ -1008,20 +1082,24 @@ Specifies whether to display days of the week header. Default 1.
 
 =item locale
 
-Specifies a locale in which to render the calendar. Default is 'en_US'.
-See L<HTML::CalendarMonth::Locale> for more information. If for some
-reason you prefer to use different labels than those provided by
-C<locale>, see the C<alias> attribute below.
+Specifies the id of the locale in which to render the calendar. Default
+is 'en_US'. By default, this will also control determine which day is
+considered to be the first day of the week. See
+L<HTML::CalendarMonth::Locale> for more information. If for some reason
+you prefer to use different labels than those provided by C<locale>, see
+the C<alias> attribute below.
 
 =item full_days
 
 Specifies whether or not to use full day names or their abbreviated
-names. Default is 0, use abbreviated names.
+names. Default is 0, use abbreviated names. Use -1 for 'narrow' mode,
+the shortest (not guaranteed to be unique) abbreviations.
 
 =item full_months
 
-Specifies whether or not to use full month names or their abbriviated
-names. Default is 1, use full names.
+Specifies whether or not to use full month names or their abbreviated
+names. Default is 1, use full names. Use -1 for 'narrow' mode, the
+shortest (not guaranteed to be unique) abbreviations.
 
 =item alias
 
@@ -1037,47 +1115,63 @@ Specifies whether to display the week-of-year numbering. Default 0.
 =item week_begin
 
 Specify first day of the week, which can be 1..7, starting with Sunday.
-Defaults to 1, or Sunday. In order to specify Monday, set this to 2,
-and so on.
+In order to specify Monday, set this to 2, and so on. By default, this
+is determined based on the locale.
+
+=item enable_css
+
+Set some handy CSS class attributes on elements, enabled by default.
+Currently the classes are:
+
+  hcm-table       Set on the <lt>table<gt> tag of the calendar
+  hcm-day-head    Set on the day-of-week <lt>tr<gt> or <lt>td<gt> tags
+  hcm-year-head   Set on the <lt>td<gt> tag for the year
+  hcm-month-head  Set on the <lt>td<gt> tag for the month
+  hcm-week-head   Set on the <lt>td<gt> tags for the week-of-year
 
-=item row_offset
+=item semantic_css
 
-Specifies the offset of the first calendar row within the table
-containing the calendar. This is 0 by default, making the first row of
-the table the same as the first row of the calendar.
+Sets some additional CSS class attributes on elements, disabled by
+default. The notion of 'today' is taken either from the system clock
+(default) or from the 'today' parameter as provided to new(). Currently
+these classes are:
 
-=item col_offset
+  hcm-today    Set on the <lt>td<gt> tag for today, if present
+  hcm-past     Set on the <lt>td<gt> tags for prior days, if present
+  hcm-future   Set on the <lt>td<gt> tags for subsequent days, if present
 
-Specifies the offset of the first calendar column within the table
-containing the calendar. This is 0 by default, making the first column
-of the table the same as the first row of the calendar.
+=item today
+
+Specify the value for 'today' if different from the local time as
+reported by the system clock (the default). If specified as two or less
+digits, it is assumed to be one of the days of the month in the current
+calendar. If more than two digits, it is assumed to be a epoch time in
+seconds. Otherwise it must be given as a string of the form 'YYYY-mm-
+dd'. Note that the default value as determined by the system clock uses
+localtime rather than gmtime.
 
 =item historic
 
 This option is ignored for dates that do not exceed the range of the built-
 in perl time functions. For dates that B<do> exceed these ranges, this
-option specifies the default calculation method. When set, if the 'cal'
-utility is available on your system, that will be used rather than the
-Date::Calc or Date::Manip modules. This can be an issue since the date
-modules blindly extrapolate the Gregorian calendar, whereas 'cal' takes
-some of these quirks into account. If 'cal' is not available on your
-system, this attribute is meaningless. Defaults to 1.
+option specifies the default calculation method. When set, if the 'ncal'
+or 'cal' command is available on your system, that will be used rather
+than the Date::Calc or Date::Manip modules. This can be an issue since
+the date modules blindly extrapolate the Gregorian calendar, whereas
+ncal/cal will revert to the Julian calendar during September 1752. If
+either ncal or cal are not available on your system, this attribute is
+meaningless. Defaults to 1.
 
 =back
 
 =back
 
-B<Item Query Methods>
+=head2 Item Query Methods
 
-The following methods return lists of item symbols that are related in
-some way to the provided list of items. The returned symbols may then
-be used as arguments to the glob methods detailed further below. When
-these methods deal with 'rows' and 'columns', they are only concerned
-with the cells in the calendar -- not the cells that might be present
-in the surrounding table if you have extended it. If you have not set
-row or column offsets, or extended the span of the containing table,
-then these rows and columns are functionally equivalent to the table
-rows and columns.
+The following methods return lists of item *symbols* (28, 29, 'Thu',
+...) that are related in some way to the provided list of items. The
+returned symbols may then be used as arguments to the glob methods
+detailed further below.
 
 =over
 
@@ -1096,24 +1190,28 @@ that are not header items (month, year, day-of-week).
 
 =item row_of(item1, [item2, ...])
 
-Returns the row numbers of rows containing the provided item symbols.
+Returns the row indices of rows containing the provided item symbols.
 
 =item col_of(item1, [item2, ...])
 
-Returns the column numbers of columns containing the provided
+Returns the column indices of columns containing the provided
 item symbols.
 
 =item lastday()
 
-Returns the number of the last day of the month.
+Returns the day number (symbol) of the last day of the month.
 
 =item dow1st()
 
-Returns the column number for the first day of the month.
+Returns the column index for the first day of the month.
 
 =item days()
 
-Returns a list of all days of the month.
+Returns a list of all days of the month as numbers.
+
+=item week_nums()
+
+Returns a list of week-of-year numbers for this month.
 
 =item dayheaders()
 
@@ -1125,40 +1223,48 @@ Returns a list of all headers (month, year, dayheaders)
 
 =item items()
 
-Returns a list of all item symbols in the calendar.
-
-=item first_col()
-
-Returns the number of the first column of the calendar. This could be
-different from that of the surrounding table if the table was extended,
-but otherwise should be identical.
+Returns a list of all item symbols (day number, header values) in
+the calendar.
 
 =item last_col()
 
-Returns the number of the last column of the calendar. This could be
-different from that of the surrounding table if the table was extended,
-but should otherwise be identical.
+Returns the index of the last column of the calendar (note that this
+could be the week-of-year column if head_week is enabled).
 
-=item first_row()
+=item last_day_col()
 
-Returns the number of the first row of the calendar. This could be
-different from that of the surrounding table if offsets were made.
+Returns the index of the last column of the calendar containing days of
+the month (same as last_col() unless week-of-year is enabled).
 
 =item first_week_row()
 
-Returns the number of the first row of the calendar containing day items
-(ie, the first week). This could vary depending on table offsets and
-header modes.
+Returns the index of the first row of the calendar containing day items
+(ie, the first week).
 
 =item last_row()
 
-Returns the number of the last row of the calendar. This could be
-different from that of the surrounding table if the table was extended,
-but should otherwise be identical.
+Returns the index of the last row of the calendar.
+
+=item today()
+
+Returns the day of month for 'today', if present in the current
+calendar.
+
+=item past_days()
+
+Returns a list of days prior to 'today'. If 'today' is in a future
+month, all days are returned. If 'today' is in a past month, no days
+are returned.
+
+=item future_days()
+
+Returns a list of days after 'today'. If 'today' is in a past
+month, all days are returned. If 'today' is in a future month, no
+days are returned.
 
 =back
 
-B<Glob Methods>
+=head2 Glob Methods
 
 Glob methods return references that are functionally equivalent to an
 individual calendar cell. Mostly, they provide item based analogues to
@@ -1181,13 +1287,21 @@ Returns all cells containing the provided item symbols.
 
 Returns all cells in all rows occupied by the provided item symbols.
 
+=item item_day_row(item1, [item2, ...])
+
+Same as item_row() except excludes week-of-year cells, if present.
+
 =item item_col(item1, [item2, ...])
 
 Returns all cells in all columns occupied by the provided item symbols.
 
 =item item_daycol(item1, [item2, ...])
 
-Same as item_col(), except limits the cells to non header cells.
+Same as item_col() except limits the cells to non header cells.
+
+=item item_week_nums()
+
+Returns all week-of-year cells, if present.
 
 =item item_box(item1a, item1b, [item2a, item2b, ...])
 
@@ -1207,7 +1321,7 @@ Returns all cells in the calendar, including empty cells.
 
 =back
 
-B<Transformation Methods>
+=head2 Transformation Methods
 
 The following methods provide ways of translating between various item
 symbols, coordinates, and other representations.
@@ -1216,8 +1330,8 @@ symbols, coordinates, and other representations.
 
 =item coords_of(item)
 
-Returns the row and column of the provided item symbol, for use with the
-grid based methods in HTML::ElementTable.
+Returns the row and column coordinates of the provided item symbol, for
+use with the grid based methods in HTML::ElementTable.
 
 =item item_at(row,column)
 
@@ -1252,30 +1366,17 @@ must be present in the current calendar.
 
 =back
 
-=head1 Notes On Dates And Spatial Relationships
-
-One of the nice things about having a calendar represented as a table
-accessible with grid coordinates is that some of the trickier date
-calculations become trivial. You can use packages such as I<Date::Manip>
-or I<Date::Calc> for these sort of things, but the algorithms are often
-derived from a common human activity: looking at a calendar on a wall.
-Say, for instance, that you are interested in "the third Friday of every
-month". If you are using a calendar with Sunday as the first day of the
-week, then Fridays will always be in column 5, starting from 0.
-Likewise, due to the fact that supressed headers are merely I<masked> in
-the actual table, the first row with dates in a calendar structure will
-B<always> be 2, even if the month, year, or day headers are disabled.
-The third friday of every month therefore becomes C<$c-E<gt>cell(2,5)>,
-regardless of the particular month. Likewise, the "nth dayname/week of
-the month" can always be mapped to table coordinates.
-
-The particulars of this grid mapping are affected if you have redefined
-what the first day of the week is, or if you have tweaked the table
-beyond the bounds of the calendar itself. There are methods that can
-help under these circumstances, though. For instance, in our example
-where we are interested in the 3rd Friday of the month, the row number
-is accessed with C<$c-E<gt>first_week_row + 2>, whereas the column
-number could be derived with C<$c-E<gt>last_col - 1>.
+=head2 Other Methods
+
+=over
+
+=item default_css()
+
+Returns a simple style sheet as a string that can be used in an HTML
+document in conjunction with the classes assigned to elements when css
+is enabled.
+
+=back
 
 =head1 REQUIRES
 
@@ -1283,8 +1384,9 @@ HTML::ElementTable
 
 =head1 OPTIONAL
 
-Date::Calc or Date::Manip (only if you want week-of-year numbering or
-non-contemporary dates on a system without the I<cal> command)
+Date::Calc, DateTime, or Date::Manip (only if you want week-of-
+year numbering or non-contemporary dates on a system without the
+I<cal> command)
 
 =head1 AUTHOR
 
@@ -1292,7 +1394,7 @@ Matthew P. Sisk, E<lt>F<sisk@mojotoad.com>E<gt>
 
 =head1 COPYRIGHT
 
-Copyright (c) 1998-2008 Matthew P. Sisk. All rights reserved. All wrongs
+Copyright (c) 1998-2010 Matthew P. Sisk. All rights reserved. All wrongs
 revenged. This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
 
@@ -1306,4 +1408,4 @@ names, see http://www.loc.gov/standards/iso639-2/englangn.html
 
 HTML::ElementTable(3), HTML::Element(3), perl(1)
 
-=cut
+=for Pod::Coverage col_offset row_offset item_alias item_aliased last_week_row
index e3a40f5e1207344906dfa07f04134a88be8e7761..91df572ca0e895746e7c6eecdc9446c694260a19 100644 (file)
@@ -1,24 +1,31 @@
 package HTML::CalendarMonth::DateTool;
+BEGIN {
+  $HTML::CalendarMonth::DateTool::VERSION = '1.25';
+}
 
 # Base class for determining what date calculation package to use.
 
 use strict;
+use warnings;
 use Carp;
 
-use vars qw($VERSION);
-$VERSION = '0.01';
-
-my $DEBUG = 0;
+use File::Which qw( which );
 
 my %Toolmap = (
   'Time::Local' => 'TimeLocal',
   'Date::Calc'  => 'DateCalc',
   'DateTime'    => 'DateTime',
   'Date::Manip' => 'DateManip',
+  'ncal'        => 'Ncal',
   'cal'         => 'Cal',
 );
 
-sub toolmap {
+my %Classmap;
+$Classmap{lc $Toolmap{$_}} = $_ foreach keys %Toolmap;
+
+my($Cal_Cmd, $Ncal_Cmd);
+
+sub _toolmap {
   shift;
   my $str = shift;
   my $tool = $Toolmap{$str};
@@ -30,7 +37,7 @@ sub toolmap {
       }
     }
   }
-  return undef unless $tool;
+  return unless $tool;
   join('::', __PACKAGE__, $tool);
 }
 
@@ -39,19 +46,24 @@ sub new {
   my $self = {};
   bless $self, $class;
   my %parms = @_;
-  $self->{year}     = $parms{year}  or croak "missing year (YYYY)\n";
-  $self->{month}    = $parms{month} or croak "missing month num (1-12)\n";
+  $self->{year}     = $parms{year};
+  $self->{month}    = $parms{month};
   $self->{weeknum}  = $parms{weeknum};
   $self->{historic} = $parms{historic};
+  if (! $self->{year}) {
+    my @dmy = $self->_dmy_now;
+    $self->{year}    = $dmy[2];
+    $self->{month} ||= $dmy[1];
+  }
+  $self->{month} ||= 1;
   if ($parms{datetool}) {
-    $self->{datetool} = $self->toolmap($parms{datetool})
+    $self->{datetool} = $self->_toolmap($parms{datetool})
       or croak "Sorry, didn't find a tool for datetool '$parms{datetool}'\n";
   }
   my $dc = $self->_summon_date_class;
   unless (eval "require $dc") {
     croak "Problem loading $dc ($@)\n";
   }
-  print STDERR "Using date class $dc\n" if $DEBUG;
   # rebless into new class
   bless $self, $dc;
 }
@@ -62,19 +74,84 @@ sub weeknum  { shift->{weeknum}  }
 sub historic { shift->{historic} }
 sub datetool { shift->{datetool} }
 
-sub cal_cmd {
+sub _name {
+  my $class = shift;
+  $class = ref $class || $class;
+  lc((split(/::/, $class))[-1]);
+}
+
+sub _cal_cmd {
   my $self = shift;
-  unless (exists $self->{cal_cmd}) {
-    my $cal;
-    foreach (qw(/usr/bin /bin /usr/local/bin)) {
-      if (-x "$_/cal") {
-        $cal = "$_/cal";
-        last;
+  if (! defined $Cal_Cmd) {
+    $Cal_Cmd = which('cal') || '';
+    if ($Cal_Cmd) {
+      my @out = grep { ! /^\s*$/ } `$Cal_Cmd 9 1752`;
+      #   September 1752
+      #Su Mo Tu We Th Fr Sa
+      #       1  2 14 15 16
+      #17 18 19 20 21 22 23
+      #24 25 26 27 28 29 30
+      my @pat = (
+        qr/^\s*\S+\s+\d+$/,
+        qr/^\s*\S+\s+\S+\s+\S+\s+\S+\s+\S+\s+\S+\s+\S+\s*$/,
+        qr/^\s*\d+\s+\d+\s+\d+\s+\d+\s+\d+\s*$/,
+        qr/^\s*\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+\s*$/,
+        qr/^\s*\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+\s*$/,
+      );
+      if (@out == @pat) {
+        for my $i (0 .. $#out) {
+          if ($out[$i] !~ $pat[$i]) {
+            $Cal_Cmd = '';
+            last;
+          }
+        }
+      }
+      else {
+        $Cal_Cmd = '';
       }
     }
-    $self->{cal_cmd} = $cal || undef;
   }
-  $self->{cal_cmd};
+  $Cal_Cmd;
+}
+
+sub _ncal_cmd {
+  my $self = shift;
+  if (! defined $Ncal_Cmd) {
+    $Ncal_Cmd = which('ncal') || '';
+    if ($Ncal_Cmd) {
+      my @out = grep { ! /^\s*$/ } map { s/^\s*//; $_ } `$Ncal_Cmd 9 1752`;
+      #    September 1752
+      #Mo    18 25
+      #Tu  1 19 26
+      #We  2 20 27
+      #Th 14 21 28
+      #Fr 15 22 29
+      #Sa 16 23 30
+      #Su 17 24
+      my @pat = (
+        qr/^\s*\S+\s+\d+$/,
+        qr/^\s*\S+\s+\d+\s+\d+\s*$/,
+        qr/^\s*\S+\s+\d+\s+\d+\s+\d+\s*$/,
+        qr/^\s*\S+\s+\d+\s+\d+\s+\d+\s*$/,
+        qr/^\s*\S+\s+\d+\s+\d+\s+\d+\s*$/,
+        qr/^\s*\S+\s+\d+\s+\d+\s+\d+\s*$/,
+        qr/^\s*\S+\s+\d+\s+\d+\s+\d+\s*$/,
+        qr/^\s*\S+\s+\d+\s+\d+\s*$/,
+      );
+      if (@out == @pat) {
+        for my $i (0 .. $#out) {
+          if ($out[$i] !~ $pat[$i]) {
+            $Ncal_Cmd = '';
+            last;
+          }
+        }
+      }
+      else {
+        $Ncal_Cmd = '';
+      }
+    }
+  }
+  $Ncal_Cmd;
 }
 
 sub day_epoch {
@@ -85,7 +162,7 @@ sub day_epoch {
   Time::Local::timegm(0,0,0,1,$month,$year);
 }
 
-sub skips {
+sub _skips {
   my $self = shift;
   @_ ? $self->{skips} = shift : $self->{skips};
 }
@@ -94,65 +171,145 @@ sub dow1st  { (shift->dow1st_and_lastday)[0] }
 
 sub lastday { (shift->dow1st_and_lastday)[1] }
 
-sub _summon_date_class {
+sub _dmy_now {
   my $self = shift;
-  return $self->datetool if $self->datetool;
-  my $dc;
-  if ( $self->_test_for_timelocal ) {
-    $dc = __PACKAGE__ . '::TimeLocal';
+  my $ts = @_ ? shift : time;
+  my($d, $m, $y) = (localtime($ts))[3,4,5];
+  ++$m; $y += 1900;
+  ($d, $m, $y);
+}
+
+sub _dom_now {
+  my $self = shift;
+  my $ts = @_ ? shift : time;
+  my($d, $m, $y);
+  if ($ts =~ /^\d+$/) {
+    if (length $ts <= 2) {
+      ($d, $m, $y) = ($ts, $self->month, $self->year);
+      croak "invalid day of month (1 .. " . $self->lastday . ") '$ts'"
+        unless $ts >= 1 && $ts <= $self->lastday;
+    }
+    else {
+      ($d, $m, $y) = $self->_dmy_now($ts);
+    }
   }
-  elsif ( $self->_test_for_cal ) {
-    $dc = __PACKAGE__ . '::Cal';
+  else {
+    ($y, $m, $d) = $ts =~ m{^(\d+)/(\d\d)/(\d\d)$};
+    croak "invalid yyyy/mm/dd date string '$ts'" unless defined $d;
+  }
+  my($cy, $cm) = ($self->year, $self->month);
+  my $first = sprintf("%04d/%02d/%02d", $cy, $cm, 1);
+  my $last  = sprintf("%04d/%02d/%02d", $cy, $cm, $self->lastday);
+  my $pivot = sprintf("%04d/%02d/%02d", $y, $m, $d);
+  return -1 if $pivot gt $last;
+  return  0 if $pivot lt $first;
+  $d;
+}
+
+sub _summon_date_class {
+  my $self = shift;
+  my @tools;
+  if (my $c = $self->datetool) {
+    @tools = $c->_name;
   }
-  elsif ( $self->_test_for_datecalc ) {
-    $dc = __PACKAGE__ . '::DateCalc';
+  else {
+    @tools = qw( timelocal datecalc datetime datemanip ncal cal );
   }
-  elsif ( $self->_test_for_datetime ) {
-    $dc = __PACKAGE__ . '::DateTime';
+  my($dc, @fails);
+  for my $tool (@tools) {
+    my $method = join('_', '', lc($tool), 'fails');
+    if (my $f = $self->$method) {
+      push(@fails, [$tool, $f]);
+    }
+    else {
+      $dc = $self->_toolmap($tool);
+      last;
+    }
   }
-  elsif( $self->_test_for_datemanip ) {
-    $dc = __PACKAGE__ . '::DateManip';
+  return $dc if $dc;
+  if (@tools == 1) {
+    croak "invalid date tool " . join(': ', @{$fails[0]}) if @tools == 1;
   }
   else {
-    croak <<__NOTOOL;
-No valid date mechanism found. Install Date::Calc, DateTime, or
-Date::Manip, or try using a date between 1970 and 2038 so that
-Time::Local can be used.
-__NOTOOL
+    croak join("\n",
+      "no valid date tool found:",
+      map(sprintf("%11s: %s", @$_), @fails),
+      "\n"
+    );
   }
-  $dc;
 }
 
 sub _dump_tests {
   my $self = shift;
-  print "Time::Local : ", $self->_test_for_timelocal, "\n";
-  print "        cal : ", $self->_test_for_cal, "\n";
-  print " Date::Calc : ", $self->_test_for_datecalc, "\n";
-  print "   DateTime : ", $self->_test_for_datetime, "\n";
-  print "Date::Manip : ", $self->_test_for_datemanip, "\n";
+  print "Time::Local : ", $self->_timelocal_fails || 1, "\n";
+  print " Date::Calc : ", $self->_datecalc_fails  || 1, "\n";
+  print "   DateTime : ", $self->_datetime_fails  || 1, "\n";
+  print "Date::Manip : ", $self->_datemanip_fails || 1, "\n";
+  print "       ncal : ", $self->_ncal_fails      || 1, "\n";
+  print "        cal : ", $self->_cal_fails       || 1, "\n";
 }
 
-sub _test_for_timelocal {
+sub _is_julian {
   my $self = shift;
-  my $year = $self->year;
-  my $weeknum = $self->weeknum;
-  !$weeknum && eval "require Time::Local" &&
-    (!defined $year || (($year >= 1970) && ($year < 2038)));
+  my $y = $self->year;
+  $y < 1752 || ($y == 1752 && $self->month <= 9);
 }
 
-sub _test_for_cal {
+sub _timelocal_fails {
   my $self = shift;
-  my $weeknum = $self->weeknum;
-  my $historic = $self->historic;
-  my $cal = $self->cal_cmd;
-  !$weeknum && $historic && $cal;
+  return "not installed" unless $self->_timelocal_present;
+  return "week-of-year numbering unsupported" if $self->weeknum;
+  my $y = $self->year;
+  return "only years between 1970 and 2038 supported"
+    if $y < 1970 || $y >= 2038;
+  return;
 }
 
-sub _test_for_datecalc  { eval "require Date::Calc";  return !$@ }
+sub _ncal_fails {
+  my $self = shift;
+  return "command not found" unless $self->_ncal_present;
+  return "week-of-year numbering not supported prior to 1752/09"
+    if $self->weeknum && $self->_is_julian;
+  return;
+}
 
-sub _test_for_datetime  { eval "require DateTime";    return !$@ }
+sub _cal_fails  {
+  my $self = shift;
+  return "command not found" unless $self->_cal_present;
+  return "week-of-year numbering not supported" if $self->weeknum;
+  return;
+}
+
+sub _datecalc_fails {
+  my $self = shift;
+  return "not installed" unless $self->_datecalc_present;
+  return "historic mode prior to 1752/09 not supported"
+    if $self->historic && $self->_is_julian;
+  return;
+}
 
-sub _test_for_datemanip { eval "require Date::Manip"; return !$@ }
+sub _datetime_fails {
+  my $self = shift;
+  return "not installed" unless $self->_datetime_present;
+  return "historic mode prior to 1752/09 not supported"
+    if $self->historic && $self->_is_julian;
+  return;
+}
+
+sub _datemanip_fails {
+  my $self = shift;
+  return "not installed" unless $self->_datemanip_present;
+  return "historic mode prior to 1752/09 not supported"
+    if $self->historic && $self->_is_julian;
+  return;
+}
+
+sub _timelocal_present { eval "require Time::Local"; return !$@ }
+sub _datecalc_present  { eval "require Date::Calc";  return !$@ }
+sub _datetime_present  { eval "require DateTime";    return !$@ }
+sub _datemanip_present { eval "require Date::Manip"; return !$@ }
+sub _ncal_present      { shift->_ncal_cmd }
+sub _cal_present       { shift->_cal_cmd  };
 
 1;
 
@@ -179,8 +336,9 @@ available on the current system. For most contemporary dates this
 usually ends up being the internal Time::Local package of perl. For more
 exotic dates, or when week number of the years are desired, other
 methods are attempted including DateTime, Date::Calc, Date::Manip, and
-the unix 'cal' command. Each of these has a specific subclass of this
-module offering the same utility methods needed by HTML::CalendarMonth.
+the linux/unix 'ncal' or 'cal' commands. Each of these has a specific
+subclass of this module offering the same utility methods needed by
+HTML::CalendarMonth.
 
 =head1 METHODS
 
@@ -209,17 +367,18 @@ currently set up for week of year calculations.
 
 =item historic
 
-Optional. If the 'cal' command is available, use it rather than other available
-date modules since the 'cal' command accurately handles some specific
-historical artifacts such as the transition from Julian to Gregorian.
+Optional. If the the ncal or cal commands are available, use one of them
+rather than other available date modules since these utilities
+accurately handle some specific historical artifacts such as the
+transition from Julian to Gregorian.
 
 =item datetool
 
 Optional. Mostly for debugging, this option can be used to indicate a
 specific HTML::CalendarMonth::DateTool subclass for instantiation. The
 value can be either the actual utility class, e.g., Date::Calc, or the
-name of the CalendarMonth handler leaf class, e.g. DateCalc. For the
-'cal' command, use 'cal'.
+name of the CalendarMonth handler leaf class, e.g. DateCalc. Use 'ncal'
+or 'cal', respectively, for the wrappers around those commands.
 
 =back
 
@@ -245,7 +404,7 @@ Accessors for the parameters provided to C<new()> above.
 
 Returns the day of week number for the 1st of the C<year> and C<month>
 specified during the call to C<new()>. Relies on the presence of
-C<dow1st_and_lastday()>.
+C<dow1st_and_lastday()>. Should be 0..6 starting with Sun.
 
 =item lastday()
 
@@ -264,8 +423,9 @@ C<dow1st_and_lastday()> methods.
 
 =item dow1st_and_lastday()
 
-Required. Provides a list containing the day of the week of the first day of the
-month along with the last day of the month.
+Required. Provides a list containing the day of the week of the first
+day of the month (0..6 starting with Sun) along with the last day of
+the month.
 
 =item day_epoch()
 
@@ -285,7 +445,7 @@ methods are necessary:
 
 For a given day, and optionally C<month> and C<year> if they are
 different from those specified in C<new()>, provide the day of week
-number. (1=Sunday, 6=Saturday).
+number. (1=Sunday, 7=Saturday).
 
 =item add_days($days, $delta, $day, [$month], [$year])
 
@@ -308,7 +468,7 @@ Matthew P. Sisk, E<lt>F<sisk@mojotoad.com>E<gt>
 
 =head1 COPYRIGHT
 
-Copyright (c) 2005 Matthew P. Sisk. All rights reserved. All wrongs
+Copyright (c) 2010 Matthew P. Sisk. All rights reserved. All wrongs
 revenged. This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
 
index 6542a42017a0b218982498275a8a1ea25436e287..2d63e006f77fadb7b886aaceb415440a5e00396e 100644 (file)
@@ -1,23 +1,21 @@
 package HTML::CalendarMonth::DateTool::Cal;
+BEGIN {
+  $HTML::CalendarMonth::DateTool::Cal::VERSION = '1.25';
+}
 
 # Interface to unix 'cal' command
 
 use strict;
+use warnings;
 use Carp;
 
-use vars qw(@ISA $VERSION);
-
-@ISA = qw(HTML::CalendarMonth::DateTool);
-
-$VERSION = '0.01';
-
-use Time::Local;
+use base qw( HTML::CalendarMonth::DateTool );
 
 sub dow1st_and_lastday {
   my($self, $month, $year) = @_;
   $month ||= $self->month;
   $year  ||= $self->year;
-  my $cmd = $self->cal_cmd or croak "cal command not found\n";
+  my $cmd = $self->_cal_cmd or croak "cal command not found\n";
 
   my @cal = grep(!/^\s*$/,`$cmd $month $year`);
   chomp @cal;
@@ -27,11 +25,11 @@ sub dow1st_and_lastday {
   # With dow1st and lastday, one builds a calendar sequentially.
   # Historically, in particular Sep 1752, days have been skipped. Here's
   # the chance to catch that.
-  $self->skips(undef);
+  $self->_skips(undef);
   if ($month == 9 && $year == 1752) {
     my %skips;
     grep(++$skips{$_}, 3 .. 13);
-    $self->skips(\%skips);
+    $self->_skips(\%skips);
   }
   ($dow1st, $lastday);
 }
index 90612f6f2cc476200c98404a0b7be334d4ef8b65..38cbcbb3869b7bcacb585f0e90081ffbe49ce3c2 100644 (file)
@@ -1,31 +1,31 @@
 package HTML::CalendarMonth::DateTool::DateCalc;
+BEGIN {
+  $HTML::CalendarMonth::DateTool::DateCalc::VERSION = '1.25';
+}
 
 # Interface to Date::Calc
 
 use strict;
+use warnings;
 use Carp;
 
-use vars qw(@ISA $VERSION);
-
-@ISA = qw(HTML::CalendarMonth::DateTool);
-
-$VERSION = '0.03';
+use base qw( HTML::CalendarMonth::DateTool );
 
-use Date::Calc qw(Days_in_Month Day_of_Week Add_Delta_Days
-                  Weeks_in_Year Week_of_Year Week_Number Mktime
-                 );
+use Date::Calc qw(
+  Days_in_Month
+  Day_of_Week
+  Add_Delta_Days
+  Weeks_in_Year
+  Week_of_Year
+  Week_Number
+  Mktime
+);
 
 sub dow1st_and_lastday {
   my($self, $month, $year) = @_;
   $month ||= $self->month;
   $year  ||= $self->year;
-  my $lastday = Days_in_Month($year, $month);
-  # Date::Calc uses 1..7 as indicies in the week, starting with Monday.
-  # Internally, we use 0..6, starting with Sunday. These turn out to be
-  # identical except for Sunday.
-  my $dow1st = $self->dow(1);
-  $dow1st = 0 if $dow1st == 7;
-  ($dow1st, $lastday);
+  ($self->dow(1), Days_in_Month($year, $month));
 }
 
 sub day_epoch {
@@ -37,16 +37,18 @@ sub day_epoch {
 
 sub dow {
   my($self, $day, $month, $year) = @_;
-  $day || croak "Day required.\n";
+  $day || croak "day required.\n";
   $month ||= $self->month;
   $year  ||= $self->year;
-  Day_of_Week($year, $month, $day);
+  # Date::Calc uses 1..7 as indicies in the week, starting with Monday.
+  # Convert to 0..6, starting with Sunday.
+  Day_of_Week($year, $month, $day) % 7;
 }
 
 sub add_days {
   my($self, $delta, $day, $month, $year) = @_;
-  defined $delta || croak "Delta (in days) required.\n";
-  $day   || croak "Day required.\n";
+  defined $delta || croak "delta (in days) required.\n";
+  $day   || croak "day required.\n";
   $month ||= $self->month;
   $year  ||= $self->year;
   my($y, $m, $d) = Add_Delta_Days($year, $month, $day, $delta);
@@ -55,7 +57,7 @@ sub add_days {
 
 sub week_of_year {
   my($self, $day, $month, $year) = @_;
-  $day || croak "Day required.\n";
+  $day || croak "day required.\n";
   $month ||= $self->month;
   $year  ||= $self->year;
   my $week;
index 3ed893c1163ad0705e4803e8ae56eff7a7eac6d0..d13283a7c4552ed945f837895ae243c4c384d1c0 100644 (file)
@@ -1,32 +1,35 @@
 package HTML::CalendarMonth::DateTool::DateManip;
+BEGIN {
+  $HTML::CalendarMonth::DateTool::DateManip::VERSION = '1.25';
+}
 
 # Interface to Date::Manip
 
 use strict;
+use warnings;
 use Carp;
 
-use vars qw(@ISA $VERSION);
-
-@ISA = qw(HTML::CalendarMonth::DateTool);
-
-$VERSION = '0.02';
+use base qw( HTML::CalendarMonth::DateTool );
 
-use Date::Manip qw(Date_DaysInMonth Date_DayOfWeek DateCalc
-                   UnixDate Date_SecsSince1970);
+use Date::Manip qw(
+  Date_DaysInMonth
+  Date_DayOfWeek
+  DateCalc
+  UnixDate
+  Date_SecsSince1970
+  ParseDateDelta
+);
 
 sub dow1st_and_lastday {
   my($self, $month, $year) = @_;
   $month ||= $self->month;
   $year  ||= $self->year;
-  my $lastday = Date_DaysInMonth($month, $year);
-  # Date::Manip uses 1 for Monday, 7 for Sunday as well.
-  my $dow1st = $self->dow(1);
-  ($dow1st, $lastday);
+  ($self->dow(1), Date_DaysInMonth($month, $year));
 }
 
 sub day_epoch {
   my($self, $day, $month, $year) = @_;
-  $day || croak "Day required.\n";
+  $day || croak "day required.\n";
   $month ||= $self->month;
   $year  ||= $self->year;
   Date_SecsSince1970($month, $day, $year, 0, 0, 0);
@@ -34,25 +37,24 @@ sub day_epoch {
 
 sub dow {
   # Date::Manip uses 1..7 as indicies in the week, starting with Monday.
-  # Internally, we use 0..6, starting with Sunday. These turn out to be
-  # identical except for Sunday.
+  # Convert to 0..6 starting with Sunday.
   my($self, $day, $month, $year) = @_;
-  $day || croak "Day required.\n";
+  $day   || croak "day required.\n";
   $month ||= $self->month;
   $year  ||= $self->year;
-  my $dow = Date_DayOfWeek($month, $day, $year);
-  $dow = 0 if $dow == 7;
-  $dow;
+  Date_DayOfWeek($month, $day, $year) % 7;
 }
 
 sub add_days {
   my($self, $delta, $day, $month, $year) = @_;
-  defined $delta || croak "Delta (in days) required.\n";
-  $day   || croak "Day required.\n";
+  defined $delta || croak "delta (in days) required.\n";
+  $day   || croak "day required.\n";
   $month ||= $self->month;
   $year  ||= $self->year;
-  my $date = DateCalc(sprintf("%04d%02d%02d", $year, $month, $day),
-                      ($delta < 0 ? '':'+')." $delta days");
+  my $date = DateCalc(
+    sprintf("%04d%02d%02d", $year, $month, $day),
+    "$delta days"
+  );
   my($y, $m, $d) = $date =~ /^(\d{4})(\d\d)(\d\d)/;
   $_ += 0 foreach ($y, $m, $d);
   ($d, $m, $y);
@@ -60,7 +62,7 @@ sub add_days {
 
 sub week_of_year {
   my($self, $day, $month, $year) = @_;
-  $day || croak "Day required.\n";
+  $day   || croak "day required.\n";
   $month ||= $self->month;
   $year  ||= $self->year;
   my $week = UnixDate(sprintf("%04d%02d%02d", $year, $month, $day), '%U');
index 9e6e13c4e4ba370ca859f25ccf0cdfca39c1ee9a..a0b98b315f6df9be60bcaa6022bd534e031c2f07 100644 (file)
@@ -1,15 +1,15 @@
 package HTML::CalendarMonth::DateTool::DateTime;
+BEGIN {
+  $HTML::CalendarMonth::DateTool::DateTime::VERSION = '1.25';
+}
 
 # Interface to DateTime
 
 use strict;
+use warnings;
 use Carp;
 
-use vars qw(@ISA $VERSION);
-
-@ISA = qw(HTML::CalendarMonth::DateTool);
-
-$VERSION = '0.02';
+use base qw( HTML::CalendarMonth::DateTool );
 
 use DateTime;
 
@@ -24,7 +24,7 @@ sub dow1st_and_lastday {
 
 sub day_epoch {
   my($self, $day, $month, $year) = @_;
-  $day || croak "Day required.\n";
+  $day || croak "day required.\n";
   $month ||= $self->month;
   $year  ||= $self->year;
   my $dt = $self->_new_dt($year, $month, $day);
@@ -33,17 +33,18 @@ sub day_epoch {
 
 sub dow {
   my($self, $day, $month, $year) = @_;
-  $day || croak "Day required.\n";
+  $day || croak "day required.\n";
   $month ||= $self->month;
   $year  ||= $self->year;
   my $dt = $self->_new_dt($year, $month, $day);
-  $dt->dow;
+  # convert from 1..7, starting with Mon, to 0..6, starting with Sun
+  $dt->dow % 7;
 }
 
 sub add_days {
   my($self, $delta, $day, $month, $year) = @_;
-  defined $delta || croak "Delta (in days) required.\n";
-  $day   || croak "Day required.\n";
+  defined $delta || croak "delta (in days) required.\n";
+  $day   || croak "day required.\n";
   $month ||= $self->month;
   $year  ||= $self->year;
   my $dt = $self->_new_dt($year, $month, $day);
@@ -53,7 +54,7 @@ sub add_days {
 
 sub week_of_year {
   my($self, $day, $month, $year) = @_;
-  $day || croak "Day required.\n";
+  $day || croak "day required.\n";
   $month ||= $self->month;
   $year  ||= $self->year;
   my $dt = $self->_new_dt($year, $month, $day);
@@ -77,7 +78,7 @@ sub _new_dt {
 sub _last_dom_dt {
   my $self = shift;
   my($year, $month) = @_;
-  $year && $month or croak "Year and month required.\n";
+  $year && $month or croak "year and month required.\n";
   DateTime->last_day_of_month(year => $year, month => $month);
 }
 
diff --git a/lib/HTML/CalendarMonth/DateTool/Ncal.pm b/lib/HTML/CalendarMonth/DateTool/Ncal.pm
new file mode 100644 (file)
index 0000000..22fff0f
--- /dev/null
@@ -0,0 +1,126 @@
+package HTML::CalendarMonth::DateTool::Ncal;
+BEGIN {
+  $HTML::CalendarMonth::DateTool::Ncal::VERSION = '1.25';
+}
+
+# Interface to linux 'ncal' command
+
+use strict;
+use warnings;
+use Carp;
+
+use base qw( HTML::CalendarMonth::DateTool );
+
+sub dow1st_and_lastday {
+  my($self, $month, $year) = @_;
+  $month ||= $self->month;
+  $year  ||= $self->year;
+  if (my $r = $self->{_res}{$year}{$month}) {
+    return(@$r);
+  }
+  my $cmd = $self->_ncal_cmd or croak "ncal command not found\n";
+  my @cal = grep(!/^\s*$/,`$cmd -w $month $year`);
+  shift @cal if $cal[0] =~ /\D+/;
+  my @woy;
+  if ($cal[-1] =~ /^\s*\d+/) {
+    @woy = (pop @cal) =~ /(\d+)/g;
+  }
+  my($dow1st, %woy, %dow);
+  my $last_day = 0;
+  for my $di (0 .. $#cal) {
+    my $dow_row = $cal[$di];
+    $dow_row =~ s/^\s+//;
+    $dow_row =~ s/\s+$//;
+    $dow_row =~ s/\s{3,}/ 0 /g;
+    $dow_row =~ s/\D+/ /g;
+    $dow_row =~ s/^\s+//;
+    my @days = split(/\s+/, $dow_row);
+    $dow1st = ($di + 1) % 7 if !$dow1st && $days[0];
+    for my $i (0 .. $#days) {
+      my $d = $days[$i] || next;
+      $last_day = $d if $d > $last_day;
+      $woy{$d}  = $woy[$i];
+      $dow{$d}  = $di;
+    }
+  }
+  # catch switchover from Julian to Gregorian
+  $self->_skips(undef);
+  if ($month == 9 && $year == 1752) {
+    my %skips;
+    grep(++$skips{$_}, 3 .. 13);
+    $self->_skips(\%skips);
+  }
+  delete $self->{_woy};
+  delete $self->{_dow};
+  delete $self->{_res};
+  $self->{_woy}{$year}{$month} = \%woy if %woy;
+  $self->{_dow}{$year}{$month} = \%dow if %dow;
+  $self->{_res}{$year}{$month} = [$dow1st, $last_day];
+  ($dow1st, $last_day);
+}
+
+sub week_of_year {
+  my($self, $day, $month, $year) = @_;
+  $month ||= $self->month;
+  $year  ||= $self->year;
+  croak "week of year not supported by ncal prior to 10/1752"
+    if $year < 1752 || ($year == 1752 && $month < 10);
+  $self->dow1st_and_lastday unless $self->{_woy}{$year}{$month};
+  $self->{_woy}{$year}{$month}{$day};
+}
+
+sub dow {
+  my($self, $day, $month, $year) = @_;
+  $month ||= $self->month;
+  $year  ||= $self->year;
+  $self->dow1st_and_lastday unless $self->{_dow}{$year}{$month};
+  $self->{_dow}{$year}{$month}{$day};
+}
+
+sub add_days {
+  my($self, $delta, $day, $month, $year) = @_;
+  $month ||= $self->month;
+  $year  ||= $self->year;
+  if ($delta <= 0) {
+    $delta = abs($delta);
+    if ($delta < $day) {
+      return($day - $delta, $month, $year);
+    }
+    else {
+      my @days = reverse 1 .. $day;
+      while (@days < $delta) {
+        --$month;
+        if ($month <= 0) {
+          --$year; $month = 12;
+        }
+        my($dow1st, $last_day) = $self->dow1st_and_lastday($month, $year);
+        push(@days, reverse 1 .. $last_day);
+      }
+      return($days[$delta], $month, $year);
+    }
+  }
+  else {
+    my $last_day;
+    if (my $res = $self->{_res}{$year}{$month}) {
+      $last_day = $res->[1];
+    }
+    else {
+      $last_day = ($self->dow1st_and_lastday($month, $year))[1];
+    }
+    if ($delta + $day <= $last_day) {
+      return($day + $delta, $month, $year);
+    }
+    my @days = $day .. $last_day;
+    while (@days < $delta) {
+      ++$month;
+      if ($month > 12) {
+        ++$year; $month = 1;
+      }
+      my($dow1st, $last_day) = $self->dow1st_and_lastday($month, $year);
+      push(@days, 1 .. $last_day);
+    }
+    return($days[$delta], $month, $year);
+  }
+}
+
+1;
index 05b084eee67530e918781211ad247660a1a85bed..e04321b71938749fa927a71f5a0aa12eb27338e0 100644 (file)
@@ -1,15 +1,15 @@
 package HTML::CalendarMonth::DateTool::TimeLocal;
+BEGIN {
+  $HTML::CalendarMonth::DateTool::TimeLocal::VERSION = '1.25';
+}
 
 # Interface to Time::Local
 
 use strict;
+use warnings;
 use Carp;
 
-use vars qw(@ISA $VERSION);
-
-@ISA = qw(HTML::CalendarMonth::DateTool);
-
-$VERSION = '0.01';
+use base qw( HTML::CalendarMonth::DateTool );
 
 use Time::Local;
 
index 063db739e23dd1953fb7e5d17f47f052f9496aa1..34599925cb955d7588b839dae8b7e6f46c4e67cb 100644 (file)
@@ -1,4 +1,7 @@
 package HTML::CalendarMonth::Locale;
+BEGIN {
+  $HTML::CalendarMonth::Locale::VERSION = '1.25';
+}
 
 # Front end class around DateTime::Locale. In addition to providing
 # access to the DT::Locale class and locale-specific instance, this
@@ -6,12 +9,10 @@ package HTML::CalendarMonth::Locale;
 # HTML::CalendarMonth.
 
 use strict;
+use warnings;
 use Carp;
 
-use DateTime::Locale;
-
-use vars qw($VERSION);
-$VERSION = '0.01';
+use DateTime::Locale 0.45;
 
 my %Register;
 
@@ -22,8 +23,8 @@ sub new {
   my %parms = @_;
   my $id = $parms{id} or croak "Locale id required (eg 'en_US')\n";
   $self->{id} = $id;
-  $self->{full_days}   = exists $parms{full_days}   ? $parms{full_days}   : 0;
-  $self->{full_months} = exists $parms{full_months} ? $parms{full_months} : 1;
+  $self->{full_days}   = defined $parms{full_days}   ? $parms{full_days}   : 0;
+  $self->{full_months} = defined $parms{full_months} ? $parms{full_months} : 1;
   unless ($Register{$id}) {
     $Register{$id} = $self->locale->load($id)
       or croak "Problem loading locale '$id'\n";
@@ -31,7 +32,6 @@ sub new {
   $self;
 }
 
-
 sub locale { 'DateTime::Locale' }
 
 sub loc { $Register{shift->id} }
@@ -42,37 +42,78 @@ sub id          { shift->{id}          }
 sub full_days   { shift->{full_days}   }
 sub full_months { shift->{full_months} }
 
+sub first_day_of_week { shift->loc->first_day_of_week % 7 }
+
 sub days {
   my $self = shift;
   my $id = $self->id;
   unless ($Register{$id}{days}) {
-    # we've always used Sunday as first day...
-    my $method = $self->full_days ? 'day_names' : 'day_abbreviations';
-    my @days = @{$self->loc->$method};
+    my $method = $self->full_days > 0 ? 'day_stand_alone_wide'
+                                      : 'day_stand_alone_abbreviated';
+    # adjust to H::CM standard expectation, 1st day Sun
+    # Sunday is first, regardless of what the calendar considers to be
+    # the first day of the week
+    my @days  = @{$self->loc->$method};
     unshift(@days, pop @days);
     $Register{$id}{days} = \@days;
   }
   wantarray ? @{$Register{$id}{days}} : $Register{$id}{days};
 }
 
+sub narrow_days {
+  my $self = shift;
+  my $id   = $self->id;
+  unless ($Register{$id}{narrow_days}) {
+    # Sunday is first, regardless of what the calendar considers to be
+    # the first day of the week
+    my @days = @{ $self->loc->day_stand_alone_narrow };
+    unshift(@days, pop @days);
+    $Register{$id}{narrow_days} = \@days;
+  }
+  wantarray ? @{$Register{$id}{narrow_days}} : $Register{$id}{narrow_days};
+}
+
 sub months {
   my $self = shift;
   my $id = $self->id;
   unless ($Register{$id}{months}) {
-    my $method = $self->full_months ? 'month_names' : 'month_abbreviations';
+    my $method = $self->full_months > 0 ? 'month_stand_alone_wide'
+                                        : 'month_stand_alone_abbreviated';
     $Register{$id}{months} = [@{$self->loc->$method}];
   }
   wantarray ? @{$Register{$id}{months}} : $Register{$id}{months};
 }
 
-sub minmatch {
+sub narrow_months {
   my $self = shift;
-  my $id = $self->id;
-  unless ($Register{$id}{minmatch}) {
-    $Register{$id}{days_minmatch} = 
-      $self->minmatch_hash(@{$self->days});
-  }
-  $Register{$id}{days_minmatch};
+  my $id   = $self->id;
+  $Register{$id}{narrow_months} ||= [$self->loc->month_stand_alone_narrow];
+  wantarray ? @{$Register{$id}{narrow_months}} : $Register{$id}{narrow_months};
+}
+
+sub days_minmatch {
+  my $self = shift;
+  $Register{$self->id}{days_mm}
+    ||= $self->lc_minmatch_hash($self->days);
+}
+*minmatch = \&days_minmatch;
+
+sub _days_minmatch_pattern {
+  my $dmm = shift->days_minmatch;
+  join('|', sort keys %$dmm);
+}
+*minmatch_pattern = \&_days_minmatch_pattern;
+
+
+sub months_minmatch {
+  my $self = shift;
+  $Register{$self->id}{months_mm}
+    ||= $self->lc_minmatch_hash($self->months);
+}
+
+sub _months_minmatch_pattern {
+  my $mmm = shift->months_minmatch;
+  join('|', sort keys %$mmm);
 }
 
 sub daynums {
@@ -87,13 +128,24 @@ sub daynums {
   $Register{$id}{daynum};
 }
 
-sub daynum {
+sub _daymatch {
   my($self, $day) = @_;
-  defined $day or croak "day of week label required\n";
-  my $days = $self->days;
-  $days->{$day} or croak "Failed daynum lookup for '$day'\n";
+  return unless defined $day;
+  if ($day =~ /^\d+$/) {
+    $day %= 7;
+    return($day, $self->days->[$day]);
+  }
+  my $p = $self->_days_minmatch_pattern;
+  if ($day =~ /^($p)/i) {
+    $day = $self->days_minmatch->{lc $1};
+    return($self->daynums->{$day}, $day);
+  }
+  return ();
 }
 
+sub daynum  { (shift->_daymatch(@_))[0] }
+sub dayname { (shift->_daymatch(@_))[1] }
+
 sub monthnums {
   my $self = shift;
   my $id = $self->id;
@@ -106,13 +158,24 @@ sub monthnums {
   $Register{$id}{monthnum};
 }
 
-sub monthnum {
-  my($self, $month) = @_;
-  defined $month or croak "month label required\n";
-  my $monthnums = $self->monthnums;
-  $monthnums->{$month} or croak "Failed monthnum lookup for '$month'\n";
+sub _monthmatch {
+  my($self, $mon) = @_;
+  return unless defined $mon;
+  if ($mon =~ /^\d+$/) {
+    $mon %= 12;
+    return($mon, $self->months->[$mon]);
+  }
+  my $p = $self->_months_minmatch_pattern;
+  if ($mon =~ /^($p)/i) {
+    $mon = $self->months_minmatch->{lc $1};
+    return($self->monthnums->{$mon}, $mon);
+  }
+  return ();
 }
 
+sub monthnum  { (shift->_monthmatch(@_))[0] }
+sub monthname { (shift->_monthmatch(@_))[1] }
+
 ###
 
 sub locale_map {
@@ -126,6 +189,38 @@ sub locale_map {
 
 ###
 
+sub lc_minmatch_hash {
+  # given a list, provide a reverse lookup of case-insensitive minimal
+  # values for each label in the list
+  my $whatever = shift;
+  my @orig_labels = @_;
+  my @labels = map { lc $_ } @orig_labels;
+  my $cc = 1;
+  my %minmatch;
+  while (@labels) {
+    my %scratch;
+    foreach my $i (0 .. $#labels) {
+      my $str = $labels[$i];
+      my $chrs = substr($str, 0, $cc);
+      $scratch{$chrs} ||= [];
+      push(@{$scratch{$chrs}}, $i);
+    }
+    my @keep_i;
+    foreach (keys %scratch) {
+      if (@{$scratch{$_}} == 1) {
+        $minmatch{$_} = $orig_labels[$scratch{$_}[0]];
+      }
+      else {
+        push(@keep_i, @{$scratch{$_}});
+      }
+    }
+    @labels      = @labels[@keep_i];
+    @orig_labels = @orig_labels[@keep_i];
+    ++$cc;
+  }
+  \%minmatch;
+}
+
 sub minmatch_hash {
   # given a list, provide a reverse lookup of minimal values for each
   # label in the list
@@ -156,8 +251,6 @@ sub minmatch_hash {
   \%minmatch;
 }
 
-sub minmatch_pattern { join('|',keys %{shift->minmatch}) }
-
 1;
 
 __END__
@@ -230,6 +323,11 @@ Returns the locale id used during object construction.
 Accessor method for the DateTime::Locale class, which in turn offers
 several class methods of specific interest. See L<DateTime::Locale>.
 
+=item locale_map()
+
+Returns a hash of all available locales, mapping their id to their
+full name.
+
 =item loc()
 
 Accessor method for the DateTime::Locale instance as specified by C<id>.
@@ -243,10 +341,22 @@ DateTime::Locale->ids().
 =item days()
 
 Returns a list of days of the week, Sunday first. These are the actual
-days used for rendering the calendars, so depending on which attributes
-were provided to C<new()>, this list will either be abbreviations or
-full names. The default uses abbreviated day names. Returns a list in
-list context or an array ref in scalar context.
+unique day strings used for rendering calendars, so depending on which
+attributes were provided to C<new()>, this list will either be
+abbreviations or full names. The default uses abbreviated day names.
+Returns a list in list context or an array ref in scalar context.
+
+=item narrow_days()
+
+Returns a list of short day abbreviations, beginning with Sunday. The
+narrow abbreviations are not guaranteed to be unique (i.e. 'S' for both
+Sat and Sun).
+
+=item days_minmatch()
+
+Provides a hash reference containing minimal case-insensitive match
+strings for each day of the week, e.g., 'sa' for Saturday, 'm' for
+Monday, etc.
 
 =item months()
 
@@ -255,35 +365,58 @@ on which attributes were provided to C<new()>, this list will either be
 full names or abbreviations. The default uses full names. Returns a list
 in list context or an array ref in scalar context.
 
-=item minmatch()
+=item narrow_months()
+
+Returns a list of short month abbreviations, beginning with January. The
+narrow abbreviations are not guaranteed to be unique.
 
-Provides a hash reference containing minimal match strings for each
-month of the year, e.g., 'N' for November, 'Ja' for January, 'Jul' for
-July, 'Jun' for June, etc.
+=item months_minmatch()
+
+Provides a hash reference containing minimal case-insensitive match
+strings for each month of the year, e.g., 'n' for November, 'ja' for
+January, 'jul' for July, 'jun' for June, etc.
 
 =item daynums()
 
-Provides a hash reference containing day of week numbers for each day
-name.
+Provides a hash reference containing day of week indices for each fully
+qualified day name as returned by days().
 
 =item daynum($day)
 
-Provides the day of week number for a particular day name.
+Provides the day of week index for a particular day name.
+
+=item dayname($day)
+
+Provides the fully qualified day name for a given string or day index.
 
 =item monthnums()
 
-Provides a hash reference containing month of year numbers for each
-month name.
+Provides a hash reference containing month of year indices for each
+fully qualified month name as returned by months().
 
 =item monthnum($month)
 
-Provides the month of year number for a particular month name.
+Provides the month of year index for a particular month name.
+
+=item monthname($month)
+
+Provides the month name for a given string or month index.
 
 =item minmatch_hash(@list)
 
-This is the method used to generate the minimal match hash referenced
-above. Given an arbitrary list, a hash reference will be returned with
-minimal match strings as keys and full names as values.
+This is the method used to generate the case-insensitive minimal match
+hash referenced above. Given an arbitrary list, a hash reference will
+be returned with minimal match strings as keys and the original strings
+as values.
+
+=item lc_minmatch_hash(@list)
+
+Same as minmatch_hash, except keys are forced to lower case.
+
+=item first_day_of_week()
+
+Returns a number from 0 to 6 representing the first day of the week for
+this locale, where 0 represents Sunday.
 
 =back
 
@@ -293,10 +426,12 @@ Matthew P. Sisk, E<lt>F<sisk@mojotoad.com>E<gt>
 
 =head1 COPYRIGHT
 
-Copyright (c) 2005 Matthew P. Sisk. All rights reserved. All wrongs
+Copyright (c) 2010 Matthew P. Sisk. All rights reserved. All wrongs
 revenged. This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
 
 =head1 SEE ALSO
 
 HTML::CalendarMonth(3), DateTime::Locale(3)
+
+=for Pod::Coverage minmatch minmatch_pattern
index b8bfd99dc62110ba0674cb3f007156f6d0ebfb9f..3ecc0cf0e6bc2c28c350fa73d4b19eff05dd4acd 100755 (executable)
@@ -6,9 +6,19 @@ use lib $FindBin::RealBin;
 
 use testload;
 
-my($test_count, $method);
-BEGIN { $test_count = case_count() ; $method = '' }
+use HTML::CalendarMonth::DateTool;
+
+my($test_count, $detected);
+BEGIN {
+  $test_count = bulk_count() + 1;
+  eval { $detected = HTML::CalendarMonth::DateTool->new };
+}
 
 use Test::More tests => $test_count;
 
-check_basic_with_datetool($method);
+ok($detected, 'auto-detected a datetool');
+
+SKIP: {
+  skip("no datetools installed", $test_count - 1) unless $detected;
+  check_bulk_with_datetool();
+}
index c952aa713ae83b030082bfc1fadc8b00c52016d9..46118476856b9eab3f1a958c8f971f615bfc6f4c 100755 (executable)
@@ -7,7 +7,10 @@ use lib $FindBin::RealBin;
 use testload;
 
 my($test_count, $method);
-BEGIN { $test_count = case_count() + 2 ; $method = 'Time::Local' }
+BEGIN {
+  $method     = 'Time::Local';
+  $test_count = bulk_count() + odd_count() + 2;
+}
 
 use Test::More tests => $test_count;
 
@@ -15,5 +18,6 @@ SKIP: {
   eval "use $method";
   skip("$method not installed", $test_count) if $@;
   check_datetool($method);
-  check_basic_with_datetool($method);
+  check_bulk_with_datetool($method);
+  check_odd_with_datetool($method);
 }
index 3735b1a1c23a90ed9073d37b0dc51f76f2d79088..d1523815c249749740825f7aa30bb54ee5db1dae 100755 (executable)
@@ -7,7 +7,10 @@ use lib $FindBin::RealBin;
 use testload;
 
 my($test_count, $method);
-BEGIN { $test_count = case_count() + 4 ; $method = 'DateTime' }
+BEGIN {
+  $method = 'DateTime';
+  $test_count = bulk_count() + odd_count() + woy_count() + 2;
+}
 
 use Test::More tests => $test_count;
 
@@ -15,6 +18,7 @@ SKIP: {
   eval "use $method";
   skip("$method not installed", $test_count) if $@;
   check_datetool($method);
-  check_basic_with_datetool($method);
+  check_bulk_with_datetool($method);
+  check_odd_with_datetool($method);
   check_woy_with_datetool($method);
 }
index 05c4349689c7cec21ad3d89b53081800f615c35c..dd6046ff9ca25be03813edcb24f671223622c0a4 100755 (executable)
@@ -7,7 +7,10 @@ use lib $FindBin::RealBin;
 use testload;
 
 my($test_count, $method);
-BEGIN { $test_count = case_count() + 4 ; $method = 'Date::Manip' }
+BEGIN {
+  $method = 'Date::Manip';
+  $test_count = bulk_count() + odd_count() + woy_count() + 2;
+}
 
 use Test::More tests => $test_count;
 
@@ -15,6 +18,7 @@ SKIP: {
   eval "use $method";
   skip("$method not installed", $test_count) if $@;
   check_datetool($method);
-  check_basic_with_datetool($method);
+  check_bulk_with_datetool($method);
+  check_odd_with_datetool($method);
   check_woy_with_datetool($method);
 }
index a44fdae6bb8f7d34e4ea2f9d2e04f72522aa7724..c4e3ca939e5d5395582d175d28e9ebfe1a8fee7d 100755 (executable)
@@ -7,7 +7,10 @@ use lib $FindBin::RealBin;
 use testload;
 
 my($test_count, $method);
-BEGIN { $test_count = case_count() + 4 ; $method = 'Date::Calc' }
+BEGIN {
+  $method = 'Date::Calc';
+  $test_count = bulk_count() + odd_count() + woy_count() + 2;
+}
 
 use Test::More tests => $test_count;
 
@@ -15,6 +18,7 @@ SKIP: {
   eval "use $method";
   skip("$method not installed", $test_count) if $@;
   check_datetool($method);
-  check_basic_with_datetool($method);
+  check_bulk_with_datetool($method);
+  check_odd_with_datetool($method);
   check_woy_with_datetool($method);
 }
index 547113c449ec94bbd8997d4fc0aaad8ded6489ef..b2807a9f5af93fee38cdf5e44c1b3525cb8b5c1c 100755 (executable)
@@ -7,14 +7,20 @@ use lib $FindBin::RealBin;
 use testload;
 
 my($test_count, $method);
-BEGIN { $test_count = case_count() + 2 ; $method = 'cal' }
+BEGIN {
+  $method = 'cal';
+  $test_count = bulk_count() + odd_count() + 3;
+}
 
 use Test::More tests => $test_count;
 
+use constant DTC => 'HTML::CalendarMonth::DateTool';
+
+use_ok(DTC);
+
 SKIP: {
-  my $CAL;
-  chomp($CAL = `which cal`);
-  skip("$method not installed", $test_count) unless -x $CAL;
+  skip("$method not installed", $test_count - 1) unless DTC->_cal_cmd;
   check_datetool($method);
-  check_basic_with_datetool($method);
+  check_bulk_with_datetool($method);
+  check_odd_with_datetool($method);
 }
diff --git a/t/07_ncal.t b/t/07_ncal.t
new file mode 100644 (file)
index 0000000..f5ef15b
--- /dev/null
@@ -0,0 +1,27 @@
+#!/usr/bin/perl
+
+use strict;
+use FindBin;
+use lib $FindBin::RealBin;
+
+use testload;
+
+my($test_count, $method);
+BEGIN {
+  $method = 'ncal';
+  $test_count = bulk_count() + odd_count() + woy_count() + 3;
+}
+
+use Test::More tests => $test_count;
+
+use constant DTC => 'HTML::CalendarMonth::DateTool';
+
+use_ok(DTC);
+
+SKIP: {
+  skip("$method not installed", $test_count - 1) unless DTC->_ncal_cmd;
+  check_datetool($method);
+  check_bulk_with_datetool($method);
+  check_odd_with_datetool($method);
+  check_woy_with_datetool($method);
+}
index d01979208ebd7c6c1e5950ec95fe36dbede29131..9631c6508d0590071a32f26684d6372eb46fae1e 100755 (executable)
@@ -6,28 +6,13 @@ use lib $FindBin::RealBin;
 
 use testload;
 
-use Test::More tests => 2;
+my $test_count;
+BEGIN { $test_count = i8n_count() + 1 }
 
-use HTML::CalendarMonth;
-use HTML::CalendarMonth::Locale;
+use Test::More tests => $test_count;
 
-my $zulu;
-eval do { local $/; <DATA> };
-die "Oops on eval: $@\n" if $@;
-$zulu = dq_nums($zulu);
+use HTML::CalendarMonth::Locale;
 
-# i8n (use zulu as example)
 my @stoof = HTML::CalendarMonth::Locale->locales;
-ok(@stoof > 20, 'i8n: locale ids retreived');
-my($year, $month) = (2008, 3);
-my $b = HTML::CalendarMonth->new(
-  year      => $year,
-  month     => $month,
-  locale    => 'zu',
-);
-my $bstr = dq_nums($b->as_HTML);
-chomp($bstr);
-cmp_ok($bstr, 'eq', $zulu, "i8n: ($year/$month : Zulu) using auto-detect");
-
-__DATA__
-$zulu = '<table bgcolor="white" border="1" cellpadding="0" cellspacing="0"><tr align="center"><td align="left" colspan="5">Mashi</td><td align="center" colspan="2">2008</td></tr><tr align="center"><td align="center">Son</td><td align="center">Mso</td><td align="center">Bil</td><td align="center">Tha</td><td align="center">Sin</td><td align="center">Hla</td><td align="center">Mgq</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>'
+ok(@stoof > 20, 'i8n: ' . scalar @stoof . ' locale ids retreived');
+check_i8n();
diff --git a/t/21_narrow.t b/t/21_narrow.t
new file mode 100644 (file)
index 0000000..0857e61
--- /dev/null
@@ -0,0 +1,16 @@
+#!/usr/bin/perl
+
+use strict;
+use FindBin;
+use lib $FindBin::RealBin;
+
+use testload;
+
+my $test_count;
+BEGIN { $test_count = narrow_count() }
+
+use Test::More tests => $test_count;
+
+use HTML::CalendarMonth::Locale;
+
+check_narrow();
diff --git a/t/author-critic.t b/t/author-critic.t
new file mode 100644 (file)
index 0000000..7f47387
--- /dev/null
@@ -0,0 +1,19 @@
+#!perl
+
+BEGIN {
+  unless ($ENV{AUTHOR_TESTING}) {
+    require Test::More;
+    Test::More::plan(skip_all => 'these tests are for testing by the author');
+  }
+}
+
+
+use strict;
+use warnings;
+
+use Test::More;
+use English qw(-no_match_vars);
+
+eval "use Test::Perl::Critic";
+plan skip_all => 'Test::Perl::Critic required to criticise code' if $@;
+all_critic_ok();
diff --git a/t/dat/bulk.dat b/t/dat/bulk.dat
new file mode 100644 (file)
index 0000000..92f50d0
--- /dev/null
@@ -0,0 +1,288 @@
+2010/01 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">January</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr><tr><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2010/01 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">January</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr></table>
+2010/02 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">February</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2010/02 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">February</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr></table>
+2010/03 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">March</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td></tr></table>
+2010/03 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">March</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2010/04 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">April</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td></td></tr></table>
+2010/04 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">April</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td></td><td></td></tr></table>
+2010/05 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">May</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td>31</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2010/05 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">May</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr><tr><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2010/06 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">June</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td></tr></table>
+2010/06 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">June</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td><td></td></tr></table>
+2010/07 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">July</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr></table>
+2010/07 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">July</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td></tr></table>
+2010/08 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">August</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2010/08 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">August</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td>31</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2010/09 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">September</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td></td><td></td></tr></table>
+2010/09 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">September</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td></tr></table>
+2010/10 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">October</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr><tr><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2010/10 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">October</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr></table>
+2010/11 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">November</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td><td></td></tr></table>
+2010/11 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">November</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2010/12 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">December</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td></tr></table>
+2010/12 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">December</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td></tr></table>
+2011/01 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">January</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td>31</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2011/01 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">January</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr><tr><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2011/02 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">February</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2011/02 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">February</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2011/03 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">March</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td></tr></table>
+2011/03 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">March</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td></tr></table>
+2011/04 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">April</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr></table>
+2011/04 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">April</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td></td></tr></table>
+2011/05 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">May</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2011/05 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">May</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td>31</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2011/06 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">June</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td></td><td></td></tr></table>
+2011/06 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">June</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td></tr></table>
+2011/07 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">July</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr><tr><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2011/07 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">July</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr></table>
+2011/08 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">August</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td></tr></table>
+2011/08 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">August</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2011/09 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">September</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td></td></tr></table>
+2011/09 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">September</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td></td><td></td></tr></table>
+2011/10 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">October</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td>31</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2011/10 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">October</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr><tr><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2011/11 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">November</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td></tr></table>
+2011/11 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">November</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td><td></td></tr></table>
+2011/12 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">December</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr></table>
+2011/12 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">December</td><td class="hcm-year-head" colspan="2">2011</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td></tr></table>
+2012/01 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">January</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2012/01 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">January</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td>31</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2012/02 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">February</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td></td><td></td><td></td></tr></table>
+2012/02 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">February</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td></td><td></td><td></td><td></td></tr></table>
+2012/03 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">March</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr></table>
+2012/03 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">March</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td></tr></table>
+2012/04 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">April</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2012/04 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">April</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2012/05 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">May</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td></tr></table>
+2012/05 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">May</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td></tr></table>
+2012/06 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">June</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr></table>
+2012/06 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">June</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td></td></tr></table>
+2012/07 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">July</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2012/07 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">July</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td>31</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2012/08 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">August</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td></tr></table>
+2012/08 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">August</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td></tr></table>
+2012/09 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">September</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2012/09 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">September</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr></table>
+2012/10 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">October</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td></tr></table>
+2012/10 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">October</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2012/11 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">November</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td></td></tr></table>
+2012/11 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">November</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td></td><td></td></tr></table>
+2012/12 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">December</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td>31</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2012/12 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">December</td><td class="hcm-year-head" colspan="2">2012</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr><tr><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2013/01 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">January</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td></tr></table>
+2013/01 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">January</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td></tr></table>
+2013/02 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">February</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td></td><td></td></tr></table>
+2013/02 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">February</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td></td><td></td><td></td></tr></table>
+2013/03 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">March</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr><tr><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2013/03 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">March</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr></table>
+2013/04 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">April</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td><td></td></tr></table>
+2013/04 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">April</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2013/05 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">May</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td></tr></table>
+2013/05 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">May</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td></tr></table>
+2013/06 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">June</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2013/06 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">June</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr></table>
+2013/07 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">July</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td></tr></table>
+2013/07 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">July</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2013/08 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">August</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr></table>
+2013/08 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">August</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td></tr></table>
+2013/09 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">September</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2013/09 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">September</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2013/10 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">October</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td></tr></table>
+2013/10 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">October</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td></tr></table>
+2013/11 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">November</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr></table>
+2013/11 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">November</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td></td></tr></table>
+2013/12 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">December</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2013/12 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">December</td><td class="hcm-year-head" colspan="2">2013</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td>31</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2014/01 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">January</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td></tr></table>
+2014/01 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">January</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td></tr></table>
+2014/02 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">February</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td></td></tr></table>
+2014/02 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">February</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td></td><td></td></tr></table>
+2014/03 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">March</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td>31</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2014/03 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">March</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr><tr><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2014/04 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">April</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td></tr></table>
+2014/04 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">April</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td><td></td></tr></table>
+2014/05 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">May</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr></table>
+2014/05 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">May</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td></tr></table>
+2014/06 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">June</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2014/06 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">June</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2014/07 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">July</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td></tr></table>
+2014/07 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">July</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td></tr></table>
+2014/08 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">August</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr><tr><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2014/08 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">August</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr></table>
+2014/09 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">September</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td><td></td></tr></table>
+2014/09 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">September</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2014/10 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">October</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td></tr></table>
+2014/10 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">October</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td></tr></table>
+2014/11 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">November</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2014/11 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">November</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr></table>
+2014/12 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">December</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td></tr></table>
+2014/12 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">December</td><td class="hcm-year-head" colspan="2">2014</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2015/01 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">January</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr></table>
+2015/01 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">January</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td></tr></table>
+2015/02 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">February</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr></table>
+2015/02 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">February</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td></td></tr></table>
+2015/03 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">March</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2015/03 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">March</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td>31</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2015/04 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">April</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td></td><td></td></tr></table>
+2015/04 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">April</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td></tr></table>
+2015/05 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">May</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr><tr><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2015/05 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">May</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr></table>
+2015/06 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">June</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td><td></td></tr></table>
+2015/06 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">June</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2015/07 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">July</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td></tr></table>
+2015/07 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">July</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td></tr></table>
+2015/08 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">August</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td>31</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2015/08 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">August</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr><tr><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2015/09 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">September</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td></tr></table>
+2015/09 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">September</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td><td></td></tr></table>
+2015/10 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">October</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr></table>
+2015/10 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">October</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td></tr></table>
+2015/11 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">November</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2015/11 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">November</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2015/12 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">December</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td></tr></table>
+2015/12 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">December</td><td class="hcm-year-head" colspan="2">2015</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td></tr></table>
diff --git a/t/dat/i8n.dat b/t/dat/i8n.dat
new file mode 100644 (file)
index 0000000..336f2d1
--- /dev/null
@@ -0,0 +1,14 @@
+2010/03 ga_IE
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">M&aacute;rta</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Domh</td><td class="hcm-day-head">Luan</td><td class="hcm-day-head">M&aacute;irt</td><td class="hcm-day-head">C&eacute;ad</td><td class="hcm-day-head">D&eacute;ar</td><td class="hcm-day-head">Aoine</td><td class="hcm-day-head">Sath</td></tr><tr><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr><tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr><tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr><tr><td>28</td><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td></tr></table>
+2010/03 es_MX
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">marzo</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">lun</td><td class="hcm-day-head">mar</td><td class="hcm-day-head">mi&eacute;</td><td class="hcm-day-head">jue</td><td class="hcm-day-head">vie</td><td class="hcm-day-head">s&aacute;b</td><td class="hcm-day-head">dom</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2010/03 fr_FR
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">mars</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">lun.</td><td class="hcm-day-head">mar.</td><td class="hcm-day-head">mer.</td><td class="hcm-day-head">jeu.</td><td class="hcm-day-head">ven.</td><td class="hcm-day-head">sam.</td><td class="hcm-day-head">dim.</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2010/03 de_DE
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">M&auml;rz</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Mo.</td><td class="hcm-day-head">Di.</td><td class="hcm-day-head">Mi.</td><td class="hcm-day-head">Do.</td><td class="hcm-day-head">Fr.</td><td class="hcm-day-head">Sa.</td><td class="hcm-day-head">So.</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2010/03 ru_RU
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">&#x41C;&#x430;&#x440;&#x442;</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">&#x41F;&#x43D;</td><td class="hcm-day-head">&#x412;&#x442;</td><td class="hcm-day-head">&#x421;&#x440;</td><td class="hcm-day-head">&#x427;&#x442;</td><td class="hcm-day-head">&#x41F;&#x442;</td><td class="hcm-day-head">&#x421;&#x431;</td><td class="hcm-day-head">&#x412;&#x441;</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2010/03 pt_BR
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">mar&ccedil;o</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">seg</td><td class="hcm-day-head">ter</td><td class="hcm-day-head">qua</td><td class="hcm-day-head">qui</td><td class="hcm-day-head">sex</td><td class="hcm-day-head">s&aacute;b</td><td class="hcm-day-head">dom</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2010/03 zu_ZA
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">uMashi</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">Mso</td><td class="hcm-day-head">Bil</td><td class="hcm-day-head">Tha</td><td class="hcm-day-head">Sin</td><td class="hcm-day-head">Hla</td><td class="hcm-day-head">Mgq</td><td class="hcm-day-head">Son</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
diff --git a/t/dat/narrow.dat b/t/dat/narrow.dat
new file mode 100644 (file)
index 0000000..9c6479a
--- /dev/null
@@ -0,0 +1,12 @@
+2010/08 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">August</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">S</td><td class="hcm-day-head">M</td><td class="hcm-day-head">T</td><td class="hcm-day-head">W</td><td class="hcm-day-head">T</td><td class="hcm-day-head">F</td><td class="hcm-day-head">S</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2010/08 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">August</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">M</td><td class="hcm-day-head">T</td><td class="hcm-day-head">W</td><td class="hcm-day-head">T</td><td class="hcm-day-head">F</td><td class="hcm-day-head">S</td><td class="hcm-day-head">S</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td>31</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2010/09 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">September</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">S</td><td class="hcm-day-head">M</td><td class="hcm-day-head">T</td><td class="hcm-day-head">W</td><td class="hcm-day-head">T</td><td class="hcm-day-head">F</td><td class="hcm-day-head">S</td></tr><tr><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td></tr><tr><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td></tr><tr><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td></tr><tr><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td></td><td></td></tr></table>
+2010/09 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">September</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">M</td><td class="hcm-day-head">T</td><td class="hcm-day-head">W</td><td class="hcm-day-head">T</td><td class="hcm-day-head">F</td><td class="hcm-day-head">S</td><td class="hcm-day-head">S</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr><tr><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td></td><td></td><td></td></tr></table>
+2010/10 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">October</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">S</td><td class="hcm-day-head">M</td><td class="hcm-day-head">T</td><td class="hcm-day-head">W</td><td class="hcm-day-head">T</td><td class="hcm-day-head">F</td><td class="hcm-day-head">S</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr><tr><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2010/10 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">October</td><td class="hcm-year-head" colspan="2">2010</td></tr><tr><td class="hcm-day-head">M</td><td class="hcm-day-head">T</td><td class="hcm-day-head">W</td><td class="hcm-day-head">T</td><td class="hcm-day-head">F</td><td class="hcm-day-head">S</td><td class="hcm-day-head">S</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr></table>
diff --git a/t/dat/odd.dat b/t/dat/odd.dat
new file mode 100644 (file)
index 0000000..366c0c3
--- /dev/null
@@ -0,0 +1,16 @@
+2000/10 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">October</td><td class="hcm-year-head" colspan="2">2000</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td></tr><tr><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td></tr><tr><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td></tr><tr><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td></tr><tr><td>29</td><td>30</td><td>31</td><td></td><td></td><td></td><td></td></tr></table>
+2000/10 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">October</td><td class="hcm-year-head" colspan="2">2000</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td>31</td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2000/12 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">December</td><td class="hcm-year-head" colspan="2">2000</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr><tr><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2000/12 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">December</td><td class="hcm-year-head" colspan="2">2000</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr></table>
+2002/03 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">March</td><td class="hcm-year-head" colspan="2">2002</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr><tr><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
+2002/03 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">March</td><td class="hcm-year-head" colspan="2">2002</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td></tr></table>
+1752/09 1
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">September</td><td class="hcm-year-head" colspan="2">1752</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td></tr><tr><td></td><td></td><td>1</td><td>2</td><td>14</td><td>15</td><td>16</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr></table>
+1752/09 2
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="5">September</td><td class="hcm-year-head" colspan="2">1752</td></tr><tr><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head">Sun</td></tr><tr><td></td><td>1</td><td>2</td><td>14</td><td>15</td><td>16</td><td>17</td></tr><tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr><tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td></td></tr></table>
diff --git a/t/dat/woy.dat b/t/dat/woy.dat
new file mode 100644 (file)
index 0000000..a88da87
--- /dev/null
@@ -0,0 +1,4 @@
+2000/01
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="6">January</td><td class="hcm-year-head" colspan="2">2000</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head"></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>1</td><td class="hcm-week-head">52</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td class="hcm-week-head">1</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td class="hcm-week-head">2</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td class="hcm-week-head">3</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td class="hcm-week-head">4</td></tr><tr><td>30</td><td>31</td><td></td><td></td><td></td><td></td><td></td><td class="hcm-week-head">5</td></tr></table>
+2000/12
+<table class="hcm-table"><tr><td class="hcm-month-head" colspan="6">December</td><td class="hcm-year-head" colspan="2">2000</td></tr><tr><td class="hcm-day-head">Sun</td><td class="hcm-day-head">Mon</td><td class="hcm-day-head">Tue</td><td class="hcm-day-head">Wed</td><td class="hcm-day-head">Thu</td><td class="hcm-day-head">Fri</td><td class="hcm-day-head">Sat</td><td class="hcm-day-head"></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td class="hcm-week-head">48</td></tr><tr><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td class="hcm-week-head">49</td></tr><tr><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td class="hcm-week-head">50</td></tr><tr><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td class="hcm-week-head">51</td></tr><tr><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td class="hcm-week-head">52</td></tr><tr><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td><td class="hcm-week-head">1</td></tr></table>
diff --git a/t/release-pod-coverage.t b/t/release-pod-coverage.t
new file mode 100644 (file)
index 0000000..3a81849
--- /dev/null
@@ -0,0 +1,21 @@
+#!perl
+
+BEGIN {
+  unless ($ENV{RELEASE_TESTING}) {
+    require Test::More;
+    Test::More::plan(skip_all => 'these tests are for release candidate testing');
+  }
+}
+
+
+use Test::More;
+
+eval "use Test::Pod::Coverage 1.08";
+plan skip_all => "Test::Pod::Coverage 1.08 required for testing POD coverage"
+  if $@;
+
+eval "use Pod::Coverage::TrustPod";
+plan skip_all => "Pod::Coverage::TrustPod required for testing POD coverage"
+  if $@;
+
+all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
diff --git a/t/release-pod-syntax.t b/t/release-pod-syntax.t
new file mode 100644 (file)
index 0000000..d46a955
--- /dev/null
@@ -0,0 +1,15 @@
+#!perl
+
+BEGIN {
+  unless ($ENV{RELEASE_TESTING}) {
+    require Test::More;
+    Test::More::plan(skip_all => 'these tests are for release candidate testing');
+  }
+}
+
+use Test::More;
+
+eval "use Test::Pod 1.41";
+plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;
+
+all_pod_files_ok();
diff --git a/t/test.dat b/t/test.dat
deleted file mode 100644 (file)
index 9533fb7..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-2000/10 2000/12 2002/03 2002/04 2003/02 2003/05 2004/02 2004/03 2004/09 2004/12 2005/01 2005/02 2005/03 2005/09 2005/11
-2000/10 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>October</td><td align="center" colspan=2>2000</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2000/12 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>December</td><td align="center" colspan=2>2000</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td></tr></table>
-2002/03 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>March</td><td align="center" colspan=2>2002</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr><tr align="center"><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/01 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>January</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/01 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>January</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/02 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>February</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/02 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>February</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/03 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>March</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td></tr></table>
-2006/03 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>March</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/04 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>April</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/04 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>April</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr></table>
-2006/05 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>May</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/05 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>May</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/06 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>June</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td></tr></table>
-2006/06 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>June</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/07 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>July</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/07 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>July</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr><tr align="center"><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/08 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>August</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/08 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>August</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/09 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>September</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr></table>
-2006/09 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>September</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td></tr></table>
-2006/10 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>October</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/10 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>October</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/11 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>November</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/11 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>November</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/12 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>December</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr><tr align="center"><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2006/12 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>December</td><td align="center" colspan=2>2006</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td></tr></table>
-2007/01 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>January</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2007/01 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>January</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2007/02 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>February</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2007/02 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>February</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2007/03 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>March</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td></tr></table>
-2007/03 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>March</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td></tr></table>
-2007/04 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>April</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2007/04 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>April</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2007/05 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>May</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2007/05 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>May</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2007/06 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>June</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr></table>
-2007/06 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>June</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td></tr></table>
-2007/07 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>July</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2007/07 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>July</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2007/08 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>August</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td></tr></table>
-2007/08 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>August</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2007/09 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>September</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2007/09 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>September</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr></table>
-2007/10 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>October</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2007/10 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>October</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2007/11 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>November</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td></tr></table>
-2007/11 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>November</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2007/12 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>December</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2007/12 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>December</td><td align="center" colspan=2>2007</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr><tr align="center"><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/01 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>January</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/01 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>January</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/02 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>February</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">&nbsp; </td></tr></table>
-2008/02 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>February</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/03 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>March</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/03 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>March</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr><tr align="center"><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/04 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>April</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/04 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>April</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/05 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>May</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td></tr></table>
-2008/05 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>May</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td></tr></table>
-2008/06 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>June</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/06 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>June</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/07 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>July</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/07 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>July</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/08 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>August</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr><tr align="center"><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/08 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>August</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td></tr></table>
-2008/09 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>September</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/09 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>September</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/10 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>October</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td></tr></table>
-2008/10 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>October</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/11 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>November</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/11 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>November</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr></table>
-2008/12 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>December</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2008/12 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>December</td><td align="center" colspan=2>2008</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2009/01 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>January</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td></tr></table>
-2009/01 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>January</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td></tr></table>
-2009/02 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>February</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr></table>
-2009/02 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>February</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">&nbsp; </td></tr></table>
-2009/03 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>March</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2009/03 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>March</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2009/04 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>April</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2009/04 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>April</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2009/05 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>May</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr><tr align="center"><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2009/05 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>May</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td></tr></table>
-2009/06 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>June</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2009/06 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>June</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2009/07 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>July</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td></tr></table>
-2009/07 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>July</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2009/08 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>August</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2009/08 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>August</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr><tr align="center"><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2009/09 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>September</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2009/09 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>September</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2009/10 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>October</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td></tr></table>
-2009/10 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>October</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td></tr></table>
-2009/11 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>November</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2009/11 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>November</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2009/12 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>December</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2009/12 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>December</td><td align="center" colspan=2>2009</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/01 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>January</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr><tr align="center"><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/01 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>January</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td></tr></table>
-2010/02 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>February</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/02 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>February</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr></table>
-2010/03 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>March</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/03 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>March</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/04 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>April</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td></tr></table>
-2010/04 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>April</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/05 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>May</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/05 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>May</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr><tr align="center"><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/06 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>June</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/06 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>June</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/07 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>July</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td></tr></table>
-2010/07 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>July</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td></tr></table>
-2010/08 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>August</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/08 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>August</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/09 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>September</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/09 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>September</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/10 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>October</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr><tr align="center"><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/10 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>October</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td></tr></table>
-2010/11 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>November</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/11 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>November</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2010/12 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>December</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td></tr></table>
-2010/12 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>December</td><td align="center" colspan=2>2010</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/01 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>January</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/01 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>January</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr><tr align="center"><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/02 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>February</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/02 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>February</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/03 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>March</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/03 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>March</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/04 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>April</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr></table>
-2011/04 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>April</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td></tr></table>
-2011/05 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>May</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/05 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>May</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/06 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>June</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/06 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>June</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/07 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>July</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr><tr align="center"><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/07 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>July</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td></tr></table>
-2011/08 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>August</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/08 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>August</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td></tr><tr align="center"><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td></tr><tr align="center"><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td></tr><tr align="center"><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td></tr><tr align="center"><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/09 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>September</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td></tr></table>
-2011/09 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>September</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/10 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>October</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td></tr><tr align="center"><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/10 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>October</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td></tr><tr align="center"><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/11 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>November</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td></tr><tr align="center"><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td></tr><tr align="center"><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td></tr><tr align="center"><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td></tr><tr align="center"><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/11 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>November</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td></tr><tr align="center"><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td></tr><tr align="center"><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td></tr><tr align="center"><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td></tr><tr align="center"><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td></tr></table>
-2011/12 1
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>December</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td></tr><tr align="center"><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr><tr align="center"><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td></tr><tr align="center"><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td></tr><tr align="center"><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td></tr></table>
-2011/12 2
-<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=5>December</td><td align="center" colspan=2>2011</td></tr><tr align="center"><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">Sun</td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td></tr><tr align="center"><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td><td align="center">11</td></tr><tr align="center"><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">17</td><td align="center">18</td></tr><tr align="center"><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">24</td><td align="center">25</td></tr><tr align="center"><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td></tr></table>
index e1f8efcc222e1384876ba8aa8564f6201734fad5..1c30d0fa30547e619c749acd5940eb51bc7b74fa 100644 (file)
@@ -3,134 +3,224 @@ package testload;
 use vars qw( @ISA @EXPORT $Dat_Dir );
 
 use strict;
+use warnings;
 use Test::More;
 
+use Cwd qw( abs_path );
+
 my $DEBUG = 0;
 
 require Exporter;
 @ISA = qw(Exporter);
-@EXPORT = qw( $Dat_Dir check_datetool case_count
-              check_basic_with_datetool
-              check_woy_with_datetool
-              dq_nums
-            );
+
+use vars qw(
+  $Dat_Dir
+  $Bulk_File
+  $Odd_File
+  $Woy_File
+  $I8N_File
+  $Narrow_File
+);
+
+@EXPORT = qw(
+  $Dat_Dir
+  $Bulk_File $Odd_File $Woy_File $I8N_File $Narrow_File
+  check_datetool
+  check_bulk_with_datetool
+  check_odd_with_datetool
+  check_woy_with_datetool
+  check_i8n
+  check_narrow
+
+  bulk_count
+  odd_count
+  woy_count
+  i8n_count
+  narrow_count
+
+  clean
+);
 
 use File::Spec;
 
 use HTML::CalendarMonth;
 use HTML::CalendarMonth::DateTool;
 
-my($base_dir, $vol, $dir);
 BEGIN {
-  my $pkg = __PACKAGE__;
-  $pkg =~ s%::%/%g;
-  $pkg .= '.pm';
-  $pkg = File::Spec->canonpath($INC{$pkg});
-  my $file;
-  ($vol, $dir, $file) = File::Spec->splitpath($pkg);
-  $base_dir = File::Spec->catpath($vol, $dir, '');
+  my($vol, $dir, $file) = File::Spec->splitpath(abs_path(__FILE__));
+  $dir = File::Spec->catdir($dir, 'dat');
+  $Dat_Dir = File::Spec->catpath($vol, $dir, '');
 }
-$Dat_Dir = $base_dir;
 
-my($tcount, $rds, %dates, @tmethods, @twy_methods, @Cals);
-
-# Required test dates
-my $dat_file = File::Spec->catpath($vol, $dir, 'test.dat');
-open(D, "<$dat_file") or die "Problem reading $dat_file: $!\n";
-$rds = <D>;
-foreach (split(' ', $rds)) {
-  ++$dates{$_};
+$Bulk_File   = File::Spec->catdir($Dat_Dir,   'bulk.dat');
+$Odd_File    = File::Spec->catdir($Dat_Dir,    'odd.dat');
+$Woy_File    = File::Spec->catdir($Dat_Dir,    'woy.dat');
+$I8N_File    = File::Spec->catdir($Dat_Dir,    'i8n.dat');
+$Narrow_File = File::Spec->catdir($Dat_Dir, 'narrow.dat');
+
+my(@Bulk, @Odd, @Woy, @I8N, @Nar);
+
+sub _load_file {
+  my $f   = shift;
+  my $cal = shift || [];
+  local(*F);
+  return unless open(F, '<', $f);
+  while (my $h = <F>) {
+    chomp $h;
+    my($d, $wb) = split(/\s+/, $h);
+    my($y, $m) = split(/\//, $d);
+    my $c = <F>;
+    chomp $c;
+    push(@$cal, [$d, $y, $m, $wb, clean($c)]);
+  }
+  $cal;
 }
 
-my %WOY_data;
-eval join('', <DATA>);
-die "Oops on eval: $@\n" if $@;
+_load_file($Bulk_File, \@Bulk   );
+_load_file($Odd_File,   \@Odd   );
+_load_file($Woy_File,    \@Woy  );
+_load_file($I8N_File,     \@I8N );
+_load_file($Narrow_File,   \@Nar);
+
+sub bulk_count   { scalar @Bulk }
+sub odd_count    { scalar @Odd  }
+sub woy_count    { scalar @Woy  }
+sub i8n_count    { scalar @I8N  }
+sub narrow_count { scalar @Nar  }
 
 # Today's date
 my($month, $year) = (localtime(time))[4,5];
 ++$month;
 $year += 1900;
 
-# Flag tests for a year
-foreach my $y ($year .. $year + 1) {
-  foreach my $m (1 .. 12) {
-    ++$dates{sprintf("%d/%02d", $y, $m)};
-  }
-}
+my $today         = sprintf("%d/%02d", $year, $month);
+my $year_from_now = sprintf("%d/%02d", $year+1, $month);
 
-# Yank test cases
-while (<D>) {
-  chomp;
-  my($d, $wb) = split(' ', $_);
-  my($y, $m) = split('/', $d);
-  my $cal = <D>;
-  push(@Cals, [$y, $m, $cal, $wb]) if $dates{"$y/$m"};
-}
+# keep the next year
+@Bulk = grep { $_ ge $today && $_->[0] le $year_from_now } @Bulk;
 
-close(D);
+###
 
-#############
-
-# guard against HTML::Tree starting to quote numeric attrs as of
-# v3.19_02
-
-sub dq_nums {
-  my $str = shift;
+sub clean {
+  my $str = shift || Carp::confess "string required";
+  $str =~ s/^\s*//; $str =~ s/\s*$//;
+  # guard against HTML::Tree starting to quote numeric attrs as of
+  # v3.19_02
   $str =~ s/\"(\d+)\"/$1/g;
-  return $str;
+  $str;
 }
 
-sub case_count { scalar @Cals }
-
 sub check_datetool {
   my $datetool = shift;
-  my $module = HTML::CalendarMonth::DateTool->toolmap($datetool);
+  my $module = HTML::CalendarMonth::DateTool->_toolmap($datetool);
   ok($module, "toolmap($datetool) : $module");
   require_ok($module);
 }
 
-sub check_basic_with_datetool {
+sub check_bulk_with_datetool {
   my $datetool = shift;
-  my @days = qw( Sun Mon Tue Wed Thr Fri Sat );
-  my $method = $datetool || 'auto-select';
-  foreach my $cal (@Cals) {
+  my @days;
+  foreach (@Bulk) {
+    my($d, $y, $m, $wb, $tc) = @$_;
     my $c = HTML::CalendarMonth->new(
-      year       => $cal->[0],
-      month      => $cal->[1],
-      week_begin => $cal->[3],
+      year       => $y,
+      month      => $m,
+      week_begin => $wb,
       datetool   => $datetool,
     );
-    # Because HTML::TreeBuilder has changed a few times, this can't be exactly equal
-    my $gen_html = $c->as_HTML;
-    $gen_html =~ s/\=\"(\d+)\"/=$1/g;
-    my $day1 = $days[$cal->[3] - 1];
-    cmp_ok(dq_nums($c->as_HTML), 'eq', $cal->[2],
-       sprintf("(%d/%-02d %s 1st day) using %s",
-               $cal->[0], $cal->[1], $day1, $method));
-    if ($DEBUG && $c->as_HTML ne $cal->[2]) {
-      debug_dump('Broken', $c->as_HTML, 'Test Data', $cal->[2]);
+    @days = $c->dayheaders unless @days;
+    my $day1 = $days[$wb - 1];
+    my $method = $c->_caltool->_name;
+    $method = "auto-select ($method)" unless $datetool;
+    my $msg = sprintf(
+      "(%d/%02d %s 1st day) using %s",
+      $y, $m, $day1, $method
+    );
+    cmp_ok(clean($c->as_HTML), 'eq', $tc, $msg);
+  }
+}
+
+sub check_odd_with_datetool {
+  my $datetool = shift;
+  my @days;
+  foreach (@Odd) {
+    my($d, $y, $m, $wb, $tc) = @$_;
+    SKIP: {
+      my $c;
+      eval {
+        $c = HTML::CalendarMonth->new(
+          year       => $y,
+          month      => $m,
+          week_begin => $wb,
+          datetool   => $datetool,
+        );
+      };
+      if ($@ || !$c) {
+        croak $@ unless $@ =~ /(no|in)\s*valid date tool/i;
+        skip("$datetool skip odd $y/$m", 1);
+      }
+      @days = $c->dayheaders unless @days;
+      my $day1 = $days[$wb - 1];
+      my $method = $c->_caltool->_name;
+      $method = "auto-select ($method)" unless $datetool;
+      my $msg = sprintf(
+        "(%d/%02d %s 1st day) using %s",
+        $y, $m, $day1, $method
+      );
+      cmp_ok(clean($c->as_HTML), 'eq', $tc, $msg);
     }
   }
 }
 
 sub check_woy_with_datetool {
   my $datetool = shift;
-  my $year = 2000;
-  foreach my $month (qw(01 12)) {
-    my $tc = $WOY_data{"$year/$month"};
-    my $cal = HTML::CalendarMonth->new(
-      year       => $year,
-      month      => $month,
+  foreach (@Woy) {
+    my($d, $y, $m, $wb, $tc) = @$_;
+    my $c = HTML::CalendarMonth->new(
+      year       => $y,
+      month      => $m,
       head_week  => 1,
       datetool   => $datetool,
     );
-    my $ct = dq_nums($cal->as_HTML);
-    chomp $ct;
-    $ct =~ s/\=\"(\d+)\"/=$1/g;
-    cmp_ok($ct, 'eq', $tc, "($year/$month week of year) using $datetool");
-    if ($DEBUG && $ct ne $tc) {
-      debug_dump('Broken', $ct, 'Test Data', $tc);
-    }
+    my $msg = sprintf("(%d/%02d week of year) using %s", $y, $m, $datetool);
+    cmp_ok(clean($c->as_HTML), 'eq', $tc, $msg);
+  }
+}
+
+sub check_i8n {
+  foreach (@I8N) {
+    my($d, $y, $m, $id, $tc) = @$_;
+    my $c = HTML::CalendarMonth->new(
+      year   => $y,
+      month  => $m,
+      locale => $id,
+    );
+    my $name = $c->loc->loc->name;
+    my $msg = sprintf(
+      "(%d/%02d i8n) %s (wb:%d) using auto-detect",
+      $y, $m, $name, $c->week_begin
+    );
+    cmp_ok(clean($c->as_HTML), 'eq', $tc, $msg);
+  }
+}
+
+sub check_narrow {
+  my @days;
+  foreach (@Nar) {
+    my($d, $y, $m, $wb, $tc) = @$_;
+    my $c = HTML::CalendarMonth->new(
+      year       => $y,
+      month      => $m,
+      week_begin => $wb,
+      full_days  => -1,
+    );
+    @days = $c->dayheaders unless @days;
+    my $day1 = $days[$wb - 1];
+    my $msg = sprintf(
+      "(%d/%02d %s/%s 1st day) narrow/alias using auto-detect",
+      $y, $m, $day1, $c->item_alias($day1)
+    );
+    cmp_ok(clean($c->as_HTML), 'eq', $tc, $msg);
   }
 }
 
@@ -146,6 +236,4 @@ sub debug_dump {
   exit;
 }
 
-__DATA__
-$WOY_data{'2000/01'} = '<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=6>January</td><td align="center" colspan=2>2000</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">&nbsp; </td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">52</td></tr><tr align="center"><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">1</td></tr><tr align="center"><td align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">2</td></tr><tr align="center"><td align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">3</td></tr><tr align="center"><td align="center">23</td><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">4</td></tr><tr align="center"><td align="center">30</td><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">5</td></tr></table>';
-$WOY_data{'2000/12'} = '<table bgcolor="white" border=1 cellpadding=0 cellspacing=0><tr align="center"><td align="left" colspan=6>December</td><td align="center" colspan=2>2000</td></tr><tr align="center"><td align="center">Sun</td><td align="center">Mon</td><td align="center">Tue</td><td align="center">Wed</td><td align="center">Thu</td><td align="center">Fri</td><td align="center">Sat</td><td align="center">&nbsp; </td></tr><tr align="center"><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td><td align="center">2</td><td align="center">48</td></tr><tr align="center"><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">49</td></tr><tr align="center"><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td align="center">50</td></tr><tr align="center"><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td align="center">51</td></tr><tr align="center"><td align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td align="center">52</td></tr><tr align="center"><td align="center">31</td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">&nbsp; </td><td align="center">1</td></tr></table>';
+1;