#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ exit(int);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *, char const *);
int /*<<< orphan*/ stderr;
void usage(const char *me) {
  fprintf(
      stderr,
      "\n"
      "iprange\n"
      "manage IP ranges\n"
      "version: $Id$\n"
      "\n"
      "Original,   Copyright (C) 2003 Gabriel L. Somlo\n"
      "Adapted,    Copyright (C) 2004 Paul Townsend\n"
      "Refactored, Copyright (C) 2015 Costa Tsaousis for FireHOL\n"
      "License: GPL\n"
      "\n"
      "Usage: %s [options] file1 file2 file3 ...\n"
      "\n"
      "options (multiple options are aliases):\n"
      "\n"
      "	--------------------------------------------------------------\n"
      "	CIDR OUTPUT MODES\n"
      "\n"
      "	--optimize\n"
      "	--combine\n"
      "	--merge\n"
      "	--union\n"
      "	--union-all\n"
      "	-J\n"
      "		> UNION mode (the default)\n"
      "		returns all IPs found on all files\n"
      "		the resulting set is sorted\n"
      "\n"
      "	--common\n"
      "	--intersect\n"
      "	--intersect-all\n"
      "		> INTERSECT mode\n"
      "		intersect all files to find their common IPs\n"
      "		the resulting set is sorted\n"
      "\n"
      "	--exclude-next\n"
      "	--complement\n"
      "	--complement-next\n"
      "		> COMPLEMENT mode\n"
      "		1. union all files before this parameter (A set)\n"
      "		2. remove all IPs found in the files after this\n"
      "		   parameter, from the set A\n"
      "		the resulting set is sorted\n"
      "\n"
      "	--ipset-reduce PERCENT\n"
      "	--reduce-factor PERCENT\n"
      "		> IPSET REDUCE mode\n"
      "		union all files and print the merged set\n"
      "		but try to reduce the number of prefixes (subnets)\n"
      "		found, while allowing some increase in entries\n"
      "		the PERCENT is how much percent to allow\n"
      "		increase on the number of entries in order to reduce\n"
      "		the prefixes (subnets)\n"
      "		(the internal default PERCENT is 20)\n"
      "		(use -v to see exactly what it does)\n"
      "		the resulting set is sorted\n"
      "\n"
      "	--ipset-reduce-entries ENTRIES\n"
      "	--reduce-entries ENTRIES\n"
      "		> IPSET REDUCE mode\n"
      "		allow increasing the entries above PERCENT, if\n"
      "		they are below ENTRIES\n"
      "		(the internal default ENTRIES is 16384)\n"
      "\n"
      "\n"
      "	--------------------------------------------------------------\n"
      "	CSV OUTPUT MODES\n"
      "\n"
      "	--compare\n"
      "		> COMPARE ALL mode (CSV output)\n"
      "		compare all files with all other files\n"
      "		add --header to get the CSV header too\n"
      "\n"
      "	--compare-first\n"
      "		> COMPARE FIRST mode (CSV output)\n"
      "		compare the first file with all other files\n"
      "		add --header to get the CSV header too\n"
      "\n"
      "	--compare-next\n"
      "		> COMPARE NEXT mode (CSV output)\n"
      "		compare all the files that appear before this\n"
      "		parameter, to all files that appear after this\n"
      "		parameter\n"
      "		add --header to get the CSV header too\n"
      "\n"
      "	--count-unique\n"
      "	-C\n"
      "		> COUNT UNIQUE mode (CSV output)\n"
      "		merge all files and print its counts\n"
      "		add --header to get the CSV header too\n"
      "\n"
      "	--count-unique-all\n"
      "		> COUNT UNIQUE ALL mode (CSV output)\n"
      "		print counts for each file\n"
      "		add --header to get the CSV header too\n"
      "\n"
      "\n"
      "	--------------------------------------------------------------\n"
      "	OPTIONS THAT AFFECT INPUT\n"
      "\n"
      "	--dont-fix-network\n"
      "		by default, the network address of all CIDRs\n"
      "		is used (i.e. 1.1.1.17/24 is read as 1.1.1.0/24)\n"
      "		this option disables this feature\n"
      "		(i.e. 1.1.1.17/24 is read as 1.1.1.17-1.1.1.255)\n"
      "\n"
      "	--default-prefix PREFIX\n"
      "	-p PREFIX\n"
      "		Set the default prefix for all IPs without mask\n"
      "		the default is 32\n"
      "\n"
      "\n"
      "	--------------------------------------------------------------\n"
      "	OPTIONS THAT AFFECT CIDR OUTPUT\n"
      "\n"
      "	--min-prefix N\n"
      "		do not generate prefixes larger than N\n"
      "		i.e. if N is 24 then /24 to /32 entries will be\n"
      "		     generated (a /16 network will be generated\n"
      "		     using multiple /24 networks)\n"
      "		this is useful to optimize netfilter/iptables\n"
      "		ipsets, where each different prefix increases the\n"
      "		lookup time for each packet, but the number of\n"
      "		entries in the ipset do not affect its performance\n"
      "		with this setting more entries will be produced\n"
      "		to accomplish the same match\n"
      "		warning: misuse of this parameter can create a large\n"
      "		         number of entries in the generated set\n"
      "\n"
      "	--prefixes N,N,N, ...\n"
      "		enable only the given prefixes to express all CIDRs\n"
      "		prefix 32 is always enabled\n"
      "		warning: misuse of this parameter can create a large\n"
      "		         number of entries in the generated set\n"
      "	--print-ranges\n"
      "	-j\n"
      "		print IP ranges (A.A.A.A-B.B.B.B)\n"
      "		the default is to print CIDRs (A.A.A.A/B)\n"
      "		it only applies when the output is not CSV\n"
      "\n"
      "	--print-single-ips\n"
      "	-1\n"
      "		print single IPs\n"
      "		this can produce large output\n"
      "		the default is to print CIDRs (A.A.A.A/B)\n"
      "		it only applies when the output is not CSV\n"
      "\n"
      "	--print-binary\n"
      "		print binary data\n"
      "\n"
      "	--print-prefix STRING\n"
      "		print STRING before each IP, range or CIDR\n"
      "		this sets both --print-prefix-ips and\n"
      "		--print-prefix-nets\n"
      "\n"
      "	--print-prefix-ips STRING\n"
      "		print STRING before each single IP\n"
      "		useful for entering single IPs to a different\n"
      "		ipset than the networks\n"
      "\n"
      "	--print-prefix-nets STRING\n"
      "		print STRING before each range or CIDR\n"
      "		useful for entering sunbets to a different\n"
      "		ipset than single IPs\n"
      "\n"
      "	--print-suffix STRING\n"
      "		print STRING after each IP, range or CIDR\n"
      "		this sets both --print-suffix-ips and\n"
      "		--print-suffix-nets\n"
      "\n"
      "	--print-suffix-ips STRING\n"
      "		print STRING after each single IP\n"
      "		useful for giving single IPs different\n"
      "		ipset options\n"
      "\n"
      "	--print-suffix-nets STRING\n"
      "		print STRING after each range or CIDR\n"
      "		useful for giving subnets different\n"
      "		ipset options\n"
      "\n"
      "\n"
      "	--------------------------------------------------------------\n"
      "	OPTIONS THAT AFFECT CSV OUTPUT\n"
      "\n"
      "	--header\n"
      "		when the output is CSV, print the header line\n"
      "		the default is to not print the header line\n"
      "\n"
      "\n"
      "	--------------------------------------------------------------\n"
      "	OTHER OPTIONS\n"
      "\n"
      "	--has-compare\n"
      "	--has-reduce\n"
      "		exits with 0\n"
      "		other versions of iprange will exit with 1\n"
      "		use this option in scripts to find if this\n"
      "		version of iprange is present in a system\n"
      "\n"
      "	-v\n"
      "		be verbose on stderr\n"
      "\n"
      "	--help\n"
      "	-h\n"
      "		print this message\n"
      "\n"
      "\n"
      "	--------------------------------------------------------------\n"
      "	INPUT FILES\n"
      "\n"
      "	fileN\n"
      "		a filename or - for stdin\n"
      "		each filename can be followed by [as NAME]\n"
      "		to change its name in the CSV output\n"
      "\n"
      "		if no filename is given, stdin is assumed\n"
      "\n"
      "		files may contain:\n"
      "		- comments starting with # or ;\n"
      "		- one IP per line (without mask)\n"
      "		- a CIDR per line (A.A.A.A/B)\n"
      "		- an IP range per line (A.A.A.A - B.B.B.B)\n"
      "		- a CIDR range per line (A.A.A.A/B - C.C.C.C/D)\n"
      "		  the range is calculated as the network address of\n"
      "		  A.A.A.A/B to the broadcast address of C.C.C.C/D\n"
      "		  (this is affected by --dont-fix-network)\n"
      "		- CIDRs can be given in either prefix or netmask\n"
      "		  format in all cases (including ranges)\n"
      "		- spaces and empty lines are ignored\n"
      "\n"
      "		any number of files can be given\n"
      "\n",
      me);
  exit(1);
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    0x3ead(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rdx
lea    0xec0(%rip),%rsi
call   1030 <fprintf@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<usage>:
push   %rax
mov    %rdi,%rdx
mov    0x3eb5(%rip),%rax
mov    (%rax),%edi
lea    0xecc(%rip),%rsi
call   1030 <fprintf@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [6102 x i8] c"\0Aiprange\0Amanage IP ranges\0Aversion: $Id$\0A\0AOriginal, Copyright (C) 2003 Gabriel L. Somlo\0AAdapted, Copyright (C) 2004 Paul Townsend\0ARefactored, Copyright (C) 2015 Costa Tsaousis for FireHOL\0ALicense: GPL\0A\0AUsage: %s [options] file1 file2 file3 ...\0A\0Aoptions (multiple options are aliases):\0A\0A\09--------------------------------------------------------------\0A\09CIDR OUTPUT MODES\0A\0A\09--optimize\0A\09--combine\0A\09--merge\0A\09--union\0A\09--union-all\0A\09-J\0A\09\09> UNION mode (the default)\0A\09\09returns all IPs found on all files\0A\09\09the resulting set is sorted\0A\0A\09--common\0A\09--intersect\0A\09--intersect-all\0A\09\09> INTERSECT mode\0A\09\09intersect all files to find their common IPs\0A\09\09the resulting set is sorted\0A\0A\09--exclude-next\0A\09--complement\0A\09--complement-next\0A\09\09> COMPLEMENT mode\0A\09\091. union all files before this parameter (A set)\0A\09\092. remove all IPs found in the files after this\0A\09\09 parameter, from the set A\0A\09\09the resulting set is sorted\0A\0A\09--ipset-reduce PERCENT\0A\09--reduce-factor PERCENT\0A\09\09> IPSET REDUCE mode\0A\09\09union all files and print the merged set\0A\09\09but try to reduce the number of prefixes (subnets)\0A\09\09found, while allowing some increase in entries\0A\09\09the PERCENT is how much percent to allow\0A\09\09increase on the number of entries in order to reduce\0A\09\09the prefixes (subnets)\0A\09\09(the internal default PERCENT is 20)\0A\09\09(use -v to see exactly what it does)\0A\09\09the resulting set is sorted\0A\0A\09--ipset-reduce-entries ENTRIES\0A\09--reduce-entries ENTRIES\0A\09\09> IPSET REDUCE mode\0A\09\09allow increasing the entries above PERCENT, if\0A\09\09they are below ENTRIES\0A\09\09(the internal default ENTRIES is 16384)\0A\0A\0A\09--------------------------------------------------------------\0A\09CSV OUTPUT MODES\0A\0A\09--compare\0A\09\09> COMPARE ALL mode (CSV output)\0A\09\09compare all files with all other files\0A\09\09add --header to get the CSV header too\0A\0A\09--compare-first\0A\09\09> COMPARE FIRST mode (CSV output)\0A\09\09compare the first file with all other files\0A\09\09add --header to get the CSV header too\0A\0A\09--compare-next\0A\09\09> COMPARE NEXT mode (CSV output)\0A\09\09compare all the files that appear before this\0A\09\09parameter, to all files that appear after this\0A\09\09parameter\0A\09\09add --header to get the CSV header too\0A\0A\09--count-unique\0A\09-C\0A\09\09> COUNT UNIQUE mode (CSV output)\0A\09\09merge all files and print its counts\0A\09\09add --header to get the CSV header too\0A\0A\09--count-unique-all\0A\09\09> COUNT UNIQUE ALL mode (CSV output)\0A\09\09print counts for each file\0A\09\09add --header to get the CSV header too\0A\0A\0A\09--------------------------------------------------------------\0A\09OPTIONS THAT AFFECT INPUT\0A\0A\09--dont-fix-network\0A\09\09by default, the network address of all CIDRs\0A\09\09is used (i.e. 1.1.1.17/24 is read as 1.1.1.0/24)\0A\09\09this option disables this feature\0A\09\09(i.e. 1.1.1.17/24 is read as 1.1.1.17-1.1.1.255)\0A\0A\09--default-prefix PREFIX\0A\09-p PREFIX\0A\09\09Set the default prefix for all IPs without mask\0A\09\09the default is 32\0A\0A\0A\09--------------------------------------------------------------\0A\09OPTIONS THAT AFFECT CIDR OUTPUT\0A\0A\09--min-prefix N\0A\09\09do not generate prefixes larger than N\0A\09\09i.e. if N is 24 then /24 to /32 entries will be\0A\09\09 generated (a /16 network will be generated\0A\09\09 using multiple /24 networks)\0A\09\09this is useful to optimize netfilter/iptables\0A\09\09ipsets, where each different prefix increases the\0A\09\09lookup time for each packet, but the number of\0A\09\09entries in the ipset do not affect its performance\0A\09\09with this setting more entries will be produced\0A\09\09to accomplish the same match\0A\09\09warning: misuse of this parameter can create a large\0A\09\09 number of entries in the generated set\0A\0A\09--prefixes N,N,N, ...\0A\09\09enable only the given prefixes to express all CIDRs\0A\09\09prefix 32 is always enabled\0A\09\09warning: misuse of this parameter can create a large\0A\09\09 number of entries in the generated set\0A\09--print-ranges\0A\09-j\0A\09\09print IP ranges (A.A.A.A-B.B.B.B)\0A\09\09the default is to print CIDRs (A.A.A.A/B)\0A\09\09it only applies when the output is not CSV\0A\0A\09--print-single-ips\0A\09-1\0A\09\09print single IPs\0A\09\09this can produce large output\0A\09\09the default is to print CIDRs (A.A.A.A/B)\0A\09\09it only applies when the output is not CSV\0A\0A\09--print-binary\0A\09\09print binary data\0A\0A\09--print-prefix STRING\0A\09\09print STRING before each IP, range or CIDR\0A\09\09this sets both --print-prefix-ips and\0A\09\09--print-prefix-nets\0A\0A\09--print-prefix-ips STRING\0A\09\09print STRING before each single IP\0A\09\09useful for entering single IPs to a different\0A\09\09ipset than the networks\0A\0A\09--print-prefix-nets STRING\0A\09\09print STRING before each range or CIDR\0A\09\09useful for entering sunbets to a different\0A\09\09ipset than single IPs\0A\0A\09--print-suffix STRING\0A\09\09print STRING after each IP, range or CIDR\0A\09\09this sets both --print-suffix-ips and\0A\09\09--print-suffix-nets\0A\0A\09--print-suffix-ips STRING\0A\09\09print STRING after each single IP\0A\09\09useful for giving single IPs different\0A\09\09ipset options\0A\0A\09--print-suffix-nets STRING\0A\09\09print STRING after each range or CIDR\0A\09\09useful for giving subnets different\0A\09\09ipset options\0A\0A\0A\09--------------------------------------------------------------\0A\09OPTIONS THAT AFFECT CSV OUTPUT\0A\0A\09--header\0A\09\09when the output is CSV, print the header line\0A\09\09the default is to not print the header line\0A\0A\0A\09--------------------------------------------------------------\0A\09OTHER OPTIONS\0A\0A\09--has-compare\0A\09--has-reduce\0A\09\09exits with 0\0A\09\09other versions of iprange will exit with 1\0A\09\09use this option in scripts to find if this\0A\09\09version of iprange is present in a system\0A\0A\09-v\0A\09\09be verbose on stderr\0A\0A\09--help\0A\09-h\0A\09\09print this message\0A\0A\0A\09--------------------------------------------------------------\0A\09INPUT FILES\0A\0A\09fileN\0A\09\09a filename or - for stdin\0A\09\09each filename can be followed by [as NAME]\0A\09\09to change its name in the CSV output\0A\0A\09\09if no filename is given, stdin is assumed\0A\0A\09\09files may contain:\0A\09\09- comments starting with # or ;\0A\09\09- one IP per line (without mask)\0A\09\09- a CIDR per line (A.A.A.A/B)\0A\09\09- an IP range per line (A.A.A.A - B.B.B.B)\0A\09\09- a CIDR range per line (A.A.A.A/B - C.C.C.C/D)\0A\09\09 the range is calculated as the network address of\0A\09\09 A.A.A.A/B to the broadcast address of C.C.C.C/D\0A\09\09 (this is affected by --dont-fix-network)\0A\09\09- CIDRs can be given in either prefix or netmask\0A\09\09 format in all cases (including ranges)\0A\09\09- spaces and empty lines are ignored\0A\0A\09\09any number of files can be given\0A\0A\00"
define void @usage(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i32, i32* @stderr
%4 = load i8*, i8** %2
%5 = call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([6102 x i8], [6102 x i8]* @.str, i64 0, i64 0), i8* %4)
%6 = call i32 @exit(i32 1)
unreachable
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [6102 x i8] c"\0Aiprange\0Amanage IP ranges\0Aversion: $Id$\0A\0AOriginal, Copyright (C) 2003 Gabriel L. Somlo\0AAdapted, Copyright (C) 2004 Paul Townsend\0ARefactored, Copyright (C) 2015 Costa Tsaousis for FireHOL\0ALicense: GPL\0A\0AUsage: %s [options] file1 file2 file3 ...\0A\0Aoptions (multiple options are aliases):\0A\0A\09--------------------------------------------------------------\0A\09CIDR OUTPUT MODES\0A\0A\09--optimize\0A\09--combine\0A\09--merge\0A\09--union\0A\09--union-all\0A\09-J\0A\09\09> UNION mode (the default)\0A\09\09returns all IPs found on all files\0A\09\09the resulting set is sorted\0A\0A\09--common\0A\09--intersect\0A\09--intersect-all\0A\09\09> INTERSECT mode\0A\09\09intersect all files to find their common IPs\0A\09\09the resulting set is sorted\0A\0A\09--exclude-next\0A\09--complement\0A\09--complement-next\0A\09\09> COMPLEMENT mode\0A\09\091. union all files before this parameter (A set)\0A\09\092. remove all IPs found in the files after this\0A\09\09 parameter, from the set A\0A\09\09the resulting set is sorted\0A\0A\09--ipset-reduce PERCENT\0A\09--reduce-factor PERCENT\0A\09\09> IPSET REDUCE mode\0A\09\09union all files and print the merged set\0A\09\09but try to reduce the number of prefixes (subnets)\0A\09\09found, while allowing some increase in entries\0A\09\09the PERCENT is how much percent to allow\0A\09\09increase on the number of entries in order to reduce\0A\09\09the prefixes (subnets)\0A\09\09(the internal default PERCENT is 20)\0A\09\09(use -v to see exactly what it does)\0A\09\09the resulting set is sorted\0A\0A\09--ipset-reduce-entries ENTRIES\0A\09--reduce-entries ENTRIES\0A\09\09> IPSET REDUCE mode\0A\09\09allow increasing the entries above PERCENT, if\0A\09\09they are below ENTRIES\0A\09\09(the internal default ENTRIES is 16384)\0A\0A\0A\09--------------------------------------------------------------\0A\09CSV OUTPUT MODES\0A\0A\09--compare\0A\09\09> COMPARE ALL mode (CSV output)\0A\09\09compare all files with all other files\0A\09\09add --header to get the CSV header too\0A\0A\09--compare-first\0A\09\09> COMPARE FIRST mode (CSV output)\0A\09\09compare the first file with all other files\0A\09\09add --header to get the CSV header too\0A\0A\09--compare-next\0A\09\09> COMPARE NEXT mode (CSV output)\0A\09\09compare all the files that appear before this\0A\09\09parameter, to all files that appear after this\0A\09\09parameter\0A\09\09add --header to get the CSV header too\0A\0A\09--count-unique\0A\09-C\0A\09\09> COUNT UNIQUE mode (CSV output)\0A\09\09merge all files and print its counts\0A\09\09add --header to get the CSV header too\0A\0A\09--count-unique-all\0A\09\09> COUNT UNIQUE ALL mode (CSV output)\0A\09\09print counts for each file\0A\09\09add --header to get the CSV header too\0A\0A\0A\09--------------------------------------------------------------\0A\09OPTIONS THAT AFFECT INPUT\0A\0A\09--dont-fix-network\0A\09\09by default, the network address of all CIDRs\0A\09\09is used (i.e. 1.1.1.17/24 is read as 1.1.1.0/24)\0A\09\09this option disables this feature\0A\09\09(i.e. 1.1.1.17/24 is read as 1.1.1.17-1.1.1.255)\0A\0A\09--default-prefix PREFIX\0A\09-p PREFIX\0A\09\09Set the default prefix for all IPs without mask\0A\09\09the default is 32\0A\0A\0A\09--------------------------------------------------------------\0A\09OPTIONS THAT AFFECT CIDR OUTPUT\0A\0A\09--min-prefix N\0A\09\09do not generate prefixes larger than N\0A\09\09i.e. if N is 24 then /24 to /32 entries will be\0A\09\09 generated (a /16 network will be generated\0A\09\09 using multiple /24 networks)\0A\09\09this is useful to optimize netfilter/iptables\0A\09\09ipsets, where each different prefix increases the\0A\09\09lookup time for each packet, but the number of\0A\09\09entries in the ipset do not affect its performance\0A\09\09with this setting more entries will be produced\0A\09\09to accomplish the same match\0A\09\09warning: misuse of this parameter can create a large\0A\09\09 number of entries in the generated set\0A\0A\09--prefixes N,N,N, ...\0A\09\09enable only the given prefixes to express all CIDRs\0A\09\09prefix 32 is always enabled\0A\09\09warning: misuse of this parameter can create a large\0A\09\09 number of entries in the generated set\0A\09--print-ranges\0A\09-j\0A\09\09print IP ranges (A.A.A.A-B.B.B.B)\0A\09\09the default is to print CIDRs (A.A.A.A/B)\0A\09\09it only applies when the output is not CSV\0A\0A\09--print-single-ips\0A\09-1\0A\09\09print single IPs\0A\09\09this can produce large output\0A\09\09the default is to print CIDRs (A.A.A.A/B)\0A\09\09it only applies when the output is not CSV\0A\0A\09--print-binary\0A\09\09print binary data\0A\0A\09--print-prefix STRING\0A\09\09print STRING before each IP, range or CIDR\0A\09\09this sets both --print-prefix-ips and\0A\09\09--print-prefix-nets\0A\0A\09--print-prefix-ips STRING\0A\09\09print STRING before each single IP\0A\09\09useful for entering single IPs to a different\0A\09\09ipset than the networks\0A\0A\09--print-prefix-nets STRING\0A\09\09print STRING before each range or CIDR\0A\09\09useful for entering sunbets to a different\0A\09\09ipset than single IPs\0A\0A\09--print-suffix STRING\0A\09\09print STRING after each IP, range or CIDR\0A\09\09this sets both --print-suffix-ips and\0A\09\09--print-suffix-nets\0A\0A\09--print-suffix-ips STRING\0A\09\09print STRING after each single IP\0A\09\09useful for giving single IPs different\0A\09\09ipset options\0A\0A\09--print-suffix-nets STRING\0A\09\09print STRING after each range or CIDR\0A\09\09useful for giving subnets different\0A\09\09ipset options\0A\0A\0A\09--------------------------------------------------------------\0A\09OPTIONS THAT AFFECT CSV OUTPUT\0A\0A\09--header\0A\09\09when the output is CSV, print the header line\0A\09\09the default is to not print the header line\0A\0A\0A\09--------------------------------------------------------------\0A\09OTHER OPTIONS\0A\0A\09--has-compare\0A\09--has-reduce\0A\09\09exits with 0\0A\09\09other versions of iprange will exit with 1\0A\09\09use this option in scripts to find if this\0A\09\09version of iprange is present in a system\0A\0A\09-v\0A\09\09be verbose on stderr\0A\0A\09--help\0A\09-h\0A\09\09print this message\0A\0A\0A\09--------------------------------------------------------------\0A\09INPUT FILES\0A\0A\09fileN\0A\09\09a filename or - for stdin\0A\09\09each filename can be followed by [as NAME]\0A\09\09to change its name in the CSV output\0A\0A\09\09if no filename is given, stdin is assumed\0A\0A\09\09files may contain:\0A\09\09- comments starting with # or ;\0A\09\09- one IP per line (without mask)\0A\09\09- a CIDR per line (A.A.A.A/B)\0A\09\09- an IP range per line (A.A.A.A - B.B.B.B)\0A\09\09- a CIDR range per line (A.A.A.A/B - C.C.C.C/D)\0A\09\09 the range is calculated as the network address of\0A\09\09 A.A.A.A/B to the broadcast address of C.C.C.C/D\0A\09\09 (this is affected by --dont-fix-network)\0A\09\09- CIDRs can be given in either prefix or netmask\0A\09\09 format in all cases (including ranges)\0A\09\09- spaces and empty lines are ignored\0A\0A\09\09any number of files can be given\0A\0A\00"
define void @usage(i8* %0) {
%2 = load i32, i32* @stderr
%3 = tail call i32 @fprintf(i32 %2, i8* getelementptr inbounds ([6102 x i8], [6102 x i8]* @.str, i64 0, i64 0), i8* %0)
%4 = tail call i32 @exit(i32 1)
unreachable
}