summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ajax.html1
-rw-r--r--encoding.js4
-rw-r--r--encoding_gb.js275
-rw-r--r--encoding_jis.js14
4 files changed, 286 insertions, 8 deletions
diff --git a/ajax.html b/ajax.html
index 13120dd..15bb6b5 100644
--- a/ajax.html
+++ b/ajax.html
@@ -10,6 +10,7 @@
10 <script type="text/javascript" src="parsemail.js"></script> 10 <script type="text/javascript" src="parsemail.js"></script>
11 <script type="text/javascript" src="encoding.js"></script> 11 <script type="text/javascript" src="encoding.js"></script>
12 <script type="text/javascript" src="encoding_jis.js"></script> 12 <script type="text/javascript" src="encoding_jis.js"></script>
13 <script type="text/javascript" src="encoding_gb.js"></script>
13 </head> 14 </head>
14 <body> 15 <body>
15 <div id="header"><a href="https://www.ccc.de/"><img class="knotenmain" src="l_chaosknoten_1.png"/></a><img class="knoten" src="l_chaosknoten_23a.png"/></div> 16 <div id="header"><a href="https://www.ccc.de/"><img class="knotenmain" src="l_chaosknoten_1.png"/></a><img class="knoten" src="l_chaosknoten_23a.png"/></div>
diff --git a/encoding.js b/encoding.js
index d263fd1..ff7a99b 100644
--- a/encoding.js
+++ b/encoding.js
@@ -3,6 +3,8 @@ function decode_charsets( str, encoding ) {
3 3
4 if( encoding == "iso-2022-jp" ) { 4 if( encoding == "iso-2022-jp" ) {
5 return decode_jis( str ); 5 return decode_jis( str );
6 } else if( encoding == "gb2312" ) {
7 return decode_gb2312( str );
6 } 8 }
7 9
8 map = encodings[encoding] || enc_8859_1; 10 map = encodings[encoding] || enc_8859_1;
@@ -68,7 +70,7 @@ function decode_header( line ) {
68 } 70 }
69 71
70 dec_word = enc_word[2] == 'Q' ? decode_quotedprintable( enc_word[3] ) : decode_base64( enc_word[3] ); 72 dec_word = enc_word[2] == 'Q' ? decode_quotedprintable( enc_word[3] ) : decode_base64( enc_word[3] );
71 line = line.replace( /=\?\S+\?(?:Q|B)\?\S+\?=/, decode_charsets( dec_word, enc_word[1] ) ); 73 line = line.replace( /=\?\S+\?(?:Q|B)\?\S+\?=/, decode_charsets( dec_word, enc_word[1].toLowerCase() ) );
72 } 74 }
73 75
74 return line; 76 return line;
diff --git a/encoding_gb.js b/encoding_gb.js
new file mode 100644
index 0000000..228fae1
--- /dev/null
+++ b/encoding_gb.js
@@ -0,0 +1,275 @@
1// Since there are some gaps in GB mapping, we split our array
2// for codes 0x2121 - 0x296F and 0x3021 - 0x777E
3//
4// The unicode codes in second table have been normalized by
5// the amount of 19968 to save 5kBytes in this script, so the
6// actual value is 19968 + enc_gb2312_1[ x ]
7
8function decode_gb2312( str ) {
9 var outstring = "";
10
11 for( i=0; i<str.length; ++i ) {
12 var append = String.fromCharCode(0xfffd);
13 var x0 = str.charCodeAt( i ) & 0xff;
14 if( x0 < 0xa1 ) {
15 append = String.fromCharCode( x0 );
16 } else {
17 var x1 = str.charCodeAt( i+1 ) & 0xff;
18 if( x1 > 0xa0 ) {
19 var off = ( x0 - 0xa1 ) * 94 + x1 - 0xa1;
20 if( off < 831 ) {
21 append = String.fromCharCode( enc_gb2312_0[off] );
22 } else if( off >= 1410 ) {
23 append = String.fromCharCode( 19968 + enc_gb2312_1[off-1410] );
24 }
25 ++i;
26 }
27 }
28
29 outstring += append;
30 }
31
32 return outstring;
33}
34
35var enc_gb2312_0=
36[12288,12289,12290,12539,713,711,168,12291,12293,8213,65374,8741,8230,8216,8217,8220,8221,12308,12309,12296,12297,12298,12299,12300,12301,12302,12303,12310,12311,12304,12305,177,
37215,247,8758,8743,8744,8721,8719,8746,8745,8712,8759,8730,8869,8741,8736,8978,8857,8747,8750,8801,8780,8776,8765,8733,8800,8814,8815,8804,8805,8734,8757,8756,
389794,9792,176,8242,8243,8451,65284,164,65504,65505,8240,167,8470,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,8251,8594,8592,8593,8595,12307,65533,65533,
3965533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,9352,9353,9354,9355,9356,9357,9358,9359,9360,9361,9362,9363,9364,9365,9366,9367,9368,9369,
409370,9371,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,9342,9343,9344,9345,9346,9347,9348,9349,9350,9351,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,
4165533,65533,12832,12833,12834,12835,12836,12837,12838,12839,12840,12841,65533,65533,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,8554,8555,65533,65533,65281,65282,65283,65509,
4265285,65286,65287,65288,65289,65290,65291,65292,65293,65294,65295,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,65306,65307,65308,65309,65310,65311,65312,65313,65314,65315,65316,
4365317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65339,65340,65341,65342,65343,65344,65345,65346,65347,65348,
4465349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,65371,65372,65373,65507,12353,12354,12355,12356,12357,12358,
4512359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,
4612391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,
4712423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,12449,12450,12451,12452,12453,12454,12455,12456,
4812457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,
4912489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,
5012521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,65533,65533,65533,65533,65533,65533,65533,65533,913,914,915,916,917,918,919,920,921,922,
51923,924,925,926,927,928,929,931,932,933,934,935,936,937,65533,65533,65533,65533,65533,65533,65533,65533,945,946,947,948,949,950,951,952,953,954,
52955,956,957,958,959,960,961,963,964,965,966,967,968,969,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,
5365533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,
541051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,
5565533,65533,65533,65533,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,
561099,1100,1101,1102,1103,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,257,225,462,224,275,233,283,232,299,237,464,236,333,243,
57466,242,363,250,468,249,470,472,474,476,252,234,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,12549,12550,12551,12552,12553,12554,12555,12556,12557,12558,
5812559,12560,12561,12562,12563,12564,12565,12566,12567,12568,12569,12570,12571,12572,12573,12574,12575,12576,12577,12578,12579,12580,12581,12582,12583,12584,12585,65533,65533,65533,65533,65533,
5965533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,9472,9473,9474,9475,9476,9477,9478,9479,9480,9481,9482,9483,9484,
609485,9486,9487,9488,9489,9490,9491,9492,9493,9494,9495,9496,9497,9498,9499,9500,9501,9502,9503,9504,9505,9506,9507,9508,9509,9510,9511,9512,9513,9514,9515,9516,
619517,9518,9519,9520,9521,9522,9523,9524,9525,9526,9527,9528,9529,9530,9531,9532,9533,9534,9535,9536,9537,9538,9539,9540,9541,9542,9543,9544,9545,9546,9547];
62
63var enc_gb2312_1=
64[1866,18495,2499,5416,1742,1801,1728,10385,10316,14140,10734,13438,10893,9265,18584,18829,7720,3465,506,5385,6295,3768,13050,6728,12974,6146,10446,1017,5974,9132,12785,14980,
65690,2917,5066,8627,13485,5452,5202,1517,1575,11526,875,10148,4084,5332,16331,18806,5258,12825,2397,18744,12642,9272,10365,6607,10366,5702,368,16165,5340,11287,6033,9709,
665676,5235,13356,19073,6527,9288,5230,5324,308,9955,1354,1182,12490,17062,4142,6790,7068,13184,12497,6866,10949,14476,18257,653,15908,13534,13022,1285,15122,1125,14212,18681,
67477,2593,19313,3485,5297,5285,6324,15993,20109,9222,6511,10897,4786,1361,1303,16776,13004,16157,18081,525,9416,2823,4843,8985,15019,2900,13551,6444,11560,3881,12535,10029,
687925,16486,16888,16956,20795,7636,17177,11540,4476,10919,14038,14141,7637,7641,7638,4097,4231,10233,18413,5981,4362,4549,16799,2753,13250,17023,18523,18861,16825,12566,16172,5185,
69447,1496,1374,16808,16809,16811,16973,6663,4458,13208,14952,20182,5003,1067,10282,4460,6028,8658,8424,3518,5704,885,944,6596,25,11209,19324,8883,10181,4214,9659,13792,
705805,5352,18101,7906,1370,1219,5647,18114,11668,303,4123,13366,13078,13194,8228,7882,19571,5461,1372,1786,14949,2528,13,4099,7525,11839,17128,4630,5862,9500,15041,6480,
715197,16162,10604,16425,17351,4457,13788,14113,19216,1474,14485,7563,4845,4840,8831,13517,13361,211,7847,14287,5837,11993,7165,6393,13641,1429,11606,423,908,8011,3650,16493,
725586,1481,13612,13622,6629,10932,5693,3551,3732,4078,15847,5318,6644,15994,5632,5562,14665,19339,15895,12576,18162,167,18448,19108,6156,9494,2362,3613,4152,18303,639,12960,
731410,5982,10053,1841,545,16261,5252,18078,6429,2098,8558,4066,1589,8850,16742,5231,5796,5539,4475,8584,17140,13283,16816,3608,6248,4593,7817,18504,16257,14956,5777,11248,
742510,7257,5136,1608,88,11275,4841,8580,15834,5247,16926,19595,11236,1539,10228,5377,1305,7776,16863,4379,19568,12859,20863,392,3642,16228,12741,6053,8893,837,946,14443,
753847,3488,5309,17260,10100,16396,11296,4865,11641,199,12536,10629,17,13293,1053,1018,7281,1448,16519,18180,18639,8385,18532,7002,10816,680,10711,5648,15334,2820,5603,4061,
7611391,6973,288,13369,1944,50,10158,11415,4194,4234,18415,1051,1593,8842,5494,18212,2434,6181,6975,17287,1799,8179,12463,14882,5171,12528,10165,13608,10945,18636,16798,4936,
779975,15821,7524,1082,16208,7457,12906,13937,2289,1286,206,27,977,11927,17291,11783,451,16511,11745,11420,5735,3860,684,13062,10241,11961,8172,12768,6481,3416,3576,10955,
785806,5651,5546,5419,18201,5677,16830,11604,10281,5203,2855,1606,7545,675,5172,4134,7558,227,16183,14987,4485,16942,4640,12861,5317,57,1365,17144,5560,12998,6118,7726,
79326,4846,8161,15838,4409,14539,4435,5409,858,13665,6755,1024,5475,16456,530,3739,11127,3580,1072,11323,4796,16979,10455,4535,4503,10372,16492,8815,10363,11593,10666,1011,
8017043,2596,334,8436,16874,5964,11547,9412,8100,12767,3297,5301,4245,2352,13954,11564,4125,4383,16914,12564,19104,5506,8391,10904,8889,888,18779,2475,10037,323,10040,4247,
814838,2912,8128,7615,10889,1532,18645,971,1025,5513,1546,18067,15875,16332,9273,10911,14710,16877,15885,1504,1,10479,1518,18057,19062,20750,18221,3482,15778,34,28,940,
8213923,5058,1192,6667,407,4715,955,7966,860,5270,6039,18529,15942,16919,10200,17149,10595,7634,9354,9452,15867,2613,10617,16204,6492,18240,12954,4262,8225,2962,11503,10733,
8318235,7605,6061,12558,2566,849,18463,3577,2729,1576,16498,5990,19071,2276,18077,10494,16961,5511,1734,2842,2874,2459,16562,6453,16378,13365,1089,4848,2581,14590,3816,20549,
84452,19101,15801,3109,4726,1412,5244,16975,17154,19327,4713,12812,831,12851,3604,19317,7985,140,16176,1489,12634,11599,272,79,18432,7893,9680,14313,4102,10090,12795,7178,
8510750,18066,12353,993,8934,1485,16852,13571,16169,9391,19309,7899,2378,13491,6073,12970,5183,18482,2984,255,15807,12474,5950,13810,18782,1889,19166,12965,1322,15869,1568,12986,
864255,7864,16185,13484,17242,1577,7707,1030,12471,2399,8986,7806,11913,2891,253,4607,4900,11946,48,3585,6571,14594,3824,18187,19150,10159,8957,16930,943,12573,15805,2889,
87996,347,1574,2859,6007,12964,3445,5238,5314,16784,4165,7711,11558,271,472,6413,8046,8106,11151,15025,4375,10027,5274,16773,495,17372,6055,13103,13137,4252,13136,16244,
881135,15238,16203,2829,645,216,18460,9270,13177,16159,3532,15779,18500,2951,12570,1680,2166,2062,15845,5945,7042,18073,10454,8329,4210,10008,6470,6609,11519,12957,16246,4895,
8911206,5986,16227,904,1050,18082,12600,12955,12466,3735,8239,6496,11737,10379,19672,13199,12692,11989,5662,18256,11327,1610,1765,7500,5633,5128,20541,13043,10137,1138,18793,13915,
906716,14564,18433,18580,18156,42,1540,12505,6713,16351,12821,6388,4250,12729,2498,12863,6807,4069,5947,1183,4717,20890,411,16556,876,3499,4371,4073,7774,5361,16161,881,
9118089,1278,7839,13535,9431,2466,6532,16173,2847,16796,13767,1685,11661,304,7869,3428,3025,20755,1508,14538,19624,15927,12961,5957,19070,2298,18631,1070,9948,1104,3553,5378,
9215106,86,5328,4650,6906,883,3480,928,15298,11681,19334,12624,4847,8780,16175,841,4223,16923,9840,15300,2349,10821,4434,20895,18426,16744,19772,15841,10360,6722,6620,16362,
9316181,1085,16778,8410,6861,18181,17133,2301,6556,15097,16839,1736,19640,3433,8055,7718,165,3507,19591,17251,5032,17071,18921,1579,8117,3538,1021,1930,12629,12784,5820,5453,
946129,5054,4749,8970,7767,7753,2863,6509,13354,2773,2190,15978,7659,17117,2941,12823,1527,8041,1653,1949,13687,13775,6712,11198,1676,341,1544,10450,16009,18434,7859,8120,
9516235,15120,20580,16186,2111,20689,10197,4488,9440,4712,1788,168,7210,14945,4690,16752,1732,8920,14457,20543,7978,3471,4376,12450,1929,431,9524,1596,1434,537,1550,1660,
9678,4605,9818,2806,13931,13025,14708,9424,11978,8278,4391,14414,1836,5284,146,7850,5175,13489,1751,1358,9534,8401,10043,1042,1302,15837,7120,4490,4608,8174,2383,7458,
979647,6739,16856,12563,5474,4771,1828,10218,15970,8981,8099,3494,4219,13650,4940,20676,11002,14679,11815,10375,1008,4854,9036,6211,4172,4685,15886,8816,5413,16777,4541,4706,
9814548,2270,7617,4756,4967,1353,4832,6246,16191,11261,282,8937,7751,15795,15858,12504,13668,6159,3162,19778,8017,8183,15937,7995,281,8811,13751,5142,4817,18701,16167,11128,
991019,2366,2554,6458,10104,11325,11247,11669,12940,19301,16889,8640,15781,20513,3052,12521,12553,1545,6529,6872,16785,11853,18630,1482,4645,10174,7794,1395,3273,12455,5412,992,
10013066,4081,14047,5248,896,3427,270,11117,1090,4792,8014,3524,3522,15777,15792,6114,4556,18501,2963,12519,12458,2057,6583,2873,371,3510,1184,13658,19082,16190,10034,18110,
101583,11324,247,6582,19582,3265,7548,10449,2394,3606,11578,18420,9038,892,12969,13424,2936,12548,13607,6848,6636,10929,10871,5347,5473,11648,493,1130,975,13648,7131,17524,
10216373,16177,15297,18222,11693,246,613,13360,1105,19311,8208,8325,8103,4346,757,3036,3590,8006,7775,10118,13963,6760,2902,15794,1312,17265,18509,14153,6930,11009,8998,13046,
103164,17098,8007,19588,3079,2236,5637,18160,10731,421,13082,9441,15314,19322,12596,12510,1151,5977,17269,16767,16771,1515,11414,5613,5541,10374,11256,14935,18486,5162,1195,13442,
1046740,6512,5495,10603,11501,7937,12499,15331,3024,5138,14281,13477,10060,543,203,10149,15851,3658,4094,11595,6052,17361,202,7973,15199,12071,18214,197,15912,16859,18803,6219,
10511137,16849,8940,8056,3645,1202,13638,866,13582,10587,6262,20152,172,4810,11966,11955,12495,149,15718,6255,19080,18777,2691,5996,18268,4484,10185,18774,11487,11486,960,8879,
10611416,5610,11382,12448,9622,18925,69,8824,93,17234,1449,5969,6119,13308,13317,1678,3633,10138,18848,5336,9433,10173,3653,19577,13770,3648,1664,10729,62,7854,12890,5330,
1075486,4072,887,16349,16414,18223,497,1509,4839,8876,1127,5456,20547,3103,550,10551,1399,12514,5765,5931,5257,5528,532,9269,15305,947,15808,12509,2375,13772,18087,923,
1081563,3835,458,11491,8026,17121,19599,1920,1686,1377,1711,4352,5609,7031,1007,4968,1034,2602,1240,2382,10765,10507,4279,4983,12000,5211,5271,162,8853,12803,5367,8932,
10918784,2423,13531,6639,6901,10965,19095,11217,2803,1715,1519,8244,843,1083,3490,15870,12975,1859,2470,4723,2385,1581,11386,4688,3412,5543,5280,1507,5219,3527,6575,1773,
11011423,13542,17271,4243,15076,2872,2478,5390,16360,13039,2391,11639,425,4587,3517,7486,1313,11600,9410,6726,10751,10550,6135,949,143,10452,3775,11429,13941,2894,19777,640,
11119336,4903,8323,2404,6150,5446,2288,5356,5225,4307,18452,2435,5321,1927,14625,13130,16803,1894,13745,6501,16214,14045,3178,6671,5350,11758,18449,880,8604,15920,5629,15304,
1125074,12550,8898,8421,9733,7060,9468,4298,17102,6423,8042,5470,1203,9314,12801,364,3045,17258,8921,8093,1234,80,18679,18285,14206,10954,12079,801,2450,5826,12939,11899,
1137914,6897,7006,951,1432,6824,9345,20686,11761,9464,11195,8467,9734,6478,17356,20132,11068,13705,13652,1551,6679,61,1417,1201,10814,1414,1065,648,395,464,10210,11467,
11411922,7845,18614,1179,9859,1769,489,12884,13746,16862,18288,4297,4636,8095,4120,5979,13112,18174,4683,8892,12483,11950,969,6785,11953,13423,36,16774,17359,6270,174,15877,
1155801,12874,730,10135,9166,3557,16829,8550,134,5762,18275,4310,6041,1047,15042,8904,1187,9486,9779,6551,10999,18710,52,17083,20190,8139,987,16193,1565,5326,9650,13809,
11618678,20868,18115,310,12698,972,8821,18549,3757,19078,1510,228,8348,9737,7092,10859,19343,10073,1048,10276,8001,6643,877,20889,12875,1689,11580,11455,18566,2436,5346,18503,
1177036,3076,5634,11731,8463,18507,13478,1378,19077,4240,8841,5555,1380,14415,20097,20627,10892,18738,16367,16194,20607,8542,11140,4437,18502,5166,19572,1557,18141,419,6085,3685,
1183681,12565,14417,7727,4491,9607,8420,12543,3814,5403,3434,8422,1397,113,5536,10085,5281,16750,294,209,7846,12470,15802,13853,14778,12631,16955,18211,11689,19617,15096,13885,
1197963,19590,12508,2952,20667,9627,10753,14466,19564,19586,2075,1559,2507,112,20646,1366,16840,13065,10642,19346,14574,8417,14099,6396,4962,8491,15913,13458,13611,10482,7699,4569,
12013757,9515,13573,18202,7643,10715,18118,1391,13570,914,4157,16012,16184,72,9643,6554,6789,17270,18697,9060,7841,10505,3218,18241,7631,12686,6183,3536,3001,3226,18408,18423,
121236,13836,13977,7340,10463,18224,9499,6822,3423,10543,17306,18785,11996,16887,15900,4389,11891,11224,15301,7884,14620,3526,4162,6857,10528,12533,917,845,1225,3113,12549,18786,
12213527,5583,10628,14288,11218,8250,4249,2969,14097,8813,7697,5311,10431,5967,4783,18429,6158,14751,20515,18157,1549,1661,15916,5752,5753,14353,7201,13212,10984,5737,19796,5305,
1236443,13739,2728,20696,7851,8480,3550,18508,15883,9311,6608,5319,9313,169,3014,7629,2707,6318,4181,1247,4949,6440,10478,10598,9319,11334,5375,1770,1616,18080,17059,3100,
12412467,7702,67,2934,12816,2888,1367,10039,18622,2250,5408,13073,4732,18425,8150,1634,19329,901,3305,13053,2990,18707,554,7909,3644,5343,352,1343,13179,16902,8378,14123,
1255320,4212,10942,5813,5499,4597,3096,17279,20511,3647,5455,12866,3453,1902,18250,18253,8069,4776,6624,9438,989,3457,5351,7902,9307,5229,18094,12477,13075,8019,924,4356,
1262932,1194,4626,2931,6294,14416,10143,5418,5094,12015,15866,1766,7463,20517,7604,14293,1621,630,7844,1898,16308,9260,4117,4629,9782,5325,5522,9292,4504,8259,7998,5888,
1278536,10456,10960,10492,10068,1060,1499,83,4254,6081,12842,13014,5275,1670,1064,8878,14989,16337,7905,1656,13018,2553,15092,16212,18538,17229,361,7835,1975,10438,10800,5288,
1288953,8590,4461,14060,6874,10876,11767,13224,6411,20559,5479,10928,2415,10770,18745,5241,5291,1160,9781,7639,1892,13118,10162,10414,1337,10206,763,3649,15724,11719,591,9287,
12919607,19160,8450,9954,11112,5767,10661,5372,19089,16171,1729,12888,82,2410,13561,13837,4211,1005,9974,15812,3663,2401,7932,19079,3142,10804,19780,16875,11925,1110,5201,18170,
130198,13702,13921,13801,14002,2516,6452,2307,6254,8038,15921,6365,8721,6431,7482,6678,5146,3003,3,964,8454,6610,7823,886,6859,2887,7527,10086,3854,13072,20816,6103,
13111080,11073,19601,16247,3714,94,257,1583,2897,10764,2152,7700,16836,4355,7805,7907,15787,5520,4720,7997,9333,5222,18062,18117,1347,16833,11646,223,15910,126,20692,18097,
13218099,1101,8540,16995,8005,15924,2577,3916,7456,7497,6570,1627,13140,12684,2713,14135,4410,5282,7239,18233,6002,4740,6757,10663,84,424,4071,18840,5804,12760,3821,463,
13311405,1031,13572,20,4655,11395,18086,437,178,11238,9780,1252,13497,5842,11197,3549,7809,18770,16763,7714,574,1407,8197,5838,6260,7728,4805,19063,15863,4230,9788,11383,
13411211,24,17073,9731,7746,2266,17227,7877,16267,1338,14534,6386,16559,3656,19569,8224,1494,3126,20875,16291,1467,2312,19111,6467,17307,7881,872,10186,5363,9388,1080,1181,
13512602,8852,10296,1396,20554,7095,10862,18624,15065,12708,9014,9155,905,6611,9956,2788,5912,2231,15785,19318,5232,12501,4857,8941,2796,193,186,4557,18919,251,15780,1027,
1362954,12459,5204,205,6117,5134,13624,14025,13667,14733,9108,8374,3513,12498,919,5577,6612,12937,13625,14869,786,3450,2946,16817,115,7773,869,15141,16751,18478,14154,9822,
13718192,18416,8102,13541,4401,5778,7954,13864,13166,20163,2654,16219,9,1473,286,5987,6737,2003,39,5652,19610,5227,3266,9823,13426,8105,6894,743,13710,10754,6464,1081,
1387833,12465,699,1893,9054,11611,6226,9674,13547,6473,3697,1056,9085,14955,18410,18517,5829,16225,13235,1924,7765,5191,12590,2706,292,1862,16207,6220,10,3610,15091,6818,
1395454,11277,8935,13453,1274,18934,3601,1768,17077,12493,2914,16202,14535,13324,13325,16230,5700,3588,4945,8073,11070,15806,10807,10035,1659,312,16555,8177,3104,12485,11102,7816,
1403489,3190,10010,12990,4942,8215,2800,10015,10021,9330,1351,12531,10497,10459,1129,13020,2339,4104,2865,9454,6077,8319,15831,3640,14449,1345,10739,5374,6134,192,19167,14464,
1413486,15814,1522,10722,383,3662,19574,3019,4367,11066,2795,22,6655,139,5357,15507,16925,1215,6191,2012,2156,16898,213,397,17354,19312,7695,4098,4675,3492,15302,15829,
1425942,5195,19350,3464,3583,5512,1838,1495,10278,893,14124,6562,6835,7562,5266,16787,1492,13330,8145,10127,102,16206,3440,9119,14255,6289,6361,12658,14592,20685,20768,3678,
1436447,16880,6673,6495,5133,11478,2693,4278,6000,8497,4693,1079,12813,5716,14960,10025,4101,6675,5364,18716,1484,9277,15873,7732,10593,11278,1582,10668,19066,13340,15860,10837,
1446420,8897,6063,5781,2102,4637,11201,1528,29,7547,12934,3578,2019,2267,314,316,19314,4083,6526,12856,4610,19074,16897,3467,15804,15861,5660,13400,5854,2045,13519,17253,
145471,12064,16927,11935,755,2641,8367,3519,15817,12931,17272,13980,11671,14461,18571,18575,12517,19667,10894,3713,11351,16962,18599,11103,3417,5471,11531,14033,6829,1798,12585,9744,
14612066,18177,5184,2636,214,3459,2937,2644,9581,5406,16459,16399,13006,13524,5292,1520,7920,17246,2858,4609,7792,2381,5706,16170,10283,8425,2395,7296,10224,8557,15917,15880,
1472406,7663,14994,10931,5538,1529,8877,7780,2648,5674,2562,6880,13211,1808,11990,536,16570,8140,16287,8939,5519,8091,8404,12518,13828,6723,16899,8152,18550,15784,2903,9337,
14814308,13182,10172,15498,6831,1108,16418,18193,5584,19096,16452,1916,339,6399,2191,4821,8085,1091,3657,2857,8187,2667,10032,10012,4716,13332,13126,5393,6497,16866,10554,16371,
14916180,18113,4118,1413,1580,8899,7744,4343,604,173,4269,5434,13383,16922,6736,17262,10675,1548,18140,4452,11493,6774,5445,11602,12511,10203,631,5269,2868,16911,1016,11203,
15011393,2302,4498,16916,8066,3680,2335,1552,852,8269,2274,5544,19091,13183,14613,15146,16896,1566,3695,13248,5334,5208,13105,20533,18496,19566,19580,6957,2981,5331,1854,5398,
1511735,14553,7996,3075,9958,15004,7530,2838,15948,4399,8318,9641,19069,56,8951,3468,10903,5437,6234,10390,4811,3483,3145,7,13141,7786,9611,161,6537,12625,4480,6138,
1526427,4568,2948,3073,4045,4526,1393,18918,16861,6725,2292,1839,4831,58,8525,12532,13511,13838,3028,287,298,3646,12460,6442,14106,1651,10063,12995,1922,19791,333,8237,
15315891,3593,4976,1387,10271,8233,14474,6023,18427,12473,1595,11315,12042,18414,2017,12737,9966,5405,14615,8097,11421,5137,6049,1383,5601,7811,4075,1628,18088,76,7777,15852,
1543659,6112,13468,6823,1598,1588,7627,7526,148,5442,1352,13342,269,430,2398,5130,18686,6244,9321,1279,1185,4767,15855,6164,9113,6544,15231,10834,10749,6256,2107,1592,
15518209,9338,11264,4719,4108,4745,13213,2837,4828,9092,8943,8362,7760,9344,7300,15021,4141,96,3251,1948,18147,7959,12027,18585,5135,12486,10638,14462,1315,18718,16790,6279,
1563809,416,9453,11,1446,2831,1555,5504,18216,840,217,20124,12452,1720,16164,14932,13367,18418,8078,4390,3276,6206,18537,9648,9518,1471,13178,19333,12705,3498,18551,18512,
15712479,10488,1442,18294,19353,11697,15172,8280,97,12756,11109,15846,4851,1741,171,19065,4087,7265,719,1553,15969,13863,10845,18692,1098,1774,2211,18176,8072,3509,8134,6227,
1583599,3421,6689,12950,1912,11537,5960,6996,155,7495,14670,18827,1359,5407,5690,17066,6044,12993,15888,921,6832,1400,14841,5064,7876,7931,15906,3665,14250,13487,18188,7459,
15916795,6064,4603,4547,481,14917,6175,13157,9513,4858,884,1041,2443,4450,17058,14924,17298,4216,6479,4647,3027,836,1014,13048,1288,7801,18628,9098,273,494,12702,6461,
1601989,18184,11200,14998,12515,2719,5132,18688,14426,2072,19067,4496,15800,14020,17239,1497,6125,4239,10076,4708,12142,3199,12522,12525,16745,1959,3491,4780,6091,9604,16905,10339,
16110537,12506,18804,14235,3430,11380,18666,14912,1227,9103,4522,6124,15842,3579,19567,4065,7561,7771,15789,15791,16906,16837,1419,5308,20518,20525,1600,43,13501,9305,14492,3862,
16214937,8111,18629,1745,154,15798,8969,1725,18441,8927,8185,10448,37,10772,14610,3753,4342,15360,19100,18446,8846,7871,2884,5545,10556,14925,8468,13427,2608,9173,1420,10778,
16318625,1793,4454,9008,3508,15898,19596,7555,2862,20527,11239,6504,5228,367,10145,12682,7947,18483,7719,240,10194,891,6711,8510,17024,13168,2966,9846,5703,3623,16997,11409,
16415907,3034,1708,13312,13679,15233,12800,6960,2126,12854,9271,17358,950,95,19061,5526,26,1526,6387,13131,2844,8114,0,2809,1339,5590,18161,413,266,14947,19088,2871,
16516983,11259,234,13040,10129,7810,3484,3048,4445,6917,14465,538,4082,89,10723,229,13434,5265,6163,17041,3705,191,4473,13254,16952,12932,10155,166,15060,4879,7621,4550,
16673,10442,8354,15843,15790,15882,15825,4354,12796,12748,12494,13621,13675,2272,7607,18931,18484,3067,1567,18166,8171,3525,19310,3641,4373,18576,1392,13553,7217,3188,20592,4244,
16712584,13753,13860,13861,13671,14663,16846,16226,10440,4465,19094,10860,6176,1759,5349,355,13251,10184,4280,18637,16394,14585,1679,7923,8076,7736,4735,1223,10024,4221,280,4768,
1684583,3620,10033,17070,18112,9401,7865,8248,17225,6409,1483,1523,337,17353,15857,1480,4220,16834,8164,142,10434,7046,14430,4890,13318,345,478,16958,20092,4873,8221,8212,
16918565,136,3121,18664,14,3711,11193,3463,15853,12733,9609,2527,13451,17089,1537,16967,1979,3818,4513,4872,7474,9457,12978,15497,8052,3539,15061,19076,15979,19565,20531,8202,
170932,835,2467,14977,1439,5620,16789,2285,1624,2310,9535,8336,12568,16860,13521,4927,4648,18530,6384,12454,16266,16323,18085,3763,11940,6408,4774,18437,12824,145,17127,1280,
17118536,833,16848,14196,17245,6229,18933,3413,1309,10808,6466,6717,1737,8830,3504,16765,909,2344,1713,5906,6274,16222,16195,13071,13932,17005,11999,1023,14331,6563,6121,8609,
17214500,16513,2154,16928,10370,8822,9189,16163,5353,1049,7933,16188,4622,2718,5006,6398,16224,5198,1971,8227,6445,16743,18145,18424,10536,6661,7080,1675,77,8888,15816,5720,
1736027,3461,11396,570,3560,10683,7649,15481,11928,7870,10447,6057,16791,3885,3669,14392,6664,1376,5144,11481,8283,12541,7199,11488,4464,8499,4384,5516,8104,6486,8,4112,
17416166,215,12992,10292,18588,5339,6189,5246,7868,16245,9063,12649,838,12935,1516,17006,5272,1778,14576,16793,12805,18199,14103,16857,8025,9677,6047,10527,9988,10791,13307,16158,
17518056,422,6549,10169,15818,18695,5423,18247,18485,14008,5411,10561,4481,9456,137,4628,6004,5359,7523,5951,4135,10183,17105,15809,13469,6557,5935,1585,14616,10725,12962,13058,
1767745,75,12487,12876,10484,6925,7574,5223,572,388,2368,5383,7522,16318,1514,6120,12472,4567,5402,5559,13299,13300,12654,4124,3801,1078,6266,11241,11290,16168,8857,10196,
1778414,7867,11410,45,10437,4576,18079,14967,12488,11213,12991,17357,242,279,13343,1640,4062,7986,15820,11941,16756,12952,4122,1682,10417,3481,6204,19620,9696,6698,14555,6449,
1789514,15864,15835,16912,11513,8923,9070,5316,10665,2097,59,13911,6641,1193,14528,16174,18168,11601,335,7912,11101,19579,5267,9258,5373,19,10774,16748,5808,16218,11718,6761,
1794228,15045,2950,5790,2798,9398,6926,18213,16893,16216,2400,12544,15878,966,5449,5337,1363,6732,9762,13569,17228,1860,10560,8828,8010,889,1704,16196,3071,8395,8132,3420,
18012075,212,11901,8403,3408,13290,8205,3415,19715,6869,16426,3479,12540,4667,12469,17081,16240,2895,5581,11231,16307,1362,6095,11094,15813,18491,12484,18107,12418,2100,17289,6400,
18112650,3594,17013,6184,4070,336,6622,602,348,2384,4263,45565,45565,45565,45565,45565,141,12,832,16,4351,1349,21,152,30,19762,3436,2153,40,11194,63,1301,
18271,2861,9275,1390,7696,2271,13028,19351,7635,10622,20759,54,159,20752,92,105,147,13448,3419,1900,2063,196,1421,1437,1443,1445,1454,18789,16221,1306,1525,1318,
1831326,1342,16220,1382,1379,1026,1032,1038,1069,1075,1087,1088,1100,1118,1121,1116,13999,1149,1154,1153,1168,1171,898,12628,187,195,201,194,232,225,235,222,
184283,243,290,356,245,293,295,265,299,350,359,5944,346,349,351,343,306,317,374,372,401,393,387,399,382,379,426,380,428,404,486,488,
185490,453,474,483,476,465,479,504,553,588,499,556,527,558,557,510,540,524,549,552,638,579,597,584,590,620,635,677,679,681,698,726,
186774,749,748,742,750,775,779,221,7741,344,357,462,20896,7750,11892,878,4093,20681,19352,897,2836,1273,1293,15367,1296,1003,2841,853,160,854,179,14958,
18715012,181,13076,15058,11136,3380,14851,12728,939,945,957,956,967,918,930,933,15776,15782,15783,15786,15796,15797,15799,15810,15811,15819,15823,15822,15826,15827,15828,15830,
18815832,15833,15836,15839,15840,15844,15848,15849,15854,15856,15859,15862,15865,15868,15871,15872,15874,15876,15879,15884,15887,15889,15890,15892,15893,15894,15897,15899,15896,15901,15903,15904,
18915905,15909,15911,15914,15915,15918,15919,15922,15923,15925,15926,1385,1402,18461,18466,18465,18481,18474,18493,18492,18498,18505,18516,18527,18535,18540,18546,18548,18568,18573,18583,18608,
19017047,17051,17053,17049,17068,17057,17076,17075,17078,17082,17080,17072,17103,17093,17086,17104,17092,17095,17107,17126,17122,17116,17111,17115,17131,17135,17150,17156,17186,17182,17187,17201,
19117199,17209,17219,17222,1037,2882,1186,1196,1197,1214,1791,1232,1238,1264,1503,9198,10701,4340,1013,1020,19759,1462,4353,10074,4079,2380,2473,2465,2686,2748,2757,2769,
1922345,2348,2346,2355,2361,2350,2351,2396,2363,2370,2409,2437,2411,2438,2428,2427,2408,2413,2422,2419,2477,2468,2444,2482,2511,2471,2484,2451,2464,2517,2520,2522,
1932521,2514,2488,2548,2543,2552,2532,2525,2571,2573,2557,2541,2560,2590,2585,2628,2592,2661,2668,2689,2697,2714,2688,19368,20761,5119,13433,13437,13439,13455,13450,13480,
19413444,13454,13457,13463,13465,13483,13496,13502,13488,13512,13514,13539,13464,13495,13486,13515,13516,13505,13481,13492,13473,13482,13471,13508,13518,13476,13537,13577,13559,13540,13583,13575,
19513532,13556,13522,13528,13580,13563,13523,13585,13594,13574,13588,13589,13536,13525,13596,13649,13659,13660,13576,13714,13628,13620,13617,13723,13662,13615,13647,13639,13635,13663,13632,13591,
19613664,13613,13626,13619,13670,13669,13672,13595,13673,13676,13674,13677,13678,13744,13688,13747,13748,13728,13738,13715,13724,13701,13692,13750,13737,13693,13752,13691,13720,13726,13736,13754,
19713756,13761,13825,13797,13784,2567,13848,13835,13789,13821,13782,13852,13880,13841,13830,13780,13791,13839,13827,13816,13817,13802,13765,13760,13862,13808,13793,13916,13905,13914,13913,13939,
19813959,13960,13946,13961,13944,13884,13894,13929,13942,13964,13966,13873,13933,14017,14029,14032,14054,14013,14035,14026,14015,14010,14048,13985,14009,14004,13975,14053,14051,14092,9997,14136,
19914064,14137,14111,14138,14166,14139,14079,14076,14169,14152,14184,14180,14174,14202,10658,14147,14194,14203,14244,14248,14215,14223,14201,14254,14236,14213,14265,14263,14256,14291,14273,14300,
20014335,14375,14341,14377,14358,14396,4350,4360,2876,2881,12855,2901,2906,2904,1295,3618,3621,3628,3636,5196,5226,5279,5307,5322,5338,5335,5358,5410,5366,5433,5451,5443,
2015549,5622,5489,5498,5518,5556,5485,5548,5514,5481,5550,5564,5618,5624,5600,5631,5572,5598,5582,5714,5574,5566,5701,5697,5643,5659,5664,5644,5670,5665,5726,5764,
2025741,5782,5754,5815,5816,5785,5818,5824,5840,5847,5860,5858,5897,5925,5934,4363,4562,10009,4369,1375,1521,1533,1513,1512,1531,1554,1558,1542,1611,1618,1619,1620,
2031622,1603,1569,1623,1625,1571,1586,1666,1684,1655,1649,1636,1690,1691,1668,1654,1638,1693,1744,1709,1730,1716,1746,1703,1702,1747,1748,1650,1699,1749,1723,1727,
2041740,1753,1754,1756,1705,1706,1700,1757,1743,1758,1819,1767,1824,1789,1812,1779,1826,1827,1807,1809,1831,1834,1895,1935,1973,1865,1901,1857,1877,1855,1872,1852,
2051847,1878,1909,1910,1911,1843,1840,1884,1931,2002,1923,1969,1977,1928,1921,1951,1918,2006,1937,1915,2015,1981,1982,1940,1945,2026,2039,1993,2079,2001,2027,2028,
2062004,2022,2013,1988,2031,2021,2034,2035,1996,1997,2024,2037,2020,16788,2078,2056,2060,2049,2084,2083,2046,2048,2087,2093,2136,2105,2135,2092,2125,2146,2137,2140,
2072124,2132,2182,2148,2161,2155,2171,2172,2181,2195,2223,2260,2263,2269,2273,2293,2283,2297,2303,2308,2314,2313,2332,4111,4121,4116,4113,4145,4155,4156,4151,4164,
2084180,4187,4190,4193,3724,3706,3725,3728,3734,3720,3736,3737,3729,3738,3740,3765,3746,3773,3756,3755,3761,3747,3777,3767,3780,3794,3812,3787,3813,3842,3843,3879,
2093878,3886,3876,3870,3846,3867,3928,3902,3892,3901,3948,3931,3951,3933,3947,3915,3914,3945,3956,3970,3993,3997,15987,4023,4037,4467,4471,4482,4487,4489,4492,4501,
2104505,4508,4520,4525,4533,4540,14946,4449,9389,9392,9396,9399,9400,9411,9409,9422,9421,9426,9448,9455,9449,9458,9460,9463,9473,9459,9475,9466,9467,9495,9491,9505,
2119482,9502,9501,9493,9506,9529,9509,9516,9528,9521,9552,9549,9559,9568,9580,9583,9598,13339,2853,19175,2852,2818,19299,19303,19304,19305,19306,19307,19308,19316,19319,19325,
21219328,19332,19335,19338,19341,19344,19345,19347,19348,19349,4224,4241,4235,4246,4261,4256,4281,4277,4286,4275,16211,4306,4305,4315,4328,4330,13242,4548,4553,4566,4559,4611,
2134590,4612,4577,4580,4606,4613,4614,4586,4589,4600,4633,4661,4646,4635,4623,4621,4649,4651,4618,4671,4641,4728,4729,4731,4730,4674,4714,4733,4758,4762,4781,4765,
2144739,4754,4748,4763,4844,4795,4785,4829,4824,4806,4826,4788,4896,4902,4885,4899,4852,4864,4878,4907,4938,4981,5036,5012,5031,5047,5076,5109,4573,18611,18409,18411,
21518417,18419,18421,18422,18428,18430,18435,18436,18438,18440,18442,18443,18444,18445,18447,18450,18453,18454,18455,18457,18458,44,9279,5141,7733,7764,7772,7754,7843,7813,7824,7828,
2167820,7784,7785,7796,7798,7814,7849,7888,7892,7853,7927,7928,7921,7895,7858,7904,7894,7930,7915,7918,7857,7891,7919,7934,7993,7975,7948,8003,8008,7943,7940,7961,
2177950,7979,8013,7982,7989,7962,8015,8018,8020,7987,8081,8047,8094,8096,8030,8083,8084,8028,8032,8060,8035,8218,8135,8133,8158,8206,8127,8160,8209,8166,8157,8153,
2188214,8107,8204,8110,8235,8302,8270,8299,8370,8287,8326,8275,8276,8242,8229,8260,8415,8369,8344,8416,8493,8418,8357,8359,8381,8379,8375,8407,8372,8399,8335,8386,
2198351,8546,8518,8519,8484,8469,8441,8495,8502,8523,8564,8490,8457,8489,8585,8589,8588,8568,8562,8572,8570,8657,8649,8615,8633,8630,8642,8673,8686,8670,8672,8687,
2208730,8739,8731,8761,8757,8783,8798,3456,3460,3477,3475,3493,3512,10031,19614,5684,3556,3566,15152,3568,16455,15623,16822,16851,16853,16869,16878,16868,16873,16870,16883,16872,
22116901,16900,16907,16934,16913,16909,16918,16929,16949,16950,16941,16943,16964,16977,16978,16976,17000,16984,16994,16987,6329,17012,17021,17026,17032,17027,17035,4432,4439,4438,4440,3643,
2221707,3664,3673,3441,3683,3686,12732,4394,4393,4397,13428,4412,19771,3694,2945,2947,2957,2985,2986,2979,2967,3018,2987,2974,2980,3026,2994,2991,3031,3006,3077,3078,
2233037,3080,3043,3032,3065,3084,3081,3122,3124,3089,3107,3091,3136,3175,3146,3157,3132,3170,3189,13036,3242,3227,3191,3194,3262,3307,3250,3282,3284,3256,3296,3299,
2243313,3286,3302,3288,3292,3337,3351,3350,3378,3383,3392,3605,3612,3418,3429,3443,3409,3411,3426,19573,19575,19576,19578,19583,19581,19584,19585,19589,19592,19594,19600,19602,
22519603,19606,19608,19611,19612,19613,19615,19616,19618,19619,19621,19623,12447,12449,12451,12453,12456,12457,12461,12464,12478,12480,12481,12482,12489,12491,12492,12496,12500,12503,12507,12512,
22612513,12520,12523,12526,12527,12529,12530,12557,12534,12538,12539,12542,12545,12546,12547,12551,12552,12555,12556,12559,12561,12562,12567,12569,12572,12571,12575,12577,12578,12579,12580,12581,
22712582,12583,12586,12587,12588,12589,12591,12592,12593,12594,12595,12597,4218,10111,4059,10046,17045,9614,9617,9646,9634,9631,9679,9666,9681,9655,9651,9664,9673,9672,9701,9689,
22819068,9738,9705,9703,9694,9658,9714,9743,9770,9819,9766,9765,9768,9776,9774,9772,9755,9754,9793,9820,9815,9813,9817,9847,9837,9854,9884,9870,9856,9857,9863,9867,
2299886,9896,9897,9872,9895,9938,9914,18922,18923,18924,6476,6483,6494,6472,6505,6565,6535,6506,6515,6552,6567,6517,6568,6558,6573,6539,6519,6524,6640,6665,6616,6666,
2306633,6576,6668,6617,6581,6618,6579,6621,6656,6595,6584,6626,6670,6593,6653,6706,6707,6752,6753,6734,6754,6724,6756,6787,6685,6741,6758,6721,6759,6720,6718,6730,
2316729,6697,6837,6799,6772,6775,6803,6763,6850,7022,6908,6943,6944,6905,6948,6896,6923,6913,6999,6883,6928,7025,6969,7008,6978,7005,7044,7019,7040,7064,7032,6964,
2327116,7047,7048,7118,7049,7014,7011,7033,7067,7079,7099,7083,7085,7124,7089,7105,7114,7135,7061,7136,7053,7167,7215,7149,7191,7192,7269,7154,7236,7230,7328,7248,
2337259,7221,7310,7289,7229,7208,7256,7292,7313,7312,7337,7319,7339,9527,9554,7553,7554,7559,7556,7570,7571,7565,7578,7579,7585,7594,16747,16749,16753,16754,16755,16757,
23416758,16760,16759,16761,16762,16764,16766,16769,16770,16772,16775,16779,16781,16782,16783,16792,16794,16590,5131,5143,5147,5151,5154,5153,5157,5156,5164,13287,9967,9972,9983,9999,
23510001,10003,5940,6126,6127,6128,6154,6169,6514,6147,6165,6144,8837,6391,6173,6196,6193,6198,6197,12806,6239,6228,6209,6223,6230,6241,6231,6263,6276,6284,6311,6301,
2366334,6363,6364,6374,6377,16178,16179,16182,16187,16189,16192,16197,16198,16200,16201,16199,16205,16213,16217,15303,15306,15307,15308,15310,15311,15312,15313,9326,9375,9309,9318,9327,
2379342,9343,9348,9355,9357,9359,9362,5384,5426,5552,5695,5848,12804,7658,7667,7677,7669,7673,7685,7687,7686,7693,7701,7704,7705,7706,7713,7721,7716,7722,7730,5941,
2385973,5995,9293,9298,9302,9264,14434,1046,12959,12956,12947,12988,6410,12989,12977,12971,12973,12980,12983,13031,13032,13033,13034,13019,12994,12996,13017,13005,13015,6416,13021,13035,
23913041,13044,13037,13069,13070,13042,13052,6421,13074,15962,13110,13086,13100,13080,13106,13128,13132,13139,13172,13145,13146,13169,13152,13161,13180,13181,13165,13159,2637,3253,13192,13186,
24013201,8405,13219,13226,13260,6438,13258,13243,13249,13222,7460,7479,7481,7491,7494,7513,19153,19154,19155,19157,19161,19162,7603,4416,7618,15347,6032,20817,6035,6076,6086,6084,
2416083,6092,6094,6098,6102,8832,8860,8854,8861,8891,8896,8887,8875,8881,8936,8906,8976,8979,8982,9007,9009,9075,9052,9064,9029,9074,9034,9080,9082,9112,9139,9141,
2429128,9120,9184,9172,9191,9209,9245,9256,8812,8984,9062,9145,5182,5181,5187,5192,5193,11067,11072,11078,11081,11099,11100,11091,11098,11106,11095,11104,11119,11111,11130,11141,
24311146,11162,11175,11187,4561,4560,4668,4701,4698,4711,4673,4697,4707,4779,4870,4877,4957,5033,5021,5067,5073,5126,12928,12927,7827,7926,8188,10742,10744,10752,10761,10775,
24410776,10769,6059,10797,10780,10781,10809,10810,10811,10783,10812,10789,10796,10787,10793,10830,10861,10838,10839,10790,10832,10823,10828,10858,10907,10899,10906,10887,10908,10913,10915,10930,
24510937,10917,10964,10969,10953,10988,10994,11013,10996,11027,11044,11038,11060,20891,20729,20731,20732,10481,10500,10509,10489,10503,10504,10522,10530,10521,10541,10534,10549,10552,10576,10577,
24610567,10563,10586,10600,10594,10597,10623,10637,10621,10624,10636,10641,10655,10656,10672,10677,10685,10042,10048,10062,10059,10056,10075,10098,10105,10115,12632,12641,12639,15432,12648,12660,
24712657,12665,12673,12670,10445,10469,14898,18053,18054,18055,18059,18058,18060,18061,18063,18064,18068,18071,18069,18074,18075,18076,18083,18084,18091,18090,18093,18092,18095,18096,18098,18100,
24818102,18103,18104,18105,18106,18108,18109,18111,18116,18120,18121,18122,18123,18124,18125,18126,18128,18129,18130,18133,18134,18135,18137,18136,18139,18142,18143,18144,18146,18148,18149,18151,
24918152,18154,18153,18155,18158,18159,18163,18164,18165,18167,18169,18172,18173,18175,18179,18178,18182,18183,18185,18186,18189,18190,18191,18194,18195,18196,18197,18198,18200,18203,18205,18206,
25018207,18210,18218,18219,18217,18220,18225,18226,18228,18230,18231,18232,18236,18238,18239,18242,18229,18244,18245,18246,18249,18252,18254,18255,18258,18259,18260,18262,18263,18264,18265,18267,
25118270,18271,18269,18273,18274,18276,18277,18278,18279,18280,18281,18282,18283,18284,18287,18289,18290,18291,18234,10727,10732,18633,11221,11245,11235,11243,11270,3911,11267,11266,11294,11284,
25211321,11319,11345,20687,19365,11376,10376,10382,10387,10393,10404,9950,9952,10028,20512,20514,20520,20521,20522,20523,20524,20530,20529,20534,20536,20535,20537,20538,20542,20545,20546,20548,
25320550,20551,20552,20553,20555,20556,20558,20561,20565,20567,20570,20571,20572,20574,20579,20582,20583,20584,20585,20586,20587,20588,20593,20589,20595,10130,10132,10134,10144,10141,10156,10147,
25410163,10164,10168,10180,10161,10160,10179,10178,10198,10189,10211,10216,10214,10212,10219,10215,10243,10225,10236,10239,10256,10240,10245,10252,10263,10250,10277,10264,10261,10265,10267,10300,
25510274,10272,10304,10285,10288,10303,10293,10307,10302,10291,10317,10334,10324,10332,10326,10347,10351,12746,11494,11384,11385,11392,11398,11400,11413,11430,11424,11436,11432,11437,11443,14948,
25614953,14962,14973,14975,14978,15010,15046,15031,15036,15049,15074,15054,15075,15077,15089,15130,15100,15080,15102,15088,15137,15129,15123,15131,15114,15156,15147,15158,15169,15206,15227,10123,
25713029,10418,10420,10716,12818,12820,12822,12828,12832,12834,12837,12838,12839,12841,12840,12849,12811,12853,12867,12870,12877,12882,12905,12913,15235,19064,19072,19075,19081,19084,19085,19087,
25819092,19098,19099,19102,19103,19105,19106,19109,19110,14413,14420,14444,14446,14463,14458,14460,14459,14504,14477,14475,14508,14493,14503,14499,14506,14483,14505,14518,14532,14517,14542,14512,
25914522,14513,14511,14537,14543,14516,14569,14577,14578,14573,14579,14544,14611,14558,14580,14559,14552,14545,14595,14599,14584,14600,14602,14605,14601,14627,14651,14622,14629,14638,14618,14654,
26014664,14644,14641,14633,14647,14655,14722,14626,14717,14718,14715,14688,14704,14668,14702,14731,14675,14691,14716,14692,14681,14693,14739,14767,14760,14802,14790,14728,14725,14765,14743,14723,
26114763,14821,14764,14773,14771,14795,14803,14781,14801,14784,14794,14811,14826,14816,14830,14870,14867,14846,14858,14875,14881,14905,14908,12598,12610,12612,12613,13328,11514,11517,11528,11523,
26211524,11541,11530,11563,11535,11591,11576,11562,11545,11566,11569,11552,11557,11556,11571,11582,11550,11608,11610,11589,11637,11596,11613,11616,11630,11643,11618,11634,11633,11664,11686,11687,
26311704,11692,11677,11688,11653,11690,11676,11682,11691,11700,11729,11713,11724,11741,11738,11749,11750,11754,11788,11774,11772,11791,11798,11787,11807,11818,11814,11832,11841,11840,13310,13313,
26413314,13316,13292,14916,13345,13346,13347,13357,13359,13352,13355,13368,13371,13363,13364,13374,13380,13385,13387,13391,13402,13407,13416,14974,14981,14984,15064,15071,15198,12701,12703,12711,
26512719,12720,12722,11900,5961,11921,11933,11932,11934,11938,11954,11964,11965,11969,11975,11980,11981,11976,11973,11991,12008,13422,6312,12735,12750,12757,12773,12769,12774,12777,12782,12787,
26612024,12151,12198,12206,12359,12443,20664,20660,16243,16260,16276,16273,16305,16231,16237,15943,15945,17226,17232,17230,17231,17252,17250,17249,17264,17257,17263,17277,17278,17266,17268,17273,
26717292,17285,17296,17293,17297,17314,17315,17322,17325,17326,17327,17333,17332,17338,15957,20606,16312,16363,16389,16473,16489,16309,16319,16316,16314,16324,16342,16343,16346,16350,16334,16335,
26816347,16326,16364,16375,16376,16355,16377,16379,16356,16393,16381,16404,16413,16415,16428,16430,16419,16431,16442,16448,16441,16437,16445,16433,16457,16449,16450,16465,16466,16458,16496,16502,
26916508,16495,16500,16517,16527,16532,16528,16540,16542,15992,16002,16010,16005,16024,16020,6043,15318,15326,15322,15324,15333,15339,15343,15422,15654,18771,18665,18675,18671,18694,18689,18696,
27018703,18702,18730,18733,18736,18750,20864,20867,20869,20870,20871,20872,20873,20874,20876,20734,20747,20749,18617,18620,18621,18638,18642,10687,18656,17550,17582,17608,17726,17770,17866,17807,
27117982,18027,20095,20098,20101,20102,20103,20104,11299,20107,20110,20112,20113,20114,20116,20117,20122,20123,20126,20127,20128,20129,20130,20131,20133,20134,20135,20136,20137,20139,20141,20142,
27220144,20145,20146,20147,20148,20149,20150,20151,20154,20155,20156,20157,20164,20165,20166,20167,20170,20171,20172,20173,20174,20175,20176,20179,20180,20181,20183,20184,20185,20188,20189,20191,
27320194,18812,18821,18833,18834,18836,18863,18859,18851,18866,18868,19633,19632,19639,20568,19638,19642,19644,19649,19648,19653,19650,19659,19660,19665,19781,19779,19783,19785,19784,19789,19793,
27419176,19213,19246,19285,19284,19679,19681,19686,19695,19691,19707,19693,19705,19720,19727,19731,19743,19747,20669,20670,12347,20610,20615,20616,20619,20626,17878,20637,20639,20699,20700,20701,
27520704,20703,20706,20713,20711,20709,20714,20719,20770,20780,20783,20793,20791,20797,20798,20804];
diff --git a/encoding_jis.js b/encoding_jis.js
index c6152d4..7550c7b 100644
--- a/encoding_jis.js
+++ b/encoding_jis.js
@@ -3,7 +3,7 @@
3// 3//
4// The unicode codes in second table have been normalized by 4// The unicode codes in second table have been normalized by
5// the amount of 19968 to save 5kBytes in this script, so the 5// the amount of 19968 to save 5kBytes in this script, so the
6// actual value is 19968 + encoding_jis_0208_1[ x ] 6// actual value is 19968 + enc_jis_0208_1[ x ]
7 7
8var page = { 8var page = {
9 us_ascii : 0, 9 us_ascii : 0,
@@ -44,7 +44,7 @@ function decode_jis( str ) {
44 case page.jis0201: 44 case page.jis0201:
45 var off = str.charCodeAt( i ) & 0xff; 45 var off = str.charCodeAt( i ) & 0xff;
46 if( off >= 0x20 && x <= 0xdf ) { 46 if( off >= 0x20 && x <= 0xdf ) {
47 append = String.fromCharCode( encoding_jis_0201[ off - 32 ] ); 47 append = String.fromCharCode( enc_jis_0201[ off - 32 ] );
48 } 48 }
49 break; 49 break;
50 case page.jis0208: 50 case page.jis0208:
@@ -54,9 +54,9 @@ function decode_jis( str ) {
54 if( x0 <= 0x52 && x1 <= 0x5d ) { 54 if( x0 <= 0x52 && x1 <= 0x5d ) {
55 var off = x0 * 94 + x1; 55 var off = x0 * 94 + x1;
56 if( off < 690 ) { 56 if( off < 690 ) {
57 append = String.fromCharCode( encoding_jis_0208_0[off] ); 57 append = String.fromCharCode( enc_jis_0208_0[off] );
58 } else if( off >= 1410 ) { 58 } else if( off >= 1410 ) {
59 append = String.fromCharCode( 19968 + encoding_jis_0208_1[off-1410] ); 59 append = String.fromCharCode( 19968 + enc_jis_0208_1[off-1410] );
60 } 60 }
61 } 61 }
62 break; 62 break;
@@ -68,10 +68,10 @@ function decode_jis( str ) {
68 return outstring; 68 return outstring;
69} 69}
70 70
71var encoding_jis_0201 = 71var enc_jis_0201 =
72[65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,165,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,8254,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65377,65378,65379,65380,65381,65382,65383,65384,65385,65386,65387,65388,65389,65390,65391,65392,65393,65394,65395,65396,65397,65398,65399,65400,65401,65402,65403,65404,65405,65406,65407,65408,65409,65410,65411,65412,65413,65414,65415,65416,65417,65418,65419,65420,65421,65422,65423,65424,65425,65426,65427,65428,65429,65430,65431,65432,65433,65434,65435,65436,65437,65438,65439]; 72[65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,165,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,8254,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65533,65377,65378,65379,65380,65381,65382,65383,65384,65385,65386,65387,65388,65389,65390,65391,65392,65393,65394,65395,65396,65397,65398,65399,65400,65401,65402,65403,65404,65405,65406,65407,65408,65409,65410,65411,65412,65413,65414,65415,65416,65417,65418,65419,65420,65421,65422,65423,65424,65425,65426,65427,65428,65429,65430,65431,65432,65433,65434,65435,65436,65437,65438,65439];
73 73
74var encoding_jis_0208_0 = 74var enc_jis_0208_0 =
75[12288,12289,12290,65292,65294,12539,65306,65307,65311,65281,12443,12444,180,65344,168,65342,65507,65343,12541,12542,12445,12446,12291,20189,12293, 75[12288,12289,12290,65292,65294,12539,65306,65307,65311,65281,12443,12444,180,65344,168,65342,65507,65343,12541,12542,12445,12446,12291,20189,12293,
7612294,12295,12540,8213,8208,65295,92,12316,8214,65372,8230,8229,8216,8217,8220,8221,65288,65289,12308,12309,65339,65341,65371,65373,12296, 7612294,12295,12540,8213,8208,65295,92,12316,8214,65372,8230,8229,8216,8217,8220,8221,65288,65289,12308,12309,65339,65341,65371,65373,12296,
7712297,12298,12299,12300,12301,12302,12303,12304,12305,65291,8722,177,215,247,65309,8800,65308,65310,8806,8807,8734,8756,9794,9792,176, 7712297,12298,12299,12300,12301,12302,12303,12304,12305,65291,8722,177,215,247,65309,8800,65308,65310,8806,8807,8734,8756,9794,9792,176,
@@ -101,7 +101,7 @@ var encoding_jis_0208_0 =
10165533,65533,65533,65533,65533,65533,65533,65533,9472,9474,9484,9488,9496,9492,9500,9516,9508,9524,9532,9473,9475,9487,9491,9499,9495, 10165533,65533,65533,65533,65533,65533,65533,65533,9472,9474,9484,9488,9496,9492,9500,9516,9508,9524,9532,9473,9475,9487,9491,9499,9495,
1029507,9523,9515,9531,9547,9504,9519,9512,9527,9535,9501,9520,9509,9528,9538]; 1029507,9523,9515,9531,9547,9504,9519,9512,9527,9535,9501,9520,9509,9528,9538];
103 103
104var encoding_jis_0208_1 = 104var enc_jis_0208_1 =
105[156,1814,3075,18495,1728,4891,5416,3062,16930,13941,13596,11344,4778,5601,8229,6125,13926,13478,19957,6803,2343,6049,5233,3483,3024, 105[156,1814,3075,18495,1728,4891,5416,3062,16930,13941,13596,11344,4778,5601,8229,6125,13926,13478,19957,6803,2343,6049,5233,3483,3024,
10614459,19188,12130,12222,19854,5142,11935,15031,3465,4277,5385,6295,6728,18375,18829,6479,229,266,333,413,585,2290,2871,3028,3073,3593, 10614459,19188,12130,12222,19854,5142,11935,15031,3465,4277,5385,6295,6728,18375,18829,6479,229,266,333,413,585,2290,2871,3028,3073,3593,
1074831,4879,4976,6163,6917,8890,10063,10096,11259,12205,12271,12995,13838,14947,15618,16981,17018,1339,149,165,2527,12978,17089,10991,0, 1074831,4879,4976,6163,6917,8890,10063,10096,11259,12205,12271,12995,13838,14947,15618,16981,17018,1339,149,165,2527,12978,17089,10991,0,