/** * Copyright 2019-2020 Huawei Technologies Co., Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "common/formats/format_transfers/format_transfer_transpose.h" namespace ge { namespace formats { class UtestFormatTranspose : public testing::Test { protected: void SetUp() {} void TearDown() {} }; TEST_F(UtestFormatTranspose, one) { uint8_t data[1] = {100}; uint8_t ret[1] = {100}; TransResult result; EXPECT_EQ(TransposeWithShapeCheck(data, std::vector({1, 1, 1, 1}), std::vector({1, 1, 1, 1}), DT_UINT8, std::vector({3, 2, 1, 0}), result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((result.data.get())[i], ret[i]); } } TEST_F(UtestFormatTranspose, no_trans) { uint8_t data[5] = {1, 2, 3, 4, 5}; uint8_t ret[5] = {1, 2, 3, 4, 5}; TransResult result; EXPECT_EQ(TransposeWithShapeCheck(data, std::vector({1, 1, 1, 5}), std::vector({1, 1, 1, 5}), DT_UINT8, std::vector({2, 1, 0, 3}), result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((result.data.get())[i], ret[i]); } } /* TEST_F(UtestFormatTranspose, param_invalid) { uint8_t data[5] = {1, 2, 3, 4, 5}; TransResult result; EXPECT_NE(TransposeWithShapeCheck(nullptr, std::vector({1, 1, 1, 5}), std::vector({1, 1, 1, 5}), DT_UINT8, std::vector({2, 1, 0, 3}), result), SUCCESS); EXPECT_NE(TransposeWithShapeCheck(data, std::vector({}), std::vector({1, 1, 1, 5}), DT_UINT8, std::vector({2, 1, 0, 3}), result), SUCCESS); EXPECT_NE(TransposeWithShapeCheck(data, std::vector({1, 1, 1, 5}), std::vector({1, 1, 1, 5}), DT_UINT8, std::vector({2, 1, 0}), result), SUCCESS); EXPECT_NE(TransposeWithShapeCheck(data, std::vector({1, 1, 1, 5}), std::vector({1, 1, 1, 5}), DT_UINT8, std::vector({}), result), SUCCESS); EXPECT_NE(TransposeWithShapeCheck(data, std::vector({1, 1, 1, 5}), std::vector({1, 1, 1, 5}), DT_UINT8, std::vector({2, 1, 0, 0}), result), SUCCESS); EXPECT_NE(TransposeWithShapeCheck(data, std::vector({1, 1, 1, 5}), std::vector({1, 1, 1, 5}), DT_UNDEFINED, std::vector({2, 1, 0, 3}), result), SUCCESS); EXPECT_NE(TransposeWithShapeCheck(data, std::vector({1, 1, 1, 5}), std::vector({1, 1, 1, 5}), DT_UINT8, std::vector({2, 1, 0, 3, 4}), result), SUCCESS); EXPECT_NE(TransposeWithShapeCheck(data, std::vector({1, 1, 1, 5}), std::vector({1, 1, 1, 5}), DT_UINT8, std::vector({3, 1, 0, 2}), result), SUCCESS); } */ TEST_F(UtestFormatTranspose, transpose_with_shape_check_2d) { uint8_t data[4] = {1, 2, 3, 4}; uint8_t ret[4] = {1, 3, 2, 4}; TransResult result; EXPECT_EQ(TransposeWithShapeCheck(data, std::vector({2, 2}), std::vector({2, 2}), DT_UINT8, std::vector({1, 0}), result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((result.data.get())[i], ret[i]); } } TEST_F(UtestFormatTranspose, nchw_to_hwcn1) { uint16_t data[1 * 3 * 4 * 4] = { 15322, 14946, 12601, 14058, 12641, 14470, 14686, 15052, 11964, 14846, 13154, 13571, 14947, 12467, 12786, 14238, 15334, 14814, 13608, 12163, 14169, 15274, 14780, 15303, 14986, 14841, 14290, 13785, 13878, 11576, 14411, 14522, 14394, 13508, 13021, 14691, 13263, 15145, 14724, 15167, 14523, 13334, 14834, 13844, 9902, 14984, 15051, 14511, }; uint16_t ret[4 * 4 * 3 * 1] = { 15322, 15334, 14394, 14946, 14814, 13508, 12601, 13608, 13021, 14058, 12163, 14691, 12641, 14169, 13263, 14470, 15274, 15145, 14686, 14780, 14724, 15052, 15303, 15167, 11964, 14986, 14523, 14846, 14841, 13334, 13154, 14290, 14834, 13571, 13785, 13844, 14947, 13878, 9902, 12467, 11576, 14984, 12786, 14411, 15051, 14238, 14522, 14511, }; TransResult result; EXPECT_EQ(TransposeWithShapeCheck(reinterpret_cast(data), std::vector({1, 3, 4, 4}), std::vector({4, 4, 3, 1}), DT_FLOAT16, std::vector({2, 3, 1, 0}), result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, nchw_to_hwcn2) { uint16_t data[8 * 3 * 16 * 16] = { 15218, 13789, 13063, 9806, 14988, 15221, 11097, 15162, 11381, 15333, 14921, 14612, 14806, 13951, 13796, 9764, 12642, 12389, 15154, 14243, 14542, 13551, 14819, 14219, 12500, 11825, 13389, 13967, 14601, 12846, 12777, 14399, 13604, 15360, 14275, 1482, 12466, 12181, 15129, 13778, 15327, 14392, 14481, 14440, 14443, 13718, 15180, 14864, 14155, 14405, 13414, 13070, 15013, 15134, 12188, 12467, 14942, 14851, 13225, 14767, 14392, 15052, 13812, 15322, 15092, 13656, 15121, 14915, 14587, 15050, 13050, 14725, 14548, 15140, 14582, 15256, 14727, 14590, 14849, 13786, 11356, 14817, 12373, 12298, 13860, 11082, 14150, 13574, 14752, 14076, 14821, 14959, 14625, 15264, 14614, 14827, 14355, 10344, 14213, 14615, 15061, 12439, 14468, 13154, 15284, 14383, 14890, 14412, 14149, 14472, 14926, 13993, 14641, 15171, 14781, 13145, 12947, 14460, 15079, 14334, 12615, 14999, 15186, 15196, 14353, 14469, 14463, 13002, 13222, 12367, 15230, 14639, 11884, 13924, 14306, 10514, 14267, 14709, 13312, 14045, 14767, 15236, 13136, 13564, 15090, 13879, 14777, 13060, 14849, 13626, 14772, 12754, 13192, 11059, 14809, 13715, 14743, 15326, 11682, 14940, 15001, 15259, 12495, 13345, 14374, 14623, 12469, 14286, 15152, 14539, 13554, 12103, 14891, 15214, 14792, 14589, 13333, 14774, 13236, 15267, 12822, 15313, 13400, 10680, 15178, 11675, 14763, 14768, 13488, 12296, 15327, 13629, 10754, 15079, 15134, 13082, 13724, 12625, 15072, 12016, 12175, 8693, 12380, 15244, 14810, 13580, 14749, 14387, 14789, 13201, 15287, 14421, 11550, 14539, 15190, 15051, 15165, 14662, 15348, 13068, 15344, 14915, 14271, 15164, 15139, 14424, 14958, 14993, 14808, 13020, 13805, 14455, 14005, 11593, 14578, 13430, 13973, 14623, 13813, 14042, 15117, 14152, 14845, 13981, 13084, 15173, 15197, 12494, 15290, 15310, 15113, 15059, 14753, 13861, 14350, 9261, 14570, 15273, 10601, 14614, 13511, 12111, 10253, 14059, 13561, 13971, 14712, 13934, 13660, 15269, 14971, 12354, 14996, 14591, 13842, 12773, 13814, 12790, 14484, 12382, 14624, 14191, 12378, 15116, 12684, 12997, 14967, 14958, 13047, 15269, 11493, 14822, 13442, 14588, 15007, 15143, 14340, 15358, 15114, 14642, 14519, 14391, 13350, 14960, 14955, 15137, 12575, 15041, 14078, 11693, 13219, 14677, 12349, 14568, 13739, 12587, 15351, 13895, 13355, 14526, 14910, 14515, 14676, 15074, 13644, 13561, 12228, 13685, 12776, 14880, 14721, 14385, 13613, 14790, 14501, 15228, 14632, 12788, 11308, 8196, 12790, 11970, 14845, 14754, 14978, 13231, 13764, 14244, 14707, 14632, 9242, 14691, 14346, 13486, 14071, 14448, 15003, 12118, 14713, 14558, 14760, 14422, 13875, 13085, 14393, 14779, 13814, 13111, 13383, 14018, 14014, 14839, 14210, 12437, 15339, 13604, 13255, 14629, 15189, 11812, 15144, 14950, 13682, 12963, 14100, 14212, 14821, 14517, 15276, 14529, 8493, 13500, 10752, 14522, 14509, 13676, 14529, 12640, 11053, 15280, 14044, 13446, 11286, 11612, 14305, 14579, 13706, 12916, 14970, 13922, 15135, 15114, 13592, 15021, 14016, 15263, 14702, 15000, 13327, 14491, 11318, 14949, 14963, 12681, 14150, 9512, 11371, 14225, 12227, 14448, 13459, 14305, 15239, 14422, 14733, 13827, 14706, 14982, 12596, 14136, 9851, 9769, 14905, 15025, 14162, 15093, 14252, 12626, 12374, 12762, 12035, 13241, 10954, 14646, 13949, 14180, 14235, 14558, 10275, 11083, 14919, 13859, 13848, 13996, 14710, 13592, 12164, 14703, 13770, 14721, 14737, 10447, 15344, 14407, 14465, 12551, 12164, 14097, 14774, 11433, 15191, 13576, 14643, 14531, 14848, 14582, 15327, 12373, 13330, 14428, 13499, 14613, 15328, 14293, 12528, 12854, 15050, 11194, 13966, 10159, 12044, 15323, 12442, 14291, 13730, 7621, 12430, 14331, 15017, 14669, 14306, 14172, 13537, 13048, 14247, 14831, 14781, 14660, 14549, 15142, 14835, 14988, 12002, 14360, 13185, 15315, 14304, 14346, 13827, 14474, 14714, 10817, 13536, 13742, 11544, 13650, 13566, 11179, 14200, 9798, 14579, 14496, 14902, 13323, 14848, 13776, 14646, 13786, 14569, 12899, 14372, 13270, 14343, 13424, 15342, 14625, 11393, 15071, 14705, 14128, 14430, 14405, 15129, 14692, 12506, 15086, 15131, 9296, 14861, 13993, 12487, 10378, 7262, 14524, 14602, 12789, 15325, 14425, 13418, 15162, 14152, 14702, 15297, 15187, 13744, 15250, 14461, 14875, 10122, 14458, 14063, 12743, 14546, 14711, 14665, 14763, 14571, 12480, 14459, 15059, 12350, 14258, 15143, 14633, 14291, 14381, 13334, 13746, 11936, 13767, 14704, 14724, 15269, 10572, 14916, 14240, 14564, 14939, 13403, 14049, 14328, 12835, 14571, 13628, 15218, 14857, 14581, 14943, 15309, 14376, 14452, 14178, 14727, 14594, 15309, 14408, 15190, 15155, 13353, 14081, 14178, 14753, 12683, 14510, 14358, 8334, 15131, 13286, 14329, 11491, 12389, 14982, 14191, 11493, 14472, 12930, 14930, 14031, 14943, 14279, 14742, 13768, 12287, 14877, 13965, 13996, 14883, 14902, 11537, 14967, 11473, 15198, 14982, 13857, 14537, 14448, 14696, 14388, 14096, 14829, 15314, 12586, 14195, 14287, 13738, 14967, 14392, 15152, 14879, 15328, 14645, 14385, 14702, 14024, 14833, 15136, 13371, 13783, 13702, 13579, 12598, 15077, 13490, 10935, 15127, 11977, 14303, 12646, 12844, 14046, 8742, 14972, 14982, 14420, 14442, 15101, 14515, 14755, 11503, 14877, 13653, 14387, 14611, 14332, 15150, 13412, 14739, 13091, 8129, 13834, 14871, 15002, 12871, 13629, 13654, 15171, 15009, 15085, 12316, 11567, 15009, 15261, 13573, 15056, 14732, 13588, 14379, 15171, 15325, 13221, 11819, 12691, 14416, 7682, 14939, 12788, 15052, 14503, 11688, 14527, 11339, 15313, 15150, 14100, 13396, 14594, 14431, 15039, 12000, 14817, 13488, 15202, 14710, 14741, 14217, 14517, 13382, 14079, 12370, 14990, 14584, 12725, 14595, 12642, 11533, 14510, 9512, 14471, 14828, 12574, 14521, 14982, 13539, 14860, 14720, 10552, 14985, 13661, 11420, 13696, 14362, 10515, 14653, 13420, 13574, 13842, 14508, 14830, 14449, 11494, 14313, 14673, 14209, 14817, 14760, 15325, 12427, 14847, 14085, 13609, 10869, 14273, 14995, 14660, 11322, 11275, 13323, 14472, 14533, 13474, 14696, 14739, 14767, 8285, 14735, 14583, 13389, 13920, 14861, 14999, 14418, 14663, 13542, 10913, 14829, 14093, 15194, 13299, 14175, 14737, 13490, 15007, 13549, 14065, 14150, 9607, 12753, 14712, 14758, 12337, 13471, 13781, 15016, 12606, 14779, 15001, 13475, 14449, 14971, 12807, 13895, 14198, 14598, 14393, 13989, 15225, 15306, 14117, 15039, 13918, 14849, 12393, 14612, 13905, 14883, 15059, 13914, 14043, 14936, 14430, 13070, 12897, 13972, 14337, 13769, 14968, 14557, 14746, 13365, 13025, 15023, 15299, 14620, 13806, 14778, 15358, 14191, 12524, 12255, 14752, 15312, 9470, 12437, 15227, 14637, 15304, 14797, 12762, 10875, 12814, 3788, 15006, 14751, 14499, 14294, 14850, 14893, 14214, 15286, 13012, 14822, 12537, 11468, 14371, 14215, 14813, 15033, 15196, 14925, 14348, 14536, 12966, 14970, 11085, 13579, 14872, 14248, 11043, 13828, 14114, 14287, 14391, 13944, 15329, 15003, 11492, 14154, 13456, 12964, 12496, 15261, 14923, 15336, 15037, 13390, 14493, 14713, 15019, 14293, 13816, 12662, 15160, 14489, 13974, 15213, 14889, 15212, 15267, 14752, 8384, 14623, 14903, 11864, 9326, 15255, 11005, 13914, 14549, 14398, 15244, 13693, 14341, 11535, 14654, 14674, 15241, 15328, 12293, 13321, 15081, 12861, 13159, 14620, 13644, 14188, 14633, 14903, 13592, 15103, 14350, 15345, 14846, 14388, 13738, 10832, 14052, 14990, 12614, 14796, 13244, 12419, 14204, 12856, 10574, 14500, 14512, 13559, 15188, 15274, 13894, 13515, 13458, 12779, 15261, 14628, 15334, 8955, 13353, 15231, 14660, 11967, 4435, 14773, 15006, 14794, 14499, 14999, 11392, 13341, 11410, 14180, 14814, 13278, 11612, 14759, 15079, 13932, 15020, 14475, 14692, 14334, 15157, 13972, 12724, 13396, 14572, 13554, 15306, 9348, 12110, 14500, 14187, 14349, 15306, 11988, 15276, 13176, 13510, 15352, 11060, 10274, 14055, 13916, 13974, 13812, 14888, 9789, 14606, 14849, 14668, 14740, 12950, 14676, 10339, 13928, 6121, 13608, 14449, 13549, 14252, 14362, 14584, 15153, 15264, 14961, 14122, 14968, 14814, 14811, 9819, 14972, 13767, 14648, 13956, 14341, 13975, 13825, 13647, 13696, 15314, 13906, 14318, 10364, 12538, 14474, 12996, 15339, 8103, 14442, 15331, 14930, 14339, 13716, 14063, 14031, 14113, 15074, 13536, 14418, 12597, 14481, 14542, 15172, 14849, 14469, 14431, 14729, 13943, 15047, 14663, 15267, 13504, 13551, 14845, 11375, 12531, 14638, 14169, 14607, 15284, 13715, 13134, 14272, 10766, 11235, 11853, 15015, 15210, 13829, 15151, 13477, 10944, 13181, 12564, 12647, 14486, 13412, 15301, 12634, 14011, 11887, 14983, 14634, 14411, 10804, 9485, 12962, 11214, 12328, 12395, 13989, 14528, 13806, 12067, 15158, 13410, 15067, 14638, 14541, 14087, 12958, 13592, 14412, 14995, 14641, 11765, 15090, 14705, 15000, 12734, 15234, 14372, 14295, 13277, 14770, 14771, 12810, 14520, 11019, 15314, 13267, 14179, 12742, 13361, 14904, 12140, 11992, 12478, 14525, 14825, 11815, 15216, 13662, 14363, 14692, 14344, 12561, 14433, 14937, 13507, 15345, 6760, 15265, 13347, 15342, 15000, 12328, 14138, 15350, 14572, 14830, 14685, 14397, 13494, 15258, 14661, 11364, 15343, 11424, 14350, 15078, 14725, 10612, 15315, 12576, 15192, 14077, 13441, 11546, 14829, 12268, 12293, 14655, 14450, 13528, 13954, 15103, 14345, 14934, 13875, 12185, 14507, 12663, 12896, 15354, 14390, 14705, 13549, 12529, 13556, 12874, 13536, 13400, 14685, 14849, 14374, 14298, 13022, 14550, 11880, 14537, 14675, 14003, 15281, 15122, 14851, 15039, 15298, 14211, 13042, 14503, 14517, 13683, 14763, 11346, 15044, 15321, 15096, 15189, 14985, 15021, 15196, 14337, 14357, 14564, 14943, 14373, 13649, 14416, 14748, 14960, 14525, 13729, 13920, 14933, 14221, 13133, 15164, 9397, 15266, 14966, 14091, 14537, 13835, 12753, 14873, 12268, 12311, 13190, 14888, 13878, 12792, 14889, 11654, 13777, 14329, 14540, 14158, 12539, 14376, 14553, 14089, 13427, 14262, 14407, 14149, 14517, 13011, 14917, 13779, 14755, 13513, 14555, 14474, 13286, 14699, 15067, 14412, 14982, 11359, 15004, 14990, 15069, 14919, 14950, 13937, 14195, 12140, 14201, 14802, 13937, 15146, 15181, 11793, 14301, 14790, 13138, 14787, 14514, 15099, 13834, 13912, 15017, 14093, 12065, 12842, 13406, 14385, 15135, 15214, 14418, 11339, 12475, 13842, 12559, 13595, 14595, 14670, 13792, 15253, 11269, 14291, 15079, 13200, 12335, 12378, 14434, 11908, 13681, 14793, 15127, 14356, 12978, 14811, 11775, 13919, 12760, 14758, 13115, 13031, 14185, 14786, 14407, 12650, 13962, 14642, 15049, 13677, 15335, 14354, 14537, 14108, 14673, 14002, 14507, 13544, 15122, 13339, 15089, 14106, 11694, 14445, 12387, 12979, 14687, 15034, 13409, 14313, 15168, 15124, 10487, 13561, 14101, 12167, 14054, 13066, 14116, 14450, 14392, 13553, 12829, 15132, 14744, 13027, 14425, 14314, 14351, 14538, 13429, 15317, 13803, 15163, 13876, 11961, 13437, 14771, 15096, 14590, 14350, 13138, 12992, 11998, 14850, 14797, 15226, 15234, 11873, 14678, 12445, 13654, 15166, 10400, 13354, 11459, 11870, 14241, 12585, 12391, 11801, 13821, 15332, 15356, 15000, 14560, 14702, 12324, 11848, 15176, 15082, 14412, 13784, 14528, 14376, 14842, 15115, 13823, 14363, 11269, 13465, 13087, 13715, 12974, 14681, 15022, 12342, 14265, 14674, 12826, 14340, 14520, 13047, 15316, 14807, 14481, 12598, 14704, 13351, 15082, 15067, 13866, 13518, 14341, 14837, 15240, 14617, 14434, 10382, 14981, 12757, 15213, 15012, 14836, 15098, 14446, 14205, 11360, 14867, 11183, 14925, 14973, 15132, 14662, 15281, 14472, 13549, 13569, 14746, 14360, 13577, 13462, 13398, 13902, 15106, 12754, 15259, 13547, 13611, 14983, 14772, 14599, 12614, 14450, 10473, 13737, 14772, 13969, 11955, 10848, 14957, 14402, 11446, 14605, 14938, 12756, 15299, 14719, 12453, 14875, 12038, 14527, 12941, 11553, 13448, 13231, 14153, 14431, 13622, 14480, 14111, 12829, 10315, 14477, 14403, 13575, 14268, 9819, 12755, 10403, 13660, 13787, 13443, 13699, 13385, 8281, 14241, 13847, 13816, 14800, 13570, 14818, 13494, 14393, 14849, 14506, 14615, 13788, 13944, 13122, 15143, 15217, 15164, 12921, 12855, 13307, 15167, 14993, 12959, 14562, 13566, 13639, 13129, 15091, 14359, 13464, 15020, 13249, 13602, 15278, 15101, 14380, 11149, 14829, 13966, 13610, 14757, 13690, 15147, 14562, 9557, 14820, 10297, 15225, 12498, 12835, 13894, 13180, 14180, 14472, 15092, 15186, 14861, 15154, 15050, 14575, 14916, 11435, 11264, 12924, 14926, 11680, 12350, 14206, 11983, 12585, 13831, 14440, 9680, 14165, 14189, 15262, 12423, 14919, 15232, 12348, 14704, 11942, 13874, 14876, 14497, 13414, 15086, 14382, 14736, 13597, 15042, 14514, 13887, 12503, 14151, 10874, 12706, 14781, 11952, 15081, 13753, 14921, 10081, 14791, 14602, 14387, 14731, 14813, 14692, 15260, 12198, 15102, 7559, 15310, 15000, 12493, 13863, 14925, 15108, 15296, 15195, 13642, 10878, 14602, 12378, 13938, 12365, 11940, 12834, 14280, 10956, 13874, 12301, 13047, 15057, 11779, 15144, 13292, 15326, 14378, 15042, 12083, 14036, 14905, 14105, 11852, 14379, 13007, 15076, 11791, 14982, 14432, 13345, 12955, 12652, 12331, 13562, 13186, 14600, 15088, 14488, 11367, 9824, 14634, 10852, 8895, 14501, 14407, 12460, 11978, 12420, 13791, 14591, 13477, 12615, 13527, 13335, 12086, 12608, 14836, 15036, 12800, 12850, 10882, 14328, 14603, 14703, 14957, 15217, 14357, 13375, 15151, 12154, 13324, 14318, 13470, 13695, 12912, 14830, 15347, 10255, 11560, 14822, 11273, 13541, 13047, 12132, 11038, 14862, 13650, 15021, 13383, 14704, 15064, 12557, 14741, 15103, 15065, 13970, 13449, 15065, 14729, 13885, 14012, 11767, 12651, 13736, 11480, 10809, 14768, 12047, 10174, 14746, 13892, 14563, 13479, 13101, 14285, 11775, 14068, 13810, 12422, 13599, 12848, 10933, 13937, 14770, 14699, 6755, 14867, 12798, 14866, 13186, 14845, 14471, 14563, 13181, 15190, 14848, 15338, 13435, 15224, 13233, 14862, 15286, 14406, 14487, 11236, 14493, 12916, 15208, 15183, 14474, 14285, 14420, 13579, 13761, 13549, 14512, 14650, 12536, 14683, 13692, 15078, 14256, 15032, 15239, 12488, 14582, 14558, 13495, 15244, 12941, 14475, 14822, 13426, 14937, 15092, 14967, 13737, 11368, 8816, 12385, 13206, 13019, 14724, 13788, 15160, 14782, 13039, 14092, 9339, 14015, 14925, 14904, 14032, 15160, 15310, 9672, 14639, 15305, 13544, 12614, 14706, 15357, 14737, 15114, 15205, 14450, 14460, 14702, 14517, 14558, 14919, 12885, 14779, 9461, 15319, 12568, 13550, 13249, 15267, 14166, 12426, 14439, 14854, 15035, 13305, 12616, 14024, 14951, 14754, 13931, 13462, 14956, 13139, 13726, 12398, 15305, 15256, 13080, 14628, 13610, 14813, 14644, 14243, 10331, 12727, 13859, 14606, 13554, 15157, 14667, 13664, 14833, 14667, 13740, 12873, 15189, 14387, 14935, 13890, 13907, 15342, 12773, 13886, 15152, 14829, 14052, 15030, 14446, 13166, 11313, 13975, 12073, 15246, 13404, 13810, 14752, 13630, 12629, 14754, 14912, 15334, 15248, 13617, 14580, 13750, 15094, 11908, 13645, 12972, 15324, 13209, 14508, 14948, 14917, 10841, 13988, 14567, 15046, 14293, 14564, 15061, 13722, 14086, 13305, 12296, 15074, 11627, 13281, 14549, 15352, 15279, 10810, 12869, 13563, 13654, 14388, 14615, 13898, 8926, 12892, 15250, 13918, 11639, 14022, 14410, 14616, 15294, 12059, 14953, 14264, 12695, 14934, 12955, 12851, 12398, 14708, 14724, 15006, 14703, 13545, 14384, 12363, 14777, 13486, 14228, 10036, 15317, 14048, 14216, 12377, 14131, 14999, 13452, 14206, 14608, 14568, 14954, 15056, 14978, 14941, 13611, 14465, 10974, 11154, 13454, 13849, 15128, 13232, 13263, 13805, 12720, 14753, 15302, 14813, 13988, 15097, 14569, 14419, 14515, 13400, 14627, 15072, 14987, 14911, 12918, 15047, 14054, 14510, 12601, 13932, 13963, 14796, 14262, 14543, 14954, 13863, 15314, 14891, 15044, 15000, 10362, 13999, 14362, 14886, 15260, 13733, 14715, 13677, 14179, 13461, 15171, 13255, 12089, 13883, 14715, 13940, 12857, 15187, 14448, 11068, 12947, 14766, 14592, 14554, 14713, 12549, 14724, 13530, 14049, 13640, 14975, 15169, 14740, 14781, 14982, 13547, 14360, 14404, 14653, 12007, 14521, 15066, 13764, 14341, 14599, 12674, 13646, 15312, 14299, 13950, 11480, 14820, 14926, 11365, 14436, 13748, 14521, 14343, 12673, 15240, 14511, 14531, 14921, 11856, 10672, 14513, 11422, 14267, 14624, 14096, 14264, 14773, 12577, 14849, 14396, 13814, 14431, 14493, 14454, 15094, 14543, 13719, 14999, 14623, 14355, 14927, 13783, 11995, 13354, 13517, 15226, 12717, 13305, 11503, 13058, 14477, 14143, 14676, 14797, 15093, 15280, 13727, 14812, 12558, 15080, 13425, 15139, 9968, 14118, 15199, 14935, 15126, 12173, 12127, 14356, 11130, 14839, 14669, 12827, 13560, 14363, 13291, 12197, 14606, 13961, 12407, 13838, 13609, 10933, 14797, 14693, 14894, 12819, 15181, 14266, 12483, 14778, 13803, 15112, 13295, 13649, 15304, 14515, 14509, 13828, 13939, 12574, 14691, 11065, 15267, 13477, 15307, 12992, 14477, 15151, 15050, 14785, 15320, 13844, 14343, 12466, 13747, 11589, 15058, 14497, 12988, 15079, 11984, 13057, 9645, 14557, 12935, 12120, 12978, 13611, 15133, 15224, 14521, 12592, 11947, 11948, 13705, 13194, 15241, 14754, 14016, 15197, 14378, 13162, 15305, 14933, 14654, 14238, 12331, 12860, 14858, 14483, 14264, 14769, 13967, 15119, 13986, 14493, 14432, 13412, 14617, 11662, 15196, 13119, 14498, 13529, 15286, 15321, 11370, 14532, 15227, 13392, 14097, 14637, 15208, 14817, 12945, 14095, 14846, 12191, 10899, 15228, 14225, 13875, 15100, 10730, 10770, 13969, 12594, 13401, 14523, 12975, 15331, 12924, 13689, 12641, 15094, 13801, 13510, 14202, 14975, 14560, 15164, 13450, 13354, 14846, 14516, 11089, 7334, 14847, 15098, 15210, 14816, 13192, 11889, 13900, 14064, 13592, 13239, 15359, 12686, 13006, 14305, 15181, 15206, 14598, 14896, 13860, 11996, 14719, 13409, 13244, 13598, 9775, 13135, 15343, 15321, 9551, 15133, 13243, 14185, 14265, 15254, 14978, 12747, 14091, 11499, 13492, 14328, 10964, 14113, 14227, 15138, 11925, 12754, 3873, 15047, 13736, 12350, 11932, 11774, 13963, 13048, 14789, 14451, 12479, 6610, 15154, 14789, 13080, 12579, 12129, 14038, 14687, 14069, 14857, 15255, 14685, 13454, 14171, 14347, 14007, 14237, 14108, 14757, 14436, 13444, 13824, 15123, 13518, 15019, 13228, 11665, 15206, 15109, 13958, 14803, 13359, 14668, 14707, 15034, 14941, 14339, 10120, 10777, 14487, 14812, 15274, 15104, 12058, 13964, 14993, 14475, 15261, 13037, 14607, 15140, 14810, 14837, 13388, 14050, 14805, 12317, 14722, 15357, 14709, 15157, 13555, 15254, 12942, 14840, 14920, 14759, 11817, 13541, 14296, 15199, 14513, 13584, 14362, 12359, 14684, 11194, 14668, 12307, 13418, 11673, 15172, 15145, 13068, 15264, 13351, 15274, 14581, 14805, 11564, 14730, 14527, 13492, 14449, 13701, 13942, 13481, 11407, 12956, 11925, 15310, 14960, 12303, 14335, 15054, 14477, 11355, 14784, 14305, 11761, 12263, 10673, 14744, 15214, 13724, 13674, 14046, 15184, 13808, 12558, 14618, 14923, 14989, 13734, 14786, 13873, 14346, 12346, 15316, 15288, 14388, 14784, 13808, 14683, 10925, 11547, 15095, 13958, 12414, 14936, 15114, 14561, 15177, 14050, 15211, 13883, 11972, 13692, 12668, 15067, 14932, 13989, 13546, 15029, 15103, 13987, 13977, 14628, 15011, 13745, 14388, 11339, 14239, 14823, 12055, 14385, 13505, 15069, 12890, 10847, 11435, 13030, 14225, 14338, 15158, 14754, 14950, 14383, 14993, 13348, 14562, 11122, 14869, 14116, 14956, 10588, 15139, 14888, 15055, 13713, 14514, 12954, 13654, 14003, 15148, 15120, 14750, 12962, 13575, 14642, 12932, 13262, 7181, 15037, 11619, 15023, 15027, 13120, 14309, 14964, 13036, 14128, 13901, 14874, 11956, 14804, 14831, 13670, 15066, 13214, 14680, 14584, 12729, 15291, 13680, 13619, 14114, 13117, 14525, 13116, 13796, 12870, 14526, 12798, 15348, 13716, 14632, 13739, 12766, 12730, 13864, 13454, 14219, 15095, 14938, 12190, 14505, 12490, 15038, 12884, 14871, 14775, 14986, 14809, 14545, 13664, 14730, 15043, 15191, 14277, 14629, 14008, 12450, 13827, 15191, 13931, 12636, 15311, 14901, 15084, 14400, 13334, 12484, 12524, 12832, 14005, 14077, 12812, 13717, 12661, 14230, 14921, 14051, 14707, 15135, 14413, 12917, 13698, 11471, 10725, 9615, 15022, 14500, 13365, 10421, 12536, 15188, 14197, 14375, 14979, 14090, 11338, 14550, 14559, 14190, 14574, 13334, 14657, 14981, 14456, 14528, 13325, 13570, 14126, 15008, 14939, 12215, 15002, 14911, 14418, 14687, 14352, 15172, 14618, 14715, 14737, 15282, 11515, 14128, 14516, 10892, 14651, 14423, 14152, 12103, 14863, 14561, 14580, 11807, 10206, 14894, 15341, 15113, 14223, 15313, 13059, 14871, 14364, 14857, 13826, 13969, 14695, 14633, 12700, 14038, 14457, 12936, 15023, 12474, 12787, 14232, 12032, 14352, 12403, 14806, 14551, 8254, 14803, 15345, 15280, 14507, 13762, 14437, 14300, 15086, 11288, 15235, 13770, 12362, 15320, 13930, 12560, 13735, 14187, 14893, 14958, 15265, 13859, 14610, 13824, 12803, 13576, 14577, 13724, 11331, 13781, 14589, 14848, 14746, 10967, 14184, 13019, 12384, 13919, 14315, 12791, 15187, 14963, 14643, 15157, 14968, 15017, 15013, 14565, 13542, 15084, 12332, 14269, 12474, 14828, 14313, 11836, 12849, 13760, 12379, 14538, 13680, 14697, 14845, 14326, 12735, 13501, 12418, 15339, 12468, 13051, 15024, 14892, 14594, 12898, 13940, 15119, 15303, 15293, 14412, 13927, 15358, 13362, 14022, 13883, 14468, 15259, 10314, 14310, 15146, 12298, 15256, 14378, 13156, 15276, 15095, 14001, 12988, 15194, 15009, 13693, 14962, 14035, 13504, 14565, 12695, 14892, 12042, 13467, 15086, 14038, 11729, 13315, 14456, 12959, 12862, 15089, 14346, 12992, 14969, 13334, 13768, 14851, 13396, 12098, 14503, 12604, 15336, 14453, 13555, 10722, 13244, 13445, 13920, 13408, 15168, 13464, 14124, 14604, 13870, 11290, 15340, 14406, 13358, 15271, 14384, 15092, 14459, 14571, 14709, 14353, 12653, 14996, 14869, 12916, 14074, 13844, 14472, 14444, 14147, 12691, 15213, 9991, 13987, 14988, 13418, 14775, 14085, 12471, 14547, 14435, 14419, 14479, 14598, 14469, 14816, 14536, 13478, 14464, 14050, 15085, 14479, 13123, 14959, 14630, 15040, 13672, 13936, 13157, 14915, 14868, 8012, 14958, 14921, 15230, 14213, 13767, 15009, 14914, 12673, 15290, 14073, 13147, 14785, 14703, 15058, 14363, 14600, 13354, 13537, 14100, 14118, 14160, 14982, 15317, 14821, 13578, 14833, 14695, 10473, 15351, 14057, 14503, 13681, 14499, 14926, 14095, 14415, 14327, 13850, 13011, 14528, 13618, 13647, 14029, 15139, 15048, 13493, 15079, 12291, 11978, 12003, 14520, 15266, 13406, 10919, 12541, 14721, 6213, 13008, 13471, 15245, 14307, 12178, 13278, 15199, 13721, 14651, 11570, 10743, 14344, 9351, 10886, 15040, 8793, 15014, 14733, 12420, 13812, 15314, 10682, 13903, 15294, 13948, 15268, 14805, 12245, 11423, 15186, 14234, 11252, 13994, 13337, 15320, 14119, 13125, 14434, 14755, 12922, 13051, 12661, 14851, 14886, 14444, 14780, 14636, 14928, 14993, 14768, 15256, 14787, 14566, 11765, 13914, 15150, 14661, 14130, 14170, 12957, 12306, 14572, 13578, 14560, 15185, 14704, 15304, 14897, 14641, 15101, 15017, 14766, 15304, 11597, 14300, 12834, 15025, 14367, 14320, 15194, 14342, 14914, 12288, 12544, 14335, 14707, 13957, 13680, 14040, 14595, 14003, 15131, 14777, 14791, 15079, 13713, 14837, 14701, 15304, 14702, 12108, 13631, 14949, 14856, 14770, 14970, 13955, 14024, 12838, 12643, 13572, 14734, 13467, 14907, 15024, 11855, 14593, 15059, 9452, 15033, 12884, 15115, 13212, 14524, 8330, 14731, 14806, 13861, 14660, 13219, 14480, 15086, 13647, 15324, 10735, 12495, 14559, 14964, 11286, 14908, 10278, 15282, 14825, 14374, 13156, 14627, 14667, 14242, 12257, 13120, 11541, 14376, 10429, 12219, 13593, 14905, 14880, 15176, 11704, 15114, 14461, 14812, 14059, 14091, 14481, 13238, 11473, 11426, 15012, 14112, 13947, 14790, 13613, 13668, 12480, 14141, 13363, 15227, 12453, 15264, 12544, 15067, 14511, 14920, 15039, 14657, 14855, 15110, 13843, 12336, 13502, 14413, 14783, 12502, 14967, 14345, 14804, 15272, 14285, 15285, 14375, 14453, 15343, 14431, 13657, 14740, 14844, 14972, 12547, 14985, 14362, 13985, 12274, 14815, 12668, 11610, 14759, 12743, 14528, 12898, 14993, 14861, 14661, 12400, 14833, 13927, 15202, 14251, 14858, 12946, 13324, 15233, 13136, 11571, 12885, 15172, 9778, 14909, 15357, 14910, 14510, 14446, 14588, 14553, 13194, 13477, 14801, 14488, 14507, 14881, 6980, 15179, 15317, 14907, 13446, 14528, 14198, 13955, 14794, 12750, 14453, 15345, 14373, 14580, 14225, 13514, 14549, 15043, 15292, 13611, 14208, 15058, 14236, 13492, 14752, 14762, 12984, 11133, 14288, 14261, 14909, 14264, 13359, 12165, 14727, 14579, 12582, 13073, 14274, 14592, 15255, 10553, 15096, 15039, 15197, 13512, 12693, 14844, 10294, 14836, 14422, 14668, 14058, 12529, 12108, 14673, 14248, 14641, 13283, 14494, 13047, 14026, 15132, 15173, 13523, 13486, 14669, 9654, 14658, 13230, 14698, 14627, 13102, 12101, 15346, 14893, 13753, 14560, 13343, 12247, 14695, 12735, 14622, 13441, 14692, 11659, 14188, 14914, 12839, 12889, 11337, 14973, 13190, 15100, 14512, 14047, 12658, 14248, 14552, 14434, 15184, 13185, 14058, 12366, 14823, 15135, 15063, 15074, 14102, 14646, 15142, 14577, 13980, 10700, 14058, 14421, 14322, 14257, 15340, 13598, 15053, 15353, 14877, 13795, 13438, 14101, 15112, 13784, 13512, 14845, 14597, 14686, 13792, 13354, 14345, 15149, 14013, 14798, 14836, 13547, 14391, 11226, 14620, 14128, 8600, 13745, 10650, 14735, 14656, 12519, 13206, 14149, 14049, 12914, 14021, 14062, 12689, 14512, 10419, 13706, 13723, 14920, 14766, 15034, 14887, 12259, 12655, 15095, 14544, 15192, 13533, 14381, 13394, 14325, 15048, 13821, 13666, 14317, 14777, 14724, 14020, 11402, 14342, 14717, 12257, 12215, 14255, 12738, 14213, 14556, 14527, 14075, 15163, 11574, 15261, 13724, 12727, 14674, 15195, 13147, 15036, 15071, 14971, 14566, 15164, 13735, 14733, 14695, 13403, 13867, 12648, 14275, 13749, 14945, 15214, 14233, 8642, 13952, 14929, 14409, 14274, 13879, 9378, 14429, 15062, 15340, 12419, 11760, 13704, 13560, 13889, 14461, 14580, 14429, 15254, 14635, 12906, 13736, 13277, 12039, 14374, 13760, 14528, 12951, 13428, 12562, 13234, 14335, 14952, 14908, 14962, 12488, 14453, 13639, 12989, 14435, 13996, 14183, 12502, 15288, 14232, 15041, 15246, 13288, 12936, 15321, 14738, 14925, 14310, 11959, 13860, 14198, 14055, 14318, 14787, 13512, 13965, 8042, 15030, 9184, 14467, 15078, 11620, 10594, 14474, 14681, 12986, 14248, 14275, 14052, 14986, 12078, 13190, 15182, 14424, 14081, 13355, 14583, 14672, 14336, 15065, 14958, 13588, 14626, 14626, 14724, 14094, 15209, 13943, 9600, 15263, 15227, 14223, 14747, 13210, 14912, 14563, 10713, 14061, 11812, 13908, 12306, 14418, 15311, 13827, 12251, 13555, 13818, 13320, 14512, 14610, 14641, 13744, 14562, 14738, 12917, 12750, 10776, 13335, 14306, 13834, 14762, 13481, 14799, 14599, 10128, 15349, 13570, 15279, 13927, 13434, 14618, 11660, 14290, 15116, 11570, 12278, 13500, 15314, 13394, 15267, 14464, 14531, 14954, 14923, 13644, 14268, 14618, 11847, 12437, 15177, 15176, 14966, 14698, 10899, 15257, 12724, 13493, 14985, 14931, 13532, 13565, 14786, 14010, 14408, 13635, 14507, 14435, 13148, 11691, 12045, 15249, 13324, 14388, 15201, 14404, 11615, 14654, 10615, 11218, 12317, 14885, 14677, 15129, 14463, 12614, 14815, 15046, 14393, 15163, 14271, 13957, 14957, 14697, 14209, 14757, 11000, 15283, 12334, 14884, 14570, 13276, 15243, 14108, 9724, 12914, 14727, 10978, 15159, 15097, 14190, 15312, 11475, 13625, 15173, 14999, 14433, 14192, 15153, 14488, 14109, 14879, 15339, 11292, 14980, 15138, 15273, 14843, 14968, 14920, 13560, 14850, 15275, 14804, 12301, 15170, 11419, 14042, 11293, 13892, 14103, 15306, 13769, 12441, 15190, 15186, 13384, 12808, 11371, 15342, 13814, 14588, 14972, 14868, 14753, 12697, 15187, 13871, 13549, 14736, 11961, 14156, 14581, 14336, 14643, 14517, 13993, 14439, 14956, 14568, 15327, 11686, 11731, 12019, 8432, 14345, 9738, 13893, 13819, 14253, 11351, 11585, 11172, 14405, 14727, 14847, 14921, 12027, 12296, 15173, 12582, 13787, 12812, 13969, 13831, 14353, 13354, 15075, 14875, 14975, 15017, 13472, 14404, 14249, 10728, 14048, 14371, 14350, 14149, 9056, 15264, 14431, 15066, 13852, 14604, 12457, 12733, 14755, 13486, 13945, 13586, 14673, 13291, 14990, 15345, 15133, 11274, 5298, 14538, 7809, 14909, 13909, 14245, 13367, 15161, 15267, 14853, 14668, 15166, 12708, 6841, 14367, 13406, 15227, 14611, 14463, 15285, 13009, 12641, 15203, 14952, 14170, 14893, 15332, 14808, 14928, 8828, 13370, 14353, 9471, 14879, 13680, 12029, 13759, 11798, 15281, 13665, 13695, 15053, 15144, 11506, 15360, 13149, 13788, 12565, 14364, 15162, 13179, 13781, 12637, 12878, 14301, 15152, 14471, 13554, 13816, 15245, 11918, 12444, 14729, 13444, 14412, 14748, 15278, 14395, 14470, 15149, 14514, 14821, 13434, 13693, 14435, 13402, 14310, 15016, 10116, 12859, 14433, 15208, 13362, 14734, 13919, 15235, 11982, 13999, 14235, 13441, 14338, 14298, 11710, 13711, 10520, 15359, 13622, 15107, 10751, 15083, 12412, 15300, 14151, 14199, 14345, 13464, 13433, 11815, 13502, 15317, 15064, 12604, 3463, 14300, 14415, 13232, 12790, 14926, 14338, 14702, 14100, 14679, 14403, 14776, 15315, 14699, 13691, 13933, 13894, 12123, 15106, 12939, 12459, 13511, 13956, 12596, 14864, 13427, 10252, 14459, 14673, 13595, 13307, 12870, 11893, 13185, 14965, 14629, 13386, 14473, 5911, 14997, 13340, 13948, 14240, 12318, 14964, 8944, 10144, 15037, 13518, 14970, 15181, 15023, 14379, 14413, 15288, 15102, 13385, 13776, 14374, 14145, 15133, 13331, 13700, 14668, 14365, 13477, 12767, 15165, 15359, 13335, 12995, 13801, 14599, 12980, 12834, 14886, 15341, 14866, 14769, 14990, 15270, 10061, 14613, 14247, 14439, 11215, 12383, 15069, 12985, 15161, 15317, 13110, 15066, 15014, 14623, 13951, 12326, 13540, 15000, 14808, 14754, 15108, 15081, 15105, 12056, 13153, 10839, 14351, 15336, 13849, 12937, 13491, 14573, 15292, 14995, 14783, 15083, 15199, 13129, 13649, 15065, 15191, 13407, 14522, 13768, 15185, 14915, 14114, 15216, 10627, 14860, 14427, 15048, 14640, 14423, 13988, 12462, 11858, 14583, 13965, 14271, 14372, 11429, 13747, 12993, 14680, 13477, 13327, 15005, 13688, 14123, 14923, 14148, 13400, 10973, 15350, 11896, 11537, 14870, 13092, 15127, 13849, 14717, 14999, 14780, 11476, 14881, 11205, 14072, 14463, 13066, 8487, 14861, 15294, 15066, 12609, 14076, 14513, 9345, 9259, 15016, 9944, 14546, 10877, 11405, 14338, 14860, 14503, 14342, 12323, 14900, 11873, 9967, 14211, 13594, 12061, 13727, 14286, 13564, 13649, 14378, 13026, 13793, 13369, 14360, 14666, 14407, 15331, 14338, 15203, 14709, 13857, 15018, 14949, 14739, 14855, 14548, 11317, 14884, 13394, 14256, 14814, 12852, 13930, 12997, 12682, 15303, 15313, 12775, 15204, 13995, 12211, 14890, 14110, 12662, 15172, 14836, 14740, 15269, 13967, 14349, 15225, 14640, 14615, 13811, 14248, 14586, 14199, 15312, 12735, 14640, 13790, 11272, 15344, 14621, 14608, 14802, 15003, 10266, 14296, 9500, 13383, 13953, 14877, 13651, 13840, 15110, 15032, 14695, 15236, 14370, 15128, 14654, 14963, 14052, 13931, 14486, 15173, 13545, 13254, 13505, 12941, 12752, 14366, 15287, 12375, 13317, 14035, 13733, 11644, 13874, 15214, 14604, 14374, 15271, 14303, 14186, 13261, 14448, 14722, 14697, 15200, 14822, 15177, 14634, 11510, 15063, 13414, 14598, 13546, 14370, 12670, 11670, 12596, 12886, 14645, 15103, 14666, 14158, 14441, 14176, 12283, 15338, 13723, 14997, 11677, 15221, 14799, 13601, 14806, 13039, 13856, 14066, 11499, 14808, 15162, 12171, 14364, 14610, 13827, 14609, 15131, 13963, 12645, 12388, 14282, 13610, 15287, 12249, 13493, 14893, 12784, 13312, 13323, 15118, 14592, 12914, 14677, 14463, 14080, 9575, 15189, 15050, 13630, 15194, 15152, 14190, 15010, 13790, 11101, 15050, 9382, 13766, 14614, 11843, 10357, 15121, 14363, 15024, 11649, 14837, 13573, 13417, 14678, 14697, 13620, 13494, 14008, 12382, 14931, 14526, 15024, 10531, 12578, 14999, 14688, 14988, 13990, 14695, 15023, 10403, 13875, 13942, 15091, 14980, 14388, 11504, 14582, 13769, 14716, 11785, 12997, 14014, 15188, 14361, 14273, 14409, 7729, 14733, 12450, 12628, 12432, 14651, 14676, 13389, 12659, 14798, 13592, 14970, 15056, 13942, 11800, 11301, 13461, 12508, 14831, 14112, 14934, 15106, 14996, 14810, 13201, 13448, 14198, 14902, 10136, 15184, 13244, 14972, 12665, 13937, 13947, 12821, 13638, 14208, 11331, 12622, 14734, 14825, 10915, 14744, 13737, 14355, 15173, 11336, 14402, 13431, 12443, 14728, 11977, 15316, 14614, 12748, 13321, 15262, 13551, 15133, 14462, 15002, 14747, 13611, 13042, 14538, 13974, 14781, 14363, 15003, 14375, 15181, 9321, 12026, 14085, 15286, 13447, 13874, 15197, 14873, 11636, 15152, 14220, 15088, 14562, 8319, 13527, 13143, 12333, 15025, 14200, 7386, 15127, 14002, 15130, 15040, 15110, 14152, 14592, 12306, 11117, 10956, 11308, 13804, 14272, 15225, 13817, 13673, 12988, 15145, 15230, 13812, 14046, 12758, 13959, 14512, 14775, 15063, 14497, 14679, 11830, 13636, 11293, 13255, 10004, 14486, 13220, 14711, 14924, 15043, 13579, 15296, 14716, 12300, 14404, 14494, 12125, 13755, 14675, 14738, 13735, 12059, 14365, 13542, 15057, 11654, 15042, 12108, 11294, 14065, 14713, 13973, 13038, 13832, 14226, 15061, 15314, 12933, 14392, 14482, 12975, 14081, 13749, 15178, 14077, 11318, 15253, 14473, 10576, 13982, 13447, 13369, 14980, 12925, 15007, 14229, 14870, 11437, 15036, 10133, 15355, 10676, 13193, 13460, 11757, 14618, 15245, 14130, 12940, 12682, 14568, 12988, 14988, 14834, 15040, 6859, 14969, 13710, 13276, 15295, 14045, 14643, 15119, 14030, 14419, 14796, 13871, 13523, 15087, 14435, 14791, 13931, 14435, 11915, 11540, 14382, 12476, 15243, 15032, 15146, 13698, 12939, 14635, 15311, 13406, 15073, 13591, 14331, 14409, 12316, 14905, 13886, 13896, 9780, 14564, 15196, 13183, 14094, 15351, 14608, 13488, 15242, 11923, 15098, 14717, 12353, 14921, 8391, 15137, 15016, 13869, 14768, 9070, 9468, 14704, 13499, 14340, 14399, 15153, 14457, 12856, 15002, 14575, 15300, 13278, 14089, 14208, 11821, 9884, 14798, 12265, 13619, 14544, 14349, 15037, 15300, 15181, 15144, 14794, 12552, 14188, 14683, 13929, 14884, 14893, 13930, 15181, 15120, 12783, 12751, 15117, 15030, 12678, 13724, 14812, 13078, 15161, 13756, 14738, 13928, 12667, 12744, 14341, 14734, 15027, 12444, 13480, 11411, 14606, 8850, 13804, 14920, 15225, 14578, 14709, 12427, 9550, 14292, 14815, 13430, 7984, 15116, 14345, 14420, 10854, 15130, 14761, 7493, 14692, 11789, 15282, 14598, 13571, 13384, 13347, 10487, 14251, 13003, 13086, 15247, 13405, 15270, 15011, 14692, 15319, 14717, 12816, 13346, 14571, 15191, 15328, 15005, 14003, 15235, 15156, 12527, 14719, 15221, 13280, 14704, 13151, 14133, 14185, 12821, 15261, 12364, 13471, 15163, 14766, 13435, 15180, 11697, 14882, 15146, 15189, 14255, 14553, 10959, 11501, 13420, 14612, 12845, 14645, 12955, 14762, 15018, 15275, 15123, 14427, 14345, 11940, 13840, 14644, 14429, 14748, 14883, 11869, 15129, 12859, 13106, 13287, 14515, 13052, 15351, 14896, 14387, 7659, 14432, 14390, 14761, 14148, 13759, 15124, 15098, 14583, 14450, 14415, 11894, 12305, 13454, 15309, 14256, 14742, 14394, 14444, 13531, 12184, 14542, 12247, 13452, 13691, 14885, 11229, 13735, 15209, 14649, 13608, 14492, 14464, 13767, 14584, 13750, 14206, 12337, 10246, 12768, 13544, 15151, 15056, 15203, 12786, 14411, 14230, 14637, 14983, 13307, 15151, 15301, 15236, 11333, 14971, 15147, 15341, 12940, 15056, 14806, 14776, 13062, 14751, 15103, 11685, 14269, 15071, 15200, 13980, 12782, 15099, 13870, 15108, 11671, 14815, 10845, 14341, 14987, 14131, 14740, 15118, 14677, 15050, 10537, 13065, 13681, 15191, 13329, 15288, 14810, 15150, 14376, 13496, 15158, 14679, 9719, 14461, 13751, 12515, 14614, 14784, 14524, 14561, 13210, 11423, 13598, 12837, 14953, 12813, 14541, 12952, 15272, 12314, 12508, 14576, 10167, 14289, 12777, 15032, 14690, 11190, 14924, 14753, 14481, 15280, 15158, 14538, 14988, 14413, 13634, 15095, 14711, 13064, 14701, 15091, 14629, 12820, 12348, 12769, 9412, 13498, 13272, 14303, 13326, 12813, 14723, 14621, 15013, 14669, 14032, 14840, 15187, 14509, 9608, 11418, 15359, 12654, 14170, 13775, 15262, 13300, 14955, 14094, 15068, 15192, 11902, 15304, 14672, 14678, 15239, 15291, 11994, 13998, 14588, 14403, 13584, 9800, 14566, 15081, 15205, 13739, 11780, 14499, 15107, 13557, 8078, 13356, 14825, 14055, 11887, 12696, 10346, 14774, 14767, 14670, 14724, 15208, 14489, 13620, 13561, 12825, 14804, 13142, 15239, 14432, 14430, 15100, 12811, 14641, 14262, 14482, 14535, 15119, 12861, 14437, 15337, 15113, 15094, 15271, 14767, 13761, 15008, 13398, 14406, 14873, 15089, 14814, 14390, 13930, 14530, 11085, 13302, 14334, 14263, 15120, 14371, 15220, 13865, 13436, 14158, 11361, 15166, 14638, 15025, 15318, 15108, 14395, 15159, 11392, 15063, 15195, 12784, 13446, 12542, 14382, 14585, 15347, 14075, 15037, 15354, 14354, 8965, 10321, 11294, 14355, 7897, 15016, 14919, 13248, 13559, 14902, 12035, 13180, 13637, 11185, 15265, 13974, 11685, 10559, 14762, 13023, 15022, 14438, 13522, 14823, 13712, 14517, 13085, 14153, 14639, 14881, 13127, 14644, 13699, 14995, 13195, 12010, 14306, 14834, 14341, 15287, 14707, 14704, 13345, 13015, 9909, 15337, 14020, 15156, 11968, 14436, 14519, 10085, 11721, 13093, 14349, 15137, 13732, 14606, 13149, 15103, 13724, 15329, 14980, 12200, 13435, 13544, 15236, 15129, 14940, 14020, 15266, 14598, 14553, 15119, 14959, 15193, 14209, 13286, 14481, 15104, 14666, 15247, 13656, 14029, 13671, 14472, 14088, 12661, 15033, 14479, 15158, 14926, 14067, 14431, 14510, 14213, 10423, 12290, 14124, 13771, 12993, 14274, 14882, 13904, 14825, 12590, 14363, 15173, 15024, 14689, 15201, 12799, 12581, 11910, 12041, 12413, 12043, 15002, 15185, 15277, 13604, 12226, 13595, 15057, 14034, 15045, 14697, 11716, 15244, 14280, 15078, 14906, 13513, 15240, 13580, 9321, 14993, 13161, 11324, 14676, 13584, 14727, 14796, 12385, 15108, 9792, 13514, 15196, 14627, 14192, 12219, 15223, 13367, 15244, 13489, 14191, 14201, 14505, 15031, 14884, 14722, 13538, 8450, 14227, 13098, 14707, 13463, 13248, 14008, 14613, 14001, 14589, 13967, 13640, 13344, 13927, 14364, 14436, 12350, 14587, 14752, 15168, 14002, 14780, 14740, 13114, 14654, 13595, 13782, 11757, 14742, 10344, 13009, 14981, 14552, 13893, 14579, 14388, 14455, 15317, 11047, 8780, 12909, 14503, 14526, 14122, 14813, 14672, 14346, 14385, 11685, 15238, 14748, 12760, 14868, 12645, 13702, 13361, 14171, 15355, 14163, 13625, 14869, 13061, 14757, 12315, 12576, 13520, 14671, 7508, 14481, 14720, 13861, 14001, 14394, 15070, 7713, 14049, 13871, 14661, 15206, 13872, 13570, 15096, 14326, 14542, 14938, 13706, 14763, 13985, 15327, 15094, 13508, 14182, 13645, 14161, 4383, 14644, 12542, 14513, 14543, 13444, 13721, 14462, 15073, 14350, 15124, 14545, 11041, 13935, 14845, 11770, 12553, 14604, 13580, 14343, 14625, 14557, 14833, 13000, 14155, 14389, 12561, 14349, 15101, 14737, 10255, 14944, 14892, 14670, 2232, 14889, 14835, 14009, 15273, 13103, 14382, 15147, 14519, 14936, 14032, 14003, 15210, 14550, 14523, 14839, 14893, 14766, 13478, 12661, 15335, 8021, 14297, 10344, 10285, 14271, 14062, 13358, 14273, 13252, 14759, 11409, 14572, 15235, 14200, 13630, 14782, 13523, 15120, 14672, 15050, 9742, 14868, 14365, 13785, 13874, 13291, 12751, 13469, 14434, 12939, 14338, 14145, 12845, 14902, 13516, 15277, 13071, 14471, 13834, 13963, 13736, 14655, 14811, 12686, 14710, 15033, 8349, 13943, 14176, 14575, 15249, 14713, 14097, 14548, 13546, 14274, 12352, 11948, 14930, 15001, 12253, 10201, 15350, 10813, 13725, 12857, 15214, 15143, 14347, 14819, 14198, 10498, 12048, 11027, 13844, 14649, 14636, 13847, 13239, 12471, 15155, 8549, 13449, 15019, 12616, 14065, 14869, 14512, 12852, 14485, 14322, 14013, 14518, 14965, 13465, 12930, 14763, 14349, 14754, 14549, 14808, 13041, 12226, 14933, 13436, 13774, 14400, 14924, 13695, 11877, 14601, 15146, 14120, 13561, 13714, 14984, 14278, 13772, 15169, 11031, 15241, 13154, 14205, 15006, 14824, 14123, 14830, 14090, 14550, 12732, 12341, 14401, 15045, 15163, 14753, 14983, 15344, 14520, 14509, 14447, 13592, 14904, 13538, 14480, 14724, 14965, 15360, 13579, 10575, 14523, 12729, 14512, 15016, 11102, 14400, 14489, 14347, 15126, 15155, 14346, 13018, 13258, 13450, 15063, 14280, 15183, 13856, 14490, 13522, 14596, 13422, 14867, 15251, 13171, 11683, 14805, 14969, 13319, 14948, 14742, 14958, 14396, 14982, 15171, 13541, 13659, 12500, 15231, 12638, 14163, 15340, 15208, 13191, 15255, 14144, 9530, 11872, 14454, 14589, 15155, 13483, 14490, 14996, 14230, 15274, 14457, 13963, 12362, 15107, 12713, 14007, 10500, 14413, 14043, 9338, 14526, 13463, 14565, 14756, 11904, 13696, 13693, 12241, 13223, 14407, 13386, 12724, 15155, 14920, 13962, 14717, 11634, 12880, 15160, 15169, 14293, 8156, 14105, 14541, 13926, 15043, 14492, 14534, 14132, 14157, 13910, 14401, 15176, 14680, 14561, 12791, 14759, 14602, 15107, 14764, 14560, 14810, 15270, 15343, 15243, 12927, 13736, 14123, 14245, 11980, 11029, 12833, 14994, 10386, 14840, 11634, 14103, 11899, 13417, 13614, 13277, 15184, 13904, 13702, 14158, 11270, 14291, 11789, 13538, 12101, 15081, 14930, 14529, 11035, 15048, 15278, 15306, 12646, 14936, 14827, 12972, 15251, 15308, 14616, 15251, 14713, 12537, 13337, 11895, 15220, 14931, 15147, 14719, 14453, 14146, 14821, 15267, 12124, 13721, 14293, 13917, 10766, 13873, 14937, 14519, 14467, 14827, 13313, 14249, 13492, 15042, 14694, 15180, 14526, 15351, 14368, 15207, 14145, 13564, 14676, 13211, 12484, 15066, 14791, 15270, 13457, 13080, 14377, 15243, 14937, 13190, 14399, 13989, 13401, 15339, 15119, 13560, 5320, 13866, 15077, 14716, 12468, 13400, 14784, 15170, 7929, 15272, 14279, 15082, 13636, 13111, 14351, 14844, 10603, 13524, 15184, 13382, 14961, 15276, 14878, 12396, 13999, 13919, 15244, 13794, 14452, 15234, 14629, 13727, 14734, 14269, 15035, 13347, 14374, 6474, 14268, 13970, 12928, 13934, 15145, 13028, 15166, 14517, 12997, 13460, 13886, 14586, 14570, 14850, 14298, 13117, 14339, 14037, 15032, 15086, 14547, 15328, 13619, 15212, 15018, 12562, 14034, 15204, 14849, 11125, 14345, 14819, 14442, 13955, 14813, 14440, 14388, 14915, 13931, 11836, 14358, 13945, 11286, 14821, 13685, 15173, 14907, 12319, 15003, 14916, 13710, 13001, 14452, 15357, 10458, 15175, 13364, 13066, 13544, 13965, 15172, 13894, 13822, 13999, 13317, 15246, 14439, 13769, 13162, 13929, 14197, 14221, 14267, 15104, 14051, 14385, 12467, 13062, 14211, 13401, 14403, 13916, 14897, 14340, 14533, 13414, 11692, 11573, 14369, 13053, 12228, 14285, 15088, 14747, 14259, 10285, 14469, 14601, 13911, 14725, 14254, 14062, 14557, 15222, 12314, 10570, 12399, 14066, 11366, 13560, 13664, 13481, 14949, 15180, 14063, 12109, 14947, 14733, 13114, 14747, 12657, 14870, 13751, 14524, 12440, 15226, 13397, 14985, 13611, 13734, 11876, 13606, 14705, 13763, 14046, 13856, 12965, 15320, 13556, 12985, 14126, 14429, 11914, 14094, 14810, 14479, 15152, 11322, 15193, 15314, 13969, 14807, 10339, 14658, 14467, 14852, 14893, 15045, 14753, 12692, 14880, 13819, 14487, 11560, 14831, 13334, 13921, 14386, 14451, 13081, 11163, 14774, 15292, 14345, 9352, 11786, 15002, 14526, 15236, 14807, 14055, 14525, 14612, 14843, 10387, 13825, 13245, 15198, 13844, 14945, 9262, 15064, 11901, 14543, 13928, 14456, 14732, 14512, 11881, 14126, 12565, 15311, 13871, 14886, 14648, 10251, 12139, 14471, 15136, 15181, 14061, 15144, 10329, 15286, 9320, 12559, 13120, 7376, 15002, 14406, 12635, 9936, 15023, 14286, 13169, 12831, 10280, 8443, 12690, 14727, 13580, 11936, 14578, 13241, 12235, 15066, 14056, 14869, 11079, 13376, 14772, 13761, 14332, 14193, 14730, 14555, 12284, 14192, 12558, 12286, 14365, 14669, 13385, 13065, 15203, 14062, 10917, 14832, 14169, 15036, 14762, 14590, 12606, 15305, 12166, 13768, 13982, 14372, 13964, 13587, 13364, 14632, 14652, 15033, 13618, 14445, 14667, 15097, 15262, 13214, 14377, 12749, 12324, 12743, 13977, 14033, 14955, 11165, 13611, 13665, 15159, 10704, 10892, 14253, 8830, 11904, 12804, 13374, 13882, 11712, 13391, 13716, 9564, 11900, 13449, 15090, 14662, 12934, 14385, 12376, 15342, 15128, 15011, 9948, 14725, 15073, 10810, 15318, 14478, 15169, 10680, 15167, 14705, 15314, 11605, 13945, 14169, 15276, 14462, 14660, 10582, 13592, 15220, 14719, 14729, 12083, 14998, 14074, 14526, 12458, 14019, 13318, 13656, 15005, 10013, 15172, 15004, 15182, 12050, 14433, 15073, 11794, 13657, 15263, 14688, 13235, 11053, 15198, }; uint16_t ret[16 * 16 * 3 * 8] = { 15218, 12000, 14363, 13803, 13850, 13819, 14568, 14889, 14570, 14500, 15076, 15145, 9778, 13951, 13544, 8156, 13537, 12185, 15248, 11807, 14528, 12784, 12010, 14557, 13789, 14817, 11269, 15112, 13011, 14253, 12988, 14835, 15273, 14512, 11791, 13068, 14909, 12326, 15151, 14105, 13048, 14507, 13617, 10206, 12951, 13312, 14306, 15222, 13063, 13488, 13465, 13295, 14528, 11351, 14988, 14009, 10601, 13559, 14982, 15264, 15357, 13540, 15056, 14541, 14247, 12663, 14580, 14894, 13428, 13323, 14834, 12314, 9806, 15202, 13087, 13649, 13618, 11585, 14834, 15273, 14614, 15188, 14432, 13351, 14910, 15000, 15203, 13926, 14831, 12896, 13750, 15341, 12562, 15118, 14341, 10570, 14988, 14710, 13715, 15304, 13647, 11172, 15040, 13103, 13511, 15274, 13345, 15274, 14510, 14808, 12786, 15043, 14781, 15354, 15094, 15113, 13234, 14592, 15287, 12399, 15221, 14741, 12974, 14515, 14029, 14405, 6859, 14382, 12111, 13894, 12955, 14581, 14446, 14754, 14411, 14492, 14660, 14390, 11908, 14223, 14335, 12914, 14707, 14066, 11097, 14217, 14681, 14509, 15139, 14727, 14969, 15147, 10253, 13515, 12652, 14805, 14588, 15108, 14230, 14534, 14549, 14705, 13645, 15313, 14952, 14677, 14704, 11366, 15162, 14517, 15022, 13828, 15048, 14847, 13710, 14519, 14059, 13458, 12331, 11564, 14553, 15081, 14637, 14132, 15142, 13549, 12972, 13059, 14908, 14463, 13345, 13560, 11381, 13382, 12342, 13939, 13493, 14921, 13276, 14936, 13561, 12779, 13562, 14730, 13194, 15105, 14983, 14157, 14835, 12529, 15324, 14871, 14962, 14080, 13015, 13664, 15333, 14079, 14265, 12574, 15079, 12027, 15295, 14032, 13971, 15261, 13186, 14527, 13477, 12056, 13307, 13910, 14988, 13556, 13209, 14364, 12488, 9575, 9909, 13481, 14921, 12370, 14674, 14691, 12291, 12296, 14045, 14003, 14712, 14628, 14600, 13492, 14801, 13153, 15151, 14401, 12002, 12874, 14508, 14857, 14453, 15189, 15337, 14949, 14612, 14990, 12826, 11065, 11978, 15173, 14643, 15210, 13934, 15334, 15088, 14449, 14488, 10839, 15301, 15176, 14360, 13536, 14948, 13826, 13639, 15050, 14020, 15180, 14806, 14584, 14340, 15267, 12003, 12582, 15119, 14550, 13660, 8955, 14488, 13701, 14507, 14351, 15236, 14680, 13185, 13400, 14917, 13969, 12989, 13630, 15156, 14063, 13951, 12725, 14520, 13477, 14520, 13787, 14030, 14523, 15269, 13353, 11367, 13942, 14881, 15336, 11333, 14561, 15315, 14685, 10841, 14695, 14435, 15194, 11968, 12109, 13796, 14595, 13047, 15307, 15266, 12812, 14419, 14839, 14971, 15231, 9824, 13481, 6980, 13849, 14971, 12791, 14304, 14849, 13988, 14633, 13996, 15152, 14436, 14947, 9764, 12642, 15316, 12992, 13406, 13969, 14796, 14893, 12354, 14660, 14634, 11407, 15179, 12937, 15147, 14759, 14346, 14374, 14567, 12700, 14183, 14190, 14519, 14733, 12642, 11533, 14807, 14477, 10919, 13831, 13871, 14766, 14996, 11967, 10852, 12956, 15317, 13491, 15341, 14602, 13827, 14298, 15046, 14038, 12502, 15010, 10085, 13114, 12389, 14510, 14481, 15151, 12541, 14353, 13523, 13478, 14591, 4435, 8895, 11925, 14907, 14573, 12940, 15107, 14474, 13022, 14293, 14457, 15288, 13790, 11721, 14747, 15154, 9512, 12598, 15050, 14721, 13354, 15087, 12661, 13842, 14773, 14501, 15310, 13446, 15292, 15056, 14764, 14714, 14550, 14564, 12936, 14232, 11101, 13093, 12657, 14243, 14471, 14704, 14785, 6213, 15075, 14435, 15335, 12773, 15006, 14407, 14960, 14528, 14995, 14806, 14560, 10817, 11880, 15061, 15023, 15041, 15050, 14349, 14870, 14542, 14828, 13351, 15320, 13008, 14875, 14791, 8021, 13814, 14794, 12460, 12303, 14198, 14783, 14776, 14810, 13536, 14537, 13722, 12474, 15246, 9382, 15137, 13751, 13551, 12574, 15082, 13844, 13471, 14975, 13931, 14297, 12790, 14499, 11978, 14335, 13955, 15083, 13062, 15270, 13742, 14675, 14086, 12787, 13288, 13766, 13732, 14524, 14819, 14521, 15067, 14343, 15245, 15017, 14435, 10344, 14484, 14999, 12420, 15054, 14794, 15199, 14751, 15343, 11544, 14003, 13305, 14232, 12936, 14614, 14606, 12440, 14219, 14982, 13866, 12466, 14307, 13472, 11915, 10285, 12382, 11392, 13791, 14477, 12750, 13129, 15103, 15243, 13650, 15281, 12296, 12032, 15321, 11843, 13149, 15226, 12500, 13539, 13518, 13747, 12178, 14404, 11540, 14271, 14624, 13341, 14591, 11355, 14453, 13649, 11685, 12927, 13566, 15122, 15074, 14352, 14738, 10357, 15103, 13397, 11825, 14860, 14341, 11589, 13278, 14249, 14382, 14062, 14191, 11410, 13477, 14784, 15345, 15065, 14269, 13736, 11179, 14851, 11627, 12403, 14925, 15121, 13724, 14985, 13389, 14720, 14837, 15058, 15199, 10728, 12476, 13358, 12378, 14180, 12615, 14305, 14373, 15191, 15071, 14123, 14200, 15039, 13281, 14806, 14310, 14363, 15329, 13611, 13967, 10552, 15240, 14497, 13721, 14048, 15243, 14273, 15116, 14814, 13527, 11761, 14580, 13407, 15200, 14245, 9798, 15298, 14549, 14551, 11959, 15024, 14980, 13734, 14601, 14985, 14617, 12988, 14651, 14371, 15032, 13252, 12684, 13278, 13335, 12263, 14225, 14522, 13980, 11980, 14579, 14211, 15352, 8254, 13860, 11649, 12200, 11876, 12846, 13661, 14434, 15079, 11570, 14350, 15146, 14759, 12997, 11612, 12086, 10673, 13514, 13768, 12782, 11029, 14496, 13042, 15279, 14803, 14198, 14837, 13435, 13606, 12777, 11420, 10382, 11984, 10743, 14149, 13698, 11409, 14967, 14759, 12608, 14744, 14549, 15185, 15099, 12833, 14902, 14503, 10810, 15345, 14055, 13573, 13544, 14705, 14399, 13696, 14981, 13057, 14344, 9056, 12939, 14572, 14958, 15079, 14836, 15214, 15043, 14915, 13870, 14994, 13323, 14517, 12869, 15280, 14318, 13417, 15236, 13763, 13604, 14362, 12757, 9645, 9351, 15264, 14635, 15235, 13047, 13932, 15036, 13724, 15292, 14114, 15108, 10386, 14848, 13683, 13563, 14507, 14787, 14678, 15129, 14046, 15360, 10515, 15213, 14557, 10886, 14431, 15311, 14200, 15269, 15020, 12800, 13674, 13611, 15216, 11671, 14840, 13776, 14763, 13654, 13762, 13512, 14697, 14940, 13856, 14275, 14653, 15012, 12935, 15040, 15066, 13406, 13630, 11493, 14475, 12850, 14046, 14208, 10627, 14815, 11634, 14646, 11346, 14388, 14437, 13965, 13620, 14020, 12965, 1482, 13420, 14836, 12120, 8793, 13852, 15073, 14782, 14822, 14692, 10882, 15184, 15058, 14860, 10845, 14103, 13786, 15044, 14615, 14300, 8042, 13494, 15266, 15320, 12466, 13574, 15098, 12978, 15014, 14604, 13591, 13523, 13442, 14334, 14328, 13808, 14236, 14427, 14341, 11899, 14569, 15321, 13898, 15086, 15030, 14008, 14598, 13556, 12181, 13842, 14446, 13611, 14733, 12457, 14331, 15120, 14588, 15157, 14603, 12558, 13492, 15048, 14987, 13417, 12899, 15096, 8926, 11288, 9184, 12382, 14553, 12985, 15129, 14508, 14205, 15133, 12420, 12733, 14409, 14672, 15007, 13972, 14703, 14618, 14752, 14640, 14131, 13614, 14372, 15189, 12892, 15235, 14467, 14931, 15119, 14126, 13778, 14830, 11360, 15224, 13812, 14755, 12316, 15050, 15143, 12724, 14957, 14923, 14762, 14423, 14740, 13277, 13270, 14985, 15250, 13770, 15078, 14526, 14959, 14429, 15327, 14449, 14867, 14521, 15314, 13486, 14905, 9742, 14340, 13396, 15217, 14989, 12984, 13988, 15118, 15184, 14343, 15021, 13918, 12362, 11620, 15024, 15193, 11914, 14392, 11494, 11183, 12592, 10682, 13945, 13886, 14868, 15358, 14572, 14357, 13734, 11133, 12462, 14677, 13904, 13424, 15196, 11639, 15320, 10594, 10531, 14209, 14094, 14481, 14313, 14925, 11947, 13903, 13586, 13896, 14365, 15114, 13554, 13375, 14786, 14288, 11858, 15050, 13702, 15342, 14337, 14022, 13930, 14474, 12578, 13286, 14810, 14440, 14673, 14973, 11948, 15294, 14673, 9780, 13785, 14642, 15306, 15151, 13873, 14261, 14583, 10537, 14158, 14625, 14357, 14410, 12560, 14681, 14999, 14481, 14479, 14443, 14209, 15132, 13705, 13948, 13291, 14564, 13874, 14519, 9348, 12154, 14346, 14909, 13965, 13065, 11270, 11393, 14564, 14616, 13735, 12986, 14688, 15104, 15152, 13718, 14817, 14662, 13194, 15268, 14990, 15196, 13291, 14391, 12110, 13324, 12346, 14264, 14271, 13681, 14291, 15071, 14943, 15294, 14187, 14248, 14988, 14666, 11322, 15180, 14760, 15281, 15241, 14805, 15345, 13183, 12751, 13350, 14500, 14318, 15316, 13359, 14372, 15191, 11789, 14705, 14373, 12059, 14893, 14275, 13990, 15247, 15193, 14864, 15325, 14472, 14754, 12245, 15133, 14094, 13469, 14960, 14187, 13470, 15288, 12165, 11429, 13329, 13538, 14128, 13649, 14953, 14958, 14052, 14695, 13656, 15314, 14155, 12427, 13549, 14016, 11423, 11274, 15351, 14434, 14955, 14349, 13695, 14388, 14727, 13747, 15288, 12101, 14430, 14416, 14264, 15265, 14986, 15023, 14029, 13969, 14405, 14847, 13569, 15197, 15186, 5298, 14608, 12939, 15137, 15306, 12912, 14784, 14579, 12993, 14810, 15081, 14405, 14748, 12695, 13859, 12078, 10403, 13671, 14807, 13414, 14085, 14746, 14378, 14234, 14538, 13488, 14338, 12575, 11988, 14830, 13808, 12582, 14680, 15150, 14930, 15129, 14960, 14934, 14610, 13190, 13875, 14472, 10339, 13070, 13609, 14360, 13162, 11252, 7809, 15242, 14145, 15041, 15276, 15347, 14683, 13073, 13477, 14376, 14529, 14692, 14525, 12955, 13824, 15182, 13942, 14088, 14658, 15013, 10869, 13577, 15305, 13994, 14909, 11923, 12845, 14078, 13176, 10255, 10925, 14274, 13327, 13496, 11035, 12506, 13729, 12851, 12803, 14424, 15091, 12661, 14467, 15134, 14273, 13462, 14933, 13337, 13909, 15098, 14902, 11693, 13510, 11560, 11547, 14592, 15005, 15158, 15048, 15086, 13920, 12398, 13576, 14081, 14980, 15033, 14852, 12188, 14995, 13398, 14654, 15320, 14245, 14717, 13516, 13219, 15352, 14822, 15095, 15255, 13688, 14679, 15278, 15131, 14933, 14708, 14577, 13355, 14388, 14479, 14893, 12467, 14660, 13902, 14238, 14119, 13367, 12353, 15277, 14677, 11060, 11273, 13958, 10553, 14123, 9719, 15306, 9296, 14221, 14724, 13724, 14583, 11504, 15158, 15045, 14942, 11322, 15106, 12331, 13125, 15161, 14921, 13071, 12349, 10274, 13541, 12414, 15096, 14923, 14461, 12646, 14861, 13133, 15006, 11331, 14672, 14582, 14926, 14753, 14851, 11275, 12754, 12860, 14434, 15267, 8391, 14471, 14568, 14055, 13047, 14936, 15039, 14148, 13751, 14936, 13993, 15164, 14703, 13781, 14336, 13769, 14067, 12692, 13225, 13323, 15259, 14858, 14755, 14853, 15137, 13834, 13739, 13916, 12132, 15114, 15197, 13400, 12515, 14827, 12487, 9397, 13545, 14589, 15065, 14716, 14431, 14880, 14767, 14472, 13547, 14483, 12922, 14668, 15016, 13963, 12587, 13974, 11038, 14561, 13512, 10973, 14614, 12972, 10378, 15266, 14384, 14848, 14958, 11785, 14510, 13819, 14392, 14533, 13611, 14264, 13051, 15166, 13869, 13736, 15351, 13812, 14862, 15177, 12693, 15350, 14784, 15251, 7262, 14966, 12363, 14746, 13588, 12997, 14213, 14487, 15052, 13474, 14983, 14769, 12661, 12708, 14768, 14655, 13895, 14888, 13650, 14050, 14844, 11896, 14524, 15308, 14524, 14091, 14777, 10967, 14626, 14014, 10423, 11560, 13812, 14696, 14772, 13967, 14851, 6841, 9070, 14811, 13355, 9789, 15021, 15211, 10294, 11537, 14561, 14616, 14602, 14537, 13486, 14184, 14626, 15188, 12290, 14831, 15322, 14739, 14599, 15119, 14886, 14367, 9468, 12686, 14526, 14606, 13383, 13883, 14836, 14870, 13210, 15251, 12789, 13835, 14228, 13019, 14724, 14361, 14124, 13334, 15092, 14767, 12614, 13986, 14444, 13406, 14704, 14710, 14910, 14849, 14704, 11972, 14422, 13092, 11423, 14713, 15325, 12753, 10036, 12384, 14094, 14273, 13771, 13921, 13656, 8285, 14450, 14493, 14780, 15227, 13499, 15033, 14515, 14668, 15064, 13692, 14668, 15127, 13598, 12537, 14425, 14873, 15317, 13919, 15209, 14409, 12993, 14386, 15121, 14735, 10473, 14432, 14636, 14611, 14340, 8349, 14676, 14740, 12557, 12668, 14058, 13849, 12837, 13337, 13418, 12268, 14048, 14315, 13943, 7729, 14274, 14451, 14915, 14583, 13737, 13412, 14928, 14463, 14399, 13943, 15074, 12950, 14741, 15067, 12529, 14717, 14953, 11895, 15162, 12311, 14216, 12791, 9600, 14733, 14882, 13081, 14587, 13389, 14772, 14617, 14993, 15285, 15153, 14176, 13644, 14676, 15103, 14932, 12108, 14999, 12813, 15220, 14152, 13190, 12377, 15187, 15263, 12450, 13904, 11163, 15050, 13920, 13969, 11662, 14768, 13009, 14457, 14575, 13561, 10339, 15065, 13989, 14673, 14780, 14541, 14931, 14702, 14888, 14131, 14963, 15227, 12628, 14825, 14774, 13050, 14861, 11955, 15196, 15256, 12641, 12856, 15249, 12228, 13928, 13970, 13546, 14248, 11476, 12952, 15147, 15297, 13878, 14999, 14643, 14223, 12432, 12590, 15292, 14725, 14999, 10848, 13119, 14787, 15203, 15002, 14713, 13685, 6121, 13449, 15029, 14641, 14881, 15272, 14719, 15187, 12792, 13452, 15157, 14747, 14651, 14363, 14345, 14548, 14418, 14957, 14498, 14566, 14952, 14575, 14097, 12776, 13608, 15065, 15103, 13283, 11205, 12314, 14453, 13744, 14889, 14206, 14968, 13210, 14676, 15173, 9352, 15140, 14663, 14402, 13529, 11765, 14170, 15300, 14548, 14880, 14449, 14729, 13987, 14494, 14072, 12508, 14146, 15250, 11654, 14608, 15017, 14912, 13389, 15024, 11786, 14582, 13542, 11446, 15286, 13914, 14893, 13278, 13546, 14721, 13549, 13885, 13977, 13047, 14463, 14576, 14821, 14461, 13777, 14568, 15013, 14563, 12659, 14689, 15002, 15256, 10913, 14605, 15321, 15150, 15332, 14089, 14274, 14385, 14252, 14012, 14628, 14026, 13066, 10167, 15267, 14875, 14329, 14954, 14565, 10713, 14798, 15201, 14526, 14727, 14829, 14938, 11370, 14661, 14808, 14208, 12352, 13613, 14362, 11767, 15011, 15132, 8487, 14289, 12124, 10122, 14540, 15056, 13542, 14061, 13592, 12799, 15236, 14590, 14093, 12756, 14532, 14130, 14928, 11821, 11948, 14790, 14584, 12651, 13745, 15173, 14861, 12777, 13721, 14458, 14158, 14978, 15084, 11812, 14970, 12581, 14807, 14849, 15194, 15299, 15227, 14170, 8828, 9884, 14930, 14501, 15153, 13736, 14388, 13523, 15294, 15032, 14293, 14063, 12539, 14941, 12332, 13908, 15056, 11910, 14055, 13786, 13299, 14719, 13392, 12957, 13370, 14798, 15001, 15228, 15264, 11480, 11339, 13486, 15066, 14690, 13917, 12743, 14376, 13611, 14269, 12306, 13942, 12041, 14525, 11356, 14175, 12453, 14097, 12306, 14353, 12265, 12253, 14632, 14961, 10809, 14239, 14669, 12609, 11190, 10766, 14546, 14553, 14465, 12474, 14418, 11800, 12413, 14612, 14817, 14737, 14875, 14637, 14572, 9471, 13619, 10201, 12788, 14122, 14768, 14823, 9654, 14076, 14924, 13873, 14711, 14089, 10974, 14828, 15311, 11301, 12043, 14843, 12373, 13490, 12038, 15208, 13578, 14879, 14544, 15350, 11308, 14968, 12047, 12055, 14658, 14513, 14753, 14937, 14665, 13427, 11154, 14313, 13827, 13461, 15002, 10387, 12298, 15007, 14527, 14817, 14560, 13680, 14349, 10813, 8196, 14814, 10174, 14385, 13230, 9345, 14481, 14519, 14763, 14262, 13454, 11836, 12251, 12508, 15185, 13825, 13860, 13549, 12941, 12945, 15185, 12029, 15037, 13725, 12790, 14811, 14746, 13505, 14698, 9259, 15280, 14467, 14571, 14407, 13849, 12849, 13555, 14831, 15277, 13245, 11082, 14065, 11553, 14095, 14704, 13759, 15300, 12857, 11970, 9819, 13892, 15069, 14627, 15016, 15158, 14827, 12480, 14149, 15128, 13760, 13818, 14112, 13604, 15198, 14150, 14150, 13448, 14846, 15304, 11798, 15181, 15214, 14845, 14972, 14563, 12890, 13102, 9944, 14538, 13313, 14459, 14517, 13232, 12379, 13320, 14934, 12226, 13844, 13574, 9607, 13231, 12191, 14897, 15281, 15144, 15143, 14754, 13767, 13479, 10847, 12101, 14546, 14988, 14249, 15059, 13011, 13263, 14538, 14512, 15106, 13595, 14945, 14752, 12753, 14153, 10899, 14641, 13665, 14794, 14347, 14978, 14648, 13101, 11435, 15346, 10877, 14413, 13492, 12350, 14917, 13805, 13680, 14610, 14996, 15057, 9262, 14076, 14712, 14431, 15228, 15101, 13695, 12552, 14819, 13231, 13956, 14285, 13030, 14893, 11405, 13634, 15042, 14258, 13779, 12720, 14697, 14641, 14810, 14034, 15064, 14821, 14758, 13622, 14225, 15017, 15053, 14188, 14198, 13764, 14341, 11775, 14225, 13753, 14338, 15095, 14694, 15143, 14755, 14753, 14845, 13744, 13201, 15045, 11901, 14959, 12337, 14480, 13875, 14766, 15144, 14683, 10498, 14244, 13975, 14068, 14338, 14560, 14860, 14711, 15180, 14633, 13513, 15302, 14326, 14562, 13448, 14697, 14543, 14625, 13471, 14111, 15100, 15304, 11506, 13929, 12048, 14707, 13825, 13810, 15158, 13343, 14503, 13064, 14526, 14291, 14555, 14813, 12735, 14738, 14198, 11716, 13928, 15264, 13781, 12829, 10730, 11597, 15360, 14884, 11027, 14632, 13647, 12422, 14754, 12247, 14342, 14701, 15351, 14381, 14474, 13988, 13501, 12917, 14902, 15244, 14456, 14614, 15016, 10315, 10770, 14300, 13149, 14893, 13844, 9242, 13696, 13599, 14950, 14695, 12323, 15091, 14368, 13334, 13286, 15097, 12418, 12750, 10136, 14280, 14732, 14827, 12606, 14477, 13969, 12834, 13788, 13930, 14649, 14691, 15314, 12848, 14383, 12735, 14900, 14629, 15207, 13746, 14699, 14569, 15339, 10776, 15184, 15078, 14512, 14355, 14779, 14403, 12594, 15025, 12565, 15181, 14636, 14346, 13906, 10933, 14993, 14622, 11873, 12820, 14145, 11936, 15067, 14419, 12468, 13335, 13244, 14906, 11881, 10344, 15001, 13575, 13401, 14367, 14364, 15120, 13847, 13486, 14318, 13937, 13348, 13441, 9967, 12348, 13564, 13767, 14412, 14515, 13051, 14306, 14972, 13513, 14126, 14213, 13475, 14268, 14523, 14320, 15162, 12783, 13239, 14071, 10364, 14770, 14562, 14692, 14211, 12769, 14676, 14704, 14982, 13400, 15024, 13834, 12665, 15240, 12565, 14615, 14449, 9819, 12975, 15194, 13179, 12751, 12471, 14448, 12538, 14699, 11122, 11659, 13594, 9412, 13211, 14724, 11359, 14627, 14892, 14762, 13937, 13580, 15311, 15061, 14971, 12755, 15331, 14342, 13781, 15117, 15155, 15003, 14474, 6755, 14869, 14188, 12061, 13498, 12484, 15269, 15004, 15072, 14594, 13481, 13947, 9321, 13871, 12439, 12807, 10403, 12924, 14914, 12637, 15030, 8549, 12118, 12996, 14867, 14116, 14914, 13727, 13272, 15066, 10572, 14990, 14987, 12898, 14799, 12821, 14993, 14886, 14468, 13895, 13660, 13689, 12288, 12878, 12678, 13449, 14713, 15339, 12798, 14956, 12839, 14286, 14303, 14791, 14916, 15069, 14911, 13940, 14599, 13638, 13161, 14648, 13154, 14198, 13787, 12641, 12544, 14301, 13724, 15019, 14558, 8103, 14866, 10588, 12889, 13564, 13326, 15270, 14240, 14919, 12918, 15119, 10128, 14208, 11324, 10251, 15284, 14598, 13443, 15094, 14335, 15152, 14812, 12616, 14760, 14442, 13186, 15139, 11337, 13649, 12813, 13457, 14564, 14950, 15047, 15303, 15349, 11331, 14676, 12139, 14383, 14393, 13699, 13801, 14707, 14471, 13078, 14065, 14422, 15331, 14845, 14888, 14973, 14378, 14723, 13080, 14939, 13937, 14054, 15293, 13570, 12622, 13584, 14471, 14890, 13989, 13385, 13510, 13957, 13554, 15161, 14869, 13875, 14930, 14471, 15055, 13190, 13026, 14621, 14377, 13403, 14195, 14510, 14412, 15279, 14734, 14727, 15136, 14412, 15225, 8281, 14202, 13680, 13816, 13756, 14512, 13085, 14339, 14563, 13713, 15100, 13793, 15013, 15243, 14049, 12140, 12601, 13927, 13927, 14825, 14796, 15181, 14149, 15306, 14241, 14975, 14040, 15245, 14738, 12852, 14393, 13716, 13181, 14514, 14512, 13369, 14669, 14937, 14328, 14201, 13932, 15358, 13434, 10915, 12385, 14061, 14472, 14117, 13847, 14560, 14595, 11918, 13928, 14485, 14779, 14063, 15190, 12954, 14047, 14360, 14032, 13190, 12835, 14802, 13963, 13362, 14618, 14744, 15108, 15144, 14926, 15039, 13816, 15164, 14003, 12444, 12667, 14322, 13814, 14031, 14848, 13654, 12658, 14666, 14840, 14399, 14571, 13937, 14796, 14022, 11660, 13737, 9792, 10329, 13993, 13918, 14800, 13450, 15131, 14729, 12744, 14013, 13111, 14113, 15338, 14003, 14248, 14407, 15187, 13989, 13628, 15146, 14262, 13883, 14290, 14355, 13514, 15286, 14641, 14849, 13570, 13354, 14777, 13444, 14341, 14518, 13383, 15074, 13435, 15148, 14552, 15331, 14509, 13401, 15218, 15181, 14543, 14468, 15116, 15173, 15196, 9320, 15171, 12393, 14818, 14846, 14791, 14412, 14734, 14965, 14018, 13536, 15224, 15120, 14434, 14338, 9608, 15339, 14857, 11793, 14954, 15259, 11570, 11336, 14627, 12559, 14781, 14612, 13494, 14516, 15079, 14748, 15027, 13465, 14014, 14418, 13233, 14750, 15184, 15203, 11418, 15119, 14581, 14301, 13863, 10314, 12278, 14402, 14192, 13120, 13145, 13905, 14393, 11089, 13713, 15278, 12444, 12930, 14839, 12597, 14862, 12962, 13185, 14709, 15359, 13560, 14943, 14790, 15314, 14310, 13500, 13431, 12219, 7376, 12947, 14883, 14849, 7334, 14837, 14395, 13480, 14763, 14210, 14481, 15286, 13575, 14058, 13857, 12654, 5320, 15309, 13138, 14891, 15146, 15314, 12443, 15223, 15002, 14460, 15059, 14506, 14847, 14701, 14470, 11411, 14349, 12437, 14542, 14406, 14642, 12366, 15018, 14170, 13866, 14376, 14787, 15044, 12298, 13394, 14728, 13367, 14406, 15079, 13914, 14615, 15098, 15304, 15149, 14606, 14754, 15339, 15172, 14487, 12932, 14823, 14949, 13775, 15077, 14452, 14514, 15000, 15256, 15267, 11977, 15244, 12635, 14334, 14043, 13788, 15210, 14702, 14514, 8850, 14549, 13604, 14849, 11236, 13262, 15135, 14739, 15262, 14716, 14178, 15099, 10362, 14378, 14464, 15316, 13489, 9936, 12615, 14936, 13944, 14816, 12108, 14821, 13804, 14808, 13255, 14469, 14493, 7181, 15063, 14855, 13300, 12468, 14727, 13834, 13999, 13156, 14531, 14614, 14191, 15023, 14999, 14430, 13122, 13192, 13631, 13434, 14920, 13041, 14629, 14431, 12916, 15037, 15074, 14548, 14955, 13400, 14594, 13912, 14362, 15276, 14954, 12748, 14201, 14286, 15186, 13070, 15143, 11889, 14949, 13693, 15225, 12226, 15189, 14729, 15208, 11619, 14102, 11317, 14094, 14784, 15309, 15017, 14886, 15095, 14923, 13321, 14505, 13169, 15196, 12897, 15217, 13900, 14856, 14435, 14578, 14933, 11812, 13943, 15183, 15023, 14646, 14884, 15068, 15170, 14408, 14093, 15260, 14001, 13644, 15262, 15031, 12831, 14353, 13972, 15164, 14064, 14770, 13402, 14709, 13436, 15144, 15047, 14474, 15027, 15142, 13394, 15192, 7929, 15190, 12065, 13733, 12988, 14268, 13551, 14884, 10280, 14469, 14337, 12921, 13592, 14970, 14310, 12427, 13774, 14950, 14663, 14285, 13120, 14577, 14256, 11902, 15272, 15155, 12842, 14715, 15194, 14618, 15133, 14722, 8443, 14463, 13769, 12855, 13239, 13955, 15016, 9550, 14400, 13682, 15267, 14420, 14309, 13980, 14814, 15304, 14279, 13353, 13406, 13677, 15009, 11847, 14462, 13538, 12690, 13002, 14968, 13307, 15359, 14024, 10116, 14292, 14924, 12963, 13504, 13579, 14964, 10700, 12852, 14672, 15082, 14081, 14385, 14179, 13693, 12437, 15002, 8450, 14727, 13222, 14557, 15167, 12686, 12838, 12859, 14815, 13695, 14100, 13551, 13761, 13036, 14058, 13930, 14678, 13636, 14178, 15135, 13461, 14962, 15177, 14747, 14227, 13580, 12367, 14746, 14993, 13006, 12643, 14433, 13430, 11877, 14212, 14845, 13549, 14128, 14421, 12997, 15239, 13111, 14753, 15214, 15171, 14035, 15176, 13611, 13098, 11936, 15230, 13365, 12959, 14305, 13572, 15208, 7984, 14601, 14821, 11375, 14512, 13901, 14322, 12682, 15291, 14351, 12683, 14418, 13255, 13504, 14966, 13042, 14707, 14578, 14639, 13025, 14562, 15181, 14734, 13362, 15116, 15146, 14517, 12531, 14650, 14874, 14257, 15303, 11994, 14844, 14510, 11339, 12089, 14565, 14698, 14538, 13463, 13241, 11884, 15023, 13566, 15206, 13467, 14734, 14345, 14120, 15276, 14638, 12536, 11956, 15340, 15313, 13998, 10603, 14358, 12475, 13883, 12695, 10899, 13974, 13248, 12235, 13924, 15299, 13639, 14598, 14907, 13919, 14420, 13561, 14529, 14169, 14683, 14804, 13598, 12775, 14588, 13524, 8334, 13842, 14715, 14892, 15257, 14781, 14008, 15066, 14306, 14620, 13129, 14896, 15024, 15235, 10854, 13714, 8493, 14607, 13692, 14831, 15053, 15204, 14403, 15184, 15131, 12559, 13940, 12042, 12724, 14363, 14613, 14056, 10514, 13806, 15091, 13860, 11855, 11982, 15130, 14984, 13500, 15284, 15078, 13670, 15353, 13995, 13584, 13382, 13286, 13595, 12857, 13467, 13493, 15003, 14001, 14869, 14267, 14778, 14359, 11996, 14593, 13999, 14761, 14278, 10752, 13715, 14256, 15066, 14877, 12211, 9800, 14961, 14329, 14595, 15187, 15086, 14985, 14375, 14589, 11079, 14709, 15358, 13464, 14719, 15059, 14235, 7493, 13772, 14522, 13134, 15032, 13214, 13795, 14890, 14566, 15276, 11491, 14670, 14448, 14038, 14931, 15181, 13967, 13376, 13312, 14191, 15020, 13409, 9452, 13441, 14692, 15169, 14509, 14272, 15239, 14680, 13438, 14110, 15081, 14878, 12389, 13792, 11068, 11729, 13532, 9321, 13640, 14772, 14045, 12524, 13249, 13244, 15033, 14338, 11789, 11031, 13676, 10766, 12488, 14584, 14101, 12662, 15205, 12396, 14982, 15253, 12947, 13315, 13565, 12026, 13344, 13761, 14767, 12255, 13602, 13598, 12884, 14298, 15282, 15241, 14529, 11235, 14582, 12729, 15112, 15172, 13739, 13999, 14191, 11269, 14766, 14456, 14786, 14085, 13927, 14332, 15236, 14752, 15278, 9775, 15115, 11710, 14598, 13154, 12640, 11853, 14558, 15291, 13784, 14836, 11780, 13919, 11493, 14291, 14592, 12959, 14010, 15286, 14364, 14193, 13136, 15312, 15101, 13135, 13212, 13711, 13571, 14205, 11053, 15015, 13495, 13680, 13512, 14740, 14499, 15244, 14472, 15079, 14554, 12862, 14408, 13447, 14436, 14730, 13564, 9470, 14380, 15343, 14524, 10520, 13384, 15006, 15280, 15210, 15244, 13619, 14845, 15269, 15107, 13794, 12930, 13200, 14713, 15089, 13635, 13874, 12350, 14555, 15090, 12437, 11149, 15321, 8330, 15359, 13347, 14824, 14044, 13829, 12941, 14114, 14597, 13967, 13557, 14452, 14930, 12335, 12549, 14346, 14507, 15197, 14587, 12284, 13879, 15227, 14829, 9551, 14731, 13622, 10487, 14123, 13446, 15151, 14475, 13117, 14686, 14349, 8078, 15234, 14031, 12378, 14724, 12992, 14435, 14873, 14752, 14192, 14777, 14637, 13966, 15133, 14806, 15107, 14251, 14830, 11286, 13477, 14822, 14525, 13792, 15225, 13356, 14629, 14943, 14434, 13530, 14969, 13148, 11636, 15168, 12558, 13060, 15304, 13610, 13243, 13861, 10751, 13003, 14090, 11612, 10944, 13426, 13116, 13354, 14640, 14825, 13727, 14279, 11908, 14049, 13334, 11691, 15152, 14002, 12286, 14849, 14797, 14757, 14185, 14660, 15083, 13086, 14550, 14305, 13181, 14937, 13796, 14345, 14615, 14055, 14734, 14742, 13681, 13640, 13768, 12045, 14220, 14780, 14365, 13626, 12762, 13690, 14265, 13219, 12412, 15247, 12732, 14579, 12564, 15092, 12870, 15149, 13811, 11887, 14269, 13768, 14793, 14975, 14851, 15249, 15088, 14740, 14669, 14772, 10875, 15147, 15254, 14480, 15300, 13405, 12341, 13706, 12647, 14967, 14526, 14013, 14248, 12696, 15035, 12287, 15127, 15169, 13396, 13324, 14562, 13114, 13385, 12754, 12814, 14562, 14978, 15086, 14151, 15270, 14401, 12916, 14486, 13737, 12798, 14798, 14586, 10346, 13347, 14877, 14356, 14740, 12098, 14388, 8319, 14654, 13065, 13192, 3788, 9557, 12747, 13647, 14199, 15011, 15045, 14970, 13412, 11368, 15348, 14836, 14199, 14774, 14374, 13965, 12978, 14781, 14503, 15201, 13527, 13595, 15203, 11059, 15006, 14820, 14091, 15324, 14345, 14692, 15163, 13922, 15301, 8816, 13716, 13547, 15312, 14767, 6474, 13996, 14811, 14982, 12604, 14404, 13143, 13782, 14062, 14809, 14751, 10297, 11499, 10735, 13464, 15319, 14753, 15135, 12634, 12385, 14632, 14391, 12735, 14670, 14268, 14883, 11775, 13547, 15336, 11615, 12333, 11757, 10917, 13715, 14499, 15225, 13492, 12495, 13433, 14717, 14983, 15114, 14011, 13206, 13739, 11226, 14640, 14724, 13970, 14902, 13919, 14360, 14453, 14654, 15025, 14742, 14832, 14743, 14294, 12498, 14328, 14559, 11815, 12816, 15344, 13592, 11887, 13019, 12766, 14620, 13790, 15208, 12928, 11537, 12760, 14404, 13555, 10615, 14200, 10344, 14169, 15326, 14850, 12835, 10964, 14964, 13502, 13346, 14520, 15021, 14983, 14724, 12730, 14128, 11272, 14489, 13934, 14967, 14758, 14653, 10722, 11218, 7386, 13009, 15036, 11682, 14893, 13894, 14113, 11286, 15317, 14571, 14509, 14016, 14634, 13788, 13864, 8600, 15344, 13620, 15145, 11473, 13115, 12007, 13244, 12317, 15127, 14981, 14762, 14940, 14214, 13180, 14227, 14908, 15064, 15191, 14447, 15263, 14411, 15160, 13454, 13745, 14621, 13561, 13028, 15198, 13031, 14521, 13445, 14885, 14002, 14552, 14590, 15001, 15286, 14180, 15138, 10278, 12604, 15328, 13592, 14702, 10804, 14782, 14219, 10650, 14608, 12825, 15166, 14982, 14185, 15066, 13920, 14677, 15130, 13893, 12606, 15259, 13012, 14472, 11925, 15282, 3463, 15005, 14904, 15000, 9485, 13039, 15095, 14735, 14802, 14804, 14517, 13857, 14786, 13764, 13408, 15129, 15040, 14579, 15305, 12495, 14822, 15092, 12754, 14825, 14300, 14003, 13538, 13327, 12962, 14092, 14938, 14656, 15003, 13142, 12997, 14537, 14407, 14341, 15168, 14463, 15110, 14388, 12166, 13345, 12537, 15186, 3873, 14374, 14415, 15235, 14480, 14491, 11214, 9339, 12190, 12519, 10266, 15239, 13460, 14448, 12650, 14599, 13464, 12614, 14152, 14455, 13768, 14374, 11468, 14861, 15047, 13156, 13232, 15156, 14724, 11318, 12328, 14015, 14505, 13206, 14296, 14432, 13886, 14696, 13962, 12674, 14124, 14815, 14592, 15317, 13982, 14623, 14371, 15154, 13736, 14627, 12790, 12527, 14965, 14949, 12395, 14925, 12490, 14149, 9500, 14430, 14586, 14388, 14642, 13646, 14604, 15046, 12306, 11047, 14372, 12469, 14215, 15050, 12350, 14667, 14926, 14719, 15360, 14963, 13989, 14904, 15038, 14049, 13383, 15100, 14570, 14096, 15049, 15312, 13870, 14393, 11117, 8780, 13964, 14286, 14813, 14575, 11932, 14242, 14338, 15221, 13579, 12681, 14528, 14032, 12884, 12914, 13953, 12811, 14850, 14829, 13677, 14299, 11290, 15163, 10956, 12909, 13587, 15152, 15033, 14916, 11774, 12257, 14702, 13280, 10575, 14150, 13806, 15160, 14871, 14021, 14877, 14641, 14298, 15314, 15335, 13950, 15340, 14271, 11308, 14503, 13364, 14539, 15196, 11435, 13963, 13120, 14100, 14704, 14523, 9512, 12067, 15310, 14775, 14062, 13651, 14262, 13117, 12586, 14354, 11480, 14406, 13957, 13804, 14526, 14632, 13554, 14925, 11264, 13048, 11541, 14679, 13151, 12729, 11371, 15158, 9672, 14986, 12689, 13840, 14482, 14339, 14195, 14537, 14820, 13358, 14957, 14272, 14122, 14652, 12103, 14348, 12924, 14789, 14376, 14403, 14133, 14512, 14225, 13410, 14639, 14809, 14512, 15110, 14535, 14037, 14287, 14108, 14926, 15271, 14697, 15225, 14813, 15033, 14891, 14536, 14926, 14451, 10429, 14776, 14185, 15016, 12227, 15067, 15305, 14545, 10419, 15032, 15119, 15032, 13738, 14673, 11365, 14384, 14209, 13817, 14672, 13618, 15214, 12966, 11680, 12479, 12219, 15315, 12821, 11102, 14448, 14638, 13544, 13664, 13706, 14695, 12861, 15086, 14967, 14002, 14436, 15092, 14757, 13673, 14346, 14445, 14792, 14970, 12350, 6610, 13593, 14699, 15261, 14400, 13459, 14541, 12614, 14730, 13723, 15236, 14437, 14547, 14392, 14507, 13748, 14459, 11000, 12988, 14385, 14667, 14589, 11085, 14206, 15154, 14905, 13691, 12364, 14489, 14305, 14087, 14706, 15043, 14920, 14370, 15337, 15328, 15152, 13544, 14521, 14571, 15283, 15145, 11685, 15097, 13333, 13579, 11983, 14789, 14880, 13933, 13471, 14347, 15239, 12958, 15357, 15191, 14766, 15128, 15113, 13619, 14879, 15122, 14343, 14709, 12334, 15230, 15238, 15262, 14774, 14872, 12585, 13080, 15176, 13894, 15163, 15126, 14422, 13592, 14737, 14277, 15034, 14654, 15094, 15212, 15328, 13339, 12673, 14353, 14884, 13812, 14748, 13214, 13236, 14248, 13831, 12579, 11704, 12123, 14766, 15155, 14733, 14412, 15114, 14629, 14887, 14963, 15271, 15018, 14645, 15089, 15240, 12653, 14570, 14046, 12760, 14377, 15267, 11043, 14440, 12129, 15114, 15106, 13435, 14346, 13827, 14995, 15205, 14008, 12259, 14052, 14767, 12562, 14385, 14106, 14511, 14996, 13276, 12758, 14868, 12749, 12822, 13828, 9680, 14038, 14461, 12939, 15180, 13018, 14706, 14641, 14450, 12450, 12655, 13931, 13761, 14034, 14702, 11694, 14531, 14869, 15243, 13959, 12645, 12324, 15313, 14114, 14165, 14687, 14812, 12459, 11697, 13258, 14982, 11765, 14460, 13827, 15095, 14486, 15008, 15204, 14024, 14445, 14921, 12916, 14108, 14512, 13702, 12743, 13400, 14287, 14189, 14069, 14059, 13511, 14882, 13450, 12596, 15090, 14702, 15191, 14544, 15173, 13398, 14849, 14833, 12387, 11856, 14074, 9724, 14775, 13361, 13977, 10680, 14391, 15262, 14857, 14091, 13956, 15146, 15063, 14136, 14705, 14517, 13931, 15192, 13545, 14406, 11125, 15136, 12979, 10672, 13844, 12914, 15063, 14171, 14033, 15178, 13944, 12423, 15255, 14481, 12596, 15189, 14280, 9851, 15000, 14558, 12636, 13533, 13254, 14873, 14345, 13371, 14687, 14513, 14472, 14727, 14497, 15355, 14955, 11675, 15329, 14919, 14685, 13238, 14864, 14255, 15183, 9769, 12734, 14919, 15311, 14381, 13505, 15089, 14819, 13783, 15034, 11422, 14444, 10978, 14679, 14163, 11165, 14763, 15003, 15232, 13454, 11473, 13427, 14553, 13856, 14905, 15234, 12885, 14901, 13394, 12941, 14814, 14442, 13702, 13409, 14267, 14147, 15159, 11830, 13625, 13611, 14768, 11492, 12348, 14171, 11426, 10252, 10959, 14490, 15025, 14372, 14779, 15084, 14325, 12752, 14390, 13955, 13579, 14313, 14624, 12691, 15097, 13636, 14869, 13665, 13488, 14154, 14704, 14347, 15012, 14459, 11501, 13522, 14162, 14295, 9461, 14400, 15048, 14366, 13930, 14813, 12598, 15168, 14096, 15213, 14190, 11293, 13061, 15159, 12296, 13456, 11942, 14007, 14112, 14673, 13420, 14596, 15093, 13277, 15319, 13334, 13821, 15287, 14530, 14440, 15077, 15124, 14264, 9991, 15312, 13255, 14757, 10704, 15327, 12964, 13874, 14237, 13947, 13595, 14612, 13422, 14252, 14770, 12568, 12484, 13666, 12375, 11085, 14388, 13490, 10487, 14773, 13987, 11475, 10004, 12315, 10892, 13629, 12496, 14876, 14108, 14790, 13307, 12845, 14867, 12626, 14771, 13550, 12524, 14317, 13317, 13302, 14915, 10935, 13561, 12577, 14988, 13625, 14486, 12576, 14253, 10754, 15261, 14497, 14757, 13613, 12870, 14645, 15251, 12374, 12810, 13249, 12832, 14777, 14035, 14334, 13931, 15127, 14101, 14849, 13418, 15173, 13220, 13520, 8830, 15079, 14923, 13414, 14436, 13668, 11893, 12955, 13171, 12762, 14520, 15267, 14005, 14724, 13733, 14263, 11836, 11977, 12167, 14396, 14775, 14999, 14711, 14671, 11904, 15134, 15336, 15086, 13444, 12480, 13185, 14762, 11683, 12035, 11019, 14166, 14077, 14020, 11644, 15120, 14358, 14303, 14054, 13814, 14085, 14433, 14924, 7508, 12804, 13082, 15037, 14382, 13824, 14141, 14965, 15018, 14805, 13241, 15314, 12426, 12812, 11402, 13874, 14371, 13945, 12646, 13066, 14431, 12471, 14192, 15043, 14481, 13374, 13724, 13390, 14736, 15123, 13363, 14629, 15275, 14969, 10954, 13267, 14439, 13717, 14342, 15214, 15220, 11286, 12844, 14116, 14493, 14547, 15153, 13579, 14720, 13882, 12625, 14493, 13597, 13518, 15227, 13386, 15123, 13319, 14646, 14179, 14854, 12661, 14717, 14604, 13865, 14821, 14046, 14450, 14454, 14435, 14488, 15296, 13861, 11712, 15072, 14713, 15042, 15019, 12453, 14473, 14427, 14948, 13949, 12742, 15035, 14230, 12257, 14374, 13436, 13685, 8742, 14392, 15094, 14419, 14109, 14716, 14001, 13391, 12016, 15019, 14514, 13228, 15264, 5911, 14345, 14742, 14180, 13361, 13305, 14921, 12215, 15271, 14158, 15173, 14972, 13553, 14543, 14479, 14879, 12300, 14394, 13716, 12175, 14293, 13887, 11665, 12544, 14997, 11940, 14958, 14235, 14904, 12616, 14051, 14255, 14303, 11361, 14907, 14982, 12829, 13719, 14598, 15339, 14404, 15070, 9564, 8693, 13816, 12503, 15206, 15067, 13340, 13840, 14396, 14558, 12140, 14024, 14707, 12738, 14186, 15166, 12319, 14420, 15132, 14999, 14469, 11292, 14494, 7713, 11900, 12380, 12662, 14151, 15109, 14511, 13948, 14644, 14982, 10275, 11992, 14951, 15135, 14213, 13261, 14638, 15003, 14442, 14744, 14623, 14816, 14980, 12125, 14049, 13449, 15244, 15160, 10874, 13958, 14920, 14240, 14429, 15171, 11083, 12478, 14754, 14413, 14556, 14448, 15025, 14916, 15101, 13027, 14355, 14536, 15138, 13755, 13871, 15090, 14810, 14489, 12706, 14803, 15039, 12318, 14748, 13541, 14919, 14525, 13931, 12917, 14527, 14722, 15318, 13710, 14515, 14425, 14927, 13478, 15273, 14675, 14661, 14662, 13580, 13974, 14781, 13359, 14657, 14964, 14883, 13659, 13859, 14825, 13462, 13698, 14075, 14697, 15108, 13001, 14755, 14314, 13783, 14464, 14843, 14738, 15206, 12934, 14749, 15213, 11952, 14668, 14855, 8944, 11869, 12500, 13848, 11815, 14956, 11471, 15163, 15200, 14395, 14452, 11503, 14351, 11995, 14050, 14968, 13735, 13872, 14385, 14387, 14889, 15081, 14707, 15110, 10144, 15129, 15231, 13996, 15216, 13139, 10725, 11574, 14822, 15159, 15357, 14877, 14538, 13354, 15085, 14920, 12059, 13570, 12376, 14789, 15212, 13753, 15034, 13843, 15037, 12859, 12638, 14710, 13662, 13726, 9615, 15261, 15177, 11392, 10458, 13653, 13429, 13517, 14479, 13560, 14365, 15096, 15342, 13201, 15267, 14921, 14941, 12336, 13518, 13106, 14163, 13592, 14363, 12398, 15022, 13724, 14634, 15063, 15175, 14387, 15317, 15226, 13123, 14850, 13542, 14326, 15128, 15287, 14752, 10081, 14339, 13502, 14970, 13287, 15340, 12164, 14692, 15305, 14500, 12727, 11510, 15195, 13364, 14611, 13803, 12717, 14959, 15275, 15057, 14542, 15011, 14421, 8384, 14791, 10120, 14413, 15181, 14515, 15208, 14703, 14344, 15256, 13365, 14674, 15063, 12784, 13066, 14332, 15163, 13305, 14630, 14804, 11654, 14938, 9948, 11550, 14623, 14602, 10777, 14783, 15023, 13052, 13191, 13770, 12561, 13080, 10421, 15195, 13414, 13446, 13544, 15150, 13876, 11503, 15040, 12301, 15042, 13706, 14725, 14539, 14903, 14387, 14487, 12502, 14379, 15351, 15255, 14721, 14433, 14628, 12536, 13147, 14598, 12542, 13965, 13412, 11961, 13058, 13672, 15170, 12108, 14763, 15073, 15190, 11864, 14731, 14812, 14967, 14413, 14896, 14144, 14737, 14937, 13610, 15188, 15036, 13546, 14382, 15172, 14739, 13437, 14477, 13936, 11419, 11294, 13985, 10810, 15051, 9326, 14813, 15274, 14345, 15288, 14387, 9530, 10447, 13507, 14813, 14197, 15071, 14370, 14585, 13894, 13091, 14771, 14143, 13157, 14042, 14065, 15327, 15318, 15165, 15255, 14692, 15104, 14804, 15102, 7659, 11872, 15344, 15345, 14644, 14375, 14971, 12670, 15347, 13822, 8129, 15096, 14676, 14915, 11293, 14713, 15094, 14478, 14662, 11005, 15260, 12058, 15272, 13385, 14432, 14454, 14407, 6760, 14243, 14979, 14566, 11670, 14075, 13999, 13834, 14590, 14797, 14868, 13892, 13973, 13508, 15169, 15348, 13914, 12198, 13964, 14285, 13776, 14390, 14589, 14465, 15265, 10331, 14090, 15164, 12596, 15037, 13317, 14871, 14350, 15093, 8012, 14103, 13038, 14182, 10680, 13068, 14549, 15102, 14993, 15285, 14374, 14761, 15155, 12551, 13347, 12727, 11338, 13735, 12886, 15354, 15246, 15002, 13138, 15280, 14958, 15306, 13832, 13645, 15167, 15344, 14398, 7559, 14475, 14375, 14145, 14148, 13483, 12164, 15342, 13859, 14550, 14733, 14645, 14354, 14439, 12871, 12992, 13727, 14921, 13769, 14226, 14161, 14705, 14915, 15244, 15310, 15261, 14453, 15133, 13759, 14490, 14097, 15000, 14606, 14559, 14695, 15103, 8965, 13769, 13629, 11998, 14812, 15230, 12441, 15061, 4383, 15314, 14271, 13693, 15000, 13037, 15343, 13331, 15124, 14996, 14774, 12328, 13554, 14190, 13403, 14666, 10321, 13162, 13654, 14850, 12558, 14213, 15190, 15314, 14644, 11605, 15164, 14341, 12493, 14607, 14431, 13700, 15098, 14230, 11433, 14138, 15157, 14574, 13867, 14158, 11294, 13929, 15171, 14797, 15080, 13767, 15186, 12933, 12542, 13945, 15139, 11535, 13863, 15140, 13657, 14668, 14583, 15274, 15191, 15350, 14667, 13334, 12648, 14441, 14355, 14197, 15009, 15226, 13425, 15009, 13384, 14392, 14513, 14169, 14424, 14654, 14925, 14810, 14740, 14365, 14450, 14457, 13576, 14572, 13664, 14657, 14275, 14176, 7897, 14221, 15085, 15234, 15139, 14914, 12808, 14482, 14543, 15276, 14958, 14674, 15108, 14837, 14844, 13477, 14415, 13963, 14643, 14830, 14833, 14981, 13749, 12283, 15016, 14267, 12316, 11873, 9968, 12673, 11371, 12975, 13444, 14462, 14993, 15241, 15296, 13388, 14972, 12767, 11894, 12362, 14531, 14685, 14667, 14456, 14945, 15338, 14919, 15104, 11567, 14678, 14118, 15290, 15342, 14081, 13721, 14660, 14808, 15328, 15195, 14050, 12547, 15165, 12305, 15107, 14848, 14397, 13740, 14528, 15214, 13723, 13248, 14051, 15009, 12445, 15199, 14073, 13814, 13749, 14462, 10582, 13020, 12293, 13642, 14805, 14985, 15359, 13454, 12713, 14582, 13494, 12873, 13325, 14233, 14997, 13559, 14385, 15261, 13654, 14935, 13147, 14588, 15178, 15073, 13592, 13805, 13321, 10878, 12317, 14362, 13335, 15309, 14007, 15327, 15258, 15189, 13570, 8642, 11677, 14902, 12467, 13573, 15166, 15126, 14785, 14972, 14077, 14350, 15220, 14455, 15081, 14602, 14722, 13985, 12995, 14256, 10500, 12373, 14661, 14387, 14126, 13952, 15221, 12035, 13062, 15056, 10400, 12173, 14703, 14868, 11318, 15124, 14719, 14005, 12861, 12378, 15357, 12274, 13801, 14742, 14413, 13330, 11364, 14935, 15008, 14929, 14799, 13180, 14211, 14732, 13354, 12127, 15058, 14753, 15253, 14545, 14729, 11593, 13159, 13938, 14709, 14815, 14599, 14394, 14043, 14428, 15343, 13890, 14939, 14409, 13601, 13637, 13401, 13588, 11459, 14356, 14363, 12697, 14473, 11041, 12083, 14578, 14620, 12365, 15157, 12668, 12980, 14444, 9338, 13499, 11424, 13907, 12215, 14274, 14806, 11185, 14403, 14379, 11870, 11130, 14600, 15187, 10576, 13935, 14998, 13430, 13644, 11940, 13555, 11610, 12834, 13531, 14526, 14613, 14350, 15342, 15002, 13879, 13039, 15265, 13916, 15171, 14241, 14839, 13354, 13871, 13982, 14845, 14074, 13973, 14188, 12834, 15254, 14759, 14886, 12184, 13463, 15328, 15078, 12773, 14911, 9378, 13856, 13974, 14897, 15325, 12585, 14669, 13537, 13549, 13447, 11770, 14526, 14623, 14633, 14280, 12942, 12743, 15341, 14542, 14565, 14293, 14725, 13886, 14418, 14429, 14066, 11685, 14340, 13221, 12391, 12827, 14100, 14736, 13369, 12553, 12458, 13813, 14903, 10956, 14840, 14528, 14866, 12247, 14756, 12528, 10612, 15152, 14687, 15062, 11499, 10559, 14533, 11819, 11801, 13560, 14118, 11961, 14980, 14604, 14019, 14042, 13592, 13874, 14920, 12898, 14769, 13452, 11904, 12854, 15315, 14829, 14352, 15340, 14808, 14762, 13414, 12691, 13821, 14363, 14160, 14156, 12925, 13580, 13318, 15117, 15103, 12301, 14759, 14993, 14990, 13691, 13696, 15050, 12576, 14052, 15172, 12419, 15162, 13023, 11692, 14416, 15332, 13291, 14982, 14581, 15007, 14343, 13656, 14152, 14350, 13047, 11817, 14861, 15270, 14885, 13693, 11194, 15192, 15030, 14618, 11760, 12171, 15022, 11573, 7682, 15356, 12197, 15317, 14336, 14229, 14625, 15005, 14845, 15345, 15057, 13541, 14661, 10061, 11229, 12241, 13966, 14077, 14446, 14715, 13704, 14364, 14438, 14369, 14939, 15000, 14606, 14821, 14643, 14870, 14557, 10013, 13981, 14846, 11779, 14296, 12400, 14613, 13735, 13223, 10159, 13441, 13166, 14737, 13560, 14610, 13522, 13053, 12788, 14560, 13961, 13578, 14517, 11437, 14833, 15172, 13084, 14388, 15144, 15199, 14833, 14247, 15209, 14407, 12044, 11546, 11313, 15282, 13889, 13827, 14823, 12228, 15052, 14702, 12407, 14833, 13993, 15036, 13000, 15004, 15173, 13738, 13292, 14513, 13927, 14439, 14649, 13386, 15323, 14829, 13975, 11515, 14461, 14609, 13712, 14285, 14503, 12324, 13838, 14695, 14439, 10133, 14155, 15182, 15197, 10832, 15326, 13584, 15202, 11215, 13608, 12724, 12442, 12268, 12073, 14128, 14580, 15131, 14517, 15088, 11688, 11848, 13609, 10473, 14956, 15355, 14389, 12050, 12494, 14052, 14378, 14362, 14251, 12383, 14492, 15155, 14291, 12293, 15246, 14516, 14429, 13963, 13085, 14747, 14527, 15176, 10933, 15351, 14568, 10676, 12561, 14433, 15290, 14990, 15042, 12359, 14858, 15069, 14464, 14920, 13730, 14655, 13404, 10892, 15254, 12645, 14153, 14259, 11339, 15082, 14797, 14057, 15327, 13193, 14349, 15073, 15310, 12614, 12083, 14684, 12946, 12985, 13767, 13962, 7621, 14450, 13810, 14651, 14635, 12388, 14639, 10285, 15313, 14412, 14693, 14503, 11686, 13460, 15101, 11794, 15113, 14796, 14036, 11194, 13324, 15161, 14584, 14717, 12430, 13528, 14752, 14423, 12906, 14282, 14881, 14469, 15150, 13784, 14894, 13681, 11731, 11757, 14737, 13657, 15059, 13244, 14905, 14668, 15233, 15317, 13750, 11634, 14331, 13954, 13630, 14152, 13736, 13610, 13127, 14601, 14100, 14528, 12819, 14499, 12019, 14618, 10255, 15263, 14753, 12419, 14105, 12307, 13136, 13110, 14206, 12880, 15017, 15103, 12629, 12103, 13277, 15287, 14644, 13911, 13396, 14376, 15181, 14926, 8432, 15245, 14944, 14688, 13861, 14204, 11852, 13418, 11571, 15066, 12337, 15160, 14669, 14345, 14754, 14863, 12039, 12249, 13699, 14725, 14594, 14842, 14266, 14095, 14345, 14130, 14892, 13235, 14350, 12856, 14379, 11673, 12885, 15014, 10246, 15169, 14306, 14934, 14912, 14561, 14374, 13493, 14995, 14254, 14431, 15115, 12483, 14415, 9738, 12940, 14670, 11053, 9261, 10574, 13007, 15172, 15172, 14623, 12768, 14293, 14172, 13875, 15334, 14580, 13760, 14893, 13195, 14062, 15039, 13823, 14778, 14327, 13893, 12682, 2232, 15198, }; TransResult result; EXPECT_EQ(TransposeWithShapeCheck(reinterpret_cast(data), std::vector({8, 3, 16, 16}), std::vector({16, 16, 3, 8}), DT_FLOAT16, std::vector({2, 3, 1, 0}), result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, hwcn_to_nchw1) { uint16_t data[8 * 8 * 1 * 1] = { 12208, 14583, 13592, 12554, 13844, 14952, 13550, 13912, 12895, 14609, 13628, 14807, 13682, 8931, 14783, 15331, 13308, 14319, 13440, 14485, 15059, 9591, 14072, 12425, 11684, 13490, 12707, 15081, 14622, 15357, 14149, 14457, 15011, 15043, 13933, 14880, 12999, 14028, 14471, 15004, 9253, 14649, 12929, 14265, 10738, 8334, 11893, 13852, 14621, 15000, 13395, 15062, 14872, 14369, 15272, 14260, 12609, 15326, 14455, 13991, 14012, 14669, 15110, 12708, }; uint16_t ret[1 * 1 * 8 * 8] = { 12208, 14583, 13592, 12554, 13844, 14952, 13550, 13912, 12895, 14609, 13628, 14807, 13682, 8931, 14783, 15331, 13308, 14319, 13440, 14485, 15059, 9591, 14072, 12425, 11684, 13490, 12707, 15081, 14622, 15357, 14149, 14457, 15011, 15043, 13933, 14880, 12999, 14028, 14471, 15004, 9253, 14649, 12929, 14265, 10738, 8334, 11893, 13852, 14621, 15000, 13395, 15062, 14872, 14369, 15272, 14260, 12609, 15326, 14455, 13991, 14012, 14669, 15110, 12708, }; TransResult result; EXPECT_EQ(TransposeWithShapeCheck(reinterpret_cast(data), std::vector({8, 8, 1, 1}), std::vector({1, 1, 8, 8}), DT_FLOAT16, std::vector({3, 2, 0, 1}), result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, hwcn_to_nchw2) { uint16_t data[4 * 4 * 3 * 16] = { 12206, 15252, 13115, 14551, 14648, 14331, 14547, 14493, 15331, 14787, 13916, 13683, 13639, 14658, 13168, 13867, 15344, 14769, 11735, 14827, 11799, 14241, 13577, 13575, 13692, 14962, 12658, 13574, 14902, 14145, 7260, 12731, 11408, 15249, 15005, 14593, 14345, 11556, 14944, 12381, 14931, 12928, 13439, 15081, 14916, 12555, 14132, 15127, 14518, 15027, 11342, 13075, 15300, 14569, 13861, 15295, 13685, 14481, 13679, 14997, 15217, 12472, 13102, 13861, 14582, 12594, 15219, 13730, 14243, 14966, 15296, 11656, 12353, 15221, 13763, 11059, 14747, 14431, 15281, 15235, 13495, 14435, 13960, 14883, 12593, 12703, 12977, 12798, 14912, 13359, 15310, 11484, 9325, 14662, 15035, 15149, 15212, 13904, 13065, 14156, 14951, 12352, 14899, 13666, 10334, 12081, 14557, 14707, 15348, 10316, 13515, 10960, 14978, 14715, 6436, 14506, 14127, 15167, 14712, 15016, 12241, 14464, 14839, 14696, 14961, 14089, 14863, 14278, 7571, 14403, 14152, 14773, 14591, 14633, 14603, 14616, 12746, 15220, 13835, 14451, 14613, 14520, 15271, 14043, 14874, 14337, 10594, 13156, 14346, 14762, 13793, 14521, 11469, 11686, 14168, 14274, 14848, 13413, 14627, 15323, 10132, 10983, 11165, 14733, 13978, 14598, 15114, 14608, 14132, 13145, 13837, 11092, 10036, 15051, 13517, 14497, 15057, 14136, 15166, 15132, 14350, 14478, 14065, 14028, 15070, 13898, 15257, 12292, 13666, 13896, 14723, 15254, 12933, 13444, 15216, 15000, 11997, 14840, 15167, 14240, 11907, 12932, 9154, 14593, 15147, 14779, 14203, 12811, 13948, 13791, 10662, 14352, 12429, 13710, 14748, 14300, 14831, 13140, 13839, 13813, 11961, 15318, 14536, 8683, 14951, 13481, 14009, 11298, 14538, 15313, 14625, 13450, 14782, 13429, 12462, 13913, 13976, 13812, 15037, 14354, 13690, 13927, 14747, 14392, 14526, 15059, 13637, 15164, 13527, 13434, 15306, 12664, 14668, 15072, 14216, 13813, 15217, 14980, 13342, 11405, 14030, 12222, 13681, 14135, 12413, 13891, 10703, 14576, 15105, 15005, 15026, 14929, 10239, 14260, 14900, 14587, 13563, 14644, 14823, 13589, 13685, 15235, 14477, 14623, 14938, 13067, 14160, 14611, 11279, 14070, 14572, 13528, 14678, 14340, 14645, 15018, 15221, 15250, 14497, 10306, 13701, 14622, 14397, 13593, 13391, 14954, 15042, 14097, 13225, 13382, 14385, 14779, 13280, 14509, 14870, 15158, 13003, 14188, 12173, 15064, 14106, 14853, 13813, 12196, 15086, 6765, 14511, 12297, 14482, 15344, 13705, 13905, 14782, 15071, 13085, 14698, 12004, 14351, 10879, 15172, 14439, 12797, 14288, 14771, 13457, 14878, 10827, 15075, 15017, 13578, 14290, 14126, 13426, 12512, 13487, 15008, 13848, 13495, 11581, 13424, 10513, 13823, 14494, 13993, 13684, 15115, 15088, 12791, 15360, 15015, 8406, 14809, 12276, 12274, 13489, 14998, 10335, 14889, 14803, 13224, 13536, 12404, 14424, 11213, 15157, 14739, 12099, 15027, 14989, 12158, 14607, 10455, 14856, 15038, 14580, 12491, 14339, 15192, 14607, 14462, 13799, 13832, 14513, 13889, 14693, 11150, 15086, 13549, 14363, 14829, 14626, 14953, 11531, 13649, 10310, 12240, 15212, 13940, 11392, 13551, 11780, 13611, 14171, 14478, 15107, 14519, 15184, 14398, 14267, 13960, 11746, 14939, 14185, 15022, 15053, 13762, 14435, 15065, 13523, 9470, 13809, 15196, 15229, 13988, 13501, 14448, 15124, 12087, 15300, 14205, 12480, 15345, 14788, 14223, 11611, 13596, 14903, 11919, 13534, 13161, 13832, 15353, 14978, 14903, 14410, 14415, 13090, 14363, 6160, 10966, 15249, 15268, 14483, 13302, 13538, 13705, 15167, 13341, 13709, 14738, 10866, 14805, 14677, 12874, 15177, 10810, 13384, 13555, 14705, 15268, 14834, 14844, 13639, 12453, 15012, 14508, 14897, 13627, 14656, 14783, 14377, 15047, 15134, 14725, 15038, 14015, 14824, 13431, 15062, 15124, 11154, 13814, 7605, 12835, 12239, 14365, 15076, 15133, 14621, 14480, 14101, 15265, 12292, 14628, 11876, 14320, 14225, 14177, 14800, 14643, 13435, 13410, 10145, 15234, 11691, 12565, 14255, 14868, 13245, 14949, 14416, 14645, 15261, 14210, 15060, 15184, 10396, 13901, 14392, 14835, 14241, 14281, 11744, 14559, 14236, 13846, 13497, 13032, 14583, 9447, 14494, 15196, 13685, 14705, 12661, 14857, 14981, 15331, 15298, 15078, 13418, 12069, 13039, 14718, 14923, 12300, 13110, 12442, 15076, 14083, 13887, 14665, 14378, 12215, 14512, 14963, 13900, 14863, 14382, 9322, 14497, 13468, 14544, 12335, 14297, 13821, 14734, 9506, 13633, 14530, 14809, 12961, 14581, 14600, 14916, 15076, 10203, 14486, 14752, 13722, 14469, 12696, 12560, 14403, 12743, 11937, 13255, 14475, 15212, 14673, 14454, 14550, 13758, 11741, 10383, 13722, 14579, 15032, 12904, 14360, 14926, 15141, 13955, 13031, 13524, 15201, 13712, 12978, 13662, 12256, 12998, 12263, 15114, 11278, 11997, 14528, 13760, 14618, 6477, 13601, 14591, 12414, 11659, 14744, 13576, 13765, 14081, 15269, 15016, 13540, 14590, 13578, 13526, 9811, 14859, 14122, 15222, 14965, 12828, 15267, 12766, 14260, 14634, 13610, 15201, 14891, 15051, 13857, 14211, 13871, 13557, 12209, 14773, 14605, 15329, 15074, 13888, 15033, 13706, 15241, 15281, 14806, 14353, 14217, 15132, 14041, 14921, 14763, 13738, 14526, 13445, 14405, 14971, 14432, 11517, 14883, 15354, 14434, 13586, 14360, 14611, 14971, 15327, 14782, 14440, 10158, 12160, 13486, 13841, 12795, 15006, 9795, 13712, 15263, 14896, 13801, 13765, 12379, 12541, 12256, 11983, 14998, 13342, 14099, 12299, 15326, 14029, 9905, 15106, 12900, 13846, 13807, 14898, 7140, 14001, 13386, 5532, 13747, 10703, 14840, 12719, 13926, 14440, 14937, 14260, 14670, 9617, 14905, 14194, 15101, 14392, 14461, 13383, 14808, 14814, 12682, 14588, 12954, }; uint16_t ret[16 * 3 * 4 * 4] = { 12206, 14518, 15212, 14874, 12933, 13690, 11279, 12004, 15157, 14185, 10866, 14800, 13110, 10383, 14634, 15006, 15344, 14582, 14978, 10132, 13948, 15217, 13391, 13426, 13799, 15300, 14897, 15060, 14544, 12998, 13706, 14029, 11408, 13495, 7571, 15057, 14951, 10239, 14106, 15360, 15212, 14410, 7605, 14494, 14752, 14081, 11517, 14440, 15252, 15027, 13904, 14337, 13444, 13927, 14070, 14351, 14739, 15022, 14805, 14643, 12442, 13722, 13610, 9795, 14769, 12594, 14715, 10983, 13791, 14980, 14954, 12512, 13832, 14205, 13627, 15184, 12335, 12263, 15241, 9905, 15249, 14435, 14403, 14136, 13481, 14260, 14853, 15015, 13940, 14415, 12835, 15196, 13722, 15269, 14883, 14937, 13115, 11342, 13065, 10594, 15216, 14747, 14572, 10879, 12099, 15053, 14677, 13435, 15076, 14579, 15201, 13712, 11735, 15219, 6436, 11165, 10662, 13342, 15042, 13487, 14513, 12480, 14656, 10396, 14297, 15114, 15281, 15106, 15005, 13960, 14152, 15166, 14009, 14900, 13813, 8406, 11392, 13090, 12239, 13685, 14469, 15016, 15354, 14260, 14551, 13075, 14156, 13156, 15000, 14392, 13528, 15172, 15027, 13762, 12874, 13410, 14083, 15032, 14891, 15263, 14827, 13730, 14506, 14733, 14352, 11405, 14097, 15008, 13889, 15345, 14783, 13901, 13821, 11278, 14806, 12900, 14593, 14883, 14773, 15132, 11298, 14587, 12196, 14809, 13551, 14363, 14365, 14705, 12696, 13540, 14434, 14670, 14648, 15300, 14951, 14346, 11997, 14526, 14678, 14439, 14989, 14435, 15177, 10145, 13887, 12904, 15051, 14896, 11799, 14243, 14127, 13978, 12429, 14030, 13225, 13848, 14693, 14788, 14377, 14392, 14734, 11997, 14353, 13846, 14345, 12593, 14591, 14350, 14538, 13563, 15086, 12276, 11780, 6160, 15076, 12661, 12560, 14590, 13586, 9617, 14331, 14569, 12352, 14762, 14840, 15059, 14340, 12797, 12158, 15065, 10810, 15234, 14665, 14360, 13857, 13801, 14241, 14966, 15167, 14598, 13710, 12222, 13382, 13495, 11150, 14223, 15047, 14835, 9506, 14528, 14217, 13807, 11556, 12703, 14633, 14478, 15313, 14644, 6765, 12274, 13611, 10966, 15133, 14857, 14403, 13578, 14360, 14905, 14547, 13861, 14899, 13793, 15167, 13637, 14645, 14288, 14607, 13523, 13384, 11691, 14378, 14926, 14211, 13765, 13577, 15296, 14712, 15114, 14748, 13681, 14385, 11581, 15086, 11611, 15134, 14241, 13633, 13760, 15132, 14898, 14944, 12977, 14603, 14065, 14625, 14823, 14511, 13489, 14171, 15249, 14621, 14981, 12743, 13526, 14611, 14194, 14493, 15295, 13666, 14521, 14240, 15164, 15018, 14771, 10455, 9470, 13555, 12565, 12215, 15141, 13871, 12379, 13575, 11656, 15016, 14608, 14300, 14135, 14779, 13424, 13549, 13596, 14725, 14281, 14530, 14618, 14041, 7140, 12381, 12798, 14616, 14028, 13450, 13589, 12297, 14998, 14478, 15268, 14480, 15331, 11937, 9811, 14971, 15101, 15331, 13685, 10334, 11469, 11907, 13527, 15221, 13457, 14856, 13809, 14705, 14255, 14512, 13955, 13557, 12541, 13692, 12353, 12241, 14132, 14831, 12413, 13280, 10513, 14363, 14903, 15038, 11744, 14809, 6477, 14921, 14001, 14931, 14912, 12746, 15070, 14782, 13685, 14482, 10335, 15107, 14483, 14101, 15298, 13255, 14859, 15327, 14392, 14787, 14481, 12081, 11686, 12932, 13434, 15250, 14878, 15038, 15196, 15268, 14868, 14963, 13031, 12209, 12256, 14962, 15221, 14464, 13145, 13140, 13891, 14509, 13823, 14829, 11919, 14015, 14559, 12961, 13601, 14763, 13386, 12928, 13359, 15220, 13898, 13429, 15235, 15344, 14889, 14519, 13302, 15265, 15078, 14475, 14122, 14782, 14461, 13916, 13679, 14557, 14168, 9154, 15306, 14497, 10827, 14580, 15229, 14834, 13245, 13900, 13524, 14773, 11983, 12658, 13763, 14839, 13837, 13839, 10703, 14870, 14494, 14626, 13534, 14824, 14236, 14581, 14591, 13738, 5532, 13439, 15310, 13835, 15257, 12462, 14477, 13705, 14803, 15184, 13538, 12292, 13418, 15212, 15222, 14440, 13383, 13683, 14997, 14707, 14274, 14593, 12664, 10306, 15075, 12491, 13988, 14844, 14949, 14863, 15201, 14605, 14998, 13574, 11059, 14696, 11092, 13813, 14576, 15158, 13993, 14953, 13161, 13431, 13846, 14600, 12414, 14526, 13747, 15081, 11484, 14451, 12292, 13913, 14623, 13905, 13224, 14398, 13705, 14628, 12069, 14673, 14965, 10158, 14808, 13639, 15217, 15348, 14848, 15147, 14668, 13701, 15017, 14339, 13501, 13639, 14416, 14382, 13712, 15329, 13342, 14902, 14747, 14961, 10036, 11961, 15105, 13003, 13684, 11531, 13832, 15062, 13497, 14916, 11659, 13445, 10703, 14916, 9325, 14613, 13666, 13976, 14938, 14782, 13536, 14267, 15167, 11876, 13039, 14454, 12828, 12160, 14814, 14658, 12472, 10316, 13413, 14779, 15072, 14622, 13578, 15192, 14448, 12453, 14645, 9322, 12978, 15074, 14099, 14145, 14431, 14089, 15051, 15318, 15005, 14188, 15115, 13649, 15353, 15124, 13032, 15076, 14744, 14405, 14840, 12555, 14662, 14520, 13896, 13812, 13067, 15071, 12404, 13960, 13341, 14320, 14718, 14550, 15267, 13486, 12682, 13168, 13102, 13515, 14627, 14203, 14216, 14397, 14290, 14607, 15124, 15012, 15261, 14497, 13662, 13888, 12299, 7260, 15281, 14863, 13517, 14536, 15026, 12173, 15088, 10310, 14978, 11154, 14583, 10203, 13576, 14971, 12719, 14132, 15035, 15271, 14723, 15037, 14160, 13085, 14424, 11746, 13709, 14225, 14923, 13758, 12766, 13841, 14588, 13867, 13861, 10960, 15323, 12811, 13813, 13593, 14126, 14462, 12087, 14508, 14210, 13468, 12256, 15033, 15326, 12731, 15235, 14278, 14497, 8683, 14929, 15064, 12791, 12240, 14903, 13814, 9447, 14486, 13765, 14432, 13926, 15127, 15149, 14043, 15254, 14354, 14611, 14698, 11213, 14939, 14738, 14177, 12300, 11741, 14260, 12795, 12954, }; TransResult result; EXPECT_EQ(TransposeWithShapeCheck(reinterpret_cast(data), std::vector({4, 4, 3, 16}), std::vector({16, 3, 4, 4}), DT_FLOAT16, std::vector({3, 2, 0, 1}), result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, nchw_to_nwhc1) { uint16_t data[1 * 3 * 16 * 16] = { 15138, 15285, 15305, 14188, 14917, 14539, 13026, 15186, 14901, 14198, 15327, 12601, 12723, 12843, 13527, 5636, 14323, 13311, 13260, 11315, 13447, 10891, 11350, 14395, 13040, 14110, 13739, 15303, 13228, 14478, 13412, 13350, 12715, 11890, 14308, 12381, 13344, 12792, 13412, 13072, 13564, 14773, 11703, 14846, 14889, 14628, 10420, 15130, 14524, 14282, 14103, 11586, 14670, 14065, 15015, 15314, 13847, 14456, 14438, 14569, 10655, 14982, 15302, 14388, 13753, 14070, 15263, 13548, 15159, 14710, 15006, 13474, 13868, 14463, 12932, 14461, 15219, 15322, 13726, 14618, 14644, 14765, 15153, 15289, 14789, 14931, 14729, 8423, 15072, 14658, 13417, 14713, 12172, 15191, 14796, 11733, 11645, 14482, 15039, 13645, 14881, 13766, 13106, 14162, 14938, 9462, 14857, 15231, 14844, 14331, 14264, 14431, 14910, 12552, 14977, 14634, 12400, 13414, 13240, 14303, 14162, 13199, 13692, 14083, 15018, 14261, 14550, 14533, 14562, 15003, 15357, 14524, 14448, 10108, 13554, 14737, 15118, 14498, 13551, 13798, 10768, 14727, 14935, 9055, 14652, 14040, 14486, 14690, 14505, 13849, 13645, 12774, 14157, 13842, 11143, 14098, 14237, 15297, 12973, 11624, 11638, 14438, 15311, 14540, 13562, 12432, 13749, 13942, 15214, 10796, 14266, 13503, 15133, 14871, 14906, 14956, 13467, 15002, 15153, 14589, 12496, 14271, 13305, 14049, 13902, 13873, 14607, 15283, 12517, 9796, 15036, 13485, 14708, 14903, 15090, 14669, 14003, 12108, 13723, 14447, 12820, 11243, 15183, 14337, 14389, 14789, 13653, 14352, 14970, 13438, 14715, 14878, 14552, 15008, 15178, 14564, 15046, 14876, 15234, 14751, 15163, 15061, 13584, 15141, 14528, 14429, 15071, 14646, 14826, 11412, 11456, 12875, 11324, 13219, 12527, 14367, 14979, 14001, 14876, 15043, 15184, 13589, 14900, 13338, 15193, 13246, 15165, 15225, 14651, 11430, 12811, 14703, 14388, 4920, 11728, 12464, 14827, 15161, 15265, 11542, 15203, 14118, 12868, 14101, 15081, 14444, 13457, 15292, 14643, 12311, 15122, 14496, 13753, 10580, 9081, 14957, 12218, 14076, 14672, 14374, 14267, 13916, 13408, 13744, 13593, 14391, 7869, 14992, 14724, 14638, 12330, 14376, 13012, 12311, 12541, 13213, 14633, 13677, 14809, 14919, 15044, 15272, 9451, 15025, 14030, 9949, 13823, 14900, 14840, 15274, 14211, 14907, 14618, 15290, 11872, 9312, 14709, 14956, 15154, 14851, 13245, 13366, 15084, 7584, 13450, 15090, 14693, 14654, 14966, 8900, 13422, 11507, 13915, 10770, 11675, 6726, 13729, 14998, 15296, 15351, 15097, 14974, 9528, 11730, 14167, 13765, 14614, 14994, 14907, 12989, 13613, 14979, 12930, 13858, 15303, 13404, 9581, 14992, 15357, 13692, 14429, 11887, 12971, 13835, 13819, 14731, 12948, 15063, 14112, 11764, 13620, 12351, 10466, 12549, 8672, 13141, 11323, 14581, 14933, 14758, 15206, 14021, 14883, 13857, 14826, 14588, 15041, 13433, 12975, 14468, 13352, 14764, 14713, 15350, 12713, 14057, 14346, 13777, 13015, 11552, 13561, 13992, 12382, 14644, 14435, 13880, 15333, 13984, 13788, 14346, 11520, 13742, 13489, 14098, 15274, 12027, 12995, 13948, 13876, 14489, 14379, 13277, 14114, 10457, 13874, 15243, 14798, 11909, 13930, 13134, 8864, 12406, 15070, 12818, 12502, 12561, 14452, 11308, 13577, 14513, 14202, 14455, 15316, 12912, 12803, 14019, 12189, 14691, 14648, 14457, 12294, 14927, 10971, 14063, 15217, 12306, 14971, 15293, 13632, 10881, 14851, 14571, 15251, 14949, 13783, 15295, 14708, 14861, 14110, 14351, 14333, 13210, 15261, 14314, 12303, 11509, 14255, 15288, 13999, 15208, 13459, 14501, 15233, 10148, 13325, 14074, 13976, 15120, 15118, 14316, 12014, 14093, 13702, 15084, 14158, 15210, 14780, 11558, 10534, 9818, 13670, 14125, 14616, 14560, 13503, 15093, 14205, 14968, 14380, 15076, 14417, 12445, 12431, 14715, 8483, 13720, 14171, 15358, 13989, 13519, 14839, 12038, 11355, 9632, 10150, 13373, 10819, 15203, 9960, 14945, 12132, 13744, 10536, 14865, 14718, 15239, 14284, 15331, 14372, 14648, 10139, 13853, 14461, 11171, 9982, 14388, 9448, 14142, 9383, 14864, 13758, 14933, 8104, 14475, 13137, 14221, 15080, 10739, 12488, 11478, 14895, 14847, 14162, 15263, 14936, 15048, 14861, 13531, 13583, 15197, 13411, 15098, 13613, 14513, 14270, 13267, 12768, 13394, 14788, 13782, 13516, 13881, 12439, 14436, 14447, 14864, 15183, 14718, 13652, 13242, 15342, 14715, 13339, 13949, 14665, 13904, 12527, 11550, 14727, 11488, 15340, 15349, 14345, 12392, 14643, 13791, 14593, 12762, 14572, 13616, 12307, 13741, 12268, 15279, 14870, 14339, 13547, 14763, 13540, 15158, 14977, 13205, 11910, 13228, 11630, 14865, 12982, 14472, 14709, 14615, 14520, 14774, 15194, 14246, 14191, 14683, 15115, 13045, 9622, 13950, 14857, 14621, 15343, 12632, 14779, 12501, 14581, 14525, 15111, 14843, 14338, 13195, 9861, 12156, 13970, 15242, 14546, 15343, 14627, 14330, 14915, 15331, 15332, 13649, 14953, 12655, 13963, 13207, 11045, 14401, 14848, 12672, 13035, 13377, 14387, 14437, 13794, 14952, 14409, 14466, 8825, 14561, 14439, 11931, 14741, 13847, 14369, 14019, 14731, 14888, 13990, 14955, 14382, 13361, 9983, 14355, 15058, 14606, 15012, 14740, 13073, 14253, 14626, 14394, 15294, 12535, 14181, 14740, 14612, 15082, 13503, 12274, 15341, 13605, 10329, 15089, 13168, 14830, 14055, 15000, 14952, 12984, 14684, 12872, 14472, 14946, 13419, 13916, 13005, 14075, 12791, 14654, 15327, 13627, 14549, 14920, 15259, 12502, 13364, 14853, 15049, 14448, 14724, 12881, 14794, 14494, 13425, 15086, 14338, 14190, 14361, 12458, 14420, 10571, 14813, 13330, 14491, 15131, 14097, 15183, 15062, 14564, 14374, 15320, 15242, 14943, 13706, 14496, }; uint16_t ret[1 * 16 * 16 * 3] = { 15138, 14827, 12431, 15285, 15161, 14715, 15305, 15265, 8483, 14188, 11542, 13720, 14917, 15203, 14171, 14539, 14118, 15358, 13026, 12868, 13989, 15186, 14101, 13519, 14901, 15081, 14839, 14198, 14444, 12038, 15327, 13457, 11355, 12601, 15292, 9632, 12723, 14643, 10150, 12843, 12311, 13373, 13527, 15122, 10819, 5636, 14496, 15203, 14323, 13753, 9960, 13311, 10580, 14945, 13260, 9081, 12132, 11315, 14957, 13744, 13447, 12218, 10536, 10891, 14076, 14865, 11350, 14672, 14718, 14395, 14374, 15239, 13040, 14267, 14284, 14110, 13916, 15331, 13739, 13408, 14372, 15303, 13744, 14648, 13228, 13593, 10139, 14478, 14391, 13853, 13412, 7869, 14461, 13350, 14992, 11171, 12715, 14724, 9982, 11890, 14638, 14388, 14308, 12330, 9448, 12381, 14376, 14142, 13344, 13012, 9383, 12792, 12311, 14864, 13412, 12541, 13758, 13072, 13213, 14933, 13564, 14633, 8104, 14773, 13677, 14475, 11703, 14809, 13137, 14846, 14919, 14221, 14889, 15044, 15080, 14628, 15272, 10739, 10420, 9451, 12488, 15130, 15025, 11478, 14524, 14030, 14895, 14282, 9949, 14847, 14103, 13823, 14162, 11586, 14900, 15263, 14670, 14840, 14936, 14065, 15274, 15048, 15015, 14211, 14861, 15314, 14907, 13531, 13847, 14618, 13583, 14456, 15290, 15197, 14438, 11872, 13411, 14569, 9312, 15098, 10655, 14709, 13613, 14982, 14956, 14513, 15302, 15154, 14270, 14388, 14851, 13267, 13753, 13245, 12768, 14070, 13366, 13394, 15263, 15084, 14788, 13548, 7584, 13782, 15159, 13450, 13516, 14710, 15090, 13881, 15006, 14693, 12439, 13474, 14654, 14436, 13868, 14966, 14447, 14463, 8900, 14864, 12932, 13422, 15183, 14461, 11507, 14718, 15219, 13915, 13652, 15322, 10770, 13242, 13726, 11675, 15342, 14618, 6726, 14715, 14644, 13729, 13339, 14765, 14998, 13949, 15153, 15296, 14665, 15289, 15351, 13904, 14789, 15097, 12527, 14931, 14974, 11550, 14729, 9528, 14727, 8423, 11730, 11488, 15072, 14167, 15340, 14658, 13765, 15349, 13417, 14614, 14345, 14713, 14994, 12392, 12172, 14907, 14643, 15191, 12989, 13791, 14796, 13613, 14593, 11733, 14979, 12762, 11645, 12930, 14572, 14482, 13858, 13616, 15039, 15303, 12307, 13645, 13404, 13741, 14881, 9581, 12268, 13766, 14992, 15279, 13106, 15357, 14870, 14162, 13692, 14339, 14938, 14429, 13547, 9462, 11887, 14763, 14857, 12971, 13540, 15231, 13835, 15158, 14844, 13819, 14977, 14331, 14731, 13205, 14264, 12948, 11910, 14431, 15063, 13228, 14910, 14112, 11630, 12552, 11764, 14865, 14977, 13620, 12982, 14634, 12351, 14472, 12400, 10466, 14709, 13414, 12549, 14615, 13240, 8672, 14520, 14303, 13141, 14774, 14162, 11323, 15194, 13199, 14581, 14246, 13692, 14933, 14191, 14083, 14758, 14683, 15018, 15206, 15115, 14261, 14021, 13045, 14550, 14883, 9622, 14533, 13857, 13950, 14562, 14826, 14857, 15003, 14588, 14621, 15357, 15041, 15343, 14524, 13433, 12632, 14448, 12975, 14779, 10108, 14468, 12501, 13554, 13352, 14581, 14737, 14764, 14525, 15118, 14713, 15111, 14498, 15350, 14843, 13551, 12713, 14338, 13798, 14057, 13195, 10768, 14346, 9861, 14727, 13777, 12156, 14935, 13015, 13970, 9055, 11552, 15242, 14652, 13561, 14546, 14040, 13992, 15343, 14486, 12382, 14627, 14690, 14644, 14330, 14505, 14435, 14915, 13849, 13880, 15331, 13645, 15333, 15332, 12774, 13984, 13649, 14157, 13788, 14953, 13842, 14346, 12655, 11143, 11520, 13963, 14098, 13742, 13207, 14237, 13489, 11045, 15297, 14098, 14401, 12973, 15274, 14848, 11624, 12027, 12672, 11638, 12995, 13035, 14438, 13948, 13377, 15311, 13876, 14387, 14540, 14489, 14437, 13562, 14379, 13794, 12432, 13277, 14952, 13749, 14114, 14409, 13942, 10457, 14466, 15214, 13874, 8825, 10796, 15243, 14561, 14266, 14798, 14439, 13503, 11909, 11931, 15133, 13930, 14741, 14871, 13134, 13847, 14906, 8864, 14369, 14956, 12406, 14019, 13467, 15070, 14731, 15002, 12818, 14888, 15153, 12502, 13990, 14589, 12561, 14955, 12496, 14452, 14382, 14271, 11308, 13361, 13305, 13577, 9983, 14049, 14513, 14355, 13902, 14202, 15058, 13873, 14455, 14606, 14607, 15316, 15012, 15283, 12912, 14740, 12517, 12803, 13073, 9796, 14019, 14253, 15036, 12189, 14626, 13485, 14691, 14394, 14708, 14648, 15294, 14903, 14457, 12535, 15090, 12294, 14181, 14669, 14927, 14740, 14003, 10971, 14612, 12108, 14063, 15082, 13723, 15217, 13503, 14447, 12306, 12274, 12820, 14971, 15341, 11243, 15293, 13605, 15183, 13632, 10329, 14337, 10881, 15089, 14389, 14851, 13168, 14789, 14571, 14830, 13653, 15251, 14055, 14352, 14949, 15000, 14970, 13783, 14952, 13438, 15295, 12984, 14715, 14708, 14684, 14878, 14861, 12872, 14552, 14110, 14472, 15008, 14351, 14946, 15178, 14333, 13419, 14564, 13210, 13916, 15046, 15261, 13005, 14876, 14314, 14075, 15234, 12303, 12791, 14751, 11509, 14654, 15163, 14255, 15327, 15061, 15288, 13627, 13584, 13999, 14549, 15141, 15208, 14920, 14528, 13459, 15259, 14429, 14501, 12502, 15071, 15233, 13364, 14646, 10148, 14853, 14826, 13325, 15049, 11412, 14074, 14448, 11456, 13976, 14724, 12875, 15120, 12881, 11324, 15118, 14794, 13219, 14316, 14494, 12527, 12014, 13425, 14367, 14093, 15086, 14979, 13702, 14338, 14001, 15084, 14190, 14876, 14158, 14361, 15043, 15210, 12458, 15184, 14780, 14420, 13589, 11558, 10571, 14900, 10534, 14813, 13338, 9818, 13330, 15193, 13670, 14491, 13246, 14125, 15131, 15165, 14616, 14097, 15225, 14560, 15183, 14651, 13503, 15062, 11430, 15093, 14564, 12811, 14205, 14374, 14703, 14968, 15320, 14388, 14380, 15242, 4920, 15076, 14943, 11728, 14417, 13706, 12464, 12445, 14496, }; TransResult result; EXPECT_EQ(TransposeWithShapeCheck(reinterpret_cast(data), std::vector({1, 3, 16, 16}), std::vector({1, 16, 16, 3}), DT_FLOAT16, std::vector({0, 2, 3, 1}), result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, nchw_to_nwhc2) { float data[8 * 1 * 24 * 24] = { 0.5062321930371455, 0.32798915578871457, 0.5961646765278394, 0.8617070783970479, 0.5119373011648897, 0.048024524076240915, 0.23214736441672879, 0.022538554986683446, 0.6778444052900103, 0.15032959905073096, 0.5500250141965424, 0.17113763529559678, 0.656904861049231, 0.19596667507728938, 0.368244176122847, 0.8691059710553981, 0.8464938643825788, 0.4477211400459462, 0.5681620999676735, 0.5442100896841062, 0.45368229567875673, 0.32546382920612726, 0.18083321574168632, 0.1750322980444311, 0.6315210221145376, 0.291527227581442, 0.05240995759120004, 0.24235809909562644, 0.5248510042885183, 0.8444330870217652, 0.06953102068444816, 0.5862038697632712, 0.8055402660428673, 0.32368384028646024, 0.8548542644341387, 0.21770747056725892, 0.3311304238509687, 0.2913804661242798, 0.5967050302041854, 0.6869036787651093, 0.6298993086675535, 0.5342681029051217, 0.3675795216292139, 0.1750638889243652, 0.1964814553063049, 0.6605207614470802, 0.7789210272606384, 0.7780470338595302, 0.7160454591867403, 0.6301114551776474, 0.10752566733413593, 0.673119869792655, 0.9373805013424287, 0.9178365192390866, 0.6325325250871165, 0.4247316161331426, 0.3801992968018262, 0.8945772418220316, 0.7875543669721298, 0.8539699115784273, 0.2777908194509292, 0.05650104741824036, 0.831507030885315, 0.585983808212166, 0.9408480852535616, 0.949221458223217, 0.6494317804282785, 0.22667549478928184, 0.9867749341169173, 0.3449374672076423, 0.009603964019212485, 0.2966442120522559, 0.9140488516957659, 0.15654966719968966, 0.5479895146896403, 0.27964020188818406, 0.5875175857991517, 0.7674359344871401, 0.2662078550688938, 0.601592864568559, 0.6298513101287228, 0.0007956317020597625, 0.447670613189198, 0.30214703733479853, 0.7095682335989801, 0.19776718502242907, 0.42373907375609765, 0.9964465820586225, 0.5657844698280747, 0.9185125060473368, 0.48818414990794645, 0.697598606946429, 0.23424318111262687, 0.011707822252632338, 0.7337824717352953, 0.5484898408514123, 0.9929544517415723, 0.6792158760625665, 0.7816028696554761, 0.2405083444025402, 0.9948803917035984, 0.49246398759410004, 0.5942569141797983, 0.7385481148993642, 0.4338463026994005, 0.5692156943634276, 0.5157300177718895, 0.9788902748230957, 0.06944950117329118, 0.7440570791479629, 0.20611744118485498, 0.829837881152689, 0.8641965625879906, 0.3754093562128916, 0.5140923803643517, 0.01318160757340514, 0.38912810288926725, 0.7269493917324703, 0.9667767963135668, 0.5146438339988334, 0.1746242957861096, 0.22260117687528302, 0.5147147658513315, 0.5133063050966878, 0.6037766881886195, 0.3032343397374424, 0.1558403376681612, 0.19823611829999466, 0.24791261176807733, 0.06511786233551131, 0.3331160374011095, 0.8764778347789234, 0.8987904993981825, 0.8850320999146167, 0.0028995817761239273, 0.6114011938310822, 0.12891905917964652, 0.08841529382295288, 0.8913889051181442, 0.4231141187500551, 0.5682157758555647, 0.407222042568696, 0.3964456887714989, 0.9083944497303571, 0.06771895423049012, 0.4659372804769496, 0.12192491449923182, 0.5590082975575247, 0.7224902246551163, 0.39659001433585184, 0.9959804799025049, 0.945510847494734, 0.5069062072334803, 0.18366862681431562, 0.6477785312377683, 0.5047962857729253, 0.12702932873653094, 0.5937694806711893, 0.41217223605167486, 0.586260286286227, 0.3920397226267349, 0.3009089562278783, 0.11545124344136348, 0.5638317723887502, 0.03331899478754563, 0.9197389199405746, 0.025063552422119995, 0.08206586723651477, 0.561096691084764, 0.32084876537534424, 0.9737123506773547, 0.5557153417628414, 0.33548532198689474, 0.32221438944414504, 0.7714228952988429, 0.227449953513027, 0.505078000677675, 0.8363531865621979, 0.9104996077916944, 0.7467391082732583, 0.6486863954134673, 0.7840496913389229, 0.8405166909749249, 0.8967567419124038, 0.013132746284066021, 0.3492828320186896, 0.2785912741702441, 0.505561232182855, 0.4916777884425205, 0.6784144755559384, 0.5602904610155944, 0.2556291571530711, 0.5058833835796643, 0.8065225079160115, 0.4146453573569093, 0.6165567410355937, 0.3812072863001894, 0.07838633522280025, 0.24554517496324435, 0.06732991743024797, 0.6172542861800441, 0.012086029165487733, 0.06664288136003349, 0.7043239742078187, 0.9123664013856383, 0.5335504894308023, 0.08698653277464463, 0.8290196080564468, 0.8834656717225267, 0.7939247877872073, 0.8884737365869878, 0.4219642380552622, 0.3534603068640917, 0.8494470631397504, 0.867447552664446, 0.7042030090952853, 0.7030967670548717, 0.3633266332102917, 0.7912923465426464, 0.2846016100557003, 0.7669181884111332, 0.1336003148255347, 0.8551305090127473, 0.6448324422438613, 0.5692776375393788, 0.6125267654644435, 0.2860188283121068, 0.49101502666954544, 0.7802334407422508, 0.621595999177262, 0.5264555414863354, 0.06256813978886833, 0.5777567913293464, 0.2185899920497919, 0.5499062346038069, 0.09727935441077395, 0.9154994096446494, 0.5410406629503918, 0.6478454956274339, 0.41913577704769356, 0.892374352838081, 0.5878433926092157, 0.9247681810220608, 0.7574161009131323, 0.40387819954296333, 0.9955865183599879, 0.6498057102561908, 0.23720161272280726, 0.864962875216823, 0.9744249317817247, 0.1185707073275365, 0.05405958997809279, 0.21350815438098536, 0.3987264207477995, 0.1901865924242161, 0.8986424402957333, 0.42756234012515826, 0.5624195702180508, 0.9532024381859805, 0.9331967234220007, 0.8326262505350779, 0.22204330543949213, 0.5683570413885555, 0.08080650468291284, 0.7404946579897478, 0.31863905911250545, 0.6545183726954837, 0.9473683813047713, 0.8142567915681516, 0.14552167710658281, 0.41939814504849826, 0.7794508592612299, 0.16005597528354443, 0.06867044382609655, 0.4633637274837288, 0.9395113600474436, 0.002398516729492317, 0.9331948896762047, 0.333821020943754, 0.0870242810975258, 0.04707664181499216, 0.890444754645273, 0.990579393015404, 0.38653468246552036, 0.8350018469307008, 0.14186236169840283, 0.5069963680419538, 0.02949034420068819, 0.9045393529914117, 0.6776465708902875, 0.5951058678362742, 0.16017357369287422, 0.06829755903301449, 0.22104222238956384, 0.5781531354968936, 0.07078049523276742, 0.7611775873389636, 0.2506638620506646, 0.23424450010646203, 0.28042226030744977, 0.4967031301230611, 0.030155802498213036, 0.8417135739779523, 0.4403787816993532, 0.3194871756596648, 0.024408552447829357, 0.2059121031814014, 0.3304385738990716, 0.5797427697765347, 0.1488101415168943, 0.07609937614156859, 0.5251133458576794, 0.38618038104356356, 0.19176610098489089, 0.9987200933842041, 0.3747523857547992, 0.7577922282660177, 0.13581872016346808, 0.41112542292513443, 0.3692939492355587, 0.9088817938289541, 0.7068660497692852, 0.06394517786397358, 0.1083252676531502, 0.1808100870922431, 0.5183031556872817, 0.35323756937224593, 0.5759670034306098, 0.12944299733834008, 0.9448739674356532, 0.8143588597980085, 0.754802608217618, 0.9916004739452933, 0.5266178440345204, 0.3778661306592547, 0.6762089130655262, 0.6609729192353024, 0.657458949700941, 0.6666661408928232, 0.5718295386522686, 0.815902395364949, 0.27572360372175064, 0.8380770893404555, 0.4430394275199342, 0.9035539285337746, 0.04305770944290821, 0.0951941872821771, 0.9609676535237013, 0.7882514248825381, 0.19512411644583338, 0.4947849919452858, 0.6098697295924015, 0.8027845561907938, 0.3133522370325581, 0.4510194566927449, 0.8428718966430689, 0.011938006691672332, 0.588867003240751, 0.6690157767048753, 0.4177212705525565, 0.24674398716514967, 0.7417180449599303, 0.1631995066554942, 0.20262693904300233, 0.2889357295845064, 0.25740925871269715, 0.6363896486385333, 0.6631190151834848, 0.20898391694798513, 0.4655689891239263, 0.223154251464165, 0.6477665820136516, 0.4813056620640841, 0.8843717058980306, 0.6943907285971115, 0.7994117260598272, 0.1978499897603565, 0.17401412776352376, 0.47091902939013897, 0.3008107310922036, 0.125356561257992, 0.3362214717360684, 0.008551259225046404, 0.39550964281789236, 0.8838122008258186, 0.33856044053751155, 0.45407795863420086, 0.4242202694122168, 0.5423685678418622, 0.558757767842896, 0.09995937937290533, 0.3246315609823286, 0.6142558040977343, 0.9805749745475485, 0.4657660405624161, 0.9279995363145068, 0.6559071400579842, 0.2666869937974796, 0.9408718356383589, 0.3545865805029773, 0.45232948292420505, 0.038505613707505826, 0.00019750497073367512, 0.8737664246958026, 0.43338860317926897, 0.9723377963347053, 0.6733478271906433, 0.8521676579248147, 0.7992002524821615, 0.7134241267734911, 0.998215305453406, 0.13173821749133452, 0.6230927805896207, 0.16597961720329535, 0.5667854438476946, 0.5600991731548618, 0.7391743889484617, 0.8706462935030473, 0.6023748393452749, 0.3939117403888631, 0.0179925828091827, 0.4629518715296074, 0.19687388319715216, 0.9137799213875131, 0.1811662494483287, 0.7822154412029618, 0.23591318340225398, 0.0073897600933453544, 0.7601835361487541, 0.04661639551634078, 0.47412956237438675, 0.8348234008595401, 0.9694614871742564, 0.0021255061100916572, 0.3294672766798996, 0.35964304759653043, 0.6252163536877482, 0.7291002031297731, 0.23755815280234072, 0.9573553281440201, 0.35208871653768337, 0.12429876607920087, 0.4238129988973137, 0.42030861325609814, 0.7668992868698534, 0.38672467591564863, 0.6167188625787685, 0.671182673030282, 0.665041879014701, 0.5979076099092636, 0.08434169920676948, 0.05820304772467022, 0.6223318283529414, 0.9319341880648322, 0.1563432403380529, 0.9138723236340262, 0.7996797512923042, 0.4900864446713954, 0.017416089288305514, 0.49040996322083463, 0.721019678050312, 0.5566481270821583, 0.9257258344448913, 0.030456107481957595, 0.9633633518879525, 0.025420652239322328, 0.7106922196820691, 0.02782056144663425, 0.5784283306561472, 0.7642952738653159, 0.49634054661506544, 0.3124518393246003, 0.2427587464131412, 0.6298184514564478, 0.7423785073124218, 0.37271871104187015, 0.2722751335358491, 0.2666776013490191, 0.5891324834913104, 0.6876742719251587, 0.7955883463128232, 0.6707296977799054, 0.9496618100588802, 0.7868528046712148, 0.7701224409391159, 0.7508487281409736, 0.013211049081081838, 0.10798949667513813, 0.8090270633430225, 0.048012855163304335, 0.09028922573374432, 0.035025503671681, 0.1919225111223416, 0.5650389680077842, 0.38354264470450605, 0.046771281245718055, 0.862924116881804, 0.9649825973770343, 0.5043943142222184, 0.8715482370863882, 0.26597899853303353, 0.8270579811608609, 0.1142848962533316, 0.4224047306507669, 0.1012610270560822, 0.8223568939055197, 0.7167013789334914, 0.9315114766412789, 0.13538563056707842, 0.1971618987154049, 0.1346229767296998, 0.7413487911805234, 0.8335779236442179, 0.5523076600264788, 0.17805699078916626, 0.9749964559656057, 0.6548616850045488, 0.6408638652632012, 0.05243142084756114, 0.41338426132755013, 0.6577911569645122, 0.5218993909847612, 0.8215042477853458, 0.26000525222244186, 0.97323011169599, 0.17753901458016086, 0.5995954962734206, 0.7072822896238021, 0.26560859373579837, 0.25711211095662156, 0.07508148094639788, 0.4665311792834703, 0.8382346611355168, 0.912159129225236, 0.18294092199868883, 0.5446560489946072, 0.7656095966972155, 0.7678502522889049, 0.015170391334308642, 0.29784029213417207, 0.8387694383482851, 0.46689527632178685, 0.36712996103456175, 0.019326900402604652, 0.3426577641914963, 0.4488032775872126, 0.12123730305165703, 0.16833207718529186, 0.0009628642460063341, 0.961297092575098, 0.6197070762250381, 0.9422212994559002, 0.46566024250211124, 0.765393556661448, 0.6389778787947291, 0.4565768368332409, 0.9670253688068792, 0.21973766319640908, 0.1670312116243018, 0.8981162893436722, 0.839205738663824, 0.7745179886765066, 0.30909292667742505, 0.04511559705068158, 0.9825690351992592, 0.004746150572906838, 0.5123475897899985, 0.80432432962385, 0.26105396874260267, 0.16816967722507736, 0.35652723083069127, 0.7015377869256973, 0.07821081337514191, 0.18523471563017568, 0.8343612489445518, 0.7959091927132941, 0.7188927625558327, 0.9287626078448632, 0.09973920754860399, 0.3463778089006021, 0.33659796153984745, 0.921845854796007, 0.00950593702181235, 0.06469285813398706, 0.25338043680754496, 0.5238467611159003, 0.3167593672722743, 0.09329128287229482, 0.6484704059568994, 0.9061324833635789, 0.48944359249477554, 0.8886033139636679, 0.5775004603975735, 0.7994597749363578, 0.2685524226371466, 0.47423484982081954, 0.9478611351812041, 0.24263144009029924, 0.453565431301858, 0.42525493803037606, 0.11490633583693022, 0.20757224400351415, 0.5868995409837178, 0.5205919982656838, 0.34503754603792125, 0.5987197103905514, 0.6868505593330014, 0.7638415147641093, 0.8267185942940226, 0.6625091189429029, 0.6693741441502425, 0.38345424336010436, 0.7081765066435062, 0.42905141236087785, 0.2328912829363069, 0.46170680700262057, 0.439085657841746, 0.48283110128008133, 0.6895936395080633, 0.915300650877659, 0.5065137439640514, 0.009253996333368542, 0.17912608340116165, 0.9877014563961273, 0.2077031505895378, 0.8852031617482035, 0.39883058097563073, 0.9280883776056293, 0.5468439956477785, 0.8348508115176584, 0.9623588674800001, 0.10797271631363137, 0.11652847794724375, 0.4006687049764782, 0.855832471124214, 0.8786977408679026, 0.7141267893561709, 0.9917530089388696, 0.5096096656188075, 0.16953365739403836, 0.7251961536843469, 0.8943385078565467, 0.8112754308812744, 0.9761274106045587, 0.9326604989238073, 0.9903928487769879, 0.269577210979857, 0.8189637058521028, 0.7381833350806415, 0.28154334423945915, 0.1250465350737835, 0.3968102520265465, 0.9604970122135507, 0.9722187833692912, 0.4243054458397719, 0.9403312613720402, 0.8703241311060701, 0.6089211633348707, 0.5345658877440552, 0.5130240560137153, 0.5368930457625992, 0.06336696382328744, 0.045978147806837844, 0.21270102297516136, 0.5183775131533372, 0.4575562226466785, 0.6969774129134045, 0.49689162515596763, 0.3039279916586811, 0.9104938758536323, 0.842826717308411, 0.9030531490528709, 0.5622318797083762, 0.8880003119744561, 0.22917815472979386, 0.8454761943337168, 0.5490186483045347, 0.8903499500434628, 0.19690296474232793, 0.4942586480451958, 0.6208256248541093, 0.793673761384259, 0.15704525492115684, 0.8064819707072164, 0.3612275689614989, 0.6409665812254784, 0.718535811027167, 0.011627527251532266, 0.18251899551078254, 0.8816150389346538, 0.5141424262186775, 0.5585514761068199, 0.08751818562303404, 0.2032257845367399, 0.30428349184187875, 0.3562439026805052, 0.9902869789914716, 0.617485694423711, 0.23085218840071986, 0.9200353993391799, 0.1438119306579585, 0.9637545013683527, 0.06926888721997271, 0.45809005417603854, 0.7797894826426551, 0.033071563699438644, 0.5346070887767089, 0.3785868582170747, 0.7792362852031324, 0.44049360572247687, 0.5655966414697406, 0.49836455834115634, 0.41982706944388515, 0.9142509416402275, 0.8055104920505853, 0.7882368863968197, 0.7861541561206552, 0.8750002361453983, 0.3141872249221326, 0.6297863342928883, 0.13752402310502843, 0.8408271137857017, 0.20203166178667864, 0.6132166149173786, 0.00565266221263494, 0.4346366940226415, 0.5750892505021086, 0.7484967824901719, 0.554368174682661, 0.6462518960809419, 0.7575408699684905, 0.8304301645939067, 0.14686776200689766, 0.01775895453516141, 0.20381742085491494, 0.5374100389215499, 0.3543295568618047, 0.881281278910346, 0.7387949907094862, 0.6532668366398822, 0.35871434741569874, 0.34577990378538315, 0.7511426552642608, 0.1749342021093535, 0.44179651111839446, 0.3183243633827524, 0.8952139313460276, 0.550987565451777, 0.11245280703451577, 0.29603527735935475, 0.0024376097979692535, 0.5580957824575782, 0.6785730314640288, 0.6989604199143635, 0.9280856338597502, 0.8528138190991756, 0.8155971681047525, 0.19627454847903825, 0.23483652834817348, 0.9749127497086097, 0.9952437850116509, 0.39823054819356907, 0.3902382135861282, 0.9436877000327134, 0.7855667825786122, 0.8211945319467171, 0.9350703325513966, 0.022807010966559904, 0.5701088951610942, 0.21262277387562822, 0.182285558875648, 0.5457926090191436, 0.0022151330954638393, 0.9380139047727055, 0.8430496283743121, 0.1022224243661769, 0.29636066130596317, 0.9479549160834284, 0.8250427156664355, 0.25458526111733715, 0.6582997945231689, 0.24489199861326638, 0.7480060827586592, 0.16758586360820604, 0.675393772428663, 0.08917020068830872, 0.49411868825207117, 0.9293064155184508, 0.04710616624830932, 0.9032842176572544, 0.7887575986187616, 0.45685702914654747, 0.4652494433853783, 0.08590753836423537, 0.8677926147593354, 0.9757594778331132, 0.03326488446691034, 0.09080413307553958, 0.2677322617144291, 0.003004139162062991, 0.37075805819564844, 0.5619563194408237, 0.5326269575702928, 0.34340862047732745, 0.9016417148983238, 0.1816640209011503, 0.3079844132700572, 0.697831111602062, 0.15550348544202108, 0.08709128824924162, 0.7318882367213184, 0.5226189451379162, 0.4714561263097441, 0.6536425776379847, 0.8780547121445959, 0.4605063736250262, 0.1108839197488849, 0.49048534621825135, 0.348779380113877, 0.3573496061128525, 0.6477277145926619, 0.3267103713187982, 0.154258739206506, 0.09146321915634115, 0.15653234956704554, 0.2659173882939163, 0.9017235470997731, 0.39463656456034923, 0.156590494640086, 0.8173011759177684, 0.4863177935656502, 0.889074583881877, 0.1961541858280207, 0.4073608554088233, 0.17383269122504952, 0.49264426743742795, 0.28034389601998155, 0.5593685058504049, 0.8717081492192968, 0.8138787395058248, 0.6849150775885576, 0.7294561911157406, 0.6007567942294963, 0.4566856125549694, 0.7762810018455528, 0.037485912765460316, 0.317156754519343, 0.8194347358709463, 0.8742357018784637, 0.45420248053764034, 0.545021334035525, 0.40484355148999873, 0.9642956470123379, 0.9521463750801464, 0.009809236244757491, 0.5632225263832438, 0.827726924457394, 0.19127589974101955, 0.8270672169675024, 0.9389636338572646, 0.03389523795263183, 0.8566288277688866, 0.41601508004675314, 0.4533324145773725, 0.3986860505212597, 0.7125644912081883, 0.4991806916020406, 0.6155778733311165, 0.9130384484529627, 0.5487870717147846, 0.7780523937434449, 0.28193646085785884, 0.23331327786702805, 0.9816900774238352, 0.1350024308188581, 0.780189727376689, 0.9156908233955465, 0.009622250928327358, 0.14554767074354535, 0.6099444642853934, 0.49974097393273886, 0.7069659077805105, 0.7816183976265796, 0.6893721747092452, 0.39131354032672916, 0.37859141906212357, 0.5906888260321975, 0.6601801424705058, 0.17536941466724143, 0.2319276355700719, 0.7489062937368479, 0.25317403533372795, 0.13515277633234812, 0.9347494213774822, 0.9266229609375172, 0.9943887686013935, 0.05448279130963951, 0.2941520004646705, 0.8162845180903855, 0.9728186588423753, 0.04784001124036252, 0.22656891211505314, 0.8623002348807659, 0.5872338171414982, 0.8172407294972533, 0.8935080553239964, 0.9015605149533703, 0.41310471749037525, 0.9472794835647472, 0.6520347680487271, 0.31311178341617885, 0.3881266733594382, 0.5940963916604006, 0.34213553626717264, 0.7731917933130059, 0.5966087262785921, 0.41236805548735, 0.38464411318442915, 0.948890845138434, 0.6579713101413165, 0.0864903742655957, 0.9024542523251091, 0.5321617601250037, 0.4679140323179162, 0.545330586994838, 0.45181337751924944, 0.46408729390763515, 0.6739482447724412, 0.0051732115035305615, 0.19981216404826385, 0.5290130517806954, 0.7192318331618469, 0.7212983477553033, 0.3213459838833309, 0.8810398893805294, 0.24407230150381054, 0.7705033913302648, 0.8348143443275565, 0.9798327350813848, 0.7153785787888585, 0.17227162583571132, 0.013486902192362704, 0.05279184836340933, 0.4048402752271233, 0.6541987863733343, 0.9572730371926592, 0.25874032756911736, 0.1708286437732166, 0.7458853835638297, 0.8957748918471427, 0.8504052252091574, 0.8440260407324176, 0.09998791094771531, 0.5981663701129188, 0.9909795971630094, 0.7599927671359444, 0.5930460739990847, 0.778268386360668, 0.6314661520179152, 0.5758158555084719, 0.1933560284115361, 0.04267202229386946, 0.5808063777329563, 0.2846012429745495, 0.8127455357361613, 0.8547361041799995, 0.4236263477471254, 0.5126017051751544, 0.486864207649195, 0.675148578661926, 0.521602594310036, 0.1714438367929747, 0.987577581508166, 0.6240301905818986, 0.3972660860873791, 0.21466797526556947, 0.163736157424353, 0.16097272448599187, 0.9867228726368442, 0.44686891216524294, 0.8529040770303731, 0.8427084849973342, 0.5248669060092062, 0.6332209039546157, 0.3381060884944972, 0.6410528682127311, 0.5184896117965878, 0.0775072340265841, 0.20847724173835658, 0.8421532756187703, 0.5690884663921209, 0.16660278165823805, 0.7114283732757188, 0.12485689980485426, 0.4778653717597874, 0.8936810245378618, 0.25572041201895246, 0.6479725646536676, 0.0521651501340884, 0.2899282678297366, 0.1567842561578523, 0.2618292683133343, 0.48167163493515797, 0.8678615958116621, 0.2825109203364219, 0.029167488033803868, 0.30085749125988204, 0.1430984046038365, 0.8105162116377423, 0.3240150277783528, 0.4227679344777656, 0.6462688810750794, 0.7669111613819273, 0.3591939105703398, 0.5406014889841781, 0.9133014898668583, 0.23078416856951423, 0.7282831287496329, 0.7696332086423125, 0.036116417171488946, 0.7188034785773543, 0.46641137151322454, 0.13517594491126694, 0.023029089551247717, 0.3240281523339036, 0.28219840623687475, 0.6176277759655265, 0.822929704075167, 0.9746339984503541, 0.09356935168701108, 0.9358670947921622, 0.5150705189935418, 0.08698190944361806, 0.5067019194005934, 0.4607138934794833, 0.5903911985128997, 0.04743558869608677, 0.0816011762024833, 0.18434623268203787, 0.7063485147604806, 0.16133266570652083, 0.7545927345078352, 0.9883244202548223, 0.1932863168822514, 0.18928374882276033, 0.8001091255310002, 0.7155860340551159, 0.3789846917866153, 0.9611113142900227, 0.879396081488193, 0.5388680749811205, 0.8361159884411873, 0.866329387811841, 0.2730682799221704, 0.3194169335393262, 0.9423646280256972, 0.24435425023073687, 0.7470170905071631, 0.7738507071603729, 0.3986280845457605, 0.030480186468068826, 0.610744914811935, 0.2678410545126796, 0.11563606352242406, 0.35435733790292934, 7.629086834592957e-05, 0.31506645823114665, 0.52596582150875, 0.4947711935372616, 0.2900674918365881, 0.9559480836459326, 0.8641971546827826, 0.7759990209000613, 0.25189193242507424, 0.7764929030552792, 0.6740451053768206, 0.9442503568797899, 0.27015556612912295, 0.4722170294917363, 0.6923440714494277, 0.4625235039406205, 0.40653633557229074, 0.8614408947586382, 0.8005107123593145, 0.38952152310149324, 0.5138242206735628, 0.3034512156454581, 0.5075533946811591, 0.6409178909749544, 0.7867224176037622, 0.5704724276154304, 0.558636617357991, 0.2794783538323291, 0.29715752029602904, 0.5187519349640142, 0.9873759371136224, 0.9258075437182876, 0.21802053184517123, 0.43578239292876575, 0.5802450337786992, 0.23230142264547604, 0.9663956282775855, 0.3046095724793134, 0.7813239552985765, 0.7139029823908456, 0.11346499503069729, 0.17481934399946641, 0.030608752823210073, 0.7198536329641824, 0.5851914340312228, 0.10405825121810075, 0.4328732174062543, 0.05984690834909834, 0.059751406592598366, 0.7099125485628539, 0.2327422314064267, 0.22293859772007485, 0.366334373824144, 0.6749561293186479, 0.8275468647809106, 0.4836623121233168, 0.5182234230734467, 0.17814665168896882, 0.767156836968558, 0.9957233089372526, 0.020767935241929103, 0.9075908646866189, 0.910011621335872, 0.7026196573836658, 0.935762210311436, 0.7711845413595912, 0.46739814450201234, 0.6994581401527824, 0.5616043805626976, 0.11408951973501213, 0.6998783598361171, 0.929936385814316, 0.665750680755247, 0.6799953175502683, 0.020929310077360097, 0.9533380343595762, 0.19059543824646374, 0.09924735025128095, 0.4388686123460397, 0.7029603377770199, 0.0283956241097576, 0.08107860028919389, 0.5042102876279084, 0.2165582424681859, 0.061309458649308146, 0.5425731942471365, 0.6896535206703505, 0.7865332719261746, 0.21144979197123848, 0.044240593795785155, 0.7172785881835658, 0.8087701489136178, 0.12632062877512984, 0.3135882124553674, 0.7030096426830668, 0.32427739389406196, 0.26177958169560045, 0.8364626116621018, 0.045119232141371146, 0.15965420000508967, 0.9353298867548688, 0.20383187633308142, 0.9738936519827217, 0.40298551153980444, 0.7975560547282584, 0.18171915196160293, 0.7518553129466249, 0.3343056185111044, 0.4899186327978281, 0.9156154657107153, 0.9113609778955688, 0.9693327204195537, 0.2857523592884468, 0.05130307975288906, 0.71266558707065, 0.562649641637568, 0.8915442240259507, 0.164649064386867, 0.027705380608350705, 0.5407021702897924, 0.7889782067611623, 0.5259864378330708, 0.6845669681814901, 0.6376220227714763, 0.8514856160558509, 0.6510253682186862, 0.5170756234714353, 0.7067784474209631, 0.9994574991301162, 0.6757298661011472, 0.7466542251346405, 0.31532433459065423, 0.2932461574194528, 0.6129823292461669, 0.24096303449059953, 0.7484722467815119, 0.2738466277749775, 0.6041763997009431, 0.9490113319971468, 0.16474717260481941, 0.6344892971888295, 0.1605409102690507, 0.36949116587874564, 0.9062309293016031, 0.5676917708189916, 0.6579501227105841, 0.1556984298808446, 0.10526105347022718, 0.0432597501143015, 0.12340518927265864, 0.24480904517286162, 0.9559497778713313, 0.4650345002210139, 0.5570696004138982, 0.8604647108283786, 0.08281791268299465, 0.6909086243849096, 0.6361793771611001, 0.18333854334943112, 0.09914338253655386, 0.42672616390085993, 0.029455181622296656, 0.8806910005582591, 0.501593639037123, 0.5384016604659735, 0.048500484858614024, 0.33157374470623313, 0.7819900133063813, 0.8036696202277274, 0.8870946895919508, 0.6443897992391144, 0.487593702664578, 0.47427283897570727, 0.45319916886863576, 0.34084491767048486, 0.4097600967808508, 0.6369527481950622, 0.988582322369492, 0.7429270774935287, 0.2755575157901178, 0.5337860064252411, 0.08527367015946075, 0.2868764543425195, 0.2818610831832793, 0.09656564597512085, 0.16326420842851086, 0.078524756766712, 0.692034898414409, 0.02929249805951828, 0.04078870767209608, 0.68618278656732, 0.4164950388301115, 0.15439502423081763, 0.2608044219197406, 0.9485716022280892, 0.1489511084132873, 0.5371867964769852, 0.2679471165751426, 0.26879005137532985, 0.6385648413295864, 0.6934480563650385, 0.5889259374697515, 0.9444658629484035, 0.5739860439847068, 0.4642829135480352, 0.5485487373822201, 0.055600233329058835, 0.9503995048048212, 0.03693809906500234, 0.29259340143434953, 0.3763819233620549, 0.054765734537462474, 0.6690946345171489, 0.22901017308395843, 0.3851663832175244, 0.9320166382726104, 0.40543494470602504, 0.7132939144212584, 0.438468625983355, 0.40289388689969197, 0.1080205205554402, 0.36245057716210094, 0.36015390409792614, 0.4083542707925487, 0.6457341101335805, 0.5280984956406288, 0.27661051569717643, 0.15463113535167072, 0.6339351618412589, 0.25386082756030703, 0.3773882514499456, 0.31448240237275205, 0.5379416898801859, 0.5758417787990292, 0.4931403175245719, 0.19895720697450392, 0.9106510540309283, 0.7050910060490698, 0.45995862112822117, 0.4978773762163059, 0.4305593369082561, 0.5163888955360598, 0.5881241308899362, 0.7443503376805837, 0.043441356160601075, 0.7620942885064099, 0.25391141995016, 0.10404423400504292, 0.32906430947818444, 0.7134706951754703, 0.6142847460386224, 0.8025796936730528, 0.732389054290974, 0.41473925626260966, 0.6923681125801747, 0.7145973260035485, 0.6951361442463575, 0.3418245407724094, 0.011957990757860193, 0.10193439601418242, 0.7414001168798778, 0.4136476884443896, 0.690481795572699, 0.9133795729869558, 0.8514948184579377, 0.6159790140475269, 0.35329256022365085, 0.885435642977142, 0.9162085873379183, 0.8567070326140995, 0.25296933567683344, 0.35424346143915453, 0.5002598794309785, 0.8659747694089831, 0.061456731329130654, 0.18850808844299283, 0.041641953786621944, 0.4423078043675779, 0.19516736871253626, 0.7748134390819658, 0.15669760064831195, 0.9117988105447139, 0.17529069687430643, 0.21239361243420785, 0.5598792774908463, 0.019901661165872664, 0.7807569139436707, 0.3951855412813505, 0.04765166480638605, 0.1252275191352593, 0.7764889850899379, 0.9903254692712204, 0.4160674609967715, 0.6575123873469116, 0.38692550571427453, 0.9421299229690594, 0.13425578776714753, 0.6592775206040412, 0.6054569516862356, 0.04995466341550436, 0.31838895529498445, 0.5594098049245086, 0.5431828600421421, 0.9655536479587977, 0.9443783667221035, 0.52733461507154, 0.23509187824030708, 0.8359559719413645, 0.40800777231855934, 0.8192441772939613, 0.4585598560257491, 0.5789392096126688, 0.73483080985693, 0.3857779429185293, 0.32684564099220315, 0.4342809981627095, 0.14049178871154044, 0.3249377070613626, 0.9649364229542966, 0.546159980425236, 0.7495624435760676, 0.46499080808841164, 0.9595431299879549, 0.5511422996681221, 0.006284943257787723, 0.9579373386678119, 0.8627631305545066, 0.42931315127083947, 0.7117063444496837, 0.3529688849071867, 0.6581981238160464, 0.8607842753730445, 0.1035946540281355, 0.33884413032963134, 0.6507898433398873, 0.5959572838859108, 0.8452792802539334, 0.3526427347097323, 0.2554030188129234, 0.3190780690938113, 0.5359166867354336, 0.899592971396041, 0.9121275113754743, 0.18881523918281573, 0.16581486849400462, 0.1864109651954301, 0.028607524048106736, 0.13031259865406175, 0.6048366380665815, 0.5957170162769209, 0.7081464546990173, 0.8903217482370849, 0.09598610365359428, 0.519585064267526, 0.09657738036679875, 0.3475479951857743, 0.4963494792070573, 0.5292251865940365, 0.029110455518635447, 0.13835821078098043, 0.658289086360752, 0.20830808279559043, 0.0736493897230931, 0.8598564030205227, 0.8590472853784719, 0.9610234425963425, 0.48137361683309265, 0.17898859647327336, 0.5440140974851478, 0.22730089140323917, 0.018558462503961426, 0.4863017370860887, 0.9382132934461014, 0.19297219357216033, 0.9940483705415563, 0.7732193700811595, 0.4881593204224687, 0.21141437672188212, 0.4440192193919973, 0.14557017262370142, 0.7702782436739344, 0.6601890426095425, 0.23468998861913448, 0.7782546277335423, 0.4448974128041292, 0.10784083571982617, 0.14854640192380364, 0.41589035421442533, 0.3197984326244462, 0.7245022420692844, 0.21576829484306959, 0.10265703279256322, 0.45756321284804535, 0.9403807825834055, 0.5526588429924927, 0.6064363553897896, 0.44265137283869593, 0.569212185802443, 0.7912368277559028, 0.8887896757133944, 0.9701565615505346, 0.6977265802358966, 0.536834680339334, 0.053981826061055393, 0.8756559562878227, 0.19057490879409256, 0.3320634721865183, 0.4459034795768957, 0.19803414491520221, 0.41464347378057187, 0.4296586033181208, 0.3521609076476333, 0.7204422760571739, 0.538750650251617, 0.9405722533748734, 0.6186423782405404, 0.6233966614987376, 0.318102330519885, 0.8543971214766016, 0.6515592077046153, 0.65087215946289, 0.07339238123019876, 0.4727928631310542, 0.020176923010824965, 0.8738978388137459, 0.400978242333368, 0.7942854137885756, 0.6403430773994766, 0.5661281788485651, 0.9813443426749566, 0.5483196198615674, 0.06707226963185708, 0.7333912975866296, 0.7783524129943937, 0.5686775672271452, 0.4256925483989712, 0.5147086104638293, 0.21476000417538343, 0.916855433021808, 0.3714678841508565, 0.21945150784688328, 0.5895851611906975, 0.1444626597607006, 0.738918199088585, 0.4481544686964083, 0.9856359446672089, 0.29954706102055195, 0.611250956442058, 0.9430562414796368, 0.7229305445999924, 0.1858020448235872, 0.6618648057683056, 0.8030276227107247, 0.8628099361519953, 0.9052610609469864, 0.48514713211278393, 0.21873607262787087, 0.5236259810661064, 0.230898613761495, 0.17879765773860556, 0.6151719520382292, 0.8151124499805635, 0.5781982220346872, 0.3922148718803763, 0.04935560570672859, 0.6166915363174584, 0.5081051021238706, 0.7010454655614318, 0.4156377880919485, 0.3492037798091502, 0.602200690923089, 0.09046365783660171, 0.16223935565771608, 0.5214901402508125, 0.5044965309511683, 0.8718711479270838, 0.9893060211426482, 0.4959762454399149, 0.6638722685693331, 0.27567906452334956, 0.9612735276985851, 0.017683914342381035, 0.6880525776298796, 0.26384910388692295, 0.4717037005472474, 0.04709738998294177, 0.9206613460317158, 0.30609401558422245, 0.650794876466132, 0.9549873305910817, 0.8260862345328126, 0.4305511457337493, 0.15775833413756224, 0.5698073932330375, 0.6732764670891707, 0.9398683076373318, 0.8884952039532361, 0.9747580378552119, 0.7012280138803675, 0.8531212614847642, 0.5588857939967947, 0.4865193397093649, 0.35605598711197395, 0.23192417196470105, 0.8943987506597288, 0.4581750581036229, 0.8316761648384743, 0.1956329153934292, 0.7862726579345383, 0.2825441517137014, 0.12262868378623026, 0.8276433833405171, 0.6205529971010263, 0.32692718075055793, 0.8228061122431176, 0.01971216456364311, 0.34028396625042623, 0.9809049097581001, 0.42615866343689, 0.31026080743670426, 0.655869132710115, 0.21848187364501515, 0.7168610879867828, 0.4594451911566828, 0.665814039596452, 0.36315476515717227, 0.5792757848529761, 0.2194177814751842, 0.04385373639898016, 0.518617925385258, 0.3231278017612045, 0.2594374757740957, 0.29246587337951047, 0.9954689561632492, 0.3501425234728255, 0.6709665721562044, 0.16735352771914958, 0.8260129706431494, 0.40920719564891483, 0.6726330850570945, 0.9363557645462725, 0.6556123113787984, 0.24270806527297228, 0.7235976249239356, 0.24447580020214432, 0.1570820781313833, 0.8148349956024216, 0.6933255834175878, 0.3001748159747639, 0.4345877719588055, 0.5503760162209426, 0.25779097166992126, 0.4929286821874297, 0.9452724276975171, 0.665277564567275, 0.8981405030205403, 0.0670257099481898, 0.6939751122857064, 0.28055550151293496, 0.1332388904235442, 0.5375935529800575, 0.7796575064872702, 0.6544817490995954, 0.07015083766352537, 0.5144850339572572, 0.8525538781907521, 0.9739838860835902, 0.4968967376586929, 0.4127145314686359, 0.27933761555501435, 0.3672016010943906, 0.6624024674092706, 0.24544598528646022, 0.730314983254911, 0.17701101837412136, 0.4254799754930676, 0.35423136895259566, 0.5768227897299716, 0.5744645070463099, 0.6089490929009442, 0.8468421104716097, 0.062493117646656215, 0.9433883841846586, 0.3224314773749847, 0.3879437547436835, 0.06542481862518479, 0.4524283508742747, 0.855669739307951, 0.9355414144830774, 0.016953557859817336, 0.08887746141991093, 0.3077384846166704, 0.20142444310220264, 0.23430527951848246, 0.26726979711914867, 0.7538977184667861, 0.14055565974103956, 0.12019543811452327, 0.8032361878205014, 0.7275211502307414, 0.5391190118588421, 0.39040871413175204, 0.9111147281454772, 0.9493616269229143, 0.7539309432514376, 0.32713630350951395, 0.748126071640409, 0.7235166954765612, 0.5451528985198291, 0.08939363370630093, 0.9726577168929407, 0.5056002065235468, 0.8720214092930499, 0.14252130964260157, 0.8017993349366525, 0.8789412016297585, 0.19733101052115432, 0.155381302468528, 0.8861006212175135, 0.28308405796973546, 0.3421889072421824, 0.2741378883081277, 0.562728159108378, 0.7383010713186272, 0.2940145578132707, 0.28188592835883397, 0.876776834120555, 0.4094498174275354, 0.2609720457658792, 0.9077216796152148, 0.9167908537532, 0.6309256990750524, 0.2932255295296887, 0.6187393252348707, 0.02419640268937162, 0.7615549945291642, 0.40152068077174974, 0.636001364738158, 0.31693811983415865, 0.17459370162390564, 0.09635478622334415, 0.773110596039915, 0.36730671076204746, 0.4443424697638383, 0.6269672542570564, 0.18052959491911025, 0.8763251766396633, 0.9298965932343471, 0.3114788775550925, 0.5129502631275407, 0.2671988790638957, 0.03395469873611412, 0.20677057622909345, 0.029755677202100816, 0.4219143640858508, 0.27766396280399275, 0.7626861520170851, 0.2804449959173896, 0.41126630075958903, 0.6130098684306445, 0.7749747562665911, 0.6306743873349789, 0.17398026115826748, 0.8664778902230784, 0.13631390978684288, 0.126146245275511, 0.14392278284610127, 0.4957647401686809, 0.49393608417974944, 0.7608848150197474, 0.7708537446533661, 0.17041707735566713, 0.5292679237649189, 0.12997774787294147, 0.5833293771008747, 0.22158461844207578, 0.38454048634657145, 0.25170772654694007, 0.18384322498407457, 0.9106010886281795, 0.09659133036787504, 0.04798999449920649, 0.5971959180210877, 0.33920293291125825, 0.0026978486282175362, 0.40823027702490455, 0.7474551858830002, 0.8447835860688525, 0.999476073467762, 0.11292905422267163, 0.2891202214831097, 0.6782488374010278, 0.5640985110366258, 0.8986345118209681, 0.8303221656535216, 0.3838014827262134, 0.6954806707019082, 0.04745548087955098, 0.19020545853032067, 0.12142096074765196, 0.8083835608993636, 0.2703724701412815, 0.04308441751967196, 0.8978514331468422, 0.9227768394778075, 0.054487218354160816, 0.8881844540343677, 0.05812500740473081, 0.43395580484342355, 0.9128284726568942, 0.46153699068964205, 0.9329113950684834, 0.5436808169668677, 0.8551864909610408, 0.35430629048202467, 0.20331160404943038, 0.010592767504785994, 0.768145204266474, 0.7716453181066588, 0.07399950484290962, 0.35304343137569727, 0.7125013832160177, 0.32282759187212584, 0.5098121496598533, 0.9429961075410074, 0.23690140194649634, 0.28545879601150004, 0.36072796490221837, 0.08273436245662757, 0.13321861653992195, 0.45428395959680057, 0.3292870423168869, 0.3717537796542958, 0.9151157324904851, 0.032565267234247575, 0.5663024224678861, 0.21258936026884934, 0.018792364759155578, 0.33061571155470315, 0.4408215380032614, 0.6373830559219769, 0.409083548130421, 0.5719023860863325, 0.5966825436453085, 0.3384202473006439, 0.0652522862056627, 0.7184518347094753, 0.7333243428502271, 0.3397689359164483, 0.39030612456817504, 0.49021356874309363, 0.07567478335266509, 0.8152990173046628, 0.865796090334987, 0.9772443897479798, 0.8237383881843146, 0.6529526140669909, 0.642639906551107, 0.48148740771686727, 0.32824558349693844, 0.21997446692237632, 0.2826342393226089, 0.6925547552930775, 0.8127702758298999, 0.8449833779720203, 0.04123879385713569, 0.15065632287258246, 0.08510557609762459, 0.5458280878881934, 0.8586504699178478, 0.9911190250770345, 0.5763284424876813, 0.7391889450985766, 0.40039453665752356, 0.6580974766512633, 0.9713635948599508, 0.9633153015071205, 0.9892725316197725, 0.7655195394029977, 0.2626076882068743, 0.5724930703594869, 0.8770329572359922, 0.9241957706353401, 0.5311898231459584, 0.9787947183754235, 0.29236240390648527, 0.1370530031021152, 0.21557458708432398, 0.21930911835253963, 0.8715098439481456, 0.18225413327885254, 0.1273980429476339, 0.781536231097221, 0.7399707114697983, 0.03176008087944826, 0.07484892991644743, 0.9938729205296434, 0.7208500631972949, 0.7020940151356819, 0.649863542644937, 0.07171846155065342, 0.24072337013910783, 0.3613692423637672, 0.28109344159579286, 0.6906532840886619, 0.2697954961712017, 0.28147888050363834, 0.8129444048447061, 0.6482743700303343, 0.567516198772247, 0.3377204549692112, 0.5318035966189143, 0.13996490823612162, 0.28411043736720165, 0.7086066320571008, 0.7364523892364573, 0.24583114874653533, 0.2718401559841159, 0.4699898162815598, 0.8368333921696967, 0.6039469513318906, 0.6881629540763242, 0.10914136009539432, 0.03794547642282364, 0.16071126773904743, 0.6071822780850678, 0.999449454081704, 0.38785614009596714, 0.2305249584020561, 0.9381100298775975, 0.6723682337201471, 0.0270853082856215, 0.38452454801976443, 0.8104401851265016, 0.4148616154771626, 0.25348586490031955, 0.9559803040006986, 0.23669298529343408, 0.8683776502568926, 0.6818154399643029, 0.386930406487093, 0.4831551067581342, 0.762948076915824, 0.3080418124016162, 0.5783325642474083, 0.02031458126010055, 0.07023369879228158, 0.2510418307035861, 0.06557828934649368, 0.20332294284183228, 0.6988094459473019, 0.40342220501450765, 0.9809970493544985, 0.26572276292341057, 0.5928075161063842, 0.8549134765023864, 0.567763428815418, 0.5470926603460404, 0.9274902125377089, 0.4928070771606695, 0.526894280369654, 0.6376977924010896, 0.22799338981773765, 0.666609321330193, 0.30868196403098336, 0.14279972266571528, 0.5062364564484477, 0.9157139519719435, 0.4438514752002488, 0.0967753755965477, 0.8364362062093621, 0.7507227281441472, 0.034410730069850626, 0.6782441014462247, 0.48150125869929983, 0.8610360109688682, 0.040318507891833, 0.981454376414118, 0.9489949777983132, 0.8363894005173848, 0.7935877513663323, 0.7161463843240741, 0.005320974874661322, 0.7219264019524386, 0.5939046135812794, 0.7367415608933358, 0.4901397664186017, 0.7455950792620178, 0.38453281111378745, 0.11932732877577257, 0.23846310575164364, 0.5070859241209125, 0.4714858979832832, 0.9511226798432605, 0.816798240831224, 0.9906645769037737, 0.11961893403587176, 0.31535187276502774, 0.6103025507014492, 0.780168389505919, 0.4873081795149584, 0.5385034675060101, 0.979880443701223, 0.38006057763820444, 0.8983108410336961, 0.7260784501222746, 0.08445070147685141, 0.19108936840472623, 0.8684070135879295, 0.29639093380738957, 0.24831227601153794, 0.49319075696101833, 0.6248867669334034, 0.043314312738550464, 0.6751994351532093, 0.9839650562784863, 0.23577156317354986, 0.655407771653181, 0.9998838732393714, 0.914266783053472, 0.9781753528714074, 0.002991513868391582, 0.27941324936645506, 0.8503441860013552, 0.47965377849050583, 0.6425737018053364, 0.6917759376427142, 0.5997255515022856, 0.060241281568058636, 0.5393389196251592, 0.18985718347501923, 0.9351558163273623, 0.05023015623962879, 0.6468904895820736, 0.014573021284780774, 0.07314826533484264, 0.7385634948320089, 0.4736186028473338, 0.961769707187561, 0.6466132639765876, 0.6540721879369729, 0.5897323507539489, 0.24160977712950327, 0.34607925280409346, 0.6030672545910204, 0.09219015818821708, 0.2189044326893821, 0.12227548581400349, 0.8947981854220011, 0.252625479705346, 0.9946789181499702, 0.16317149618234628, 0.8889540539831564, 0.11335746065295138, 0.3021348506513677, 0.32426537462416727, 0.3221710260970897, 0.7955224454834644, 0.31995046679141825, 0.4603696522905393, 0.15274124315980264, 0.5767785824549683, 0.9089273609938713, 0.014181800749509588, 0.8968517292934882, 0.8576432177022097, 0.41392758451611766, 0.49075724214154415, 0.6724006689201423, 0.7419828793396049, 0.5918792807869941, 0.4964571450177757, 0.8462797472729263, 0.24074647479855604, 0.17389013966384548, 0.4336537753610863, 0.20804076413234251, 0.8346292608572363, 0.16330788557412612, 0.6470926565729509, 0.24909881173874848, 0.7800536906520463, 0.9027679093109797, 0.46621683989976836, 0.8825818086255208, 0.6483997410357604, 0.07090902131552845, 0.4615378723949781, 0.3984200929917433, 0.793556355780704, 0.18864072780222685, 0.6683790309702944, 0.8281722909526522, 0.8584671461088224, 0.7674560890352315, 0.30241765553139677, 0.41475831093913884, 0.22776361413963964, 0.38489260664050606, 0.42790348692893054, 0.4855741541423584, 0.7700059150649414, 0.4463345406584335, 0.3754021383352054, 0.554149430056228, 0.7229379198353453, 0.3532397254539792, 0.3768025729772698, 0.668903032222659, 0.9064030808327798, 0.435833055858148, 0.8685532076495873, 0.2886386669233906, 0.43587518450474105, 0.694872592542479, 0.1796499204429559, 0.22480783387822612, 0.23350737891309348, 0.8144091649840206, 0.44616818509133616, 0.22082898026287756, 0.17930805292422558, 0.15071070399700426, 0.3155340984080618, 0.6760742950253298, 0.2621675138999626, 0.17823328215968037, 0.08015587675406999, 0.9763732534524071, 0.8110620473055706, 0.9566564231509402, 0.25767909123698307, 0.3601800348476929, 0.950425899846338, 0.174356764476159, 0.08077041781361871, 0.7687961673279716, 0.4354185072613621, 0.8310249565932173, 0.3721057577278879, 0.5340391905817158, 0.4872996797842588, 0.761276430509516, 0.7341317116279491, 0.11585158022036635, 0.8117034975015432, 0.04017399270252342, 0.5161920405254127, 0.02912026146204605, 0.283469044387504, 0.6056600705599993, 0.5892643002783994, 0.19327527302460534, 0.6201029277090222, 0.9439856016164112, 0.8563446020541817, 0.6525564675585972, 0.9151952958944338, 0.582373416388159, 0.7669560791324367, 0.02468294355083911, 0.32790419872418497, 0.16828688898958633, 0.9785136875320333, 0.7559030686500858, 0.4880628030762244, 0.49742040693088596, 0.3807874726702045, 0.2518072818614463, 0.28293848736377514, 0.052065141479679444, 0.12673432223072, 0.00493210913236386, 0.0659657665976604, 0.7546657122157793, 0.5142072130637574, 0.47101495152740935, 0.12423809933676722, 0.631621048904926, 0.9375168340975689, 0.9710427645428577, 0.6951321450506236, 0.12975755461724825, 0.9371463814511896, 0.06329947410562009, 0.17250706916082792, 0.27504520679952815, 0.7997764878570511, 0.6280084931708173, 0.8790770172906017, 0.8699573351880034, 0.47162638306287774, 0.429977964766746, 0.6852470236642084, 0.02825069851350992, 0.7187392702298809, 0.6897047244877237, 0.21155052406886465, 0.5782009379374243, 0.844124004652653, 0.13477494670163825, 0.39460860995867053, 0.21886878537466137, 0.9331765626546623, 0.39975766464681506, 0.05306072541805107, 0.5198958252400147, 0.30504398126008225, 0.7433307539428954, 0.12287466682408421, 0.9670010933795353, 0.747858359423017, 0.17207327768824898, 0.2545220160759658, 0.5911442854526012, 0.785125289716672, 0.34374725201679623, 0.1881988882326393, 0.2864207541695756, 0.022946369182973436, 0.035928263856476184, 0.8248370296597001, 0.0326694849755228, 0.7293502533474547, 0.6077561758020177, 0.5308356230207454, 0.03316711866227229, 0.7568490275843757, 0.520780966891579, 0.23241392652065784, 0.6897984319358339, 0.6291991128180034, 0.4441797944319068, 0.5568587932114791, 0.4498088314464638, 0.7010019040522237, 0.6507673483154275, 0.45381116863257953, 0.8343724626292929, 0.9726485983607335, 0.08883727023216881, 0.3240589354871075, 0.17091823673070605, 0.7065195713066943, 0.8019676727987474, 0.5441090274902036, 0.7569920288292978, 0.7284967317947634, 0.41634232641384894, 0.07570625995129976, 0.4839470331704978, 0.22728929068210257, 0.6017907078082997, 0.2752057089278115, 0.6197057838032689, 0.5062528432426374, 0.9578668123268466, 0.17145202413217242, 0.24939262342805169, 0.6288714928454562, 0.5306228139658058, 0.5871282516007716, 0.5544974175100911, 0.6268496169607662, 0.8447978213259328, 0.5990456111341405, 0.4975881427045391, 0.9759159347677031, 0.6791081992495608, 0.5316632896786118, 0.731025524465835, 0.37977185358977994, 0.18206518830018836, 0.655684273695134, 0.7157391210381715, 0.9914665753650298, 0.5048593361026893, 0.9551772829563094, 0.7745323297735499, 0.1264456909491325, 0.3699896710346614, 0.6285338457271957, 0.514443036953066, 0.9899529710790698, 0.7325623262164351, 0.42250238115582217, 0.9471771192019562, 0.5681364044488664, 0.6486542055885673, 0.13720737835505248, 0.6846959458412011, 0.4521690685914095, 0.9371433944439886, 0.9945327264012567, 0.33107065688983917, 0.9343690829724055, 0.6856832306125681, 0.799031808457499, 0.7380137292376373, 0.9746119191774075, 0.6114354110845129, 0.0891424280914559, 0.5091757110322869, 0.603309404646988, 0.4295246842942808, 0.722036085094832, 0.5625133815588351, 0.13050048794622393, 0.9927393684728438, 0.45025947906275665, 0.3250450093807251, 0.09561872500769664, 0.8633353598344091, 0.40442616095861705, 0.6049206328617713, 0.8428239809093349, 0.3359551331198569, 0.22248396807251225, 0.5502353681183261, 0.40267811045207713, 0.5815240359991557, 0.3014924083991003, 0.4250990948690391, 0.08277471680497728, 0.16446000783135628, 0.7582322318598479, 0.4513912032123134, 0.21989757035321167, 0.6951066958420687, 0.4703863012569903, 0.6716716338779879, 0.5407943154328158, 0.4271833226075261, 0.08610893472179548, 0.693695330552891, 0.31314361600309726, 0.5535216118808298, 0.5990984962870414, 0.5131726892092602, 0.806119912485667, 0.37726715649026266, 0.09688997160729618, 0.18191235600914468, 0.7408756680625669, 0.067357737461333, 0.34430792748579353, 0.35918926626247394, 0.136124078264096, 0.3541995171494954, 0.06349779403656919, 0.3754301718183216, 0.1727189346883753, 0.7580345332123546, 0.5946766069056495, 0.12308175309808889, 0.5448895422266883, 0.2753416276479139, 0.23336713618230265, 0.4308822662286048, 0.5621756856088449, 0.7611032921388645, 0.349812128693896, 0.3881534377705992, 0.2835050132379042, 0.036894377980221216, 0.9307542758686738, 0.35984184065576474, 0.057717777604340714, 0.16357715519612248, 0.5474191675603088, 0.17209729645140837, 0.1035218074281723, 0.550510065989391, 0.41363664298505376, 0.2424585443425049, 0.12297541084632557, 0.9285138515876707, 0.6290588065058829, 0.8255063271949105, 0.20874626048136935, 0.9395041387697237, 0.04600701773713345, 0.24156959559907465, 0.37041024160368163, 0.7264228362952664, 0.04321551557401371, 0.8319348475055413, 0.5128934010550922, 0.9925867471857552, 0.9216267877935361, 0.24718436038946778, 0.4698226024943565, 0.5439280672034829, 0.598067075383266, 0.28494763010177293, 0.03773308148441756, 0.14574269431127063, 0.6053555487266239, 0.8475034881533703, 0.2020262485026808, 0.7042307474819337, 0.5005531552761207, 0.8192645819547374, 0.20759838646694628, 0.42254359806485775, 0.49037819615284917, 0.19201492423287725, 0.37500924763986043, 0.3021041849823324, 0.3213504994388482, 0.46774067505236416, 0.0026173221305848537, 0.2236980382939876, 0.8209726800498244, 0.1341877362757261, 0.7037171416664391, 0.756226471861304, 0.9793647620935093, 0.44373960477005947, 0.7700194618684637, 0.5673608450062326, 0.013838598953302195, 0.6574138322136758, 0.7782853882176008, 0.9813441063355254, 0.6393022773267258, 0.9384754208419224, 0.9544023739700562, 0.8689363282216476, 0.25686033022026544, 0.5677299374542079, 0.20226249527907136, 0.7413309609345924, 0.3902110116265247, 0.817381412418007, 0.67832670080788, 0.46537137842295107, 0.6072049619454954, 0.931659554219823, 0.7232985553535521, 0.5613079712934398, 0.9529395011786647, 0.3233140991562946, 0.8867061849259075, 0.3102047303338008, 0.5569391637391777, 0.7072786765330655, 0.05248664008431159, 0.9215047227212699, 0.32001852496573835, 0.2947421881907316, 0.16826022413555786, 0.9470234077238253, 0.02390800364358514, 0.921284435754136, 0.5062140210208729, 0.38265197505015147, 0.1803325603165793, 0.35597726956395437, 0.7943681735300347, 0.41606259121453004, 0.9499169772053542, 0.022111673063570425, 0.5235643488450099, 0.13857697122597168, 0.4254536166360948, 0.22832181147804687, 0.23456948978616432, 0.9860684004280239, 0.8756978874984395, 0.03544764170358694, 0.08973630772908203, 0.5083562496701145, 0.011202382317988091, 0.8990670746555705, 0.9537673849619107, 0.7085713197473092, 0.986232021543572, 0.5081578876729579, 0.6945190695598703, 0.9024711459516134, 0.4208577171692106, 0.766413072935944, 0.48028012847993773, 0.22874311332279218, 0.2133704688789767, 0.5125128278114942, 0.8880847121160246, 0.3606612472771661, 0.34170378950422586, 0.39477693551558457, 0.6340623996399476, 0.6953872129694927, 0.7092038405181214, 0.9624278741295362, 0.3905353641961543, 0.10208035797721937, 0.6101978379539461, 0.7583740478481424, 0.12625795541839047, 0.6348773324268129, 0.8871458755396873, 0.01670678244223589, 0.4146830711435052, 0.5372807865088944, 0.12542194922035377, 0.6512231246433252, 0.4980918754933916, 0.2091095413841736, 0.21206766259675913, 0.031624355402636306, 0.49247318203534907, 0.8251416658391146, 0.2265518914158131, 0.45579558773586915, 0.2793801346253608, 0.48011367142312156, 0.19316663611067186, 0.9630653586008612, 0.2844483346903066, 0.7428791983417421, 0.20350354070834398, 0.2553320192818015, 0.8212809248620727, 0.7661178866721406, 0.765443338343973, 0.5677574750675933, 0.05410405845144206, 0.8535598075847425, 0.5267124302899265, 0.16596308978355268, 0.5165349840530941, 0.6009663705061661, 0.8001224351986231, 0.12433512035597516, 0.7328391838711578, 0.46843650518351376, 0.19453361700593552, 0.2457914503921359, 0.9715041128172724, 0.5035253179717091, 0.2738750246354873, 0.76571572353285, 0.8322725912841784, 0.9742207856586259, 0.17221294952368482, 0.30429255859284565, 0.150446075776693, 0.5774457449870724, 0.055204948247565166, 0.9049180192781775, 0.09219720725874558, 0.7249660525087812, 0.7634298317772668, 0.09532513565669298, 0.6037902965957798, 0.775876091952754, 0.30048105187387053, 0.5321075407103473, 0.9676971504359092, 0.26881827714334805, 0.3270462715063217, 0.14109347688658214, 0.718905496165389, 0.5178340264469525, 0.4641920385691337, 0.6886634266980226, 0.7541743566585278, 0.9338177907400674, 0.6377610366495927, 0.07859012814204014, 0.047881143812792626, 0.509518876595083, 0.4662566613906933, 0.044753641991725934, 0.2888474238293234, 0.4300753033759601, 0.24090396899360778, 0.4880819616569849, 0.49344032440942565, 0.3267337118213137, 0.30739545858667916, 0.8347976589605131, 0.8468181237471225, 0.9397711276395985, 0.05076516895725314, 0.35528884635673386, 0.47869109342428395, 0.6485992654884545, 0.13077849395002672, 0.7561835005330849, 0.13019119770401266, 0.522947346864396, 0.71681653486775, 0.9545807279091522, 0.048471853442748514, 0.7656959974208565, 0.33260665541814094, 0.3107698976359098, 0.784262134457234, 0.2390556069831512, 0.2171033013333129, 0.22106855321775898, 0.1777305668557082, 0.7010763743538238, 0.34687353348311567, 0.6713227825218957, 0.31741624899077014, 0.27699680164190077, 0.24966398933329337, 0.4378580357548568, 0.8220315880834599, 0.8780303052900865, 0.3282223224417613, 0.5304855331661286, 0.8759301198567931, 0.8022054018812916, 0.8087106870029261, 0.39915235222002377, 0.811956074326436, 0.9536455298780298, 0.421213924992475, 0.43164313734964477, 0.5227138249336246, 0.7090043439645167, 0.2998320373339187, 0.5545990176184411, 0.3997327842492463, 0.7316793591805311, 0.8754030075046323, 0.843831916727075, 0.742684393168072, 0.17453735067792653, 0.8625298941919014, 0.11381870844975783, 0.27979009889454887, 0.5768907698535688, 0.06594773733933168, 0.9579455432204982, 0.5946935153059155, 0.45202323444648607, 0.9019434787093433, 0.7818194846873125, 0.3967066863484422, 0.8228406568388705, 0.09721161204039697, 0.4801522356674264, 0.01959637598493358, 0.9850457198522312, 0.24050822306737707, 0.18371526827375517, 0.5845485582312591, 0.17652807791034186, 0.8647449178268475, 0.2895166509368404, 0.2419901155988491, 0.6941088664970383, 0.1560864519399333, 0.635427742150778, 0.5816818559836522, 0.9849155684106518, 0.025588074983513787, 0.49459827852911853, 0.05425377571263956, 0.4743775865820451, 0.7564149515738253, 0.16276984906703595, 0.7687548469520425, 0.41373225024064564, 0.4544064319037999, 0.41801259667280766, 0.6314198197027366, 0.20323482183642694, 0.34349885200542063, 0.27104141183367414, 0.7982388531148257, 0.9953984175532257, 0.8327122421658457, 0.4281616517848509, 0.9687894499866775, 0.5466038572944231, 0.22487868502002484, 0.8384645649234528, 0.36865165146819756, 0.9336942046854281, 0.6160039963189174, 0.651923536201123, 0.14310507886655377, 0.06001830530380037, 0.22971825195338103, 0.9060489022166647, 0.17227243918298796, 0.03562839494317671, 0.9833405699591752, 0.879047113237965, 0.06427639038238131, 0.11198359585969286, 0.5120162273713391, 0.8195681998043876, 0.518411923936739, 0.5964168071235564, 0.8644480695528365, 0.9742302432739681, 0.596784065205653, 0.6009605776303654, 0.9172413061542587, 0.9722770947384021, 0.8230312406014156, 0.6689544008223667, 0.06070494793081682, 0.3249888584728904, 0.623899766373403, 0.6526210484092227, 0.6766952396244709, 0.34652804154497674, 0.4071283107450684, 0.8222639692618214, 0.011132519537103813, 0.5760595421942754, 0.28287338543402074, 0.37983591169858555, 0.40870027326127367, 0.07771932097463397, 0.03700348128441577, 0.34853902862782316, 0.34976756257395014, 0.20268620904747214, 0.17602558997716566, 0.07375838827968006, 0.8258050102203596, 0.22552025356880057, 0.6174348425138062, 0.8743948521904985, 0.04826767861785841, 0.8881260245700738, 0.20517630380817353, 0.7158063809593872, 0.6424390262914653, 0.28579474166696406, 0.6943570209638391, 0.8915403913726628, 0.18101264400038986, 0.43672810024025943, 0.9720888013306086, 0.9163586355462026, 0.8554811772547043, 0.8390860580206726, 0.9764990516164289, 0.623084563941527, 0.7274814276805354, 0.593214063381061, 0.1366543769893125, 0.5942756436334763, 0.940654759078095, 0.8976841341685899, 0.9170727635406218, 0.5512259884901765, 0.8732383847949075, 0.15876424149214485, 0.983846243401889, 0.06524064955606268, 0.22095794008768244, 0.29289061978348774, 0.01906759179346751, 0.6027549581512781, 0.06775862309828506, 0.25143958689042967, 0.5669673318847419, 0.28294105817696213, 0.3174541416076303, 0.33060755385741214, 0.4008286112428354, 0.36612160617925404, 0.3324377788357381, 0.6469852128501971, 0.12960876007392885, 0.5573253264003803, 0.18164164552223339, 0.05488525449383397, 0.8333901979014496, 0.7013270063862299, 0.00973447081459422, 0.44646013225218206, 0.04509404363374836, 0.6007283625082954, 0.5760011451082034, 0.44293294050290455, 0.7335522619452794, 0.27903604275828786, 0.1476826817000655, 0.32432344497821075, 0.6870931336062818, 0.00857861060126519, 0.7820956055279831, 0.4726044283862554, 0.5732177277699113, 0.14034121755523665, 0.41804284566429306, 0.3953383120567484, 0.803883857137373, 0.8793775032337189, 0.7863521774621048, 0.9210368915228765, 0.527325528345828, 0.2898124695522769, 0.31385222532735757, 0.6472638868328983, 0.5235968800554752, 0.08089383474428724, 0.6501478763743553, 0.1226793956172183, 0.7544937807956091, 0.1011571047349803, 0.8036833193003035, 0.3947568249380681, 0.7113878526534941, 0.4334600130160059, 0.995734610188258, 0.08750876548564512, 0.41692095049348066, 0.4161099210925021, 0.558301508648263, 0.5234324181480597, 0.6021309454264144, 0.11982213855056323, 0.652984817383927, 0.31994110490998406, 0.44025076342842107, 0.9018474001363644, 0.1780521010787487, 0.0928203326209236, 0.5689257589296584, 0.9307858048545634, 0.5019191507483846, 0.0732359171678838, 0.7472470560306381, 0.7606290137163079, 0.1759363749688474, 0.9865090966718135, 0.14162530231861792, 0.2257810200578727, 0.8625577589305529, 0.6182840554609289, 0.7627928373929174, 0.7138267678661641, 0.6271079408184336, 0.26542849852208483, 0.5438712954597966, 0.6534648091675265, 0.9366397928644904, 0.24959632558445233, 0.6955069355781494, 0.08747607765195109, 0.4496760092668539, 0.6515312368984656, 0.36913050836766426, 0.1884121970188235, 0.35484115555318807, 0.35296784884342236, 0.25069533860349336, 0.9058873429939744, 0.7443484994879821, 0.750346435642241, 0.7617724756232275, 0.2922607375715792, 0.5466903040314682, 0.8097090004421225, 0.35407885946174, 0.6348456786908329, 0.4096851448355948, 0.6754014404335078, 0.8487343259562462, 0.6503887202649459, 0.023939621711200898, 0.0697668884428575, 0.1932051338234947, 0.07098041071523209, 0.8895455416639768, 0.5970662891404159, 0.9672124324991637, 0.25710752222232724, 0.2512360193659343, 0.9118588060460109, 0.12641331224828478, 0.2591745695762785, 0.5354205089164524, 0.9697500651356975, 0.7039769817809971, 0.9674853015743734, 0.7581464456430004, 0.009967363889854308, 0.9554403083896627, 0.6514960891704691, 0.9819054955872719, 0.1655400926361219, 0.6854831617362053, 0.6538109602793701, 0.29197658934366655, 0.7026261377883648, 0.3361358393099737, 0.593058167944492, 0.3193604213031376, 0.9112331297151058, 0.7565016778289977, 0.8148016159609519, 0.12956549959331298, 0.8840025203699886, 0.15092088574069407, 0.20505821088972076, 0.2243079482977779, 0.8559123643624608, 0.3470255353137828, 0.1316340364530686, 0.6434241700287737, 0.6784281820296103, 0.20732777369293587, 0.6251808986824415, 0.6394504726870864, 0.999032394532801, 0.7786813383845239, 0.8636701630404309, 0.0023017909877571796, 0.696449724735671, 0.10128652819511497, 0.4003153911577081, 0.2469767716265694, 0.8768832326648365, 0.34089952102337384, 0.11367436364895223, 0.607022940049033, 0.310423907918116, 0.17692819881508148, 0.893849330155664, 0.4880236414430278, 0.9956660538325679, 0.6061924103235181, 0.43946977537006016, 0.014921239872288439, 0.463398031987058, 0.8435515709522923, 0.05922628363397964, 0.9644192036892971, 0.09735680952505932, 0.338804944299988, 0.122083944069586, 0.5384101447575116, 0.894293825409865, 0.7951670891521336, 0.3730764160164859, 0.20353695631133162, 0.7561530473263479, 0.6832856935883096, 0.600988913103398, 0.35514255942741124, 0.8499665948777161, 0.5804484005287095, 0.7105133890231672, 0.5155572582331448, 0.9580874216612449, 0.42311501062470824, 0.13594740755997503, 0.5577114428718954, 0.02444976711511415, 0.6073524946467592, 0.42490323282605924, 0.9560741306479802, 0.17062467593248265, 0.8032635864461389, 0.4236136037107485, 0.46938391908058286, 0.5712751546570827, 0.6589700800129294, 0.07547209392481724, 0.3993441495689085, 0.3406978944629723, 0.7797752606137046, 0.7855007898427816, 0.4117897980533102, 0.6899309686736047, 0.6962784108609973, 0.026169671983859666, 0.40177616240464586, 0.940360830179024, 0.7321905293315297, 0.4795568133323319, 0.1987575279476046, 0.6127453916604444, 0.757610880372048, 0.8914703620980189, 0.10720148213654712, 0.7929011279820072, 0.6530747492772068, 0.308240250783111, 0.3398854214559405, 0.17318325577009575, 0.3507555425234006, 0.6115615288020042, 0.6172965474103689, 0.773900176617242, 0.6826457756065216, 0.6383381900788276, 0.7095117173673956, 0.13989700600187094, 0.8519068750537195, 0.2514355559461625, 0.44387467049936746, 0.08873576599160304, 0.6307491605599468, 0.3192212749113975, 0.19105550091405066, 0.5681426912540237, 0.4852586570071583, 0.6901510334227848, 0.14730516213349298, 0.7377793699206823, 0.07770239636167253, 0.6353314323740415, 0.7769348461239013, 0.03146407552911468, 0.881921416148157, 0.5196241210509628, 0.18644631162996206, 0.1800152993000519, 0.8469011263430949, 0.2044030747533443, 0.6714715606818085, 0.2652006622562567, 0.16588414879773827, 0.004974429525489654, 0.9421216848976225, 0.8680591840359811, 0.47536229896418614, 0.9087132127558714, 0.36269836666060895, 0.08994196144024535, 0.46652965119134227, 0.7635088426479022, 0.7580543424043561, 0.2814576427741803, 0.703103211229103, 0.030089454512598146, 0.431288495782855, 0.2822540862742956, 0.7883604392754977, 0.40414295830619484, 0.466555918451075, 0.4449073577848274, 0.3738360598670297, 0.10771135525719733, 0.11598141083836666, 0.608694960356133, 0.8076241092099635, 0.4556595939890059, 0.5354984218212357, 0.04529301994047097, 0.2178671393843703, 0.6882823913952348, 0.865528980527933, 0.19956656357560643, 0.22844588988154046, 0.46974197301841936, 0.5309853116091245, 0.6839795443783202, 0.29595752432872535, 0.4532475799120991, 0.9284317401382437, 0.8788823041707505, 0.2166810902369931, 0.5487203138636405, 0.05600987779157096, 0.3084775342972511, 0.5393125299204842, 0.37240064437816334, 0.3468973654158175, 0.9350645534385649, 0.24039614056758862, 0.7402803066693978, 0.08306562891693459, 0.28044191179432376, 0.8657987335237997, 0.9934355754376296, 0.1270705175053224, 0.6460880715079992, 0.9198821934593109, 0.6070568194283551, 0.6464985488505831, 0.15197537639099556, 0.2664357790754843, 0.9231485651377281, 0.5340418003367865, 0.9957229597354874, 0.8319214218168568, 0.5422138048023872, 0.9699107535181725, 0.4752429518518142, 0.05408065715452448, 0.412116834384297, 0.6195568540366302, 0.881986809712991, 0.15550908602876878, 0.7044936352812271, 0.09920603364957725, 0.7458878830244886, 0.6374540922492773, 0.41588511532180117, 0.3429122583047075, 0.48188295150668603, 0.45953260031670007, 0.47601109541209097, 0.6130040691925399, 0.37050149227938656, 0.6783163427743601, 0.997835766092076, 0.3119262852356456, 0.41049362892379715, 0.2871220882198977, 0.08075775985242728, 0.646921181653617, 0.8765279657302582, 0.23805860015263158, 0.712917806978227, 0.7988705300739493, 0.8923433911728404, 0.42345599054528416, 0.18133583214691362, 0.29445384375862804, 0.877237778478381, 0.4062427754927561, 0.39792110919390933, 0.5595455188757487, 0.9451098578780788, 0.39714743857270696, 0.1710267066560992, 0.26824919626807686, 0.9956553743600529, 0.9283196879255161, 0.07718521227499053, 0.4612312284809391, 0.09342894139926139, 0.6584945035502988, 0.7224986788775738, 0.980272950501206, 0.7600669820648661, 0.6208086249350163, 0.6086644042782733, 0.48308153203364257, 0.660326199954179, 0.9276878850610732, 0.8633830105539054, 0.7962187452157085, 0.9194747290923341, 0.16231806206359722, 0.9499107963424789, 0.06252948055080076, 0.886862482313068, 0.5294739865073963, 0.7551343176832722, 0.3967203263856607, 0.3205093213479737, 0.11273108728145032, 0.5400172007465541, 0.5463584941018298, 0.40902420190783784, 0.34753173597357556, 0.36190947502133863, 0.8449872186646363, 0.7122210627434624, 0.9946162402041455, 0.9132488211351393, 0.876847448826782, 0.7803556977166688, 0.9356233374490821, 0.3252320637795516, 0.7962997602423394, 0.3947709697277736, 0.27607928050158137, 0.9617201147257819, 0.6892430274739247, 0.5706639923472847, 0.8567674143010484, 0.759254344754482, 0.4640661001028902, 0.849388861265472, 0.915484880536155, 0.6803950008264036, 0.2233794778069803, 0.9322812689951643, 0.6255594311375979, 0.8293069490130799, 0.5363731200101739, 0.22248705406746683, 0.03548460537717968, 0.5681856389695299, 0.22852476978776393, 0.25863174388684307, 0.8597279049431693, 0.7032097750280445, 0.49225726322638097, 0.4614451564658706, 0.40804943937105376, 0.7560063316576442, 0.2990920309244123, 0.36319226695497175, 0.1658941783846568, 0.9423775873373108, 0.33575270283571046, 0.18716742670642605, 0.42701655041668696, 0.0062520852671191784, 0.9121308724576324, 0.5179750346926351, 0.13397622219055638, 0.41617067939349794, 0.22602489432339978, 0.8549501299106076, 0.34313173874115677, 0.27630233769563395, 0.6506926207027762, 0.2534847525768975, 0.9379397622811656, 0.24893248547242908, 0.25003116137255343, 0.24185977400785785, 0.035595161608137915, 0.43731034171619265, 0.9865984103159812, 0.6692875029221403, 0.39193623341329087, 0.8149634125086003, 0.3685145118514238, 0.3321064154658263, 0.8821130091244994, 0.5126819098142537, 0.7521217015064541, 0.2490810176728513, 0.7473789792510476, 0.1377191248691576, 0.8731112905545552, 0.37167076667157495, 0.2018551847032306, 0.6391343316493395, 0.6498829810818338, 0.5095016824529556, 0.12411368836434056, 0.6857165595366345, 0.728389597919631, 0.8384343918540044, 0.13893416384908752, 0.051156043086339476, 0.3945522835366221, 0.7021774315180461, 0.9664029679637711, 0.8937346328630393, 0.457178494165455, 0.21522711616193102, 0.6336352979366736, 0.26726767288419706, 0.13628950637506665, 0.8252202343876291, 0.8953549328626846, 0.1406626559991494, 0.9727894305213565, 0.13233188045808586, 0.38048680651099376, 0.8619913912534997, 0.2680556820317197, 0.26289459991228925, 0.7922081914968131, 0.8526785089625418, 0.23177886240082834, 0.5635282170289971, 0.2942218688725433, 0.9319828382613095, 0.36720463922998925, 0.98388126028702, 0.5648451215100978, 0.9973939542919464, 0.9896063503276095, 0.6678758243457174, 0.30974219900139965, 0.6138943763484822, 0.7659247094960486, 0.7327510716461801, 0.4580874332818764, 0.7148855948300462, 0.3015210526811154, 0.3193783762708463, 0.5729194299390246, 0.7009199288239003, 0.1498401214370051, 0.8024617709837892, 0.6546582644003875, 0.6992573312662181, 0.6233980510220369, 0.2816126619003816, 0.9722556402827515, 0.8089546292787112, 0.8228667190501502, 0.3965111409530997, 0.21891778563745656, 0.13706461948658555, 0.4930115559366377, 0.08061879901104274, 0.9723893757331308, 0.09685347646885045, 0.35444636370166327, 0.054297663446587596, 0.2747322224417924, 0.24392971152181964, 0.18653707247554163, 0.6059851654730029, 0.6831785302075528, 0.36331807826529416, 0.911774786154115, 0.24997575428215468, 0.6786094473828951, 0.6104874988450785, 0.3031168390839635, 0.410700724383396, 0.5441503499168883, 0.6307108716552837, 0.7790601468219183, 0.697505254353997, 0.9685361200100565, 0.2817021433162583, 0.11693715636983493, 0.5124421281724756, 0.5381636229756999, 0.2826808604940013, 0.06584110328759119, 0.5204186195482896, 0.3163423828270894, 0.3494352418870309, 0.875103991061865, 0.008370670187697438, 0.042207344779274125, 0.06946350667391499, 0.7652448085238555, 0.8849312566549212, 0.21916084245243994, 0.12139915967065251, 0.6864097172319, 0.9174864218121146, 0.707314017888608, 0.46782580051186906, 0.449272860553954, 0.6218540956306559, 0.4832808027986517, 0.6734352802484965, 0.09801798837998055, 0.7656392694188594, 0.5803233074672121, 0.016925723804065762, 0.4280916359177751, 0.759272753065939, 0.3546974115594703, 0.9730373850561599, 0.2938207533589179, 0.4717204342156366, 0.760910396938359, 0.2651220337342728, 0.5942567905334719, 0.6481821197668466, 0.2895714547071302, 0.26823150371057913, 0.5449562468235388, 0.520914828762417, 0.5824006220574875, 0.6943794810741687, 0.5902701522923899, 0.28597743896497085, 0.6906386637349428, 0.41787531512303433, 0.38227786476971226, 0.5300921568839477, 0.2857412596573464, 0.6242493428037001, 0.15299829554197697, 0.8562897909007144, 0.16292018821779197, 0.5840137481432885, 0.0402405580781926, 0.23787132538690514, 0.02776599953972303, 0.11692608239388758, 0.288342139829152, 0.6706689963111256, 0.2839947727752087, 0.7475480285762276, 0.03851000884593336, 0.10153799408455466, 0.14982167863718432, 0.3834776944894259, 0.1975377435113611, 0.6118508790784729, 0.9680924500451281, 0.46467210253689606, 0.09010588274027209, 0.6136328993397414, 0.25988950283817835, 0.38455137915690174, 0.9271848868044517, 0.22389518132293573, 0.04571433156010063, 0.4132690224056872, 0.8095602899860317, 0.2004302755831857, 0.8245073000661697, 0.4025263860553472, 0.4360528711995313, 0.7644179539602122, 0.5282084404936749, 0.7836857694796493, 0.5285920916618999, 0.32404378742603523, 0.07969461980030712, 0.43825279850385856, 0.3910540496216194, 0.18601781392486605, 0.23184017385286504, 0.2023338017648867, 0.7205492578820715, 0.46163607994538014, 0.10564143426524919, 0.8560466828351337, 0.18314823447283957, 0.8790698403280611, 0.7235404635750523, 0.5700427190537816, 0.663288944624978, 0.20529307657969187, 0.025872315445884086, 0.26585233191055013, 0.49916586962692366, 0.7745665262881396, 0.9627762879628154, 0.2063350190884421, 0.6834666446671213, 0.47480586450535844, 0.28448716214382685, 0.18825684592312497, 0.8325226059057012, 0.6286561310639678, 0.1087577996666701, 0.6207378740918625, 0.4104288522350794, 0.4108005415293736, 0.9696660955122183, 0.11915598038634478, 0.8193173491910225, 0.2746599332463444, 0.6098656218024554, 0.9292887066073673, 0.6142569905538732, 0.05766198666724043, 0.2891271226686991, 0.7332286872225152, 0.8408570347410926, 0.12660806202788155, 0.5489109956266367, 0.07599553849100638, 0.9426092890379096, 0.24765591006824883, 0.08682472760964643, 0.3047969726136577, 0.1583511693504679, 0.010906917670314709, 0.25896069702163316, 0.944522556205986, 0.06234151012262623, 0.07594537970249937, 0.16105869616486723, 0.45356629802200643, 0.6374632663710944, 0.3001914280312634, 0.3597821367694215, 0.8925621967245283, 0.5858933471277528, 0.07241246235730059, 0.5227573031421745, 0.826769449555715, 0.6226000232785439, 0.5007372389529805, 0.6254709820295706, 0.923561320563299, 0.5797200818087839, 0.11245274382307002, 0.8040764735441351, 0.03714647611264532, 0.05933763519542601, 0.6553880446377699, 0.9868084819068811, 0.846601969915844, 0.9912595685257292, 0.5411967110606196, 0.3194458019544081, 0.28503696973115, 0.940558947933651, 0.015463034936463949, 0.9542894277531666, 0.02249221602169349, 0.3513696995287743, 0.3965583453713156, 0.6480682314401847, 0.04238822866653824, 0.09266875642374328, 0.7134561008482744, 0.7814274812633255, 0.09770666780296278, 0.8599989901279588, 0.971347798540542, 0.5212471557348936, 0.31747991512880813, 0.1450807372463252, 0.65117620072487, 0.9083013925754693, 0.4222592379453515, 0.6905458283758098, 0.01975954713367367, 0.3018825082636548, 0.3989451876225656, 0.033855521484832285, 0.25926813158625406, 0.5400023479033437, 0.7352796709581246, 0.2863491137150781, 0.3993791960463924, 0.26115064828523893, 0.3261317553000693, 0.41279615227638355, 0.09280822785115939, 0.39962864076829185, 0.0691091881928031, 0.1099761175200129, 0.37020732327571115, 0.47322203903962057, 0.6020481442203578, 0.2913197256907183, 0.8480503658447193, 0.8369212226762754, 0.2159265533102135, 0.2040596933892561, 0.06270244678302228, 0.30482629522564386, 0.30300441826102287, 0.10545107458851533, 0.9884500735278379, 0.8224121625418398, 0.9606029349645083, 0.8137241016430465, 0.12256305862616801, 0.3994648845872275, 0.13611055611209455, 0.3738234989638656, 0.42328184892804965, 0.9544277910360667, 0.8602725531268285, 0.708119222125779, 0.5581734247006436, 0.6308586413059186, 0.060826386546066535, 0.621321063968908, 0.8521662217677738, 0.4581651056279984, 0.29113686416864226, 0.36072087688611665, 0.04325286466960776, 0.5830232688027613, 0.36606945453901496, 0.31953469940448864, 0.4914081079298772, 0.6417067214650192, 0.8435793516150908, 0.41203235803708327, 0.4704391766670645, 0.7394040219384242, 0.13060880814567233, 0.17040717390092686, 0.07174560642273808, 0.6625377359225677, 0.6025236807306683, 0.8800347546510215, 0.8617598458907858, 0.8344530020929027, 0.34794343617049683, 0.012617908061536953, 0.24343754932350425, 0.5029522917900464, 0.5709632194339286, 0.13859388237834847, 0.6036266706759434, 0.6385922161244988, 0.08416762540551215, 0.9756385479332002, 0.02840231297593976, 0.18962846029883196, 0.7663379017587776, 0.33597121615285286, 0.21157564433012366, 0.681081775586533, 0.9639938724568192, 0.04278878227784799, 0.10497675111970428, 0.2044066673074052, 0.7811112368170888, 0.7592405724946069, 0.9022518225287105, 0.8772158453470777, 0.6456587085569585, 0.7197790789091134, 0.3039208514116106, 0.5019971797043902, 0.8450484251992039, 0.31052008957605826, 0.9093877796634839, 0.5703807373291514, 0.8825570205508473, 0.9302426324219213, 0.5410206187846938, 0.02754354153544869, 0.3058589283856108, 0.9262969126813804, 0.8178829845848371, 0.47457588199265455, 0.5186260420566258, 0.24145499687714422, 0.03303822455616745, 0.3348919328070018, 0.3556239273348505, 0.7599882333173726, 0.31110488751399223, 0.3117440864080102, 0.16944818831864428, 0.6417638090268055, 0.23236349580680038, 0.34587506485912056, 0.971536990155157, 0.3940709548855814, 0.318828670016601, 0.0648933258955775, 0.6832368804711757, 0.7001761872175356, 0.8929530106971526, 0.6065172313437823, 0.7909968577662695, 0.11683051975031034, 0.7070988588976426, 0.8471864001611398, 0.11578590196345606, 0.3780528252661348, 0.9625045931257172, 0.638938863378801, 0.8233951066669498, 0.8385351425218545, 0.7824515461131216, 0.5263191463937491, 0.8028713395585221, 0.5625443352568897, 0.9872417926766145, 0.3681408361637485, 0.8846904840847047, 0.26192715803387, 0.7632130339005606, 0.6292201295843374, 0.8353086549751415, 0.43072615273592507, 0.6299852117578107, 0.07623559606686936, 0.9200085390206806, 0.7842562196034487, 0.1959979896446249, 0.016376131571457675, 0.28265288649826603, 0.6861428381734898, 0.7076968226853629, 0.7119703873874031, 0.5306741901401327, 0.4220208590103546, 0.7947033412160596, 0.5151485053643317, 0.3972058702127157, 0.05462822465266903, 0.9877359986860426, 0.8798662117666064, 0.5505568449033837, 0.40553513014245557, 0.5858695579179326, 0.08895043292653859, 0.6099264183012664, 0.008441314642171793, 0.9760493177766492, 0.9613678249547101, 0.9441676049064263, 0.8214246003169379, 0.15584451755630535, 0.48076835271245866, 0.6035024949020215, 0.37612498047889287, 0.5799200401584894, 0.302084172353971, 0.9265083065612753, 0.29098565888689487, 0.24602687393655698, 0.17426263173097645, 0.7501661287022459, 0.41162147864955323, 0.3868646027379613, 0.1256639886534533, 0.3813662077911856, 0.9778206599687802, 0.45455850729819236, 0.1053539762985487, 0.3862350707804897, 0.9920370708143132, 0.9459078484251585, 0.4436734813563835, 0.8830642404597325, 0.10166965940626216, 0.4025768580854986, 0.7772630634910311, 0.12323142023199984, 0.45824203964740673, 0.23243528127384294, 0.6578826604427969, 0.3765290956320032, 0.1199617226242986, 0.22675296032919734, 0.5968539305969898, 0.4005983511468866, 0.715752364949822, 0.3128140640026855, 0.4494720523772502, 0.419991467540507, 0.2731538167729105, 0.502086594317894, 0.3094183489498403, 0.7552780010454833, 0.8805577295149887, 0.902189146147546, 0.742954772014594, 0.9781813303477034, 0.6363166483167275, 0.3725438257403427, 0.5120983390279673, 0.9872115141031088, 0.790564840505096, 0.16139999953510809, 0.5981465436960732, 0.48790510653037156, 0.22935582142949718, 0.07371614277372229, 0.19509813591282787, 0.1840965142883928, 0.20431153425451687, 0.4969302291390366, 0.959140169330124, 0.2683435899702894, 0.9031893362312581, 0.3687029098463134, 0.03620141355461626, 0.38881221139540645, 0.6753349209801678, 0.41152602910201375, 0.0052301830419607676, 0.2863106714133702, 0.9992699446336895, 0.5659708014679586, 0.8456850748575278, 0.7421248690482918, 0.5586035143499297, 0.8794148465102803, 0.45707397600309463, 0.5541658388396462, 0.16386096814897566, 0.6592858371803196, 0.6564806733580074, 0.8010196200791545, 0.6279639188224753, 0.2031856641673151, 0.6458557703550399, 0.9151545829474347, 0.8769786758299422, 0.6799180659849733, 0.6904471817906085, 0.23228805280446052, 0.6000224856943689, 0.3033046816911986, 0.715991163634202, 0.32302123066508803, 0.5859542166483501, 0.5390683057467652, 0.6875983398917556, 0.37324507167224097, 0.8686317365735977, 0.5818381906408095, 0.7710230038037504, 0.8764752631082748, 0.515242166767882, 0.12610688056788477, 0.3145630456262617, 0.13012984233586966, 0.7414249298066473, 0.815210289604652, 0.90905210927758, 0.40423585066392786, 0.142438698726981, 0.59167598593775, 0.6689854076381082, 0.3206711453776283, 0.7272396974165417, 0.8345578978997291, 0.07672547710487265, 0.6434193235607697, 0.3087203445341079, 0.651369014143892, 0.46951534551298835, 0.30502054553689417, 0.8437561055455536, 0.7924896011797614, 0.3664547599672989, 0.8317041294688604, 0.9665712425143648, 0.0528305184676503, 0.42771418724822874, 0.5206491406449003, 0.12193005095900578, 0.4697342463508719, 0.09725307745032208, 0.35966530333572944, 0.7915871678529378, 0.21241115265506227, 0.5366875174680859, 0.25023860092547445, 0.421005615630762, 0.4256991973898384, 0.6986680430026889, 0.4710757414192256, 0.9811204098637973, 0.2583935201252616, 0.9095401812853682, 0.6937367869104578, 0.37541234022892944, 0.12262670586598434, 0.994332061313041, 0.7990247671002593, 0.10245145295586389, 0.08550967457652403, 0.10042039847600326, 0.40650226458438943, 0.3226490169437305, 0.7383812349137626, 0.5422736648704087, 0.2049997570656822, 0.9508231734138662, 0.5776571135926977, 0.9805809124988424, 0.5965730283331564, 0.18099114349409262, 0.5201657020789454, 0.3114135281665332, 0.7884053455933022, 0.21162100753327995, 0.6096628526066536, 0.7786818515772684, 0.6306164268422206, 0.6526082550782316, 0.023776793523503148, 0.727388103720703, 0.9474420794921771, 0.003255341526218092, 0.21311983991759342, 0.2854201373436912, 0.025128788509482858, 0.3997306435338569, 0.12942599790128517, 0.4193927666504138, 0.13846417764974062, 0.9002683982969045, 0.4192267650843825, 0.10688797317660048, 0.8968779315227644, 0.09357801381969166, 0.593435488229436, 0.1615617507037027, 0.3969104868778146, 0.2058168097911255, 0.8300275718594782, 0.7133536924772892, 0.8099949020241295, 0.5971023657788384, 0.5047962655945608, 0.4948308954480757, 0.7002644892137885, 0.6456106033965258, 0.3756926613839967, 0.4182245496265845, 0.37524631154075816, 0.4190639562169405, 0.7083014940847334, 0.4869688244503334, 0.1829384027232731, 0.05683992393624493, 0.6721339534854102, 0.5140657078896878, 0.0009040149477490544, 0.7280619391959026, 0.3712765579804925, 0.3807863333053648, 0.06030370411166375, 0.7489312687602148, 0.13619860548171914, 0.30491461196827496, 0.15709812233775566, 0.7427612714485209, 0.4200114750902272, 0.47452414939913423, 0.42721054046010754, 0.512269991709128, 0.7839968756026318, 0.5189604172493596, 0.9678649031766825, 0.7694430117038082, 0.9661851659130114, 0.11724320877673322, 0.16555987123424643, 0.7659982845287457, 0.8397851933122642, 0.8308141524759082, 0.974514522674073, 0.5888823552385681, 0.6015497511834978, 0.33766940452199956, 0.5172169007025784, 0.1151684664937851, 0.09917792697238204, 0.5060481494154199, 0.6207034439235293, 0.3015730812304874, 0.7350401881896099, 0.8745082574081339, 0.12569113600408566, 0.33003765531415297, 0.9538674588418777, 0.16196141155248933, 0.9713885889181488, 0.8649598840900669, 0.8189622870992674, 0.5981536968459639, 0.3375690293755511, 0.15780833091803836, 0.4688922374638951, 0.6809653067294745, 0.8099489346942302, 0.9397818624567011, 0.2208160269515801, 0.13731709291694183, 0.03399745247583141, 0.007770520790769564, 0.0136079750537067, 0.08667409124482761, 0.5404703786188497, 0.5275884784108503, 0.6220797998515979, 0.8949268584833554, 0.06220240112376141, 0.4547565499702113, 0.5616755944201894, 0.456214811192033, 0.14549587585697776, 0.15705333126784715, 0.8513521876352311, 0.8555707570987535, 0.6777777182584442, 0.5753792445417174, 0.8092710122108979, 0.43039805717631474, 0.10813170001182448, 0.4061835414413786, 0.7620290676832067, 0.9710955949401937, 0.848538152922535, 0.4388449636077072, 0.07822048979791274, 0.007685888257720652, 0.032468281577470615, 0.04676620436150869, 0.7547309136235593, 0.8557161437216616, 0.2578097946169817, 0.4414396192494072, 0.40608624202104315, 0.14065329873717702, 0.19644810328555762, 0.7695470456140437, 0.13664420438195413, 0.9931986787283871, 0.9715427572974837, 0.9915401647749037, 0.45657463234448803, 0.26859395150418963, 0.28062277894225207, 0.7828418607966642, 0.8739985683364804, 0.08575203567051937, 0.41551736379629955, 0.6065216383819657, 0.06172263793491739, 0.17010506879235443, 0.8864487706687101, 0.6171103631418245, 0.7628600111470007, 0.210788208367501, 0.5956951636240592, 0.5256402517039437, 0.04064796753551947, 0.6579871047194946, 0.3968511365349989, 0.6603727903769271, 0.006700832888891561, 0.5821682715045241, 0.22546133794562584, 0.734471981011275, 0.5390135191250676, 0.5775081355839604, 0.38847698857575796, 0.8453847336741982, 0.4658590048775938, 0.941477806709561, 0.2975637512420789, 0.5945939092960826, 0.4070850205548726, 0.8249067365327899, 0.365635140634358, 0.1403827626894042, 0.45392877256083153, 0.9623768954201665, 0.24757332720679925, 0.5574796800533819, 0.736642339096794, 0.72489895136655, 0.7478504406583955, 0.4001746826211111, 0.28816400083168947, 0.18556235721551018, 0.23141442594983586, 0.3790518688428455, 0.9732520483918374, 0.25647077127159446, 0.2224949006171092, 0.2831329493595981, 0.011121202826457122, 0.6181425590910106, 0.43467899935186194, 0.9187154389042755, 0.17237356356419375, 0.18633908703966862, 0.4458063841849417, 0.3912464854881712, 0.1799738696676394, 0.425829975954919, 0.939064828155414, 0.13128887350533702, 0.9652928261801049, 0.3915637445603185, 0.3649603875072934, 0.7271590688509747, 0.13534767083588983, 0.08817532104193404, 0.9364372076271191, 0.18814363443177118, 0.727429761686807, 0.9932277290945939, 0.8204972337366694, 0.6334548375315132, 0.628648558317215, 0.6263936559908078, 0.7832969276419149, 0.8028167340995543, 0.045674747125095005, 0.7943958091580005, 0.30107941329116483, 0.12030684478676545, 0.8668632578967099, 0.3626401220761749, 0.07416698248426812, 0.5871969658905604, 0.6456015981458945, 0.813032797809856, 0.6463180884774861, 0.7425872273440208, 0.8178583750516089, 0.547200975814759, 0.6297972581993809, 0.6253475045992721, 0.8544965868004621, 0.040157587010636986, 0.022012759569749574, 0.5641656956003043, 0.8060041308551817, 0.15623669049953204, 0.7650688260591991, 0.9561747603815457, 0.9936242403254489, 0.17832816620466918, 0.5425655964854472, 0.006858244863806817, 0.6331805004320914, 0.4377186829104204, 0.9432754160853529, 0.8283466290492493, 0.1611242045057537, 0.7127304224124086, 0.2656178802989031, 0.10526616849523729, 0.003916817073540968, 0.36758966750883704, 0.16178653008055832, 0.205410845759337, 0.34398519008443884, 0.03173678051946971, 0.9685580908102037, 0.11752290040258584, 0.20097463649952418, 0.01699043671132916, 0.8259350267817422, 0.4270421810657322, 0.002046184804222584, 0.2893358209362099, 0.4032794151614779, 0.1551112824129457, 0.8879493926574799, 0.8828050518790767, 0.3910640017637924, 0.28207238476046215, 0.1453512595691372, 0.6329104504723897, 0.9356594893434306, 0.8830201378973107, 0.32787900254361746, 0.7524218897758113, 0.3021357790059974, 0.18880418288444234, 0.8252838539655625, 0.5677734267472772, 0.29468100398338315, 0.6644797868172837, 0.2345284390740826, 0.7833541222696632, 0.4622428710965072, 0.8180356085413665, 0.12176541112976969, 0.584843100502246, 0.2076456133040948, 0.43119125370999967, 0.028992135873369018, 0.8390508629446168, 0.30494489048984996, 0.6280335683239568, 0.05307911693569578, 0.8573102056913785, 0.6401741471794711, 0.27379230359133766, 0.645161117163579, 0.9104097310863962, 0.3315222698376239, 0.5311818367945779, 0.8652131787064083, 0.05266485162702483, 0.9801456049196392, 0.8704025678050438, 0.4548102891048551, 0.7721429272543505, 0.3241649064877178, 0.31469187001564736, 0.26334638977412717, 0.03186660049441992, 0.8468763130656728, 0.19742761055665636, 0.34570779894698056, 0.6323455327655063, 0.6875167796567199, 0.12259887929079005, 0.0363323122402297, 0.939543188238221, 0.5489445325725613, 0.3518013616113064, 0.14453563213451215, 0.5645100414748986, 0.2060199151787191, 0.28922738636034717, 0.5886677026646538, 0.6672156439868581, 0.8099904763954191, 0.9395220274019341, 0.31919505562810946, 0.5667026842767869, 0.19415684121677623, 0.4903622602229071, 0.5434191206814979, 0.39852215448310746, 0.7065311902984609, 0.6081023293754982, 0.3592801531792621, 0.12116546645226811, 0.5914790317147564, 0.26251860772831725, 0.14464917158931845, 0.5297961258930557, 0.6478751446227324, 0.3604381026258262, 0.4107232060499867, 0.3953008268223248, 0.5323642799386871, 0.9563146192752506, 0.7587602314961697, 0.00027251187538357424, 0.121153316398938, 0.9594212052512119, 0.22759321662521337, 0.4565702003992079, 0.6702201922004807, 0.36616708105055973, 0.991695561201666, 0.6951684959011308, 0.6190500620335893, 0.21584536965123813, 0.9312075516725733, 0.15601909764491273, 0.5179008075031754, 0.8255063490752199, 0.13494994051878462, 0.9642310090290442, 0.8272333261653693, 0.6366021917962937, 0.6272395345063634, 0.3602636410876908, 0.940511749873045, 0.0009212294184705039, 0.4377848361798714, 0.02176286603887012, 0.7769672962061562, 0.782387956693346, 0.46341576437396803, 0.656171249198167, 0.885971474612103, 0.7242765021053905, 0.08290761159813875, 0.06457500605283284, 0.15185945222172026, 0.08498716445225962, 0.14438083935346202, 0.04711043670053583, 0.6778996368590091, 0.12432456118167912, 0.7563736054661448, 0.873973499785114, 0.1555684810832395, 0.34224996347013026, 0.36172841570411396, 0.972676126220914, 0.49547019565160233, 0.4529244105540434, 0.9962839176328748, 0.800125119953785, 0.1738920376037768, 0.18284623538536637, 0.7190213390838295, 0.06399111697888138, 0.43131888124822604, 0.3345685233817419, 0.6918408961440536, 0.09191401030276525, 0.6094467690319858, 0.3155152765543553, 0.8511304133976706, 0.3775476493148492, 0.37718085648958466, 0.5018890912409433, 0.2716755222971863, 0.9214684748828923, 0.8989643462692504, 0.4649826286370933, 0.11209393856729333, 0.22266178357086241, 0.7288050076897057, 0.44885240894498246, 0.036118231365422915, 0.8853099398791242, 0.30371015324266315, 0.6325498537175843, 0.9268946284372944, 0.574772224567346, 0.9628607169992635, 0.8551770482833655, 0.008154746481042974, 0.7077596087419412, 0.7718971969298235, 0.17830719702486064, 0.8533683250297552, 0.30414568345346915, 0.07114972057433411, 0.2633680005183603, 0.23447101218581512, 0.6559142128080728, 0.3462490453925803, 0.2572834998233635, 0.934642244682551, 0.19259723052883282, 0.25112809867144714, 0.719306929764853, 0.046652277704817946, 0.8048231508977957, 0.4035945094394259, 0.754843016228095, 0.44265447223390053, 0.24163832945686836, 0.3508978652304121, 0.9487337341165799, 0.19954028994243, 0.7753665058367634, 0.1261038361438086, 0.83914023410398, 0.40628145534635696, 0.8904822604676276, 0.2052272748293289, 0.46178436950453083, 0.591897140583733, 0.03771394287310881, 0.34487766607126213, 0.41897458442963253, 0.9070545816314942, 0.5885735157093085, 0.030665400969038248, 0.5685906497268208, 0.25636706329293135, 0.16236531729561277, 0.3672592843529242, 0.26167612287900055, 0.9198553184427375, 0.5501237881758122, 0.9076478851904309, 0.7175677146126508, 0.6348659851182928, 0.738882198702744, 0.053165947486076504, 0.07685485583976492, 0.4170544035053654, 0.7530172238532147, 0.3824441052690454, 0.13183659456583174, 0.6946075275422765, 0.5961802083489254, 0.0692154179454898, 0.28199758977763356, 0.31683855437220854, 0.538331444827026, 0.8005022089671784, 0.6995404503460174, 0.2876084865438928, 0.6803895260833673, 0.9614047085146076, 0.4217842196495911, 0.7451619152592427, 0.022636969868852996, 0.09071007475742177, 0.8257945290556595, 0.8672837704089812, 0.9135872070709495, 0.4681264936047449, 0.5697319106939637, 0.6892971196577914, 0.8251242176940218, 0.24268165740736847, 0.08918571417302146, 0.40770710749949846, 0.00887880468457436, 0.22222523143189055, 0.08802297896712996, 0.04229681129423801, 0.27951120411954833, 0.3764968275482389, 0.7686805463597162, 0.4401306364653953, 0.4573791871848498, 0.9550081226207489, 0.7591288480403849, 0.4915536774744538, 0.205604153132955, 0.134868882715783, 0.48918377446252714, 0.7090594014668168, 0.6843626683545188, 0.08242553746318204, 0.4642178367053419, 0.23937677032495597, 0.7309833110928308, 0.6956405719072711, 0.8535413315180679, 0.5446728940069856, 0.08533491880607769, 0.3944004625683343, 0.7994991032172084, 0.2164477184644662, 0.7135783586336566, 0.4884831950340768, 0.08373053917017537, 0.5917610478476284, 0.6674922873440412, 0.35014975370696755, 0.49517124851287797, 0.6613573248279636, 0.3802171804990466, 0.11391385038906288, 0.8544333398683165, 0.8983031966127826, 0.6680778169363261, 0.23296680235267564, 0.7980421992414213, 0.513600541684651, 0.525730009757563, 0.37865528098107526, 0.7443857543743437, 0.32898043690749845, 0.9267339237232587, 0.3916316623498167, 0.21583244809116986, 0.6108933063764448, 0.12190382848315895, 0.05795075615419576, 0.18585339493384467, 0.4265454993211716, 0.7841012401338366, 0.33272396587502584, 0.8534312979592312, 0.6009275803559111, 0.23578725703009518, 0.8324782123117312, 0.7826363192089726, 0.36174336024410503, 0.46230743039848843, 0.47376876037061144, 0.3678668010995072, 0.4017431618223575, 0.07840386621932616, 0.9279892070050552, 0.42793000217781685, 0.9587557377816119, 0.5263942942488995, 0.22350792178613854, 0.052445741452695316, 0.9908397138466685, 0.2500980404942075, 0.6829265211588706, 0.11852451787498941, 0.3013589198082067, 0.8329930182716929, 0.760481752519026, 0.9505592437525293, 0.08324982179541662, 0.8163606057049256, 0.4311119312995815, 0.0023911672020161534, 0.5746291987093409, 0.22315561753963054, 0.5084757985483405, 0.9426895664145185, 0.3709217647432501, 0.5826098985446154, 0.23198610325080737, 0.943977046006374, 0.47921249737199123, 0.4412200057857809, 0.9476458707861092, 0.045738384280730515, 0.7440122966208216, 0.5587358512482475, 0.6867640944542505, 0.5441339218722309, 0.22356366387145854, 0.7911120734356646, 0.3726953927021709, 0.018267589919367833, 0.04969670279331795, 0.30194420494378316, 0.7617935659252226, 0.03786146595146933, 0.8032907384522256, 0.5148928437192715, 0.026497693642896003, 0.7562626268164586, 0.24084937566731512, 0.9900162673871896, 0.5770596352891295, 0.37977057043713136, 0.8054207224094382, 0.6449681468487811, 0.47661518558967464, 0.6054630496227391, 0.8585937854748453, 0.010922473849501069, 0.8801276229682918, 0.3842900661568762, 0.302059066968726, 0.5282769570892245, 0.35696922171147905, 0.45964440944787543, 0.43105541008311343, 0.266541068882056, 0.1773350480081508, 0.625605513254196, 0.07627923477584031, 0.35297661206462905, 0.06399992814421374, 0.8012573029771279, 0.5988537160717968, 0.775179820309573, 0.7868373451818418, 0.5288757403368023, 0.6927594213461519, 0.9076439953515621, 0.7746089955402077, 0.47985422368325525, 0.5547764500676566, 0.7754494052083825, 0.7423050553637645, 0.8712909935000541, 0.4295708781702815, 0.9914003267663137, 0.5892289698919039, 0.07275209414974826, 0.26120918587482855, 0.1569674079759794, 0.7865373097173526, 0.4572516078945914, 0.6816153429914849, 0.4239542214959864, 0.891339465192573, 0.9220303240191849, 0.8704793332059096, 0.8311150077207858, 0.6768975025540995, 0.40411864967994826, 0.9459818123797102, 0.8453923354042879, 0.05854081503333863, 0.1558983828448729, 0.5223476813940962, 0.802904691532934, 0.3459328047581237, 0.23543281492526158, 0.17112892107419742, 0.09439383621100295, 0.015444498324765465, 0.9349297310812379, 0.3205826664760323, 0.7639851607294579, 0.904151529210235, 0.43898243616850585, 0.8224805696304519, 0.6096093745024677, 0.07622355975099515, 0.6860819926917638, 0.32974242461211856, 0.2632632314535682, 0.7772794526938429, 0.20396662442736302, 0.05717543744910236, 0.9521053962218727, 0.819668916988034, 0.009412243942937826, 0.674833232923555, 0.5595359880184179, 0.08426763215952948, 0.1845440135798554, 0.17549086921303902, 0.5671045939097512, 0.6947564656008464, 0.935433974251328, 0.06876677844106338, 0.716142997612416, 0.8335624602169247, 0.751900542744193, 0.21008292822787822, 0.5314087389791223, 0.9539426568404354, 0.49432460498496733, 0.7662805473894664, 0.12067300248409352, 0.9490060225911943, 0.38129757160028743, 0.3304637622494121, 0.6923925118449249, 0.6763837818953047, 0.31376603445089246, 0.5500136363506121, 0.9695662573635561, 0.7969621201873063, 0.6622009734643651, 0.9208935437033601, 0.6345354077323916, 0.5539869805621622, 0.8271605574226225, 0.8381378777363601, 0.6482903130871641, 0.9121341296999985, 0.01877471354184357, 0.04333833299240708, 0.29663301105482776, 0.7826167619606251, 0.6260000064979128, 0.022931176394607178, 0.4702176111712024, 0.34464613773622854, 0.5622233704239853, 0.9308045897435863, 0.17052869748875965, 0.5380218062477551, 0.8575389690788897, 0.16184626778171896, 0.19261265882286527, 0.415940048096498, 0.10152831619720848, 0.2557631049165596, 0.5248283755391164, 0.5727453970128159, 0.8788143445646042, 0.2959781503580521, 0.43549633487840866, 0.3609061940005751, 0.1909449912841873, 0.5392619410749471, 0.9567071103280261, 0.30935584991961085, 0.6105278507130479, 0.11064377140205917, 0.31109553996540673, 0.04125403009092443, 0.34873047660954803, 0.16387727336452274, 0.4483096419197691, 0.35998169886965325, 0.8856564503011035, 0.6129385575064529, }; float ret[8 * 24 * 24 * 1] = { 0.5062321930371455, 0.32798915578871457, 0.5961646765278394, 0.8617070783970479, 0.5119373011648897, 0.048024524076240915, 0.23214736441672879, 0.022538554986683446, 0.6778444052900103, 0.15032959905073096, 0.5500250141965424, 0.17113763529559678, 0.656904861049231, 0.19596667507728938, 0.368244176122847, 0.8691059710553981, 0.8464938643825788, 0.4477211400459462, 0.5681620999676735, 0.5442100896841062, 0.45368229567875673, 0.32546382920612726, 0.18083321574168632, 0.1750322980444311, 0.6315210221145376, 0.291527227581442, 0.05240995759120004, 0.24235809909562644, 0.5248510042885183, 0.8444330870217652, 0.06953102068444816, 0.5862038697632712, 0.8055402660428673, 0.32368384028646024, 0.8548542644341387, 0.21770747056725892, 0.3311304238509687, 0.2913804661242798, 0.5967050302041854, 0.6869036787651093, 0.6298993086675535, 0.5342681029051217, 0.3675795216292139, 0.1750638889243652, 0.1964814553063049, 0.6605207614470802, 0.7789210272606384, 0.7780470338595302, 0.7160454591867403, 0.6301114551776474, 0.10752566733413593, 0.673119869792655, 0.9373805013424287, 0.9178365192390866, 0.6325325250871165, 0.4247316161331426, 0.3801992968018262, 0.8945772418220316, 0.7875543669721298, 0.8539699115784273, 0.2777908194509292, 0.05650104741824036, 0.831507030885315, 0.585983808212166, 0.9408480852535616, 0.949221458223217, 0.6494317804282785, 0.22667549478928184, 0.9867749341169173, 0.3449374672076423, 0.009603964019212485, 0.2966442120522559, 0.9140488516957659, 0.15654966719968966, 0.5479895146896403, 0.27964020188818406, 0.5875175857991517, 0.7674359344871401, 0.2662078550688938, 0.601592864568559, 0.6298513101287228, 0.0007956317020597625, 0.447670613189198, 0.30214703733479853, 0.7095682335989801, 0.19776718502242907, 0.42373907375609765, 0.9964465820586225, 0.5657844698280747, 0.9185125060473368, 0.48818414990794645, 0.697598606946429, 0.23424318111262687, 0.011707822252632338, 0.7337824717352953, 0.5484898408514123, 0.9929544517415723, 0.6792158760625665, 0.7816028696554761, 0.2405083444025402, 0.9948803917035984, 0.49246398759410004, 0.5942569141797983, 0.7385481148993642, 0.4338463026994005, 0.5692156943634276, 0.5157300177718895, 0.9788902748230957, 0.06944950117329118, 0.7440570791479629, 0.20611744118485498, 0.829837881152689, 0.8641965625879906, 0.3754093562128916, 0.5140923803643517, 0.01318160757340514, 0.38912810288926725, 0.7269493917324703, 0.9667767963135668, 0.5146438339988334, 0.1746242957861096, 0.22260117687528302, 0.5147147658513315, 0.5133063050966878, 0.6037766881886195, 0.3032343397374424, 0.1558403376681612, 0.19823611829999466, 0.24791261176807733, 0.06511786233551131, 0.3331160374011095, 0.8764778347789234, 0.8987904993981825, 0.8850320999146167, 0.0028995817761239273, 0.6114011938310822, 0.12891905917964652, 0.08841529382295288, 0.8913889051181442, 0.4231141187500551, 0.5682157758555647, 0.407222042568696, 0.3964456887714989, 0.9083944497303571, 0.06771895423049012, 0.4659372804769496, 0.12192491449923182, 0.5590082975575247, 0.7224902246551163, 0.39659001433585184, 0.9959804799025049, 0.945510847494734, 0.5069062072334803, 0.18366862681431562, 0.6477785312377683, 0.5047962857729253, 0.12702932873653094, 0.5937694806711893, 0.41217223605167486, 0.586260286286227, 0.3920397226267349, 0.3009089562278783, 0.11545124344136348, 0.5638317723887502, 0.03331899478754563, 0.9197389199405746, 0.025063552422119995, 0.08206586723651477, 0.561096691084764, 0.32084876537534424, 0.9737123506773547, 0.5557153417628414, 0.33548532198689474, 0.32221438944414504, 0.7714228952988429, 0.227449953513027, 0.505078000677675, 0.8363531865621979, 0.9104996077916944, 0.7467391082732583, 0.6486863954134673, 0.7840496913389229, 0.8405166909749249, 0.8967567419124038, 0.013132746284066021, 0.3492828320186896, 0.2785912741702441, 0.505561232182855, 0.4916777884425205, 0.6784144755559384, 0.5602904610155944, 0.2556291571530711, 0.5058833835796643, 0.8065225079160115, 0.4146453573569093, 0.6165567410355937, 0.3812072863001894, 0.07838633522280025, 0.24554517496324435, 0.06732991743024797, 0.6172542861800441, 0.012086029165487733, 0.06664288136003349, 0.7043239742078187, 0.9123664013856383, 0.5335504894308023, 0.08698653277464463, 0.8290196080564468, 0.8834656717225267, 0.7939247877872073, 0.8884737365869878, 0.4219642380552622, 0.3534603068640917, 0.8494470631397504, 0.867447552664446, 0.7042030090952853, 0.7030967670548717, 0.3633266332102917, 0.7912923465426464, 0.2846016100557003, 0.7669181884111332, 0.1336003148255347, 0.8551305090127473, 0.6448324422438613, 0.5692776375393788, 0.6125267654644435, 0.2860188283121068, 0.49101502666954544, 0.7802334407422508, 0.621595999177262, 0.5264555414863354, 0.06256813978886833, 0.5777567913293464, 0.2185899920497919, 0.5499062346038069, 0.09727935441077395, 0.9154994096446494, 0.5410406629503918, 0.6478454956274339, 0.41913577704769356, 0.892374352838081, 0.5878433926092157, 0.9247681810220608, 0.7574161009131323, 0.40387819954296333, 0.9955865183599879, 0.6498057102561908, 0.23720161272280726, 0.864962875216823, 0.9744249317817247, 0.1185707073275365, 0.05405958997809279, 0.21350815438098536, 0.3987264207477995, 0.1901865924242161, 0.8986424402957333, 0.42756234012515826, 0.5624195702180508, 0.9532024381859805, 0.9331967234220007, 0.8326262505350779, 0.22204330543949213, 0.5683570413885555, 0.08080650468291284, 0.7404946579897478, 0.31863905911250545, 0.6545183726954837, 0.9473683813047713, 0.8142567915681516, 0.14552167710658281, 0.41939814504849826, 0.7794508592612299, 0.16005597528354443, 0.06867044382609655, 0.4633637274837288, 0.9395113600474436, 0.002398516729492317, 0.9331948896762047, 0.333821020943754, 0.0870242810975258, 0.04707664181499216, 0.890444754645273, 0.990579393015404, 0.38653468246552036, 0.8350018469307008, 0.14186236169840283, 0.5069963680419538, 0.02949034420068819, 0.9045393529914117, 0.6776465708902875, 0.5951058678362742, 0.16017357369287422, 0.06829755903301449, 0.22104222238956384, 0.5781531354968936, 0.07078049523276742, 0.7611775873389636, 0.2506638620506646, 0.23424450010646203, 0.28042226030744977, 0.4967031301230611, 0.030155802498213036, 0.8417135739779523, 0.4403787816993532, 0.3194871756596648, 0.024408552447829357, 0.2059121031814014, 0.3304385738990716, 0.5797427697765347, 0.1488101415168943, 0.07609937614156859, 0.5251133458576794, 0.38618038104356356, 0.19176610098489089, 0.9987200933842041, 0.3747523857547992, 0.7577922282660177, 0.13581872016346808, 0.41112542292513443, 0.3692939492355587, 0.9088817938289541, 0.7068660497692852, 0.06394517786397358, 0.1083252676531502, 0.1808100870922431, 0.5183031556872817, 0.35323756937224593, 0.5759670034306098, 0.12944299733834008, 0.9448739674356532, 0.8143588597980085, 0.754802608217618, 0.9916004739452933, 0.5266178440345204, 0.3778661306592547, 0.6762089130655262, 0.6609729192353024, 0.657458949700941, 0.6666661408928232, 0.5718295386522686, 0.815902395364949, 0.27572360372175064, 0.8380770893404555, 0.4430394275199342, 0.9035539285337746, 0.04305770944290821, 0.0951941872821771, 0.9609676535237013, 0.7882514248825381, 0.19512411644583338, 0.4947849919452858, 0.6098697295924015, 0.8027845561907938, 0.3133522370325581, 0.4510194566927449, 0.8428718966430689, 0.011938006691672332, 0.588867003240751, 0.6690157767048753, 0.4177212705525565, 0.24674398716514967, 0.7417180449599303, 0.1631995066554942, 0.20262693904300233, 0.2889357295845064, 0.25740925871269715, 0.6363896486385333, 0.6631190151834848, 0.20898391694798513, 0.4655689891239263, 0.223154251464165, 0.6477665820136516, 0.4813056620640841, 0.8843717058980306, 0.6943907285971115, 0.7994117260598272, 0.1978499897603565, 0.17401412776352376, 0.47091902939013897, 0.3008107310922036, 0.125356561257992, 0.3362214717360684, 0.008551259225046404, 0.39550964281789236, 0.8838122008258186, 0.33856044053751155, 0.45407795863420086, 0.4242202694122168, 0.5423685678418622, 0.558757767842896, 0.09995937937290533, 0.3246315609823286, 0.6142558040977343, 0.9805749745475485, 0.4657660405624161, 0.9279995363145068, 0.6559071400579842, 0.2666869937974796, 0.9408718356383589, 0.3545865805029773, 0.45232948292420505, 0.038505613707505826, 0.00019750497073367512, 0.8737664246958026, 0.43338860317926897, 0.9723377963347053, 0.6733478271906433, 0.8521676579248147, 0.7992002524821615, 0.7134241267734911, 0.998215305453406, 0.13173821749133452, 0.6230927805896207, 0.16597961720329535, 0.5667854438476946, 0.5600991731548618, 0.7391743889484617, 0.8706462935030473, 0.6023748393452749, 0.3939117403888631, 0.0179925828091827, 0.4629518715296074, 0.19687388319715216, 0.9137799213875131, 0.1811662494483287, 0.7822154412029618, 0.23591318340225398, 0.0073897600933453544, 0.7601835361487541, 0.04661639551634078, 0.47412956237438675, 0.8348234008595401, 0.9694614871742564, 0.0021255061100916572, 0.3294672766798996, 0.35964304759653043, 0.6252163536877482, 0.7291002031297731, 0.23755815280234072, 0.9573553281440201, 0.35208871653768337, 0.12429876607920087, 0.4238129988973137, 0.42030861325609814, 0.7668992868698534, 0.38672467591564863, 0.6167188625787685, 0.671182673030282, 0.665041879014701, 0.5979076099092636, 0.08434169920676948, 0.05820304772467022, 0.6223318283529414, 0.9319341880648322, 0.1563432403380529, 0.9138723236340262, 0.7996797512923042, 0.4900864446713954, 0.017416089288305514, 0.49040996322083463, 0.721019678050312, 0.5566481270821583, 0.9257258344448913, 0.030456107481957595, 0.9633633518879525, 0.025420652239322328, 0.7106922196820691, 0.02782056144663425, 0.5784283306561472, 0.7642952738653159, 0.49634054661506544, 0.3124518393246003, 0.2427587464131412, 0.6298184514564478, 0.7423785073124218, 0.37271871104187015, 0.2722751335358491, 0.2666776013490191, 0.5891324834913104, 0.6876742719251587, 0.7955883463128232, 0.6707296977799054, 0.9496618100588802, 0.7868528046712148, 0.7701224409391159, 0.7508487281409736, 0.013211049081081838, 0.10798949667513813, 0.8090270633430225, 0.048012855163304335, 0.09028922573374432, 0.035025503671681, 0.1919225111223416, 0.5650389680077842, 0.38354264470450605, 0.046771281245718055, 0.862924116881804, 0.9649825973770343, 0.5043943142222184, 0.8715482370863882, 0.26597899853303353, 0.8270579811608609, 0.1142848962533316, 0.4224047306507669, 0.1012610270560822, 0.8223568939055197, 0.7167013789334914, 0.9315114766412789, 0.13538563056707842, 0.1971618987154049, 0.1346229767296998, 0.7413487911805234, 0.8335779236442179, 0.5523076600264788, 0.17805699078916626, 0.9749964559656057, 0.6548616850045488, 0.6408638652632012, 0.05243142084756114, 0.41338426132755013, 0.6577911569645122, 0.5218993909847612, 0.8215042477853458, 0.26000525222244186, 0.97323011169599, 0.17753901458016086, 0.5995954962734206, 0.7072822896238021, 0.26560859373579837, 0.25711211095662156, 0.07508148094639788, 0.4665311792834703, 0.8382346611355168, 0.912159129225236, 0.18294092199868883, 0.5446560489946072, 0.7656095966972155, 0.7678502522889049, 0.015170391334308642, 0.29784029213417207, 0.8387694383482851, 0.46689527632178685, 0.36712996103456175, 0.019326900402604652, 0.3426577641914963, 0.4488032775872126, 0.12123730305165703, 0.16833207718529186, 0.0009628642460063341, 0.961297092575098, 0.6197070762250381, 0.9422212994559002, 0.46566024250211124, 0.765393556661448, 0.6389778787947291, 0.4565768368332409, 0.9670253688068792, 0.21973766319640908, 0.1670312116243018, 0.8981162893436722, 0.839205738663824, 0.7745179886765066, 0.30909292667742505, 0.04511559705068158, 0.9825690351992592, 0.004746150572906838, 0.5123475897899985, 0.80432432962385, 0.26105396874260267, 0.16816967722507736, 0.35652723083069127, 0.7015377869256973, 0.07821081337514191, 0.18523471563017568, 0.8343612489445518, 0.7959091927132941, 0.7188927625558327, 0.9287626078448632, 0.09973920754860399, 0.3463778089006021, 0.33659796153984745, 0.921845854796007, 0.00950593702181235, 0.06469285813398706, 0.25338043680754496, 0.5238467611159003, 0.3167593672722743, 0.09329128287229482, 0.6484704059568994, 0.9061324833635789, 0.48944359249477554, 0.8886033139636679, 0.5775004603975735, 0.7994597749363578, 0.2685524226371466, 0.47423484982081954, 0.9478611351812041, 0.24263144009029924, 0.453565431301858, 0.42525493803037606, 0.11490633583693022, 0.20757224400351415, 0.5868995409837178, 0.5205919982656838, 0.34503754603792125, 0.5987197103905514, 0.6868505593330014, 0.7638415147641093, 0.8267185942940226, 0.6625091189429029, 0.6693741441502425, 0.38345424336010436, 0.7081765066435062, 0.42905141236087785, 0.2328912829363069, 0.46170680700262057, 0.439085657841746, 0.48283110128008133, 0.6895936395080633, 0.915300650877659, 0.5065137439640514, 0.009253996333368542, 0.17912608340116165, 0.9877014563961273, 0.2077031505895378, 0.8852031617482035, 0.39883058097563073, 0.9280883776056293, 0.5468439956477785, 0.8348508115176584, 0.9623588674800001, 0.10797271631363137, 0.11652847794724375, 0.4006687049764782, 0.855832471124214, 0.8786977408679026, 0.7141267893561709, 0.9917530089388696, 0.5096096656188075, 0.16953365739403836, 0.7251961536843469, 0.8943385078565467, 0.8112754308812744, 0.9761274106045587, 0.9326604989238073, 0.9903928487769879, 0.269577210979857, 0.8189637058521028, 0.7381833350806415, 0.28154334423945915, 0.1250465350737835, 0.3968102520265465, 0.9604970122135507, 0.9722187833692912, 0.4243054458397719, 0.9403312613720402, 0.8703241311060701, 0.6089211633348707, 0.5345658877440552, 0.5130240560137153, 0.5368930457625992, 0.06336696382328744, 0.045978147806837844, 0.21270102297516136, 0.5183775131533372, 0.4575562226466785, 0.6969774129134045, 0.49689162515596763, 0.3039279916586811, 0.9104938758536323, 0.842826717308411, 0.9030531490528709, 0.5622318797083762, 0.8880003119744561, 0.22917815472979386, 0.8454761943337168, 0.5490186483045347, 0.8903499500434628, 0.19690296474232793, 0.4942586480451958, 0.6208256248541093, 0.793673761384259, 0.15704525492115684, 0.8064819707072164, 0.3612275689614989, 0.6409665812254784, 0.718535811027167, 0.011627527251532266, 0.18251899551078254, 0.8816150389346538, 0.5141424262186775, 0.5585514761068199, 0.08751818562303404, 0.2032257845367399, 0.30428349184187875, 0.3562439026805052, 0.9902869789914716, 0.617485694423711, 0.23085218840071986, 0.9200353993391799, 0.1438119306579585, 0.9637545013683527, 0.06926888721997271, 0.45809005417603854, 0.7797894826426551, 0.033071563699438644, 0.5346070887767089, 0.3785868582170747, 0.7792362852031324, 0.44049360572247687, 0.5655966414697406, 0.49836455834115634, 0.41982706944388515, 0.9142509416402275, 0.8055104920505853, 0.7882368863968197, 0.7861541561206552, 0.8750002361453983, 0.3141872249221326, 0.6297863342928883, 0.13752402310502843, 0.8408271137857017, 0.20203166178667864, 0.6132166149173786, 0.00565266221263494, 0.4346366940226415, 0.5750892505021086, 0.7484967824901719, 0.554368174682661, 0.6462518960809419, 0.7575408699684905, 0.8304301645939067, 0.14686776200689766, 0.01775895453516141, 0.20381742085491494, 0.5374100389215499, 0.3543295568618047, 0.881281278910346, 0.7387949907094862, 0.6532668366398822, 0.35871434741569874, 0.34577990378538315, 0.7511426552642608, 0.1749342021093535, 0.44179651111839446, 0.3183243633827524, 0.8952139313460276, 0.550987565451777, 0.11245280703451577, 0.29603527735935475, 0.0024376097979692535, 0.5580957824575782, 0.6785730314640288, 0.6989604199143635, 0.9280856338597502, 0.8528138190991756, 0.8155971681047525, 0.19627454847903825, 0.23483652834817348, 0.9749127497086097, 0.9952437850116509, 0.39823054819356907, 0.3902382135861282, 0.9436877000327134, 0.7855667825786122, 0.8211945319467171, 0.9350703325513966, 0.022807010966559904, 0.5701088951610942, 0.21262277387562822, 0.182285558875648, 0.5457926090191436, 0.0022151330954638393, 0.9380139047727055, 0.8430496283743121, 0.1022224243661769, 0.29636066130596317, 0.9479549160834284, 0.8250427156664355, 0.25458526111733715, 0.6582997945231689, 0.24489199861326638, 0.7480060827586592, 0.16758586360820604, 0.675393772428663, 0.08917020068830872, 0.49411868825207117, 0.9293064155184508, 0.04710616624830932, 0.9032842176572544, 0.7887575986187616, 0.45685702914654747, 0.4652494433853783, 0.08590753836423537, 0.8677926147593354, 0.9757594778331132, 0.03326488446691034, 0.09080413307553958, 0.2677322617144291, 0.003004139162062991, 0.37075805819564844, 0.5619563194408237, 0.5326269575702928, 0.34340862047732745, 0.9016417148983238, 0.1816640209011503, 0.3079844132700572, 0.697831111602062, 0.15550348544202108, 0.08709128824924162, 0.7318882367213184, 0.5226189451379162, 0.4714561263097441, 0.6536425776379847, 0.8780547121445959, 0.4605063736250262, 0.1108839197488849, 0.49048534621825135, 0.348779380113877, 0.3573496061128525, 0.6477277145926619, 0.3267103713187982, 0.154258739206506, 0.09146321915634115, 0.15653234956704554, 0.2659173882939163, 0.9017235470997731, 0.39463656456034923, 0.156590494640086, 0.8173011759177684, 0.4863177935656502, 0.889074583881877, 0.1961541858280207, 0.4073608554088233, 0.17383269122504952, 0.49264426743742795, 0.28034389601998155, 0.5593685058504049, 0.8717081492192968, 0.8138787395058248, 0.6849150775885576, 0.7294561911157406, 0.6007567942294963, 0.4566856125549694, 0.7762810018455528, 0.037485912765460316, 0.317156754519343, 0.8194347358709463, 0.8742357018784637, 0.45420248053764034, 0.545021334035525, 0.40484355148999873, 0.9642956470123379, 0.9521463750801464, 0.009809236244757491, 0.5632225263832438, 0.827726924457394, 0.19127589974101955, 0.8270672169675024, 0.9389636338572646, 0.03389523795263183, 0.8566288277688866, 0.41601508004675314, 0.4533324145773725, 0.3986860505212597, 0.7125644912081883, 0.4991806916020406, 0.6155778733311165, 0.9130384484529627, 0.5487870717147846, 0.7780523937434449, 0.28193646085785884, 0.23331327786702805, 0.9816900774238352, 0.1350024308188581, 0.780189727376689, 0.9156908233955465, 0.009622250928327358, 0.14554767074354535, 0.6099444642853934, 0.49974097393273886, 0.7069659077805105, 0.7816183976265796, 0.6893721747092452, 0.39131354032672916, 0.37859141906212357, 0.5906888260321975, 0.6601801424705058, 0.17536941466724143, 0.2319276355700719, 0.7489062937368479, 0.25317403533372795, 0.13515277633234812, 0.9347494213774822, 0.9266229609375172, 0.9943887686013935, 0.05448279130963951, 0.2941520004646705, 0.8162845180903855, 0.9728186588423753, 0.04784001124036252, 0.22656891211505314, 0.8623002348807659, 0.5872338171414982, 0.8172407294972533, 0.8935080553239964, 0.9015605149533703, 0.41310471749037525, 0.9472794835647472, 0.6520347680487271, 0.31311178341617885, 0.3881266733594382, 0.5940963916604006, 0.34213553626717264, 0.7731917933130059, 0.5966087262785921, 0.41236805548735, 0.38464411318442915, 0.948890845138434, 0.6579713101413165, 0.0864903742655957, 0.9024542523251091, 0.5321617601250037, 0.4679140323179162, 0.545330586994838, 0.45181337751924944, 0.46408729390763515, 0.6739482447724412, 0.0051732115035305615, 0.19981216404826385, 0.5290130517806954, 0.7192318331618469, 0.7212983477553033, 0.3213459838833309, 0.8810398893805294, 0.24407230150381054, 0.7705033913302648, 0.8348143443275565, 0.9798327350813848, 0.7153785787888585, 0.17227162583571132, 0.013486902192362704, 0.05279184836340933, 0.4048402752271233, 0.6541987863733343, 0.9572730371926592, 0.25874032756911736, 0.1708286437732166, 0.7458853835638297, 0.8957748918471427, 0.8504052252091574, 0.8440260407324176, 0.09998791094771531, 0.5981663701129188, 0.9909795971630094, 0.7599927671359444, 0.5930460739990847, 0.778268386360668, 0.6314661520179152, 0.5758158555084719, 0.1933560284115361, 0.04267202229386946, 0.5808063777329563, 0.2846012429745495, 0.8127455357361613, 0.8547361041799995, 0.4236263477471254, 0.5126017051751544, 0.486864207649195, 0.675148578661926, 0.521602594310036, 0.1714438367929747, 0.987577581508166, 0.6240301905818986, 0.3972660860873791, 0.21466797526556947, 0.163736157424353, 0.16097272448599187, 0.9867228726368442, 0.44686891216524294, 0.8529040770303731, 0.8427084849973342, 0.5248669060092062, 0.6332209039546157, 0.3381060884944972, 0.6410528682127311, 0.5184896117965878, 0.0775072340265841, 0.20847724173835658, 0.8421532756187703, 0.5690884663921209, 0.16660278165823805, 0.7114283732757188, 0.12485689980485426, 0.4778653717597874, 0.8936810245378618, 0.25572041201895246, 0.6479725646536676, 0.0521651501340884, 0.2899282678297366, 0.1567842561578523, 0.2618292683133343, 0.48167163493515797, 0.8678615958116621, 0.2825109203364219, 0.029167488033803868, 0.30085749125988204, 0.1430984046038365, 0.8105162116377423, 0.3240150277783528, 0.4227679344777656, 0.6462688810750794, 0.7669111613819273, 0.3591939105703398, 0.5406014889841781, 0.9133014898668583, 0.23078416856951423, 0.7282831287496329, 0.7696332086423125, 0.036116417171488946, 0.7188034785773543, 0.46641137151322454, 0.13517594491126694, 0.023029089551247717, 0.3240281523339036, 0.28219840623687475, 0.6176277759655265, 0.822929704075167, 0.9746339984503541, 0.09356935168701108, 0.9358670947921622, 0.5150705189935418, 0.08698190944361806, 0.5067019194005934, 0.4607138934794833, 0.5903911985128997, 0.04743558869608677, 0.0816011762024833, 0.18434623268203787, 0.7063485147604806, 0.16133266570652083, 0.7545927345078352, 0.9883244202548223, 0.1932863168822514, 0.18928374882276033, 0.8001091255310002, 0.7155860340551159, 0.3789846917866153, 0.9611113142900227, 0.879396081488193, 0.5388680749811205, 0.8361159884411873, 0.866329387811841, 0.2730682799221704, 0.3194169335393262, 0.9423646280256972, 0.24435425023073687, 0.7470170905071631, 0.7738507071603729, 0.3986280845457605, 0.030480186468068826, 0.610744914811935, 0.2678410545126796, 0.11563606352242406, 0.35435733790292934, 7.629086834592957e-05, 0.31506645823114665, 0.52596582150875, 0.4947711935372616, 0.2900674918365881, 0.9559480836459326, 0.8641971546827826, 0.7759990209000613, 0.25189193242507424, 0.7764929030552792, 0.6740451053768206, 0.9442503568797899, 0.27015556612912295, 0.4722170294917363, 0.6923440714494277, 0.4625235039406205, 0.40653633557229074, 0.8614408947586382, 0.8005107123593145, 0.38952152310149324, 0.5138242206735628, 0.3034512156454581, 0.5075533946811591, 0.6409178909749544, 0.7867224176037622, 0.5704724276154304, 0.558636617357991, 0.2794783538323291, 0.29715752029602904, 0.5187519349640142, 0.9873759371136224, 0.9258075437182876, 0.21802053184517123, 0.43578239292876575, 0.5802450337786992, 0.23230142264547604, 0.9663956282775855, 0.3046095724793134, 0.7813239552985765, 0.7139029823908456, 0.11346499503069729, 0.17481934399946641, 0.030608752823210073, 0.7198536329641824, 0.5851914340312228, 0.10405825121810075, 0.4328732174062543, 0.05984690834909834, 0.059751406592598366, 0.7099125485628539, 0.2327422314064267, 0.22293859772007485, 0.366334373824144, 0.6749561293186479, 0.8275468647809106, 0.4836623121233168, 0.5182234230734467, 0.17814665168896882, 0.767156836968558, 0.9957233089372526, 0.020767935241929103, 0.9075908646866189, 0.910011621335872, 0.7026196573836658, 0.935762210311436, 0.7711845413595912, 0.46739814450201234, 0.6994581401527824, 0.5616043805626976, 0.11408951973501213, 0.6998783598361171, 0.929936385814316, 0.665750680755247, 0.6799953175502683, 0.020929310077360097, 0.9533380343595762, 0.19059543824646374, 0.09924735025128095, 0.4388686123460397, 0.7029603377770199, 0.0283956241097576, 0.08107860028919389, 0.5042102876279084, 0.2165582424681859, 0.061309458649308146, 0.5425731942471365, 0.6896535206703505, 0.7865332719261746, 0.21144979197123848, 0.044240593795785155, 0.7172785881835658, 0.8087701489136178, 0.12632062877512984, 0.3135882124553674, 0.7030096426830668, 0.32427739389406196, 0.26177958169560045, 0.8364626116621018, 0.045119232141371146, 0.15965420000508967, 0.9353298867548688, 0.20383187633308142, 0.9738936519827217, 0.40298551153980444, 0.7975560547282584, 0.18171915196160293, 0.7518553129466249, 0.3343056185111044, 0.4899186327978281, 0.9156154657107153, 0.9113609778955688, 0.9693327204195537, 0.2857523592884468, 0.05130307975288906, 0.71266558707065, 0.562649641637568, 0.8915442240259507, 0.164649064386867, 0.027705380608350705, 0.5407021702897924, 0.7889782067611623, 0.5259864378330708, 0.6845669681814901, 0.6376220227714763, 0.8514856160558509, 0.6510253682186862, 0.5170756234714353, 0.7067784474209631, 0.9994574991301162, 0.6757298661011472, 0.7466542251346405, 0.31532433459065423, 0.2932461574194528, 0.6129823292461669, 0.24096303449059953, 0.7484722467815119, 0.2738466277749775, 0.6041763997009431, 0.9490113319971468, 0.16474717260481941, 0.6344892971888295, 0.1605409102690507, 0.36949116587874564, 0.9062309293016031, 0.5676917708189916, 0.6579501227105841, 0.1556984298808446, 0.10526105347022718, 0.0432597501143015, 0.12340518927265864, 0.24480904517286162, 0.9559497778713313, 0.4650345002210139, 0.5570696004138982, 0.8604647108283786, 0.08281791268299465, 0.6909086243849096, 0.6361793771611001, 0.18333854334943112, 0.09914338253655386, 0.42672616390085993, 0.029455181622296656, 0.8806910005582591, 0.501593639037123, 0.5384016604659735, 0.048500484858614024, 0.33157374470623313, 0.7819900133063813, 0.8036696202277274, 0.8870946895919508, 0.6443897992391144, 0.487593702664578, 0.47427283897570727, 0.45319916886863576, 0.34084491767048486, 0.4097600967808508, 0.6369527481950622, 0.988582322369492, 0.7429270774935287, 0.2755575157901178, 0.5337860064252411, 0.08527367015946075, 0.2868764543425195, 0.2818610831832793, 0.09656564597512085, 0.16326420842851086, 0.078524756766712, 0.692034898414409, 0.02929249805951828, 0.04078870767209608, 0.68618278656732, 0.4164950388301115, 0.15439502423081763, 0.2608044219197406, 0.9485716022280892, 0.1489511084132873, 0.5371867964769852, 0.2679471165751426, 0.26879005137532985, 0.6385648413295864, 0.6934480563650385, 0.5889259374697515, 0.9444658629484035, 0.5739860439847068, 0.4642829135480352, 0.5485487373822201, 0.055600233329058835, 0.9503995048048212, 0.03693809906500234, 0.29259340143434953, 0.3763819233620549, 0.054765734537462474, 0.6690946345171489, 0.22901017308395843, 0.3851663832175244, 0.9320166382726104, 0.40543494470602504, 0.7132939144212584, 0.438468625983355, 0.40289388689969197, 0.1080205205554402, 0.36245057716210094, 0.36015390409792614, 0.4083542707925487, 0.6457341101335805, 0.5280984956406288, 0.27661051569717643, 0.15463113535167072, 0.6339351618412589, 0.25386082756030703, 0.3773882514499456, 0.31448240237275205, 0.5379416898801859, 0.5758417787990292, 0.4931403175245719, 0.19895720697450392, 0.9106510540309283, 0.7050910060490698, 0.45995862112822117, 0.4978773762163059, 0.4305593369082561, 0.5163888955360598, 0.5881241308899362, 0.7443503376805837, 0.043441356160601075, 0.7620942885064099, 0.25391141995016, 0.10404423400504292, 0.32906430947818444, 0.7134706951754703, 0.6142847460386224, 0.8025796936730528, 0.732389054290974, 0.41473925626260966, 0.6923681125801747, 0.7145973260035485, 0.6951361442463575, 0.3418245407724094, 0.011957990757860193, 0.10193439601418242, 0.7414001168798778, 0.4136476884443896, 0.690481795572699, 0.9133795729869558, 0.8514948184579377, 0.6159790140475269, 0.35329256022365085, 0.885435642977142, 0.9162085873379183, 0.8567070326140995, 0.25296933567683344, 0.35424346143915453, 0.5002598794309785, 0.8659747694089831, 0.061456731329130654, 0.18850808844299283, 0.041641953786621944, 0.4423078043675779, 0.19516736871253626, 0.7748134390819658, 0.15669760064831195, 0.9117988105447139, 0.17529069687430643, 0.21239361243420785, 0.5598792774908463, 0.019901661165872664, 0.7807569139436707, 0.3951855412813505, 0.04765166480638605, 0.1252275191352593, 0.7764889850899379, 0.9903254692712204, 0.4160674609967715, 0.6575123873469116, 0.38692550571427453, 0.9421299229690594, 0.13425578776714753, 0.6592775206040412, 0.6054569516862356, 0.04995466341550436, 0.31838895529498445, 0.5594098049245086, 0.5431828600421421, 0.9655536479587977, 0.9443783667221035, 0.52733461507154, 0.23509187824030708, 0.8359559719413645, 0.40800777231855934, 0.8192441772939613, 0.4585598560257491, 0.5789392096126688, 0.73483080985693, 0.3857779429185293, 0.32684564099220315, 0.4342809981627095, 0.14049178871154044, 0.3249377070613626, 0.9649364229542966, 0.546159980425236, 0.7495624435760676, 0.46499080808841164, 0.9595431299879549, 0.5511422996681221, 0.006284943257787723, 0.9579373386678119, 0.8627631305545066, 0.42931315127083947, 0.7117063444496837, 0.3529688849071867, 0.6581981238160464, 0.8607842753730445, 0.1035946540281355, 0.33884413032963134, 0.6507898433398873, 0.5959572838859108, 0.8452792802539334, 0.3526427347097323, 0.2554030188129234, 0.3190780690938113, 0.5359166867354336, 0.899592971396041, 0.9121275113754743, 0.18881523918281573, 0.16581486849400462, 0.1864109651954301, 0.028607524048106736, 0.13031259865406175, 0.6048366380665815, 0.5957170162769209, 0.7081464546990173, 0.8903217482370849, 0.09598610365359428, 0.519585064267526, 0.09657738036679875, 0.3475479951857743, 0.4963494792070573, 0.5292251865940365, 0.029110455518635447, 0.13835821078098043, 0.658289086360752, 0.20830808279559043, 0.0736493897230931, 0.8598564030205227, 0.8590472853784719, 0.9610234425963425, 0.48137361683309265, 0.17898859647327336, 0.5440140974851478, 0.22730089140323917, 0.018558462503961426, 0.4863017370860887, 0.9382132934461014, 0.19297219357216033, 0.9940483705415563, 0.7732193700811595, 0.4881593204224687, 0.21141437672188212, 0.4440192193919973, 0.14557017262370142, 0.7702782436739344, 0.6601890426095425, 0.23468998861913448, 0.7782546277335423, 0.4448974128041292, 0.10784083571982617, 0.14854640192380364, 0.41589035421442533, 0.3197984326244462, 0.7245022420692844, 0.21576829484306959, 0.10265703279256322, 0.45756321284804535, 0.9403807825834055, 0.5526588429924927, 0.6064363553897896, 0.44265137283869593, 0.569212185802443, 0.7912368277559028, 0.8887896757133944, 0.9701565615505346, 0.6977265802358966, 0.536834680339334, 0.053981826061055393, 0.8756559562878227, 0.19057490879409256, 0.3320634721865183, 0.4459034795768957, 0.19803414491520221, 0.41464347378057187, 0.4296586033181208, 0.3521609076476333, 0.7204422760571739, 0.538750650251617, 0.9405722533748734, 0.6186423782405404, 0.6233966614987376, 0.318102330519885, 0.8543971214766016, 0.6515592077046153, 0.65087215946289, 0.07339238123019876, 0.4727928631310542, 0.020176923010824965, 0.8738978388137459, 0.400978242333368, 0.7942854137885756, 0.6403430773994766, 0.5661281788485651, 0.9813443426749566, 0.5483196198615674, 0.06707226963185708, 0.7333912975866296, 0.7783524129943937, 0.5686775672271452, 0.4256925483989712, 0.5147086104638293, 0.21476000417538343, 0.916855433021808, 0.3714678841508565, 0.21945150784688328, 0.5895851611906975, 0.1444626597607006, 0.738918199088585, 0.4481544686964083, 0.9856359446672089, 0.29954706102055195, 0.611250956442058, 0.9430562414796368, 0.7229305445999924, 0.1858020448235872, 0.6618648057683056, 0.8030276227107247, 0.8628099361519953, 0.9052610609469864, 0.48514713211278393, 0.21873607262787087, 0.5236259810661064, 0.230898613761495, 0.17879765773860556, 0.6151719520382292, 0.8151124499805635, 0.5781982220346872, 0.3922148718803763, 0.04935560570672859, 0.6166915363174584, 0.5081051021238706, 0.7010454655614318, 0.4156377880919485, 0.3492037798091502, 0.602200690923089, 0.09046365783660171, 0.16223935565771608, 0.5214901402508125, 0.5044965309511683, 0.8718711479270838, 0.9893060211426482, 0.4959762454399149, 0.6638722685693331, 0.27567906452334956, 0.9612735276985851, 0.017683914342381035, 0.6880525776298796, 0.26384910388692295, 0.4717037005472474, 0.04709738998294177, 0.9206613460317158, 0.30609401558422245, 0.650794876466132, 0.9549873305910817, 0.8260862345328126, 0.4305511457337493, 0.15775833413756224, 0.5698073932330375, 0.6732764670891707, 0.9398683076373318, 0.8884952039532361, 0.9747580378552119, 0.7012280138803675, 0.8531212614847642, 0.5588857939967947, 0.4865193397093649, 0.35605598711197395, 0.23192417196470105, 0.8943987506597288, 0.4581750581036229, 0.8316761648384743, 0.1956329153934292, 0.7862726579345383, 0.2825441517137014, 0.12262868378623026, 0.8276433833405171, 0.6205529971010263, 0.32692718075055793, 0.8228061122431176, 0.01971216456364311, 0.34028396625042623, 0.9809049097581001, 0.42615866343689, 0.31026080743670426, 0.655869132710115, 0.21848187364501515, 0.7168610879867828, 0.4594451911566828, 0.665814039596452, 0.36315476515717227, 0.5792757848529761, 0.2194177814751842, 0.04385373639898016, 0.518617925385258, 0.3231278017612045, 0.2594374757740957, 0.29246587337951047, 0.9954689561632492, 0.3501425234728255, 0.6709665721562044, 0.16735352771914958, 0.8260129706431494, 0.40920719564891483, 0.6726330850570945, 0.9363557645462725, 0.6556123113787984, 0.24270806527297228, 0.7235976249239356, 0.24447580020214432, 0.1570820781313833, 0.8148349956024216, 0.6933255834175878, 0.3001748159747639, 0.4345877719588055, 0.5503760162209426, 0.25779097166992126, 0.4929286821874297, 0.9452724276975171, 0.665277564567275, 0.8981405030205403, 0.0670257099481898, 0.6939751122857064, 0.28055550151293496, 0.1332388904235442, 0.5375935529800575, 0.7796575064872702, 0.6544817490995954, 0.07015083766352537, 0.5144850339572572, 0.8525538781907521, 0.9739838860835902, 0.4968967376586929, 0.4127145314686359, 0.27933761555501435, 0.3672016010943906, 0.6624024674092706, 0.24544598528646022, 0.730314983254911, 0.17701101837412136, 0.4254799754930676, 0.35423136895259566, 0.5768227897299716, 0.5744645070463099, 0.6089490929009442, 0.8468421104716097, 0.062493117646656215, 0.9433883841846586, 0.3224314773749847, 0.3879437547436835, 0.06542481862518479, 0.4524283508742747, 0.855669739307951, 0.9355414144830774, 0.016953557859817336, 0.08887746141991093, 0.3077384846166704, 0.20142444310220264, 0.23430527951848246, 0.26726979711914867, 0.7538977184667861, 0.14055565974103956, 0.12019543811452327, 0.8032361878205014, 0.7275211502307414, 0.5391190118588421, 0.39040871413175204, 0.9111147281454772, 0.9493616269229143, 0.7539309432514376, 0.32713630350951395, 0.748126071640409, 0.7235166954765612, 0.5451528985198291, 0.08939363370630093, 0.9726577168929407, 0.5056002065235468, 0.8720214092930499, 0.14252130964260157, 0.8017993349366525, 0.8789412016297585, 0.19733101052115432, 0.155381302468528, 0.8861006212175135, 0.28308405796973546, 0.3421889072421824, 0.2741378883081277, 0.562728159108378, 0.7383010713186272, 0.2940145578132707, 0.28188592835883397, 0.876776834120555, 0.4094498174275354, 0.2609720457658792, 0.9077216796152148, 0.9167908537532, 0.6309256990750524, 0.2932255295296887, 0.6187393252348707, 0.02419640268937162, 0.7615549945291642, 0.40152068077174974, 0.636001364738158, 0.31693811983415865, 0.17459370162390564, 0.09635478622334415, 0.773110596039915, 0.36730671076204746, 0.4443424697638383, 0.6269672542570564, 0.18052959491911025, 0.8763251766396633, 0.9298965932343471, 0.3114788775550925, 0.5129502631275407, 0.2671988790638957, 0.03395469873611412, 0.20677057622909345, 0.029755677202100816, 0.4219143640858508, 0.27766396280399275, 0.7626861520170851, 0.2804449959173896, 0.41126630075958903, 0.6130098684306445, 0.7749747562665911, 0.6306743873349789, 0.17398026115826748, 0.8664778902230784, 0.13631390978684288, 0.126146245275511, 0.14392278284610127, 0.4957647401686809, 0.49393608417974944, 0.7608848150197474, 0.7708537446533661, 0.17041707735566713, 0.5292679237649189, 0.12997774787294147, 0.5833293771008747, 0.22158461844207578, 0.38454048634657145, 0.25170772654694007, 0.18384322498407457, 0.9106010886281795, 0.09659133036787504, 0.04798999449920649, 0.5971959180210877, 0.33920293291125825, 0.0026978486282175362, 0.40823027702490455, 0.7474551858830002, 0.8447835860688525, 0.999476073467762, 0.11292905422267163, 0.2891202214831097, 0.6782488374010278, 0.5640985110366258, 0.8986345118209681, 0.8303221656535216, 0.3838014827262134, 0.6954806707019082, 0.04745548087955098, 0.19020545853032067, 0.12142096074765196, 0.8083835608993636, 0.2703724701412815, 0.04308441751967196, 0.8978514331468422, 0.9227768394778075, 0.054487218354160816, 0.8881844540343677, 0.05812500740473081, 0.43395580484342355, 0.9128284726568942, 0.46153699068964205, 0.9329113950684834, 0.5436808169668677, 0.8551864909610408, 0.35430629048202467, 0.20331160404943038, 0.010592767504785994, 0.768145204266474, 0.7716453181066588, 0.07399950484290962, 0.35304343137569727, 0.7125013832160177, 0.32282759187212584, 0.5098121496598533, 0.9429961075410074, 0.23690140194649634, 0.28545879601150004, 0.36072796490221837, 0.08273436245662757, 0.13321861653992195, 0.45428395959680057, 0.3292870423168869, 0.3717537796542958, 0.9151157324904851, 0.032565267234247575, 0.5663024224678861, 0.21258936026884934, 0.018792364759155578, 0.33061571155470315, 0.4408215380032614, 0.6373830559219769, 0.409083548130421, 0.5719023860863325, 0.5966825436453085, 0.3384202473006439, 0.0652522862056627, 0.7184518347094753, 0.7333243428502271, 0.3397689359164483, 0.39030612456817504, 0.49021356874309363, 0.07567478335266509, 0.8152990173046628, 0.865796090334987, 0.9772443897479798, 0.8237383881843146, 0.6529526140669909, 0.642639906551107, 0.48148740771686727, 0.32824558349693844, 0.21997446692237632, 0.2826342393226089, 0.6925547552930775, 0.8127702758298999, 0.8449833779720203, 0.04123879385713569, 0.15065632287258246, 0.08510557609762459, 0.5458280878881934, 0.8586504699178478, 0.9911190250770345, 0.5763284424876813, 0.7391889450985766, 0.40039453665752356, 0.6580974766512633, 0.9713635948599508, 0.9633153015071205, 0.9892725316197725, 0.7655195394029977, 0.2626076882068743, 0.5724930703594869, 0.8770329572359922, 0.9241957706353401, 0.5311898231459584, 0.9787947183754235, 0.29236240390648527, 0.1370530031021152, 0.21557458708432398, 0.21930911835253963, 0.8715098439481456, 0.18225413327885254, 0.1273980429476339, 0.781536231097221, 0.7399707114697983, 0.03176008087944826, 0.07484892991644743, 0.9938729205296434, 0.7208500631972949, 0.7020940151356819, 0.649863542644937, 0.07171846155065342, 0.24072337013910783, 0.3613692423637672, 0.28109344159579286, 0.6906532840886619, 0.2697954961712017, 0.28147888050363834, 0.8129444048447061, 0.6482743700303343, 0.567516198772247, 0.3377204549692112, 0.5318035966189143, 0.13996490823612162, 0.28411043736720165, 0.7086066320571008, 0.7364523892364573, 0.24583114874653533, 0.2718401559841159, 0.4699898162815598, 0.8368333921696967, 0.6039469513318906, 0.6881629540763242, 0.10914136009539432, 0.03794547642282364, 0.16071126773904743, 0.6071822780850678, 0.999449454081704, 0.38785614009596714, 0.2305249584020561, 0.9381100298775975, 0.6723682337201471, 0.0270853082856215, 0.38452454801976443, 0.8104401851265016, 0.4148616154771626, 0.25348586490031955, 0.9559803040006986, 0.23669298529343408, 0.8683776502568926, 0.6818154399643029, 0.386930406487093, 0.4831551067581342, 0.762948076915824, 0.3080418124016162, 0.5783325642474083, 0.02031458126010055, 0.07023369879228158, 0.2510418307035861, 0.06557828934649368, 0.20332294284183228, 0.6988094459473019, 0.40342220501450765, 0.9809970493544985, 0.26572276292341057, 0.5928075161063842, 0.8549134765023864, 0.567763428815418, 0.5470926603460404, 0.9274902125377089, 0.4928070771606695, 0.526894280369654, 0.6376977924010896, 0.22799338981773765, 0.666609321330193, 0.30868196403098336, 0.14279972266571528, 0.5062364564484477, 0.9157139519719435, 0.4438514752002488, 0.0967753755965477, 0.8364362062093621, 0.7507227281441472, 0.034410730069850626, 0.6782441014462247, 0.48150125869929983, 0.8610360109688682, 0.040318507891833, 0.981454376414118, 0.9489949777983132, 0.8363894005173848, 0.7935877513663323, 0.7161463843240741, 0.005320974874661322, 0.7219264019524386, 0.5939046135812794, 0.7367415608933358, 0.4901397664186017, 0.7455950792620178, 0.38453281111378745, 0.11932732877577257, 0.23846310575164364, 0.5070859241209125, 0.4714858979832832, 0.9511226798432605, 0.816798240831224, 0.9906645769037737, 0.11961893403587176, 0.31535187276502774, 0.6103025507014492, 0.780168389505919, 0.4873081795149584, 0.5385034675060101, 0.979880443701223, 0.38006057763820444, 0.8983108410336961, 0.7260784501222746, 0.08445070147685141, 0.19108936840472623, 0.8684070135879295, 0.29639093380738957, 0.24831227601153794, 0.49319075696101833, 0.6248867669334034, 0.043314312738550464, 0.6751994351532093, 0.9839650562784863, 0.23577156317354986, 0.655407771653181, 0.9998838732393714, 0.914266783053472, 0.9781753528714074, 0.002991513868391582, 0.27941324936645506, 0.8503441860013552, 0.47965377849050583, 0.6425737018053364, 0.6917759376427142, 0.5997255515022856, 0.060241281568058636, 0.5393389196251592, 0.18985718347501923, 0.9351558163273623, 0.05023015623962879, 0.6468904895820736, 0.014573021284780774, 0.07314826533484264, 0.7385634948320089, 0.4736186028473338, 0.961769707187561, 0.6466132639765876, 0.6540721879369729, 0.5897323507539489, 0.24160977712950327, 0.34607925280409346, 0.6030672545910204, 0.09219015818821708, 0.2189044326893821, 0.12227548581400349, 0.8947981854220011, 0.252625479705346, 0.9946789181499702, 0.16317149618234628, 0.8889540539831564, 0.11335746065295138, 0.3021348506513677, 0.32426537462416727, 0.3221710260970897, 0.7955224454834644, 0.31995046679141825, 0.4603696522905393, 0.15274124315980264, 0.5767785824549683, 0.9089273609938713, 0.014181800749509588, 0.8968517292934882, 0.8576432177022097, 0.41392758451611766, 0.49075724214154415, 0.6724006689201423, 0.7419828793396049, 0.5918792807869941, 0.4964571450177757, 0.8462797472729263, 0.24074647479855604, 0.17389013966384548, 0.4336537753610863, 0.20804076413234251, 0.8346292608572363, 0.16330788557412612, 0.6470926565729509, 0.24909881173874848, 0.7800536906520463, 0.9027679093109797, 0.46621683989976836, 0.8825818086255208, 0.6483997410357604, 0.07090902131552845, 0.4615378723949781, 0.3984200929917433, 0.793556355780704, 0.18864072780222685, 0.6683790309702944, 0.8281722909526522, 0.8584671461088224, 0.7674560890352315, 0.30241765553139677, 0.41475831093913884, 0.22776361413963964, 0.38489260664050606, 0.42790348692893054, 0.4855741541423584, 0.7700059150649414, 0.4463345406584335, 0.3754021383352054, 0.554149430056228, 0.7229379198353453, 0.3532397254539792, 0.3768025729772698, 0.668903032222659, 0.9064030808327798, 0.435833055858148, 0.8685532076495873, 0.2886386669233906, 0.43587518450474105, 0.694872592542479, 0.1796499204429559, 0.22480783387822612, 0.23350737891309348, 0.8144091649840206, 0.44616818509133616, 0.22082898026287756, 0.17930805292422558, 0.15071070399700426, 0.3155340984080618, 0.6760742950253298, 0.2621675138999626, 0.17823328215968037, 0.08015587675406999, 0.9763732534524071, 0.8110620473055706, 0.9566564231509402, 0.25767909123698307, 0.3601800348476929, 0.950425899846338, 0.174356764476159, 0.08077041781361871, 0.7687961673279716, 0.4354185072613621, 0.8310249565932173, 0.3721057577278879, 0.5340391905817158, 0.4872996797842588, 0.761276430509516, 0.7341317116279491, 0.11585158022036635, 0.8117034975015432, 0.04017399270252342, 0.5161920405254127, 0.02912026146204605, 0.283469044387504, 0.6056600705599993, 0.5892643002783994, 0.19327527302460534, 0.6201029277090222, 0.9439856016164112, 0.8563446020541817, 0.6525564675585972, 0.9151952958944338, 0.582373416388159, 0.7669560791324367, 0.02468294355083911, 0.32790419872418497, 0.16828688898958633, 0.9785136875320333, 0.7559030686500858, 0.4880628030762244, 0.49742040693088596, 0.3807874726702045, 0.2518072818614463, 0.28293848736377514, 0.052065141479679444, 0.12673432223072, 0.00493210913236386, 0.0659657665976604, 0.7546657122157793, 0.5142072130637574, 0.47101495152740935, 0.12423809933676722, 0.631621048904926, 0.9375168340975689, 0.9710427645428577, 0.6951321450506236, 0.12975755461724825, 0.9371463814511896, 0.06329947410562009, 0.17250706916082792, 0.27504520679952815, 0.7997764878570511, 0.6280084931708173, 0.8790770172906017, 0.8699573351880034, 0.47162638306287774, 0.429977964766746, 0.6852470236642084, 0.02825069851350992, 0.7187392702298809, 0.6897047244877237, 0.21155052406886465, 0.5782009379374243, 0.844124004652653, 0.13477494670163825, 0.39460860995867053, 0.21886878537466137, 0.9331765626546623, 0.39975766464681506, 0.05306072541805107, 0.5198958252400147, 0.30504398126008225, 0.7433307539428954, 0.12287466682408421, 0.9670010933795353, 0.747858359423017, 0.17207327768824898, 0.2545220160759658, 0.5911442854526012, 0.785125289716672, 0.34374725201679623, 0.1881988882326393, 0.2864207541695756, 0.022946369182973436, 0.035928263856476184, 0.8248370296597001, 0.0326694849755228, 0.7293502533474547, 0.6077561758020177, 0.5308356230207454, 0.03316711866227229, 0.7568490275843757, 0.520780966891579, 0.23241392652065784, 0.6897984319358339, 0.6291991128180034, 0.4441797944319068, 0.5568587932114791, 0.4498088314464638, 0.7010019040522237, 0.6507673483154275, 0.45381116863257953, 0.8343724626292929, 0.9726485983607335, 0.08883727023216881, 0.3240589354871075, 0.17091823673070605, 0.7065195713066943, 0.8019676727987474, 0.5441090274902036, 0.7569920288292978, 0.7284967317947634, 0.41634232641384894, 0.07570625995129976, 0.4839470331704978, 0.22728929068210257, 0.6017907078082997, 0.2752057089278115, 0.6197057838032689, 0.5062528432426374, 0.9578668123268466, 0.17145202413217242, 0.24939262342805169, 0.6288714928454562, 0.5306228139658058, 0.5871282516007716, 0.5544974175100911, 0.6268496169607662, 0.8447978213259328, 0.5990456111341405, 0.4975881427045391, 0.9759159347677031, 0.6791081992495608, 0.5316632896786118, 0.731025524465835, 0.37977185358977994, 0.18206518830018836, 0.655684273695134, 0.7157391210381715, 0.9914665753650298, 0.5048593361026893, 0.9551772829563094, 0.7745323297735499, 0.1264456909491325, 0.3699896710346614, 0.6285338457271957, 0.514443036953066, 0.9899529710790698, 0.7325623262164351, 0.42250238115582217, 0.9471771192019562, 0.5681364044488664, 0.6486542055885673, 0.13720737835505248, 0.6846959458412011, 0.4521690685914095, 0.9371433944439886, 0.9945327264012567, 0.33107065688983917, 0.9343690829724055, 0.6856832306125681, 0.799031808457499, 0.7380137292376373, 0.9746119191774075, 0.6114354110845129, 0.0891424280914559, 0.5091757110322869, 0.603309404646988, 0.4295246842942808, 0.722036085094832, 0.5625133815588351, 0.13050048794622393, 0.9927393684728438, 0.45025947906275665, 0.3250450093807251, 0.09561872500769664, 0.8633353598344091, 0.40442616095861705, 0.6049206328617713, 0.8428239809093349, 0.3359551331198569, 0.22248396807251225, 0.5502353681183261, 0.40267811045207713, 0.5815240359991557, 0.3014924083991003, 0.4250990948690391, 0.08277471680497728, 0.16446000783135628, 0.7582322318598479, 0.4513912032123134, 0.21989757035321167, 0.6951066958420687, 0.4703863012569903, 0.6716716338779879, 0.5407943154328158, 0.4271833226075261, 0.08610893472179548, 0.693695330552891, 0.31314361600309726, 0.5535216118808298, 0.5990984962870414, 0.5131726892092602, 0.806119912485667, 0.37726715649026266, 0.09688997160729618, 0.18191235600914468, 0.7408756680625669, 0.067357737461333, 0.34430792748579353, 0.35918926626247394, 0.136124078264096, 0.3541995171494954, 0.06349779403656919, 0.3754301718183216, 0.1727189346883753, 0.7580345332123546, 0.5946766069056495, 0.12308175309808889, 0.5448895422266883, 0.2753416276479139, 0.23336713618230265, 0.4308822662286048, 0.5621756856088449, 0.7611032921388645, 0.349812128693896, 0.3881534377705992, 0.2835050132379042, 0.036894377980221216, 0.9307542758686738, 0.35984184065576474, 0.057717777604340714, 0.16357715519612248, 0.5474191675603088, 0.17209729645140837, 0.1035218074281723, 0.550510065989391, 0.41363664298505376, 0.2424585443425049, 0.12297541084632557, 0.9285138515876707, 0.6290588065058829, 0.8255063271949105, 0.20874626048136935, 0.9395041387697237, 0.04600701773713345, 0.24156959559907465, 0.37041024160368163, 0.7264228362952664, 0.04321551557401371, 0.8319348475055413, 0.5128934010550922, 0.9925867471857552, 0.9216267877935361, 0.24718436038946778, 0.4698226024943565, 0.5439280672034829, 0.598067075383266, 0.28494763010177293, 0.03773308148441756, 0.14574269431127063, 0.6053555487266239, 0.8475034881533703, 0.2020262485026808, 0.7042307474819337, 0.5005531552761207, 0.8192645819547374, 0.20759838646694628, 0.42254359806485775, 0.49037819615284917, 0.19201492423287725, 0.37500924763986043, 0.3021041849823324, 0.3213504994388482, 0.46774067505236416, 0.0026173221305848537, 0.2236980382939876, 0.8209726800498244, 0.1341877362757261, 0.7037171416664391, 0.756226471861304, 0.9793647620935093, 0.44373960477005947, 0.7700194618684637, 0.5673608450062326, 0.013838598953302195, 0.6574138322136758, 0.7782853882176008, 0.9813441063355254, 0.6393022773267258, 0.9384754208419224, 0.9544023739700562, 0.8689363282216476, 0.25686033022026544, 0.5677299374542079, 0.20226249527907136, 0.7413309609345924, 0.3902110116265247, 0.817381412418007, 0.67832670080788, 0.46537137842295107, 0.6072049619454954, 0.931659554219823, 0.7232985553535521, 0.5613079712934398, 0.9529395011786647, 0.3233140991562946, 0.8867061849259075, 0.3102047303338008, 0.5569391637391777, 0.7072786765330655, 0.05248664008431159, 0.9215047227212699, 0.32001852496573835, 0.2947421881907316, 0.16826022413555786, 0.9470234077238253, 0.02390800364358514, 0.921284435754136, 0.5062140210208729, 0.38265197505015147, 0.1803325603165793, 0.35597726956395437, 0.7943681735300347, 0.41606259121453004, 0.9499169772053542, 0.022111673063570425, 0.5235643488450099, 0.13857697122597168, 0.4254536166360948, 0.22832181147804687, 0.23456948978616432, 0.9860684004280239, 0.8756978874984395, 0.03544764170358694, 0.08973630772908203, 0.5083562496701145, 0.011202382317988091, 0.8990670746555705, 0.9537673849619107, 0.7085713197473092, 0.986232021543572, 0.5081578876729579, 0.6945190695598703, 0.9024711459516134, 0.4208577171692106, 0.766413072935944, 0.48028012847993773, 0.22874311332279218, 0.2133704688789767, 0.5125128278114942, 0.8880847121160246, 0.3606612472771661, 0.34170378950422586, 0.39477693551558457, 0.6340623996399476, 0.6953872129694927, 0.7092038405181214, 0.9624278741295362, 0.3905353641961543, 0.10208035797721937, 0.6101978379539461, 0.7583740478481424, 0.12625795541839047, 0.6348773324268129, 0.8871458755396873, 0.01670678244223589, 0.4146830711435052, 0.5372807865088944, 0.12542194922035377, 0.6512231246433252, 0.4980918754933916, 0.2091095413841736, 0.21206766259675913, 0.031624355402636306, 0.49247318203534907, 0.8251416658391146, 0.2265518914158131, 0.45579558773586915, 0.2793801346253608, 0.48011367142312156, 0.19316663611067186, 0.9630653586008612, 0.2844483346903066, 0.7428791983417421, 0.20350354070834398, 0.2553320192818015, 0.8212809248620727, 0.7661178866721406, 0.765443338343973, 0.5677574750675933, 0.05410405845144206, 0.8535598075847425, 0.5267124302899265, 0.16596308978355268, 0.5165349840530941, 0.6009663705061661, 0.8001224351986231, 0.12433512035597516, 0.7328391838711578, 0.46843650518351376, 0.19453361700593552, 0.2457914503921359, 0.9715041128172724, 0.5035253179717091, 0.2738750246354873, 0.76571572353285, 0.8322725912841784, 0.9742207856586259, 0.17221294952368482, 0.30429255859284565, 0.150446075776693, 0.5774457449870724, 0.055204948247565166, 0.9049180192781775, 0.09219720725874558, 0.7249660525087812, 0.7634298317772668, 0.09532513565669298, 0.6037902965957798, 0.775876091952754, 0.30048105187387053, 0.5321075407103473, 0.9676971504359092, 0.26881827714334805, 0.3270462715063217, 0.14109347688658214, 0.718905496165389, 0.5178340264469525, 0.4641920385691337, 0.6886634266980226, 0.7541743566585278, 0.9338177907400674, 0.6377610366495927, 0.07859012814204014, 0.047881143812792626, 0.509518876595083, 0.4662566613906933, 0.044753641991725934, 0.2888474238293234, 0.4300753033759601, 0.24090396899360778, 0.4880819616569849, 0.49344032440942565, 0.3267337118213137, 0.30739545858667916, 0.8347976589605131, 0.8468181237471225, 0.9397711276395985, 0.05076516895725314, 0.35528884635673386, 0.47869109342428395, 0.6485992654884545, 0.13077849395002672, 0.7561835005330849, 0.13019119770401266, 0.522947346864396, 0.71681653486775, 0.9545807279091522, 0.048471853442748514, 0.7656959974208565, 0.33260665541814094, 0.3107698976359098, 0.784262134457234, 0.2390556069831512, 0.2171033013333129, 0.22106855321775898, 0.1777305668557082, 0.7010763743538238, 0.34687353348311567, 0.6713227825218957, 0.31741624899077014, 0.27699680164190077, 0.24966398933329337, 0.4378580357548568, 0.8220315880834599, 0.8780303052900865, 0.3282223224417613, 0.5304855331661286, 0.8759301198567931, 0.8022054018812916, 0.8087106870029261, 0.39915235222002377, 0.811956074326436, 0.9536455298780298, 0.421213924992475, 0.43164313734964477, 0.5227138249336246, 0.7090043439645167, 0.2998320373339187, 0.5545990176184411, 0.3997327842492463, 0.7316793591805311, 0.8754030075046323, 0.843831916727075, 0.742684393168072, 0.17453735067792653, 0.8625298941919014, 0.11381870844975783, 0.27979009889454887, 0.5768907698535688, 0.06594773733933168, 0.9579455432204982, 0.5946935153059155, 0.45202323444648607, 0.9019434787093433, 0.7818194846873125, 0.3967066863484422, 0.8228406568388705, 0.09721161204039697, 0.4801522356674264, 0.01959637598493358, 0.9850457198522312, 0.24050822306737707, 0.18371526827375517, 0.5845485582312591, 0.17652807791034186, 0.8647449178268475, 0.2895166509368404, 0.2419901155988491, 0.6941088664970383, 0.1560864519399333, 0.635427742150778, 0.5816818559836522, 0.9849155684106518, 0.025588074983513787, 0.49459827852911853, 0.05425377571263956, 0.4743775865820451, 0.7564149515738253, 0.16276984906703595, 0.7687548469520425, 0.41373225024064564, 0.4544064319037999, 0.41801259667280766, 0.6314198197027366, 0.20323482183642694, 0.34349885200542063, 0.27104141183367414, 0.7982388531148257, 0.9953984175532257, 0.8327122421658457, 0.4281616517848509, 0.9687894499866775, 0.5466038572944231, 0.22487868502002484, 0.8384645649234528, 0.36865165146819756, 0.9336942046854281, 0.6160039963189174, 0.651923536201123, 0.14310507886655377, 0.06001830530380037, 0.22971825195338103, 0.9060489022166647, 0.17227243918298796, 0.03562839494317671, 0.9833405699591752, 0.879047113237965, 0.06427639038238131, 0.11198359585969286, 0.5120162273713391, 0.8195681998043876, 0.518411923936739, 0.5964168071235564, 0.8644480695528365, 0.9742302432739681, 0.596784065205653, 0.6009605776303654, 0.9172413061542587, 0.9722770947384021, 0.8230312406014156, 0.6689544008223667, 0.06070494793081682, 0.3249888584728904, 0.623899766373403, 0.6526210484092227, 0.6766952396244709, 0.34652804154497674, 0.4071283107450684, 0.8222639692618214, 0.011132519537103813, 0.5760595421942754, 0.28287338543402074, 0.37983591169858555, 0.40870027326127367, 0.07771932097463397, 0.03700348128441577, 0.34853902862782316, 0.34976756257395014, 0.20268620904747214, 0.17602558997716566, 0.07375838827968006, 0.8258050102203596, 0.22552025356880057, 0.6174348425138062, 0.8743948521904985, 0.04826767861785841, 0.8881260245700738, 0.20517630380817353, 0.7158063809593872, 0.6424390262914653, 0.28579474166696406, 0.6943570209638391, 0.8915403913726628, 0.18101264400038986, 0.43672810024025943, 0.9720888013306086, 0.9163586355462026, 0.8554811772547043, 0.8390860580206726, 0.9764990516164289, 0.623084563941527, 0.7274814276805354, 0.593214063381061, 0.1366543769893125, 0.5942756436334763, 0.940654759078095, 0.8976841341685899, 0.9170727635406218, 0.5512259884901765, 0.8732383847949075, 0.15876424149214485, 0.983846243401889, 0.06524064955606268, 0.22095794008768244, 0.29289061978348774, 0.01906759179346751, 0.6027549581512781, 0.06775862309828506, 0.25143958689042967, 0.5669673318847419, 0.28294105817696213, 0.3174541416076303, 0.33060755385741214, 0.4008286112428354, 0.36612160617925404, 0.3324377788357381, 0.6469852128501971, 0.12960876007392885, 0.5573253264003803, 0.18164164552223339, 0.05488525449383397, 0.8333901979014496, 0.7013270063862299, 0.00973447081459422, 0.44646013225218206, 0.04509404363374836, 0.6007283625082954, 0.5760011451082034, 0.44293294050290455, 0.7335522619452794, 0.27903604275828786, 0.1476826817000655, 0.32432344497821075, 0.6870931336062818, 0.00857861060126519, 0.7820956055279831, 0.4726044283862554, 0.5732177277699113, 0.14034121755523665, 0.41804284566429306, 0.3953383120567484, 0.803883857137373, 0.8793775032337189, 0.7863521774621048, 0.9210368915228765, 0.527325528345828, 0.2898124695522769, 0.31385222532735757, 0.6472638868328983, 0.5235968800554752, 0.08089383474428724, 0.6501478763743553, 0.1226793956172183, 0.7544937807956091, 0.1011571047349803, 0.8036833193003035, 0.3947568249380681, 0.7113878526534941, 0.4334600130160059, 0.995734610188258, 0.08750876548564512, 0.41692095049348066, 0.4161099210925021, 0.558301508648263, 0.5234324181480597, 0.6021309454264144, 0.11982213855056323, 0.652984817383927, 0.31994110490998406, 0.44025076342842107, 0.9018474001363644, 0.1780521010787487, 0.0928203326209236, 0.5689257589296584, 0.9307858048545634, 0.5019191507483846, 0.0732359171678838, 0.7472470560306381, 0.7606290137163079, 0.1759363749688474, 0.9865090966718135, 0.14162530231861792, 0.2257810200578727, 0.8625577589305529, 0.6182840554609289, 0.7627928373929174, 0.7138267678661641, 0.6271079408184336, 0.26542849852208483, 0.5438712954597966, 0.6534648091675265, 0.9366397928644904, 0.24959632558445233, 0.6955069355781494, 0.08747607765195109, 0.4496760092668539, 0.6515312368984656, 0.36913050836766426, 0.1884121970188235, 0.35484115555318807, 0.35296784884342236, 0.25069533860349336, 0.9058873429939744, 0.7443484994879821, 0.750346435642241, 0.7617724756232275, 0.2922607375715792, 0.5466903040314682, 0.8097090004421225, 0.35407885946174, 0.6348456786908329, 0.4096851448355948, 0.6754014404335078, 0.8487343259562462, 0.6503887202649459, 0.023939621711200898, 0.0697668884428575, 0.1932051338234947, 0.07098041071523209, 0.8895455416639768, 0.5970662891404159, 0.9672124324991637, 0.25710752222232724, 0.2512360193659343, 0.9118588060460109, 0.12641331224828478, 0.2591745695762785, 0.5354205089164524, 0.9697500651356975, 0.7039769817809971, 0.9674853015743734, 0.7581464456430004, 0.009967363889854308, 0.9554403083896627, 0.6514960891704691, 0.9819054955872719, 0.1655400926361219, 0.6854831617362053, 0.6538109602793701, 0.29197658934366655, 0.7026261377883648, 0.3361358393099737, 0.593058167944492, 0.3193604213031376, 0.9112331297151058, 0.7565016778289977, 0.8148016159609519, 0.12956549959331298, 0.8840025203699886, 0.15092088574069407, 0.20505821088972076, 0.2243079482977779, 0.8559123643624608, 0.3470255353137828, 0.1316340364530686, 0.6434241700287737, 0.6784281820296103, 0.20732777369293587, 0.6251808986824415, 0.6394504726870864, 0.999032394532801, 0.7786813383845239, 0.8636701630404309, 0.0023017909877571796, 0.696449724735671, 0.10128652819511497, 0.4003153911577081, 0.2469767716265694, 0.8768832326648365, 0.34089952102337384, 0.11367436364895223, 0.607022940049033, 0.310423907918116, 0.17692819881508148, 0.893849330155664, 0.4880236414430278, 0.9956660538325679, 0.6061924103235181, 0.43946977537006016, 0.014921239872288439, 0.463398031987058, 0.8435515709522923, 0.05922628363397964, 0.9644192036892971, 0.09735680952505932, 0.338804944299988, 0.122083944069586, 0.5384101447575116, 0.894293825409865, 0.7951670891521336, 0.3730764160164859, 0.20353695631133162, 0.7561530473263479, 0.6832856935883096, 0.600988913103398, 0.35514255942741124, 0.8499665948777161, 0.5804484005287095, 0.7105133890231672, 0.5155572582331448, 0.9580874216612449, 0.42311501062470824, 0.13594740755997503, 0.5577114428718954, 0.02444976711511415, 0.6073524946467592, 0.42490323282605924, 0.9560741306479802, 0.17062467593248265, 0.8032635864461389, 0.4236136037107485, 0.46938391908058286, 0.5712751546570827, 0.6589700800129294, 0.07547209392481724, 0.3993441495689085, 0.3406978944629723, 0.7797752606137046, 0.7855007898427816, 0.4117897980533102, 0.6899309686736047, 0.6962784108609973, 0.026169671983859666, 0.40177616240464586, 0.940360830179024, 0.7321905293315297, 0.4795568133323319, 0.1987575279476046, 0.6127453916604444, 0.757610880372048, 0.8914703620980189, 0.10720148213654712, 0.7929011279820072, 0.6530747492772068, 0.308240250783111, 0.3398854214559405, 0.17318325577009575, 0.3507555425234006, 0.6115615288020042, 0.6172965474103689, 0.773900176617242, 0.6826457756065216, 0.6383381900788276, 0.7095117173673956, 0.13989700600187094, 0.8519068750537195, 0.2514355559461625, 0.44387467049936746, 0.08873576599160304, 0.6307491605599468, 0.3192212749113975, 0.19105550091405066, 0.5681426912540237, 0.4852586570071583, 0.6901510334227848, 0.14730516213349298, 0.7377793699206823, 0.07770239636167253, 0.6353314323740415, 0.7769348461239013, 0.03146407552911468, 0.881921416148157, 0.5196241210509628, 0.18644631162996206, 0.1800152993000519, 0.8469011263430949, 0.2044030747533443, 0.6714715606818085, 0.2652006622562567, 0.16588414879773827, 0.004974429525489654, 0.9421216848976225, 0.8680591840359811, 0.47536229896418614, 0.9087132127558714, 0.36269836666060895, 0.08994196144024535, 0.46652965119134227, 0.7635088426479022, 0.7580543424043561, 0.2814576427741803, 0.703103211229103, 0.030089454512598146, 0.431288495782855, 0.2822540862742956, 0.7883604392754977, 0.40414295830619484, 0.466555918451075, 0.4449073577848274, 0.3738360598670297, 0.10771135525719733, 0.11598141083836666, 0.608694960356133, 0.8076241092099635, 0.4556595939890059, 0.5354984218212357, 0.04529301994047097, 0.2178671393843703, 0.6882823913952348, 0.865528980527933, 0.19956656357560643, 0.22844588988154046, 0.46974197301841936, 0.5309853116091245, 0.6839795443783202, 0.29595752432872535, 0.4532475799120991, 0.9284317401382437, 0.8788823041707505, 0.2166810902369931, 0.5487203138636405, 0.05600987779157096, 0.3084775342972511, 0.5393125299204842, 0.37240064437816334, 0.3468973654158175, 0.9350645534385649, 0.24039614056758862, 0.7402803066693978, 0.08306562891693459, 0.28044191179432376, 0.8657987335237997, 0.9934355754376296, 0.1270705175053224, 0.6460880715079992, 0.9198821934593109, 0.6070568194283551, 0.6464985488505831, 0.15197537639099556, 0.2664357790754843, 0.9231485651377281, 0.5340418003367865, 0.9957229597354874, 0.8319214218168568, 0.5422138048023872, 0.9699107535181725, 0.4752429518518142, 0.05408065715452448, 0.412116834384297, 0.6195568540366302, 0.881986809712991, 0.15550908602876878, 0.7044936352812271, 0.09920603364957725, 0.7458878830244886, 0.6374540922492773, 0.41588511532180117, 0.3429122583047075, 0.48188295150668603, 0.45953260031670007, 0.47601109541209097, 0.6130040691925399, 0.37050149227938656, 0.6783163427743601, 0.997835766092076, 0.3119262852356456, 0.41049362892379715, 0.2871220882198977, 0.08075775985242728, 0.646921181653617, 0.8765279657302582, 0.23805860015263158, 0.712917806978227, 0.7988705300739493, 0.8923433911728404, 0.42345599054528416, 0.18133583214691362, 0.29445384375862804, 0.877237778478381, 0.4062427754927561, 0.39792110919390933, 0.5595455188757487, 0.9451098578780788, 0.39714743857270696, 0.1710267066560992, 0.26824919626807686, 0.9956553743600529, 0.9283196879255161, 0.07718521227499053, 0.4612312284809391, 0.09342894139926139, 0.6584945035502988, 0.7224986788775738, 0.980272950501206, 0.7600669820648661, 0.6208086249350163, 0.6086644042782733, 0.48308153203364257, 0.660326199954179, 0.9276878850610732, 0.8633830105539054, 0.7962187452157085, 0.9194747290923341, 0.16231806206359722, 0.9499107963424789, 0.06252948055080076, 0.886862482313068, 0.5294739865073963, 0.7551343176832722, 0.3967203263856607, 0.3205093213479737, 0.11273108728145032, 0.5400172007465541, 0.5463584941018298, 0.40902420190783784, 0.34753173597357556, 0.36190947502133863, 0.8449872186646363, 0.7122210627434624, 0.9946162402041455, 0.9132488211351393, 0.876847448826782, 0.7803556977166688, 0.9356233374490821, 0.3252320637795516, 0.7962997602423394, 0.3947709697277736, 0.27607928050158137, 0.9617201147257819, 0.6892430274739247, 0.5706639923472847, 0.8567674143010484, 0.759254344754482, 0.4640661001028902, 0.849388861265472, 0.915484880536155, 0.6803950008264036, 0.2233794778069803, 0.9322812689951643, 0.6255594311375979, 0.8293069490130799, 0.5363731200101739, 0.22248705406746683, 0.03548460537717968, 0.5681856389695299, 0.22852476978776393, 0.25863174388684307, 0.8597279049431693, 0.7032097750280445, 0.49225726322638097, 0.4614451564658706, 0.40804943937105376, 0.7560063316576442, 0.2990920309244123, 0.36319226695497175, 0.1658941783846568, 0.9423775873373108, 0.33575270283571046, 0.18716742670642605, 0.42701655041668696, 0.0062520852671191784, 0.9121308724576324, 0.5179750346926351, 0.13397622219055638, 0.41617067939349794, 0.22602489432339978, 0.8549501299106076, 0.34313173874115677, 0.27630233769563395, 0.6506926207027762, 0.2534847525768975, 0.9379397622811656, 0.24893248547242908, 0.25003116137255343, 0.24185977400785785, 0.035595161608137915, 0.43731034171619265, 0.9865984103159812, 0.6692875029221403, 0.39193623341329087, 0.8149634125086003, 0.3685145118514238, 0.3321064154658263, 0.8821130091244994, 0.5126819098142537, 0.7521217015064541, 0.2490810176728513, 0.7473789792510476, 0.1377191248691576, 0.8731112905545552, 0.37167076667157495, 0.2018551847032306, 0.6391343316493395, 0.6498829810818338, 0.5095016824529556, 0.12411368836434056, 0.6857165595366345, 0.728389597919631, 0.8384343918540044, 0.13893416384908752, 0.051156043086339476, 0.3945522835366221, 0.7021774315180461, 0.9664029679637711, 0.8937346328630393, 0.457178494165455, 0.21522711616193102, 0.6336352979366736, 0.26726767288419706, 0.13628950637506665, 0.8252202343876291, 0.8953549328626846, 0.1406626559991494, 0.9727894305213565, 0.13233188045808586, 0.38048680651099376, 0.8619913912534997, 0.2680556820317197, 0.26289459991228925, 0.7922081914968131, 0.8526785089625418, 0.23177886240082834, 0.5635282170289971, 0.2942218688725433, 0.9319828382613095, 0.36720463922998925, 0.98388126028702, 0.5648451215100978, 0.9973939542919464, 0.9896063503276095, 0.6678758243457174, 0.30974219900139965, 0.6138943763484822, 0.7659247094960486, 0.7327510716461801, 0.4580874332818764, 0.7148855948300462, 0.3015210526811154, 0.3193783762708463, 0.5729194299390246, 0.7009199288239003, 0.1498401214370051, 0.8024617709837892, 0.6546582644003875, 0.6992573312662181, 0.6233980510220369, 0.2816126619003816, 0.9722556402827515, 0.8089546292787112, 0.8228667190501502, 0.3965111409530997, 0.21891778563745656, 0.13706461948658555, 0.4930115559366377, 0.08061879901104274, 0.9723893757331308, 0.09685347646885045, 0.35444636370166327, 0.054297663446587596, 0.2747322224417924, 0.24392971152181964, 0.18653707247554163, 0.6059851654730029, 0.6831785302075528, 0.36331807826529416, 0.911774786154115, 0.24997575428215468, 0.6786094473828951, 0.6104874988450785, 0.3031168390839635, 0.410700724383396, 0.5441503499168883, 0.6307108716552837, 0.7790601468219183, 0.697505254353997, 0.9685361200100565, 0.2817021433162583, 0.11693715636983493, 0.5124421281724756, 0.5381636229756999, 0.2826808604940013, 0.06584110328759119, 0.5204186195482896, 0.3163423828270894, 0.3494352418870309, 0.875103991061865, 0.008370670187697438, 0.042207344779274125, 0.06946350667391499, 0.7652448085238555, 0.8849312566549212, 0.21916084245243994, 0.12139915967065251, 0.6864097172319, 0.9174864218121146, 0.707314017888608, 0.46782580051186906, 0.449272860553954, 0.6218540956306559, 0.4832808027986517, 0.6734352802484965, 0.09801798837998055, 0.7656392694188594, 0.5803233074672121, 0.016925723804065762, 0.4280916359177751, 0.759272753065939, 0.3546974115594703, 0.9730373850561599, 0.2938207533589179, 0.4717204342156366, 0.760910396938359, 0.2651220337342728, 0.5942567905334719, 0.6481821197668466, 0.2895714547071302, 0.26823150371057913, 0.5449562468235388, 0.520914828762417, 0.5824006220574875, 0.6943794810741687, 0.5902701522923899, 0.28597743896497085, 0.6906386637349428, 0.41787531512303433, 0.38227786476971226, 0.5300921568839477, 0.2857412596573464, 0.6242493428037001, 0.15299829554197697, 0.8562897909007144, 0.16292018821779197, 0.5840137481432885, 0.0402405580781926, 0.23787132538690514, 0.02776599953972303, 0.11692608239388758, 0.288342139829152, 0.6706689963111256, 0.2839947727752087, 0.7475480285762276, 0.03851000884593336, 0.10153799408455466, 0.14982167863718432, 0.3834776944894259, 0.1975377435113611, 0.6118508790784729, 0.9680924500451281, 0.46467210253689606, 0.09010588274027209, 0.6136328993397414, 0.25988950283817835, 0.38455137915690174, 0.9271848868044517, 0.22389518132293573, 0.04571433156010063, 0.4132690224056872, 0.8095602899860317, 0.2004302755831857, 0.8245073000661697, 0.4025263860553472, 0.4360528711995313, 0.7644179539602122, 0.5282084404936749, 0.7836857694796493, 0.5285920916618999, 0.32404378742603523, 0.07969461980030712, 0.43825279850385856, 0.3910540496216194, 0.18601781392486605, 0.23184017385286504, 0.2023338017648867, 0.7205492578820715, 0.46163607994538014, 0.10564143426524919, 0.8560466828351337, 0.18314823447283957, 0.8790698403280611, 0.7235404635750523, 0.5700427190537816, 0.663288944624978, 0.20529307657969187, 0.025872315445884086, 0.26585233191055013, 0.49916586962692366, 0.7745665262881396, 0.9627762879628154, 0.2063350190884421, 0.6834666446671213, 0.47480586450535844, 0.28448716214382685, 0.18825684592312497, 0.8325226059057012, 0.6286561310639678, 0.1087577996666701, 0.6207378740918625, 0.4104288522350794, 0.4108005415293736, 0.9696660955122183, 0.11915598038634478, 0.8193173491910225, 0.2746599332463444, 0.6098656218024554, 0.9292887066073673, 0.6142569905538732, 0.05766198666724043, 0.2891271226686991, 0.7332286872225152, 0.8408570347410926, 0.12660806202788155, 0.5489109956266367, 0.07599553849100638, 0.9426092890379096, 0.24765591006824883, 0.08682472760964643, 0.3047969726136577, 0.1583511693504679, 0.010906917670314709, 0.25896069702163316, 0.944522556205986, 0.06234151012262623, 0.07594537970249937, 0.16105869616486723, 0.45356629802200643, 0.6374632663710944, 0.3001914280312634, 0.3597821367694215, 0.8925621967245283, 0.5858933471277528, 0.07241246235730059, 0.5227573031421745, 0.826769449555715, 0.6226000232785439, 0.5007372389529805, 0.6254709820295706, 0.923561320563299, 0.5797200818087839, 0.11245274382307002, 0.8040764735441351, 0.03714647611264532, 0.05933763519542601, 0.6553880446377699, 0.9868084819068811, 0.846601969915844, 0.9912595685257292, 0.5411967110606196, 0.3194458019544081, 0.28503696973115, 0.940558947933651, 0.015463034936463949, 0.9542894277531666, 0.02249221602169349, 0.3513696995287743, 0.3965583453713156, 0.6480682314401847, 0.04238822866653824, 0.09266875642374328, 0.7134561008482744, 0.7814274812633255, 0.09770666780296278, 0.8599989901279588, 0.971347798540542, 0.5212471557348936, 0.31747991512880813, 0.1450807372463252, 0.65117620072487, 0.9083013925754693, 0.4222592379453515, 0.6905458283758098, 0.01975954713367367, 0.3018825082636548, 0.3989451876225656, 0.033855521484832285, 0.25926813158625406, 0.5400023479033437, 0.7352796709581246, 0.2863491137150781, 0.3993791960463924, 0.26115064828523893, 0.3261317553000693, 0.41279615227638355, 0.09280822785115939, 0.39962864076829185, 0.0691091881928031, 0.1099761175200129, 0.37020732327571115, 0.47322203903962057, 0.6020481442203578, 0.2913197256907183, 0.8480503658447193, 0.8369212226762754, 0.2159265533102135, 0.2040596933892561, 0.06270244678302228, 0.30482629522564386, 0.30300441826102287, 0.10545107458851533, 0.9884500735278379, 0.8224121625418398, 0.9606029349645083, 0.8137241016430465, 0.12256305862616801, 0.3994648845872275, 0.13611055611209455, 0.3738234989638656, 0.42328184892804965, 0.9544277910360667, 0.8602725531268285, 0.708119222125779, 0.5581734247006436, 0.6308586413059186, 0.060826386546066535, 0.621321063968908, 0.8521662217677738, 0.4581651056279984, 0.29113686416864226, 0.36072087688611665, 0.04325286466960776, 0.5830232688027613, 0.36606945453901496, 0.31953469940448864, 0.4914081079298772, 0.6417067214650192, 0.8435793516150908, 0.41203235803708327, 0.4704391766670645, 0.7394040219384242, 0.13060880814567233, 0.17040717390092686, 0.07174560642273808, 0.6625377359225677, 0.6025236807306683, 0.8800347546510215, 0.8617598458907858, 0.8344530020929027, 0.34794343617049683, 0.012617908061536953, 0.24343754932350425, 0.5029522917900464, 0.5709632194339286, 0.13859388237834847, 0.6036266706759434, 0.6385922161244988, 0.08416762540551215, 0.9756385479332002, 0.02840231297593976, 0.18962846029883196, 0.7663379017587776, 0.33597121615285286, 0.21157564433012366, 0.681081775586533, 0.9639938724568192, 0.04278878227784799, 0.10497675111970428, 0.2044066673074052, 0.7811112368170888, 0.7592405724946069, 0.9022518225287105, 0.8772158453470777, 0.6456587085569585, 0.7197790789091134, 0.3039208514116106, 0.5019971797043902, 0.8450484251992039, 0.31052008957605826, 0.9093877796634839, 0.5703807373291514, 0.8825570205508473, 0.9302426324219213, 0.5410206187846938, 0.02754354153544869, 0.3058589283856108, 0.9262969126813804, 0.8178829845848371, 0.47457588199265455, 0.5186260420566258, 0.24145499687714422, 0.03303822455616745, 0.3348919328070018, 0.3556239273348505, 0.7599882333173726, 0.31110488751399223, 0.3117440864080102, 0.16944818831864428, 0.6417638090268055, 0.23236349580680038, 0.34587506485912056, 0.971536990155157, 0.3940709548855814, 0.318828670016601, 0.0648933258955775, 0.6832368804711757, 0.7001761872175356, 0.8929530106971526, 0.6065172313437823, 0.7909968577662695, 0.11683051975031034, 0.7070988588976426, 0.8471864001611398, 0.11578590196345606, 0.3780528252661348, 0.9625045931257172, 0.638938863378801, 0.8233951066669498, 0.8385351425218545, 0.7824515461131216, 0.5263191463937491, 0.8028713395585221, 0.5625443352568897, 0.9872417926766145, 0.3681408361637485, 0.8846904840847047, 0.26192715803387, 0.7632130339005606, 0.6292201295843374, 0.8353086549751415, 0.43072615273592507, 0.6299852117578107, 0.07623559606686936, 0.9200085390206806, 0.7842562196034487, 0.1959979896446249, 0.016376131571457675, 0.28265288649826603, 0.6861428381734898, 0.7076968226853629, 0.7119703873874031, 0.5306741901401327, 0.4220208590103546, 0.7947033412160596, 0.5151485053643317, 0.3972058702127157, 0.05462822465266903, 0.9877359986860426, 0.8798662117666064, 0.5505568449033837, 0.40553513014245557, 0.5858695579179326, 0.08895043292653859, 0.6099264183012664, 0.008441314642171793, 0.9760493177766492, 0.9613678249547101, 0.9441676049064263, 0.8214246003169379, 0.15584451755630535, 0.48076835271245866, 0.6035024949020215, 0.37612498047889287, 0.5799200401584894, 0.302084172353971, 0.9265083065612753, 0.29098565888689487, 0.24602687393655698, 0.17426263173097645, 0.7501661287022459, 0.41162147864955323, 0.3868646027379613, 0.1256639886534533, 0.3813662077911856, 0.9778206599687802, 0.45455850729819236, 0.1053539762985487, 0.3862350707804897, 0.9920370708143132, 0.9459078484251585, 0.4436734813563835, 0.8830642404597325, 0.10166965940626216, 0.4025768580854986, 0.7772630634910311, 0.12323142023199984, 0.45824203964740673, 0.23243528127384294, 0.6578826604427969, 0.3765290956320032, 0.1199617226242986, 0.22675296032919734, 0.5968539305969898, 0.4005983511468866, 0.715752364949822, 0.3128140640026855, 0.4494720523772502, 0.419991467540507, 0.2731538167729105, 0.502086594317894, 0.3094183489498403, 0.7552780010454833, 0.8805577295149887, 0.902189146147546, 0.742954772014594, 0.9781813303477034, 0.6363166483167275, 0.3725438257403427, 0.5120983390279673, 0.9872115141031088, 0.790564840505096, 0.16139999953510809, 0.5981465436960732, 0.48790510653037156, 0.22935582142949718, 0.07371614277372229, 0.19509813591282787, 0.1840965142883928, 0.20431153425451687, 0.4969302291390366, 0.959140169330124, 0.2683435899702894, 0.9031893362312581, 0.3687029098463134, 0.03620141355461626, 0.38881221139540645, 0.6753349209801678, 0.41152602910201375, 0.0052301830419607676, 0.2863106714133702, 0.9992699446336895, 0.5659708014679586, 0.8456850748575278, 0.7421248690482918, 0.5586035143499297, 0.8794148465102803, 0.45707397600309463, 0.5541658388396462, 0.16386096814897566, 0.6592858371803196, 0.6564806733580074, 0.8010196200791545, 0.6279639188224753, 0.2031856641673151, 0.6458557703550399, 0.9151545829474347, 0.8769786758299422, 0.6799180659849733, 0.6904471817906085, 0.23228805280446052, 0.6000224856943689, 0.3033046816911986, 0.715991163634202, 0.32302123066508803, 0.5859542166483501, 0.5390683057467652, 0.6875983398917556, 0.37324507167224097, 0.8686317365735977, 0.5818381906408095, 0.7710230038037504, 0.8764752631082748, 0.515242166767882, 0.12610688056788477, 0.3145630456262617, 0.13012984233586966, 0.7414249298066473, 0.815210289604652, 0.90905210927758, 0.40423585066392786, 0.142438698726981, 0.59167598593775, 0.6689854076381082, 0.3206711453776283, 0.7272396974165417, 0.8345578978997291, 0.07672547710487265, 0.6434193235607697, 0.3087203445341079, 0.651369014143892, 0.46951534551298835, 0.30502054553689417, 0.8437561055455536, 0.7924896011797614, 0.3664547599672989, 0.8317041294688604, 0.9665712425143648, 0.0528305184676503, 0.42771418724822874, 0.5206491406449003, 0.12193005095900578, 0.4697342463508719, 0.09725307745032208, 0.35966530333572944, 0.7915871678529378, 0.21241115265506227, 0.5366875174680859, 0.25023860092547445, 0.421005615630762, 0.4256991973898384, 0.6986680430026889, 0.4710757414192256, 0.9811204098637973, 0.2583935201252616, 0.9095401812853682, 0.6937367869104578, 0.37541234022892944, 0.12262670586598434, 0.994332061313041, 0.7990247671002593, 0.10245145295586389, 0.08550967457652403, 0.10042039847600326, 0.40650226458438943, 0.3226490169437305, 0.7383812349137626, 0.5422736648704087, 0.2049997570656822, 0.9508231734138662, 0.5776571135926977, 0.9805809124988424, 0.5965730283331564, 0.18099114349409262, 0.5201657020789454, 0.3114135281665332, 0.7884053455933022, 0.21162100753327995, 0.6096628526066536, 0.7786818515772684, 0.6306164268422206, 0.6526082550782316, 0.023776793523503148, 0.727388103720703, 0.9474420794921771, 0.003255341526218092, 0.21311983991759342, 0.2854201373436912, 0.025128788509482858, 0.3997306435338569, 0.12942599790128517, 0.4193927666504138, 0.13846417764974062, 0.9002683982969045, 0.4192267650843825, 0.10688797317660048, 0.8968779315227644, 0.09357801381969166, 0.593435488229436, 0.1615617507037027, 0.3969104868778146, 0.2058168097911255, 0.8300275718594782, 0.7133536924772892, 0.8099949020241295, 0.5971023657788384, 0.5047962655945608, 0.4948308954480757, 0.7002644892137885, 0.6456106033965258, 0.3756926613839967, 0.4182245496265845, 0.37524631154075816, 0.4190639562169405, 0.7083014940847334, 0.4869688244503334, 0.1829384027232731, 0.05683992393624493, 0.6721339534854102, 0.5140657078896878, 0.0009040149477490544, 0.7280619391959026, 0.3712765579804925, 0.3807863333053648, 0.06030370411166375, 0.7489312687602148, 0.13619860548171914, 0.30491461196827496, 0.15709812233775566, 0.7427612714485209, 0.4200114750902272, 0.47452414939913423, 0.42721054046010754, 0.512269991709128, 0.7839968756026318, 0.5189604172493596, 0.9678649031766825, 0.7694430117038082, 0.9661851659130114, 0.11724320877673322, 0.16555987123424643, 0.7659982845287457, 0.8397851933122642, 0.8308141524759082, 0.974514522674073, 0.5888823552385681, 0.6015497511834978, 0.33766940452199956, 0.5172169007025784, 0.1151684664937851, 0.09917792697238204, 0.5060481494154199, 0.6207034439235293, 0.3015730812304874, 0.7350401881896099, 0.8745082574081339, 0.12569113600408566, 0.33003765531415297, 0.9538674588418777, 0.16196141155248933, 0.9713885889181488, 0.8649598840900669, 0.8189622870992674, 0.5981536968459639, 0.3375690293755511, 0.15780833091803836, 0.4688922374638951, 0.6809653067294745, 0.8099489346942302, 0.9397818624567011, 0.2208160269515801, 0.13731709291694183, 0.03399745247583141, 0.007770520790769564, 0.0136079750537067, 0.08667409124482761, 0.5404703786188497, 0.5275884784108503, 0.6220797998515979, 0.8949268584833554, 0.06220240112376141, 0.4547565499702113, 0.5616755944201894, 0.456214811192033, 0.14549587585697776, 0.15705333126784715, 0.8513521876352311, 0.8555707570987535, 0.6777777182584442, 0.5753792445417174, 0.8092710122108979, 0.43039805717631474, 0.10813170001182448, 0.4061835414413786, 0.7620290676832067, 0.9710955949401937, 0.848538152922535, 0.4388449636077072, 0.07822048979791274, 0.007685888257720652, 0.032468281577470615, 0.04676620436150869, 0.7547309136235593, 0.8557161437216616, 0.2578097946169817, 0.4414396192494072, 0.40608624202104315, 0.14065329873717702, 0.19644810328555762, 0.7695470456140437, 0.13664420438195413, 0.9931986787283871, 0.9715427572974837, 0.9915401647749037, 0.45657463234448803, 0.26859395150418963, 0.28062277894225207, 0.7828418607966642, 0.8739985683364804, 0.08575203567051937, 0.41551736379629955, 0.6065216383819657, 0.06172263793491739, 0.17010506879235443, 0.8864487706687101, 0.6171103631418245, 0.7628600111470007, 0.210788208367501, 0.5956951636240592, 0.5256402517039437, 0.04064796753551947, 0.6579871047194946, 0.3968511365349989, 0.6603727903769271, 0.006700832888891561, 0.5821682715045241, 0.22546133794562584, 0.734471981011275, 0.5390135191250676, 0.5775081355839604, 0.38847698857575796, 0.8453847336741982, 0.4658590048775938, 0.941477806709561, 0.2975637512420789, 0.5945939092960826, 0.4070850205548726, 0.8249067365327899, 0.365635140634358, 0.1403827626894042, 0.45392877256083153, 0.9623768954201665, 0.24757332720679925, 0.5574796800533819, 0.736642339096794, 0.72489895136655, 0.7478504406583955, 0.4001746826211111, 0.28816400083168947, 0.18556235721551018, 0.23141442594983586, 0.3790518688428455, 0.9732520483918374, 0.25647077127159446, 0.2224949006171092, 0.2831329493595981, 0.011121202826457122, 0.6181425590910106, 0.43467899935186194, 0.9187154389042755, 0.17237356356419375, 0.18633908703966862, 0.4458063841849417, 0.3912464854881712, 0.1799738696676394, 0.425829975954919, 0.939064828155414, 0.13128887350533702, 0.9652928261801049, 0.3915637445603185, 0.3649603875072934, 0.7271590688509747, 0.13534767083588983, 0.08817532104193404, 0.9364372076271191, 0.18814363443177118, 0.727429761686807, 0.9932277290945939, 0.8204972337366694, 0.6334548375315132, 0.628648558317215, 0.6263936559908078, 0.7832969276419149, 0.8028167340995543, 0.045674747125095005, 0.7943958091580005, 0.30107941329116483, 0.12030684478676545, 0.8668632578967099, 0.3626401220761749, 0.07416698248426812, 0.5871969658905604, 0.6456015981458945, 0.813032797809856, 0.6463180884774861, 0.7425872273440208, 0.8178583750516089, 0.547200975814759, 0.6297972581993809, 0.6253475045992721, 0.8544965868004621, 0.040157587010636986, 0.022012759569749574, 0.5641656956003043, 0.8060041308551817, 0.15623669049953204, 0.7650688260591991, 0.9561747603815457, 0.9936242403254489, 0.17832816620466918, 0.5425655964854472, 0.006858244863806817, 0.6331805004320914, 0.4377186829104204, 0.9432754160853529, 0.8283466290492493, 0.1611242045057537, 0.7127304224124086, 0.2656178802989031, 0.10526616849523729, 0.003916817073540968, 0.36758966750883704, 0.16178653008055832, 0.205410845759337, 0.34398519008443884, 0.03173678051946971, 0.9685580908102037, 0.11752290040258584, 0.20097463649952418, 0.01699043671132916, 0.8259350267817422, 0.4270421810657322, 0.002046184804222584, 0.2893358209362099, 0.4032794151614779, 0.1551112824129457, 0.8879493926574799, 0.8828050518790767, 0.3910640017637924, 0.28207238476046215, 0.1453512595691372, 0.6329104504723897, 0.9356594893434306, 0.8830201378973107, 0.32787900254361746, 0.7524218897758113, 0.3021357790059974, 0.18880418288444234, 0.8252838539655625, 0.5677734267472772, 0.29468100398338315, 0.6644797868172837, 0.2345284390740826, 0.7833541222696632, 0.4622428710965072, 0.8180356085413665, 0.12176541112976969, 0.584843100502246, 0.2076456133040948, 0.43119125370999967, 0.028992135873369018, 0.8390508629446168, 0.30494489048984996, 0.6280335683239568, 0.05307911693569578, 0.8573102056913785, 0.6401741471794711, 0.27379230359133766, 0.645161117163579, 0.9104097310863962, 0.3315222698376239, 0.5311818367945779, 0.8652131787064083, 0.05266485162702483, 0.9801456049196392, 0.8704025678050438, 0.4548102891048551, 0.7721429272543505, 0.3241649064877178, 0.31469187001564736, 0.26334638977412717, 0.03186660049441992, 0.8468763130656728, 0.19742761055665636, 0.34570779894698056, 0.6323455327655063, 0.6875167796567199, 0.12259887929079005, 0.0363323122402297, 0.939543188238221, 0.5489445325725613, 0.3518013616113064, 0.14453563213451215, 0.5645100414748986, 0.2060199151787191, 0.28922738636034717, 0.5886677026646538, 0.6672156439868581, 0.8099904763954191, 0.9395220274019341, 0.31919505562810946, 0.5667026842767869, 0.19415684121677623, 0.4903622602229071, 0.5434191206814979, 0.39852215448310746, 0.7065311902984609, 0.6081023293754982, 0.3592801531792621, 0.12116546645226811, 0.5914790317147564, 0.26251860772831725, 0.14464917158931845, 0.5297961258930557, 0.6478751446227324, 0.3604381026258262, 0.4107232060499867, 0.3953008268223248, 0.5323642799386871, 0.9563146192752506, 0.7587602314961697, 0.00027251187538357424, 0.121153316398938, 0.9594212052512119, 0.22759321662521337, 0.4565702003992079, 0.6702201922004807, 0.36616708105055973, 0.991695561201666, 0.6951684959011308, 0.6190500620335893, 0.21584536965123813, 0.9312075516725733, 0.15601909764491273, 0.5179008075031754, 0.8255063490752199, 0.13494994051878462, 0.9642310090290442, 0.8272333261653693, 0.6366021917962937, 0.6272395345063634, 0.3602636410876908, 0.940511749873045, 0.0009212294184705039, 0.4377848361798714, 0.02176286603887012, 0.7769672962061562, 0.782387956693346, 0.46341576437396803, 0.656171249198167, 0.885971474612103, 0.7242765021053905, 0.08290761159813875, 0.06457500605283284, 0.15185945222172026, 0.08498716445225962, 0.14438083935346202, 0.04711043670053583, 0.6778996368590091, 0.12432456118167912, 0.7563736054661448, 0.873973499785114, 0.1555684810832395, 0.34224996347013026, 0.36172841570411396, 0.972676126220914, 0.49547019565160233, 0.4529244105540434, 0.9962839176328748, 0.800125119953785, 0.1738920376037768, 0.18284623538536637, 0.7190213390838295, 0.06399111697888138, 0.43131888124822604, 0.3345685233817419, 0.6918408961440536, 0.09191401030276525, 0.6094467690319858, 0.3155152765543553, 0.8511304133976706, 0.3775476493148492, 0.37718085648958466, 0.5018890912409433, 0.2716755222971863, 0.9214684748828923, 0.8989643462692504, 0.4649826286370933, 0.11209393856729333, 0.22266178357086241, 0.7288050076897057, 0.44885240894498246, 0.036118231365422915, 0.8853099398791242, 0.30371015324266315, 0.6325498537175843, 0.9268946284372944, 0.574772224567346, 0.9628607169992635, 0.8551770482833655, 0.008154746481042974, 0.7077596087419412, 0.7718971969298235, 0.17830719702486064, 0.8533683250297552, 0.30414568345346915, 0.07114972057433411, 0.2633680005183603, 0.23447101218581512, 0.6559142128080728, 0.3462490453925803, 0.2572834998233635, 0.934642244682551, 0.19259723052883282, 0.25112809867144714, 0.719306929764853, 0.046652277704817946, 0.8048231508977957, 0.4035945094394259, 0.754843016228095, 0.44265447223390053, 0.24163832945686836, 0.3508978652304121, 0.9487337341165799, 0.19954028994243, 0.7753665058367634, 0.1261038361438086, 0.83914023410398, 0.40628145534635696, 0.8904822604676276, 0.2052272748293289, 0.46178436950453083, 0.591897140583733, 0.03771394287310881, 0.34487766607126213, 0.41897458442963253, 0.9070545816314942, 0.5885735157093085, 0.030665400969038248, 0.5685906497268208, 0.25636706329293135, 0.16236531729561277, 0.3672592843529242, 0.26167612287900055, 0.9198553184427375, 0.5501237881758122, 0.9076478851904309, 0.7175677146126508, 0.6348659851182928, 0.738882198702744, 0.053165947486076504, 0.07685485583976492, 0.4170544035053654, 0.7530172238532147, 0.3824441052690454, 0.13183659456583174, 0.6946075275422765, 0.5961802083489254, 0.0692154179454898, 0.28199758977763356, 0.31683855437220854, 0.538331444827026, 0.8005022089671784, 0.6995404503460174, 0.2876084865438928, 0.6803895260833673, 0.9614047085146076, 0.4217842196495911, 0.7451619152592427, 0.022636969868852996, 0.09071007475742177, 0.8257945290556595, 0.8672837704089812, 0.9135872070709495, 0.4681264936047449, 0.5697319106939637, 0.6892971196577914, 0.8251242176940218, 0.24268165740736847, 0.08918571417302146, 0.40770710749949846, 0.00887880468457436, 0.22222523143189055, 0.08802297896712996, 0.04229681129423801, 0.27951120411954833, 0.3764968275482389, 0.7686805463597162, 0.4401306364653953, 0.4573791871848498, 0.9550081226207489, 0.7591288480403849, 0.4915536774744538, 0.205604153132955, 0.134868882715783, 0.48918377446252714, 0.7090594014668168, 0.6843626683545188, 0.08242553746318204, 0.4642178367053419, 0.23937677032495597, 0.7309833110928308, 0.6956405719072711, 0.8535413315180679, 0.5446728940069856, 0.08533491880607769, 0.3944004625683343, 0.7994991032172084, 0.2164477184644662, 0.7135783586336566, 0.4884831950340768, 0.08373053917017537, 0.5917610478476284, 0.6674922873440412, 0.35014975370696755, 0.49517124851287797, 0.6613573248279636, 0.3802171804990466, 0.11391385038906288, 0.8544333398683165, 0.8983031966127826, 0.6680778169363261, 0.23296680235267564, 0.7980421992414213, 0.513600541684651, 0.525730009757563, 0.37865528098107526, 0.7443857543743437, 0.32898043690749845, 0.9267339237232587, 0.3916316623498167, 0.21583244809116986, 0.6108933063764448, 0.12190382848315895, 0.05795075615419576, 0.18585339493384467, 0.4265454993211716, 0.7841012401338366, 0.33272396587502584, 0.8534312979592312, 0.6009275803559111, 0.23578725703009518, 0.8324782123117312, 0.7826363192089726, 0.36174336024410503, 0.46230743039848843, 0.47376876037061144, 0.3678668010995072, 0.4017431618223575, 0.07840386621932616, 0.9279892070050552, 0.42793000217781685, 0.9587557377816119, 0.5263942942488995, 0.22350792178613854, 0.052445741452695316, 0.9908397138466685, 0.2500980404942075, 0.6829265211588706, 0.11852451787498941, 0.3013589198082067, 0.8329930182716929, 0.760481752519026, 0.9505592437525293, 0.08324982179541662, 0.8163606057049256, 0.4311119312995815, 0.0023911672020161534, 0.5746291987093409, 0.22315561753963054, 0.5084757985483405, 0.9426895664145185, 0.3709217647432501, 0.5826098985446154, 0.23198610325080737, 0.943977046006374, 0.47921249737199123, 0.4412200057857809, 0.9476458707861092, 0.045738384280730515, 0.7440122966208216, 0.5587358512482475, 0.6867640944542505, 0.5441339218722309, 0.22356366387145854, 0.7911120734356646, 0.3726953927021709, 0.018267589919367833, 0.04969670279331795, 0.30194420494378316, 0.7617935659252226, 0.03786146595146933, 0.8032907384522256, 0.5148928437192715, 0.026497693642896003, 0.7562626268164586, 0.24084937566731512, 0.9900162673871896, 0.5770596352891295, 0.37977057043713136, 0.8054207224094382, 0.6449681468487811, 0.47661518558967464, 0.6054630496227391, 0.8585937854748453, 0.010922473849501069, 0.8801276229682918, 0.3842900661568762, 0.302059066968726, 0.5282769570892245, 0.35696922171147905, 0.45964440944787543, 0.43105541008311343, 0.266541068882056, 0.1773350480081508, 0.625605513254196, 0.07627923477584031, 0.35297661206462905, 0.06399992814421374, 0.8012573029771279, 0.5988537160717968, 0.775179820309573, 0.7868373451818418, 0.5288757403368023, 0.6927594213461519, 0.9076439953515621, 0.7746089955402077, 0.47985422368325525, 0.5547764500676566, 0.7754494052083825, 0.7423050553637645, 0.8712909935000541, 0.4295708781702815, 0.9914003267663137, 0.5892289698919039, 0.07275209414974826, 0.26120918587482855, 0.1569674079759794, 0.7865373097173526, 0.4572516078945914, 0.6816153429914849, 0.4239542214959864, 0.891339465192573, 0.9220303240191849, 0.8704793332059096, 0.8311150077207858, 0.6768975025540995, 0.40411864967994826, 0.9459818123797102, 0.8453923354042879, 0.05854081503333863, 0.1558983828448729, 0.5223476813940962, 0.802904691532934, 0.3459328047581237, 0.23543281492526158, 0.17112892107419742, 0.09439383621100295, 0.015444498324765465, 0.9349297310812379, 0.3205826664760323, 0.7639851607294579, 0.904151529210235, 0.43898243616850585, 0.8224805696304519, 0.6096093745024677, 0.07622355975099515, 0.6860819926917638, 0.32974242461211856, 0.2632632314535682, 0.7772794526938429, 0.20396662442736302, 0.05717543744910236, 0.9521053962218727, 0.819668916988034, 0.009412243942937826, 0.674833232923555, 0.5595359880184179, 0.08426763215952948, 0.1845440135798554, 0.17549086921303902, 0.5671045939097512, 0.6947564656008464, 0.935433974251328, 0.06876677844106338, 0.716142997612416, 0.8335624602169247, 0.751900542744193, 0.21008292822787822, 0.5314087389791223, 0.9539426568404354, 0.49432460498496733, 0.7662805473894664, 0.12067300248409352, 0.9490060225911943, 0.38129757160028743, 0.3304637622494121, 0.6923925118449249, 0.6763837818953047, 0.31376603445089246, 0.5500136363506121, 0.9695662573635561, 0.7969621201873063, 0.6622009734643651, 0.9208935437033601, 0.6345354077323916, 0.5539869805621622, 0.8271605574226225, 0.8381378777363601, 0.6482903130871641, 0.9121341296999985, 0.01877471354184357, 0.04333833299240708, 0.29663301105482776, 0.7826167619606251, 0.6260000064979128, 0.022931176394607178, 0.4702176111712024, 0.34464613773622854, 0.5622233704239853, 0.9308045897435863, 0.17052869748875965, 0.5380218062477551, 0.8575389690788897, 0.16184626778171896, 0.19261265882286527, 0.415940048096498, 0.10152831619720848, 0.2557631049165596, 0.5248283755391164, 0.5727453970128159, 0.8788143445646042, 0.2959781503580521, 0.43549633487840866, 0.3609061940005751, 0.1909449912841873, 0.5392619410749471, 0.9567071103280261, 0.30935584991961085, 0.6105278507130479, 0.11064377140205917, 0.31109553996540673, 0.04125403009092443, 0.34873047660954803, 0.16387727336452274, 0.4483096419197691, 0.35998169886965325, 0.8856564503011035, 0.6129385575064529, }; TransResult result; EXPECT_EQ(TransposeWithShapeCheck(reinterpret_cast(data), std::vector({8, 1, 24, 24}), std::vector({8, 24, 24, 1}), DT_FLOAT, std::vector({0, 2, 3, 1}), result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_FLOAT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, nwhc_to_nchw1) { float data[1 * 24 * 24 * 3] = { 0.5576938179613676, 0.5480679233387061, 0.6417021568083997, 0.6750876516427856, 0.24353641279477833, 0.9823224495525934, 0.7731501711752171, 0.6953374325865181, 0.3602570492037227, 0.7433939974308816, 0.7004059077803506, 0.9726701877796005, 0.914153253113105, 0.19895076559790037, 0.11256718369098428, 0.0022265480498459, 0.012614468166029846, 0.42981846729932316, 0.19866318622083912, 0.6931676652271119, 0.5259354601865902, 0.8774716463189989, 0.04933882811306345, 0.7554362854591897, 0.24900653579384002, 0.6817184766496525, 0.46022153322521797, 0.5520332209722566, 0.8967786967807705, 0.4793136280134549, 0.9912034603665761, 0.0370223139896404, 0.10844142009323199, 0.3323270294507361, 0.27005041666217366, 0.5502761733796465, 0.32836141278496667, 0.0603131267983219, 0.8811862678452823, 0.9715790422861825, 0.20690528700779764, 0.24009629432278679, 0.7242783251562759, 0.5567967676701338, 0.9493545988254306, 0.5527640012764481, 0.20463828478253465, 0.7964892755562489, 0.2724333255839113, 0.14616326216863784, 0.4662575194407572, 0.1527199695829402, 0.6296157294792657, 0.5936738217081192, 0.44418427285801776, 0.9640954753646813, 0.16592882093823258, 0.990476417594261, 0.36846030912030836, 0.9859866019657224, 0.14510035718537184, 0.002330958564625618, 0.2358787856060547, 0.13460757957409675, 0.5270410644078244, 0.5608551370694833, 0.6744658506273948, 0.9281730412702204, 0.945964541591334, 0.5451854837499628, 0.45519656900706884, 0.5600342383454875, 0.6893843112155923, 0.05767366375949612, 0.720030390653406, 0.2673573323323931, 0.19679167663135078, 0.20677275937071815, 0.7533764068311143, 0.45322589140773506, 0.16132030555888355, 0.4715876236843328, 0.37355093745443213, 0.23481442646444717, 0.0964560448883105, 0.4316713413341995, 0.1486933723029148, 0.10510210443177692, 0.8613778389131638, 0.07823117805129631, 0.3254970321441475, 0.36363172551401024, 0.2085993840241619, 0.46320953694522016, 0.041909481052292086, 0.10858147254244044, 0.8749740701787951, 0.40803137171006676, 0.6945817896285724, 0.15502984464465686, 0.1644490965265104, 0.42563070985356066, 0.6654145558749625, 0.013508862338429739, 0.04004884332870884, 0.9014031191103209, 0.18087791778059537, 0.00303398548561018, 0.0038954249311695666, 0.4808668404807881, 0.8542934622625173, 0.7367959934022067, 0.9896217208245889, 0.25149635186390307, 0.9050016678033207, 0.17031133805671994, 0.2494715702411735, 0.5680930437476771, 0.954549933820125, 0.2557558871357666, 0.41318707539729127, 0.21830098176483825, 0.9861938251287953, 0.4672252846267282, 0.32074855054918405, 0.9196828767636545, 0.4672430576408313, 0.7055647713037171, 0.38979676119223083, 0.0358453349442871, 0.4017341341400964, 0.383631632999867, 0.7047848728340145, 0.06834239147352672, 0.7616502164965523, 0.4107587048469111, 0.06595343518235453, 0.5989834812104214, 0.8862218980474931, 0.7927013837463739, 0.6918854518083776, 0.5545361856803096, 0.736351436409856, 0.5911325727260477, 0.8370808709961333, 0.6542416800517766, 0.2613787103362436, 0.9904920761291204, 0.2611136415462978, 0.6065738141875372, 0.31842130537927016, 0.8052245691122532, 0.9653573346034848, 0.21230284391317644, 0.5036101372743131, 0.5147461408512055, 0.5839095046253248, 0.09263478211668819, 0.47813464137618733, 0.21555704875753656, 0.2557611178903839, 0.6801750264462293, 0.887653344662633, 0.7150756721261634, 0.3791725115370653, 0.33115085237976816, 0.7396670803132176, 0.2212103957921122, 0.3443790134865867, 0.7249200847189967, 0.198746899771007, 0.827802415010975, 0.7983836884890896, 0.36473450549974684, 0.5798915139606355, 0.26459354102142374, 0.32253490241826444, 0.7454675023371802, 0.14864548914507048, 0.7436637136812738, 0.7875162903072089, 0.5586611197141035, 0.13444458615243549, 0.0584828568322322, 0.910350130922468, 0.6934462857903217, 0.7681269695003293, 0.05593434871311043, 0.5944713140884937, 0.2688403266948515, 0.8149779553107497, 0.4721117833920081, 0.7872139137118884, 0.4767667472242454, 0.49288902255267475, 0.535368023415492, 0.285442788189455, 0.41371401125823193, 0.6359195295816026, 0.40006884264320053, 0.0396525318325186, 0.1128901838996228, 0.18928550101259878, 0.41446455995710885, 0.950038806411715, 0.8969656410445062, 0.4738685767876225, 0.27339773093230824, 0.7896722423559953, 0.11421088543024749, 0.01579675654776469, 0.6525673934788851, 0.10070832493884896, 0.20296075269570268, 0.9034835925846796, 0.10616464455460517, 0.8467913390425336, 0.570442903736869, 0.4167239255685742, 0.41551022895908507, 0.41536471357181215, 0.994852989759743, 0.2513109849484241, 0.10265360872088514, 0.23008445309632586, 0.9572558290726614, 0.633573216040501, 0.35510350164702775, 0.07832911776016815, 0.554940923788402, 0.8425244929657464, 0.7547507557346254, 0.7603504216202375, 0.32454656934246384, 0.12844765027072702, 0.2815142314209388, 0.02176898509566194, 0.11939825073119481, 0.32091865605809244, 0.3157593965935449, 0.6690397046010088, 0.48941224655962345, 0.623726143557632, 0.1575709812498055, 0.22003985504243984, 0.3229516294381015, 0.7095236946648049, 0.13607798635337598, 0.44804658784405627, 0.6310339935297161, 0.37901062340884994, 0.08598374871008696, 0.6158424915733098, 0.8706905255134766, 0.5386230791292398, 0.7144996557898061, 0.6356807028139803, 0.4425710876561455, 0.5365983278275497, 0.418779162764653, 0.9469773008495318, 0.30927187206231654, 0.40936893971458166, 0.548309347248721, 0.8179140740843444, 0.25667308138726475, 0.49060334690872587, 0.19326779070356015, 0.8626424645173111, 0.7063301594750016, 0.5119758149283705, 0.8168071724420188, 0.16641329612366873, 0.06754426402085834, 0.40923910723158874, 0.816499405124871, 0.9634459187238493, 0.8487566728412825, 0.3896457253625296, 0.3301225172106783, 0.8825770435506887, 0.7402659538376386, 0.26080864555541483, 0.6978130505246456, 0.9847530894291007, 0.8441762152997584, 0.5256740994874012, 0.4843213425499143, 0.7017503043482971, 0.3591905906139944, 0.43038245869640657, 0.11348934492273088, 0.5799067477434993, 0.9152388228522966, 0.7600253102481189, 0.9185955898312771, 0.4871844797098087, 0.008110304658435208, 0.2737326463684574, 0.41937549531706264, 0.3112662550079637, 0.9097323699454616, 0.7956152302108189, 0.509438821155469, 0.3930555738378564, 0.04276396841566121, 0.7814793117071854, 0.47911845356231575, 0.9389220865118408, 0.20120685769092328, 0.7290407441224809, 0.49700650040477534, 0.7567614845781191, 0.46055879064643657, 0.2777255383285019, 0.6165739435500294, 0.03207769742241595, 0.8953375189380939, 0.6671961409330499, 0.7975276475662959, 0.30314186832239975, 0.9596376673343043, 0.640093909231198, 0.8436821711164175, 0.1237345548042279, 0.022886213132301436, 0.250299242916484, 0.7843568303497188, 0.8609937497701943, 0.29284076270596604, 0.7675030315279653, 0.5631041599341441, 0.24860916694926627, 0.5560400086719663, 0.679972623497357, 0.6297084257593848, 0.9726350531669181, 0.48577991928492015, 0.36414041461821367, 0.7074466158829527, 0.30538790875902155, 0.8636898203206251, 0.14009878314486368, 0.41736161076242584, 0.03884685622262596, 0.6049713928898043, 0.14830629853298138, 0.174040945005705, 0.8394226322869928, 0.23500812773962576, 0.9027325229904037, 0.07210232833626673, 0.524592542808368, 0.22636793436272418, 0.6058030611127116, 0.27437111512336143, 0.39057502635271857, 0.3942672946450676, 0.05965904887727835, 0.837149862010498, 0.46762342221081143, 0.2918591238325783, 0.6197874282482766, 0.606961856564349, 0.25598434684729043, 0.04034986432833665, 0.6853285787984453, 0.6924920794474219, 0.6199159287396855, 0.5294984766990256, 0.2497349859377368, 0.8618246322637451, 0.57362010476332, 0.8363347417707052, 0.5663522588730695, 0.7372789472300072, 0.5282798641981886, 0.19114958847316454, 0.768101200276183, 0.7312494341931193, 0.9037344787676701, 0.6008521026900275, 0.17757135544241376, 0.697998863172609, 0.270660842170115, 0.3173567907124467, 0.4408583750989511, 0.9688837432017031, 0.15325240685171326, 0.5873937362047855, 0.6060192520674768, 0.662708767649447, 0.7479938702505384, 0.036559310251870425, 0.2781731367872762, 0.5903087296332238, 0.44416396951615966, 0.6364481666190819, 0.0599973686234887, 0.6462328722469546, 0.2903981867328158, 0.11453030427680466, 0.04898283124047065, 0.6496930178456091, 0.0889054813776653, 0.6316790255001938, 0.039653072192095906, 0.7935221546263311, 0.22023940332382175, 0.4279605117814289, 0.20525060803459405, 0.5404833527145714, 0.23717483185086208, 0.9786164402703464, 0.5525056845431044, 0.5850515639649501, 0.13534554243929542, 0.8898566020334531, 0.9272006593578849, 0.33271341280193, 0.39999980363972587, 0.6694541951302534, 0.29583524445415277, 0.8389631975404395, 0.17883121234879118, 0.5208034566041221, 0.8778591814372076, 0.6436522945258664, 0.715961659170718, 0.5162066124785467, 0.7792030175008168, 0.03980357054734318, 0.28297437515915647, 0.8949085776808361, 0.3025012559871788, 0.18238528044315205, 0.2496632683186638, 0.43986870620151064, 0.005381997132809846, 0.832457996422202, 0.3070560150214996, 0.46999899129919254, 0.9674353985309306, 0.3528169416286786, 0.13825446763275795, 0.8528802875571208, 0.9265141773481097, 0.49222794645391554, 0.816763289811324, 0.7501567103388216, 0.7030820831074535, 0.14688252055455986, 0.08674132803750234, 0.6804400231686772, 0.5642551096559059, 0.36407252083885433, 0.8965979777482974, 0.26530479151162056, 0.08833198768361261, 0.694946176773454, 0.5049743798224671, 0.35322988319400805, 0.5085146662370216, 0.3715996766715721, 0.7636110816368085, 0.8240197376801905, 0.21947402581862918, 0.877615468813198, 0.31776581529233927, 0.32254310459801105, 0.8381086608218498, 0.5732121905660629, 0.685007228645308, 0.1264748334029474, 0.01390285801777269, 0.7470850821296687, 0.7567472028783842, 0.8757581539790499, 0.8160227628454733, 0.31610283349055857, 0.907322093268178, 0.9137489054962102, 0.10241018294853332, 0.6978352458800421, 0.8560251137039097, 0.3903715982953918, 0.6894629329539623, 0.024534003121607695, 0.768703697365061, 0.8407068458923248, 0.04521871276101308, 0.3911478980175912, 0.6048366748080617, 0.02367129352716124, 0.6373792187400823, 0.05367367526069333, 0.5783021171133504, 0.9085193553173185, 0.3077714610041279, 0.9139449448889625, 0.8484878574968941, 0.6279264755906374, 0.265504442325993, 0.055705717555123546, 0.41911626457549866, 0.8182890630399161, 0.1856657129414182, 0.605908791928396, 0.5049329705377718, 0.14795677979058397, 0.11473188943088652, 0.6800245200790865, 0.0851766335876345, 0.4066331998413033, 0.6083213289049307, 0.7408546264277205, 0.5917865120906529, 0.1811262015095133, 0.1515139082850422, 0.18245356961058734, 0.3202506649996555, 0.8347462304916916, 0.5391565304461164, 0.06139823543315803, 0.5556014140682733, 0.5624966145847786, 0.7975693287711333, 0.4231662930615506, 0.7504475253633486, 0.3783321068312443, 0.4156346278851234, 0.7615701321627198, 0.4215509767310476, 0.6195024953733143, 0.31028122589925966, 0.4817147366535751, 0.6450608352745005, 0.848323852071799, 0.14335792395875457, 0.5794559042167301, 0.4694763662956777, 0.569959697175572, 0.44398307932725645, 0.7516506165708773, 0.8326804416539675, 0.3386896839514363, 0.4838291003934557, 0.7881931631320024, 0.9947910463626235, 0.9379908782009793, 0.6250101717036214, 0.4295650024457074, 0.11489890753723331, 0.8150438598132201, 0.46668569716119923, 0.10687123028889634, 0.8322242767985054, 0.1683570545191131, 0.3005593571845695, 0.5141109538083758, 0.38481488230328686, 0.2790369765995646, 0.101622534940505, 0.21198524988541256, 0.5618268632620098, 0.6020576478139832, 0.6861363838530093, 0.2506744442166098, 0.862875834352914, 0.515617605529789, 0.5774223878377291, 0.44412999428852895, 0.7871540883141954, 0.039557168583882696, 0.09303719406445532, 0.6186809320638805, 0.47547710684047406, 0.6365615446012882, 0.3635186528606992, 0.5404640956394502, 0.391697345346507, 0.24250401036270308, 0.5173064771408595, 0.6276038960866358, 0.48087219344337306, 0.8595156094358232, 0.8384240955628381, 0.8664804169889542, 0.10311625824407467, 0.15117205862777972, 0.2842565683987759, 0.4313108920421431, 0.6859166896968107, 0.8708403014819337, 0.9238740143377883, 0.46096307835937356, 0.5259228242606849, 0.20687524999638973, 0.7628475477918988, 0.2355911329326772, 0.15255012458685524, 0.010532812497153099, 0.7287022892124747, 0.5427457659655633, 0.39110174343301596, 0.5628813409165464, 0.8640947828253543, 0.18687012766308642, 0.2208727363386015, 0.4023460735613871, 0.9953633859063187, 0.9843585772801463, 0.8152799497172286, 0.7336318791938153, 0.8585384885791164, 0.22226454850151056, 0.7412558552103334, 0.09585638221818615, 0.09327791456333101, 0.21084765923063864, 0.700121735075444, 0.540143349882634, 0.4907451177552751, 0.9457904755937173, 0.5557027424836565, 0.40601299165301985, 0.8741342123700807, 0.6043822127088522, 0.38880973678461517, 0.2913965400017039, 0.635045386209623, 0.5584246149451094, 0.3590258586858043, 0.11895408520648643, 0.10807602415016127, 0.9324394591487412, 0.21412622156242278, 0.18275262543142878, 0.2785720549608761, 0.4168915541552838, 0.17402817591505615, 0.5955109224024612, 0.6860410428994667, 0.2015937407328915, 0.6093048651358479, 0.8362971024617537, 0.8849118337827289, 0.5579648244813307, 0.1604197275319652, 0.377331907017168, 0.48923170302655916, 0.0015534694918136749, 0.3377638457595308, 0.040295444090547194, 0.16683864032852347, 0.5086224074379112, 0.301895126385361, 0.0380164358652878, 0.7761068172424201, 0.7161338480188987, 0.03511408488081447, 0.8458824121077834, 0.6212148954455755, 0.4807109372544841, 0.5825144300241644, 0.3252230173406172, 0.15151664214217997, 0.31379789941978886, 0.5859846921828898, 0.10548618728899939, 0.7799327059130073, 0.5017178396499485, 0.6302059258053215, 0.6462918881194284, 0.037315649813791096, 0.4131988922704686, 0.5496040687131041, 0.5815118195729374, 0.9333959432119138, 0.5606280619195357, 0.10529898355514655, 0.40858542505531903, 0.2622984173231212, 0.14560109732536652, 0.09631357136150354, 0.9533428464170677, 0.7821128845752052, 0.087564812497272, 0.6927678723431243, 0.3908157894176354, 0.12769479893109448, 0.28670323747922943, 0.32053314608704864, 0.5944289290157524, 0.918328531851499, 0.7690452018739381, 0.1504256727793163, 0.9181276962383033, 0.8676929204814569, 0.8245058563795197, 0.22471326407596626, 0.020209696387830434, 0.28398136463137413, 0.8742061750012948, 0.7080830488792054, 0.9427807014726228, 0.035691735149414594, 0.30867899872761073, 0.8079236541236925, 0.9830142838917029, 0.14378068100085928, 0.585802992322683, 0.04618299224281264, 0.906567586147243, 0.6431029480572278, 0.978991611793116, 0.3927665003335742, 0.9852044970284112, 0.90920549543672, 0.9916129484423926, 0.33240595005615725, 0.9641936713436415, 0.5415271388101568, 0.386704376120808, 0.352173417181341, 0.12689054054302085, 0.05460816935049695, 0.02749063973513044, 0.15320500124098402, 0.05589652047614602, 0.671264386437005, 0.690019196582955, 0.9792882505670737, 0.32074385906006564, 0.6785067283721109, 0.5650652839468214, 0.3323412691373995, 0.33346421693887085, 0.4522524488689421, 0.6222518184003937, 0.2796375762118375, 0.08701083613219196, 0.10327769425645661, 0.42199350041600436, 0.716345677249626, 0.7478402622044948, 0.2699935286819868, 0.5839245986158135, 0.141175087073799, 0.315394010904003, 0.40122325862538133, 0.13567435950327245, 0.6302297688265931, 0.13032245945931542, 0.06388400985569753, 0.06165112274849838, 0.00256671520725571, 0.12022737044113196, 0.7570811347298088, 0.5869283108488538, 0.04865807065818539, 0.5279310747451385, 0.5873285471779122, 0.9346626555052675, 0.9355999029242515, 0.8488560464150674, 0.25035821705527694, 0.005502195322430903, 0.8061332855050097, 0.263615164003856, 0.15228560281857328, 0.33938585999470916, 0.9103450312680861, 0.0024754880413346836, 0.6884758620551574, 0.0822476396562889, 0.76205750363049, 0.8172347973442694, 0.9214016455934766, 0.06309530860411938, 0.6477500880815694, 0.5471141631488152, 0.34430528503769187, 0.675451984773968, 0.050092295886368765, 0.8108396869466088, 0.5223003594325687, 0.12916099885366905, 0.5944367076434868, 0.15458609355946118, 0.09350772631506876, 0.6759427595358818, 0.43259107705555877, 0.4128426881984989, 0.873314370429706, 0.28851810307018777, 0.03426701049550318, 0.2835014145918603, 0.3838462692063309, 0.1114557011437497, 0.0647251610020978, 0.4657950297766186, 0.9034110226366754, 0.3257198707861738, 0.22707077383985486, 0.6238078513067472, 0.1795620365862599, 0.8502192712624803, 0.6339993330568727, 0.07541607354608881, 0.3677973310632141, 0.1017850925706153, 0.7292249395583527, 0.13403602141551874, 0.7574287993118725, 0.9902209094287545, 0.9530360146704632, 0.4855538696652342, 0.08944953657777999, 0.9826440640203283, 0.0993780068507144, 0.3673644605674675, 0.42089152977923683, 0.7840823982240984, 0.1642628862370007, 0.42180479050443176, 0.9062905450373338, 0.11299431248688241, 0.15720226657930703, 0.5188575412994682, 0.4695447110816021, 0.1891201711835082, 0.07931477242460494, 0.2869951115264081, 0.5353614977912917, 0.3302454137917453, 0.7582745052506809, 0.6288357150342787, 0.9683115424644188, 0.47703270425834443, 0.8147188655365647, 0.24089419521054534, 0.42683269753999564, 0.09049937046097911, 0.5221400082332656, 0.25422858972984796, 0.4428874994360409, 0.6263972136839191, 0.025660370575602554, 0.9941624285613735, 0.45655675103301285, 0.7868622372963548, 0.47490144756023966, 0.03623782209981852, 0.23858764239770813, 0.792905409090189, 0.10528149339125581, 0.6938787595875271, 0.6373109153860876, 0.2369904707552496, 0.2535497506022084, 0.362784258536637, 0.8871970275709483, 0.5371714185957712, 0.18612006988393281, 0.3105201870093366, 0.6431145666956772, 0.43510833638726243, 0.8650306308730747, 0.6647676364679233, 0.3671635077914902, 0.26975405692122023, 0.5513817267954401, 0.11409342083819618, 0.7401906890372566, 0.4543637222307828, 0.11234212817124256, 0.015236741198945358, 0.2718008029139152, 0.24775037353256546, 0.6932025352071033, 0.35994464028232376, 0.6212388268713533, 0.2353715196443774, 0.7056842331140273, 0.6281062349165449, 0.8990410572378255, 0.6150478247355882, 0.14983193641298098, 0.13175976405917256, 0.052748374640018136, 0.6762103626227616, 0.8299117018175071, 0.8940709299691674, 0.10448467671854955, 0.5854392560620701, 0.9869207117898028, 0.598250699186468, 0.09941022297908908, 0.6428387188696808, 0.6938074993804616, 0.49345606955707433, 0.10564621295462462, 0.8730247668913396, 0.5693111552840876, 0.6451107754618787, 0.8268479077193474, 0.6109414753717066, 0.5642582138462809, 0.9972427087729138, 0.6210232613493811, 0.5919936865559303, 0.5191046008923272, 0.12187375071541129, 0.23663160371727765, 0.8911388789395779, 0.09170073062022499, 0.9151169937896009, 0.509264551627256, 0.6775185133293696, 0.5807847949216597, 0.5049738483313311, 0.8926164238380273, 0.9055894805021459, 0.3087999310101207, 0.11153600376557016, 0.5216542563502468, 0.7752137734199523, 0.36336189612943315, 0.578729717420777, 0.155536036963988, 0.28575020651201066, 0.734142200046549, 0.8352195411494564, 0.3006161153901252, 0.3385247520939818, 0.629649706648176, 0.4751978516601386, 0.046652306728973136, 0.1939043713632571, 0.25762053965235965, 0.5827420694536557, 0.7669274996476307, 0.8259088244580408, 0.7131797928316381, 0.11693237140089863, 0.2996039384723006, 0.8060861134326347, 0.9811994408643644, 0.9168704216696336, 0.8332240607025703, 0.8081707614206302, 0.8741744876565002, 0.06749958945821999, 0.1746768750613229, 0.4619743507528482, 0.516280600505945, 0.11924956852409285, 0.7190526080623696, 0.7492979599727628, 0.6107457676123809, 0.43764245520627065, 0.39770626841941925, 0.5994539427198272, 0.029650825870803477, 0.43677939717333114, 0.7269927062916417, 0.9399851529255545, 0.4170048577307417, 0.21157476325939661, 0.1719914610443789, 0.4824712574759782, 0.7019666424206221, 0.29969992238435406, 0.5524848644926086, 0.5389999399640987, 0.13512016024776252, 0.9193314618277667, 0.9060064439328889, 0.6519346860670783, 0.6803898392289517, 0.4356093165139081, 0.04216471446744485, 0.38598035373059003, 0.8690026759179446, 0.529699047649506, 0.9906048951292297, 0.8222557998599189, 0.8936486293424404, 0.8370374083834665, 0.07222599597929102, 0.5614875873690469, 0.6866355448825368, 0.9189440327960383, 0.38854122489677667, 0.7472313769107196, 0.009679487835292266, 0.42965353004741547, 0.4961903042881499, 0.5197248295836395, 0.20866020350533698, 0.971688128137546, 0.3812919886435633, 0.8442419283811183, 0.5035567916576319, 0.5842646327860408, 0.751957287605275, 0.12934923846644109, 0.9048431033119261, 0.6247835602850056, 0.6663491618485525, 0.6191447480411455, 0.38868231376485674, 0.16429514721037275, 0.047048187901140404, 0.1347824186806431, 0.004461437904420995, 0.9762230649248507, 0.6635426573687336, 0.4755094707753683, 0.08415024415060357, 0.6146381733545787, 0.3487710412736914, 0.15657338996981707, 0.4914780532252889, 0.7186224430800245, 0.47278786793745786, 0.22586533734423897, 0.1388136048065316, 0.9421248651798148, 0.18687021665791048, 0.886751975525458, 0.27210373932980336, 0.1871193534007316, 0.16936019822848425, 0.9304125472360207, 0.46427170052831335, 0.6327522727545662, 0.07545431142174563, 0.2887757304460784, 0.635380555069413, 0.04655276242142847, 0.29264159982594307, 0.40152844863600323, 0.5698289275272337, 0.48230928722272504, 0.5114169171284336, 0.22789767714751497, 0.3825012877262921, 0.5185614672521711, 0.1737430953954605, 0.20581048451737827, 0.04940680888298521, 0.058372511339505606, 0.36888096201496545, 0.5927527420448586, 0.6294706430315368, 0.31310297106149565, 0.004081843984338196, 0.07647535710909648, 0.9227331395115886, 0.611581049519875, 0.22245198307387348, 0.14118035675934504, 0.5753891435829265, 0.6009183620680273, 0.8821080388976726, 0.3574326544426977, 0.3343173459330723, 0.07400286558248481, 0.6079510499897496, 0.6421025402503626, 0.6417623640115212, 0.16449092617603212, 0.8897818639890097, 0.5170022343266591, 0.6995314134978298, 0.6474260353677674, 0.8420817289489861, 0.004239835106883305, 0.4813679241351504, 0.2507963913182081, 0.35085826191749636, 0.3824802249210911, 0.7812620902445477, 0.39165826007683324, 0.7824337622838438, 0.902646230736842, 0.7876851397804997, 0.8744568184404363, 0.776047650573657, 0.006211069452425777, 0.26783566243254986, 0.8952462478818862, 0.2791760055342227, 0.7023106099713998, 0.7907303599044537, 0.9213991389869884, 0.17502498094734908, 0.0031263566165733447, 0.8730810656506978, 0.8814801958973274, 0.9809862858948138, 0.9524559675550403, 0.6161602839573905, 0.81280099967171, 0.290153972227604, 0.14335035008289465, 0.8477577457444683, 0.8401166936915387, 0.5212668248749791, 0.02104693531456414, 0.7383245499273487, 0.5626987498664584, 0.2934473998659016, 0.3456826354918213, 0.22702830817160635, 0.4496243188766037, 0.4910238089090576, 0.9793781225504641, 0.9468223697800644, 0.3401409033329521, 0.6180799786358538, 0.863014788820724, 0.13095056557012497, 0.5857524793318057, 0.20029206183457626, 0.0361080988081901, 0.5129980956789748, 0.17455369794424835, 0.6798675384017852, 0.04555314684145728, 0.1592728573611274, 0.9027129404222184, 0.5417022462380706, 0.36209650006181326, 0.6357024603609229, 0.6289268057180017, 0.19553033285442378, 0.45043719562592965, 0.8266341879328025, 0.7773840612765499, 0.8308068439506016, 0.4304725604114389, 0.41676684693732735, 0.8708314311735844, 0.8248490675287319, 0.26264441069811695, 0.9044186668920613, 0.5936822156957996, 0.7875285367610492, 0.3118444321158038, 0.6916715068300263, 0.5669435387631938, 0.6193299528144401, 0.35712243943419775, 0.9175778213344772, 0.343460209344983, 0.6460542393416723, 0.21516198411188503, 0.45642068377669887, 0.2987386214304467, 0.0632550323284714, 0.7362366025637085, 0.6128438567584318, 0.9428771776851117, 0.17489798955430746, 0.6625086065781743, 0.2172456296265367, 0.4475923979474332, 0.5564922845944792, 0.28320517322282546, 0.49267771485941037, 0.6547427411553769, 0.9242596499269207, 0.9147805216639984, 0.6073412491734623, 0.46989203803910085, 0.45935706630078055, 0.19798791257453774, 0.9334249248647313, 0.8744326138824626, 0.6205838180552334, 0.7762732211789131, 0.928459089113231, 0.937820769140132, 0.013582125340719675, 0.5324907160051711, 0.02684611862059849, 0.06927193578744395, 0.6400214688609211, 0.5133721282618873, 0.07999318330104577, 0.2577710810650832, 0.817321363351518, 0.8076114189907397, 0.324657289350905, 0.9650672686251389, 0.2729254863821494, 0.7809831977836019, 0.1652336449783368, 0.13662799169926676, 0.6776495828489617, 0.14255174957497696, 0.38418911218942264, 0.361423843762243, 0.8685882991583032, 0.192680742555284, 0.3148856602740503, 0.748113225863308, 0.8618407210129345, 0.7156839650988885, 0.9623403051807798, 0.9973527869739185, 0.008585147934917492, 0.946331588194702, 0.5553431375586435, 0.02054704844964983, 0.842338238512127, 0.6252142939582864, 0.0454440429846138, 0.8768779524997832, 0.05197495573171229, 0.467402461137189, 0.7245722869024117, 0.8526963916761623, 0.3482114761714936, 0.5870305114470717, 0.6134256688006303, 0.2274168614700276, 0.9080883353774347, 0.6004815985037668, 0.3675988930092098, 0.824331351985735, 0.4949438124009987, 0.8227638227658204, 0.8099433384130386, 0.7102282370301588, 0.4735140918259736, 0.7338703370134286, 0.8445820971086851, 0.19596949116497853, 0.7028907486937389, 0.005417090289743465, 0.2777603577620631, 0.603675472091728, 0.328955924989748, 0.9341776586261046, 0.5540450376230617, 0.9936257238147864, 0.4102405081961351, 0.7671813626238805, 0.3691590461742723, 0.02728682877510813, 0.4823869343924113, 0.788192482427858, 0.22180088690053323, 0.03448562234999297, 0.3719357169116606, 0.4969098885447305, 0.191655313797513, 0.5804718234186538, 0.8900318941903801, 0.6934508297023688, 0.5530225699005005, 0.30074428571738887, 0.8415057046819492, 0.17183516891041328, 0.12675873590477205, 0.2840572816367717, 0.9269887520833086, 0.22488977278831046, 0.3168242242390731, 0.9847372594336158, 0.6509731962068283, 0.5073316119069321, 0.12487505196657323, 0.22154354697564693, 0.7685722942349587, 0.2743762334211701, 0.6865202518278289, 0.8318371362076777, 0.5386258032132064, 0.8605771528753087, 0.4179331943064153, 0.567405809525627, 0.3562212006461868, 0.7963357296035821, 0.4994531897202181, 0.7866783613717578, 0.9008311272506405, 0.8699430893250892, 0.9993156197161146, 0.9139351509015179, 0.431449717755505, 0.620176535824029, 0.8539376483870202, 0.07848072387288219, 0.01424037752463747, 0.24407675438189358, 0.701333216078581, 0.12046807952838845, 0.8390349031208393, 0.7077691706016829, 0.14105948480485575, 0.3113502459956934, 0.5657395772346601, 0.8130737272213242, 0.3365673473812547, 0.7796612467421044, 0.23107384517188134, 0.8118009929054556, 0.16788633369095085, 0.030079422556517188, 0.5371500828826153, 0.6015148664464552, 0.17149243221501909, 0.1172621795708465, 0.7925641613400864, 0.2696618250878239, 0.34008210185151533, 0.5207478736401517, 0.09029226432107296, 0.6243414247626625, 0.8086350261894591, 0.9280525217627306, 0.8179986367464573, 0.22809792345840785, 0.174299626331055, 0.18547930426962, 0.5314239340501304, 0.601922588468467, 0.2659164721740783, 0.6546297288104892, 0.7750427002091234, 0.6832042772679686, 0.4156617408655624, 0.7108870437063272, 0.4922211900243272, 0.6602291458395536, 0.9340984899103667, 0.26225209481552736, 0.5787861259275977, 0.4188843096595267, 0.5075709771319182, 0.32679093039873, 0.319215520593643, 0.9015861727324869, 0.9903680740595437, 0.11771029618746809, 0.0698828908110074, 0.5844288716113109, 0.8979402481813988, 0.17347031758337805, 0.3335669457212541, 0.7666755194391025, 0.13900424509002107, 0.18184438650179768, 0.474170125390853, 0.6494817087100319, 0.49904484954494976, 0.13960662583364958, 0.17721720406416797, 0.49090390100838, 0.8076048584231867, 0.5180775508098545, 0.2747889640775497, 0.7643973635630646, 0.998600064745631, 0.05432415993063511, 0.14612254019625004, 0.05100113670893769, 0.6348270472795142, 0.9276971598715721, 0.02581820063068263, 0.7618910314479553, 0.08292626610364884, 0.0015068117399120728, 0.5450893147590388, 0.6305267716579811, 0.49595914894179594, 0.6042571272764584, 0.14456224796821027, 0.9701432397722076, 0.7003300711950627, 0.493939632833688, 0.9677948626091621, 0.9564276322323998, 0.24714075783963407, 0.9473621800880258, 0.7162882508139052, 0.637129169365288, 0.7739890486016565, 0.6364250055940857, 0.34416412881956693, 0.4607199148631299, 0.1827420856730403, 0.384871223091256, 0.42115413371097565, 0.22520478035347657, 0.4221255541659472, 0.47553531617318, 0.5826635954679447, 0.2970822199027767, 0.3303683669471392, 0.44776861852667227, 0.7290686471896674, 0.41721974940422435, 0.47684193819117915, 0.7622610881055619, 0.4701127290373278, 0.7535603587898286, 0.24234999643629496, 0.6912929504723353, 0.6020583704478337, 0.7827833151078375, 0.6394518382053578, 0.03227298489054431, 0.47079183685813464, 0.25761725598378504, 0.2989311962894181, 0.9136482203752961, 0.6441555783810878, 0.9584970068604538, 0.7768386939495876, 0.3621519413519899, 0.3271443319211841, 0.8984271382188533, 0.003205103140524912, 0.6145214518321328, 0.7831497277215794, 0.6446271971021358, 0.35438910375402444, 0.8603641619194752, 0.1708378830206404, 0.7967789884708172, 0.4086200513012481, 0.6969884754450677, 0.3870316925454582, 0.5322382329384319, 0.0096584224912859, 0.6264169770789575, 0.2921659601352481, 0.6253221565828221, 0.9117837886557485, 0.20374405516041583, 0.21591547095868324, 0.5470831816133089, 0.6910280220095179, 0.8633431978353517, 0.6046816337812168, 0.7350636029248344, 0.4660768528067444, 0.4298312288933326, 0.03120480264321246, 0.04434142372395833, 0.5185989584440972, 0.9056713041598138, 0.8104628144429474, 0.19619711194429745, 0.2120133204613942, 0.006407291414015304, 0.2585861442212085, 0.9676421774705622, 0.35999532618759145, 0.19113832261170938, 0.33548288170860974, 0.2585580653888524, 0.8554931389682613, 0.6391815211464841, 0.4800788135670906, 0.3940763810605721, 0.31535986613369604, 0.8209588135749953, 0.4541325511456713, 0.5877570824102291, 0.7583566943672284, 0.6029788742971568, 0.6861092075074696, 0.46621208455465135, 0.18007423591415328, 0.528332340935112, 0.1138522150371325, 0.07879987486346618, 0.7269711145951828, 0.5582429424002487, 0.8617872480152714, 0.20812038948111622, 0.7402118148501086, 0.8454488591069442, 0.4223837383275706, 0.23416208241975545, 0.4220834167811641, 0.4631539491432527, 0.1626564116660122, 0.3309452324727121, 0.8213528389917474, 0.34861525565456, 0.8734450834953609, 0.8880552830046495, 0.619340243121358, 0.5775673004205525, 0.19101754008288407, 0.3544830751061945, 0.3013493746590046, 0.9129590937779266, 0.9012416695964349, 0.6803789596610658, 0.19564066112257705, 0.03260488368221248, 0.8705799211122627, 0.8409450026881247, 0.34475518131557215, 0.03784801519303338, 0.9751661267040307, 0.43034168879885626, 0.11065161544340107, 0.7276057777519807, 0.004982163159524933, 0.6945447838872708, 0.7273041470712368, 0.9593936841500735, 0.13379258768168645, 0.3777965634633952, 0.2703595868217632, 0.15506449640296105, 0.20424268820820335, 0.3527948681199745, 0.8002681114870956, 0.7594567227703592, 0.946495649399147, 0.28728350198169084, 0.5580175944700493, 0.7032420767984198, 0.08092465521124148, 0.32656469883293826, 0.7174885959886983, 0.871252990017252, 0.41670888180343424, 0.6083365236824875, 0.7249396470594075, 0.5620465315393466, 0.5157197115732972, 0.5506549211709697, 0.3285477028094975, 0.7093308180251068, 0.659084127611101, 0.02765869743583449, 0.6218822201313294, 0.39482091817932796, 0.626135560747538, 0.2580755081198327, 0.3478174802894556, 0.9676938413436679, 0.33238224766067537, 0.3310147497770647, 0.9559943893515941, 0.4911376916833988, 0.09063791913423813, 0.4046315875494847, 0.4740020520121634, 0.4765906670364052, 0.08583441419976279, 0.8472274380619484, 0.552660546415093, 0.004701142838580807, 0.8830999516501286, 0.21208354271106145, 0.16396793443292523, 0.7933072283261428, 0.8362655604438428, 0.002905946258930814, 0.6696363008399273, 0.4184101631532844, 0.7544300764519166, 0.4629514408891108, 0.8815767929529509, 0.14872496584233852, 0.38953018339451484, 0.6031094795257194, 0.7357426137848664, 0.6960142716191104, 0.5308984163386145, 0.6471850332368065, 0.9507310652965659, 0.05355118172872486, 0.26789766611378607, 0.81171534461288, 0.8815252676442482, 0.27322340111095766, 0.5694545400487966, 0.4643747260984441, 0.2680931795929846, 0.9639847915873286, 0.12682309670693648, 0.8177762874567295, 0.6777803851961555, 0.7292121888029454, 0.8736686253239911, 0.09298362953922867, 0.41648039805853876, 0.8251362617469858, 0.9705641885675158, 0.2011963854694191, 0.9577690476905739, 0.22843672315476948, 0.020419675906707013, 0.7581006474779918, 0.38291815926073636, 0.9924212687610415, 0.6853565742888263, 0.7213851262299584, 0.6432205505596658, 0.3880096040198705, 0.9856208118658878, 0.47945352909793304, 0.6672084718234337, 0.34523037644096277, 0.42050931713665096, 0.034634868583634404, 0.9342795633486977, 0.2875754593792146, 0.6066253338972054, 0.7808305389779022, 0.5612945690875106, 0.9404065215610417, 0.9401144197667547, 0.2894685372960125, 0.17461530457647234, 0.04754095571588024, 0.6773364043368078, 0.5802981115586667, 0.6317070842942244, 0.1407365728127774, 0.9850309591715055, 0.7809932815700706, 0.9836260301540849, 0.12108199859136526, 0.16366744058478355, 0.7850185780027568, 0.18388083399956057, 0.9126319991757875, 0.43542132106992804, 0.5242994382487212, 0.7587538803727455, 0.8773437341277317, 0.9349653031183464, 0.09854330443257797, 0.8274753008171292, 0.9395017553746543, 0.3411167233785305, 0.9825311160775828, 0.7548311572520328, 0.3414971623264297, 0.8882855662786443, 0.7757145759635072, 0.23480704090360538, 0.7555530210610234, 0.2594007449598288, 0.3004489790483701, 0.1633986233662451, 0.9677764682764135, 0.9554587458033513, 0.7961431105300174, 0.6288482538745904, 0.8884132965339431, 0.5852057892875403, 0.07372112834870348, 0.7220664089605319, 0.6151123645576676, 0.2773844267431448, 0.25458076239534255, 0.4992589489046285, 0.8491493815037809, 0.024866663757468488, 0.0424358193013229, 0.3993980794861991, 0.7933963563504444, 0.9012822919659152, 0.9135968462592506, 0.4006494422735588, 0.4075832830891558, 0.2701036343384797, 0.20306804721545846, 0.23404002509717414, 0.43759924003124595, 0.6264063678412422, 0.3721469206496021, 0.5207484113258347, 0.9755662926676001, 0.718375881245492, 0.7969089682462961, 0.8501140321994687, 0.9364329737732714, 0.1425059391434702, 0.9597826876409328, 0.15670568562557385, 0.5817575280658813, 0.9063728174897496, 0.8546284305750449, 0.35439249722790844, 0.18820064869908193, 0.7522727281834883, 0.3261970280116724, 0.9167584194413457, 0.10593348360373511, 0.3683029453317247, 0.9309643913035914, 0.45258186077884677, 0.5803936269369658, 0.40568625284440596, 0.4828478564591584, 0.4590798443606058, 0.5651911451209986, 0.3015797182224651, 0.7979313236417561, 0.08060630938246094, 0.9517418500418697, 0.3021183772119437, 0.9187005402936496, 0.6840531382369449, 0.5180709751097267, 0.6876828482380173, 0.3888003563218816, 0.2653720936625277, 0.7571624379645097, 0.7403022510887606, 0.06001106938898426, }; float ret[1 * 3 * 24 * 24] = { 0.5576938179613676, 0.6750876516427856, 0.7731501711752171, 0.7433939974308816, 0.914153253113105, 0.0022265480498459, 0.19866318622083912, 0.8774716463189989, 0.24900653579384002, 0.5520332209722566, 0.9912034603665761, 0.3323270294507361, 0.32836141278496667, 0.9715790422861825, 0.7242783251562759, 0.5527640012764481, 0.2724333255839113, 0.1527199695829402, 0.44418427285801776, 0.990476417594261, 0.14510035718537184, 0.13460757957409675, 0.6744658506273948, 0.5451854837499628, 0.6893843112155923, 0.2673573323323931, 0.7533764068311143, 0.4715876236843328, 0.0964560448883105, 0.10510210443177692, 0.3254970321441475, 0.46320953694522016, 0.8749740701787951, 0.15502984464465686, 0.6654145558749625, 0.9014031191103209, 0.0038954249311695666, 0.7367959934022067, 0.9050016678033207, 0.5680930437476771, 0.41318707539729127, 0.4672252846267282, 0.4672430576408313, 0.0358453349442871, 0.7047848728340145, 0.4107587048469111, 0.8862218980474931, 0.5545361856803096, 0.8370808709961333, 0.9904920761291204, 0.31842130537927016, 0.21230284391317644, 0.5839095046253248, 0.21555704875753656, 0.887653344662633, 0.33115085237976816, 0.3443790134865867, 0.827802415010975, 0.5798915139606355, 0.7454675023371802, 0.7875162903072089, 0.0584828568322322, 0.7681269695003293, 0.2688403266948515, 0.7872139137118884, 0.535368023415492, 0.6359195295816026, 0.1128901838996228, 0.950038806411715, 0.27339773093230824, 0.01579675654776469, 0.20296075269570268, 0.8467913390425336, 0.41551022895908507, 0.2513109849484241, 0.9572558290726614, 0.07832911776016815, 0.7547507557346254, 0.12844765027072702, 0.11939825073119481, 0.6690397046010088, 0.1575709812498055, 0.7095236946648049, 0.6310339935297161, 0.6158424915733098, 0.7144996557898061, 0.5365983278275497, 0.30927187206231654, 0.8179140740843444, 0.19326779070356015, 0.5119758149283705, 0.06754426402085834, 0.9634459187238493, 0.3301225172106783, 0.26080864555541483, 0.8441762152997584, 0.7017503043482971, 0.11348934492273088, 0.7600253102481189, 0.008110304658435208, 0.3112662550079637, 0.509438821155469, 0.7814793117071854, 0.20120685769092328, 0.7567614845781191, 0.6165739435500294, 0.6671961409330499, 0.9596376673343043, 0.1237345548042279, 0.7843568303497188, 0.7675030315279653, 0.5560400086719663, 0.9726350531669181, 0.7074466158829527, 0.14009878314486368, 0.6049713928898043, 0.8394226322869928, 0.07210232833626673, 0.6058030611127116, 0.3942672946450676, 0.46762342221081143, 0.606961856564349, 0.6853285787984453, 0.5294984766990256, 0.57362010476332, 0.7372789472300072, 0.768101200276183, 0.6008521026900275, 0.270660842170115, 0.9688837432017031, 0.6060192520674768, 0.036559310251870425, 0.44416396951615966, 0.6462328722469546, 0.04898283124047065, 0.6316790255001938, 0.22023940332382175, 0.5404833527145714, 0.5525056845431044, 0.8898566020334531, 0.39999980363972587, 0.8389631975404395, 0.8778591814372076, 0.5162066124785467, 0.28297437515915647, 0.18238528044315205, 0.005381997132809846, 0.46999899129919254, 0.13825446763275795, 0.49222794645391554, 0.7030820831074535, 0.6804400231686772, 0.8965979777482974, 0.694946176773454, 0.5085146662370216, 0.8240197376801905, 0.31776581529233927, 0.5732121905660629, 0.01390285801777269, 0.8757581539790499, 0.907322093268178, 0.6978352458800421, 0.6894629329539623, 0.8407068458923248, 0.6048366748080617, 0.05367367526069333, 0.3077714610041279, 0.6279264755906374, 0.41911626457549866, 0.605908791928396, 0.11473188943088652, 0.4066331998413033, 0.5917865120906529, 0.18245356961058734, 0.5391565304461164, 0.5624966145847786, 0.7504475253633486, 0.7615701321627198, 0.31028122589925966, 0.848323852071799, 0.4694763662956777, 0.7516506165708773, 0.4838291003934557, 0.9379908782009793, 0.11489890753723331, 0.10687123028889634, 0.3005593571845695, 0.2790369765995646, 0.5618268632620098, 0.2506744442166098, 0.5774223878377291, 0.039557168583882696, 0.47547710684047406, 0.5404640956394502, 0.5173064771408595, 0.8595156094358232, 0.10311625824407467, 0.4313108920421431, 0.9238740143377883, 0.20687524999638973, 0.15255012458685524, 0.5427457659655633, 0.8640947828253543, 0.4023460735613871, 0.8152799497172286, 0.22226454850151056, 0.09327791456333101, 0.540143349882634, 0.5557027424836565, 0.6043822127088522, 0.635045386209623, 0.11895408520648643, 0.21412622156242278, 0.4168915541552838, 0.6860410428994667, 0.8362971024617537, 0.1604197275319652, 0.0015534694918136749, 0.16683864032852347, 0.0380164358652878, 0.03511408488081447, 0.4807109372544841, 0.15151664214217997, 0.10548618728899939, 0.6302059258053215, 0.4131988922704686, 0.9333959432119138, 0.40858542505531903, 0.09631357136150354, 0.087564812497272, 0.12769479893109448, 0.5944289290157524, 0.1504256727793163, 0.8245058563795197, 0.28398136463137413, 0.9427807014726228, 0.8079236541236925, 0.585802992322683, 0.6431029480572278, 0.9852044970284112, 0.33240595005615725, 0.386704376120808, 0.05460816935049695, 0.05589652047614602, 0.9792882505670737, 0.5650652839468214, 0.4522524488689421, 0.08701083613219196, 0.716345677249626, 0.5839245986158135, 0.40122325862538133, 0.13032245945931542, 0.00256671520725571, 0.5869283108488538, 0.5873285471779122, 0.8488560464150674, 0.8061332855050097, 0.33938585999470916, 0.6884758620551574, 0.8172347973442694, 0.6477500880815694, 0.675451984773968, 0.5223003594325687, 0.15458609355946118, 0.43259107705555877, 0.28851810307018777, 0.3838462692063309, 0.4657950297766186, 0.22707077383985486, 0.8502192712624803, 0.3677973310632141, 0.13403602141551874, 0.9530360146704632, 0.9826440640203283, 0.42089152977923683, 0.42180479050443176, 0.15720226657930703, 0.1891201711835082, 0.5353614977912917, 0.6288357150342787, 0.8147188655365647, 0.09049937046097911, 0.4428874994360409, 0.9941624285613735, 0.47490144756023966, 0.792905409090189, 0.6373109153860876, 0.362784258536637, 0.18612006988393281, 0.43510833638726243, 0.3671635077914902, 0.11409342083819618, 0.11234212817124256, 0.24775037353256546, 0.6212388268713533, 0.6281062349165449, 0.14983193641298098, 0.6762103626227616, 0.10448467671854955, 0.598250699186468, 0.6938074993804616, 0.8730247668913396, 0.8268479077193474, 0.9972427087729138, 0.5191046008923272, 0.8911388789395779, 0.509264551627256, 0.5049738483313311, 0.3087999310101207, 0.7752137734199523, 0.155536036963988, 0.8352195411494564, 0.629649706648176, 0.1939043713632571, 0.7669274996476307, 0.11693237140089863, 0.9811994408643644, 0.8081707614206302, 0.1746768750613229, 0.11924956852409285, 0.6107457676123809, 0.5994539427198272, 0.7269927062916417, 0.21157476325939661, 0.7019666424206221, 0.5389999399640987, 0.9060064439328889, 0.4356093165139081, 0.8690026759179446, 0.8222557998599189, 0.07222599597929102, 0.9189440327960383, 0.009679487835292266, 0.5197248295836395, 0.3812919886435633, 0.5842646327860408, 0.9048431033119261, 0.6191447480411455, 0.047048187901140404, 0.9762230649248507, 0.08415024415060357, 0.15657338996981707, 0.47278786793745786, 0.9421248651798148, 0.27210373932980336, 0.9304125472360207, 0.07545431142174563, 0.04655276242142847, 0.5698289275272337, 0.22789767714751497, 0.1737430953954605, 0.058372511339505606, 0.6294706430315368, 0.07647535710909648, 0.22245198307387348, 0.6009183620680273, 0.3343173459330723, 0.6421025402503626, 0.8897818639890097, 0.6474260353677674, 0.4813679241351504, 0.3824802249210911, 0.7824337622838438, 0.8744568184404363, 0.26783566243254986, 0.7023106099713998, 0.17502498094734908, 0.8814801958973274, 0.6161602839573905, 0.14335035008289465, 0.5212668248749791, 0.5626987498664584, 0.22702830817160635, 0.9793781225504641, 0.6180799786358538, 0.5857524793318057, 0.5129980956789748, 0.04555314684145728, 0.5417022462380706, 0.6289268057180017, 0.8266341879328025, 0.4304725604114389, 0.8248490675287319, 0.5936822156957996, 0.6916715068300263, 0.35712243943419775, 0.6460542393416723, 0.2987386214304467, 0.6128438567584318, 0.6625086065781743, 0.5564922845944792, 0.6547427411553769, 0.6073412491734623, 0.19798791257453774, 0.6205838180552334, 0.937820769140132, 0.02684611862059849, 0.5133721282618873, 0.817321363351518, 0.9650672686251389, 0.1652336449783368, 0.14255174957497696, 0.8685882991583032, 0.748113225863308, 0.9623403051807798, 0.946331588194702, 0.842338238512127, 0.8768779524997832, 0.7245722869024117, 0.5870305114470717, 0.9080883353774347, 0.824331351985735, 0.8099433384130386, 0.7338703370134286, 0.7028907486937389, 0.603675472091728, 0.5540450376230617, 0.7671813626238805, 0.4823869343924113, 0.03448562234999297, 0.191655313797513, 0.6934508297023688, 0.8415057046819492, 0.2840572816367717, 0.3168242242390731, 0.5073316119069321, 0.7685722942349587, 0.8318371362076777, 0.4179331943064153, 0.7963357296035821, 0.9008311272506405, 0.9139351509015179, 0.8539376483870202, 0.24407675438189358, 0.8390349031208393, 0.3113502459956934, 0.3365673473812547, 0.8118009929054556, 0.5371500828826153, 0.1172621795708465, 0.34008210185151533, 0.6243414247626625, 0.8179986367464573, 0.18547930426962, 0.2659164721740783, 0.6832042772679686, 0.4922211900243272, 0.26225209481552736, 0.5075709771319182, 0.9015861727324869, 0.0698828908110074, 0.17347031758337805, 0.13900424509002107, 0.6494817087100319, 0.17721720406416797, 0.5180775508098545, 0.998600064745631, 0.05100113670893769, 0.02581820063068263, 0.0015068117399120728, 0.49595914894179594, 0.9701432397722076, 0.9677948626091621, 0.9473621800880258, 0.7739890486016565, 0.4607199148631299, 0.42115413371097565, 0.47553531617318, 0.3303683669471392, 0.41721974940422435, 0.4701127290373278, 0.6912929504723353, 0.6394518382053578, 0.25761725598378504, 0.6441555783810878, 0.3621519413519899, 0.003205103140524912, 0.6446271971021358, 0.1708378830206404, 0.6969884754450677, 0.0096584224912859, 0.6253221565828221, 0.21591547095868324, 0.8633431978353517, 0.4660768528067444, 0.04434142372395833, 0.8104628144429474, 0.006407291414015304, 0.35999532618759145, 0.2585580653888524, 0.4800788135670906, 0.8209588135749953, 0.7583566943672284, 0.46621208455465135, 0.1138522150371325, 0.5582429424002487, 0.7402118148501086, 0.23416208241975545, 0.1626564116660122, 0.34861525565456, 0.619340243121358, 0.3544830751061945, 0.9012416695964349, 0.03260488368221248, 0.34475518131557215, 0.43034168879885626, 0.004982163159524933, 0.9593936841500735, 0.2703595868217632, 0.3527948681199745, 0.946495649399147, 0.7032420767984198, 0.7174885959886983, 0.6083365236824875, 0.5157197115732972, 0.7093308180251068, 0.6218822201313294, 0.2580755081198327, 0.33238224766067537, 0.4911376916833988, 0.4740020520121634, 0.8472274380619484, 0.8830999516501286, 0.7933072283261428, 0.6696363008399273, 0.4629514408891108, 0.38953018339451484, 0.6960142716191104, 0.9507310652965659, 0.81171534461288, 0.5694545400487966, 0.9639847915873286, 0.6777803851961555, 0.09298362953922867, 0.9705641885675158, 0.22843672315476948, 0.38291815926073636, 0.7213851262299584, 0.9856208118658878, 0.34523037644096277, 0.9342795633486977, 0.7808305389779022, 0.9401144197667547, 0.04754095571588024, 0.6317070842942244, 0.7809932815700706, 0.16366744058478355, 0.9126319991757875, 0.7587538803727455, 0.09854330443257797, 0.3411167233785305, 0.3414971623264297, 0.23480704090360538, 0.3004489790483701, 0.9554587458033513, 0.8884132965339431, 0.7220664089605319, 0.25458076239534255, 0.024866663757468488, 0.7933963563504444, 0.4006494422735588, 0.20306804721545846, 0.6264063678412422, 0.9755662926676001, 0.8501140321994687, 0.9597826876409328, 0.9063728174897496, 0.18820064869908193, 0.9167584194413457, 0.9309643913035914, 0.40568625284440596, 0.5651911451209986, 0.08060630938246094, 0.9187005402936496, 0.6876828482380173, 0.7571624379645097, 0.5480679233387061, 0.24353641279477833, 0.6953374325865181, 0.7004059077803506, 0.19895076559790037, 0.012614468166029846, 0.6931676652271119, 0.04933882811306345, 0.6817184766496525, 0.8967786967807705, 0.0370223139896404, 0.27005041666217366, 0.0603131267983219, 0.20690528700779764, 0.5567967676701338, 0.20463828478253465, 0.14616326216863784, 0.6296157294792657, 0.9640954753646813, 0.36846030912030836, 0.002330958564625618, 0.5270410644078244, 0.9281730412702204, 0.45519656900706884, 0.05767366375949612, 0.19679167663135078, 0.45322589140773506, 0.37355093745443213, 0.4316713413341995, 0.8613778389131638, 0.36363172551401024, 0.041909481052292086, 0.40803137171006676, 0.1644490965265104, 0.013508862338429739, 0.18087791778059537, 0.4808668404807881, 0.9896217208245889, 0.17031133805671994, 0.954549933820125, 0.21830098176483825, 0.32074855054918405, 0.7055647713037171, 0.4017341341400964, 0.06834239147352672, 0.06595343518235453, 0.7927013837463739, 0.736351436409856, 0.6542416800517766, 0.2611136415462978, 0.8052245691122532, 0.5036101372743131, 0.09263478211668819, 0.2557611178903839, 0.7150756721261634, 0.7396670803132176, 0.7249200847189967, 0.7983836884890896, 0.26459354102142374, 0.14864548914507048, 0.5586611197141035, 0.910350130922468, 0.05593434871311043, 0.8149779553107497, 0.4767667472242454, 0.285442788189455, 0.40006884264320053, 0.18928550101259878, 0.8969656410445062, 0.7896722423559953, 0.6525673934788851, 0.9034835925846796, 0.570442903736869, 0.41536471357181215, 0.10265360872088514, 0.633573216040501, 0.554940923788402, 0.7603504216202375, 0.2815142314209388, 0.32091865605809244, 0.48941224655962345, 0.22003985504243984, 0.13607798635337598, 0.37901062340884994, 0.8706905255134766, 0.6356807028139803, 0.418779162764653, 0.40936893971458166, 0.25667308138726475, 0.8626424645173111, 0.8168071724420188, 0.40923910723158874, 0.8487566728412825, 0.8825770435506887, 0.6978130505246456, 0.5256740994874012, 0.3591905906139944, 0.5799067477434993, 0.9185955898312771, 0.2737326463684574, 0.9097323699454616, 0.3930555738378564, 0.47911845356231575, 0.7290407441224809, 0.46055879064643657, 0.03207769742241595, 0.7975276475662959, 0.640093909231198, 0.022886213132301436, 0.8609937497701943, 0.5631041599341441, 0.679972623497357, 0.48577991928492015, 0.30538790875902155, 0.41736161076242584, 0.14830629853298138, 0.23500812773962576, 0.524592542808368, 0.27437111512336143, 0.05965904887727835, 0.2918591238325783, 0.25598434684729043, 0.6924920794474219, 0.2497349859377368, 0.8363347417707052, 0.5282798641981886, 0.7312494341931193, 0.17757135544241376, 0.3173567907124467, 0.15325240685171326, 0.662708767649447, 0.2781731367872762, 0.6364481666190819, 0.2903981867328158, 0.6496930178456091, 0.039653072192095906, 0.4279605117814289, 0.23717483185086208, 0.5850515639649501, 0.9272006593578849, 0.6694541951302534, 0.17883121234879118, 0.6436522945258664, 0.7792030175008168, 0.8949085776808361, 0.2496632683186638, 0.832457996422202, 0.9674353985309306, 0.8528802875571208, 0.816763289811324, 0.14688252055455986, 0.5642551096559059, 0.26530479151162056, 0.5049743798224671, 0.3715996766715721, 0.21947402581862918, 0.32254310459801105, 0.685007228645308, 0.7470850821296687, 0.8160227628454733, 0.9137489054962102, 0.8560251137039097, 0.024534003121607695, 0.04521871276101308, 0.02367129352716124, 0.5783021171133504, 0.9139449448889625, 0.265504442325993, 0.8182890630399161, 0.5049329705377718, 0.6800245200790865, 0.6083213289049307, 0.1811262015095133, 0.3202506649996555, 0.06139823543315803, 0.7975693287711333, 0.3783321068312443, 0.4215509767310476, 0.4817147366535751, 0.14335792395875457, 0.569959697175572, 0.8326804416539675, 0.7881931631320024, 0.6250101717036214, 0.8150438598132201, 0.8322242767985054, 0.5141109538083758, 0.101622534940505, 0.6020576478139832, 0.862875834352914, 0.44412999428852895, 0.09303719406445532, 0.6365615446012882, 0.391697345346507, 0.6276038960866358, 0.8384240955628381, 0.15117205862777972, 0.6859166896968107, 0.46096307835937356, 0.7628475477918988, 0.010532812497153099, 0.39110174343301596, 0.18687012766308642, 0.9953633859063187, 0.7336318791938153, 0.7412558552103334, 0.21084765923063864, 0.4907451177552751, 0.40601299165301985, 0.38880973678461517, 0.5584246149451094, 0.10807602415016127, 0.18275262543142878, 0.17402817591505615, 0.2015937407328915, 0.8849118337827289, 0.377331907017168, 0.3377638457595308, 0.5086224074379112, 0.7761068172424201, 0.8458824121077834, 0.5825144300241644, 0.31379789941978886, 0.7799327059130073, 0.6462918881194284, 0.5496040687131041, 0.5606280619195357, 0.2622984173231212, 0.9533428464170677, 0.6927678723431243, 0.28670323747922943, 0.918328531851499, 0.9181276962383033, 0.22471326407596626, 0.8742061750012948, 0.035691735149414594, 0.9830142838917029, 0.04618299224281264, 0.978991611793116, 0.90920549543672, 0.9641936713436415, 0.352173417181341, 0.02749063973513044, 0.671264386437005, 0.32074385906006564, 0.3323412691373995, 0.6222518184003937, 0.10327769425645661, 0.7478402622044948, 0.141175087073799, 0.13567435950327245, 0.06388400985569753, 0.12022737044113196, 0.04865807065818539, 0.9346626555052675, 0.25035821705527694, 0.263615164003856, 0.9103450312680861, 0.0822476396562889, 0.9214016455934766, 0.5471141631488152, 0.050092295886368765, 0.12916099885366905, 0.09350772631506876, 0.4128426881984989, 0.03426701049550318, 0.1114557011437497, 0.9034110226366754, 0.6238078513067472, 0.6339993330568727, 0.1017850925706153, 0.7574287993118725, 0.4855538696652342, 0.0993780068507144, 0.7840823982240984, 0.9062905450373338, 0.5188575412994682, 0.07931477242460494, 0.3302454137917453, 0.9683115424644188, 0.24089419521054534, 0.5221400082332656, 0.6263972136839191, 0.45655675103301285, 0.03623782209981852, 0.10528149339125581, 0.2369904707552496, 0.8871970275709483, 0.3105201870093366, 0.8650306308730747, 0.26975405692122023, 0.7401906890372566, 0.015236741198945358, 0.6932025352071033, 0.2353715196443774, 0.8990410572378255, 0.13175976405917256, 0.8299117018175071, 0.5854392560620701, 0.09941022297908908, 0.49345606955707433, 0.5693111552840876, 0.6109414753717066, 0.6210232613493811, 0.12187375071541129, 0.09170073062022499, 0.6775185133293696, 0.8926164238380273, 0.11153600376557016, 0.36336189612943315, 0.28575020651201066, 0.3006161153901252, 0.4751978516601386, 0.25762053965235965, 0.8259088244580408, 0.2996039384723006, 0.9168704216696336, 0.8741744876565002, 0.4619743507528482, 0.7190526080623696, 0.43764245520627065, 0.029650825870803477, 0.9399851529255545, 0.1719914610443789, 0.29969992238435406, 0.13512016024776252, 0.6519346860670783, 0.04216471446744485, 0.529699047649506, 0.8936486293424404, 0.5614875873690469, 0.38854122489677667, 0.42965353004741547, 0.20866020350533698, 0.8442419283811183, 0.751957287605275, 0.6247835602850056, 0.38868231376485674, 0.1347824186806431, 0.6635426573687336, 0.6146381733545787, 0.4914780532252889, 0.22586533734423897, 0.18687021665791048, 0.1871193534007316, 0.46427170052831335, 0.2887757304460784, 0.29264159982594307, 0.48230928722272504, 0.3825012877262921, 0.20581048451737827, 0.36888096201496545, 0.31310297106149565, 0.9227331395115886, 0.14118035675934504, 0.8821080388976726, 0.07400286558248481, 0.6417623640115212, 0.5170022343266591, 0.8420817289489861, 0.2507963913182081, 0.7812620902445477, 0.902646230736842, 0.776047650573657, 0.8952462478818862, 0.7907303599044537, 0.0031263566165733447, 0.9809862858948138, 0.81280099967171, 0.8477577457444683, 0.02104693531456414, 0.2934473998659016, 0.4496243188766037, 0.9468223697800644, 0.863014788820724, 0.20029206183457626, 0.17455369794424835, 0.1592728573611274, 0.36209650006181326, 0.19553033285442378, 0.7773840612765499, 0.41676684693732735, 0.26264441069811695, 0.7875285367610492, 0.5669435387631938, 0.9175778213344772, 0.21516198411188503, 0.0632550323284714, 0.9428771776851117, 0.2172456296265367, 0.28320517322282546, 0.9242596499269207, 0.46989203803910085, 0.9334249248647313, 0.7762732211789131, 0.013582125340719675, 0.06927193578744395, 0.07999318330104577, 0.8076114189907397, 0.2729254863821494, 0.13662799169926676, 0.38418911218942264, 0.192680742555284, 0.8618407210129345, 0.9973527869739185, 0.5553431375586435, 0.6252142939582864, 0.05197495573171229, 0.8526963916761623, 0.6134256688006303, 0.6004815985037668, 0.4949438124009987, 0.7102282370301588, 0.8445820971086851, 0.005417090289743465, 0.328955924989748, 0.9936257238147864, 0.3691590461742723, 0.788192482427858, 0.3719357169116606, 0.5804718234186538, 0.5530225699005005, 0.17183516891041328, 0.9269887520833086, 0.9847372594336158, 0.12487505196657323, 0.2743762334211701, 0.5386258032132064, 0.567405809525627, 0.4994531897202181, 0.8699430893250892, 0.431449717755505, 0.07848072387288219, 0.701333216078581, 0.7077691706016829, 0.5657395772346601, 0.7796612467421044, 0.16788633369095085, 0.6015148664464552, 0.7925641613400864, 0.5207478736401517, 0.8086350261894591, 0.22809792345840785, 0.5314239340501304, 0.6546297288104892, 0.4156617408655624, 0.6602291458395536, 0.5787861259275977, 0.32679093039873, 0.9903680740595437, 0.5844288716113109, 0.3335669457212541, 0.18184438650179768, 0.49904484954494976, 0.49090390100838, 0.2747889640775497, 0.05432415993063511, 0.6348270472795142, 0.7618910314479553, 0.5450893147590388, 0.6042571272764584, 0.7003300711950627, 0.9564276322323998, 0.7162882508139052, 0.6364250055940857, 0.1827420856730403, 0.22520478035347657, 0.5826635954679447, 0.44776861852667227, 0.47684193819117915, 0.7535603587898286, 0.6020583704478337, 0.03227298489054431, 0.2989311962894181, 0.9584970068604538, 0.3271443319211841, 0.6145214518321328, 0.35438910375402444, 0.7967789884708172, 0.3870316925454582, 0.6264169770789575, 0.9117837886557485, 0.5470831816133089, 0.6046816337812168, 0.4298312288933326, 0.5185989584440972, 0.19619711194429745, 0.2585861442212085, 0.19113832261170938, 0.8554931389682613, 0.3940763810605721, 0.4541325511456713, 0.6029788742971568, 0.18007423591415328, 0.07879987486346618, 0.8617872480152714, 0.8454488591069442, 0.4220834167811641, 0.3309452324727121, 0.8734450834953609, 0.5775673004205525, 0.3013493746590046, 0.6803789596610658, 0.8705799211122627, 0.03784801519303338, 0.11065161544340107, 0.6945447838872708, 0.13379258768168645, 0.15506449640296105, 0.8002681114870956, 0.28728350198169084, 0.08092465521124148, 0.871252990017252, 0.7249396470594075, 0.5506549211709697, 0.659084127611101, 0.39482091817932796, 0.3478174802894556, 0.3310147497770647, 0.09063791913423813, 0.4765906670364052, 0.552660546415093, 0.21208354271106145, 0.8362655604438428, 0.4184101631532844, 0.8815767929529509, 0.6031094795257194, 0.5308984163386145, 0.05355118172872486, 0.8815252676442482, 0.4643747260984441, 0.12682309670693648, 0.7292121888029454, 0.41648039805853876, 0.2011963854694191, 0.020419675906707013, 0.9924212687610415, 0.6432205505596658, 0.47945352909793304, 0.42050931713665096, 0.2875754593792146, 0.5612945690875106, 0.2894685372960125, 0.6773364043368078, 0.1407365728127774, 0.9836260301540849, 0.7850185780027568, 0.43542132106992804, 0.8773437341277317, 0.8274753008171292, 0.9825311160775828, 0.8882855662786443, 0.7555530210610234, 0.1633986233662451, 0.7961431105300174, 0.5852057892875403, 0.6151123645576676, 0.4992589489046285, 0.0424358193013229, 0.9012822919659152, 0.4075832830891558, 0.23404002509717414, 0.3721469206496021, 0.718375881245492, 0.9364329737732714, 0.15670568562557385, 0.8546284305750449, 0.7522727281834883, 0.10593348360373511, 0.45258186077884677, 0.4828478564591584, 0.3015797182224651, 0.9517418500418697, 0.6840531382369449, 0.3888003563218816, 0.7403022510887606, 0.6417021568083997, 0.9823224495525934, 0.3602570492037227, 0.9726701877796005, 0.11256718369098428, 0.42981846729932316, 0.5259354601865902, 0.7554362854591897, 0.46022153322521797, 0.4793136280134549, 0.10844142009323199, 0.5502761733796465, 0.8811862678452823, 0.24009629432278679, 0.9493545988254306, 0.7964892755562489, 0.4662575194407572, 0.5936738217081192, 0.16592882093823258, 0.9859866019657224, 0.2358787856060547, 0.5608551370694833, 0.945964541591334, 0.5600342383454875, 0.720030390653406, 0.20677275937071815, 0.16132030555888355, 0.23481442646444717, 0.1486933723029148, 0.07823117805129631, 0.2085993840241619, 0.10858147254244044, 0.6945817896285724, 0.42563070985356066, 0.04004884332870884, 0.00303398548561018, 0.8542934622625173, 0.25149635186390307, 0.2494715702411735, 0.2557558871357666, 0.9861938251287953, 0.9196828767636545, 0.38979676119223083, 0.383631632999867, 0.7616502164965523, 0.5989834812104214, 0.6918854518083776, 0.5911325727260477, 0.2613787103362436, 0.6065738141875372, 0.9653573346034848, 0.5147461408512055, 0.47813464137618733, 0.6801750264462293, 0.3791725115370653, 0.2212103957921122, 0.198746899771007, 0.36473450549974684, 0.32253490241826444, 0.7436637136812738, 0.13444458615243549, 0.6934462857903217, 0.5944713140884937, 0.4721117833920081, 0.49288902255267475, 0.41371401125823193, 0.0396525318325186, 0.41446455995710885, 0.4738685767876225, 0.11421088543024749, 0.10070832493884896, 0.10616464455460517, 0.4167239255685742, 0.994852989759743, 0.23008445309632586, 0.35510350164702775, 0.8425244929657464, 0.32454656934246384, 0.02176898509566194, 0.3157593965935449, 0.623726143557632, 0.3229516294381015, 0.44804658784405627, 0.08598374871008696, 0.5386230791292398, 0.4425710876561455, 0.9469773008495318, 0.548309347248721, 0.49060334690872587, 0.7063301594750016, 0.16641329612366873, 0.816499405124871, 0.3896457253625296, 0.7402659538376386, 0.9847530894291007, 0.4843213425499143, 0.43038245869640657, 0.9152388228522966, 0.4871844797098087, 0.41937549531706264, 0.7956152302108189, 0.04276396841566121, 0.9389220865118408, 0.49700650040477534, 0.2777255383285019, 0.8953375189380939, 0.30314186832239975, 0.8436821711164175, 0.250299242916484, 0.29284076270596604, 0.24860916694926627, 0.6297084257593848, 0.36414041461821367, 0.8636898203206251, 0.03884685622262596, 0.174040945005705, 0.9027325229904037, 0.22636793436272418, 0.39057502635271857, 0.837149862010498, 0.6197874282482766, 0.04034986432833665, 0.6199159287396855, 0.8618246322637451, 0.5663522588730695, 0.19114958847316454, 0.9037344787676701, 0.697998863172609, 0.4408583750989511, 0.5873937362047855, 0.7479938702505384, 0.5903087296332238, 0.0599973686234887, 0.11453030427680466, 0.0889054813776653, 0.7935221546263311, 0.20525060803459405, 0.9786164402703464, 0.13534554243929542, 0.33271341280193, 0.29583524445415277, 0.5208034566041221, 0.715961659170718, 0.03980357054734318, 0.3025012559871788, 0.43986870620151064, 0.3070560150214996, 0.3528169416286786, 0.9265141773481097, 0.7501567103388216, 0.08674132803750234, 0.36407252083885433, 0.08833198768361261, 0.35322988319400805, 0.7636110816368085, 0.877615468813198, 0.8381086608218498, 0.1264748334029474, 0.7567472028783842, 0.31610283349055857, 0.10241018294853332, 0.3903715982953918, 0.768703697365061, 0.3911478980175912, 0.6373792187400823, 0.9085193553173185, 0.8484878574968941, 0.055705717555123546, 0.1856657129414182, 0.14795677979058397, 0.0851766335876345, 0.7408546264277205, 0.1515139082850422, 0.8347462304916916, 0.5556014140682733, 0.4231662930615506, 0.4156346278851234, 0.6195024953733143, 0.6450608352745005, 0.5794559042167301, 0.44398307932725645, 0.3386896839514363, 0.9947910463626235, 0.4295650024457074, 0.46668569716119923, 0.1683570545191131, 0.38481488230328686, 0.21198524988541256, 0.6861363838530093, 0.515617605529789, 0.7871540883141954, 0.6186809320638805, 0.3635186528606992, 0.24250401036270308, 0.48087219344337306, 0.8664804169889542, 0.2842565683987759, 0.8708403014819337, 0.5259228242606849, 0.2355911329326772, 0.7287022892124747, 0.5628813409165464, 0.2208727363386015, 0.9843585772801463, 0.8585384885791164, 0.09585638221818615, 0.700121735075444, 0.9457904755937173, 0.8741342123700807, 0.2913965400017039, 0.3590258586858043, 0.9324394591487412, 0.2785720549608761, 0.5955109224024612, 0.6093048651358479, 0.5579648244813307, 0.48923170302655916, 0.040295444090547194, 0.301895126385361, 0.7161338480188987, 0.6212148954455755, 0.3252230173406172, 0.5859846921828898, 0.5017178396499485, 0.037315649813791096, 0.5815118195729374, 0.10529898355514655, 0.14560109732536652, 0.7821128845752052, 0.3908157894176354, 0.32053314608704864, 0.7690452018739381, 0.8676929204814569, 0.020209696387830434, 0.7080830488792054, 0.30867899872761073, 0.14378068100085928, 0.906567586147243, 0.3927665003335742, 0.9916129484423926, 0.5415271388101568, 0.12689054054302085, 0.15320500124098402, 0.690019196582955, 0.6785067283721109, 0.33346421693887085, 0.2796375762118375, 0.42199350041600436, 0.2699935286819868, 0.315394010904003, 0.6302297688265931, 0.06165112274849838, 0.7570811347298088, 0.5279310747451385, 0.9355999029242515, 0.005502195322430903, 0.15228560281857328, 0.0024754880413346836, 0.76205750363049, 0.06309530860411938, 0.34430528503769187, 0.8108396869466088, 0.5944367076434868, 0.6759427595358818, 0.873314370429706, 0.2835014145918603, 0.0647251610020978, 0.3257198707861738, 0.1795620365862599, 0.07541607354608881, 0.7292249395583527, 0.9902209094287545, 0.08944953657777999, 0.3673644605674675, 0.1642628862370007, 0.11299431248688241, 0.4695447110816021, 0.2869951115264081, 0.7582745052506809, 0.47703270425834443, 0.42683269753999564, 0.25422858972984796, 0.025660370575602554, 0.7868622372963548, 0.23858764239770813, 0.6938787595875271, 0.2535497506022084, 0.5371714185957712, 0.6431145666956772, 0.6647676364679233, 0.5513817267954401, 0.4543637222307828, 0.2718008029139152, 0.35994464028232376, 0.7056842331140273, 0.6150478247355882, 0.052748374640018136, 0.8940709299691674, 0.9869207117898028, 0.6428387188696808, 0.10564621295462462, 0.6451107754618787, 0.5642582138462809, 0.5919936865559303, 0.23663160371727765, 0.9151169937896009, 0.5807847949216597, 0.9055894805021459, 0.5216542563502468, 0.578729717420777, 0.734142200046549, 0.3385247520939818, 0.046652306728973136, 0.5827420694536557, 0.7131797928316381, 0.8060861134326347, 0.8332240607025703, 0.06749958945821999, 0.516280600505945, 0.7492979599727628, 0.39770626841941925, 0.43677939717333114, 0.4170048577307417, 0.4824712574759782, 0.5524848644926086, 0.9193314618277667, 0.6803898392289517, 0.38598035373059003, 0.9906048951292297, 0.8370374083834665, 0.6866355448825368, 0.7472313769107196, 0.4961903042881499, 0.971688128137546, 0.5035567916576319, 0.12934923846644109, 0.6663491618485525, 0.16429514721037275, 0.004461437904420995, 0.4755094707753683, 0.3487710412736914, 0.7186224430800245, 0.1388136048065316, 0.886751975525458, 0.16936019822848425, 0.6327522727545662, 0.635380555069413, 0.40152844863600323, 0.5114169171284336, 0.5185614672521711, 0.04940680888298521, 0.5927527420448586, 0.004081843984338196, 0.611581049519875, 0.5753891435829265, 0.3574326544426977, 0.6079510499897496, 0.16449092617603212, 0.6995314134978298, 0.004239835106883305, 0.35085826191749636, 0.39165826007683324, 0.7876851397804997, 0.006211069452425777, 0.2791760055342227, 0.9213991389869884, 0.8730810656506978, 0.9524559675550403, 0.290153972227604, 0.8401166936915387, 0.7383245499273487, 0.3456826354918213, 0.4910238089090576, 0.3401409033329521, 0.13095056557012497, 0.0361080988081901, 0.6798675384017852, 0.9027129404222184, 0.6357024603609229, 0.45043719562592965, 0.8308068439506016, 0.8708314311735844, 0.9044186668920613, 0.3118444321158038, 0.6193299528144401, 0.343460209344983, 0.45642068377669887, 0.7362366025637085, 0.17489798955430746, 0.4475923979474332, 0.49267771485941037, 0.9147805216639984, 0.45935706630078055, 0.8744326138824626, 0.928459089113231, 0.5324907160051711, 0.6400214688609211, 0.2577710810650832, 0.324657289350905, 0.7809831977836019, 0.6776495828489617, 0.361423843762243, 0.3148856602740503, 0.7156839650988885, 0.008585147934917492, 0.02054704844964983, 0.0454440429846138, 0.467402461137189, 0.3482114761714936, 0.2274168614700276, 0.3675988930092098, 0.8227638227658204, 0.4735140918259736, 0.19596949116497853, 0.2777603577620631, 0.9341776586261046, 0.4102405081961351, 0.02728682877510813, 0.22180088690053323, 0.4969098885447305, 0.8900318941903801, 0.30074428571738887, 0.12675873590477205, 0.22488977278831046, 0.6509731962068283, 0.22154354697564693, 0.6865202518278289, 0.8605771528753087, 0.3562212006461868, 0.7866783613717578, 0.9993156197161146, 0.620176535824029, 0.01424037752463747, 0.12046807952838845, 0.14105948480485575, 0.8130737272213242, 0.23107384517188134, 0.030079422556517188, 0.17149243221501909, 0.2696618250878239, 0.09029226432107296, 0.9280525217627306, 0.174299626331055, 0.601922588468467, 0.7750427002091234, 0.7108870437063272, 0.9340984899103667, 0.4188843096595267, 0.319215520593643, 0.11771029618746809, 0.8979402481813988, 0.7666755194391025, 0.474170125390853, 0.13960662583364958, 0.8076048584231867, 0.7643973635630646, 0.14612254019625004, 0.9276971598715721, 0.08292626610364884, 0.6305267716579811, 0.14456224796821027, 0.493939632833688, 0.24714075783963407, 0.637129169365288, 0.34416412881956693, 0.384871223091256, 0.4221255541659472, 0.2970822199027767, 0.7290686471896674, 0.7622610881055619, 0.24234999643629496, 0.7827833151078375, 0.47079183685813464, 0.9136482203752961, 0.7768386939495876, 0.8984271382188533, 0.7831497277215794, 0.8603641619194752, 0.4086200513012481, 0.5322382329384319, 0.2921659601352481, 0.20374405516041583, 0.6910280220095179, 0.7350636029248344, 0.03120480264321246, 0.9056713041598138, 0.2120133204613942, 0.9676421774705622, 0.33548288170860974, 0.6391815211464841, 0.31535986613369604, 0.5877570824102291, 0.6861092075074696, 0.528332340935112, 0.7269711145951828, 0.20812038948111622, 0.4223837383275706, 0.4631539491432527, 0.8213528389917474, 0.8880552830046495, 0.19101754008288407, 0.9129590937779266, 0.19564066112257705, 0.8409450026881247, 0.9751661267040307, 0.7276057777519807, 0.7273041470712368, 0.3777965634633952, 0.20424268820820335, 0.7594567227703592, 0.5580175944700493, 0.32656469883293826, 0.41670888180343424, 0.5620465315393466, 0.3285477028094975, 0.02765869743583449, 0.626135560747538, 0.9676938413436679, 0.9559943893515941, 0.4046315875494847, 0.08583441419976279, 0.004701142838580807, 0.16396793443292523, 0.002905946258930814, 0.7544300764519166, 0.14872496584233852, 0.7357426137848664, 0.6471850332368065, 0.26789766611378607, 0.27322340111095766, 0.2680931795929846, 0.8177762874567295, 0.8736686253239911, 0.8251362617469858, 0.9577690476905739, 0.7581006474779918, 0.6853565742888263, 0.3880096040198705, 0.6672084718234337, 0.034634868583634404, 0.6066253338972054, 0.9404065215610417, 0.17461530457647234, 0.5802981115586667, 0.9850309591715055, 0.12108199859136526, 0.18388083399956057, 0.5242994382487212, 0.9349653031183464, 0.9395017553746543, 0.7548311572520328, 0.7757145759635072, 0.2594007449598288, 0.9677764682764135, 0.6288482538745904, 0.07372112834870348, 0.2773844267431448, 0.8491493815037809, 0.3993980794861991, 0.9135968462592506, 0.2701036343384797, 0.43759924003124595, 0.5207484113258347, 0.7969089682462961, 0.1425059391434702, 0.5817575280658813, 0.35439249722790844, 0.3261970280116724, 0.3683029453317247, 0.5803936269369658, 0.4590798443606058, 0.7979313236417561, 0.3021183772119437, 0.5180709751097267, 0.2653720936625277, 0.06001106938898426, }; TransResult result; EXPECT_EQ(TransposeWithShapeCheck(reinterpret_cast(data), std::vector({1, 24, 24, 3}), std::vector({1, 3, 24, 24}), DT_FLOAT, std::vector({0, 3, 1, 2}), result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_FLOAT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, trans_shape) { FormatTransferTranspose transfer; std::vector dst_shape; EXPECT_EQ(transfer.TransShape(FORMAT_NCHW, std::vector({1, 3, 8, 8}), DT_FLOAT16, FORMAT_HWCN, dst_shape), SUCCESS); EXPECT_EQ(dst_shape, std::vector({8, 8, 3, 1})); EXPECT_EQ(transfer.TransShape(FORMAT_NCHW, std::vector({1, 3, 8, 8}), DT_FLOAT16, FORMAT_NHWC, dst_shape), SUCCESS); EXPECT_EQ(dst_shape, std::vector({1, 8, 8, 3})); EXPECT_EQ(transfer.TransShape(FORMAT_NHWC, std::vector({1, 8, 8, 3}), DT_FLOAT16, FORMAT_NCHW, dst_shape), SUCCESS); EXPECT_EQ(dst_shape, std::vector({1, 3, 8, 8})); EXPECT_EQ(transfer.TransShape(FORMAT_HWCN, std::vector({8, 8, 3, 1}), DT_FLOAT16, FORMAT_NCHW, dst_shape), SUCCESS); EXPECT_EQ(dst_shape, std::vector({1, 3, 8, 8})); } TEST_F(UtestFormatTranspose, nchw_to_chwn1) { uint16_t data[1 * 2 * 3 * 4] = { 14329, 11393, 10909, 14508, 14671, 14284, 15230, 13538, 12337, 14968, 12427, 12814, 13675, 15281, 14619, 14878, 14470, 14688, 14055, 14566, 12998, 11163, 13835, 9363, }; uint16_t ret[2 * 3 * 4 * 1] = { 14329, 11393, 10909, 14508, 14671, 14284, 15230, 13538, 12337, 14968, 12427, 12814, 13675, 15281, 14619, 14878, 14470, 14688, 14055, 14566, 12998, 11163, 13835, 9363, }; TransArgs args{reinterpret_cast(data), FORMAT_NCHW, FORMAT_CHWN, {1, 2, 3, 4}, {2, 3, 4, 1}, DT_FLOAT16}; TransResult result; FormatTransferTranspose transfer; EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, nchw_to_chwn2) { uint16_t data[2 * 3 * 4 * 5] = { 14828, 14590, 13310, 14873, 14460, 14266, 14191, 15059, 14631, 14744, 8712, 9060, 10329, 14793, 14813, 12083, 14752, 14771, 12768, 14540, 13767, 14935, 15248, 15328, 14863, 14383, 12246, 13844, 14675, 12828, 13122, 15284, 14630, 14721, 13883, 13363, 11811, 9642, 14012, 13396, 15086, 14222, 14797, 14173, 14397, 15042, 11974, 15166, 13588, 15095, 15230, 12827, 15275, 12324, 12618, 14631, 13488, 14433, 14346, 11441, 14553, 13612, 13193, 12393, 15356, 12178, 13389, 15035, 12536, 14468, 11337, 13481, 12476, 12398, 12752, 11443, 15122, 15330, 10727, 10380, 12948, 13559, 13328, 14691, 11713, 13918, 13916, 13506, 13322, 11775, 14914, 13585, 14353, 12896, 8004, 14401, 10588, 14515, 11702, 14488, 13873, 14808, 13674, 13734, 15352, 14930, 14605, 14998, 14980, 14631, 13056, 15090, 14404, 15268, 12694, 14921, 15298, 14651, 15286, 15220, }; uint16_t ret[3 * 4 * 5 * 2] = { 14828, 14553, 14590, 13612, 13310, 13193, 14873, 12393, 14460, 15356, 14266, 12178, 14191, 13389, 15059, 15035, 14631, 12536, 14744, 14468, 8712, 11337, 9060, 13481, 10329, 12476, 14793, 12398, 14813, 12752, 12083, 11443, 14752, 15122, 14771, 15330, 12768, 10727, 14540, 10380, 13767, 12948, 14935, 13559, 15248, 13328, 15328, 14691, 14863, 11713, 14383, 13918, 12246, 13916, 13844, 13506, 14675, 13322, 12828, 11775, 13122, 14914, 15284, 13585, 14630, 14353, 14721, 12896, 13883, 8004, 13363, 14401, 11811, 10588, 9642, 14515, 14012, 11702, 13396, 14488, 15086, 13873, 14222, 14808, 14797, 13674, 14173, 13734, 14397, 15352, 15042, 14930, 11974, 14605, 15166, 14998, 13588, 14980, 15095, 14631, 15230, 13056, 12827, 15090, 15275, 14404, 12324, 15268, 12618, 12694, 14631, 14921, 13488, 15298, 14433, 14651, 14346, 15286, 11441, 15220, }; TransArgs args{reinterpret_cast(data), FORMAT_NCHW, FORMAT_CHWN, {2, 3, 4, 5}, {3, 4, 5, 2}, DT_FLOAT16}; TransResult result; FormatTransferTranspose transfer; EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, chwn_to_nchw1) { uint16_t ret[1 * 2 * 3 * 4] = { 14329, 11393, 10909, 14508, 14671, 14284, 15230, 13538, 12337, 14968, 12427, 12814, 13675, 15281, 14619, 14878, 14470, 14688, 14055, 14566, 12998, 11163, 13835, 9363, }; uint16_t data[2 * 3 * 4 * 1] = { 14329, 11393, 10909, 14508, 14671, 14284, 15230, 13538, 12337, 14968, 12427, 12814, 13675, 15281, 14619, 14878, 14470, 14688, 14055, 14566, 12998, 11163, 13835, 9363, }; TransArgs args{reinterpret_cast(data), FORMAT_CHWN, FORMAT_NCHW, {2, 3, 4, 1}, {1, 2, 3, 4}, DT_FLOAT16}; TransResult result; FormatTransferTranspose transfer; EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, chwn_to_nchw2) { uint16_t ret[2 * 3 * 4 * 5] = { 14828, 14590, 13310, 14873, 14460, 14266, 14191, 15059, 14631, 14744, 8712, 9060, 10329, 14793, 14813, 12083, 14752, 14771, 12768, 14540, 13767, 14935, 15248, 15328, 14863, 14383, 12246, 13844, 14675, 12828, 13122, 15284, 14630, 14721, 13883, 13363, 11811, 9642, 14012, 13396, 15086, 14222, 14797, 14173, 14397, 15042, 11974, 15166, 13588, 15095, 15230, 12827, 15275, 12324, 12618, 14631, 13488, 14433, 14346, 11441, 14553, 13612, 13193, 12393, 15356, 12178, 13389, 15035, 12536, 14468, 11337, 13481, 12476, 12398, 12752, 11443, 15122, 15330, 10727, 10380, 12948, 13559, 13328, 14691, 11713, 13918, 13916, 13506, 13322, 11775, 14914, 13585, 14353, 12896, 8004, 14401, 10588, 14515, 11702, 14488, 13873, 14808, 13674, 13734, 15352, 14930, 14605, 14998, 14980, 14631, 13056, 15090, 14404, 15268, 12694, 14921, 15298, 14651, 15286, 15220, }; uint16_t data[3 * 4 * 5 * 2] = { 14828, 14553, 14590, 13612, 13310, 13193, 14873, 12393, 14460, 15356, 14266, 12178, 14191, 13389, 15059, 15035, 14631, 12536, 14744, 14468, 8712, 11337, 9060, 13481, 10329, 12476, 14793, 12398, 14813, 12752, 12083, 11443, 14752, 15122, 14771, 15330, 12768, 10727, 14540, 10380, 13767, 12948, 14935, 13559, 15248, 13328, 15328, 14691, 14863, 11713, 14383, 13918, 12246, 13916, 13844, 13506, 14675, 13322, 12828, 11775, 13122, 14914, 15284, 13585, 14630, 14353, 14721, 12896, 13883, 8004, 13363, 14401, 11811, 10588, 9642, 14515, 14012, 11702, 13396, 14488, 15086, 13873, 14222, 14808, 14797, 13674, 14173, 13734, 14397, 15352, 15042, 14930, 11974, 14605, 15166, 14998, 13588, 14980, 15095, 14631, 15230, 13056, 12827, 15090, 15275, 14404, 12324, 15268, 12618, 12694, 14631, 14921, 13488, 15298, 14433, 14651, 14346, 15286, 11441, 15220, }; TransArgs args{reinterpret_cast(data), FORMAT_CHWN, FORMAT_NCHW, {3, 4, 5, 2}, {2, 3, 4, 5}, DT_FLOAT16}; TransResult result; FormatTransferTranspose transfer; EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, nhwc_to_chwn1) { uint16_t data[1 * 2 * 3 * 4] = { 15156, 14765, 15193, 12386, 15207, 14866, 12565, 14373, 14437, 14176, 14992, 12660, 14101, 15184, 14197, 13624, 14646, 15009, 15165, 14585, 14831, 14233, 13940, 15290, }; uint16_t ret[4 * 2 * 3 * 1] = { 15156, 15207, 14437, 14101, 14646, 14831, 14765, 14866, 14176, 15184, 15009, 14233, 15193, 12565, 14992, 14197, 15165, 13940, 12386, 14373, 12660, 13624, 14585, 15290, }; TransArgs args{reinterpret_cast(data), FORMAT_NHWC, FORMAT_CHWN, {1, 2, 3, 4}, {4, 2, 3, 1}, DT_FLOAT16}; TransResult result; FormatTransferTranspose transfer; EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, nhwc_to_chwn2) { uint16_t data[2 * 3 * 4 * 5] = { 12684, 13426, 14435, 12149, 14707, 13284, 13922, 13767, 14770, 15231, 13815, 15355, 14172, 13694, 15160, 14684, 15030, 13894, 14877, 14792, 14940, 15102, 9406, 14297, 11410, 10120, 14727, 15269, 9594, 14439, 11287, 15342, 15302, 9009, 14128, 11963, 14935, 13439, 15290, 14492, 14781, 14814, 15034, 13992, 14962, 10638, 14344, 15162, 13625, 14435, 14596, 14294, 14798, 14402, 12369, 14539, 12314, 14760, 11785, 15006, 14488, 15211, 14801, 14529, 14751, 14758, 14626, 12523, 14740, 14917, 12841, 15125, 14354, 12682, 13958, 13454, 11957, 15264, 8764, 13459, 12437, 14388, 14768, 13619, 14159, 15110, 14878, 14464, 14564, 12856, 14755, 12487, 13430, 14506, 14335, 14380, 13689, 14393, 15072, 14684, 14925, 13423, 14413, 14998, 13522, 14881, 15081, 7247, 13016, 13873, 12762, 13382, 13563, 14333, 15270, 15006, 15300, 13663, 13677, 13900, }; uint16_t ret[5 * 3 * 4 * 2] = { 12684, 14488, 13284, 14758, 13815, 12841, 14684, 13454, 14940, 12437, 10120, 15110, 11287, 14755, 11963, 14380, 14781, 14925, 10638, 14881, 14596, 12762, 14539, 15006, 13426, 15211, 13922, 14626, 15355, 15125, 15030, 11957, 15102, 14388, 14727, 14878, 15342, 12487, 14935, 13689, 14814, 13423, 14344, 15081, 14294, 13382, 12314, 15300, 14435, 14801, 13767, 12523, 14172, 14354, 13894, 15264, 9406, 14768, 15269, 14464, 15302, 13430, 13439, 14393, 15034, 14413, 15162, 7247, 14798, 13563, 14760, 13663, 12149, 14529, 14770, 14740, 13694, 12682, 14877, 8764, 14297, 13619, 9594, 14564, 9009, 14506, 15290, 15072, 13992, 14998, 13625, 13016, 14402, 14333, 11785, 13677, 14707, 14751, 15231, 14917, 15160, 13958, 14792, 13459, 11410, 14159, 14439, 12856, 14128, 14335, 14492, 14684, 14962, 13522, 14435, 13873, 12369, 15270, 15006, 13900, }; TransArgs args{reinterpret_cast(data), FORMAT_NHWC, FORMAT_CHWN, {2, 3, 4, 5}, {5, 3, 4, 2}, DT_FLOAT16}; TransResult result; FormatTransferTranspose transfer; EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, chwn_to_nhwc1) { uint16_t ret[1 * 2 * 3 * 4] = { 15156, 14765, 15193, 12386, 15207, 14866, 12565, 14373, 14437, 14176, 14992, 12660, 14101, 15184, 14197, 13624, 14646, 15009, 15165, 14585, 14831, 14233, 13940, 15290, }; uint16_t data[4 * 2 * 3 * 1] = { 15156, 15207, 14437, 14101, 14646, 14831, 14765, 14866, 14176, 15184, 15009, 14233, 15193, 12565, 14992, 14197, 15165, 13940, 12386, 14373, 12660, 13624, 14585, 15290, }; TransArgs args{reinterpret_cast(data), FORMAT_CHWN, FORMAT_NHWC, {4, 2, 3, 1}, {1, 2, 3, 4}, DT_FLOAT16}; TransResult result; FormatTransferTranspose transfer; EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, chwn_to_nhwc2) { uint16_t ret[2 * 3 * 4 * 5] = { 12684, 13426, 14435, 12149, 14707, 13284, 13922, 13767, 14770, 15231, 13815, 15355, 14172, 13694, 15160, 14684, 15030, 13894, 14877, 14792, 14940, 15102, 9406, 14297, 11410, 10120, 14727, 15269, 9594, 14439, 11287, 15342, 15302, 9009, 14128, 11963, 14935, 13439, 15290, 14492, 14781, 14814, 15034, 13992, 14962, 10638, 14344, 15162, 13625, 14435, 14596, 14294, 14798, 14402, 12369, 14539, 12314, 14760, 11785, 15006, 14488, 15211, 14801, 14529, 14751, 14758, 14626, 12523, 14740, 14917, 12841, 15125, 14354, 12682, 13958, 13454, 11957, 15264, 8764, 13459, 12437, 14388, 14768, 13619, 14159, 15110, 14878, 14464, 14564, 12856, 14755, 12487, 13430, 14506, 14335, 14380, 13689, 14393, 15072, 14684, 14925, 13423, 14413, 14998, 13522, 14881, 15081, 7247, 13016, 13873, 12762, 13382, 13563, 14333, 15270, 15006, 15300, 13663, 13677, 13900, }; uint16_t data[5 * 3 * 4 * 2] = { 12684, 14488, 13284, 14758, 13815, 12841, 14684, 13454, 14940, 12437, 10120, 15110, 11287, 14755, 11963, 14380, 14781, 14925, 10638, 14881, 14596, 12762, 14539, 15006, 13426, 15211, 13922, 14626, 15355, 15125, 15030, 11957, 15102, 14388, 14727, 14878, 15342, 12487, 14935, 13689, 14814, 13423, 14344, 15081, 14294, 13382, 12314, 15300, 14435, 14801, 13767, 12523, 14172, 14354, 13894, 15264, 9406, 14768, 15269, 14464, 15302, 13430, 13439, 14393, 15034, 14413, 15162, 7247, 14798, 13563, 14760, 13663, 12149, 14529, 14770, 14740, 13694, 12682, 14877, 8764, 14297, 13619, 9594, 14564, 9009, 14506, 15290, 15072, 13992, 14998, 13625, 13016, 14402, 14333, 11785, 13677, 14707, 14751, 15231, 14917, 15160, 13958, 14792, 13459, 11410, 14159, 14439, 12856, 14128, 14335, 14492, 14684, 14962, 13522, 14435, 13873, 12369, 15270, 15006, 13900, }; TransArgs args{reinterpret_cast(data), FORMAT_CHWN, FORMAT_NHWC, {5, 3, 4, 2}, {2, 3, 4, 5}, DT_FLOAT16}; TransResult result; FormatTransferTranspose transfer; EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, nhwc_to_hwcn1) { uint16_t data[1 * 2 * 3 * 4] = { 14129, 12008, 13612, 14950, 9964, 14974, 14727, 13558, 14770, 13280, 13988, 14765, 12016, 12426, 14025, 13745, 13664, 14682, 14137, 11786, 13039, 15002, 11979, 14393, }; uint16_t ret[2 * 3 * 4 * 1] = { 14129, 12008, 13612, 14950, 9964, 14974, 14727, 13558, 14770, 13280, 13988, 14765, 12016, 12426, 14025, 13745, 13664, 14682, 14137, 11786, 13039, 15002, 11979, 14393, }; TransArgs args{reinterpret_cast(data), FORMAT_NHWC, FORMAT_HWCN, {1, 2, 3, 4}, {2, 3, 4, 1}, DT_FLOAT16}; TransResult result; FormatTransferTranspose transfer; EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, nhwc_to_hwcn2) { uint16_t data[2 * 3 * 4 * 5] = { 15241, 14379, 14509, 15065, 14406, 15216, 13592, 15337, 14061, 14560, 13329, 13347, 14049, 13721, 14899, 13968, 12837, 14084, 14590, 14354, 14536, 13206, 14320, 14102, 13426, 14722, 13367, 14296, 10820, 15236, 13542, 15195, 13589, 14402, 14992, 14552, 13629, 14822, 10726, 14672, 13646, 14451, 11311, 14799, 15108, 14615, 14204, 12904, 14085, 14527, 15208, 13901, 14160, 15021, 15228, 14349, 12507, 11221, 14349, 15351, 15275, 14430, 14909, 14487, 14214, 14199, 11764, 14547, 14863, 14847, 14610, 14552, 13374, 15204, 13327, 15292, 14080, 15144, 11463, 13983, 14836, 14657, 14479, 13186, 11808, 14743, 14113, 14734, 14672, 14588, 14590, 13482, 13693, 11461, 14844, 13050, 14797, 13567, 14446, 13603, 14551, 14501, 14589, 14529, 15077, 13922, 14478, 14975, 14988, 14516, 14389, 15255, 13558, 14055, 12882, 15062, 15016, 11621, 15223, 15042, }; uint16_t ret[3 * 4 * 5 * 2] = { 15241, 15275, 14379, 14430, 14509, 14909, 15065, 14487, 14406, 14214, 15216, 14199, 13592, 11764, 15337, 14547, 14061, 14863, 14560, 14847, 13329, 14610, 13347, 14552, 14049, 13374, 13721, 15204, 14899, 13327, 13968, 15292, 12837, 14080, 14084, 15144, 14590, 11463, 14354, 13983, 14536, 14836, 13206, 14657, 14320, 14479, 14102, 13186, 13426, 11808, 14722, 14743, 13367, 14113, 14296, 14734, 10820, 14672, 15236, 14588, 13542, 14590, 15195, 13482, 13589, 13693, 14402, 11461, 14992, 14844, 14552, 13050, 13629, 14797, 14822, 13567, 10726, 14446, 14672, 13603, 13646, 14551, 14451, 14501, 11311, 14589, 14799, 14529, 15108, 15077, 14615, 13922, 14204, 14478, 12904, 14975, 14085, 14988, 14527, 14516, 15208, 14389, 13901, 15255, 14160, 13558, 15021, 14055, 15228, 12882, 14349, 15062, 12507, 15016, 11221, 11621, 14349, 15223, 15351, 15042, }; TransArgs args{reinterpret_cast(data), FORMAT_NHWC, FORMAT_HWCN, {2, 3, 4, 5}, {3, 4, 5, 2}, DT_FLOAT16}; TransResult result; FormatTransferTranspose transfer; EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, hwcn_to_nhwc1) { uint16_t ret[1 * 2 * 3 * 4] = { 14129, 12008, 13612, 14950, 9964, 14974, 14727, 13558, 14770, 13280, 13988, 14765, 12016, 12426, 14025, 13745, 13664, 14682, 14137, 11786, 13039, 15002, 11979, 14393, }; uint16_t data[2 * 3 * 4 * 1] = { 14129, 12008, 13612, 14950, 9964, 14974, 14727, 13558, 14770, 13280, 13988, 14765, 12016, 12426, 14025, 13745, 13664, 14682, 14137, 11786, 13039, 15002, 11979, 14393, }; TransArgs args{reinterpret_cast(data), FORMAT_HWCN, FORMAT_NHWC, {2, 3, 4, 1}, {1, 2, 3, 4}, DT_FLOAT16}; TransResult result; FormatTransferTranspose transfer; EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, hwcn_to_nhwc2) { uint16_t ret[2 * 3 * 4 * 5] = { 15241, 14379, 14509, 15065, 14406, 15216, 13592, 15337, 14061, 14560, 13329, 13347, 14049, 13721, 14899, 13968, 12837, 14084, 14590, 14354, 14536, 13206, 14320, 14102, 13426, 14722, 13367, 14296, 10820, 15236, 13542, 15195, 13589, 14402, 14992, 14552, 13629, 14822, 10726, 14672, 13646, 14451, 11311, 14799, 15108, 14615, 14204, 12904, 14085, 14527, 15208, 13901, 14160, 15021, 15228, 14349, 12507, 11221, 14349, 15351, 15275, 14430, 14909, 14487, 14214, 14199, 11764, 14547, 14863, 14847, 14610, 14552, 13374, 15204, 13327, 15292, 14080, 15144, 11463, 13983, 14836, 14657, 14479, 13186, 11808, 14743, 14113, 14734, 14672, 14588, 14590, 13482, 13693, 11461, 14844, 13050, 14797, 13567, 14446, 13603, 14551, 14501, 14589, 14529, 15077, 13922, 14478, 14975, 14988, 14516, 14389, 15255, 13558, 14055, 12882, 15062, 15016, 11621, 15223, 15042, }; uint16_t data[3 * 4 * 5 * 2] = { 15241, 15275, 14379, 14430, 14509, 14909, 15065, 14487, 14406, 14214, 15216, 14199, 13592, 11764, 15337, 14547, 14061, 14863, 14560, 14847, 13329, 14610, 13347, 14552, 14049, 13374, 13721, 15204, 14899, 13327, 13968, 15292, 12837, 14080, 14084, 15144, 14590, 11463, 14354, 13983, 14536, 14836, 13206, 14657, 14320, 14479, 14102, 13186, 13426, 11808, 14722, 14743, 13367, 14113, 14296, 14734, 10820, 14672, 15236, 14588, 13542, 14590, 15195, 13482, 13589, 13693, 14402, 11461, 14992, 14844, 14552, 13050, 13629, 14797, 14822, 13567, 10726, 14446, 14672, 13603, 13646, 14551, 14451, 14501, 11311, 14589, 14799, 14529, 15108, 15077, 14615, 13922, 14204, 14478, 12904, 14975, 14085, 14988, 14527, 14516, 15208, 14389, 13901, 15255, 14160, 13558, 15021, 14055, 15228, 12882, 14349, 15062, 12507, 15016, 11221, 11621, 14349, 15223, 15351, 15042, }; TransArgs args{reinterpret_cast(data), FORMAT_HWCN, FORMAT_NHWC, {3, 4, 5, 2}, {2, 3, 4, 5}, DT_FLOAT16}; TransResult result; FormatTransferTranspose transfer; EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, hwcn_to_chwn1) { uint16_t data[1 * 2 * 3 * 4] = { 14583, 12849, 14184, 14611, 12516, 11629, 15235, 13769, 9859, 15209, 14862, 15129, 14201, 10199, 14281, 15009, 14606, 13650, 14919, 14789, 14460, 13307, 13646, 14611, }; uint16_t ret[3 * 1 * 2 * 4] = { 14583, 12849, 14184, 14611, 14201, 10199, 14281, 15009, 12516, 11629, 15235, 13769, 14606, 13650, 14919, 14789, 9859, 15209, 14862, 15129, 14460, 13307, 13646, 14611, }; TransArgs args{reinterpret_cast(data), FORMAT_HWCN, FORMAT_CHWN, {1, 2, 3, 4}, {3, 1, 2, 4}, DT_FLOAT16}; TransResult result; FormatTransferTranspose transfer; EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, hwcn_to_chwn2) { uint16_t data[2 * 3 * 4 * 5] = { 11800, 12670, 15017, 13966, 12622, 14634, 14363, 14746, 13889, 12607, 9805, 14984, 9119, 13275, 14114, 15158, 14442, 15308, 12364, 14944, 14014, 15035, 14983, 14868, 13560, 15094, 14419, 13245, 13675, 14802, 13906, 9343, 14854, 13488, 14350, 13566, 15225, 14936, 11090, 14666, 14580, 14419, 13987, 13333, 14821, 15338, 15153, 12083, 12206, 13802, 14941, 14897, 15181, 14527, 14508, 14883, 14709, 8970, 15133, 13956, 10066, 11934, 13896, 14886, 13739, 10711, 14594, 12352, 14841, 14405, 15351, 13700, 13904, 14990, 13186, 14602, 14762, 14686, 12950, 15127, 14630, 13246, 9233, 13646, 14467, 12789, 13639, 12463, 11667, 14927, 14596, 13614, 13617, 11596, 15260, 14454, 13549, 13174, 14261, 13739, 8588, 14189, 13479, 11268, 14322, 14807, 15008, 13276, 12450, 12053, 13016, 14735, 13952, 13959, 13576, 14340, 14408, 13392, 14753, 13954, }; uint16_t ret[4 * 2 * 3 * 5] = { 11800, 12670, 15017, 13966, 12622, 14014, 15035, 14983, 14868, 13560, 14580, 14419, 13987, 13333, 14821, 10066, 11934, 13896, 14886, 13739, 14630, 13246, 9233, 13646, 14467, 8588, 14189, 13479, 11268, 14322, 14634, 14363, 14746, 13889, 12607, 15094, 14419, 13245, 13675, 14802, 15338, 15153, 12083, 12206, 13802, 10711, 14594, 12352, 14841, 14405, 12789, 13639, 12463, 11667, 14927, 14807, 15008, 13276, 12450, 12053, 9805, 14984, 9119, 13275, 14114, 13906, 9343, 14854, 13488, 14350, 14941, 14897, 15181, 14527, 14508, 15351, 13700, 13904, 14990, 13186, 14596, 13614, 13617, 11596, 15260, 13016, 14735, 13952, 13959, 13576, 15158, 14442, 15308, 12364, 14944, 13566, 15225, 14936, 11090, 14666, 14883, 14709, 8970, 15133, 13956, 14602, 14762, 14686, 12950, 15127, 14454, 13549, 13174, 14261, 13739, 14340, 14408, 13392, 14753, 13954, }; TransArgs args{reinterpret_cast(data), FORMAT_HWCN, FORMAT_CHWN, {2, 3, 4, 5}, {4, 2, 3, 5}, DT_FLOAT16}; TransResult result; FormatTransferTranspose transfer; EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, chwn_to_hwcn1) { uint16_t ret[1 * 2 * 3 * 4] = { 14583, 12849, 14184, 14611, 12516, 11629, 15235, 13769, 9859, 15209, 14862, 15129, 14201, 10199, 14281, 15009, 14606, 13650, 14919, 14789, 14460, 13307, 13646, 14611, }; uint16_t data[3 * 1 * 2 * 4] = { 14583, 12849, 14184, 14611, 14201, 10199, 14281, 15009, 12516, 11629, 15235, 13769, 14606, 13650, 14919, 14789, 9859, 15209, 14862, 15129, 14460, 13307, 13646, 14611, }; TransArgs args{reinterpret_cast(data), FORMAT_CHWN, FORMAT_HWCN, {3, 1, 2, 4}, {1, 2, 3, 4}, DT_FLOAT16}; TransResult result; FormatTransferTranspose transfer; EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, chwn_to_hwcn2) { uint16_t ret[2 * 3 * 4 * 5] = { 11800, 12670, 15017, 13966, 12622, 14634, 14363, 14746, 13889, 12607, 9805, 14984, 9119, 13275, 14114, 15158, 14442, 15308, 12364, 14944, 14014, 15035, 14983, 14868, 13560, 15094, 14419, 13245, 13675, 14802, 13906, 9343, 14854, 13488, 14350, 13566, 15225, 14936, 11090, 14666, 14580, 14419, 13987, 13333, 14821, 15338, 15153, 12083, 12206, 13802, 14941, 14897, 15181, 14527, 14508, 14883, 14709, 8970, 15133, 13956, 10066, 11934, 13896, 14886, 13739, 10711, 14594, 12352, 14841, 14405, 15351, 13700, 13904, 14990, 13186, 14602, 14762, 14686, 12950, 15127, 14630, 13246, 9233, 13646, 14467, 12789, 13639, 12463, 11667, 14927, 14596, 13614, 13617, 11596, 15260, 14454, 13549, 13174, 14261, 13739, 8588, 14189, 13479, 11268, 14322, 14807, 15008, 13276, 12450, 12053, 13016, 14735, 13952, 13959, 13576, 14340, 14408, 13392, 14753, 13954, }; uint16_t data[4 * 2 * 3 * 5] = { 11800, 12670, 15017, 13966, 12622, 14014, 15035, 14983, 14868, 13560, 14580, 14419, 13987, 13333, 14821, 10066, 11934, 13896, 14886, 13739, 14630, 13246, 9233, 13646, 14467, 8588, 14189, 13479, 11268, 14322, 14634, 14363, 14746, 13889, 12607, 15094, 14419, 13245, 13675, 14802, 15338, 15153, 12083, 12206, 13802, 10711, 14594, 12352, 14841, 14405, 12789, 13639, 12463, 11667, 14927, 14807, 15008, 13276, 12450, 12053, 9805, 14984, 9119, 13275, 14114, 13906, 9343, 14854, 13488, 14350, 14941, 14897, 15181, 14527, 14508, 15351, 13700, 13904, 14990, 13186, 14596, 13614, 13617, 11596, 15260, 13016, 14735, 13952, 13959, 13576, 15158, 14442, 15308, 12364, 14944, 13566, 15225, 14936, 11090, 14666, 14883, 14709, 8970, 15133, 13956, 14602, 14762, 14686, 12950, 15127, 14454, 13549, 13174, 14261, 13739, 14340, 14408, 13392, 14753, 13954, }; TransArgs args{reinterpret_cast(data), FORMAT_CHWN, FORMAT_HWCN, {4, 2, 3, 5}, {2, 3, 4, 5}, DT_FLOAT16}; TransResult result; FormatTransferTranspose transfer; EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); EXPECT_EQ(result.length, sizeof(ret)); for (size_t i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); } } TEST_F(UtestFormatTranspose, invalid_data_shape) { FormatTransferTranspose transfer; std::vector dst_shape; EXPECT_EQ(transfer.TransShape(FORMAT_NCHW, std::vector({}), DT_FLOAT16, FORMAT_HWCN, dst_shape), ACL_ERROR_GE_TRANSSHAPE_SHAPE_INVALID); } TEST_F(UtestFormatTranspose, invalid_src_format) { FormatTransferTranspose transfer; std::vector dst_shape; EXPECT_EQ(transfer.TransShape(FORMAT_NC1HWC0, std::vector({1, 3, 8, 8}), DT_FLOAT16, FORMAT_HWCN, dst_shape), ACL_ERROR_GE_TRANSSHAPE_FORMAT_INVALID); } TEST_F(UtestFormatTranspose, invalid_dst_format) { FormatTransferTranspose transfer; std::vector dst_shape; std::vector src_shape; EXPECT_EQ(transfer.TransShape(FORMAT_NCHW, src_shape, DT_FLOAT16, FORMAT_C1HWNC0, dst_shape), ACL_ERROR_GE_TRANSSHAPE_FORMAT_INVALID); } } // namespace formats } // namespace ge