/*
 * 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_8) {
    area : 85.612800 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0.2131, 0.2114, 0.214, 0.2274, 0.2551, 0.2987, 0.3613, 0.444, \
                 0.5483, 0.675");
        }

        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.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0.1048, 0.1034, 0.1061, 0.1159, 0.1334, 0.16, 0.1964, 0.2458, \
                 0.3119, 0.395");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0.1713, 0.1687, 0.1719, 0.1881, 0.2195, 0.2681, 0.3351, 0.4228, \
                 0.5318, 0.6634");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0.05772, 0.05683, 0.05898, 0.07119, 0.09724, 0.1393, 0.1986, 0.2759, \
                 0.3725, 0.4888");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.01515 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 2.79 ;
      max_transition : 8.6 ;
      min_capacitance : 0.01615 ;
      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.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01615, 0.0353, 0.1025, 0.2308, 0.4308, 0.7113, 1.08, 1.546, 2.113, 2.79");
          values("0.3309, 0.3307, 0.3307, 0.3306, 0.3306, 0.3307, 0.3308, 0.3309, 0.3309, 0.3309",\
                 "0.3311, 0.3311, 0.331, 0.331, 0.3311, 0.3311, 0.3312, 0.3312, 0.3313, 0.3313",\
                 "0.3373, 0.3373, 0.3372, 0.3372, 0.3372, 0.3373, 0.3374, 0.3374, 0.3374, 0.3374",\
                 "0.3514, 0.3514, 0.3513, 0.3512, 0.3512, 0.3513, 0.3514, 0.3514, 0.3514, 0.3514",\
                 "0.3752, 0.375, 0.3749, 0.3749, 0.3747, 0.3748, 0.3748, 0.3748, 0.3749, 0.3748",\
                 "0.4091, 0.409, 0.4091, 0.409, 0.409, 0.4089, 0.4089, 0.4089, 0.4089, 0.409",\
                 "0.4547, 0.4548, 0.4545, 0.4541, 0.4542, 0.4543, 0.4544, 0.4543, 0.4544, 0.4544",\
                 "0.512, 0.5121, 0.5119, 0.5117, 0.5115, 0.5117, 0.5117, 0.5118, 0.5119, 0.5118",\
                 "0.5813, 0.5815, 0.5814, 0.5813, 0.5812, 0.5813, 0.5813, 0.5814, 0.5814, 0.5815",\
                 "0.6642, 0.6643, 0.6641, 0.6639, 0.6638, 0.6639, 0.6639, 0.6639, 0.664, 0.6641");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01615, 0.0353, 0.1025, 0.2308, 0.4308, 0.7113, 1.08, 1.546, 2.113, 2.79");
          values("0.2861, 0.2865, 0.286, 0.2866, 0.2886, 0.2912, 0.2949, 0.3001, 0.3082, 0.3352",\
                 "0.2853, 0.2856, 0.2852, 0.2858, 0.2879, 0.2903, 0.2949, 0.3001, 0.3065, 0.3369",\
                 "0.2871, 0.287, 0.2874, 0.2879, 0.2892, 0.2919, 0.2972, 0.3014, 0.3092, 0.3399",\
                 "0.2979, 0.2987, 0.2983, 0.2994, 0.3004, 0.3041, 0.3077, 0.3126, 0.3187, 0.355",\
                 "0.3216, 0.3224, 0.3209, 0.3245, 0.3252, 0.3282, 0.3328, 0.338, 0.3459, 0.3805",\
                 "0.3608, 0.3606, 0.361, 0.3602, 0.3661, 0.3675, 0.3701, 0.374, 0.3816, 0.4302",\
                 "0.4166, 0.4169, 0.4185, 0.4157, 0.4173, 0.4282, 0.4288, 0.4311, 0.4387, 0.4915",\
                 "0.4904, 0.491, 0.4907, 0.4905, 0.4905, 0.4949, 0.5061, 0.509, 0.5125, 0.5833",\
                 "0.5837, 0.5839, 0.5851, 0.5854, 0.5842, 0.5859, 0.5912, 0.6073, 0.6183, 0.7116",\
                 "0.6969, 0.6971, 0.6985, 0.6992, 0.6981, 0.6988, 0.6991, 0.7083, 0.7431, 0.8898");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01615, 0.0353, 0.1025, 0.2308, 0.4308, 0.7113, 1.08, 1.546, 2.113, 2.79");
          values("0.5389, 0.5448, 0.5568, 0.5645, 0.5684, 0.5705, 0.5718, 0.5726, 0.5729, 0.5732",\
                 "0.5375, 0.5437, 0.5557, 0.5634, 0.5674, 0.5695, 0.5706, 0.5713, 0.5718, 0.5721",\
                 "0.5394, 0.5452, 0.5572, 0.5649, 0.5688, 0.571, 0.5721, 0.5729, 0.5733, 0.5737",\
                 "0.5529, 0.5586, 0.5698, 0.5773, 0.5815, 0.5838, 0.585, 0.5858, 0.5862, 0.5866",\
                 "0.5831, 0.5883, 0.5988, 0.6067, 0.6109, 0.6133, 0.6147, 0.6154, 0.616, 0.6164",\
                 "0.6316, 0.6357, 0.6458, 0.6533, 0.6578, 0.6602, 0.6618, 0.6628, 0.6633, 0.6637",\
                 "0.7006, 0.704, 0.7127, 0.7204, 0.725, 0.7277, 0.7294, 0.7304, 0.731, 0.7315",\
                 "0.7906, 0.793, 0.8003, 0.8077, 0.8122, 0.8153, 0.817, 0.8182, 0.819, 0.8194",\
                 "0.9019, 0.9035, 0.9097, 0.9167, 0.9215, 0.9245, 0.9263, 0.9276, 0.9284, 0.9289",\
                 "1.036, 1.037, 1.041, 1.048, 1.053, 1.056, 1.058, 1.059, 1.06, 1.061");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01615, 0.0353, 0.1025, 0.2308, 0.4308, 0.7113, 1.08, 1.546, 2.113, 2.79");
          values("0.5124, 0.5185, 0.5283, 0.5381, 0.5445, 0.5512, 0.5588, 0.5617, 0.5708, 0.6022",\
                 "0.5097, 0.5164, 0.5258, 0.5355, 0.5419, 0.5479, 0.5551, 0.559, 0.5665, 0.5977",\
                 "0.5123, 0.519, 0.5282, 0.5374, 0.5445, 0.5505, 0.5588, 0.5623, 0.5708, 0.6047",\
                 "0.5297, 0.535, 0.5454, 0.5546, 0.562, 0.5677, 0.5753, 0.5788, 0.5886, 0.6245",\
                 "0.5632, 0.5681, 0.5786, 0.5874, 0.5947, 0.6017, 0.6099, 0.6135, 0.623, 0.6672",\
                 "0.6165, 0.6211, 0.6291, 0.6403, 0.6468, 0.6545, 0.6594, 0.666, 0.6779, 0.7238",\
                 "0.6908, 0.6955, 0.7028, 0.7099, 0.7221, 0.7287, 0.7353, 0.7425, 0.7499, 0.8168",\
                 "0.7885, 0.793, 0.8002, 0.8079, 0.8161, 0.8284, 0.8356, 0.8396, 0.8476, 0.9474",\
                 "0.9108, 0.9152, 0.9218, 0.9292, 0.9376, 0.9426, 0.9574, 0.9656, 0.9829, 1.134",\
                 "1.059, 1.063, 1.069, 1.077, 1.084, 1.089, 1.099, 1.113, 1.15, 1.404");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0.455, 0.474, 0.54, 0.675, 0.883, 1.12, 1.394, 1.708, 2.061, 2.453");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0.405, 0.419, 0.488, 0.603, 0.748, 0.928, 1.143, 1.391, 1.672, \
                 1.993");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          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.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01615, 0.0353, 0.1025, 0.2308, 0.4308, 0.7113, 1.08, 1.546, 2.113, 2.79");
          values("0.2549, 0.3168, 0.4589, 0.644, 0.8715, 1.154, 1.506, 1.942, 2.472, 3.103",\
                 "0.2705, 0.3323, 0.4744, 0.6597, 0.887, 1.169, 1.522, 1.958, 2.488, 3.119",\
                 "0.3265, 0.3881, 0.5299, 0.7149, 0.9421, 1.225, 1.577, 2.013, 2.543, 3.175",\
                 "0.3996, 0.4671, 0.614, 0.8006, 1.029, 1.311, 1.664, 2.1, 2.63, 3.261",\
                 "0.4377, 0.5088, 0.6579, 0.8452, 1.073, 1.355, 1.708, 2.144, 2.674, 3.305",\
                 "0.4366, 0.5082, 0.6584, 0.8455, 1.074, 1.356, 1.708, 2.144, 2.673, 3.305",\
                 "0.4009, 0.4732, 0.6245, 0.8124, 1.04, 1.322, 1.674, 2.11, 2.64, 3.27",\
                 "0.3312, 0.4047, 0.5573, 0.746, 0.9747, 1.257, 1.609, 2.045, 2.575, 3.205",\
                 "0.2261, 0.3007, 0.455, 0.6452, 0.8746, 1.157, 1.51, 1.946, 2.475, 3.106",\
                 "0.084, 0.1601, 0.3162, 0.5073, 0.7375, 1.021, 1.373, 1.809, 2.339, 2.97");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01615, 0.0353, 0.1025, 0.2308, 0.4308, 0.7113, 1.08, 1.546, 2.113, 2.79");
          values("0.2801, 0.3447, 0.4959, 0.73, 1.08, 1.569, 2.212, 3.024, 4.013, 5.195",\
                 "0.2943, 0.3589, 0.51, 0.7442, 1.094, 1.583, 2.225, 3.038, 4.026, 5.208",\
                 "0.3445, 0.4092, 0.5606, 0.7947, 1.144, 1.633, 2.278, 3.089, 4.08, 5.26",\
                 "0.4122, 0.4853, 0.6431, 0.8787, 1.228, 1.718, 2.361, 3.171, 4.161, 5.342",\
                 "0.4541, 0.541, 0.7163, 0.9581, 1.308, 1.797, 2.44, 3.252, 4.241, 5.42",\
                 "0.466, 0.5678, 0.765, 1.016, 1.368, 1.857, 2.499, 3.31, 4.299, 5.479",\
                 "0.444, 0.5616, 0.786, 1.051, 1.405, 1.894, 2.537, 3.346, 4.337, 5.514",\
                 "0.3863, 0.5196, 0.7736, 1.058, 1.419, 1.909, 2.552, 3.361, 4.35, 5.529",\
                 "0.2909, 0.4397, 0.725, 1.034, 1.405, 1.898, 2.542, 3.351, 4.34, 5.518",\
                 "0.1556, 0.3203, 0.6369, 0.9736, 1.357, 1.857, 2.506, 3.317, 4.305, 5.482");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01615, 0.0353, 0.1025, 0.2308, 0.4308, 0.7113, 1.08, 1.546, 2.113, 2.79");
          values("0.1247, 0.1836, 0.3242, 0.5207, 0.8024, 1.204, 1.755, 2.469, 3.349, 4.412",\
                 "0.1249, 0.1833, 0.3241, 0.5206, 0.8027, 1.203, 1.754, 2.469, 3.353, 4.409",\
                 "0.1243, 0.1828, 0.3234, 0.5206, 0.803, 1.205, 1.755, 2.468, 3.351, 4.407",\
                 "0.1413, 0.1983, 0.3305, 0.5236, 0.804, 1.206, 1.756, 2.469, 3.35, 4.406",\
                 "0.1552, 0.2104, 0.3358, 0.5258, 0.8036, 1.205, 1.755, 2.469, 3.35, 4.407",\
                 "0.1584, 0.2126, 0.3372, 0.5264, 0.8048, 1.204, 1.752, 2.468, 3.351, 4.41",\
                 "0.161, 0.2152, 0.3392, 0.527, 0.8054, 1.205, 1.755, 2.464, 3.348, 4.406",\
                 "0.1642, 0.218, 0.342, 0.5296, 0.8064, 1.206, 1.753, 2.465, 3.347, 4.402",\
                 "0.168, 0.2222, 0.345, 0.5322, 0.8082, 1.207, 1.753, 2.468, 3.348, 4.404",\
                 "0.1734, 0.2268, 0.349, 0.5352, 0.811, 1.208, 1.757, 2.467, 3.35, 4.406");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01615, 0.0353, 0.1025, 0.2308, 0.4308, 0.7113, 1.08, 1.546, 2.113, 2.79");
          values("0.1284, 0.1878, 0.3703, 0.7383, 1.344, 2.206, 3.338, 4.768, 6.515, 8.599",\
                 "0.1285, 0.1876, 0.3705, 0.7384, 1.345, 2.206, 3.337, 4.769, 6.526, 8.596",\
                 "0.1289, 0.1884, 0.371, 0.7394, 1.344, 2.205, 3.338, 4.774, 6.517, 8.596",\
                 "0.1518, 0.2066, 0.3779, 0.7392, 1.344, 2.206, 3.339, 4.774, 6.515, 8.594",\
                 "0.1828, 0.2424, 0.4042, 0.7488, 1.345, 2.205, 3.341, 4.769, 6.516, 8.597",\
                 "0.2158, 0.2832, 0.4384, 0.7634, 1.349, 2.209, 3.34, 4.768, 6.513, 8.592",\
                 "0.2492, 0.327, 0.4846, 0.7868, 1.355, 2.208, 3.34, 4.773, 6.521, 8.589",\
                 "0.2838, 0.3738, 0.5374, 0.8236, 1.371, 2.21, 3.34, 4.766, 6.518, 8.59",\
                 "0.318, 0.4206, 0.6008, 0.869, 1.397, 2.226, 3.344, 4.769, 6.509, 8.602",\
                 "0.3546, 0.4668, 0.665, 0.9266, 1.431, 2.249, 3.365, 4.777, 6.512, 8.587");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01615, 0.0353, 0.1025, 0.2308, 0.4308, 0.7113, 1.08, 1.546, 2.113, 2.79");
          values("0.4581, 0.5239, 0.6705, 0.8568, 1.084, 1.367, 1.719, 2.156, 2.686, 3.317",\
                 "0.4723, 0.538, 0.6845, 0.8708, 1.099, 1.381, 1.733, 2.17, 2.7, 3.331",\
                 "0.5174, 0.5831, 0.7296, 0.916, 1.144, 1.426, 1.779, 2.215, 2.745, 3.376",\
                 "0.5575, 0.6235, 0.7702, 0.9567, 1.184, 1.467, 1.82, 2.256, 2.786, 3.417",\
                 "0.5784, 0.6442, 0.7909, 0.9781, 1.206, 1.489, 1.841, 2.278, 2.808, 3.439",\
                 "0.5747, 0.6408, 0.7883, 0.9757, 1.204, 1.487, 1.839, 2.276, 2.806, 3.437",\
                 "0.5437, 0.6101, 0.7583, 0.9465, 1.175, 1.458, 1.811, 2.247, 2.777, 3.408",\
                 "0.4818, 0.5488, 0.6978, 0.8867, 1.116, 1.399, 1.752, 2.188, 2.718, 3.349",\
                 "0.387, 0.4545, 0.6044, 0.7944, 1.024, 1.308, 1.661, 2.097, 2.627, 3.258",\
                 "0.2569, 0.3248, 0.4758, 0.667, 0.8974, 1.181, 1.534, 1.971, 2.501, 3.133");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01615, 0.0353, 0.1025, 0.2308, 0.4308, 0.7113, 1.08, 1.546, 2.113, 2.79");
          values("0.5578, 0.6233, 0.7763, 1.012, 1.364, 1.853, 2.499, 3.309, 4.3, 5.48",\
                 "0.573, 0.6385, 0.7915, 1.028, 1.379, 1.869, 2.514, 3.323, 4.314, 5.492",\
                 "0.6398, 0.7053, 0.8582, 1.094, 1.446, 1.935, 2.581, 3.392, 4.383, 5.563",\
                 "0.7596, 0.8253, 0.9784, 1.215, 1.566, 2.056, 2.701, 3.51, 4.504, 5.684",\
                 "0.9099, 0.9757, 1.129, 1.365, 1.717, 2.207, 2.852, 3.663, 4.655, 5.835",\
                 "1.095, 1.161, 1.314, 1.551, 1.903, 2.393, 3.037, 3.849, 4.84, 6.02",\
                 "1.314, 1.38, 1.534, 1.771, 2.123, 2.613, 3.256, 4.069, 5.058, 6.24",\
                 "1.567, 1.635, 1.79, 2.026, 2.378, 2.869, 3.513, 4.323, 5.311, 6.491",\
                 "1.858, 1.926, 2.081, 2.319, 2.671, 3.161, 3.805, 4.615, 5.604, 6.783",\
                 "2.185, 2.254, 2.411, 2.649, 3.001, 3.492, 4.136, 4.946, 5.935, 7.114");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01615, 0.0353, 0.1025, 0.2308, 0.4308, 0.7113, 1.08, 1.546, 2.113, 2.79");
          values("0.1267, 0.1843, 0.3229, 0.5193, 0.8004, 1.204, 1.754, 2.469, 3.354, 4.41",\
                 "0.1266, 0.1845, 0.3223, 0.5184, 0.8007, 1.203, 1.755, 2.468, 3.35, 4.408",\
                 "0.1268, 0.1844, 0.3231, 0.5187, 0.8008, 1.204, 1.755, 2.47, 3.35, 4.411",\
                 "0.1275, 0.1851, 0.3232, 0.5194, 0.8008, 1.204, 1.755, 2.468, 3.353, 4.409",\
                 "0.1284, 0.1862, 0.3246, 0.5188, 0.801, 1.204, 1.755, 2.468, 3.35, 4.412",\
                 "0.13, 0.1878, 0.3254, 0.52, 0.8016, 1.203, 1.754, 2.468, 3.35, 4.41",\
                 "0.1322, 0.1908, 0.3282, 0.5222, 0.8022, 1.204, 1.754, 2.466, 3.351, 4.409",\
                 "0.1346, 0.1934, 0.3306, 0.5242, 0.8036, 1.206, 1.754, 2.467, 3.35, 4.405",\
                 "0.1372, 0.1964, 0.333, 0.5258, 0.8052, 1.206, 1.756, 2.467, 3.351, 4.407",\
                 "0.1398, 0.2, 0.3364, 0.5288, 0.807, 1.207, 1.757, 2.469, 3.352, 4.407");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.01615, 0.0353, 0.1025, 0.2308, 0.4308, 0.7113, 1.08, 1.546, 2.113, 2.79");
          values("0.1227, 0.1825, 0.367, 0.7378, 1.343, 2.205, 3.337, 4.77, 6.516, 8.592",\
                 "0.1224, 0.1828, 0.367, 0.7377, 1.342, 2.203, 3.343, 4.773, 6.515, 8.603",\
                 "0.1223, 0.1829, 0.367, 0.7368, 1.344, 2.206, 3.339, 4.774, 6.517, 8.595",\
                 "0.1228, 0.1824, 0.3676, 0.738, 1.344, 2.204, 3.339, 4.771, 6.517, 8.598",\
                 "0.124, 0.1834, 0.368, 0.737, 1.344, 2.206, 3.339, 4.771, 6.516, 8.594",\
                 "0.125, 0.1848, 0.3684, 0.7376, 1.343, 2.203, 3.339, 4.767, 6.517, 8.59",\
                 "0.1264, 0.1862, 0.37, 0.7388, 1.343, 2.203, 3.336, 4.773, 6.52, 8.596",\
                 "0.1286, 0.1878, 0.372, 0.7384, 1.344, 2.204, 3.336, 4.764, 6.517, 8.599",\
                 "0.131, 0.19, 0.3726, 0.7392, 1.344, 2.203, 3.337, 4.763, 6.516, 8.584",\
                 "0.1342, 0.1924, 0.3758, 0.7406, 1.345, 2.205, 3.338, 4.765, 6.505, 8.596");
        }
      }
    }
  }

