public override void Input0_ProcessInputRow(Input0Buffer Row)
    {
        /*
          Add your code here
        */
        bool type1Change = false;
        bool type2Change = false;
        bool fireAgain = true;

        /* Rows directed to Update output */
        if (!compareStrings(Row.Type1Hash, Row.TYPE1HASHDIM))
        {

            /* Debugging Stuff */
            if (Variables.blnDebug)
            {
                ComponentMetaData.FireInformation(0, "Separate Updates and Inserts", "Hash1 changed to: [" + Row.Type1Hash + "] from: [" + Row.TYPE1HASHDIM + "]", "", 0, ref fireAgain);
            }

            type1Change = true;
            Row.DirectRowToType1();

            /* Rows directed to Historical Insert output */
            if (!compareStrings(Row.Type2Hash, Row.TYPE2HASHDIM))
            {
                // Debugging
                if (Variables.blnDebug)
                {
                    ComponentMetaData.FireInformation(0, "Separate Updates and Inserts", "Hash2 changed to: [" + Row.Type2Hash + "] from: [" + Row.TYPE2HASHDIM + "]", "", 0, ref fireAgain);
                }
                type2Change = true;
                Row.DirectRowToType2();
            }

            /* Rows directed to unchanged output */
            if (!type1Change && !type2Change)
            {
                Row.DirectRowToUnchanged();
            }
        }
    }