python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_calendar.cpython-312.pyc

͑ePddlZddlZddlmZddlmZmZddlZddlZddl	Z	ddl
Z
ddlZddlZdZ
dZdZdZedd	d
ZdZgd
gdgdgdgdggdgdgdgdgdggdgdgdgdgdgggd
gdgdgdgdggdgdgdgd gd!gd"ggd#gd$gd%gd&gd'gggd
gdgdgdgdggdgdgdgdgdgd(ggd)gd*gd+gd,gd-gggd.gd/gd0gd1gd2ggdgdgdgdgd3ggd)gd*gd+gd,gd4gggZgd5gd6gd7ggd8gd9gd:ggd;gd<gd=ggd>gd?gd@ggZGdAdBej,ZGdCdDej,ZGdEdFej,ZGdGdHeZGdIdJeZGdKdLej,ZGdMdNej,ZGdOdPej,ZdQZGdRdSej,Z GdTdUej,Z!GdVdWej,Z"e#dXk(rejHyy)YN)support)assert_python_okassert_python_failurez     February 0
Mo Tu We Th Fr Sa Su
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29
a                                   0

      January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2          1  2  3  4  5  6             1  2  3  4  5
 3  4  5  6  7  8  9       7  8  9 10 11 12 13       6  7  8  9 10 11 12
10 11 12 13 14 15 16      14 15 16 17 18 19 20      13 14 15 16 17 18 19
17 18 19 20 21 22 23      21 22 23 24 25 26 27      20 21 22 23 24 25 26
24 25 26 27 28 29 30      28 29                     27 28 29 30 31
31

       April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2       1  2  3  4  5  6  7                1  2  3  4
 3  4  5  6  7  8  9       8  9 10 11 12 13 14       5  6  7  8  9 10 11
10 11 12 13 14 15 16      15 16 17 18 19 20 21      12 13 14 15 16 17 18
17 18 19 20 21 22 23      22 23 24 25 26 27 28      19 20 21 22 23 24 25
24 25 26 27 28 29 30      29 30 31                  26 27 28 29 30

        July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2          1  2  3  4  5  6                   1  2  3
 3  4  5  6  7  8  9       7  8  9 10 11 12 13       4  5  6  7  8  9 10
10 11 12 13 14 15 16      14 15 16 17 18 19 20      11 12 13 14 15 16 17
17 18 19 20 21 22 23      21 22 23 24 25 26 27      18 19 20 21 22 23 24
24 25 26 27 28 29 30      28 29 30 31               25 26 27 28 29 30
31

      October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                   1             1  2  3  4  5                   1  2  3
 2  3  4  5  6  7  8       6  7  8  9 10 11 12       4  5  6  7  8  9 10
 9 10 11 12 13 14 15      13 14 15 16 17 18 19      11 12 13 14 15 16 17
16 17 18 19 20 21 22      20 21 22 23 24 25 26      18 19 20 21 22 23 24
23 24 25 26 27 28 29      27 28 29 30               25 26 27 28 29 30 31
30 31
z    January 2004
Mo Tu We Th Fr Sa Su
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
a!                                  2004

      January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
          1  2  3  4                         1       1  2  3  4  5  6  7
 5  6  7  8  9 10 11       2  3  4  5  6  7  8       8  9 10 11 12 13 14
12 13 14 15 16 17 18       9 10 11 12 13 14 15      15 16 17 18 19 20 21
19 20 21 22 23 24 25      16 17 18 19 20 21 22      22 23 24 25 26 27 28
26 27 28 29 30 31         23 24 25 26 27 28 29      29 30 31

       April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
          1  2  3  4                      1  2          1  2  3  4  5  6
 5  6  7  8  9 10 11       3  4  5  6  7  8  9       7  8  9 10 11 12 13
12 13 14 15 16 17 18      10 11 12 13 14 15 16      14 15 16 17 18 19 20
19 20 21 22 23 24 25      17 18 19 20 21 22 23      21 22 23 24 25 26 27
26 27 28 29 30            24 25 26 27 28 29 30      28 29 30
                          31

        July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
          1  2  3  4                         1             1  2  3  4  5
 5  6  7  8  9 10 11       2  3  4  5  6  7  8       6  7  8  9 10 11 12
12 13 14 15 16 17 18       9 10 11 12 13 14 15      13 14 15 16 17 18 19
19 20 21 22 23 24 25      16 17 18 19 20 21 22      20 21 22 23 24 25 26
26 27 28 29 30 31         23 24 25 26 27 28 29      27 28 29 30
                          30 31

      October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
             1  2  3       1  2  3  4  5  6  7             1  2  3  4  5
 4  5  6  7  8  9 10       8  9 10 11 12 13 14       6  7  8  9 10 11 12
