_iotracectl() {
    local i cur prev opts cmds
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"
    cmd=""
    opts=""

    for i in ${COMP_WORDS[@]}
    do
        case "${i}" in
            iotracectl)
                cmd="iotracectl"
                ;;
            
            add)
                cmd+="__add"
                ;;
            analyze)
                cmd+="__analyze"
                ;;
            blacklist)
                cmd+="__blacklist"
                ;;
            clear)
                cmd+="__clear"
                ;;
            completions)
                cmd+="__completions"
                ;;
            delete)
                cmd+="__delete"
                ;;
            dump)
                cmd+="__dump"
                ;;
            help)
                cmd+="__help"
                ;;
            info)
                cmd+="__info"
                ;;
            list)
                cmd+="__list"
                ;;
            optimize)
                cmd+="__optimize"
                ;;
            remove)
                cmd+="__remove"
                ;;
            show)
                cmd+="__show"
                ;;
            sizes)
                cmd+="__sizes"
                ;;
            status)
                cmd+="__status"
                ;;
            *)
                ;;
        esac
    done

    case "${cmd}" in
        iotracectl)
            opts=" -a -u -v -h -V -c  --ascii --unicode --help --version --config   status list info dump analyze sizes optimize blacklist remove clear help completions  show  delete"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                --config)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -c)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        
        iotracectl__analyze)
            opts=" -t -h -V -p  --tabular --terse --help --version --hash  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                --hash)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -p)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        iotracectl__blacklist)
            opts=" -h -V  --help --version   add remove help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        iotracectl__blacklist__add)
            opts=" -n -h -V -p -e -o -b  --dry-run --help --version --hash --executable --optimized --blacklisted --flags --sort --order  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                --hash)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -p)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --executable)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -e)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --optimized)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -o)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --blacklisted)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -b)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --flags)
                    COMPREPLY=($(compgen -W "valid invalid fresh expired current outdated missing" -- ${cur}))
                    return 0
                    ;;
                --sort)
                    COMPREPLY=($(compgen -W "executable hash date numfiles numioops iosize optimized blacklisted" -- ${cur}))
                    return 0
                    ;;
                --order)
                    COMPREPLY=($(compgen -W "asc ascending desc descending" -- ${cur}))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        iotracectl__blacklist__help)
            opts=" -h -V  --help --version  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        iotracectl__blacklist__remove)
            opts=" -n -h -V -p -e -o -b  --dry-run --help --version --hash --executable --optimized --blacklisted --flags --sort --order  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                --hash)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -p)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --executable)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -e)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --optimized)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -o)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --blacklisted)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -b)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --flags)
                    COMPREPLY=($(compgen -W "valid invalid fresh expired current outdated missing" -- ${cur}))
                    return 0
                    ;;
                --sort)
                    COMPREPLY=($(compgen -W "executable hash date numfiles numioops iosize optimized blacklisted" -- ${cur}))
                    return 0
                    ;;
                --order)
                    COMPREPLY=($(compgen -W "asc ascending desc descending" -- ${cur}))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        iotracectl__clear)
            opts=" -n -h -V  --dry-run --help --version  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        iotracectl__completions)
            opts=" -h -V  --help --version  <SHELL> "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        iotracectl__delete)
            opts=" -n -h -V -p -e -o -b  --dry-run --help --version --hash --executable --optimized --blacklisted --flags --sort --order  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                --hash)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -p)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --executable)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -e)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --optimized)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -o)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --blacklisted)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -b)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --flags)
                    COMPREPLY=($(compgen -W "valid invalid fresh expired current outdated missing" -- ${cur}))
                    return 0
                    ;;
                --sort)
                    COMPREPLY=($(compgen -W "executable hash date numfiles numioops iosize optimized blacklisted" -- ${cur}))
                    return 0
                    ;;
                --order)
                    COMPREPLY=($(compgen -W "asc ascending desc descending" -- ${cur}))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        iotracectl__dump)
            opts=" -h -V -p  --help --version --hash  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                --hash)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -p)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        iotracectl__help)
            opts=" -h -V  --help --version  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        iotracectl__info)
            opts=" -f -s -h -V -p -e -o -b  --full --short --help --version --hash --executable --optimized --blacklisted --flags --sort --order  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                --hash)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -p)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --executable)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -e)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --optimized)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -o)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --blacklisted)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -b)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --flags)
                    COMPREPLY=($(compgen -W "valid invalid fresh expired current outdated missing" -- ${cur}))
                    return 0
                    ;;
                --sort)
                    COMPREPLY=($(compgen -W "executable hash date numfiles numioops iosize optimized blacklisted" -- ${cur}))
                    return 0
                    ;;
                --order)
                    COMPREPLY=($(compgen -W "asc ascending desc descending" -- ${cur}))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        iotracectl__list)
            opts=" -f -s -t -h -V -p -e -o -b  --tabular --full --short --terse --help --version --hash --executable --optimized --blacklisted --flags --sort --order  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                --hash)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -p)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --executable)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -e)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --optimized)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -o)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --blacklisted)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -b)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --flags)
                    COMPREPLY=($(compgen -W "valid invalid fresh expired current outdated missing" -- ${cur}))
                    return 0
                    ;;
                --sort)
                    COMPREPLY=($(compgen -W "executable hash date numfiles numioops iosize optimized blacklisted" -- ${cur}))
                    return 0
                    ;;
                --order)
                    COMPREPLY=($(compgen -W "asc ascending desc descending" -- ${cur}))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        iotracectl__optimize)
            opts=" -n -h -V -p -e -o -b  --dry-run --help --version --hash --executable --optimized --blacklisted --flags --sort --order  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                --hash)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -p)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --executable)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -e)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --optimized)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -o)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --blacklisted)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -b)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --flags)
                    COMPREPLY=($(compgen -W "valid invalid fresh expired current outdated missing" -- ${cur}))
                    return 0
                    ;;
                --sort)
                    COMPREPLY=($(compgen -W "executable hash date numfiles numioops iosize optimized blacklisted" -- ${cur}))
                    return 0
                    ;;
                --order)
                    COMPREPLY=($(compgen -W "asc ascending desc descending" -- ${cur}))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        iotracectl__remove)
            opts=" -n -h -V -p -e -o -b  --dry-run --help --version --hash --executable --optimized --blacklisted --flags --sort --order  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                --hash)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -p)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --executable)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -e)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --optimized)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -o)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --blacklisted)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -b)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --flags)
                    COMPREPLY=($(compgen -W "valid invalid fresh expired current outdated missing" -- ${cur}))
                    return 0
                    ;;
                --sort)
                    COMPREPLY=($(compgen -W "executable hash date numfiles numioops iosize optimized blacklisted" -- ${cur}))
                    return 0
                    ;;
                --order)
                    COMPREPLY=($(compgen -W "asc ascending desc descending" -- ${cur}))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        iotracectl__show)
            opts=" -f -s -h -V -p -e -o -b  --full --short --help --version --hash --executable --optimized --blacklisted --flags --sort --order  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                --hash)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -p)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --executable)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -e)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --optimized)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -o)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --blacklisted)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -b)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --flags)
                    COMPREPLY=($(compgen -W "valid invalid fresh expired current outdated missing" -- ${cur}))
                    return 0
                    ;;
                --sort)
                    COMPREPLY=($(compgen -W "executable hash date numfiles numioops iosize optimized blacklisted" -- ${cur}))
                    return 0
                    ;;
                --order)
                    COMPREPLY=($(compgen -W "asc ascending desc descending" -- ${cur}))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        iotracectl__sizes)
            opts=" -f -s -h -V -p -e -o -b  --full --short --help --version --hash --executable --optimized --blacklisted --flags  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                --hash)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -p)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --executable)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                    -e)
                    COMPREPLY=($(compgen -f ${cur}))
                    return 0
                    ;;
                --optimized)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -o)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --blacklisted)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                    -b)
                    COMPREPLY=($(compgen -W "true false" -- ${cur}))
                    return 0
                    ;;
                --flags)
                    COMPREPLY=($(compgen -W "valid invalid fresh expired current outdated missing" -- ${cur}))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
        iotracectl__status)
            opts=" -h -V  --tabular --help --version  "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
            fi
            case "${prev}" in
                
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
            return 0
            ;;
    esac
}

complete -F _iotracectl -o bashdefault -o default iotracectl
