# Generated by pkg/buildcompletion -- do not edit by hand.
_shtab_ivre_authcli_subparsers=(init add-user del-user activate-user deactivate-user set-admin unset-admin add-group del-group list-users create-api-key)
_shtab_ivre_subparsers=(airodump2db auditcli auditdom authcli bench db2view flow2db flowcli getmoduli getwebdata httpd httpd-ivre ipcalc ipdata ipinfo iphost ipinfohost iprange localscan macdata macinfo mcp_server mcp-server notes p0f2db passiverecon2db plotdb rirlookup scan2db nmap2db scancli scanstatus sort version view weblog2db zeek2db bro2db help)

_shtab_ivre_airodump2db_option_strings=(-h --help --sensor -s --ignore-spec -i --bulk --local-bulk --no-bulk -t --test -r --recursive)
_shtab_ivre_auditcli_option_strings=(-h --help --init --ensure-indexes --query --count --get --purge-older-than --event-type --user-email --since --until --limit --skip --indent)
_shtab_ivre_auditdom_option_strings=(-h --help --json --ipv4 -4 --ipv6 -6)
_shtab_ivre_authcli_init_option_strings=(-h --help)
_shtab_ivre_authcli_add_user_option_strings=(-h --help --admin --groups)
_shtab_ivre_authcli_del_user_option_strings=(-h --help)
_shtab_ivre_authcli_activate_user_option_strings=(-h --help)
_shtab_ivre_authcli_deactivate_user_option_strings=(-h --help)
_shtab_ivre_authcli_set_admin_option_strings=(-h --help)
_shtab_ivre_authcli_unset_admin_option_strings=(-h --help)
_shtab_ivre_authcli_add_group_option_strings=(-h --help)
_shtab_ivre_authcli_del_group_option_strings=(-h --help)
_shtab_ivre_authcli_list_users_option_strings=(-h --help)
_shtab_ivre_authcli_create_api_key_option_strings=(-h --help)
_shtab_ivre_authcli_option_strings=(-h --help)
_shtab_ivre_bench_option_strings=(-h --help --list --scenario --backend --iterations --warmup --output)
_shtab_ivre_db2view_option_strings=(-h --help --id --no-id --version --schema-version --category --port --service --svchostname --product --prodversion --product-version --useragent --host --range --net --ipv4 --ipv6 --mac --hassh --hostname --domain --hassh-server --hassh-client --cert --torcert --view-category --test -t --verbose -v --no-merge --to-db --processes)
_shtab_ivre_flow2db_option_strings=(-h --help -v --verbose -t --type -f --pcap-filter -C --no-cleanup)
_shtab_ivre_flowcli_option_strings=(-h --help --init --purgedb --ensure-indexes --node-filters -n --flow-filters -f --json -j --count -c --limit -l --skip --orderby -o --separator -s --top -t --collect -C --sum -S --least -L --mode -m --timeline -T --flow-daily --plot --fields --reduce-precision --after -a --before -b --precision --host --src --dst --proto --tcp --udp --port --dport --sport)
_shtab_ivre_getmoduli_option_strings=(-h --help)
_shtab_ivre_getwebdata_option_strings=(-h --help)
_shtab_ivre_httpd_option_strings=(-h --help --bind-address -b --port -p)
_shtab_ivre_httpd_ivre_option_strings=(-h --help --bind-address -b --port -p)
_shtab_ivre_ipcalc_option_strings=(-h --help)
_shtab_ivre_ipdata_option_strings=(-h --help --download --import-all --quiet -q --json -j --from-db)
_shtab_ivre_ipinfo_option_strings=(-h --help --id --no-id --version --schema-version --category --port --service --svchostname --product --prodversion --product-version --useragent --host --range --net --ipv4 --ipv6 --mac --hassh --hostname --domain --hassh-server --hassh-client --cert --torcert --sensor --dns --dnssub --basicauth --auth --java --ftp --pop --timeago --no-timeago --timeagonew --no-timeagonew --dnstype --ssl-ja3-server --ssl-ja3-client --ssl-ja4-client --ssl-ja4-client-raw --init --purgedb --ensure-indexes --update-schema --short --count --explain --distinct --json --from-db --sort --limit --skip --tail --tailnew --tailf --tailfnew --top --dnsbl-update)
_shtab_ivre_iphost_option_strings=(-h --help --sub --json --passive --passive-direct --passive-reverse --nmap --scans --all)
_shtab_ivre_ipinfohost_option_strings=(-h --help --sub --json --passive --passive-direct --passive-reverse --nmap --scans --all)
_shtab_ivre_iprange_option_strings=(-h --help --country -c --registered-country --region --city --asnum -a --range --network -n --routable --file -f --cidrs --ranges -r --count --addrs --json -j --limit -l --force)
_shtab_ivre_localscan_option_strings=(-h --help --json)
_shtab_ivre_macdata_option_strings=(-h --help --json -j)
_shtab_ivre_macinfo_option_strings=(-h --help -s --sensor -c --count -r --resolve)
_shtab_ivre_mcp_server_option_strings=(-h --help --http --bind --port --path --allow-anonymous)
_shtab_ivre_mcp_server_option_strings=(-h --help --http --bind --port --path --allow-anonymous)
_shtab_ivre_notes_option_strings=(-h --help --init --ensure-indexes --count --entity-type --import-from-dokuwiki)
_shtab_ivre_p0f2db_option_strings=(-h --help --sensor -s --ignore-spec -i --bulk --local-bulk --no-bulk -t --test -r --recursive)
_shtab_ivre_passiverecon2db_option_strings=(-h --help --sensor -s --ignore-spec -i --bulk --local-bulk --no-bulk -t --test -r --recursive)
_shtab_ivre_plotdb_option_strings=(-h --help --id --no-id --version --schema-version --category --port --service --svchostname --product --prodversion --product-version --useragent --host --range --net --ipv4 --ipv6 --mac --hassh --hostname --domain --hassh-server --hassh-client --cert --torcert --source --timeago --no-timeago --no-hostname --no-domain --hop --not-port --openport --no-openport --countports --no-countports --script --no-script --os --anonftp --anonldap --authhttp --authbypassvnc --ypserv --nis --nfs --x11 --xp445 --httphdr --httpapp --owa --vuln-boa --vuln-intersil --sshkey --tag --country --asname --asnum --search --ssl-ja3-server --ssl-ja3-client --ssl-ja4-client --ssl-ja4-client-raw --2d -2 --3d -3 --alert-445 --alert-nfs)
_shtab_ivre_rirlookup_option_strings=(-h --help --init --purgedb --ensure-indexes --update-schema --short --count --explain --distinct --json --from-db --sort --limit --skip --search --country --download --insert)
_shtab_ivre_scan2db_option_strings=(-h --help -c --categories -s --source -t --test --tags --test-normal --ports --port --open-ports --masscan-probes --zgrab-port -r --recursive --update-view --no-update-view)
_shtab_ivre_nmap2db_option_strings=(-h --help -c --categories -s --source -t --test --tags --test-normal --ports --port --open-ports --masscan-probes --zgrab-port -r --recursive --update-view --no-update-view)
_shtab_ivre_scancli_option_strings=(-h --help --id --no-id --version --schema-version --category --port --service --svchostname --product --prodversion --product-version --useragent --host --range --net --ipv4 --ipv6 --mac --hassh --hostname --domain --hassh-server --hassh-client --cert --torcert --source --timeago --no-timeago --no-hostname --no-domain --hop --not-port --openport --no-openport --countports --no-countports --script --no-script --os --anonftp --anonldap --authhttp --authbypassvnc --ypserv --nis --nfs --x11 --xp445 --httphdr --httpapp --owa --vuln-boa --vuln-intersil --sshkey --init --purgedb --ensure-indexes --update-schema --short --count --explain --distinct --json --from-db --sort --limit --skip --no-screenshots --honeyd --nmap-xml --gnmap --graphroute --graphroute-cluster --graphroute-include --top --csv --csv-separator --csv-add-infos --csv-na-str)
_shtab_ivre_scanstatus_option_strings=(-h --help)
_shtab_ivre_sort_option_strings=(-h --help -u --unique)
_shtab_ivre_version_option_strings=(-h --help)
_shtab_ivre_view_option_strings=(-h --help --id --no-id --version --schema-version --category --port --service --svchostname --product --prodversion --product-version --useragent --host --range --net --ipv4 --ipv6 --mac --hassh --hostname --domain --hassh-server --hassh-client --cert --torcert --source --timeago --no-timeago --no-hostname --no-domain --hop --not-port --openport --no-openport --countports --no-countports --script --no-script --os --anonftp --anonldap --authhttp --authbypassvnc --ypserv --nis --nfs --x11 --xp445 --httphdr --httpapp --owa --vuln-boa --vuln-intersil --sshkey --tag --country --asname --asnum --search --ssl-ja3-server --ssl-ja3-client --ssl-ja4-client --ssl-ja4-client-raw --init --purgedb --ensure-indexes --update-schema --short --count --explain --distinct --json --from-db --sort --limit --skip --verbose -v --no-screenshots --honeyd --nmap-xml --gnmap --graphroute --graphroute-cluster --graphroute-include --top --csv --csv-separator --csv-add-infos --csv-na-str)
_shtab_ivre_weblog2db_option_strings=(-h --help --sensor -s --ignore-spec -i --bulk --local-bulk --no-bulk -t --test -r --recursive)
_shtab_ivre_zeek2db_option_strings=(-h --help -v --verbose -C --no-cleanup -r --recursive)
_shtab_ivre_bro2db_option_strings=(-h --help -v --verbose -C --no-cleanup -r --recursive)
_shtab_ivre_help_option_strings=(-h --help)
_shtab_ivre_option_strings=(-h --help)

