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 (NOR3X1) {
    area: 1.0;
    cell_leakage_power: 0.1173;
    pin (C) {
      capacitance: 0.008851268942232223;
      direction: input;
      fall_capacitance: 0.007192740516108539;
      rise_capacitance: 0.01050979736835591;
    }
    pin (B) {
      capacitance: 0.008467308012434688;
      direction: input;
      fall_capacitance: 0.006491035832102533;
      rise_capacitance: 0.010443580192766843;
    }
    pin (A) {
      capacitance: 0.011319336983488502;
      direction: input;
      fall_capacitance: 0.012153813915844755;
      rise_capacitance: 0.010484860051132246;
    }
    pin (Y) {
      direction: output;
      function: "(!A & !B & !C)";
      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.019861, 0.013951, 0.010393, 0.010614, -0.095224", \
            "0.073806, 0.065433, 0.065471, 0.070741, 0.031362", \
            "0.126961, 0.116836, 0.114849, 0.117995, 0.121232", \
            "0.229374, 0.218604, 0.214181, 0.213278, 0.265478", \
            "1.052068, 1.040930, 1.032640, 1.022067, 1.050983"
          );
        }
        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.007431, 0.014436, 0.021041, 0.026061, 0.147747", \
            "0.048089, 0.051199, 0.058718, 0.073619, 0.235306", \
            "0.092679, 0.092234, 0.095807, 0.109560, 0.295852", \
            "0.181227, 0.178365, 0.178683, 0.184095, 0.391655", \
            "0.896652, 0.891924, 0.887935, 0.881387, 0.953533"
          );
        }
        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.017662, 0.024101, 0.048536, 0.089682, 0.758844", \
            "0.096073, 0.094132, 0.101399, 0.124739, 0.723967", \
            "0.170991, 0.170809, 0.171462, 0.183197, 0.697268", \
            "0.322446, 0.322746, 0.321943, 0.324630, 0.702708", \
            "1.546214, 1.546427, 1.546374, 1.546212, 1.604669"
          );
        }
        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.016377, 0.048611, 0.062895, 0.114022, 0.768870", \
            "0.097096, 0.107288, 0.124463, 0.164913, 0.849231", \
            "0.182999, 0.185111, 0.195260, 0.230117, 0.915649", \
            "0.353304, 0.352681, 0.357067, 0.377842, 1.011080", \
            "1.730018, 1.729723, 1.730358, 1.730359, 2.006705"
          );
        }
      }
      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.021404, 0.018148, 0.016999, 0.012352, -0.116477", \
            "0.073113, 0.069999, 0.071591, 0.077030, 0.012719", \
            "0.125310, 0.121160, 0.121831, 0.125821, 0.106267", \
            "0.228280, 0.223844, 0.223033, 0.224372, 0.254111", \
            "1.050975, 1.046727, 1.044059, 1.040846, 1.071937"
          );
        }
        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.009259, 0.023322, 0.030630, 0.037613, 0.214445", \
            "0.054518, 0.059015, 0.066642, 0.084249, 0.290662", \
            "0.099361, 0.100171, 0.103972, 0.118556, 0.346076", \
            "0.188116, 0.185793, 0.186314, 0.192750, 0.434451", \
            "0.903486, 0.899552, 0.895434, 0.889058, 0.974970"
          );
        }
        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.018177, 0.025953, 0.042317, 0.080707, 0.708600", \
            "0.095725, 0.094902, 0.100379, 0.117184, 0.657595", \
            "0.169936, 0.168818, 0.169550, 0.178176, 0.623126", \
            "0.322532, 0.321898, 0.322594, 0.323057, 0.620469", \
            "1.546325, 1.546425, 1.546433, 1.546433, 1.575338"
          );
        }
        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.027725, 0.061597, 0.100203, 0.128616, 0.760467", \
            "0.111045, 0.120997, 0.139653, 0.183957, 0.880925", \
            "0.197036, 0.200197, 0.212478, 0.247249, 0.949581", \
            "0.368936, 0.368337, 0.372047, 0.394425, 1.042426", \
            "1.745637, 1.745218, 1.745426, 1.745645, 2.034164"
          );
        }
      }
      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.021535, 0.020687, 0.018209, 0.011098, -0.159177", \
            "0.073633, 0.071954, 0.071241, 0.072771, -0.039713", \
            "0.126395, 0.123666, 0.122260, 0.121428, 0.047912", \
            "0.228694, 0.226313, 0.223648, 0.220474, 0.190997", \
            "1.051376, 1.049091, 1.044628, 1.037782, 1.009584"
          );
        }
        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.006124, 0.029256, 0.038292, 0.053214, 0.282467", \
            "0.059066, 0.066388, 0.074590, 0.095077, 0.348409", \
            "0.104913, 0.107511, 0.112061, 0.127680, 0.398783", \
            "0.193938, 0.193305, 0.193982, 0.201534, 0.479599", \
            "0.910076, 0.906960, 0.902862, 0.896691, 0.998792"
          );
        }
        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.018579, 0.025146, 0.039182, 0.078947, 0.732260", \
            "0.095594, 0.095225, 0.095216, 0.111960, 0.683970", \
            "0.171029, 0.169347, 0.171096, 0.178076, 0.654431", \
            "0.322754, 0.321497, 0.322026, 0.323327, 0.642474", \
            "1.546326, 1.546372, 1.546374, 1.546417, 1.579783"
          );
        }
        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.032924, 0.073273, 0.111837, 0.141861, 0.820044", \
            "0.127458, 0.138303, 0.154962, 0.200434, 0.924242", \
            "0.212672, 0.215586, 0.228733, 0.265521, 0.987165", \
            "0.383595, 0.383606, 0.388604, 0.411154, 1.077362", \
            "1.760289, 1.760204, 1.760698, 1.760729, 2.064944"
          );
        }
      }
    }
  }
}