/*
 * 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__invz_12) {
    area : 146.764800 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&!I" ;
      value : "0.0001855296" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&I" ;
      value : "0.000188712" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&!I" ;
      value : "0.0003588732" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&I" ;
      value : "0.000367344" ;
    }

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.3493, 0.348, 0.3569, 0.3896, 0.455, 0.5567, 0.6995, 0.887, 1.122, \
                  1.407");
        }

        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.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.1868, 0.1858, 0.1937, 0.2171, 0.2585, 0.3193, 0.4021, 0.5138, \
                  0.6651, 0.8561");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.4087, 0.4048, 0.4227, 0.4834, 0.5955, 0.7651, 0.9982, 1.299, \
                  1.67, 2.116");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.1602, 0.1594, 0.171, 0.2173, 0.3123, 0.4597, 0.6637, 0.9274, \
                  1.255, 1.648");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.03054 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 5.353 ;
      max_transition : 4.4 ;
      min_capacitance : 0.03154 ;
      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.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.03154, 0.06827, 0.1972, 0.4434, 0.827, 1.365, 2.073, 2.966, 4.055, 5.353");
          values("0.788, 0.7876, 0.7878, 0.7876, 0.7873, 0.7876, 0.7878, 0.7879, 0.788, 0.788",\
                 "0.7888, 0.7886, 0.7882, 0.7882, 0.7879, 0.7882, 0.7885, 0.7886, 0.7887, 0.7888",\
                 "0.8017, 0.8017, 0.8016, 0.8012, 0.8013, 0.8015, 0.8017, 0.8019, 0.8019, 0.802",\
                 "0.8338, 0.8335, 0.8333, 0.8329, 0.8327, 0.833, 0.8331, 0.8332, 0.8333, 0.8333",\
                 "0.8876, 0.8876, 0.8874, 0.887, 0.8867, 0.8868, 0.887, 0.8871, 0.8871, 0.8871",\
                 "0.9644, 0.9647, 0.9647, 0.9642, 0.9643, 0.9643, 0.9641, 0.9644, 0.9644, 0.9644",\
                 "1.068, 1.068, 1.068, 1.067, 1.067, 1.067, 1.068, 1.068, 1.067, 1.067",\
                 "1.197, 1.197, 1.197, 1.196, 1.196, 1.196, 1.196, 1.197, 1.197, 1.196",\
                 "1.354, 1.354, 1.354, 1.353, 1.352, 1.352, 1.353, 1.353, 1.353, 1.353",\
                 "1.539, 1.539, 1.539, 1.539, 1.538, 1.538, 1.539, 1.539, 1.539, 1.539");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.03154, 0.06827, 0.1972, 0.4434, 0.827, 1.365, 2.073, 2.966, 4.055, 5.353");
          values("0.723, 0.7233, 0.7221, 0.7246, 0.7271, 0.729, 0.7388, 0.7579, 0.7685, 0.7841",\
                 "0.722, 0.7223, 0.7225, 0.7224, 0.726, 0.7297, 0.7421, 0.7543, 0.7793, 0.7769",\
                 "0.7288, 0.7282, 0.729, 0.7285, 0.7311, 0.7344, 0.7468, 0.7615, 0.7793, 0.7949",\
                 "0.7554, 0.756, 0.7569, 0.757, 0.7602, 0.7632, 0.7759, 0.7903, 0.7973, 0.8345",\
                 "0.8097, 0.8104, 0.8119, 0.8185, 0.8185, 0.8233, 0.8353, 0.8479, 0.8621, 0.8921",\
                 "0.8996, 0.9027, 0.9014, 0.8981, 0.9132, 0.9112, 0.9203, 0.9343, 0.9557, 0.9713",\
                 "1.026, 1.028, 1.031, 1.028, 1.029, 1.045, 1.052, 1.06, 1.067, 1.083",\
                 "1.194, 1.194, 1.196, 1.198, 1.191, 1.202, 1.228, 1.237, 1.251, 1.256",\
                 "1.404, 1.405, 1.408, 1.41, 1.404, 1.404, 1.422, 1.456, 1.471, 1.457",\
                 "1.658, 1.659, 1.662, 1.663, 1.665, 1.664, 1.661, 1.683, 1.73, 1.731");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.03154, 0.06827, 0.1972, 0.4434, 0.827, 1.365, 2.073, 2.966, 4.055, 5.353");
          values("1.233, 1.25, 1.284, 1.308, 1.32, 1.327, 1.331, 1.333, 1.334, 1.335",\
                 "1.231, 1.248, 1.282, 1.306, 1.318, 1.324, 1.328, 1.331, 1.332, 1.333",\
                 "1.244, 1.26, 1.294, 1.318, 1.33, 1.337, 1.341, 1.343, 1.345, 1.346",\
                 "1.297, 1.312, 1.344, 1.368, 1.381, 1.388, 1.392, 1.395, 1.396, 1.397",\
                 "1.408, 1.421, 1.45, 1.473, 1.487, 1.495, 1.5, 1.502, 1.504, 1.505",\
                 "1.577, 1.589, 1.616, 1.639, 1.654, 1.662, 1.667, 1.67, 1.672, 1.674",\
                 "1.813, 1.822, 1.847, 1.87, 1.885, 1.895, 1.9, 1.903, 1.905, 1.907",\
                 "2.114, 2.122, 2.145, 2.168, 2.184, 2.193, 2.199, 2.203, 2.206, 2.207",\
                 "2.487, 2.494, 2.515, 2.537, 2.553, 2.564, 2.57, 2.575, 2.578, 2.58",\
                 "2.932, 2.938, 2.957, 2.98, 2.996, 3.007, 3.014, 3.019, 3.022, 3.025");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.03154, 0.06827, 0.1972, 0.4434, 0.827, 1.365, 2.073, 2.966, 4.055, 5.353");
          values("1.269, 1.286, 1.319, 1.343, 1.363, 1.375, 1.392, 1.41, 1.42, 1.447",\
                 "1.265, 1.282, 1.313, 1.339, 1.359, 1.373, 1.391, 1.406, 1.431, 1.436",\
                 "1.283, 1.3, 1.33, 1.356, 1.375, 1.389, 1.407, 1.424, 1.442, 1.461",\
                 "1.348, 1.365, 1.393, 1.42, 1.44, 1.454, 1.472, 1.489, 1.507, 1.526",\
                 "1.471, 1.485, 1.513, 1.538, 1.558, 1.577, 1.592, 1.619, 1.629, 1.659",\
                 "1.659, 1.672, 1.699, 1.728, 1.745, 1.76, 1.781, 1.799, 1.827, 1.839",\
                 "1.92, 1.934, 1.957, 1.974, 2.007, 2.024, 2.041, 2.058, 2.079, 2.109",\
                 "2.261, 2.272, 2.295, 2.314, 2.336, 2.366, 2.383, 2.4, 2.414, 2.426",\
                 "2.681, 2.691, 2.712, 2.73, 2.747, 2.772, 2.813, 2.828, 2.835, 2.844",\
                 "3.185, 3.195, 3.213, 3.23, 3.257, 3.275, 3.292, 3.332, 3.35, 3.358");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.343, 0.352, 0.381, 0.445, 0.549, 0.685, 0.842, 1.021, 1.223, \
                  1.445");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.283, 0.291, 0.323, 0.381, 0.454, 0.548, 0.66, 0.788, 0.933, \
                  1.097");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          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.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.03154, 0.06827, 0.1972, 0.4434, 0.827, 1.365, 2.073, 2.966, 4.055, 5.353");
          values("0.1479, 0.1821, 0.2608, 0.3654, 0.4925, 0.6469, 0.8366, 1.069, 1.351, 1.687",\
                 "0.1548, 0.189, 0.2676, 0.3722, 0.4993, 0.6537, 0.8435, 1.076, 1.358, 1.693",\
                 "0.18, 0.2142, 0.2927, 0.3972, 0.5243, 0.6788, 0.8686, 1.101, 1.383, 1.719",\
                 "0.2129, 0.2502, 0.332, 0.4379, 0.5656, 0.7204, 0.9103, 1.143, 1.425, 1.76",\
                 "0.2311, 0.2724, 0.3614, 0.4703, 0.5991, 0.7542, 0.9442, 1.177, 1.459, 1.794",\
                 "0.2322, 0.2756, 0.3663, 0.4759, 0.6048, 0.7599, 0.9498, 1.182, 1.464, 1.799",\
                 "0.2165, 0.2608, 0.3525, 0.463, 0.5923, 0.7475, 0.9374, 1.17, 1.452, 1.787",\
                 "0.1827, 0.2277, 0.3204, 0.4317, 0.5614, 0.717, 0.9071, 1.14, 1.421, 1.756",\
                 "0.1309, 0.1765, 0.2705, 0.3825, 0.513, 0.6688, 0.8589, 1.092, 1.373, 1.708",\
                 "0.0603, 0.1068, 0.2021, 0.315, 0.4459, 0.6021, 0.7924, 1.025, 1.307, 1.642");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.03154, 0.06827, 0.1972, 0.4434, 0.827, 1.365, 2.073, 2.966, 4.055, 5.353");
          values("0.1702, 0.2099, 0.2978, 0.4245, 0.6072, 0.8611, 1.195, 1.617, 2.131, 2.744",\
                 "0.1765, 0.2162, 0.3042, 0.4307, 0.6135, 0.8675, 1.201, 1.623, 2.137, 2.75",\
                 "0.1989, 0.2386, 0.3266, 0.4532, 0.6359, 0.8901, 1.224, 1.646, 2.159, 2.77",\
                 "0.2296, 0.2734, 0.3651, 0.4926, 0.6755, 0.9296, 1.264, 1.685, 2.199, 2.813",\
                 "0.2487, 0.2997, 0.4032, 0.5355, 0.7189, 0.9728, 1.307, 1.727, 2.243, 2.856",\
                 "0.2522, 0.3108, 0.4284, 0.5684, 0.7537, 1.007, 1.341, 1.762, 2.276, 2.89",\
                 "0.2383, 0.3047, 0.4384, 0.5898, 0.7781, 1.032, 1.366, 1.786, 2.3, 2.912",\
                 "0.2057, 0.2797, 0.4303, 0.5962, 0.7905, 1.046, 1.379, 1.8, 2.313, 2.925",\
                 "0.1539, 0.2351, 0.4019, 0.5849, 0.7876, 1.046, 1.38, 1.801, 2.314, 2.925",\
                 "0.0812, 0.1698, 0.3525, 0.5534, 0.7674, 1.03, 1.368, 1.789, 2.302, 2.914");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.03154, 0.06827, 0.1972, 0.4434, 0.827, 1.365, 2.073, 2.966, 4.055, 5.353");
          values("0.07138, 0.1031, 0.1812, 0.2933, 0.4426, 0.6509, 0.9353, 1.305, 1.764, 2.318",\
                 "0.07134, 0.1029, 0.1809, 0.2932, 0.4428, 0.6509, 0.9351, 1.305, 1.764, 2.318",\
                 "0.0712, 0.1028, 0.1809, 0.2927, 0.4423, 0.6513, 0.9351, 1.305, 1.766, 2.32",\
                 "0.08048, 0.1115, 0.1858, 0.2958, 0.4448, 0.6519, 0.9357, 1.305, 1.764, 2.318",\
                 "0.09078, 0.1253, 0.2, 0.3024, 0.4477, 0.6534, 0.9364, 1.306, 1.764, 2.319",\
                 "0.09808, 0.1319, 0.2036, 0.305, 0.4494, 0.6532, 0.9352, 1.305, 1.765, 2.318",\
                 "0.1036, 0.1354, 0.2058, 0.3066, 0.45, 0.6544, 0.9354, 1.303, 1.763, 2.318",\
                 "0.106, 0.138, 0.2084, 0.309, 0.4518, 0.6548, 0.9362, 1.304, 1.763, 2.315",\
                 "0.1088, 0.1408, 0.2108, 0.3108, 0.4532, 0.6564, 0.937, 1.305, 1.764, 2.315",\
                 "0.1122, 0.1438, 0.2134, 0.3132, 0.4548, 0.658, 0.9382, 1.305, 1.765, 2.316");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.03154, 0.06827, 0.1972, 0.4434, 0.827, 1.365, 2.073, 2.966, 4.055, 5.353");
          values("0.08038, 0.1149, 0.2082, 0.3892, 0.6928, 1.132, 1.713, 2.446, 3.343, 4.411",\
                 "0.08032, 0.1149, 0.2082, 0.3889, 0.6937, 1.131, 1.712, 2.446, 3.339, 4.405",\
                 "0.08112, 0.115, 0.2081, 0.3891, 0.6935, 1.131, 1.712, 2.447, 3.34, 4.407",\
                 "0.0924, 0.1247, 0.2124, 0.39, 0.6927, 1.132, 1.713, 2.446, 3.342, 4.41",\
                 "0.108, 0.146, 0.2309, 0.3975, 0.6949, 1.132, 1.712, 2.443, 3.342, 4.41",\
                 "0.1251, 0.1689, 0.256, 0.4106, 0.6986, 1.132, 1.713, 2.443, 3.34, 4.408",\
                 "0.1428, 0.1922, 0.2882, 0.4316, 0.7062, 1.135, 1.714, 2.444, 3.335, 4.402",\
                 "0.1614, 0.216, 0.3222, 0.4618, 0.72, 1.139, 1.715, 2.444, 3.34, 4.401",\
                 "0.1784, 0.2394, 0.3594, 0.4966, 0.7416, 1.15, 1.719, 2.446, 3.335, 4.403",\
                 "0.198, 0.2626, 0.396, 0.5392, 0.7688, 1.167, 1.731, 2.452, 3.337, 4.399");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.03154, 0.06827, 0.1972, 0.4434, 0.827, 1.365, 2.073, 2.966, 4.055, 5.353");
          values("0.2513, 0.2869, 0.3674, 0.4723, 0.5994, 0.7537, 0.9436, 1.176, 1.458, 1.794",\
                 "0.2575, 0.2932, 0.3736, 0.4786, 0.6056, 0.76, 0.9497, 1.183, 1.464, 1.8",\
                 "0.2772, 0.3129, 0.3932, 0.4982, 0.6252, 0.7796, 0.9694, 1.202, 1.484, 1.82",\
                 "0.2948, 0.3304, 0.4108, 0.5158, 0.6429, 0.7973, 0.987, 1.22, 1.502, 1.837",\
                 "0.3038, 0.3395, 0.4197, 0.525, 0.6522, 0.8067, 0.9966, 1.23, 1.511, 1.847",\
                 "0.3011, 0.3369, 0.4175, 0.523, 0.6503, 0.805, 0.9949, 1.228, 1.51, 1.845",\
                 "0.2851, 0.3208, 0.4017, 0.5075, 0.635, 0.7898, 0.9798, 1.213, 1.495, 1.83",\
                 "0.2542, 0.2902, 0.3711, 0.4772, 0.6049, 0.76, 0.9501, 1.183, 1.465, 1.8",\
                 "0.2076, 0.2437, 0.3251, 0.4314, 0.5594, 0.7145, 0.9046, 1.138, 1.42, 1.755",\
                 "0.1436, 0.1799, 0.2617, 0.3682, 0.4964, 0.6517, 0.842, 1.075, 1.357, 1.693");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.03154, 0.06827, 0.1972, 0.4434, 0.827, 1.365, 2.073, 2.966, 4.055, 5.353");
          values("0.3083, 0.3487, 0.4375, 0.5654, 0.7492, 1.004, 1.339, 1.76, 2.274, 2.886",\
                 "0.3154, 0.3559, 0.4446, 0.5724, 0.7563, 1.011, 1.345, 1.767, 2.281, 2.894",\
                 "0.3473, 0.3876, 0.4765, 0.6042, 0.788, 1.043, 1.378, 1.799, 2.313, 2.925",\
                 "0.4046, 0.4451, 0.5339, 0.6617, 0.8455, 1.1, 1.435, 1.857, 2.371, 2.983",\
                 "0.4796, 0.5199, 0.6088, 0.7367, 0.9206, 1.176, 1.51, 1.932, 2.447, 3.06",\
                 "0.5724, 0.613, 0.7027, 0.8304, 1.014, 1.269, 1.604, 2.025, 2.541, 3.152",\
                 "0.6833, 0.7238, 0.8132, 0.9413, 1.125, 1.38, 1.715, 2.136, 2.651, 3.265",\
                 "0.8125, 0.8534, 0.9433, 1.071, 1.256, 1.511, 1.845, 2.266, 2.78, 3.393",\
                 "0.9607, 1.002, 1.092, 1.221, 1.405, 1.66, 1.995, 2.416, 2.93, 3.542",\
                 "1.128, 1.17, 1.261, 1.39, 1.574, 1.829, 2.164, 2.585, 3.099, 3.711");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.03154, 0.06827, 0.1972, 0.4434, 0.827, 1.365, 2.073, 2.966, 4.055, 5.353");
          values("0.0695, 0.1007, 0.1781, 0.2901, 0.4405, 0.6499, 0.9347, 1.305, 1.765, 2.319",\
                 "0.06946, 0.1007, 0.178, 0.29, 0.4405, 0.6491, 0.9347, 1.305, 1.765, 2.32",\
                 "0.06956, 0.1008, 0.1782, 0.2901, 0.4414, 0.65, 0.9347, 1.304, 1.764, 2.32",\
                 "0.0698, 0.1011, 0.1786, 0.2902, 0.4409, 0.6499, 0.9346, 1.306, 1.765, 2.319",\
                 "0.07026, 0.1018, 0.1789, 0.2905, 0.4407, 0.6498, 0.9334, 1.305, 1.765, 2.317",\
                 "0.07112, 0.1025, 0.1798, 0.2918, 0.4414, 0.6496, 0.9334, 1.305, 1.765, 2.317",\
                 "0.072, 0.1036, 0.1804, 0.292, 0.442, 0.6506, 0.9336, 1.303, 1.765, 2.319",\
                 "0.073, 0.1046, 0.1814, 0.2924, 0.4426, 0.6514, 0.9344, 1.304, 1.763, 2.316",\
                 "0.0734, 0.1054, 0.1824, 0.293, 0.4432, 0.651, 0.9346, 1.305, 1.764, 2.317",\
                 "0.0746, 0.1064, 0.1832, 0.2944, 0.444, 0.6518, 0.936, 1.305, 1.765, 2.319");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.03154, 0.06827, 0.1972, 0.4434, 0.827, 1.365, 2.073, 2.966, 4.055, 5.353");
          values("0.07608, 0.11, 0.2046, 0.3874, 0.6934, 1.131, 1.713, 2.446, 3.342, 4.408",\
                 "0.07602, 0.1102, 0.2042, 0.3874, 0.6931, 1.132, 1.712, 2.447, 3.339, 4.403",\
                 "0.07612, 0.1102, 0.2045, 0.3875, 0.6933, 1.132, 1.713, 2.446, 3.344, 4.41",\
                 "0.07646, 0.1105, 0.205, 0.3876, 0.6925, 1.132, 1.713, 2.447, 3.343, 4.409",\
                 "0.0772, 0.1106, 0.2049, 0.3874, 0.6932, 1.131, 1.712, 2.446, 3.343, 4.411",\
                 "0.0778, 0.1118, 0.2056, 0.3882, 0.6928, 1.131, 1.713, 2.446, 3.342, 4.409",\
                 "0.0784, 0.1124, 0.2064, 0.3884, 0.6928, 1.132, 1.712, 2.443, 3.338, 4.408",\
                 "0.0794, 0.1134, 0.2078, 0.3888, 0.6938, 1.132, 1.711, 2.442, 3.337, 4.398",\
                 "0.0814, 0.115, 0.2088, 0.3894, 0.6938, 1.132, 1.712, 2.441, 3.335, 4.397",\
                 "0.0844, 0.117, 0.2092, 0.3902, 0.6944, 1.133, 1.712, 2.443, 3.333, 4.4");
        }
      }
    }
  }