_shtab_ivre_airodump2db_pos_0_COMPGEN=_shtab_compgen_files
_shtab_ivre_flow2db_pos_0_COMPGEN=_shtab_compgen_files
_shtab_ivre_p0f2db_pos_0_COMPGEN=_shtab_compgen_files
_shtab_ivre_passiverecon2db_pos_0_COMPGEN=_shtab_compgen_files
_shtab_ivre_scan2db_pos_0_COMPGEN=_shtab_compgen_files
_shtab_ivre_nmap2db_pos_0_COMPGEN=_shtab_compgen_files
_shtab_ivre_weblog2db_pos_0_COMPGEN=_shtab_compgen_files
_shtab_ivre_zeek2db_pos_0_COMPGEN=_shtab_compgen_files
_shtab_ivre_bro2db_pos_0_COMPGEN=_shtab_compgen_files

_shtab_ivre_auditcli___event_type_choices=(upload admin_action oversize_query auth)
_shtab_ivre_authcli_pos_0_choices=(init add-user del-user activate-user deactivate-user set-admin unset-admin add-group del-group list-users create-api-key)
_shtab_ivre_db2view_pos_1_choices=(nmap passive all)
_shtab_ivre_flow2db__t_choices=(argus netflow iptables)
_shtab_ivre_flow2db___type_choices=(argus netflow iptables)
_shtab_ivre_scancli___graphroute_choices=(dot)
_shtab_ivre_scancli___graphroute_cluster_choices=(AS Country)
_shtab_ivre_scancli___graphroute_include_choices=(last-hop target)
_shtab_ivre_scancli___csv_choices=(ports hops)
_shtab_ivre_view___graphroute_choices=(dot)
_shtab_ivre_view___graphroute_cluster_choices=(AS Country)
_shtab_ivre_view___graphroute_include_choices=(last-hop target)
_shtab_ivre_view___csv_choices=(ports hops)
_shtab_ivre_help_pos_0_choices=(airodump2db auditcli auditdom authcli bench bro2db db2view flow2db flowcli getmoduli getwebdata httpd httpd-ivre ipcalc ipdata iphost ipinfo ipinfohost iprange localscan macdata macinfo mcp-server mcp_server nmap2db notes p0f2db passiverecon2db plotdb rirlookup scan2db scancli scanstatus sort version view weblog2db zeek2db)
_shtab_ivre_pos_0_choices=(airodump2db auditcli auditdom authcli bench db2view flow2db flowcli getmoduli getwebdata httpd httpd-ivre ipcalc ipdata ipinfo iphost ipinfohost iprange localscan macdata macinfo mcp_server mcp-server notes p0f2db passiverecon2db plotdb rirlookup scan2db nmap2db scancli scanstatus sort version view weblog2db zeek2db bro2db help)