11 12 13 14 15 16 17      15 16 17 18 19 20 21      13 14 15 16 17 18 19
18 19 20 21 22 23 24      22 23 24 25 26 27 28      20 21 22 23 24 25 26
25 26 27 28 29 30 31      29 30                     27 28 29 30 31
yearmonthascii)rrencodingax;<?xml version="1.0" encoding="{encoding}"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset={encoding}" />
<link rel="stylesheet" type="text/css" href="calendar.css" />
<title>Calendar for 2004</title>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" class="{year}">
<tr><th colspan="3" class="{year}">2004</th></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">January</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="thu">1</td><td class="fri">2</td><td class="sat">3</td><td class="sun">4</td></tr>
<tr><td class="mon">5</td><td class="tue">6</td><td class="wed">7</td><td class="thu">8</td><td class="fri">9</td><td class="sat">10</td><td class="sun">11</td></tr>
<tr><td class="mon">12</td><td class="tue">13</td><td class="wed">14</td><td class="thu">15</td><td class="fri">16</td><td class="sat">17</td><td class="sun">18</td></tr>
<tr><td class="mon">19</td><td class="tue">20</td><td class="wed">21</td><td class="thu">22</td><td class="fri">23</td><td class="sat">24</td><td class="sun">25</td></tr>
<tr><td class="mon">26</td><td class="tue">27</td><td class="wed">28</td><td class="thu">29</td><td class="fri">30</td><td class="sat">31</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">February</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="sun">1</td></tr>
<tr><td class="mon">2</td><td class="tue">3</td><td class="wed">4</td><td class="thu">5</td><td class="fri">6</td><td class="sat">7</td><td class="sun">8</td></tr>
<tr><td class="mon">9</td><td class="tue">10</td><td class="wed">11</td><td class="thu">12</td><td class="fri">13</td><td class="sat">14</td><td class="sun">15</td></tr>
<tr><td class="mon">16</td><td class="tue">17</td><td class="wed">18</td><td class="thu">19</td><td class="fri">20</td><td class="sat">21</td><td class="sun">22</td></tr>
<tr><td class="mon">23</td><td class="tue">24</td><td class="wed">25</td><td class="thu">26</td><td class="fri">27</td><td class="sat">28</td><td class="sun">29</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">March</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="mon">1</td><td class="tue">2</td><td class="wed">3</td><td class="thu">4</td><td class="fri">5</td><td class="sat">6</td><td class="sun">7</td></tr>
<tr><td class="mon">8</td><td class="tue">9</td><td class="wed">10</td><td class="thu">11</td><td class="fri">12</td><td class="sat">13</td><td class="sun">14</td></tr>
<tr><td class="mon">15</td><td class="tue">16</td><td class="wed">17</td><td class="thu">18</td><td class="fri">19</td><td class="sat">20</td><td class="sun">21</td></tr>
<tr><td class="mon">22</td><td class="tue">23</td><td class="wed">24</td><td class="thu">25</td><td class="fri">26</td><td class="sat">27</td><td class="sun">28</td></tr>
<tr><td class="mon">29</td><td class="tue">30</td><td class="wed">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">April</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="thu">1</td><td class="fri">2</td><td class="sat">3</td><td class="sun">4</td></tr>
<tr><td class="mon">5</td><td class="tue">6</td><td class="wed">7</td><td class="thu">8</td><td class="fri">9</td><td class="sat">10</td><td class="sun">11</td></tr>
<tr><td class="mon">12</td><td class="tue">13</td><td class="wed">14</td><td class="thu">15</td><td class="fri">16</td><td class="sat">17</td><td class="sun">18</td></tr>
<tr><td class="mon">19</td><td class="tue">20</td><td class="wed">21</td><td class="thu">22</td><td class="fri">23</td><td class="sat">24</td><td class="sun">25</td></tr>
<tr><td class="mon">26</td><td class="tue">27</td><td class="wed">28</td><td class="thu">29</td><td class="fri">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">May</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="sat">1</td><td class="sun">2</td></tr>
<tr><td class="mon">3</td><td class="tue">4</td><td class="wed">5</td><td class="thu">6</td><td class="fri">7</td><td class="sat">8</td><td class="sun">9</td></tr>
<tr><td class="mon">10</td><td class="tue">11</td><td class="wed">12</td><td class="thu">13</td><td class="fri">14</td><td class="sat">15</td><td class="sun">16</td></tr>
<tr><td class="mon">17</td><td class="tue">18</td><td class="wed">19</td><td class="thu">20</td><td class="fri">21</td><td class="sat">22</td><td class="sun">23</td></tr>
<tr><td class="mon">24</td><td class="tue">25</td><td class="wed">26</td><td class="thu">27</td><td class="fri">28</td><td class="sat">29</td><td class="sun">30</td></tr>
<tr><td class="mon">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">June</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="tue">1</td><td class="wed">2</td><td class="thu">3</td><td class="fri">4</td><td class="sat">5</td><td class="sun">6</td></tr>
<tr><td class="mon">7</td><td class="tue">8</td><td class="wed">9</td><td class="thu">10</td><td class="fri">11</td><td class="sat">12</td><td class="sun">13</td></tr>
<tr><td class="mon">14</td><td class="tue">15</td><td class="wed">16</td><td class="thu">17</td><td class="fri">18</td><td class="sat">19</td><td class="sun">20</td></tr>
<tr><td class="mon">21</td><td class="tue">22</td><td class="wed">23</td><td class="thu">24</td><td class="fri">25</td><td class="sat">26</td><td class="sun">27</td></tr>
<tr><td class="mon">28</td><td class="tue">29</td><td class="wed">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">July</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="thu">1</td><td class="fri">2</td><td class="sat">3</td><td class="sun">4</td></tr>
<tr><td class="mon">5</td><td class="tue">6</td><td class="wed">7</td><td class="thu">8</td><td class="fri">9</td><td class="sat">10</td><td class="sun">11</td></tr>
<tr><td class="mon">12</td><td class="tue">13</td><td class="wed">14</td><td class="thu">15</td><td class="fri">16</td><td class="sat">17</td><td class="sun">18</td></tr>
<tr><td class="mon">19</td><td class="tue">20</td><td class="wed">21</td><td class="thu">22</td><td class="fri">23</td><td class="sat">24</td><td class="sun">25</td></tr>
<tr><td class="mon">26</td><td class="tue">27</td><td class="wed">28</td><td class="thu">29</td><td class="fri">30</td><td class="sat">31</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">August</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="sun">1</td></tr>
<tr><td class="mon">2</td><td class="tue">3</td><td class="wed">4</td><td class="thu">5</td><td class="fri">6</td><td class="sat">7</td><td class="sun">8</td></tr>
<tr><td class="mon">9</td><td class="tue">10</td><td class="wed">11</td><td class="thu">12</td><td class="fri">13</td><td class="sat">14</td><td class="sun">15</td></tr>
<tr><td class="mon">16</td><td class="tue">17</td><td class="wed">18</td><td class="thu">19</td><td class="fri">20</td><td class="sat">21</td><td class="sun">22</td></tr>
<tr><td class="mon">23</td><td class="tue">24</td><td class="wed">25</td><td class="thu">26</td><td class="fri">27</td><td class="sat">28</td><td class="sun">29</td></tr>
<tr><td class="mon">30</td><td class="tue">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">September</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="wed">1</td><td class="thu">2</td><td class="fri">3</td><td class="sat">4</td><td class="sun">5</td></tr>
<tr><td class="mon">6</td><td class="tue">7</td><td class="wed">8</td><td class="thu">9</td><td class="fri">10</td><td class="sat">11</td><td class="sun">12</td></tr>
<tr><td class="mon">13</td><td class="tue">14</td><td class="wed">15</td><td class="thu">16</td><td class="fri">17</td><td class="sat">18</td><td class="sun">19</td></tr>
<tr><td class="mon">20</td><td class="tue">21</td><td class="wed">22</td><td class="thu">23</td><td class="fri">24</td><td class="sat">25</td><td class="sun">26</td></tr>
<tr><td class="mon">27</td><td class="tue">28</td><td class="wed">29</td><td class="thu">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">October</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="fri">1</td><td class="sat">2</td><td class="sun">3</td></tr>
<tr><td class="mon">4</td><td class="tue">5</td><td class="wed">6</td><td class="thu">7</td><td class="fri">8</td><td class="sat">9</td><td class="sun">10</td></tr>
<tr><td class="mon">11</td><td class="tue">12</td><td class="wed">13</td><td class="thu">14</td><td class="fri">15</td><td class="sat">16</td><td class="sun">17</td></tr>
<tr><td class="mon">18</td><td class="tue">19</td><td class="wed">20</td><td class="thu">21</td><td class="fri">22</td><td class="sat">23</td><td class="sun">24</td></tr>
<tr><td class="mon">25</td><td class="tue">26</td><td class="wed">27</td><td class="thu">28</td><td class="fri">29</td><td class="sat">30</td><td class="sun">31</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">November</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="mon">1</td><td class="tue">2</td><td class="wed">3</td><td class="thu">4</td><td class="fri">5</td><td class="sat">6</td><td class="sun">7</td></tr>
<tr><td class="mon">8</td><td class="tue">9</td><td class="wed">10</td><td class="thu">11</td><td class="fri">12</td><td class="sat">13</td><td class="sun">14</td></tr>
<tr><td class="mon">15</td><td class="tue">16</td><td class="wed">17</td><td class="thu">18</td><td class="fri">19</td><td class="sat">20</td><td class="sun">21</td></tr>
<tr><td class="mon">22</td><td class="tue">23</td><td class="wed">24</td><td class="thu">25</td><td class="fri">26</td><td class="sat">27</td><td class="sun">28</td></tr>
<tr><td class="mon">29</td><td class="tue">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">December</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="wed">1</td><td class="thu">2</td><td class="fri">3</td><td class="sat">4</td><td class="sun">5</td></tr>
<tr><td class="mon">6</td><td class="tue">7</td><td class="wed">8</td><td class="thu">9</td><td class="fri">10</td><td class="sat">11</td><td class="sun">12</td></tr>
<tr><td class="mon">13</td><td class="tue">14</td><td class="wed">15</td><td class="thu">16</td><td class="fri">17</td><td class="sat">18</td><td class="sun">19</td></tr>
<tr><td class="mon">20</td><td class="tue">21</td><td class="wed">22</td><td class="thu">23</td><td class="fri">24</td><td class="sat">25</td><td class="sun">26</td></tr>
<tr><td class="mon">27</td><td class="tue">28</td><td class="wed">29</td><td class="thu">30</td><td class="fri">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td></tr></table></body>
</html>
)rrr)	
)
))r)rrrrrrr
)rrr
rrrr)rrrrrrr)rrrrrrr)r r!r"r#r$r%r&)r
rrr
rrr)rrrrrrr)rrrrrrr)rr r!r"r#r$r%)r&r'r(rrrr)r#r$r%r&r'rr)rrrrrr
r)rr
rrrrr)rrrrrrr)rrrrrrr )r!r"r#r$r%r&r')r(rrrrrr)rr
rrr
rr)rrrrrrr)rrrrrrr)rrr r!r"r#r$)r%r&r'rrrr)r'r(rrrrr)rrr
rrr
r)rrrrrrr)rrrrrrr)rrrr r!r"r#)r$r%r&r'rrr)rrrrr
rr)r
rrrrrr)rrrrrrr)rrrrrr r!)r"r#r$r%r&r'r()r&r'rrrrr)r$r%r&r'r(rr)z>12/29/03 12/30/03 12/31/03 01/01/04 01/02/04 01/03/04 01/04/04z>01/05/04 01/06/04 01/07/04 01/08/04 01/09/04 01/10/04 01/11/04z>01/12/04 01/13/04 01/14/04 01/15/04 01/16/04 01/17/04 01/18/04z>01/19/04 01/20/04 01/21/04 01/22/04 01/23/04 01/24/04 01/25/04>01/26/04 01/27/04 01/28/04 01/29/04 01/30/04 01/31/04 02/01/04)r)z>02/02/04 02/03/04 02/04/04 02/05/04 02/06/04 02/07/04 02/08/04z>02/09/04 02/10/04 02/11/04 02/12/04 02/13/04 02/14/04 02/15/04z>02/16/04 02/17/04 02/18/04 02/19/04 02/20/04 02/21/04 02/22/04z>02/23/04 02/24/04 02/25/04 02/26/04 02/27/04 02/28/04 02/29/04)z>03/01/04 03/02/04 03/03/04 03/04/04 03/05/04 03/06/04 03/07/04z>03/08/04 03/09/04 03/10/04 03/11/04 03/12/04 03/13/04 03/14/04z>03/15/04 03/16/04 03/17/04 03/18/04 03/19/04 03/20/04 03/21/04z>03/22/04 03/23/04 03/24/04 03/25/04 03/26/04 03/27/04 03/28/04>03/29/04 03/30/04 03/31/04 04/01/04 04/02/04 04/03/04 04/04/04)r*z>04/05/04 04/06/04 04/07/04 04/08/04 04/09/04 04/10/04 04/11/04z>04/12/04 04/13/04 04/14/04 04/15/04 04/16/04 04/17/04 04/18/04z>04/19/04 04/20/04 04/21/04 04/22/04 04/23/04 04/24/04 04/25/04>04/26/04 04/27/04 04/28/04 04/29/04 04/30/04 05/01/04 05/02/04)r+z>05/03/04 05/04/04 05/05/04 05/06/04 05/07/04 05/08/04 05/09/04z>05/10/04 05/11/04 05/12/04 05/13/04 05/14/04 05/15/04 05/16/04z>05/17/04 05/18/04 05/19/04 05/20/04 05/21/04 05/22/04 05/23/04z>05/24/04 05/25/04 05/26/04 05/27/04 05/28/04 05/29/04 05/30/04>05/31/04 06/01/04 06/02/04 06/03/04 06/04/04 06/05/04 06/06/04)r,z>06/07/04 06/08/04 06/09/04 06/10/04 06/11/04 06/12/04 06/13/04z>06/14/04 06/15/04 06/16/04 06/17/04 06/18/04 06/19/04 06/20/04z>06/21/04 06/22/04 06/23/04 06/24/04 06/25/04 06/26/04 06/27/04>06/28/04 06/29/04 06/30/04 07/01/04 07/02/04 07/03/04 07/04/04)r-z>07/05/04 07/06/04 07/07/04 07/08/04 07/09/04 07/10/04 07/11/04z>07/12/04 07/13/04 07/14/04 07/15/04 07/16/04 07/17/04 07/18/04z>07/19/04 07/20/04 07/21/04 07/22/04 07/23/04 07/24/04 07/25/04>07/26/04 07/27/04 07/28/04 07/29/04 07/30/04 07/31/04 08/01/04)r.z>08/02/04 08/03/04 08/04/04 08/05/04 08/06/04 08/07/04 08/08/04z>08/09/04 08/10/04 08/11/04 08/12/04 08/13/04 08/14/04 08/15/04z>08/16/04 08/17/04 08/18/04 08/19/04 08/20/04 08/21/04 08/22/04z>08/23/04 08/24/04 08/25/04 08/26/04 08/27/04 08/28/04 08/29/04>08/30/04 08/31/04 09/01/04 09/02/04 09/03/04 09/04/04 09/05/04)r/z>09/06/04 09/07/04 09/08/04 09/09/04 09/10/04 09/11/04 09/12/04z>09/13/04 09/14/04 09/15/04 09/16/04 09/17/04 09/18/04 09/19/04z>09/20/04 09/21/04 09/22/04 09/23/04 09/24/04 09/25/04 09/26/04>09/27/04 09/28/04 09/29/04 09/30/04 10/01/04 10/02/04 10/03/04)r0z>10/04/04 10/05/04 10/06/04 10/07/04 10/08/04 10/09/04 10/10/04z>10/11/04 10/12/04 10/13/04 10/14/04 10/15/04 10/16/04 10/17/04z>10/18/04 10/19/04 10/20/04 10/21/04 10/22/04 10/23/04 10/24/04z>10/25/04 10/26/04 10/27/04 10/28/04 10/29/04 10/30/04 10/31/04)z>11/01/04 11/02/04 11/03/04 11/04/04 11/05/04 11/06/04 11/07/04z>11/08/04 11/09/04 11/10/04 11/11/04 11/12/04 11/13/04 11/14/04z>11/15/04 11/16/04 11/17/04 11/18/04 11/19/04 11/20/04 11/21/04z>11/22/04 11/23/04 11/24/04 11/25/04 11/26/04 11/27/04 11/28/04>11/29/04 11/30/04 12/01/04 12/02/04 12/03/04 12/04/04 12/05/04)r1z>12/06/04 12/07/04 12/08/04 12/09/04 12/10/04 12/11/04 12/12/04z>12/13/04 12/14/04 12/15/04 12/16/04 12/17/04 12/18/04 12/19/04z>12/20/04 12/21/04 12/22/04 12/23/04 12/24/04 12/25/04 12/26/04z>12/27/04 12/28/04 12/29/04 12/30/04 12/31/04 01/01/05 01/02/05cxeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZy)OutputTestCasecd}g}|jdD]#}|st||r|j|%|S)NcJ|jxr|jSN)isspaceisdigit)cs F/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_calendar.pyneitherspacenordigitz?OutputTestCase.normalize_calendar.<locals>.neitherspacenordigittsyy{?6199;6F)keepends)
splitlinesfilterappend)selfsr;lineslines     r:normalize_calendarz!OutputTestCase.normalize_calendarrsH	7LL%L0	#DF#7>T"	#r<ctj}tj}|xsd|d<|j	d|}|j|t
jdi|j|y)Nutf-8r	)r	)	calendarHTMLCalendardefault_formatcopyformatyearpageassertEqualresult_2004_htmlformatencode)rAreqrescalformat_outputs      r:check_htmlcalendar_encodingz*OutputTestCase.check_htmlcalendar_encoding~sn##% %%'!nW
##D3#7##.g.55c:	
r<c |j|jtjd|jt|j|jtjd|jtyNrHr)rOrErJresult_2004_text
result_0_textrAs r:test_outputzOutputTestCase.test_outputso##H$5$5d$;<##$45	
	
