/*
 * Copyright 2022 GlobalFoundries PDK Authors
 *
 * 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.
 */
  cell(gf180mcu_fd_sc_mcu9t5v0__or2_1) {
    area : 22.579200 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2" ;
      value : "6.59232e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2" ;
      value : "7.03008e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2" ;
      value : "5.26464e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2" ;
      value : "5.26464e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "7.03008e-05" ;
    }

    pg_pin(VDD) {
      voltage_name : VDD ;
      pg_type : primary_power ;
    }

    pg_pin(VSS) {
      voltage_name : VSS ;
      pg_type : primary_ground ;
    }

    pin(A1) {
      capacitance : 0.00399 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 4.4 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.01069, 0.01067, 0.01069, 0.01069, 0.01068, 0.01068, 0.01072, \
                  0.0107, 0.0107, 0.0107");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.004623, -0.004643, -0.004663, -0.004663, -0.004684, -0.004685, \
                  -0.004703, -0.004708, -0.004704, -0.004704");
        }
      }
    }

    pin(A2) {
      capacitance : 0.003964 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 4.4 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.01507, 0.01499, 0.01495, 0.01505, 0.01507, 0.01508, 0.01509, \
                  0.01511, 0.01509, 0.0151");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.01263, -0.01352, -0.0145, -0.01467, -0.01475, -0.0148, -0.01486, \
                  -0.01487, -0.01489, -0.01491");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1|A2)" ;
      max_capacitance : 0.4525 ;
      max_transition : 4.4 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "A1" ;
        when : "!A2" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01505, 0.03594, 0.06848, 0.1141, 0.1742, 0.2499, 0.3423, 0.4525");
          values("0.1478, 0.1435, 0.1364, 0.1322, 0.1297, 0.1282, 0.1272, 0.1265, 0.126, 0.1258",\
                 "0.1468, 0.1426, 0.1354, 0.1312, 0.1287, 0.1272, 0.1262, 0.1256, 0.1251, 0.1248",\
                 "0.1483, 0.144, 0.1368, 0.1326, 0.13, 0.1286, 0.1276, 0.127, 0.1265, 0.1262",\
                 "0.1589, 0.1542, 0.1462, 0.1413, 0.1386, 0.1368, 0.1357, 0.1349, 0.1344, 0.1341",\
                 "0.1805, 0.1753, 0.1655, 0.159, 0.1551, 0.1527, 0.1513, 0.1504, 0.1497, 0.1493",\
                 "0.2121, 0.2062, 0.1944, 0.1861, 0.1808, 0.1773, 0.1754, 0.174, 0.1731, 0.1725",\
                 "0.2558, 0.249, 0.2349, 0.224, 0.2169, 0.2122, 0.2091, 0.2072, 0.2058, 0.2048",\
                 "0.3116, 0.3041, 0.2875, 0.2736, 0.2641, 0.2576, 0.2534, 0.2505, 0.2486, 0.2472",\
                 "0.3793, 0.3714, 0.3523, 0.3351, 0.3233, 0.3148, 0.3091, 0.3051, 0.3023, 0.3003",\
                 "0.4598, 0.4511, 0.4298, 0.4093, 0.3945, 0.3837, 0.3766, 0.3713, 0.3676, 0.3648");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01505, 0.03594, 0.06848, 0.1141, 0.1742, 0.2499, 0.3423, 0.4525");
          values("0.07198, 0.07186, 0.07246, 0.0737, 0.07464, 0.07549, 0.07699, 0.07817, 0.08014, 0.08053",\
                 "0.07234, 0.0721, 0.07274, 0.07355, 0.07478, 0.07552, 0.07756, 0.07839, 0.08122, 0.08233",\
                 "0.07592, 0.07513, 0.07463, 0.07543, 0.07615, 0.077, 0.07839, 0.07932, 0.08086, 0.08269",\
                 "0.08614, 0.08458, 0.08313, 0.0818, 0.08194, 0.08244, 0.08401, 0.08487, 0.08626, 0.08953",\
                 "0.1047, 0.1022, 0.09822, 0.09623, 0.09476, 0.09493, 0.09574, 0.0966, 0.09742, 0.09889",\
                 "0.1319, 0.1285, 0.123, 0.1186, 0.1167, 0.1161, 0.1152, 0.1162, 0.1169, 0.1183",\
                 "0.1692, 0.165, 0.1577, 0.1501, 0.1462, 0.1458, 0.1448, 0.1439, 0.1446, 0.1446",\
                 "0.2165, 0.2112, 0.2019, 0.1934, 0.1864, 0.1834, 0.1828, 0.1823, 0.182, 0.1813",\
                 "0.2746, 0.268, 0.2566, 0.2455, 0.2376, 0.2321, 0.2289, 0.23, 0.2292, 0.2285",\
                 "0.3432, 0.3353, 0.3218, 0.3091, 0.2987, 0.2911, 0.2862, 0.2838, 0.2857, 0.2854");
        }
      }

      internal_power() {
        related_pin : "A2" ;
        when : "!A1" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01505, 0.03594, 0.06848, 0.1141, 0.1742, 0.2499, 0.3423, 0.4525");
          values("0.1587, 0.1545, 0.1473, 0.1431, 0.1407, 0.1391, 0.1381, 0.1375, 0.137, 0.1367",\
                 "0.1575, 0.1533, 0.1462, 0.1419, 0.1395, 0.1378, 0.137, 0.1363, 0.1358, 0.1355",\
                 "0.1574, 0.1531, 0.1459, 0.1416, 0.1391, 0.1376, 0.1366, 0.136, 0.1356, 0.1353",\
                 "0.1665, 0.1621, 0.154, 0.1491, 0.1464, 0.1447, 0.1435, 0.1428, 0.1423, 0.1419",\
                 "0.1882, 0.1831, 0.1738, 0.1677, 0.164, 0.1618, 0.1603, 0.1594, 0.1588, 0.1583",\
                 "0.2233, 0.2176, 0.2063, 0.1984, 0.1933, 0.19, 0.1881, 0.1867, 0.1857, 0.1851",\
                 "0.2727, 0.2663, 0.2525, 0.242, 0.2351, 0.2304, 0.2275, 0.2253, 0.2241, 0.223",\
                 "0.3355, 0.3285, 0.3124, 0.2987, 0.2894, 0.2832, 0.2791, 0.2762, 0.2742, 0.2727",\
                 "0.4119, 0.4043, 0.386, 0.369, 0.3574, 0.3491, 0.3436, 0.3397, 0.3369, 0.3348",\
                 "0.5024, 0.4942, 0.4743, 0.454, 0.4393, 0.4287, 0.4214, 0.4163, 0.4126, 0.4099");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01505, 0.03594, 0.06848, 0.1141, 0.1742, 0.2499, 0.3423, 0.4525");
          values("0.08168, 0.08101, 0.08096, 0.08183, 0.08212, 0.0834, 0.08465, 0.08562, 0.08654, 0.08837",\
                 "0.08083, 0.08025, 0.08025, 0.08075, 0.08183, 0.08283, 0.08396, 0.08504, 0.08582, 0.08729",\
                 "0.08336, 0.08242, 0.08149, 0.08172, 0.08219, 0.08326, 0.08468, 0.08609, 0.0869, 0.08801",\
                 "0.09429, 0.09251, 0.09044, 0.08917, 0.08874, 0.08934, 0.09041, 0.0921, 0.0923, 0.09413",\
                 "0.1149, 0.1125, 0.1081, 0.1056, 0.104, 0.1032, 0.1037, 0.1048, 0.106, 0.1067",\
                 "0.1457, 0.1427, 0.1365, 0.1314, 0.1296, 0.1278, 0.1276, 0.1279, 0.1283, 0.1291",\
                 "0.1881, 0.1839, 0.1759, 0.1687, 0.1646, 0.163, 0.1608, 0.1612, 0.16, 0.1611",\
                 "0.2426, 0.2373, 0.2276, 0.2182, 0.2113, 0.2072, 0.2064, 0.205, 0.2039, 0.2043",\
                 "0.3099, 0.3035, 0.2922, 0.2807, 0.2717, 0.2654, 0.261, 0.2614, 0.2597, 0.259",\
                 "0.3901, 0.3824, 0.3693, 0.3559, 0.345, 0.335, 0.3295, 0.3265, 0.3267, 0.3256");
        }
      }

      timing() {
        related_pin : "A1" ;
        timing_sense : positive_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01505, 0.03594, 0.06848, 0.1141, 0.1742, 0.2499, 0.3423, 0.4525");
          values("0.2261, 0.2469, 0.3031, 0.387, 0.4984, 0.6437, 0.8303, 1.064, 1.35, 1.69",\
                 "0.2301, 0.2508, 0.307, 0.3907, 0.5023, 0.6476, 0.8342, 1.068, 1.353, 1.694",\
                 "0.258, 0.2787, 0.3347, 0.4184, 0.53, 0.6753, 0.8618, 1.096, 1.381, 1.721",\
                 "0.3248, 0.3453, 0.4012, 0.4847, 0.5962, 0.7413, 0.928, 1.162, 1.447, 1.787",\
                 "0.4234, 0.4444, 0.5016, 0.5862, 0.698, 0.8432, 1.03, 1.263, 1.548, 1.889",\
                 "0.5508, 0.5725, 0.6309, 0.7165, 0.8299, 0.9758, 1.162, 1.396, 1.681, 2.021",\
                 "0.7067, 0.7302, 0.7915, 0.8791, 0.9935, 1.14, 1.327, 1.56, 1.845, 2.185",\
                 "0.8908, 0.916, 0.9818, 1.073, 1.191, 1.339, 1.526, 1.759, 2.044, 2.384",\
                 "1.103, 1.131, 1.2, 1.297, 1.42, 1.572, 1.76, 1.994, 2.279, 2.619",\
                 "1.345, 1.375, 1.449, 1.551, 1.679, 1.837, 2.031, 2.267, 2.552, 2.891");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01505, 0.03594, 0.06848, 0.1141, 0.1742, 0.2499, 0.3423, 0.4525");
          values("0.1166, 0.1355, 0.1975, 0.3144, 0.496, 0.7492, 1.084, 1.504, 2.019, 2.629",\
                 "0.1233, 0.1422, 0.2042, 0.321, 0.5023, 0.7566, 1.091, 1.511, 2.025, 2.636",\
                 "0.1459, 0.1644, 0.2255, 0.3419, 0.5234, 0.7769, 1.112, 1.532, 2.045, 2.659",\
                 "0.1663, 0.1852, 0.2462, 0.3613, 0.5417, 0.7956, 1.129, 1.55, 2.062, 2.676",\
                 "0.1716, 0.1913, 0.2526, 0.3661, 0.5457, 0.7988, 1.132, 1.553, 2.067, 2.676",\
                 "0.157, 0.1778, 0.2404, 0.3543, 0.5327, 0.7853, 1.118, 1.538, 2.05, 2.661",\
                 "0.1208, 0.1427, 0.2077, 0.3214, 0.5, 0.7522, 1.084, 1.503, 2.015, 2.627",\
                 "0.0602, 0.0836, 0.1509, 0.2665, 0.4454, 0.698, 1.03, 1.448, 1.96, 2.57",\
                 "-0.0265, -0.0009, 0.0696, 0.1856, 0.3653, 0.6199, 0.953, 1.373, 1.883, 2.494",\
                 "-0.1411, -0.1135, -0.0396, 0.0787, 0.2589, 0.5147, 0.8501, 1.272, 1.784, 2.393");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01505, 0.03594, 0.06848, 0.1141, 0.1742, 0.2499, 0.3423, 0.4525");
          values("0.08092, 0.102, 0.1601, 0.2584, 0.409, 0.6276, 0.9272, 1.31, 1.785, 2.348",\
                 "0.08098, 0.1015, 0.1602, 0.259, 0.4091, 0.6277, 0.9272, 1.311, 1.785, 2.35",\
                 "0.08114, 0.1018, 0.16, 0.2591, 0.4083, 0.6274, 0.9277, 1.311, 1.785, 2.35",\
                 "0.08214, 0.1026, 0.1611, 0.26, 0.4104, 0.6285, 0.9276, 1.312, 1.785, 2.35",\
                 "0.09012, 0.1109, 0.1677, 0.2648, 0.4132, 0.6292, 0.9278, 1.31, 1.784, 2.348",\
                 "0.0994, 0.1198, 0.1758, 0.2724, 0.419, 0.634, 0.9302, 1.311, 1.785, 2.349",\
                 "0.1134, 0.1344, 0.1896, 0.2828, 0.4258, 0.6386, 0.933, 1.314, 1.786, 2.349",\
                 "0.1294, 0.153, 0.2092, 0.3002, 0.4402, 0.6464, 0.9376, 1.317, 1.788, 2.35",\
                 "0.1456, 0.1712, 0.2312, 0.3232, 0.464, 0.6656, 0.9474, 1.321, 1.789, 2.35",\
                 "0.1636, 0.19, 0.254, 0.3486, 0.4904, 0.6936, 0.9726, 1.335, 1.795, 2.352");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01505, 0.03594, 0.06848, 0.1141, 0.1742, 0.2499, 0.3423, 0.4525");
          values("0.05696, 0.08474, 0.1865, 0.3871, 0.7014, 1.142, 1.724, 2.454, 3.344, 4.411",\
                 "0.05706, 0.08446, 0.1863, 0.3874, 0.7014, 1.142, 1.722, 2.457, 3.345, 4.413",\
                 "0.0577, 0.0853, 0.1865, 0.3873, 0.7015, 1.144, 1.721, 2.456, 3.35, 4.407",\
                 "0.06304, 0.0897, 0.1885, 0.3876, 0.7011, 1.141, 1.72, 2.452, 3.346, 4.407",\
                 "0.0704, 0.09648, 0.1912, 0.3887, 0.7016, 1.14, 1.72, 2.455, 3.342, 4.412",\
                 "0.07996, 0.1056, 0.1977, 0.3913, 0.7032, 1.141, 1.722, 2.451, 3.339, 4.404",\
                 "0.0902, 0.116, 0.206, 0.3974, 0.707, 1.144, 1.72, 2.447, 3.337, 4.406",\
                 "0.1018, 0.1278, 0.2164, 0.4044, 0.7156, 1.151, 1.724, 2.449, 3.339, 4.4",\
                 "0.116, 0.143, 0.2288, 0.4132, 0.7248, 1.162, 1.734, 2.455, 3.34, 4.4",\
                 "0.1312, 0.1572, 0.243, 0.423, 0.7338, 1.176, 1.75, 2.467, 3.347, 4.4");
        }
      }

      timing() {
        related_pin : "A2" ;
        timing_sense : positive_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01505, 0.03594, 0.06848, 0.1141, 0.1742, 0.2499, 0.3423, 0.4525");
          values("0.2482, 0.2689, 0.3251, 0.409, 0.5204, 0.6657, 0.8523, 1.086, 1.372, 1.712",\
                 "0.252, 0.2725, 0.3287, 0.4126, 0.5241, 0.6695, 0.856, 1.09, 1.375, 1.715",\
                 "0.2689, 0.2895, 0.3457, 0.4294, 0.5408, 0.6861, 0.8727, 1.107, 1.392, 1.732",\
                 "0.313, 0.3338, 0.3899, 0.4735, 0.5849, 0.7302, 0.9166, 1.151, 1.436, 1.776",\
                 "0.3868, 0.4082, 0.4659, 0.551, 0.6634, 0.8088, 0.9952, 1.229, 1.514, 1.854",\
                 "0.4899, 0.5123, 0.572, 0.659, 0.7726, 0.919, 1.106, 1.339, 1.624, 1.964",\
                 "0.6151, 0.6392, 0.703, 0.7942, 0.9108, 1.058, 1.245, 1.479, 1.764, 2.103",\
                 "0.7617, 0.7875, 0.8555, 0.9525, 1.076, 1.227, 1.415, 1.649, 1.934, 2.273",\
                 "0.9301, 0.9576, 1.03, 1.132, 1.262, 1.421, 1.615, 1.851, 2.135, 2.474",\
                 "1.12, 1.15, 1.226, 1.334, 1.471, 1.638, 1.841, 2.083, 2.37, 2.709");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01505, 0.03594, 0.06848, 0.1141, 0.1742, 0.2499, 0.3423, 0.4525");
          values("0.129, 0.1478, 0.2097, 0.3264, 0.5077, 0.7614, 1.095, 1.516, 2.028, 2.639",\
                 "0.135, 0.1538, 0.2157, 0.3323, 0.5134, 0.7675, 1.101, 1.522, 2.035, 2.645",\
                 "0.1581, 0.1767, 0.2379, 0.3542, 0.5354, 0.7891, 1.123, 1.543, 2.056, 2.668",\
                 "0.1848, 0.2037, 0.2644, 0.3797, 0.5601, 0.8134, 1.147, 1.567, 2.08, 2.692",\
                 "0.1989, 0.2184, 0.2795, 0.3931, 0.5723, 0.8252, 1.158, 1.578, 2.091, 2.702",\
                 "0.1964, 0.2172, 0.2796, 0.3931, 0.5713, 0.823, 1.156, 1.575, 2.088, 2.698",\
                 "0.1763, 0.1977, 0.2622, 0.376, 0.5544, 0.8055, 1.137, 1.557, 2.068, 2.679",\
                 "0.1361, 0.1597, 0.2264, 0.3411, 0.5201, 0.772, 1.103, 1.522, 2.033, 2.643",\
                 "0.0762, 0.1018, 0.1713, 0.2871, 0.4669, 0.7204, 1.053, 1.471, 1.982, 2.591",\
                 "-0.0053, 0.0217, 0.0948, 0.2124, 0.3928, 0.6474, 0.9825, 1.403, 1.913, 2.522");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01505, 0.03594, 0.06848, 0.1141, 0.1742, 0.2499, 0.3423, 0.4525");
          values("0.08116, 0.1018, 0.1603, 0.2591, 0.4091, 0.6277, 0.9271, 1.31, 1.785, 2.35",\
                 "0.08088, 0.1019, 0.16, 0.2592, 0.4092, 0.6276, 0.9275, 1.31, 1.784, 2.35",\
                 "0.08104, 0.1019, 0.1603, 0.2592, 0.4095, 0.6286, 0.9272, 1.311, 1.785, 2.35",\
                 "0.08322, 0.1035, 0.1613, 0.2596, 0.4104, 0.6285, 0.9278, 1.311, 1.785, 2.348",\
                 "0.08938, 0.11, 0.1687, 0.265, 0.4126, 0.6292, 0.9282, 1.312, 1.784, 2.348",\
                 "0.0984, 0.12, 0.1776, 0.2738, 0.4194, 0.634, 0.93, 1.311, 1.784, 2.35",\
                 "0.1128, 0.1352, 0.1948, 0.29, 0.432, 0.6408, 0.933, 1.315, 1.785, 2.349",\
                 "0.1264, 0.1518, 0.2154, 0.3136, 0.4554, 0.6574, 0.941, 1.317, 1.784, 2.348",\
                 "0.1416, 0.169, 0.2358, 0.3388, 0.4864, 0.6896, 0.965, 1.328, 1.789, 2.348",\
                 "0.1588, 0.1866, 0.2592, 0.3654, 0.5182, 0.7278, 1.006, 1.359, 1.806, 2.355");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.004116, 0.01505, 0.03594, 0.06848, 0.1141, 0.1742, 0.2499, 0.3423, 0.4525");
          values("0.05828, 0.0857, 0.1872, 0.3877, 0.7014, 1.141, 1.72, 2.45, 3.34, 4.401",\
                 "0.05836, 0.08598, 0.1873, 0.388, 0.7013, 1.141, 1.719, 2.45, 3.341, 4.4",\
                 "0.0585, 0.0862, 0.1873, 0.3879, 0.7012, 1.141, 1.72, 2.449, 3.341, 4.409",\
                 "0.06324, 0.09002, 0.1889, 0.3886, 0.7013, 1.141, 1.72, 2.45, 3.344, 4.401",\
                 "0.06972, 0.09606, 0.1916, 0.3893, 0.7019, 1.141, 1.72, 2.449, 3.341, 4.402",\
                 "0.07898, 0.1045, 0.1974, 0.3922, 0.703, 1.142, 1.722, 2.448, 3.339, 4.401",\
                 "0.0888, 0.1152, 0.2056, 0.3978, 0.7074, 1.144, 1.72, 2.453, 3.339, 4.4",\
                 "0.1016, 0.1276, 0.2156, 0.4052, 0.7156, 1.151, 1.723, 2.449, 3.339, 4.405",\
                 "0.1144, 0.1402, 0.2276, 0.4136, 0.7258, 1.163, 1.733, 2.453, 3.339, 4.404",\
                 "0.129, 0.1566, 0.241, 0.424, 0.7364, 1.178, 1.751, 2.465, 3.345, 4.4");
        }
      }
    }
  }

