/*
 * 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_1) {
    area : 17.561600 ;

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

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

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "1.3660164e-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.002419 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 21 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          values("0.00168, 0.00168, 0.001676, 0.001676, 0.001676, 0.001676, 0.001676, \
                  0.001676, 0.001674, 0.001409");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          values("-0.001237, -0.00124, -0.001239, -0.001241, -0.001248, -0.001251, \
                  -0.001255, -0.001264, -0.00129, -0.001245");
        }
      }
    }

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

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          values("0.001496, 0.001466, 0.001466, 0.00146, 0.001463, 0.001464, 0.001461, \
                  0.001461, 0.001461, 0.00122");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          values("-0.001459, -0.001459, -0.001459, -0.001457, -0.00146, -0.001458, \
                  -0.001457, -0.001456, -0.001457, -0.001323");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2)" ;
      max_capacitance : 0.164 ;
      max_transition : 21 ;
      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.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.002125, 0.006075, 0.01362, 0.02537, 0.04185, 0.06355, 0.09088, 0.1242, 0.164");
          values("0.01646, 0.01652, 0.01665, 0.01677, 0.01684, 0.01688, 0.01691, 0.01692, 0.01693, 0.01694",\
                 "0.01645, 0.01651, 0.01665, 0.01677, 0.01684, 0.01689, 0.01691, 0.01693, 0.01694, 0.01694",\
                 "0.01631, 0.01636, 0.0165, 0.01663, 0.01671, 0.01675, 0.01678, 0.01679, 0.0168, 0.0168",\
                 "0.01615, 0.0162, 0.01632, 0.01645, 0.01654, 0.01659, 0.01662, 0.01664, 0.01665, 0.01666",\
                 "0.01601, 0.01606, 0.01617, 0.01629, 0.01639, 0.01646, 0.0165, 0.01653, 0.01654, 0.01656",\
                 "0.01591, 0.01595, 0.01605, 0.01618, 0.01628, 0.01636, 0.01641, 0.01645, 0.01648, 0.0165",\
                 "0.01584, 0.01588, 0.01598, 0.01609, 0.0162, 0.01628, 0.01634, 0.01639, 0.01642, 0.01644",\
                 "0.01578, 0.01582, 0.01591, 0.01603, 0.01613, 0.01622, 0.01629, 0.01634, 0.01636, 0.01626",\
                 "0.01574, 0.01578, 0.01587, 0.01597, 0.01608, 0.01616, 0.01623, 0.01612, 0.01557, 0.01495",\
                 "0.01386, 0.01388, 0.01372, 0.01286, 0.01227, 0.01194, 0.01176, 0.01166, 0.0116, 0.01156");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.002125, 0.006075, 0.01362, 0.02537, 0.04185, 0.06355, 0.09088, 0.1242, 0.164");
          values("0.009398, 0.009448, 0.009573, 0.009712, 0.009812, 0.009898, 0.009948, 0.01029, 0.01711, 0.0542",\
                 "0.009381, 0.009422, 0.009555, 0.009719, 0.009817, 0.009903, 0.009932, 0.01035, 0.01758, 0.0552",\
                 "0.009329, 0.009373, 0.009495, 0.009638, 0.009739, 0.009814, 0.009883, 0.01038, 0.0187, 0.05897",\
                 "0.00923, 0.009269, 0.009371, 0.009497, 0.009603, 0.009675, 0.00977, 0.01054, 0.02137, 0.06644",\
                 "0.009121, 0.00914, 0.009236, 0.009343, 0.009435, 0.00954, 0.009628, 0.01105, 0.02721, 0.07789",\
                 "0.009029, 0.009067, 0.009141, 0.009223, 0.009352, 0.009398, 0.009537, 0.01265, 0.03776, 0.09203",\
                 "0.008962, 0.008994, 0.009068, 0.009169, 0.009226, 0.009336, 0.009783, 0.01733, 0.05482, 0.1053",\
                 "0.008914, 0.008933, 0.009013, 0.009087, 0.009201, 0.009233, 0.01098, 0.03082, 0.07517, 0.1136",\
                 "0.008875, 0.008895, 0.008975, 0.009035, 0.009145, 0.009613, 0.01961, 0.05464, 0.08763, 0.1115",\
                 "0.008947, 0.008962, 0.009024, 0.009093, 0.009364, 0.01791, 0.04439, 0.06615, 0.0812, 0.09176");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.002125, 0.006075, 0.01362, 0.02537, 0.04185, 0.06355, 0.09088, 0.1242, 0.164");
          values("0.01757, 0.01763, 0.01776, 0.01789, 0.01796, 0.01801, 0.01804, 0.01806, 0.01807, 0.01808",\
                 "0.01749, 0.01755, 0.01768, 0.01781, 0.01789, 0.01794, 0.01797, 0.01799, 0.018, 0.01801",\
                 "0.01739, 0.01745, 0.01758, 0.01771, 0.0178, 0.01785, 0.01788, 0.0179, 0.01791, 0.01792",\
                 "0.01731, 0.01735, 0.01747, 0.0176, 0.01769, 0.01775, 0.01779, 0.0178, 0.01782, 0.01783",\
                 "0.01721, 0.01725, 0.01736, 0.01748, 0.01758, 0.01765, 0.01769, 0.01772, 0.01774, 0.01776",\
                 "0.01712, 0.01715, 0.01726, 0.01737, 0.01748, 0.01756, 0.01762, 0.01766, 0.01768, 0.0177",\
                 "0.01705, 0.01708, 0.01718, 0.01729, 0.0174, 0.01748, 0.01755, 0.01759, 0.01762, 0.01764",\
                 "0.01698, 0.01702, 0.01711, 0.01722, 0.01732, 0.01742, 0.01748, 0.01754, 0.01756, 0.01744",\
                 "0.01694, 0.01696, 0.01705, 0.01716, 0.01726, 0.01734, 0.0174, 0.01724, 0.01664, 0.01605",\
                 "0.01428, 0.0142, 0.01349, 0.01282, 0.01245, 0.01226, 0.01217, 0.01213, 0.01211, 0.01211");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.002125, 0.006075, 0.01362, 0.02537, 0.04185, 0.06355, 0.09088, 0.1242, 0.164");
          values("0.009392, 0.009442, 0.009573, 0.009732, 0.009838, 0.009916, 0.009965, 0.01036, 0.01724, 0.0544",\
                 "0.009382, 0.009432, 0.009562, 0.009724, 0.009827, 0.009918, 0.009965, 0.01037, 0.01759, 0.05546",\
                 "0.009341, 0.009388, 0.009513, 0.009664, 0.009764, 0.00986, 0.009916, 0.01043, 0.01879, 0.05911",\
                 "0.009264, 0.009305, 0.009413, 0.009549, 0.00965, 0.009753, 0.009803, 0.01053, 0.02137, 0.06619",\
                 "0.009177, 0.009208, 0.009304, 0.009421, 0.009527, 0.00961, 0.00971, 0.01107, 0.02683, 0.07725",\
                 "0.009101, 0.009135, 0.009225, 0.009314, 0.009441, 0.009519, 0.009614, 0.0125, 0.03695, 0.09116",\
                 "0.009037, 0.009078, 0.009154, 0.009256, 0.009329, 0.00943, 0.009835, 0.01688, 0.05372, 0.1046",\
                 "0.008995, 0.009014, 0.009099, 0.009189, 0.009305, 0.009354, 0.01095, 0.02988, 0.0743, 0.1135",\
                 "0.008955, 0.008975, 0.009045, 0.009132, 0.009244, 0.009669, 0.01895, 0.05376, 0.0875, 0.112",\
                 "0.009019, 0.009046, 0.009107, 0.009196, 0.009452, 0.01727, 0.0439, 0.06637, 0.08194, 0.09288");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.002125, 0.006075, 0.01362, 0.02537, 0.04185, 0.06355, 0.09088, 0.1242, 0.164");
          values("1.661, 1.72, 1.886, 2.137, 2.471, 2.902, 3.453, 4.141, 4.979, 5.979",\
                 "1.74, 1.799, 1.965, 2.217, 2.55, 2.982, 3.532, 4.22, 5.058, 6.056",\
                 "2.008, 2.066, 2.233, 2.484, 2.818, 3.25, 3.8, 4.488, 5.325, 6.323",\
                 "2.533, 2.591, 2.757, 3.009, 3.344, 3.775, 4.325, 5.013, 5.851, 6.849",\
                 "3.366, 3.425, 3.591, 3.843, 4.177, 4.609, 5.16, 5.847, 6.685, 7.684",\
                 "4.531, 4.59, 4.758, 5.011, 5.346, 5.778, 6.329, 7.018, 7.856, 8.856",\
                 "5.981, 6.045, 6.224, 6.485, 6.825, 7.26, 7.81, 8.499, 9.338, 10.34",\
                 "7.644, 7.716, 7.913, 8.194, 8.547, 8.989, 9.542, 10.23, 11.07, 12.07",\
                 "9.512, 9.593, 9.813, 10.12, 10.49, 10.94, 11.5, 12.19, 13.02, 14.02",\
                 "11.59, 11.68, 11.92, 12.25, 12.64, 13.1, 13.67, 14.36, 15.2, 16.19");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.002125, 0.006075, 0.01362, 0.02537, 0.04185, 0.06355, 0.09088, 0.1242, 0.164");
          values("1.382, 1.479, 1.797, 2.377, 3.266, 4.506, 6.134, 8.184, 10.68, 13.66",\
                 "1.436, 1.533, 1.851, 2.43, 3.32, 4.559, 6.187, 8.235, 10.74, 13.72",\
                 "1.633, 1.73, 2.047, 2.626, 3.515, 4.756, 6.383, 8.431, 10.93, 13.91",\
                 "2.009, 2.106, 2.423, 3.001, 3.889, 5.13, 6.76, 8.809, 11.31, 14.29",\
                 "2.547, 2.645, 2.963, 3.541, 4.43, 5.671, 7.298, 9.348, 11.85, 14.83",\
                 "3.14, 3.24, 3.564, 4.146, 5.036, 6.275, 7.905, 9.958, 12.46, 15.44",\
                 "3.767, 3.871, 4.198, 4.782, 5.674, 6.916, 8.545, 10.59, 13.09, 16.07",\
                 "4.419, 4.525, 4.86, 5.445, 6.335, 7.578, 9.211, 11.26, 13.76, 16.74",\
                 "5.089, 5.2, 5.541, 6.129, 7.018, 8.26, 9.892, 11.94, 14.45, 17.42",\
                 "5.77, 5.887, 6.235, 6.827, 7.716, 8.957, 10.59, 12.64, 15.14, 18.12");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.002125, 0.006075, 0.01362, 0.02537, 0.04185, 0.06355, 0.09088, 0.1242, 0.164");
          values("0.4132, 0.463, 0.6228, 0.9078, 1.351, 1.999, 2.885, 4.026, 5.43, 7.108",\
                 "0.414, 0.4634, 0.6246, 0.9082, 1.352, 1.999, 2.885, 4.026, 5.43, 7.106",\
                 "0.413, 0.4634, 0.624, 0.9086, 1.352, 1.999, 2.885, 4.025, 5.428, 7.107",\
                 "0.4144, 0.4642, 0.625, 0.9092, 1.352, 1.999, 2.886, 4.024, 5.43, 7.107",\
                 "0.416, 0.4656, 0.6264, 0.9102, 1.352, 1.999, 2.885, 4.025, 5.429, 7.104",\
                 "0.428, 0.4772, 0.6336, 0.9144, 1.355, 2, 2.886, 4.025, 5.427, 7.108",\
                 "0.48, 0.528, 0.678, 0.944, 1.376, 2.012, 2.888, 4.028, 5.432, 7.104",\
                 "0.56, 0.608, 0.752, 1.014, 1.428, 2.044, 2.906, 4.032, 5.432, 7.108",\
                 "0.646, 0.696, 0.844, 1.096, 1.492, 2.092, 2.936, 4.052, 5.438, 7.106",\
                 "0.732, 0.788, 0.944, 1.192, 1.57, 2.148, 2.974, 4.074, 5.454, 7.118");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.002125, 0.006075, 0.01362, 0.02537, 0.04185, 0.06355, 0.09088, 0.1242, 0.164");
          values("0.6034, 0.7344, 1.204, 2.133, 3.603, 5.671, 8.393, 11.83, 16, 21.01",\
                 "0.603, 0.7344, 1.204, 2.133, 3.602, 5.67, 8.39, 11.82, 16.02, 20.99",\
                 "0.603, 0.7344, 1.204, 2.132, 3.602, 5.673, 8.391, 11.82, 16.02, 21",\
                 "0.604, 0.7348, 1.204, 2.133, 3.604, 5.668, 8.393, 11.82, 16, 21.01",\
                 "0.6172, 0.7466, 1.211, 2.134, 3.603, 5.671, 8.393, 11.82, 16.02, 21",\
                 "0.644, 0.7718, 1.232, 2.149, 3.608, 5.671, 8.39, 11.83, 16, 21.01",\
                 "0.6732, 0.7988, 1.249, 2.159, 3.623, 5.68, 8.398, 11.82, 16, 20.99",\
                 "0.71, 0.83, 1.27, 2.17, 3.63, 5.694, 8.404, 11.83, 16.01, 20.99",\
                 "0.754, 0.874, 1.298, 2.184, 3.634, 5.7, 8.42, 11.84, 16.02, 21.01",\
                 "0.81, 0.92, 1.334, 2.198, 3.64, 5.702, 8.426, 11.85, 16.02, 21.01");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.002125, 0.006075, 0.01362, 0.02537, 0.04185, 0.06355, 0.09088, 0.1242, 0.164");
          values("1.784, 1.842, 2.01, 2.264, 2.599, 3.031, 3.583, 4.271, 5.109, 6.107",\
                 "1.855, 1.914, 2.082, 2.335, 2.67, 3.102, 3.654, 4.342, 5.18, 6.179",\
                 "2.129, 2.187, 2.355, 2.608, 2.943, 3.375, 3.927, 4.615, 5.453, 6.451",\
                 "2.661, 2.718, 2.887, 3.139, 3.475, 3.908, 4.459, 5.146, 5.985, 6.985",\
                 "3.498, 3.555, 3.723, 3.976, 4.311, 4.745, 5.296, 5.984, 6.823, 7.821",\
                 "4.669, 4.728, 4.896, 5.15, 5.486, 5.92, 6.471, 7.161, 7.999, 8.998",\
                 "6.147, 6.212, 6.386, 6.647, 6.986, 7.422, 7.973, 8.661, 9.5, 10.5",\
                 "7.854, 7.922, 8.118, 8.394, 8.745, 9.187, 9.739, 10.43, 11.27, 12.26",\
                 "9.77, 9.848, 10.06, 10.36, 10.72, 11.18, 11.73, 12.42, 13.26, 14.26",\
                 "11.9, 11.99, 12.22, 12.54, 12.93, 13.39, 13.95, 14.64, 15.48, 16.48");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.002125, 0.006075, 0.01362, 0.02537, 0.04185, 0.06355, 0.09088, 0.1242, 0.164");
          values("1.411, 1.508, 1.827, 2.406, 3.295, 4.535, 6.161, 8.208, 10.71, 13.69",\
                 "1.472, 1.569, 1.887, 2.467, 3.356, 4.597, 6.223, 8.27, 10.77, 13.75",\
                 "1.65, 1.748, 2.065, 2.645, 3.534, 4.774, 6.401, 8.449, 10.95, 13.92",\
                 "1.978, 2.075, 2.392, 2.97, 3.859, 5.1, 6.728, 8.779, 11.28, 14.26",\
                 "2.453, 2.551, 2.869, 3.448, 4.336, 5.578, 7.205, 9.257, 11.76, 14.74",\
                 "3.006, 3.107, 3.431, 4.012, 4.9, 6.14, 7.769, 9.822, 12.32, 15.3",\
                 "3.613, 3.718, 4.047, 4.631, 5.521, 6.763, 8.389, 10.44, 12.94, 15.92",\
                 "4.261, 4.368, 4.704, 5.29, 6.181, 7.422, 9.051, 11.1, 13.6, 16.58",\
                 "4.937, 5.048, 5.391, 5.983, 6.873, 8.114, 9.742, 11.79, 14.29, 17.27",\
                 "5.636, 5.751, 6.104, 6.7, 7.591, 8.83, 10.46, 12.51, 15.01, 17.99");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.002125, 0.006075, 0.01362, 0.02537, 0.04185, 0.06355, 0.09088, 0.1242, 0.164");
          values("0.4186, 0.4682, 0.6288, 0.9118, 1.355, 2.002, 2.889, 4.029, 5.432, 7.109",\
                 "0.4176, 0.468, 0.6286, 0.9132, 1.356, 2.002, 2.888, 4.027, 5.433, 7.111",\
                 "0.4184, 0.4678, 0.6288, 0.9134, 1.356, 2.003, 2.888, 4.027, 5.432, 7.109",\
                 "0.418, 0.4686, 0.6286, 0.9136, 1.356, 2.003, 2.889, 4.029, 5.432, 7.111",\
                 "0.4186, 0.4694, 0.6294, 0.9144, 1.356, 2.003, 2.887, 4.028, 5.433, 7.111",\
                 "0.4272, 0.4764, 0.6346, 0.9184, 1.358, 2.004, 2.889, 4.029, 5.433, 7.106",\
                 "0.468, 0.514, 0.666, 0.94, 1.372, 2.012, 2.892, 4.03, 5.43, 7.11",\
                 "0.54, 0.588, 0.74, 1, 1.418, 2.038, 2.904, 4.034, 5.432, 7.106",\
                 "0.62, 0.672, 0.82, 1.074, 1.478, 2.084, 2.932, 4.05, 5.436, 7.106",\
                 "0.706, 0.76, 0.916, 1.166, 1.55, 2.134, 2.966, 4.072, 5.452, 7.12");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1648, 0.6731, 1.644, 3.156, 5.278, 8.07, 11.59, 15.88, 21");
          index_2("0.001, 0.002125, 0.006075, 0.01362, 0.02537, 0.04185, 0.06355, 0.09088, 0.1242, 0.164");
          values("0.6032, 0.7342, 1.204, 2.132, 3.604, 5.671, 8.393, 11.82, 16.02, 21",\
                 "0.6032, 0.7344, 1.204, 2.133, 3.602, 5.671, 8.392, 11.82, 16, 21.01",\
                 "0.603, 0.7344, 1.203, 2.133, 3.603, 5.671, 8.392, 11.82, 16.02, 21",\
                 "0.6036, 0.7346, 1.204, 2.133, 3.602, 5.67, 8.391, 11.81, 16.01, 20.99",\
                 "0.6174, 0.7462, 1.21, 2.133, 3.605, 5.672, 8.392, 11.83, 16, 21.01",\
                 "0.6428, 0.7704, 1.229, 2.144, 3.607, 5.675, 8.39, 11.83, 16.01, 21.01",\
                 "0.6708, 0.7978, 1.249, 2.157, 3.615, 5.676, 8.396, 11.82, 16, 20.99",\
                 "0.702, 0.828, 1.272, 2.166, 3.624, 5.684, 8.396, 11.83, 16.01, 21",\
                 "0.74, 0.862, 1.298, 2.182, 3.628, 5.69, 8.406, 11.82, 16.01, 21.01",\
                 "0.782, 0.904, 1.33, 2.2, 3.638, 5.694, 8.414, 11.84, 16.01, 21");
        }
      }
    }
  }