##H$5$5a$89##M2	
r<c|jtjjdt|jtjjdt
yrZ)rOrJTextCalendar
formatyearr[r\r]s r:test_output_textcalendarz'OutputTestCase.test_output_textcalendarsT!!#..t4	
	
!!#..q1	
r<c(|jddy)NrrXr]s r:'test_output_htmlcalendar_encoding_asciiz6OutputTestCase.test_output_htmlcalendar_encoding_ascii((':r<c(|jddy)NrGrdr]s r:&test_output_htmlcalendar_encoding_utf8z5OutputTestCase.test_output_htmlcalendar_encoding_utf8rfr<cL|jdtjyr6)rXsysgetdefaultencodingr]s r:)test_output_htmlcalendar_encoding_defaultz8OutputTestCase.test_output_htmlcalendar_encoding_defaults((s/E/E/GHr<cd}|j|tjjdty)Nc|Dcgc]8}|Dcgc](}|Dcgc]}djd|Dc}*c}}:c}}}Scc}wcc}}wcc}}}w)N c3K|]A}dj|j|jt|jddCyw)z{:02d}/{:02d}/{}N)rQrdaystrr).0ds  r:	<genexpr>zHOutputTestCase.test_yeardatescalendar.<locals>.shrink.<locals>.<genexpr>sDNFG 288 !AFFBC0@ BNsAA	)join)rUxyzs    r:shrinkz5OutputTestCase.test_yeardatescalendar.<locals>.shrinksr>ABB894,-Q( !hhNKLNN(4B
B(4Bs%
A	AA	AA	AArH)rOrJCalendaryeardatescalendarresult_2004_dates)rAr{s  r:test_yeardatescalendarz%OutputTestCase.test_yeardatescalendars7	B	
8$$&88>?	
r<cr|jtjjdtyNrH)rOrJr|yeardayscalendarresult_2004_daysr]s r:test_yeardayscalendarz$OutputTestCase.test_yeardayscalendars*006	
r<cj|jtjjddy)NrzMo Tu We Th Fr Sa SurOrJr`formatweekheaderr]s r:test_formatweekheader_shortz*OutputTestCase.test_formatweekheader_shorts*!!#44Q7"	
r<cj|jtjjddy)NrzE  Monday   Tuesday  Wednesday  Thursday   Friday   Saturday   Sunday rr]s r:test_formatweekheader_longz)OutputTestCase.test_formatweekheader_longs,!!#44Q7
,	
r<c|jtjjddt|jtjjddt
y)NrHr
rr)rOrJr`formatmonthresult_2004_01_textresult_0_02_textr]s r:test_formatmonthzOutputTestCase.test_formatmonthsX!!#//a8	
	
