/*
 * 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__and2_2) {
    area : 25.401600 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.07506, 0.07489, 0.07466, 0.07449, 0.07467, 0.07454, 0.0747, \
                  0.07464, 0.07461, 0.07463");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("-0.04451, -0.04456, -0.04439, -0.04443, -0.04435, -0.0444, -0.04448, \
                  -0.04433, -0.04453, -0.04441");
        }
      }
    }

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

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.079, 0.07361, 0.06973, 0.06828, 0.06755, 0.06705, 0.06697, 0.0667, \
                  0.0667, 0.06665");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("-0.06622, -0.0663, -0.06615, -0.066, -0.06597, -0.06599, -0.06605, \
                  -0.06594, -0.06611, -0.066");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2)" ;
      max_capacitance : 0.7169 ;
      max_transition : 3.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.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005941, 0.02329, 0.05641, 0.108, 0.1804, 0.2757, 0.3957, 0.5422, 0.7169");
          values("0.6232, 0.605, 0.5728, 0.552, 0.5406, 0.5328, 0.5283, 0.525, 0.5229, 0.5214",\
                 "0.6228, 0.6048, 0.5723, 0.5518, 0.5396, 0.5326, 0.5279, 0.5248, 0.523, 0.5212",\
                 "0.6412, 0.6224, 0.5882, 0.5659, 0.5536, 0.546, 0.541, 0.5384, 0.5356, 0.5341",\
                 "0.7341, 0.7117, 0.6665, 0.6349, 0.6162, 0.6042, 0.5969, 0.592, 0.5885, 0.5862",\
                 "0.9155, 0.8874, 0.8273, 0.776, 0.7443, 0.7235, 0.7098, 0.7004, 0.6939, 0.6891",\
                 "1.178, 1.145, 1.068, 0.9964, 0.9458, 0.9114, 0.888, 0.8724, 0.8614, 0.8533",\
                 "1.518, 1.481, 1.392, 1.297, 1.225, 1.174, 1.138, 1.113, 1.094, 1.081",\
                 "1.938, 1.897, 1.795, 1.68, 1.585, 1.514, 1.463, 1.426, 1.399, 1.378",\
                 "2.439, 2.396, 2.284, 2.15, 2.03, 1.938, 1.868, 1.818, 1.778, 1.749",\
                 "3.027, 2.982, 2.86, 2.708, 2.567, 2.45, 2.36, 2.292, 2.239, 2.199");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005941, 0.02329, 0.05641, 0.108, 0.1804, 0.2757, 0.3957, 0.5422, 0.7169");
          values("0.4192, 0.3977, 0.3623, 0.3439, 0.3332, 0.3287, 0.3265, 0.3268, 0.3302, 0.3331",\
                 "0.4189, 0.3975, 0.3635, 0.3432, 0.3327, 0.3271, 0.3265, 0.3273, 0.3285, 0.3331",\
                 "0.4347, 0.4131, 0.3781, 0.3557, 0.3444, 0.3392, 0.3364, 0.3378, 0.3384, 0.3419",\
                 "0.5128, 0.4899, 0.4482, 0.4185, 0.3999, 0.3903, 0.3848, 0.384, 0.3846, 0.3865",\
                 "0.661, 0.6344, 0.5814, 0.5429, 0.5136, 0.4943, 0.4832, 0.4791, 0.4765, 0.4778",\
                 "0.8836, 0.8529, 0.7876, 0.7305, 0.6931, 0.6642, 0.6444, 0.632, 0.6233, 0.6208",\
                 "1.177, 1.143, 1.065, 0.9944, 0.9375, 0.9002, 0.8732, 0.852, 0.8356, 0.8237",\
                 "1.542, 1.506, 1.419, 1.332, 1.259, 1.204, 1.166, 1.139, 1.116, 1.103",\
                 "1.985, 1.945, 1.847, 1.745, 1.657, 1.585, 1.533, 1.494, 1.464, 1.442",\
                 "2.505, 2.461, 2.358, 2.236, 2.133, 2.044, 1.975, 1.922, 1.892, 1.858");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005941, 0.02329, 0.05641, 0.108, 0.1804, 0.2757, 0.3957, 0.5422, 0.7169");
          values("0.726, 0.7056, 0.6663, 0.6382, 0.6218, 0.6114, 0.6043, 0.5998, 0.597, 0.5948",\
                 "0.7256, 0.7053, 0.6653, 0.6371, 0.6211, 0.6105, 0.6037, 0.5993, 0.5963, 0.5942",\
                 "0.7456, 0.7247, 0.6834, 0.6541, 0.6374, 0.6264, 0.6193, 0.6148, 0.6112, 0.6093",\
                 "0.8408, 0.8171, 0.7678, 0.7285, 0.7056, 0.6906, 0.6805, 0.6743, 0.6697, 0.6665",\
                 "1.035, 1.007, 0.9425, 0.8852, 0.8472, 0.822, 0.8054, 0.7942, 0.7858, 0.7803",\
                 "1.321, 1.287, 1.207, 1.129, 1.072, 1.031, 1.003, 0.9843, 0.9707, 0.9607",\
                 "1.693, 1.655, 1.563, 1.462, 1.381, 1.322, 1.281, 1.25, 1.228, 1.211",\
                 "2.153, 2.113, 2.008, 1.887, 1.78, 1.7, 1.64, 1.595, 1.563, 1.538",\
                 "2.705, 2.662, 2.547, 2.406, 2.276, 2.171, 2.09, 2.029, 1.982, 1.947",\
                 "3.352, 3.307, 3.183, 3.025, 2.871, 2.741, 2.636, 2.555, 2.493, 2.444");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005941, 0.02329, 0.05641, 0.108, 0.1804, 0.2757, 0.3957, 0.5422, 0.7169");
          values("0.4187, 0.3972, 0.3635, 0.3432, 0.3327, 0.3293, 0.3259, 0.3273, 0.3296, 0.332",\
                 "0.4173, 0.3951, 0.361, 0.3409, 0.3308, 0.326, 0.3226, 0.3251, 0.328, 0.3304",\
                 "0.4275, 0.406, 0.3702, 0.3496, 0.3382, 0.3331, 0.332, 0.3306, 0.334, 0.337",\
                 "0.4954, 0.473, 0.4328, 0.4051, 0.3884, 0.3799, 0.3749, 0.3746, 0.3753, 0.3771",\
                 "0.6426, 0.6162, 0.5641, 0.5277, 0.5015, 0.4844, 0.4755, 0.4692, 0.4677, 0.4706",\
                 "0.8687, 0.8394, 0.7751, 0.7203, 0.6841, 0.6571, 0.6383, 0.6315, 0.6228, 0.6186",\
                 "1.17, 1.138, 1.063, 0.991, 0.9384, 0.9035, 0.8759, 0.8581, 0.8433, 0.8325",\
                 "1.548, 1.514, 1.43, 1.34, 1.271, 1.218, 1.184, 1.157, 1.136, 1.121",\
                 "2.007, 1.969, 1.879, 1.773, 1.685, 1.615, 1.563, 1.53, 1.506, 1.48",\
                 "2.55, 2.511, 2.412, 2.293, 2.186, 2.099, 2.031, 1.977, 1.947, 1.92");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005941, 0.02329, 0.05641, 0.108, 0.1804, 0.2757, 0.3957, 0.5422, 0.7169");
          values("0.136, 0.1524, 0.1962, 0.2638, 0.3594, 0.4897, 0.6604, 0.8757, 1.139, 1.452",\
                 "0.1411, 0.1575, 0.2013, 0.2689, 0.3646, 0.4948, 0.6655, 0.881, 1.144, 1.458",\
                 "0.1645, 0.1806, 0.2244, 0.2917, 0.3872, 0.5174, 0.6881, 0.9033, 1.166, 1.48",\
                 "0.2119, 0.2282, 0.2717, 0.3387, 0.4337, 0.5635, 0.7337, 0.9489, 1.212, 1.525",\
                 "0.2718, 0.2897, 0.3357, 0.4042, 0.4992, 0.6279, 0.7975, 1.012, 1.274, 1.587",\
                 "0.34, 0.3599, 0.4094, 0.4813, 0.5788, 0.7078, 0.8765, 1.09, 1.352, 1.664",\
                 "0.4166, 0.4379, 0.4916, 0.5679, 0.6689, 0.8015, 0.9712, 1.184, 1.444, 1.756",\
                 "0.5014, 0.5245, 0.5827, 0.6631, 0.768, 0.9047, 1.079, 1.293, 1.554, 1.865",\
                 "0.5948, 0.6193, 0.6821, 0.768, 0.8774, 1.017, 1.195, 1.415, 1.68, 1.991",\
                 "0.6975, 0.7236, 0.7904, 0.8819, 0.9964, 1.14, 1.322, 1.546, 1.817, 2.134");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005941, 0.02329, 0.05641, 0.108, 0.1804, 0.2757, 0.3957, 0.5422, 0.7169");
          values("0.1619, 0.1802, 0.2324, 0.3222, 0.4598, 0.6535, 0.9085, 1.232, 1.625, 2.095",\
                 "0.1644, 0.1827, 0.2349, 0.3248, 0.4622, 0.6557, 0.9116, 1.233, 1.628, 2.098",\
                 "0.1778, 0.1962, 0.248, 0.3374, 0.4749, 0.6684, 0.924, 1.246, 1.639, 2.11",\
                 "0.2032, 0.2219, 0.2735, 0.3623, 0.4985, 0.6914, 0.9462, 1.268, 1.661, 2.131",\
                 "0.228, 0.2474, 0.3, 0.388, 0.5233, 0.7147, 0.9688, 1.29, 1.683, 2.153",\
                 "0.2472, 0.2678, 0.3228, 0.4114, 0.5464, 0.7368, 0.9894, 1.31, 1.702, 2.17",\
                 "0.2586, 0.2805, 0.3382, 0.4292, 0.5651, 0.7561, 1.008, 1.326, 1.717, 2.185",\
                 "0.2607, 0.2846, 0.3455, 0.4386, 0.5767, 0.7697, 1.023, 1.341, 1.731, 2.197",\
                 "0.2535, 0.2786, 0.3428, 0.4395, 0.5787, 0.774, 1.031, 1.352, 1.742, 2.207",\
                 "0.2352, 0.2619, 0.3302, 0.4297, 0.5712, 0.7687, 1.029, 1.355, 1.749, 2.214");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005941, 0.02329, 0.05641, 0.108, 0.1804, 0.2757, 0.3957, 0.5422, 0.7169");
          values("0.05158, 0.06998, 0.121, 0.2127, 0.3603, 0.5768, 0.8668, 1.233, 1.682, 2.216",\
                 "0.05166, 0.06998, 0.121, 0.2125, 0.3602, 0.5769, 0.8666, 1.234, 1.682, 2.218",\
                 "0.05192, 0.07044, 0.1213, 0.2129, 0.3609, 0.5759, 0.8658, 1.234, 1.682, 2.216",\
                 "0.05832, 0.0763, 0.1256, 0.2155, 0.3615, 0.5771, 0.866, 1.234, 1.682, 2.216",\
                 "0.07284, 0.0919, 0.1406, 0.2248, 0.3666, 0.5776, 0.8658, 1.232, 1.682, 2.216",\
                 "0.09118, 0.1109, 0.1607, 0.2447, 0.3796, 0.584, 0.8686, 1.234, 1.682, 2.218",\
                 "0.1104, 0.133, 0.1852, 0.2686, 0.4026, 0.6032, 0.8776, 1.235, 1.68, 2.217",\
                 "0.1318, 0.1548, 0.2116, 0.2958, 0.4286, 0.6294, 0.9028, 1.252, 1.688, 2.217",\
                 "0.153, 0.1808, 0.2404, 0.324, 0.4574, 0.659, 0.9344, 1.285, 1.711, 2.228",\
                 "0.176, 0.2068, 0.2714, 0.358, 0.4886, 0.689, 0.9676, 1.325, 1.754, 2.261");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005941, 0.02329, 0.05641, 0.108, 0.1804, 0.2757, 0.3957, 0.5422, 0.7169");
          values("0.06308, 0.0865, 0.1623, 0.3165, 0.5661, 0.9238, 1.392, 1.987, 2.705, 3.566",\
                 "0.06312, 0.08674, 0.1624, 0.3165, 0.5663, 0.9221, 1.393, 1.984, 2.71, 3.572",\
                 "0.06268, 0.08628, 0.1627, 0.3164, 0.5664, 0.9224, 1.393, 1.984, 2.706, 3.566",\
                 "0.06638, 0.09002, 0.1646, 0.3175, 0.5666, 0.9224, 1.392, 1.983, 2.706, 3.57",\
                 "0.07386, 0.09764, 0.1706, 0.3219, 0.5698, 0.9228, 1.392, 1.985, 2.706, 3.565",\
                 "0.08486, 0.1089, 0.1816, 0.3294, 0.5743, 0.9268, 1.394, 1.985, 2.71, 3.569",\
                 "0.096, 0.1218, 0.1954, 0.3412, 0.5862, 0.935, 1.398, 1.989, 2.71, 3.569",\
                 "0.1106, 0.1372, 0.2116, 0.3558, 0.601, 0.9528, 1.411, 1.993, 2.71, 3.573",\
                 "0.1268, 0.154, 0.231, 0.3714, 0.6176, 0.974, 1.436, 2.012, 2.72, 3.573",\
                 "0.1416, 0.1708, 0.2492, 0.3908, 0.6344, 0.9944, 1.464, 2.043, 2.746, 3.587");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005941, 0.02329, 0.05641, 0.108, 0.1804, 0.2757, 0.3957, 0.5422, 0.7169");
          values("0.1508, 0.1682, 0.2144, 0.2835, 0.3796, 0.5098, 0.6803, 0.8955, 1.158, 1.472",\
                 "0.1558, 0.1733, 0.2194, 0.2886, 0.3846, 0.5148, 0.6854, 0.9004, 1.164, 1.477",\
                 "0.18, 0.1974, 0.2434, 0.3122, 0.4081, 0.5382, 0.7088, 0.924, 1.187, 1.5",\
                 "0.2321, 0.2493, 0.2948, 0.3632, 0.4586, 0.5882, 0.7584, 0.9733, 1.236, 1.549",\
                 "0.303, 0.3217, 0.3692, 0.4388, 0.5337, 0.6623, 0.8315, 1.046, 1.308, 1.621",\
                 "0.3881, 0.4086, 0.4598, 0.5326, 0.6291, 0.7572, 0.9255, 1.139, 1.4, 1.713",\
                 "0.4868, 0.5088, 0.5645, 0.6415, 0.7419, 0.8718, 1.04, 1.252, 1.512, 1.824",\
                 "0.6001, 0.6239, 0.6842, 0.7664, 0.8703, 1.004, 1.175, 1.387, 1.647, 1.957",\
                 "0.7292, 0.755, 0.8196, 0.9071, 1.016, 1.153, 1.327, 1.543, 1.804, 2.114",\
                 "0.875, 0.9021, 0.9715, 1.065, 1.178, 1.319, 1.497, 1.718, 1.983, 2.296");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005941, 0.02329, 0.05641, 0.108, 0.1804, 0.2757, 0.3957, 0.5422, 0.7169");
          values("0.1731, 0.1914, 0.2436, 0.3333, 0.471, 0.6646, 0.9201, 1.243, 1.637, 2.106",\
                 "0.1742, 0.1923, 0.2445, 0.3344, 0.472, 0.6655, 0.9214, 1.244, 1.638, 2.108",\
                 "0.1782, 0.1966, 0.2485, 0.3382, 0.4755, 0.6691, 0.9247, 1.247, 1.641, 2.111",\
                 "0.1895, 0.2081, 0.2598, 0.3489, 0.4856, 0.6786, 0.934, 1.256, 1.649, 2.119",\
                 "0.1992, 0.219, 0.2724, 0.3613, 0.4967, 0.6885, 0.9429, 1.264, 1.657, 2.127",\
                 "0.1996, 0.2208, 0.2773, 0.3678, 0.5042, 0.6945, 0.9473, 1.268, 1.659, 2.129",\
                 "0.1877, 0.2104, 0.2702, 0.3637, 0.502, 0.6947, 0.947, 1.266, 1.657, 2.124",\
                 "0.1613, 0.1852, 0.2485, 0.3454, 0.4865, 0.6824, 0.9382, 1.258, 1.647, 2.113",\
                 "0.1192, 0.1448, 0.212, 0.3124, 0.4564, 0.6555, 0.9157, 1.24, 1.631, 2.096",\
                 "0.0609, 0.0884, 0.1586, 0.2631, 0.4106, 0.6127, 0.8775, 1.207, 1.604, 2.072");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005941, 0.02329, 0.05641, 0.108, 0.1804, 0.2757, 0.3957, 0.5422, 0.7169");
          values("0.05822, 0.07706, 0.1288, 0.2178, 0.3626, 0.5776, 0.8666, 1.233, 1.68, 2.217",\
                 "0.05808, 0.07734, 0.129, 0.2176, 0.3627, 0.5773, 0.8671, 1.232, 1.682, 2.217",\
                 "0.0582, 0.07764, 0.129, 0.2177, 0.3628, 0.5772, 0.8665, 1.234, 1.682, 2.215",\
                 "0.06284, 0.08188, 0.1324, 0.2201, 0.3638, 0.5777, 0.8667, 1.234, 1.682, 2.218",\
                 "0.0773, 0.0968, 0.1465, 0.2286, 0.3683, 0.5791, 0.8661, 1.234, 1.681, 2.217",\
                 "0.09468, 0.1161, 0.1671, 0.247, 0.3796, 0.5838, 0.8672, 1.233, 1.682, 2.217",\
                 "0.1156, 0.1386, 0.1924, 0.272, 0.4022, 0.5994, 0.8744, 1.236, 1.683, 2.216",\
                 "0.1362, 0.164, 0.2204, 0.301, 0.4276, 0.6232, 0.895, 1.246, 1.685, 2.215",\
                 "0.1608, 0.1888, 0.2506, 0.333, 0.458, 0.6518, 0.924, 1.271, 1.7, 2.222",\
                 "0.1878, 0.2164, 0.2834, 0.367, 0.492, 0.6842, 0.9576, 1.308, 1.734, 2.245");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005941, 0.02329, 0.05641, 0.108, 0.1804, 0.2757, 0.3957, 0.5422, 0.7169");
          values("0.06304, 0.0864, 0.1625, 0.3162, 0.5662, 0.9223, 1.394, 1.985, 2.705, 3.567",\
                 "0.06314, 0.0862, 0.1621, 0.3165, 0.5662, 0.9224, 1.392, 1.985, 2.705, 3.566",\
                 "0.06298, 0.08626, 0.1623, 0.3166, 0.5665, 0.9225, 1.394, 1.985, 2.705, 3.566",\
                 "0.06584, 0.08946, 0.1643, 0.3172, 0.5668, 0.9226, 1.392, 1.984, 2.706, 3.567",\
                 "0.07386, 0.09798, 0.1713, 0.3214, 0.5688, 0.9232, 1.392, 1.987, 2.707, 3.571",\
                 "0.08456, 0.1094, 0.1841, 0.3317, 0.5755, 0.926, 1.392, 1.987, 2.705, 3.572",\
                 "0.0966, 0.1234, 0.1996, 0.346, 0.5908, 0.938, 1.398, 1.987, 2.71, 3.565",\
                 "0.1094, 0.1376, 0.2164, 0.364, 0.6094, 0.9602, 1.417, 1.995, 2.71, 3.574",\
                 "0.1224, 0.1526, 0.2346, 0.3828, 0.6282, 0.9858, 1.447, 2.022, 2.724, 3.575",\
                 "0.139, 0.1686, 0.255, 0.4042, 0.6512, 1.012, 1.481, 2.059, 2.757, 3.594");
        }
      }
    }
  }

