0 / 60 seg.

Consider the following code snippet that uses decorators to calculate the execution time of execution_fn function:

import functools
import time
def timer(MISSING_ARG_1):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        start_time = time.perf_counter()
        rval = func(*args, **kwargs)
        end_time = time.perf_counter()
        duration = end_time - start_time
        print(f"Executed in {duration:.4f} seconds")
        return MISSING_ARG_2
    return MISSING_ARG_3
@timer
def execution_fn():
    for i in range(3):
        time.sleep(1)
execution_fn()

Which of the following choices are the missing arguments?