!!#//15	
r<cp|jtjjddddy)NrHr
Twithyearz8<tr><th colspan="7" class="month">January 2004</th></tr>rOrJrKformatmonthnamer]s r:test_formatmonthname_with_yearz-OutputTestCase.test_formatmonthname_with_years1!!#33D!d3KF	
r<cp|jtjjddddy)NrHr
Frz3<tr><th colspan="7" class="month">January</th></tr>rr]s r:!test_formatmonthname_without_yearz0OutputTestCase.test_formatmonthname_without_years1!!#33D!e3LA	
r<ctj5}gd}tjj	|d|j|j
ddddy#1swYyxYw)N))r
r)rr
)rr)r
r)rr
)rr)rrr
z 1  2  3  4  5  6  7)rcaptured_stdoutrJr`prweekrOgetvalue)rAoutweeks   r:test_prweekzOutputTestCase.test_prweeks^

$
$
&	E#DD!!#**43S\\^-CD	E	E	EA	A''A0ctj5}tjj	dd|j|j
tdddy#1swYyxYw)NrHr
)rrrJr`prmonthrOrrrArs  r:test_prmonthzOutputTestCase.test_prmonthsY

$
$
&	B#!!#++D!4S\\^-@A	B	B	Brctj5}tjj	d|j|j
tdddy#1swYyxYwr)rrrJr`pryearrOrr[rs  r:test_pryearzOutputTestCase.test_pryearsS

