/***************************************************************************************************
          PRINCIPALLY POLARIZED SQUARES OF ELLIPTIC CURVES WITH FIELD OF MODULI EQUAL TO Q
                    ALEXANDRE GÉLIN, EVERETT W. HOWE, AND CHRISTOPHE RITZENTHALER
***************************************************************************************************/

// This is the list of all the polarizations on the maximal order of discriminant Disc.
// It has been computed once using the file Polarizations.m and stored in this function.
// A triplet [x,y,z] corresponds to the polarization \phi_0 \times [x,z;\bar z,y].

polar:=function(Disc,w)
    case Disc:
    when -163:
	return [ [2, 21, w],[3, 14, w], [4, 11, w + 1], [5, 33, 2*w], [6, 7, w], [6, 8, w + 2], [7, 24, 2*w + 1] ];
    when -67:
	return [ [2, 9, w], [3, 6, w], [4, 5, w + 1] ];
    when -43:
	return [ [2, 6, w], [3, 4, w] ];
    when -19:
	return [ [2, 3, w] ];
    when -11:
	return [ [2, 2, w] ];
    when -8:
	return [ [2, 2, w + 1] ];
    when -7:
	return [];
    when -4:
	return [];
    when -3:
	return [];
    when -427:
	return [ [2, 54, w], [3, 36, w], [4, 27, w], [5, 22, w + 1], [6, 18, w], [6, 19, w + 2], [8, 15, w + 3], [8, 121, 3*w + 1], [9, 12, w], [9, 48, 2*w + 1], [9, 190, 4*w - 1], [10, 11, w + 1], [10, 12, w + 3], [11, 39, 2*w], [11, 88, 3*w + 1], [12, 225, 5*w + 3] ];
    when -403:
	return [ [2, 51, w], [3, 34, w], [4, 26, w + 1], [5, 81, 2*w], [6, 17, w], [6, 18, w + 2], [7, 59, 2*w + 2], [7, 130, 3*w], [8, 13, w + 1], [8, 115, 3*w + 2], [9, 12, w + 2], [9, 45, 2*w], [9, 181, 4*w + 2], [10, 91, 3*w], [10, 92, 3*w + 2], [11, 12, w + 5], [11, 39, 2*w + 4], [12, 211, 5*w + 1] ];
    when -267:
	return [ [2, 34, w], [4, 17, w], [5, 14, w + 1], [7, 10, w + 1], [7, 86, 3*w - 1], [8, 10, w + 3], [8, 76, 3*w + 1], [13, 85, 4*w + 4] ];
    when -235:
	return [ [2, 30, w], [3, 20, w], [4, 15, w], [5, 12, w], [5, 48, 2*w + 1], [6, 10, w], [6, 11, w + 2], [7, 35, 2*w + 2], [7, 76, 3*w], [8, 9, w + 3], [8, 67, 3*w + 1], [9, 28, 2*w + 3] ];
    when -232:
	return [ [2, 30, w + 1], [3, 20, w + 1], [4, 15, w + 1], [5, 12, w + 1], [6, 10, w + 1], [7, 9, w + 2], [7, 76, 3*w + 3], [9, 26, 2*w + 1], [11, 132, 5*w + 1] ];
    when -187:
	return [ [2, 24, w], [3, 16, w], [4, 12, w], [5, 10, w + 1], [6, 8, w], [6, 9, w + 2], [7, 27, 2*w], [7, 62, 3*w + 2] ];
    when -148:
	return [ [2, 19, w], [3, 13, w + 1], [5, 30, 2*w + 1], [6, 7, w + 2], [7, 49, 3*w + 3] ];
    when -123:
	return [ [2, 16, w], [4, 8, w], [5, 25, 2*w], [7, 19, 2*w + 2] ];
    when -115:
	return [ [2, 15, w], [3, 10, w], [4, 8, w + 1], [5, 6, w], [5, 24, 2*w + 1], [6, 6, w + 2] ];
    when -91:
	return [ [2, 12, w], [3, 8, w], [4, 6, w], [5, 6, w + 2] ];
    when -88:
	return [ [2, 12, w + 1], [3, 8, w + 1], [4, 6, w + 1], [5, 18, 2*w + 1] ];
    when -52:
	return [ [2, 7, w], [3, 5, w + 1] ];
    when -51:
	return [ [2, 7, w], [4, 4, w + 1] ];
    when -40:
	return [ [2, 6, w + 1], [3, 4, w + 1] ];
    when -35:
	return [ [2, 5, w], [3, 4, w + 1] ];
    when -24:
	return [ [2, 4, w + 1] ];
    when -20:
	return [ [2, 3, w] ];
    when -15:
	return [];
    when -1435:
	return [ [2, 180, w], [3, 120, w], [4, 90, w], [5, 72, w], [5, 288, 2*w + 1], [6, 60, w], [6, 61, w + 2], [8, 45, w], [8, 404, 3*w], [9, 40, w], [9, 160, 2*w + 1], [9, 638, 4*w - 1], [10, 36, w], [10, 38, w + 4], [10, 323, 3*w - 1], [10, 325, 3*w + 3], [11, 132, 2*w + 3], [11, 522, 4*w - 1], [11, 816, 5*w], [12, 30, w], [12, 31, w + 3], [12, 748, 5*w], [12, 750, 5*w + 3], [13, 30, w + 5], [13, 250, 3*w + 3], [13, 690, 5*w - 2], [15, 24, w], [15, 26, w + 5], [15, 96, 2*w + 1], [15, 99, 2*w + 6], [15, 383, 4*w], [15, 386, 4*w + 5], [15, 1172, 7*w - 3], [15, 1174, 7*w + 2], [16, 26, w + 7], [16, 202, 3*w], [16, 561, 5*w], [16, 1100, 7*w + 1], [17, 85, 2*w + 2], [17, 190, 3*w - 1], [17, 528, 5*w], [17, 760, 6*w - 1], [18, 20, w], [18, 24, w + 8], [18, 499, 5*w + 1], [18, 500, 5*w + 3], [18, 977, 7*w - 1], [18, 979, 7*w + 3], [19, 20, w + 4], [19, 170, 3*w - 1], [19, 303, 4*w + 2], [19, 680, 6*w - 1], [19, 930, 7*w + 6], [20, 163, 3*w + 4], [20, 166, 3*w + 8], [20, 879, 7*w - 3], [20, 1453, 9*w - 4], [20, 1454, 9*w], [22, 411, 5*w + 6], [22, 1321, 9*w - 3], [23, 64, 2*w + 5], [26, 351, 5*w + 10], [30, 2028, 13*w + 8], [39, 598, 8*w + 15] ];
    when -1012:
	return [ [2, 127, w], [3, 85, w + 1], [5, 51, w + 1], [6, 43, w + 2], [7, 146, 2*w + 3], [7, 326, 3*w + 2], [9, 30, w + 4], [9, 113, 2*w + 2], [9, 450, 4*w + 1], [10, 27, w + 4], [13, 78, 2*w + 1], [13, 178, 3*w + 6], [13, 701, 6*w + 2], [14, 163, 3*w + 2], [14, 453, 5*w + 4], [15, 17, w + 1], [15, 18, w + 4], [15, 270, 4*w + 1], [15, 271, 4*w + 4], [17, 134, 3*w], [17, 375, 5*w + 7], [17, 954, 8*w + 5], [18, 689, 7*w + 2], [19, 653, 7*w + 3], [19, 1082, 9*w + 8], [21, 302, 5*w + 4], [27, 461, 7*w + 7], [43, 2605, 21*w + 21] ];
    when -795:
	return [ [2, 100, w], [4, 50, w], [5, 40, w], [5, 160, 2*w + 1], [7, 115, 2*w + 2], [7, 256, 3*w], [8, 25, w], [8, 224, 3*w], [10, 20, w], [10, 22, w + 4], [10, 179, 3*w - 1], [10, 181, 3*w + 3], [11, 20, w + 4], [11, 290, 4*w + 1], [11, 452, 5*w - 1], [13, 64, 2*w + 5], [13, 140, 3*w + 4], [13, 245, 4*w], [14, 128, 3*w], [14, 130, 3*w + 4], [14, 355, 5*w - 2], [14, 358, 5*w + 4], [16, 16, w + 7], [16, 610, 7*w + 1], [17, 106, 3*w + 2], [19, 380, 6*w + 5], [23, 700, 9*w - 4], [35, 826, 12*w + 11] ];
    when -760:
	return [ [2, 96, w + 1], [3, 64, w + 1], [4, 48, w + 1], [5, 39, w + 2], [5, 153, 2*w + 2], [6, 32, w + 1], [7, 110, 2*w + 3], [7, 245, 3*w + 2], [8, 24, w + 1], [8, 25, w + 3], [8, 214, 3*w + 1], [8, 215, 3*w + 3], [9, 23, w + 4], [9, 85, 2*w + 2], [9, 338, 4*w + 1], [10, 20, w + 3], [10, 172, 3*w + 3], [11, 70, 2*w + 3], [11, 157, 3*w + 4], [11, 432, 5*w + 1], [12, 16, w + 1], [12, 18, w + 5], [12, 396, 5*w + 1], [12, 398, 5*w + 5], [13, 15, w + 2], [13, 234, 4*w + 1], [13, 529, 6*w + 6], [14, 124, 3*w + 5], [14, 340, 5*w + 3], [15, 16, w + 7], [15, 51, 2*w + 2], [15, 54, 2*w + 7], [15, 203, 4*w + 2], [15, 206, 4*w + 7], [15, 621, 7*w + 2], [16, 107, 3*w + 1], [16, 582, 7*w + 1], [21, 231, 5*w + 10], [21, 905, 10*w + 2], [24, 198, 5*w + 1], [33, 1474, 16*w + 1] ];
    when -715:
	return [ [2, 90, w], [3, 60, w], [4, 45, w], [5, 36, w], [5, 144, 2*w + 1], [6, 30, w], [6, 31, w + 2], [7, 26, w + 1], [7, 230, 3*w - 1], [8, 24, w + 3], [8, 202, 3*w + 1], [9, 20, w], [9, 80, 2*w + 1], [9, 318, 4*w - 1], [10, 18, w], [10, 20, w + 4], [10, 161, 3*w - 1], [10, 163, 3*w + 3], [12, 15, w], [12, 16, w + 3], [12, 373, 5*w], [12, 375, 5*w + 3], [13, 14, w + 1], [13, 57, 2*w + 4], [13, 124, 3*w], [13, 222, 4*w + 3], [13, 344, 5*w - 1], [13, 497, 6*w + 2], [14, 15, w + 5], [14, 115, 3*w - 1], [14, 118, 3*w + 5], [15, 48, 2*w + 1], [15, 51, 2*w + 6], [15, 194, 4*w + 5], [15, 584, 7*w - 3], [21, 141, 4*w + 8] ];
    when -708:
	return [ [2, 89, w], [5, 142, 2*w + 1], [7, 26, w + 2], [7, 229, 3*w + 3], [10, 161, 3*w + 4], [11, 17, w + 3], [11, 145, 3*w + 1], [11, 259, 4*w + 4], [13, 14, w + 2], [13, 218, 4*w + 1], [13, 493, 6*w + 6], [14, 115, 3*w + 4], [17, 94, 3*w + 2], [19, 758, 9*w + 8], [31, 571, 10*w] ];
    when -627:
	return [ [2, 79, w], [4, 40, w + 1], [5, 32, w + 1], [7, 91, 2*w + 2], [7, 202, 3*w], [8, 20, w + 1], [8, 178, 3*w + 2], [10, 16, w + 1], [10, 17, w + 3], [13, 49, 2*w + 2], [13, 193, 4*w - 2], [13, 302, 5*w], [14, 103, 3*w + 4], [14, 280, 5*w - 2], [14, 283, 5*w + 4], [28, 460, 9*w + 9] ];
    when -595:
	return [ [2, 75, w], [3, 50, w], [4, 38, w + 1], [5, 30, w], [5, 120, 2*w + 1], [6, 25, w], [6, 26, w + 2], [8, 19, w + 1], [8, 169, 3*w + 2], [9, 18, w + 3], [9, 68, 2*w + 3], [9, 265, 4*w], [10, 15, w], [10, 17, w + 4], [10, 134, 3*w - 1], [10, 136, 3*w + 3], [11, 55, 2*w + 2], [11, 122, 3*w], [11, 340, 5*w + 2], [12, 13, w + 2], [12, 15, w + 5], [12, 310, 5*w - 2], [12, 311, 5*w + 1], [13, 104, 3*w + 2], [13, 412, 6*w - 3], [15, 40, 2*w + 1], [15, 43, 2*w + 6], [18, 405, 7*w - 3] ];
    when -555:
	return [ [2, 70, w], [4, 35, w], [5, 28, w], [5, 112, 2*w + 1], [7, 20, w], [7, 80, 2*w + 1], [8, 19, w + 3], [8, 157, 3*w + 1], [10, 14, w], [10, 16, w + 4], [10, 125, 3*w - 1], [10, 127, 3*w + 3], [11, 52, 2*w + 3], [11, 202, 4*w - 1], [11, 316, 5*w], [13, 14, w + 6], [13, 44, 2*w + 3], [14, 250, 5*w + 3], [17, 400, 7*w - 3], [25, 361, 8*w + 8] ];
    when -532:
	return [ [2, 67, w], [3, 45, w + 1], [5, 27, w + 1], [6, 23, w + 2], [9, 15, w + 1], [9, 61, 2*w + 4], [9, 237, 4*w + 2], [10, 15, w + 4], [11, 13, w + 3], [11, 109, 3*w + 1], [11, 195, 4*w + 4], [13, 41, 2*w], [15, 143, 4*w + 4], [23, 705, 11*w + 11] ];
    when -520:
	return [ [2, 66, w + 1], [3, 44, w + 1], [4, 33, w + 1], [5, 27, w + 2], [5, 105, 2*w + 2], [6, 22, w + 1], [7, 20, w + 3], [7, 75, 2*w + 2], [9, 15, w + 2], [9, 58, 2*w + 1], [9, 233, 4*w + 4], [10, 14, w + 3], [10, 118, 3*w + 3], [11, 12, w + 1], [11, 190, 4*w + 3], [11, 297, 5*w + 4], [12, 13, w + 5], [12, 271, 5*w + 1], [12, 273, 5*w + 5], [13, 42, 2*w + 5], [13, 92, 3*w + 5], [15, 142, 4*w + 7], [15, 425, 7*w + 2], [18, 354, 7*w + 1], [23, 684, 11*w + 1] ];
    when -483:
	return [ [2, 61, w], [4, 31, w + 1], [5, 97, 2*w], [8, 16, w + 2], [8, 136, 3*w - 1], [10, 109, 3*w], [10, 110, 3*w + 2], [11, 44, 2*w - 1], [11, 100, 3*w + 2], [11, 178, 4*w + 3], [13, 40, 2*w + 5], [22, 274, 7*w + 7] ];
    when -435:
	return [ [2, 55, w], [4, 28, w + 1], [5, 22, w], [5, 88, 2*w + 1], [7, 16, w + 1], [7, 140, 3*w - 1], [8, 14, w + 1], [8, 124, 3*w + 2], [10, 11, w], [10, 13, w + 4], [10, 98, 3*w - 1], [10, 100, 3*w + 3], [11, 40, 2*w + 1], [11, 250, 5*w + 3], [14, 73, 3*w + 5], [20, 271, 7*w + 6] ];
    when -408:
	return [ [2, 52, w + 1], [4, 26, w + 1], [5, 82, 2*w + 1], [7, 16, w + 3], [7, 59, 2*w + 2], [8, 13, w + 1], [8, 14, w + 3], [8, 115, 3*w + 1], [8, 116, 3*w + 3], [10, 92, 3*w + 1], [11, 38, 2*w + 3], [11, 85, 3*w + 4], [11, 232, 5*w + 1], [20, 250, 7*w + 1] ];
    when -372:
	return [ [2, 47, w], [5, 19, w + 1], [7, 14, w + 2], [7, 121, 3*w + 3], [10, 11, w + 4], [11, 34, 2*w + 1], [11, 77, 3*w + 3], [17, 197, 6*w] ];
    when -340:
	return [ [2, 43, w], [3, 29, w + 1], [5, 18, w + 2], [5, 69, 2*w + 2], [6, 15, w + 2], [7, 50, 2*w + 3], [7, 110, 3*w + 2], [9, 10, w + 2], [9, 38, 2*w + 1], [9, 153, 4*w + 4], [10, 77, 3*w + 2], [11, 31, 2*w], [11, 70, 3*w + 2], [15, 281, 7*w + 7] ];
    when -312:
	return [ [2, 40, w + 1], [4, 20, w + 1], [5, 16, w + 1], [7, 46, 2*w + 3], [7, 101, 3*w + 2], [8, 10, w + 1], [8, 11, w + 3], [8, 88, 3*w + 1], [8, 89, 3*w + 3], [11, 64, 3*w + 1], [16, 122, 5*w + 1] ];
    when -280:
	return [ [2, 36, w + 1], [3, 24, w + 1], [4, 18, w + 1], [5, 15, w + 2], [5, 57, 2*w + 2], [6, 12, w + 1], [8, 9, w + 1], [8, 10, w + 3], [8, 79, 3*w + 1], [8, 80, 3*w + 3], [9, 33, 2*w + 4], [9, 125, 4*w + 2], [12, 146, 5*w + 1], [13, 194, 6*w + 1] ];
    when -228:
	return [ [2, 29, w], [5, 46, 2*w + 1], [7, 34, 2*w + 3], [7, 74, 3*w + 2], [11, 83, 4*w] ];
    when -195:
	return [ [2, 25, w], [4, 13, w + 1], [5, 10, w], [5, 40, 2*w + 1], [7, 8, w + 2], [7, 28, 2*w - 1], [8, 55, 3*w - 1], [10, 46, 3*w + 3] ];
    when -168:
	return [ [2, 22, w + 1], [4, 11, w + 1], [5, 34, 2*w + 1], [10, 38, 3*w + 1] ];
    when -132:
	return [ [2, 17, w], [5, 7, w + 1], [7, 19, 2*w] ];
    when -120:
	return [ [2, 16, w + 1], [4, 8, w + 1], [5, 7, w + 2], [5, 25, 2*w + 2], [8, 34, 3*w + 1] ];
    when -84:
	return [ [2, 11, w], [5, 17, 2*w] ];
    when -3315:
	return [ [2, 415, w], [4, 208, w + 1], [5, 166, w], [5, 664, 2*w + 1], [7, 475, 2*w + 2], [7, 1066, 3*w], [8, 104, w + 1], [8, 934, 3*w + 2], [10, 83, w], [10, 85, w + 4], [10, 746, 3*w - 1], [10, 748, 3*w + 3], [11, 76, w + 2], [11, 680, 3*w + 3], [11, 1207, 4*w + 2], [13, 64, w + 1], [13, 257, 2*w + 4], [13, 574, 3*w], [13, 1022, 4*w + 3], [13, 1594, 5*w - 1], [13, 2297, 6*w + 2], [14, 533, 3*w], [14, 535, 3*w + 4], [14, 1480, 5*w - 2], [14, 1483, 5*w + 4], [16, 52, w + 1], [16, 467, 3*w + 2], [16, 1295, 5*w - 2], [16, 2540, 7*w + 2], [17, 50, w + 4], [17, 196, 2*w + 3], [17, 440, 3*w + 3], [17, 781, 4*w + 2], [17, 1220, 5*w + 2], [17, 1756, 6*w + 1], [17, 2390, 7*w + 1], [17, 3121, 8*w], [19, 44, w + 2], [19, 175, 2*w + 2], [19, 698, 4*w - 1], [19, 2138, 7*w], [19, 2795, 8*w + 4], [20, 43, w + 5], [20, 46, w + 9], [20, 373, 3*w - 1], [20, 374, 3*w + 3], [20, 2032, 7*w + 2], [20, 2035, 7*w + 6], [20, 3358, 9*w + 1], [20, 3361, 9*w + 5], [22, 38, w + 2], [22, 41, w + 8], [22, 340, 3*w + 3], [22, 341, 3*w + 5], [22, 1846, 7*w - 2], [22, 1850, 7*w + 6], [23, 40, w + 9], [23, 904, 5*w + 6], [23, 1300, 6*w + 5], [23, 2920, 9*w + 1], [23, 3604, 10*w - 1], [23, 4360, 11*w - 5], [25, 34, w + 4], [25, 133, 2*w + 2], [25, 302, 3*w + 8], [25, 533, 4*w + 6], [25, 1196, 6*w + 5], [25, 1628, 7*w + 6], [25, 2122, 8*w - 1], [25, 2686, 9*w], [25, 4012, 11*w - 1], [25, 4774, 12*w - 3], [26, 32, w + 1], [26, 37, w + 11], [26, 287, 3*w], [26, 292, 3*w + 10], [26, 797, 5*w - 1], [26, 802, 5*w + 9], [26, 1562, 7*w - 2], [26, 1567, 7*w + 8], [26, 2582, 9*w - 3], [26, 2587, 9*w + 7], [26, 3857, 11*w - 4], [26, 3862, 11*w + 6], [28, 269, 3*w + 7], [28, 272, 3*w + 11], [28, 740, 5*w - 2], [28, 742, 5*w + 5], [28, 2399, 9*w + 2], [28, 2404, 9*w + 9], [28, 3584, 11*w + 3], [28, 3587, 11*w + 7], [29, 34, w + 12], [29, 1033, 6*w + 8], [29, 1829, 8*w - 4], [29, 2860, 10*w + 3], [29, 3458, 11*w - 4], [29, 4118, 12*w + 3], [29, 5608, 14*w + 7], [31, 107, 2*w], [31, 242, 3*w + 5], [31, 1310, 7*w - 3], [31, 1711, 8*w - 4], [31, 3850, 12*w - 3], [31, 5240, 14*w - 5], [32, 655, 5*w + 13], [32, 1270, 7*w + 2], [32, 2098, 9*w - 2], [32, 5830, 15*w + 2], [34, 224, 3*w + 11], [34, 1979, 9*w + 8], [34, 2954, 11*w + 7], [34, 5489, 15*w + 5], [35, 103, 2*w + 16], [35, 214, 3*w + 4], [35, 2872, 11*w + 10], [35, 3418, 12*w + 11], [37, 560, 5*w - 2], [38, 6307, 17*w + 4], [40, 196, 3*w + 18], [40, 3511, 13*w + 13], [43, 5570, 17*w - 8], [46, 452, 5*w + 6], [56, 5356, 19*w + 18], [59, 1408, 10*w + 9], [70, 6280, 23*w + 23], [86, 2806, 17*w + 34], [140, 13111, 47*w + 46] ];
    when -3003:
	return [ [2, 376, w], [4, 188, w], [5, 601, 2*w], [8, 94, w], [8, 845, 3*w], [10, 676, 3*w], [10, 677, 3*w + 2], [13, 58, w + 1], [13, 233, 2*w + 4], [13, 520, 3*w], [13, 926, 4*w + 3], [13, 1444, 5*w - 1], [13, 2081, 6*w + 2], [16, 47, w], [16, 425, 3*w + 5], [16, 1175, 5*w + 3], [16, 2300, 7*w], [17, 46, w + 5], [17, 400, 3*w + 5], [17, 1592, 6*w + 3], [17, 2164, 7*w - 3], [19, 160, 2*w + 5], [19, 356, 3*w + 1], [19, 988, 5*w - 1], [19, 1423, 6*w], [19, 1940, 7*w + 5], [20, 338, 3*w], [20, 340, 3*w + 5], [20, 1840, 7*w], [20, 1843, 7*w + 5], [23, 34, w + 5], [23, 131, 2*w + 2], [23, 523, 4*w + 2], [23, 820, 5*w + 7], [23, 1600, 7*w], [23, 2644, 9*w - 4], [25, 125, 2*w + 10], [25, 272, 3*w + 5], [25, 1472, 7*w], [25, 1922, 8*w - 3], [25, 4325, 12*w - 2], [26, 29, w + 1], [26, 34, w + 11], [26, 260, 3*w], [26, 265, 3*w + 10], [26, 722, 5*w - 1], [26, 727, 5*w + 9], [26, 1415, 7*w - 2], [26, 1420, 7*w + 8], [26, 2339, 9*w - 3], [26, 2344, 9*w + 7], [26, 3494, 11*w - 4], [26, 3499, 11*w + 6], [29, 421, 4*w + 12], [29, 932, 6*w - 3], [29, 1270, 7*w + 3], [29, 1657, 8*w - 2], [29, 2098, 9*w + 1], [29, 2593, 10*w + 6], [31, 32, w + 15], [31, 218, 3*w - 1], [31, 3490, 12*w + 3], [31, 4747, 14*w - 4], [32, 5281, 15*w + 1], [34, 2678, 11*w + 9], [37, 326, 4*w + 5], [37, 5864, 17*w - 8], [41, 4120, 15*w - 7], [52, 4184, 17*w + 16], [58, 8104, 25*w + 16], [65, 5605, 22*w + 20], [127, 10459, 42*w + 42] ];
    when -1995:
	return [ [2, 250, w], [4, 125, w], [5, 100, w], [5, 400, 2*w + 1], [8, 64, w + 3], [8, 562, 3*w + 1], [10, 50, w], [10, 52, w + 4], [10, 449, 3*w - 1], [10, 451, 3*w + 3], [11, 46, w + 2], [11, 410, 3*w + 3], [11, 727, 4*w + 2], [13, 40, w + 4], [13, 614, 4*w - 1], [13, 1384, 6*w + 3], [16, 32, w + 3], [16, 281, 3*w + 1], [16, 782, 5*w + 4], [16, 1531, 7*w + 4], [17, 470, 4*w + 1], [17, 736, 5*w + 4], [17, 1060, 6*w + 5], [17, 1438, 7*w - 1], [20, 25, w], [20, 26, w + 4], [20, 226, 3*w + 4], [20, 229, 3*w + 8], [20, 1222, 7*w - 3], [20, 1223, 7*w + 1], [20, 2020, 9*w - 4], [20, 2021, 9*w], [22, 23, w + 2], [22, 26, w + 8], [22, 205, 3*w + 3], [22, 206, 3*w + 5], [22, 1111, 7*w - 2], [22, 1115, 7*w + 6], [23, 200, 3*w + 9], [23, 347, 4*w - 2], [23, 544, 5*w + 4], [23, 1390, 8*w + 3], [23, 2624, 11*w - 4], [25, 80, 2*w + 1], [25, 325, 4*w + 10], [25, 724, 6*w + 9], [25, 1616, 9*w - 4], [25, 2414, 11*w - 5], [26, 940, 7*w - 3], [29, 625, 6*w + 10], [34, 1783, 11*w + 11], [37, 488, 6*w + 7], [40, 3613, 17*w + 11], [44, 2560, 15*w + 13], [53, 4150, 21*w - 10], [85, 4621, 28*w + 28] ];
    when -1848:
	return [ [2, 232, w + 1], [4, 116, w + 1], [5, 370, 2*w + 1], [8, 58, w + 1], [8, 59, w + 3], [8, 520, 3*w + 1], [8, 521, 3*w + 3], [10, 416, 3*w + 1], [13, 145, 2*w + 6], [13, 320, 3*w + 1], [13, 569, 4*w + 2], [16, 29, w + 1], [16, 32, w + 7], [16, 260, 3*w + 1], [16, 263, 3*w + 7], [16, 722, 5*w + 1], [16, 725, 5*w + 7], [16, 1415, 7*w + 1], [16, 1418, 7*w + 7], [17, 31, w + 8], [17, 109, 2*w + 2], [17, 437, 4*w + 6], [17, 680, 5*w + 3], [19, 391, 4*w + 6], [19, 608, 5*w + 1], [19, 878, 6*w + 7], [19, 1192, 7*w + 3], [19, 1973, 9*w + 8], [20, 208, 3*w + 1], [20, 212, 3*w + 9], [20, 1132, 7*w + 1], [20, 1136, 7*w + 9], [23, 181, 3*w + 2], [23, 323, 4*w + 6], [23, 505, 5*w + 8], [23, 985, 7*w + 4], [23, 1286, 8*w + 3], [23, 2014, 10*w + 11], [25, 74, 2*w + 1], [26, 160, 3*w + 1], [32, 130, 3*w + 1], [32, 1747, 11*w + 1], [40, 1952, 13*w + 1], [40, 3338, 17*w + 1], [47, 5200, 23*w + 1], [80, 4210, 27*w + 1] ];
    when -1540:
	return [ [2, 193, w], [3, 129, w + 1], [5, 78, w + 2], [5, 309, 2*w + 2], [6, 65, w + 2], [9, 43, w + 1], [9, 173, 2*w + 4], [9, 685, 4*w + 2], [10, 39, w + 2], [10, 347, 3*w + 2], [13, 30, w + 2], [13, 474, 4*w + 1], [13, 1069, 6*w + 6], [15, 26, w + 2], [15, 29, w + 7], [15, 103, 2*w + 2], [15, 106, 2*w + 7], [15, 411, 4*w + 2], [15, 414, 4*w + 7], [15, 1258, 7*w + 2], [15, 1261, 7*w + 7], [17, 206, 3*w + 6], [17, 570, 5*w + 8], [17, 1110, 7*w + 2], [17, 1450, 8*w + 3], [18, 25, w + 8], [18, 535, 5*w + 2], [18, 1049, 7*w + 4], [19, 83, 2*w + 6], [19, 185, 3*w + 7], [19, 510, 5*w + 8], [19, 730, 6*w + 3], [19, 993, 7*w + 1], [23, 67, 2*w], [23, 1674, 10*w + 1], [23, 2029, 11*w + 9], [25, 62, 2*w + 3], [25, 139, 3*w + 3], [25, 557, 6*w + 8], [25, 1250, 9*w + 8], [29, 478, 6*w + 1], [31, 1006, 9*w], [39, 3573, 19*w + 19], [41, 601, 8*w], [41, 942, 10*w + 11], [65, 6081, 32*w + 32] ];
    when -1428:
	return [ [2, 179, w], [5, 286, 2*w + 1], [10, 323, 3*w + 4], [11, 34, w + 4], [11, 130, 2*w + 1], [11, 293, 3*w + 3], [13, 110, 2*w + 1], [13, 250, 3*w + 6], [13, 989, 6*w + 2], [17, 22, w + 4], [17, 85, 2*w + 4], [17, 190, 3*w + 4], [17, 337, 4*w + 4], [17, 526, 5*w + 4], [17, 757, 6*w + 4], [17, 1030, 7*w + 4], [17, 1345, 8*w + 4], [19, 170, 3*w + 4], [19, 302, 4*w + 5], [19, 470, 5*w + 2], [19, 925, 7*w + 9], [19, 1522, 9*w], [22, 149, 3*w + 8], [23, 761, 7*w + 3], [25, 914, 8*w + 1], [29, 197, 4*w], [37, 3134, 18*w + 17], [61, 2341, 20*w] ];
    when -1380:
	return [ [2, 173, w], [5, 70, w + 2], [5, 277, 2*w + 2], [7, 50, w + 2], [7, 445, 3*w + 3], [10, 35, w + 2], [10, 311, 3*w + 2], [11, 127, 2*w + 4], [11, 502, 4*w + 1], [11, 785, 5*w + 3], [13, 109, 2*w + 6], [13, 239, 3*w + 1], [13, 425, 4*w + 2], [14, 25, w + 2], [14, 223, 3*w + 4], [17, 85, 2*w + 8], [17, 325, 4*w + 2], [17, 995, 7*w + 3], [17, 1301, 8*w + 6], [19, 74, 2*w + 5], [19, 454, 5*w], [19, 658, 6*w + 9], [19, 890, 7*w + 2], [19, 1163, 8*w + 4], [22, 395, 5*w + 8], [25, 221, 4*w + 2], [25, 1993, 12*w + 12], [26, 1075, 9*w + 2], [29, 298, 5*w + 4], [29, 2014, 13*w + 10], [35, 2857, 17*w + 17], [37, 758, 9*w + 10], [37, 2098, 15*w], [59, 2339, 20*w] ];
    when -1320:
	return [ [2, 166, w + 1], [4, 83, w + 1], [5, 67, w + 2], [5, 265, 2*w + 2], [7, 190, 2*w + 3], [7, 425, 3*w + 2], [10, 34, w + 3], [10, 298, 3*w + 3], [13, 409, 4*w + 6], [13, 635, 5*w + 2], [13, 914, 6*w + 1], [14, 214, 3*w + 5], [14, 590, 5*w + 3], [17, 20, w + 3], [17, 175, 3*w + 2], [17, 701, 6*w + 6], [17, 955, 7*w + 8], [19, 20, w + 7], [19, 70, 2*w + 3], [19, 278, 4*w + 1], [19, 853, 7*w + 6], [19, 1115, 8*w + 8], [20, 151, 3*w + 7], [20, 809, 7*w + 3], [20, 1337, 9*w + 3], [20, 1339, 9*w + 7], [25, 217, 4*w + 12], [25, 481, 6*w + 12], [25, 845, 8*w + 2], [25, 1901, 12*w + 2], [26, 622, 7*w + 1], [29, 1138, 10*w + 1], [35, 772, 9*w + 17], [35, 2725, 17*w + 2], [38, 1954, 15*w + 1], [58, 2054, 19*w + 1] ];
    when -1155:
	return [ [2, 145, w], [4, 73, w + 1], [5, 58, w], [5, 232, 2*w + 1], [8, 37, w + 2], [8, 325, 3*w - 1], [10, 29, w], [10, 31, w + 4], [10, 260, 3*w - 1], [10, 262, 3*w + 3], [13, 89, 2*w], [13, 200, 3*w - 1], [13, 800, 6*w - 1], [16, 20, w + 5], [16, 166, 3*w + 6], [16, 452, 5*w + 1], [16, 887, 7*w + 3], [17, 68, 2*w - 1], [17, 428, 5*w + 5], [17, 613, 6*w + 2], [17, 1090, 8*w + 3], [19, 20, w + 9], [19, 380, 5*w - 2], [19, 974, 8*w + 1], [20, 712, 7*w + 6], [20, 1171, 9*w + 1], [20, 1174, 9*w + 5], [23, 202, 4*w + 3], [25, 566, 7*w - 3], [25, 745, 8*w + 8], [32, 1525, 13*w - 6], [50, 1681, 17*w + 16] ];
    when -1092:
	return [ [2, 137, w], [5, 55, w + 1], [10, 29, w + 4], [11, 25, w + 1], [11, 398, 4*w + 3], [11, 622, 5*w + 4], [13, 23, w + 5], [13, 86, 2*w + 5], [13, 191, 3*w + 5], [13, 338, 4*w + 5], [13, 527, 5*w + 5], [13, 758, 6*w + 5], [17, 19, w + 7], [17, 257, 4*w], [17, 403, 5*w + 5], [17, 787, 7*w + 1], [19, 58, 2*w + 3], [19, 706, 7*w + 6], [23, 190, 4*w + 1], [23, 1187, 10*w], [29, 463, 7*w + 7], [47, 1487, 16*w] ];
    when -840:
	return [ [2, 106, w + 1], [4, 53, w + 1], [5, 43, w + 2], [5, 169, 2*w + 2], [10, 22, w + 3], [10, 190, 3*w + 3], [11, 20, w + 3], [11, 172, 3*w + 1], [11, 307, 4*w + 4], [13, 19, w + 6], [13, 65, 2*w + 2], [13, 404, 5*w + 1], [17, 50, 2*w + 3], [17, 115, 3*w + 8], [17, 311, 5*w + 6], [17, 445, 6*w + 2], [19, 398, 6*w + 1], [22, 86, 3*w + 1], [23, 334, 6*w + 11], [23, 1105, 11*w + 2], [26, 202, 5*w + 1], [38, 934, 13*w + 1] ];
    when -660:
	return [ [2, 83, w], [5, 34, w + 2], [5, 133, 2*w + 2], [7, 25, w + 3], [7, 95, 2*w + 2], [10, 17, w + 2], [10, 149, 3*w + 2], [13, 14, w + 4], [13, 115, 3*w + 3], [13, 457, 6*w], [14, 295, 5*w + 2], [17, 41, 2*w + 6], [17, 625, 8*w + 8], [19, 139, 4*w], [19, 218, 5*w + 4], [29, 569, 10*w] ];
    when -420:
	return [ [2, 53, w], [5, 22, w + 2], [5, 85, 2*w + 2], [10, 11, w + 2], [10, 95, 3*w + 2], [11, 86, 3*w], [11, 241, 5*w + 5], [13, 74, 3*w + 4], [13, 202, 5*w], [19, 199, 6*w] ];
    when -5460:
	return [ [2, 683, w], [5, 274, w + 2], [5, 1093, 2*w + 2], [10, 137, w + 2], [10, 1229, 3*w + 2], [11, 125, w + 3], [11, 1117, 3*w + 1], [11, 1987, 4*w + 4], [13, 107, w + 5], [13, 422, 2*w + 5], [13, 947, 3*w + 5], [13, 1682, 4*w + 5], [13, 2627, 5*w + 5], [13, 3782, 6*w + 5], [17, 325, 2*w + 8], [17, 1285, 4*w + 2], [17, 3935, 7*w + 3], [17, 5141, 8*w + 6], [19, 290, 2*w + 7], [19, 650, 3*w + 8], [19, 1150, 4*w + 3], [19, 1798, 5*w + 6], [19, 4598, 8*w + 1], [22, 65, w + 8], [22, 563, 3*w + 10], [22, 3041, 7*w + 4], [23, 239, 2*w + 6], [23, 950, 4*w + 3], [23, 1489, 5*w + 11], [23, 3799, 8*w + 4], [23, 4810, 9*w + 8], [23, 5935, 10*w + 2], [25, 55, w + 3], [25, 221, 2*w + 8], [25, 494, 3*w + 8], [25, 874, 4*w + 3], [25, 1966, 6*w + 3], [25, 2678, 7*w + 8], [25, 3497, 8*w + 8], [25, 4423, 9*w + 3], [25, 6607, 11*w + 3], [25, 7865, 12*w + 8], [26, 55, w + 8], [26, 475, 3*w + 8], [26, 1315, 5*w + 8], [26, 2575, 7*w + 8], [26, 4255, 9*w + 8], [26, 6355, 11*w + 8], [29, 190, 2*w + 7], [29, 754, 4*w + 5], [29, 1178, 5*w + 6], [29, 3013, 8*w + 4], [29, 6778, 12*w + 1], [29, 7955, 13*w + 3], [29, 9229, 14*w + 10], [31, 710, 4*w + 13], [31, 1102, 5*w + 6], [31, 1586, 6*w + 5], [31, 2822, 8*w + 11], [31, 5330, 11*w + 8], [31, 6347, 12*w + 14], [31, 7442, 13*w + 4], [31, 8635, 14*w + 12], [34, 1973, 7*w + 14], [34, 3253, 9*w + 6], [34, 6785, 13*w + 2], [34, 9035, 15*w + 8], [37, 43, w + 15], [37, 593, 4*w + 10], [37, 923, 5*w + 5], [37, 1811, 7*w + 11], [37, 2365, 8*w + 12], [37, 2990, 9*w + 8], [37, 6235, 13*w + 3], [37, 8306, 15*w + 14], [37, 11953, 18*w], [38, 325, 3*w + 8], [38, 899, 5*w + 6], [38, 4355, 11*w + 18], [38, 10385, 17*w + 12], [41, 142, 2*w + 19], [41, 4030, 11*w + 8], [41, 5630, 13*w + 12], [41, 6526, 14*w + 5], [41, 7495, 15*w + 13], [41, 8530, 16*w + 17], [41, 9622, 17*w + 4], [41, 13325, 20*w + 18], [43, 127, 2*w], [43, 794, 5*w + 4], [43, 2035, 8*w + 12], [43, 3845, 11*w + 13], [43, 4574, 12*w + 11], [43, 5365, 13*w + 3], [43, 7150, 15*w + 18], [46, 5015, 13*w + 2], [46, 6677, 15*w + 4], [47, 475, 4*w + 22], [47, 1051, 6*w + 16], [47, 1870, 8*w + 23], [47, 2906, 10*w + 9], [47, 4913, 13*w + 15], [47, 7435, 16*w + 2], [53, 650, 5*w + 18], [53, 934, 6*w + 19], [53, 1262, 7*w], [53, 12469, 22*w + 14], [53, 17422, 26*w + 25], [55, 1217, 7*w + 7], [55, 4867, 14*w + 12], [55, 10946, 21*w + 8], [55, 13129, 23*w + 3], [58, 17165, 27*w + 22], [59, 589, 5*w + 25], [59, 1874, 9*w], [59, 2314, 10*w + 5], [61, 806, 6*w + 5], [65, 1345, 8*w + 8], [65, 2542, 11*w + 8], [65, 5381, 16*w + 18], [67, 8150, 20*w + 7], [94, 13955, 31*w + 2], [97, 26030, 43*w + 32], [101, 11366, 29*w], [137, 46105, 68*w + 68], [139, 7699, 28*w], [139, 12038, 35*w + 34], [229, 34429, 76*w] ];
    end case;
end function;
