def METHOD_NAME(self):
    if not any(socket.is_linked for socket in self.outputs):
        return
    curve_s = self.inputs['Curve'].sv_get()
    new_knots_s = self.inputs['NewKnots'].sv_get()
    resolution_s = self.inputs['Resolution'].sv_get()
    t_min_s = self.inputs['TMin'].sv_get()
    t_max_s = self.inputs['TMax'].sv_get()
    curves_level = get_data_nesting_level(curve_s, data_types=(SvCurve,))
    curve_s = ensure_nesting_level(curve_s, 2, data_types=(SvCurve,))
    new_knots_s = ensure_nesting_level(new_knots_s, 2)
    resolution_s = ensure_nesting_level(resolution_s, 2)
    t_min_s = ensure_nesting_level(t_min_s, 2)
    t_max_s = ensure_nesting_level(t_max_s, 2)
    curves_out = []
    new_knots_out = []
    for params in zip_long_repeat(curve_s, new_knots_s, resolution_s, t_min_s, t_max_s):
        curves_list = []
        new_knots_list = []
        for curve, new_knots, resolution, t_min, t_max in zip_long_repeat(*params):
            if not self.specify_segment:
                t_min = t_max = None
            if self.distribution == 'DISTRIBUTE_L':
                solver = SvCurveLengthSolver(curve)
                solver.prepare('SPL', resolution)
                algorithm = REFINE_DISTRIBUTE
            elif self.distribution == 'DISTRIBUTE_T':
                solver = None
                algorithm = REFINE_DISTRIBUTE
            elif self.distribution == 'BISECT_L':
                solver = SvCurveLengthSolver(curve)
                solver.prepare('SPL', resolution)
                algorithm = REFINE_BISECT
            elif self.distribution == 'BISECT_T':
                solver = None
                algorithm = REFINE_BISECT
            else:
                solver = None
                algorithm = REFINE_TRIVIAL
            new_knots, new_curve = refine_curve(curve, new_knots,
                            algorithm = algorithm,
                            t_min = t_min, t_max = t_max,
                            refine_max = self.max_mode == 'MAX',
                            solver = solver,
                            output_new_knots = True)
            curves_list.append(new_curve)
            new_knots_list.append(new_knots.tolist())
        if curves_level == 2:
            curves_out.append(curves_list)
            new_knots_out.append(new_knots_list)
        else:
            curves_out.extend(curves_list)
            new_knots_out.extend(new_knots_list)
    self.outputs['Curve'].sv_set(curves_out)
    self.outputs['NewKnots'].sv_set(new_knots_out)