$
$
&	?#!!#**40S\\^-=>	?	?	?sAA&&A/ctj5}tjgddd|j	|jj
ddddy#1swYyxYw)N)123rr
)colwidthspacingz	1   2   3)rrrJrQrOrstriprs  r:test_formatzOutputTestCase.test_formatsX

$
$
&	B#OOOaCS\\^113[A	B	B	BrN)__name__
__module____qualname__rErXr^rbrerhrlrrrrrrrrrrrrIr<r:r3r3qs`



;;I






EB
?
Br<r3cleZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZy)CalendarTestCasecz|jtd5tjdddy#1swYyxYw)Nz<The 'January' attribute is deprecated, use 'JANUARY' instead)assertWarnsRegexDeprecationWarningrJJanuaryr]s r:test_deprecation_warningz)CalendarTestCase.test_deprecation_warnings6

"
"J
	
				s1:c,|jtjdd|jtjdd|jtjdd|jtjddy)Nir
rii)rOrJisleapr]s r:test_isleapzCalendarTestCase.test_isleapsh
	
.2.2.2.2r<c|jttjd|jttjd|jttjdtj
}tjtj|jtj
tjtjtj|jtj
tjtj|y)Nflabber)	assertRaises	TypeErrorrJsetfirstweekday
ValueErrorfirstweekdaySUNDAYrOMONDAY)rAorigs  r:test_setfirstweekdayz%CalendarTestCase.test_setfirstweekdays)X%=%=yI*h&>&>C*h&>&>D$$&  1..0(//B  1..0(//B  &r<c|jtjd5tjddddy#1swYyxYw)N123{)assertRaisesRegexrJIllegalWeekdayErrorrr]s r:test_illegal_weekday_reportedz.CalendarTestCase.test_illegal_weekday_reporteds;

#
#H$@$@%
H	*$$S)	*	*	*sAA	c8|jttjjd|jttj
jd|j
ttjDcgc]}|c}dycc}w)Nirr)r
IndexErrorrJday_abbr__getitem__day_namerOlen)rArus  r:test_enumerate_weekdaysz(CalendarTestCase.test_enumerate_weekdayssg*h&7&7&C&CSI*h&7&7&C&CRH):):;Aa;<a@;s	Bc	@dD]}tt|}|jt|d|jt|ddd|jtt	|d|j|dddtt
|y)N)rrrrgetattrrJrOrsetlistreversedrAattrvalues   r:	test_dayszCalendarTestCase.test_dayss*	ADHd+ESZ+Sq]A.SU_a0U4R4[$x*?@	Ar<c	jdD]}tt|}|jt|d|jt|ddd|j|dd|jtt	|d|j|dddtt
|y)N)
month_name
month_abbrrrrrrs   r:test_monthszCalendarTestCase.test_monthss.	ADHd+ESZ,Sq]B/U1Xr*SU_b1U4R4[$x*?@	Ar<ctjjddd}	tjd}|j	dd}|jddd}|j|t|j|t|jt|d|jt|dtjd}|j	d}|jdd}|j|t|j|ttjjddd}|j||y#t
j$rtjdwxYw)Nrrlocaler
$cannot set the system default locale)rJr`rLocaleTextCalendar
formatweekdayrErrorunittestSkipTestassertIsInstancersrOrassertGreaterEqualLocaleHTMLCalendar)rAold_octoberrU
local_weekdaylocal_monthnew_octobers      r:test_locale_calendarsz&CalendarTestCase.test_locale_calendars)sQ++-==dBK	L--R8C--a4M--dB;K	
mS1k3/]+R0K 0"5))4))!,
))$3mS1k3/++-==dBKk2||	L##$JKK	Ls;E!!)F
cf	tjd}|j|jddd|j|jddd|j|jddd	|j|jdd
d|j|jddd
|j|jddd|j|jdddy#tj
$rt
jdwxYw)Nen_USrrr
MrMorMonrz Mon rz  Mon   rz	  Monday rz
  Monday  zcannot set the en_US locale)rJrrOrrrrr)rArUs  r:"test_locale_calendar_formatweekdayz3CalendarTestCase.test_locale_calendar_formatweekday@s
	C--W=CS..q!4c:S..q!4d;S..q!4e<S..q!4g>S..q!4jAS..q!4kBS..q"5|D||	C##$ABB	CsDD)D0c,	tjd}|jddd}|jd|d|_|jddd}|jd|y#tj$rtjdwxYw)	Nrrrrrz
