/*
 * 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__invz_1) {
    area : 37.318400 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.2906, 0.2917, 0.3047, 0.3428, 0.4162, 0.5305, 0.6898, 0.8955, \
                  1.151, 1.457");
        }

        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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.2116, 0.2118, 0.2201, 0.2469, 0.2961, 0.3697, 0.4802, 0.6303, \
                  0.8204, 1.052");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.1276, 0.1279, 0.1357, 0.1582, 0.1997, 0.2621, 0.3475, 0.4567, \
                  0.5913, 0.7526");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.02715, 0.02717, 0.03254, 0.04979, 0.08419, 0.1379, 0.2119, 0.3078, \
                  0.4266, 0.5697");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.002761 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 0.208 ;
      max_transition : 3.4 ;
      min_capacitance : 0.003761 ;
      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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.003761, 0.00517, 0.01012, 0.01957, 0.03429, 0.05495, 0.08214, 0.1164, 0.1582, 0.208");
          values("0.2577, 0.2558, 0.2508, 0.2455, 0.2416, 0.2388, 0.2367, 0.235, 0.2337, 0.2327",\
                 "0.2584, 0.2565, 0.2513, 0.2464, 0.2426, 0.2396, 0.2376, 0.2359, 0.2346, 0.2337",\
                 "0.2694, 0.2675, 0.2628, 0.2579, 0.2542, 0.2516, 0.2497, 0.248, 0.2469, 0.246",\
                 "0.2981, 0.2966, 0.2927, 0.2888, 0.2859, 0.2838, 0.2822, 0.281, 0.2799, 0.2791",\
                 "0.3477, 0.3467, 0.3443, 0.3417, 0.3398, 0.3385, 0.3375, 0.3366, 0.336, 0.3354",\
                 "0.4255, 0.4247, 0.4232, 0.4216, 0.4207, 0.4197, 0.4191, 0.4186, 0.4182, 0.4179",\
                 "0.5335, 0.533, 0.5319, 0.5308, 0.5302, 0.5299, 0.5295, 0.5291, 0.5289, 0.5287",\
                 "0.6723, 0.6719, 0.6712, 0.6705, 0.67, 0.6698, 0.6696, 0.6695, 0.6693, 0.6692",\
                 "0.843, 0.8428, 0.842, 0.8415, 0.8413, 0.8412, 0.841, 0.841, 0.8409, 0.8408",\
                 "1.047, 1.047, 1.046, 1.046, 1.046, 1.046, 1.046, 1.045, 1.045, 1.045");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.003761, 0.00517, 0.01012, 0.01957, 0.03429, 0.05495, 0.08214, 0.1164, 0.1582, 0.208");
          values("0.1416, 0.1406, 0.1388, 0.1376, 0.1373, 0.1372, 0.1373, 0.1379, 0.1385, 0.1398",\
                 "0.1415, 0.1405, 0.1386, 0.1377, 0.1375, 0.137, 0.1374, 0.1379, 0.1387, 0.1398",\
                 "0.1501, 0.1491, 0.1474, 0.1465, 0.1464, 0.1459, 0.1464, 0.1471, 0.1475, 0.148",\
                 "0.1808, 0.1798, 0.1782, 0.1775, 0.1777, 0.1778, 0.1781, 0.1789, 0.1797, 0.1799",\
                 "0.2438, 0.2427, 0.2414, 0.2416, 0.2415, 0.2416, 0.2424, 0.2434, 0.2446, 0.2454",\
                 "0.3451, 0.3444, 0.3427, 0.3422, 0.3432, 0.3437, 0.3439, 0.3449, 0.3458, 0.3466",\
                 "0.4865, 0.4862, 0.4848, 0.484, 0.484, 0.4857, 0.4871, 0.4882, 0.4881, 0.4896",\
                 "0.6707, 0.6703, 0.6693, 0.6684, 0.6678, 0.6688, 0.6711, 0.6728, 0.6735, 0.6738",\
                 "0.8991, 0.8991, 0.8985, 0.8975, 0.8971, 0.8971, 0.8984, 0.9017, 0.9042, 0.905",\
                 "1.174, 1.175, 1.174, 1.174, 1.173, 1.172, 1.174, 1.175, 1.179, 1.181");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.003761, 0.00517, 0.01012, 0.01957, 0.03429, 0.05495, 0.08214, 0.1164, 0.1582, 0.208");
          values("0.4178, 0.4136, 0.4036, 0.394, 0.3869, 0.382, 0.3785, 0.376, 0.3741, 0.3726",\
                 "0.4179, 0.4136, 0.4037, 0.394, 0.3869, 0.382, 0.3785, 0.376, 0.3742, 0.3726",\
                 "0.4236, 0.4193, 0.4092, 0.3997, 0.3926, 0.3877, 0.3843, 0.3817, 0.3798, 0.3784",\
                 "0.4435, 0.4391, 0.4292, 0.4195, 0.4123, 0.4073, 0.4038, 0.4013, 0.3993, 0.398",\
                 "0.4835, 0.4793, 0.4688, 0.4588, 0.4516, 0.4466, 0.4429, 0.4402, 0.4383, 0.4368",\
                 "0.5465, 0.5421, 0.5314, 0.521, 0.5132, 0.5076, 0.5038, 0.501, 0.4988, 0.4974",\
                 "0.634, 0.6294, 0.618, 0.6069, 0.5985, 0.5928, 0.5887, 0.5856, 0.5833, 0.5816",\
                 "0.747, 0.7419, 0.7299, 0.7179, 0.7088, 0.7025, 0.6979, 0.6947, 0.6922, 0.6904",\
                 "0.8858, 0.8806, 0.868, 0.855, 0.8452, 0.8381, 0.8332, 0.8297, 0.8271, 0.8251",\
                 "1.053, 1.048, 1.034, 1.02, 1.009, 1.002, 0.9963, 0.9925, 0.9897, 0.9874");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.003761, 0.00517, 0.01012, 0.01957, 0.03429, 0.05495, 0.08214, 0.1164, 0.1582, 0.208");
          values("0.3512, 0.3484, 0.3427, 0.3379, 0.3357, 0.3345, 0.3345, 0.3351, 0.3361, 0.3363",\
                 "0.3514, 0.3488, 0.3429, 0.338, 0.3357, 0.3346, 0.3346, 0.3352, 0.3357, 0.3374",\
                 "0.3594, 0.3568, 0.351, 0.3461, 0.3437, 0.3428, 0.3428, 0.3429, 0.3437, 0.3446",\
                 "0.3849, 0.3819, 0.376, 0.371, 0.3687, 0.3673, 0.3673, 0.3678, 0.3682, 0.3693",\
                 "0.4328, 0.4298, 0.4235, 0.418, 0.4154, 0.4138, 0.4135, 0.4141, 0.4144, 0.4155",\
                 "0.5061, 0.5027, 0.4966, 0.4909, 0.487, 0.4851, 0.4844, 0.4849, 0.4853, 0.4865",\
                 "0.6065, 0.603, 0.5954, 0.5892, 0.5852, 0.5822, 0.581, 0.5808, 0.581, 0.5822",\
                 "0.7349, 0.7312, 0.7229, 0.7153, 0.7099, 0.7078, 0.7064, 0.7057, 0.7057, 0.7054",\
                 "0.8932, 0.8898, 0.8806, 0.8711, 0.8648, 0.8614, 0.8611, 0.8605, 0.8598, 0.8599",\
                 "1.083, 1.079, 1.069, 1.059, 1.051, 1.047, 1.044, 1.044, 1.045, 1.045");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.15, 0.157, 0.18, 0.227, 0.295, 0.373, 0.461, 0.559, 0.667, 0.786");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.226, 0.231, 0.255, 0.302, 0.368, 0.447, 0.536, 0.637, 0.751, \
                  0.876");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.003761, 0.00517, 0.01012, 0.01957, 0.03429, 0.05495, 0.08214, 0.1164, 0.1582, 0.208");
          values("0.1599, 0.1781, 0.2295, 0.307, 0.4091, 0.5372, 0.695, 0.8877, 1.12, 1.396",\
                 "0.1641, 0.1822, 0.2334, 0.3109, 0.4131, 0.5411, 0.6988, 0.8914, 1.124, 1.4",\
                 "0.1816, 0.1994, 0.2502, 0.3275, 0.4295, 0.5574, 0.7152, 0.9078, 1.14, 1.416",\
                 "0.2087, 0.2266, 0.2772, 0.3543, 0.456, 0.5838, 0.7415, 0.9341, 1.167, 1.442",\
                 "0.2265, 0.2458, 0.2992, 0.3779, 0.4797, 0.6073, 0.765, 0.9577, 1.19, 1.466",\
                 "0.2315, 0.252, 0.3069, 0.3854, 0.4863, 0.613, 0.77, 0.9625, 1.195, 1.471",\
                 "0.2238, 0.2457, 0.3022, 0.3808, 0.4809, 0.6066, 0.7626, 0.9545, 1.186, 1.462",\
                 "0.2026, 0.2263, 0.2853, 0.3648, 0.4651, 0.5904, 0.7461, 0.9375, 1.169, 1.445",\
                 "0.1669, 0.1929, 0.2549, 0.3359, 0.4369, 0.5624, 0.7181, 0.9094, 1.141, 1.417",\
                 "0.1167, 0.1447, 0.2109, 0.294, 0.3962, 0.5222, 0.6781, 0.8696, 1.101, 1.377");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.003761, 0.00517, 0.01012, 0.01957, 0.03429, 0.05495, 0.08214, 0.1164, 0.1582, 0.208");
          values("0.1522, 0.1713, 0.2276, 0.3201, 0.4538, 0.6373, 0.8781, 1.181, 1.55, 1.993",\
                 "0.1552, 0.1743, 0.2305, 0.3231, 0.4568, 0.6404, 0.881, 1.184, 1.555, 1.996",\
                 "0.1673, 0.1865, 0.243, 0.3356, 0.4695, 0.653, 0.8938, 1.197, 1.567, 2.009",\
                 "0.1818, 0.2026, 0.2616, 0.3556, 0.49, 0.6739, 0.9143, 1.218, 1.588, 2.029",\
                 "0.1884, 0.2121, 0.2766, 0.3739, 0.5101, 0.6945, 0.9353, 1.238, 1.609, 2.05",\
                 "0.1813, 0.2095, 0.283, 0.3872, 0.5272, 0.7131, 0.9542, 1.258, 1.628, 2.069",\
                 "0.158, 0.1916, 0.277, 0.3913, 0.5381, 0.7285, 0.9715, 1.275, 1.645, 2.087",\
                 "0.1163, 0.1565, 0.256, 0.3835, 0.5391, 0.7366, 0.985, 1.291, 1.661, 2.102",\
                 "0.0534, 0.1021, 0.2179, 0.3622, 0.5284, 0.734, 0.9899, 1.302, 1.675, 2.117",\
                 "-0.0318, 0.0259, 0.1614, 0.325, 0.5049, 0.7192, 0.9836, 1.304, 1.685, 2.13");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.003761, 0.00517, 0.01012, 0.01957, 0.03429, 0.05495, 0.08214, 0.1164, 0.1582, 0.208");
          values("0.1026, 0.119, 0.173, 0.2643, 0.3957, 0.575, 0.815, 1.124, 1.511, 1.978",\
                 "0.1019, 0.1187, 0.1728, 0.2639, 0.3955, 0.5752, 0.8134, 1.125, 1.511, 1.978",\
                 "0.0995, 0.1166, 0.1714, 0.2628, 0.3948, 0.5748, 0.8149, 1.124, 1.511, 1.978",\
                 "0.09932, 0.1155, 0.1689, 0.2606, 0.3926, 0.5736, 0.814, 1.125, 1.51, 1.978",\
                 "0.1071, 0.1226, 0.1744, 0.2619, 0.3914, 0.5718, 0.8135, 1.123, 1.511, 1.976",\
                 "0.115, 0.1288, 0.1758, 0.2601, 0.3878, 0.567, 0.8096, 1.121, 1.509, 1.978",\
                 "0.1251, 0.137, 0.1784, 0.2586, 0.3844, 0.5628, 0.8052, 1.117, 1.505, 1.977",\
                 "0.1378, 0.148, 0.184, 0.2604, 0.384, 0.5616, 0.8024, 1.115, 1.504, 1.972",\
                 "0.1506, 0.1598, 0.1906, 0.2636, 0.3858, 0.5624, 0.8032, 1.116, 1.505, 1.971",\
                 "0.167, 0.1736, 0.2006, 0.2694, 0.3892, 0.5638, 0.8044, 1.117, 1.504, 1.971");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.003761, 0.00517, 0.01012, 0.01957, 0.03429, 0.05495, 0.08214, 0.1164, 0.1582, 0.208");
          values("0.1065, 0.1286, 0.2028, 0.346, 0.5752, 0.9061, 1.348, 1.904, 2.584, 3.394",\
                 "0.1067, 0.1285, 0.2027, 0.346, 0.5751, 0.9062, 1.348, 1.904, 2.587, 3.394",\
                 "0.1077, 0.1294, 0.2031, 0.3461, 0.5753, 0.9059, 1.348, 1.903, 2.584, 3.394",\
                 "0.1155, 0.1369, 0.2083, 0.3481, 0.576, 0.9064, 1.347, 1.903, 2.587, 3.396",\
                 "0.1308, 0.1522, 0.2203, 0.3559, 0.5798, 0.9073, 1.348, 1.903, 2.583, 3.401",\
                 "0.1555, 0.1759, 0.242, 0.3717, 0.5892, 0.9128, 1.348, 1.904, 2.583, 3.393",\
                 "0.1857, 0.2063, 0.2724, 0.3962, 0.6086, 0.9244, 1.355, 1.909, 2.589, 3.396",\
                 "0.2258, 0.2448, 0.3096, 0.4272, 0.6358, 0.9492, 1.373, 1.915, 2.589, 3.396",\
                 "0.2742, 0.2916, 0.3542, 0.4686, 0.6674, 0.9794, 1.403, 1.94, 2.601, 3.405",\
                 "0.3318, 0.348, 0.405, 0.5182, 0.7052, 1.014, 1.44, 1.978, 2.632, 3.42");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.003761, 0.00517, 0.01012, 0.01957, 0.03429, 0.05495, 0.08214, 0.1164, 0.1582, 0.208");
          values("0.3313, 0.3487, 0.3995, 0.4773, 0.5797, 0.7079, 0.8656, 1.058, 1.29, 1.566",\
                 "0.3345, 0.3519, 0.4028, 0.4805, 0.583, 0.7112, 0.8688, 1.061, 1.294, 1.569",\
                 "0.3474, 0.3647, 0.4155, 0.4932, 0.5957, 0.7239, 0.8816, 1.074, 1.306, 1.582",\
                 "0.3634, 0.3807, 0.4314, 0.509, 0.6116, 0.7398, 0.8975, 1.09, 1.322, 1.598",\
                 "0.3743, 0.3916, 0.4422, 0.52, 0.6224, 0.7506, 0.9084, 1.101, 1.333, 1.609",\
                 "0.3771, 0.3949, 0.4456, 0.5234, 0.6257, 0.754, 0.9118, 1.104, 1.336, 1.612",\
                 "0.3709, 0.3883, 0.4391, 0.517, 0.6197, 0.7482, 0.906, 1.099, 1.331, 1.606",\
                 "0.3531, 0.3706, 0.4215, 0.4995, 0.6025, 0.7312, 0.8891, 1.082, 1.314, 1.589",\
                 "0.3231, 0.3405, 0.3917, 0.47, 0.5732, 0.702, 0.8601, 1.053, 1.285, 1.56",\
                 "0.2804, 0.298, 0.3493, 0.4281, 0.5316, 0.6607, 0.819, 1.012, 1.244, 1.519");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.003761, 0.00517, 0.01012, 0.01957, 0.03429, 0.05495, 0.08214, 0.1164, 0.1582, 0.208");
          values("0.3745, 0.3926, 0.4469, 0.5379, 0.6711, 0.8542, 1.095, 1.397, 1.768, 2.209",\
                 "0.3799, 0.398, 0.4523, 0.5435, 0.6763, 0.8592, 1.1, 1.402, 1.773, 2.213",\
                 "0.4032, 0.4215, 0.4758, 0.5669, 0.6998, 0.883, 1.123, 1.427, 1.797, 2.238",\
                 "0.4492, 0.4672, 0.5215, 0.6125, 0.7454, 0.9285, 1.169, 1.472, 1.842, 2.284",\
                 "0.5128, 0.5309, 0.585, 0.676, 0.8086, 0.9915, 1.232, 1.534, 1.904, 2.347",\
                 "0.591, 0.6089, 0.6632, 0.7537, 0.8863, 1.069, 1.309, 1.612, 1.982, 2.424",\
                 "0.682, 0.7002, 0.7544, 0.8447, 0.9769, 1.159, 1.399, 1.702, 2.072, 2.512",\
                 "0.7858, 0.8039, 0.8582, 0.9487, 1.08, 1.262, 1.502, 1.804, 2.174, 2.615",\
                 "0.9027, 0.9211, 0.9754, 1.066, 1.198, 1.379, 1.619, 1.92, 2.289, 2.73",\
                 "1.033, 1.052, 1.107, 1.197, 1.329, 1.51, 1.749, 2.051, 2.42, 2.86");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.003761, 0.00517, 0.01012, 0.01957, 0.03429, 0.05495, 0.08214, 0.1164, 0.1582, 0.208");
          values("0.1123, 0.1302, 0.1834, 0.2723, 0.4013, 0.5785, 0.8175, 1.126, 1.511, 1.979",\
                 "0.1123, 0.1302, 0.1834, 0.2723, 0.4011, 0.5783, 0.8172, 1.126, 1.51, 1.979",\
                 "0.1126, 0.1299, 0.1835, 0.2721, 0.4009, 0.5789, 0.8174, 1.126, 1.51, 1.979",\
                 "0.1122, 0.1301, 0.1835, 0.2725, 0.4013, 0.5789, 0.8173, 1.126, 1.51, 1.979",\
                 "0.1129, 0.1304, 0.1835, 0.2729, 0.4018, 0.5789, 0.8166, 1.126, 1.512, 1.976",\
                 "0.1145, 0.1325, 0.1856, 0.2744, 0.402, 0.5794, 0.817, 1.125, 1.512, 1.979",\
                 "0.1162, 0.1344, 0.1876, 0.2758, 0.4044, 0.5804, 0.8176, 1.125, 1.511, 1.979",\
                 "0.1186, 0.1368, 0.19, 0.278, 0.4056, 0.5826, 0.8184, 1.125, 1.51, 1.977",\
                 "0.1208, 0.139, 0.1918, 0.2802, 0.4082, 0.584, 0.8204, 1.127, 1.511, 1.976",\
                 "0.1238, 0.1418, 0.1958, 0.2828, 0.4106, 0.587, 0.8218, 1.13, 1.513, 1.976");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.003761, 0.00517, 0.01012, 0.01957, 0.03429, 0.05495, 0.08214, 0.1164, 0.1582, 0.208");
          values("0.1114, 0.1333, 0.2063, 0.3483, 0.576, 0.9064, 1.347, 1.904, 2.587, 3.396",\
                 "0.1115, 0.1333, 0.2066, 0.3481, 0.5763, 0.9059, 1.347, 1.903, 2.585, 3.395",\
                 "0.1116, 0.1333, 0.2064, 0.3478, 0.5763, 0.9068, 1.347, 1.903, 2.583, 3.395",\
                 "0.1117, 0.1334, 0.2065, 0.3481, 0.5762, 0.9065, 1.347, 1.904, 2.584, 3.395",\
                 "0.1114, 0.1335, 0.2069, 0.3486, 0.5764, 0.9064, 1.348, 1.904, 2.584, 3.394",\
                 "0.1126, 0.1344, 0.2076, 0.349, 0.5764, 0.9066, 1.348, 1.904, 2.584, 3.394",\
                 "0.115, 0.136, 0.209, 0.3502, 0.5774, 0.9066, 1.347, 1.904, 2.587, 3.396",\
                 "0.1174, 0.1384, 0.2106, 0.351, 0.5778, 0.9074, 1.348, 1.907, 2.583, 3.395",\
                 "0.1196, 0.141, 0.2132, 0.3538, 0.5794, 0.9084, 1.348, 1.905, 2.584, 3.394",\
                 "0.1214, 0.1438, 0.2158, 0.3554, 0.581, 0.9102, 1.348, 1.906, 2.584, 3.397");
        }
      }
    }
  }