_shtab_ivre_airodump2db_pos_0_nargs='*'
_shtab_ivre_airodump2db__h_nargs=0
_shtab_ivre_airodump2db___help_nargs=0
_shtab_ivre_airodump2db___bulk_nargs=0
_shtab_ivre_airodump2db___local_bulk_nargs=0
_shtab_ivre_airodump2db___no_bulk_nargs=0
_shtab_ivre_airodump2db__t_nargs=0
_shtab_ivre_airodump2db___test_nargs=0
_shtab_ivre_airodump2db__r_nargs=0
_shtab_ivre_airodump2db___recursive_nargs=0
_shtab_ivre_auditcli__h_nargs=0
_shtab_ivre_auditcli___help_nargs=0
_shtab_ivre_auditcli___init_nargs=0
_shtab_ivre_auditcli___ensure_indexes_nargs=0
_shtab_ivre_auditcli___query_nargs=0
_shtab_ivre_auditcli___count_nargs=0
_shtab_ivre_auditdom_pos_0_nargs=+
_shtab_ivre_auditdom__h_nargs=0
_shtab_ivre_auditdom___help_nargs=0
_shtab_ivre_auditdom___json_nargs=0
_shtab_ivre_auditdom___ipv4_nargs=0
_shtab_ivre_auditdom__4_nargs=0
_shtab_ivre_auditdom___ipv6_nargs=0
_shtab_ivre_auditdom__6_nargs=0
_shtab_ivre_authcli_init__h_nargs=0
_shtab_ivre_authcli_init___help_nargs=0
_shtab_ivre_authcli_add_user__h_nargs=0
_shtab_ivre_authcli_add_user___help_nargs=0
_shtab_ivre_authcli_add_user___admin_nargs=0
_shtab_ivre_authcli_add_user___groups_nargs='*'
_shtab_ivre_authcli_del_user__h_nargs=0
_shtab_ivre_authcli_del_user___help_nargs=0
_shtab_ivre_authcli_activate_user__h_nargs=0
_shtab_ivre_authcli_activate_user___help_nargs=0
_shtab_ivre_authcli_deactivate_user__h_nargs=0
_shtab_ivre_authcli_deactivate_user___help_nargs=0
_shtab_ivre_authcli_set_admin__h_nargs=0
_shtab_ivre_authcli_set_admin___help_nargs=0
_shtab_ivre_authcli_unset_admin__h_nargs=0
_shtab_ivre_authcli_unset_admin___help_nargs=0
_shtab_ivre_authcli_add_group__h_nargs=0
_shtab_ivre_authcli_add_group___help_nargs=0
_shtab_ivre_authcli_del_group__h_nargs=0
_shtab_ivre_authcli_del_group___help_nargs=0
_shtab_ivre_authcli_list_users__h_nargs=0
_shtab_ivre_authcli_list_users___help_nargs=0
_shtab_ivre_authcli_create_api_key__h_nargs=0
_shtab_ivre_authcli_create_api_key___help_nargs=0
_shtab_ivre_authcli_pos_0_nargs=A...
_shtab_ivre_authcli__h_nargs=0
_shtab_ivre_authcli___help_nargs=0
_shtab_ivre_bench__h_nargs=0
_shtab_ivre_bench___help_nargs=0
_shtab_ivre_bench___list_nargs=0
_shtab_ivre_db2view_pos_0_nargs='*'
_shtab_ivre_db2view_pos_1_nargs=A...
_shtab_ivre_db2view__h_nargs=0
_shtab_ivre_db2view___help_nargs=0
_shtab_ivre_db2view___id_nargs=+
_shtab_ivre_db2view___no_id_nargs=+
_shtab_ivre_db2view___useragent_nargs='?'
_shtab_ivre_db2view___range_nargs=2
_shtab_ivre_db2view___ipv4_nargs=0
_shtab_ivre_db2view___ipv6_nargs=0
_shtab_ivre_db2view___hassh_nargs='?'
_shtab_ivre_db2view___hassh_server_nargs='?'
_shtab_ivre_db2view___hassh_client_nargs='?'
_shtab_ivre_db2view___torcert_nargs=0
_shtab_ivre_db2view___test_nargs=0
_shtab_ivre_db2view__t_nargs=0
_shtab_ivre_db2view___verbose_nargs=0
_shtab_ivre_db2view__v_nargs=0
_shtab_ivre_db2view___no_merge_nargs=0
_shtab_ivre_flow2db_pos_0_nargs='*'
_shtab_ivre_flow2db__h_nargs=0
_shtab_ivre_flow2db___help_nargs=0
_shtab_ivre_flow2db__v_nargs=0
_shtab_ivre_flow2db___verbose_nargs=0
_shtab_ivre_flow2db__C_nargs=0
_shtab_ivre_flow2db___no_cleanup_nargs=0
_shtab_ivre_flowcli__h_nargs=0
_shtab_ivre_flowcli___help_nargs=0
_shtab_ivre_flowcli___init_nargs=0
_shtab_ivre_flowcli___purgedb_nargs=0
_shtab_ivre_flowcli___ensure_indexes_nargs=0
_shtab_ivre_flowcli___node_filters_nargs=+
_shtab_ivre_flowcli__n_nargs=+
_shtab_ivre_flowcli___flow_filters_nargs=+
_shtab_ivre_flowcli__f_nargs=+
_shtab_ivre_flowcli___json_nargs=0
_shtab_ivre_flowcli__j_nargs=0
_shtab_ivre_flowcli___count_nargs=0
_shtab_ivre_flowcli__c_nargs=0
_shtab_ivre_flowcli___top_nargs=+
_shtab_ivre_flowcli__t_nargs=+
_shtab_ivre_flowcli___collect_nargs=+
_shtab_ivre_flowcli__C_nargs=+
_shtab_ivre_flowcli___sum_nargs=+
_shtab_ivre_flowcli__S_nargs=+
_shtab_ivre_flowcli___least_nargs=0
_shtab_ivre_flowcli__L_nargs=0
_shtab_ivre_flowcli___timeline_nargs=0
_shtab_ivre_flowcli__T_nargs=0
_shtab_ivre_flowcli___flow_daily_nargs=0
_shtab_ivre_flowcli___plot_nargs=0
_shtab_ivre_flowcli___fields_nargs='*'
_shtab_ivre_flowcli___precision_nargs='?'
_shtab_ivre_flowcli___tcp_nargs=0
_shtab_ivre_flowcli___udp_nargs=0
_shtab_ivre_getmoduli__h_nargs=0
_shtab_ivre_getmoduli___help_nargs=0
_shtab_ivre_getwebdata__h_nargs=0
_shtab_ivre_getwebdata___help_nargs=0
_shtab_ivre_httpd__h_nargs=0
_shtab_ivre_httpd___help_nargs=0
_shtab_ivre_httpd_ivre__h_nargs=0
_shtab_ivre_httpd_ivre___help_nargs=0
_shtab_ivre_ipcalc_pos_0_nargs='*'
_shtab_ivre_ipcalc__h_nargs=0
_shtab_ivre_ipcalc___help_nargs=0
_shtab_ivre_ipdata_pos_0_nargs='*'
_shtab_ivre_ipdata__h_nargs=0
_shtab_ivre_ipdata___help_nargs=0
_shtab_ivre_ipdata___download_nargs=0
_shtab_ivre_ipdata___import_all_nargs=0
_shtab_ivre_ipdata___quiet_nargs=0
_shtab_ivre_ipdata__q_nargs=0
_shtab_ivre_ipdata___json_nargs=0
_shtab_ivre_ipdata__j_nargs=0
_shtab_ivre_ipinfo_pos_0_nargs='*'
_shtab_ivre_ipinfo_pos_1_nargs=0
_shtab_ivre_ipinfo_pos_2_nargs=0
_shtab_ivre_ipinfo_pos_3_nargs=0
_shtab_ivre_ipinfo_pos_4_nargs=0
_shtab_ivre_ipinfo__h_nargs=0
_shtab_ivre_ipinfo___help_nargs=0
_shtab_ivre_ipinfo___id_nargs=+
_shtab_ivre_ipinfo___no_id_nargs=+
_shtab_ivre_ipinfo___useragent_nargs='?'
_shtab_ivre_ipinfo___range_nargs=2
_shtab_ivre_ipinfo___ipv4_nargs=0
_shtab_ivre_ipinfo___ipv6_nargs=0
_shtab_ivre_ipinfo___hassh_nargs='?'
_shtab_ivre_ipinfo___hassh_server_nargs='?'
_shtab_ivre_ipinfo___hassh_client_nargs='?'
_shtab_ivre_ipinfo___torcert_nargs=0
_shtab_ivre_ipinfo___basicauth_nargs=0
_shtab_ivre_ipinfo___auth_nargs=0
_shtab_ivre_ipinfo___java_nargs=0
_shtab_ivre_ipinfo___ftp_nargs=0
_shtab_ivre_ipinfo___pop_nargs=0
_shtab_ivre_ipinfo___ssl_ja3_server_nargs='?'
_shtab_ivre_ipinfo___ssl_ja3_client_nargs='?'
_shtab_ivre_ipinfo___ssl_ja4_client_nargs='?'
_shtab_ivre_ipinfo___ssl_ja4_client_raw_nargs='?'
_shtab_ivre_ipinfo___init_nargs=0
_shtab_ivre_ipinfo___purgedb_nargs=0
_shtab_ivre_ipinfo___ensure_indexes_nargs=0
_shtab_ivre_ipinfo___update_schema_nargs=0
_shtab_ivre_ipinfo___short_nargs=0
_shtab_ivre_ipinfo___count_nargs=0
_shtab_ivre_ipinfo___explain_nargs=0
_shtab_ivre_ipinfo___json_nargs=0
_shtab_ivre_ipinfo___sort_nargs=+
_shtab_ivre_ipinfo___tailf_nargs=0
_shtab_ivre_ipinfo___tailfnew_nargs=0
_shtab_ivre_ipinfo___dnsbl_update_nargs=0
_shtab_ivre_iphost_pos_0_nargs='*'
_shtab_ivre_iphost__h_nargs=0
_shtab_ivre_iphost___help_nargs=0
_shtab_ivre_iphost___sub_nargs=0
_shtab_ivre_iphost___json_nargs=0
_shtab_ivre_iphost___passive_nargs=0
_shtab_ivre_iphost___passive_direct_nargs=0
_shtab_ivre_iphost___passive_reverse_nargs=0
_shtab_ivre_iphost___nmap_nargs=0
_shtab_ivre_iphost___scans_nargs=0
_shtab_ivre_iphost___all_nargs=0
_shtab_ivre_ipinfohost_pos_0_nargs='*'
_shtab_ivre_ipinfohost__h_nargs=0
_shtab_ivre_ipinfohost___help_nargs=0
_shtab_ivre_ipinfohost___sub_nargs=0
_shtab_ivre_ipinfohost___json_nargs=0
_shtab_ivre_ipinfohost___passive_nargs=0
_shtab_ivre_ipinfohost___passive_direct_nargs=0
_shtab_ivre_ipinfohost___passive_reverse_nargs=0
_shtab_ivre_ipinfohost___nmap_nargs=0
_shtab_ivre_ipinfohost___scans_nargs=0
_shtab_ivre_ipinfohost___all_nargs=0
_shtab_ivre_iprange__h_nargs=0
_shtab_ivre_iprange___help_nargs=0
_shtab_ivre_iprange___region_nargs=2
_shtab_ivre_iprange___city_nargs=2
_shtab_ivre_iprange___range_nargs=2
_shtab_ivre_iprange___routable_nargs=0
_shtab_ivre_iprange___cidrs_nargs=0
_shtab_ivre_iprange___ranges_nargs=0
_shtab_ivre_iprange__r_nargs=0
_shtab_ivre_iprange___count_nargs=0
_shtab_ivre_iprange___addrs_nargs=0
_shtab_ivre_iprange___json_nargs=0
_shtab_ivre_iprange__j_nargs=0
_shtab_ivre_iprange___force_nargs=0
_shtab_ivre_localscan__h_nargs=0
_shtab_ivre_localscan___help_nargs=0
_shtab_ivre_localscan___json_nargs=0
_shtab_ivre_macdata_pos_0_nargs='*'
_shtab_ivre_macdata__h_nargs=0
_shtab_ivre_macdata___help_nargs=0
_shtab_ivre_macdata___json_nargs=0
_shtab_ivre_macdata__j_nargs=0
_shtab_ivre_macinfo_pos_0_nargs='*'
_shtab_ivre_macinfo__h_nargs=0
_shtab_ivre_macinfo___help_nargs=0
_shtab_ivre_macinfo__c_nargs=0
_shtab_ivre_macinfo___count_nargs=0
_shtab_ivre_macinfo__r_nargs=0
_shtab_ivre_macinfo___resolve_nargs=0
_shtab_ivre_mcp_server__h_nargs=0
_shtab_ivre_mcp_server___help_nargs=0
_shtab_ivre_mcp_server___http_nargs=0
_shtab_ivre_mcp_server___allow_anonymous_nargs=0
_shtab_ivre_mcp_server__h_nargs=0
_shtab_ivre_mcp_server___help_nargs=0
_shtab_ivre_mcp_server___http_nargs=0
_shtab_ivre_mcp_server___allow_anonymous_nargs=0
_shtab_ivre_notes__h_nargs=0
_shtab_ivre_notes___help_nargs=0
_shtab_ivre_notes___init_nargs=0
_shtab_ivre_notes___ensure_indexes_nargs=0
_shtab_ivre_notes___count_nargs=0
_shtab_ivre_notes___import_from_dokuwiki_nargs='?'
_shtab_ivre_p0f2db_pos_0_nargs='*'
_shtab_ivre_p0f2db__h_nargs=0
_shtab_ivre_p0f2db___help_nargs=0
_shtab_ivre_p0f2db___bulk_nargs=0
_shtab_ivre_p0f2db___local_bulk_nargs=0
_shtab_ivre_p0f2db___no_bulk_nargs=0
_shtab_ivre_p0f2db__t_nargs=0
_shtab_ivre_p0f2db___test_nargs=0
_shtab_ivre_p0f2db__r_nargs=0
_shtab_ivre_p0f2db___recursive_nargs=0
_shtab_ivre_passiverecon2db_pos_0_nargs='*'
_shtab_ivre_passiverecon2db__h_nargs=0
_shtab_ivre_passiverecon2db___help_nargs=0
_shtab_ivre_passiverecon2db___bulk_nargs=0
_shtab_ivre_passiverecon2db___local_bulk_nargs=0
_shtab_ivre_passiverecon2db___no_bulk_nargs=0
_shtab_ivre_passiverecon2db__t_nargs=0
_shtab_ivre_passiverecon2db___test_nargs=0
_shtab_ivre_passiverecon2db__r_nargs=0
_shtab_ivre_passiverecon2db___recursive_nargs=0
_shtab_ivre_plotdb_pos_0_nargs='*'
_shtab_ivre_plotdb__h_nargs=0
_shtab_ivre_plotdb___help_nargs=0
_shtab_ivre_plotdb___id_nargs=+
_shtab_ivre_plotdb___no_id_nargs=+
_shtab_ivre_plotdb___useragent_nargs='?'
_shtab_ivre_plotdb___range_nargs=2
_shtab_ivre_plotdb___ipv4_nargs=0
_shtab_ivre_plotdb___ipv6_nargs=0
_shtab_ivre_plotdb___hassh_nargs='?'
_shtab_ivre_plotdb___hassh_server_nargs='?'
_shtab_ivre_plotdb___hassh_client_nargs='?'
_shtab_ivre_plotdb___torcert_nargs=0
_shtab_ivre_plotdb___openport_nargs=0
_shtab_ivre_plotdb___no_openport_nargs=0
_shtab_ivre_plotdb___countports_nargs=2
_shtab_ivre_plotdb___no_countports_nargs=2
_shtab_ivre_plotdb___anonftp_nargs=0
_shtab_ivre_plotdb___anonldap_nargs=0
_shtab_ivre_plotdb___authhttp_nargs=0
_shtab_ivre_plotdb___authbypassvnc_nargs=0
_shtab_ivre_plotdb___ypserv_nargs=0
_shtab_ivre_plotdb___nis_nargs=0
_shtab_ivre_plotdb___nfs_nargs=0
_shtab_ivre_plotdb___x11_nargs=0
_shtab_ivre_plotdb___xp445_nargs=0
_shtab_ivre_plotdb___owa_nargs=0
_shtab_ivre_plotdb___vuln_boa_nargs=0
_shtab_ivre_plotdb___vuln_intersil_nargs=0
_shtab_ivre_plotdb___ssl_ja3_server_nargs='?'
_shtab_ivre_plotdb___ssl_ja3_client_nargs='?'
_shtab_ivre_plotdb___ssl_ja4_client_nargs='?'
_shtab_ivre_plotdb___ssl_ja4_client_raw_nargs='?'
_shtab_ivre_plotdb___2d_nargs=0
_shtab_ivre_plotdb__2_nargs=0
_shtab_ivre_plotdb___3d_nargs=0
_shtab_ivre_plotdb__3_nargs=0
_shtab_ivre_plotdb___alert_445_nargs=0
_shtab_ivre_plotdb___alert_nfs_nargs=0
_shtab_ivre_rirlookup_pos_0_nargs='*'
_shtab_ivre_rirlookup__h_nargs=0
_shtab_ivre_rirlookup___help_nargs=0
_shtab_ivre_rirlookup___init_nargs=0
_shtab_ivre_rirlookup___purgedb_nargs=0
_shtab_ivre_rirlookup___ensure_indexes_nargs=0
_shtab_ivre_rirlookup___update_schema_nargs=0
_shtab_ivre_rirlookup___short_nargs=0
_shtab_ivre_rirlookup___count_nargs=0
_shtab_ivre_rirlookup___explain_nargs=0
_shtab_ivre_rirlookup___json_nargs=0
_shtab_ivre_rirlookup___sort_nargs=+
_shtab_ivre_rirlookup___download_nargs=0
_shtab_ivre_rirlookup___insert_nargs=0
_shtab_ivre_scan2db_pos_0_nargs='*'
_shtab_ivre_scan2db__h_nargs=0
_shtab_ivre_scan2db___help_nargs=0
_shtab_ivre_scan2db__t_nargs=0
_shtab_ivre_scan2db___test_nargs=0
_shtab_ivre_scan2db___test_normal_nargs=0
_shtab_ivre_scan2db___ports_nargs=0
_shtab_ivre_scan2db___port_nargs=0
_shtab_ivre_scan2db___open_ports_nargs=0
_shtab_ivre_scan2db___masscan_probes_nargs=+
_shtab_ivre_scan2db__r_nargs=0
_shtab_ivre_scan2db___recursive_nargs=0
_shtab_ivre_scan2db___update_view_nargs=0
_shtab_ivre_scan2db___no_update_view_nargs=0
_shtab_ivre_nmap2db_pos_0_nargs='*'
_shtab_ivre_nmap2db__h_nargs=0
_shtab_ivre_nmap2db___help_nargs=0
_shtab_ivre_nmap2db__t_nargs=0
_shtab_ivre_nmap2db___test_nargs=0
_shtab_ivre_nmap2db___test_normal_nargs=0
_shtab_ivre_nmap2db___ports_nargs=0
_shtab_ivre_nmap2db___port_nargs=0
_shtab_ivre_nmap2db___open_ports_nargs=0
_shtab_ivre_nmap2db___masscan_probes_nargs=+
_shtab_ivre_nmap2db__r_nargs=0
_shtab_ivre_nmap2db___recursive_nargs=0
_shtab_ivre_nmap2db___update_view_nargs=0
_shtab_ivre_nmap2db___no_update_view_nargs=0
_shtab_ivre_scancli_pos_0_nargs='*'
_shtab_ivre_scancli_pos_1_nargs=0
_shtab_ivre_scancli_pos_2_nargs=0
_shtab_ivre_scancli_pos_3_nargs=0
_shtab_ivre_scancli_pos_4_nargs=0
_shtab_ivre_scancli__h_nargs=0
_shtab_ivre_scancli___help_nargs=0
_shtab_ivre_scancli___id_nargs=+
_shtab_ivre_scancli___no_id_nargs=+
_shtab_ivre_scancli___useragent_nargs='?'
_shtab_ivre_scancli___range_nargs=2
_shtab_ivre_scancli___ipv4_nargs=0
_shtab_ivre_scancli___ipv6_nargs=0
_shtab_ivre_scancli___hassh_nargs='?'
_shtab_ivre_scancli___hassh_server_nargs='?'
_shtab_ivre_scancli___hassh_client_nargs='?'
_shtab_ivre_scancli___torcert_nargs=0
_shtab_ivre_scancli___openport_nargs=0
_shtab_ivre_scancli___no_openport_nargs=0
_shtab_ivre_scancli___countports_nargs=2
_shtab_ivre_scancli___no_countports_nargs=2
_shtab_ivre_scancli___anonftp_nargs=0
_shtab_ivre_scancli___anonldap_nargs=0
_shtab_ivre_scancli___authhttp_nargs=0
_shtab_ivre_scancli___authbypassvnc_nargs=0
_shtab_ivre_scancli___ypserv_nargs=0
_shtab_ivre_scancli___nis_nargs=0
_shtab_ivre_scancli___nfs_nargs=0
_shtab_ivre_scancli___x11_nargs=0
_shtab_ivre_scancli___xp445_nargs=0
_shtab_ivre_scancli___owa_nargs=0
_shtab_ivre_scancli___vuln_boa_nargs=0
_shtab_ivre_scancli___vuln_intersil_nargs=0
_shtab_ivre_scancli___init_nargs=0
_shtab_ivre_scancli___purgedb_nargs=0
_shtab_ivre_scancli___ensure_indexes_nargs=0
_shtab_ivre_scancli___update_schema_nargs=0
_shtab_ivre_scancli___short_nargs=0
_shtab_ivre_scancli___count_nargs=0
_shtab_ivre_scancli___explain_nargs=0
_shtab_ivre_scancli___json_nargs=0
_shtab_ivre_scancli___sort_nargs=+
_shtab_ivre_scancli___no_screenshots_nargs=0
_shtab_ivre_scancli___honeyd_nargs=0
_shtab_ivre_scancli___nmap_xml_nargs=0
_shtab_ivre_scancli___gnmap_nargs=0
_shtab_ivre_scancli___csv_add_infos_nargs=0
_shtab_ivre_scanstatus__h_nargs=0
_shtab_ivre_scanstatus___help_nargs=0
_shtab_ivre_sort__h_nargs=0
_shtab_ivre_sort___help_nargs=0
_shtab_ivre_sort__u_nargs=0
_shtab_ivre_sort___unique_nargs=0
_shtab_ivre_version__h_nargs=0
_shtab_ivre_version___help_nargs=0
_shtab_ivre_view_pos_0_nargs='*'
_shtab_ivre_view_pos_1_nargs=0
_shtab_ivre_view_pos_2_nargs=0
_shtab_ivre_view_pos_3_nargs=0
_shtab_ivre_view_pos_4_nargs=0
_shtab_ivre_view__h_nargs=0
_shtab_ivre_view___help_nargs=0
_shtab_ivre_view___id_nargs=+
_shtab_ivre_view___no_id_nargs=+
_shtab_ivre_view___useragent_nargs='?'
_shtab_ivre_view___range_nargs=2
_shtab_ivre_view___ipv4_nargs=0
_shtab_ivre_view___ipv6_nargs=0
_shtab_ivre_view___hassh_nargs='?'
_shtab_ivre_view___hassh_server_nargs='?'
_shtab_ivre_view___hassh_client_nargs='?'
_shtab_ivre_view___torcert_nargs=0
_shtab_ivre_view___openport_nargs=0
_shtab_ivre_view___no_openport_nargs=0
_shtab_ivre_view___countports_nargs=2
_shtab_ivre_view___no_countports_nargs=2
_shtab_ivre_view___anonftp_nargs=0
_shtab_ivre_view___anonldap_nargs=0
_shtab_ivre_view___authhttp_nargs=0
_shtab_ivre_view___authbypassvnc_nargs=0
_shtab_ivre_view___ypserv_nargs=0
_shtab_ivre_view___nis_nargs=0
_shtab_ivre_view___nfs_nargs=0
_shtab_ivre_view___x11_nargs=0
_shtab_ivre_view___xp445_nargs=0
_shtab_ivre_view___owa_nargs=0
_shtab_ivre_view___vuln_boa_nargs=0
_shtab_ivre_view___vuln_intersil_nargs=0
_shtab_ivre_view___ssl_ja3_server_nargs='?'
_shtab_ivre_view___ssl_ja3_client_nargs='?'
_shtab_ivre_view___ssl_ja4_client_nargs='?'
_shtab_ivre_view___ssl_ja4_client_raw_nargs='?'
_shtab_ivre_view___init_nargs=0
_shtab_ivre_view___purgedb_nargs=0
_shtab_ivre_view___ensure_indexes_nargs=0
_shtab_ivre_view___update_schema_nargs=0
_shtab_ivre_view___short_nargs=0
_shtab_ivre_view___count_nargs=0
_shtab_ivre_view___explain_nargs=0
_shtab_ivre_view___json_nargs=0
_shtab_ivre_view___sort_nargs=+
_shtab_ivre_view___verbose_nargs=0
_shtab_ivre_view__v_nargs=0
_shtab_ivre_view___no_screenshots_nargs=0
_shtab_ivre_view___honeyd_nargs=0
_shtab_ivre_view___nmap_xml_nargs=0
_shtab_ivre_view___gnmap_nargs=0
_shtab_ivre_view___csv_add_infos_nargs=0
_shtab_ivre_weblog2db_pos_0_nargs='*'
_shtab_ivre_weblog2db__h_nargs=0
_shtab_ivre_weblog2db___help_nargs=0
_shtab_ivre_weblog2db___bulk_nargs=0
_shtab_ivre_weblog2db___local_bulk_nargs=0
_shtab_ivre_weblog2db___no_bulk_nargs=0
_shtab_ivre_weblog2db__t_nargs=0
_shtab_ivre_weblog2db___test_nargs=0
_shtab_ivre_weblog2db__r_nargs=0
_shtab_ivre_weblog2db___recursive_nargs=0
_shtab_ivre_zeek2db_pos_0_nargs='*'
_shtab_ivre_zeek2db__h_nargs=0
_shtab_ivre_zeek2db___help_nargs=0
_shtab_ivre_zeek2db__v_nargs=0
_shtab_ivre_zeek2db___verbose_nargs=0
_shtab_ivre_zeek2db__C_nargs=0
_shtab_ivre_zeek2db___no_cleanup_nargs=0
_shtab_ivre_zeek2db__r_nargs=0
_shtab_ivre_zeek2db___recursive_nargs=0
_shtab_ivre_bro2db_pos_0_nargs='*'
_shtab_ivre_bro2db__h_nargs=0
_shtab_ivre_bro2db___help_nargs=0
_shtab_ivre_bro2db__v_nargs=0
_shtab_ivre_bro2db___verbose_nargs=0
_shtab_ivre_bro2db__C_nargs=0
_shtab_ivre_bro2db___no_cleanup_nargs=0
_shtab_ivre_bro2db__r_nargs=0
_shtab_ivre_bro2db___recursive_nargs=0
_shtab_ivre_help__h_nargs=0
_shtab_ivre_help___help_nargs=0
_shtab_ivre_pos_0_nargs=A...
_shtab_ivre__h_nargs=0
_shtab_ivre___help_nargs=0