class="month"text-center monthclass="text-center month")	rJrrrrrrassertIncssclass_month_head)rArUrs   r:5test_locale_html_calendar_custom_css_class_month_namezFCalendarTestCase.test_locale_html_calendar_custom_css_class_month_nameQs	L--R8C--dB;K	


o{3"5))$B7

1;?
||	L##$JKK	Ls)A**)Bc(	tjd}|jd}|jd|gd|_|jd}|jd|y#tj$rtjdwxYw)Nrrrrzclass="sun")mon2tue2wed2thu2fri2sat2sun2zclass="sun2")	rJrrrrrrrcssclasses_weekday_head)rArUrs   r:2test_locale_html_calendar_custom_css_class_weekdayzCCalendarTestCase.test_locale_html_calendar_custom_css_class_weekday]s	L--R8C--a0M	


m]3&^#))!,


nm4
||	L##$JKK	Ls'A(()Bczttjjtj
dy)Nr)rrJr|itermonthdays3datetimeMAXYEARr]s r:test_itermonthdays3z$CalendarTestCase.test_itermonthdays3is&X


 
/
/0@0@"
EFr<ctjd}t|jdd}|j	|dd|j	|ddy)	Nrrrrr)rrr
rr)rrr%r)rJr|ritermonthdays4rO)rArUdayss   r:test_itermonthdays4z$CalendarTestCase.test_itermonthdays4msRQ/C&&tQ/0a/2b#34r<c	ztdD]W}tj|}dD];\}}t|j	||}|jt
|d=Ytjd}t|j	dd}|j|ttdd	y)
Nr)r
r
)i'r)#*rrrrr
r&)rangerJr|r
itermonthdaysrrrOrArrUrymrs      r:test_itermonthdaysz#CalendarTestCase.test_itermonthdaysss!!H	3L##L1C,
31C--a34

