#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*/ printf(char *, ...);
void Usage() {
  printf("\033[00;00m"
         "%s\n"
         "\033[00;01m"
         "NAME\n"
         "\033[00;00m"
         "\t%s - A comprehensive, accurate and fast distance-based phylogeny "
         "inference program.\n\n"
         "\033[00;00m"
         "\tVincent Lefort, Richard Desper and Olivier Gascuel,\n"
         "\033[00;00m"
         "\tMolecular Biology and Evolution 32(10), 2798-800, 2015.\n"
         "\033[00;00m"
         "\tPlease cite this paper if you use this program in your "
         "publications.\n",
         "FastME 2.1.5", "FastME");
  printf("\033[00;01m"
         "\nSYNOPSIS\n"
         "\033[00;01m"
         "\t%s"
         "\033[00;00m"
         "  ["
         "\033[00;01m"
         "-i "
         "\033[00;04m"
         "input data file"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "  ["
         "\033[00;01m"
         "-u "
         "\033[00;04m"
         "input user tree file"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "\n\t["
         "\033[00;01m"
         "-o "
         "\033[00;04m"
         "output tree file"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "  ["
         "\033[00;01m"
         "-O "
         "\033[00;04m"
         "output matrix file"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "  ["
         "\033[00;01m"
         "-I "
         "\033[00;04m"
         "output information file"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "\n\t["
         "\033[00;01m"
         "-B "
         "\033[00;04m"
         "output bootstrap trees file"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "  ["
         "\033[00;01m"
         "-a"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "\n\t["
         "\033[00;01m"
         "-m "
         "\033[00;04m"
         "method"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "  [ "
         "\033[00;01m"
         "-D"
         "\033[00;04m"
         "[model]"
         "\033[00;00m"
         " | "
         "\033[00;01m"
         "-P"
         "\033[00;04m"
         "[model]"
         "\033[00;00m"
         " ]"
         "\033[00;00m"
         "  ["
         "\033[00;01m"
         "-r]"
         "\033[00;00m"
         "  ["
         "\033[00;01m"
         "-e]"
         "\033[00;00m"
         "  ["
         "\033[00;01m"
         "-g"
         "\033[00;04m"
         "[alpha]"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "  ["
         "\033[00;01m"
         "-n"
         "\033[00;04m"
         "[NNI]"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "  ["
         "\033[00;01m"
         "-s"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "  ["
         "\033[00;01m"
         "-w "
         "\033[00;04m"
         "branch"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "\n\t["
         "\033[00;01m"
         "-d "
         "\033[00;04m"
         "datasets"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "  ["
         "\033[00;01m"
         "-b "
         "\033[00;04m"
         "replicates"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "  ["
         "\033[00;01m"
         "-z "
         "\033[00;04m"
         "seed"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "\n\t["
         "\033[00;01m"
         "-c"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "\n\t["
         "\033[00;01m"
         "-f"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "  ["
         "\033[00;01m"
         "-v"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "  ["
         "\033[00;01m"
         "-V"
         "\033[00;00m"
         "]"
         "\033[00;00m"
         "  ["
         "\033[00;01m"
         "-h"
         "\033[00;00m"
         "] \n",
         "fastme");
  printf(
      "\033[00;00m"
      "\n\tYou can use %s with no arguments, in this case change the value of\n"
      "\033[00;00m"
      "\ta parameter by typing its corresponding character as shown on "
      "screen.\n",
      "fastme");
  printf("\033[00;01m"
         "\nOPTIONS\n");
  printf("\033[00;01m"
         "\n\t-i "
         "\033[00;04m"
         "input data file"
         "\033[00;01m"
         ", --input_data="
         "\033[00;04m"
         "input data file"
         "\033[00;00m"
         "\n\t\tThe "
         "\033[00;04m"
         "input data file"
         "\033[00;00m"
         " contains sequence alignment(s)"
         "\033[00;00m"
         "\n\t\tor a distance matrix(ces).\n");
  printf("\033[00;01m"
         "\n\t-u "
         "\033[00;04m"
         "input user tree file"
         "\033[00;01m"
         ", --user_tree="
         "\033[00;04m"
         "input user tree file"
         "\033[00;00m"
         "\n\t\t"
         "\033[00;01m"
         "%s "
         "\033[00;00m"
         "may use an existing topology available in the "
         "\033[00;04m"
         "input user tree file"
         "\033[00;00m"
         "\n\t\twhich corresponds to the input dataset.\n",
         "FastME");
  printf("\033[00;01m"
         "\n\t-o "
         "\033[00;04m"
         "output tree file"
         "\033[00;01m"
         ", --output_tree="
         "\033[00;04m"
         "output tree file"
         "\033[00;00m"
         "\n\t\t"
         "\033[00;01m"
         "%s "
         "\033[00;00m"
         "will write the infered tree into the "
         "\033[00;04m"
         "output tree file"
         "\033[00;00m"
         ".\n",
         "FastME");
  printf("\033[00;01m"
         "\n\t-O "
         "\033[00;04m"
         "output matrix file"
         "\033[00;01m"
         ", --output_matrix="
         "\033[00;04m"
         "output matrix file"
         "\033[00;00m"
         "\n\t\tUse this option if you want "
         "\033[00;01m"
         "%s "
         "\033[00;00m"
         "to write the distances"
         "\033[00;00m"
         "\n\t\tmatrix computed from the input alignment in the "
         "\033[00;04m"
         "output matrix file"
         "\033[00;00m"
         ".\n",
         "FastME");
  printf("\033[00;01m"
         "\n\t-I "
         "\033[00;04m"
         "output information file"
         "\033[00;01m"
         ", --output_info="
         "\033[00;04m"
         "output information file"
         "\033[00;00m"
         "\n\t\tUse this option if you want "
         "\033[00;01m"
         "%s "
         "\033[00;00m"
         "to write information"
         "\033[00;00m"
         "\n\t\tabout its execution in the "
         "\033[00;04m"
         "output information file"
         "\033[00;00m"
         ".\n",
         "FastME");
  printf("\033[00;01m"
         "\n\t-B "
         "\033[00;04m"
         "output bootstrap trees file"
         "\033[00;01m"
         ", --output_boot="
         "\033[00;04m"
         "output bootstrap trees file"
         "\033[00;00m"
         "\n\t\tUse this option if you want "
         "\033[00;01m"
         "%s "
         "\033[00;00m"
         "to write bootstrap trees"
         "\033[00;00m"
         "\n\t\tin the "
         "\033[00;04m"
         "bootstrap trees file"
         "\033[00;00m"
         ".\n",
         "FastME");
  printf("\033[00;01m"
         "\n\t-a, --append"
         "\033[00;00m"
         "\n\t\tUse this option to append results to existing output files (if "
         "any)."
         "\033[00;00m"
         "\n\t\tBy default output files will be overwritten.\n");
  printf("\033[00;01m"
         "\n\t-m "
         "\033[00;04m"
         "method"
         "\033[00;01m"
         ", --method="
         "\033[00;04m"
         "method"
         "\033[00;00m"
         "\n\t\t"
         "\033[00;01m"
         "%s "
         "\033[00;00m"
         "computes a tree using a distance algorithm."
         "\033[00;00m"
         "\n\t\tYou may choose this "
         "\033[00;04m"
         "method"
         "\033[00;00m"
         " from:"
         "\033[00;00m"
         "\n\t\t"
         "\033[00;01m"
         "TaxAdd_(B)alME"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "TaxAdd_(O)LSME"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "B(I)ONJ"
         "\033[00;00m"
         " (default),"
         "\033[00;00m"
         "\n\t\t"
         "\033[00;01m"
         "(N)J"
         "\033[00;00m"
         " or "
         "\033[00;01m"
         "(U)NJ"
         "\033[00;00m"
         ".\n",
         "FastME");
  printf("\033[00;01m"
         "\n\t-d"
         "\033[00;04m"
         "[model]"
         "\033[00;01m"
         ", --dna="
         "\033[00;04m"
         "[model]"
         "\033[00;00m"
         "\n\t\tUse this option if your input data file contains DNA sequences "
         "alignment(s)."
         "\033[00;00m"
         "\n\t\tYou may also indicate the evolutionary "
         "\033[00;04m"
         "[model]"
         "\033[00;00m"
         " which can be choosen from:"
         "\033[00;00m"
         "\n\t\t"
         "\033[00;01m"
         "(p)-distance"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "R(Y) symmetric"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "(R)Y"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "(J)C69"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "(K)2P"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "F8(1)"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "F8(4)"
         "\033[00;00m"
         " (default), "
         "\033[00;01m"
         "(T)N93"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "(L)ogDet"
         "\033[00;00m"
         ".\n");
  printf("\033[00;01m"
         "\n\t-p"
         "\033[00;04m"
         "[model]"
         "\033[00;01m"
         ", --protein="
         "\033[00;04m"
         "[model]"
         "\033[00;00m"
         "\n\t\tUse this option if your input data file contains protein "
         "sequences alignment(s)."
         "\033[00;00m"
         "\n\t\tYou may also indicate the evolutionary "
         "\033[00;04m"
         "[model]"
         "\033[00;00m"
         " which can be choosen from:"
         "\033[00;00m"
         "\n\t\t"
         "\033[00;01m"
         "(p)-distance"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "(F)81 like"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "(L)G"
         "\033[00;00m"
         " (default), "
         "\033[00;01m"
         "(W)AG"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "(J)TT"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "Day(h)off"
         "\033[00;00m"
         ", "
         "\033[00;00m"
         "\n\t\t"
         "\033[00;01m"
         "(D)CMut"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "(C)pRev"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "(M)tREV"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "(R)tREV"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "HIV(b)"
         "\033[00;00m"
         ", "
         "\033[00;01m"
         "H(I)Vw"
         "\033[00;00m"
         " or "
         "\033[00;01m"
         "FL(U)"
         "\033[00;00m"
         ".\n");
  printf(
      "\033[00;01m"
      "\n\t-r, --remove_gap"
      "\033[00;00m"
      "\n\t\tUse this option to completely remove any site which has a gap in"
      "\033[00;00m"
      "\n\t\tany sequence. By default, "
      "\033[00;01m"
      "%s "
      "\033[00;00m"
      "is doing pairwise deletion of gaps.\n",
      "FastME");
  printf("\033[00;01m"
         "\n\t-e, --equilibrium"
         "\033[00;00m"
         "\n\t\tThe equilibrium frequencies for DNA are always estimated by "
         "counting"
         "\033[00;00m"
         "\n\t\tthe occurence of the nucleotides in the input alignment."
         "\033[00;00m"
         "\n\t\tFor amino-acid sequences, the equilibrium frequencies are "
         "estimated"
         "\033[00;00m"
         "\n\t\tusing the frequencies defined by the substitution model."
         "\033[00;00m"
         "\n\t\tUse this option if you whish to estimate the amino-acid "
         "frequencies"
         "\033[00;00m"
         "\n\t\tby counting their occurence in the input alignment.\n");
  printf("\033[00;01m"
         "\n\t-g"
         "\033[00;04m"
         "[alpha]"
         "\033[00;01m"
         ", --gamma="
         "\033[00;04m"
         "[alpha]"
         "\033[00;00m"
         "\n\t\tUse this option if you wish to have gamma distributed rates "
         "across sites."
         "\033[00;00m"
         "\n\t\tBy default, %s runs with no gamma variation."
         "\033[00;00m"
         "\n\t\tIf running %s with gamma distributed rates across sites, the "
         "\033[00;04m"
         "[alpha]"
         "\033[00;00m"
         " default value is 1.0."
         "\033[00;00m"
         "\n\t\tOnly helpful when the input data file contains sequences "
         "alignment(s).\n",
         "FastME", "FastME");
  printf("\033[00;01m"
         "\n\t-n"
         "\033[00;04m"
         "[NNI]"
         "\033[00;01m"
         ", --nni="
         "\033[00;04m"
         "[NNI]"
         "\033[00;00m"
         "\n\t\tUse this option to do "
         "\033[00;04m"
         "[NNI]"
         "\033[00;00m"
         " tree topology improvement."
         "\033[00;00m"
         "\n\t\tYou may choose the "
         "\033[00;04m"
         "[NNI]"
         "\033[00;00m"
         " type from:"
         "\033[00;00m"
         "\n\t\t"
         "\033[00;01m"
         "NNI_(B)alME"
         "\033[00;00m"
         " (default) or "
         "\033[00;01m"
         "NNI_(O)LS"
         "\033[00;00m"
         ".\n");
  printf("\033[00;01m"
         "\n\t-s, --spr"
         "\033[00;00m"
         "\n\t\tUse this option to do "
         "\033[00;04m"
         "SPR"
         "\033[00;00m"
         " tree topology improvement.\n");
  printf("\033[00;01m"
         "\n\t-w "
         "\033[00;04m"
         "branch"
         "\033[00;01m"
         ", --branch_length="
         "\033[00;04m"
         "branch"
         "\033[00;00m"
         "\n\t\tUse this option to indicate the "
         "\033[00;04m"
         "branch"
         "\033[00;00m"
         " length to assign to the tree."
         "\033[00;00m"
         "\n\t\tYou may choose the "
         "\033[00;04m"
         "branch"
         "\033[00;00m"
         " length from: "
         "\033[00;01m"
         "(B)alLS"
         "\033[00;00m"
         " (default), "
         "\033[00;01m"
         "(O)LS"
         "\033[00;00m"
         "\n\t\tor "
         "\033[00;01m"
         "(n)one"
         "\033[00;00m"
         ". "
         "\033[00;01m"
         "(n)one "
         "\033[00;00m"
         "is only available with BIONJ, NJ or UNJ."
         "\033[00;00m"
         "\n\t\tOnly helpful when not improving the tree topology (no NNI nor "
         "SPR).\n");
  printf("\033[00;01m"
         "\n\t-D "
         "\033[00;04m"
         "datasets"
         "\033[00;01m"
         ", --datasets="
         "\033[00;04m"
         "datasets"
         "\033[00;00m"
         "\n\t\tUse this option to indicate the number of "
         "\033[00;04m"
         "datasets"
         "\033[00;00m"
         " in your input"
         "\033[00;00m"
         "\n\t\tdata file. Default value is 1.\n");
  printf("\033[00;01m"
         "\n\t-b "
         "\033[00;04m"
         "replicates"
         "\033[00;01m"
         ", --bootstrap="
         "\033[00;04m"
         "replicates"
         "\033[00;00m"
         "\n\t\tUse this option to indicate the number of "
         "\033[00;04m"
         "replicates"
         "\033[00;01m"
         " %s "
         "\033[00;00m"
         "will"
         "\033[00;00m"
         "\n\t\tdo for bootstrapping. Default value is 0."
         "\033[00;00m"
         "\n\t\tOnly helpful when the input data file contains sequences "
         "alignment(s).\n",
         "FastME");
  printf("\033[00;01m"
         "\n\t-z "
         "\033[00;04m"
         "seed"
         "\033[00;01m"
         ", --seed="
         "\033[00;04m"
         "seed"
         "\033[00;00m"
         "\n\t\tUse this option to initialize randomization with "
         "\033[00;04m"
         "seed"
         "\033[00;00m"
         " value."
         "\033[00;00m"
         "\n\t\tOnly helpful when bootstrapping.\n");
  printf("\033[00;01m"
         "\n\t-c"
         "\033[00;00m"
         "\n\t\tUse this option if you want %s only to compute distance matrix."
         "\033[00;00m"
         "\n\t\tOnly helpful when the input data file contains sequences "
         "alignment(s).\n",
         "FastME");
  printf("\033[00;01m"
         "\n\t-f "
         "\033[00;04m"
         "number of digits"
         "\033[00;00m"
         "\n\t\tUse this option to set the number of digits after the dot to "
         "use on output."
         "\033[00;00m"
         "\n\t\tDefault precision is 12.\n");
  printf("\033[00;01m"
         "\n\t-v "
         "\033[00;04m"
         "value"
         "\033[00;01m"
         ", --verbose="
         "\033[00;04m"
         "value"
         "\033[00;00m"
         "\n\t\tSets the verbose level to "
         "\033[00;04m"
         "value"
         "\033[00;00m"
         " [0-3]."
         "\033[00;00m"
         "\n\t\tDefault "
         "\033[00;04m"
         "value"
         "\033[00;00m"
         " is 0.\n");
  printf("\033[00;01m"
         "\n\t-V, --version"
         "\033[00;00m"
         "\n\t\tPrints the %s version.\n",
         "FastME");
  printf("\033[00;01m"
         "\n\t-h, --help"
         "\033[00;00m"
         "\n\t\tDisplay this usage.\n\n");
  return;
}


