/*
 * 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_mcu7t5v0__and2_2) {
    area : 19.756800 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2" ;
      value : "0.00038964" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2" ;
      value : "0.00039375" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2" ;
      value : "0.00040617" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2" ;
      value : "0.00040824" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "0.00040824" ;
    }

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

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

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

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.01341, 0.01338, 0.01336, 0.01334, 0.01335, 0.01335, 0.01335, \
                  0.01334, 0.01333, 0.01333");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("-0.00843, -0.008464, -0.008453, -0.008459, -0.008505, -0.008517, \
                  -0.008532, -0.008576, -0.00863, -0.008773");
        }
      }
    }

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

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.0134, 0.01215, 0.01175, 0.01167, 0.01168, 0.01168, 0.01166, \
                  0.01166, 0.01166, 0.01167");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("-0.01167, -0.01167, -0.01164, -0.01163, -0.01166, -0.01165, -0.01165, \
                  -0.01166, -0.01167, -0.01165");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2)" ;
      max_capacitance : 0.7067 ;
      max_transition : 15.6 ;
      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.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005871, 0.02297, 0.05562, 0.1065, 0.1779, 0.2718, 0.3901, 0.5345, 0.7067");
          values("0.1094, 0.1086, 0.1086, 0.1089, 0.1091, 0.1093, 0.1093, 0.1093, 0.1093, 0.1094",\
                 "0.1088, 0.108, 0.108, 0.1083, 0.1085, 0.1086, 0.1087, 0.1087, 0.1088, 0.1088",\
                 "0.108, 0.1071, 0.107, 0.1074, 0.1077, 0.1078, 0.108, 0.108, 0.108, 0.1081",\
                 "0.1136, 0.1118, 0.1105, 0.1102, 0.1104, 0.1105, 0.1106, 0.1107, 0.1107, 0.1107",\
                 "0.1253, 0.1224, 0.1193, 0.1182, 0.1178, 0.1177, 0.1177, 0.1176, 0.1177, 0.1177",\
                 "0.1423, 0.1383, 0.1336, 0.1311, 0.1303, 0.1298, 0.1296, 0.1295, 0.1294, 0.1294",\
                 "0.1652, 0.1603, 0.1535, 0.1498, 0.1479, 0.1471, 0.1466, 0.1463, 0.1461, 0.146",\
                 "0.1945, 0.1886, 0.1798, 0.1745, 0.1716, 0.17, 0.1692, 0.1687, 0.1683, 0.168",\
                 "0.2303, 0.2235, 0.2125, 0.2054, 0.2013, 0.1989, 0.1975, 0.1968, 0.1962, 0.1956",\
                 "0.2726, 0.2652, 0.2519, 0.2428, 0.2375, 0.2341, 0.2321, 0.2309, 0.23, 0.2286");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005871, 0.02297, 0.05562, 0.1065, 0.1779, 0.2718, 0.3901, 0.5345, 0.7067");
          values("0.06175, 0.06101, 0.06123, 0.06242, 0.06378, 0.06465, 0.06597, 0.07112, 0.1162, 0.33",\
                 "0.06131, 0.06063, 0.06077, 0.06194, 0.06318, 0.06456, 0.06555, 0.07075, 0.1169, 0.3351",\
                 "0.06138, 0.06075, 0.06039, 0.06128, 0.0627, 0.06387, 0.06543, 0.07026, 0.1204, 0.3493",\
                 "0.06616, 0.0649, 0.06365, 0.06374, 0.06471, 0.06606, 0.06727, 0.07386, 0.1294, 0.3798",\
                 "0.07527, 0.07333, 0.07077, 0.07052, 0.07077, 0.07131, 0.07252, 0.08043, 0.1472, 0.4294",\
                 "0.08974, 0.08701, 0.08312, 0.08123, 0.08166, 0.08208, 0.08218, 0.09303, 0.1781, 0.5063",\
                 "0.1096, 0.106, 0.1013, 0.09779, 0.09654, 0.09759, 0.09885, 0.1137, 0.2257, 0.6195",\
                 "0.1354, 0.1308, 0.1246, 0.1204, 0.1175, 0.1171, 0.1198, 0.1447, 0.3057, 0.7828",\
                 "0.1668, 0.1613, 0.1539, 0.148, 0.1444, 0.1424, 0.1455, 0.1941, 0.4347, 1.014",\
                 "0.2045, 0.1978, 0.189, 0.182, 0.1774, 0.1742, 0.1819, 0.2763, 0.6415, 1.308");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005871, 0.02297, 0.05562, 0.1065, 0.1779, 0.2718, 0.3901, 0.5345, 0.7067");
          values("0.123, 0.1218, 0.1213, 0.1214, 0.1215, 0.1216, 0.1217, 0.1217, 0.1217, 0.1217",\
                 "0.1221, 0.1209, 0.1203, 0.1205, 0.1206, 0.1207, 0.1207, 0.1207, 0.1207, 0.1207",\
                 "0.1218, 0.1206, 0.1199, 0.1201, 0.1203, 0.1204, 0.1205, 0.1206, 0.1206, 0.1206",\
                 "0.1273, 0.1253, 0.1236, 0.1233, 0.1233, 0.1234, 0.1234, 0.1235, 0.1235, 0.1235",\
                 "0.1397, 0.1365, 0.1331, 0.1317, 0.1312, 0.131, 0.1309, 0.1309, 0.1309, 0.1309",\
                 "0.1574, 0.1534, 0.1482, 0.1454, 0.1442, 0.1437, 0.1434, 0.1434, 0.1433, 0.1432",\
                 "0.1811, 0.1759, 0.1691, 0.165, 0.163, 0.162, 0.1614, 0.1611, 0.161, 0.1607",\
                 "0.2112, 0.2054, 0.1964, 0.1908, 0.1877, 0.186, 0.1852, 0.1846, 0.1842, 0.1839",\
                 "0.248, 0.2414, 0.2304, 0.2233, 0.2188, 0.2164, 0.215, 0.2141, 0.2135, 0.2129",\
                 "0.2918, 0.2846, 0.2714, 0.2623, 0.2565, 0.2532, 0.2512, 0.2499, 0.2488, 0.2474");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005871, 0.02297, 0.05562, 0.1065, 0.1779, 0.2718, 0.3901, 0.5345, 0.7067");
          values("0.06172, 0.06124, 0.06115, 0.06242, 0.06378, 0.06465, 0.06597, 0.07082, 0.1159, 0.3313",\
                 "0.0614, 0.06067, 0.06081, 0.06203, 0.06321, 0.06438, 0.06549, 0.07076, 0.1173, 0.3364",\
                 "0.06093, 0.06022, 0.06011, 0.06116, 0.06228, 0.06348, 0.06495, 0.06996, 0.1201, 0.3492",\
                 "0.06415, 0.06303, 0.06228, 0.06275, 0.06393, 0.06522, 0.06635, 0.07243, 0.1287, 0.3752",\
                 "0.07208, 0.07041, 0.06827, 0.06854, 0.06897, 0.06984, 0.07115, 0.0787, 0.1443, 0.4216",\
                 "0.0858, 0.08332, 0.08022, 0.07874, 0.07941, 0.08013, 0.08065, 0.0909, 0.1745, 0.4965",\
                 "0.1053, 0.1022, 0.09781, 0.09476, 0.09423, 0.09531, 0.09692, 0.1107, 0.2196, 0.6043",\
                 "0.1307, 0.1269, 0.1214, 0.1173, 0.1152, 0.1149, 0.1176, 0.1413, 0.2947, 0.7596",\
                 "0.1623, 0.1576, 0.1507, 0.1457, 0.1421, 0.1408, 0.1436, 0.1885, 0.4164, 0.9819",\
                 "0.2003, 0.1944, 0.1864, 0.1801, 0.176, 0.1728, 0.1795, 0.2659, 0.6106, 1.268");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005871, 0.02297, 0.05562, 0.1065, 0.1779, 0.2718, 0.3901, 0.5345, 0.7067");
          values("0.4801, 0.5473, 0.7161, 0.9623, 1.305, 1.772, 2.384, 3.153, 4.093, 5.215",\
                 "0.5132, 0.5805, 0.7494, 0.9958, 1.339, 1.806, 2.417, 3.186, 4.126, 5.246",\
                 "0.6385, 0.7052, 0.8739, 1.12, 1.463, 1.93, 2.542, 3.311, 4.251, 5.373",\
                 "0.8733, 0.9431, 1.116, 1.364, 1.707, 2.174, 2.786, 3.555, 4.496, 5.615",\
                 "1.148, 1.226, 1.413, 1.672, 2.021, 2.488, 3.099, 3.868, 4.807, 5.928",\
                 "1.463, 1.548, 1.749, 2.021, 2.375, 2.847, 3.458, 4.228, 5.165, 6.285",\
                 "1.825, 1.917, 2.136, 2.421, 2.783, 3.256, 3.868, 4.637, 5.576, 6.695",\
                 "2.233, 2.334, 2.57, 2.873, 3.247, 3.724, 4.338, 5.107, 6.046, 7.165",\
                 "2.69, 2.799, 3.052, 3.377, 3.765, 4.252, 4.87, 5.64, 6.578, 7.698",\
                 "3.195, 3.311, 3.585, 3.932, 4.338, 4.839, 5.465, 6.241, 7.181, 8.3");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005871, 0.02297, 0.05562, 0.1065, 0.1779, 0.2718, 0.3901, 0.5345, 0.7067");
          values("0.4931, 0.5779, 0.8188, 1.233, 1.868, 2.757, 3.926, 5.396, 7.195, 9.337",\
                 "0.5159, 0.601, 0.8416, 1.256, 1.89, 2.778, 3.948, 5.42, 7.219, 9.357",\
                 "0.6056, 0.6902, 0.9299, 1.344, 1.979, 2.868, 4.037, 5.507, 7.305, 9.439",\
                 "0.7367, 0.8236, 1.066, 1.479, 2.113, 3.001, 4.171, 5.641, 7.435, 9.584",\
                 "0.841, 0.9318, 1.179, 1.595, 2.229, 3.116, 4.284, 5.751, 7.553, 9.687",\
                 "0.9179, 1.013, 1.266, 1.682, 2.315, 3.202, 4.368, 5.838, 7.638, 9.773",\
                 "0.9592, 1.06, 1.325, 1.743, 2.374, 3.26, 4.428, 5.896, 7.69, 9.83",\
                 "0.9589, 1.066, 1.344, 1.772, 2.405, 3.29, 4.455, 5.925, 7.717, 9.856",\
                 "0.9133, 1.028, 1.321, 1.759, 2.4, 3.287, 4.453, 5.921, 7.713, 9.851",\
                 "0.8201, 0.9411, 1.25, 1.7, 2.348, 3.246, 4.417, 5.884, 7.68, 9.814");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005871, 0.02297, 0.05562, 0.1065, 0.1779, 0.2718, 0.3901, 0.5345, 0.7067");
          values("0.1574, 0.2252, 0.4091, 0.7373, 1.269, 2.046, 3.083, 4.389, 5.998, 7.913",\
                 "0.1574, 0.2252, 0.4091, 0.737, 1.27, 2.045, 3.082, 4.389, 6.001, 7.915",\
                 "0.158, 0.2251, 0.4102, 0.738, 1.27, 2.046, 3.083, 4.39, 6.001, 7.914",\
                 "0.1784, 0.2426, 0.4216, 0.7442, 1.272, 2.043, 3.082, 4.396, 5.996, 7.911",\
                 "0.2162, 0.2828, 0.4628, 0.7718, 1.284, 2.049, 3.083, 4.394, 6, 7.913",\
                 "0.2528, 0.3234, 0.5044, 0.8066, 1.307, 2.063, 3.085, 4.395, 5.99, 7.912",\
                 "0.292, 0.3688, 0.5536, 0.847, 1.332, 2.077, 3.094, 4.396, 5.993, 7.904",\
                 "0.3352, 0.4186, 0.6108, 0.9016, 1.372, 2.095, 3.105, 4.405, 5.997, 7.9",\
                 "0.3812, 0.472, 0.6766, 0.966, 1.424, 2.134, 3.134, 4.414, 6.004, 7.902",\
                 "0.428, 0.526, 0.744, 1.04, 1.488, 2.192, 3.176, 4.446, 6.016, 7.914");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005871, 0.02297, 0.05562, 0.1065, 0.1779, 0.2718, 0.3901, 0.5345, 0.7067");
          values("0.1882, 0.2935, 0.6392, 1.332, 2.447, 4.009, 6.066, 8.667, 11.83, 15.62",\
                 "0.188, 0.2933, 0.6394, 1.333, 2.442, 4.009, 6.071, 8.665, 11.84, 15.61",\
                 "0.1881, 0.2944, 0.6396, 1.333, 2.443, 4.008, 6.07, 8.668, 11.84, 15.62",\
                 "0.2018, 0.3084, 0.6498, 1.334, 2.442, 4.007, 6.068, 8.668, 11.83, 15.62",\
                 "0.2222, 0.3286, 0.6652, 1.345, 2.449, 4.007, 6.068, 8.659, 11.84, 15.6",\
                 "0.2464, 0.3552, 0.6828, 1.351, 2.456, 4.016, 6.067, 8.659, 11.83, 15.61",\
                 "0.2766, 0.3864, 0.712, 1.364, 2.457, 4.02, 6.072, 8.657, 11.82, 15.59",\
                 "0.3112, 0.4224, 0.7506, 1.391, 2.471, 4.023, 6.074, 8.664, 11.84, 15.58",\
                 "0.3464, 0.4614, 0.7962, 1.425, 2.502, 4.042, 6.082, 8.664, 11.83, 15.62",\
                 "0.382, 0.502, 0.844, 1.466, 2.536, 4.076, 6.106, 8.676, 11.83, 15.6");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005871, 0.02297, 0.05562, 0.1065, 0.1779, 0.2718, 0.3901, 0.5345, 0.7067");
          values("0.5373, 0.6071, 0.7795, 1.028, 1.372, 1.84, 2.451, 3.222, 4.162, 5.281",\
                 "0.5686, 0.6381, 0.8107, 1.059, 1.404, 1.871, 2.483, 3.253, 4.192, 5.311",\
                 "0.6971, 0.7664, 0.9388, 1.188, 1.532, 1.999, 2.611, 3.381, 4.321, 5.44",\
                 "0.9462, 1.017, 1.191, 1.44, 1.785, 2.252, 2.864, 3.634, 4.574, 5.694",\
                 "1.248, 1.328, 1.516, 1.775, 2.123, 2.591, 3.203, 3.972, 4.912, 6.032",\
                 "1.595, 1.683, 1.886, 2.157, 2.511, 2.981, 3.593, 4.362, 5.301, 6.421",\
                 "1.999, 2.094, 2.311, 2.595, 2.956, 3.429, 4.041, 4.811, 5.749, 6.868",\
                 "2.463, 2.565, 2.8, 3.098, 3.467, 3.944, 4.556, 5.325, 6.265, 7.385",\
                 "2.988, 3.099, 3.35, 3.666, 4.048, 4.53, 5.145, 5.914, 6.854, 7.973",\
                 "3.577, 3.696, 3.967, 4.302, 4.698, 5.191, 5.812, 6.584, 7.524, 8.643");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005871, 0.02297, 0.05562, 0.1065, 0.1779, 0.2718, 0.3901, 0.5345, 0.7067");
          values("0.5181, 0.6032, 0.8436, 1.258, 1.893, 2.782, 3.95, 5.423, 7.221, 9.356",\
                 "0.542, 0.627, 0.8674, 1.282, 1.916, 2.806, 3.974, 5.446, 7.245, 9.383",\
                 "0.6009, 0.6856, 0.9256, 1.34, 1.974, 2.864, 4.029, 5.505, 7.295, 9.441",\
                 "0.6848, 0.7722, 1.016, 1.43, 2.064, 2.952, 4.121, 5.59, 7.382, 9.526",\
                 "0.7512, 0.8427, 1.093, 1.509, 2.143, 3.03, 4.199, 5.668, 7.466, 9.605",\
                 "0.7873, 0.8834, 1.142, 1.56, 2.192, 3.08, 4.246, 5.717, 7.514, 9.652",\
                 "0.7801, 0.8816, 1.152, 1.577, 2.21, 3.097, 4.262, 5.731, 7.524, 9.668",\
                 "0.7229, 0.8305, 1.114, 1.551, 2.189, 3.076, 4.241, 5.709, 7.503, 9.639",\
                 "0.6112, 0.7254, 1.022, 1.472, 2.121, 3.015, 4.181, 5.649, 7.441, 9.578",\
                 "0.4417, 0.5618, 0.8731, 1.336, 1.997, 2.903, 4.078, 5.548, 7.34, 9.476");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005871, 0.02297, 0.05562, 0.1065, 0.1779, 0.2718, 0.3901, 0.5345, 0.7067");
          values("0.1689, 0.2356, 0.4177, 0.7437, 1.272, 2.048, 3.083, 4.397, 5.995, 7.905",\
                 "0.1692, 0.2353, 0.4185, 0.7448, 1.272, 2.048, 3.083, 4.396, 6.001, 7.909",\
                 "0.1694, 0.2362, 0.418, 0.7442, 1.273, 2.048, 3.085, 4.397, 5.993, 7.908",\
                 "0.1836, 0.2466, 0.4258, 0.7466, 1.275, 2.048, 3.084, 4.396, 5.996, 7.902",\
                 "0.2242, 0.2888, 0.4636, 0.772, 1.285, 2.051, 3.084, 4.396, 5.997, 7.898",\
                 "0.2608, 0.3312, 0.5056, 0.8054, 1.306, 2.061, 3.09, 4.393, 5.993, 7.909",\
                 "0.298, 0.3752, 0.5504, 0.8416, 1.329, 2.074, 3.094, 4.396, 5.994, 7.904",\
                 "0.3378, 0.421, 0.6014, 0.887, 1.36, 2.091, 3.101, 4.404, 5.994, 7.904",\
                 "0.3816, 0.47, 0.662, 0.94, 1.402, 2.118, 3.122, 4.41, 6.002, 7.902",\
                 "0.426, 0.526, 0.726, 1.006, 1.456, 2.162, 3.15, 4.43, 6.014, 7.91");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005871, 0.02297, 0.05562, 0.1065, 0.1779, 0.2718, 0.3901, 0.5345, 0.7067");
          values("0.1876, 0.2941, 0.6397, 1.333, 2.446, 4.006, 6.071, 8.663, 11.84, 15.61",\
                 "0.188, 0.2933, 0.6393, 1.332, 2.446, 4.008, 6.067, 8.665, 11.84, 15.61",\
                 "0.1877, 0.2936, 0.6394, 1.334, 2.444, 4.007, 6.069, 8.669, 11.84, 15.61",\
                 "0.2008, 0.3086, 0.6482, 1.336, 2.447, 4.009, 6.072, 8.662, 11.84, 15.6",\
                 "0.2178, 0.3266, 0.6642, 1.342, 2.447, 4.012, 6.066, 8.666, 11.83, 15.6",\
                 "0.2402, 0.3506, 0.6868, 1.352, 2.45, 4.012, 6.066, 8.668, 11.83, 15.61",\
                 "0.267, 0.3806, 0.7182, 1.37, 2.456, 4.013, 6.067, 8.655, 11.82, 15.6",\
                 "0.2976, 0.414, 0.7572, 1.403, 2.475, 4.022, 6.069, 8.657, 11.82, 15.59",\
                 "0.3296, 0.448, 0.7982, 1.441, 2.513, 4.047, 6.08, 8.662, 11.82, 15.62",\
                 "0.3634, 0.484, 0.842, 1.486, 2.562, 4.104, 6.12, 8.678, 11.83, 15.6");
        }
      }
    }
  }

