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

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.04361, 0.04344, 0.04322, 0.043, 0.04298, 0.043, 0.043, 0.04298, \
                  0.04298, 0.04295");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("-0.02591, -0.02595, -0.02595, -0.02594, -0.02591, -0.02597, -0.02599, \
                  -0.026, -0.02597, -0.02608");
        }
      }
    }

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

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.04459, 0.04133, 0.03964, 0.03899, 0.03859, 0.0385, 0.0384, 0.03835, \
                  0.03826, 0.03818");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("-0.03844, -0.03845, -0.03823, -0.03814, -0.03813, -0.03816, -0.03812, \
                  -0.03812, -0.03816, -0.0381");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)|(!A2))" ;
      max_capacitance : 0.6415 ;
      max_transition : 7.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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005421, 0.02094, 0.05057, 0.09674, 0.1615, 0.2468, 0.3542, 0.4852, 0.6415");
          values("0.00569, 0.006351, 0.007132, 0.007502, 0.007651, 0.007723, 0.007762, 0.007816, 0.007823, 0.007844",\
                 "0.004883, 0.005396, 0.006426, 0.007117, 0.007421, 0.007543, 0.007649, 0.007712, 0.007752, 0.007786",\
                 "0.01542, 0.01404, 0.01181, 0.01027, 0.009329, 0.008823, 0.008484, 0.008306, 0.008191, 0.008095",\
                 "0.05102, 0.04575, 0.03566, 0.02722, 0.02133, 0.01738, 0.01477, 0.01299, 0.01176, 0.01091",\
                 "0.1154, 0.1067, 0.08665, 0.06711, 0.05198, 0.04092, 0.03294, 0.02709, 0.02292, 0.01982",\
                 "0.2106, 0.1991, 0.1698, 0.137, 0.109, 0.087, 0.0702, 0.05731, 0.04759, 0.04003",\
                 "0.3388, 0.325, 0.2878, 0.2416, 0.1982, 0.1623, 0.1333, 0.1101, 0.09187, 0.07729",\
                 "0.5019, 0.4862, 0.4426, 0.3841, 0.3245, 0.2718, 0.2279, 0.1916, 0.1617, 0.1374",\
                 "0.7021, 0.685, 0.6359, 0.5665, 0.4913, 0.4209, 0.359, 0.3067, 0.2627, 0.2259",\
                 "0.9416, 0.9231, 0.8693, 0.7906, 0.7007, 0.6123, 0.5313, 0.4607, 0.3998, 0.3477");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005421, 0.02094, 0.05057, 0.09674, 0.1615, 0.2468, 0.3542, 0.4852, 0.6415");
          values("0.1058, 0.1078, 0.11, 0.1111, 0.112, 0.113, 0.1142, 0.1157, 0.1188, 0.1216",\
                 "0.1052, 0.1067, 0.1092, 0.111, 0.1121, 0.1133, 0.115, 0.1171, 0.1195, 0.1216",\
                 "0.12, 0.118, 0.1156, 0.1144, 0.1147, 0.115, 0.1161, 0.1178, 0.1195, 0.1228",\
                 "0.1625, 0.1564, 0.1449, 0.1355, 0.1286, 0.1251, 0.1236, 0.1232, 0.1234, 0.1277",\
                 "0.2362, 0.227, 0.205, 0.1843, 0.1668, 0.1549, 0.1459, 0.1416, 0.1375, 0.1379",\
                 "0.3428, 0.3312, 0.3009, 0.2661, 0.2369, 0.212, 0.1927, 0.1783, 0.1688, 0.1634",\
                 "0.4852, 0.4718, 0.4349, 0.3865, 0.3418, 0.3037, 0.2709, 0.2449, 0.2246, 0.2136",\
                 "0.666, 0.6509, 0.6085, 0.5491, 0.4881, 0.4331, 0.3863, 0.3457, 0.3124, 0.2912",\
                 "0.8873, 0.8712, 0.8239, 0.7558, 0.6789, 0.6053, 0.5426, 0.4856, 0.4366, 0.4069",\
                 "1.152, 1.135, 1.084, 1.007, 0.9171, 0.8242, 0.741, 0.6692, 0.6035, 0.5699");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005421, 0.02094, 0.05057, 0.09674, 0.1615, 0.2468, 0.3542, 0.4852, 0.6415");
          values("0.00571, 0.006404, 0.007197, 0.007473, 0.00769, 0.00777, 0.007809, 0.007814, 0.00785, 0.007842",\
                 "0.003333, 0.004372, 0.00598, 0.006831, 0.007232, 0.007458, 0.007587, 0.007659, 0.007705, 0.007728",\
                 "0.01059, 0.01006, 0.009317, 0.008791, 0.008473, 0.00826, 0.008136, 0.008056, 0.008012, 0.007984",\
                 "0.04499, 0.04063, 0.0322, 0.0251, 0.02001, 0.01665, 0.01432, 0.01269, 0.01157, 0.01075",\
                 "0.1114, 0.1032, 0.0844, 0.06609, 0.05178, 0.04122, 0.03348, 0.02777, 0.02354, 0.02038",\
                 "0.2113, 0.2, 0.1714, 0.1393, 0.1117, 0.09002, 0.07321, 0.06035, 0.05034, 0.04258",\
                 "0.3464, 0.3327, 0.2958, 0.2495, 0.2061, 0.1698, 0.1406, 0.1171, 0.09832, 0.0833",\
                 "0.5187, 0.5032, 0.4592, 0.4002, 0.3401, 0.2866, 0.2416, 0.2044, 0.1739, 0.1487",\
                 "0.7306, 0.7136, 0.6637, 0.5934, 0.5169, 0.4449, 0.3817, 0.3278, 0.2826, 0.2444",\
                 "0.9842, 0.9658, 0.9111, 0.8305, 0.7392, 0.6483, 0.5653, 0.4923, 0.4295, 0.3756");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005421, 0.02094, 0.05057, 0.09674, 0.1615, 0.2468, 0.3542, 0.4852, 0.6415");
          values("0.1478, 0.148, 0.1487, 0.1493, 0.15, 0.1515, 0.1534, 0.1552, 0.1583, 0.1622",\
                 "0.1466, 0.1469, 0.1475, 0.148, 0.149, 0.1504, 0.1524, 0.1545, 0.1572, 0.162",\
                 "0.1612, 0.1591, 0.1552, 0.1528, 0.152, 0.1522, 0.1535, 0.1552, 0.1572, 0.1616",\
                 "0.2054, 0.1997, 0.1876, 0.1764, 0.1685, 0.1639, 0.1615, 0.1617, 0.163, 0.1651",\
                 "0.2834, 0.275, 0.2532, 0.23, 0.2104, 0.1961, 0.1867, 0.1804, 0.1778, 0.179",\
                 "0.3972, 0.3869, 0.3577, 0.3202, 0.2862, 0.2589, 0.2375, 0.2215, 0.2102, 0.2067",\
                 "0.5493, 0.5375, 0.5026, 0.4534, 0.4028, 0.3591, 0.3225, 0.2935, 0.2706, 0.2586",\
                 "0.7428, 0.7295, 0.6902, 0.6312, 0.5649, 0.502, 0.4479, 0.4028, 0.3653, 0.3427",\
                 "0.9799, 0.9656, 0.9218, 0.8553, 0.7754, 0.6943, 0.6204, 0.5565, 0.5021, 0.4678",\
                 "1.263, 1.248, 1.201, 1.128, 1.037, 0.9388, 0.8428, 0.7584, 0.6845, 0.6439");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005421, 0.02094, 0.05057, 0.09674, 0.1615, 0.2468, 0.3542, 0.4852, 0.6415");
          values("0.06264, 0.08641, 0.1685, 0.3241, 0.5657, 0.9053, 1.352, 1.914, 2.6, 3.42",\
                 "0.06975, 0.09349, 0.1757, 0.3315, 0.5732, 0.9125, 1.36, 1.922, 2.609, 3.426",\
                 "0.08474, 0.1166, 0.2074, 0.3616, 0.6025, 0.9411, 1.387, 1.949, 2.636, 3.455",\
                 "0.08713, 0.1305, 0.2489, 0.4255, 0.6648, 1.001, 1.445, 2.006, 2.691, 3.511",\
                 "0.073, 0.1277, 0.2761, 0.4912, 0.7647, 1.102, 1.542, 2.098, 2.782, 3.599",\
                 "0.0405, 0.106, 0.2848, 0.5415, 0.8602, 1.24, 1.687, 2.238, 2.917, 3.729",\
                 "-0.011, 0.0656, 0.2712, 0.5707, 0.9389, 1.369, 1.867, 2.432, 3.104, 3.912",\
                 "-0.0846, 0.0029, 0.2389, 0.5773, 0.9955, 1.48, 2.033, 2.655, 3.349, 4.149",\
                 "-0.1815, -0.0825, 0.1806, 0.5597, 1.027, 1.571, 2.182, 2.861, 3.618, 4.449",\
                 "-0.3021, -0.1925, 0.0994, 0.5159, 1.033, 1.633, 2.306, 3.05, 3.867, 4.766");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005421, 0.02094, 0.05057, 0.09674, 0.1615, 0.2468, 0.3542, 0.4852, 0.6415");
          values("0.06436, 0.09239, 0.1869, 0.3651, 0.6411, 1.028, 1.537, 2.178, 2.964, 3.895",\
                 "0.07709, 0.1045, 0.1991, 0.3774, 0.6543, 1.041, 1.551, 2.191, 2.976, 3.912",\
                 "0.1228, 0.1556, 0.2506, 0.4267, 0.7016, 1.088, 1.597, 2.24, 3.022, 3.955",\
                 "0.1864, 0.2306, 0.3503, 0.5318, 0.8019, 1.185, 1.692, 2.332, 3.112, 4.047",\
                 "0.2656, 0.3223, 0.4733, 0.6902, 0.9704, 1.347, 1.848, 2.482, 3.261, 4.193",\
                 "0.3608, 0.4299, 0.6156, 0.8745, 1.196, 1.586, 2.079, 2.708, 3.48, 4.407",\
                 "0.474, 0.5571, 0.7765, 1.081, 1.45, 1.887, 2.395, 3.016, 3.779, 4.697",\
                 "0.6063, 0.7023, 0.9566, 1.308, 1.731, 2.218, 2.779, 3.416, 4.171, 5.081",\
                 "0.7597, 0.8682, 1.158, 1.557, 2.034, 2.58, 3.195, 3.888, 4.661, 5.562",\
                 "0.9351, 1.056, 1.38, 1.829, 2.362, 2.969, 3.643, 4.393, 5.227, 6.146");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005421, 0.02094, 0.05057, 0.09674, 0.1615, 0.2468, 0.3542, 0.4852, 0.6415");
          values("0.07377, 0.1147, 0.2582, 0.5311, 0.958, 1.554, 2.341, 3.332, 4.542, 5.98",\
                 "0.07426, 0.1146, 0.2581, 0.5312, 0.9565, 1.554, 2.34, 3.332, 4.544, 5.978",\
                 "0.1101, 0.1487, 0.2692, 0.5314, 0.9562, 1.553, 2.338, 3.329, 4.541, 5.985",\
                 "0.1752, 0.2201, 0.3501, 0.5737, 0.9595, 1.558, 2.341, 3.333, 4.534, 5.984",\
                 "0.2604, 0.3193, 0.4712, 0.7051, 1.049, 1.572, 2.343, 3.333, 4.535, 5.986",\
                 "0.3648, 0.4398, 0.6238, 0.8848, 1.239, 1.717, 2.39, 3.33, 4.541, 5.984",\
                 "0.4902, 0.5788, 0.8002, 1.105, 1.482, 1.969, 2.596, 3.44, 4.558, 5.98",\
                 "0.633, 0.7352, 1.004, 1.35, 1.773, 2.279, 2.917, 3.705, 4.726, 6.03",\
                 "0.795, 0.9166, 1.223, 1.626, 2.097, 2.642, 3.301, 4.097, 5.057, 6.265",\
                 "0.9774, 1.12, 1.468, 1.928, 2.455, 3.054, 3.743, 4.563, 5.527, 6.668");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005421, 0.02094, 0.05057, 0.09674, 0.1615, 0.2468, 0.3542, 0.4852, 0.6415");
          values("0.08442, 0.1334, 0.3027, 0.6265, 1.131, 1.84, 2.773, 3.948, 5.385, 7.091",\
                 "0.08464, 0.133, 0.3036, 0.6264, 1.132, 1.839, 2.772, 3.958, 5.392, 7.095",\
                 "0.1206, 0.1607, 0.305, 0.6263, 1.135, 1.848, 2.782, 3.957, 5.394, 7.091",\
                 "0.1878, 0.2341, 0.3743, 0.6416, 1.131, 1.84, 2.773, 3.946, 5.4, 7.102",\
                 "0.2729, 0.3341, 0.4946, 0.7526, 1.169, 1.841, 2.772, 3.957, 5.395, 7.086",\
                 "0.374, 0.452, 0.648, 0.927, 1.322, 1.91, 2.777, 3.945, 5.396, 7.086",\
                 "0.4884, 0.5846, 0.8232, 1.144, 1.557, 2.108, 2.88, 3.961, 5.379, 7.106",\
                 "0.6242, 0.7326, 1.019, 1.392, 1.84, 2.405, 3.126, 4.106, 5.415, 7.086",\
                 "0.7704, 0.8996, 1.229, 1.666, 2.167, 2.756, 3.492, 4.402, 5.603, 7.152",\
                 "0.9436, 1.087, 1.461, 1.957, 2.523, 3.16, 3.918, 4.832, 5.946, 7.395");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005421, 0.02094, 0.05057, 0.09674, 0.1615, 0.2468, 0.3542, 0.4852, 0.6415");
          values("0.07641, 0.1002, 0.1822, 0.3375, 0.5795, 0.9191, 1.365, 1.927, 2.614, 3.433",\
                 "0.08081, 0.1049, 0.1876, 0.3436, 0.5851, 0.9247, 1.372, 1.934, 2.62, 3.439",\
                 "0.08537, 0.1141, 0.202, 0.3572, 0.5986, 0.9376, 1.384, 1.946, 2.634, 3.451",\
                 "0.07537, 0.1134, 0.2199, 0.3878, 0.6287, 0.9661, 1.41, 1.972, 2.656, 3.475",\
                 "0.04324, 0.0909, 0.2229, 0.4181, 0.6777, 1.017, 1.458, 2.016, 2.698, 3.515",\
                 "-0.0136, 0.0433, 0.201, 0.4316, 0.7233, 1.085, 1.532, 2.086, 2.765, 3.577",\
                 "-0.0978, -0.0318, 0.1516, 0.4186, 0.7505, 1.147, 1.62, 2.186, 2.861, 3.669",\
                 "-0.2128, -0.1374, 0.0717, 0.3749, 0.7507, 1.192, 1.702, 2.296, 2.988, 3.793",\
                 "-0.36, -0.2758, -0.0408, 0.2991, 0.7188, 1.208, 1.765, 2.397, 3.12, 3.948",\
                 "-0.5417, -0.4485, -0.1882, 0.1875, 0.6524, 1.191, 1.799, 2.48, 3.243, 4.102");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005421, 0.02094, 0.05057, 0.09674, 0.1615, 0.2468, 0.3542, 0.4852, 0.6415");
          values("0.08765, 0.1152, 0.2089, 0.3868, 0.6626, 1.05, 1.558, 2.2, 2.982, 3.916",\
                 "0.09978, 0.127, 0.221, 0.3989, 0.6742, 1.061, 1.571, 2.212, 2.994, 3.927",\
                 "0.1534, 0.1823, 0.2736, 0.4483, 0.7224, 1.109, 1.617, 2.259, 3.043, 3.975",\
                 "0.2361, 0.2728, 0.381, 0.5563, 0.8246, 1.206, 1.712, 2.35, 3.132, 4.067",\
                 "0.3426, 0.3888, 0.5212, 0.7244, 0.997, 1.371, 1.87, 2.503, 3.28, 4.208",\
                 "0.4747, 0.5309, 0.6901, 0.9269, 1.234, 1.616, 2.105, 2.731, 3.502, 4.425",\
                 "0.6338, 0.7006, 0.8876, 1.163, 1.508, 1.929, 2.429, 3.044, 3.804, 4.719",\
                 "0.8231, 0.8998, 1.115, 1.429, 1.82, 2.283, 2.827, 3.453, 4.204, 5.109",\
                 "1.044, 1.131, 1.373, 1.729, 2.167, 2.678, 3.266, 3.942, 4.705, 5.599",\
                 "1.298, 1.395, 1.668, 2.063, 2.549, 3.112, 3.751, 4.474, 5.289, 6.196");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005421, 0.02094, 0.05057, 0.09674, 0.1615, 0.2468, 0.3542, 0.4852, 0.6415");
          values("0.07377, 0.1148, 0.2581, 0.531, 0.9581, 1.554, 2.34, 3.331, 4.542, 5.98",\
                 "0.07436, 0.1147, 0.259, 0.5314, 0.957, 1.555, 2.338, 3.331, 4.541, 5.977",\
                 "0.1052, 0.1403, 0.2665, 0.5307, 0.9564, 1.555, 2.341, 3.331, 4.544, 5.978",\
                 "0.1718, 0.2075, 0.3261, 0.5617, 0.9618, 1.555, 2.342, 3.331, 4.538, 5.979",\
                 "0.2621, 0.3043, 0.4334, 0.6582, 1.022, 1.574, 2.341, 3.334, 4.537, 5.983",\
                 "0.3714, 0.4224, 0.5704, 0.8096, 1.159, 1.669, 2.384, 3.333, 4.541, 5.976",\
                 "0.4998, 0.5616, 0.7362, 0.999, 1.358, 1.849, 2.52, 3.412, 4.56, 5.981",\
                 "0.6426, 0.7182, 0.9232, 1.217, 1.603, 2.097, 2.748, 3.592, 4.672, 6.039",\
                 "0.8004, 0.891, 1.131, 1.467, 1.884, 2.403, 3.048, 3.869, 4.902, 6.181",\
                 "0.9742, 1.08, 1.362, 1.74, 2.199, 2.752, 3.417, 4.225, 5.232, 6.463");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005421, 0.02094, 0.05057, 0.09674, 0.1615, 0.2468, 0.3542, 0.4852, 0.6415");
          values("0.1266, 0.1753, 0.3462, 0.672, 1.176, 1.885, 2.817, 3.99, 5.424, 7.137",\
                 "0.1266, 0.1759, 0.3461, 0.6719, 1.176, 1.884, 2.817, 3.991, 5.422, 7.136",\
                 "0.1548, 0.1931, 0.3474, 0.6711, 1.177, 1.885, 2.817, 3.99, 5.42, 7.129",\
                 "0.2234, 0.2679, 0.4055, 0.6824, 1.177, 1.885, 2.817, 3.991, 5.423, 7.129",\
                 "0.3156, 0.3705, 0.524, 0.7828, 1.207, 1.885, 2.815, 3.989, 5.424, 7.135",\
                 "0.4226, 0.4934, 0.6764, 0.9512, 1.35, 1.945, 2.82, 3.988, 5.42, 7.13",\
                 "0.5492, 0.6324, 0.8538, 1.164, 1.575, 2.13, 2.915, 4.004, 5.422, 7.131",\
                 "0.6876, 0.7908, 1.053, 1.409, 1.849, 2.415, 3.146, 4.138, 5.455, 7.13",\
                 "0.8454, 0.9658, 1.272, 1.684, 2.17, 2.756, 3.494, 4.418, 5.628, 7.188",\
                 "1.02, 1.16, 1.514, 1.978, 2.528, 3.149, 3.904, 4.824, 5.956, 7.411");
        }
      }
    }
  }