x86 assembly (clang, -O0):
<Usage>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
lea    0x1021(%rip),%rsi
lea    0x1027(%rip),%rdx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1020(%rip),%rdi
lea    0x1428(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1421(%rip),%rdi
lea    0x1413(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x14a9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x14ad(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1565(%rip),%rdi
lea    0xfcc(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1647(%rip),%rdi
lea    0xfb7(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x16ed(%rip),%rdi
lea    0xfa2(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x17e3(%rip),%rdi
lea    0xf8d(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x18cf(%rip),%rdi
lea    0xf78(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x19b0(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1a40(%rip),%rdi
lea    0xf55(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b93(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1d73(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1fc9(%rip),%rdi
lea    0xf24(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2076(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2234(%rip),%rdi
lea    0xf01(%rip),%rdx
mov    %rdx,%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x23ab(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x24b2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2508(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x26c3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x277d(%rip),%rdi
lea    0xeb1(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2895(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2941(%rip),%rdi
lea    0xe8e(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x29d5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2a67(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2b05(%rip),%rdi
lea    0xe5d(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2b2a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<Usage>:
push   %r14
push   %rbx
push   %rax
lea    0xed5(%rip),%rdi
lea    0x1011(%rip),%rsi
lea    0x1017(%rip),%r14
mov    %r14,%rdx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x100d(%rip),%rdi
lea    0x1415(%rip),%rbx
mov    %rbx,%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x140b(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1f14(%rip),%rdi
call   1030 <puts@plt>
lea    0x1f19(%rip),%rdi
call   1030 <puts@plt>
lea    0x147f(%rip),%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1565(%rip),%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x160f(%rip),%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1709(%rip),%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x17f9(%rip),%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1f7d(%rip),%rdi
call   1030 <puts@plt>
lea    0x18d2(%rip),%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1ffd(%rip),%rdi
call   1030 <puts@plt>
lea    0x21de(%rip),%rdi
call   1030 <puts@plt>
lea    0x1a11(%rip),%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x2424(%rip),%rdi
call   1030 <puts@plt>
lea    0x1ab6(%rip),%rdi
mov    %r14,%rsi
mov    %r14,%rdx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x25cf(%rip),%rdi
call   1030 <puts@plt>
lea    0x26d7(%rip),%rdi
call   1030 <puts@plt>
lea    0x272e(%rip),%rdi
call   1030 <puts@plt>
lea    0x28ea(%rip),%rdi
call   1030 <puts@plt>
lea    0x1c01(%rip),%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x2994(%rip),%rdi
call   1030 <puts@plt>
lea    0x1d11(%rip),%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x2a30(%rip),%rdi
call   1030 <puts@plt>
lea    0x2ac3(%rip),%rdi
call   1030 <puts@plt>
lea    0x1d91(%rip),%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x2b51(%rip),%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r14
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [323 x i8] c"\1B[00;00m%s\0A\1B[00;01mNAME\0A\1B[00;00m\09%s - A comprehensive, accurate and fast distance-based phylogeny inference program.\0A\0A\1B[00;00m\09Vincent Lefort, Richard Desper and Olivier Gascuel,\0A\1B[00;00m\09Molecular Biology and Evolution 32(10), 2798-800, 2015.\0A\1B[00;00m\09Please cite this paper if you use this program in your publications.\0A\00"
@.str.1 = [13 x i8] c"FastME 2.1.5\00"
@.str.2 = [7 x i8] c"FastME\00"
@.str.3 = [1039 x i8] c"\1B[00;01m\0ASYNOPSIS\0A\1B[00;01m\09%s\1B[00;00m [\1B[00;01m-i \1B[00;04minput data file\1B[00;00m]\1B[00;00m [\1B[00;01m-u \1B[00;04minput user tree file\1B[00;00m]\1B[00;00m\0A\09[\1B[00;01m-o \1B[00;04moutput tree file\1B[00;00m]\1B[00;00m [\1B[00;01m-O \1B[00;04moutput matrix file\1B[00;00m]\1B[00;00m [\1B[00;01m-I \1B[00;04moutput information file\1B[00;00m]\1B[00;00m\0A\09[\1B[00;01m-B \1B[00;04moutput bootstrap trees file\1B[00;00m]\1B[00;00m [\1B[00;01m-a\1B[00;00m]\1B[00;00m\0A\09[\1B[00;01m-m \1B[00;04mmethod\1B[00;00m]\1B[00;00m [ \1B[00;01m-D\1B[00;04m[model]\1B[00;00m | \1B[00;01m-P\1B[00;04m[model]\1B[00;00m ]\1B[00;00m [\1B[00;01m-r]\1B[00;00m [\1B[00;01m-e]\1B[00;00m [\1B[00;01m-g\1B[00;04m[alpha]\1B[00;00m]\1B[00;00m [\1B[00;01m-n\1B[00;04m[NNI]\1B[00;00m]\1B[00;00m [\1B[00;01m-s\1B[00;00m]\1B[00;00m [\1B[00;01m-w \1B[00;04mbranch\1B[00;00m]\1B[00;00m\0A\09[\1B[00;01m-d \1B[00;04mdatasets\1B[00;00m]\1B[00;00m [\1B[00;01m-b \1B[00;04mreplicates\1B[00;00m]\1B[00;00m [\1B[00;01m-z \1B[00;04mseed\1B[00;00m]\1B[00;00m\0A\09[\1B[00;01m-c\1B[00;00m]\1B[00;00m\0A\09[\1B[00;01m-f\1B[00;00m]\1B[00;00m [\1B[00;01m-v\1B[00;00m]\1B[00;00m [\1B[00;01m-V\1B[00;00m]\1B[00;00m [\1B[00;01m-h\1B[00;00m] \0A\00"
@.str.4 = [7 x i8] c"fastme\00"
@.str.5 = [157 x i8] c"\1B[00;00m\0A\09You can use %s with no arguments, in this case change the value of\0A\1B[00;00m\09a parameter by typing its corresponding character as shown on screen.\0A\00"
@.str.6 = [18 x i8] c"\1B[00;01m\0AOPTIONS\0A\00"
@.str.7 = [198 x i8] c"\1B[00;01m\0A\09-i \1B[00;04minput data file\1B[00;01m, --input_data=\1B[00;04minput data file\1B[00;00m\0A\09\09The \1B[00;04minput data file\1B[00;00m contains sequence alignment(s)\1B[00;00m\0A\09\09or a distance matrix(ces).\0A\00"
@.str.8 = [247 x i8] c"\1B[00;01m\0A\09-u \1B[00;04minput user tree file\1B[00;01m, --user_tree=\1B[00;04minput user tree file\1B[00;00m\0A\09\09\1B[00;01m%s \1B[00;00mmay use an existing topology available in the \1B[00;04minput user tree file\1B[00;00m\0A\09\09which corresponds to the input dataset.\0A\00"
@.str.9 = [187 x i8] c"\1B[00;01m\0A\09-o \1B[00;04moutput tree file\1B[00;01m, --output_tree=\1B[00;04moutput tree file\1B[00;00m\0A\09\09\1B[00;01m%s \1B[00;00mwill write the infered tree into the \1B[00;04moutput tree file\1B[00;00m.\0A\00"
@.str.10 = [267 x i8] c"\1B[00;01m\0A\09-O \1B[00;04moutput matrix file\1B[00;01m, --output_matrix=\1B[00;04moutput matrix file\1B[00;00m\0A\09\09Use this option if you want \1B[00;01m%s \1B[00;00mto write the distances\1B[00;00m\0A\09\09matrix computed from the input alignment in the \1B[00;04moutput matrix file\1B[00;00m.\0A\00"
@.str.11 = [257 x i8] c"\1B[00;01m\0A\09-I \1B[00;04moutput information file\1B[00;01m, --output_info=\1B[00;04moutput information file\1B[00;00m\0A\09\09Use this option if you want \1B[00;01m%s \1B[00;00mto write information\1B[00;00m\0A\09\09about its execution in the \1B[00;04moutput information file\1B[00;00m.\0A\00"
@.str.12 = [246 x i8] c"\1B[00;01m\0A\09-B \1B[00;04moutput bootstrap trees file\1B[00;01m, --output_boot=\1B[00;04moutput bootstrap trees file\1B[00;00m\0A\09\09Use this option if you want \1B[00;01m%s \1B[00;00mto write bootstrap trees\1B[00;00m\0A\09\09in the \1B[00;04mbootstrap trees file\1B[00;00m.\0A\00"
@.str.13 = [158 x i8] c"\1B[00;01m\0A\09-a, --append\1B[00;00m\0A\09\09Use this option to append results to existing output files (if any).\1B[00;00m\0A\09\09By default output files will be overwritten.\0A\00"
@.str.14 = [360 x i8] c"\1B[00;01m\0A\09-m \1B[00;04mmethod\1B[00;01m, --method=\1B[00;04mmethod\1B[00;00m\0A\09\09\1B[00;01m%s \1B[00;00mcomputes a tree using a distance algorithm.\1B[00;00m\0A\09\09You may choose this \1B[00;04mmethod\1B[00;00m from:\1B[00;00m\0A\09\09\1B[00;01mTaxAdd_(B)alME\1B[00;00m, \1B[00;01mTaxAdd_(O)LSME\1B[00;00m, \1B[00;01mB(I)ONJ\1B[00;00m (default),\1B[00;00m\0A\09\09\1B[00;01m(N)J\1B[00;00m or \1B[00;01m(U)NJ\1B[00;00m.\0A\00"
@.str.15 = [494 x i8] c"\1B[00;01m\0A\09-d\1B[00;04m[model]\1B[00;01m, --dna=\1B[00;04m[model]\1B[00;00m\0A\09\09Use this option if your input data file contains DNA sequences alignment(s).\1B[00;00m\0A\09\09You may also indicate the evolutionary \1B[00;04m[model]\1B[00;00m which can be choosen from:\1B[00;00m\0A\09\09\1B[00;01m(p)-distance\1B[00;00m, \1B[00;01mR(Y) symmetric\1B[00;00m, \1B[00;01m(R)Y\1B[00;00m, \1B[00;01m(J)C69\1B[00;00m, \1B[00;01m(K)2P\1B[00;00m, \1B[00;01mF8(1)\1B[00;00m, \1B[00;01mF8(4)\1B[00;00m (default), \1B[00;01m(T)N93\1B[00;00m, \1B[00;01m(L)ogDet\1B[00;00m.\0A\00"
@.str.16 = [612 x i8] c"\1B[00;01m\0A\09-p\1B[00;04m[model]\1B[00;01m, --protein=\1B[00;04m[model]\1B[00;00m\0A\09\09Use this option if your input data file contains protein sequences alignment(s).\1B[00;00m\0A\09\09You may also indicate the evolutionary \1B[00;04m[model]\1B[00;00m which can be choosen from:\1B[00;00m\0A\09\09\1B[00;01m(p)-distance\1B[00;00m, \1B[00;01m(F)81 like\1B[00;00m, \1B[00;01m(L)G\1B[00;00m (default), \1B[00;01m(W)AG\1B[00;00m, \1B[00;01m(J)TT\1B[00;00m, \1B[00;01mDay(h)off\1B[00;00m, \1B[00;00m\0A\09\09\1B[00;01m(D)CMut\1B[00;00m, \1B[00;01m(C)pRev\1B[00;00m, \1B[00;01m(M)tREV\1B[00;00m, \1B[00;01m(R)tREV\1B[00;00m, \1B[00;01mHIV(b)\1B[00;00m, \1B[00;01mH(I)Vw\1B[00;00m or \1B[00;01mFL(U)\1B[00;00m.\0A\00"
@.str.17 = [194 x i8] c"\1B[00;01m\0A\09-r, --remove_gap\1B[00;00m\0A\09\09Use this option to completely remove any site which has a gap in\1B[00;00m\0A\09\09any sequence. By default, \1B[00;01m%s \1B[00;00mis doing pairwise deletion of gaps.\0A\00"
@.str.18 = [460 x i8] c"\1B[00;01m\0A\09-e, --equilibrium\1B[00;00m\0A\09\09The equilibrium frequencies for DNA are always estimated by counting\1B[00;00m\0A\09\09the occurence of the nucleotides in the input alignment.\1B[00;00m\0A\09\09For amino-acid sequences, the equilibrium frequencies are estimated\1B[00;00m\0A\09\09using the frequencies defined by the substitution model.\1B[00;00m\0A\09\09Use this option if you whish to estimate the amino-acid frequencies\1B[00;00m\0A\09\09by counting their occurence in the input alignment.\0A\00"
@.str.19 = [399 x i8] c"\1B[00;01m\0A\09-g\1B[00;04m[alpha]\1B[00;01m, --gamma=\1B[00;04m[alpha]\1B[00;00m\0A\09\09Use this option if you wish to have gamma distributed rates across sites.\1B[00;00m\0A\09\09By default, %s runs with no gamma variation.\1B[00;00m\0A\09\09If running %s with gamma distributed rates across sites, the \1B[00;04m[alpha]\1B[00;00m default value is 1.0.\1B[00;00m\0A\09\09Only helpful when the input data file contains sequences alignment(s).\0A\00"
@.str.20 = [277 x i8] c"\1B[00;01m\0A\09-n\1B[00;04m[NNI]\1B[00;01m, --nni=\1B[00;04m[NNI]\1B[00;00m\0A\09\09Use this option to do \1B[00;04m[NNI]\1B[00;00m tree topology improvement.\1B[00;00m\0A\09\09You may choose the \1B[00;04m[NNI]\1B[00;00m type from:\1B[00;00m\0A\09\09\1B[00;01mNNI_(B)alME\1B[00;00m (default) or \1B[00;01mNNI_(O)LS\1B[00;00m.\0A\00"
@.str.21 = [100 x i8] c"\1B[00;01m\0A\09-s, --spr\1B[00;00m\0A\09\09Use this option to do \1B[00;04mSPR\1B[00;00m tree topology improvement.\0A\00"
@.str.22 = [457 x i8] c"\1B[00;01m\0A\09-w \1B[00;04mbranch\1B[00;01m, --branch_length=\1B[00;04mbranch\1B[00;00m\0A\09\09Use this option to indicate the \1B[00;04mbranch\1B[00;00m length to assign to the tree.\1B[00;00m\0A\09\09You may choose the \1B[00;04mbranch\1B[00;00m length from: \1B[00;01m(B)alLS\1B[00;00m (default), \1B[00;01m(O)LS\1B[00;00m\0A\09\09or \1B[00;01m(n)one\1B[00;00m. \1B[00;01m(n)one \1B[00;00mis only available with BIONJ, NJ or UNJ.\1B[00;00m\0A\09\09Only helpful when not improving the tree topology (no NNI nor SPR).\0A\00"
@.str.23 = [200 x i8] c"\1B[00;01m\0A\09-D \1B[00;04mdatasets\1B[00;01m, --datasets=\1B[00;04mdatasets\1B[00;00m\0A\09\09Use this option to indicate the number of \1B[00;04mdatasets\1B[00;00m in your input\1B[00;00m\0A\09\09data file. Default value is 1.\0A\00"
@.str.24 = [301 x i8] c"\1B[00;01m\0A\09-b \1B[00;04mreplicates\1B[00;01m, --bootstrap=\1B[00;04mreplicates\1B[00;00m\0A\09\09Use this option to indicate the number of \1B[00;04mreplicates\1B[00;01m %s \1B[00;00mwill\1B[00;00m\0A\09\09do for bootstrapping. Default value is 0.\1B[00;00m\0A\09\09Only helpful when the input data file contains sequences alignment(s).\0A\00"
@.str.25 = [186 x i8] c"\1B[00;01m\0A\09-z \1B[00;04mseed\1B[00;01m, --seed=\1B[00;04mseed\1B[00;00m\0A\09\09Use this option to initialize randomization with \1B[00;04mseed\1B[00;00m value.\1B[00;00m\0A\09\09Only helpful when bootstrapping.\0A\00"
@.str.26 = [169 x i8] c"\1B[00;01m\0A\09-c\1B[00;00m\0A\09\09Use this option if you want %s only to compute distance matrix.\1B[00;00m\0A\09\09Only helpful when the input data file contains sequences alignment(s).\0A\00"
@.str.27 = [160 x i8] c"\1B[00;01m\0A\09-f \1B[00;04mnumber of digits\1B[00;00m\0A\09\09Use this option to set the number of digits after the dot to use on output.\1B[00;00m\0A\09\09Default precision is 12.\0A\00"
@.str.28 = [172 x i8] c"\1B[00;01m\0A\09-v \1B[00;04mvalue\1B[00;01m, --verbose=\1B[00;04mvalue\1B[00;00m\0A\09\09Sets the verbose level to \1B[00;04mvalue\1B[00;00m [0-3].\1B[00;00m\0A\09\09Default \1B[00;04mvalue\1B[00;00m is 0.\0A\00"
@.str.29 = [58 x i8] c"\1B[00;01m\0A\09-V, --version\1B[00;00m\0A\09\09Prints the %s version.\0A\00"
@.str.30 = [53 x i8] c"\1B[00;01m\0A\09-h, --help\1B[00;00m\0A\09\09Display this usage.\0A\0A\00"
define void @Usage() {
%1 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([323 x i8], [323 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%2 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([1039 x i8], [1039 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0))
%3 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([157 x i8], [157 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0))
%4 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.6, i64 0, i64 0))
%5 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([198 x i8], [198 x i8]* @.str.7, i64 0, i64 0))
%6 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([247 x i8], [247 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%7 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([187 x i8], [187 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%8 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([267 x i8], [267 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%9 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([257 x i8], [257 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([246 x i8], [246 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%11 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([158 x i8], [158 x i8]* @.str.13, i64 0, i64 0))
%12 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([360 x i8], [360 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%13 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([494 x i8], [494 x i8]* @.str.15, i64 0, i64 0))
%14 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([612 x i8], [612 x i8]* @.str.16, i64 0, i64 0))
%15 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([194 x i8], [194 x i8]* @.str.17, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%16 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([460 x i8], [460 x i8]* @.str.18, i64 0, i64 0))
%17 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([399 x i8], [399 x i8]* @.str.19, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%18 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([277 x i8], [277 x i8]* @.str.20, i64 0, i64 0))
%19 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([100 x i8], [100 x i8]* @.str.21, i64 0, i64 0))
%20 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([457 x i8], [457 x i8]* @.str.22, i64 0, i64 0))
%21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([200 x i8], [200 x i8]* @.str.23, i64 0, i64 0))
%22 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([301 x i8], [301 x i8]* @.str.24, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%23 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([186 x i8], [186 x i8]* @.str.25, i64 0, i64 0))
%24 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([169 x i8], [169 x i8]* @.str.26, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%25 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([160 x i8], [160 x i8]* @.str.27, i64 0, i64 0))
%26 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([172 x i8], [172 x i8]* @.str.28, i64 0, i64 0))
%27 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.29, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%28 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.30, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [323 x i8] c"\1B[00;00m%s\0A\1B[00;01mNAME\0A\1B[00;00m\09%s - A comprehensive, accurate and fast distance-based phylogeny inference program.\0A\0A\1B[00;00m\09Vincent Lefort, Richard Desper and Olivier Gascuel,\0A\1B[00;00m\09Molecular Biology and Evolution 32(10), 2798-800, 2015.\0A\1B[00;00m\09Please cite this paper if you use this program in your publications.\0A\00"
@.str.1 = [13 x i8] c"FastME 2.1.5\00"
@.str.2 = [7 x i8] c"FastME\00"
@.str.3 = [1039 x i8] c"\1B[00;01m\0ASYNOPSIS\0A\1B[00;01m\09%s\1B[00;00m [\1B[00;01m-i \1B[00;04minput data file\1B[00;00m]\1B[00;00m [\1B[00;01m-u \1B[00;04minput user tree file\1B[00;00m]\1B[00;00m\0A\09[\1B[00;01m-o \1B[00;04moutput tree file\1B[00;00m]\1B[00;00m [\1B[00;01m-O \1B[00;04moutput matrix file\1B[00;00m]\1B[00;00m [\1B[00;01m-I \1B[00;04moutput information file\1B[00;00m]\1B[00;00m\0A\09[\1B[00;01m-B \1B[00;04moutput bootstrap trees file\1B[00;00m]\1B[00;00m [\1B[00;01m-a\1B[00;00m]\1B[00;00m\0A\09[\1B[00;01m-m \1B[00;04mmethod\1B[00;00m]\1B[00;00m [ \1B[00;01m-D\1B[00;04m[model]\1B[00;00m | \1B[00;01m-P\1B[00;04m[model]\1B[00;00m ]\1B[00;00m [\1B[00;01m-r]\1B[00;00m [\1B[00;01m-e]\1B[00;00m [\1B[00;01m-g\1B[00;04m[alpha]\1B[00;00m]\1B[00;00m [\1B[00;01m-n\1B[00;04m[NNI]\1B[00;00m]\1B[00;00m [\1B[00;01m-s\1B[00;00m]\1B[00;00m [\1B[00;01m-w \1B[00;04mbranch\1B[00;00m]\1B[00;00m\0A\09[\1B[00;01m-d \1B[00;04mdatasets\1B[00;00m]\1B[00;00m [\1B[00;01m-b \1B[00;04mreplicates\1B[00;00m]\1B[00;00m [\1B[00;01m-z \1B[00;04mseed\1B[00;00m]\1B[00;00m\0A\09[\1B[00;01m-c\1B[00;00m]\1B[00;00m\0A\09[\1B[00;01m-f\1B[00;00m]\1B[00;00m [\1B[00;01m-v\1B[00;00m]\1B[00;00m [\1B[00;01m-V\1B[00;00m]\1B[00;00m [\1B[00;01m-h\1B[00;00m] \0A\00"
@.str.4 = [7 x i8] c"fastme\00"
@.str.5 = [157 x i8] c"\1B[00;00m\0A\09You can use %s with no arguments, in this case change the value of\0A\1B[00;00m\09a parameter by typing its corresponding character as shown on screen.\0A\00"
@.str.8 = [247 x i8] c"\1B[00;01m\0A\09-u \1B[00;04minput user tree file\1B[00;01m, --user_tree=\1B[00;04minput user tree file\1B[00;00m\0A\09\09\1B[00;01m%s \1B[00;00mmay use an existing topology available in the \1B[00;04minput user tree file\1B[00;00m\0A\09\09which corresponds to the input dataset.\0A\00"
@.str.9 = [187 x i8] c"\1B[00;01m\0A\09-o \1B[00;04moutput tree file\1B[00;01m, --output_tree=\1B[00;04moutput tree file\1B[00;00m\0A\09\09\1B[00;01m%s \1B[00;00mwill write the infered tree into the \1B[00;04moutput tree file\1B[00;00m.\0A\00"
@.str.10 = [267 x i8] c"\1B[00;01m\0A\09-O \1B[00;04moutput matrix file\1B[00;01m, --output_matrix=\1B[00;04moutput matrix file\1B[00;00m\0A\09\09Use this option if you want \1B[00;01m%s \1B[00;00mto write the distances\1B[00;00m\0A\09\09matrix computed from the input alignment in the \1B[00;04moutput matrix file\1B[00;00m.\0A\00"
@.str.11 = [257 x i8] c"\1B[00;01m\0A\09-I \1B[00;04moutput information file\1B[00;01m, --output_info=\1B[00;04moutput information file\1B[00;00m\0A\09\09Use this option if you want \1B[00;01m%s \1B[00;00mto write information\1B[00;00m\0A\09\09about its execution in the \1B[00;04moutput information file\1B[00;00m.\0A\00"
@.str.12 = [246 x i8] c"\1B[00;01m\0A\09-B \1B[00;04moutput bootstrap trees file\1B[00;01m, --output_boot=\1B[00;04moutput bootstrap trees file\1B[00;00m\0A\09\09Use this option if you want \1B[00;01m%s \1B[00;00mto write bootstrap trees\1B[00;00m\0A\09\09in the \1B[00;04mbootstrap trees file\1B[00;00m.\0A\00"
@.str.14 = [360 x i8] c"\1B[00;01m\0A\09-m \1B[00;04mmethod\1B[00;01m, --method=\1B[00;04mmethod\1B[00;00m\0A\09\09\1B[00;01m%s \1B[00;00mcomputes a tree using a distance algorithm.\1B[00;00m\0A\09\09You may choose this \1B[00;04mmethod\1B[00;00m from:\1B[00;00m\0A\09\09\1B[00;01mTaxAdd_(B)alME\1B[00;00m, \1B[00;01mTaxAdd_(O)LSME\1B[00;00m, \1B[00;01mB(I)ONJ\1B[00;00m (default),\1B[00;00m\0A\09\09\1B[00;01m(N)J\1B[00;00m or \1B[00;01m(U)NJ\1B[00;00m.\0A\00"
@.str.17 = [194 x i8] c"\1B[00;01m\0A\09-r, --remove_gap\1B[00;00m\0A\09\09Use this option to completely remove any site which has a gap in\1B[00;00m\0A\09\09any sequence. By default, \1B[00;01m%s \1B[00;00mis doing pairwise deletion of gaps.\0A\00"
@.str.19 = [399 x i8] c"\1B[00;01m\0A\09-g\1B[00;04m[alpha]\1B[00;01m, --gamma=\1B[00;04m[alpha]\1B[00;00m\0A\09\09Use this option if you wish to have gamma distributed rates across sites.\1B[00;00m\0A\09\09By default, %s runs with no gamma variation.\1B[00;00m\0A\09\09If running %s with gamma distributed rates across sites, the \1B[00;04m[alpha]\1B[00;00m default value is 1.0.\1B[00;00m\0A\09\09Only helpful when the input data file contains sequences alignment(s).\0A\00"
@.str.24 = [301 x i8] c"\1B[00;01m\0A\09-b \1B[00;04mreplicates\1B[00;01m, --bootstrap=\1B[00;04mreplicates\1B[00;00m\0A\09\09Use this option to indicate the number of \1B[00;04mreplicates\1B[00;01m %s \1B[00;00mwill\1B[00;00m\0A\09\09do for bootstrapping. Default value is 0.\1B[00;00m\0A\09\09Only helpful when the input data file contains sequences alignment(s).\0A\00"
@.str.26 = [169 x i8] c"\1B[00;01m\0A\09-c\1B[00;00m\0A\09\09Use this option if you want %s only to compute distance matrix.\1B[00;00m\0A\09\09Only helpful when the input data file contains sequences alignment(s).\0A\00"
@.str.29 = [58 x i8] c"\1B[00;01m\0A\09-V, --version\1B[00;00m\0A\09\09Prints the %s version.\0A\00"
@str = [17 x i8] c"\1B[00;01m\0AOPTIONS\00"
@str.31 = [197 x i8] c"\1B[00;01m\0A\09-i \1B[00;04minput data file\1B[00;01m, --input_data=\1B[00;04minput data file\1B[00;00m\0A\09\09The \1B[00;04minput data file\1B[00;00m contains sequence alignment(s)\1B[00;00m\0A\09\09or a distance matrix(ces).\00"
@str.32 = [157 x i8] c"\1B[00;01m\0A\09-a, --append\1B[00;00m\0A\09\09Use this option to append results to existing output files (if any).\1B[00;00m\0A\09\09By default output files will be overwritten.\00"
@str.33 = [493 x i8] c"\1B[00;01m\0A\09-d\1B[00;04m[model]\1B[00;01m, --dna=\1B[00;04m[model]\1B[00;00m\0A\09\09Use this option if your input data file contains DNA sequences alignment(s).\1B[00;00m\0A\09\09You may also indicate the evolutionary \1B[00;04m[model]\1B[00;00m which can be choosen from:\1B[00;00m\0A\09\09\1B[00;01m(p)-distance\1B[00;00m, \1B[00;01mR(Y) symmetric\1B[00;00m, \1B[00;01m(R)Y\1B[00;00m, \1B[00;01m(J)C69\1B[00;00m, \1B[00;01m(K)2P\1B[00;00m, \1B[00;01mF8(1)\1B[00;00m, \1B[00;01mF8(4)\1B[00;00m (default), \1B[00;01m(T)N93\1B[00;00m, \1B[00;01m(L)ogDet\1B[00;00m.\00"
@str.34 = [611 x i8] c"\1B[00;01m\0A\09-p\1B[00;04m[model]\1B[00;01m, --protein=\1B[00;04m[model]\1B[00;00m\0A\09\09Use this option if your input data file contains protein sequences alignment(s).\1B[00;00m\0A\09\09You may also indicate the evolutionary \1B[00;04m[model]\1B[00;00m which can be choosen from:\1B[00;00m\0A\09\09\1B[00;01m(p)-distance\1B[00;00m, \1B[00;01m(F)81 like\1B[00;00m, \1B[00;01m(L)G\1B[00;00m (default), \1B[00;01m(W)AG\1B[00;00m, \1B[00;01m(J)TT\1B[00;00m, \1B[00;01mDay(h)off\1B[00;00m, \1B[00;00m\0A\09\09\1B[00;01m(D)CMut\1B[00;00m, \1B[00;01m(C)pRev\1B[00;00m, \1B[00;01m(M)tREV\1B[00;00m, \1B[00;01m(R)tREV\1B[00;00m, \1B[00;01mHIV(b)\1B[00;00m, \1B[00;01mH(I)Vw\1B[00;00m or \1B[00;01mFL(U)\1B[00;00m.\00"
@str.35 = [459 x i8] c"\1B[00;01m\0A\09-e, --equilibrium\1B[00;00m\0A\09\09The equilibrium frequencies for DNA are always estimated by counting\1B[00;00m\0A\09\09the occurence of the nucleotides in the input alignment.\1B[00;00m\0A\09\09For amino-acid sequences, the equilibrium frequencies are estimated\1B[00;00m\0A\09\09using the frequencies defined by the substitution model.\1B[00;00m\0A\09\09Use this option if you whish to estimate the amino-acid frequencies\1B[00;00m\0A\09\09by counting their occurence in the input alignment.\00"
@str.36 = [276 x i8] c"\1B[00;01m\0A\09-n\1B[00;04m[NNI]\1B[00;01m, --nni=\1B[00;04m[NNI]\1B[00;00m\0A\09\09Use this option to do \1B[00;04m[NNI]\1B[00;00m tree topology improvement.\1B[00;00m\0A\09\09You may choose the \1B[00;04m[NNI]\1B[00;00m type from:\1B[00;00m\0A\09\09\1B[00;01mNNI_(B)alME\1B[00;00m (default) or \1B[00;01mNNI_(O)LS\1B[00;00m.\00"
@str.37 = [99 x i8] c"\1B[00;01m\0A\09-s, --spr\1B[00;00m\0A\09\09Use this option to do \1B[00;04mSPR\1B[00;00m tree topology improvement.\00"
@str.38 = [456 x i8] c"\1B[00;01m\0A\09-w \1B[00;04mbranch\1B[00;01m, --branch_length=\1B[00;04mbranch\1B[00;00m\0A\09\09Use this option to indicate the \1B[00;04mbranch\1B[00;00m length to assign to the tree.\1B[00;00m\0A\09\09You may choose the \1B[00;04mbranch\1B[00;00m length from: \1B[00;01m(B)alLS\1B[00;00m (default), \1B[00;01m(O)LS\1B[00;00m\0A\09\09or \1B[00;01m(n)one\1B[00;00m. \1B[00;01m(n)one \1B[00;00mis only available with BIONJ, NJ or UNJ.\1B[00;00m\0A\09\09Only helpful when not improving the tree topology (no NNI nor SPR).\00"
@str.39 = [199 x i8] c"\1B[00;01m\0A\09-D \1B[00;04mdatasets\1B[00;01m, --datasets=\1B[00;04mdatasets\1B[00;00m\0A\09\09Use this option to indicate the number of \1B[00;04mdatasets\1B[00;00m in your input\1B[00;00m\0A\09\09data file. Default value is 1.\00"
@str.40 = [185 x i8] c"\1B[00;01m\0A\09-z \1B[00;04mseed\1B[00;01m, --seed=\1B[00;04mseed\1B[00;00m\0A\09\09Use this option to initialize randomization with \1B[00;04mseed\1B[00;00m value.\1B[00;00m\0A\09\09Only helpful when bootstrapping.\00"
@str.41 = [159 x i8] c"\1B[00;01m\0A\09-f \1B[00;04mnumber of digits\1B[00;00m\0A\09\09Use this option to set the number of digits after the dot to use on output.\1B[00;00m\0A\09\09Default precision is 12.\00"
@str.42 = [171 x i8] c"\1B[00;01m\0A\09-v \1B[00;04mvalue\1B[00;01m, --verbose=\1B[00;04mvalue\1B[00;00m\0A\09\09Sets the verbose level to \1B[00;04mvalue\1B[00;00m [0-3].\1B[00;00m\0A\09\09Default \1B[00;04mvalue\1B[00;00m is 0.\00"
@str.43 = [52 x i8] c"\1B[00;01m\0A\09-h, --help\1B[00;00m\0A\09\09Display this usage.\0A\00"
define void @Usage() {
%1 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([323 x i8], [323 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%2 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([1039 x i8], [1039 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0))
%3 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([157 x i8], [157 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([197 x i8], [197 x i8]* @str.31, i64 0, i64 0))
%6 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([247 x i8], [247 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%7 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([187 x i8], [187 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%8 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([267 x i8], [267 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%9 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([257 x i8], [257 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%10 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([246 x i8], [246 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([157 x i8], [157 x i8]* @str.32, i64 0, i64 0))
%12 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([360 x i8], [360 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%13 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([493 x i8], [493 x i8]* @str.33, i64 0, i64 0))
%14 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([611 x i8], [611 x i8]* @str.34, i64 0, i64 0))
%15 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([194 x i8], [194 x i8]* @.str.17, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%16 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([459 x i8], [459 x i8]* @str.35, i64 0, i64 0))
%17 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([399 x i8], [399 x i8]* @.str.19, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%18 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([276 x i8], [276 x i8]* @str.36, i64 0, i64 0))
%19 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([99 x i8], [99 x i8]* @str.37, i64 0, i64 0))
%20 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([456 x i8], [456 x i8]* @str.38, i64 0, i64 0))
%21 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([199 x i8], [199 x i8]* @str.39, i64 0, i64 0))
%22 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([301 x i8], [301 x i8]* @.str.24, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%23 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([185 x i8], [185 x i8]* @str.40, i64 0, i64 0))
%24 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([169 x i8], [169 x i8]* @.str.26, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%25 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([159 x i8], [159 x i8]* @str.41, i64 0, i64 0))
%26 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([171 x i8], [171 x i8]* @str.42, i64 0, i64 0))
%27 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.29, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
%28 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @str.43, i64 0, i64 0))
ret void
}