// This file was created by the AIR team.

use crate::components::prelude::*;
use crate::components::subroutines::mem_cond_verify_equal_known_id::MemCondVerifyEqualKnownId;
use crate::components::subroutines::read_positive_num_bits_29::ReadPositiveNumBits29;
use crate::components::subroutines::read_positive_num_bits_99::ReadPositiveNumBits99;
use crate::components::subroutines::read_small::ReadSmall;

#[derive(Copy, Clone, Serialize, Deserialize, CairoSerialize)]
pub struct ModUtils {}

impl ModUtils {
    #[allow(unused_parens)]
    #[allow(clippy::double_parens)]
    #[allow(non_snake_case)]
    #[allow(clippy::unused_unit)]
    #[allow(unused_variables)]
    #[allow(clippy::too_many_arguments)]
    pub fn evaluate<E: EvalAtRow>(
        [mod_utils_input_first_addr, mod_utils_input_instance_num]: [E::F; 2],
        is_instance_0_col0: E::F,
        p0_id_col1: E::F,
        p0_limb_0_col2: E::F,
        p0_limb_1_col3: E::F,
        p0_limb_2_col4: E::F,
        p0_limb_3_col5: E::F,
        p0_limb_4_col6: E::F,
        p0_limb_5_col7: E::F,
        p0_limb_6_col8: E::F,
        p0_limb_7_col9: E::F,
        p0_limb_8_col10: E::F,
        p0_limb_9_col11: E::F,
        p0_limb_10_col12: E::F,
        p1_id_col13: E::F,
        p1_limb_0_col14: E::F,
        p1_limb_1_col15: E::F,
        p1_limb_2_col16: E::F,
        p1_limb_3_col17: E::F,
        p1_limb_4_col18: E::F,
        p1_limb_5_col19: E::F,
        p1_limb_6_col20: E::F,
        p1_limb_7_col21: E::F,
        p1_limb_8_col22: E::F,
        p1_limb_9_col23: E::F,
        p1_limb_10_col24: E::F,
        p2_id_col25: E::F,
        p2_limb_0_col26: E::F,
        p2_limb_1_col27: E::F,
        p2_limb_2_col28: E::F,
        p2_limb_3_col29: E::F,
        p2_limb_4_col30: E::F,
        p2_limb_5_col31: E::F,
        p2_limb_6_col32: E::F,
        p2_limb_7_col33: E::F,
        p2_limb_8_col34: E::F,
        p2_limb_9_col35: E::F,
        p2_limb_10_col36: E::F,
        p3_id_col37: E::F,
        p3_limb_0_col38: E::F,
        p3_limb_1_col39: E::F,
        p3_limb_2_col40: E::F,
        p3_limb_3_col41: E::F,
        p3_limb_4_col42: E::F,
        p3_limb_5_col43: E::F,
        p3_limb_6_col44: E::F,
        p3_limb_7_col45: E::F,
        p3_limb_8_col46: E::F,
        p3_limb_9_col47: E::F,
        p3_limb_10_col48: E::F,
        values_ptr_id_col49: E::F,
        values_ptr_limb_0_col50: E::F,
        values_ptr_limb_1_col51: E::F,
        values_ptr_limb_2_col52: E::F,
        values_ptr_limb_3_col53: E::F,
        partial_limb_msb_col54: E::F,
        offsets_ptr_id_col55: E::F,
        offsets_ptr_limb_0_col56: E::F,
        offsets_ptr_limb_1_col57: E::F,
        offsets_ptr_limb_2_col58: E::F,
        offsets_ptr_limb_3_col59: E::F,
        partial_limb_msb_col60: E::F,
        offsets_ptr_prev_id_col61: E::F,
        offsets_ptr_prev_limb_0_col62: E::F,
        offsets_ptr_prev_limb_1_col63: E::F,
        offsets_ptr_prev_limb_2_col64: E::F,
        offsets_ptr_prev_limb_3_col65: E::F,
        partial_limb_msb_col66: E::F,
        n_id_col67: E::F,
        n_limb_0_col68: E::F,
        n_limb_1_col69: E::F,
        n_limb_2_col70: E::F,
        n_limb_3_col71: E::F,
        partial_limb_msb_col72: E::F,
        n_prev_id_col73: E::F,
        n_prev_limb_0_col74: E::F,
        n_prev_limb_1_col75: E::F,
        n_prev_limb_2_col76: E::F,
        n_prev_limb_3_col77: E::F,
        partial_limb_msb_col78: E::F,
        values_ptr_prev_id_col79: E::F,
        p_prev0_id_col80: E::F,
        p_prev1_id_col81: E::F,
        p_prev2_id_col82: E::F,
        p_prev3_id_col83: E::F,
        offsets_a_id_col84: E::F,
        msb_col85: E::F,
        mid_limbs_set_col86: E::F,
        offsets_a_limb_0_col87: E::F,
        offsets_a_limb_1_col88: E::F,
        offsets_a_limb_2_col89: E::F,
        remainder_bits_col90: E::F,
        partial_limb_msb_col91: E::F,
        offsets_b_id_col92: E::F,
        msb_col93: E::F,
        mid_limbs_set_col94: E::F,
        offsets_b_limb_0_col95: E::F,
        offsets_b_limb_1_col96: E::F,
        offsets_b_limb_2_col97: E::F,
        remainder_bits_col98: E::F,
        partial_limb_msb_col99: E::F,
        offsets_c_id_col100: E::F,
        msb_col101: E::F,
        mid_limbs_set_col102: E::F,
        offsets_c_limb_0_col103: E::F,
        offsets_c_limb_1_col104: E::F,
        offsets_c_limb_2_col105: E::F,
        remainder_bits_col106: E::F,
        partial_limb_msb_col107: E::F,
        a0_id_col108: E::F,
        a0_limb_0_col109: E::F,
        a0_limb_1_col110: E::F,
        a0_limb_2_col111: E::F,
        a0_limb_3_col112: E::F,
        a0_limb_4_col113: E::F,
        a0_limb_5_col114: E::F,
        a0_limb_6_col115: E::F,
        a0_limb_7_col116: E::F,
        a0_limb_8_col117: E::F,
        a0_limb_9_col118: E::F,
        a0_limb_10_col119: E::F,
        a1_id_col120: E::F,
        a1_limb_0_col121: E::F,
        a1_limb_1_col122: E::F,
        a1_limb_2_col123: E::F,
        a1_limb_3_col124: E::F,
        a1_limb_4_col125: E::F,
        a1_limb_5_col126: E::F,
        a1_limb_6_col127: E::F,
        a1_limb_7_col128: E::F,
        a1_limb_8_col129: E::F,
        a1_limb_9_col130: E::F,
        a1_limb_10_col131: E::F,
        a2_id_col132: E::F,
        a2_limb_0_col133: E::F,
        a2_limb_1_col134: E::F,
        a2_limb_2_col135: E::F,
        a2_limb_3_col136: E::F,
        a2_limb_4_col137: E::F,
        a2_limb_5_col138: E::F,
        a2_limb_6_col139: E::F,
        a2_limb_7_col140: E::F,
        a2_limb_8_col141: E::F,
        a2_limb_9_col142: E::F,
        a2_limb_10_col143: E::F,
        a3_id_col144: E::F,
        a3_limb_0_col145: E::F,
        a3_limb_1_col146: E::F,
        a3_limb_2_col147: E::F,
        a3_limb_3_col148: E::F,
        a3_limb_4_col149: E::F,
        a3_limb_5_col150: E::F,
        a3_limb_6_col151: E::F,
        a3_limb_7_col152: E::F,
        a3_limb_8_col153: E::F,
        a3_limb_9_col154: E::F,
        a3_limb_10_col155: E::F,
        b0_id_col156: E::F,
        b0_limb_0_col157: E::F,
        b0_limb_1_col158: E::F,
        b0_limb_2_col159: E::F,
        b0_limb_3_col160: E::F,
        b0_limb_4_col161: E::F,
        b0_limb_5_col162: E::F,
        b0_limb_6_col163: E::F,
        b0_limb_7_col164: E::F,
        b0_limb_8_col165: E::F,
        b0_limb_9_col166: E::F,
        b0_limb_10_col167: E::F,
        b1_id_col168: E::F,
        b1_limb_0_col169: E::F,
        b1_limb_1_col170: E::F,
        b1_limb_2_col171: E::F,
        b1_limb_3_col172: E::F,
        b1_limb_4_col173: E::F,
        b1_limb_5_col174: E::F,
        b1_limb_6_col175: E::F,
        b1_limb_7_col176: E::F,
        b1_limb_8_col177: E::F,
        b1_limb_9_col178: E::F,
        b1_limb_10_col179: E::F,
        b2_id_col180: E::F,
        b2_limb_0_col181: E::F,
        b2_limb_1_col182: E::F,
        b2_limb_2_col183: E::F,
        b2_limb_3_col184: E::F,
        b2_limb_4_col185: E::F,
        b2_limb_5_col186: E::F,
        b2_limb_6_col187: E::F,
        b2_limb_7_col188: E::F,
        b2_limb_8_col189: E::F,
        b2_limb_9_col190: E::F,
        b2_limb_10_col191: E::F,
        b3_id_col192: E::F,
        b3_limb_0_col193: E::F,
        b3_limb_1_col194: E::F,
        b3_limb_2_col195: E::F,
        b3_limb_3_col196: E::F,
        b3_limb_4_col197: E::F,
        b3_limb_5_col198: E::F,
        b3_limb_6_col199: E::F,
        b3_limb_7_col200: E::F,
        b3_limb_8_col201: E::F,
        b3_limb_9_col202: E::F,
        b3_limb_10_col203: E::F,
        c0_id_col204: E::F,
        c0_limb_0_col205: E::F,
        c0_limb_1_col206: E::F,
        c0_limb_2_col207: E::F,
        c0_limb_3_col208: E::F,
        c0_limb_4_col209: E::F,
        c0_limb_5_col210: E::F,
        c0_limb_6_col211: E::F,
        c0_limb_7_col212: E::F,
        c0_limb_8_col213: E::F,
        c0_limb_9_col214: E::F,
        c0_limb_10_col215: E::F,
        c1_id_col216: E::F,
        c1_limb_0_col217: E::F,
        c1_limb_1_col218: E::F,
        c1_limb_2_col219: E::F,
        c1_limb_3_col220: E::F,
        c1_limb_4_col221: E::F,
        c1_limb_5_col222: E::F,
        c1_limb_6_col223: E::F,
        c1_limb_7_col224: E::F,
        c1_limb_8_col225: E::F,
        c1_limb_9_col226: E::F,
        c1_limb_10_col227: E::F,
        c2_id_col228: E::F,
        c2_limb_0_col229: E::F,
        c2_limb_1_col230: E::F,
        c2_limb_2_col231: E::F,
        c2_limb_3_col232: E::F,
        c2_limb_4_col233: E::F,
        c2_limb_5_col234: E::F,
        c2_limb_6_col235: E::F,
        c2_limb_7_col236: E::F,
        c2_limb_8_col237: E::F,
        c2_limb_9_col238: E::F,
        c2_limb_10_col239: E::F,
        c3_id_col240: E::F,
        c3_limb_0_col241: E::F,
        c3_limb_1_col242: E::F,
        c3_limb_2_col243: E::F,
        c3_limb_3_col244: E::F,
        c3_limb_4_col245: E::F,
        c3_limb_5_col246: E::F,
        c3_limb_6_col247: E::F,
        c3_limb_7_col248: E::F,
        c3_limb_8_col249: E::F,
        c3_limb_9_col250: E::F,
        c3_limb_10_col251: E::F,
        common_lookup_elements: &relations::CommonLookupElements,
        eval: &mut E,
    ) -> [E::F; 0] {
        let M31_1 = E::F::from(M31::from(1));
        let M31_134217728 = E::F::from(M31::from(134217728));
        let M31_2 = E::F::from(M31::from(2));
        let M31_262144 = E::F::from(M31::from(262144));
        let M31_3 = E::F::from(M31::from(3));
        let M31_4 = E::F::from(M31::from(4));
        let M31_5 = E::F::from(M31::from(5));
        let M31_512 = E::F::from(M31::from(512));
        let M31_6 = E::F::from(M31::from(6));
        let M31_7 = E::F::from(M31::from(7));

        // is_instance_0 is 0 or 1..
        eval.add_constraint(
            (is_instance_0_col0.clone() * (is_instance_0_col0.clone() - M31_1.clone())),
        );
        // is_instance_0 is 0 when instance_num is not 0..
        eval.add_constraint((is_instance_0_col0.clone() * mod_utils_input_instance_num.clone()));
        let is_instance_0_minus_1_tmp_7b599_1 =
            eval.add_intermediate((is_instance_0_col0.clone() - M31_1.clone()));
        let instance_addr_tmp_7b599_2 = eval.add_intermediate(
            (mod_utils_input_first_addr.clone()
                + (M31_7.clone() * mod_utils_input_instance_num.clone())),
        );
        let prev_instance_addr_tmp_7b599_3 = eval.add_intermediate(
            (instance_addr_tmp_7b599_2.clone()
                + (M31_7.clone() * is_instance_0_minus_1_tmp_7b599_1.clone())),
        );
        ReadPositiveNumBits99::evaluate(
            [instance_addr_tmp_7b599_2.clone()],
            p0_id_col1.clone(),
            p0_limb_0_col2.clone(),
            p0_limb_1_col3.clone(),
            p0_limb_2_col4.clone(),
            p0_limb_3_col5.clone(),
            p0_limb_4_col6.clone(),
            p0_limb_5_col7.clone(),
            p0_limb_6_col8.clone(),
            p0_limb_7_col9.clone(),
            p0_limb_8_col10.clone(),
            p0_limb_9_col11.clone(),
            p0_limb_10_col12.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits99::evaluate(
            [(instance_addr_tmp_7b599_2.clone() + M31_1.clone())],
            p1_id_col13.clone(),
            p1_limb_0_col14.clone(),
            p1_limb_1_col15.clone(),
            p1_limb_2_col16.clone(),
            p1_limb_3_col17.clone(),
            p1_limb_4_col18.clone(),
            p1_limb_5_col19.clone(),
            p1_limb_6_col20.clone(),
            p1_limb_7_col21.clone(),
            p1_limb_8_col22.clone(),
            p1_limb_9_col23.clone(),
            p1_limb_10_col24.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits99::evaluate(
            [(instance_addr_tmp_7b599_2.clone() + M31_2.clone())],
            p2_id_col25.clone(),
            p2_limb_0_col26.clone(),
            p2_limb_1_col27.clone(),
            p2_limb_2_col28.clone(),
            p2_limb_3_col29.clone(),
            p2_limb_4_col30.clone(),
            p2_limb_5_col31.clone(),
            p2_limb_6_col32.clone(),
            p2_limb_7_col33.clone(),
            p2_limb_8_col34.clone(),
            p2_limb_9_col35.clone(),
            p2_limb_10_col36.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits99::evaluate(
            [(instance_addr_tmp_7b599_2.clone() + M31_3.clone())],
            p3_id_col37.clone(),
            p3_limb_0_col38.clone(),
            p3_limb_1_col39.clone(),
            p3_limb_2_col40.clone(),
            p3_limb_3_col41.clone(),
            p3_limb_4_col42.clone(),
            p3_limb_5_col43.clone(),
            p3_limb_6_col44.clone(),
            p3_limb_7_col45.clone(),
            p3_limb_8_col46.clone(),
            p3_limb_9_col47.clone(),
            p3_limb_10_col48.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits29::evaluate(
            [(instance_addr_tmp_7b599_2.clone() + M31_4.clone())],
            values_ptr_id_col49.clone(),
            values_ptr_limb_0_col50.clone(),
            values_ptr_limb_1_col51.clone(),
            values_ptr_limb_2_col52.clone(),
            values_ptr_limb_3_col53.clone(),
            partial_limb_msb_col54.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits29::evaluate(
            [(instance_addr_tmp_7b599_2.clone() + M31_5.clone())],
            offsets_ptr_id_col55.clone(),
            offsets_ptr_limb_0_col56.clone(),
            offsets_ptr_limb_1_col57.clone(),
            offsets_ptr_limb_2_col58.clone(),
            offsets_ptr_limb_3_col59.clone(),
            partial_limb_msb_col60.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits29::evaluate(
            [(prev_instance_addr_tmp_7b599_3.clone() + M31_5.clone())],
            offsets_ptr_prev_id_col61.clone(),
            offsets_ptr_prev_limb_0_col62.clone(),
            offsets_ptr_prev_limb_1_col63.clone(),
            offsets_ptr_prev_limb_2_col64.clone(),
            offsets_ptr_prev_limb_3_col65.clone(),
            partial_limb_msb_col66.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits29::evaluate(
            [(instance_addr_tmp_7b599_2.clone() + M31_6.clone())],
            n_id_col67.clone(),
            n_limb_0_col68.clone(),
            n_limb_1_col69.clone(),
            n_limb_2_col70.clone(),
            n_limb_3_col71.clone(),
            partial_limb_msb_col72.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits29::evaluate(
            [(prev_instance_addr_tmp_7b599_3.clone() + M31_6.clone())],
            n_prev_id_col73.clone(),
            n_prev_limb_0_col74.clone(),
            n_prev_limb_1_col75.clone(),
            n_prev_limb_2_col76.clone(),
            n_prev_limb_3_col77.clone(),
            partial_limb_msb_col78.clone(),
            common_lookup_elements,
            eval,
        );
        let n_prev_minus_1_tmp_7b599_59 = eval.add_intermediate(
            ((((n_prev_limb_0_col74.clone() + (n_prev_limb_1_col75.clone() * M31_512.clone()))
                + (n_prev_limb_2_col76.clone() * M31_262144.clone()))
                + (n_prev_limb_3_col77.clone() * M31_134217728.clone()))
                - M31_1.clone()),
        );
        let offsets_ptr_tmp_7b599_60 = eval.add_intermediate(
            (((offsets_ptr_limb_0_col56.clone()
                + (offsets_ptr_limb_1_col57.clone() * M31_512.clone()))
                + (offsets_ptr_limb_2_col58.clone() * M31_262144.clone()))
                + (offsets_ptr_limb_3_col59.clone() * M31_134217728.clone())),
        );
        let block_reset_condition_tmp_7b599_61 = eval.add_intermediate(
            (n_prev_minus_1_tmp_7b599_59.clone() * is_instance_0_minus_1_tmp_7b599_1.clone()),
        );
        // Progression of n between instances..
        eval.add_constraint(
            (block_reset_condition_tmp_7b599_61.clone()
                * (n_prev_minus_1_tmp_7b599_59.clone()
                    - (((n_limb_0_col68.clone() + (n_limb_1_col69.clone() * M31_512.clone()))
                        + (n_limb_2_col70.clone() * M31_262144.clone()))
                        + (n_limb_3_col71.clone() * M31_134217728.clone())))),
        );
        // Progression of offsets_ptr between instances..
        eval.add_constraint(
            (block_reset_condition_tmp_7b599_61.clone()
                * ((offsets_ptr_tmp_7b599_60.clone() - M31_3.clone())
                    - (((offsets_ptr_prev_limb_0_col62.clone()
                        + (offsets_ptr_prev_limb_1_col63.clone() * M31_512.clone()))
                        + (offsets_ptr_prev_limb_2_col64.clone() * M31_262144.clone()))
                        + (offsets_ptr_prev_limb_3_col65.clone() * M31_134217728.clone())))),
        );
        MemCondVerifyEqualKnownId::evaluate(
            [
                (prev_instance_addr_tmp_7b599_3.clone() + M31_4.clone()),
                values_ptr_id_col49.clone(),
                block_reset_condition_tmp_7b599_61.clone(),
            ],
            values_ptr_prev_id_col79.clone(),
            common_lookup_elements,
            eval,
        );
        MemCondVerifyEqualKnownId::evaluate(
            [
                prev_instance_addr_tmp_7b599_3.clone(),
                p0_id_col1.clone(),
                block_reset_condition_tmp_7b599_61.clone(),
            ],
            p_prev0_id_col80.clone(),
            common_lookup_elements,
            eval,
        );
        MemCondVerifyEqualKnownId::evaluate(
            [
                (prev_instance_addr_tmp_7b599_3.clone() + M31_1.clone()),
                p1_id_col13.clone(),
                block_reset_condition_tmp_7b599_61.clone(),
            ],
            p_prev1_id_col81.clone(),
            common_lookup_elements,
            eval,
        );
        MemCondVerifyEqualKnownId::evaluate(
            [
                (prev_instance_addr_tmp_7b599_3.clone() + M31_2.clone()),
                p2_id_col25.clone(),
                block_reset_condition_tmp_7b599_61.clone(),
            ],
            p_prev2_id_col82.clone(),
            common_lookup_elements,
            eval,
        );
        MemCondVerifyEqualKnownId::evaluate(
            [
                (prev_instance_addr_tmp_7b599_3.clone() + M31_3.clone()),
                p3_id_col37.clone(),
                block_reset_condition_tmp_7b599_61.clone(),
            ],
            p_prev3_id_col83.clone(),
            common_lookup_elements,
            eval,
        );
        let [read_small_output_tmp_7b599_81_limb_0] = ReadSmall::evaluate(
            [offsets_ptr_tmp_7b599_60.clone()],
            offsets_a_id_col84.clone(),
            msb_col85.clone(),
            mid_limbs_set_col86.clone(),
            offsets_a_limb_0_col87.clone(),
            offsets_a_limb_1_col88.clone(),
            offsets_a_limb_2_col89.clone(),
            remainder_bits_col90.clone(),
            partial_limb_msb_col91.clone(),
            common_lookup_elements,
            eval,
        );
        let [read_small_output_tmp_7b599_91_limb_0] = ReadSmall::evaluate(
            [(offsets_ptr_tmp_7b599_60.clone() + M31_1.clone())],
            offsets_b_id_col92.clone(),
            msb_col93.clone(),
            mid_limbs_set_col94.clone(),
            offsets_b_limb_0_col95.clone(),
            offsets_b_limb_1_col96.clone(),
            offsets_b_limb_2_col97.clone(),
            remainder_bits_col98.clone(),
            partial_limb_msb_col99.clone(),
            common_lookup_elements,
            eval,
        );
        let [read_small_output_tmp_7b599_101_limb_0] = ReadSmall::evaluate(
            [(offsets_ptr_tmp_7b599_60.clone() + M31_2.clone())],
            offsets_c_id_col100.clone(),
            msb_col101.clone(),
            mid_limbs_set_col102.clone(),
            offsets_c_limb_0_col103.clone(),
            offsets_c_limb_1_col104.clone(),
            offsets_c_limb_2_col105.clone(),
            remainder_bits_col106.clone(),
            partial_limb_msb_col107.clone(),
            common_lookup_elements,
            eval,
        );
        let values_ptr_tmp_7b599_102 = eval.add_intermediate(
            (((values_ptr_limb_0_col50.clone()
                + (values_ptr_limb_1_col51.clone() * M31_512.clone()))
                + (values_ptr_limb_2_col52.clone() * M31_262144.clone()))
                + (values_ptr_limb_3_col53.clone() * M31_134217728.clone())),
        );
        ReadPositiveNumBits99::evaluate(
            [(values_ptr_tmp_7b599_102.clone() + read_small_output_tmp_7b599_81_limb_0.clone())],
            a0_id_col108.clone(),
            a0_limb_0_col109.clone(),
            a0_limb_1_col110.clone(),
            a0_limb_2_col111.clone(),
            a0_limb_3_col112.clone(),
            a0_limb_4_col113.clone(),
            a0_limb_5_col114.clone(),
            a0_limb_6_col115.clone(),
            a0_limb_7_col116.clone(),
            a0_limb_8_col117.clone(),
            a0_limb_9_col118.clone(),
            a0_limb_10_col119.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits99::evaluate(
            [
                ((values_ptr_tmp_7b599_102.clone()
                    + read_small_output_tmp_7b599_81_limb_0.clone())
                    + M31_1.clone()),
            ],
            a1_id_col120.clone(),
            a1_limb_0_col121.clone(),
            a1_limb_1_col122.clone(),
            a1_limb_2_col123.clone(),
            a1_limb_3_col124.clone(),
            a1_limb_4_col125.clone(),
            a1_limb_5_col126.clone(),
            a1_limb_6_col127.clone(),
            a1_limb_7_col128.clone(),
            a1_limb_8_col129.clone(),
            a1_limb_9_col130.clone(),
            a1_limb_10_col131.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits99::evaluate(
            [
                ((values_ptr_tmp_7b599_102.clone()
                    + read_small_output_tmp_7b599_81_limb_0.clone())
                    + M31_2.clone()),
            ],
            a2_id_col132.clone(),
            a2_limb_0_col133.clone(),
            a2_limb_1_col134.clone(),
            a2_limb_2_col135.clone(),
            a2_limb_3_col136.clone(),
            a2_limb_4_col137.clone(),
            a2_limb_5_col138.clone(),
            a2_limb_6_col139.clone(),
            a2_limb_7_col140.clone(),
            a2_limb_8_col141.clone(),
            a2_limb_9_col142.clone(),
            a2_limb_10_col143.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits99::evaluate(
            [
                ((values_ptr_tmp_7b599_102.clone()
                    + read_small_output_tmp_7b599_81_limb_0.clone())
                    + M31_3.clone()),
            ],
            a3_id_col144.clone(),
            a3_limb_0_col145.clone(),
            a3_limb_1_col146.clone(),
            a3_limb_2_col147.clone(),
            a3_limb_3_col148.clone(),
            a3_limb_4_col149.clone(),
            a3_limb_5_col150.clone(),
            a3_limb_6_col151.clone(),
            a3_limb_7_col152.clone(),
            a3_limb_8_col153.clone(),
            a3_limb_9_col154.clone(),
            a3_limb_10_col155.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits99::evaluate(
            [(values_ptr_tmp_7b599_102.clone() + read_small_output_tmp_7b599_91_limb_0.clone())],
            b0_id_col156.clone(),
            b0_limb_0_col157.clone(),
            b0_limb_1_col158.clone(),
            b0_limb_2_col159.clone(),
            b0_limb_3_col160.clone(),
            b0_limb_4_col161.clone(),
            b0_limb_5_col162.clone(),
            b0_limb_6_col163.clone(),
            b0_limb_7_col164.clone(),
            b0_limb_8_col165.clone(),
            b0_limb_9_col166.clone(),
            b0_limb_10_col167.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits99::evaluate(
            [
                ((values_ptr_tmp_7b599_102.clone()
                    + read_small_output_tmp_7b599_91_limb_0.clone())
                    + M31_1.clone()),
            ],
            b1_id_col168.clone(),
            b1_limb_0_col169.clone(),
            b1_limb_1_col170.clone(),
            b1_limb_2_col171.clone(),
            b1_limb_3_col172.clone(),
            b1_limb_4_col173.clone(),
            b1_limb_5_col174.clone(),
            b1_limb_6_col175.clone(),
            b1_limb_7_col176.clone(),
            b1_limb_8_col177.clone(),
            b1_limb_9_col178.clone(),
            b1_limb_10_col179.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits99::evaluate(
            [
                ((values_ptr_tmp_7b599_102.clone()
                    + read_small_output_tmp_7b599_91_limb_0.clone())
                    + M31_2.clone()),
            ],
            b2_id_col180.clone(),
            b2_limb_0_col181.clone(),
            b2_limb_1_col182.clone(),
            b2_limb_2_col183.clone(),
            b2_limb_3_col184.clone(),
            b2_limb_4_col185.clone(),
            b2_limb_5_col186.clone(),
            b2_limb_6_col187.clone(),
            b2_limb_7_col188.clone(),
            b2_limb_8_col189.clone(),
            b2_limb_9_col190.clone(),
            b2_limb_10_col191.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits99::evaluate(
            [
                ((values_ptr_tmp_7b599_102.clone()
                    + read_small_output_tmp_7b599_91_limb_0.clone())
                    + M31_3.clone()),
            ],
            b3_id_col192.clone(),
            b3_limb_0_col193.clone(),
            b3_limb_1_col194.clone(),
            b3_limb_2_col195.clone(),
            b3_limb_3_col196.clone(),
            b3_limb_4_col197.clone(),
            b3_limb_5_col198.clone(),
            b3_limb_6_col199.clone(),
            b3_limb_7_col200.clone(),
            b3_limb_8_col201.clone(),
            b3_limb_9_col202.clone(),
            b3_limb_10_col203.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits99::evaluate(
            [(values_ptr_tmp_7b599_102.clone() + read_small_output_tmp_7b599_101_limb_0.clone())],
            c0_id_col204.clone(),
            c0_limb_0_col205.clone(),
            c0_limb_1_col206.clone(),
            c0_limb_2_col207.clone(),
            c0_limb_3_col208.clone(),
            c0_limb_4_col209.clone(),
            c0_limb_5_col210.clone(),
            c0_limb_6_col211.clone(),
            c0_limb_7_col212.clone(),
            c0_limb_8_col213.clone(),
            c0_limb_9_col214.clone(),
            c0_limb_10_col215.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits99::evaluate(
            [
                ((values_ptr_tmp_7b599_102.clone()
                    + read_small_output_tmp_7b599_101_limb_0.clone())
                    + M31_1.clone()),
            ],
            c1_id_col216.clone(),
            c1_limb_0_col217.clone(),
            c1_limb_1_col218.clone(),
            c1_limb_2_col219.clone(),
            c1_limb_3_col220.clone(),
            c1_limb_4_col221.clone(),
            c1_limb_5_col222.clone(),
            c1_limb_6_col223.clone(),
            c1_limb_7_col224.clone(),
            c1_limb_8_col225.clone(),
            c1_limb_9_col226.clone(),
            c1_limb_10_col227.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits99::evaluate(
            [
                ((values_ptr_tmp_7b599_102.clone()
                    + read_small_output_tmp_7b599_101_limb_0.clone())
                    + M31_2.clone()),
            ],
            c2_id_col228.clone(),
            c2_limb_0_col229.clone(),
            c2_limb_1_col230.clone(),
            c2_limb_2_col231.clone(),
            c2_limb_3_col232.clone(),
            c2_limb_4_col233.clone(),
            c2_limb_5_col234.clone(),
            c2_limb_6_col235.clone(),
            c2_limb_7_col236.clone(),
            c2_limb_8_col237.clone(),
            c2_limb_9_col238.clone(),
            c2_limb_10_col239.clone(),
            common_lookup_elements,
            eval,
        );
        ReadPositiveNumBits99::evaluate(
            [
                ((values_ptr_tmp_7b599_102.clone()
                    + read_small_output_tmp_7b599_101_limb_0.clone())
                    + M31_3.clone()),
            ],
            c3_id_col240.clone(),
            c3_limb_0_col241.clone(),
            c3_limb_1_col242.clone(),
            c3_limb_2_col243.clone(),
            c3_limb_3_col244.clone(),
            c3_limb_4_col245.clone(),
            c3_limb_5_col246.clone(),
            c3_limb_6_col247.clone(),
            c3_limb_7_col248.clone(),
            c3_limb_8_col249.clone(),
            c3_limb_9_col250.clone(),
            c3_limb_10_col251.clone(),
            common_lookup_elements,
            eval,
        );
        []
    }
}
