public override Object HandleValue(PipelineContext ctx, String key, Object value)
        {
            value = ConvertAndCallScript(ctx, key, value);
            if ((ctx.ActionFlags & _ActionFlags.Skip) != 0)
            {
                ctx.Skipped++; if (AutoClearOnSkip)
                {
                    goto CLEAR;
                }
                goto EXIT_RTN;
            }

            if (Categories != null)
            {
                foreach (var cat in Categories)
                {
                    cat.HandleRecord(ctx);
                }
            }

            if (cond != null && !(cond.NeedRecord ? cond.HasCondition((JObject)endPoint.GetField(null)) : cond.HasCondition(value.ToJToken())))
            {
                ctx.Skipped++;
                goto CLEAR;
            }

            ctx.IncrementAndLogAdd();
            endPoint.Add(ctx);

CLEAR:
            endPoint.Clear();
            pipeline.ClearVariables();

EXIT_RTN:
            return(value);
        }