c$i2
3	3Q/C%%dA./tE!RL12r<ctdD]r}tj|}dD]V\}}t|j	||}|j|dd||j|dd|dz
dzXty)Nrrrr
r)rrJr|ritermonthdays2rOrs      r:test_itermonthdays2z$CalendarTestCase.test_itermonthdays2s!!H	FL##L1C,
F1C..q!45  a\:  b!|a/?1.DE
F	Fr<cttd}tdD]M}tj|}t|j	}||d|d|z}|j||Oy)Nr)rrrJr|iterweekdaysrO)rAweek0rrUrexpecteds      r:test_iterweekdaysz"CalendarTestCase.test_iterweekdayssmU1X!!H	-L##L1C((*+D\]+eM\.BBHT8,		-r<N)rrrrrrrrrrrrrr
rrr r#r(rIr<r:rrsY3	'*A
A	A3.C"
@
5G5
3F-r<rceZdZdZdZdZy)MonthCalendarTestCasecttj|_tj|jyr6)rJroldfirstweekdayrr]s r:setUpzMonthCalendarTestCase.setUps''446  !2!23r<cBtj|jyr6)rJrr,r]s r:tearDownzMonthCalendarTestCase.tearDowns  !5!56r<c	tj||}|jt|t|t	t|D]*}|j||td||D,y)Nc3&K|]	}|dk7yw)rNrI)rtrrs  r:rvz4MonthCalendarTestCase.check_weeks.<locals>.<genexpr>s*F3!8*Fs)rJ
monthcalendarrOrrsum)rArrweeksrUis      r:check_weeksz!MonthCalendarTestCase.check_weekssi$$T51S3u:.s5z"	HAU1Xs*Fs1v*F'FG	Hr<N)rrrr-r/r6rIr<r:r*r*s47Hr<r*c6eZdZejZdZdZdZy)MondayTestCasec|jddd|jddd|jddd|jddd	|jd
dd|jddd
y)Nrrrrrirrrrr
r
rrrrrrrrr
irrrrrrHr
rrrrr6r]s r:
test_februaryzMondayTestCase.test_februaryxq,/	
q/2	
q/2	
q/2	
q/2	
q/2r<c|jddd|jddd|jddd|jddd	|jd
ddy)Nir
rrrrrirrrrrir
rrrrr
rrrrrirrrrrrCr]s r:
test_aprilzMondayTestCase.test_aprileq/2	
q/2	
q"45	
q/2	
q/2r<c|jddd|jddd|jddd|jddd	|jd
dd|jddd
y)Nirrrrrrr=rrrrr
ir
rrrrrr?r
rrrrrrrrrirrrrrr
rCr]s r:
test_decemberzMondayTestCase.test_decemberzr?3	
r?3	
r#56	
r?3	
r?3	
r#56r<N)	rrrrJrrrDrMrWrIr<r:r8r8??L3&3 7r<r8c6eZdZejZdZdZdZy)SundayTestCasec|jddd|jddd|jddd|jddd	|jd
dd|jddd
y)Nirr;r:r<r>rHr@rAirBrCr]s r:rDzSundayTestCase.test_februaryrEr<c|jddd|jddd|jddd|jddd	|jd
ddy)Nr
rGi~rHirIr^rKiurLrCr]s r:rMzSundayTestCase.test_aprilrNr<c|jddd|jddd|jddd|jddd	|jd
dd|jddd
y)Ni rrPirQr`rRirSirUrJrVrCr]s r:rWzSundayTestCase.test_decemberrXr<N)	rrrrJrrrDrMrWrIr<r:r[r[rYr<r[ceZdZgdZdZy)TimegmTestCase)
rrdii'ii@BiIi;=Ki
Lc|jD]<}tj|}|j|t	j
|>yr6)
TIMESTAMPStimegmtimerOrJtimegm)rAsecstuples   r:test_timegmzTimegmTestCase.test_timegms<OO	;DKK%ET8??5#9:	;r<N)rrrrfrlrIr<r:rcrcs7J;r<rcc6eZdZdZdZdZdZdZdZdZ	y)	MonthRangeTestCasecP|jtjdddy)NrHr
)rr(rOrJ
monthranger]s r:test_januaryzMonthRangeTestCase.test_january,,T!4f=r<cP|jtjdddy)NrHr)rr&rpr]s r:test_february_leapz%MonthRangeTestCase.test_february_leap rsr<cP|jtjdddy)Nrr)rr%rpr]s r:test_february_nonleapz(MonthRangeTestCase.test_february_nonleap$rsr<cP|jtjdddy)NrHr)rr(rpr]s r:rWz MonthRangeTestCase.test_december(s,,T"5v>r<c|jtj5tjdddddy#1swYyxYwrZrrJIllegalMonthErrorrqr]s r:test_zeroth_monthz$MonthRangeTestCase.test_zeroth_month,s;


x99
:	)a(	)	)	)AA	c|jtj5tjdddddy#1swYyxYw)NrHrrzr]s r:test_thirteenth_monthz(MonthRangeTestCase.test_thirteenth_month1s;


x99
:	*b)	*	*	*r}c|jtjd5tjdddddy#1swYyxYw)N65rHA)rrJr{rqr]s r:test_illegal_month_reportedz.MonthRangeTestCase.test_illegal_month_reported6s=

#
#H$>$>
E	*b)	*	*	*sAA
N)
rrrrrrurwrWr|rrrIr<r:rnrns%>>>?)
*
*r<rnc*eZdZdZdZdZdZdZy)LeapdaysTestCasecP|jtjdddy)NrrrOrJleapdaysr]s r:
test_no_rangezLeapdaysTestCase.test_no_range;**45q9r<cP|jtjdddy)Nrirrr]s r:test_no_leapdaysz!LeapdaysTestCase.test_no_leapdays?rr<cP|jtjdddy)Nrrrr]s r:test_no_leapdays_upper_boundaryz0LeapdaysTestCase.test_no_leapdays_upper_boundaryCrr<cP|jtjdddy)Nrir
rr]s r:test_one_leapday_lower_boundaryz0LeapdaysTestCase.test_one_leapday_lower_boundaryGrr<cP|jtjdddy)Nr]irrr]s r:test_several_leapyears_in_rangez0LeapdaysTestCase.test_several_leapyears_in_rangeKs**45q9r<N)rrrrrrrrrIr<r:rr:s:::::r<rc^|jdtjjS)N
)replaceoslineseprR)rBs r:convrOs 99T2::&--//r<creZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZy)CommandLineTestCasec"tddg|dS)N-mrJr
)r)rAargss  r:run_okzCommandLineTestCase.run_okSsj848;;r<cntddg|\}}}|jd||j|dy)NrrJusage:r)rrrO)rArrcstdoutstderrs     r:
assertFailurez!CommandLineTestCase.assertFailureVs824KdKFF

i(Qr<c|jd}|jd||jd||jd|y)Nz-hrscalendar.pys--help)rrrArs  r:	test_helpzCommandLineTestCase.test_help[s:T"

i(

nf-

i(r<c|jd|jd|jdd|jddddy)Nz-zspam2004-thtmlr)rr]s r:test_illegal_argumentsz*CommandLineTestCase.test_illegal_argumentsasB4 6"66*45r<c|j}tjjj}|j	d|zj||j	d||j	d|y)Nz %ssJanuarysMo Tu We Th Fr Sa SurrnowrrrRrArrs   r:test_output_current_yearz,CommandLineTestCase.test_output_current_yeargs_  $$&++

ut|++-v6

j&)

-v6r<cd|jd}|j|tty)Nr)rrOrr[rs  r:test_output_yearz$CommandLineTestCase.test_output_yearns&V$&6!78r<cf|jdd}|j|tty)Nrr)rrOrrrs  r:test_output_monthz%CommandLineTestCase.test_output_monthrs(VS)&9!:;r<c|jd|jd|jddd}|j|tj	dy)Nz-e
--encodingz	utf-16-ler)rrrOr[rRrs  r:test_option_encodingz(CommandLineTestCase.test_option_encodingvsL4 <(\;?!1!8!8!EFr<c|jd|jd|jddtj\}}|xsd}|xsd}	tjtj}	tjtj||ftjtj|	|jd|d|d}|jdj||y#tjtj|wxYw#tj
tf$r|jdYwxYw)	Nz-Lz--localeenCzUTF-8rrr)rr	getlocaleLC_TIME	setlocalerrskipTestrrrR)rAlangenc	oldlocalers     r:test_option_localez&CommandLineTestCase.test_option_locale|s
4 :&4&$$&	c{snW	B((8I
<  $=  ;Z|S&I

fmmC(&1	  ;j)	BMM@A	Bs*#D(=&C?#$D(?&D%%D((*EEc|jd|jd|jdd|jddd}|jd|y)Nz-wz--widthrrrsMon Tue Wed Thu Fri Sat Sunrrrrs  r:test_option_widthz%CommandLineTestCase.test_option_widthsO4 9%4(YV4

4f=r<c|jd|jd|jdd|jddd}|jtd|y)Nz-lz--linesrrrzDecember

Mo Tu Werrrrrs  r:test_option_linesz%CommandLineTestCase.test_option_linessT4 9%4(YV4

d12F;r<c|jd|jd|jdd|jddd}|jd|y)Nz-sz	--spacingr8rsSu        Morrs  r:test_option_spacingz'CommandLineTestCase.test_option_spacingsN4 ;'4([#v6

ov.r<c|jd|jd|jdd|jddd}|jtd|y)Nrz--monthrz--monthsrrz
Mo Tu We Th Fr Sa Su
rrs  r:test_option_monthsz&CommandLineTestCase.test_option_monthssT4 9%4(Zf5

d56?r<cD|jd|jd|jdd|jddd}|j|tt|jddd}|j|ddd|jd	|y)
Nr--typertextrrrs<?xml s <title>Calendar for 2004</title>)rrrOrr[rrs  r:test_option_typez$CommandLineTestCase.test_option_types4 8$4(Xvv6&6!78Xvv6Y/

96Br<c|jdd}tjjj}|j	d|zj||j	d|y)Nrrz<title>Calendar for %s</title>s3<tr><th colspan="7" class="month">January</th></tr>rrs   r:test_html_output_current_yearz1CommandLineTestCase.test_html_output_current_years^Xv.  $$&++

7$>FFH	

L	r<c|jddddd}|j|tjditjdy)NrrrrrrI)rrOrPrQrLrRrs  r:test_html_output_year_encodingz2CommandLineTestCase.test_html_output_year_encodingsET6<&I)00B>BII'R	Tr<c|jddd|jddd|jddddd}|jd|y)Nrrz-cz--cssz
custom.cssrs;<link rel="stylesheet" type="text/css" href="custom.css" />rrs  r:test_html_output_year_cssz-CommandLineTestCase.test_html_output_year_csssP4.41T67L&I

./5	7r<N)rrrrrrrrrrrrrrrrrrrrrIr<r:rrRs[< 
)679<G2&></@CT
7r<rceZdZdZy)MiscTestCasecDhd}tj|t|y)N>r9mainrEPOCHmdaysrQrrFebruarymonthlen	nextmonth	prevmonthformatstringdifferent_locale)not_exported)rcheck__all__rJ)rArs  r:test__all__zMiscTestCase.test__all__sJ	T8,Gr<N)rrrrrIr<r:rrsHr<rc6eZdZdZdZdZdZdZdZdZ	y)	TestSubClassingCasecNGddtj}||_y)NceZdZejj
Dcgc]}|dz	c}}ZgdZdZdZdZ	dZ
ycc}}w)0TestSubClassingCase.setUp.<locals>.CustomHTMLCalz text-nowrap)redbluegreenlilacyelloworangepinkztext-center month-headrztext-italic zlead N)rrrrJrK
cssclassesrrcssclass_month
cssclass_yearcssclass_year_head)rtstyles00r:
CustomHTMLCalrsK"//::<U%.0<J'C#":0N*M!(<s;r)rJrKrU)rArs  r:r-zTestSubClassingCase.setUps	)H11	)!?r<c\|jd|jjddy)Nzclass="text-center month-head"rTr)rrUrr]s r:test_formatmonthnamez(TestSubClassingCase.test_formatmonthnames%

6hh..tQ7	9r<c\|jd|jjddy)NrrTr)rrUrr]s r:rz$TestSubClassingCase.test_formatmonths%

1hh**43	5r<c|jjdd}|jd|jj|dy)NrTrzclass="wed text-nowrap"r)rUmonthdays2calendarr
formatweek)rAr4s  r:test_formatweekz#TestSubClassingCase.test_formatweeks:++D!4

/1D1DU1X1NOr<c|jj}|jjD]}|jd|z|y)Nz<th class="%s">)rUrrr)rAheadercolors   r:test_formatweek_headz(TestSubClassingCase.test_formatweek_headsA**,XX55	=EMM+e3V<	=r<c|jd|jjz|jjdy)Nz=<table border="0" cellpadding="0" cellspacing="0" class="%s">rT)rrUrrar]s r:test_format_yearz$TestSubClassingCase.test_format_years6


L
XX
#
#$&*hh&9&9$&?	Ar<c|jdd|jjdfz|jjdy)Nz,<tr><th colspan="%d" class="%s">%s</th></tr>rrT)rrUrrar]s r:test_format_year_headz)TestSubClassingCase.test_format_year_heads@

D
txx**DH2237883F3Ft3L	Nr<N)
rrrr-rrrrrr
rIr<r:rrs(#95P=
A
Nr<r__main__)%rJrtestrtest.support.script_helperrrrgrrjrrwarningsrr\rr[dictrLrPrr~TestCaser3rr*r8r[rcrnrrrrrrrrIr<r:<module>rsN

	%
N$N67C{|""!	#
!""	$
 ""	 !"" 	"
"""""	 ! ""!	#
!""""	!" """	$
 ""	
"" 	"#a?DI
I
IJI
IIJ I
IIJ I
I
IJ_=KBzBX&&zBxa-x((a-HHH--H77*77t77*77r;X&&;****>:x((:*0u7(++u7pH8$$H(N(++(NTzHMMOr<