# $1=COMP_WORDS[1]
_shtab_compgen_files() {
  compgen -f -- $1  # files
}

# $1=COMP_WORDS[1]
_shtab_compgen_dirs() {
  compgen -d -- $1  # recurse into subdirs
}

# $1=COMP_WORDS[1]
_shtab_replace_nonword() {
  echo "${1//[^[:word:]]/_}"
}

# set default values (called for the initial parser & any subparsers)
_set_parser_defaults() {
  local subparsers_var="${prefix}_subparsers[@]"
  sub_parsers=${!subparsers_var-}

  local current_option_strings_var="${prefix}_option_strings[@]"
  current_option_strings=${!current_option_strings_var}

  completed_positional_actions=0

  _set_new_action "pos_$completed_positional_actions" true
}

# $1=action identifier
# $2=positional action (bool)
# set all identifiers for an action's parameters
_set_new_action() {
  current_action="${prefix}_$(_shtab_replace_nonword $1)"

  local current_action_compgen_var=${current_action}_COMPGEN
  current_action_compgen="${!current_action_compgen_var-}"

  local current_action_choices_var="${current_action}_choices[@]"
  current_action_choices="${!current_action_choices_var-}"

  local current_action_nargs_var="${current_action}_nargs"
  if [ -n "${!current_action_nargs_var-}" ]; then
    current_action_nargs="${!current_action_nargs_var}"
  else
    current_action_nargs=1
  fi

  current_action_args_start_index=$(( $word_index + 1 - $pos_only ))

  current_action_is_positional=$2
}

