/*
 * 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__bufz_8) {
    area : 74.636800 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&!I" ;
      value : "2.97846e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&I" ;
      value : "2.97846e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&!I" ;
      value : "6.0174e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&I" ;
      value : "5.98122e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "6.0174e-05" ;
    }

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

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

    pin(EN) {
      capacitance : 0.007507 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 12 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          values("0.02777, 0.0274, 0.02696, 0.02685, 0.02686, 0.02698, 0.02722, \
                 0.02757, 0.02806, 0.02869");
        }

        rise_power(scalar) {
          values("0");
          /* SiliconSmart: placeholder for Liberty-required model for which no measurement is available. */
        }
      }

      internal_power() {
        when : "I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          values("0.0596, 0.05915, 0.0584, 0.0579, 0.05765, 0.05753, 0.0575, 0.0578, \
                 0.0584, 0.05933");
        }

        rise_power(scalar) {
          values("0");
          /* SiliconSmart: placeholder for Liberty-required model for which no measurement is available. */
        }
      }
    }

    pin(I) {
      capacitance : 0.01597 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 12 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          values("0.01641, 0.01645, 0.01639, 0.01638, 0.01642, 0.0164, 0.01641, \
                 0.01641, 0.01641, 0.0164");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          values("-0.01632, -0.01635, -0.01631, -0.01635, -0.01637, -0.01638, -0.01636, \
                 -0.01637, -0.01638, -0.01638");
        }
      }
    }

    pin(Z) {
      capacitance : 0.01607 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 1.609 ;
      max_transition : 12 ;
      min_capacitance : 0.01707 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
      three_state : "(!EN)" ;

      internal_power() {
        related_pin : "EN" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.01707, 0.02805, 0.06661, 0.1402, 0.255, 0.4159, 0.6277, 0.8946, 1.22, 1.609");
          values("0.09369, 0.09373, 0.09371, 0.09367, 0.09365, 0.09367, 0.09368, 0.0937, 0.0937, 0.09371",\
                 "0.0938, 0.09382, 0.09383, 0.09378, 0.09375, 0.09373, 0.09375, 0.09376, 0.09378, 0.09378",\
                 "0.09432, 0.09434, 0.09435, 0.09432, 0.09427, 0.09425, 0.09427, 0.09428, 0.0943, 0.0943",\
                 "0.09471, 0.09473, 0.09474, 0.09472, 0.09468, 0.09467, 0.09469, 0.0947, 0.09471, 0.09472",\
                 "0.09519, 0.09521, 0.09524, 0.09513, 0.09512, 0.09512, 0.09514, 0.09514, 0.09515, 0.09517",\
                 "0.09579, 0.0958, 0.09582, 0.09578, 0.09575, 0.09574, 0.09575, 0.09575, 0.09576, 0.09577",\
                 "0.09653, 0.09654, 0.09656, 0.09654, 0.09652, 0.0965, 0.09652, 0.0965, 0.09653, 0.09652",\
                 "0.09751, 0.0975, 0.09752, 0.09749, 0.09747, 0.09746, 0.09748, 0.0975, 0.0975, 0.09749",\
                 "0.09868, 0.09872, 0.09874, 0.09871, 0.09867, 0.09866, 0.09867, 0.09868, 0.0987, 0.09871",\
                 "0.1001, 0.1001, 0.1002, 0.1001, 0.1001, 0.1001, 0.1001, 0.1001, 0.1001, 0.1001");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.01707, 0.02805, 0.06661, 0.1402, 0.255, 0.4159, 0.6277, 0.8946, 1.22, 1.609");
          values("0.08188, 0.0819, 0.08218, 0.08209, 0.08239, 0.08328, 0.0836, 0.08517, 0.08754, 0.1171",\
                 "0.08175, 0.08183, 0.08169, 0.08187, 0.0823, 0.08294, 0.08378, 0.08481, 0.08834, 0.1172",\
                 "0.08142, 0.08152, 0.08164, 0.08153, 0.08192, 0.08256, 0.08342, 0.08391, 0.08848, 0.1198",\
                 "0.08104, 0.0812, 0.08099, 0.08106, 0.08143, 0.08216, 0.08288, 0.08391, 0.08834, 0.1282",\
                 "0.08099, 0.08086, 0.08104, 0.08108, 0.0817, 0.08229, 0.08306, 0.08458, 0.08914, 0.1389",\
                 "0.08081, 0.08086, 0.08085, 0.08111, 0.0814, 0.08238, 0.08288, 0.08436, 0.09297, 0.1582",\
                 "0.0811, 0.08115, 0.08144, 0.08106, 0.0821, 0.08263, 0.0827, 0.08414, 0.09654, 0.1885",\
                 "0.0816, 0.08169, 0.08187, 0.08183, 0.08167, 0.08342, 0.08378, 0.08482, 0.1061, 0.2419",\
                 "0.08234, 0.0825, 0.08272, 0.08291, 0.08262, 0.08274, 0.08508, 0.08901, 0.1258, 0.3383",\
                 "0.08345, 0.0835, 0.08383, 0.08392, 0.08413, 0.08432, 0.08462, 0.0952, 0.1757, 0.5082");
        }
      }

      internal_power() {
        related_pin : "I" ;
        when : "EN" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.01707, 0.02805, 0.06661, 0.1402, 0.255, 0.4159, 0.6277, 0.8946, 1.22, 1.609");
          values("0.1532, 0.1545, 0.1569, 0.1584, 0.1593, 0.1597, 0.16, 0.1602, 0.1603, 0.1604",\
                 "0.152, 0.1533, 0.1558, 0.1573, 0.1581, 0.1586, 0.1589, 0.159, 0.1591, 0.1592",\
                 "0.1504, 0.1517, 0.154, 0.1557, 0.1565, 0.157, 0.1573, 0.1575, 0.1576, 0.1577",\
                 "0.1489, 0.15, 0.1521, 0.1538, 0.155, 0.1556, 0.156, 0.1563, 0.1564, 0.1566",\
                 "0.1476, 0.1485, 0.1505, 0.1523, 0.1537, 0.1546, 0.1551, 0.1555, 0.1557, 0.1559",\
                 "0.1472, 0.148, 0.1498, 0.1517, 0.1532, 0.1542, 0.1549, 0.1554, 0.1557, 0.1559",\
                 "0.1475, 0.1481, 0.1498, 0.1516, 0.1532, 0.1543, 0.1551, 0.1556, 0.156, 0.1563",\
                 "0.1484, 0.1491, 0.1506, 0.1523, 0.1538, 0.155, 0.1559, 0.1566, 0.157, 0.1574",\
                 "0.1501, 0.1507, 0.1521, 0.1537, 0.1552, 0.1564, 0.1574, 0.1581, 0.1586, 0.159",\
                 "0.1525, 0.153, 0.1543, 0.1558, 0.1573, 0.1585, 0.1595, 0.1603, 0.1608, 0.1612");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.01707, 0.02805, 0.06661, 0.1402, 0.255, 0.4159, 0.6277, 0.8946, 1.22, 1.609");
          values("0.0823, 0.08347, 0.08573, 0.08717, 0.08821, 0.08944, 0.09034, 0.09155, 0.09454, 0.1282",\
                 "0.08174, 0.08288, 0.0851, 0.08656, 0.08785, 0.0889, 0.08926, 0.09137, 0.09353, 0.125",\
                 "0.07972, 0.0807, 0.08253, 0.08452, 0.08596, 0.08734, 0.08854, 0.08993, 0.09324, 0.1273",\
                 "0.0777, 0.07848, 0.08039, 0.08202, 0.08398, 0.08539, 0.08602, 0.08813, 0.09256, 0.1322",\
                 "0.07648, 0.07724, 0.07871, 0.0806, 0.08236, 0.08413, 0.08584, 0.08682, 0.09282, 0.14",\
                 "0.0758, 0.07642, 0.07752, 0.07957, 0.08128, 0.08312, 0.08476, 0.08664, 0.09383, 0.1575",\
                 "0.07571, 0.07626, 0.07751, 0.07855, 0.08085, 0.08298, 0.08368, 0.08619, 0.09712, 0.1802",\
                 "0.0762, 0.07677, 0.07778, 0.07923, 0.08056, 0.08242, 0.08512, 0.08732, 0.1034, 0.2234",\
                 "0.07739, 0.07798, 0.079, 0.08015, 0.08113, 0.08235, 0.08534, 0.08936, 0.1199, 0.3002",\
                 "0.0793, 0.0798, 0.08085, 0.08184, 0.08324, 0.08383, 0.08574, 0.09293, 0.1541, 0.4347");
        }
      }

      timing() {
        related_pin : "EN" ;
        timing_sense : negative_unate ;
        timing_type : three_state_disable ;

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          values("0.88, 0.919, 1.045, 1.285, 1.663, 2.175, 2.742, 3.346, 3.983, \
                 4.658");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          values("0.808, 0.835, 0.95, 1.19, 1.528, 1.902, 2.312, 2.748, 3.217, 3.72");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }
      }

      timing() {
        related_pin : "EN" ;
        timing_sense : positive_unate ;
        timing_type : three_state_enable ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.01707, 0.02805, 0.06661, 0.1402, 0.255, 0.4159, 0.6277, 0.8946, 1.22, 1.609");
          values("0.8855, 0.979, 1.197, 1.47, 1.785, 2.145, 2.565, 3.057, 3.636, 4.316",\
                 "0.9177, 1.011, 1.229, 1.502, 1.816, 2.177, 2.596, 3.088, 3.668, 4.348",\
                 "1.032, 1.125, 1.343, 1.616, 1.931, 2.291, 2.71, 3.202, 3.782, 4.462",\
                 "1.24, 1.333, 1.551, 1.824, 2.138, 2.499, 2.918, 3.41, 3.99, 4.669",\
                 "1.496, 1.588, 1.805, 2.078, 2.393, 2.753, 3.172, 3.664, 4.244, 4.924",\
                 "1.67, 1.762, 1.979, 2.252, 2.565, 2.926, 3.344, 3.837, 4.416, 5.096",\
                 "1.79, 1.882, 2.1, 2.373, 2.687, 3.046, 3.465, 3.956, 4.535, 5.215",\
                 "1.869, 1.962, 2.18, 2.453, 2.767, 3.127, 3.546, 4.037, 4.616, 5.295",\
                 "1.91, 2.003, 2.221, 2.494, 2.809, 3.169, 3.588, 4.079, 4.658, 5.337",\
                 "1.913, 2.006, 2.224, 2.497, 2.812, 3.172, 3.591, 4.082, 4.661, 5.34");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.01707, 0.02805, 0.06661, 0.1402, 0.255, 0.4159, 0.6277, 0.8946, 1.22, 1.609");
          values("0.6883, 0.7673, 0.9802, 1.321, 1.823, 2.523, 3.444, 4.604, 6.018, 7.702",\
                 "0.7179, 0.7969, 1.01, 1.35, 1.853, 2.552, 3.473, 4.634, 6.05, 7.739",\
                 "0.8228, 0.9018, 1.115, 1.455, 1.958, 2.658, 3.577, 4.736, 6.153, 7.84",\
                 "1.022, 1.101, 1.314, 1.654, 2.157, 2.857, 3.777, 4.934, 6.356, 8.04",\
                 "1.293, 1.378, 1.597, 1.939, 2.442, 3.142, 4.062, 5.219, 6.64, 8.326",\
                 "1.56, 1.656, 1.892, 2.243, 2.748, 3.447, 4.367, 5.527, 6.944, 8.633",\
                 "1.807, 1.915, 2.172, 2.535, 3.043, 3.743, 4.662, 5.821, 7.235, 8.926",\
                 "2.027, 2.149, 2.43, 2.808, 3.321, 4.021, 4.94, 6.097, 7.51, 9.198",\
                 "2.215, 2.351, 2.661, 3.057, 3.576, 4.277, 5.196, 6.354, 7.766, 9.45",\
                 "2.367, 2.518, 2.858, 3.277, 3.805, 4.508, 5.426, 6.583, 7.996, 9.68");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.01707, 0.02805, 0.06661, 0.1402, 0.255, 0.4159, 0.6277, 0.8946, 1.22, 1.609");
          values("0.3905, 0.4577, 0.6246, 0.861, 1.18, 1.601, 2.159, 2.884, 3.798, 4.923",\
                 "0.3906, 0.4575, 0.6244, 0.8612, 1.18, 1.601, 2.159, 2.886, 3.8, 4.922",\
                 "0.3906, 0.4578, 0.6244, 0.861, 1.179, 1.601, 2.159, 2.886, 3.802, 4.92",\
                 "0.3894, 0.4572, 0.6232, 0.8614, 1.18, 1.601, 2.159, 2.885, 3.8, 4.921",\
                 "0.3888, 0.4556, 0.6228, 0.8612, 1.179, 1.602, 2.159, 2.886, 3.801, 4.923",\
                 "0.3882, 0.4556, 0.6218, 0.8576, 1.176, 1.598, 2.158, 2.884, 3.799, 4.923",\
                 "0.389, 0.4558, 0.6228, 0.86, 1.175, 1.597, 2.154, 2.879, 3.8, 4.914",\
                 "0.3894, 0.4568, 0.6234, 0.86, 1.178, 1.599, 2.156, 2.881, 3.792, 4.909",\
                 "0.3904, 0.4568, 0.6234, 0.8608, 1.177, 1.599, 2.157, 2.882, 3.795, 4.912",\
                 "0.39, 0.457, 0.624, 0.8616, 1.179, 1.598, 2.156, 2.884, 3.796, 4.914");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.01707, 0.02805, 0.06661, 0.1402, 0.255, 0.4159, 0.6277, 0.8946, 1.22, 1.609");
          values("0.2619, 0.3412, 0.6021, 1.109, 1.943, 3.136, 4.71, 6.71, 9.14, 12",\
                 "0.2607, 0.3418, 0.6019, 1.108, 1.942, 3.135, 4.714, 6.709, 9.146, 12.01",\
                 "0.2611, 0.3414, 0.602, 1.108, 1.942, 3.136, 4.718, 6.697, 9.116, 12",\
                 "0.2616, 0.343, 0.601, 1.109, 1.942, 3.137, 4.716, 6.706, 9.147, 12.04",\
                 "0.2882, 0.363, 0.611, 1.111, 1.941, 3.137, 4.709, 6.707, 9.146, 12.04",\
                 "0.334, 0.4092, 0.6478, 1.129, 1.948, 3.137, 4.712, 6.712, 9.145, 12.01",\
                 "0.3864, 0.4638, 0.6944, 1.158, 1.958, 3.137, 4.707, 6.702, 9.122, 12.04",\
                 "0.4424, 0.525, 0.7506, 1.19, 1.973, 3.146, 4.712, 6.69, 9.125, 12.02",\
                 "0.5, 0.59, 0.8144, 1.234, 1.993, 3.153, 4.718, 6.694, 9.12, 12.01",\
                 "0.5598, 0.6576, 0.8874, 1.288, 2.02, 3.162, 4.726, 6.702, 9.118, 12.01");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.01707, 0.02805, 0.06661, 0.1402, 0.255, 0.4159, 0.6277, 0.8946, 1.22, 1.609");
          values("1.179, 1.27, 1.484, 1.754, 2.066, 2.425, 2.843, 3.334, 3.914, 4.594",\
                 "1.208, 1.3, 1.514, 1.784, 2.096, 2.454, 2.873, 3.364, 3.944, 4.624",\
                 "1.327, 1.418, 1.633, 1.903, 2.214, 2.574, 2.992, 3.483, 4.063, 4.743",\
                 "1.555, 1.646, 1.862, 2.132, 2.445, 2.804, 3.222, 3.714, 4.293, 4.973",\
                 "1.891, 1.984, 2.201, 2.473, 2.786, 3.146, 3.565, 4.057, 4.637, 5.316",\
                 "2.292, 2.389, 2.612, 2.888, 3.204, 3.565, 3.985, 4.477, 5.057, 5.737",\
                 "2.728, 2.828, 3.058, 3.342, 3.665, 4.03, 4.452, 4.946, 5.526, 6.206",\
                 "3.198, 3.304, 3.542, 3.832, 4.159, 4.53, 4.957, 5.455, 6.037, 6.717",\
                 "3.706, 3.815, 4.06, 4.357, 4.69, 5.066, 5.497, 5.997, 6.582, 7.265",\
                 "4.248, 4.363, 4.616, 4.921, 5.259, 5.64, 6.074, 6.577, 7.163, 7.848");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.01707, 0.02805, 0.06661, 0.1402, 0.255, 0.4159, 0.6277, 0.8946, 1.22, 1.609");
          values("0.8591, 0.9383, 1.152, 1.494, 1.998, 2.7, 3.62, 4.778, 6.197, 7.878",\
                 "0.8847, 0.9639, 1.178, 1.52, 2.024, 2.725, 3.646, 4.806, 6.222, 7.913",\
                 "0.971, 1.05, 1.264, 1.607, 2.113, 2.814, 3.735, 4.897, 6.309, 7.997",\
                 "1.103, 1.182, 1.396, 1.74, 2.246, 2.948, 3.87, 5.03, 6.45, 8.138",\
                 "1.246, 1.327, 1.545, 1.889, 2.396, 3.099, 4.021, 5.181, 6.599, 8.286",\
                 "1.381, 1.465, 1.686, 2.035, 2.544, 3.247, 4.169, 5.329, 6.75, 8.433",\
                 "1.503, 1.588, 1.816, 2.167, 2.677, 3.382, 4.304, 5.465, 6.879, 8.565",\
                 "1.605, 1.695, 1.928, 2.283, 2.794, 3.499, 4.423, 5.583, 6.998, 8.684",\
                 "1.686, 1.78, 2.02, 2.379, 2.892, 3.596, 4.52, 5.681, 7.098, 8.783",\
                 "1.739, 1.838, 2.087, 2.453, 2.967, 3.671, 4.594, 5.755, 7.172, 8.859");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.01707, 0.02805, 0.06661, 0.1402, 0.255, 0.4159, 0.6277, 0.8946, 1.22, 1.609");
          values("0.3626, 0.4304, 0.601, 0.8444, 1.168, 1.592, 2.153, 2.884, 3.801, 4.921",\
                 "0.3626, 0.4302, 0.6006, 0.8438, 1.167, 1.593, 2.155, 2.883, 3.798, 4.918",\
                 "0.363, 0.431, 0.601, 0.8438, 1.168, 1.594, 2.154, 2.883, 3.801, 4.919",\
                 "0.3656, 0.4336, 0.6032, 0.8456, 1.168, 1.595, 2.155, 2.882, 3.798, 4.922",\
                 "0.3732, 0.4404, 0.6082, 0.849, 1.17, 1.595, 2.157, 2.884, 3.801, 4.917",\
                 "0.3974, 0.4618, 0.6242, 0.8586, 1.176, 1.6, 2.159, 2.884, 3.802, 4.919",\
                 "0.4222, 0.4852, 0.6478, 0.8816, 1.197, 1.613, 2.167, 2.891, 3.804, 4.917",\
                 "0.4518, 0.5122, 0.6702, 0.903, 1.221, 1.639, 2.191, 2.907, 3.817, 4.926",\
                 "0.4868, 0.5424, 0.6958, 0.9276, 1.243, 1.658, 2.21, 2.928, 3.832, 4.94",\
                 "0.528, 0.576, 0.722, 0.952, 1.264, 1.684, 2.23, 2.948, 3.846, 4.954");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.01707, 0.02805, 0.06661, 0.1402, 0.255, 0.4159, 0.6277, 0.8946, 1.22, 1.609");
          values("0.2409, 0.3234, 0.5898, 1.106, 1.942, 3.138, 4.715, 6.708, 9.144, 12.02",\
                 "0.241, 0.3239, 0.591, 1.104, 1.941, 3.135, 4.711, 6.711, 9.119, 12.01",\
                 "0.2434, 0.3262, 0.5926, 1.105, 1.941, 3.134, 4.71, 6.712, 9.138, 12",\
                 "0.2464, 0.3284, 0.5938, 1.105, 1.939, 3.137, 4.711, 6.709, 9.147, 12.01",\
                 "0.2548, 0.3366, 0.5986, 1.107, 1.943, 3.136, 4.711, 6.695, 9.143, 12",\
                 "0.2652, 0.3484, 0.611, 1.117, 1.947, 3.138, 4.709, 6.709, 9.147, 12.03",\
                 "0.2772, 0.361, 0.6226, 1.127, 1.953, 3.14, 4.711, 6.701, 9.133, 12.03",\
                 "0.2912, 0.3766, 0.6372, 1.136, 1.958, 3.148, 4.715, 6.7, 9.117, 12.02",\
                 "0.31, 0.3946, 0.6542, 1.146, 1.964, 3.146, 4.717, 6.698, 9.116, 12",\
                 "0.3346, 0.42, 0.675, 1.16, 1.969, 3.15, 4.72, 6.698, 9.118, 12");
        }
      }
    }
  }

