library (ls05_stdcells) {
  capacitive_load_unit (1.0, pf);
  current_unit: "1uA";
  default_operating_conditions: typical;
  delay_model: table_lookup;
  in_place_swap_mode: match_footprint;
  input_threshold_pct_fall: 50.0;
  input_threshold_pct_rise: 50.0;
  leakage_power_unit: "1nW";
  nom_process: 1.0;
  nom_temperature: 25.0;
  nom_voltage: 5.0;
  output_threshold_pct_fall: 50.0;
  output_threshold_pct_rise: 50.0;
  pulling_resistance_unit: "1kohm";
  slew_lower_threshold_pct_fall: 20.0;
  slew_lower_threshold_pct_rise: 20.0;
  slew_upper_threshold_pct_fall: 80.0;
  slew_upper_threshold_pct_rise: 80.0;
  time_unit: "1ns";
  voltage_unit: "1V";
  operating_conditions (typical) {
    process: 1.0;
    temperature: 25.0;
    voltage: 5.0;
  }
  lu_table_template (delay_template_5x1) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: input_net_transition;
  }
  lu_table_template (delay_template_5x5) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_net_transition;
  }
  lu_table_template (delay_template_5x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_net_transition;
  }
  lu_table_template (delay_template_6x1) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: input_net_transition;
  }
  lu_table_template (delay_template_6x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_net_transition;
  }
  power_lut_template (energy_template_5x5) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_transition_time;
  }
  power_lut_template (energy_template_5x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_transition_time;
  }
  power_lut_template (energy_template_6x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_transition_time;
  }
  lu_table_template (hold_template_3x5) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  lu_table_template (hold_template_3x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  power_lut_template (passive_energy_template_5x1) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: input_transition_time;
  }
  power_lut_template (passive_energy_template_6x1) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: input_transition_time;
  }
  lu_table_template (recovery_template_3x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  lu_table_template (recovery_template_6x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  lu_table_template (removal_template_3x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  lu_table_template (setup_template_3x5) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  lu_table_template (setup_template_3x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  cell (OAI21X1) {
    area: 1.0;
    cell_leakage_power: 0.1173;
    pin (C) {
      capacitance: 0.0049685503383930275;
      direction: input;
      fall_capacitance: 0.0057337054132807755;
      rise_capacitance: 0.004203395263505281;
    }
    pin (B) {
      capacitance: 0.004817269329420684;
      direction: input;
      fall_capacitance: 0.0046993715663027884;
      rise_capacitance: 0.004935167092538579;
    }
    pin (A) {
      capacitance: 0.006365887451121313;
      direction: input;
      fall_capacitance: 0.007796116485619777;
      rise_capacitance: 0.004935658416622851;
    }
    pin (Y) {
      direction: output;
      function: "(!(A & B & C + A & C & !B + B & C & !A))";
      timing () {
        related_pin: "C";
        timing_sense: negative_unate;
        cell_rise (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.006353, 0.006873, 0.004977, -0.002571, -0.112220", \
            "0.047648, 0.044522, 0.048480, 0.050680, -0.005504", \
            "0.091575, 0.084317, 0.083496, 0.088598, 0.067928", \
            "0.179609, 0.168970, 0.162303, 0.158976, 0.185631", \
            "0.884619, 0.871536, 0.855984, 0.828850, 0.807127"
          );
        }
        cell_fall (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.012322, 0.018627, 0.025819, 0.036380, 0.166985", \
            "0.097230, 0.095251, 0.097606, 0.110133, 0.295266", \
            "0.182685, 0.178288, 0.176909, 0.181932, 0.384599", \
            "0.354450, 0.348364, 0.343303, 0.339898, 0.530677", \
            "1.731053, 1.722975, 1.713352, 1.696916, 1.662491"
          );
        }
        rise_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.011924, 0.030898, 0.053284, 0.100971, 0.670100", \
            "0.080583, 0.085685, 0.102082, 0.143609, 0.716365", \
            "0.152800, 0.152883, 0.163222, 0.193150, 0.778215", \
            "0.292893, 0.292086, 0.294393, 0.311669, 0.881950", \
            "1.424263, 1.424245, 1.424087, 1.424045, 1.683357"
          );
        }
        fall_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.017139, 0.026739, 0.044276, 0.087758, 0.660076", \
            "0.138283, 0.139729, 0.142997, 0.162743, 0.650333", \
            "0.260560, 0.259671, 0.260078, 0.269467, 0.681289", \
            "0.503775, 0.503479, 0.503665, 0.504685, 0.808692", \
            "2.459384, 2.459439, 2.459425, 2.459497, 2.482154"
          );
        }
      }
      timing () {
        related_pin: "B";
        timing_sense: negative_unate;
        cell_rise (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.018084, 0.018785, 0.021524, 0.021254, 0.031017", \
            "0.096634, 0.090653, 0.091567, 0.101191, 0.181020", \
            "0.173780, 0.166489, 0.164402, 0.167176, 0.281781", \
            "0.328645, 0.320024, 0.314801, 0.311087, 0.444609", \
            "1.568475, 1.558747, 1.549393, 1.535231, 1.517075"
          );
        }
        cell_fall (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.011853, 0.020828, 0.025802, 0.032296, 0.061131", \
            "0.103764, 0.107281, 0.113180, 0.125736, 0.245046", \
            "0.197462, 0.198933, 0.202960, 0.213251, 0.366132", \
            "0.386134, 0.386285, 0.388197, 0.395136, 0.557258", \
            "1.897752, 1.896544, 1.895986, 1.896513, 1.969418"
          );
        }
        rise_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.020867, 0.029939, 0.052329, 0.091938, 0.451438", \
            "0.133406, 0.133983, 0.137806, 0.156667, 0.613530", \
            "0.245013, 0.245383, 0.244613, 0.254696, 0.705512", \
            "0.469706, 0.469327, 0.469422, 0.469157, 0.813809", \
            "2.271618, 2.271785, 2.271663, 2.271774, 2.288526"
          );
        }
        fall_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.015697, 0.022510, 0.033468, 0.066107, 0.425032", \
            "0.144870, 0.144572, 0.145000, 0.157604, 0.462980", \
            "0.274162, 0.274051, 0.273949, 0.276993, 0.536593", \
            "0.535317, 0.535340, 0.535460, 0.535384, 0.689730", \
            "2.627338, 2.627345, 2.627342, 2.627355, 2.627455"
          );
        }
      }
      timing () {
        related_pin: "A";
        timing_sense: negative_unate;
        cell_rise (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.018803, 0.021401, 0.023344, 0.023872, -0.022124", \
            "0.097043, 0.097462, 0.098807, 0.107122, 0.140271", \
            "0.174167, 0.173694, 0.174835, 0.179375, 0.252462", \
            "0.329045, 0.328268, 0.328060, 0.330094, 0.432085", \
            "1.568689, 1.567669, 1.566082, 1.563994, 1.593864"
          );
        }
        cell_fall (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.014567, 0.027648, 0.035349, 0.041047, 0.137832", \
            "0.108453, 0.112569, 0.119206, 0.133016, 0.297203", \
            "0.202396, 0.204223, 0.208700, 0.219958, 0.407822", \
            "0.391026, 0.391383, 0.393600, 0.400955, 0.585908", \
            "1.902735, 1.901651, 1.901085, 1.901740, 1.980348"
          );
        }
        rise_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.019300, 0.027658, 0.041698, 0.074827, 0.320959", \
            "0.131626, 0.131992, 0.134734, 0.149048, 0.454028", \
            "0.244112, 0.244371, 0.245398, 0.247897, 0.550953", \
            "0.469602, 0.469661, 0.469275, 0.469732, 0.677618", \
            "2.271672, 2.271613, 2.271813, 2.271710, 2.274668"
          );
        }
        fall_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.031706, 0.032612, 0.040602, 0.073394, 0.328383", \
            "0.155420, 0.155629, 0.156550, 0.167050, 0.465518", \
            "0.286331, 0.286147, 0.286318, 0.287490, 0.548717", \
            "0.546344, 0.546313, 0.546743, 0.546937, 0.703383", \
            "2.638909, 2.638879, 2.638882, 2.638975, 2.638890"
          );
        }
      }
    }
  }
}