# Notes:
# `COMPREPLY`: what will be rendered after completion is triggered
# `completing_word`: currently typed word to generate completions for
# `${!var}`: evaluates the content of `var` and expand its content as a variable
#     hello="world"
#     x="hello"
#     ${!x} -> ${hello} -> "world"
_shtab_ivre() {
  local completing_word="${COMP_WORDS[COMP_CWORD]}"
  local previous_word="${COMP_WORDS[COMP_CWORD-1]}"
  local completed_positional_actions
  local current_action
  local current_action_args_start_index
  local current_action_choices
  local current_action_compgen
  local current_action_is_positional
  local current_action_nargs
  local current_option_strings
  local sub_parsers
  COMPREPLY=()

  local prefix=_shtab_ivre
  local word_index=0
  local pos_only=0 # "--" delimiter not encountered yet
  _set_parser_defaults
  word_index=1

  # determine what arguments are appropriate for the current state
  # of the arg parser
  while [ $word_index -ne $COMP_CWORD ]; do
    local this_word="${COMP_WORDS[$word_index]}"

    if [[ $pos_only = 1 || " $this_word " != " -- " ]]; then
      if [[ -n $sub_parsers && " ${sub_parsers[@]} " == *" $this_word "* ]]; then
        # valid subcommand: add it to the prefix & reset the current action
        prefix="${prefix}_$(_shtab_replace_nonword $this_word)"
        _set_parser_defaults
      fi

      if [[ " ${current_option_strings[@]} " == *" $this_word "* ]]; then
        # a new action should be acquired (due to recognised option string or
        # no more input expected from current action);
        # the next positional action can fill in here
        _set_new_action $this_word false
      fi

      if [[ "$current_action_nargs" != "*" ]] && \
         [[ "$current_action_nargs" != "+" ]] && \
         [[ "$current_action_nargs" != "?" ]] && \
         [[ "$current_action_nargs" != *"..." ]] && \
         (( $word_index + 1 - $current_action_args_start_index - $pos_only >= \
            $current_action_nargs )); then
        $current_action_is_positional && let "completed_positional_actions += 1"
        _set_new_action "pos_$completed_positional_actions" true
      fi
    else
      pos_only=1 # "--" delimiter encountered
    fi

    let "word_index+=1"
  done

  # Generate the completions

  COMPREPLY=()
  if [[ $pos_only = 0 && "$completing_word" == -* &&
        ( -z "$current_action_compgen" || "$current_action_is_positional" = true ) ]]; then
    # optional argument started: use option strings
    while IFS= read -r line; do COMPREPLY+=("$line"); done < <(
      compgen -W "${current_option_strings[*]}" -- "$completing_word")
  elif [[ "$previous_word" =~ ^[0-9\&]*[\<\>]\>?$ ]]; then
    # handle redirection operators
    compopt -o filenames 2>/dev/null || : # bash>=4
    while IFS= read -r line; do COMPREPLY+=("$line"); done < <(compgen -f -- "$completing_word")
  else
    # use choices & compgen
    local action_compgen_word="$completing_word"
    # handle tab-completing in the middle of a line (#248 <- #116)
    [[ -n "$current_action_compgen" && "$completing_word" == -* ]] && action_compgen_word=""
    [ -n "$current_action_compgen" ] && {
      [[ "$current_action_compgen" =~ _(file|dir|glob|FILE|DIR|GLOB)|File|Dir|Glob ]] &&
        compopt -o filenames 2>/dev/null || : # bash>=4
      while IFS= read -r line; do COMPREPLY+=("$line"); done < <(
        "$current_action_compgen" "$action_compgen_word")
    }
    while IFS= read -r line; do COMPREPLY+=("$line"); done < <(
      compgen -W "${current_action_choices[*]}" -- "$completing_word")
  fi

  return 0
}

complete -F _shtab_ivre ivre
