using System; public static class SinCosLookupTable { public static readonly int BITS; public static readonly int MASK; public static readonly int COUNT; public static readonly int FACTOR; public static readonly int NOM_MUL; public static readonly int[] sin_table; public static readonly int[] cos_table; static SinCosLookupTable() { SinCosLookupTable.BITS = 12; SinCosLookupTable.MASK = ~(-1 << SinCosLookupTable.BITS); SinCosLookupTable.COUNT = SinCosLookupTable.MASK + 1; SinCosLookupTable.FACTOR = 10000; SinCosLookupTable.NOM_MUL = SinCosLookupTable.FACTOR * SinCosLookupTable.COUNT; SinCosLookupTable.sin_table = new int[] { 0, 15, 31, 46, 61, 77, 92, 107, 123, 138, 153, 169, 184, 199, 215, 230, 245, 261, 276, 291, 307, 322, 337, 353, 368, 383, 399, 414, 429, 445, 460, 475, 491, 506, 521, 537, 552, 567, 583, 598, 613, 629, 644, 659, 674, 690, 705, 720, 736, 751, 766, 782, 797, 812, 827, 843, 858, 873, 889, 904, 919, 934, 950, 965, 980, 995, 1011, 1026, 1041, 1056, 1072, 1087, 1102, 1117, 1133, 1148, 1163, 1178, 1194, 1209, 1224, 1239, 1255, 1270, 1285, 1300, 1315, 1331, 1346, 1361, 1376, 1391, 1407, 1422, 1437, 1452, 1467, 1482, 1498, 1513, 1528, 1543, 1558, 1573, 1589, 1604, 1619, 1634, 1649, 1664, 1679, 1695, 1710, 1725, 1740, 1755, 1770, 1785, 1800, 1815, 1830, 1845, 1861, 1876, 1891, 1906, 1921, 1936, 1951, 1966, 1981, 1996, 2011, 2026, 2041, 2056, 2071, 2086, 2101, 2116, 2131, 2146, 2161, 2176, 2191, 2206, 2221, 2236, 2251, 2266, 2281, 2296, 2311, 2326, 2340, 2355, 2370, 2385, 2400, 2415, 2430, 2445, 2460, 2474, 2489, 2504, 2519, 2534, 2549, 2563, 2578, 2593, 2608, 2623, 2638, 2652, 2667, 2682, 2697, 2711, 2726, 2741, 2756, 2770, 2785, 2800, 2815, 2829, 2844, 2859, 2873, 2888, 2903, 2918, 2932, 2947, 2962, 2976, 2991, 3005, 3020, 3035, 3049, 3064, 3078, 3093, 3108, 3122, 3137, 3151, 3166, 3180, 3195, 3210, 3224, 3239, 3253, 3268, 3282, 3297, 3311, 3326, 3340, 3354, 3369, 3383, 3398, 3412, 3427, 3441, 3455, 3470, 3484, 3499, 3513, 3527, 3542, 3556, 3570, 3585, 3599, 3613, 3628, 3642, 3656, 3670, 3685, 3699, 3713, 3727, 3742, 3756, 3770, 3784, 3798, 3813, 3827, 3841, 3855, 3869, 3883, 3898, 3912, 3926, 3940, 3954, 3968, 3982, 3996, 4010, 4024, 4038, 4052, 4066, 4080, 4094, 4108, 4122, 4136, 4150, 4164, 4178, 4192, 4206, 4220, 4234, 4248, 4262, 4276, 4289, 4303, 4317, 4331, 4345, 4359, 4372, 4386, 4400, 4414, 4427, 4441, 4455, 4469, 4482, 4496, 4510, 4523, 4537, 4551, 4564, 4578, 4592, 4605, 4619, 4633, 4646, 4660, 4673, 4687, 4700, 4714, 4727, 4741, 4755, 4768, 4781, 4795, 4808, 4822, 4835, 4849, 4862, 4876, 4889, 4902, 4916, 4929, 4942, 4956, 4969, 4982, 4996, 5009, 5022, 5035, 5049, 5062, 5075, 5088, 5102, 5115, 5128, 5141, 5154, 5167, 5180, 5194, 5207, 5220, 5233, 5246, 5259, 5272, 5285, 5298, 5311, 5324, 5337, 5350, 5363, 5376, 5389, 5402, 5415, 5428, 5440, 5453, 5466, 5479, 5492, 5505, 5517, 5530, 5543, 5556, 5568, 5581, 5594, 5607, 5619, 5632, 5645, 5657, 5670, 5683, 5695, 5708, 5720, 5733, 5746, 5758, 5771, 5783, 5796, 5808, 5821, 5833, 5846, 5858, 5870, 5883, 5895, 5908, 5920, 5932, 5945, 5957, 5969, 5982, 5994, 6006, 6018, 6031, 6043, 6055, 6067, 6079, 6092, 6104, 6116, 6128, 6140, 6152, 6164, 6176, 6189, 6201, 6213, 6225, 6237, 6249, 6261, 6273, 6284, 6296, 6308, 6320, 6332, 6344, 6356, 6368, 6379, 6391, 6403, 6415, 6427, 6438, 6450, 6462, 6473, 6485, 6497, 6508, 6520, 6532, 6543, 6555, 6567, 6578, 6590, 6601, 6613, 6624, 6636, 6647, 6659, 6670, 6681, 6693, 6704, 6716, 6727, 6738, 6750, 6761, 6772, 6784, 6795, 6806, 6817, 6828, 6840, 6851, 6862, 6873, 6884, 6895, 6907, 6918, 6929, 6940, 6951, 6962, 6973, 6984, 6995, 7006, 7017, 7028, 7038, 7049, 7060, 7071, 7082, 7093, 7104, 7114, 7125, 7136, 7147, 7157, 7168, 7179, 7189, 7200, 7211, 7221, 7232, 7242, 7253, 7264, 7274, 7285, 7295, 7306, 7316, 7327, 7337, 7347, 7358, 7368, 7379, 7389, 7399, 7410, 7420, 7430, 7440, 7451, 7461, 7471, 7481, 7491, 7502, 7512, 7522, 7532, 7542, 7552, 7562, 7572, 7582, 7592, 7602, 7612, 7622, 7632, 7642, 7652, 7662, 7671, 7681, 7691, 7701, 7711, 7720, 7730, 7740, 7750, 7759, 7769, 7779, 7788, 7798, 7807, 7817, 7827, 7836, 7846, 7855, 7865, 7874, 7883, 7893, 7902, 7912, 7921, 7930, 7940, 7949, 7958, 7968, 7977, 7986, 7995, 8005, 8014, 8023, 8032, 8041, 8050, 8059, 8068, 8078, 8087, 8096, 8105, 8114, 8123, 8131, 8140, 8149, 8158, 8167, 8176, 8185, 8193, 8202, 8211, 8220, 8228, 8237, 8246, 8255, 8263, 8272, 8280, 8289, 8298, 8306, 8315, 8323, 8332, 8340, 8349, 8357, 8365, 8374, 8382, 8391, 8399, 8407, 8416, 8424, 8432, 8440, 8449, 8457, 8465, 8473, 8481, 8489, 8497, 8505, 8514, 8522, 8530, 8538, 8546, 8554, 8561, 8569, 8577, 8585, 8593, 8601, 8609, 8616, 8624, 8632, 8640, 8647, 8655, 8663, 8670, 8678, 8686, 8693, 8701, 8708, 8716, 8723, 8731, 8738, 8746, 8753, 8761, 8768, 8775, 8783, 8790, 8797, 8805, 8812, 8819, 8826, 8834, 8841, 8848, 8855, 8862, 8869, 8876, 8883, 8890, 8897, 8904, 8911, 8918, 8925, 8932, 8939, 8946, 8953, 8960, 8966, 8973, 8980, 8987, 8993, 9000, 9007, 9013, 9020, 9027, 9033, 9040, 9046, 9053, 9059, 9066, 9072, 9079, 9085, 9092, 9098, 9104, 9111, 9117, 9123, 9130, 9136, 9142, 9148, 9154, 9161, 9167, 9173, 9179, 9185, 9191, 9197, 9203, 9209, 9215, 9221, 9227, 9233, 9239, 9245, 9250, 9256, 9262, 9268, 9274, 9279, 9285, 9291, 9296, 9302, 9308, 9313, 9319, 9324, 9330, 9335, 9341, 9346, 9352, 9357, 9363, 9368, 9373, 9379, 9384, 9389, 9395, 9400, 9405, 9410, 9415, 9421, 9426, 9431, 9436, 9441, 9446, 9451, 9456, 9461, 9466, 9471, 9476, 9481, 9486, 9490, 9495, 9500, 9505, 9510, 9514, 9519, 9524, 9528, 9533, 9538, 9542, 9547, 9551, 9556, 9560, 9565, 9569, 9574, 9578, 9583, 9587, 9591, 9596, 9600, 9604, 9609, 9613, 9617, 9621, 9625, 9630, 9634, 9638, 9642, 9646, 9650, 9654, 9658, 9662, 9666, 9670, 9674, 9678, 9681, 9685, 9689, 9693, 9697, 9700, 9704, 9708, 9711, 9715, 9719, 9722, 9726, 9729, 9733, 9736, 9740, 9743, 9747, 9750, 9754, 9757, 9760, 9764, 9767, 9770, 9774, 9777, 9780, 9783, 9786, 9789, 9793, 9796, 9799, 9802, 9805, 9808, 9811, 9814, 9817, 9820, 9823, 9825, 9828, 9831, 9834, 9837, 9839, 9842, 9845, 9847, 9850, 9853, 9855, 9858, 9861, 9863, 9866, 9868, 9871, 9873, 9875, 9878, 9880, 9883, 9885, 9887, 9890, 9892, 9894, 9896, 9898, 9901, 9903, 9905, 9907, 9909, 9911, 9913, 9915, 9917, 9919, 9921, 9923, 9925, 9927, 9929, 9930, 9932, 9934, 9936, 9937, 9939, 9941, 9942, 9944, 9946, 9947, 9949, 9950, 9952, 9953, 9955, 9956, 9958, 9959, 9960, 9962, 9963, 9964, 9966, 9967, 9968, 9969, 9971, 9972, 9973, 9974, 9975, 9976, 9977, 9978, 9979, 9980, 9981, 9982, 9983, 9984, 9985, 9986, 9986, 9987, 9988, 9989, 9989, 9990, 9991, 9991, 9992, 9993, 9993, 9994, 9994, 9995, 9995, 9996, 9996, 9997, 9997, 9997, 9998, 9998, 9998, 9999, 9999, 9999, 9999, 9999, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 9999, 9999, 9999, 9999, 9999, 9998, 9998, 9998, 9997, 9997, 9997, 9996, 9996, 9995, 9995, 9994, 9994, 9993, 9993, 9992, 9991, 9991, 9990, 9989, 9989, 9988, 9987, 9986, 9986, 9985, 9984, 9983, 9982, 9981, 9980, 9979, 9978, 9977, 9976, 9975, 9974, 9973, 9972, 9971, 9969, 9968, 9967, 9966, 9964, 9963, 9962, 9960, 9959, 9958, 9956, 9955, 9953, 9952, 9950, 9949, 9947, 9946, 9944, 9942, 9941, 9939, 9937, 9936, 9934, 9932, 9930, 9929, 9927, 9925, 9923, 9921, 9919, 9917, 9915, 9913, 9911, 9909, 9907, 9905, 9903, 9901, 9898, 9896, 9894, 9892, 9890, 9887, 9885, 9883, 9880, 9878, 9875, 9873, 9871, 9868, 9866, 9863, 9861, 9858, 9855, 9853, 9850, 9847, 9845, 9842, 9839, 9837, 9834, 9831, 9828, 9825, 9823, 9820, 9817, 9814, 9811, 9808, 9805, 9802, 9799, 9796, 9793, 9789, 9786, 9783, 9780, 9777, 9774, 9770, 9767, 9764, 9760, 9757, 9754, 9750, 9747, 9743, 9740, 9736, 9733, 9729, 9726, 9722, 9719, 9715, 9711, 9708, 9704, 9700, 9697, 9693, 9689, 9685, 9681, 9678, 9674, 9670, 9666, 9662, 9658, 9654, 9650, 9646, 9642, 9638, 9634, 9630, 9625, 9621, 9617, 9613, 9609, 9604, 9600, 9596, 9591, 9587, 9583, 9578, 9574, 9569, 9565, 9560, 9556, 9551, 9547, 9542, 9538, 9533, 9528, 9524, 9519, 9514, 9510, 9505, 9500, 9495, 9490, 9486, 9481, 9476, 9471, 9466, 9461, 9456, 9451, 9446, 9441, 9436, 9431, 9426, 9421, 9415, 9410, 9405, 9400, 9395, 9389, 9384, 9379, 9373, 9368, 9363, 9357, 9352, 9346, 9341, 9335, 9330, 9324, 9319, 9313, 9308, 9302, 9296, 9291, 9285, 9279, 9274, 9268, 9262, 9256, 9250, 9245, 9239, 9233, 9227, 9221, 9215, 9209, 9203, 9197, 9191, 9185, 9179, 9173, 9167, 9161, 9154, 9148, 9142, 9136, 9130, 9123, 9117, 9111, 9104, 9098, 9092, 9085, 9079, 9072, 9066, 9059, 9053, 9046, 9040, 9033, 9027, 9020, 9013, 9007, 9000, 8993, 8987, 8980, 8973, 8966, 8960, 8953, 8946, 8939, 8932, 8925, 8918, 8911, 8904, 8897, 8890, 8883, 8876, 8869, 8862, 8855, 8848, 8841, 8834, 8826, 8819, 8812, 8805, 8797, 8790, 8783, 8775, 8768, 8761, 8753, 8746, 8738, 8731, 8723, 8716, 8708, 8701, 8693, 8686, 8678, 8670, 8663, 8655, 8647, 8640, 8632, 8624, 8616, 8609, 8601, 8593, 8585, 8577, 8569, 8561, 8554, 8546, 8538, 8530, 8522, 8514, 8505, 8497, 8489, 8481, 8473, 8465, 8457, 8449, 8440, 8432, 8424, 8416, 8407, 8399, 8391, 8382, 8374, 8365, 8357, 8349, 8340, 8332, 8323, 8315, 8306, 8298, 8289, 8280, 8272, 8263, 8255, 8246, 8237, 8228, 8220, 8211, 8202, 8193, 8185, 8176, 8167, 8158, 8149, 8140, 8131, 8123, 8114, 8105, 8096, 8087, 8078, 8068, 8059, 8050, 8041, 8032, 8023, 8014, 8005, 7995, 7986, 7977, 7968, 7958, 7949, 7940, 7930, 7921, 7912, 7902, 7893, 7883, 7874, 7865, 7855, 7846, 7836, 7827, 7817, 7807, 7798, 7788, 7779, 7769, 7759, 7750, 7740, 7730, 7720, 7711, 7701, 7691, 7681, 7671, 7662, 7652, 7642, 7632, 7622, 7612, 7602, 7592, 7582, 7572, 7562, 7552, 7542, 7532, 7522, 7512, 7502, 7491, 7481, 7471, 7461, 7451, 7440, 7430, 7420, 7410, 7399, 7389, 7379, 7368, 7358, 7347, 7337, 7327, 7316, 7306, 7295, 7285, 7274, 7264, 7253, 7242, 7232, 7221, 7211, 7200, 7189, 7179, 7168, 7157, 7147, 7136, 7125, 7114, 7104, 7093, 7082, 7071, 7060, 7049, 7038, 7028, 7017, 7006, 6995, 6984, 6973, 6962, 6951, 6940, 6929, 6918, 6907, 6895, 6884, 6873, 6862, 6851, 6840, 6828, 6817, 6806, 6795, 6784, 6772, 6761, 6750, 6738, 6727, 6716, 6704, 6693, 6681, 6670, 6659, 6647, 6636, 6624, 6613, 6601, 6590, 6578, 6567, 6555, 6543, 6532, 6520, 6508, 6497, 6485, 6473, 6462, 6450, 6438, 6427, 6415, 6403, 6391, 6379, 6368, 6356, 6344, 6332, 6320, 6308, 6296, 6284, 6273, 6261, 6249, 6237, 6225, 6213, 6201, 6189, 6176, 6164, 6152, 6140, 6128, 6116, 6104, 6092, 6079, 6067, 6055, 6043, 6031, 6018, 6006, 5994, 5982, 5969, 5957, 5945, 5932, 5920, 5908, 5895, 5883, 5870, 5858, 5846, 5833, 5821, 5808, 5796, 5783, 5771, 5758, 5746, 5733, 5720, 5708, 5695, 5683, 5670, 5657, 5645, 5632, 5619, 5607, 5594, 5581, 5568, 5556, 5543, 5530, 5517, 5505, 5492, 5479, 5466, 5453, 5440, 5428, 5415, 5402, 5389, 5376, 5363, 5350, 5337, 5324, 5311, 5298, 5285, 5272, 5259, 5246, 5233, 5220, 5207, 5194, 5180, 5167, 5154, 5141, 5128, 5115, 5102, 5088, 5075, 5062, 5049, 5035, 5022, 5009, 4996, 4982, 4969, 4956, 4942, 4929, 4916, 4902, 4889, 4876, 4862, 4849, 4835, 4822, 4808, 4795, 4781, 4768, 4755, 4741, 4727, 4714, 4700, 4687, 4673, 4660, 4646, 4633, 4619, 4605, 4592, 4578, 4564, 4551, 4537, 4523, 4510, 4496, 4482, 4469, 4455, 4441, 4427, 4414, 4400, 4386, 4372, 4359, 4345, 4331, 4317, 4303, 4289, 4276, 4262, 4248, 4234, 4220, 4206, 4192, 4178, 4164, 4150, 4136, 4122, 4108, 4094, 4080, 4066, 4052, 4038, 4024, 4010, 3996, 3982, 3968, 3954, 3940, 3926, 3912, 3898, 3883, 3869, 3855, 3841, 3827, 3813, 3798, 3784, 3770, 3756, 3742, 3727, 3713, 3699, 3685, 3670, 3656, 3642, 3628, 3613, 3599, 3585, 3570, 3556, 3542, 3527, 3513, 3499, 3484, 3470, 3455, 3441, 3427, 3412, 3398, 3383, 3369, 3354, 3340, 3326, 3311, 3297, 3282, 3268, 3253, 3239, 3224, 3210, 3195, 3180, 3166, 3151, 3137, 3122, 3108, 3093, 3078, 3064, 3049, 3035, 3020, 3005, 2991, 2976, 2962, 2947, 2932, 2918, 2903, 2888, 2873, 2859, 2844, 2829, 2815, 2800, 2785, 2770, 2756, 2741, 2726, 2711, 2697, 2682, 2667, 2652, 2638, 2623, 2608, 2593, 2578, 2563, 2549, 2534, 2519, 2504, 2489, 2474, 2460, 2445, 2430, 2415, 2400, 2385, 2370, 2355, 2340, 2326, 2311, 2296, 2281, 2266, 2251, 2236, 2221, 2206, 2191, 2176, 2161, 2146, 2131, 2116, 2101, 2086, 2071, 2056, 2041, 2026, 2011, 1996, 1981, 1966, 1951, 1936, 1921, 1906, 1891, 1876, 1861, 1845, 1830, 1815, 1800, 1785, 1770, 1755, 1740, 1725, 1710, 1695, 1679, 1664, 1649, 1634, 1619, 1604, 1589, 1573, 1558, 1543, 1528, 1513, 1498, 1482, 1467, 1452, 1437, 1422, 1407, 1391, 1376, 1361, 1346, 1331, 1315, 1300, 1285, 1270, 1255, 1239, 1224, 1209, 1194, 1178, 1163, 1148, 1133, 1117, 1102, 1087, 1072, 1056, 1041, 1026, 1011, 995, 980, 965, 950, 934, 919, 904, 889, 873, 858, 843, 827, 812, 797, 782, 766, 751, 736, 720, 705, 690, 674, 659, 644, 629, 613, 598, 583, 567, 552, 537, 521, 506, 491, 475, 460, 445, 429, 414, 399, 383, 368, 353, 337, 322, 307, 291, 276, 261, 245, 230, 215, 199, 184, 169, 153, 138, 123, 107, 92, 77, 61, 46, 31, 15, 0, -15, -31, -46, -61, -77, -92, -107, -123, -138, -153, -169, -184, -199, -215, -230, -245, -261, -276, -291, -307, -322, -337, -353, -368, -383, -399, -414, -429, -445, -460, -475, -491, -506, -521, -537, -552, -567, -583, -598, -613, -629, -644, -659, -674, -690, -705, -720, -736, -751, -766, -782, -797, -812, -827, -843, -858, -873, -889, -904, -919, -934, -950, -965, -980, -995, -1011, -1026, -1041, -1056, -1072, -1087, -1102, -1117, -1133, -1148, -1163, -1178, -1194, -1209, -1224, -1239, -1255, -1270, -1285, -1300, -1315, -1331, -1346, -1361, -1376, -1391, -1407, -1422, -1437, -1452, -1467, -1482, -1498, -1513, -1528, -1543, -1558, -1573, -1589, -1604, -1619, -1634, -1649, -1664, -1679, -1695, -1710, -1725, -1740, -1755, -1770, -1785, -1800, -1815, -1830, -1845, -1861, -1876, -1891, -1906, -1921, -1936, -1951, -1966, -1981, -1996, -2011, -2026, -2041, -2056, -2071, -2086, -2101, -2116, -2131, -2146, -2161, -2176, -2191, -2206, -2221, -2236, -2251, -2266, -2281, -2296, -2311, -2326, -2340, -2355, -2370, -2385, -2400, -2415, -2430, -2445, -2460, -2474, -2489, -2504, -2519, -2534, -2549, -2563, -2578, -2593, -2608, -2623, -2638, -2652, -2667, -2682, -2697, -2711, -2726, -2741, -2756, -2770, -2785, -2800, -2815, -2829, -2844, -2859, -2873, -2888, -2903, -2918, -2932, -2947, -2962, -2976, -2991, -3005, -3020, -3035, -3049, -3064, -3078, -3093, -3108, -3122, -3137, -3151, -3166, -3180, -3195, -3210, -3224, -3239, -3253, -3268, -3282, -3297, -3311, -3326, -3340, -3354, -3369, -3383, -3398, -3412, -3427, -3441, -3455, -3470, -3484, -3499, -3513, -3527, -3542, -3556, -3570, -3585, -3599, -3613, -3628, -3642, -3656, -3670, -3685, -3699, -3713, -3727, -3742, -3756, -3770, -3784, -3798, -3813, -3827, -3841, -3855, -3869, -3883, -3898, -3912, -3926, -3940, -3954, -3968, -3982, -3996, -4010, -4024, -4038, -4052, -4066, -4080, -4094, -4108, -4122, -4136, -4150, -4164, -4178, -4192, -4206, -4220, -4234, -4248, -4262, -4276, -4289, -4303, -4317, -4331, -4345, -4359, -4372, -4386, -4400, -4414, -4427, -4441, -4455, -4469, -4482, -4496, -4510, -4523, -4537, -4551, -4564, -4578, -4592, -4605, -4619, -4633, -4646, -4660, -4673, -4687, -4700, -4714, -4727, -4741, -4755, -4768, -4781, -4795, -4808, -4822, -4835, -4849, -4862, -4876, -4889, -4902, -4916, -4929, -4942, -4956, -4969, -4982, -4996, -5009, -5022, -5035, -5049, -5062, -5075, -5088, -5102, -5115, -5128, -5141, -5154, -5167, -5180, -5194, -5207, -5220, -5233, -5246, -5259, -5272, -5285, -5298, -5311, -5324, -5337, -5350, -5363, -5376, -5389, -5402, -5415, -5428, -5440, -5453, -5466, -5479, -5492, -5505, -5517, -5530, -5543, -5556, -5568, -5581, -5594, -5607, -5619, -5632, -5645, -5657, -5670, -5683, -5695, -5708, -5720, -5733, -5746, -5758, -5771, -5783, -5796, -5808, -5821, -5833, -5846, -5858, -5870, -5883, -5895, -5908, -5920, -5932, -5945, -5957, -5969, -5982, -5994, -6006, -6018, -6031, -6043, -6055, -6067, -6079, -6092, -6104, -6116, -6128, -6140, -6152, -6164, -6176, -6189, -6201, -6213, -6225, -6237, -6249, -6261, -6273, -6284, -6296, -6308, -6320, -6332, -6344, -6356, -6368, -6379, -6391, -6403, -6415, -6427, -6438, -6450, -6462, -6473, -6485, -6497, -6508, -6520, -6532, -6543, -6555, -6567, -6578, -6590, -6601, -6613, -6624, -6636, -6647, -6659, -6670, -6681, -6693, -6704, -6716, -6727, -6738, -6750, -6761, -6772, -6784, -6795, -6806, -6817, -6828, -6840, -6851, -6862, -6873, -6884, -6895, -6907, -6918, -6929, -6940, -6951, -6962, -6973, -6984, -6995, -7006, -7017, -7028, -7038, -7049, -7060, -7071, -7082, -7093, -7104, -7114, -7125, -7136, -7147, -7157, -7168, -7179, -7189, -7200, -7211, -7221, -7232, -7242, -7253, -7264, -7274, -7285, -7295, -7306, -7316, -7327, -7337, -7347, -7358, -7368, -7379, -7389, -7399, -7410, -7420, -7430, -7440, -7451, -7461, -7471, -7481, -7491, -7502, -7512, -7522, -7532, -7542, -7552, -7562, -7572, -7582, -7592, -7602, -7612, -7622, -7632, -7642, -7652, -7662, -7671, -7681, -7691, -7701, -7711, -7720, -7730, -7740, -7750, -7759, -7769, -7779, -7788, -7798, -7807, -7817, -7827, -7836, -7846, -7855, -7865, -7874, -7883, -7893, -7902, -7912, -7921, -7930, -7940, -7949, -7958, -7968, -7977, -7986, -7995, -8005, -8014, -8023, -8032, -8041, -8050, -8059, -8068, -8078, -8087, -8096, -8105, -8114, -8123, -8131, -8140, -8149, -8158, -8167, -8176, -8185, -8193, -8202, -8211, -8220, -8228, -8237, -8246, -8255, -8263, -8272, -8280, -8289, -8298, -8306, -8315, -8323, -8332, -8340, -8349, -8357, -8365, -8374, -8382, -8391, -8399, -8407, -8416, -8424, -8432, -8440, -8449, -8457, -8465, -8473, -8481, -8489, -8497, -8505, -8514, -8522, -8530, -8538, -8546, -8554, -8561, -8569, -8577, -8585, -8593, -8601, -8609, -8616, -8624, -8632, -8640, -8647, -8655, -8663, -8670, -8678, -8686, -8693, -8701, -8708, -8716, -8723, -8731, -8738, -8746, -8753, -8761, -8768, -8775, -8783, -8790, -8797, -8805, -8812, -8819, -8826, -8834, -8841, -8848, -8855, -8862, -8869, -8876, -8883, -8890, -8897, -8904, -8911, -8918, -8925, -8932, -8939, -8946, -8953, -8960, -8966, -8973, -8980, -8987, -8993, -9000, -9007, -9013, -9020, -9027, -9033, -9040, -9046, -9053, -9059, -9066, -9072, -9079, -9085, -9092, -9098, -9104, -9111, -9117, -9123, -9130, -9136, -9142, -9148, -9154, -9161, -9167, -9173, -9179, -9185, -9191, -9197, -9203, -9209, -9215, -9221, -9227, -9233, -9239, -9245, -9250, -9256, -9262, -9268, -9274, -9279, -9285, -9291, -9296, -9302, -9308, -9313, -9319, -9324, -9330, -9335, -9341, -9346, -9352, -9357, -9363, -9368, -9373, -9379, -9384, -9389, -9395, -9400, -9405, -9410, -9415, -9421, -9426, -9431, -9436, -9441, -9446, -9451, -9456, -9461, -9466, -9471, -9476, -9481, -9486, -9490, -9495, -9500, -9505, -9510, -9514, -9519, -9524, -9528, -9533, -9538, -9542, -9547, -9551, -9556, -9560, -9565, -9569, -9574, -9578, -9583, -9587, -9591, -9596, -9600, -9604, -9609, -9613, -9617, -9621, -9625, -9630, -9634, -9638, -9642, -9646, -9650, -9654, -9658, -9662, -9666, -9670, -9674, -9678, -9681, -9685, -9689, -9693, -9697, -9700, -9704, -9708, -9711, -9715, -9719, -9722, -9726, -9729, -9733, -9736, -9740, -9743, -9747, -9750, -9754, -9757, -9760, -9764, -9767, -9770, -9774, -9777, -9780, -9783, -9786, -9789, -9793, -9796, -9799, -9802, -9805, -9808, -9811, -9814, -9817, -9820, -9823, -9825, -9828, -9831, -9834, -9837, -9839, -9842, -9845, -9847, -9850, -9853, -9855, -9858, -9861, -9863, -9866, -9868, -9871, -9873, -9875, -9878, -9880, -9883, -9885, -9887, -9890, -9892, -9894, -9896, -9898, -9901, -9903, -9905, -9907, -9909, -9911, -9913, -9915, -9917, -9919, -9921, -9923, -9925, -9927, -9929, -9930, -9932, -9934, -9936, -9937, -9939, -9941, -9942, -9944, -9946, -9947, -9949, -9950, -9952, -9953, -9955, -9956, -9958, -9959, -9960, -9962, -9963, -9964, -9966, -9967, -9968, -9969, -9971, -9972, -9973, -9974, -9975, -9976, -9977, -9978, -9979, -9980, -9981, -9982, -9983, -9984, -9985, -9986, -9986, -9987, -9988, -9989, -9989, -9990, -9991, -9991, -9992, -9993, -9993, -9994, -9994, -9995, -9995, -9996, -9996, -9997, -9997, -9997, -9998, -9998, -9998, -9999, -9999, -9999, -9999, -9999, -10000, -10000, -10000, -10000, -10000, -10000, -10000, -10000, -10000, -10000, -10000, -10000, -10000, -9999, -9999, -9999, -9999, -9999, -9998, -9998, -9998, -9997, -9997, -9997, -9996, -9996, -9995, -9995, -9994, -9994, -9993, -9993, -9992, -9991, -9991, -9990, -9989, -9989, -9988, -9987, -9986, -9986, -9985, -9984, -9983, -9982, -9981, -9980, -9979, -9978, -9977, -9976, -9975, -9974, -9973, -9972, -9971, -9969, -9968, -9967, -9966, -9964, -9963, -9962, -9960, -9959, -9958, -9956, -9955, -9953, -9952, -9950, -9949, -9947, -9946, -9944, -9942, -9941, -9939, -9937, -9936, -9934, -9932, -9930, -9929, -9927, -9925, -9923, -9921, -9919, -9917, -9915, -9913, -9911, -9909, -9907, -9905, -9903, -9901, -9898, -9896, -9894, -9892, -9890, -9887, -9885, -9883, -9880, -9878, -9875, -9873, -9871, -9868, -9866, -9863, -9861, -9858, -9855, -9853, -9850, -9847, -9845, -9842, -9839, -9837, -9834, -9831, -9828, -9825, -9823, -9820, -9817, -9814, -9811, -9808, -9805, -9802, -9799, -9796, -9793, -9789, -9786, -9783, -9780, -9777, -9774, -9770, -9767, -9764, -9760, -9757, -9754, -9750, -9747, -9743, -9740, -9736, -9733, -9729, -9726, -9722, -9719, -9715, -9711, -9708, -9704, -9700, -9697, -9693, -9689, -9685, -9681, -9678, -9674, -9670, -9666, -9662, -9658, -9654, -9650, -9646, -9642, -9638, -9634, -9630, -9625, -9621, -9617, -9613, -9609, -9604, -9600, -9596, -9591, -9587, -9583, -9578, -9574, -9569, -9565, -9560, -9556, -9551, -9547, -9542, -9538, -9533, -9528, -9524, -9519, -9514, -9510, -9505, -9500, -9495, -9490, -9486, -9481, -9476, -9471, -9466, -9461, -9456, -9451, -9446, -9441, -9436, -9431, -9426, -9421, -9415, -9410, -9405, -9400, -9395, -9389, -9384, -9379, -9373, -9368, -9363, -9357, -9352, -9346, -9341, -9335, -9330, -9324, -9319, -9313, -9308, -9302, -9296, -9291, -9285, -9279, -9274, -9268, -9262, -9256, -9250, -9245, -9239, -9233, -9227, -9221, -9215, -9209, -9203, -9197, -9191, -9185, -9179, -9173, -9167, -9161, -9154, -9148, -9142, -9136, -9130, -9123, -9117, -9111, -9104, -9098, -9092, -9085, -9079, -9072, -9066, -9059, -9053, -9046, -9040, -9033, -9027, -9020, -9013, -9007, -9000, -8993, -8987, -8980, -8973, -8966, -8960, -8953, -8946, -8939, -8932, -8925, -8918, -8911, -8904, -8897, -8890, -8883, -8876, -8869, -8862, -8855, -8848, -8841, -8834, -8826, -8819, -8812, -8805, -8797, -8790, -8783, -8775, -8768, -8761, -8753, -8746, -8738, -8731, -8723, -8716, -8708, -8701, -8693, -8686, -8678, -8670, -8663, -8655, -8647, -8640, -8632, -8624, -8616, -8609, -8601, -8593, -8585, -8577, -8569, -8561, -8554, -8546, -8538, -8530, -8522, -8514, -8505, -8497, -8489, -8481, -8473, -8465, -8457, -8449, -8440, -8432, -8424, -8416, -8407, -8399, -8391, -8382, -8374, -8365, -8357, -8349, -8340, -8332, -8323, -8315, -8306, -8298, -8289, -8280, -8272, -8263, -8255, -8246, -8237, -8228, -8220, -8211, -8202, -8193, -8185, -8176, -8167, -8158, -8149, -8140, -8131, -8123, -8114, -8105, -8096, -8087, -8078, -8068, -8059, -8050, -8041, -8032, -8023, -8014, -8005, -7995, -7986, -7977, -7968, -7958, -7949, -7940, -7930, -7921, -7912, -7902, -7893, -7883, -7874, -7865, -7855, -7846, -7836, -7827, -7817, -7807, -7798, -7788, -7779, -7769, -7759, -7750, -7740, -7730, -7720, -7711, -7701, -7691, -7681, -7671, -7662, -7652, -7642, -7632, -7622, -7612, -7602, -7592, -7582, -7572, -7562, -7552, -7542, -7532, -7522, -7512, -7502, -7491, -7481, -7471, -7461, -7451, -7440, -7430, -7420, -7410, -7399, -7389, -7379, -7368, -7358, -7347, -7337, -7327, -7316, -7306, -7295, -7285, -7274, -7264, -7253, -7242, -7232, -7221, -7211, -7200, -7189, -7179, -7168, -7157, -7147, -7136, -7125, -7114, -7104, -7093, -7082, -7071, -7060, -7049, -7038, -7028, -7017, -7006, -6995, -6984, -6973, -6962, -6951, -6940, -6929, -6918, -6907, -6895, -6884, -6873, -6862, -6851, -6840, -6828, -6817, -6806, -6795, -6784, -6772, -6761, -6750, -6738, -6727, -6716, -6704, -6693, -6681, -6670, -6659, -6647, -6636, -6624, -6613, -6601, -6590, -6578, -6567, -6555, -6543, -6532, -6520, -6508, -6497, -6485, -6473, -6462, -6450, -6438, -6427, -6415, -6403, -6391, -6379, -6368, -6356, -6344, -6332, -6320, -6308, -6296, -6284, -6273, -6261, -6249, -6237, -6225, -6213, -6201, -6189, -6176, -6164, -6152, -6140, -6128, -6116, -6104, -6092, -6079, -6067, -6055, -6043, -6031, -6018, -6006, -5994, -5982, -5969, -5957, -5945, -5932, -5920, -5908, -5895, -5883, -5870, -5858, -5846, -5833, -5821, -5808, -5796, -5783, -5771, -5758, -5746, -5733, -5720, -5708, -5695, -5683, -5670, -5657, -5645, -5632, -5619, -5607, -5594, -5581, -5568, -5556, -5543, -5530, -5517, -5505, -5492, -5479, -5466, -5453, -5440, -5428, -5415, -5402, -5389, -5376, -5363, -5350, -5337, -5324, -5311, -5298, -5285, -5272, -5259, -5246, -5233, -5220, -5207, -5194, -5180, -5167, -5154, -5141, -5128, -5115, -5102, -5088, -5075, -5062, -5049, -5035, -5022, -5009, -4996, -4982, -4969, -4956, -4942, -4929, -4916, -4902, -4889, -4876, -4862, -4849, -4835, -4822, -4808, -4795, -4781, -4768, -4755, -4741, -4727, -4714, -4700, -4687, -4673, -4660, -4646, -4633, -4619, -4605, -4592, -4578, -4564, -4551, -4537, -4523, -4510, -4496, -4482, -4469, -4455, -4441, -4427, -4414, -4400, -4386, -4372, -4359, -4345, -4331, -4317, -4303, -4289, -4276, -4262, -4248, -4234, -4220, -4206, -4192, -4178, -4164, -4150, -4136, -4122, -4108, -4094, -4080, -4066, -4052, -4038, -4024, -4010, -3996, -3982, -3968, -3954, -3940, -3926, -3912, -3898, -3883, -3869, -3855, -3841, -3827, -3813, -3798, -3784, -3770, -3756, -3742, -3727, -3713, -3699, -3685, -3670, -3656, -3642, -3628, -3613, -3599, -3585, -3570, -3556, -3542, -3527, -3513, -3499, -3484, -3470, -3455, -3441, -3427, -3412, -3398, -3383, -3369, -3354, -3340, -3326, -3311, -3297, -3282, -3268, -3253, -3239, -3224, -3210, -3195, -3180, -3166, -3151, -3137, -3122, -3108, -3093, -3078, -3064, -3049, -3035, -3020, -3005, -2991, -2976, -2962, -2947, -2932, -2918, -2903, -2888, -2873, -2859, -2844, -2829, -2815, -2800, -2785, -2770, -2756, -2741, -2726, -2711, -2697, -2682, -2667, -2652, -2638, -2623, -2608, -2593, -2578, -2563, -2549, -2534, -2519, -2504, -2489, -2474, -2460, -2445, -2430, -2415, -2400, -2385, -2370, -2355, -2340, -2326, -2311, -2296, -2281, -2266, -2251, -2236, -2221, -2206, -2191, -2176, -2161, -2146, -2131, -2116, -2101, -2086, -2071, -2056, -2041, -2026, -2011, -1996, -1981, -1966, -1951, -1936, -1921, -1906, -1891, -1876, -1861, -1845, -1830, -1815, -1800, -1785, -1770, -1755, -1740, -1725, -1710, -1695, -1679, -1664, -1649, -1634, -1619, -1604, -1589, -1573, -1558, -1543, -1528, -1513, -1498, -1482, -1467, -1452, -1437, -1422, -1407, -1391, -1376, -1361, -1346, -1331, -1315, -1300, -1285, -1270, -1255, -1239, -1224, -1209, -1194, -1178, -1163, -1148, -1133, -1117, -1102, -1087, -1072, -1056, -1041, -1026, -1011, -995, -980, -965, -950, -934, -919, -904, -889, -873, -858, -843, -827, -812, -797, -782, -766, -751, -736, -720, -705, -690, -674, -659, -644, -629, -613, -598, -583, -567, -552, -537, -521, -506, -491, -475, -460, -445, -429, -414, -399, -383, -368, -353, -337, -322, -307, -291, -276, -261, -245, -230, -215, -199, -184, -169, -153, -138, -123, -107, -92, -77, -61, -46, -31, -15 }; SinCosLookupTable.cos_table = new int[] { 10000, 10000, 10000, 10000, 10000, 10000, 10000, 9999, 9999, 9999, 9999, 9999, 9998, 9998, 9998, 9997, 9997, 9997, 9996, 9996, 9995, 9995, 9994, 9994, 9993, 9993, 9992, 9991, 9991, 9990, 9989, 9989, 9988, 9987, 9986, 9986, 9985, 9984, 9983, 9982, 9981, 9980, 9979, 9978, 9977, 9976, 9975, 9974, 9973, 9972, 9971, 9969, 9968, 9967, 9966, 9964, 9963, 9962, 9960, 9959, 9958, 9956, 9955, 9953, 9952, 9950, 9949, 9947, 9946, 9944, 9942, 9941, 9939, 9937, 9936, 9934, 9932, 9930, 9929, 9927, 9925, 9923, 9921, 9919, 9917, 9915, 9913, 9911, 9909, 9907, 9905, 9903, 9901, 9898, 9896, 9894, 9892, 9890, 9887, 9885, 9883, 9880, 9878, 9875, 9873, 9871, 9868, 9866, 9863, 9861, 9858, 9855, 9853, 9850, 9847, 9845, 9842, 9839, 9837, 9834, 9831, 9828, 9825, 9823, 9820, 9817, 9814, 9811, 9808, 9805, 9802, 9799, 9796, 9793, 9789, 9786, 9783, 9780, 9777, 9774, 9770, 9767, 9764, 9760, 9757, 9754, 9750, 9747, 9743, 9740, 9736, 9733, 9729, 9726, 9722, 9719, 9715, 9711, 9708, 9704, 9700, 9697, 9693, 9689, 9685, 9681, 9678, 9674, 9670, 9666, 9662, 9658, 9654, 9650, 9646, 9642, 9638, 9634, 9630, 9625, 9621, 9617, 9613, 9609, 9604, 9600, 9596, 9591, 9587, 9583, 9578, 9574, 9569, 9565, 9560, 9556, 9551, 9547, 9542, 9538, 9533, 9528, 9524, 9519, 9514, 9510, 9505, 9500, 9495, 9490, 9486, 9481, 9476, 9471, 9466, 9461, 9456, 9451, 9446, 9441, 9436, 9431, 9426, 9421, 9415, 9410, 9405, 9400, 9395, 9389, 9384, 9379, 9373, 9368, 9363, 9357, 9352, 9346, 9341, 9335, 9330, 9324, 9319, 9313, 9308, 9302, 9296, 9291, 9285, 9279, 9274, 9268, 9262, 9256, 9250, 9245, 9239, 9233, 9227, 9221, 9215, 9209, 9203, 9197, 9191, 9185, 9179, 9173, 9167, 9161, 9154, 9148, 9142, 9136, 9130, 9123, 9117, 9111, 9104, 9098, 9092, 9085, 9079, 9072, 9066, 9059, 9053, 9046, 9040, 9033, 9027, 9020, 9013, 9007, 9000, 8993, 8987, 8980, 8973, 8966, 8960, 8953, 8946, 8939, 8932, 8925, 8918, 8911, 8904, 8897, 8890, 8883, 8876, 8869, 8862, 8855, 8848, 8841, 8834, 8826, 8819, 8812, 8805, 8797, 8790, 8783, 8775, 8768, 8761, 8753, 8746, 8738, 8731, 8723, 8716, 8708, 8701, 8693, 8686, 8678, 8670, 8663, 8655, 8647, 8640, 8632, 8624, 8616, 8609, 8601, 8593, 8585, 8577, 8569, 8561, 8554, 8546, 8538, 8530, 8522, 8514, 8505, 8497, 8489, 8481, 8473, 8465, 8457, 8449, 8440, 8432, 8424, 8416, 8407, 8399, 8391, 8382, 8374, 8365, 8357, 8349, 8340, 8332, 8323, 8315, 8306, 8298, 8289, 8280, 8272, 8263, 8255, 8246, 8237, 8228, 8220, 8211, 8202, 8193, 8185, 8176, 8167, 8158, 8149, 8140, 8131, 8123, 8114, 8105, 8096, 8087, 8078, 8068, 8059, 8050, 8041, 8032, 8023, 8014, 8005, 7995, 7986, 7977, 7968, 7958, 7949, 7940, 7930, 7921, 7912, 7902, 7893, 7883, 7874, 7865, 7855, 7846, 7836, 7827, 7817, 7807, 7798, 7788, 7779, 7769, 7759, 7750, 7740, 7730, 7720, 7711, 7701, 7691, 7681, 7671, 7662, 7652, 7642, 7632, 7622, 7612, 7602, 7592, 7582, 7572, 7562, 7552, 7542, 7532, 7522, 7512, 7502, 7491, 7481, 7471, 7461, 7451, 7440, 7430, 7420, 7410, 7399, 7389, 7379, 7368, 7358, 7347, 7337, 7327, 7316, 7306, 7295, 7285, 7274, 7264, 7253, 7242, 7232, 7221, 7211, 7200, 7189, 7179, 7168, 7157, 7147, 7136, 7125, 7114, 7104, 7093, 7082, 7071, 7060, 7049, 7038, 7028, 7017, 7006, 6995, 6984, 6973, 6962, 6951, 6940, 6929, 6918, 6907, 6895, 6884, 6873, 6862, 6851, 6840, 6828, 6817, 6806, 6795, 6784, 6772, 6761, 6750, 6738, 6727, 6716, 6704, 6693, 6681, 6670, 6659, 6647, 6636, 6624, 6613, 6601, 6590, 6578, 6567, 6555, 6543, 6532, 6520, 6508, 6497, 6485, 6473, 6462, 6450, 6438, 6427, 6415, 6403, 6391, 6379, 6368, 6356, 6344, 6332, 6320, 6308, 6296, 6284, 6273, 6261, 6249, 6237, 6225, 6213, 6201, 6189, 6176, 6164, 6152, 6140, 6128, 6116, 6104, 6092, 6079, 6067, 6055, 6043, 6031, 6018, 6006, 5994, 5982, 5969, 5957, 5945, 5932, 5920, 5908, 5895, 5883, 5870, 5858, 5846, 5833, 5821, 5808, 5796, 5783, 5771, 5758, 5746, 5733, 5720, 5708, 5695, 5683, 5670, 5657, 5645, 5632, 5619, 5607, 5594, 5581, 5568, 5556, 5543, 5530, 5517, 5505, 5492, 5479, 5466, 5453, 5440, 5428, 5415, 5402, 5389, 5376, 5363, 5350, 5337, 5324, 5311, 5298, 5285, 5272, 5259, 5246, 5233, 5220, 5207, 5194, 5180, 5167, 5154, 5141, 5128, 5115, 5102, 5088, 5075, 5062, 5049, 5035, 5022, 5009, 4996, 4982, 4969, 4956, 4942, 4929, 4916, 4902, 4889, 4876, 4862, 4849, 4835, 4822, 4808, 4795, 4781, 4768, 4755, 4741, 4727, 4714, 4700, 4687, 4673, 4660, 4646, 4633, 4619, 4605, 4592, 4578, 4564, 4551, 4537, 4523, 4510, 4496, 4482, 4469, 4455, 4441, 4427, 4414, 4400, 4386, 4372, 4359, 4345, 4331, 4317, 4303, 4289, 4276, 4262, 4248, 4234, 4220, 4206, 4192, 4178, 4164, 4150, 4136, 4122, 4108, 4094, 4080, 4066, 4052, 4038, 4024, 4010, 3996, 3982, 3968, 3954, 3940, 3926, 3912, 3898, 3883, 3869, 3855, 3841, 3827, 3813, 3798, 3784, 3770, 3756, 3742, 3727, 3713, 3699, 3685, 3670, 3656, 3642, 3628, 3613, 3599, 3585, 3570, 3556, 3542, 3527, 3513, 3499, 3484, 3470, 3455, 3441, 3427, 3412, 3398, 3383, 3369, 3354, 3340, 3326, 3311, 3297, 3282, 3268, 3253, 3239, 3224, 3210, 3195, 3180, 3166, 3151, 3137, 3122, 3108, 3093, 3078, 3064, 3049, 3035, 3020, 3005, 2991, 2976, 2962, 2947, 2932, 2918, 2903, 2888, 2873, 2859, 2844, 2829, 2815, 2800, 2785, 2770, 2756, 2741, 2726, 2711, 2697, 2682, 2667, 2652, 2638, 2623, 2608, 2593, 2578, 2563, 2549, 2534, 2519, 2504, 2489, 2474, 2460, 2445, 2430, 2415, 2400, 2385, 2370, 2355, 2340, 2326, 2311, 2296, 2281, 2266, 2251, 2236, 2221, 2206, 2191, 2176, 2161, 2146, 2131, 2116, 2101, 2086, 2071, 2056, 2041, 2026, 2011, 1996, 1981, 1966, 1951, 1936, 1921, 1906, 1891, 1876, 1861, 1845, 1830, 1815, 1800, 1785, 1770, 1755, 1740, 1725, 1710, 1695, 1679, 1664, 1649, 1634, 1619, 1604, 1589, 1573, 1558, 1543, 1528, 1513, 1498, 1482, 1467, 1452, 1437, 1422, 1407, 1391, 1376, 1361, 1346, 1331, 1315, 1300, 1285, 1270, 1255, 1239, 1224, 1209, 1194, 1178, 1163, 1148, 1133, 1117, 1102, 1087, 1072, 1056, 1041, 1026, 1011, 995, 980, 965, 950, 934, 919, 904, 889, 873, 858, 843, 827, 812, 797, 782, 766, 751, 736, 720, 705, 690, 674, 659, 644, 629, 613, 598, 583, 567, 552, 537, 521, 506, 491, 475, 460, 445, 429, 414, 399, 383, 368, 353, 337, 322, 307, 291, 276, 261, 245, 230, 215, 199, 184, 169, 153, 138, 123, 107, 92, 77, 61, 46, 31, 15, 0, -15, -31, -46, -61, -77, -92, -107, -123, -138, -153, -169, -184, -199, -215, -230, -245, -261, -276, -291, -307, -322, -337, -353, -368, -383, -399, -414, -429, -445, -460, -475, -491, -506, -521, -537, -552, -567, -583, -598, -613, -629, -644, -659, -674, -690, -705, -720, -736, -751, -766, -782, -797, -812, -827, -843, -858, -873, -889, -904, -919, -934, -950, -965, -980, -995, -1011, -1026, -1041, -1056, -1072, -1087, -1102, -1117, -1133, -1148, -1163, -1178, -1194, -1209, -1224, -1239, -1255, -1270, -1285, -1300, -1315, -1331, -1346, -1361, -1376, -1391, -1407, -1422, -1437, -1452, -1467, -1482, -1498, -1513, -1528, -1543, -1558, -1573, -1589, -1604, -1619, -1634, -1649, -1664, -1679, -1695, -1710, -1725, -1740, -1755, -1770, -1785, -1800, -1815, -1830, -1845, -1861, -1876, -1891, -1906, -1921, -1936, -1951, -1966, -1981, -1996, -2011, -2026, -2041, -2056, -2071, -2086, -2101, -2116, -2131, -2146, -2161, -2176, -2191, -2206, -2221, -2236, -2251, -2266, -2281, -2296, -2311, -2326, -2340, -2355, -2370, -2385, -2400, -2415, -2430, -2445, -2460, -2474, -2489, -2504, -2519, -2534, -2549, -2563, -2578, -2593, -2608, -2623, -2638, -2652, -2667, -2682, -2697, -2711, -2726, -2741, -2756, -2770, -2785, -2800, -2815, -2829, -2844, -2859, -2873, -2888, -2903, -2918, -2932, -2947, -2962, -2976, -2991, -3005, -3020, -3035, -3049, -3064, -3078, -3093, -3108, -3122, -3137, -3151, -3166, -3180, -3195, -3210, -3224, -3239, -3253, -3268, -3282, -3297, -3311, -3326, -3340, -3354, -3369, -3383, -3398, -3412, -3427, -3441, -3455, -3470, -3484, -3499, -3513, -3527, -3542, -3556, -3570, -3585, -3599, -3613, -3628, -3642, -3656, -3670, -3685, -3699, -3713, -3727, -3742, -3756, -3770, -3784, -3798, -3813, -3827, -3841, -3855, -3869, -3883, -3898, -3912, -3926, -3940, -3954, -3968, -3982, -3996, -4010, -4024, -4038, -4052, -4066, -4080, -4094, -4108, -4122, -4136, -4150, -4164, -4178, -4192, -4206, -4220, -4234, -4248, -4262, -4276, -4289, -4303, -4317, -4331, -4345, -4359, -4372, -4386, -4400, -4414, -4427, -4441, -4455, -4469, -4482, -4496, -4510, -4523, -4537, -4551, -4564, -4578, -4592, -4605, -4619, -4633, -4646, -4660, -4673, -4687, -4700, -4714, -4727, -4741, -4755, -4768, -4781, -4795, -4808, -4822, -4835, -4849, -4862, -4876, -4889, -4902, -4916, -4929, -4942, -4956, -4969, -4982, -4996, -5009, -5022, -5035, -5049, -5062, -5075, -5088, -5102, -5115, -5128, -5141, -5154, -5167, -5180, -5194, -5207, -5220, -5233, -5246, -5259, -5272, -5285, -5298, -5311, -5324, -5337, -5350, -5363, -5376, -5389, -5402, -5415, -5428, -5440, -5453, -5466, -5479, -5492, -5505, -5517, -5530, -5543, -5556, -5568, -5581, -5594, -5607, -5619, -5632, -5645, -5657, -5670, -5683, -5695, -5708, -5720, -5733, -5746, -5758, -5771, -5783, -5796, -5808, -5821, -5833, -5846, -5858, -5870, -5883, -5895, -5908, -5920, -5932, -5945, -5957, -5969, -5982, -5994, -6006, -6018, -6031, -6043, -6055, -6067, -6079, -6092, -6104, -6116, -6128, -6140, -6152, -6164, -6176, -6189, -6201, -6213, -6225, -6237, -6249, -6261, -6273, -6284, -6296, -6308, -6320, -6332, -6344, -6356, -6368, -6379, -6391, -6403, -6415, -6427, -6438, -6450, -6462, -6473, -6485, -6497, -6508, -6520, -6532, -6543, -6555, -6567, -6578, -6590, -6601, -6613, -6624, -6636, -6647, -6659, -6670, -6681, -6693, -6704, -6716, -6727, -6738, -6750, -6761, -6772, -6784, -6795, -6806, -6817, -6828, -6840, -6851, -6862, -6873, -6884, -6895, -6907, -6918, -6929, -6940, -6951, -6962, -6973, -6984, -6995, -7006, -7017, -7028, -7038, -7049, -7060, -7071, -7082, -7093, -7104, -7114, -7125, -7136, -7147, -7157, -7168, -7179, -7189, -7200, -7211, -7221, -7232, -7242, -7253, -7264, -7274, -7285, -7295, -7306, -7316, -7327, -7337, -7347, -7358, -7368, -7379, -7389, -7399, -7410, -7420, -7430, -7440, -7451, -7461, -7471, -7481, -7491, -7502, -7512, -7522, -7532, -7542, -7552, -7562, -7572, -7582, -7592, -7602, -7612, -7622, -7632, -7642, -7652, -7662, -7671, -7681, -7691, -7701, -7711, -7720, -7730, -7740, -7750, -7759, -7769, -7779, -7788, -7798, -7807, -7817, -7827, -7836, -7846, -7855, -7865, -7874, -7883, -7893, -7902, -7912, -7921, -7930, -7940, -7949, -7958, -7968, -7977, -7986, -7995, -8005, -8014, -8023, -8032, -8041, -8050, -8059, -8068, -8078, -8087, -8096, -8105, -8114, -8123, -8131, -8140, -8149, -8158, -8167, -8176, -8185, -8193, -8202, -8211, -8220, -8228, -8237, -8246, -8255, -8263, -8272, -8280, -8289, -8298, -8306, -8315, -8323, -8332, -8340, -8349, -8357, -8365, -8374, -8382, -8391, -8399, -8407, -8416, -8424, -8432, -8440, -8449, -8457, -8465, -8473, -8481, -8489, -8497, -8505, -8514, -8522, -8530, -8538, -8546, -8554, -8561, -8569, -8577, -8585, -8593, -8601, -8609, -8616, -8624, -8632, -8640, -8647, -8655, -8663, -8670, -8678, -8686, -8693, -8701, -8708, -8716, -8723, -8731, -8738, -8746, -8753, -8761, -8768, -8775, -8783, -8790, -8797, -8805, -8812, -8819, -8826, -8834, -8841, -8848, -8855, -8862, -8869, -8876, -8883, -8890, -8897, -8904, -8911, -8918, -8925, -8932, -8939, -8946, -8953, -8960, -8966, -8973, -8980, -8987, -8993, -9000, -9007, -9013, -9020, -9027, -9033, -9040, -9046, -9053, -9059, -9066, -9072, -9079, -9085, -9092, -9098, -9104, -9111, -9117, -9123, -9130, -9136, -9142, -9148, -9154, -9161, -9167, -9173, -9179, -9185, -9191, -9197, -9203, -9209, -9215, -9221, -9227, -9233, -9239, -9245, -9250, -9256, -9262, -9268, -9274, -9279, -9285, -9291, -9296, -9302, -9308, -9313, -9319, -9324, -9330, -9335, -9341, -9346, -9352, -9357, -9363, -9368, -9373, -9379, -9384, -9389, -9395, -9400, -9405, -9410, -9415, -9421, -9426, -9431, -9436, -9441, -9446, -9451, -9456, -9461, -9466, -9471, -9476, -9481, -9486, -9490, -9495, -9500, -9505, -9510, -9514, -9519, -9524, -9528, -9533, -9538, -9542, -9547, -9551, -9556, -9560, -9565, -9569, -9574, -9578, -9583, -9587, -9591, -9596, -9600, -9604, -9609, -9613, -9617, -9621, -9625, -9630, -9634, -9638, -9642, -9646, -9650, -9654, -9658, -9662, -9666, -9670, -9674, -9678, -9681, -9685, -9689, -9693, -9697, -9700, -9704, -9708, -9711, -9715, -9719, -9722, -9726, -9729, -9733, -9736, -9740, -9743, -9747, -9750, -9754, -9757, -9760, -9764, -9767, -9770, -9774, -9777, -9780, -9783, -9786, -9789, -9793, -9796, -9799, -9802, -9805, -9808, -9811, -9814, -9817, -9820, -9823, -9825, -9828, -9831, -9834, -9837, -9839, -9842, -9845, -9847, -9850, -9853, -9855, -9858, -9861, -9863, -9866, -9868, -9871, -9873, -9875, -9878, -9880, -9883, -9885, -9887, -9890, -9892, -9894, -9896, -9898, -9901, -9903, -9905, -9907, -9909, -9911, -9913, -9915, -9917, -9919, -9921, -9923, -9925, -9927, -9929, -9930, -9932, -9934, -9936, -9937, -9939, -9941, -9942, -9944, -9946, -9947, -9949, -9950, -9952, -9953, -9955, -9956, -9958, -9959, -9960, -9962, -9963, -9964, -9966, -9967, -9968, -9969, -9971, -9972, -9973, -9974, -9975, -9976, -9977, -9978, -9979, -9980, -9981, -9982, -9983, -9984, -9985, -9986, -9986, -9987, -9988, -9989, -9989, -9990, -9991, -9991, -9992, -9993, -9993, -9994, -9994, -9995, -9995, -9996, -9996, -9997, -9997, -9997, -9998, -9998, -9998, -9999, -9999, -9999, -9999, -9999, -10000, -10000, -10000, -10000, -10000, -10000, -10000, -10000, -10000, -10000, -10000, -10000, -10000, -9999, -9999, -9999, -9999, -9999, -9998, -9998, -9998, -9997, -9997, -9997, -9996, -9996, -9995, -9995, -9994, -9994, -9993, -9993, -9992, -9991, -9991, -9990, -9989, -9989, -9988, -9987, -9986, -9986, -9985, -9984, -9983, -9982, -9981, -9980, -9979, -9978, -9977, -9976, -9975, -9974, -9973, -9972, -9971, -9969, -9968, -9967, -9966, -9964, -9963, -9962, -9960, -9959, -9958, -9956, -9955, -9953, -9952, -9950, -9949, -9947, -9946, -9944, -9942, -9941, -9939, -9937, -9936, -9934, -9932, -9930, -9929, -9927, -9925, -9923, -9921, -9919, -9917, -9915, -9913, -9911, -9909, -9907, -9905, -9903, -9901, -9898, -9896, -9894, -9892, -9890, -9887, -9885, -9883, -9880, -9878, -9875, -9873, -9871, -9868, -9866, -9863, -9861, -9858, -9855, -9853, -9850, -9847, -9845, -9842, -9839, -9837, -9834, -9831, -9828, -9825, -9823, -9820, -9817, -9814, -9811, -9808, -9805, -9802, -9799, -9796, -9793, -9789, -9786, -9783, -9780, -9777, -9774, -9770, -9767, -9764, -9760, -9757, -9754, -9750, -9747, -9743, -9740, -9736, -9733, -9729, -9726, -9722, -9719, -9715, -9711, -9708, -9704, -9700, -9697, -9693, -9689, -9685, -9681, -9678, -9674, -9670, -9666, -9662, -9658, -9654, -9650, -9646, -9642, -9638, -9634, -9630, -9625, -9621, -9617, -9613, -9609, -9604, -9600, -9596, -9591, -9587, -9583, -9578, -9574, -9569, -9565, -9560, -9556, -9551, -9547, -9542, -9538, -9533, -9528, -9524, -9519, -9514, -9510, -9505, -9500, -9495, -9490, -9486, -9481, -9476, -9471, -9466, -9461, -9456, -9451, -9446, -9441, -9436, -9431, -9426, -9421, -9415, -9410, -9405, -9400, -9395, -9389, -9384, -9379, -9373, -9368, -9363, -9357, -9352, -9346, -9341, -9335, -9330, -9324, -9319, -9313, -9308, -9302, -9296, -9291, -9285, -9279, -9274, -9268, -9262, -9256, -9250, -9245, -9239, -9233, -9227, -9221, -9215, -9209, -9203, -9197, -9191, -9185, -9179, -9173, -9167, -9161, -9154, -9148, -9142, -9136, -9130, -9123, -9117, -9111, -9104, -9098, -9092, -9085, -9079, -9072, -9066, -9059, -9053, -9046, -9040, -9033, -9027, -9020, -9013, -9007, -9000, -8993, -8987, -8980, -8973, -8966, -8960, -8953, -8946, -8939, -8932, -8925, -8918, -8911, -8904, -8897, -8890, -8883, -8876, -8869, -8862, -8855, -8848, -8841, -8834, -8826, -8819, -8812, -8805, -8797, -8790, -8783, -8775, -8768, -8761, -8753, -8746, -8738, -8731, -8723, -8716, -8708, -8701, -8693, -8686, -8678, -8670, -8663, -8655, -8647, -8640, -8632, -8624, -8616, -8609, -8601, -8593, -8585, -8577, -8569, -8561, -8554, -8546, -8538, -8530, -8522, -8514, -8505, -8497, -8489, -8481, -8473, -8465, -8457, -8449, -8440, -8432, -8424, -8416, -8407, -8399, -8391, -8382, -8374, -8365, -8357, -8349, -8340, -8332, -8323, -8315, -8306, -8298, -8289, -8280, -8272, -8263, -8255, -8246, -8237, -8228, -8220, -8211, -8202, -8193, -8185, -8176, -8167, -8158, -8149, -8140, -8131, -8123, -8114, -8105, -8096, -8087, -8078, -8068, -8059, -8050, -8041, -8032, -8023, -8014, -8005, -7995, -7986, -7977, -7968, -7958, -7949, -7940, -7930, -7921, -7912, -7902, -7893, -7883, -7874, -7865, -7855, -7846, -7836, -7827, -7817, -7807, -7798, -7788, -7779, -7769, -7759, -7750, -7740, -7730, -7720, -7711, -7701, -7691, -7681, -7671, -7662, -7652, -7642, -7632, -7622, -7612, -7602, -7592, -7582, -7572, -7562, -7552, -7542, -7532, -7522, -7512, -7502, -7491, -7481, -7471, -7461, -7451, -7440, -7430, -7420, -7410, -7399, -7389, -7379, -7368, -7358, -7347, -7337, -7327, -7316, -7306, -7295, -7285, -7274, -7264, -7253, -7242, -7232, -7221, -7211, -7200, -7189, -7179, -7168, -7157, -7147, -7136, -7125, -7114, -7104, -7093, -7082, -7071, -7060, -7049, -7038, -7028, -7017, -7006, -6995, -6984, -6973, -6962, -6951, -6940, -6929, -6918, -6907, -6895, -6884, -6873, -6862, -6851, -6840, -6828, -6817, -6806, -6795, -6784, -6772, -6761, -6750, -6738, -6727, -6716, -6704, -6693, -6681, -6670, -6659, -6647, -6636, -6624, -6613, -6601, -6590, -6578, -6567, -6555, -6543, -6532, -6520, -6508, -6497, -6485, -6473, -6462, -6450, -6438, -6427, -6415, -6403, -6391, -6379, -6368, -6356, -6344, -6332, -6320, -6308, -6296, -6284, -6273, -6261, -6249, -6237, -6225, -6213, -6201, -6189, -6176, -6164, -6152, -6140, -6128, -6116, -6104, -6092, -6079, -6067, -6055, -6043, -6031, -6018, -6006, -5994, -5982, -5969, -5957, -5945, -5932, -5920, -5908, -5895, -5883, -5870, -5858, -5846, -5833, -5821, -5808, -5796, -5783, -5771, -5758, -5746, -5733, -5720, -5708, -5695, -5683, -5670, -5657, -5645, -5632, -5619, -5607, -5594, -5581, -5568, -5556, -5543, -5530, -5517, -5505, -5492, -5479, -5466, -5453, -5440, -5428, -5415, -5402, -5389, -5376, -5363, -5350, -5337, -5324, -5311, -5298, -5285, -5272, -5259, -5246, -5233, -5220, -5207, -5194, -5180, -5167, -5154, -5141, -5128, -5115, -5102, -5088, -5075, -5062, -5049, -5035, -5022, -5009, -4996, -4982, -4969, -4956, -4942, -4929, -4916, -4902, -4889, -4876, -4862, -4849, -4835, -4822, -4808, -4795, -4781, -4768, -4755, -4741, -4727, -4714, -4700, -4687, -4673, -4660, -4646, -4633, -4619, -4605, -4592, -4578, -4564, -4551, -4537, -4523, -4510, -4496, -4482, -4469, -4455, -4441, -4427, -4414, -4400, -4386, -4372, -4359, -4345, -4331, -4317, -4303, -4289, -4276, -4262, -4248, -4234, -4220, -4206, -4192, -4178, -4164, -4150, -4136, -4122, -4108, -4094, -4080, -4066, -4052, -4038, -4024, -4010, -3996, -3982, -3968, -3954, -3940, -3926, -3912, -3898, -3883, -3869, -3855, -3841, -3827, -3813, -3798, -3784, -3770, -3756, -3742, -3727, -3713, -3699, -3685, -3670, -3656, -3642, -3628, -3613, -3599, -3585, -3570, -3556, -3542, -3527, -3513, -3499, -3484, -3470, -3455, -3441, -3427, -3412, -3398, -3383, -3369, -3354, -3340, -3326, -3311, -3297, -3282, -3268, -3253, -3239, -3224, -3210, -3195, -3180, -3166, -3151, -3137, -3122, -3108, -3093, -3078, -3064, -3049, -3035, -3020, -3005, -2991, -2976, -2962, -2947, -2932, -2918, -2903, -2888, -2873, -2859, -2844, -2829, -2815, -2800, -2785, -2770, -2756, -2741, -2726, -2711, -2697, -2682, -2667, -2652, -2638, -2623, -2608, -2593, -2578, -2563, -2549, -2534, -2519, -2504, -2489, -2474, -2460, -2445, -2430, -2415, -2400, -2385, -2370, -2355, -2340, -2326, -2311, -2296, -2281, -2266, -2251, -2236, -2221, -2206, -2191, -2176, -2161, -2146, -2131, -2116, -2101, -2086, -2071, -2056, -2041, -2026, -2011, -1996, -1981, -1966, -1951, -1936, -1921, -1906, -1891, -1876, -1861, -1845, -1830, -1815, -1800, -1785, -1770, -1755, -1740, -1725, -1710, -1695, -1679, -1664, -1649, -1634, -1619, -1604, -1589, -1573, -1558, -1543, -1528, -1513, -1498, -1482, -1467, -1452, -1437, -1422, -1407, -1391, -1376, -1361, -1346, -1331, -1315, -1300, -1285, -1270, -1255, -1239, -1224, -1209, -1194, -1178, -1163, -1148, -1133, -1117, -1102, -1087, -1072, -1056, -1041, -1026, -1011, -995, -980, -965, -950, -934, -919, -904, -889, -873, -858, -843, -827, -812, -797, -782, -766, -751, -736, -720, -705, -690, -674, -659, -644, -629, -613, -598, -583, -567, -552, -537, -521, -506, -491, -475, -460, -445, -429, -414, -399, -383, -368, -353, -337, -322, -307, -291, -276, -261, -245, -230, -215, -199, -184, -169, -153, -138, -123, -107, -92, -77, -61, -46, -31, -15, 0, 15, 31, 46, 61, 77, 92, 107, 123, 138, 153, 169, 184, 199, 215, 230, 245, 261, 276, 291, 307, 322, 337, 353, 368, 383, 399, 414, 429, 445, 460, 475, 491, 506, 521, 537, 552, 567, 583, 598, 613, 629, 644, 659, 674, 690, 705, 720, 736, 751, 766, 782, 797, 812, 827, 843, 858, 873, 889, 904, 919, 934, 950, 965, 980, 995, 1011, 1026, 1041, 1056, 1072, 1087, 1102, 1117, 1133, 1148, 1163, 1178, 1194, 1209, 1224, 1239, 1255, 1270, 1285, 1300, 1315, 1331, 1346, 1361, 1376, 1391, 1407, 1422, 1437, 1452, 1467, 1482, 1498, 1513, 1528, 1543, 1558, 1573, 1589, 1604, 1619, 1634, 1649, 1664, 1679, 1695, 1710, 1725, 1740, 1755, 1770, 1785, 1800, 1815, 1830, 1845, 1861, 1876, 1891, 1906, 1921, 1936, 1951, 1966, 1981, 1996, 2011, 2026, 2041, 2056, 2071, 2086, 2101, 2116, 2131, 2146, 2161, 2176, 2191, 2206, 2221, 2236, 2251, 2266, 2281, 2296, 2311, 2326, 2340, 2355, 2370, 2385, 2400, 2415, 2430, 2445, 2460, 2474, 2489, 2504, 2519, 2534, 2549, 2563, 2578, 2593, 2608, 2623, 2638, 2652, 2667, 2682, 2697, 2711, 2726, 2741, 2756, 2770, 2785, 2800, 2815, 2829, 2844, 2859, 2873, 2888, 2903, 2918, 2932, 2947, 2962, 2976, 2991, 3005, 3020, 3035, 3049, 3064, 3078, 3093, 3108, 3122, 3137, 3151, 3166, 3180, 3195, 3210, 3224, 3239, 3253, 3268, 3282, 3297, 3311, 3326, 3340, 3354, 3369, 3383, 3398, 3412, 3427, 3441, 3455, 3470, 3484, 3499, 3513, 3527, 3542, 3556, 3570, 3585, 3599, 3613, 3628, 3642, 3656, 3670, 3685, 3699, 3713, 3727, 3742, 3756, 3770, 3784, 3798, 3813, 3827, 3841, 3855, 3869, 3883, 3898, 3912, 3926, 3940, 3954, 3968, 3982, 3996, 4010, 4024, 4038, 4052, 4066, 4080, 4094, 4108, 4122, 4136, 4150, 4164, 4178, 4192, 4206, 4220, 4234, 4248, 4262, 4276, 4289, 4303, 4317, 4331, 4345, 4359, 4372, 4386, 4400, 4414, 4427, 4441, 4455, 4469, 4482, 4496, 4510, 4523, 4537, 4551, 4564, 4578, 4592, 4605, 4619, 4633, 4646, 4660, 4673, 4687, 4700, 4714, 4727, 4741, 4755, 4768, 4781, 4795, 4808, 4822, 4835, 4849, 4862, 4876, 4889, 4902, 4916, 4929, 4942, 4956, 4969, 4982, 4996, 5009, 5022, 5035, 5049, 5062, 5075, 5088, 5102, 5115, 5128, 5141, 5154, 5167, 5180, 5194, 5207, 5220, 5233, 5246, 5259, 5272, 5285, 5298, 5311, 5324, 5337, 5350, 5363, 5376, 5389, 5402, 5415, 5428, 5440, 5453, 5466, 5479, 5492, 5505, 5517, 5530, 5543, 5556, 5568, 5581, 5594, 5607, 5619, 5632, 5645, 5657, 5670, 5683, 5695, 5708, 5720, 5733, 5746, 5758, 5771, 5783, 5796, 5808, 5821, 5833, 5846, 5858, 5870, 5883, 5895, 5908, 5920, 5932, 5945, 5957, 5969, 5982, 5994, 6006, 6018, 6031, 6043, 6055, 6067, 6079, 6092, 6104, 6116, 6128, 6140, 6152, 6164, 6176, 6189, 6201, 6213, 6225, 6237, 6249, 6261, 6273, 6284, 6296, 6308, 6320, 6332, 6344, 6356, 6368, 6379, 6391, 6403, 6415, 6427, 6438, 6450, 6462, 6473, 6485, 6497, 6508, 6520, 6532, 6543, 6555, 6567, 6578, 6590, 6601, 6613, 6624, 6636, 6647, 6659, 6670, 6681, 6693, 6704, 6716, 6727, 6738, 6750, 6761, 6772, 6784, 6795, 6806, 6817, 6828, 6840, 6851, 6862, 6873, 6884, 6895, 6907, 6918, 6929, 6940, 6951, 6962, 6973, 6984, 6995, 7006, 7017, 7028, 7038, 7049, 7060, 7071, 7082, 7093, 7104, 7114, 7125, 7136, 7147, 7157, 7168, 7179, 7189, 7200, 7211, 7221, 7232, 7242, 7253, 7264, 7274, 7285, 7295, 7306, 7316, 7327, 7337, 7347, 7358, 7368, 7379, 7389, 7399, 7410, 7420, 7430, 7440, 7451, 7461, 7471, 7481, 7491, 7502, 7512, 7522, 7532, 7542, 7552, 7562, 7572, 7582, 7592, 7602, 7612, 7622, 7632, 7642, 7652, 7662, 7671, 7681, 7691, 7701, 7711, 7720, 7730, 7740, 7750, 7759, 7769, 7779, 7788, 7798, 7807, 7817, 7827, 7836, 7846, 7855, 7865, 7874, 7883, 7893, 7902, 7912, 7921, 7930, 7940, 7949, 7958, 7968, 7977, 7986, 7995, 8005, 8014, 8023, 8032, 8041, 8050, 8059, 8068, 8078, 8087, 8096, 8105, 8114, 8123, 8131, 8140, 8149, 8158, 8167, 8176, 8185, 8193, 8202, 8211, 8220, 8228, 8237, 8246, 8255, 8263, 8272, 8280, 8289, 8298, 8306, 8315, 8323, 8332, 8340, 8349, 8357, 8365, 8374, 8382, 8391, 8399, 8407, 8416, 8424, 8432, 8440, 8449, 8457, 8465, 8473, 8481, 8489, 8497, 8505, 8514, 8522, 8530, 8538, 8546, 8554, 8561, 8569, 8577, 8585, 8593, 8601, 8609, 8616, 8624, 8632, 8640, 8647, 8655, 8663, 8670, 8678, 8686, 8693, 8701, 8708, 8716, 8723, 8731, 8738, 8746, 8753, 8761, 8768, 8775, 8783, 8790, 8797, 8805, 8812, 8819, 8826, 8834, 8841, 8848, 8855, 8862, 8869, 8876, 8883, 8890, 8897, 8904, 8911, 8918, 8925, 8932, 8939, 8946, 8953, 8960, 8966, 8973, 8980, 8987, 8993, 9000, 9007, 9013, 9020, 9027, 9033, 9040, 9046, 9053, 9059, 9066, 9072, 9079, 9085, 9092, 9098, 9104, 9111, 9117, 9123, 9130, 9136, 9142, 9148, 9154, 9161, 9167, 9173, 9179, 9185, 9191, 9197, 9203, 9209, 9215, 9221, 9227, 9233, 9239, 9245, 9250, 9256, 9262, 9268, 9274, 9279, 9285, 9291, 9296, 9302, 9308, 9313, 9319, 9324, 9330, 9335, 9341, 9346, 9352, 9357, 9363, 9368, 9373, 9379, 9384, 9389, 9395, 9400, 9405, 9410, 9415, 9421, 9426, 9431, 9436, 9441, 9446, 9451, 9456, 9461, 9466, 9471, 9476, 9481, 9486, 9490, 9495, 9500, 9505, 9510, 9514, 9519, 9524, 9528, 9533, 9538, 9542, 9547, 9551, 9556, 9560, 9565, 9569, 9574, 9578, 9583, 9587, 9591, 9596, 9600, 9604, 9609, 9613, 9617, 9621, 9625, 9630, 9634, 9638, 9642, 9646, 9650, 9654, 9658, 9662, 9666, 9670, 9674, 9678, 9681, 9685, 9689, 9693, 9697, 9700, 9704, 9708, 9711, 9715, 9719, 9722, 9726, 9729, 9733, 9736, 9740, 9743, 9747, 9750, 9754, 9757, 9760, 9764, 9767, 9770, 9774, 9777, 9780, 9783, 9786, 9789, 9793, 9796, 9799, 9802, 9805, 9808, 9811, 9814, 9817, 9820, 9823, 9825, 9828, 9831, 9834, 9837, 9839, 9842, 9845, 9847, 9850, 9853, 9855, 9858, 9861, 9863, 9866, 9868, 9871, 9873, 9875, 9878, 9880, 9883, 9885, 9887, 9890, 9892, 9894, 9896, 9898, 9901, 9903, 9905, 9907, 9909, 9911, 9913, 9915, 9917, 9919, 9921, 9923, 9925, 9927, 9929, 9930, 9932, 9934, 9936, 9937, 9939, 9941, 9942, 9944, 9946, 9947, 9949, 9950, 9952, 9953, 9955, 9956, 9958, 9959, 9960, 9962, 9963, 9964, 9966, 9967, 9968, 9969, 9971, 9972, 9973, 9974, 9975, 9976, 9977, 9978, 9979, 9980, 9981, 9982, 9983, 9984, 9985, 9986, 9986, 9987, 9988, 9989, 9989, 9990, 9991, 9991, 9992, 9993, 9993, 9994, 9994, 9995, 9995, 9996, 9996, 9997, 9997, 9997, 9998, 9998, 9998, 9999, 9999, 9999, 9999, 9999, 10000, 10000, 10000, 10000, 10000, 10000 }; // DebugHelper.Assert(SinCosLookupTable.sin_table.Length == SinCosLookupTable.COUNT); // DebugHelper.Assert(SinCosLookupTable.cos_table.Length == SinCosLookupTable.COUNT); } public static int getIndex(long nom, long den) { nom *= (long)SinCosLookupTable.NOM_MUL; den *= 62832L; int num = (int)(nom / den); return num & SinCosLookupTable.MASK; } }