/*
 * 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_2) {
    area : 32.928000 ;

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

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

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

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

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

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

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

    pin(EN) {
      capacitance : 0.008332 ;
      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.2822, 0.282, 0.2975, 0.3435, 0.4242, 0.5444, 0.7232, 0.9632, \
                  1.266, 1.634");
        }

        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.3952, 0.3961, 0.4179, 0.4833, 0.6055, 0.7951, 1.057, 1.396, \
                  1.815, 2.318");
        }

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

    pin(I) {
      capacitance : 0.004738 ;
      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.04763, 0.04767, 0.04764, 0.0476, 0.04766, 0.04768, 0.04771, \
                  0.04763, 0.04767, 0.04769");
        }

        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.04749, -0.04753, -0.04746, -0.04748, -0.04747, -0.0475, -0.04754, \
                  -0.0475, -0.04752, -0.04757");
        }
      }
    }

    pin(Z) {
      capacitance : 0.00337 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 0.4433 ;
      max_transition : 3.4 ;
      min_capacitance : 0.00437 ;
      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.00437, 0.0074, 0.01803, 0.03834, 0.06998, 0.1144, 0.1728, 0.2464, 0.3362, 0.4433");
          values("0.403, 0.3978, 0.386, 0.3758, 0.3691, 0.3644, 0.3612, 0.3586, 0.3568, 0.3555",\
                 "0.4051, 0.3998, 0.388, 0.378, 0.3714, 0.3668, 0.3635, 0.3611, 0.3593, 0.358",\
                 "0.4226, 0.4177, 0.4069, 0.3979, 0.3919, 0.3878, 0.3849, 0.3826, 0.381, 0.3798",\
                 "0.4615, 0.458, 0.4499, 0.4435, 0.4395, 0.4369, 0.4349, 0.4333, 0.4322, 0.4313",\
                 "0.5367, 0.5346, 0.5298, 0.5262, 0.5239, 0.5224, 0.5213, 0.5206, 0.52, 0.5195",\
                 "0.6584, 0.657, 0.6539, 0.6519, 0.6508, 0.6501, 0.6495, 0.649, 0.6484, 0.6482",\
                 "0.8275, 0.8264, 0.8243, 0.8228, 0.8222, 0.8219, 0.8217, 0.8214, 0.8211, 0.821",\
                 "1.044, 1.043, 1.041, 1.041, 1.04, 1.04, 1.04, 1.039, 1.039, 1.039",\
                 "1.309, 1.309, 1.307, 1.306, 1.306, 1.306, 1.306, 1.306, 1.306, 1.306",\
                 "1.625, 1.625, 1.624, 1.623, 1.623, 1.623, 1.623, 1.623, 1.623, 1.623");
        }

        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.00437, 0.0074, 0.01803, 0.03834, 0.06998, 0.1144, 0.1728, 0.2464, 0.3362, 0.4433");
          values("0.2382, 0.2347, 0.2301, 0.228, 0.2271, 0.2268, 0.2275, 0.2287, 0.2309, 0.2329",\
                 "0.2388, 0.2352, 0.2307, 0.2286, 0.2278, 0.2276, 0.2283, 0.2293, 0.2309, 0.234",\
                 "0.2544, 0.2511, 0.2468, 0.2444, 0.2441, 0.2441, 0.2446, 0.2469, 0.248, 0.2516",\
                 "0.305, 0.3021, 0.2987, 0.2973, 0.2974, 0.2977, 0.2991, 0.3008, 0.3024, 0.3049",\
                 "0.4083, 0.4066, 0.4022, 0.403, 0.4038, 0.4036, 0.4055, 0.4069, 0.4091, 0.4116",\
                 "0.5716, 0.5707, 0.5679, 0.5663, 0.5686, 0.5705, 0.5716, 0.5719, 0.5752, 0.5772",\
                 "0.7995, 0.7994, 0.7981, 0.7962, 0.7967, 0.8001, 0.8037, 0.8051, 0.8062, 0.8082",\
                 "1.095, 1.096, 1.095, 1.094, 1.094, 1.095, 1.1, 1.105, 1.106, 1.107",\
                 "1.463, 1.464, 1.464, 1.464, 1.463, 1.463, 1.465, 1.472, 1.478, 1.48",\
                 "1.906, 1.907, 1.908, 1.908, 1.907, 1.907, 1.908, 1.912, 1.919, 1.927");
        }
      }

      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.00437, 0.0074, 0.01803, 0.03834, 0.06998, 0.1144, 0.1728, 0.2464, 0.3362, 0.4433");
          values("0.6646, 0.6532, 0.6295, 0.6104, 0.5973, 0.5889, 0.5833, 0.579, 0.5759, 0.5741",\
                 "0.6634, 0.6519, 0.6282, 0.609, 0.5959, 0.5876, 0.5818, 0.5779, 0.5749, 0.5726",\
                 "0.6696, 0.6582, 0.6341, 0.6147, 0.6015, 0.5932, 0.5874, 0.5835, 0.58, 0.5779",\
                 "0.7107, 0.6983, 0.6716, 0.6489, 0.634, 0.6244, 0.6178, 0.6131, 0.6097, 0.6071",\
                 "0.8086, 0.7939, 0.761, 0.7307, 0.7099, 0.6962, 0.6865, 0.6797, 0.675, 0.6715",\
                 "0.9641, 0.947, 0.907, 0.8667, 0.8362, 0.8157, 0.8011, 0.7908, 0.7834, 0.778",\
                 "1.174, 1.154, 1.107, 1.057, 1.016, 0.9863, 0.9652, 0.9499, 0.9389, 0.9306",\
                 "1.438, 1.417, 1.364, 1.302, 1.251, 1.211, 1.182, 1.161, 1.145, 1.132",\
                 "1.76, 1.737, 1.678, 1.607, 1.543, 1.492, 1.454, 1.426, 1.404, 1.387",\
                 "2.14, 2.116, 2.052, 1.972, 1.897, 1.834, 1.785, 1.748, 1.719, 1.697");
        }

        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.00437, 0.0074, 0.01803, 0.03834, 0.06998, 0.1144, 0.1728, 0.2464, 0.3362, 0.4433");
          values("0.2988, 0.2918, 0.2816, 0.276, 0.2758, 0.2765, 0.2778, 0.2801, 0.2828, 0.2864",\
                 "0.2983, 0.2912, 0.2804, 0.2755, 0.275, 0.2757, 0.2769, 0.279, 0.2817, 0.2853",\
                 "0.3011, 0.2941, 0.2829, 0.2775, 0.2763, 0.2769, 0.2779, 0.2812, 0.2834, 0.2859",\
                 "0.3337, 0.3251, 0.3108, 0.301, 0.2967, 0.2958, 0.296, 0.2977, 0.2999, 0.3029",\
                 "0.4101, 0.399, 0.3794, 0.3643, 0.3538, 0.3484, 0.3461, 0.3466, 0.3483, 0.3486",\
                 "0.533, 0.5197, 0.4933, 0.4688, 0.4535, 0.4425, 0.4354, 0.4319, 0.4313, 0.4305",\
                 "0.7059, 0.6896, 0.6565, 0.624, 0.5982, 0.5838, 0.5713, 0.5639, 0.56, 0.5576",\
                 "0.9299, 0.9127, 0.8723, 0.8302, 0.7967, 0.7732, 0.7572, 0.7443, 0.7366, 0.7297",\
                 "1.208, 1.189, 1.142, 1.094, 1.05, 1.016, 0.992, 0.9764, 0.9637, 0.9558",\
                 "1.541, 1.52, 1.467, 1.411, 1.358, 1.316, 1.281, 1.256, 1.241, 1.231");
        }
      }

      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.16, 0.167, 0.19, 0.24, 0.316, 0.409, 0.519, 0.643, 0.785, 0.944");
        }

        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.189, 0.193, 0.219, 0.27, 0.342, 0.43, 0.534, 0.654, 0.792, 0.949");
        }

        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.00437, 0.0074, 0.01803, 0.03834, 0.06998, 0.1144, 0.1728, 0.2464, 0.3362, 0.4433");
          values("0.1152, 0.1363, 0.1915, 0.2727, 0.379, 0.5127, 0.6792, 0.8845, 1.133, 1.43",\
                 "0.1196, 0.1406, 0.1958, 0.2769, 0.3831, 0.5168, 0.6833, 0.8886, 1.138, 1.434",\
                 "0.1359, 0.1566, 0.2113, 0.2921, 0.3982, 0.5318, 0.6983, 0.9037, 1.153, 1.449",\
                 "0.1543, 0.1762, 0.2321, 0.3129, 0.4187, 0.5522, 0.7187, 0.9242, 1.173, 1.47",\
                 "0.1577, 0.1816, 0.2409, 0.3232, 0.4284, 0.5614, 0.7277, 0.9331, 1.182, 1.478",\
                 "0.1452, 0.1708, 0.2312, 0.3129, 0.4171, 0.549, 0.7145, 0.9194, 1.169, 1.465",\
                 "0.1165, 0.1438, 0.2056, 0.2873, 0.3911, 0.5224, 0.6875, 0.8919, 1.14, 1.437",\
                 "0.0703, 0.0996, 0.1636, 0.246, 0.3496, 0.4807, 0.6456, 0.85, 1.099, 1.394",\
                 "0.0056, 0.0376, 0.1041, 0.1874, 0.2916, 0.4228, 0.5876, 0.7922, 1.041, 1.337",\
                 "-0.0794, -0.0444, 0.0258, 0.1107, 0.2155, 0.347, 0.512, 0.7165, 0.9653, 1.261");
        }

        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.00437, 0.0074, 0.01803, 0.03834, 0.06998, 0.1144, 0.1728, 0.2464, 0.3362, 0.4433");
          values("0.1087, 0.1307, 0.1885, 0.2799, 0.4128, 0.5966, 0.8378, 1.143, 1.513, 1.958",\
                 "0.1119, 0.1338, 0.1916, 0.283, 0.416, 0.5997, 0.8409, 1.146, 1.517, 1.961",\
                 "0.1223, 0.145, 0.2034, 0.2952, 0.4281, 0.6119, 0.8532, 1.158, 1.529, 1.973",\
                 "0.1271, 0.1526, 0.2154, 0.3091, 0.4427, 0.6267, 0.8685, 1.173, 1.545, 1.989",\
                 "0.1176, 0.1478, 0.2186, 0.3165, 0.4521, 0.6366, 0.8786, 1.183, 1.554, 1.999",\
                 "0.08874, 0.1254, 0.2078, 0.3133, 0.453, 0.6393, 0.8816, 1.186, 1.559, 2.001",\
                 "0.03732, 0.08221, 0.1792, 0.2959, 0.442, 0.6329, 0.8772, 1.182, 1.554, 1.997",\
                 "-0.0391, 0.0161, 0.1302, 0.262, 0.416, 0.613, 0.8628, 1.171, 1.543, 1.986",\
                 "-0.1436, -0.0757, 0.0587, 0.209, 0.3734, 0.577, 0.8335, 1.147, 1.523, 1.967",\
                 "-0.2775, -0.1951, -0.0369, 0.135, 0.3131, 0.5243, 0.7876, 1.109, 1.492, 1.94");
        }

        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.00437, 0.0074, 0.01803, 0.03834, 0.06998, 0.1144, 0.1728, 0.2464, 0.3362, 0.4433");
          values("0.07142, 0.09114, 0.1517, 0.2506, 0.3905, 0.5837, 0.8447, 1.183, 1.603, 2.107",\
                 "0.07054, 0.0906, 0.1513, 0.2505, 0.3901, 0.5839, 0.8448, 1.183, 1.602, 2.108",\
                 "0.0679, 0.08856, 0.1496, 0.2491, 0.3897, 0.5833, 0.8449, 1.182, 1.602, 2.108",\
                 "0.07204, 0.09146, 0.1488, 0.2467, 0.3883, 0.5835, 0.8438, 1.183, 1.603, 2.108",\
                 "0.07858, 0.09772, 0.1547, 0.2474, 0.3852, 0.5806, 0.8429, 1.183, 1.603, 2.107",\
                 "0.08566, 0.103, 0.155, 0.2453, 0.3813, 0.5754, 0.8394, 1.18, 1.603, 2.105",\
                 "0.09384, 0.1086, 0.1563, 0.2448, 0.3798, 0.5736, 0.8366, 1.176, 1.598, 2.103",\
                 "0.1026, 0.116, 0.1592, 0.2456, 0.3802, 0.5728, 0.8366, 1.176, 1.596, 2.1",\
                 "0.1138, 0.125, 0.1636, 0.2476, 0.3804, 0.5738, 0.837, 1.176, 1.596, 2.1",\
                 "0.1268, 0.1358, 0.17, 0.2508, 0.3818, 0.5746, 0.8374, 1.178, 1.597, 2.1");
        }

        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.00437, 0.0074, 0.01803, 0.03834, 0.06998, 0.1144, 0.1728, 0.2464, 0.3362, 0.4433");
          values("0.07212, 0.09548, 0.1696, 0.3133, 0.5456, 0.8799, 1.323, 1.883, 2.566, 3.38",\
                 "0.07194, 0.09548, 0.1696, 0.3133, 0.5456, 0.8798, 1.324, 1.885, 2.567, 3.379",\
                 "0.07428, 0.09732, 0.1704, 0.3134, 0.5455, 0.8804, 1.325, 1.886, 2.567, 3.379",\
                 "0.08152, 0.1063, 0.1769, 0.3163, 0.5463, 0.8804, 1.324, 1.884, 2.566, 3.379",\
                 "0.09626, 0.1211, 0.1903, 0.3243, 0.551, 0.8811, 1.323, 1.882, 2.566, 3.379",\
                 "0.1198, 0.1432, 0.2121, 0.3398, 0.5608, 0.8866, 1.326, 1.885, 2.566, 3.383",\
                 "0.1495, 0.1723, 0.2419, 0.3622, 0.5782, 0.8998, 1.333, 1.889, 2.57, 3.38",\
                 "0.1884, 0.209, 0.2778, 0.3926, 0.6002, 0.9214, 1.352, 1.897, 2.574, 3.381",\
                 "0.2336, 0.2546, 0.32, 0.4328, 0.6272, 0.947, 1.379, 1.921, 2.587, 3.39",\
                 "0.286, 0.3082, 0.367, 0.482, 0.6616, 0.9736, 1.41, 1.956, 2.619, 3.409");
        }
      }

      timing() {
        related_pin : "I" ;
        timing_sense : positive_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.00437, 0.0074, 0.01803, 0.03834, 0.06998, 0.1144, 0.1728, 0.2464, 0.3362, 0.4433");
          values("0.2112, 0.2313, 0.286, 0.3675, 0.4742, 0.608, 0.7745, 0.9795, 1.228, 1.524",\
                 "0.2154, 0.2355, 0.2904, 0.3717, 0.4785, 0.6123, 0.7787, 0.9838, 1.233, 1.529",\
                 "0.2357, 0.2559, 0.3107, 0.3919, 0.4986, 0.6324, 0.7988, 1.004, 1.253, 1.548",\
                 "0.2826, 0.3026, 0.3568, 0.4377, 0.5442, 0.678, 0.8442, 1.049, 1.298, 1.594",\
                 "0.3542, 0.3746, 0.4293, 0.5101, 0.6165, 0.7501, 0.9162, 1.121, 1.369, 1.665",\
                 "0.4419, 0.4638, 0.5217, 0.6049, 0.7125, 0.8469, 1.013, 1.217, 1.465, 1.76",\
                 "0.5426, 0.5662, 0.6282, 0.7169, 0.8293, 0.9669, 1.134, 1.338, 1.586, 1.88",\
                 "0.6559, 0.6817, 0.7483, 0.8423, 0.9617, 1.107, 1.28, 1.485, 1.733, 2.027",\
                 "0.7825, 0.8098, 0.8814, 0.9816, 1.107, 1.262, 1.444, 1.658, 1.907, 2.202",\
                 "0.9233, 0.9522, 1.028, 1.134, 1.267, 1.429, 1.622, 1.848, 2.107, 2.405");
        }

        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.00437, 0.0074, 0.01803, 0.03834, 0.06998, 0.1144, 0.1728, 0.2464, 0.3362, 0.4433");
          values("0.2054, 0.226, 0.2821, 0.3733, 0.5061, 0.6903, 0.9321, 1.237, 1.608, 2.052",\
                 "0.2084, 0.2288, 0.285, 0.3758, 0.5089, 0.6927, 0.9349, 1.24, 1.612, 2.055",\
                 "0.2198, 0.2402, 0.2963, 0.3871, 0.52, 0.704, 0.9459, 1.25, 1.623, 2.065",\
                 "0.2439, 0.2638, 0.3189, 0.409, 0.5411, 0.7246, 0.9664, 1.271, 1.642, 2.086",\
                 "0.2684, 0.289, 0.3446, 0.434, 0.5652, 0.7476, 0.9885, 1.292, 1.663, 2.107",\
                 "0.2835, 0.3053, 0.3637, 0.4545, 0.5855, 0.767, 1.007, 1.31, 1.681, 2.123",\
                 "0.286, 0.3094, 0.3716, 0.4656, 0.5987, 0.7811, 1.02, 1.322, 1.691, 2.133",\
                 "0.2754, 0.3008, 0.3668, 0.4641, 0.6008, 0.7865, 1.027, 1.329, 1.698, 2.139",\
                 "0.2505, 0.2776, 0.3483, 0.4499, 0.59, 0.7791, 1.024, 1.33, 1.699, 2.139",\
                 "0.2107, 0.24, 0.3154, 0.4215, 0.5651, 0.758, 1.008, 1.319, 1.693, 2.134");
        }

        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.00437, 0.0074, 0.01803, 0.03834, 0.06998, 0.1144, 0.1728, 0.2464, 0.3362, 0.4433");
          values("0.08132, 0.1029, 0.162, 0.2579, 0.3958, 0.5874, 0.8472, 1.184, 1.603, 2.107",\
                 "0.08146, 0.1027, 0.1615, 0.2579, 0.3964, 0.5874, 0.8476, 1.185, 1.603, 2.108",\
                 "0.0811, 0.1028, 0.1619, 0.258, 0.3961, 0.588, 0.8468, 1.184, 1.603, 2.105",\
                 "0.08262, 0.1044, 0.1634, 0.2593, 0.3975, 0.5882, 0.8472, 1.185, 1.603, 2.106",\
                 "0.09246, 0.1141, 0.1712, 0.2655, 0.4009, 0.5902, 0.8488, 1.185, 1.604, 2.105",\
                 "0.1088, 0.1314, 0.1886, 0.279, 0.412, 0.5982, 0.8526, 1.186, 1.605, 2.106",\
                 "0.1274, 0.1518, 0.2132, 0.305, 0.4356, 0.6152, 0.863, 1.191, 1.606, 2.108",\
                 "0.1484, 0.1748, 0.2402, 0.3362, 0.473, 0.6516, 0.8874, 1.204, 1.611, 2.109",\
                 "0.17, 0.199, 0.2698, 0.3694, 0.5118, 0.6994, 0.939, 1.242, 1.63, 2.117",\
                 "0.1922, 0.224, 0.299, 0.4042, 0.5516, 0.7498, 1.001, 1.308, 1.683, 2.146");
        }

        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.00437, 0.0074, 0.01803, 0.03834, 0.06998, 0.1144, 0.1728, 0.2464, 0.3362, 0.4433");
          values("0.07406, 0.09772, 0.1717, 0.3139, 0.5456, 0.8816, 1.323, 1.885, 2.566, 3.379",\
                 "0.07444, 0.09778, 0.1711, 0.3142, 0.5458, 0.8798, 1.323, 1.884, 2.569, 3.385",\
                 "0.07392, 0.0975, 0.1712, 0.3141, 0.5458, 0.8802, 1.323, 1.885, 2.566, 3.38",\
                 "0.07472, 0.09828, 0.1723, 0.3147, 0.5462, 0.8804, 1.323, 1.883, 2.566, 3.379",\
                 "0.0817, 0.1057, 0.1773, 0.3184, 0.5473, 0.8807, 1.323, 1.883, 2.566, 3.38",\
                 "0.09272, 0.1175, 0.1885, 0.3268, 0.5525, 0.883, 1.324, 1.883, 2.567, 3.381",\
                 "0.1064, 0.132, 0.2038, 0.3416, 0.565, 0.8894, 1.327, 1.884, 2.565, 3.38",\
                 "0.1196, 0.1472, 0.2218, 0.3576, 0.5842, 0.9084, 1.34, 1.889, 2.567, 3.386",\
                 "0.1354, 0.1652, 0.2416, 0.3778, 0.6034, 0.9334, 1.366, 1.909, 2.577, 3.385",\
                 "0.1526, 0.183, 0.263, 0.398, 0.6254, 0.9586, 1.398, 1.943, 2.605, 3.399");
        }
      }
    }
  }

