/*
 * 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 : "8.20215e-05" ;
    }

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

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

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

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

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

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

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

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.01621, 0.01612, 0.01608, 0.01605, 0.01606, 0.01606, 0.01611, \
                  0.01608, 0.01607, 0.01605");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("-0.01091, -0.01092, -0.01093, -0.01091, -0.01094, -0.01092, -0.01094, \
                  -0.01097, -0.01096, -0.01097");
        }
      }
    }

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

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.01571, 0.01496, 0.01457, 0.01456, 0.01459, 0.01457, 0.01457, \
                  0.01457, 0.01456, 0.01458");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("-0.01459, -0.01458, -0.01453, -0.01453, -0.01456, -0.01451, -0.01455, \
                  -0.01454, -0.01455, -0.01455");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2)" ;
      max_capacitance : 0.252 ;
      max_transition : 5 ;
      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.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002732, 0.008814, 0.02043, 0.03852, 0.06391, 0.09731, 0.1394, 0.1908, 0.252");
          values("0.1447, 0.1438, 0.1426, 0.1419, 0.1415, 0.1414, 0.1413, 0.1412, 0.1412, 0.1411",\
                 "0.1441, 0.1432, 0.1419, 0.1411, 0.1408, 0.1407, 0.1406, 0.1406, 0.1406, 0.1406",\
                 "0.1444, 0.1435, 0.1423, 0.1415, 0.1412, 0.141, 0.141, 0.141, 0.1409, 0.1409",\
                 "0.1509, 0.1496, 0.1473, 0.1461, 0.1456, 0.1453, 0.1453, 0.1452, 0.145, 0.145",\
                 "0.1665, 0.1644, 0.1609, 0.1583, 0.1568, 0.1562, 0.1557, 0.1554, 0.1552, 0.1551",\
                 "0.1899, 0.187, 0.1818, 0.1776, 0.1751, 0.1735, 0.1726, 0.1721, 0.1716, 0.1714",\
                 "0.2219, 0.2182, 0.211, 0.2051, 0.2009, 0.1985, 0.1969, 0.1957, 0.1951, 0.1947",\
                 "0.2625, 0.2579, 0.2487, 0.2407, 0.2351, 0.2313, 0.2289, 0.2274, 0.2264, 0.2256",\
                 "0.3117, 0.3064, 0.295, 0.2851, 0.2776, 0.2726, 0.269, 0.2667, 0.2652, 0.264",\
                 "0.3697, 0.3639, 0.3506, 0.3385, 0.329, 0.3223, 0.3177, 0.3145, 0.3123, 0.3108");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002732, 0.008814, 0.02043, 0.03852, 0.06391, 0.09731, 0.1394, 0.1908, 0.252");
          values("0.08697, 0.08574, 0.08353, 0.08221, 0.08177, 0.08183, 0.0817, 0.08198, 0.08121, 0.08186",\
                 "0.08667, 0.08542, 0.08319, 0.08194, 0.08137, 0.08129, 0.08129, 0.08167, 0.08071, 0.08141",\
                 "0.08672, 0.08536, 0.08317, 0.08194, 0.08128, 0.0812, 0.08111, 0.08135, 0.0817, 0.08186",\
                 "0.0924, 0.09087, 0.08792, 0.0859, 0.0847, 0.08435, 0.08417, 0.08455, 0.08427, 0.08456",\
                 "0.105, 0.1034, 0.09936, 0.09557, 0.09383, 0.09286, 0.09227, 0.09229, 0.09147, 0.09131",\
                 "0.1244, 0.122, 0.1174, 0.1126, 0.109, 0.1072, 0.1064, 0.1051, 0.1054, 0.1053",\
                 "0.1515, 0.1488, 0.1429, 0.1367, 0.1325, 0.1288, 0.1266, 0.1256, 0.1251, 0.1233",\
                 "0.1864, 0.1829, 0.1759, 0.1688, 0.1631, 0.1592, 0.1551, 0.1533, 0.1516, 0.1507",\
                 "0.2291, 0.2249, 0.2168, 0.2082, 0.2014, 0.1961, 0.1919, 0.1871, 0.1851, 0.1836",\
                 "0.2799, 0.2752, 0.2655, 0.2556, 0.2471, 0.2408, 0.2364, 0.2312, 0.2277, 0.225");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002732, 0.008814, 0.02043, 0.03852, 0.06391, 0.09731, 0.1394, 0.1908, 0.252");
          values("0.1582, 0.1569, 0.1552, 0.1541, 0.1535, 0.1532, 0.153, 0.1529, 0.1528, 0.1527",\
                 "0.1578, 0.1565, 0.1548, 0.1536, 0.1531, 0.1528, 0.1526, 0.1525, 0.1523, 0.1523",\
                 "0.1585, 0.1572, 0.1554, 0.1542, 0.1537, 0.1534, 0.1532, 0.1531, 0.153, 0.153",\
                 "0.165, 0.1634, 0.1609, 0.1593, 0.1585, 0.1581, 0.1579, 0.1577, 0.1576, 0.1575",\
                 "0.1816, 0.1792, 0.1754, 0.1723, 0.1707, 0.1697, 0.1691, 0.1688, 0.1686, 0.1684",\
                 "0.2064, 0.2032, 0.1978, 0.1932, 0.1902, 0.1886, 0.1875, 0.1868, 0.1863, 0.186",\
                 "0.2402, 0.2363, 0.2287, 0.2224, 0.218, 0.2153, 0.2134, 0.2124, 0.2116, 0.2111",\
                 "0.2829, 0.2783, 0.2689, 0.2605, 0.2547, 0.2506, 0.2479, 0.2462, 0.245, 0.2442",\
                 "0.3349, 0.3296, 0.3182, 0.3079, 0.3, 0.2946, 0.2909, 0.2884, 0.2867, 0.2855",\
                 "0.3961, 0.3903, 0.3772, 0.3648, 0.3548, 0.3477, 0.3428, 0.3394, 0.3371, 0.3353");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002732, 0.008814, 0.02043, 0.03852, 0.06391, 0.09731, 0.1394, 0.1908, 0.252");
          values("0.08705, 0.08564, 0.08355, 0.08221, 0.08182, 0.08174, 0.0817, 0.08212, 0.08211, 0.08186",\
                 "0.08656, 0.08521, 0.08305, 0.08185, 0.08137, 0.08125, 0.08125, 0.08144, 0.08161, 0.08141",\
                 "0.08618, 0.08486, 0.08265, 0.08122, 0.08078, 0.08071, 0.08107, 0.08108, 0.08107, 0.08096",\
                 "0.09038, 0.08881, 0.08618, 0.08414, 0.08335, 0.08305, 0.08327, 0.08338, 0.08341, 0.08321",\
                 "0.1017, 0.09996, 0.09672, 0.0935, 0.09217, 0.09119, 0.09079, 0.09089, 0.09102, 0.08951",\
                 "0.121, 0.1191, 0.1146, 0.111, 0.1073, 0.1057, 0.1053, 0.1048, 0.1045, 0.1044",\
                 "0.1486, 0.1461, 0.1404, 0.1357, 0.132, 0.1286, 0.1262, 0.1257, 0.1249, 0.1242",\
                 "0.1842, 0.1812, 0.1745, 0.1681, 0.1628, 0.1589, 0.1555, 0.1533, 0.1522, 0.1516",\
                 "0.2282, 0.2243, 0.2166, 0.2089, 0.2021, 0.1973, 0.1939, 0.1905, 0.1869, 0.1863",\
                 "0.2806, 0.2762, 0.2674, 0.2574, 0.2501, 0.245, 0.2405, 0.2361, 0.2328, 0.2295");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002732, 0.008814, 0.02043, 0.03852, 0.06391, 0.09731, 0.1394, 0.1908, 0.252");
          values("0.2459, 0.2674, 0.3298, 0.4281, 0.5673, 0.7571, 1.006, 1.319, 1.702, 2.158",\
                 "0.2549, 0.2763, 0.3388, 0.4372, 0.5761, 0.7659, 1.015, 1.328, 1.711, 2.168",\
                 "0.2903, 0.3116, 0.3739, 0.4722, 0.6114, 0.8013, 1.05, 1.364, 1.746, 2.203",\
                 "0.3633, 0.3845, 0.4467, 0.5447, 0.6836, 0.8735, 1.122, 1.436, 1.818, 2.275",\
                 "0.4596, 0.4821, 0.5468, 0.6468, 0.7861, 0.9755, 1.224, 1.537, 1.92, 2.376",\
                 "0.571, 0.595, 0.6626, 0.7656, 0.9069, 1.097, 1.345, 1.657, 2.04, 2.496",\
                 "0.6955, 0.7219, 0.794, 0.9016, 1.045, 1.235, 1.483, 1.796, 2.177, 2.634",\
                 "0.8329, 0.8617, 0.9391, 1.052, 1.2, 1.391, 1.639, 1.951, 2.333, 2.788",\
                 "0.9836, 1.015, 1.097, 1.216, 1.369, 1.565, 1.815, 2.127, 2.508, 2.964",\
                 "1.147, 1.181, 1.269, 1.394, 1.553, 1.753, 2.007, 2.323, 2.704, 3.159");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002732, 0.008814, 0.02043, 0.03852, 0.06391, 0.09731, 0.1394, 0.1908, 0.252");
          values("0.2838, 0.309, 0.3876, 0.5234, 0.7298, 1.019, 1.399, 1.878, 2.462, 3.16",\
                 "0.2892, 0.3144, 0.3929, 0.5288, 0.7351, 1.024, 1.404, 1.883, 2.468, 3.165",\
                 "0.312, 0.3372, 0.4158, 0.5515, 0.7578, 1.047, 1.427, 1.906, 2.491, 3.187",\
                 "0.359, 0.3839, 0.4619, 0.597, 0.8027, 1.091, 1.471, 1.95, 2.535, 3.232",\
                 "0.4079, 0.4338, 0.5127, 0.6479, 0.8531, 1.141, 1.52, 1.999, 2.584, 3.281",\
                 "0.4533, 0.4793, 0.5593, 0.6943, 0.899, 1.186, 1.565, 2.043, 2.628, 3.324",\
                 "0.4921, 0.5194, 0.6011, 0.737, 0.9403, 1.227, 1.605, 2.082, 2.666, 3.362",\
                 "0.5213, 0.55, 0.6346, 0.7729, 0.9767, 1.262, 1.639, 2.117, 2.699, 3.395",\
                 "0.5394, 0.5698, 0.6573, 0.7991, 1.005, 1.291, 1.667, 2.143, 2.726, 3.421",\
                 "0.5444, 0.577, 0.668, 0.8133, 1.022, 1.31, 1.689, 2.164, 2.747, 3.442");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002732, 0.008814, 0.02043, 0.03852, 0.06391, 0.09731, 0.1394, 0.1908, 0.252");
          values("0.09376, 0.1163, 0.1867, 0.3131, 0.5193, 0.8215, 1.227, 1.74, 2.364, 3.11",\
                 "0.09344, 0.1163, 0.1866, 0.3131, 0.5191, 0.8223, 1.227, 1.74, 2.364, 3.111",\
                 "0.09362, 0.1165, 0.1868, 0.3132, 0.5191, 0.8215, 1.227, 1.74, 2.364, 3.11",\
                 "0.09634, 0.1186, 0.1886, 0.314, 0.5195, 0.8216, 1.226, 1.74, 2.364, 3.11",\
                 "0.1095, 0.1313, 0.2, 0.3214, 0.5226, 0.823, 1.228, 1.74, 2.364, 3.11",\
                 "0.1246, 0.1468, 0.215, 0.3344, 0.53, 0.8256, 1.228, 1.74, 2.365, 3.11",\
                 "0.1426, 0.1662, 0.2344, 0.3514, 0.5408, 0.8302, 1.23, 1.741, 2.364, 3.11",\
                 "0.162, 0.187, 0.2572, 0.374, 0.5588, 0.8398, 1.233, 1.742, 2.366, 3.11",\
                 "0.1818, 0.2086, 0.2806, 0.3992, 0.5828, 0.8596, 1.245, 1.746, 2.367, 3.111",\
                 "0.2022, 0.2314, 0.3078, 0.4272, 0.6082, 0.8838, 1.268, 1.762, 2.375, 3.114");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002732, 0.008814, 0.02043, 0.03852, 0.06391, 0.09731, 0.1394, 0.1908, 0.252");
          values("0.1122, 0.1458, 0.2564, 0.4708, 0.8201, 1.317, 1.972, 2.798, 3.805, 5.009",\
                 "0.1126, 0.146, 0.2567, 0.4711, 0.8203, 1.317, 1.972, 2.798, 3.806, 5.009",\
                 "0.1123, 0.146, 0.2568, 0.4711, 0.8203, 1.317, 1.972, 2.798, 3.807, 5.006",\
                 "0.1136, 0.1471, 0.258, 0.4716, 0.8204, 1.317, 1.972, 2.799, 3.806, 5.008",\
                 "0.12, 0.154, 0.2638, 0.475, 0.8206, 1.316, 1.971, 2.798, 3.805, 5.008",\
                 "0.1284, 0.1606, 0.27, 0.479, 0.8238, 1.318, 1.972, 2.796, 3.806, 5.009",\
                 "0.1398, 0.172, 0.2798, 0.485, 0.8256, 1.319, 1.973, 2.797, 3.804, 5.007",\
                 "0.1534, 0.1846, 0.2928, 0.4956, 0.8316, 1.321, 1.974, 2.798, 3.804, 5.004",\
                 "0.1678, 0.199, 0.3062, 0.5096, 0.8436, 1.329, 1.976, 2.799, 3.804, 5.003",\
                 "0.1838, 0.2162, 0.3222, 0.5248, 0.8582, 1.344, 1.988, 2.803, 3.806, 5.001");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002732, 0.008814, 0.02043, 0.03852, 0.06391, 0.09731, 0.1394, 0.1908, 0.252");
          values("0.2649, 0.2871, 0.3505, 0.4497, 0.589, 0.7788, 1.028, 1.341, 1.724, 2.18",\
                 "0.2739, 0.296, 0.3594, 0.4587, 0.598, 0.7879, 1.037, 1.35, 1.733, 2.189",\
                 "0.3103, 0.3324, 0.3958, 0.4951, 0.6344, 0.8243, 1.073, 1.387, 1.769, 2.225",\
                 "0.3859, 0.4078, 0.4711, 0.57, 0.7091, 0.8989, 1.148, 1.461, 1.844, 2.3",\
                 "0.4903, 0.5134, 0.5791, 0.6793, 0.8186, 1.008, 1.257, 1.57, 1.952, 2.408",\
                 "0.613, 0.6379, 0.7061, 0.8098, 0.9507, 1.141, 1.389, 1.701, 2.084, 2.539",\
                 "0.7541, 0.7811, 0.8536, 0.9608, 1.104, 1.294, 1.541, 1.854, 2.236, 2.692",\
                 "0.9129, 0.942, 1.02, 1.132, 1.279, 1.47, 1.717, 2.029, 2.411, 2.866",\
                 "1.091, 1.122, 1.205, 1.323, 1.474, 1.668, 1.917, 2.228, 2.61, 3.065",\
                 "1.287, 1.32, 1.409, 1.533, 1.69, 1.888, 2.14, 2.453, 2.834, 3.289");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002732, 0.008814, 0.02043, 0.03852, 0.06391, 0.09731, 0.1394, 0.1908, 0.252");
          values("0.2966, 0.3218, 0.4004, 0.5362, 0.7426, 1.032, 1.412, 1.89, 2.475, 3.173",\
                 "0.3011, 0.3263, 0.4048, 0.5407, 0.747, 1.036, 1.416, 1.895, 2.48, 3.176",\
                 "0.3131, 0.3383, 0.4168, 0.5526, 0.7588, 1.048, 1.428, 1.907, 2.492, 3.189",\
                 "0.3388, 0.364, 0.4423, 0.5777, 0.7836, 1.072, 1.452, 1.931, 2.516, 3.212",\
                 "0.3696, 0.3953, 0.4752, 0.6111, 0.8164, 1.105, 1.484, 1.963, 2.547, 3.244",\
                 "0.3979, 0.4246, 0.5051, 0.6414, 0.8458, 1.134, 1.513, 1.991, 2.575, 3.272",\
                 "0.4162, 0.4441, 0.527, 0.6653, 0.8694, 1.156, 1.534, 2.012, 2.595, 3.292",\
                 "0.4213, 0.4501, 0.536, 0.6774, 0.8835, 1.17, 1.547, 2.024, 2.607, 3.302",\
                 "0.4103, 0.4409, 0.5295, 0.6745, 0.884, 1.173, 1.55, 2.026, 2.609, 3.304",\
                 "0.382, 0.4144, 0.5066, 0.6548, 0.8682, 1.161, 1.542, 2.019, 2.601, 3.295");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002732, 0.008814, 0.02043, 0.03852, 0.06391, 0.09731, 0.1394, 0.1908, 0.252");
          values("0.09884, 0.1214, 0.191, 0.3159, 0.5204, 0.8226, 1.227, 1.74, 2.365, 3.111",\
                 "0.09892, 0.1212, 0.1908, 0.3159, 0.5202, 0.8224, 1.228, 1.74, 2.364, 3.109",\
                 "0.09892, 0.1214, 0.1909, 0.3156, 0.5204, 0.8227, 1.227, 1.74, 2.364, 3.109",\
                 "0.1007, 0.123, 0.1923, 0.3167, 0.5207, 0.8221, 1.228, 1.74, 2.365, 3.109",\
                 "0.1132, 0.135, 0.2026, 0.3224, 0.5232, 0.8228, 1.227, 1.739, 2.364, 3.11",\
                 "0.128, 0.1502, 0.217, 0.3354, 0.5302, 0.826, 1.227, 1.74, 2.364, 3.111",\
                 "0.1456, 0.1688, 0.2354, 0.3506, 0.5402, 0.83, 1.23, 1.74, 2.366, 3.11",\
                 "0.164, 0.1896, 0.2576, 0.371, 0.5552, 0.8374, 1.233, 1.742, 2.366, 3.111",\
                 "0.1834, 0.2106, 0.2814, 0.3956, 0.5766, 0.8532, 1.241, 1.744, 2.367, 3.11",\
                 "0.2038, 0.2326, 0.3066, 0.4224, 0.6014, 0.8748, 1.259, 1.755, 2.372, 3.112");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002732, 0.008814, 0.02043, 0.03852, 0.06391, 0.09731, 0.1394, 0.1908, 0.252");
          values("0.1126, 0.1459, 0.257, 0.4707, 0.8203, 1.317, 1.972, 2.798, 3.804, 5.01",\
                 "0.1124, 0.1459, 0.257, 0.4706, 0.8203, 1.317, 1.971, 2.798, 3.807, 5.007",\
                 "0.1122, 0.1459, 0.257, 0.4706, 0.8197, 1.317, 1.973, 2.799, 3.807, 5.008",\
                 "0.1136, 0.1468, 0.2577, 0.4714, 0.8203, 1.317, 1.973, 2.798, 3.807, 5.006",\
                 "0.1192, 0.1528, 0.2633, 0.4738, 0.8206, 1.317, 1.972, 2.798, 3.806, 5.006",\
                 "0.1266, 0.1604, 0.2706, 0.4784, 0.8222, 1.317, 1.972, 2.798, 3.806, 5.008",\
                 "0.1376, 0.1702, 0.2808, 0.4868, 0.8254, 1.318, 1.972, 2.797, 3.804, 5.007",\
                 "0.1498, 0.1838, 0.2936, 0.5006, 0.8344, 1.322, 1.972, 2.796, 3.802, 5.005",\
                 "0.1646, 0.1966, 0.3082, 0.5156, 0.85, 1.335, 1.977, 2.798, 3.801, 5.002",\
                 "0.1792, 0.2122, 0.323, 0.5318, 0.8684, 1.355, 1.994, 2.805, 3.806, 5");
        }
      }
    }
  }

