Mercurial > repos > galaxyp > nbic_fasta
changeset 0:163892325845 draft default tip
Initial commit.
author | galaxyp |
---|---|
date | Fri, 10 May 2013 17:15:08 -0400 |
parents | |
children | |
files | ConvertFastaHeaders.pl ConvertFastaHeaders.xml ExtractCleavageSiteSequenceContext.svg ExtractCleavageSiteSequenceContext.xml ExtractMiscleavageSiteSequenceContext.svg ExtractMiscleavageSiteSequenceContext.xml ExtractModificationSiteSequenceContext.svg ExtractModificationSiteSequenceContext.xml ExtractPeptideSequenceContext.pl ExtractPeptideSequenceContext.svg ExtractPeptideSequenceContext.xml ExtractSeqsFromFasta.pl ExtractSeqsFromFasta.xml FastaStats.pl FastaStats.xml GenerateDegenerateFasta.pl GenerateDegenerateFasta.xml LICENSE ProteinDigestor.pl ProteinDigestor.xml README |
diffstat | 21 files changed, 9549 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ConvertFastaHeaders.pl Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,669 @@ +#!/usr/bin/perl + +# +# convertFastaHeaders.pl +# +# $Id: ConvertFastaHeaders.pl 44 2010-10-18 12:58:41Z pieter.neerincx@gmail.com $ +# $URL: https://trac.nbic.nl/svn/galaxytools/trunk/tools/general/FastaTools/ConvertFastaHeaders.pl $ +# $LastChangedDate: 2010-10-18 07:58:41 -0500 (Mon, 18 Oct 2010) $ +# $LastChangedRevision: 44 $ +# $LastChangedBy: pieter.neerincx@gmail.com $ +# +# Converts sequence header of FASTA files (in various customisable ways). +# + +# +# Initialize evironment +# +use strict; +use Getopt::Std; +use Log::Log4perl qw(:easy); + +my %log_levels = ( + 'ALL' => $ALL, + 'TRACE' => $TRACE, + 'DEBUG' => $DEBUG, + 'INFO' => $INFO, + 'WARN' => $WARN, + 'ERROR' => $ERROR, + 'FATAL' => $FATAL, + 'OFF' => $OFF, +); + +# +# Get options. +# +my %opts; +Getopt::Std::getopts('i:o:l:e:f:n:a:p:', \%opts); +my $input = $opts{'i'}; +my $output = $opts{'o'}; +my $log_level = $opts{'l'}; +my $extension = $opts{'e'}; +my @x_fixes_array = split(/\s+/, $opts{'f'}); +my $new_x_fix = $opts{'n'}; +my $action = $opts{'a'}; +my $position = $opts{'p'}; +my %ids_to_delete; +my @new_id_order; + +# +# Configure logging. +# +# Provides default if user did not specify log level: +$log_level = (defined($log_level) ? $log_level : 'WARN'); +# Reset log level to default if user specified illegal log level. +$log_level = (defined($log_levels{$log_level}) ? $log_levels{$log_level} : $log_levels{'WARN'}); +#Log::Log4perl->init('log4perl.properties'); +Log::Log4perl->easy_init( + #{ level => $log_level, + # file => ">>ConvertFastaHeaders.log", + # layout => '%F{1}-%L-%M: %m%n' }, + { level => $log_level, + file => "STDERR", + layout => '%d L:%L %p> %m%n' }, +); +my $logger = Log::Log4perl::get_logger(); + +# +# Start the conversion process. +# +$logger->info("Starting..."); + +# +# Check user input. +# + +# Provides default if user did not specify action: +$action = (defined($action) ? $action : 'add'); + +# Check for valid action and action specific options. +if ($action eq 'add' || $action eq 'strip' || $action eq 'replace') { + + unless (scalar(@x_fixes_array) > 0) { + $logger->fatal('No prefixes or suffixes specified.'); + _Usage(); + } + + if ($action eq 'replace') { + unless (defined($new_x_fix) && $new_x_fix ne '') { + $logger->fatal('No new prefix or suffix specified to replace the existing ones.'); + _Usage(); + } + } + + # Provides default if user did not specify position: + $position = (defined($position) ? $position : 'prefix'); + # Check for valid position. + if ($action eq 'add' || $action eq 'strip') { + unless ($position eq 'prefix' || $position eq 'suffix') { + $logger->fatal('Illegal position specified. Must be \'prefix\' or \'suffix\'.'); + _Usage(); + } + } elsif ($action eq 'replace') { + unless ($position eq 'prefix' || $position eq 'suffix' || $position eq 'pre2suf' || $position eq 'suf2pre') { + $logger->fatal('Illegal position specified. Must be \'prefix\', \'suffix\', \'pre2suf\' or \'suf2pre\'.'); + _Usage(); + } + } + +} elsif ($action eq 'delete' || $action eq 'shuffle') { + + unless (defined($position) && $position ne '') { + $logger->fatal('No position specified.'); + _Usage(); + } + + my @id_indices = split(/,/, $position); + + # Check if the value is a number. + foreach my $index_number (@id_indices) { + + unless ($index_number =~ m/^[1-9][0-9]*$/) { + + $logger->fatal('Illegal character in position list. Must be a single positive integer or comma separated list of positive integers.'); + _Usage(); + + } + + if ($action eq 'delete') { + + $ids_to_delete{$index_number} = 'del'; + + } elsif ($action eq 'shuffle') { + + push(@new_id_order, $index_number); + + } + } + +} else { + $logger->fatal('Illegal action specified. Must be add, strip, replace, delete or shuffle.'); + _Usage(); +} + + +# Provides default if user did not specify log level: +$log_level = (defined($log_level) ? $log_level : 'WARN'); +# Reset log level to default if user specified illegal log level. +$log_level = (defined($log_levels{$log_level}) ? $log_levels{$log_level} : $log_levels{'WARN'}); + +# Provide default if user did not specify fasta filename extension: +$extension = (defined($extension) ? $extension : 'fa'); + +if ($input =~ /^$/ || $output =~ /^$/) { + # Indir and outdir cannot be empty. + _Usage(); +} +if ($input eq $output) { + $logger->fatal("Output dir/file is the same as the input dir/file. Please choose a different one."); + exit; +} + +# +# Check if input is a single file or a directory. +# +unless (-e $input && -r $input) { + + $logger->fatal("Input $input does not exist or is not readable: $!"); + exit; + +} else { + + if (-f $input) { + + # + # We've got an input file. + # + my $file; + if ($input =~ m/(.+\/)([^\/]+)$/) { + $file = $2; + } else { + $file = $input; + } + + $logger->info('Parsing ' . $file . "...\n"); + + _ConvertFastaHeaders($input, $output, $action, \@x_fixes_array, $new_x_fix, $position, \%ids_to_delete, \@new_id_order); + + $logger->info('Converted ' . $file); + + } else { + + # + # We've got an input directory. + # Assume the output is also a directory. + # Append trailing path separators if they was missing. + # + my $indir; + my $outdir; + unless ($input =~ m/\/$/) { + $input = $input .+ '/'; + } + unless ($output =~ m/\/$/) { + $output = $output .+ '/'; + } + # + # Make sure the input dir is a directory. + # + unless (-d $input) { + $logger->fatal("Input $input is not a file nor a directory: $!"); + exit; + } else { + $indir = $input; + $outdir = $output; + } + + # + # Get all FASTA files from the input dir. + # + my $files = _GetFiles($indir, $outdir, $extension); + + # + # Create the output directory if did not exist yet. + # + if (-e $outdir && -d $outdir) { + unless (-w $outdir) { + $logger->fatal("Cannot write to output directory $outdir. Check for permission errors, read-only file systems, etc."); + exit; + } + } else { + $logger->info("Creating output directory $outdir..."); + eval{mkdir($outdir);}; + if ($@) { + $logger->fatal("Cannot create output directory $outdir: $@"); + exit; + } + } + + # + # Convert FASTA files. + # + foreach my $file (@{$files}) { + + $logger->info('Parsing ' . $file . "...\n"); + + my $pathfrom = $indir .+ $file; + my $pathto = $outdir .+ $file; + + _ConvertFastaHeaders($input, $output, $action, \@x_fixes_array, $new_x_fix, $position, \%ids_to_delete, \@new_id_order); + + $logger->info('Converted ' . $file); + + } + } +} + +$logger->info('Finished!'); + +# +## +### Internal subs. +## +# + +sub _GetFiles { + + my ($indir, $outdir, $extension) = @_; + my @files; + + # + # Get the relative path to the outdir. + # Use this to remove it from the list of files/folders that need to be processed + # in case it's a subfolder of the input directory. + # + $outdir =~ m/\/([^\/]+)\/$/; + my $outdir_rel = $1; + + # + # Get and parse all files from the input dir. + # + eval{ + opendir (INDIR, $indir); + @files = grep { /.+\.$extension/i and not /^\..*/ and not /$outdir_rel/} readdir INDIR; + closedir INDIR; + }; + if ($@) { + $logger->fatal("Cannot read files from input directory $indir: $@"); + exit; + } + + return(\@files); +} + +sub _ConvertFastaHeaders { + + $logger->debug('_ConvertFastaHeaders sub'); + + my ($pathfrom, $pathto, $action, $x_fixes_array, $new_x_fix, $position, $ids_to_delete, $new_id_order) = @_; + + my $header_count = 0; + + #local($/) = "\n\n"; # set line seperator to a blank line + open(READ,"<$pathfrom") or die "\tcan't open input file $pathfrom: $!"; + open(SAVE,">$pathto") or die "\tcan't open output file $pathto: $!"; + while (my $line = <READ>) { + + my $new_line; + + if ($line =~ /^>/) { + + # + # It's a header line. + # + $header_count++; + my $ids_string; + my $description; + my $line_end; + + if ($line =~ /^>([^\s]+)\s+(.+)([\n\r\f]+)/i) { + + # + # Header with descripton + # + $ids_string = $1; + $description = $2; + $line_end = $3; + + } elsif ($line =~ /^>([^\s]+)\s*([\n\r\f]+)/i) { + + # + # Header without descripton + # + $ids_string = $1; + $line_end = $2; + + } else { + + $logger->fatal("Malformed header line. Cannot find ID."); + exit; + + } + + my @ids = split(/\|/, $ids_string); + + if ($action eq 'strip') { + + $new_line = _StripFix($x_fixes_array, $ids_string, $description); + + } elsif ($action eq 'replace') { + + $new_line = _ReplaceFix($x_fixes_array, $new_x_fix, $position, \@ids, $description); + + } elsif ($action eq 'add') { + + $new_line = _AddFix($x_fixes_array, $position, \@ids, $description); + + } elsif ($action eq 'delete') { + + $new_line = _DeleteID($ids_to_delete, \@ids, $description); + + } elsif ($action eq 'shuffle') { + + $new_line = _ShuffleID($new_id_order, \@ids, $description); + + } + + unless (defined($new_line)) { + + $logger->fatal('Cannot convert header number: ' . $header_count); + $logger->fatal('Offending header line was: ' . $line); + exit; + + } + + $new_line .= $line_end; + + } elsif ($line =~ /^[\n\r\f]+$/) { + + # Skip blank line. + + } else { + + # + # It must be a sequence line. + # + $new_line = $line; + + } + + # Save (modified) line. + print SAVE $new_line or die "\tcan't save output to file $pathto: $!"; + + } + + close(READ); + close(SAVE); + +} + +sub _StripFix { + + my ($x_fixes_array, $ids_string, $description) = @_; + my $new_line; + + foreach my $x_fix (@{$x_fixes_array}) { + + $ids_string =~ s/$x_fix//g; + + } + + if (defined($description)) { + $new_line = '>' . $ids_string . ' ' . $description; + } else { + $new_line = '>' . $ids_string; + } + + return($new_line); + +} + +sub _ReplaceFix { + + my ($x_fixes_array, $new_x_fix, $position, $ids, $description) = @_; + my $new_line = '>'; + + for my $count (0 .. $#{$ids}) { + + my $id = ${$ids}[$count]; + my $stripped_id; + my $match = 0; + + if ($position eq 'prefix' || $position eq 'pre2suf') { + + foreach my $x_fix (@{$x_fixes_array}) { + + if ($id =~ m/^$x_fix(.+)/) { + + $stripped_id = $1; + $id = $stripped_id; + $match = 1; + + } + } + + } elsif ($position eq 'suffix' || $position eq 'suf2pre') { + + foreach my $x_fix (@{$x_fixes_array}) { + + if ($id =~ m/(.+)$x_fix$/) { + + $stripped_id = $1; + $id = $stripped_id; + $match = 1; + + } + } + + } else { + + $logger->fatal("Illegal or no position $position specified."); + exit; + + } + + if ($match) { + + # + # Append the new *fix. + # + if ($position eq 'prefix' || $position eq 'suf2pre') { + + $new_line .= $new_x_fix . $stripped_id . '|'; + + } elsif ($position eq 'pre2suf' || $position eq 'suffix') { + + $new_line .= $stripped_id . $new_x_fix . '|'; + + } + + } else { + + # + # Copy the ID unmodified to the result. + # + $new_line .= ${$ids}[$count] . '|'; + + } + } + + $new_line =~ s/\|$//; + if (defined($description)) { + $new_line .= ' ' . $description; + } + + return($new_line); + +} + +sub _AddFix { + + my ($x_fixes_array, $position, $ids, $description) = @_; + my $new_line = '>'; + + my $id_count = scalar(@{$ids}); + my $x_fix_count = scalar(@{$x_fixes_array}); + + unless ($id_count == $x_fix_count) { + $logger->fatal('Amount of pre- or suffixes specified (' . $x_fix_count . ') does not match with amount if IDs found ' . $id_count . ').'); + return(undef); + } + + for my $count (0 .. $#{$ids}) { + + if ($position eq 'prefix') { + + $new_line .= ${$x_fixes_array}[$count] . ${$ids}[$count] . '|'; + + } elsif ($position eq 'suffix') { + + $new_line .= ${$ids}[$count] . ${$x_fixes_array}[$count] . '|'; + + } + } + + $new_line =~ s/\|$//; + if (defined($description)) { + $new_line .= ' ' . $description; + } + + return($new_line); + +} + +sub _DeleteID { + + my ($ids_to_delete, $ids, $description) = @_; + my $new_line = '>'; + + $new_line = '>'; + + for my $offset (0 .. $#{$ids}) { + + my $index = $offset + 1; + + if (defined(${$ids_to_delete}{$index})) { + + # Skip (drop) this ID. + $logger->debug('Dropping ' . ${$ids}[$offset] . ' as it is ID number ' . $index . '.'); + + } else { + + $new_line .= ${$ids}[$offset] . '|'; + + } + } + + $new_line =~ s/\|$//; + if (defined($description)) { + $new_line .= ' ' . $description; + } + + return($new_line); + +} + +sub _ShuffleID { + + my ($new_id_order, $ids, $description) = @_; + my $new_line = '>'; + + my $id_count = scalar(@{$ids}); + my $new_id_order_item_count = scalar(@{$new_id_order}); + + unless ($id_count == $new_id_order_item_count) { + $logger->fatal('Amount of IDs specified to re-order (' . $new_id_order_item_count . ') does not match with amount if IDs found (' . $id_count . ').'); + return(undef); + } + + $new_line = '>'; + + foreach my $rank (@{$new_id_order}) { + + my $offset = $rank - 1; + $logger->debug('ID rank ' . $rank . ' = ' . ${$ids}[$offset] . '.'); + $new_line .= ${$ids}[$offset] . '|'; + $logger->debug('New header line now contains ' . $new_line . '.'); + + } + + $new_line =~ s/\|$//; + if (defined($description)) { + $new_line .= ' ' . $description; + } + + return($new_line); + +} + +sub _Usage { + + print "\n"; + print "ConvertFastaHeaders.pl - Converts sequence headers of FASTA files.\n"; + print "\n"; + print "Usage:\n"; + print "\n"; + print " ConvertFastaHeaders.pl options\n"; + print "\n"; + print "Available options are:\n"; + print "\n"; + print " -i [dir/file] Input can be a single FASTA file or a directory containing FASTA files.\n"; + print " -e [ext] File name extension for the FASTA files in case the input is a directory. (default = fa)\n"; + print " -o [dir/file] Output file or directory where the result(s) will be saved.\n"; + print " -a [action] Action must be one of 'add', 'strip', 'replace', 'delete' or 'shuffle'.\n"; + print " The actions 'delete' and 'shuffle' operate on complete sequence IDs with or without (database namespace) prefixes or suffixes.\n"; + print " The actions 'add', 'strip' and 'replace' operate on sequence ID prefixes or suffixes.\n"; + print " Note in case *fixes are added the order of the *fixes is important! (See below for examples.)\n"; + print " -p [position] Positon must be a comma separated list of numbers in case the action is 'delete' or 'shuffle'.\n"; + print " Position must be one of 'prefix' or 'suffix' when the action is 'add' or 'strip'.\n"; + print " In case the action is 'replace' the position can also be one of pre2suf or suf2pre \n"; + print " to replace a prefix with a suffix or vice versa.\n"; + print " -f '[*fix1 *fix2 *fixN]' Space separated list of prefixes or suffixes, which will be replaced in, added to or removed from pipe separated identifiers.\n"; + print " Note that in case of database namespace prefixes you must specify both the database name space and \n"; + print " the character to separate the namespace from the accession number as the prefix. (See below for examples.) \n"; + print " -n '[*fix]' A single new prefix or suffix to replace the *fixes specified with -f.\n"; + print " (Only required in case the action is 'replace'.)\n"; + print " -l [LEVEL] Log4perl log level. One of: ALL, TRACE, DEBUG, INFO (default), WARN, ERROR, FATAL or OFF.\n"; + print "\n"; + print "Examples:\n"; + print "\n"; + print " Adding prefixes\n"; + print " In this case the order of the *fixes specified with -f is important!\n"; + print " With -a add -p prefix -f 'UniProtAcc: UniProtID:', this header:\n"; + print " >P32234|128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly)\n"; + print " will be converted into:\n"; + print " >UniProtAcc:P32234|UniProtID:128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly)\n"; + print " Stripping prefixes\n"; + print " In this case the order of the *fixes specified with -f is not relevant.\n"; + print " With both -a strip -p prefix -f 'UniProtAcc: UniProtID:' or \n"; + print " with -a strip -p prefix -f 'UniProtID: UniProtAcc:', this header:\n"; + print " >UniProtAcc:P32234|UniProtID:128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly)\n"; + print " will be converted into:\n"; + print " >P32234|128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly)\n"; + print " Replacing prefixes with a suffix\n"; + print " In this case the order of the *fixes specified with -f is not relevant.\n"; + print " With -a replace -p pre2suf -f 'REV_' -n '_REV', this header:\n"; + print " >REV_P32234|128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly)\n"; + print " will be converted into:\n"; + print " >P32234_REV|128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly)\n"; + print " Deleting sequence identifiers\n"; + print " Supply a comma separated list of numbers for the ranks of the identifiers / accession numbers you want to remove.\n"; + print " Multiple identifiers must be separated with a pipe symbol.\n"; + print " With -a delete -p '1,3', this header:\n"; + print " >UniProtID:128UP_DROME|UniProtAcc:P32234|EMBL:AY069810 GTP-binding protein 128up - Drosophila melanogaster (Fruit fly)\n"; + print " will be converted into:\n"; + print " >UniProtAcc:P32234 GTP-binding protein 128up - Drosophila melanogaster (Fruit fly)\n"; + print " Changing the order of sequence identifiers\n"; + print " Supply a comma separated list of numbers for the new order of all the identifiers / accession numbers in a header.\n"; + print " Multiple identifiers must be separated with a pipe symbol.\n"; + print " Hence if your headers contain 4 pipe separated IDs and you only want to swap the order of the first and the second, \n"; + print " you will still need to specify the new (unchanged) order for number 3 and 4 too.\n"; + print " With -a shuffle -p '2,1,3', this header:\n"; + print " >UniProtID:128UP_DROME|UniProtAcc:P32234|EMBL:AY069810 GTP-binding protein 128up - Drosophila melanogaster (Fruit fly)\n"; + print " will be converted into:\n"; + print " >UniProtAcc:P32234|UniProtID:128UP_DROME|EMBL:AY069810 GTP-binding protein 128up - Drosophila melanogaster (Fruit fly)\n"; + print " Specifying only *2,1* as the New order for the IDs will not work, because this header contains 3 IDs, \n"; + print " so you'll have to include the (new) position for the third one as well.\n"; + print "\n"; + exit; + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ConvertFastaHeaders.xml Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,241 @@ +<!-- +# ===================================================== +# $Id: ConvertFastaHeaders.xml 90 2011-01-19 13:20:31Z pieter.neerincx@gmail.com $ +# $URL: https://trac.nbic.nl/svn/galaxytools/trunk/tools/general/FastaTools/ConvertFastaHeaders.xml $ +# $LastChangedDate: 2011-01-19 07:20:31 -0600 (Wed, 19 Jan 2011) $ +# $LastChangedRevision: 90 $ +# $LastChangedBy: pieter.neerincx@gmail.com $ +# ===================================================== +--> +<tool id="ConvertFastaHeaders1" name="ConvertFastaHeaders" version="2.0"> + <description>Converts sequence headers of FASTA files</description> + <command interpreter="perl"> + #if $mode.action == "add" #ConvertFastaHeaders.pl -i $input -o $output -p $mode.pos.position -a $mode.action -f "$mode.pos.xfixes" -l ERROR + #elif $mode.action == "strip" #ConvertFastaHeaders.pl -i $input -o $output -p $mode.pos.position -a $mode.action -f "$mode.pos.xfixes" -l ERROR + #elif $mode.action == "replace" #ConvertFastaHeaders.pl -i $input -o $output -p $mode.pos.position -a $mode.action -f "$mode.pos.xfixes" -n $mode.pos.newfix -l ERROR + #elif $mode.action == "delete" #ConvertFastaHeaders.pl -i $input -o $output -p $mode.position -a $mode.action -l ERROR + #elif $mode.action == "shuffle" #ConvertFastaHeaders.pl -i $input -o $output -p $mode.position -a $mode.action -l ERROR + #end if + </command> + <inputs> + <param format="fasta" name="input" type="data" label="FASTA sequences"/> + <conditional name ="mode"> + <param name="action" type="select"> + <label>Action to perform on sequence identifiers</label> + <option value="add">Add Labels</option> + <option value="strip">Remove Labels</option> + <option value="replace">Replace Labels</option> + <option value="delete">Delete</option> + <option value="shuffle">Shuffle order</option> + </param> + <when value="add"> + <conditional name="pos"> + <param name="position" type="select" accept_default="true"> + <label> Label position </label> + <option value="prefix">Prepend Prefixes</option> + <option value="suffix">Append Suffixes</option> + </param> + <when value="prefix"> + <param name="xfixes" type="text" label="Space separated list of prefixes, which will be added"/> + </when> + <when value="suffix"> + <param name="xfixes" type="text" label="Space separated list of suffixes, which will be added"/> + </when> + </conditional> + </when> + <when value="strip"> + <conditional name="pos"> + <param name="position" type="select" accept_default="true"> + <label> Label position </label> + <option value="prefix">Strip Prefixes</option> + <option value="suffix">Strip Suffixes</option> + </param> + <when value="prefix"> + <param name="xfixes" type="text" label="Space separated list of prefixes, which will be removed"/> + </when> + <when value="suffix"> + <param name="xfixes" type="text" label="Space separated list of suffixes, which will be removed"/> + </when> + </conditional> + </when> + <when value="replace"> + <conditional name="pos"> + <param name="position" type="select" accept_default="true"> + <label> Label position </label> + <option value="prefix">Replace prefixes with another prefix</option> + <option value="suffix">Replace suffixes with another suffix</option> + <option value="pre2suf">Replace prefixes with a suffix</option> + <option value="suf2pre">Replace suffixes with a prefix</option> + </param> + <when value="prefix"> + <param name="xfixes" type="text" label="Space separated list of prefixes, which will be replaced"/> + <param name="newfix" type="text" label="New prefix to replace the current prefixes"/> + </when> + <when value="suffix"> + <param name="xfixes" type="text" label="Space separated list of suffixes, which will be replaced"/> + <param name="newfix" type="text" label="New suffix to replace the current suffixes"/> + </when> + <when value="pre2suf"> + <param name="xfixes" type="text" label="Space separated list of prefixes, which will be replaced"/> + <param name="newfix" type="text" label="New suffix to replace the current prefixes"/> + </when> + <when value="suf2pre"> + <param name="xfixes" type="text" label="Space separated list of suffixes, which will be replaced"/> + <param name="newfix" type="text" label="New prefix to replace the current suffixes"/> + </when> + </conditional> + </when> + <when value="delete"> + <param name="position" type="text" size="10" value="" label="Ranks of IDs to delete" + help="Comma separated list of numbers. For example 1,3 will delete the first and third ID from the FASTA headers."/> + </when> + <when value="shuffle"> + <param name="position" type="text" size="10" value="" label="New order for the IDs" + help="Comma separated list of numbers. For example 1,3,2 will shuffle the order from 1,2,3 to 1,3,2."/> + </when> + </conditional> + </inputs> + <outputs> + <data format="fasta" name="output" label="${input.name} with converted FASTA headers"/> + </outputs> +<!-- + <tests> + <test> -a add -f "UniProt-Acc: UniProt-ID:" + <param name="input" value="ConvertFastaHeaders_example_input_Add.fasta"/> + <output name="output" file="ConvertFastaHeaders_example_output_Add.fasta"/> + </test> + <test> -a strip -p prefix -f 'SP:' + <param name="input" value="ExtractPeptideSequenceContext_example_DB.fasta"/> + <output name="output" file="ConvertFastaHeaders_example_output_Strip.fasta"/> + </test> + <test> -a replace -p pre2suf -f 'SP:' -n '_CON' + <param name="input" value="ExtractPeptideSequenceContext_example_DB.fasta"/> + <output name="output" file="ConvertFastaHeaders_example_output_Replace.fasta"/> + </test> + <test> -a delete -p '1 3' + <param name="input" value="ExtractPeptideSequenceContext_example_DB.fasta"/> + <output name="output" file="ConvertFastaHeaders_example_output_Delete.fasta"/> + </test> + <test> -a shuffle -p '2 3 1' + <param name="input" value="ExtractPeptideSequenceContext_example_DB.fasta"/> + <output name="output" file="ConvertFastaHeaders_example_output_Shuffle.fasta"/> + </test> + </tests> +--> + <help> + +.. class:: infomark + +**What it does** + +This tool converts the sequence headers (the description line starting with >) for a set of FASTA sequences. \ +Currently supported conversions: + + - Append prefixes like for example database namespace to identifiers / accession numbers. + - Append suffixes to identifiers / accession numbers. + - Remove prefixes like for example database namespace from identifiers / accession numbers. + - Remove suffixes from identifiers / accession numbers. + - Replace prefixes with a suffix or vice versa. + +----- + +**Examples** + +======================================================== +*Appending database namespace prefixes* +======================================================== + +Supply a space separated list of prefixes to add to pipe separated identifiers. \ +The prefixes must contain both the database namespace you want to add and the character used to separate the namespace from the identifier. \ +The order of the namespaces is important in this case! \ +For example with action *Add Labels*, label position *Prepend Prefixes* and prefixes *UniProtAcc: UniProtID:*, this header:: + + >P32234|128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +will be converted into:: + + >UniProtAcc:P32234|UniProtID:128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +======================================================== +*Removing database namespace prefixes* +======================================================== + +Supply a space separated list of namespaces to remove from pipe separated identifiers. \ +The prefixes must contain both the database namespace you want to remove and the character used to separate the namespace from the identifier. \ +The order of the namespaces is not relevant in this case. \ +For example with action *Remove Labels*, label position *Strip Prefixes* and \ +with prefixes *UniProtAcc: UniProtID:* or with prefixes *UniProtID: UniProtAcc:*, this header:: + + >UniProtAcc:P32234|UniProtID:128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +will be converted into:: + + >P32234|128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +======================================================== +*Replacing a prefix with a suffix* +======================================================== + +Supply the prefix to remove from pipe separated identifiers and a new suffix. \ +The order of the prefixes is not relevant in this case. \ +Optionally you can specify more than one prefix to remove by separating them with spaces. \ +You can specify only one new suffix though, so in case you specified more than one prefix they will all be replaced with the same new suffix. \ +In the following example we'll replace a *REV_* prefix to indicate a reversed sequence with a *_REV* suffix. \ +With action *Replace Labels*, label position *Replace prefixes with a suffix*, prefix *REV_* and new suffix *_REV*, this header:: + + >REV_P32234|128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +will be converted into:: + + >P32234_REV|128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +======================================================== +*Other \*fix replacements* +======================================================== + +You can also replace a prefix with a new prefix, a suffix with a new suffix or a suffix with a new prefix. \ +These replacements are all similar to the example above. \ +Hence you can specify multiple \*-fixes to be replaced and only one new \*-fix to replace the existing ones. + +======================================================== +*Deleting sequence identifiers* +======================================================== + +Supply a comma separated list of numbers for the ranks of the identifiers / accession numbers you want to remove. \ +Multiple identifiers must be separated with a pipe symbol. \ +For example with action *Delete*, and Ranks of IDs to delete set to *1,3*, this header:: + + >UniProtID:128UP_DROME|UniProtAcc:P32234|EMBL:AY069810 GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +will be converted into:: + + >UniProtAcc:P32234 GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +======================================================== +*Changing the order of sequence identifiers* +======================================================== + +Supply a comma separated list of numbers for the new order of all the identifiers / accession numbers in a header. \ +Multiple identifiers must be separated with a pipe symbol. \ +Hence if your headers contain 4 pipe separated IDs and you only want to swap the order of the first and the second, \ +you will still need to specify the new (unchanged) order for number 3 and 4 too. + +For example with action *Shuffle*, and New order for the IDs set to *2,1,3*, this header:: + + >UniProtID:128UP_DROME|UniProtAcc:P32234|EMBL:AY069810 GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +will be converted into:: + + >UniProtAcc:P32234|UniProtID:128UP_DROME|EMBL:AY069810 GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +Specifying only *2,1* as the New order for the IDs will not work, because this header contains 3 IDs, \ +so you'll have to include the (new) position for the third one as well. + +======================================================== +*Need another type of conversion?* +======================================================== + +Contact your local bioinformaticians to add other conversions... + + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ExtractCleavageSiteSequenceContext.svg Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,997 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="1316.693px" height="639.553px" viewBox="0 0 1316.693 639.553" enable-background="new 0 0 1316.693 639.553" + xml:space="preserve"> +<g> + <g> + <path d="M300.363,31.841l-2.612,5.249c-1.416-1.416-3.695-2.124-6.836-2.124c-2.979,0-5.42,1.249-7.324,3.747 + c-1.904,2.499-2.856,5.661-2.856,9.485c0,3.825,0.883,6.86,2.649,9.106c1.766,2.246,4.122,3.369,7.068,3.369 + c3.369,0,6.006-1.204,7.91-3.613l2.954,5.127c-2.588,2.751-6.38,4.126-11.377,4.126c-4.997,0-8.879-1.644-11.646-4.932 + c-2.767-3.287-4.15-7.771-4.15-13.452c0-5.289,1.534-9.713,4.602-13.27c3.068-3.556,6.995-5.334,11.78-5.334 + C294.625,29.326,297.905,30.165,300.363,31.841z"/> + <path d="M307.125,29.814l6.104-1.465v29.395c0,3.223,0.96,5.144,2.881,5.762c-0.944,1.791-2.556,2.686-4.834,2.686 + c-2.767,0-4.15-1.92-4.15-5.762V29.814z"/> + <path d="M344.162,54.497h-18.677c0.114,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.899-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.141-1.168-9.46-3.504 + c-2.319-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C344.674,51.853,344.503,52.983,344.162,54.497z + M325.705,49.907h12.842c-0.423-3.824-2.539-5.737-6.348-5.737C328.715,44.17,326.551,46.083,325.705,49.907z"/> + <path d="M364.108,63.091c-0.554,0.912-1.518,1.656-2.893,2.233c-1.375,0.578-2.812,0.867-4.309,0.867 + c-2.816,0-5.029-0.704-6.641-2.111c-1.611-1.408-2.417-3.406-2.417-5.994c0-3.027,1.135-5.396,3.406-7.104s5.497-2.563,9.68-2.563 + c0.716,0,1.562,0.122,2.539,0.366c0-3.076-1.945-4.614-5.835-4.614c-2.295,0-4.216,0.383-5.762,1.147l-1.318-4.736 + c2.1-1.009,4.598-1.514,7.495-1.514c3.987,0,6.909,0.907,8.765,2.722c1.855,1.815,2.783,5.254,2.783,10.315v5.591 + c0,3.483,0.7,5.673,2.1,6.567c-0.505,0.879-1.066,1.42-1.685,1.624c-0.619,0.203-1.327,0.305-2.124,0.305 + c-0.879,0-1.668-0.326-2.368-0.977C364.824,64.564,364.352,63.856,364.108,63.091z M363.522,53.398 + c-1.042-0.211-1.823-0.317-2.344-0.317c-4.818,0-7.227,1.579-7.227,4.736c0,2.344,1.359,3.516,4.077,3.516 + c3.662,0,5.493-1.831,5.493-5.493V53.398z"/> + <path d="M387.033,66.191h-2.197l-11.816-26.636h6.689l6.25,15.967l6.714-15.967h6.47L387.033,66.191z"/> + <path d="M417.111,63.091c-0.554,0.912-1.518,1.656-2.893,2.233c-1.375,0.578-2.812,0.867-4.309,0.867 + c-2.816,0-5.029-0.704-6.641-2.111c-1.611-1.408-2.417-3.406-2.417-5.994c0-3.027,1.135-5.396,3.406-7.104s5.497-2.563,9.68-2.563 + c0.716,0,1.562,0.122,2.539,0.366c0-3.076-1.945-4.614-5.835-4.614c-2.295,0-4.216,0.383-5.762,1.147l-1.318-4.736 + c2.1-1.009,4.598-1.514,7.495-1.514c3.987,0,6.909,0.907,8.765,2.722c1.855,1.815,2.783,5.254,2.783,10.315v5.591 + c0,3.483,0.7,5.673,2.1,6.567c-0.505,0.879-1.066,1.42-1.685,1.624c-0.619,0.203-1.327,0.305-2.124,0.305 + c-0.879,0-1.668-0.326-2.368-0.977C417.827,64.564,417.355,63.856,417.111,63.091z M416.525,53.398 + c-1.042-0.211-1.823-0.317-2.344-0.317c-4.818,0-7.227,1.579-7.227,4.736c0,2.344,1.359,3.516,4.077,3.516 + c3.662,0,5.493-1.831,5.493-5.493V53.398z"/> + <path d="M427.243,72.417l3.857-4.761c2.132,1.953,4.508,2.93,7.129,2.93c1.758,0,3.206-0.261,4.346-0.781 + c1.139-0.521,1.709-1.237,1.709-2.148c0-1.547-1.262-2.319-3.784-2.319c-0.684,0-1.701,0.082-3.052,0.244 + c-1.351,0.162-2.368,0.244-3.052,0.244c-4.199,0-6.299-1.505-6.299-4.517c0-0.862,0.35-1.709,1.05-2.539 + c0.7-0.83,1.514-1.44,2.441-1.831c-2.979-1.937-4.468-4.679-4.468-8.228c0-2.799,1.025-5.115,3.076-6.945 + c2.051-1.832,4.573-2.747,7.568-2.747c2.344,0,4.305,0.439,5.884,1.318l2.393-2.783l4.224,3.833l-2.905,2.124 + c1.009,1.53,1.514,3.337,1.514,5.42c0,2.979-0.908,5.358-2.722,7.142c-1.815,1.781-4.106,2.673-6.873,2.673 + c-0.439,0-1.025-0.04-1.758-0.122l-1.001-0.146c-0.114,0-0.549,0.175-1.306,0.525c-0.757,0.35-1.135,0.712-1.135,1.086 + c0,0.651,0.562,0.977,1.685,0.977c0.504,0,1.351-0.122,2.539-0.366c1.188-0.244,2.205-0.366,3.052-0.366 + c5.94,0,8.911,2.385,8.911,7.153c0,2.637-1.188,4.708-3.564,6.214c-2.376,1.505-5.241,2.258-8.594,2.258 + C434.103,75.957,430.481,74.776,427.243,72.417z M433.346,48.735c0,1.547,0.427,2.787,1.282,3.724 + c0.854,0.936,2.006,1.403,3.455,1.403c1.448,0,2.563-0.455,3.345-1.367c0.781-0.911,1.172-2.164,1.172-3.76 + c0-1.318-0.419-2.433-1.257-3.345c-0.838-0.911-1.925-1.367-3.259-1.367c-1.4,0-2.539,0.439-3.418,1.318 + S433.346,47.353,433.346,48.735z"/> + <path d="M477.633,54.497h-18.677c0.114,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.899-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.141-1.168-9.46-3.504 + c-2.319-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C478.146,51.853,477.975,52.983,477.633,54.497z + M459.176,49.907h12.842c-0.423-3.824-2.539-5.737-6.348-5.737C462.187,44.17,460.022,46.083,459.176,49.907z"/> + <path d="M496.75,63.726l2.344-5.688c2.506,1.758,4.972,2.637,7.397,2.637c3.727,0,5.591-1.302,5.591-3.906 + c0-1.221-0.439-2.384-1.318-3.491c-0.879-1.106-2.69-2.348-5.432-3.724c-2.743-1.375-4.59-2.506-5.542-3.393 + c-0.952-0.888-1.685-1.941-2.197-3.162s-0.769-2.571-0.769-4.053c0-2.767,1.013-5.062,3.04-6.885 + c2.026-1.822,4.626-2.734,7.8-2.734c4.134,0,7.169,0.773,9.106,2.319l-1.929,5.469c-2.23-1.595-4.582-2.393-7.056-2.393 + c-1.465,0-2.6,0.387-3.406,1.159c-0.806,0.773-1.208,1.779-1.208,3.016c0,2.051,2.271,4.184,6.812,6.396 + c2.393,1.172,4.118,2.25,5.176,3.234c1.058,0.985,1.863,2.133,2.417,3.443c0.553,1.31,0.83,2.771,0.83,4.382 + c0,2.897-1.144,5.282-3.43,7.153c-2.287,1.872-5.351,2.808-9.192,2.808C502.446,66.313,499.435,65.451,496.75,63.726z"/> + <path d="M525.29,65.703V44.561h-3.345v-5.005h9.521v26.147H525.29z M528.439,29.424c0.977,0,1.811,0.346,2.502,1.037 + c0.691,0.692,1.038,1.526,1.038,2.503s-0.346,1.811-1.038,2.503c-0.692,0.691-1.526,1.037-2.502,1.037s-1.811-0.346-2.502-1.037 + c-0.692-0.692-1.038-1.526-1.038-2.503s0.346-1.811,1.038-2.503C526.628,29.77,527.462,29.424,528.439,29.424z"/> + <path d="M539.499,44.463h-3.027v-4.907h3.027v-5.322l6.104-2.246v7.568h7.178v4.907h-7.178v11.45c0,1.872,0.293,3.194,0.879,3.968 + c0.586,0.772,1.611,1.159,3.076,1.159s2.832-0.398,4.102-1.196v5.615c-1.416,0.488-3.435,0.732-6.055,0.732 + c-2.604,0-4.606-0.736-6.006-2.209c-1.4-1.474-2.1-3.568-2.1-6.287V44.463z"/> + <path d="M581.735,54.497h-18.677c0.114,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.899-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.141-1.168-9.46-3.504 + c-2.319-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C582.248,51.853,582.077,52.983,581.735,54.497z + M563.278,49.907h12.842c-0.423-3.824-2.539-5.737-6.348-5.737C566.289,44.17,564.124,46.083,563.278,49.907z"/> + <path d="M600.851,63.726l2.344-5.688c2.506,1.758,4.972,2.637,7.397,2.637c3.727,0,5.591-1.302,5.591-3.906 + c0-1.221-0.439-2.384-1.318-3.491c-0.879-1.106-2.69-2.348-5.432-3.724c-2.743-1.375-4.59-2.506-5.542-3.393 + c-0.952-0.888-1.685-1.941-2.197-3.162s-0.769-2.571-0.769-4.053c0-2.767,1.013-5.062,3.04-6.885 + c2.026-1.822,4.626-2.734,7.8-2.734c4.134,0,7.169,0.773,9.106,2.319l-1.929,5.469c-2.23-1.595-4.582-2.393-7.056-2.393 + c-1.465,0-2.6,0.387-3.406,1.159c-0.806,0.773-1.208,1.779-1.208,3.016c0,2.051,2.271,4.184,6.812,6.396 + c2.393,1.172,4.118,2.25,5.176,3.234c1.058,0.985,1.863,2.133,2.417,3.443c0.553,1.31,0.83,2.771,0.83,4.382 + c0,2.897-1.144,5.282-3.43,7.153c-2.287,1.872-5.351,2.808-9.192,2.808C606.547,66.313,603.537,65.451,600.851,63.726z"/> + <path d="M651.095,54.497h-18.677c0.114,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.899-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.141-1.168-9.46-3.504 + c-2.319-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C651.608,51.853,651.437,52.983,651.095,54.497z + M632.638,49.907h12.842c-0.423-3.824-2.539-5.737-6.348-5.737C635.649,44.17,633.484,46.083,632.638,49.907z"/> + <path d="M673.483,75.957V64.971c-1.465,0.813-3.484,1.221-6.055,1.221c-3.809,0-6.787-1.16-8.936-3.479 + c-2.148-2.32-3.223-5.595-3.223-9.827c0-4.215,1.233-7.572,3.699-10.071c2.466-2.498,5.619-3.747,9.46-3.747 + c2.279,0,4.346,0.684,6.201,2.051l1.002-1.562h3.955v36.401H673.483z M673.483,45.757c-1.092-1.009-2.516-1.514-4.273-1.514 + c-2.376,0-4.235,0.785-5.578,2.356c-1.343,1.57-2.014,3.666-2.014,6.286c0,5.437,2.465,8.154,7.396,8.154 + c1.807,0,3.297-0.423,4.469-1.27V45.757z"/> + <path d="M702.536,65.728V63.53c-0.863,0.732-2.051,1.359-3.564,1.88s-2.906,0.781-4.176,0.781c-6.07,0-9.105-3.223-9.105-9.668 + V39.556h6.104V56.06c0,3.354,1.505,5.029,4.516,5.029c1.383,0,2.67-0.357,3.857-1.074c1.188-0.716,1.979-1.546,2.369-2.49V39.556 + h6.104v26.172H702.536z"/> + <path d="M738.57,54.497h-18.677c0.113,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.898-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.142-1.168-9.46-3.504 + c-2.32-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C739.083,51.853,738.912,52.983,738.57,54.497z + M720.113,49.907h12.842c-0.424-3.824-2.539-5.737-6.348-5.737C723.124,44.17,720.959,46.083,720.113,49.907z"/> + <path d="M760.788,65.703V50.591c0-2.229-0.428-3.857-1.281-4.883c-0.855-1.025-2.251-1.538-4.188-1.538 + c-0.896,0-1.852,0.253-2.869,0.757c-1.017,0.505-1.811,1.132-2.38,1.88v18.896h-6.104V39.556h4.395l1.123,2.441 + c1.66-1.953,4.109-2.93,7.349-2.93c3.108,0,5.562,0.932,7.361,2.796c1.798,1.863,2.697,4.464,2.697,7.8v16.04H760.788z"/> + <path d="M793.99,41.631l-2.612,4.565c-1.433-1.351-3.354-2.026-5.762-2.026c-2.312,0-4.139,0.77-5.48,2.307 + c-1.344,1.539-2.015,3.667-2.015,6.385c0,5.485,2.612,8.228,7.837,8.228c2.262,0,4.256-0.748,5.981-2.246l2.246,4.81 + c-1.774,1.107-3.324,1.807-4.651,2.1c-1.326,0.293-2.893,0.439-4.699,0.439c-4.037,0-7.223-1.176-9.559-3.527 + c-2.335-2.353-3.503-5.619-3.503-9.803c0-4.117,1.277-7.446,3.833-9.985c2.555-2.539,6.038-3.809,10.449-3.809 + C789.099,39.067,791.744,39.922,793.99,41.631z"/> + <path d="M822.408,54.497h-18.677c0.113,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.898-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.142-1.168-9.46-3.504 + c-2.32-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C822.921,51.853,822.75,52.983,822.408,54.497z + M803.951,49.907h12.842c-0.424-3.824-2.539-5.737-6.348-5.737C806.962,44.17,804.797,46.083,803.951,49.907z"/> + <path d="M867.745,31.841l-2.612,5.249c-1.416-1.416-3.695-2.124-6.836-2.124c-2.979,0-5.42,1.249-7.324,3.747 + c-1.904,2.499-2.856,5.661-2.856,9.485c0,3.825,0.883,6.86,2.648,9.106c1.767,2.246,4.122,3.369,7.068,3.369 + c3.369,0,6.006-1.204,7.91-3.613l2.954,5.127c-2.588,2.751-6.381,4.126-11.377,4.126c-4.997,0-8.879-1.644-11.646-4.932 + c-2.768-3.287-4.15-7.771-4.15-13.452c0-5.289,1.534-9.713,4.602-13.27c3.068-3.556,6.995-5.334,11.78-5.334 + C862.008,29.326,865.287,30.165,867.745,31.841z"/> + <path d="M871.75,52.568c0-3.987,1.151-7.234,3.454-9.741c2.304-2.506,5.343-3.76,9.119-3.76c3.971,0,7.056,1.205,9.253,3.613 + c2.197,2.409,3.296,5.705,3.296,9.888c0,4.167-1.119,7.479-3.357,9.937c-2.237,2.458-5.302,3.687-9.191,3.687 + c-3.972,0-7.06-1.241-9.266-3.723C872.853,59.986,871.75,56.687,871.75,52.568z M878.098,52.568c0,5.762,2.075,8.643,6.226,8.643 + c1.904,0,3.414-0.748,4.529-2.246c1.114-1.497,1.672-3.629,1.672-6.396c0-5.68-2.067-8.521-6.201-8.521 + c-1.904,0-3.418,0.749-4.541,2.246C878.659,47.792,878.098,49.883,878.098,52.568z"/> + <path d="M918.575,65.703V50.591c0-2.229-0.428-3.857-1.281-4.883c-0.855-1.025-2.251-1.538-4.188-1.538 + c-0.896,0-1.852,0.253-2.869,0.757c-1.017,0.505-1.811,1.132-2.38,1.88v18.896h-6.104V39.556h4.395l1.123,2.441 + c1.66-1.953,4.109-2.93,7.349-2.93c3.108,0,5.562,0.932,7.361,2.796c1.798,1.863,2.697,4.464,2.697,7.8v16.04H918.575z"/> + <path d="M932.199,44.463h-3.027v-4.907h3.027v-5.322l6.104-2.246v7.568h7.178v4.907h-7.178v11.45c0,1.872,0.293,3.194,0.879,3.968 + c0.586,0.772,1.611,1.159,3.076,1.159s2.832-0.398,4.102-1.196v5.615c-1.416,0.488-3.435,0.732-6.055,0.732 + c-2.604,0-4.606-0.736-6.006-2.209c-1.4-1.474-2.1-3.568-2.1-6.287V44.463z"/> + <path d="M974.436,54.497h-18.677c0.113,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.898-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.142-1.168-9.46-3.504 + c-2.32-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C974.948,51.853,974.777,52.983,974.436,54.497z + M955.979,49.907h12.842c-0.424-3.824-2.539-5.737-6.348-5.737C958.989,44.17,956.824,46.083,955.979,49.907z"/> + <path d="M996.627,65.703l-6.714-8.521l-6.03,8.521h-7.227l10.034-13.379l-9.229-12.769h7.007l5.518,7.983l6.152-7.983h6.958 + l-10.034,12.769l10.962,13.379H996.627z"/> + <path d="M1008.371,44.463h-3.027v-4.907h3.027v-5.322l6.104-2.246v7.568h7.178v4.907h-7.178v11.45 + c0,1.872,0.293,3.194,0.879,3.968c0.586,0.772,1.611,1.159,3.076,1.159s2.832-0.398,4.102-1.196v5.615 + c-1.416,0.488-3.435,0.732-6.055,0.732c-2.604,0-4.606-0.736-6.006-2.209c-1.4-1.474-2.1-3.568-2.1-6.287V44.463z"/> + <path d="M1025.656,64.019l2.173-4.858c1.822,1.449,3.882,2.173,6.177,2.173c2.376,0,3.564-0.846,3.564-2.539 + c0-0.992-0.358-1.807-1.074-2.441c-0.717-0.635-2.108-1.383-4.175-2.246c-4.509-1.871-6.763-4.492-6.763-7.861 + c0-2.262,0.862-4.024,2.588-5.286c1.725-1.261,3.931-1.892,6.616-1.892c2.718,0,5.273,0.61,7.666,1.831l-1.758,4.736 + c-1.335-1.139-3.19-1.709-5.566-1.709c-2.133,0-3.198,0.847-3.198,2.539c0,0.668,0.35,1.27,1.05,1.807 + c0.699,0.537,2.197,1.258,4.492,2.16c2.295,0.904,3.946,1.999,4.956,3.284c1.009,1.286,1.514,2.841,1.514,4.663 + c0,2.426-0.899,4.334-2.698,5.725c-1.798,1.393-4.244,2.088-7.336,2.088c-1.742,0-3.137-0.143-4.188-0.428 + C1028.647,65.479,1027.3,64.897,1025.656,64.019z"/> + </g> +</g> +<g> + <path fill="#B2362D" d="M29.847,342.703v-13c0-8.284,6.716-15,15-15h1227c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15 + h-1227C36.562,357.703,29.847,350.987,29.847,342.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M29.847,342.703v-13 + c0-8.284,6.716-15,15-15h1227c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15h-1227 + C36.562,357.703,29.847,350.987,29.847,342.703z"/> + <g> + <path fill="#FFFFFF" d="M612.464,338.891v8.812h-3.125v-22.891c2.364-0.104,3.792-0.156,4.281-0.156 + c6.646,0,9.969,2.225,9.969,6.672c0,5.146-2.938,7.719-8.812,7.719C614.422,339.047,613.651,338.995,612.464,338.891z + M612.464,327.625v8.453c1.323,0.104,2.021,0.156,2.094,0.156c3.875,0,5.812-1.525,5.812-4.578c0-2.791-2.068-4.188-6.203-4.188 + C613.75,327.469,613.183,327.521,612.464,327.625z"/> + <path fill="#FFFFFF" d="M634.57,333.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L634.57,333.828z"/> + <path fill="#FFFFFF" d="M636.82,339.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C637.486,344.084,636.82,341.964,636.82,339.297z + M639.945,339.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C640.348,335.839,639.945,337.359,639.945,339.297z"/> + <path fill="#FFFFFF" d="M656.148,333.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.593v2.344h-4.593v8.312 + c0,1.406,0.237,2.406,0.71,3c0.475,0.594,1.237,0.891,2.289,0.891c0.761,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.322,0-2.44-0.492-3.351-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V333.312z"/> + <path fill="#FFFFFF" d="M681.866,339.625h-12.062c0,1.959,0.537,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.115-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.51,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.635-1.572-2.453-3.688-2.453-6.344c0-2.76,0.839-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.256,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C682.101,338.469,682.022,339.073,681.866,339.625z M674.663,333.156c-1.322,0-2.432,0.428-3.328,1.281 + c-0.854,0.812-1.338,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C677.2,333.594,676.079,333.156,674.663,333.156z"/> + <path fill="#FFFFFF" d="M686.664,347.703v-14.234h-2.297v-2.5h5.266v16.734H686.664z M688.289,324.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.795,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C687.346,324.818,687.778,324.641,688.289,324.641z"/> + <path fill="#FFFFFF" d="M704.648,347.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H704.648z"/> + </g> + <path fill="#7D5D3D" d="M363.847,178.703v-13c0-8.284,6.716-15,15-15h532c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15 + h-532C370.562,193.703,363.847,186.987,363.847,178.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M363.847,178.703v-13 + c0-8.284,6.716-15,15-15h532c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15h-532 + C370.562,193.703,363.847,186.987,363.847,178.703z"/> + <g> + <path fill="#FFFFFF" d="M595.956,174.891v8.812h-3.125v-22.891c2.364-0.104,3.792-0.156,4.281-0.156 + c6.646,0,9.969,2.225,9.969,6.672c0,5.146-2.938,7.719-8.812,7.719C597.914,175.047,597.144,174.995,595.956,174.891z + M595.956,163.625v8.453c1.323,0.104,2.021,0.156,2.094,0.156c3.875,0,5.812-1.525,5.812-4.578c0-2.791-2.068-4.188-6.203-4.188 + C597.242,163.469,596.675,163.521,595.956,163.625z"/> + <path fill="#FFFFFF" d="M623.062,175.625H611c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C623.296,174.469,623.218,175.073,623.062,175.625z M615.859,169.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C618.395,169.594,617.275,169.156,615.859,169.156z"/> + <path fill="#FFFFFF" d="M629.39,182.781v7.484h-2.969v-23.297h2.969v1.375c1.125-1.125,2.484-1.688,4.078-1.688 + c2.375,0,4.224,0.74,5.547,2.219c1.323,1.479,1.984,3.646,1.984,6.5c0,2.542-0.667,4.617-2,6.227 + c-1.333,1.609-3.261,2.414-5.781,2.414c-0.708,0-1.466-0.125-2.273-0.375C630.137,183.391,629.619,183.104,629.39,182.781z + M629.39,170.578v9.75c0.188,0.281,0.583,0.55,1.188,0.805c0.604,0.256,1.192,0.383,1.766,0.383c3.688,0,5.531-2.083,5.531-6.25 + c0-2.114-0.438-3.661-1.312-4.641c-0.875-0.979-2.276-1.469-4.203-1.469c-0.417,0-0.927,0.146-1.531,0.438 + C630.223,169.886,629.744,170.214,629.39,170.578z"/> + <path fill="#FFFFFF" d="M645.312,169.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.237,2.406,0.711,3c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V169.312z"/> + <path fill="#FFFFFF" d="M658.375,183.703v-14.234h-2.297v-2.5h5.265v16.734H658.375z M659.999,160.641 + c0.511,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.929-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C659.057,160.818,659.489,160.641,659.999,160.641z"/> + <path fill="#FFFFFF" d="M676.671,183.688v-1.234c-1.031,1.031-2.531,1.547-4.5,1.547c-2.094,0-3.791-0.75-5.094-2.25 + c-1.302-1.5-1.953-3.5-1.953-6c0-2.51,0.75-4.653,2.25-6.43c1.5-1.775,3.287-2.664,5.359-2.664c1.729,0,3.042,0.406,3.938,1.219 + v-7.766h2.969v23.578H676.671z M676.671,170.844c-0.75-1.125-1.775-1.688-3.078-1.688c-1.594,0-2.883,0.594-3.867,1.781 + s-1.477,2.698-1.477,4.531c0,4.031,1.834,6.047,5.5,6.047c0.469,0,1.031-0.148,1.688-0.445s1.068-0.611,1.234-0.945V170.844z"/> + <path fill="#FFFFFF" d="M697.983,175.625h-12.062c0,1.959,0.537,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.115-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.161,0.854-2.109,1.188c-1.188,0.438-2.51,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.635-1.572-2.453-3.688-2.453-6.344c0-2.76,0.839-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.386,0,4.256,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C698.218,174.469,698.14,175.073,697.983,175.625z M690.78,169.156c-1.322,0-2.432,0.428-3.328,1.281 + c-0.854,0.812-1.338,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C693.317,169.594,692.197,169.156,690.78,169.156z"/> + </g> + <polygon points="638.847,261.703 621.847,261.703 645.347,298.703 668.847,261.703 651.847,261.703 651.847,207.703 + 638.847,207.703 "/> + <polygon fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" points="638.847,261.703 + 621.847,261.703 645.347,298.703 668.847,261.703 651.847,261.703 651.847,207.703 638.847,207.703 "/> + <path fill="#F7941E" d="M115.847,451.703v-62c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C122.562,466.703,115.847,459.987,115.847,451.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M115.847,451.703v-62 + c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C122.562,466.703,115.847,459.987,115.847,451.703z"/> + <g> + <path d="M179.901,414.016l-11.828-16.734v16.422h-2.969v-22.891h1.25l11.516,15.828v-15.828h2.969v23.203H179.901z"/> + <path d="M185.667,405.797v-2.734h6.688v2.734H185.667z"/> + <path d="M198.104,399.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V399.312z"/> + <path d="M223.823,405.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C224.058,404.469,223.979,405.073,223.823,405.625z M216.62,399.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C219.156,399.594,218.037,399.156,216.62,399.156z"/> + <path d="M236.276,399.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L236.276,399.828z"/> + <path d="M258.995,413.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.052,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.31-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969v-16.734h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.073,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.948,1.026,1.422,2.467,1.422,4.32v11.188H258.995z"/> + <path d="M267.62,413.703v-14.234h-2.297v-2.5h5.266v16.734H267.62z M269.245,390.641c0.51,0,0.945,0.18,1.305,0.539 + s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539c-0.5,0-0.93-0.18-1.289-0.539 + s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297C268.302,390.818,268.734,390.641,269.245,390.641z"/> + <path d="M285.604,413.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H285.604z"/> + <path d="M302.245,411.781c-1.188,1.49-3.005,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.208-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.995-0.328,1.945-0.492,2.852-0.492c2.427,0,4.19,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V414c-1.208,0-2.112-0.172-2.711-0.516C302.935,413.141,302.505,412.573,302.245,411.781z + M301.964,405.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.724,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.026,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V405.484z"/> + <path d="M309.839,408.969v-18.859h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.19,0.773,2.023,0.773v2.656 + C311.761,414.016,309.839,412.334,309.839,408.969z"/> + </g> + <g> + <path d="M146.964,428.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C143.609,427.422,145.558,427.834,146.964,428.656z"/> + <path d="M150.167,442.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383c2.396,0,4.255,0.764,5.578,2.289 + c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383c-1.354,1.558-3.198,2.336-5.531,2.336 + c-2.386,0-4.245-0.786-5.578-2.359C150.833,447.084,150.167,444.964,150.167,442.297z M153.292,442.297 + c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C153.695,438.839,153.292,440.359,153.292,442.297z"/> + <path d="M178.729,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H178.729z"/> + <path d="M186.979,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M212.698,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C212.933,441.469,212.854,442.073,212.698,442.625z M205.495,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C208.031,436.594,206.912,436.156,205.495,436.156z"/> + <path d="M226.245,450.703l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75h3.281 + l-6.078,8.172l6.656,8.562H226.245z"/> + <path d="M233.151,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M254.651,450.703v-22.891h3.125v20.078h10.344v2.812H254.651z"/> + <path d="M284.714,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C284.948,441.469,284.87,442.073,284.714,442.625z M277.511,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C280.047,436.594,278.927,436.156,277.511,436.156z"/> + <path d="M298.37,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H298.37z"/> + <path d="M304.948,455.281l1.609-2.375c1.729,1.156,3.323,1.734,4.781,1.734c1.344,0,2.403-0.232,3.18-0.695 + c0.776-0.464,1.164-1.039,1.164-1.727c0-1.354-0.979-2.031-2.938-2.031c-0.333,0-0.938,0.084-1.812,0.25 + c-0.875,0.167-1.558,0.25-2.047,0.25c-2.375,0-3.562-0.896-3.562-2.688c0-0.552,0.278-1.052,0.836-1.5 + c0.557-0.447,1.247-0.771,2.07-0.969c-2.354-1.104-3.531-3.021-3.531-5.75c0-1.75,0.609-3.208,1.828-4.375 + c1.219-1.166,2.724-1.75,4.516-1.75c1.646,0,2.932,0.339,3.859,1.016l1.484-1.781l1.938,1.828l-1.781,1.344 + c0.76,0.99,1.141,2.281,1.141,3.875c0,1.688-0.526,3.104-1.578,4.25c-1.052,1.146-2.433,1.803-4.141,1.969l-2.453,0.25 + c-0.292,0.031-0.683,0.144-1.172,0.336c-0.49,0.193-0.734,0.445-0.734,0.758c0,0.428,0.51,0.641,1.531,0.641 + c0.448,0,1.146-0.08,2.094-0.242c0.948-0.161,1.651-0.242,2.109-0.242c1.646,0,2.93,0.394,3.852,1.18 + c0.922,0.787,1.383,1.877,1.383,3.273c0,1.541-0.69,2.786-2.07,3.734c-1.38,0.947-3.128,1.422-5.242,1.422 + c-1.083,0-2.224-0.193-3.422-0.578C306.641,456.302,305.677,455.833,304.948,455.281z M311.245,436.047 + c-1.031,0-1.873,0.365-2.523,1.094c-0.651,0.729-0.977,1.615-0.977,2.656c0,1.167,0.315,2.133,0.945,2.898 + c0.63,0.766,1.481,1.148,2.555,1.148c1.052,0,1.875-0.372,2.469-1.117c0.594-0.744,0.891-1.721,0.891-2.93 + c0-1.041-0.32-1.927-0.961-2.656C313.003,436.412,312.203,436.047,311.245,436.047z"/> + <path d="M322.683,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M344.62,450.703v-10.516c0-1.25-0.308-2.234-0.922-2.953c-0.615-0.719-1.479-1.078-2.594-1.078 + c-0.719,0-1.44,0.211-2.164,0.633c-0.724,0.422-1.279,0.914-1.664,1.477v12.438h-2.969v-23.594h2.969v8.703 + c0.396-0.614,1.034-1.127,1.914-1.539c0.88-0.411,1.789-0.617,2.727-0.617c1.771,0,3.159,0.584,4.164,1.75 + c1.005,1.167,1.508,2.761,1.508,4.781v10.516H344.62z"/> + </g> + <path fill="#F26522" d="M363.847,451.703v-62c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C370.562,466.703,363.847,459.987,363.847,451.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M363.847,451.703v-62 + c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C370.562,466.703,363.847,459.987,363.847,451.703z"/> + <g> + <path d="M428.354,391.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C425,390.422,426.948,390.834,428.354,391.656z"/> + <path d="M433.026,405.797v-2.734h6.688v2.734H433.026z"/> + <path d="M445.464,399.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V399.312z"/> + <path d="M471.183,405.625H459.12c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C471.417,404.469,471.339,405.073,471.183,405.625z M463.979,399.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C466.516,399.594,465.396,399.156,463.979,399.156z"/> + <path d="M483.636,399.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L483.636,399.828z"/> + <path d="M506.354,413.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.052,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.31-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969v-16.734h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.073,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.948,1.026,1.422,2.467,1.422,4.32v11.188H506.354z"/> + <path d="M514.979,413.703v-14.234h-2.297v-2.5h5.266v16.734H514.979z M516.604,390.641c0.51,0,0.945,0.18,1.305,0.539 + s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539c-0.5,0-0.93-0.18-1.289-0.539 + s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297C515.662,390.818,516.094,390.641,516.604,390.641z"/> + <path d="M532.964,413.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H532.964z"/> + <path d="M549.604,411.781c-1.188,1.49-3.005,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.208-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.995-0.328,1.945-0.492,2.852-0.492c2.427,0,4.19,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V414c-1.208,0-2.112-0.172-2.711-0.516C550.294,413.141,549.865,412.573,549.604,411.781z + M549.323,405.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.724,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.026,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V405.484z"/> + <path d="M557.198,408.969v-18.859h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.19,0.773,2.023,0.773v2.656 + C559.12,414.016,557.198,412.334,557.198,408.969z"/> + </g> + <g> + <path d="M394.964,428.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C391.609,427.422,393.558,427.834,394.964,428.656z"/> + <path d="M398.167,442.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383c2.396,0,4.255,0.764,5.578,2.289 + c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383c-1.354,1.558-3.198,2.336-5.531,2.336 + c-2.386,0-4.245-0.786-5.578-2.359C398.833,447.084,398.167,444.964,398.167,442.297z M401.292,442.297 + c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C401.695,438.839,401.292,440.359,401.292,442.297z"/> + <path d="M426.729,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H426.729z"/> + <path d="M434.979,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M460.698,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C460.933,441.469,460.854,442.073,460.698,442.625z M453.495,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C456.031,436.594,454.912,436.156,453.495,436.156z"/> + <path d="M474.245,450.703l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75h3.281 + l-6.078,8.172l6.656,8.562H474.245z"/> + <path d="M481.151,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M502.651,450.703v-22.891h3.125v20.078h10.344v2.812H502.651z"/> + <path d="M532.714,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C532.948,441.469,532.87,442.073,532.714,442.625z M525.511,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C528.047,436.594,526.927,436.156,525.511,436.156z"/> + <path d="M546.37,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H546.37z"/> + <path d="M552.948,455.281l1.609-2.375c1.729,1.156,3.323,1.734,4.781,1.734c1.344,0,2.403-0.232,3.18-0.695 + c0.776-0.464,1.164-1.039,1.164-1.727c0-1.354-0.979-2.031-2.938-2.031c-0.333,0-0.938,0.084-1.812,0.25 + c-0.875,0.167-1.558,0.25-2.047,0.25c-2.375,0-3.562-0.896-3.562-2.688c0-0.552,0.278-1.052,0.836-1.5 + c0.557-0.447,1.247-0.771,2.07-0.969c-2.354-1.104-3.531-3.021-3.531-5.75c0-1.75,0.609-3.208,1.828-4.375 + c1.219-1.166,2.724-1.75,4.516-1.75c1.646,0,2.932,0.339,3.859,1.016l1.484-1.781l1.938,1.828l-1.781,1.344 + c0.76,0.99,1.141,2.281,1.141,3.875c0,1.688-0.526,3.104-1.578,4.25c-1.052,1.146-2.433,1.803-4.141,1.969l-2.453,0.25 + c-0.292,0.031-0.683,0.144-1.172,0.336c-0.49,0.193-0.734,0.445-0.734,0.758c0,0.428,0.51,0.641,1.531,0.641 + c0.448,0,1.146-0.08,2.094-0.242c0.948-0.161,1.651-0.242,2.109-0.242c1.646,0,2.93,0.394,3.852,1.18 + c0.922,0.787,1.383,1.877,1.383,3.273c0,1.541-0.69,2.786-2.07,3.734c-1.38,0.947-3.128,1.422-5.242,1.422 + c-1.083,0-2.224-0.193-3.422-0.578C554.641,456.302,553.677,455.833,552.948,455.281z M559.245,436.047 + c-1.031,0-1.873,0.365-2.523,1.094c-0.651,0.729-0.977,1.615-0.977,2.656c0,1.167,0.315,2.133,0.945,2.898 + c0.63,0.766,1.481,1.148,2.555,1.148c1.052,0,1.875-0.372,2.469-1.117c0.594-0.744,0.891-1.721,0.891-2.93 + c0-1.041-0.32-1.927-0.961-2.656C561.003,436.412,560.203,436.047,559.245,436.047z"/> + <path d="M570.683,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M592.62,450.703v-10.516c0-1.25-0.308-2.234-0.922-2.953c-0.615-0.719-1.479-1.078-2.594-1.078 + c-0.719,0-1.44,0.211-2.164,0.633c-0.724,0.422-1.279,0.914-1.664,1.477v12.438h-2.969v-23.594h2.969v8.703 + c0.396-0.614,1.034-1.127,1.914-1.539c0.88-0.411,1.789-0.617,2.727-0.617c1.771,0,3.159,0.584,4.164,1.75 + c1.005,1.167,1.508,2.761,1.508,4.781v10.516H592.62z"/> + </g> + <path fill="#F7941E" d="M677.847,451.703v-62c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C684.562,466.703,677.847,459.987,677.847,451.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M677.847,451.703v-62 + c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C684.562,466.703,677.847,459.987,677.847,451.703z"/> + <g> + <path d="M741.901,414.016l-11.828-16.734v16.422h-2.969v-22.891h1.25l11.516,15.828v-15.828h2.969v23.203H741.901z"/> + <path d="M747.667,405.797v-2.734h6.688v2.734H747.667z"/> + <path d="M760.104,399.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V399.312z"/> + <path d="M785.823,405.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C786.058,404.469,785.979,405.073,785.823,405.625z M778.62,399.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C781.156,399.594,780.036,399.156,778.62,399.156z"/> + <path d="M798.276,399.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.053,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L798.276,399.828z"/> + <path d="M820.995,413.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.053,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.311-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969v-16.734h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.072,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.947,1.026,1.422,2.467,1.422,4.32v11.188H820.995z"/> + <path d="M829.62,413.703v-14.234h-2.297v-2.5h5.266v16.734H829.62z M831.245,390.641c0.51,0,0.945,0.18,1.305,0.539 + s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.795,0.539-1.305,0.539c-0.5,0-0.93-0.18-1.289-0.539 + s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297C830.302,390.818,830.734,390.641,831.245,390.641z"/> + <path d="M847.604,413.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H847.604z"/> + <path d="M864.245,411.781c-1.188,1.49-3.006,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.209-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.994-0.328,1.945-0.492,2.852-0.492c2.427,0,4.189,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V414c-1.209,0-2.112-0.172-2.711-0.516C864.935,413.141,864.505,412.573,864.245,411.781z + M863.964,405.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.725,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.025,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V405.484z"/> + <path d="M871.839,408.969v-18.859h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.189,0.773,2.023,0.773v2.656 + C873.761,414.016,871.839,412.334,871.839,408.969z"/> + </g> + <g> + <path d="M708.964,428.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.244,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.916-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C705.609,427.422,707.558,427.834,708.964,428.656z"/> + <path d="M712.167,442.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383c2.396,0,4.255,0.764,5.578,2.289 + c1.322,1.526,1.984,3.644,1.984,6.352c0,2.698-0.678,4.826-2.031,6.383c-1.354,1.558-3.198,2.336-5.531,2.336 + c-2.386,0-4.245-0.786-5.578-2.359C712.833,447.084,712.167,444.964,712.167,442.297z M715.292,442.297 + c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.436,0.553-3.242,1.656C715.695,438.839,715.292,440.359,715.292,442.297z"/> + <path d="M740.729,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H740.729z"/> + <path d="M748.979,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M774.698,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C774.933,441.469,774.854,442.073,774.698,442.625z M767.495,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C770.031,436.594,768.911,436.156,767.495,436.156z"/> + <path d="M788.245,450.703l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75h3.281 + l-6.078,8.172l6.656,8.562H788.245z"/> + <path d="M795.151,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M816.651,450.703v-22.891h3.125v20.078h10.344v2.812H816.651z"/> + <path d="M846.714,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C846.948,441.469,846.87,442.073,846.714,442.625z M839.511,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C842.047,436.594,840.927,436.156,839.511,436.156z"/> + <path d="M860.37,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H860.37z"/> + <path d="M866.948,455.281l1.609-2.375c1.729,1.156,3.322,1.734,4.781,1.734c1.344,0,2.403-0.232,3.18-0.695 + c0.775-0.464,1.164-1.039,1.164-1.727c0-1.354-0.979-2.031-2.938-2.031c-0.334,0-0.938,0.084-1.812,0.25 + c-0.875,0.167-1.558,0.25-2.047,0.25c-2.375,0-3.562-0.896-3.562-2.688c0-0.552,0.278-1.052,0.836-1.5 + c0.557-0.447,1.247-0.771,2.07-0.969c-2.354-1.104-3.531-3.021-3.531-5.75c0-1.75,0.609-3.208,1.828-4.375 + c1.219-1.166,2.724-1.75,4.516-1.75c1.646,0,2.932,0.339,3.859,1.016l1.484-1.781l1.938,1.828l-1.781,1.344 + c0.76,0.99,1.141,2.281,1.141,3.875c0,1.688-0.526,3.104-1.578,4.25c-1.053,1.146-2.433,1.803-4.141,1.969l-2.453,0.25 + c-0.292,0.031-0.683,0.144-1.172,0.336c-0.49,0.193-0.734,0.445-0.734,0.758c0,0.428,0.51,0.641,1.531,0.641 + c0.447,0,1.146-0.08,2.094-0.242c0.947-0.161,1.65-0.242,2.109-0.242c1.646,0,2.93,0.394,3.852,1.18 + c0.922,0.787,1.383,1.877,1.383,3.273c0,1.541-0.69,2.786-2.07,3.734c-1.381,0.947-3.128,1.422-5.242,1.422 + c-1.084,0-2.225-0.193-3.422-0.578C868.641,456.302,867.677,455.833,866.948,455.281z M873.245,436.047 + c-1.031,0-1.873,0.365-2.523,1.094c-0.651,0.729-0.977,1.615-0.977,2.656c0,1.167,0.314,2.133,0.945,2.898 + c0.63,0.766,1.481,1.148,2.555,1.148c1.052,0,1.875-0.372,2.469-1.117c0.594-0.744,0.891-1.721,0.891-2.93 + c0-1.041-0.32-1.927-0.961-2.656C875.003,436.412,874.203,436.047,873.245,436.047z"/> + <path d="M884.683,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M906.62,450.703v-10.516c0-1.25-0.308-2.234-0.922-2.953c-0.615-0.719-1.479-1.078-2.594-1.078 + c-0.719,0-1.44,0.211-2.164,0.633c-0.725,0.422-1.279,0.914-1.664,1.477v12.438h-2.969v-23.594h2.969v8.703 + c0.396-0.614,1.033-1.127,1.914-1.539c0.88-0.411,1.789-0.617,2.727-0.617c1.771,0,3.158,0.584,4.164,1.75 + c1.005,1.167,1.508,2.761,1.508,4.781v10.516H906.62z"/> + </g> + <path fill="#F26522" d="M925.847,451.703v-62c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C932.562,466.703,925.847,459.987,925.847,451.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M925.847,451.703v-62 + c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C932.562,466.703,925.847,459.987,925.847,451.703z"/> + <g> + <path d="M990.354,391.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.244,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.916-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C987,390.422,988.948,390.834,990.354,391.656z"/> + <path d="M995.026,405.797v-2.734h6.688v2.734H995.026z"/> + <path d="M1007.464,399.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V399.312z"/> + <path d="M1033.183,405.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C1033.417,404.469,1033.339,405.073,1033.183,405.625z M1025.979,399.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C1028.516,399.594,1027.396,399.156,1025.979,399.156z" + /> + <path d="M1045.636,399.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.053,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L1045.636,399.828z"/> + <path d="M1068.354,413.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.053,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.311-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969v-16.734h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.072,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.947,1.026,1.422,2.467,1.422,4.32v11.188H1068.354z"/> + <path d="M1076.979,413.703v-14.234h-2.297v-2.5h5.266v16.734H1076.979z M1078.604,390.641c0.51,0,0.945,0.18,1.305,0.539 + s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.795,0.539-1.305,0.539c-0.5,0-0.93-0.18-1.289-0.539 + s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297C1077.661,390.818,1078.094,390.641,1078.604,390.641z"/> + <path d="M1094.964,413.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H1094.964z"/> + <path d="M1111.604,411.781c-1.188,1.49-3.006,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.209-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.994-0.328,1.945-0.492,2.852-0.492c2.427,0,4.189,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V414c-1.209,0-2.112-0.172-2.711-0.516C1112.294,413.141,1111.864,412.573,1111.604,411.781z + M1111.323,405.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.725,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.025,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V405.484z"/> + <path d="M1119.198,408.969v-18.859h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.189,0.773,2.023,0.773v2.656 + C1121.12,414.016,1119.198,412.334,1119.198,408.969z"/> + </g> + <g> + <path d="M956.964,428.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.244,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.916-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C953.609,427.422,955.558,427.834,956.964,428.656z"/> + <path d="M960.167,442.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383c2.396,0,4.255,0.764,5.578,2.289 + c1.322,1.526,1.984,3.644,1.984,6.352c0,2.698-0.678,4.826-2.031,6.383c-1.354,1.558-3.198,2.336-5.531,2.336 + c-2.386,0-4.245-0.786-5.578-2.359C960.833,447.084,960.167,444.964,960.167,442.297z M963.292,442.297 + c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.436,0.553-3.242,1.656C963.695,438.839,963.292,440.359,963.292,442.297z"/> + <path d="M988.729,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H988.729z"/> + <path d="M996.979,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M1022.698,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C1022.933,441.469,1022.854,442.073,1022.698,442.625z M1015.495,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C1018.031,436.594,1016.911,436.156,1015.495,436.156z" + /> + <path d="M1036.245,450.703l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75h3.281 + l-6.078,8.172l6.656,8.562H1036.245z"/> + <path d="M1043.151,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M1064.651,450.703v-22.891h3.125v20.078h10.344v2.812H1064.651z"/> + <path d="M1094.714,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C1094.948,441.469,1094.87,442.073,1094.714,442.625z M1087.511,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C1090.047,436.594,1088.927,436.156,1087.511,436.156z" + /> + <path d="M1108.37,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H1108.37z"/> + <path d="M1114.948,455.281l1.609-2.375c1.729,1.156,3.322,1.734,4.781,1.734c1.344,0,2.403-0.232,3.18-0.695 + c0.775-0.464,1.164-1.039,1.164-1.727c0-1.354-0.979-2.031-2.938-2.031c-0.334,0-0.938,0.084-1.812,0.25 + c-0.875,0.167-1.558,0.25-2.047,0.25c-2.375,0-3.562-0.896-3.562-2.688c0-0.552,0.278-1.052,0.836-1.5 + c0.557-0.447,1.247-0.771,2.07-0.969c-2.354-1.104-3.531-3.021-3.531-5.75c0-1.75,0.609-3.208,1.828-4.375 + c1.219-1.166,2.724-1.75,4.516-1.75c1.646,0,2.932,0.339,3.859,1.016l1.484-1.781l1.938,1.828l-1.781,1.344 + c0.76,0.99,1.141,2.281,1.141,3.875c0,1.688-0.526,3.104-1.578,4.25c-1.053,1.146-2.433,1.803-4.141,1.969l-2.453,0.25 + c-0.292,0.031-0.683,0.144-1.172,0.336c-0.49,0.193-0.734,0.445-0.734,0.758c0,0.428,0.51,0.641,1.531,0.641 + c0.447,0,1.146-0.08,2.094-0.242c0.947-0.161,1.65-0.242,2.109-0.242c1.646,0,2.93,0.394,3.852,1.18 + c0.922,0.787,1.383,1.877,1.383,3.273c0,1.541-0.69,2.786-2.07,3.734c-1.381,0.947-3.128,1.422-5.242,1.422 + c-1.084,0-2.225-0.193-3.422-0.578C1116.641,456.302,1115.677,455.833,1114.948,455.281z M1121.245,436.047 + c-1.031,0-1.873,0.365-2.523,1.094c-0.651,0.729-0.977,1.615-0.977,2.656c0,1.167,0.314,2.133,0.945,2.898 + c0.63,0.766,1.481,1.148,2.555,1.148c1.052,0,1.875-0.372,2.469-1.117c0.594-0.744,0.891-1.721,0.891-2.93 + c0-1.041-0.32-1.927-0.961-2.656C1123.003,436.412,1122.203,436.047,1121.245,436.047z"/> + <path d="M1132.683,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M1154.62,450.703v-10.516c0-1.25-0.308-2.234-0.922-2.953c-0.615-0.719-1.479-1.078-2.594-1.078 + c-0.719,0-1.44,0.211-2.164,0.633c-0.725,0.422-1.279,0.914-1.664,1.477v12.438h-2.969v-23.594h2.969v8.703 + c0.396-0.614,1.033-1.127,1.914-1.539c0.88-0.411,1.789-0.617,2.727-0.617c1.771,0,3.158,0.584,4.164,1.75 + c1.005,1.167,1.508,2.761,1.508,4.781v10.516H1154.62z"/> + </g> + <path fill="#9F3092" d="M115.847,594.703v-96c0-8.284,6.716-15,15-15h466c8.284,0,15,6.716,15,15v96c0,8.284-6.716,15-15,15h-466 + C122.562,609.703,115.847,602.987,115.847,594.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M115.847,594.703v-96 + c0-8.284,6.716-15,15-15h466c8.284,0,15,6.716,15,15v96c0,8.284-6.716,15-15,15h-466 + C122.562,609.703,115.847,602.987,115.847,594.703z"/> + <g> + <path fill="#FFFFFF" d="M220.128,521.703v-17.547l-4.656,2.906v-2.922c1.177-0.594,2.43-1.411,3.758-2.453 + c1.328-1.041,2.356-2.031,3.086-2.969h0.938v22.984H220.128z"/> + </g> + <g> + <path fill="#FFFFFF" d="M229.805,511.021l0.698-1.875c1.104,0.723,1.993,1.084,2.667,1.084c1.222,0,1.833-0.514,1.833-1.542 + c0-0.736-0.59-1.368-1.771-1.896c-0.91-0.417-1.522-0.732-1.838-0.948c-0.316-0.215-0.59-0.46-0.823-0.734 + c-0.233-0.274-0.406-0.565-0.521-0.875c-0.115-0.309-0.172-0.641-0.172-0.995c0-0.916,0.333-1.632,1-2.146 + s1.538-0.771,2.615-0.771c0.812,0,1.836,0.257,3.073,0.771l-0.562,1.833c-0.785-0.625-1.573-0.938-2.365-0.938 + c-0.472,0-0.87,0.111-1.192,0.334c-0.323,0.222-0.484,0.503-0.484,0.844c0,0.715,0.406,1.257,1.219,1.625l1.417,0.646 + c0.868,0.396,1.5,0.848,1.896,1.354c0.396,0.507,0.594,1.143,0.594,1.906c0,1-0.351,1.783-1.052,2.349 + c-0.702,0.566-1.674,0.849-2.917,0.849C231.944,511.896,230.84,511.604,229.805,511.021z"/> + <path fill="#FFFFFF" d="M239.878,502.094h-1.292v-1.562h1.292v-2.333l1.979-0.761v3.094h3.062v1.562h-3.062v5.542 + c0,0.938,0.158,1.604,0.474,2c0.316,0.396,0.824,0.594,1.526,0.594c0.507,0,1.031-0.129,1.573-0.386l0.292,1.739 + c-0.82,0.209-1.719,0.312-2.698,0.312c-0.882,0-1.626-0.328-2.234-0.984c-0.607-0.656-0.911-1.484-0.911-2.484V502.094z"/> + </g> + <g> + <path fill="#FFFFFF" d="M257.175,520.656l1.141-2.875c0.583,0.428,1.31,0.784,2.18,1.07c0.87,0.287,1.648,0.43,2.336,0.43 + c1.219,0,2.198-0.333,2.938-1c0.739-0.666,1.109-1.516,1.109-2.547c0-0.771-0.206-1.486-0.617-2.148 + c-0.412-0.661-1.445-1.383-3.102-2.164l-1.844-0.859c-1.562-0.729-2.654-1.594-3.273-2.594c-0.62-1-0.93-2.203-0.93-3.609 + c0-1.708,0.604-3.125,1.812-4.25c1.208-1.125,2.76-1.688,4.656-1.688c2.531,0,4.292,0.412,5.281,1.234l-0.922,2.719 + c-0.417-0.302-1.052-0.594-1.906-0.875c-0.854-0.281-1.646-0.422-2.375-0.422c-1.062,0-1.898,0.303-2.508,0.906 + c-0.609,0.604-0.914,1.381-0.914,2.328c0,0.584,0.109,1.115,0.328,1.594c0.219,0.479,0.523,0.881,0.914,1.203 + c0.391,0.323,1.19,0.776,2.398,1.359l1.875,0.891c1.562,0.74,2.659,1.623,3.289,2.648c0.63,1.026,0.945,2.331,0.945,3.914 + c0,1.719-0.69,3.178-2.07,4.375c-1.38,1.198-3.227,1.797-5.539,1.797C260.347,522.094,258.612,521.615,257.175,520.656z"/> + <path fill="#FFFFFF" d="M287.456,513.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C287.69,512.469,287.612,513.073,287.456,513.625z M280.253,507.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C282.789,507.594,281.669,507.156,280.253,507.156z"/> + <path fill="#FFFFFF" d="M301.534,528.266v-7.547c-0.865,0.865-2.312,1.297-4.344,1.297c-2.281,0-4.07-0.763-5.367-2.289 + c-1.297-1.525-1.945-3.643-1.945-6.352c0-2.677,0.742-4.799,2.227-6.367c1.484-1.567,3.393-2.352,5.727-2.352 + c1.458,0,2.817,0.526,4.078,1.578l0.797-1.266h1.797v23.297H301.534z M301.534,508.438c-0.854-0.854-1.922-1.281-3.203-1.281 + c-1.677,0-2.984,0.568-3.922,1.703c-0.938,1.136-1.406,2.641-1.406,4.516c0,1.938,0.469,3.445,1.406,4.523 + s2.203,1.617,3.797,1.617c1.427,0,2.536-0.364,3.328-1.094V508.438z"/> + <path fill="#FFFFFF" d="M311.456,504.969v10.672c0,2.584,1.12,3.875,3.359,3.875c0.979,0,1.875-0.281,2.688-0.844 + s1.349-1.213,1.609-1.953v-11.75h2.969v16.734h-2.969v-2.312c-0.333,0.656-1.003,1.258-2.008,1.805 + c-1.005,0.547-1.987,0.82-2.945,0.82c-1.833,0-3.237-0.525-4.211-1.578c-0.974-1.052-1.461-2.547-1.461-4.484v-10.984H311.456z"/> + <path fill="#FFFFFF" d="M340.222,513.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C340.456,512.469,340.378,513.073,340.222,513.625z M333.019,507.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C335.555,507.594,334.435,507.156,333.019,507.156z"/> + <path fill="#FFFFFF" d="M353.878,521.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H353.878z"/> + <path fill="#FFFFFF" d="M373.69,506.328l-1.469,2.094c-0.302-0.302-0.836-0.588-1.602-0.859c-0.766-0.271-1.519-0.406-2.258-0.406 + c-1.615,0-2.896,0.565-3.844,1.695c-0.948,1.131-1.422,2.68-1.422,4.648c0,1.959,0.484,3.451,1.453,4.477 + c0.969,1.026,2.312,1.539,4.031,1.539c1.333,0,2.677-0.516,4.031-1.547l1.172,2.5c-1.594,1.031-3.568,1.547-5.922,1.547 + c-2.281,0-4.167-0.766-5.656-2.297c-1.49-1.531-2.234-3.604-2.234-6.219c0-2.666,0.773-4.807,2.32-6.422 + c1.547-1.614,3.664-2.422,6.352-2.422c0.864,0,1.802,0.183,2.812,0.547C372.466,505.568,373.211,505.943,373.69,506.328z"/> + <path fill="#FFFFFF" d="M391.003,513.625H378.94c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C391.237,512.469,391.159,513.073,391.003,513.625z M383.8,507.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C386.336,507.594,385.216,507.156,383.8,507.156z"/> + <path fill="#FFFFFF" d="M418.847,499.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C415.492,498.422,417.44,498.834,418.847,499.656z"/> + <path fill="#FFFFFF" d="M422.05,513.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C422.716,518.084,422.05,515.964,422.05,513.297z + M425.175,513.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C425.578,509.839,425.175,511.359,425.175,513.297z"/> + <path fill="#FFFFFF" d="M450.612,521.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H450.612z"/> + <path fill="#FFFFFF" d="M458.862,507.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.237,2.406,0.711,3c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V507.312z"/> + <path fill="#FFFFFF" d="M484.581,513.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C484.815,512.469,484.737,513.073,484.581,513.625z M477.378,507.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C479.914,507.594,478.794,507.156,477.378,507.156z"/> + <path fill="#FFFFFF" d="M498.128,521.703l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75 + h3.281l-6.078,8.172l6.656,8.562H498.128z"/> + <path fill="#FFFFFF" d="M505.034,507.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.237,2.406,0.711,3c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V507.312z"/> + </g> + <g> + <path fill="#FFFFFF" d="M354.503,537.766c-0.604-0.208-1.167-0.312-1.688-0.312c-0.906,0-1.654,0.344-2.242,1.031 + c-0.589,0.688-0.883,1.558-0.883,2.609c0,0.281,0.026,0.573,0.078,0.875h3.406v2.5h-3.406v14.234H346.8v-14.234h-2.438v-2.5h2.438 + c0-2.135,0.526-3.812,1.578-5.031c1.052-1.219,2.442-1.828,4.172-1.828c0.864,0,1.792,0.156,2.781,0.469L354.503,537.766z"/> + <path fill="#FFFFFF" d="M356.19,550.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C356.857,555.084,356.19,552.964,356.19,550.297z + M359.315,550.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C359.719,546.839,359.315,548.359,359.315,550.297z"/> + <path fill="#FFFFFF" d="M383.55,544.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L383.55,544.828z"/> + </g> + <g> + <path fill="#FFFFFF" d="M230.956,586.891v8.812h-3.125v-22.891c2.364-0.104,3.792-0.156,4.281-0.156 + c6.646,0,9.969,2.225,9.969,6.672c0,5.146-2.938,7.719-8.812,7.719C232.914,587.047,232.144,586.995,230.956,586.891z + M230.956,575.625v8.453c1.323,0.104,2.021,0.156,2.094,0.156c3.875,0,5.812-1.525,5.812-4.578c0-2.791-2.068-4.188-6.203-4.188 + C232.242,575.469,231.675,575.521,230.956,575.625z"/> + <path fill="#FFFFFF" d="M258.062,587.625H246c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C258.296,586.469,258.218,587.073,258.062,587.625z M250.859,581.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C253.395,581.594,252.275,581.156,250.859,581.156z"/> + <path fill="#FFFFFF" d="M264.39,594.781v7.484h-2.969v-23.297h2.969v1.375c1.125-1.125,2.484-1.688,4.078-1.688 + c2.375,0,4.224,0.74,5.547,2.219c1.323,1.479,1.984,3.646,1.984,6.5c0,2.542-0.667,4.617-2,6.227 + c-1.333,1.609-3.261,2.414-5.781,2.414c-0.708,0-1.466-0.125-2.273-0.375C265.137,595.391,264.619,595.104,264.39,594.781z + M264.39,582.578v9.75c0.188,0.281,0.583,0.55,1.188,0.805c0.604,0.256,1.192,0.383,1.766,0.383c3.688,0,5.531-2.083,5.531-6.25 + c0-2.114-0.438-3.661-1.312-4.641c-0.875-0.979-2.276-1.469-4.203-1.469c-0.417,0-0.927,0.146-1.531,0.438 + C265.223,581.886,264.744,582.214,264.39,582.578z"/> + <path fill="#FFFFFF" d="M280.312,581.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.237,2.406,0.711,3c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V581.312z"/> + <path fill="#FFFFFF" d="M293.375,595.703v-14.234h-2.297v-2.5h5.266v16.734H293.375z M295,572.641c0.51,0,0.945,0.18,1.305,0.539 + s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539c-0.5,0-0.93-0.18-1.289-0.539 + s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297C294.057,572.818,294.489,572.641,295,572.641z"/> + <path fill="#FFFFFF" d="M311.671,595.688v-1.234c-1.031,1.031-2.531,1.547-4.5,1.547c-2.094,0-3.792-0.75-5.094-2.25 + c-1.302-1.5-1.953-3.5-1.953-6c0-2.51,0.75-4.653,2.25-6.43c1.5-1.775,3.286-2.664,5.359-2.664c1.729,0,3.042,0.406,3.938,1.219 + v-7.766h2.969v23.578H311.671z M311.671,582.844c-0.75-1.125-1.776-1.688-3.078-1.688c-1.594,0-2.883,0.594-3.867,1.781 + s-1.477,2.698-1.477,4.531c0,4.031,1.833,6.047,5.5,6.047c0.469,0,1.031-0.148,1.688-0.445s1.067-0.611,1.234-0.945V582.844z"/> + <path fill="#FFFFFF" d="M332.984,587.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C333.218,586.469,333.14,587.073,332.984,587.625z M325.781,581.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C328.317,581.594,327.197,581.156,325.781,581.156z"/> + <path fill="#FFFFFF" d="M361.015,596.016l-11.828-16.734v16.422h-2.969v-22.891h1.25l11.516,15.828v-15.828h2.969v23.203H361.015z + "/> + <path fill="#FFFFFF" d="M366.781,587.797v-2.734h6.688v2.734H366.781z"/> + <path fill="#FFFFFF" d="M379.218,581.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.237,2.406,0.711,3c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V581.312z"/> + <path fill="#FFFFFF" d="M404.937,587.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C405.171,586.469,405.093,587.073,404.937,587.625z M397.734,581.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C400.27,581.594,399.15,581.156,397.734,581.156z"/> + <path fill="#FFFFFF" d="M417.39,581.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L417.39,581.828z"/> + <path fill="#FFFFFF" d="M440.109,595.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.052,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.31-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969v-16.734h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.073,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.948,1.026,1.422,2.467,1.422,4.32v11.188H440.109z"/> + <path fill="#FFFFFF" d="M448.734,595.703v-14.234h-2.297v-2.5h5.266v16.734H448.734z M450.359,572.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C449.416,572.818,449.848,572.641,450.359,572.641z"/> + <path fill="#FFFFFF" d="M466.718,595.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H466.718z"/> + <path fill="#FFFFFF" d="M476.718,578.969v10.672c0,2.584,1.12,3.875,3.359,3.875c0.979,0,1.875-0.281,2.688-0.844 + s1.349-1.213,1.609-1.953v-11.75h2.969v16.734h-2.969v-2.312c-0.333,0.656-1.003,1.258-2.008,1.805 + c-1.005,0.547-1.987,0.82-2.945,0.82c-1.833,0-3.237-0.525-4.211-1.578c-0.974-1.052-1.461-2.547-1.461-4.484v-10.984H476.718z"/> + <path fill="#FFFFFF" d="M490.296,594.703l1.047-2.812c1.656,1.084,2.989,1.625,4,1.625c1.833,0,2.75-0.771,2.75-2.312 + c0-1.104-0.886-2.052-2.656-2.844c-1.365-0.625-2.284-1.099-2.758-1.422c-0.474-0.322-0.886-0.689-1.234-1.102 + c-0.349-0.411-0.609-0.849-0.781-1.312c-0.172-0.463-0.258-0.961-0.258-1.492c0-1.375,0.5-2.447,1.5-3.219 + c1-0.771,2.307-1.156,3.922-1.156c1.219,0,2.755,0.386,4.609,1.156l-0.844,2.75c-1.177-0.938-2.359-1.406-3.547-1.406 + c-0.708,0-1.305,0.167-1.789,0.5c-0.484,0.334-0.727,0.756-0.727,1.266c0,1.073,0.609,1.886,1.828,2.438l2.125,0.969 + c1.302,0.594,2.25,1.271,2.844,2.031c0.594,0.761,0.891,1.714,0.891,2.859c0,1.5-0.526,2.675-1.578,3.523 + c-1.052,0.85-2.511,1.273-4.375,1.273C493.504,596.016,491.848,595.578,490.296,594.703z"/> + </g> + <path fill="#9F3092" d="M677.847,594.703v-96c0-8.284,6.716-15,15-15h466c8.284,0,15,6.716,15,15v96c0,8.284-6.716,15-15,15h-466 + C684.562,609.703,677.847,602.987,677.847,594.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M677.847,594.703v-96 + c0-8.284,6.716-15,15-15h466c8.284,0,15,6.716,15,15v96c0,8.284-6.716,15-15,15h-466 + C684.562,609.703,677.847,602.987,677.847,594.703z"/> + <g> + <path fill="#FFFFFF" d="M774.247,521.703v-0.625l7.172-10.984c1.5-2.302,2.25-4.255,2.25-5.859c0-2.114-1.192-3.172-3.578-3.172 + c-0.844,0-1.635,0.222-2.375,0.664c-0.739,0.443-1.275,1.003-1.609,1.68l-2.016-1.656c0.354-1.021,1.05-1.833,2.086-2.438 + c1.037-0.604,2.289-0.906,3.758-0.906c2.198,0,3.917,0.508,5.156,1.523c1.24,1.016,1.859,2.451,1.859,4.305 + c0,1.719-0.822,3.886-2.469,6.5l-5.141,8.156h8.969v2.812H774.247z"/> + </g> + <g> + <path fill="#FFFFFF" d="M798.222,511.688v-6.489c0-1.188-0.18-2.02-0.537-2.495s-0.956-0.714-1.797-0.714 + c-0.451,0-0.924,0.136-1.416,0.406c-0.493,0.271-0.871,0.604-1.136,1v8.292h-1.979v-11.156h1.354l0.625,1.438 + c0.653-1.097,1.719-1.646,3.198-1.646c2.444,0,3.666,1.486,3.666,4.458v6.906H798.222z"/> + <path fill="#FFFFFF" d="M810.086,511.677v-0.822c-0.688,0.688-1.688,1.031-3,1.031c-1.396,0-2.528-0.5-3.396-1.5 + c-0.868-1-1.303-2.334-1.303-4c0-1.674,0.5-3.103,1.5-4.287c1-1.184,2.191-1.775,3.573-1.775c1.153,0,2.028,0.271,2.625,0.812 + v-5.178h1.979v15.719H810.086z M810.086,503.114c-0.5-0.75-1.185-1.125-2.052-1.125c-1.062,0-1.922,0.396-2.578,1.188 + c-0.656,0.792-0.984,1.799-0.984,3.021c0,2.688,1.223,4.031,3.666,4.031c0.312,0,0.688-0.1,1.125-0.297 + c0.438-0.198,0.713-0.408,0.823-0.631V503.114z"/> + </g> + <g> + <path fill="#FFFFFF" d="M824.446,520.656l1.141-2.875c0.582,0.428,1.309,0.784,2.18,1.07c0.869,0.287,1.648,0.43,2.336,0.43 + c1.219,0,2.197-0.333,2.938-1c0.738-0.666,1.109-1.516,1.109-2.547c0-0.771-0.207-1.486-0.617-2.148 + c-0.412-0.661-1.445-1.383-3.102-2.164l-1.844-0.859c-1.562-0.729-2.654-1.594-3.273-2.594c-0.621-1-0.93-2.203-0.93-3.609 + c0-1.708,0.604-3.125,1.812-4.25c1.207-1.125,2.76-1.688,4.656-1.688c2.531,0,4.291,0.412,5.281,1.234l-0.922,2.719 + c-0.418-0.302-1.053-0.594-1.906-0.875c-0.855-0.281-1.646-0.422-2.375-0.422c-1.062,0-1.898,0.303-2.508,0.906 + c-0.609,0.604-0.914,1.381-0.914,2.328c0,0.584,0.109,1.115,0.328,1.594c0.219,0.479,0.523,0.881,0.914,1.203 + c0.391,0.323,1.189,0.776,2.398,1.359l1.875,0.891c1.562,0.74,2.658,1.623,3.289,2.648c0.629,1.026,0.945,2.331,0.945,3.914 + c0,1.719-0.691,3.178-2.07,4.375c-1.381,1.198-3.227,1.797-5.539,1.797C827.618,522.094,825.884,521.615,824.446,520.656z"/> + <path fill="#FFFFFF" d="M854.728,513.625h-12.062c0,1.959,0.535,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.113-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.512,0.656-3.969,0.656 + c-2.105,0-3.891-0.713-5.359-2.141c-1.637-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.254,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C854.962,512.469,854.884,513.073,854.728,513.625z M847.524,507.156c-1.324,0-2.434,0.428-3.328,1.281 + c-0.855,0.812-1.34,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C850.06,507.594,848.94,507.156,847.524,507.156z"/> + <path fill="#FFFFFF" d="M868.806,528.266v-7.547c-0.865,0.865-2.312,1.297-4.344,1.297c-2.281,0-4.07-0.763-5.367-2.289 + c-1.297-1.525-1.945-3.643-1.945-6.352c0-2.677,0.742-4.799,2.227-6.367c1.484-1.567,3.393-2.352,5.727-2.352 + c1.457,0,2.816,0.526,4.078,1.578l0.797-1.266h1.797v23.297H868.806z M868.806,508.438c-0.855-0.854-1.922-1.281-3.203-1.281 + c-1.678,0-2.984,0.568-3.922,1.703c-0.938,1.136-1.406,2.641-1.406,4.516c0,1.938,0.469,3.445,1.406,4.523 + s2.203,1.617,3.797,1.617c1.426,0,2.535-0.364,3.328-1.094V508.438z"/> + <path fill="#FFFFFF" d="M878.728,504.969v10.672c0,2.584,1.119,3.875,3.359,3.875c0.979,0,1.875-0.281,2.688-0.844 + s1.348-1.213,1.609-1.953v-11.75h2.969v16.734h-2.969v-2.312c-0.334,0.656-1.004,1.258-2.008,1.805 + c-1.006,0.547-1.988,0.82-2.945,0.82c-1.834,0-3.238-0.525-4.211-1.578c-0.975-1.052-1.461-2.547-1.461-4.484v-10.984H878.728z"/> + <path fill="#FFFFFF" d="M907.493,513.625h-12.062c0,1.959,0.535,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.113-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.512,0.656-3.969,0.656 + c-2.105,0-3.891-0.713-5.359-2.141c-1.637-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.254,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C907.728,512.469,907.649,513.073,907.493,513.625z M900.29,507.156c-1.324,0-2.434,0.428-3.328,1.281 + c-0.855,0.812-1.34,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C902.825,507.594,901.706,507.156,900.29,507.156z"/> + <path fill="#FFFFFF" d="M921.149,521.703v-9.734c0-1.781-0.27-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.387,0.203-2.125,0.609c-0.74,0.406-1.309,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H921.149z"/> + <path fill="#FFFFFF" d="M940.962,506.328l-1.469,2.094c-0.303-0.302-0.836-0.588-1.602-0.859c-0.766-0.271-1.52-0.406-2.258-0.406 + c-1.615,0-2.896,0.565-3.844,1.695c-0.949,1.131-1.422,2.68-1.422,4.648c0,1.959,0.484,3.451,1.453,4.477 + c0.969,1.026,2.312,1.539,4.031,1.539c1.332,0,2.676-0.516,4.031-1.547l1.172,2.5c-1.594,1.031-3.568,1.547-5.922,1.547 + c-2.281,0-4.168-0.766-5.656-2.297c-1.49-1.531-2.234-3.604-2.234-6.219c0-2.666,0.773-4.807,2.32-6.422 + c1.547-1.614,3.664-2.422,6.352-2.422c0.863,0,1.801,0.183,2.812,0.547C939.737,505.568,940.481,505.943,940.962,506.328z"/> + <path fill="#FFFFFF" d="M958.274,513.625h-12.062c0,1.959,0.535,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.113-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.512,0.656-3.969,0.656 + c-2.105,0-3.891-0.713-5.359-2.141c-1.637-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.254,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C958.509,512.469,958.431,513.073,958.274,513.625z M951.071,507.156c-1.324,0-2.434,0.428-3.328,1.281 + c-0.855,0.812-1.34,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C953.606,507.594,952.487,507.156,951.071,507.156z"/> + <path fill="#FFFFFF" d="M983.899,506.328l-1.469,2.094c-0.303-0.302-0.836-0.588-1.602-0.859c-0.766-0.271-1.52-0.406-2.258-0.406 + c-1.615,0-2.896,0.565-3.844,1.695c-0.949,1.131-1.422,2.68-1.422,4.648c0,1.959,0.484,3.451,1.453,4.477 + c0.969,1.026,2.312,1.539,4.031,1.539c1.332,0,2.676-0.516,4.031-1.547l1.172,2.5c-1.594,1.031-3.568,1.547-5.922,1.547 + c-2.281,0-4.168-0.766-5.656-2.297c-1.49-1.531-2.234-3.604-2.234-6.219c0-2.666,0.773-4.807,2.32-6.422 + c1.547-1.614,3.664-2.422,6.352-2.422c0.863,0,1.801,0.183,2.812,0.547C982.675,505.568,983.419,505.943,983.899,506.328z"/> + <path fill="#FFFFFF" d="M986.024,513.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.395,0,4.254,0.764,5.578,2.289c1.322,1.526,1.984,3.644,1.984,6.352c0,2.698-0.678,4.826-2.031,6.383 + c-1.355,1.558-3.199,2.336-5.531,2.336c-2.387,0-4.246-0.786-5.578-2.359C986.69,518.084,986.024,515.964,986.024,513.297z + M989.149,513.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.785-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.48-6.219-4.438-6.219c-1.355,0-2.436,0.553-3.242,1.656C989.552,509.839,989.149,511.359,989.149,513.297z"/> + <path fill="#FFFFFF" d="M1014.587,521.703v-9.734c0-1.781-0.27-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.387,0.203-2.125,0.609c-0.74,0.406-1.309,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H1014.587z"/> + <path fill="#FFFFFF" d="M1022.837,507.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.236,2.406,0.711,3c0.473,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.23,0.312-2.578,0.469-4.047,0.469c-1.324,0-2.441-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V507.312z"/> + <path fill="#FFFFFF" d="M1048.556,513.625h-12.062c0,1.959,0.535,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.113-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.512,0.656-3.969,0.656 + c-2.105,0-3.891-0.713-5.359-2.141c-1.637-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.254,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C1048.79,512.469,1048.712,513.073,1048.556,513.625z M1041.353,507.156c-1.324,0-2.434,0.428-3.328,1.281 + c-0.855,0.812-1.34,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C1043.888,507.594,1042.769,507.156,1041.353,507.156z"/> + <path fill="#FFFFFF" d="M1062.103,521.703l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75 + h3.281l-6.078,8.172l6.656,8.562H1062.103z"/> + <path fill="#FFFFFF" d="M1069.009,507.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.236,2.406,0.711,3c0.473,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.23,0.312-2.578,0.469-4.047,0.469c-1.324,0-2.441-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V507.312z"/> + </g> + <g> + <path fill="#FFFFFF" d="M916.503,537.766c-0.604-0.208-1.167-0.312-1.688-0.312c-0.906,0-1.654,0.344-2.242,1.031 + c-0.589,0.688-0.883,1.558-0.883,2.609c0,0.281,0.025,0.573,0.078,0.875h3.406v2.5h-3.406v14.234H908.8v-14.234h-2.438v-2.5h2.438 + c0-2.135,0.525-3.812,1.578-5.031c1.052-1.219,2.442-1.828,4.172-1.828c0.864,0,1.791,0.156,2.781,0.469L916.503,537.766z"/> + <path fill="#FFFFFF" d="M918.19,550.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.322,1.526,1.984,3.644,1.984,6.352c0,2.698-0.678,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C918.856,555.084,918.19,552.964,918.19,550.297z + M921.315,550.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.436,0.553-3.242,1.656C921.719,546.839,921.315,548.359,921.315,550.297z"/> + <path fill="#FFFFFF" d="M945.55,544.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.053,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L945.55,544.828z"/> + </g> + <g> + <path fill="#FFFFFF" d="M793.597,586.891v8.812h-3.125v-22.891c2.364-0.104,3.791-0.156,4.281-0.156 + c6.646,0,9.969,2.225,9.969,6.672c0,5.146-2.938,7.719-8.812,7.719C795.555,587.047,794.784,586.995,793.597,586.891z + M793.597,575.625v8.453c1.322,0.104,2.021,0.156,2.094,0.156c3.875,0,5.812-1.525,5.812-4.578c0-2.791-2.068-4.188-6.203-4.188 + C794.883,575.469,794.315,575.521,793.597,575.625z"/> + <path fill="#FFFFFF" d="M820.702,587.625H808.64c0,1.959,0.537,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.115-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.161,0.854-2.109,1.188c-1.188,0.438-2.51,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.635-1.572-2.453-3.688-2.453-6.344c0-2.76,0.839-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.386,0,4.256,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C820.937,586.469,820.858,587.073,820.702,587.625z M813.499,581.156c-1.322,0-2.432,0.428-3.328,1.281 + c-0.854,0.812-1.338,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C816.036,581.594,814.916,581.156,813.499,581.156z"/> + <path fill="#FFFFFF" d="M827.03,594.781v7.484h-2.969v-23.297h2.969v1.375c1.125-1.125,2.484-1.688,4.078-1.688 + c2.375,0,4.225,0.74,5.547,2.219c1.323,1.479,1.984,3.646,1.984,6.5c0,2.542-0.666,4.617-2,6.227 + c-1.333,1.609-3.26,2.414-5.781,2.414c-0.708,0-1.466-0.125-2.273-0.375C827.778,595.391,827.26,595.104,827.03,594.781z + M827.03,582.578v9.75c0.188,0.281,0.584,0.55,1.188,0.805c0.604,0.256,1.193,0.383,1.766,0.383c3.688,0,5.531-2.083,5.531-6.25 + c0-2.114-0.438-3.661-1.312-4.641c-0.875-0.979-2.275-1.469-4.203-1.469c-0.416,0-0.927,0.146-1.531,0.438 + C827.864,581.886,827.385,582.214,827.03,582.578z"/> + <path fill="#FFFFFF" d="M842.952,581.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.237,2.406,0.711,3c0.475,0.594,1.237,0.891,2.289,0.891c0.761,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.322,0-2.439-0.492-3.352-1.477c-0.911-0.984-1.367-2.227-1.367-3.727V581.312z"/> + <path fill="#FFFFFF" d="M856.015,595.703v-14.234h-2.297v-2.5h5.266v16.734H856.015z M857.64,572.641 + c0.511,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.178-0.942,0.531-1.297 + C856.697,572.818,857.13,572.641,857.64,572.641z"/> + <path fill="#FFFFFF" d="M874.312,595.688v-1.234c-1.031,1.031-2.531,1.547-4.5,1.547c-2.094,0-3.791-0.75-5.094-2.25 + c-1.302-1.5-1.953-3.5-1.953-6c0-2.51,0.75-4.653,2.25-6.43c1.5-1.775,3.287-2.664,5.359-2.664c1.729,0,3.042,0.406,3.938,1.219 + v-7.766h2.969v23.578H874.312z M874.312,582.844c-0.75-1.125-1.775-1.688-3.078-1.688c-1.594,0-2.883,0.594-3.867,1.781 + s-1.477,2.698-1.477,4.531c0,4.031,1.834,6.047,5.5,6.047c0.469,0,1.031-0.148,1.688-0.445s1.068-0.611,1.234-0.945V582.844z"/> + <path fill="#FFFFFF" d="M895.624,587.625h-12.062c0,1.959,0.537,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.115-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.161,0.854-2.109,1.188c-1.188,0.438-2.51,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.635-1.572-2.453-3.688-2.453-6.344c0-2.76,0.839-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.386,0,4.256,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C895.858,586.469,895.78,587.073,895.624,587.625z M888.421,581.156c-1.322,0-2.432,0.428-3.328,1.281 + c-0.854,0.812-1.338,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C890.958,581.594,889.838,581.156,888.421,581.156z"/> + <path fill="#FFFFFF" d="M923.468,573.656l-1.047,2.672c-1-0.729-2.572-1.094-4.719-1.094c-2.01,0-3.622,0.865-4.836,2.594 + c-1.213,1.729-1.82,3.959-1.82,6.688c0,2.604,0.623,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.989,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.834-2.26,4.203-3.391,7.109-3.391 + C920.114,572.422,922.062,572.834,923.468,573.656z"/> + <path fill="#FFFFFF" d="M928.14,587.797v-2.734h6.688v2.734H928.14z"/> + <path fill="#FFFFFF" d="M940.577,581.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.237,2.406,0.711,3c0.475,0.594,1.237,0.891,2.289,0.891c0.761,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.322,0-2.439-0.492-3.352-1.477c-0.911-0.984-1.367-2.227-1.367-3.727V581.312z"/> + <path fill="#FFFFFF" d="M966.296,587.625h-12.062c0,1.959,0.537,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.115-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.161,0.854-2.109,1.188c-1.188,0.438-2.51,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.635-1.572-2.453-3.688-2.453-6.344c0-2.76,0.839-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.386,0,4.256,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C966.53,586.469,966.452,587.073,966.296,587.625z M959.093,581.156c-1.322,0-2.432,0.428-3.328,1.281 + c-0.854,0.812-1.338,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C961.63,581.594,960.51,581.156,959.093,581.156z"/> + <path fill="#FFFFFF" d="M978.749,581.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.971,0.484-2.758,1.453 + c-0.786,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.084-1.989,2.693-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L978.749,581.828z"/> + <path fill="#FFFFFF" d="M1001.468,595.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.052,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.31-1.471-0.93-1.945 + c-0.619-0.474-1.439-0.711-2.461-0.711c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969 + v-16.734h1.938l0.984,1.938c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.073,0.745,5.031,2.234 + c0.334-0.635,0.953-1.166,1.859-1.594c0.906-0.427,1.839-0.641,2.797-0.641c1.729,0,3.068,0.514,4.016,1.539 + c0.948,1.026,1.422,2.467,1.422,4.32v11.188H1001.468z"/> + <path fill="#FFFFFF" d="M1010.093,595.703v-14.234h-2.297v-2.5h5.266v16.734H1010.093z M1011.718,572.641 + c0.511,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.178-0.942,0.531-1.297 + C1010.775,572.818,1011.208,572.641,1011.718,572.641z"/> + <path fill="#FFFFFF" d="M1028.077,595.703v-9.734c0-1.781-0.268-3.028-0.805-3.742c-0.536-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.385,0.203-2.125,0.609c-0.739,0.406-1.307,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H1028.077z"/> + <path fill="#FFFFFF" d="M1038.077,578.969v10.672c0,2.584,1.12,3.875,3.359,3.875c0.979,0,1.875-0.281,2.688-0.844 + s1.35-1.213,1.609-1.953v-11.75h2.969v16.734h-2.969v-2.312c-0.333,0.656-1.002,1.258-2.008,1.805 + c-1.005,0.547-1.986,0.82-2.945,0.82c-1.833,0-3.236-0.525-4.211-1.578c-0.974-1.052-1.461-2.547-1.461-4.484v-10.984H1038.077z" + /> + <path fill="#FFFFFF" d="M1051.655,594.703l1.047-2.812c1.656,1.084,2.99,1.625,4,1.625c1.834,0,2.75-0.771,2.75-2.312 + c0-1.104-0.885-2.052-2.656-2.844c-1.364-0.625-2.283-1.099-2.758-1.422c-0.474-0.322-0.885-0.689-1.234-1.102 + c-0.349-0.411-0.609-0.849-0.781-1.312c-0.172-0.463-0.258-0.961-0.258-1.492c0-1.375,0.5-2.447,1.5-3.219 + c1-0.771,2.308-1.156,3.922-1.156c1.219,0,2.756,0.386,4.609,1.156l-0.844,2.75c-1.177-0.938-2.359-1.406-3.547-1.406 + c-0.708,0-1.305,0.167-1.789,0.5c-0.484,0.334-0.727,0.756-0.727,1.266c0,1.073,0.609,1.886,1.828,2.438l2.125,0.969 + c1.303,0.594,2.25,1.271,2.844,2.031c0.594,0.761,0.891,1.714,0.891,2.859c0,1.5-0.525,2.675-1.578,3.523 + c-1.052,0.85-2.51,1.273-4.375,1.273C1054.864,596.016,1053.208,595.578,1051.655,594.703z"/> + </g> +</g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ExtractCleavageSiteSequenceContext.xml Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,218 @@ +<!-- +# ===================================================== +# $Id: ExtractCleavageSiteSequenceContext.xml 113 2011-03-04 16:59:11Z pieter.neerincx@gmail.com $ +# $URL: https://trac.nbic.nl/svn/galaxytools/trunk/tools/general/FastaTools/ExtractCleavageSiteSequenceContext.xml $ +# $LastChangedDate: 2011-03-04 10:59:11 -0600 (Fri, 04 Mar 2011) $ +# $LastChangedRevision: 113 $ +# $LastChangedBy: pieter.neerincx@gmail.com $ +# ===================================================== +--> +<tool id="ExtractPeptideSequenceContext2" version="2.1" name="Extract Cleavage Site Context"> + <description>by mapping peptides back to proteins and fetching the regions surrounding the peptide termini.</description> + <command interpreter="perl">ExtractPeptideSequenceContext.pl --db $db --dbf FASTA --f $fragments --icol $icol --pcol $pcol $strip --cleo $cleo --ca '$ca' --ct $ct --n $n --c $c --pc '$pc' --ll WARN</command> + <inputs> + <param name="fragments" type="data" format="tabular" label="Peptide sequences and their protein's identifiers" + help="(in tab delimited format)"/> + <param name="icol" type="data_column" default_value="1" data_ref="fragments" label="Protein identifier column"/> + <param name="pcol" type="data_column" default_value="2" data_ref="fragments" label="Peptide sequence column"/> + <param name="strip" type="select"> + <label>Lowercase characters in the peptide sequences represent</label> + <option value="--s">Modifications</option> + <option value="">Amino acids</option> + </param> + <param name="db" type="data" format="fasta" label="Protein sequences" + help="(in FASTA format)"/> + <param name="n" type="integer" value="5" label="N-terminal sequence context length"/> + <param name="c" type="integer" value="5" label="C-terminal sequence context length"/> + <param name="pc" type="select" help="to fill positions in the sequence context when the protein was too short for a full length context."> + <label>Padding character</label> + <option value="-">dash</option> + <option value=" ">space</option> + <option value="">none</option> + </param> + <param name="ca" type="select"> + <label>Protease recognizes amino acid</label> + <option value="A">A</option> + <!--<option value="B">B</option>--> + <option value="C">C</option> + <option value="D">D</option> + <option value="E">E</option> + <option value="F">F</option> + <option value="G">G</option> + <option value="H">H</option> + <option value="I">I</option> + <!--<option value="J">J</option>--> + <option value="K">K</option> + <option value="L">L</option> + <option value="M">M</option> + <option value="N">N</option> + <!--<option value="O">O</option>--> + <option value="P">P</option> + <option value="Q">Q</option> + <option value="R">R</option> + <option value="S">S</option> + <option value="T">T</option> + <!--<option value="U">U</option>--> + <option value="V">V</option> + <option value="W">W</option> + <option value="*">* (any amino acid)</option> + <option value="Y">Y</option> + <!--<option value="Z">Z</option>--> + </param> + <param name="ct" type="select"> + <label>Protease cleaves</label> + <option value="C">C-terminal of the recognized amino acid</option> + <option value="N">N-terminal of the recognized amino acid</option> + </param> + </inputs> + <outputs> + <data name="cleo" format="tabular" label="Cleavage site sequence contexts for ${fragments.name}"/> + </outputs> +<!-- + <tests> + <test> + <param name="input" value="*.fasta"/> + <param name="identifiers" value="*.txt"/> + <output name="output" file="*.fasta"/> + </test> + </tests> +--> + <help> + +.. role:: raw-html(raw) + :format: html + +.. class:: infomark + +**What it does** + +Map peptide sequences back to proteins and extract sequence contexts for cleavage sites. + +:raw-html:`<object data="static/images/nbic_gmr/ExtractCleavageSiteSequenceContext.svg" type="image/svg+xml" width="100%"/>` + +=================================================== +*Peptide sequences and their protein's identifiers* +=================================================== + +This file must contain at least peptides and accession numbers or IDs of the proteins the peptides were derived from. \ +The data must be in TAB delimited format and may contain other columns, which will be preserved in the output. \ +If a sequence context was found, it will be appended in a new column to the right of the existing columns. \ +When another sequence context was found for the same peptide, it will appended as an extra row in the output. +Protein accession numbers / IDs must be in the same format as was used in the FASTA file with protein sequences (database). \ +The only exception to this rule is that accession numbers / IDs may be optionally suffixed with the peptide\'s position in its protein between brackets. \ +For example: CLH1_HUMAN[1612-1620] will be matched to CLH1_HUMAN in a FASTA file with protein sequences. \ +Amino acids in the petide sequences must be in uppercase. + +=============================================== +*Protein sequences* +=============================================== + +Input file containing all protein sequences in FASTA format. \ +This tool will look for any type of protein ID in the first part of FASTA sequence headers up until the first white space. \ +Optionally multiple IDs may be present separated with pipe symbols (|) or semicolons (;). \ +Optionally IDs may be prefixed with a database namespace and a colon (:). \ +For example the accession number P32234 as well as the ID 128UP_DROME would be recognized in both this sequence header: + + >UniProtAcc:P32234|UniProtID:128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +and in this one: + + >P32234|128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +=================================================== +*N-terminal and C-terminal sequence context length* +=================================================== + +Integers specifying the length of the N-terminal and C-terminal sequence context to retrieve starting from the modification site. \ +Note that the width of a cleavage site is 0 amino acids. \ +When defaults are used for both the N-terminal and C-terminal sequence context lengths, \ +the total sequence context length for a cleavage site will be: +(N-terminal sequence context) + (C-terminal sequence context) = 5 + 5 = 10. + +=============================================== +*Cleavage amino acid and terminus* +=============================================== + +This tool assumes the peptides were derived from cutting with a proteolytic enzyme, \ +that cuts on the *cleavage terminal* side of all *cleavage amino acids*. \ +When the specificity of the used protease is unknown, \ +you may provide an asterisk (*) to retrieve sequence context for any cleavage site, \ +but in that case this tool will not filter non-specifically cleaved fragments, \ +that may be the result of processes other than protease activity. + +=============================================== +*Padding character* +=============================================== + +Optional padding character to fill N-terminal or C-terminal positions in the sequence context, \ +when the protein was too short to get a complete sequence context. \ +Defaults to - a.k.a. dash or alignment gap character. \ + +----- + +**Getting input data** + +.. _my folder utility: http://mascotinternal.chem.uu.nl/mascot/cgi/uu_myfolder.pl + +This tool requires \ +peptide sequences in TAB delimited format and \ +protein sequences from which the peptides were derived in FASTA format. \ +If your peptide sequences are not in TAB delimited format, you can convert from: + + - FASTA format using *FASTA manipulation* -> *FASTA-to-Tabular* + - A format using a different delimiter using *Text Manipulation* -> *Convert* + +When your peptides were derived from a mass spectrometry experiment and identified with a search engine like Mascot, Sequest, etc.,\ +please make sure you provide the same FASTA database for this tool as the one used for your search. +If you used Mascot hosted by the Biomolecular Mass Spectrometry and Proteomics Group @ Utrecht University, \ +you can use the `my folder utility`_ to download the FASTA databases from the Mascot server. + +----- + +**Examples** + +Example input for peptides identified with a Mascot search, \ +some with phosphorylated residues indicated by pS, pT or pY \ +and in TAB delimited format:: + + sequence score peptide mr mass delta (abs) mass delta (ppm) all protein matches + AGNAARDN 54.24 787.357254 -4.223E-5 -0.05334300253998803 H2A1B_HUMAN[67-74]; H2A1C_HUMAN[67-74]; H2A1D_HUMAN[67-74] + KLpSAAVVLI 11.48 912.600784 0.001608 1.7619971713721432 OSGI2_HUMAN[405-413] + RAGIKVpTVA 23.01 913.570892 6.283E-5 0.06786555979719196 PARK7_HUMAN[28-36] + KGGVVGIKVD 44.61 970.581146 -0.001214 -1.2507970147608864 ALDOA_HUMAN[101-110] + KIKELQAF 11.87 975.575287 0.003907 4.004816493470687 MMP20_HUMAN[71-78] + KIpSGpTVNIR 57.17 986.587265 -0.002761 -2.798536022051734 SYTC_HUMAN[681-689] + KLpYEALKF 17.54 1010.580032 0.004782 4.731935966057164 F105A_HUMAN[238-245] + KLDApSEpSLR 31.31 1017.545441 -0.002377 -2.3360136110127785 CLH1_HUMAN[1612-1620] + +=============================================== +*Appending cleavage site sequence contexts* +=============================================== + +With these options: + + - K as *cleavage amino acid* + - N-terminal as *cleavage terminus* + - c6 as *Protein identifier column* + - c1 as *Peptide sequence column* + - a suitable FASTA database with *Protein sequences* + - and everything else set to defaults + +the example above will generate a result like this:: + + AGNAARDN 54.24 787.357254 -4.223E-5 -0.05334300253998803 H2A1B_HUMAN[67-74]; H2A1C_HUMAN[67-74]; H2A1D_HUMAN[67-74] AARDNKKTRI + KLpSAAVVLI 11.48 912.600784 0.001608 1.7619971713721432 OSGI2_HUMAN[405-413] LKKIFKLSAA + KGGVVGIKVD 44.61 970.581146 -0.001214 -1.2507970147608864 ALDOA_HUMAN[101-110] QVIKSKGGVV + KGGVVGIKVD 44.61 970.581146 -0.001214 -1.2507970147608864 ALDOA_HUMAN[101-110] GIKVDKGVVP + KIKELQAF 11.87 975.575287 0.003907 4.004816493470687 MMP20_HUMAN[71-78] NSMIRKIKEL + KIpSGpTVNIR 57.17 986.587265 -0.002761 -2.798536022051734 SYTC_HUMAN[681-689] VGEKEKISGT + KLpYEALKF 17.54 1010.580032 0.004782 4.731935966057164 F105A_HUMAN[238-245] AILEYKLYEA + KLDApSEpSLR 31.31 1017.545441 -0.002377 -2.3360136110127785 CLH1_HUMAN[1612-1620] LTKVDKLDAS + KLDApSEpSLR 31.31 1017.545441 -0.002377 -2.3360136110127785 CLH1_HUMAN[1612-1620] SESLRKEEEQ + + +Note the header line was ignored and if peptides were derived from specific LysN cleavage, they will occur twice in the output: \ +once with the sequence context for the peptide\'s N-terminus and once for its C-terminus. + + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ExtractMiscleavageSiteSequenceContext.svg Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,1357 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="1316.693px" height="639.553px" viewBox="0 0 1316.693 639.553" enable-background="new 0 0 1316.693 639.553" + xml:space="preserve"> +<g> + <g> + <path d="M274.85,65.728h-6.152l-3.711-19.287l-7.202,19.751h-2.271l-7.202-19.751l-3.857,19.287h-6.128l7.202-35.791h3.369 + l7.739,24.097l7.568-24.097h3.345L274.85,65.728z"/> + <path d="M280.026,65.703V44.561h-3.345v-5.005h9.521v26.147H280.026z M283.175,29.424c0.977,0,1.811,0.346,2.502,1.037 + c0.691,0.692,1.038,1.526,1.038,2.503s-0.346,1.811-1.038,2.503c-0.692,0.691-1.526,1.037-2.502,1.037s-1.811-0.346-2.502-1.037 + c-0.692-0.692-1.038-1.526-1.038-2.503s0.346-1.811,1.038-2.503C281.364,29.77,282.199,29.424,283.175,29.424z"/> + <path d="M291.696,64.019l2.173-4.858c1.823,1.449,3.882,2.173,6.177,2.173c2.376,0,3.564-0.846,3.564-2.539 + c0-0.992-0.358-1.807-1.074-2.441c-0.716-0.635-2.108-1.383-4.175-2.246c-4.509-1.871-6.763-4.492-6.763-7.861 + c0-2.262,0.862-4.024,2.588-5.286c1.725-1.261,3.931-1.892,6.616-1.892c2.718,0,5.273,0.61,7.666,1.831l-1.758,4.736 + c-1.335-1.139-3.19-1.709-5.566-1.709c-2.132,0-3.198,0.847-3.198,2.539c0,0.668,0.35,1.27,1.05,1.807 + c0.7,0.537,2.197,1.258,4.492,2.16c2.295,0.904,3.947,1.999,4.956,3.284c1.009,1.286,1.514,2.841,1.514,4.663 + c0,2.426-0.899,4.334-2.698,5.725c-1.799,1.393-4.244,2.088-7.336,2.088c-1.742,0-3.137-0.143-4.187-0.428 + C294.687,65.479,293.339,64.897,291.696,64.019z"/> + <path d="M335.348,41.631l-2.612,4.565c-1.433-1.351-3.353-2.026-5.762-2.026c-2.312,0-4.138,0.77-5.481,2.307 + c-1.343,1.539-2.014,3.667-2.014,6.385c0,5.485,2.612,8.228,7.837,8.228c2.262,0,4.256-0.748,5.981-2.246l2.246,4.81 + c-1.774,1.107-3.325,1.807-4.651,2.1c-1.327,0.293-2.893,0.439-4.7,0.439c-4.037,0-7.223-1.176-9.558-3.527 + c-2.336-2.353-3.503-5.619-3.503-9.803c0-4.117,1.277-7.446,3.833-9.985c2.555-2.539,6.038-3.809,10.449-3.809 + C330.457,39.067,333.102,39.922,335.348,41.631z"/> + <path d="M341.476,29.814l6.104-1.465v29.395c0,3.223,0.96,5.144,2.881,5.762c-0.944,1.791-2.556,2.686-4.834,2.686 + c-2.767,0-4.15-1.92-4.15-5.762V29.814z"/> + <path d="M378.512,54.497h-18.677c0.114,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.899-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.141-1.168-9.46-3.504 + c-2.319-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C379.025,51.853,378.854,52.983,378.512,54.497z + M360.055,49.907h12.842c-0.423-3.824-2.539-5.737-6.348-5.737C363.066,44.17,360.901,46.083,360.055,49.907z"/> + <path d="M398.458,63.091c-0.554,0.912-1.518,1.656-2.893,2.233c-1.375,0.578-2.812,0.867-4.309,0.867 + c-2.816,0-5.029-0.704-6.641-2.111c-1.611-1.408-2.417-3.406-2.417-5.994c0-3.027,1.135-5.396,3.406-7.104s5.497-2.563,9.68-2.563 + c0.716,0,1.562,0.122,2.539,0.366c0-3.076-1.945-4.614-5.835-4.614c-2.295,0-4.216,0.383-5.762,1.147l-1.318-4.736 + c2.1-1.009,4.598-1.514,7.495-1.514c3.987,0,6.909,0.907,8.765,2.722c1.855,1.815,2.783,5.254,2.783,10.315v5.591 + c0,3.483,0.7,5.673,2.1,6.567c-0.505,0.879-1.066,1.42-1.685,1.624c-0.619,0.203-1.327,0.305-2.124,0.305 + c-0.879,0-1.668-0.326-2.368-0.977C399.174,64.564,398.703,63.856,398.458,63.091z M397.873,53.398 + c-1.042-0.211-1.823-0.317-2.344-0.317c-4.818,0-7.227,1.579-7.227,4.736c0,2.344,1.359,3.516,4.077,3.516 + c3.662,0,5.493-1.831,5.493-5.493V53.398z"/> + <path d="M421.383,66.191h-2.197L407.37,39.556h6.689l6.25,15.967l6.714-15.967h6.47L421.383,66.191z"/> + <path d="M451.461,63.091c-0.554,0.912-1.518,1.656-2.893,2.233c-1.375,0.578-2.812,0.867-4.309,0.867 + c-2.816,0-5.029-0.704-6.641-2.111c-1.611-1.408-2.417-3.406-2.417-5.994c0-3.027,1.135-5.396,3.406-7.104s5.497-2.563,9.68-2.563 + c0.716,0,1.562,0.122,2.539,0.366c0-3.076-1.945-4.614-5.835-4.614c-2.295,0-4.216,0.383-5.762,1.147l-1.318-4.736 + c2.1-1.009,4.598-1.514,7.495-1.514c3.987,0,6.909,0.907,8.765,2.722c1.855,1.815,2.783,5.254,2.783,10.315v5.591 + c0,3.483,0.7,5.673,2.1,6.567c-0.505,0.879-1.066,1.42-1.685,1.624c-0.619,0.203-1.327,0.305-2.124,0.305 + c-0.879,0-1.668-0.326-2.368-0.977C452.177,64.564,451.706,63.856,451.461,63.091z M450.875,53.398 + c-1.042-0.211-1.823-0.317-2.344-0.317c-4.818,0-7.227,1.579-7.227,4.736c0,2.344,1.359,3.516,4.077,3.516 + c3.662,0,5.493-1.831,5.493-5.493V53.398z"/> + <path d="M461.593,72.417l3.857-4.761c2.132,1.953,4.508,2.93,7.129,2.93c1.758,0,3.206-0.261,4.346-0.781 + c1.139-0.521,1.709-1.237,1.709-2.148c0-1.547-1.262-2.319-3.784-2.319c-0.684,0-1.701,0.082-3.052,0.244 + c-1.351,0.162-2.368,0.244-3.052,0.244c-4.199,0-6.299-1.505-6.299-4.517c0-0.862,0.35-1.709,1.05-2.539 + c0.7-0.83,1.514-1.44,2.441-1.831c-2.979-1.937-4.468-4.679-4.468-8.228c0-2.799,1.025-5.115,3.076-6.945 + c2.051-1.832,4.573-2.747,7.568-2.747c2.344,0,4.305,0.439,5.884,1.318l2.393-2.783l4.224,3.833l-2.905,2.124 + c1.009,1.53,1.514,3.337,1.514,5.42c0,2.979-0.908,5.358-2.722,7.142c-1.815,1.781-4.106,2.673-6.873,2.673 + c-0.439,0-1.025-0.04-1.758-0.122l-1.001-0.146c-0.114,0-0.549,0.175-1.306,0.525c-0.757,0.35-1.135,0.712-1.135,1.086 + c0,0.651,0.562,0.977,1.685,0.977c0.504,0,1.351-0.122,2.539-0.366c1.188-0.244,2.205-0.366,3.052-0.366 + c5.94,0,8.911,2.385,8.911,7.153c0,2.637-1.188,4.708-3.564,6.214c-2.376,1.505-5.241,2.258-8.594,2.258 + C468.454,75.957,464.832,74.776,461.593,72.417z M467.697,48.735c0,1.547,0.427,2.787,1.282,3.724 + c0.854,0.936,2.006,1.403,3.455,1.403c1.448,0,2.563-0.455,3.345-1.367c0.781-0.911,1.172-2.164,1.172-3.76 + c0-1.318-0.419-2.433-1.257-3.345c-0.838-0.911-1.925-1.367-3.259-1.367c-1.4,0-2.539,0.439-3.418,1.318 + S467.697,47.353,467.697,48.735z"/> + <path d="M511.984,54.497h-18.677c0.114,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.899-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.141-1.168-9.46-3.504 + c-2.319-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C512.497,51.853,512.326,52.983,511.984,54.497z + M493.527,49.907h12.842c-0.423-3.824-2.539-5.737-6.348-5.737C496.538,44.17,494.373,46.083,493.527,49.907z"/> + <path d="M531.1,63.726l2.344-5.688c2.506,1.758,4.972,2.637,7.397,2.637c3.727,0,5.591-1.302,5.591-3.906 + c0-1.221-0.439-2.384-1.318-3.491c-0.879-1.106-2.69-2.348-5.432-3.724c-2.743-1.375-4.59-2.506-5.542-3.393 + c-0.952-0.888-1.685-1.941-2.197-3.162s-0.769-2.571-0.769-4.053c0-2.767,1.013-5.062,3.04-6.885 + c2.026-1.822,4.626-2.734,7.8-2.734c4.134,0,7.169,0.773,9.106,2.319l-1.929,5.469c-2.23-1.595-4.582-2.393-7.056-2.393 + c-1.465,0-2.6,0.387-3.406,1.159c-0.806,0.773-1.208,1.779-1.208,3.016c0,2.051,2.271,4.184,6.812,6.396 + c2.393,1.172,4.118,2.25,5.176,3.234c1.058,0.985,1.863,2.133,2.417,3.443c0.553,1.31,0.83,2.771,0.83,4.382 + c0,2.897-1.144,5.282-3.43,7.153c-2.287,1.872-5.351,2.808-9.192,2.808C536.796,66.313,533.786,65.451,531.1,63.726z"/> + <path d="M559.64,65.703V44.561h-3.345v-5.005h9.521v26.147H559.64z M562.79,29.424c0.977,0,1.811,0.346,2.502,1.037 + c0.691,0.692,1.038,1.526,1.038,2.503s-0.346,1.811-1.038,2.503c-0.692,0.691-1.526,1.037-2.502,1.037s-1.811-0.346-2.502-1.037 + c-0.692-0.692-1.038-1.526-1.038-2.503s0.346-1.811,1.038-2.503C560.979,29.77,561.813,29.424,562.79,29.424z"/> + <path d="M573.849,44.463h-3.027v-4.907h3.027v-5.322l6.104-2.246v7.568h7.178v4.907h-7.178v11.45c0,1.872,0.293,3.194,0.879,3.968 + c0.586,0.772,1.611,1.159,3.076,1.159s2.832-0.398,4.102-1.196v5.615c-1.416,0.488-3.435,0.732-6.055,0.732 + c-2.604,0-4.606-0.736-6.006-2.209c-1.4-1.474-2.1-3.568-2.1-6.287V44.463z"/> + <path d="M616.085,54.497h-18.677c0.114,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.899-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.141-1.168-9.46-3.504 + c-2.319-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C616.598,51.853,616.427,52.983,616.085,54.497z + M597.628,49.907h12.842c-0.423-3.824-2.539-5.737-6.348-5.737C600.639,44.17,598.475,46.083,597.628,49.907z"/> + <path d="M635.202,63.726l2.344-5.688c2.506,1.758,4.972,2.637,7.397,2.637c3.727,0,5.591-1.302,5.591-3.906 + c0-1.221-0.439-2.384-1.318-3.491c-0.879-1.106-2.69-2.348-5.432-3.724c-2.743-1.375-4.59-2.506-5.542-3.393 + c-0.952-0.888-1.685-1.941-2.197-3.162s-0.769-2.571-0.769-4.053c0-2.767,1.013-5.062,3.04-6.885 + c2.026-1.822,4.626-2.734,7.8-2.734c4.134,0,7.169,0.773,9.106,2.319l-1.929,5.469c-2.23-1.595-4.582-2.393-7.056-2.393 + c-1.465,0-2.6,0.387-3.406,1.159c-0.806,0.773-1.208,1.779-1.208,3.016c0,2.051,2.271,4.184,6.812,6.396 + c2.393,1.172,4.118,2.25,5.176,3.234c1.058,0.985,1.863,2.133,2.417,3.443c0.553,1.31,0.83,2.771,0.83,4.382 + c0,2.897-1.144,5.282-3.43,7.153c-2.287,1.872-5.351,2.808-9.192,2.808C640.898,66.313,637.887,65.451,635.202,63.726z"/> + <path d="M685.446,54.497h-18.678c0.114,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.093,1.733,5.322,1.733 + c2.783,0,4.899-0.724,6.348-2.173l2.369,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.142-1.168-9.461-3.504 + c-2.319-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.82-10.01c2.547-2.555,5.604-3.833,9.168-3.833 + c3.791,0,6.836,1.132,9.131,3.394c2.295,2.263,3.441,5.144,3.441,8.643C685.958,51.853,685.788,52.983,685.446,54.497z + M666.989,49.907h12.842c-0.424-3.824-2.539-5.737-6.348-5.737C669.999,44.17,667.835,46.083,666.989,49.907z"/> + <path d="M707.833,75.957V64.971c-1.465,0.813-3.482,1.221-6.055,1.221c-3.809,0-6.787-1.16-8.936-3.479 + c-2.148-2.32-3.223-5.595-3.223-9.827c0-4.215,1.233-7.572,3.699-10.071c2.467-2.498,5.619-3.747,9.461-3.747 + c2.277,0,4.346,0.684,6.201,2.051l1-1.562h3.955v36.401H707.833z M707.833,45.757c-1.09-1.009-2.514-1.514-4.271-1.514 + c-2.377,0-4.236,0.785-5.578,2.356c-1.344,1.57-2.016,3.666-2.016,6.286c0,5.437,2.467,8.154,7.398,8.154 + c1.807,0,3.295-0.423,4.467-1.27V45.757z"/> + <path d="M736.887,65.728V63.53c-0.863,0.732-2.051,1.359-3.564,1.88s-2.905,0.781-4.175,0.781c-6.071,0-9.106-3.223-9.106-9.668 + V39.556h6.104V56.06c0,3.354,1.505,5.029,4.517,5.029c1.383,0,2.669-0.357,3.857-1.074c1.188-0.716,1.978-1.546,2.368-2.49V39.556 + h6.104v26.172H736.887z"/> + <path d="M772.922,54.497h-18.677c0.113,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.898-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.142-1.168-9.46-3.504 + c-2.32-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C773.435,51.853,773.264,52.983,772.922,54.497z + M754.465,49.907h12.842c-0.424-3.824-2.539-5.737-6.348-5.737C757.476,44.17,755.311,46.083,754.465,49.907z"/> + <path d="M795.138,65.703V50.591c0-2.229-0.428-3.857-1.281-4.883c-0.855-1.025-2.251-1.538-4.188-1.538 + c-0.896,0-1.852,0.253-2.869,0.757c-1.017,0.505-1.811,1.132-2.38,1.88v18.896h-6.104V39.556h4.395l1.123,2.441 + c1.66-1.953,4.109-2.93,7.349-2.93c3.108,0,5.562,0.932,7.361,2.796c1.798,1.863,2.697,4.464,2.697,7.8v16.04H795.138z"/> + <path d="M828.342,41.631l-2.612,4.565c-1.433-1.351-3.354-2.026-5.762-2.026c-2.312,0-4.139,0.77-5.48,2.307 + c-1.344,1.539-2.015,3.667-2.015,6.385c0,5.485,2.612,8.228,7.837,8.228c2.262,0,4.256-0.748,5.981-2.246l2.246,4.81 + c-1.774,1.107-3.324,1.807-4.651,2.1c-1.326,0.293-2.893,0.439-4.699,0.439c-4.037,0-7.223-1.176-9.559-3.527 + c-2.335-2.353-3.503-5.619-3.503-9.803c0-4.117,1.277-7.446,3.833-9.985c2.555-2.539,6.038-3.809,10.449-3.809 + C823.45,39.067,826.096,39.922,828.342,41.631z"/> + <path d="M856.76,54.497h-18.677c0.113,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.898-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.142-1.168-9.46-3.504 + c-2.32-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C857.272,51.853,857.102,52.983,856.76,54.497z + M838.303,49.907h12.842c-0.424-3.824-2.539-5.737-6.348-5.737C841.313,44.17,839.148,46.083,838.303,49.907z"/> + <path d="M902.097,31.841l-2.612,5.249c-1.416-1.416-3.695-2.124-6.836-2.124c-2.979,0-5.42,1.249-7.324,3.747 + c-1.904,2.499-2.856,5.661-2.856,9.485c0,3.825,0.883,6.86,2.648,9.106c1.767,2.246,4.122,3.369,7.068,3.369 + c3.369,0,6.006-1.204,7.91-3.613l2.954,5.127c-2.588,2.751-6.381,4.126-11.377,4.126c-4.997,0-8.879-1.644-11.646-4.932 + c-2.768-3.287-4.15-7.771-4.15-13.452c0-5.289,1.534-9.713,4.602-13.27c3.068-3.556,6.995-5.334,11.78-5.334 + C896.359,29.326,899.639,30.165,902.097,31.841z"/> + <path d="M906.1,52.568c0-3.987,1.151-7.234,3.454-9.741c2.304-2.506,5.343-3.76,9.119-3.76c3.971,0,7.056,1.205,9.253,3.613 + c2.197,2.409,3.296,5.705,3.296,9.888c0,4.167-1.119,7.479-3.357,9.937c-2.237,2.458-5.302,3.687-9.191,3.687 + c-3.972,0-7.06-1.241-9.266-3.723C907.202,59.986,906.1,56.687,906.1,52.568z M912.447,52.568c0,5.762,2.075,8.643,6.226,8.643 + c1.904,0,3.414-0.748,4.529-2.246c1.114-1.497,1.672-3.629,1.672-6.396c0-5.68-2.067-8.521-6.201-8.521 + c-1.904,0-3.418,0.749-4.541,2.246C913.009,47.792,912.447,49.883,912.447,52.568z"/> + <path d="M952.927,65.703V50.591c0-2.229-0.428-3.857-1.281-4.883c-0.855-1.025-2.251-1.538-4.188-1.538 + c-0.896,0-1.852,0.253-2.869,0.757c-1.017,0.505-1.811,1.132-2.38,1.88v18.896h-6.104V39.556h4.395l1.123,2.441 + c1.66-1.953,4.109-2.93,7.349-2.93c3.108,0,5.562,0.932,7.361,2.796c1.798,1.863,2.697,4.464,2.697,7.8v16.04H952.927z"/> + <path d="M966.549,44.463h-3.027v-4.907h3.027v-5.322l6.104-2.246v7.568h7.178v4.907h-7.178v11.45c0,1.872,0.293,3.194,0.879,3.968 + c0.586,0.772,1.611,1.159,3.076,1.159s2.832-0.398,4.102-1.196v5.615c-1.416,0.488-3.435,0.732-6.055,0.732 + c-2.604,0-4.606-0.736-6.006-2.209c-1.4-1.474-2.1-3.568-2.1-6.287V44.463z"/> + <path d="M1008.785,54.497h-18.677c0.113,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.898-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.142-1.168-9.46-3.504 + c-2.32-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C1009.298,51.853,1009.127,52.983,1008.785,54.497z + M990.328,49.907h12.842c-0.424-3.824-2.539-5.737-6.348-5.737C993.339,44.17,991.174,46.083,990.328,49.907z"/> + <path d="M1030.979,65.703l-6.714-8.521l-6.03,8.521h-7.227l10.034-13.379l-9.229-12.769h7.007l5.518,7.983l6.152-7.983h6.958 + l-10.034,12.769l10.962,13.379H1030.979z"/> + <path d="M1042.721,44.463h-3.027v-4.907h3.027v-5.322l6.104-2.246v7.568h7.178v4.907h-7.178v11.45 + c0,1.872,0.293,3.194,0.879,3.968c0.586,0.772,1.611,1.159,3.076,1.159s2.832-0.398,4.102-1.196v5.615 + c-1.416,0.488-3.435,0.732-6.055,0.732c-2.604,0-4.606-0.736-6.006-2.209c-1.4-1.474-2.1-3.568-2.1-6.287V44.463z"/> + <path d="M1060.006,64.019l2.173-4.858c1.822,1.449,3.882,2.173,6.177,2.173c2.376,0,3.564-0.846,3.564-2.539 + c0-0.992-0.358-1.807-1.074-2.441c-0.717-0.635-2.108-1.383-4.175-2.246c-4.509-1.871-6.763-4.492-6.763-7.861 + c0-2.262,0.862-4.024,2.588-5.286c1.725-1.261,3.931-1.892,6.616-1.892c2.718,0,5.273,0.61,7.666,1.831l-1.758,4.736 + c-1.335-1.139-3.19-1.709-5.566-1.709c-2.133,0-3.198,0.847-3.198,2.539c0,0.668,0.35,1.27,1.05,1.807 + c0.699,0.537,2.197,1.258,4.492,2.16c2.295,0.904,3.946,1.999,4.956,3.284c1.009,1.286,1.514,2.841,1.514,4.663 + c0,2.426-0.899,4.334-2.698,5.725c-1.798,1.393-4.244,2.088-7.336,2.088c-1.742,0-3.137-0.143-4.188-0.428 + C1062.997,65.479,1061.649,64.897,1060.006,64.019z"/> + </g> +</g> +<g> + <path fill="#B1362D" d="M29.847,342.703v-13c0-8.284,6.716-15,15-15h1227c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15 + h-1227C36.562,357.703,29.847,350.987,29.847,342.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M29.847,342.703v-13 + c0-8.284,6.716-15,15-15h1227c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15h-1227 + C36.562,357.703,29.847,350.987,29.847,342.703z"/> + <g> + <path fill="#FFFFFF" d="M612.464,338.891v8.812h-3.125v-22.891c2.364-0.104,3.792-0.156,4.281-0.156 + c6.646,0,9.969,2.225,9.969,6.672c0,5.146-2.938,7.719-8.812,7.719C614.422,339.047,613.651,338.995,612.464,338.891z + M612.464,327.625v8.453c1.323,0.104,2.021,0.156,2.094,0.156c3.875,0,5.812-1.525,5.812-4.578c0-2.791-2.068-4.188-6.203-4.188 + C613.75,327.469,613.183,327.521,612.464,327.625z"/> + <path fill="#FFFFFF" d="M634.57,333.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L634.57,333.828z"/> + <path fill="#FFFFFF" d="M636.82,339.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C637.486,344.084,636.82,341.964,636.82,339.297z + M639.945,339.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C640.348,335.839,639.945,337.359,639.945,339.297z"/> + <path fill="#FFFFFF" d="M656.148,333.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.593v2.344h-4.593v8.312 + c0,1.406,0.237,2.406,0.71,3c0.475,0.594,1.237,0.891,2.289,0.891c0.761,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.322,0-2.44-0.492-3.351-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V333.312z"/> + <path fill="#FFFFFF" d="M681.866,339.625h-12.062c0,1.959,0.537,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.115-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.51,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.635-1.572-2.453-3.688-2.453-6.344c0-2.76,0.839-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.256,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C682.101,338.469,682.022,339.073,681.866,339.625z M674.663,333.156c-1.322,0-2.432,0.428-3.328,1.281 + c-0.854,0.812-1.338,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C677.2,333.594,676.079,333.156,674.663,333.156z"/> + <path fill="#FFFFFF" d="M686.664,347.703v-14.234h-2.297v-2.5h5.266v16.734H686.664z M688.289,324.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.795,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C687.346,324.818,687.778,324.641,688.289,324.641z"/> + <path fill="#FFFFFF" d="M704.648,347.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H704.648z"/> + </g> + <path fill="#7D5D3D" d="M135.847,178.703v-13c0-8.284,6.716-15,15-15h842c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15 + h-842C142.562,193.703,135.847,186.987,135.847,178.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M135.847,178.703v-13 + c0-8.284,6.716-15,15-15h842c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15h-842 + C142.562,193.703,135.847,186.987,135.847,178.703z"/> + <g> + <path fill="#FFFFFF" d="M595.261,174.891v8.812h-3.125v-22.891c2.364-0.104,3.792-0.156,4.281-0.156 + c6.646,0,9.969,2.225,9.969,6.672c0,5.146-2.938,7.719-8.812,7.719C597.219,175.047,596.448,174.995,595.261,174.891z + M595.261,163.625v8.453c1.323,0.104,2.021,0.156,2.094,0.156c3.875,0,5.812-1.525,5.812-4.578c0-2.791-2.068-4.188-6.203-4.188 + C596.547,163.469,595.979,163.521,595.261,163.625z"/> + <path fill="#FFFFFF" d="M622.335,175.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C622.569,174.469,622.491,175.073,622.335,175.625z M615.132,169.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C617.668,169.594,616.548,169.156,615.132,169.156z"/> + <path fill="#FFFFFF" d="M628.663,182.781v7.484h-2.969v-23.297h2.969v1.375c1.125-1.125,2.484-1.688,4.078-1.688 + c2.375,0,4.224,0.74,5.547,2.219c1.323,1.479,1.984,3.646,1.984,6.5c0,2.542-0.667,4.617-2,6.227 + c-1.333,1.609-3.261,2.414-5.781,2.414c-0.708,0-1.466-0.125-2.273-0.375C629.41,183.391,628.892,183.104,628.663,182.781z + M628.663,170.578v9.75c0.188,0.281,0.583,0.55,1.188,0.805c0.604,0.256,1.192,0.383,1.766,0.383c3.688,0,5.531-2.083,5.531-6.25 + c0-2.114-0.438-3.661-1.312-4.641c-0.875-0.979-2.276-1.469-4.203-1.469c-0.417,0-0.927,0.146-1.531,0.438 + C629.496,169.886,629.017,170.214,628.663,170.578z"/> + <path fill="#FFFFFF" d="M644.585,169.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.237,2.406,0.711,3c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V169.312z"/> + <path fill="#FFFFFF" d="M657.647,183.703v-14.234h-2.297v-2.5h5.266v16.734H657.647z M659.272,160.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.795,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C658.33,160.818,658.762,160.641,659.272,160.641z"/> + <path fill="#FFFFFF" d="M675.944,183.688v-1.234c-1.031,1.031-2.531,1.547-4.5,1.547c-2.094,0-3.792-0.75-5.094-2.25 + c-1.303-1.5-1.953-3.5-1.953-6c0-2.51,0.75-4.653,2.25-6.43c1.5-1.775,3.286-2.664,5.359-2.664c1.729,0,3.041,0.406,3.938,1.219 + v-7.766h2.969v23.578H675.944z M675.944,170.844c-0.75-1.125-1.776-1.688-3.078-1.688c-1.594,0-2.883,0.594-3.867,1.781 + s-1.477,2.698-1.477,4.531c0,4.031,1.833,6.047,5.5,6.047c0.469,0,1.031-0.148,1.688-0.445s1.067-0.611,1.234-0.945V170.844z"/> + <path fill="#FFFFFF" d="M697.257,175.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C697.491,174.469,697.413,175.073,697.257,175.625z M690.054,169.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C692.59,169.594,691.47,169.156,690.054,169.156z"/> + </g> + <polygon points="638.847,261.703 621.847,261.703 645.347,298.703 668.847,261.703 651.847,261.703 651.847,207.703 + 638.847,207.703 "/> + <polygon fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" points="638.847,261.703 + 621.847,261.703 645.347,298.703 668.847,261.703 651.847,261.703 651.847,207.703 638.847,207.703 "/> + <path fill="#F6931E" d="M115.847,451.703v-62c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C122.562,466.703,115.847,459.987,115.847,451.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M115.847,451.703v-62 + c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C122.562,466.703,115.847,459.987,115.847,451.703z"/> + <g> + <path d="M179.901,414.016l-11.828-16.734v16.422h-2.969v-22.891h1.25l11.516,15.828v-15.828h2.969v23.203H179.901z"/> + <path d="M185.667,405.797v-2.734h6.688v2.734H185.667z"/> + <path d="M198.104,399.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V399.312z"/> + <path d="M223.823,405.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C224.058,404.469,223.979,405.073,223.823,405.625z M216.62,399.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C219.156,399.594,218.037,399.156,216.62,399.156z"/> + <path d="M236.276,399.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L236.276,399.828z"/> + <path d="M258.995,413.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.052,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.31-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969v-16.734h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.073,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.948,1.026,1.422,2.467,1.422,4.32v11.188H258.995z"/> + <path d="M267.62,413.703v-14.234h-2.297v-2.5h5.266v16.734H267.62z M269.245,390.641c0.51,0,0.945,0.18,1.305,0.539 + s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539c-0.5,0-0.93-0.18-1.289-0.539 + s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297C268.302,390.818,268.734,390.641,269.245,390.641z"/> + <path d="M285.604,413.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H285.604z"/> + <path d="M302.245,411.781c-1.188,1.49-3.005,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.208-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.995-0.328,1.945-0.492,2.852-0.492c2.427,0,4.19,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V414c-1.208,0-2.112-0.172-2.711-0.516C302.935,413.141,302.505,412.573,302.245,411.781z + M301.964,405.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.724,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.026,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V405.484z"/> + <path d="M309.839,408.969v-18.859h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.19,0.773,2.023,0.773v2.656 + C311.761,414.016,309.839,412.334,309.839,408.969z"/> + </g> + <g> + <path d="M146.964,428.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C143.609,427.422,145.558,427.834,146.964,428.656z"/> + <path d="M150.167,442.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383c2.396,0,4.255,0.764,5.578,2.289 + c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383c-1.354,1.558-3.198,2.336-5.531,2.336 + c-2.386,0-4.245-0.786-5.578-2.359C150.833,447.084,150.167,444.964,150.167,442.297z M153.292,442.297 + c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C153.695,438.839,153.292,440.359,153.292,442.297z"/> + <path d="M178.729,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H178.729z"/> + <path d="M186.979,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M212.698,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C212.933,441.469,212.854,442.073,212.698,442.625z M205.495,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C208.031,436.594,206.912,436.156,205.495,436.156z"/> + <path d="M226.245,450.703l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75h3.281 + l-6.078,8.172l6.656,8.562H226.245z"/> + <path d="M233.151,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M254.651,450.703v-22.891h3.125v20.078h10.344v2.812H254.651z"/> + <path d="M284.714,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C284.948,441.469,284.87,442.073,284.714,442.625z M277.511,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C280.047,436.594,278.927,436.156,277.511,436.156z"/> + <path d="M298.37,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H298.37z"/> + <path d="M304.948,455.281l1.609-2.375c1.729,1.156,3.323,1.734,4.781,1.734c1.344,0,2.403-0.232,3.18-0.695 + c0.776-0.464,1.164-1.039,1.164-1.727c0-1.354-0.979-2.031-2.938-2.031c-0.333,0-0.938,0.084-1.812,0.25 + c-0.875,0.167-1.558,0.25-2.047,0.25c-2.375,0-3.562-0.896-3.562-2.688c0-0.552,0.278-1.052,0.836-1.5 + c0.557-0.447,1.247-0.771,2.07-0.969c-2.354-1.104-3.531-3.021-3.531-5.75c0-1.75,0.609-3.208,1.828-4.375 + c1.219-1.166,2.724-1.75,4.516-1.75c1.646,0,2.932,0.339,3.859,1.016l1.484-1.781l1.938,1.828l-1.781,1.344 + c0.76,0.99,1.141,2.281,1.141,3.875c0,1.688-0.526,3.104-1.578,4.25c-1.052,1.146-2.433,1.803-4.141,1.969l-2.453,0.25 + c-0.292,0.031-0.683,0.144-1.172,0.336c-0.49,0.193-0.734,0.445-0.734,0.758c0,0.428,0.51,0.641,1.531,0.641 + c0.448,0,1.146-0.08,2.094-0.242c0.948-0.161,1.651-0.242,2.109-0.242c1.646,0,2.93,0.394,3.852,1.18 + c0.922,0.787,1.383,1.877,1.383,3.273c0,1.541-0.69,2.786-2.07,3.734c-1.38,0.947-3.128,1.422-5.242,1.422 + c-1.083,0-2.224-0.193-3.422-0.578C306.641,456.302,305.677,455.833,304.948,455.281z M311.245,436.047 + c-1.031,0-1.873,0.365-2.523,1.094c-0.651,0.729-0.977,1.615-0.977,2.656c0,1.167,0.315,2.133,0.945,2.898 + c0.63,0.766,1.481,1.148,2.555,1.148c1.052,0,1.875-0.372,2.469-1.117c0.594-0.744,0.891-1.721,0.891-2.93 + c0-1.041-0.32-1.927-0.961-2.656C313.003,436.412,312.203,436.047,311.245,436.047z"/> + <path d="M322.683,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M344.62,450.703v-10.516c0-1.25-0.308-2.234-0.922-2.953c-0.615-0.719-1.479-1.078-2.594-1.078 + c-0.719,0-1.44,0.211-2.164,0.633c-0.724,0.422-1.279,0.914-1.664,1.477v12.438h-2.969v-23.594h2.969v8.703 + c0.396-0.614,1.034-1.127,1.914-1.539c0.88-0.411,1.789-0.617,2.727-0.617c1.771,0,3.159,0.584,4.164,1.75 + c1.005,1.167,1.508,2.761,1.508,4.781v10.516H344.62z"/> + </g> + <path fill="#F16522" d="M363.847,451.703v-62c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C370.562,466.703,363.847,459.987,363.847,451.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M363.847,451.703v-62 + c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C370.562,466.703,363.847,459.987,363.847,451.703z"/> + <g> + <path d="M428.354,391.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C425,390.422,426.948,390.834,428.354,391.656z"/> + <path d="M433.026,405.797v-2.734h6.688v2.734H433.026z"/> + <path d="M445.464,399.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V399.312z"/> + <path d="M471.183,405.625H459.12c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C471.417,404.469,471.339,405.073,471.183,405.625z M463.979,399.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C466.516,399.594,465.396,399.156,463.979,399.156z"/> + <path d="M483.636,399.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L483.636,399.828z"/> + <path d="M506.354,413.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.052,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.31-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969v-16.734h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.073,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.948,1.026,1.422,2.467,1.422,4.32v11.188H506.354z"/> + <path d="M514.979,413.703v-14.234h-2.297v-2.5h5.266v16.734H514.979z M516.604,390.641c0.51,0,0.945,0.18,1.305,0.539 + s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539c-0.5,0-0.93-0.18-1.289-0.539 + s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297C515.662,390.818,516.094,390.641,516.604,390.641z"/> + <path d="M532.964,413.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H532.964z"/> + <path d="M549.604,411.781c-1.188,1.49-3.005,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.208-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.995-0.328,1.945-0.492,2.852-0.492c2.427,0,4.19,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V414c-1.208,0-2.112-0.172-2.711-0.516C550.294,413.141,549.865,412.573,549.604,411.781z + M549.323,405.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.724,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.026,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V405.484z"/> + <path d="M557.198,408.969v-18.859h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.19,0.773,2.023,0.773v2.656 + C559.12,414.016,557.198,412.334,557.198,408.969z"/> + </g> + <g> + <path d="M394.964,428.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C391.609,427.422,393.558,427.834,394.964,428.656z"/> + <path d="M398.167,442.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383c2.396,0,4.255,0.764,5.578,2.289 + c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383c-1.354,1.558-3.198,2.336-5.531,2.336 + c-2.386,0-4.245-0.786-5.578-2.359C398.833,447.084,398.167,444.964,398.167,442.297z M401.292,442.297 + c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C401.695,438.839,401.292,440.359,401.292,442.297z"/> + <path d="M426.729,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H426.729z"/> + <path d="M434.979,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M460.698,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C460.933,441.469,460.854,442.073,460.698,442.625z M453.495,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C456.031,436.594,454.912,436.156,453.495,436.156z"/> + <path d="M474.245,450.703l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75h3.281 + l-6.078,8.172l6.656,8.562H474.245z"/> + <path d="M481.151,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M502.651,450.703v-22.891h3.125v20.078h10.344v2.812H502.651z"/> + <path d="M532.714,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C532.948,441.469,532.87,442.073,532.714,442.625z M525.511,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C528.047,436.594,526.927,436.156,525.511,436.156z"/> + <path d="M546.37,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H546.37z"/> + <path d="M552.948,455.281l1.609-2.375c1.729,1.156,3.323,1.734,4.781,1.734c1.344,0,2.403-0.232,3.18-0.695 + c0.776-0.464,1.164-1.039,1.164-1.727c0-1.354-0.979-2.031-2.938-2.031c-0.333,0-0.938,0.084-1.812,0.25 + c-0.875,0.167-1.558,0.25-2.047,0.25c-2.375,0-3.562-0.896-3.562-2.688c0-0.552,0.278-1.052,0.836-1.5 + c0.557-0.447,1.247-0.771,2.07-0.969c-2.354-1.104-3.531-3.021-3.531-5.75c0-1.75,0.609-3.208,1.828-4.375 + c1.219-1.166,2.724-1.75,4.516-1.75c1.646,0,2.932,0.339,3.859,1.016l1.484-1.781l1.938,1.828l-1.781,1.344 + c0.76,0.99,1.141,2.281,1.141,3.875c0,1.688-0.526,3.104-1.578,4.25c-1.052,1.146-2.433,1.803-4.141,1.969l-2.453,0.25 + c-0.292,0.031-0.683,0.144-1.172,0.336c-0.49,0.193-0.734,0.445-0.734,0.758c0,0.428,0.51,0.641,1.531,0.641 + c0.448,0,1.146-0.08,2.094-0.242c0.948-0.161,1.651-0.242,2.109-0.242c1.646,0,2.93,0.394,3.852,1.18 + c0.922,0.787,1.383,1.877,1.383,3.273c0,1.541-0.69,2.786-2.07,3.734c-1.38,0.947-3.128,1.422-5.242,1.422 + c-1.083,0-2.224-0.193-3.422-0.578C554.641,456.302,553.677,455.833,552.948,455.281z M559.245,436.047 + c-1.031,0-1.873,0.365-2.523,1.094c-0.651,0.729-0.977,1.615-0.977,2.656c0,1.167,0.315,2.133,0.945,2.898 + c0.63,0.766,1.481,1.148,2.555,1.148c1.052,0,1.875-0.372,2.469-1.117c0.594-0.744,0.891-1.721,0.891-2.93 + c0-1.041-0.32-1.927-0.961-2.656C561.003,436.412,560.203,436.047,559.245,436.047z"/> + <path d="M570.683,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M592.62,450.703v-10.516c0-1.25-0.308-2.234-0.922-2.953c-0.615-0.719-1.479-1.078-2.594-1.078 + c-0.719,0-1.44,0.211-2.164,0.633c-0.724,0.422-1.279,0.914-1.664,1.477v12.438h-2.969v-23.594h2.969v8.703 + c0.396-0.614,1.034-1.127,1.914-1.539c0.88-0.411,1.789-0.617,2.727-0.617c1.771,0,3.159,0.584,4.164,1.75 + c1.005,1.167,1.508,2.761,1.508,4.781v10.516H592.62z"/> + </g> + <path fill="#F6931E" d="M677.847,451.703v-62c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C684.562,466.703,677.847,459.987,677.847,451.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M677.847,451.703v-62 + c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C684.562,466.703,677.847,459.987,677.847,451.703z"/> + <g> + <path d="M741.901,414.016l-11.828-16.734v16.422h-2.969v-22.891h1.25l11.516,15.828v-15.828h2.969v23.203H741.901z"/> + <path d="M747.667,405.797v-2.734h6.688v2.734H747.667z"/> + <path d="M760.104,399.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V399.312z"/> + <path d="M785.823,405.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C786.058,404.469,785.979,405.073,785.823,405.625z M778.62,399.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C781.156,399.594,780.036,399.156,778.62,399.156z"/> + <path d="M798.276,399.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.053,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L798.276,399.828z"/> + <path d="M820.995,413.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.053,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.311-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969v-16.734h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.072,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.947,1.026,1.422,2.467,1.422,4.32v11.188H820.995z"/> + <path d="M829.62,413.703v-14.234h-2.297v-2.5h5.266v16.734H829.62z M831.245,390.641c0.51,0,0.945,0.18,1.305,0.539 + s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.795,0.539-1.305,0.539c-0.5,0-0.93-0.18-1.289-0.539 + s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297C830.302,390.818,830.734,390.641,831.245,390.641z"/> + <path d="M847.604,413.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H847.604z"/> + <path d="M864.245,411.781c-1.188,1.49-3.006,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.209-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.994-0.328,1.945-0.492,2.852-0.492c2.427,0,4.189,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V414c-1.209,0-2.112-0.172-2.711-0.516C864.935,413.141,864.505,412.573,864.245,411.781z + M863.964,405.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.725,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.025,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V405.484z"/> + <path d="M871.839,408.969v-18.859h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.189,0.773,2.023,0.773v2.656 + C873.761,414.016,871.839,412.334,871.839,408.969z"/> + </g> + <g> + <path d="M708.964,428.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.244,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.916-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C705.609,427.422,707.558,427.834,708.964,428.656z"/> + <path d="M712.167,442.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383c2.396,0,4.255,0.764,5.578,2.289 + c1.322,1.526,1.984,3.644,1.984,6.352c0,2.698-0.678,4.826-2.031,6.383c-1.354,1.558-3.198,2.336-5.531,2.336 + c-2.386,0-4.245-0.786-5.578-2.359C712.833,447.084,712.167,444.964,712.167,442.297z M715.292,442.297 + c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.436,0.553-3.242,1.656C715.695,438.839,715.292,440.359,715.292,442.297z"/> + <path d="M740.729,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H740.729z"/> + <path d="M748.979,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M774.698,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C774.933,441.469,774.854,442.073,774.698,442.625z M767.495,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C770.031,436.594,768.911,436.156,767.495,436.156z"/> + <path d="M788.245,450.703l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75h3.281 + l-6.078,8.172l6.656,8.562H788.245z"/> + <path d="M795.151,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M816.651,450.703v-22.891h3.125v20.078h10.344v2.812H816.651z"/> + <path d="M846.714,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C846.948,441.469,846.87,442.073,846.714,442.625z M839.511,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C842.047,436.594,840.927,436.156,839.511,436.156z"/> + <path d="M860.37,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H860.37z"/> + <path d="M866.948,455.281l1.609-2.375c1.729,1.156,3.322,1.734,4.781,1.734c1.344,0,2.403-0.232,3.18-0.695 + c0.775-0.464,1.164-1.039,1.164-1.727c0-1.354-0.979-2.031-2.938-2.031c-0.334,0-0.938,0.084-1.812,0.25 + c-0.875,0.167-1.558,0.25-2.047,0.25c-2.375,0-3.562-0.896-3.562-2.688c0-0.552,0.278-1.052,0.836-1.5 + c0.557-0.447,1.247-0.771,2.07-0.969c-2.354-1.104-3.531-3.021-3.531-5.75c0-1.75,0.609-3.208,1.828-4.375 + c1.219-1.166,2.724-1.75,4.516-1.75c1.646,0,2.932,0.339,3.859,1.016l1.484-1.781l1.938,1.828l-1.781,1.344 + c0.76,0.99,1.141,2.281,1.141,3.875c0,1.688-0.526,3.104-1.578,4.25c-1.053,1.146-2.433,1.803-4.141,1.969l-2.453,0.25 + c-0.292,0.031-0.683,0.144-1.172,0.336c-0.49,0.193-0.734,0.445-0.734,0.758c0,0.428,0.51,0.641,1.531,0.641 + c0.447,0,1.146-0.08,2.094-0.242c0.947-0.161,1.65-0.242,2.109-0.242c1.646,0,2.93,0.394,3.852,1.18 + c0.922,0.787,1.383,1.877,1.383,3.273c0,1.541-0.69,2.786-2.07,3.734c-1.381,0.947-3.128,1.422-5.242,1.422 + c-1.084,0-2.225-0.193-3.422-0.578C868.641,456.302,867.677,455.833,866.948,455.281z M873.245,436.047 + c-1.031,0-1.873,0.365-2.523,1.094c-0.651,0.729-0.977,1.615-0.977,2.656c0,1.167,0.314,2.133,0.945,2.898 + c0.63,0.766,1.481,1.148,2.555,1.148c1.052,0,1.875-0.372,2.469-1.117c0.594-0.744,0.891-1.721,0.891-2.93 + c0-1.041-0.32-1.927-0.961-2.656C875.003,436.412,874.203,436.047,873.245,436.047z"/> + <path d="M884.683,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M906.62,450.703v-10.516c0-1.25-0.308-2.234-0.922-2.953c-0.615-0.719-1.479-1.078-2.594-1.078 + c-0.719,0-1.44,0.211-2.164,0.633c-0.725,0.422-1.279,0.914-1.664,1.477v12.438h-2.969v-23.594h2.969v8.703 + c0.396-0.614,1.033-1.127,1.914-1.539c0.88-0.411,1.789-0.617,2.727-0.617c1.771,0,3.158,0.584,4.164,1.75 + c1.005,1.167,1.508,2.761,1.508,4.781v10.516H906.62z"/> + </g> + <path fill="#F16522" d="M925.847,451.703v-62c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C932.562,466.703,925.847,459.987,925.847,451.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M925.847,451.703v-62 + c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C932.562,466.703,925.847,459.987,925.847,451.703z"/> + <g> + <path d="M990.354,391.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.244,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.916-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C987,390.422,988.948,390.834,990.354,391.656z"/> + <path d="M995.026,405.797v-2.734h6.688v2.734H995.026z"/> + <path d="M1007.464,399.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V399.312z"/> + <path d="M1033.183,405.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C1033.417,404.469,1033.339,405.073,1033.183,405.625z M1025.979,399.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C1028.516,399.594,1027.396,399.156,1025.979,399.156z" + /> + <path d="M1045.636,399.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.053,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L1045.636,399.828z"/> + <path d="M1068.354,413.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.053,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.311-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969v-16.734h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.072,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.947,1.026,1.422,2.467,1.422,4.32v11.188H1068.354z"/> + <path d="M1076.979,413.703v-14.234h-2.297v-2.5h5.266v16.734H1076.979z M1078.604,390.641c0.51,0,0.945,0.18,1.305,0.539 + s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.795,0.539-1.305,0.539c-0.5,0-0.93-0.18-1.289-0.539 + s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297C1077.661,390.818,1078.094,390.641,1078.604,390.641z"/> + <path d="M1094.964,413.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H1094.964z"/> + <path d="M1111.604,411.781c-1.188,1.49-3.006,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.209-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.994-0.328,1.945-0.492,2.852-0.492c2.427,0,4.189,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V414c-1.209,0-2.112-0.172-2.711-0.516C1112.294,413.141,1111.864,412.573,1111.604,411.781z + M1111.323,405.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.725,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.025,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V405.484z"/> + <path d="M1119.198,408.969v-18.859h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.189,0.773,2.023,0.773v2.656 + C1121.12,414.016,1119.198,412.334,1119.198,408.969z"/> + </g> + <g> + <path d="M956.964,428.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.244,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.916-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C953.609,427.422,955.558,427.834,956.964,428.656z"/> + <path d="M960.167,442.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383c2.396,0,4.255,0.764,5.578,2.289 + c1.322,1.526,1.984,3.644,1.984,6.352c0,2.698-0.678,4.826-2.031,6.383c-1.354,1.558-3.198,2.336-5.531,2.336 + c-2.386,0-4.245-0.786-5.578-2.359C960.833,447.084,960.167,444.964,960.167,442.297z M963.292,442.297 + c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.436,0.553-3.242,1.656C963.695,438.839,963.292,440.359,963.292,442.297z"/> + <path d="M988.729,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H988.729z"/> + <path d="M996.979,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M1022.698,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C1022.933,441.469,1022.854,442.073,1022.698,442.625z M1015.495,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C1018.031,436.594,1016.911,436.156,1015.495,436.156z" + /> + <path d="M1036.245,450.703l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75h3.281 + l-6.078,8.172l6.656,8.562H1036.245z"/> + <path d="M1043.151,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M1064.651,450.703v-22.891h3.125v20.078h10.344v2.812H1064.651z"/> + <path d="M1094.714,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C1094.948,441.469,1094.87,442.073,1094.714,442.625z M1087.511,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C1090.047,436.594,1088.927,436.156,1087.511,436.156z" + /> + <path d="M1108.37,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H1108.37z"/> + <path d="M1114.948,455.281l1.609-2.375c1.729,1.156,3.322,1.734,4.781,1.734c1.344,0,2.403-0.232,3.18-0.695 + c0.775-0.464,1.164-1.039,1.164-1.727c0-1.354-0.979-2.031-2.938-2.031c-0.334,0-0.938,0.084-1.812,0.25 + c-0.875,0.167-1.558,0.25-2.047,0.25c-2.375,0-3.562-0.896-3.562-2.688c0-0.552,0.278-1.052,0.836-1.5 + c0.557-0.447,1.247-0.771,2.07-0.969c-2.354-1.104-3.531-3.021-3.531-5.75c0-1.75,0.609-3.208,1.828-4.375 + c1.219-1.166,2.724-1.75,4.516-1.75c1.646,0,2.932,0.339,3.859,1.016l1.484-1.781l1.938,1.828l-1.781,1.344 + c0.76,0.99,1.141,2.281,1.141,3.875c0,1.688-0.526,3.104-1.578,4.25c-1.053,1.146-2.433,1.803-4.141,1.969l-2.453,0.25 + c-0.292,0.031-0.683,0.144-1.172,0.336c-0.49,0.193-0.734,0.445-0.734,0.758c0,0.428,0.51,0.641,1.531,0.641 + c0.447,0,1.146-0.08,2.094-0.242c0.947-0.161,1.65-0.242,2.109-0.242c1.646,0,2.93,0.394,3.852,1.18 + c0.922,0.787,1.383,1.877,1.383,3.273c0,1.541-0.69,2.786-2.07,3.734c-1.381,0.947-3.128,1.422-5.242,1.422 + c-1.084,0-2.225-0.193-3.422-0.578C1116.641,456.302,1115.677,455.833,1114.948,455.281z M1121.245,436.047 + c-1.031,0-1.873,0.365-2.523,1.094c-0.651,0.729-0.977,1.615-0.977,2.656c0,1.167,0.314,2.133,0.945,2.898 + c0.63,0.766,1.481,1.148,2.555,1.148c1.052,0,1.875-0.372,2.469-1.117c0.594-0.744,0.891-1.721,0.891-2.93 + c0-1.041-0.32-1.927-0.961-2.656C1123.003,436.412,1122.203,436.047,1121.245,436.047z"/> + <path d="M1132.683,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M1154.62,450.703v-10.516c0-1.25-0.308-2.234-0.922-2.953c-0.615-0.719-1.479-1.078-2.594-1.078 + c-0.719,0-1.44,0.211-2.164,0.633c-0.725,0.422-1.279,0.914-1.664,1.477v12.438h-2.969v-23.594h2.969v8.703 + c0.396-0.614,1.033-1.127,1.914-1.539c0.88-0.411,1.789-0.617,2.727-0.617c1.771,0,3.158,0.584,4.164,1.75 + c1.005,1.167,1.508,2.761,1.508,4.781v10.516H1154.62z"/> + </g> + <path fill="#9E3091" d="M115.847,594.703v-96c0-8.284,6.716-15,15-15h466c8.284,0,15,6.716,15,15v96c0,8.284-6.716,15-15,15h-466 + C122.562,609.703,115.847,602.987,115.847,594.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M115.847,594.703v-96 + c0-8.284,6.716-15,15-15h466c8.284,0,15,6.716,15,15v96c0,8.284-6.716,15-15,15h-466 + C122.562,609.703,115.847,602.987,115.847,594.703z"/> + <g> + <path fill="#FFFFFF" d="M235.659,520.656l1.141-2.875c0.583,0.428,1.31,0.784,2.18,1.07c0.87,0.287,1.648,0.43,2.336,0.43 + c1.219,0,2.198-0.333,2.938-1c0.739-0.666,1.109-1.516,1.109-2.547c0-0.771-0.206-1.486-0.617-2.148 + c-0.412-0.661-1.445-1.383-3.102-2.164l-1.844-0.859c-1.562-0.729-2.654-1.594-3.273-2.594c-0.62-1-0.93-2.203-0.93-3.609 + c0-1.708,0.604-3.125,1.812-4.25c1.208-1.125,2.76-1.688,4.656-1.688c2.531,0,4.292,0.412,5.281,1.234l-0.922,2.719 + c-0.417-0.302-1.052-0.594-1.906-0.875c-0.854-0.281-1.646-0.422-2.375-0.422c-1.062,0-1.898,0.303-2.508,0.906 + c-0.609,0.604-0.914,1.381-0.914,2.328c0,0.584,0.109,1.115,0.328,1.594c0.219,0.479,0.523,0.881,0.914,1.203 + c0.391,0.323,1.19,0.776,2.398,1.359l1.875,0.891c1.562,0.74,2.659,1.623,3.289,2.648c0.63,1.026,0.945,2.331,0.945,3.914 + c0,1.719-0.69,3.178-2.07,4.375c-1.38,1.198-3.227,1.797-5.539,1.797C238.831,522.094,237.097,521.615,235.659,520.656z"/> + <path fill="#FFFFFF" d="M265.94,513.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C266.175,512.469,266.097,513.073,265.94,513.625z M258.737,507.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C261.273,507.594,260.154,507.156,258.737,507.156z"/> + <path fill="#FFFFFF" d="M280.019,528.266v-7.547c-0.865,0.865-2.312,1.297-4.344,1.297c-2.281,0-4.07-0.763-5.367-2.289 + c-1.297-1.525-1.945-3.643-1.945-6.352c0-2.677,0.742-4.799,2.227-6.367c1.484-1.567,3.393-2.352,5.727-2.352 + c1.458,0,2.817,0.526,4.078,1.578l0.797-1.266h1.797v23.297H280.019z M280.019,508.438c-0.854-0.854-1.922-1.281-3.203-1.281 + c-1.677,0-2.984,0.568-3.922,1.703c-0.938,1.136-1.406,2.641-1.406,4.516c0,1.938,0.469,3.445,1.406,4.523 + s2.203,1.617,3.797,1.617c1.427,0,2.536-0.364,3.328-1.094V508.438z"/> + <path fill="#FFFFFF" d="M289.94,504.969v10.672c0,2.584,1.12,3.875,3.359,3.875c0.979,0,1.875-0.281,2.688-0.844 + s1.349-1.213,1.609-1.953v-11.75h2.969v16.734h-2.969v-2.312c-0.333,0.656-1.003,1.258-2.008,1.805 + c-1.005,0.547-1.987,0.82-2.945,0.82c-1.833,0-3.237-0.525-4.211-1.578c-0.974-1.052-1.461-2.547-1.461-4.484v-10.984H289.94z"/> + <path fill="#FFFFFF" d="M318.706,513.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C318.94,512.469,318.862,513.073,318.706,513.625z M311.503,507.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C314.039,507.594,312.919,507.156,311.503,507.156z"/> + <path fill="#FFFFFF" d="M332.362,521.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H332.362z"/> + <path fill="#FFFFFF" d="M352.175,506.328l-1.469,2.094c-0.302-0.302-0.836-0.588-1.602-0.859 + c-0.766-0.271-1.519-0.406-2.258-0.406c-1.615,0-2.896,0.565-3.844,1.695c-0.948,1.131-1.422,2.68-1.422,4.648 + c0,1.959,0.484,3.451,1.453,4.477c0.969,1.026,2.312,1.539,4.031,1.539c1.333,0,2.677-0.516,4.031-1.547l1.172,2.5 + c-1.594,1.031-3.568,1.547-5.922,1.547c-2.281,0-4.167-0.766-5.656-2.297c-1.49-1.531-2.234-3.604-2.234-6.219 + c0-2.666,0.773-4.807,2.32-6.422c1.547-1.614,3.664-2.422,6.352-2.422c0.864,0,1.802,0.183,2.812,0.547 + C350.951,505.568,351.695,505.943,352.175,506.328z"/> + <path fill="#FFFFFF" d="M369.487,513.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C369.722,512.469,369.644,513.073,369.487,513.625z M362.284,507.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C364.82,507.594,363.701,507.156,362.284,507.156z"/> + <path fill="#FFFFFF" d="M397.331,499.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C393.977,498.422,395.925,498.834,397.331,499.656z"/> + <path fill="#FFFFFF" d="M400.534,513.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C401.201,518.084,400.534,515.964,400.534,513.297z + M403.659,513.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C404.062,509.839,403.659,511.359,403.659,513.297z"/> + <path fill="#FFFFFF" d="M429.097,521.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438H418.8v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H429.097z"/> + <path fill="#FFFFFF" d="M437.347,507.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.237,2.406,0.711,3c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V507.312z"/> + <path fill="#FFFFFF" d="M463.065,513.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C463.3,512.469,463.222,513.073,463.065,513.625z M455.862,507.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C458.398,507.594,457.279,507.156,455.862,507.156z"/> + <path fill="#FFFFFF" d="M476.612,521.703l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75 + h3.281l-6.078,8.172l6.656,8.562H476.612z"/> + <path fill="#FFFFFF" d="M483.519,507.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.237,2.406,0.711,3c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V507.312z"/> + </g> + <g> + <path fill="#FFFFFF" d="M354.503,537.766c-0.604-0.208-1.167-0.312-1.688-0.312c-0.906,0-1.654,0.344-2.242,1.031 + c-0.589,0.688-0.883,1.558-0.883,2.609c0,0.281,0.026,0.573,0.078,0.875h3.406v2.5h-3.406v14.234H346.8v-14.234h-2.438v-2.5h2.438 + c0-2.135,0.526-3.812,1.578-5.031c1.052-1.219,2.442-1.828,4.172-1.828c0.864,0,1.792,0.156,2.781,0.469L354.503,537.766z"/> + <path fill="#FFFFFF" d="M356.19,550.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C356.857,555.084,356.19,552.964,356.19,550.297z + M359.315,550.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C359.719,546.839,359.315,548.359,359.315,550.297z"/> + <path fill="#FFFFFF" d="M383.55,544.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L383.55,544.828z"/> + </g> + <g> + <path fill="#FFFFFF" d="M235.112,573.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C231.758,572.422,233.706,572.834,235.112,573.656z"/> + <path fill="#FFFFFF" d="M239.784,587.797v-2.734h6.688v2.734H239.784z"/> + <path fill="#FFFFFF" d="M252.222,581.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.237,2.406,0.711,3c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V581.312z"/> + <path fill="#FFFFFF" d="M277.94,587.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C278.175,586.469,278.097,587.073,277.94,587.625z M270.737,581.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C273.273,581.594,272.154,581.156,270.737,581.156z"/> + <path fill="#FFFFFF" d="M290.394,581.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L290.394,581.828z"/> + <path fill="#FFFFFF" d="M313.112,595.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.052,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.31-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969v-16.734h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.073,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.948,1.026,1.422,2.467,1.422,4.32v11.188H313.112z"/> + <path fill="#FFFFFF" d="M321.737,595.703v-14.234h-2.297v-2.5h5.266v16.734H321.737z M323.362,572.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C322.419,572.818,322.852,572.641,323.362,572.641z"/> + <path fill="#FFFFFF" d="M339.722,595.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H339.722z"/> + <path fill="#FFFFFF" d="M356.362,593.781c-1.188,1.49-3.005,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.208-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.995-0.328,1.945-0.492,2.852-0.492c2.427,0,4.19,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V596c-1.208,0-2.112-0.172-2.711-0.516C357.052,595.141,356.623,594.573,356.362,593.781z + M356.081,587.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.724,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.026,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V587.484z"/> + <path fill="#FFFFFF" d="M363.956,590.969v-18.859h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.19,0.773,2.023,0.773v2.656 + C365.878,596.016,363.956,594.334,363.956,590.969z"/> + <path fill="#FFFFFF" d="M397.644,573.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C394.289,572.422,396.237,572.834,397.644,573.656z"/> + <path fill="#FFFFFF" d="M402.175,590.969v-18.859h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.19,0.773,2.023,0.773v2.656 + C404.097,596.016,402.175,594.334,402.175,590.969z"/> + <path fill="#FFFFFF" d="M425.472,587.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C425.706,586.469,425.628,587.073,425.472,587.625z M418.269,581.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C420.805,581.594,419.685,581.156,418.269,581.156z"/> + <path fill="#FFFFFF" d="M438.284,593.781c-1.188,1.49-3.005,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.208-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.995-0.328,1.945-0.492,2.852-0.492c2.427,0,4.19,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V596c-1.208,0-2.112-0.172-2.711-0.516C438.974,595.141,438.544,594.573,438.284,593.781z + M438.003,587.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.724,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.026,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V587.484z"/> + <path fill="#FFFFFF" d="M451.675,596.016h-0.781l-7.172-17.094h3.25l4.422,11.719l4.516-11.719h3.109L451.675,596.016z"/> + <path fill="#FFFFFF" d="M470.769,593.781c-1.188,1.49-3.005,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.208-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.995-0.328,1.945-0.492,2.852-0.492c2.427,0,4.19,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V596c-1.208,0-2.112-0.172-2.711-0.516C471.458,595.141,471.029,594.573,470.769,593.781z + M470.487,587.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.724,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.026,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V587.484z"/> + <path fill="#FFFFFF" d="M477.519,600.281l1.609-2.375c1.729,1.156,3.323,1.734,4.781,1.734c1.344,0,2.403-0.232,3.18-0.695 + c0.776-0.464,1.164-1.039,1.164-1.727c0-1.354-0.979-2.031-2.938-2.031c-0.333,0-0.938,0.084-1.812,0.25 + c-0.875,0.167-1.558,0.25-2.047,0.25c-2.375,0-3.562-0.896-3.562-2.688c0-0.552,0.278-1.052,0.836-1.5 + c0.557-0.447,1.247-0.771,2.07-0.969c-2.354-1.104-3.531-3.021-3.531-5.75c0-1.75,0.609-3.208,1.828-4.375 + c1.219-1.166,2.724-1.75,4.516-1.75c1.646,0,2.932,0.339,3.859,1.016l1.484-1.781l1.938,1.828l-1.781,1.344 + c0.76,0.99,1.141,2.281,1.141,3.875c0,1.688-0.526,3.104-1.578,4.25c-1.052,1.146-2.433,1.803-4.141,1.969l-2.453,0.25 + c-0.292,0.031-0.683,0.144-1.172,0.336c-0.49,0.193-0.734,0.445-0.734,0.758c0,0.428,0.51,0.641,1.531,0.641 + c0.448,0,1.146-0.08,2.094-0.242c0.948-0.161,1.651-0.242,2.109-0.242c1.646,0,2.93,0.394,3.852,1.18 + c0.922,0.787,1.383,1.877,1.383,3.273c0,1.541-0.69,2.786-2.07,3.734c-1.38,0.947-3.128,1.422-5.242,1.422 + c-1.083,0-2.224-0.193-3.422-0.578C479.211,601.302,478.248,600.833,477.519,600.281z M483.815,581.047 + c-1.031,0-1.873,0.365-2.523,1.094c-0.651,0.729-0.977,1.615-0.977,2.656c0,1.167,0.315,2.133,0.945,2.898 + c0.63,0.766,1.481,1.148,2.555,1.148c1.052,0,1.875-0.372,2.469-1.117c0.594-0.744,0.891-1.721,0.891-2.93 + c0-1.041-0.32-1.927-0.961-2.656C485.573,581.412,484.773,581.047,483.815,581.047z"/> + <path fill="#FFFFFF" d="M508.284,587.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C508.519,586.469,508.44,587.073,508.284,587.625z M501.081,581.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C503.617,581.594,502.498,581.156,501.081,581.156z"/> + </g> + <path fill="#9E3091" d="M677.847,594.703v-96c0-8.284,6.716-15,15-15h466c8.284,0,15,6.716,15,15v96c0,8.284-6.716,15-15,15h-466 + C684.562,609.703,677.847,602.987,677.847,594.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M677.847,594.703v-96 + c0-8.284,6.716-15,15-15h466c8.284,0,15,6.716,15,15v96c0,8.284-6.716,15-15,15h-466 + C684.562,609.703,677.847,602.987,677.847,594.703z"/> + <g> + <path fill="#FFFFFF" d="M799.464,520.656l1.141-2.875c0.583,0.428,1.31,0.784,2.18,1.07c0.869,0.287,1.648,0.43,2.336,0.43 + c1.219,0,2.197-0.333,2.938-1c0.739-0.666,1.109-1.516,1.109-2.547c0-0.771-0.206-1.486-0.617-2.148 + c-0.412-0.661-1.445-1.383-3.102-2.164l-1.844-0.859c-1.562-0.729-2.654-1.594-3.273-2.594c-0.62-1-0.93-2.203-0.93-3.609 + c0-1.708,0.604-3.125,1.812-4.25c1.208-1.125,2.76-1.688,4.656-1.688c2.531,0,4.291,0.412,5.281,1.234l-0.922,2.719 + c-0.417-0.302-1.053-0.594-1.906-0.875c-0.854-0.281-1.646-0.422-2.375-0.422c-1.062,0-1.898,0.303-2.508,0.906 + c-0.609,0.604-0.914,1.381-0.914,2.328c0,0.584,0.109,1.115,0.328,1.594c0.219,0.479,0.523,0.881,0.914,1.203 + c0.391,0.323,1.189,0.776,2.398,1.359l1.875,0.891c1.562,0.74,2.658,1.623,3.289,2.648c0.63,1.026,0.945,2.331,0.945,3.914 + c0,1.719-0.69,3.178-2.07,4.375c-1.381,1.198-3.227,1.797-5.539,1.797C802.636,522.094,800.901,521.615,799.464,520.656z"/> + <path fill="#FFFFFF" d="M829.745,513.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C829.979,512.469,829.901,513.073,829.745,513.625z M822.542,507.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C825.078,507.594,823.958,507.156,822.542,507.156z"/> + <path fill="#FFFFFF" d="M843.823,528.266v-7.547c-0.865,0.865-2.312,1.297-4.344,1.297c-2.281,0-4.07-0.763-5.367-2.289 + c-1.297-1.525-1.945-3.643-1.945-6.352c0-2.677,0.742-4.799,2.227-6.367c1.484-1.567,3.393-2.352,5.727-2.352 + c1.458,0,2.817,0.526,4.078,1.578l0.797-1.266h1.797v23.297H843.823z M843.823,508.438c-0.854-0.854-1.922-1.281-3.203-1.281 + c-1.678,0-2.984,0.568-3.922,1.703c-0.938,1.136-1.406,2.641-1.406,4.516c0,1.938,0.469,3.445,1.406,4.523 + s2.203,1.617,3.797,1.617c1.427,0,2.536-0.364,3.328-1.094V508.438z"/> + <path fill="#FFFFFF" d="M853.745,504.969v10.672c0,2.584,1.119,3.875,3.359,3.875c0.979,0,1.875-0.281,2.688-0.844 + s1.349-1.213,1.609-1.953v-11.75h2.969v16.734h-2.969v-2.312c-0.334,0.656-1.003,1.258-2.008,1.805 + c-1.006,0.547-1.987,0.82-2.945,0.82c-1.834,0-3.237-0.525-4.211-1.578c-0.975-1.052-1.461-2.547-1.461-4.484v-10.984H853.745z"/> + <path fill="#FFFFFF" d="M882.511,513.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C882.745,512.469,882.667,513.073,882.511,513.625z M875.308,507.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C877.844,507.594,876.724,507.156,875.308,507.156z"/> + <path fill="#FFFFFF" d="M896.167,521.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H896.167z"/> + <path fill="#FFFFFF" d="M915.979,506.328l-1.469,2.094c-0.303-0.302-0.836-0.588-1.602-0.859 + c-0.766-0.271-1.519-0.406-2.258-0.406c-1.615,0-2.896,0.565-3.844,1.695c-0.948,1.131-1.422,2.68-1.422,4.648 + c0,1.959,0.484,3.451,1.453,4.477c0.969,1.026,2.312,1.539,4.031,1.539c1.333,0,2.677-0.516,4.031-1.547l1.172,2.5 + c-1.594,1.031-3.568,1.547-5.922,1.547c-2.281,0-4.167-0.766-5.656-2.297c-1.49-1.531-2.234-3.604-2.234-6.219 + c0-2.666,0.773-4.807,2.32-6.422c1.547-1.614,3.664-2.422,6.352-2.422c0.864,0,1.802,0.183,2.812,0.547 + C914.755,505.568,915.5,505.943,915.979,506.328z"/> + <path fill="#FFFFFF" d="M933.292,513.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C933.526,512.469,933.448,513.073,933.292,513.625z M926.089,507.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C928.625,507.594,927.505,507.156,926.089,507.156z"/> + <path fill="#FFFFFF" d="M958.917,506.328l-1.469,2.094c-0.303-0.302-0.836-0.588-1.602-0.859 + c-0.766-0.271-1.519-0.406-2.258-0.406c-1.615,0-2.896,0.565-3.844,1.695c-0.948,1.131-1.422,2.68-1.422,4.648 + c0,1.959,0.484,3.451,1.453,4.477c0.969,1.026,2.312,1.539,4.031,1.539c1.333,0,2.677-0.516,4.031-1.547l1.172,2.5 + c-1.594,1.031-3.568,1.547-5.922,1.547c-2.281,0-4.167-0.766-5.656-2.297c-1.49-1.531-2.234-3.604-2.234-6.219 + c0-2.666,0.773-4.807,2.32-6.422c1.547-1.614,3.664-2.422,6.352-2.422c0.864,0,1.802,0.183,2.812,0.547 + C957.692,505.568,958.438,505.943,958.917,506.328z"/> + <path fill="#FFFFFF" d="M961.042,513.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.322,1.526,1.984,3.644,1.984,6.352c0,2.698-0.678,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C961.708,518.084,961.042,515.964,961.042,513.297z + M964.167,513.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.436,0.553-3.242,1.656C964.57,509.839,964.167,511.359,964.167,513.297z"/> + <path fill="#FFFFFF" d="M989.604,521.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H989.604z"/> + <path fill="#FFFFFF" d="M997.854,507.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.236,2.406,0.711,3c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V507.312z"/> + <path fill="#FFFFFF" d="M1023.573,513.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C1023.808,512.469,1023.729,513.073,1023.573,513.625z M1016.37,507.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C1018.906,507.594,1017.786,507.156,1016.37,507.156z"/> + <path fill="#FFFFFF" d="M1037.12,521.703l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75 + h3.281l-6.078,8.172l6.656,8.562H1037.12z"/> + <path fill="#FFFFFF" d="M1044.026,507.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.236,2.406,0.711,3c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V507.312z"/> + </g> + <g> + <path fill="#FFFFFF" d="M916.503,537.766c-0.604-0.208-1.167-0.312-1.688-0.312c-0.906,0-1.654,0.344-2.242,1.031 + c-0.589,0.688-0.883,1.558-0.883,2.609c0,0.281,0.025,0.573,0.078,0.875h3.406v2.5h-3.406v14.234H908.8v-14.234h-2.438v-2.5h2.438 + c0-2.135,0.525-3.812,1.578-5.031c1.052-1.219,2.442-1.828,4.172-1.828c0.864,0,1.791,0.156,2.781,0.469L916.503,537.766z"/> + <path fill="#FFFFFF" d="M918.19,550.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.322,1.526,1.984,3.644,1.984,6.352c0,2.698-0.678,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C918.856,555.084,918.19,552.964,918.19,550.297z + M921.315,550.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.436,0.553-3.242,1.656C921.719,546.839,921.315,548.359,921.315,550.297z"/> + <path fill="#FFFFFF" d="M945.55,544.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.053,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L945.55,544.828z"/> + </g> + <g> + <path fill="#FFFFFF" d="M796.659,596.016l-11.828-16.734v16.422h-2.969v-22.891h1.25l11.516,15.828v-15.828h2.969v23.203H796.659z + "/> + <path fill="#FFFFFF" d="M802.425,587.797v-2.734h6.688v2.734H802.425z"/> + <path fill="#FFFFFF" d="M814.862,581.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.236,2.406,0.711,3c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V581.312z"/> + <path fill="#FFFFFF" d="M840.581,587.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C840.815,586.469,840.737,587.073,840.581,587.625z M833.378,581.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C835.914,581.594,834.794,581.156,833.378,581.156z"/> + <path fill="#FFFFFF" d="M853.034,581.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.053,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L853.034,581.828z"/> + <path fill="#FFFFFF" d="M875.753,595.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.053,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.311-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969v-16.734h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.072,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.947,1.026,1.422,2.467,1.422,4.32v11.188H875.753z"/> + <path fill="#FFFFFF" d="M884.378,595.703v-14.234h-2.297v-2.5h5.266v16.734H884.378z M886.003,572.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.795,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C885.06,572.818,885.492,572.641,886.003,572.641z"/> + <path fill="#FFFFFF" d="M902.362,595.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H902.362z"/> + <path fill="#FFFFFF" d="M919.003,593.781c-1.188,1.49-3.006,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.209-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.994-0.328,1.945-0.492,2.852-0.492c2.427,0,4.189,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V596c-1.209,0-2.112-0.172-2.711-0.516C919.692,595.141,919.263,594.573,919.003,593.781z + M918.722,587.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.725,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.025,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V587.484z"/> + <path fill="#FFFFFF" d="M926.597,590.969v-18.859h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.189,0.773,2.023,0.773v2.656 + C928.519,596.016,926.597,594.334,926.597,590.969z"/> + <path fill="#FFFFFF" d="M960.284,573.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.244,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.916-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C956.93,572.422,958.878,572.834,960.284,573.656z"/> + <path fill="#FFFFFF" d="M964.815,590.969v-18.859h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.189,0.773,2.023,0.773v2.656 + C966.737,596.016,964.815,594.334,964.815,590.969z"/> + <path fill="#FFFFFF" d="M988.112,587.625H976.05c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C988.347,586.469,988.269,587.073,988.112,587.625z M980.909,581.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C983.445,581.594,982.325,581.156,980.909,581.156z"/> + <path fill="#FFFFFF" d="M1000.925,593.781c-1.188,1.49-3.006,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.209-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.994-0.328,1.945-0.492,2.852-0.492c2.427,0,4.189,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V596c-1.209,0-2.112-0.172-2.711-0.516C1001.614,595.141,1001.185,594.573,1000.925,593.781z + M1000.644,587.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.725,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.025,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V587.484z"/> + <path fill="#FFFFFF" d="M1014.315,596.016h-0.781l-7.172-17.094h3.25l4.422,11.719l4.516-11.719h3.109L1014.315,596.016z"/> + <path fill="#FFFFFF" d="M1033.409,593.781c-1.188,1.49-3.006,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.209-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.994-0.328,1.945-0.492,2.852-0.492c2.427,0,4.189,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V596c-1.209,0-2.112-0.172-2.711-0.516C1034.099,595.141,1033.669,594.573,1033.409,593.781z + M1033.128,587.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.725,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.025,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V587.484z"/> + <path fill="#FFFFFF" d="M1040.159,600.281l1.609-2.375c1.729,1.156,3.322,1.734,4.781,1.734c1.344,0,2.403-0.232,3.18-0.695 + c0.775-0.464,1.164-1.039,1.164-1.727c0-1.354-0.979-2.031-2.938-2.031c-0.334,0-0.938,0.084-1.812,0.25 + c-0.875,0.167-1.558,0.25-2.047,0.25c-2.375,0-3.562-0.896-3.562-2.688c0-0.552,0.278-1.052,0.836-1.5 + c0.557-0.447,1.247-0.771,2.07-0.969c-2.354-1.104-3.531-3.021-3.531-5.75c0-1.75,0.609-3.208,1.828-4.375 + c1.219-1.166,2.724-1.75,4.516-1.75c1.646,0,2.932,0.339,3.859,1.016l1.484-1.781l1.938,1.828l-1.781,1.344 + c0.76,0.99,1.141,2.281,1.141,3.875c0,1.688-0.526,3.104-1.578,4.25c-1.053,1.146-2.433,1.803-4.141,1.969l-2.453,0.25 + c-0.292,0.031-0.683,0.144-1.172,0.336c-0.49,0.193-0.734,0.445-0.734,0.758c0,0.428,0.51,0.641,1.531,0.641 + c0.447,0,1.146-0.08,2.094-0.242c0.947-0.161,1.65-0.242,2.109-0.242c1.646,0,2.93,0.394,3.852,1.18 + c0.922,0.787,1.383,1.877,1.383,3.273c0,1.541-0.69,2.786-2.07,3.734c-1.381,0.947-3.128,1.422-5.242,1.422 + c-1.084,0-2.225-0.193-3.422-0.578C1041.852,601.302,1040.888,600.833,1040.159,600.281z M1046.456,581.047 + c-1.031,0-1.873,0.365-2.523,1.094c-0.651,0.729-0.977,1.615-0.977,2.656c0,1.167,0.314,2.133,0.945,2.898 + c0.63,0.766,1.481,1.148,2.555,1.148c1.052,0,1.875-0.372,2.469-1.117c0.594-0.744,0.891-1.721,0.891-2.93 + c0-1.041-0.32-1.927-0.961-2.656C1048.214,581.412,1047.414,581.047,1046.456,581.047z"/> + <path fill="#FFFFFF" d="M1070.925,587.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C1071.159,586.469,1071.081,587.073,1070.925,587.625z M1063.722,581.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C1066.258,581.594,1065.138,581.156,1063.722,581.156z" + /> + </g> + <g> + <g opacity="0.1"> + <path d="M816.05,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H816.05z"/> + </g> + </g> + <g> + <g opacity="0.2"> + <path d="M833.862,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H833.862z"/> + </g> + </g> + <g> + <g opacity="0.3"> + <path d="M851.675,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H851.675z"/> + </g> + </g> + <g> + <g opacity="0.4"> + <path d="M869.487,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H869.487z"/> + </g> + </g> + <g> + <g opacity="0.6"> + <path d="M887.3,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H887.3z"/> + </g> + </g> + <g> + <g opacity="0.8"> + <path d="M905.112,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H905.112z"/> + </g> + </g> + <g> + <path fill="#0F0F0F" d="M922.925,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656 + l5.391-8.656h3.141l-7.109,11.078l7.469,11.812H922.925z"/> + </g> + <g> + <path fill="#FFFFFF" d="M940.737,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656 + l5.391-8.656h3.141l-7.109,11.078l7.469,11.812H940.737z"/> + </g> + <g> + <path d="M958.55,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H958.55z"/> + </g> + <g> + <g opacity="0.8"> + <path d="M976.362,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H976.362z"/> + </g> + </g> + <g> + <g opacity="0.6"> + <path d="M994.175,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H994.175z"/> + </g> + </g> + <g> + <g opacity="0.4"> + <path d="M1011.987,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656 + h3.141l-7.109,11.078l7.469,11.812H1011.987z"/> + </g> + </g> + <g> + <g opacity="0.3"> + <path d="M1029.8,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H1029.8z"/> + </g> + </g> + <g> + <g opacity="0.2"> + <path d="M1047.612,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656 + h3.141l-7.109,11.078l7.469,11.812H1047.612z"/> + </g> + </g> + <g> + <g opacity="0.1"> + <path d="M1065.425,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656 + h3.141l-7.109,11.078l7.469,11.812H1065.425z"/> + </g> + </g> + <g> + <g opacity="0.1"> + <path d="M237.05,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H237.05z"/> + </g> + </g> + <g> + <g opacity="0.2"> + <path d="M254.862,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H254.862z"/> + </g> + </g> + <g> + <g opacity="0.3"> + <path d="M272.675,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H272.675z"/> + </g> + </g> + <g> + <g opacity="0.4"> + <path d="M290.487,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H290.487z"/> + </g> + </g> + <g> + <g opacity="0.6"> + <path d="M308.3,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H308.3z"/> + </g> + </g> + <g> + <g opacity="0.8"> + <path d="M326.112,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H326.112z"/> + </g> + </g> + <g> + <path fill="#0F0F0F" d="M343.925,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656 + l5.391-8.656h3.141l-7.109,11.078l7.469,11.812H343.925z"/> + </g> + <g> + <path fill="#FFFFFF" d="M361.737,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656 + l5.391-8.656h3.141l-7.109,11.078l7.469,11.812H361.737z"/> + </g> + <g> + <path d="M379.55,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H379.55z"/> + </g> + <g> + <g opacity="0.8"> + <path d="M397.362,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H397.362z"/> + </g> + </g> + <g> + <g opacity="0.6"> + <path d="M415.175,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H415.175z"/> + </g> + </g> + <g> + <g opacity="0.4"> + <path d="M432.987,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H432.987z"/> + </g> + </g> + <g> + <g opacity="0.3"> + <path d="M450.8,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H450.8z"/> + </g> + </g> + <g> + <g opacity="0.2"> + <path d="M468.612,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H468.612z"/> + </g> + </g> + <g> + <g opacity="0.1"> + <path d="M486.425,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H486.425z"/> + </g> + </g> + <g> + <path fill="#0F0F0F" d="M632.058,550.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C632.724,555.084,632.058,552.964,632.058,550.297z + M635.183,550.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C635.586,546.839,635.183,548.359,635.183,550.297z"/> + <path fill="#0F0F0F" d="M659.417,544.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L659.417,544.828z"/> + </g> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M93.847,230.703 + c-11.046,0-20,8.954-20,20v3c0,11.046,8.954,20,20,20h253l10,32l10-32h19c11.046,0,20-8.954,20-20v-3c0-11.046-8.954-20-20-20 + H93.847z"/> + <g> + <path fill="#0F0F0F" d="M108.8,241.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C105.445,240.422,107.394,240.834,108.8,241.656z"/> + <path fill="#0F0F0F" d="M113.331,258.969v-18.859h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.19,0.773,2.023,0.773v2.656 + C115.253,264.016,113.331,262.334,113.331,258.969z"/> + <path fill="#0F0F0F" d="M136.628,255.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C136.862,254.469,136.784,255.073,136.628,255.625z M129.425,249.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C131.961,249.594,130.841,249.156,129.425,249.156z"/> + <path fill="#0F0F0F" d="M149.44,261.781c-1.188,1.49-3.005,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.208-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.995-0.328,1.945-0.492,2.852-0.492c2.427,0,4.19,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V264c-1.208,0-2.112-0.172-2.711-0.516C150.13,263.141,149.701,262.573,149.44,261.781z + M149.159,255.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.724,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.026,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V255.484z"/> + <path fill="#0F0F0F" d="M162.831,264.016h-0.781l-7.172-17.094h3.25l4.422,11.719l4.516-11.719h3.109L162.831,264.016z"/> + <path fill="#0F0F0F" d="M181.925,261.781c-1.188,1.49-3.005,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.208-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.995-0.328,1.945-0.492,2.852-0.492c2.427,0,4.19,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V264c-1.208,0-2.112-0.172-2.711-0.516C182.615,263.141,182.185,262.573,181.925,261.781z + M181.644,255.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.724,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.026,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V255.484z"/> + <path fill="#0F0F0F" d="M188.675,268.281l1.609-2.375c1.729,1.156,3.323,1.734,4.781,1.734c1.344,0,2.403-0.232,3.18-0.695 + c0.776-0.464,1.164-1.039,1.164-1.727c0-1.354-0.979-2.031-2.938-2.031c-0.333,0-0.938,0.084-1.812,0.25 + c-0.875,0.167-1.558,0.25-2.047,0.25c-2.375,0-3.562-0.896-3.562-2.688c0-0.552,0.278-1.052,0.836-1.5 + c0.557-0.447,1.247-0.771,2.07-0.969c-2.354-1.104-3.531-3.021-3.531-5.75c0-1.75,0.609-3.208,1.828-4.375 + c1.219-1.166,2.724-1.75,4.516-1.75c1.646,0,2.932,0.339,3.859,1.016l1.484-1.781l1.938,1.828l-1.781,1.344 + c0.76,0.99,1.141,2.281,1.141,3.875c0,1.688-0.526,3.104-1.578,4.25c-1.052,1.146-2.433,1.803-4.141,1.969l-2.453,0.25 + c-0.292,0.031-0.683,0.144-1.172,0.336c-0.49,0.193-0.734,0.445-0.734,0.758c0,0.428,0.51,0.641,1.531,0.641 + c0.448,0,1.146-0.08,2.094-0.242c0.948-0.161,1.651-0.242,2.109-0.242c1.646,0,2.93,0.394,3.852,1.18 + c0.922,0.787,1.383,1.877,1.383,3.273c0,1.541-0.69,2.786-2.07,3.734c-1.38,0.947-3.128,1.422-5.242,1.422 + c-1.083,0-2.224-0.193-3.422-0.578C190.367,269.302,189.404,268.833,188.675,268.281z M194.972,249.047 + c-1.031,0-1.873,0.365-2.523,1.094c-0.651,0.729-0.977,1.615-0.977,2.656c0,1.167,0.315,2.133,0.945,2.898 + c0.63,0.766,1.481,1.148,2.555,1.148c1.052,0,1.875-0.372,2.469-1.117c0.594-0.744,0.891-1.721,0.891-2.93 + c0-1.041-0.32-1.927-0.961-2.656C196.729,249.412,195.93,249.047,194.972,249.047z"/> + <path fill="#0F0F0F" d="M219.44,255.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C219.675,254.469,219.597,255.073,219.44,255.625z M212.237,249.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C214.773,249.594,213.654,249.156,212.237,249.156z"/> + <path fill="#0F0F0F" d="M243.915,263.703l-1.578-4.828h-8.516l-1.688,4.828h-3.5l9.297-23.203h0.828l8.625,23.203H243.915z + M238.196,246.5l-3.547,10.078h6.797L238.196,246.5z"/> + <path fill="#0F0F0F" d="M268.931,263.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.052,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.31-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969v-16.734h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.073,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.948,1.026,1.422,2.467,1.422,4.32v11.188H268.931z"/> + <path fill="#0F0F0F" d="M277.556,263.703v-14.234h-2.297v-2.5h5.266v16.734H277.556z M279.181,240.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C278.238,240.818,278.67,240.641,279.181,240.641z"/> + <path fill="#0F0F0F" d="M295.54,263.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H295.54z"/> + <path fill="#0F0F0F" d="M301.634,255.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C302.3,260.084,301.634,257.964,301.634,255.297z + M304.759,255.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C305.162,251.839,304.759,253.359,304.759,255.297z"/> + <path fill="#0F0F0F" d="M341.014,263.703l-1.578-4.828h-8.516l-1.688,4.828h-3.5l9.297-23.203h0.828l8.625,23.203H341.014z + M335.295,246.5l-3.547,10.078h6.797L335.295,246.5z"/> + <path fill="#0F0F0F" d="M359.28,248.328l-1.469,2.094c-0.302-0.302-0.836-0.588-1.602-0.859c-0.766-0.271-1.519-0.406-2.258-0.406 + c-1.615,0-2.896,0.565-3.844,1.695c-0.948,1.131-1.422,2.68-1.422,4.648c0,1.959,0.484,3.451,1.453,4.477 + c0.969,1.026,2.312,1.539,4.031,1.539c1.333,0,2.677-0.516,4.031-1.547l1.172,2.5c-1.594,1.031-3.568,1.547-5.922,1.547 + c-2.281,0-4.167-0.766-5.656-2.297c-1.49-1.531-2.234-3.604-2.234-6.219c0-2.666,0.773-4.807,2.32-6.422 + c1.547-1.614,3.664-2.422,6.352-2.422c0.864,0,1.802,0.183,2.812,0.547C358.056,247.568,358.8,247.943,359.28,248.328z"/> + <path fill="#0F0F0F" d="M363.936,263.703v-14.234h-2.297v-2.5h5.266v16.734H363.936z M365.561,240.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C364.618,240.818,365.05,240.641,365.561,240.641z"/> + <path fill="#0F0F0F" d="M382.233,263.688v-1.234c-1.031,1.031-2.531,1.547-4.5,1.547c-2.094,0-3.792-0.75-5.094-2.25 + c-1.302-1.5-1.953-3.5-1.953-6c0-2.51,0.75-4.653,2.25-6.43c1.5-1.775,3.286-2.664,5.359-2.664c1.729,0,3.042,0.406,3.938,1.219 + v-7.766h2.969v23.578H382.233z M382.233,250.844c-0.75-1.125-1.776-1.688-3.078-1.688c-1.594,0-2.883,0.594-3.867,1.781 + s-1.477,2.698-1.477,4.531c0,4.031,1.833,6.047,5.5,6.047c0.469,0,1.031-0.148,1.688-0.445s1.067-0.611,1.234-0.945V250.844z"/> + </g> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M917.847,230.703 + c-11.046,0-20,8.954-20,20v3c0,11.046,8.954,20,20,20h8l10,33l10-33h264c11.046,0,20-8.954,20-20v-3c0-11.046-8.954-20-20-20 + H917.847z"/> + <g> + <path fill="#0F0F0F" d="M932.8,241.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.244,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.916-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C929.445,240.422,931.394,240.834,932.8,241.656z"/> + <path fill="#0F0F0F" d="M937.331,258.969v-18.859h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.189,0.773,2.023,0.773v2.656 + C939.253,264.016,937.331,262.334,937.331,258.969z"/> + <path fill="#0F0F0F" d="M960.628,255.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C960.862,254.469,960.784,255.073,960.628,255.625z M953.425,249.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C955.961,249.594,954.841,249.156,953.425,249.156z"/> + <path fill="#0F0F0F" d="M973.44,261.781c-1.188,1.49-3.006,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.209-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.994-0.328,1.945-0.492,2.852-0.492c2.427,0,4.189,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V264c-1.209,0-2.112-0.172-2.711-0.516C974.13,263.141,973.7,262.573,973.44,261.781z + M973.159,255.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.725,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.025,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V255.484z"/> + <path fill="#0F0F0F" d="M986.831,264.016h-0.781l-7.172-17.094h3.25l4.422,11.719l4.516-11.719h3.109L986.831,264.016z"/> + <path fill="#0F0F0F" d="M1005.925,261.781c-1.188,1.49-3.006,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.209-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.994-0.328,1.945-0.492,2.852-0.492c2.427,0,4.189,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V264c-1.209,0-2.112-0.172-2.711-0.516C1006.614,263.141,1006.185,262.573,1005.925,261.781z + M1005.644,255.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.725,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.025,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V255.484z"/> + <path fill="#0F0F0F" d="M1012.675,268.281l1.609-2.375c1.729,1.156,3.322,1.734,4.781,1.734c1.344,0,2.403-0.232,3.18-0.695 + c0.775-0.464,1.164-1.039,1.164-1.727c0-1.354-0.979-2.031-2.938-2.031c-0.334,0-0.938,0.084-1.812,0.25 + c-0.875,0.167-1.558,0.25-2.047,0.25c-2.375,0-3.562-0.896-3.562-2.688c0-0.552,0.278-1.052,0.836-1.5 + c0.557-0.447,1.247-0.771,2.07-0.969c-2.354-1.104-3.531-3.021-3.531-5.75c0-1.75,0.609-3.208,1.828-4.375 + c1.219-1.166,2.724-1.75,4.516-1.75c1.646,0,2.932,0.339,3.859,1.016l1.484-1.781l1.938,1.828l-1.781,1.344 + c0.76,0.99,1.141,2.281,1.141,3.875c0,1.688-0.526,3.104-1.578,4.25c-1.053,1.146-2.433,1.803-4.141,1.969l-2.453,0.25 + c-0.292,0.031-0.683,0.144-1.172,0.336c-0.49,0.193-0.734,0.445-0.734,0.758c0,0.428,0.51,0.641,1.531,0.641 + c0.447,0,1.146-0.08,2.094-0.242c0.947-0.161,1.65-0.242,2.109-0.242c1.646,0,2.93,0.394,3.852,1.18 + c0.922,0.787,1.383,1.877,1.383,3.273c0,1.541-0.69,2.786-2.07,3.734c-1.381,0.947-3.128,1.422-5.242,1.422 + c-1.084,0-2.225-0.193-3.422-0.578C1014.367,269.302,1013.403,268.833,1012.675,268.281z M1018.972,249.047 + c-1.031,0-1.873,0.365-2.523,1.094c-0.651,0.729-0.977,1.615-0.977,2.656c0,1.167,0.314,2.133,0.945,2.898 + c0.63,0.766,1.481,1.148,2.555,1.148c1.052,0,1.875-0.372,2.469-1.117c0.594-0.744,0.891-1.721,0.891-2.93 + c0-1.041-0.32-1.927-0.961-2.656C1020.729,249.412,1019.93,249.047,1018.972,249.047z"/> + <path fill="#0F0F0F" d="M1043.44,255.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C1043.675,254.469,1043.597,255.073,1043.44,255.625z M1036.237,249.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C1038.773,249.594,1037.653,249.156,1036.237,249.156z" + /> + <path fill="#0F0F0F" d="M1067.915,263.703l-1.578-4.828h-8.516l-1.688,4.828h-3.5l9.297-23.203h0.828l8.625,23.203H1067.915z + M1062.196,246.5l-3.547,10.078h6.797L1062.196,246.5z"/> + <path fill="#0F0F0F" d="M1092.931,263.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.053,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.311-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969v-16.734h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.072,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.947,1.026,1.422,2.467,1.422,4.32v11.188H1092.931z"/> + <path fill="#0F0F0F" d="M1101.556,263.703v-14.234h-2.297v-2.5h5.266v16.734H1101.556z M1103.181,240.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.795,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C1102.237,240.818,1102.67,240.641,1103.181,240.641z"/> + <path fill="#0F0F0F" d="M1119.54,263.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H1119.54z"/> + <path fill="#0F0F0F" d="M1125.634,255.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.322,1.526,1.984,3.644,1.984,6.352c0,2.698-0.678,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C1126.3,260.084,1125.634,257.964,1125.634,255.297z + M1128.759,255.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.436,0.553-3.242,1.656C1129.162,251.839,1128.759,253.359,1128.759,255.297z"/> + <path fill="#0F0F0F" d="M1165.015,263.703l-1.578-4.828h-8.516l-1.688,4.828h-3.5l9.297-23.203h0.828l8.625,23.203H1165.015z + M1159.296,246.5l-3.547,10.078h6.797L1159.296,246.5z"/> + <path fill="#0F0F0F" d="M1183.28,248.328l-1.469,2.094c-0.303-0.302-0.836-0.588-1.602-0.859c-0.766-0.271-1.52-0.406-2.258-0.406 + c-1.615,0-2.896,0.565-3.844,1.695c-0.949,1.131-1.422,2.68-1.422,4.648c0,1.959,0.484,3.451,1.453,4.477 + c0.969,1.026,2.312,1.539,4.031,1.539c1.332,0,2.676-0.516,4.031-1.547l1.172,2.5c-1.594,1.031-3.568,1.547-5.922,1.547 + c-2.281,0-4.168-0.766-5.656-2.297c-1.49-1.531-2.234-3.604-2.234-6.219c0-2.666,0.773-4.807,2.32-6.422 + c1.547-1.614,3.664-2.422,6.352-2.422c0.863,0,1.801,0.183,2.812,0.547C1182.056,247.568,1182.8,247.943,1183.28,248.328z"/> + <path fill="#0F0F0F" d="M1187.937,263.703v-14.234h-2.297v-2.5h5.266v16.734H1187.937z M1189.562,240.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.795,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.176-0.942,0.531-1.297 + C1188.618,240.818,1189.05,240.641,1189.562,240.641z"/> + <path fill="#0F0F0F" d="M1206.233,263.688v-1.234c-1.031,1.031-2.531,1.547-4.5,1.547c-2.094,0-3.793-0.75-5.094-2.25 + c-1.303-1.5-1.953-3.5-1.953-6c0-2.51,0.75-4.653,2.25-6.43c1.5-1.775,3.285-2.664,5.359-2.664c1.729,0,3.041,0.406,3.938,1.219 + v-7.766h2.969v23.578H1206.233z M1206.233,250.844c-0.75-1.125-1.777-1.688-3.078-1.688c-1.594,0-2.883,0.594-3.867,1.781 + s-1.477,2.698-1.477,4.531c0,4.031,1.832,6.047,5.5,6.047c0.469,0,1.031-0.148,1.688-0.445s1.066-0.611,1.234-0.945V250.844z"/> + </g> +</g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ExtractMiscleavageSiteSequenceContext.xml Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,211 @@ +<!-- +# ===================================================== +# $Id: ExtractMiscleavageSiteSequenceContext.xml 90 2011-01-19 13:20:31Z pieter.neerincx@gmail.com $ +# $URL: https://trac.nbic.nl/svn/galaxytools/trunk/tools/general/FastaTools/ExtractMiscleavageSiteSequenceContext.xml $ +# $LastChangedDate: 2011-01-19 07:20:31 -0600 (Wed, 19 Jan 2011) $ +# $LastChangedRevision: 90 $ +# $LastChangedBy: pieter.neerincx@gmail.com $ +# ===================================================== +--> +<tool id="ExtractPeptideSequenceContext3" version="2.1" name="Extract Miscleavage Site Context"> + <description>by mapping peptides back to proteins and fetching the regions surrounding missed cleavage sites.</description> + <command interpreter="perl">ExtractPeptideSequenceContext.pl --db $db --dbf FASTA --f $fragments --icol $icol --pcol $pcol $strip --miso $miso --ca $ca --ct $ct --n $n --c $c --pc '$pc' --ll WARN</command> + <inputs> + <param name="fragments" type="data" format="tabular" label="Peptide sequences and their protein's identifiers" + help="(in tab delimited format)"/> + <param name="icol" type="data_column" value="1" data_ref="fragments" label="Protein identifier column"/> + <param name="pcol" type="data_column" value="2" data_ref="fragments" label="Peptide sequence column"/> + <!-- + <param name="icol" type="integer" value="1" label="Protein identifier column"/> + <param name="pcol" type="integer" value="2" label="Peptide sequence column"/> + --> + <param name="strip" type="select"> + <label>Lowercase characters in the peptide sequences represent</label> + <option value="--s">Modifications</option> + <option value="">Amino acids</option> + </param> + <param name="db" type="data" format="fasta" label="Protein sequences" + help="(in FASTA format)"/> + <param name="n" type="integer" value="5" label="N-terminal sequence context length"/> + <param name="c" type="integer" value="5" label="C-terminal sequence context length"/> + <param name="pc" type="select" help="to fill positions in the sequence context when the protein was too short for a full length context."> + <label>Padding character</label> + <option value="-">dash</option> + <option value=" ">space</option> + <option value="">none</option> + </param> + <param name="ca" type="select"> + <label>Protease should recognize amino acid</label> + <option value="A">A</option> + <!--<option value="B">B</option>--> + <option value="C">C</option> + <option value="D">D</option> + <option value="E">E</option> + <option value="F">F</option> + <option value="G">G</option> + <option value="H">H</option> + <option value="I">I</option> + <!--<option value="J">J</option>--> + <option value="K">K</option> + <option value="L">L</option> + <option value="M">M</option> + <option value="N">N</option> + <!--<option value="O">O</option>--> + <option value="P">P</option> + <option value="Q">Q</option> + <option value="R">R</option> + <option value="S">S</option> + <option value="T">T</option> + <!--<option value="U">U</option>--> + <option value="V">V</option> + <option value="W">W</option> + <!--<option value="*">X</option>--> + <option value="Y">Y</option> + <!--<option value="Z">Z</option>--> + </param> + <param name="ct" type="select"> + <label>Protease should have cleaved</label> + <option value="C">C-terminal of the recognized amino acid</option> + <option value="N">N-terminal of the recognized amino acid</option> + </param> + </inputs> + <outputs> + <data name="miso" format="tabular" label="Miscleavage site sequence contexts for ${fragments.name}"/> + </outputs> +<!-- + <tests> + <test> + <param name="input" value="*.fasta"/> + <param name="identifiers" value="*.txt"/> + <output name="output" file="*.fasta"/> + </test> + </tests> +--> + <help> + +.. role:: raw-html(raw) + :format: html + +.. class:: infomark + +**What it does** + +Map peptide sequences back to proteins and extract sequence contexts for miscleavage sites. + +:raw-html:`<object data="static/images/nbic_gmr/ExtractMiscleavageSiteSequenceContext.svg" type="image/svg+xml" width="100%"/>` + +=================================================== +*Peptide sequences and their protein's identifiers* +=================================================== + +This file must contain at least peptides and accession numbers or IDs of the proteins the peptides were derived from. \ +The data must be in TAB delimited format and may contain other columns, which will be preserved in the output. \ +If a sequence context was found, it will be appended in a new column to the right of the existing columns. \ +When another sequence context was found for the same peptide, it will appended as an extra row in the output. +Protein accession numbers / IDs must be in the same format as was used in the FASTA file with protein sequences (database). \ +The only exception to this rule is that accession numbers / IDs may be optionally suffixed with the peptide\'s position in its protein between brackets. \ +For example: CLH1_HUMAN[1612-1620] will be matched to CLH1_HUMAN in a FASTA file with protein sequences. \ +Amino acids in the petide sequences must be in uppercase. + +=============================================== +*Protein sequences* +=============================================== + +Input file containing all protein sequences in FASTA format. \ +This tool will look for any type of protein ID in the first part of FASTA sequence headers up until the first white space. \ +Optionally multiple IDs may be present separated with pipe symbols (|) or semicolons (;). \ +Optionally IDs may be prefixed with a database namespace and a colon (:). \ +For example the accession number P32234 as well as the ID 128UP_DROME would be recognized in both this sequence header: + + >UniProtAcc:P32234|UniProtID:128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +and in this one: + + >P32234|128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +=================================================== +*N-terminal and C-terminal sequence context length* +=================================================== + +Integers specifying the length of the N-terminal and C-terminal sequence context to retrieve starting from the modification site. \ +Note that the width of a miscleavage site is 0 amino acids. \ +When defaults are used for both the N-terminal and C-terminal sequence context lengths, \ +the total sequence context length for a miscleavage site will be: +(N-terminal sequence context) + (C-terminal sequence context) = 5 + 5 = 10. + +=============================================== +*Cleavage amino acid and terminus* +=============================================== + +This tool assumes the peptides were derived from cutting with a proteolytic enzyme, \ +that should have cut on the *cleavage terminal* side of all *cleavage amino acids*. \ + +=============================================== +*Padding character* +=============================================== + +Optional padding character to fill N-terminal or C-terminal positions in the sequence context, \ +when the protein was too short to get a complete sequence context. \ +Defaults to - a.k.a. dash or alignment gap character. \ + +----- + +**Getting input data** + +.. _my folder utility: http://mascotinternal.chem.uu.nl/mascot/cgi/uu_myfolder.pl + +This tool requires \ +peptide sequences in TAB delimited format and \ +protein sequences from which the peptides were derived in FASTA format. \ +If your peptide sequences are not in TAB delimited format, you can convert from: + + - FASTA format using *FASTA manipulation* -> *FASTA-to-Tabular* + - A format using a different delimiter using *Text Manipulation* -> *Convert* + +When your peptides were derived from a mass spectrometry experiment and identified with a search engine like Mascot, Sequest, etc.,\ +please make sure you provide the same FASTA database for this tool as the one used for your search. +If you used Mascot hosted by the Biomolecular Mass Spectrometry and Proteomics Group @ Utrecht University, \ +you can use the `my folder utility`_ to download the FASTA databases from the Mascot server. + +----- + +**Examples** + +Example input for peptides identified with a Mascot search, \ +some with phosphorylated residues indicated by pS, pT or pY \ +and in TAB delimited format:: + + sequence score peptide mr mass delta (abs) mass delta (ppm) all protein matches + AGNAARDN 54.24 787.357254 -4.223E-5 -0.05334300253998803 H2A1B_HUMAN[67-74]; H2A1C_HUMAN[67-74]; H2A1D_HUMAN[67-74] + KLpSAAVVLI 11.48 912.600784 0.001608 1.7619971713721432 OSGI2_HUMAN[405-413] + RAGIKVpTVA 23.01 913.570892 6.283E-5 0.06786555979719196 PARK7_HUMAN[28-36] + KGGVVGIKVD 44.61 970.581146 -0.001214 -1.2507970147608864 ALDOA_HUMAN[101-110] + KIKELQAF 11.87 975.575287 0.003907 4.004816493470687 MMP20_HUMAN[71-78] + KIpSGpTVNIR 57.17 986.587265 -0.002761 -2.798536022051734 SYTC_HUMAN[681-689] + KLpYEALKF 17.54 1010.580032 0.004782 4.731935966057164 F105A_HUMAN[238-245] + KLDApSEpSLR 31.31 1017.545441 -0.002377 -2.3360136110127785 CLH1_HUMAN[1612-1620] + +=============================================== +*Appending miscleavage site sequence contexts* +=============================================== + +With these options: + + - K as the *amino acid* the protease should have recognized + - N-terminal as the side of the recognized amino where the protease should have cleaved. + - c6 as *Protein identifier column* + - c1 as *Peptide sequence column* + - a suitable FASTA database with *Protein sequences* + - and everything else set to defaults + +the example above will generate a result like this:: + + RAGIKVpTVA 23.01 913.570892 6.283E-5 0.06786555979719196 PARK7_HUMAN[28-36] RRAGIKVTVA + KGGVVGIKVD 44.61 970.581146 -0.001214 -1.2507970147608864 ALDOA_HUMAN[101-110] GVVGIKVDKG + KIKELQAF 11.87 975.575287 0.003907 4.004816493470687 MMP20_HUMAN[71-78] MIRKIKELQA + KLpYEALKF 17.54 1010.580032 0.004782 4.731935966057164 F105A_HUMAN[238-245] LYEALKFIML + +Note the header line was ignored and if peptides have more than one miscleavage site they will occur more than once in the output. + + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ExtractModificationSiteSequenceContext.svg Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,887 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="1316.693px" height="639.553px" viewBox="0 0 1316.693 639.553" enable-background="new 0 0 1316.693 639.553" + xml:space="preserve"> +<g> + <g> + <path d="M269.137,65.728h-6.152l-3.711-19.287l-7.202,19.751h-2.271l-7.202-19.751l-3.857,19.287h-6.128l7.202-35.791h3.369 + l7.739,24.097l7.568-24.097h3.345L269.137,65.728z"/> + <path d="M270.968,52.568c0-3.987,1.151-7.234,3.455-9.741c2.303-2.506,5.342-3.76,9.119-3.76c3.971,0,7.056,1.205,9.253,3.613 + c2.197,2.409,3.296,5.705,3.296,9.888c0,4.167-1.119,7.479-3.357,9.937c-2.238,2.458-5.302,3.687-9.192,3.687 + c-3.972,0-7.06-1.241-9.265-3.723C272.071,59.986,270.968,56.687,270.968,52.568z M277.316,52.568 + c0,5.762,2.075,8.643,6.226,8.643c1.904,0,3.414-0.748,4.529-2.246c1.115-1.497,1.672-3.629,1.672-6.396 + c0-5.68-2.067-8.521-6.201-8.521c-1.904,0-3.418,0.749-4.541,2.246C277.877,47.792,277.316,49.883,277.316,52.568z"/> + <path d="M317.794,65.703v-1.587c-0.505,0.554-1.359,1.038-2.563,1.452c-1.205,0.416-2.45,0.623-3.735,0.623 + c-3.646,0-6.515-1.155-8.606-3.467c-2.092-2.311-3.137-5.533-3.137-9.668c0-4.134,1.2-7.499,3.601-10.096 + c2.4-2.596,5.408-3.894,9.021-3.894c1.985,0,3.792,0.407,5.42,1.221V29.814l6.104-1.465v37.354H317.794z M317.794,45.806 + c-1.302-1.041-2.661-1.562-4.077-1.562c-2.441,0-4.321,0.745-5.64,2.233c-1.318,1.49-1.978,3.626-1.978,6.409 + c0,5.437,2.62,8.154,7.861,8.154c0.586,0,1.306-0.175,2.161-0.524c0.854-0.351,1.412-0.704,1.672-1.062V45.806z"/> + <path d="M331.637,65.703V44.561h-3.345v-5.005h9.521v26.147H331.637z M334.787,29.424c0.977,0,1.811,0.346,2.502,1.037 + c0.691,0.692,1.038,1.526,1.038,2.503s-0.346,1.811-1.038,2.503c-0.692,0.691-1.526,1.037-2.502,1.037s-1.811-0.346-2.502-1.037 + c-0.692-0.692-1.038-1.526-1.038-2.503s0.346-1.811,1.038-2.503C332.976,29.77,333.81,29.424,334.787,29.424z"/> + <path d="M359.494,34.429c-1.335-0.439-2.36-0.659-3.076-0.659c-1.156,0-2.136,0.497-2.942,1.489 + c-0.806,0.993-1.208,2.214-1.208,3.662c0,0.212,0.008,0.424,0.024,0.635h5.42v5.029h-5.322v21.118h-6.104V44.585h-3.809v-5.029 + h3.833c0.13-3.206,1.078-5.794,2.844-7.764c1.766-1.969,4.048-2.954,6.848-2.954c1.448,0,3.214,0.317,5.298,0.952L359.494,34.429z + "/> + <path d="M365.036,65.703V44.561h-3.345v-5.005h9.521v26.147H365.036z M368.185,29.424c0.977,0,1.811,0.346,2.502,1.037 + c0.691,0.692,1.038,1.526,1.038,2.503s-0.346,1.811-1.038,2.503c-0.692,0.691-1.526,1.037-2.502,1.037s-1.811-0.346-2.502-1.037 + c-0.692-0.692-1.038-1.526-1.038-2.503s0.346-1.811,1.038-2.503C366.374,29.77,367.208,29.424,368.185,29.424z"/> + <path d="M398.825,41.631l-2.612,4.565c-1.433-1.351-3.353-2.026-5.762-2.026c-2.312,0-4.138,0.77-5.481,2.307 + c-1.343,1.539-2.014,3.667-2.014,6.385c0,5.485,2.612,8.228,7.837,8.228c2.262,0,4.256-0.748,5.981-2.246l2.246,4.81 + c-1.774,1.107-3.325,1.807-4.651,2.1c-1.327,0.293-2.893,0.439-4.7,0.439c-4.037,0-7.223-1.176-9.558-3.527 + c-2.336-2.353-3.503-5.619-3.503-9.803c0-4.117,1.277-7.446,3.833-9.985c2.555-2.539,6.038-3.809,10.449-3.809 + C393.934,39.067,396.579,39.922,398.825,41.631z"/> + <path d="M418.454,63.091c-0.554,0.912-1.518,1.656-2.893,2.233c-1.375,0.578-2.812,0.867-4.309,0.867 + c-2.816,0-5.029-0.704-6.641-2.111c-1.611-1.408-2.417-3.406-2.417-5.994c0-3.027,1.135-5.396,3.406-7.104s5.497-2.563,9.68-2.563 + c0.716,0,1.562,0.122,2.539,0.366c0-3.076-1.945-4.614-5.835-4.614c-2.295,0-4.216,0.383-5.762,1.147l-1.318-4.736 + c2.1-1.009,4.598-1.514,7.495-1.514c3.987,0,6.909,0.907,8.765,2.722c1.855,1.815,2.783,5.254,2.783,10.315v5.591 + c0,3.483,0.7,5.673,2.1,6.567c-0.505,0.879-1.066,1.42-1.685,1.624c-0.619,0.203-1.327,0.305-2.124,0.305 + c-0.879,0-1.668-0.326-2.368-0.977C419.169,64.564,418.698,63.856,418.454,63.091z M417.868,53.398 + c-1.042-0.211-1.823-0.317-2.344-0.317c-4.818,0-7.227,1.579-7.227,4.736c0,2.344,1.359,3.516,4.077,3.516 + c3.662,0,5.493-1.831,5.493-5.493V53.398z"/> + <path d="M431.466,44.463h-3.027v-4.907h3.027v-5.322l6.104-2.246v7.568h7.178v4.907h-7.178v11.45c0,1.872,0.293,3.194,0.879,3.968 + c0.586,0.772,1.611,1.159,3.076,1.159s2.832-0.398,4.102-1.196v5.615c-1.416,0.488-3.435,0.732-6.055,0.732 + c-2.604,0-4.606-0.736-6.006-2.209c-1.4-1.474-2.1-3.568-2.1-6.287V44.463z"/> + <path d="M451.999,65.703V44.561h-3.345v-5.005h9.521v26.147H451.999z M455.148,29.424c0.977,0,1.811,0.346,2.502,1.037 + c0.691,0.692,1.038,1.526,1.038,2.503s-0.346,1.811-1.038,2.503c-0.692,0.691-1.526,1.037-2.502,1.037s-1.811-0.346-2.502-1.037 + c-0.692-0.692-1.038-1.526-1.038-2.503s0.346-1.811,1.038-2.503C453.337,29.77,454.171,29.424,455.148,29.424z"/> + <path d="M463.571,52.568c0-3.987,1.151-7.234,3.455-9.741c2.303-2.506,5.342-3.76,9.119-3.76c3.971,0,7.056,1.205,9.253,3.613 + c2.197,2.409,3.296,5.705,3.296,9.888c0,4.167-1.119,7.479-3.357,9.937c-2.238,2.458-5.302,3.687-9.192,3.687 + c-3.972,0-7.06-1.241-9.265-3.723C464.673,59.986,463.571,56.687,463.571,52.568z M469.918,52.568 + c0,5.762,2.075,8.643,6.226,8.643c1.904,0,3.414-0.748,4.529-2.246c1.115-1.497,1.672-3.629,1.672-6.396 + c0-5.68-2.067-8.521-6.201-8.521c-1.904,0-3.418,0.749-4.541,2.246C470.48,47.792,469.918,49.883,469.918,52.568z"/> + <path d="M510.397,65.703V50.591c0-2.229-0.427-3.857-1.282-4.883s-2.25-1.538-4.187-1.538c-0.896,0-1.852,0.253-2.869,0.757 + c-1.018,0.505-1.811,1.132-2.38,1.88v18.896h-6.104V39.556h4.395l1.123,2.441c1.66-1.953,4.109-2.93,7.349-2.93 + c3.108,0,5.562,0.932,7.361,2.796c1.798,1.863,2.698,4.464,2.698,7.8v16.04H510.397z"/> + <path d="M536.813,63.726l2.344-5.688c2.506,1.758,4.972,2.637,7.397,2.637c3.727,0,5.591-1.302,5.591-3.906 + c0-1.221-0.439-2.384-1.318-3.491c-0.879-1.106-2.69-2.348-5.432-3.724c-2.743-1.375-4.59-2.506-5.542-3.393 + c-0.952-0.888-1.685-1.941-2.197-3.162s-0.769-2.571-0.769-4.053c0-2.767,1.013-5.062,3.04-6.885 + c2.026-1.822,4.626-2.734,7.8-2.734c4.134,0,7.169,0.773,9.106,2.319l-1.929,5.469c-2.23-1.595-4.582-2.393-7.056-2.393 + c-1.465,0-2.6,0.387-3.406,1.159c-0.806,0.773-1.208,1.779-1.208,3.016c0,2.051,2.271,4.184,6.812,6.396 + c2.393,1.172,4.118,2.25,5.176,3.234c1.058,0.985,1.863,2.133,2.417,3.443c0.553,1.31,0.83,2.771,0.83,4.382 + c0,2.897-1.144,5.282-3.43,7.153c-2.287,1.872-5.351,2.808-9.192,2.808C542.509,66.313,539.499,65.451,536.813,63.726z"/> + <path d="M565.353,65.703V44.561h-3.345v-5.005h9.521v26.147H565.353z M568.502,29.424c0.977,0,1.811,0.346,2.502,1.037 + c0.691,0.692,1.038,1.526,1.038,2.503s-0.346,1.811-1.038,2.503c-0.692,0.691-1.526,1.037-2.502,1.037s-1.811-0.346-2.502-1.037 + c-0.692-0.692-1.038-1.526-1.038-2.503s0.346-1.811,1.038-2.503C566.691,29.77,567.526,29.424,568.502,29.424z"/> + <path d="M579.562,44.463h-3.027v-4.907h3.027v-5.322l6.104-2.246v7.568h7.178v4.907h-7.178v11.45c0,1.872,0.293,3.194,0.879,3.968 + c0.586,0.772,1.611,1.159,3.076,1.159s2.832-0.398,4.102-1.196v5.615c-1.416,0.488-3.435,0.732-6.055,0.732 + c-2.604,0-4.606-0.736-6.006-2.209c-1.4-1.474-2.1-3.568-2.1-6.287V44.463z"/> + <path d="M621.798,54.497h-18.677c0.114,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.899-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.141-1.168-9.46-3.504 + c-2.319-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C622.311,51.853,622.14,52.983,621.798,54.497z + M603.341,49.907h12.842c-0.423-3.824-2.539-5.737-6.348-5.737C606.352,44.17,604.188,46.083,603.341,49.907z"/> + <path d="M640.915,63.726l2.344-5.688c2.506,1.758,4.972,2.637,7.397,2.637c3.727,0,5.591-1.302,5.591-3.906 + c0-1.221-0.439-2.384-1.318-3.491c-0.879-1.106-2.69-2.348-5.432-3.724c-2.743-1.375-4.59-2.506-5.542-3.393 + c-0.952-0.888-1.685-1.941-2.197-3.162s-0.769-2.571-0.769-4.053c0-2.767,1.013-5.062,3.04-6.885 + c2.026-1.822,4.626-2.734,7.8-2.734c4.134,0,7.169,0.773,9.107,2.319l-1.929,5.469c-2.23-1.595-4.582-2.393-7.056-2.393 + c-1.465,0-2.6,0.387-3.406,1.159c-0.806,0.773-1.208,1.779-1.208,3.016c0,2.051,2.271,4.184,6.812,6.396 + c2.393,1.172,4.118,2.25,5.176,3.234c1.057,0.985,1.864,2.133,2.417,3.443c0.554,1.31,0.83,2.771,0.83,4.382 + c0,2.897-1.143,5.282-3.43,7.153c-2.287,1.872-5.351,2.808-9.192,2.808C646.611,66.313,643.6,65.451,640.915,63.726z"/> + <path d="M691.159,54.497h-18.678c0.114,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.093,1.733,5.322,1.733 + c2.783,0,4.899-0.724,6.348-2.173l2.369,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.142-1.168-9.461-3.504 + c-2.319-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.82-10.01c2.547-2.555,5.604-3.833,9.168-3.833 + c3.791,0,6.836,1.132,9.131,3.394c2.295,2.263,3.441,5.144,3.441,8.643C691.671,51.853,691.501,52.983,691.159,54.497z + M672.702,49.907h12.842c-0.424-3.824-2.539-5.737-6.348-5.737C675.712,44.17,673.548,46.083,672.702,49.907z"/> + <path d="M713.546,75.957V64.971c-1.465,0.813-3.482,1.221-6.055,1.221c-3.809,0-6.787-1.16-8.936-3.479 + c-2.148-2.32-3.223-5.595-3.223-9.827c0-4.215,1.234-7.572,3.699-10.071c2.467-2.498,5.619-3.747,9.461-3.747 + c2.277,0,4.346,0.684,6.201,2.051l1-1.562h3.955v36.401H713.546z M713.546,45.757c-1.09-1.009-2.514-1.514-4.271-1.514 + c-2.377,0-4.236,0.785-5.578,2.356c-1.344,1.57-2.016,3.666-2.016,6.286c0,5.437,2.467,8.154,7.398,8.154 + c1.807,0,3.295-0.423,4.467-1.27V45.757z"/> + <path d="M742.6,65.728V63.53c-0.863,0.732-2.051,1.359-3.564,1.88s-2.905,0.781-4.175,0.781c-6.071,0-9.106-3.223-9.106-9.668 + V39.556h6.104V56.06c0,3.354,1.505,5.029,4.517,5.029c1.383,0,2.669-0.357,3.857-1.074c1.188-0.716,1.978-1.546,2.368-2.49V39.556 + h6.104v26.172H742.6z"/> + <path d="M778.635,54.497h-18.677c0.113,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.898-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.142-1.168-9.46-3.504 + c-2.32-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C779.147,51.853,778.977,52.983,778.635,54.497z + M760.178,49.907h12.842c-0.424-3.824-2.539-5.737-6.348-5.737C763.188,44.17,761.023,46.083,760.178,49.907z"/> + <path d="M800.851,65.703V50.591c0-2.229-0.428-3.857-1.281-4.883c-0.855-1.025-2.251-1.538-4.188-1.538 + c-0.896,0-1.852,0.253-2.869,0.757c-1.017,0.505-1.811,1.132-2.38,1.88v18.896h-6.104V39.556h4.395l1.123,2.441 + c1.66-1.953,4.109-2.93,7.349-2.93c3.108,0,5.562,0.932,7.361,2.796c1.798,1.863,2.697,4.464,2.697,7.8v16.04H800.851z"/> + <path d="M834.055,41.631l-2.612,4.565c-1.433-1.351-3.354-2.026-5.762-2.026c-2.312,0-4.139,0.77-5.48,2.307 + c-1.344,1.539-2.015,3.667-2.015,6.385c0,5.485,2.612,8.228,7.837,8.228c2.262,0,4.256-0.748,5.981-2.246l2.246,4.81 + c-1.774,1.107-3.324,1.807-4.651,2.1c-1.326,0.293-2.893,0.439-4.699,0.439c-4.037,0-7.223-1.176-9.559-3.527 + c-2.335-2.353-3.503-5.619-3.503-9.803c0-4.117,1.277-7.446,3.833-9.985c2.555-2.539,6.038-3.809,10.449-3.809 + C829.163,39.067,831.809,39.922,834.055,41.631z"/> + <path d="M862.473,54.497h-18.677c0.113,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.898-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.142-1.168-9.46-3.504 + c-2.32-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C862.985,51.853,862.814,52.983,862.473,54.497z + M844.016,49.907h12.842c-0.424-3.824-2.539-5.737-6.348-5.737C847.026,44.17,844.861,46.083,844.016,49.907z"/> + <path d="M907.81,31.841l-2.612,5.249c-1.416-1.416-3.695-2.124-6.836-2.124c-2.979,0-5.42,1.249-7.324,3.747 + c-1.904,2.499-2.856,5.661-2.856,9.485c0,3.825,0.883,6.86,2.648,9.106c1.767,2.246,4.122,3.369,7.068,3.369 + c3.369,0,6.006-1.204,7.91-3.613l2.954,5.127c-2.588,2.751-6.381,4.126-11.377,4.126c-4.997,0-8.879-1.644-11.646-4.932 + c-2.768-3.287-4.15-7.771-4.15-13.452c0-5.289,1.534-9.713,4.602-13.27c3.068-3.556,6.995-5.334,11.78-5.334 + C902.072,29.326,905.352,30.165,907.81,31.841z"/> + <path d="M911.812,52.568c0-3.987,1.151-7.234,3.454-9.741c2.304-2.506,5.343-3.76,9.119-3.76c3.971,0,7.056,1.205,9.253,3.613 + c2.197,2.409,3.296,5.705,3.296,9.888c0,4.167-1.119,7.479-3.357,9.937c-2.237,2.458-5.302,3.687-9.191,3.687 + c-3.972,0-7.06-1.241-9.266-3.723C912.915,59.986,911.812,56.687,911.812,52.568z M918.16,52.568c0,5.762,2.075,8.643,6.226,8.643 + c1.904,0,3.414-0.748,4.529-2.246c1.114-1.497,1.672-3.629,1.672-6.396c0-5.68-2.067-8.521-6.201-8.521 + c-1.904,0-3.418,0.749-4.541,2.246C918.722,47.792,918.16,49.883,918.16,52.568z"/> + <path d="M958.64,65.703V50.591c0-2.229-0.428-3.857-1.281-4.883c-0.855-1.025-2.251-1.538-4.188-1.538 + c-0.896,0-1.852,0.253-2.869,0.757c-1.017,0.505-1.811,1.132-2.38,1.88v18.896h-6.104V39.556h4.395l1.123,2.441 + c1.66-1.953,4.109-2.93,7.349-2.93c3.108,0,5.562,0.932,7.361,2.796c1.798,1.863,2.697,4.464,2.697,7.8v16.04H958.64z"/> + <path d="M972.262,44.463h-3.027v-4.907h3.027v-5.322l6.104-2.246v7.568h7.178v4.907h-7.178v11.45c0,1.872,0.293,3.194,0.879,3.968 + c0.586,0.772,1.611,1.159,3.076,1.159s2.832-0.398,4.102-1.196v5.615c-1.416,0.488-3.435,0.732-6.055,0.732 + c-2.604,0-4.606-0.736-6.006-2.209c-1.4-1.474-2.1-3.568-2.1-6.287V44.463z"/> + <path d="M1014.498,54.497h-18.677c0.113,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.898-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.142-1.168-9.46-3.504 + c-2.32-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C1015.011,51.853,1014.84,52.983,1014.498,54.497z + M996.041,49.907h12.842c-0.424-3.824-2.539-5.737-6.348-5.737C999.052,44.17,996.887,46.083,996.041,49.907z"/> + <path d="M1036.691,65.703l-6.714-8.521l-6.03,8.521h-7.227l10.034-13.379l-9.229-12.769h7.007l5.518,7.983l6.152-7.983h6.958 + l-10.034,12.769l10.962,13.379H1036.691z"/> + <path d="M1048.434,44.463h-3.027v-4.907h3.027v-5.322l6.104-2.246v7.568h7.178v4.907h-7.178v11.45 + c0,1.872,0.293,3.194,0.879,3.968c0.586,0.772,1.611,1.159,3.076,1.159s2.832-0.398,4.102-1.196v5.615 + c-1.416,0.488-3.435,0.732-6.055,0.732c-2.604,0-4.606-0.736-6.006-2.209c-1.4-1.474-2.1-3.568-2.1-6.287V44.463z"/> + <path d="M1065.719,64.019l2.173-4.858c1.822,1.449,3.882,2.173,6.177,2.173c2.376,0,3.564-0.846,3.564-2.539 + c0-0.992-0.358-1.807-1.074-2.441c-0.717-0.635-2.108-1.383-4.175-2.246c-4.509-1.871-6.763-4.492-6.763-7.861 + c0-2.262,0.862-4.024,2.588-5.286c1.725-1.261,3.931-1.892,6.616-1.892c2.718,0,5.273,0.61,7.666,1.831l-1.758,4.736 + c-1.335-1.139-3.19-1.709-5.566-1.709c-2.133,0-3.198,0.847-3.198,2.539c0,0.668,0.35,1.27,1.05,1.807 + c0.699,0.537,2.197,1.258,4.492,2.16c2.295,0.904,3.946,1.999,4.956,3.284c1.009,1.286,1.514,2.841,1.514,4.663 + c0,2.426-0.899,4.334-2.698,5.725c-1.798,1.393-4.244,2.088-7.336,2.088c-1.742,0-3.137-0.143-4.188-0.428 + C1068.71,65.479,1067.362,64.897,1065.719,64.019z"/> + </g> +</g> +<g> + <path fill="#B1362D" d="M29.847,342.703v-13c0-8.284,6.716-15,15-15h1227c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15 + h-1227C36.562,357.703,29.847,350.987,29.847,342.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M29.847,342.703v-13 + c0-8.284,6.716-15,15-15h1227c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15h-1227 + C36.562,357.703,29.847,350.987,29.847,342.703z"/> + <g> + <path fill="#FFFFFF" d="M612.464,338.891v8.812h-3.125v-22.891c2.364-0.104,3.792-0.156,4.281-0.156 + c6.646,0,9.969,2.225,9.969,6.672c0,5.146-2.938,7.719-8.812,7.719C614.422,339.047,613.651,338.995,612.464,338.891z + M612.464,327.625v8.453c1.323,0.104,2.021,0.156,2.094,0.156c3.875,0,5.812-1.525,5.812-4.578c0-2.791-2.068-4.188-6.203-4.188 + C613.75,327.469,613.183,327.521,612.464,327.625z"/> + <path fill="#FFFFFF" d="M634.57,333.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L634.57,333.828z"/> + <path fill="#FFFFFF" d="M636.82,339.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C637.486,344.084,636.82,341.964,636.82,339.297z + M639.945,339.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C640.348,335.839,639.945,337.359,639.945,339.297z"/> + <path fill="#FFFFFF" d="M656.148,333.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.593v2.344h-4.593v8.312 + c0,1.406,0.237,2.406,0.71,3c0.475,0.594,1.237,0.891,2.289,0.891c0.761,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.322,0-2.44-0.492-3.351-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V333.312z"/> + <path fill="#FFFFFF" d="M681.866,339.625h-12.062c0,1.959,0.537,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.115-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.51,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.635-1.572-2.453-3.688-2.453-6.344c0-2.76,0.839-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.256,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C682.101,338.469,682.022,339.073,681.866,339.625z M674.663,333.156c-1.322,0-2.432,0.428-3.328,1.281 + c-0.854,0.812-1.338,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C677.2,333.594,676.079,333.156,674.663,333.156z"/> + <path fill="#FFFFFF" d="M686.664,347.703v-14.234h-2.297v-2.5h5.266v16.734H686.664z M688.289,324.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.795,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C687.346,324.818,687.778,324.641,688.289,324.641z"/> + <path fill="#FFFFFF" d="M704.648,347.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H704.648z"/> + </g> + <path fill="#7D5D3D" d="M143.847,178.703v-13c0-8.284,6.716-15,15-15h752c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15 + h-752C150.562,193.703,143.847,186.987,143.847,178.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M143.847,178.703v-13 + c0-8.284,6.716-15,15-15h752c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15h-752 + C150.562,193.703,143.847,186.987,143.847,178.703z"/> + <g> + <path fill="#FFFFFF" d="M539.761,183.703L537.042,169l-5,15.016h-0.781L526.12,169l-2.656,14.703h-2.969l4.281-22.891h1.422 + l5.453,16.703l5.031-16.703h1.406l4.641,22.891H539.761z"/> + <path fill="#FFFFFF" d="M543.901,175.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C544.568,180.084,543.901,177.964,543.901,175.297z + M547.026,175.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C547.43,171.839,547.026,173.359,547.026,175.297z"/> + <path fill="#FFFFFF" d="M572.776,183.688v-1.234c-1.031,1.031-2.531,1.547-4.5,1.547c-2.094,0-3.792-0.75-5.094-2.25 + c-1.302-1.5-1.953-3.5-1.953-6c0-2.51,0.75-4.653,2.25-6.43c1.5-1.775,3.286-2.664,5.359-2.664c1.729,0,3.042,0.406,3.938,1.219 + v-7.766h2.969v23.578H572.776z M572.776,170.844c-0.75-1.125-1.776-1.688-3.078-1.688c-1.594,0-2.883,0.594-3.867,1.781 + s-1.477,2.698-1.477,4.531c0,4.031,1.833,6.047,5.5,6.047c0.469,0,1.031-0.148,1.688-0.445s1.067-0.611,1.234-0.945V170.844z"/> + <path fill="#FFFFFF" d="M581.433,183.703v-14.234h-2.297v-2.5h5.266v16.734H581.433z M583.058,160.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C582.115,160.818,582.547,160.641,583.058,160.641z"/> + <path fill="#FFFFFF" d="M598.167,162.766c-0.604-0.208-1.167-0.312-1.688-0.312c-0.906,0-1.654,0.344-2.242,1.031 + c-0.589,0.688-0.883,1.558-0.883,2.609c0,0.281,0.026,0.573,0.078,0.875h3.406v2.5h-3.406v14.234h-2.969v-14.234h-2.438v-2.5 + h2.438c0-2.135,0.526-3.812,1.578-5.031c1.052-1.219,2.442-1.828,4.172-1.828c0.864,0,1.792,0.156,2.781,0.469L598.167,162.766z" + /> + <path fill="#FFFFFF" d="M602.386,183.703v-14.234h-2.297v-2.5h5.266v16.734H602.386z M604.011,160.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C603.068,160.818,603.5,160.641,604.011,160.641z"/> + <path fill="#FFFFFF" d="M624.167,175.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C624.401,174.469,624.323,175.073,624.167,175.625z M616.964,169.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C619.5,169.594,618.38,169.156,616.964,169.156z"/> + <path fill="#FFFFFF" d="M638.136,183.688v-1.234c-1.031,1.031-2.531,1.547-4.5,1.547c-2.094,0-3.792-0.75-5.094-2.25 + c-1.302-1.5-1.953-3.5-1.953-6c0-2.51,0.75-4.653,2.25-6.43c1.5-1.775,3.286-2.664,5.359-2.664c1.729,0,3.042,0.406,3.938,1.219 + v-7.766h2.969v23.578H638.136z M638.136,170.844c-0.75-1.125-1.776-1.688-3.078-1.688c-1.594,0-2.883,0.594-3.867,1.781 + s-1.477,2.698-1.477,4.531c0,4.031,1.833,6.047,5.5,6.047c0.469,0,1.031-0.148,1.688-0.445s1.067-0.611,1.234-0.945V170.844z"/> + <path fill="#FFFFFF" d="M658.354,174.891v8.812h-3.125v-22.891c2.364-0.104,3.792-0.156,4.281-0.156 + c6.646,0,9.969,2.225,9.969,6.672c0,5.146-2.938,7.719-8.812,7.719C660.312,175.047,659.542,174.995,658.354,174.891z + M658.354,163.625v8.453c1.322,0.104,2.021,0.156,2.094,0.156c3.875,0,5.812-1.525,5.812-4.578c0-2.791-2.068-4.188-6.203-4.188 + C659.641,163.469,659.073,163.521,658.354,163.625z"/> + <path fill="#FFFFFF" d="M685.429,175.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C685.663,174.469,685.585,175.073,685.429,175.625z M678.226,169.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C680.762,169.594,679.642,169.156,678.226,169.156z"/> + <path fill="#FFFFFF" d="M691.757,182.781v7.484h-2.969v-23.297h2.969v1.375c1.125-1.125,2.484-1.688,4.078-1.688 + c2.375,0,4.224,0.74,5.547,2.219c1.322,1.479,1.984,3.646,1.984,6.5c0,2.542-0.667,4.617-2,6.227 + c-1.334,1.609-3.261,2.414-5.781,2.414c-0.709,0-1.467-0.125-2.273-0.375C692.504,183.391,691.985,183.104,691.757,182.781z + M691.757,170.578v9.75c0.188,0.281,0.583,0.55,1.188,0.805c0.604,0.256,1.192,0.383,1.766,0.383c3.688,0,5.531-2.083,5.531-6.25 + c0-2.114-0.438-3.661-1.312-4.641c-0.875-0.979-2.276-1.469-4.203-1.469c-0.417,0-0.928,0.146-1.531,0.438 + C692.59,169.886,692.11,170.214,691.757,170.578z"/> + <path fill="#FFFFFF" d="M707.679,169.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.236,2.406,0.711,3c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V169.312z"/> + <path fill="#FFFFFF" d="M720.741,183.703v-14.234h-2.297v-2.5h5.266v16.734H720.741z M722.366,160.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.795,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C721.423,160.818,721.855,160.641,722.366,160.641z"/> + <path fill="#FFFFFF" d="M739.038,183.688v-1.234c-1.031,1.031-2.531,1.547-4.5,1.547c-2.094,0-3.792-0.75-5.094-2.25 + c-1.303-1.5-1.953-3.5-1.953-6c0-2.51,0.75-4.653,2.25-6.43c1.5-1.775,3.286-2.664,5.359-2.664c1.729,0,3.041,0.406,3.938,1.219 + v-7.766h2.969v23.578H739.038z M739.038,170.844c-0.75-1.125-1.776-1.688-3.078-1.688c-1.594,0-2.883,0.594-3.867,1.781 + s-1.477,2.698-1.477,4.531c0,4.031,1.833,6.047,5.5,6.047c0.469,0,1.031-0.148,1.688-0.445s1.067-0.611,1.234-0.945V170.844z"/> + <path fill="#FFFFFF" d="M760.351,175.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C760.585,174.469,760.507,175.073,760.351,175.625z M753.147,169.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C755.684,169.594,754.563,169.156,753.147,169.156z"/> + </g> + <polygon points="638.847,261.703 621.847,261.703 645.347,298.703 668.847,261.703 651.847,261.703 651.847,207.703 + 638.847,207.703 "/> + <polygon fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" points="638.847,261.703 + 621.847,261.703 645.347,298.703 668.847,261.703 651.847,261.703 651.847,207.703 638.847,207.703 "/> + <path fill="#F6931E" d="M106.847,451.703v-62c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C113.562,466.703,106.847,459.987,106.847,451.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M106.847,451.703v-62 + c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C113.562,466.703,106.847,459.987,106.847,451.703z"/> + <g> + <path d="M170.901,414.016l-11.828-16.734v16.422h-2.969v-22.891h1.25l11.516,15.828v-15.828h2.969v23.203H170.901z"/> + <path d="M176.667,405.797v-2.734h6.688v2.734H176.667z"/> + <path d="M189.104,399.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V399.312z"/> + <path d="M214.823,405.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C215.058,404.469,214.979,405.073,214.823,405.625z M207.62,399.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C210.156,399.594,209.037,399.156,207.62,399.156z"/> + <path d="M227.276,399.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L227.276,399.828z"/> + <path d="M249.995,413.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.052,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.31-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969v-16.734h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.073,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.948,1.026,1.422,2.467,1.422,4.32v11.188H249.995z"/> + <path d="M258.62,413.703v-14.234h-2.297v-2.5h5.266v16.734H258.62z M260.245,390.641c0.51,0,0.945,0.18,1.305,0.539 + s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539c-0.5,0-0.93-0.18-1.289-0.539 + s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297C259.302,390.818,259.734,390.641,260.245,390.641z"/> + <path d="M276.604,413.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H276.604z"/> + <path d="M293.245,411.781c-1.188,1.49-3.005,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.208-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.995-0.328,1.945-0.492,2.852-0.492c2.427,0,4.19,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V414c-1.208,0-2.112-0.172-2.711-0.516C293.935,413.141,293.505,412.573,293.245,411.781z + M292.964,405.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.724,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.026,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V405.484z"/> + <path d="M300.839,408.969v-18.859h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.19,0.773,2.023,0.773v2.656 + C302.761,414.016,300.839,412.334,300.839,408.969z"/> + </g> + <g> + <path d="M137.964,428.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C134.609,427.422,136.558,427.834,137.964,428.656z"/> + <path d="M141.167,442.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383c2.396,0,4.255,0.764,5.578,2.289 + c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383c-1.354,1.558-3.198,2.336-5.531,2.336 + c-2.386,0-4.245-0.786-5.578-2.359C141.833,447.084,141.167,444.964,141.167,442.297z M144.292,442.297 + c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C144.695,438.839,144.292,440.359,144.292,442.297z"/> + <path d="M169.729,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H169.729z"/> + <path d="M177.979,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M203.698,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C203.933,441.469,203.854,442.073,203.698,442.625z M196.495,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C199.031,436.594,197.912,436.156,196.495,436.156z"/> + <path d="M217.245,450.703l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75h3.281 + l-6.078,8.172l6.656,8.562H217.245z"/> + <path d="M224.151,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M245.651,450.703v-22.891h3.125v20.078h10.344v2.812H245.651z"/> + <path d="M275.714,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C275.948,441.469,275.87,442.073,275.714,442.625z M268.511,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C271.047,436.594,269.927,436.156,268.511,436.156z"/> + <path d="M289.37,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H289.37z"/> + <path d="M295.948,455.281l1.609-2.375c1.729,1.156,3.323,1.734,4.781,1.734c1.344,0,2.403-0.232,3.18-0.695 + c0.776-0.464,1.164-1.039,1.164-1.727c0-1.354-0.979-2.031-2.938-2.031c-0.333,0-0.938,0.084-1.812,0.25 + c-0.875,0.167-1.558,0.25-2.047,0.25c-2.375,0-3.562-0.896-3.562-2.688c0-0.552,0.278-1.052,0.836-1.5 + c0.557-0.447,1.247-0.771,2.07-0.969c-2.354-1.104-3.531-3.021-3.531-5.75c0-1.75,0.609-3.208,1.828-4.375 + c1.219-1.166,2.724-1.75,4.516-1.75c1.646,0,2.932,0.339,3.859,1.016l1.484-1.781l1.938,1.828l-1.781,1.344 + c0.76,0.99,1.141,2.281,1.141,3.875c0,1.688-0.526,3.104-1.578,4.25c-1.052,1.146-2.433,1.803-4.141,1.969l-2.453,0.25 + c-0.292,0.031-0.683,0.144-1.172,0.336c-0.49,0.193-0.734,0.445-0.734,0.758c0,0.428,0.51,0.641,1.531,0.641 + c0.448,0,1.146-0.08,2.094-0.242c0.948-0.161,1.651-0.242,2.109-0.242c1.646,0,2.93,0.394,3.852,1.18 + c0.922,0.787,1.383,1.877,1.383,3.273c0,1.541-0.69,2.786-2.07,3.734c-1.38,0.947-3.128,1.422-5.242,1.422 + c-1.083,0-2.224-0.193-3.422-0.578C297.641,456.302,296.677,455.833,295.948,455.281z M302.245,436.047 + c-1.031,0-1.873,0.365-2.523,1.094c-0.651,0.729-0.977,1.615-0.977,2.656c0,1.167,0.315,2.133,0.945,2.898 + c0.63,0.766,1.481,1.148,2.555,1.148c1.052,0,1.875-0.372,2.469-1.117c0.594-0.744,0.891-1.721,0.891-2.93 + c0-1.041-0.32-1.927-0.961-2.656C304.003,436.412,303.203,436.047,302.245,436.047z"/> + <path d="M313.683,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M335.62,450.703v-10.516c0-1.25-0.308-2.234-0.922-2.953c-0.615-0.719-1.479-1.078-2.594-1.078 + c-0.719,0-1.44,0.211-2.164,0.633c-0.724,0.422-1.279,0.914-1.664,1.477v12.438h-2.969v-23.594h2.969v8.703 + c0.396-0.614,1.034-1.127,1.914-1.539c0.88-0.411,1.789-0.617,2.727-0.617c1.771,0,3.159,0.584,4.164,1.75 + c1.005,1.167,1.508,2.761,1.508,4.781v10.516H335.62z"/> + </g> + <path fill="#F16522" d="M376.847,451.703v-62c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C383.562,466.703,376.847,459.987,376.847,451.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M376.847,451.703v-62 + c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C383.562,466.703,376.847,459.987,376.847,451.703z"/> + <g> + <path d="M441.354,391.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C438,390.422,439.948,390.834,441.354,391.656z"/> + <path d="M446.026,405.797v-2.734h6.688v2.734H446.026z"/> + <path d="M458.464,399.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V399.312z"/> + <path d="M484.183,405.625H472.12c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C484.417,404.469,484.339,405.073,484.183,405.625z M476.979,399.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C479.516,399.594,478.396,399.156,476.979,399.156z"/> + <path d="M496.636,399.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L496.636,399.828z"/> + <path d="M519.354,413.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.052,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.31-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969v-16.734h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.073,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.948,1.026,1.422,2.467,1.422,4.32v11.188H519.354z"/> + <path d="M527.979,413.703v-14.234h-2.297v-2.5h5.266v16.734H527.979z M529.604,390.641c0.51,0,0.945,0.18,1.305,0.539 + s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539c-0.5,0-0.93-0.18-1.289-0.539 + s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297C528.662,390.818,529.094,390.641,529.604,390.641z"/> + <path d="M545.964,413.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H545.964z"/> + <path d="M562.604,411.781c-1.188,1.49-3.005,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.208-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.995-0.328,1.945-0.492,2.852-0.492c2.427,0,4.19,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V414c-1.208,0-2.112-0.172-2.711-0.516C563.294,413.141,562.865,412.573,562.604,411.781z + M562.323,405.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.724,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.026,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V405.484z"/> + <path d="M570.198,408.969v-18.859h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.19,0.773,2.023,0.773v2.656 + C572.12,414.016,570.198,412.334,570.198,408.969z"/> + </g> + <g> + <path d="M407.964,428.656l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C404.609,427.422,406.558,427.834,407.964,428.656z"/> + <path d="M411.167,442.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383c2.396,0,4.255,0.764,5.578,2.289 + c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383c-1.354,1.558-3.198,2.336-5.531,2.336 + c-2.386,0-4.245-0.786-5.578-2.359C411.833,447.084,411.167,444.964,411.167,442.297z M414.292,442.297 + c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C414.695,438.839,414.292,440.359,414.292,442.297z"/> + <path d="M439.729,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H439.729z"/> + <path d="M447.979,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M473.698,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C473.933,441.469,473.854,442.073,473.698,442.625z M466.495,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C469.031,436.594,467.912,436.156,466.495,436.156z"/> + <path d="M487.245,450.703l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75h3.281 + l-6.078,8.172l6.656,8.562H487.245z"/> + <path d="M494.151,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M515.651,450.703v-22.891h3.125v20.078h10.344v2.812H515.651z"/> + <path d="M545.714,442.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C545.948,441.469,545.87,442.073,545.714,442.625z M538.511,436.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C541.047,436.594,539.927,436.156,538.511,436.156z"/> + <path d="M559.37,450.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H559.37z"/> + <path d="M565.948,455.281l1.609-2.375c1.729,1.156,3.323,1.734,4.781,1.734c1.344,0,2.403-0.232,3.18-0.695 + c0.776-0.464,1.164-1.039,1.164-1.727c0-1.354-0.979-2.031-2.938-2.031c-0.333,0-0.938,0.084-1.812,0.25 + c-0.875,0.167-1.558,0.25-2.047,0.25c-2.375,0-3.562-0.896-3.562-2.688c0-0.552,0.278-1.052,0.836-1.5 + c0.557-0.447,1.247-0.771,2.07-0.969c-2.354-1.104-3.531-3.021-3.531-5.75c0-1.75,0.609-3.208,1.828-4.375 + c1.219-1.166,2.724-1.75,4.516-1.75c1.646,0,2.932,0.339,3.859,1.016l1.484-1.781l1.938,1.828l-1.781,1.344 + c0.76,0.99,1.141,2.281,1.141,3.875c0,1.688-0.526,3.104-1.578,4.25c-1.052,1.146-2.433,1.803-4.141,1.969l-2.453,0.25 + c-0.292,0.031-0.683,0.144-1.172,0.336c-0.49,0.193-0.734,0.445-0.734,0.758c0,0.428,0.51,0.641,1.531,0.641 + c0.448,0,1.146-0.08,2.094-0.242c0.948-0.161,1.651-0.242,2.109-0.242c1.646,0,2.93,0.394,3.852,1.18 + c0.922,0.787,1.383,1.877,1.383,3.273c0,1.541-0.69,2.786-2.07,3.734c-1.38,0.947-3.128,1.422-5.242,1.422 + c-1.083,0-2.224-0.193-3.422-0.578C567.641,456.302,566.677,455.833,565.948,455.281z M572.245,436.047 + c-1.031,0-1.873,0.365-2.523,1.094c-0.651,0.729-0.977,1.615-0.977,2.656c0,1.167,0.315,2.133,0.945,2.898 + c0.63,0.766,1.481,1.148,2.555,1.148c1.052,0,1.875-0.372,2.469-1.117c0.594-0.744,0.891-1.721,0.891-2.93 + c0-1.041-0.32-1.927-0.961-2.656C574.003,436.412,573.203,436.047,572.245,436.047z"/> + <path d="M583.683,436.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.312z"/> + <path d="M605.62,450.703v-10.516c0-1.25-0.308-2.234-0.922-2.953c-0.615-0.719-1.479-1.078-2.594-1.078 + c-0.719,0-1.44,0.211-2.164,0.633c-0.724,0.422-1.279,0.914-1.664,1.477v12.438h-2.969v-23.594h2.969v8.703 + c0.396-0.614,1.034-1.127,1.914-1.539c0.88-0.411,1.789-0.617,2.727-0.617c1.771,0,3.159,0.584,4.164,1.75 + c1.005,1.167,1.508,2.761,1.508,4.781v10.516H605.62z"/> + </g> + <path fill="#9E3091" d="M106.847,594.703v-96c0-8.284,6.716-15,15-15h488c8.284,0,15,6.716,15,15v96c0,8.284-6.716,15-15,15h-488 + C113.562,609.703,106.847,602.987,106.847,594.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M106.847,594.703v-96 + c0-8.284,6.716-15,15-15h488c8.284,0,15,6.716,15,15v96c0,8.284-6.716,15-15,15h-488 + C113.562,609.703,106.847,602.987,106.847,594.703z"/> + <g> + <path fill="#FFFFFF" d="M239.464,520.656l1.141-2.875c0.583,0.428,1.31,0.784,2.18,1.07c0.87,0.287,1.648,0.43,2.336,0.43 + c1.219,0,2.198-0.333,2.938-1c0.739-0.666,1.109-1.516,1.109-2.547c0-0.771-0.206-1.486-0.617-2.148 + c-0.412-0.661-1.445-1.383-3.102-2.164l-1.844-0.859c-1.562-0.729-2.654-1.594-3.273-2.594c-0.62-1-0.93-2.203-0.93-3.609 + c0-1.708,0.604-3.125,1.812-4.25c1.208-1.125,2.76-1.688,4.656-1.688c2.531,0,4.292,0.412,5.281,1.234l-0.922,2.719 + c-0.417-0.302-1.052-0.594-1.906-0.875c-0.854-0.281-1.646-0.422-2.375-0.422c-1.062,0-1.898,0.303-2.508,0.906 + c-0.609,0.604-0.914,1.381-0.914,2.328c0,0.584,0.109,1.115,0.328,1.594c0.219,0.479,0.523,0.881,0.914,1.203 + c0.391,0.323,1.19,0.776,2.398,1.359l1.875,0.891c1.562,0.74,2.659,1.623,3.289,2.648c0.63,1.026,0.945,2.331,0.945,3.914 + c0,1.719-0.69,3.178-2.07,4.375c-1.38,1.198-3.227,1.797-5.539,1.797C242.636,522.094,240.901,521.615,239.464,520.656z"/> + <path fill="#FFFFFF" d="M269.745,513.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C269.979,512.469,269.901,513.073,269.745,513.625z M262.542,507.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C265.078,507.594,263.958,507.156,262.542,507.156z"/> + <path fill="#FFFFFF" d="M283.823,528.266v-7.547c-0.865,0.865-2.312,1.297-4.344,1.297c-2.281,0-4.07-0.763-5.367-2.289 + c-1.297-1.525-1.945-3.643-1.945-6.352c0-2.677,0.742-4.799,2.227-6.367c1.484-1.567,3.393-2.352,5.727-2.352 + c1.458,0,2.817,0.526,4.078,1.578l0.797-1.266h1.797v23.297H283.823z M283.823,508.438c-0.854-0.854-1.922-1.281-3.203-1.281 + c-1.677,0-2.984,0.568-3.922,1.703c-0.938,1.136-1.406,2.641-1.406,4.516c0,1.938,0.469,3.445,1.406,4.523 + s2.203,1.617,3.797,1.617c1.427,0,2.536-0.364,3.328-1.094V508.438z"/> + <path fill="#FFFFFF" d="M293.745,504.969v10.672c0,2.584,1.12,3.875,3.359,3.875c0.979,0,1.875-0.281,2.688-0.844 + s1.349-1.213,1.609-1.953v-11.75h2.969v16.734h-2.969v-2.312c-0.333,0.656-1.003,1.258-2.008,1.805 + c-1.005,0.547-1.987,0.82-2.945,0.82c-1.833,0-3.237-0.525-4.211-1.578c-0.974-1.052-1.461-2.547-1.461-4.484v-10.984H293.745z"/> + <path fill="#FFFFFF" d="M322.511,513.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C322.745,512.469,322.667,513.073,322.511,513.625z M315.308,507.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C317.844,507.594,316.724,507.156,315.308,507.156z"/> + <path fill="#FFFFFF" d="M336.167,521.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H336.167z"/> + <path fill="#FFFFFF" d="M355.979,506.328l-1.469,2.094c-0.302-0.302-0.836-0.588-1.602-0.859 + c-0.766-0.271-1.519-0.406-2.258-0.406c-1.615,0-2.896,0.565-3.844,1.695c-0.948,1.131-1.422,2.68-1.422,4.648 + c0,1.959,0.484,3.451,1.453,4.477c0.969,1.026,2.312,1.539,4.031,1.539c1.333,0,2.677-0.516,4.031-1.547l1.172,2.5 + c-1.594,1.031-3.568,1.547-5.922,1.547c-2.281,0-4.167-0.766-5.656-2.297c-1.49-1.531-2.234-3.604-2.234-6.219 + c0-2.666,0.773-4.807,2.32-6.422c1.547-1.614,3.664-2.422,6.352-2.422c0.864,0,1.802,0.183,2.812,0.547 + C354.755,505.568,355.5,505.943,355.979,506.328z"/> + <path fill="#FFFFFF" d="M373.292,513.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C373.526,512.469,373.448,513.073,373.292,513.625z M366.089,507.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C368.625,507.594,367.505,507.156,366.089,507.156z"/> + <path fill="#FFFFFF" d="M398.917,506.328l-1.469,2.094c-0.302-0.302-0.836-0.588-1.602-0.859 + c-0.766-0.271-1.519-0.406-2.258-0.406c-1.615,0-2.896,0.565-3.844,1.695c-0.948,1.131-1.422,2.68-1.422,4.648 + c0,1.959,0.484,3.451,1.453,4.477c0.969,1.026,2.312,1.539,4.031,1.539c1.333,0,2.677-0.516,4.031-1.547l1.172,2.5 + c-1.594,1.031-3.568,1.547-5.922,1.547c-2.281,0-4.167-0.766-5.656-2.297c-1.49-1.531-2.234-3.604-2.234-6.219 + c0-2.666,0.773-4.807,2.32-6.422c1.547-1.614,3.664-2.422,6.352-2.422c0.864,0,1.802,0.183,2.812,0.547 + C397.693,505.568,398.438,505.943,398.917,506.328z"/> + <path fill="#FFFFFF" d="M401.042,513.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C401.708,518.084,401.042,515.964,401.042,513.297z + M404.167,513.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C404.57,509.839,404.167,511.359,404.167,513.297z"/> + <path fill="#FFFFFF" d="M429.604,521.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H429.604z"/> + <path fill="#FFFFFF" d="M437.854,507.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.237,2.406,0.711,3c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V507.312z"/> + <path fill="#FFFFFF" d="M463.573,513.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C463.808,512.469,463.729,513.073,463.573,513.625z M456.37,507.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C458.906,507.594,457.787,507.156,456.37,507.156z"/> + <path fill="#FFFFFF" d="M477.12,521.703l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75 + h3.281l-6.078,8.172l6.656,8.562H477.12z"/> + <path fill="#FFFFFF" d="M484.026,507.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.237,2.406,0.711,3c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V507.312z"/> + </g> + <g> + <path fill="#FFFFFF" d="M356.503,537.766c-0.604-0.208-1.167-0.312-1.688-0.312c-0.906,0-1.654,0.344-2.242,1.031 + c-0.589,0.688-0.883,1.558-0.883,2.609c0,0.281,0.026,0.573,0.078,0.875h3.406v2.5h-3.406v14.234H348.8v-14.234h-2.438v-2.5h2.438 + c0-2.135,0.526-3.812,1.578-5.031c1.052-1.219,2.442-1.828,4.172-1.828c0.864,0,1.792,0.156,2.781,0.469L356.503,537.766z"/> + <path fill="#FFFFFF" d="M358.19,550.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C358.857,555.084,358.19,552.964,358.19,550.297z + M361.315,550.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C361.719,546.839,361.315,548.359,361.315,550.297z"/> + <path fill="#FFFFFF" d="M385.55,544.828c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969v-16.734h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L385.55,544.828z"/> + </g> + <g> + <path fill="#FFFFFF" d="M264.823,595.703L262.104,581l-5,15.016h-0.781L251.183,581l-2.656,14.703h-2.969l4.281-22.891h1.422 + l5.453,16.703l5.031-16.703h1.406l4.641,22.891H264.823z"/> + <path fill="#FFFFFF" d="M268.964,587.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C269.63,592.084,268.964,589.964,268.964,587.297z + M272.089,587.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C272.492,583.839,272.089,585.359,272.089,587.297z"/> + <path fill="#FFFFFF" d="M297.839,595.688v-1.234c-1.031,1.031-2.531,1.547-4.5,1.547c-2.094,0-3.792-0.75-5.094-2.25 + c-1.302-1.5-1.953-3.5-1.953-6c0-2.51,0.75-4.653,2.25-6.43c1.5-1.775,3.286-2.664,5.359-2.664c1.729,0,3.042,0.406,3.938,1.219 + v-7.766h2.969v23.578H297.839z M297.839,582.844c-0.75-1.125-1.776-1.688-3.078-1.688c-1.594,0-2.883,0.594-3.867,1.781 + s-1.477,2.698-1.477,4.531c0,4.031,1.833,6.047,5.5,6.047c0.469,0,1.031-0.148,1.688-0.445s1.067-0.611,1.234-0.945V582.844z"/> + <path fill="#FFFFFF" d="M306.495,595.703v-14.234h-2.297v-2.5h5.266v16.734H306.495z M308.12,572.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C307.177,572.818,307.609,572.641,308.12,572.641z"/> + <path fill="#FFFFFF" d="M323.229,574.766c-0.604-0.208-1.167-0.312-1.688-0.312c-0.906,0-1.654,0.344-2.242,1.031 + c-0.589,0.688-0.883,1.558-0.883,2.609c0,0.281,0.026,0.573,0.078,0.875h3.406v2.5h-3.406v14.234h-2.969v-14.234h-2.438v-2.5 + h2.438c0-2.135,0.526-3.812,1.578-5.031c1.052-1.219,2.442-1.828,4.172-1.828c0.864,0,1.792,0.156,2.781,0.469L323.229,574.766z" + /> + <path fill="#FFFFFF" d="M327.448,595.703v-14.234h-2.297v-2.5h5.266v16.734H327.448z M329.073,572.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C328.13,572.818,328.562,572.641,329.073,572.641z"/> + <path fill="#FFFFFF" d="M347.761,580.328l-1.469,2.094c-0.302-0.302-0.836-0.588-1.602-0.859 + c-0.766-0.271-1.519-0.406-2.258-0.406c-1.615,0-2.896,0.565-3.844,1.695c-0.948,1.131-1.422,2.68-1.422,4.648 + c0,1.959,0.484,3.451,1.453,4.477c0.969,1.026,2.312,1.539,4.031,1.539c1.333,0,2.677-0.516,4.031-1.547l1.172,2.5 + c-1.594,1.031-3.568,1.547-5.922,1.547c-2.281,0-4.167-0.766-5.656-2.297c-1.49-1.531-2.234-3.604-2.234-6.219 + c0-2.666,0.773-4.807,2.32-6.422c1.547-1.614,3.664-2.422,6.352-2.422c0.864,0,1.802,0.183,2.812,0.547 + C346.537,579.568,347.281,579.943,347.761,580.328z"/> + <path fill="#FFFFFF" d="M360.433,593.781c-1.188,1.49-3.005,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.208-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.995-0.328,1.945-0.492,2.852-0.492c2.427,0,4.19,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938V596c-1.208,0-2.112-0.172-2.711-0.516C361.123,595.141,360.693,594.573,360.433,593.781z + M360.151,587.484c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.724,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.026,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V587.484z"/> + <path fill="#FFFFFF" d="M368.854,581.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.237,2.406,0.711,3c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V581.312z"/> + <path fill="#FFFFFF" d="M381.917,595.703v-14.234h-2.297v-2.5h5.266v16.734H381.917z M383.542,572.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C382.599,572.818,383.031,572.641,383.542,572.641z"/> + <path fill="#FFFFFF" d="M388.511,587.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C389.177,592.084,388.511,589.964,388.511,587.297z + M391.636,587.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C392.039,583.839,391.636,585.359,391.636,587.297z"/> + <path fill="#FFFFFF" d="M417.073,595.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H417.073z"/> + <path fill="#FFFFFF" d="M433.104,594.656l1.141-2.875c0.583,0.428,1.31,0.784,2.18,1.07c0.87,0.287,1.648,0.43,2.336,0.43 + c1.219,0,2.198-0.333,2.938-1c0.739-0.666,1.109-1.516,1.109-2.547c0-0.771-0.206-1.486-0.617-2.148 + c-0.412-0.661-1.445-1.383-3.102-2.164l-1.844-0.859c-1.562-0.729-2.654-1.594-3.273-2.594c-0.62-1-0.93-2.203-0.93-3.609 + c0-1.708,0.604-3.125,1.812-4.25c1.208-1.125,2.76-1.688,4.656-1.688c2.531,0,4.292,0.412,5.281,1.234l-0.922,2.719 + c-0.417-0.302-1.052-0.594-1.906-0.875c-0.854-0.281-1.646-0.422-2.375-0.422c-1.062,0-1.898,0.303-2.508,0.906 + c-0.609,0.604-0.914,1.381-0.914,2.328c0,0.584,0.109,1.115,0.328,1.594c0.219,0.479,0.523,0.881,0.914,1.203 + c0.391,0.323,1.19,0.776,2.398,1.359l1.875,0.891c1.562,0.74,2.659,1.623,3.289,2.648c0.63,1.026,0.945,2.331,0.945,3.914 + c0,1.719-0.69,3.178-2.07,4.375c-1.38,1.198-3.227,1.797-5.539,1.797C436.276,596.094,434.542,595.615,433.104,594.656z"/> + <path fill="#FFFFFF" d="M450.729,595.703v-14.234h-2.297v-2.5h5.266v16.734H450.729z M452.354,572.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C451.412,572.818,451.844,572.641,452.354,572.641z"/> + <path fill="#FFFFFF" d="M459.479,581.312h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.237,2.406,0.711,3c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V581.312z"/> + <path fill="#FFFFFF" d="M485.198,587.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C485.433,586.469,485.354,587.073,485.198,587.625z M477.995,581.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C480.531,581.594,479.412,581.156,477.995,581.156z"/> + </g> + <g> + <g opacity="0.1"> + <path d="M247.05,183.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H247.05z"/> + </g> + </g> + <g> + <g opacity="0.2"> + <path d="M264.862,183.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H264.862z"/> + </g> + </g> + <g> + <g opacity="0.3"> + <path d="M282.675,183.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H282.675z"/> + </g> + </g> + <g> + <g opacity="0.4"> + <path d="M300.487,183.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H300.487z"/> + </g> + </g> + <g> + <g opacity="0.6"> + <path d="M318.3,183.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H318.3z"/> + </g> + </g> + <g> + <g opacity="0.8"> + <path d="M336.112,183.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H336.112z"/> + </g> + </g> + <g> + <path fill="#0F0F0F" d="M353.925,183.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656 + l5.391-8.656h3.141l-7.109,11.078l7.469,11.812H353.925z"/> + </g> + <g> + <path fill="#FFFFFF" d="M371.737,183.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656 + l5.391-8.656h3.141l-7.109,11.078l7.469,11.812H371.737z"/> + </g> + <g> + <path d="M389.55,183.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H389.55z"/> + </g> + <g> + <g opacity="0.8"> + <path d="M407.362,183.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H407.362z"/> + </g> + </g> + <g> + <g opacity="0.6"> + <path d="M425.175,183.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H425.175z"/> + </g> + </g> + <g> + <g opacity="0.4"> + <path d="M442.987,183.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H442.987z"/> + </g> + </g> + <g> + <g opacity="0.3"> + <path d="M460.8,183.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H460.8z"/> + </g> + </g> + <g> + <g opacity="0.2"> + <path d="M478.612,183.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H478.612z"/> + </g> + </g> + <g> + <g opacity="0.1"> + <path d="M496.425,183.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H496.425z"/> + </g> + </g> + <path fill="#7D5D3D" d="M367.347,94.703c-5.247,0-10.497,1.997-14.5,6c-8.006,8.006-8.006,20.994,0,29 + c2.427,2.427,5.342,4.013,8.406,4.969l5.594,26.031l6.156-25.906c3.226-0.928,6.302-2.552,8.844-5.094 + c8.006-8.006,8.006-20.994,0-29C377.844,96.7,372.593,94.703,367.347,94.703z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M367.347,94.703 + c-5.247,0-10.497,1.997-14.5,6c-8.006,8.006-8.006,20.994,0,29c2.427,2.427,5.342,4.013,8.406,4.969l5.594,26.031l6.156-25.906 + c3.226-0.928,6.302-2.552,8.844-5.094c8.006-8.006,8.006-20.994,0-29C377.844,96.7,372.593,94.703,367.347,94.703z"/> + <g> + <path fill="#FFFFFF" d="M364.277,120.781v7.484h-2.969v-23.297h2.969v1.375c1.125-1.125,2.484-1.688,4.078-1.688 + c2.375,0,4.224,0.74,5.547,2.219c1.323,1.479,1.984,3.646,1.984,6.5c0,2.542-0.667,4.617-2,6.227 + c-1.333,1.609-3.261,2.414-5.781,2.414c-0.708,0-1.466-0.125-2.273-0.375C365.024,121.391,364.506,121.104,364.277,120.781z + M364.277,108.578v9.75c0.188,0.281,0.583,0.55,1.188,0.805c0.604,0.256,1.192,0.383,1.766,0.383c3.688,0,5.531-2.083,5.531-6.25 + c0-2.114-0.438-3.661-1.312-4.641c-0.875-0.979-2.276-1.469-4.203-1.469c-0.417,0-0.927,0.146-1.531,0.438 + C365.11,107.886,364.631,108.214,364.277,108.578z"/> + </g> + <g> + <g opacity="0.1"> + <path d="M247.05,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H247.05z"/> + </g> + </g> + <g> + <g opacity="0.2"> + <path d="M264.862,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H264.862z"/> + </g> + </g> + <g> + <g opacity="0.3"> + <path d="M282.675,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H282.675z"/> + </g> + </g> + <g> + <g opacity="0.4"> + <path d="M300.487,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H300.487z"/> + </g> + </g> + <g> + <g opacity="0.6"> + <path d="M318.3,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H318.3z"/> + </g> + </g> + <g> + <g opacity="0.8"> + <path d="M336.112,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H336.112z"/> + </g> + </g> + <g> + <path fill="#0F0F0F" d="M353.925,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656 + l5.391-8.656h3.141l-7.109,11.078l7.469,11.812H353.925z"/> + </g> + <g> + <path fill="#FFFFFF" d="M371.737,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656 + l5.391-8.656h3.141l-7.109,11.078l7.469,11.812H371.737z"/> + </g> + <g> + <path d="M389.55,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H389.55z"/> + </g> + <g> + <g opacity="0.8"> + <path d="M407.362,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H407.362z"/> + </g> + </g> + <g> + <g opacity="0.6"> + <path d="M425.175,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H425.175z"/> + </g> + </g> + <g> + <g opacity="0.4"> + <path d="M442.987,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H442.987z"/> + </g> + </g> + <g> + <g opacity="0.3"> + <path d="M460.8,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H460.8z"/> + </g> + </g> + <g> + <g opacity="0.2"> + <path d="M478.612,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H478.612z"/> + </g> + </g> + <g> + <g opacity="0.1"> + <path d="M496.425,347.703l-5.688-9.188l-5.25,9.188h-3.156l6.75-11.875l-6.203-11.031l3.078,0.016l4.891,8.656l5.391-8.656h3.141 + l-7.109,11.078l7.469,11.812H496.425z"/> + </g> + </g> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M146.847,230.703 + c-11.046,0-20,8.954-20,20v3c0,11.046,8.954,20,20,20h210l10,33l10-33h62c11.046,0,20-8.954,20-20v-3c0-11.046-8.954-20-20-20 + H146.847z"/> + <g> + <path fill="#0F0F0F" d="M167.573,263.703L164.854,249l-5,15.016h-0.781L153.933,249l-2.656,14.703h-2.969l4.281-22.891h1.422 + l5.453,16.703l5.031-16.703h1.406l4.641,22.891H167.573z"/> + <path fill="#0F0F0F" d="M171.714,255.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C172.38,260.084,171.714,257.964,171.714,255.297z + M174.839,255.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C175.242,251.839,174.839,253.359,174.839,255.297z"/> + <path fill="#0F0F0F" d="M200.589,263.688v-1.234c-1.031,1.031-2.531,1.547-4.5,1.547c-2.094,0-3.792-0.75-5.094-2.25 + c-1.302-1.5-1.953-3.5-1.953-6c0-2.51,0.75-4.653,2.25-6.43c1.5-1.775,3.286-2.664,5.359-2.664c1.729,0,3.042,0.406,3.938,1.219 + v-7.766h2.969v23.578H200.589z M200.589,250.844c-0.75-1.125-1.776-1.688-3.078-1.688c-1.594,0-2.883,0.594-3.867,1.781 + s-1.477,2.698-1.477,4.531c0,4.031,1.833,6.047,5.5,6.047c0.469,0,1.031-0.148,1.688-0.445s1.067-0.611,1.234-0.945V250.844z"/> + <path fill="#0F0F0F" d="M209.245,263.703v-14.234h-2.297v-2.5h5.266v16.734H209.245z M210.87,240.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C209.927,240.818,210.359,240.641,210.87,240.641z"/> + <path fill="#0F0F0F" d="M225.979,242.766c-0.604-0.208-1.167-0.312-1.688-0.312c-0.906,0-1.654,0.344-2.242,1.031 + c-0.589,0.688-0.883,1.558-0.883,2.609c0,0.281,0.026,0.573,0.078,0.875h3.406v2.5h-3.406v14.234h-2.969v-14.234h-2.438v-2.5 + h2.438c0-2.135,0.526-3.812,1.578-5.031c1.052-1.219,2.442-1.828,4.172-1.828c0.864,0,1.792,0.156,2.781,0.469L225.979,242.766z" + /> + <path fill="#0F0F0F" d="M230.198,263.703v-14.234h-2.297v-2.5h5.266v16.734H230.198z M231.823,240.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C230.88,240.818,231.312,240.641,231.823,240.641z"/> + <path fill="#0F0F0F" d="M251.979,255.625h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C252.214,254.469,252.136,255.073,251.979,255.625z M244.776,249.156c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C247.312,249.594,246.193,249.156,244.776,249.156z"/> + <path fill="#0F0F0F" d="M265.948,263.688v-1.234c-1.031,1.031-2.531,1.547-4.5,1.547c-2.094,0-3.792-0.75-5.094-2.25 + c-1.302-1.5-1.953-3.5-1.953-6c0-2.51,0.75-4.653,2.25-6.43c1.5-1.775,3.286-2.664,5.359-2.664c1.729,0,3.042,0.406,3.938,1.219 + v-7.766h2.969v23.578H265.948z M265.948,250.844c-0.75-1.125-1.776-1.688-3.078-1.688c-1.594,0-2.883,0.594-3.867,1.781 + s-1.477,2.698-1.477,4.531c0,4.031,1.833,6.047,5.5,6.047c0.469,0,1.031-0.148,1.688-0.445s1.067-0.611,1.234-0.945V250.844z"/> + <path fill="#0F0F0F" d="M294.314,263.703l-1.578-4.828h-8.516l-1.688,4.828h-3.5l9.297-23.203h0.828l8.625,23.203H294.314z + M288.595,246.5l-3.547,10.078h6.797L288.595,246.5z"/> + <path fill="#0F0F0F" d="M319.33,263.703v-10.594c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.052,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.31-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969v-16.734h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.073,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.948,1.026,1.422,2.467,1.422,4.32v11.188H319.33z"/> + <path fill="#0F0F0F" d="M327.955,263.703v-14.234h-2.297v-2.5h5.266v16.734H327.955z M329.58,240.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C328.637,240.818,329.069,240.641,329.58,240.641z"/> + <path fill="#0F0F0F" d="M345.939,263.703v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969v-16.734h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H345.939z"/> + <path fill="#0F0F0F" d="M352.033,255.297c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C352.699,260.084,352.033,257.964,352.033,255.297z + M355.158,255.297c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C355.561,251.839,355.158,253.359,355.158,255.297z"/> + <path fill="#0F0F0F" d="M391.445,263.703l-1.578-4.828h-8.516l-1.688,4.828h-3.5l9.297-23.203h0.828l8.625,23.203H391.445z + M385.727,246.5l-3.547,10.078h6.797L385.727,246.5z"/> + <path fill="#0F0F0F" d="M409.711,248.328l-1.469,2.094c-0.302-0.302-0.836-0.588-1.602-0.859 + c-0.766-0.271-1.519-0.406-2.258-0.406c-1.615,0-2.896,0.565-3.844,1.695c-0.948,1.131-1.422,2.68-1.422,4.648 + c0,1.959,0.484,3.451,1.453,4.477c0.969,1.026,2.312,1.539,4.031,1.539c1.333,0,2.677-0.516,4.031-1.547l1.172,2.5 + c-1.594,1.031-3.568,1.547-5.922,1.547c-2.281,0-4.167-0.766-5.656-2.297c-1.49-1.531-2.234-3.604-2.234-6.219 + c0-2.666,0.773-4.807,2.32-6.422c1.547-1.614,3.664-2.422,6.352-2.422c0.864,0,1.802,0.183,2.812,0.547 + C408.487,247.568,409.231,247.943,409.711,248.328z"/> + <path fill="#0F0F0F" d="M414.367,263.703v-14.234h-2.297v-2.5h5.266v16.734H414.367z M415.992,240.641 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C415.049,240.818,415.481,240.641,415.992,240.641z"/> + <path fill="#0F0F0F" d="M432.664,263.688v-1.234c-1.031,1.031-2.531,1.547-4.5,1.547c-2.094,0-3.792-0.75-5.094-2.25 + c-1.302-1.5-1.953-3.5-1.953-6c0-2.51,0.75-4.653,2.25-6.43c1.5-1.775,3.286-2.664,5.359-2.664c1.729,0,3.042,0.406,3.938,1.219 + v-7.766h2.969v23.578H432.664z M432.664,250.844c-0.75-1.125-1.776-1.688-3.078-1.688c-1.594,0-2.883,0.594-3.867,1.781 + s-1.477,2.698-1.477,4.531c0,4.031,1.833,6.047,5.5,6.047c0.469,0,1.031-0.148,1.688-0.445s1.067-0.611,1.234-0.945V250.844z"/> + </g> +</g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ExtractModificationSiteSequenceContext.xml Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,183 @@ +<!-- +# ===================================================== +# $Id: ExtractModificationSiteSequenceContext.xml 90 2011-01-19 13:20:31Z pieter.neerincx@gmail.com $ +# $URL: https://trac.nbic.nl/svn/galaxytools/trunk/tools/general/FastaTools/ExtractModificationSiteSequenceContext.xml $ +# $LastChangedDate: 2011-01-19 07:20:31 -0600 (Wed, 19 Jan 2011) $ +# $LastChangedRevision: 90 $ +# $LastChangedBy: pieter.neerincx@gmail.com $ +# ===================================================== +--> +<tool id="ExtractPeptideSequenceContext4" version="2.1" name="Extract Modification Site Context"> + <description>by mapping modified amino acids in peptides back to proteins and fetching the sequence surrounding the modified sites.</description> + <command interpreter="perl">ExtractPeptideSequenceContext.pl --db $db --dbf FASTA --f $fragments --icol $icol --pcol $pcol --s --modo $modo --ma '$ma' --n $n --c $c --pc '$pc' --ll ERROR</command> + <inputs> + <param name="fragments" type="data" format="tabular" label="Peptide sequences and their protein's identifiers" + help="(in tab delimited format)"/> + <param name="icol" type="data_column" value="1" data_ref="fragments" label="Protein identifier column"/> + <param name="pcol" type="data_column" value="2" data_ref="fragments" label="Peptide sequence column"/> + <!-- + <param name="icol" type="integer" value="1" label="Protein identifier column"/> + <param name="pcol" type="integer" value="2" label="Peptide sequence column"/> + --> + <param name="db" type="data" format="fasta" label="Protein sequences" + help="(in FASTA format)"/> + <param name="n" type="integer" value="5" label="N-terminal sequence context length"/> + <param name="c" type="integer" value="5" label="C-terminal sequence context length"/> + <param name="pc" type="select" help="to fill positions in the sequence context when the protein was too short for a full length context."> + <label>Padding character</label> + <option value="-">dash</option> + <option value=" ">space</option> + <option value="">none</option> + </param> + <param name="ma" type="text" label="Modified amino acid"/> + </inputs> + <outputs> + <data name="modo" format="tabular" label="Modification site sequence contexts for ${fragments.name}"/> + </outputs> +<!-- + <tests> + <test> + <param name="input" value="*.fasta"/> + <param name="identifiers" value="*.txt"/> + <output name="output" file="*.fasta"/> + </test> + </tests> +--> + <help> + +.. role:: raw-html(raw) + :format: html + +.. class:: infomark + +**What it does** + +Map peptide sequences back to proteins and extract sequence contexts for modification sites. + +:raw-html:`<object data="static/images/nbic_gmr/ExtractModificationSiteSequenceContext.svg" type="image/svg+xml" width="100%"/>` + + +=================================================== +*Peptide sequences and their protein's identifiers* +=================================================== + +This file must contain at least peptides and accession numbers or IDs of the proteins the peptides were derived from. \ +The data must be in TAB delimited format and may contain other columns, which will be preserved in the output. \ +If a sequence context was found, it will be appended in a new column to the right of the existing columns. \ +When another sequence context was found for the same peptide, it will appended as an extra row in the output. +Protein accession numbers / IDs must be in the same format as was used in the FASTA file with protein sequences (database). \ +The only exception to this rule is that accession numbers / IDs may be optionally suffixed with the peptide\'s position in its protein between brackets. \ +For example: CLH1_HUMAN[1612-1620] will be matched to CLH1_HUMAN in a FASTA file with protein sequences. \ +Amino acids in the petide sequences must be in uppercase. + +=============================================== +*Protein sequences* +=============================================== + +Input file containing all protein sequences in FASTA format. \ +This tool will look for any type of protein ID in the first part of FASTA sequence headers up until the first white space. \ +Optionally multiple IDs may be present separated with pipe symbols (|) or semicolons (;). \ +Optionally IDs may be prefixed with a database namespace and a colon (:). \ +For example the accession number P32234 as well as the ID 128UP_DROME would be recognized in both this sequence header: + + >UniProtAcc:P32234|UniProtID:128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +and in this one: + + >P32234|128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +=================================================== +*N-terminal and C-terminal sequence context length* +=================================================== + +Integers specifying the length of the N-terminal and C-terminal sequence context to retrieve starting from the modification site. \ +Note that the width of a modification site is 1 amino acid. \ +When defaults are used for both the N-terminal and C-terminal sequence context lengths, \ +the total sequence context length for a modification site will be: +(N-terminal sequence context) + (modified amino acid) + (C-terminal sequence context) = 5 + 1 + 5 = 11. + +=============================================== +*Modified amino acid* +=============================================== + +The amino acid must be specified in uppercase and the modification in lower case. \ +The order is not important. \ +Hence a phophorylated serine in a peptide sequence can be indicated with either pS or Sp, \ +but you cannot mix both pS and Sp in a single peptide sequence file. \ +You may provide an asterisk (*) instead of an upper case amino acid to retrieve sequence contexts \ +for the specified modification no matter what amino acid it was located on. \ +A modification may be specified with more than one lower case character, \ +so for example phosphoS or Sphospho can also be used for a phosphorylated serine. + +=============================================== +*Padding character* +=============================================== + +Optional padding character to fill N-terminal or C-terminal positions in the sequence context, \ +when the protein was too short to get a complete sequence context. \ +Defaults to - a.k.a. dash or alignment gap character. \ + +----- + +**Getting input data** + +.. _my folder utility: http://mascotinternal.chem.uu.nl/mascot/cgi/uu_myfolder.pl + +This tool requires \ +peptide sequences in TAB delimited format and \ +protein sequences from which the peptides were derived in FASTA format. \ +If your peptide sequences are not in TAB delimited format, you can convert from: + + - FASTA format using *FASTA manipulation* -> *FASTA-to-Tabular* + - A format using a different delimiter using *Text Manipulation* -> *Convert* + +When your peptides were derived from a mass spectrometry experiment and identified with a search engine like Mascot, Sequest, etc.,\ +please make sure you provide the same FASTA database for this tool as the one used for your search. +If you used Mascot hosted by the Biomolecular Mass Spectrometry and Proteomics Group @ Utrecht University, \ +you can use the `my folder utility`_ to download the FASTA databases from the Mascot server. + +----- + +**Examples** + +Example input for peptides identified with a Mascot search, \ +some with phosphorylated residues indicated by pS, pT or pY \ +and in TAB delimited format:: + + sequence score peptide mr mass delta (abs) mass delta (ppm) all protein matches + AGNAARDN 54.24 787.357254 -4.223E-5 -0.05334300253998803 H2A1B_HUMAN[67-74]; H2A1C_HUMAN[67-74]; H2A1D_HUMAN[67-74] + KLpSAAVVLI 11.48 912.600784 0.001608 1.7619971713721432 OSGI2_HUMAN[405-413] + RAGIKVpTVA 23.01 913.570892 6.283E-5 0.06786555979719196 PARK7_HUMAN[28-36] + KGGVVGIKVD 44.61 970.581146 -0.001214 -1.2507970147608864 ALDOA_HUMAN[101-110] + KIKELQAF 11.87 975.575287 0.003907 4.004816493470687 MMP20_HUMAN[71-78] + KIpSGpTVNIR 57.17 986.587265 -0.002761 -2.798536022051734 SYTC_HUMAN[681-689] + KLpYEALKF 17.54 1010.580032 0.004782 4.731935966057164 F105A_HUMAN[238-245] + KLDApSEpSLR 31.31 1017.545441 -0.002377 -2.3360136110127785 CLH1_HUMAN[1612-1620] + +=============================================== +*Appending modification site sequence contexts* +=============================================== + +With these options: + + - p\* as *modified amino acid* + - c6 as *Protein identifier column* + - c1 as *Peptide sequence column* + - a suitable FASTA database with *Protein sequences* + - and everything else set to defaults + +the example above will generate a result like this:: + + KLpSAAVVLI 11.48 912.600784 0.001608 1.7619971713721432 OSGI2_HUMAN[405-413] KIFKLSAAVVL + RAGIKVpTVA 23.01 913.570892 6.283E-5 0.06786555979719196 PARK7_HUMAN[28-36] AGIKVTVAGLA + KIpSGpTVNIR 57.17 986.587265 -0.002761 -2.798536022051734 SYTC_HUMAN[681-689] EKEKISGTVNI + KIpSGpTVNIR 57.17 986.587265 -0.002761 -2.798536022051734 SYTC_HUMAN[681-689] EKISGTVNIRT + KLpYEALKF 17.54 1010.580032 0.004782 4.731935966057164 F105A_HUMAN[238-245] LEYKLYEALKF + KLDApSEpSLR 31.31 1017.545441 -0.002377 -2.3360136110127785 CLH1_HUMAN[1612-1620] DKLDASESLRK + KLDApSEpSLR 31.31 1017.545441 -0.002377 -2.3360136110127785 CLH1_HUMAN[1612-1620] LDASESLRKEE + +Note the header line was ignored, peptides like AGNAARDN without any modified amino acids are absent from the output \ +and peptides like KLDApSEpSLR with more than one modified amino acid occur more than once in the output. + + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ExtractPeptideSequenceContext.pl Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,1744 @@ +#!/usr/bin/perl -w +# +# This script extracts subsequences from UniProtKB *.dat files or from *.fasta files +# based on a list of accession numbers / IDs and a sequence fragment (peptide). +# +# ===================================================== +# $Id: ExtractPeptideSequenceContext.pl 112 2011-03-01 19:50:23Z pieter.neerincx@gmail.com $ +# $HeadURL: https://trac.nbic.nl/svn/galaxytools/trunk/tools/general/FastaTools/ExtractPeptideSequenceContext.pl $ +# $LastChangedDate: 2011-03-01 13:50:23 -0600 (Tue, 01 Mar 2011) $ +# $LastChangedRevision: 112 $ +# $LastChangedBy: pieter.neerincx@gmail.com $ +# ===================================================== +# + +# +# initialise environment +# +use strict; +use Getopt::Long; +use SWISS::Entry; # For parsing UniProtKB *.dat files. +use Log::Log4perl qw(:easy); + +my $ps = '/'; # Path Separator. +my %log_levels = ( + 'ALL' => $ALL, + 'TRACE' => $TRACE, + 'DEBUG' => $DEBUG, + 'INFO' => $INFO, + 'WARN' => $WARN, + 'ERROR' => $ERROR, + 'FATAL' => $FATAL, + 'OFF' => $OFF, +); + +# +# List of databases, which may contain versioned accession numbers, +# and the separation character used to join the accession number and +# the version number. +# +my %databases_with_optionally_versioned_ids = ( + 'IPI' => '.', + 'ipi' => '.', + 'UniProtKB/Swiss-Prot' => '.', + 'sp' => '.', + 'SP' => '.', + 'UniProtKB/TrEMBL' => '.', + 'TR' => '.', + 'tr' => '.', + 'Tr' => '.' +); + +my $db; +my $db_alt; +my $db_format; +my $index_id; # Key used to lookup sequences. Can be ID or Accession number (default). +my $fragments; +my $id_column; +my $peptide_column; +my $strip_lc; # For the sequence fragments in the fragments file. With strip_lc enabled we + # assume amino acids are in upper case and lower case characters represent modifications, + # which will be stripped off before searching for the fragments in the complete sequences. +my $cleavage_output; # Sequence contexts for cleavage sites. +my $miscleavage_output; # Sequence contexts for miscleavage sites. +my $modification_output; # Sequence contexts for modification sites. +my $peptide_output; # Sequence contexts for complete peptides. +my $cleavage_aa; # Assume the sequence fragments were derived from cutting at this amino acid. +my $cleavage_terminus; # Assume the sequence fragments were derived from cutting at this side of $cut_at_aa +my $modified_aa; +my $n_term_context_length; +my $c_term_context_length; +my $miscleavage_distance; # Minimal distance between a putative miscleavage site and the peptide termini. + # Uncleaved AAs closer to the peptide termini can be ignored with this parameter: + # A. To prevent overlap between cleavage and miscleavage peptide sequence contexts. + # B. To remove false positive miscleavage sites that cannot be cleaved, + # because one of the resulting fragments is too short. Sometimes proteases may need + # a minimal length surrounding the cleavage site to bind and cleave a peptide. +my $padding_character; # Used for padding if the protein sequence is too short for a long enough context. +my $log_level; + +Getopt::Long::GetOptions ( + 'db=s' => \$db, + 'dba:s' => \$db_alt, + 'dbf:s' => \$db_format, + 'k:s' => \$index_id, # Key used to lookup sequences. Can be ID or Accession number (default). + 'f=s' => \$fragments, + 'icol:i' => \$id_column, + 'pcol:i' => \$peptide_column, + 's' => \$strip_lc, # For the sequence fragments in the fragments file. With strip_lc enabled we + # assume amino acids are in upper case and lower case characters represent modifications, + # which will be stripped off before searching for the fragments in the complete sequences. + 'cleo:s' => \$cleavage_output, + 'miso:s' => \$miscleavage_output, + 'modo:s' => \$modification_output, + 'pepo:s' => \$peptide_output, + 'ca:s' => \$cleavage_aa, # Assume the sequence fragments were derived from cutting at this amino acid. + 'ct:s' => \$cleavage_terminus, # Assume the sequence fragments were derived from cutting at this side of $cut_at_aa + 'ma:s' => \$modified_aa, + 'n:i' => \$n_term_context_length, + 'c:i' => \$c_term_context_length, + 'mcd:i' => \$miscleavage_distance, # Minimal distance between a putative miscleavage site and the peptide termini. + # Uncleaved AAs closer to the peptide termini can be ignored with this parameter: + # A. To prevent overlap between cleavage and miscleavage peptide sequence contexts. + # B. To remove false positive miscleavage sites that cannot be cleaved, + # because one of the resulting fragments is too short. Sometimes proteases may need + # a minimal length surrounding the cleavage site to bind and cleave a peptide. + 'pc:s' => \$padding_character, + 'll:s' => \$log_level +); + +# +# TODO: 1. Handle --mcd param. Maybe should be extended to exclude also modification sites too close together... +# + +# +# Configure logging. +# +# Provides default if user did not specify log level: +$log_level = (defined($log_level) ? $log_level : 'INFO'); +# Reset log level to default if user specified illegal log level. +$log_level = (defined($log_levels{$log_level}) ? $log_levels{$log_level} : $log_levels{'INFO'}); +#Log::Log4perl->init('log4perl.properties'); +Log::Log4perl->easy_init( + #{ level => $log_level, + # file => ">>ExtractPeptideSequenceContext.log", + # layout => '%F{1}-%L-%M: %m%n' }, + { level => $log_level, + file => "STDOUT", + layout => '%d L:%L %p> %m%n' }, +); +my $logger = Log::Log4perl::get_logger(); + +# +# Check user input. +# +foreach my $input ($db, $db_alt, $fragments, $cleavage_output, $miscleavage_output, $modification_output) { + if (defined($input) && length($input) <= 0) { + $input = undef(); + } +} +unless (defined($db) && + defined($fragments) && + (defined($cleavage_output) || defined($miscleavage_output) || defined($modification_output) || defined($peptide_output)) +) { + $logger->fatal('You need to specify at least a DB & fragments file as inputs and at least one output file.'); + _Usage(); + exit; +} +if (defined($db_format)) { + unless ($db_format eq 'UniProtKB DAT' or $db_format eq 'FASTA') { + $logger->fatal('Database format in unsupported format.'); + $logger->fatal("\t" . 'Must be \'UniProtKB DAT\' or \'FASTA\'.'); + $logger->fatal("\t" . 'But --dbf was ' . $db_format . '.'); + exit; + } +} +if (defined($cleavage_aa)) { + unless ($cleavage_aa =~ m/^[*A-Z]$/) { + $logger->fatal('Cleavage amino acid in unsupported format.'); + $cleavage_aa = undef; + } +} +if (defined($cleavage_terminus)) { + unless ($cleavage_terminus =~ m/^[*CN]$/) { + $logger->fatal('Cleavage terminus in unsupported format.'); + $cleavage_terminus = undef; + } +} +if (defined($modified_aa)) { + unless ($modified_aa =~ m/^[*A-Z][a-z]+$/ || $modified_aa =~ m/^[a-z]+[*A-Z]$/) { + $logger->fatal('Modified amino acid in unsupported format.'); + $modified_aa = undef; + } +} +# +# We need info to extract: +# * cleavage site sequence contexts or +# * modification site sequence contexts or +# * peptide sequence contexts +# +if (defined($cleavage_output) || defined($miscleavage_output)) { + unless (defined($cleavage_aa) && defined($cleavage_terminus)) { + $logger->fatal('If you want to retrieve (mis)cleavage site sequence contexts, you must provide valid values for --ca and --ct.'); + $logger->debug('You specified --ca ' . $cleavage_aa . ' --ct ' . $cleavage_terminus . '.'); + _Usage(); + exit; + } +} +if (defined($modification_output)) { + unless (defined($modified_aa)) { + $logger->fatal('If you want to retrieve modifications site sequence contexts you must provide a valid value for --ma.'); + $logger->debug('You specified --ma ' . $modified_aa . '.'); + _Usage(); + exit; + } +} +if (defined($peptide_output)) { + # + # We can work with defaults for all params. + # +} + +# Make sure we don't overwrite the input. +foreach my $output ($cleavage_output, $miscleavage_output, $modification_output, $peptide_output) { + foreach my $input ($db, $db_alt, $fragments) { + if (defined($input) && defined($output) && $output eq $input) { + $logger->fatal('Output file ' . $output . ' is the same as input file ' . $input . '.'); + $logger->fatal("\t" . 'Please choose a different file for the output.'); + exit; + } + } +} +# Define defaults for optional arguments. +$index_id = (defined($index_id) && length($index_id) > 0 ? $index_id : 'AC'); +$id_column = (defined($id_column) && length($id_column) > 0 ? $id_column : 1); +$peptide_column = (defined($peptide_column) && length($peptide_column) > 0 ? $peptide_column : 2); +$n_term_context_length = (defined($n_term_context_length) && length($n_term_context_length) > 0 ? $n_term_context_length : 5); +$c_term_context_length = (defined($c_term_context_length) && length($c_term_context_length) > 0 ? $c_term_context_length : 5); +$padding_character = (defined($padding_character) ? $padding_character : '-'); +# Stripping of lowercase characters is disabled by default unless we search for modification site contexts in which case it must be enabled! +$strip_lc = (defined($strip_lc) ? $strip_lc : 0); +$strip_lc = (defined($modified_aa) ? 1 : $strip_lc); +unless (defined($miscleavage_distance) && $miscleavage_distance > 0) { + if ($n_term_context_length >= $c_term_context_length) { + $miscleavage_distance = $n_term_context_length; + } else { + $miscleavage_distance = $c_term_context_length; + } +} + + +# +# Check db files and fragments file. +# +unless (-e $db && -f $db && -r $db) { + $logger->fatal('Cannot read from database input file ' . $db . ': ' . $!); + exit; +} +if (defined($db_alt)) { + unless (-e $db_alt && -f $db_alt && -r $db_alt) { + $logger->fatal('Cannot read from alternative database input file ' . $db_alt . ': ' . $!); + exit; + } +} +unless (-e $fragments && -f $fragments && -r $fragments) { + $logger->fatal('Cannot read from fragments input file ' . $fragments . ': ' .$!); + exit; +} + +# +# Create lookup table(s) of the entire database input file(s). +# +my @db_lookup_table_refs; +(my $db_seqs, $index_id) = _CreateLookupHash($db, $index_id, $db_format); +my $seq_count = scalar(keys(%{$db_seqs})); +$logger->info('Number of sequences in database lookup table: ' . $seq_count); +push(@db_lookup_table_refs, $db_seqs); +# Optional backup DB file. +if (defined($db_alt)) { + (my $db_seqs_alt, $index_id) = _CreateLookupHash($db_alt, $index_id, $db_format); + my $seq_count_alt = scalar(keys(%{$db_seqs_alt})); + $logger->info('Number of sequences in backup database lookup table: ' . $seq_count_alt); + push(@db_lookup_table_refs, $db_seqs_alt); +} + +# +# Debugging loop +# +#foreach my $keyyy (keys(%{$db_seqs})) { +# $logger->fatal('Key: ' . $keyyy); +# $logger->fatal("\t" . 'AC: ' . ${$db_seqs}{$keyyy}{'AC'}); +# $logger->fatal("\t" . 'ID: ' . ${$db_seqs}{$keyyy}{'ID'}); +# $logger->fatal("\t" . 'SQ: ' . ${$db_seqs}{$keyyy}{'SQ'}); +#} + +# +# Lookup sequence fragment contexts and store results. +# +my ($counter_cleavages, $counter_miscleavages, $counter_modifications, $counter_peptides) = _ExtractSeqs(\@db_lookup_table_refs, + $fragments, $strip_lc, $id_column, $peptide_column, + $cleavage_output, $miscleavage_output, $modification_output, $peptide_output, + $cleavage_aa, $cleavage_terminus, $miscleavage_distance, + $n_term_context_length, $c_term_context_length, + $padding_character); +# +# Report result stats. +# +my $max_length = 0; +foreach my $counter ($counter_cleavages, $counter_miscleavages, $counter_modifications, $counter_peptides) { + $max_length = (length($counter) > $max_length) ? length($counter) : $max_length; +} +my $prefixed_counter = sprintf('%*s', $max_length, $counter_cleavages); +$logger->info('Extracted cleavage site sequence contexts: ' . $prefixed_counter . '.'); +$prefixed_counter = sprintf('%*s', $max_length, $counter_miscleavages); +$logger->info('Extracted miscleavage site sequence contexts: ' . $prefixed_counter . '.'); +$prefixed_counter = sprintf('%*s', $max_length, $counter_modifications); +$logger->info('Extracted modification site sequence contexts: ' . $prefixed_counter . '.'); +$prefixed_counter = sprintf('%*s', $max_length, $counter_peptides); +$logger->info('Extracted peptide sequence contexts: ' . $prefixed_counter . '.'); +$prefixed_counter = sprintf('%*s', $max_length, $counter_cleavages + $counter_miscleavages + $counter_modifications + $counter_peptides); +$logger->info('Total extracted sequence contexts: ' . $prefixed_counter . '.'); +$logger->info('Finished!'); + +# +## +### Internal subs. +## +# + +sub _CreateLookupHash { + + my ($file_path, $index_id, $file_type) = @_; + + my $file_path_fh; + my %seqs; + + if (defined($file_type)) { + $logger->info('Parsing ' . $file_type . ' file ' . $file_path . '...'); + } elsif ($file_path =~ m/($ps?)([^\.]+)\.dat$/i) { + $file_type = 'UniProtKB DAT'; + $logger->info('Parsing ' . $file_type . ' file ' . $file_path . '...'); + } elsif ($file_path =~ m/($ps?)([^\.]+)\.fa(sta)?$/i) { + $file_type = 'FASTA'; + # For FASTA files we don't know what to expect: + # IDs or ACcession numbers or a mix of both. + # (Re)set index_id type to AC to prevent adding redundant IDs to the results. + # Hence treat all identifiers stable and unstable as ACs. + # (Normally we default to ACcession numbers and if we would have found an AC + # and the input fragments file was using IDs, we would append the AC to the results.) + $index_id = 'AC'; + $logger->info('Parsing ' . $file_type . ' file ' . $file_path . '...'); + } else { + $file_type = 'FASTA'; + $index_id = 'AC'; + $logger->warn('Could not determine database file type based on the file name extension of ' . $file_path); + $logger->warn('Will assume it is a FASTA file and hope that is correct...'); + $logger->info('Parsing ' . $file_type . ' file ' . $file_path . '...'); + } + + if ($file_type eq 'UniProtKB DAT') { + + # + # Read an entire record delimited by // at a time. + # + local $/ = "\/\/\n"; + + eval { + open($file_path_fh, "<$file_path"); + }; + if ($@) { + $logger->fatal('Cannot read from database input file: ' . $@); + exit; + } + + while (<$file_path_fh>){ + + $logger->trace('Record:' . "\n$_\n"); + + my $entry = SWISS::Entry->fromText($_); + + my $id = $entry->ID; + my $acc = $entry->AC; + my $seq = $entry->SQ; + my $index_key; + + if ($index_id eq 'ID') { + $index_key = $id; + } elsif ($index_id eq 'AC') { + $index_key = $acc; + } else { + $logger->fatal('Unknown type of identifier used for indexing: ' . $index_id . '. Must be ID or AC.'); + exit; + } + + $logger->debug('Found accession ' . $acc); + $logger->trace('Found accession ' . $acc . ' with ID ' . $id . ' and seq ' . $seq); + + $seqs{$index_key}{'AC'} = $acc; + $seqs{$index_key}{'ID'} = $id; + $seqs{$index_key}{'SQ'} = $seq; + + } + + } elsif ($file_type eq 'FASTA') { + + my @header_ids = (); + my $seq = ''; + + eval { + open($file_path_fh, "<$file_path"); + }; + if ($@) { + $logger->fatal('Cannot read from database input file: ' . $@); + exit; + } + + LINE: while (my $line = <$file_path_fh>) { + + if ($line =~ m/^[\s\n\r]+$/) { + + # + # Skip blank line + # + $logger->debug('Found empty line in FASTA file.'); + next LINE; + + } elsif ($line =~ m/^[a-zA-Z]+/) { + + # + # It's a sequence line + # Remove all white space and new line characters. + # + $logger->debug('Found FASTA sequence line: ' . $line); + + $line =~ s/[\s\n\r]+//g; + $seq .= $line; + + } elsif ($line =~ m/^>/) { + + $logger->debug('Found new FASTA header line: ' . $line); + + if ((length($seq) > 0) && defined($header_ids[0])) { + + # + # Store the previously found sequence in the lookup table. + # + foreach my $header_id (@header_ids) { + + # + # We don't know if the ID we found is an accession number (stable ID) or a normal (unstable) ID + # -> Fill both the AC and ID fields with the same ID value. + # + $seqs{$header_id}{'AC'} = $header_id; + $seqs{$header_id}{'ID'} = $header_id; + $seqs{$header_id}{'SQ'} = $seq; + + $logger->debug('Stored ' . $header_id . ':'); + $logger->debug("\t" . 'SQ ' . $seq); + + } + + # + # Reset vars. + # + $seq = ''; + @header_ids = (); + + } + + # + # Check for the presence of some frequently occurring naming schemes: + # + # >IPI:CON_Trypsin|SWISS-PROT:P00761|TRYP_PIG Trypsin - Sus scrofa (Pig). + # >IPI:CON_IPI00174775.2|TREMBL:Q32MB2;Q86Y46 Tax_Id=9606 Gene_Symbol=KRT73 Keratin-73 + # >sp|Q42592|APXS_ARATH L-ascorbate peroxidase S, chloroplastic/mitochondrial; + # >jgi|Triad1|1|gw1.3.1.1 + # + # The FASTA header line can basically have any format. + # Therefore we try to see if the IDs we are looking for are present anywhere + # in the header line up until the first white space or new line. + # This should prevent matching annotation from other proteins in the description + # like a for example a 'best' BLAST hit that contains one of the IDs we + # are looking for. Hence, in such a case this sequence is *not* the one of + # the IDs we looking for, but similar to that one at best. + # + my @unfiltered_ids; + if ($line =~ m/^>((([^\s;|]+)[;|])*([^\s;|]+))[|;]?/i) { + + # + # Got multiple IDs + # + my $multiple_ids = $1; + @unfiltered_ids = split(/[\s;|]+/, $multiple_ids); + + } elsif ($line =~ m/^>([^\s]+)/i){ + + # + # Got a single ID + # + my $single_id = $1; + push(@unfiltered_ids, $single_id); + + } + + KEY:foreach my $unfiltered_id (@unfiltered_ids) { + + my $this_id = $unfiltered_id; + + # + # Check for RockerBox formattted IDs. + # + # Example of RockerBox ID format, which may contain + # * multiple IDs separated by semi-colons and + # * suffixed with the position of the peptide in the protein: + # YGR192C[123-142]; YJR009C[123-142] + if ($this_id =~ m/^([^\[\]]+)\[\d+-\d+\]$/i) { + $logger->trace('Protein ID in RockerBox format: ' . $this_id); + $this_id = $1; + $logger->trace("\t" . 'Using ID : ' . $this_id); + } + + # + # Check for DB namespace prefixes. + # + if ($this_id =~ m/([^:]+):([^:]+)/i) { + + # + # Namespace prefixed ID. + # + $logger->trace('Namespace prefixed ID: ' . $this_id); + + my $prefix = $1; + $this_id = $2; + + $logger->trace("\t" . 'Using ID: ' . $this_id); + + # + # For a selected list of "known" database namespace prefixes, + # check for versioned accession numbers and remove the version number. + # + if (defined($prefix) && defined($databases_with_optionally_versioned_ids{$prefix})) { + $logger->trace('Found prefix: ' . $prefix); + my $separator = $databases_with_optionally_versioned_ids{$prefix}; + $separator = '\\' . $separator; + if ($this_id =~ m/([^$separator]+)$separator\d+$/) { + $this_id = $1; + } + } + } + + $logger->debug('Found ID: ' . $this_id); + push(@header_ids, $this_id); + + } + +# if ($line =~ m/^>((([^\s\n\r:;|]+)[:]([^\s\n\r:|]+)[|;])*([^\s\n\r:;|]+)[:]([^\s\n\r:|]+))[|;]?(\s+(.+))?/i) { +# +# # +# # One or more namespace prefixed IDs. +# # +# my $concatenated_namespace_prefixed_ids = $1; +# $logger->debug('Found prefixed IDs in header: ' . $concatenated_namespace_prefixed_ids); +# +# # database_namespace = $3 && $5; +# # id = $4 && $6; +# # description = $8; +# my @namespace_prefixed_ids = split(/[|;]/, $concatenated_namespace_prefixed_ids); +# +# foreach my $prefixed_id (@namespace_prefixed_ids) { +# +# $logger->trace('Prefixed ID: ' . $prefixed_id); +# +# if ($prefixed_id =~ m/(([^\s\n\r:;|]+):)?([^\s\n\r:|]+)/i) { +# +# my $this_prefix = $2; +# my $this_id = $3; +# $logger->debug('Found ID: ' . $this_id); +# push(@header_ids, $this_id); +# +# # +# # For a selected list of "known" database namespace prefixes, +# # check for versioned accession numbers and - if found - add +# # both the versioned and the unversioned accession number +# # to the list of header IDs. +# # +# if (defined($this_prefix) && defined($databases_with_optionally_versioned_ids{$this_prefix})) { +# $logger->trace('Found prefix: ' . $this_prefix); +# my $separator = $databases_with_optionally_versioned_ids{$this_prefix}; +# $separator = '\\' . $separator; +# if ($this_id =~ m/([^$separator]+)$separator\d+$/) { +# my $this_unversioned_id = $1; +# $logger->debug('Found unversioned ID: ' . $this_unversioned_id); +# push(@header_ids, $this_unversioned_id); +# } +# } +# +# } else { +# +# $logger->warn( +# 'This should have been an optionally prefixed ID, ' +# . 'but failed to match the corresponding regex: ' +# . $prefixed_id); +# +# } +# } +# +# } elsif ($line =~ m/^>((([^\s\n\r:;|]+)[|;])*([^\s\n\r:;|]+))[|;]?(\s+(.+))?/i) { +# +# # +# # One or more unprefixed IDs. +# # +# my $concatenated_ids = $1; +# $logger->debug('Found unprefixed IDs in header: ' . $concatenated_ids); +# +# # id = $3 && $4; +# # description = $7; +# my @unprefixed_ids = split(/[|;]/, $concatenated_ids); +# +# foreach my $unprefixed_id (@unprefixed_ids) { +# +# $logger->debug('Found ID: ' . $unprefixed_id); +# push(@header_ids, $unprefixed_id); +# +# } +# +# } else { +# +# # +# # Something else. +# # +# # The FASTA header line can basically have any format, +# # so this is probably one of the less frequent occurring annotation schemes. +# # Therefore we try to see if the IDs we are looking for are present anywhere +# # in the header line up until the first white space or new line. +# # This may be tricky as we might match other annotation from other proteins +# # like a description from a 'best' BLAST hit that contains one of the IDs we +# # are looking for. Hence, in such a case this sequence is *not* the one of +# # the IDs we looking for, but similar to that one at best. +# # +# if ($line =~ m/>([^\n\r\s]+)/) { +# +# my $putative_id = $1; +# $logger->debug('Found putative ID in header: ' . $putative_id); +# push(@header_ids, $putative_id); +# +# } else { +# $logger->warn('Cannot identify IDs in this header: ' . $line); +# } +# } + } + } + + # + # Store the last found sequence in the lookup table. + # + foreach my $header_id (@header_ids) { + + # + # We don't know if the ID we found is an accession number (stable ID) or a normal (unstable) ID + # -> Fill both the AC and ID fields with the same ID value. + # + $seqs{$header_id}{'AC'} = $header_id; + $seqs{$header_id}{'ID'} = $header_id; + $seqs{$header_id}{'SQ'} = $seq; + + $logger->debug('Stored ' . $header_id . ':'); + $logger->debug("\t" . 'SQ ' . $seq); + + } + + # + # Reset vars. + # + $seq = ''; + @header_ids = (); + + } + + close($file_path_fh); + $logger->info('Created lookup list for database sequences.'); + + return (\%seqs, $index_id); + +} + +sub _ExtractSeqs { + + my ($db_lookup_table_refs, + $path_from, $strip_lc, $id_column, $peptide_column, + $cleavage_path_to, $miscleavage_path_to, $modification_path_to, $peptide_path_to, + $cleavage_aa, $cleavage_terminus, $miscleavage_distance, + $n_term_context_length, $c_term_context_length, + $padding_character) = @_; + + $logger->debug('Parsing ' . $path_from . '...'); + + my $extracted_seq_contexts_cle = 0; + my $extracted_seq_contexts_mis = 0; + my $extracted_seq_contexts_mod = 0; + my $extracted_seq_contexts_pep = 0; + my $path_from_fh; + my $cleavage_path_to_fh; + my $miscleavage_path_to_fh; + my $modification_path_to_fh; + my $peptide_path_to_fh; + + eval { + open($path_from_fh, "<$path_from"); + }; + if ($@) { + $logger->fatal('Cannot read from fragments input file: ' . $@); + exit; + } + if (defined($cleavage_path_to)) { + eval { + open($cleavage_path_to_fh, ">$cleavage_path_to"); + }; + if ($@) { + $logger->fatal('Cannot write to output file: ' . $@); + exit; + } + } + if (defined($miscleavage_path_to)) { + eval { + open($miscleavage_path_to_fh, ">$miscleavage_path_to"); + }; + if ($@) { + $logger->fatal('Cannot write to output file: ' . $@); + exit; + } + } + if (defined($modification_path_to)) { + eval { + open($modification_path_to_fh, ">$modification_path_to"); + }; + if ($@) { + $logger->fatal('Cannot write to output file: ' . $@); + exit; + } + } + if (defined($peptide_path_to)) { + eval { + open($peptide_path_to_fh, ">$peptide_path_to"); + }; + if ($@) { + $logger->fatal('Cannot write to output file: ' . $@); + exit; + } + } + + LINE:while (my $line = <$path_from_fh>) { + + # + # Remove (trailing) line end characters! + # + $line =~ s/[\n\r\f]+//g; + $logger->trace($line); + + my @column_values = split(/\t/, $line); + + # For debugging only. + #foreach my $val (@column_values) { + # $logger->debug('Col val: ' . $val); + #} + + my $id_column_index = $id_column - 1; + my $peptide_column_index = $peptide_column - 1; + my $unfiltered_key = $column_values[$id_column_index]; + my $key; + my @keys; + my $peptide = $column_values[$peptide_column_index]; + my $peptide_nonmod; + my $protein; + my $acc; + my $id; + my $index = -1; # An index < 0 indicates the peptide was not found in a protein sequence (yet). + my $length; + my $cleavage_peptide_contexts = []; + my $miscleavage_peptide_contexts = []; + my $modification_peptide_contexts = []; + my $peptide_contexts = []; + + # + # Check if $key and $peptide were present in this line. + # If not this may be a leading/trailing empty or meta-data line, + # that does not contain the correct amount of columns. + # + unless (defined($unfiltered_key) && defined($peptide)) { + $logger->warn('Skipping line: ' . $line); + $logger->warn("\t" . '(Peptide sequence and/or protein ID missing or incorrect amount of columns.)'); + next LINE; + } + + # + # Sanity check for peptide sequences. + # + unless ($peptide =~ m/([a-zA-Z]+)/) { + $logger->warn('Fragment file line in unexpected format. Cannot find peptide in: ' . $line); + $logger->debug('$peptide contains: ' . $peptide); + next LINE; + } + + if ($strip_lc) { + # Remove lower case characters representing modifications. + $peptide_nonmod = $peptide; + $peptide_nonmod =~ s/[a-z]+//g; + } else { + # Convert everything to uppercase. + $peptide_nonmod = uc($peptide); + } + + # + # Figure out in what format the Protein ID(s) were supplied. + # + # * Strip off optional DB namespace prefixes. + # * Handle optional accession number version suffixes. + # + if ($unfiltered_key =~ m/^((([^\s;|]+)[\s;|]+)*([^\s;|]+))[\s|;]?/i) { + + # + # Got multiple IDs + # + my $multiple_ids = $1; + @keys = split(/[\s;|]+/, $multiple_ids); + + } else { + + # + # Got a single ID + # + push(@keys, $unfiltered_key); + + } + + KEY:foreach $unfiltered_key (@keys) { + + $key = $unfiltered_key; + + # + # Check for RockerBox formattted IDs. + # + # Example of RockerBox ID format, which may contain + # * multiple IDs separated by semi-colons and + # * suffixed with the position of the peptide in the protein: + # YGR192C[123-142]; YJR009C[123-142] + if ($key =~ m/^([^\[]+)\[\d+-\d+\]$/i) { + $logger->trace('Protein ID in RockerBox format: ' . $key); + $key = $1; + $logger->trace("\t" . 'Using ID : ' . $key); + } + + # + # Check for DB namespace prefixes. + # + if ($key =~ m/([^:]+):([^:]+)/i) { + + # + # Namespace prefixed ID. + # + $logger->trace('Namespace prefixed ID: ' . $key); + + my $prefix = $1; + $key = $2; + + $logger->trace("\t" . 'Using ID: ' . $key); + + # + # For a selected list of "known" database namespace prefixes, + # check for versioned accession numbers and remove the version number. + # + if (defined($prefix) && defined($databases_with_optionally_versioned_ids{$prefix})) { + $logger->trace('Found prefix: ' . $prefix); + my $separator = $databases_with_optionally_versioned_ids{$prefix}; + $separator = '\\' . $separator; + if ($key =~ m/([^$separator]+)$separator\d+$/) { + $key = $1; + } + } + } + + $logger->debug('Found ID: ' . $key); + + # + # Sanity check for Protein ID. + # + unless ($key =~ m/^([A-Z0-9\._-]+)$/i) { + $logger->warn('Fragment file line in unexpected format. Cannot find sequence ID in:'); + $logger->warn("\t" . $line); + $logger->debug('$key contains: ' . $key); + next LINE; + } + + # + # Lookup info for the protein this peptide was derived from. + # + ($protein, $acc, $id, $index) = _LookupProteinInfo($key, $peptide_nonmod, $db_lookup_table_refs); + + # + # Check if the peptide (fragment) was found in this protein sequence. + # + if (defined($protein)) { + if ($index > -1) { + $logger->trace('Found peptide sequence in protein ' . $key); + last KEY; + } else { + $logger->warn('Cannot find peptide (' . $peptide_nonmod . ') in protein ' . $key); + $logger->warn("\t" . 'Will try other protein IDs for this peptide if available.'); + } + } else { + $logger->warn('Cannot find protein identifier ' . $key . ' in any of the supplied databases.'); + $logger->warn("\t" . 'Will try other protein IDs for this peptide if available.'); + } + } + + # + # Check if the peptide (fragment) was found in any of the associated protein sequences. + # + if (defined($protein)) { + + $logger->debug('Found protein ' . $key); + + if ($index > -1) { + + $logger->debug('Found peptide (' . $peptide_nonmod . ') in protein ' . $key); + + if (defined($cleavage_path_to)) { + ($cleavage_peptide_contexts) = _GetCleavageSequenceContexts($peptide_nonmod, $protein, $key, $index, + $cleavage_aa, $cleavage_terminus); + } + if (defined($miscleavage_path_to)) { + ($miscleavage_peptide_contexts) = _GetMiscleavageSequenceContexts($peptide_nonmod, $protein, $key, $index, + $cleavage_aa, $cleavage_terminus, $miscleavage_distance); + } + if (defined($modification_path_to)) { + ($modification_peptide_contexts) = _GetModificationSequenceContexts($peptide_nonmod, $protein, $key, $index, + $modified_aa, $peptide); + } + if (defined($peptide_path_to)) { + ($peptide_contexts) = _GetPeptideSequenceContexts($peptide_nonmod, $protein, $key, $index); + } + } else { + $logger->error('Cannot find peptide (' . $peptide_nonmod . ') in protein ' . $key); + $acc = 'NA'; + } + } else { + $logger->error('Cannot find protein "' . $unfiltered_key . '" in any of the supplied databases.'); + $acc = 'NA'; + } + + # + # Append the peptide contexts to the existing lines of the fragment file and save that new line to the output file. + # + $extracted_seq_contexts_cle = _SaveSequenceContexts($line, $acc, $cleavage_peptide_contexts, + $cleavage_path_to_fh, $extracted_seq_contexts_cle); + + $extracted_seq_contexts_mis = _SaveSequenceContexts($line, $acc, $miscleavage_peptide_contexts, + $miscleavage_path_to_fh, $extracted_seq_contexts_mis); + + $extracted_seq_contexts_mod = _SaveSequenceContexts($line, $acc, $modification_peptide_contexts, + $modification_path_to_fh, $extracted_seq_contexts_mod); + + $extracted_seq_contexts_pep = _SaveSequenceContexts($line, $acc, $peptide_contexts, + $peptide_path_to_fh, $extracted_seq_contexts_pep); + + } + + # + # Close file handles. + # + foreach my $fh ($path_from_fh, $cleavage_path_to_fh, $miscleavage_path_to_fh, $modification_path_to_fh, $peptide_path_to_fh) { + if (defined($fh)) { + close($fh); + } + } + + return($extracted_seq_contexts_cle, $extracted_seq_contexts_mis, $extracted_seq_contexts_mod, $extracted_seq_contexts_pep); + +} + +sub _LookupProteinInfo { + + my ($key, $peptide, $db_lookup_table_refs) = @_; + + my $protein_found_in_db = 0; + my $protein; + my $acc; + my $id; + my $index; + + DB_LOOKUP:foreach my $db_lookup_table_ref (@{$db_lookup_table_refs}) { + + if (defined(${$db_lookup_table_ref}{$key})) { + + $protein_found_in_db = 1; + $logger->debug('Found protein ' . $key . ' in this sequence DB.'); + + $protein = ${$db_lookup_table_ref}{$key}{'SQ'}; + $acc = ${$db_lookup_table_ref}{$key}{'AC'}; + $id = ${$db_lookup_table_ref}{$key}{'ID'}; + # + # Find peptide (fragment) in DB protein sequence. + # + $index = index($protein, $peptide); + + if ($index > -1) { + + # + # Found peptide! + # + $logger->debug('Found peptide ' . $peptide . ' at position ' . $index . ' in protein ' . $key); + last DB_LOOKUP; + + } + + # + # If the input was based on mass spectrometry data we cannot see + # the difference between I (Isolucene) and L (Leucine) as the both + # weigh the same. Let's try an I agnostic search by substituting all + # Is for Ls. + # + my $protein_l_only = $protein; + my $peptide_l_only = $peptide; + $protein_l_only =~ s/I/L/g; + $peptide_l_only =~ s/I/L/g; + $index = index($protein_l_only, $peptide_l_only); + + if ($index > -1) { + + # + # Found peptide! + # + $logger->debug('Found peptide ' . $peptide . ' at position ' . $index . ' in protein ' . $key); + $logger->debug("\t" . 'Had to treat I and L as the same amino acid in the DB search to get a match.'); + last DB_LOOKUP; + + } + + # + # Cannot find peptide :( + # + $protein = undef; + $acc = undef; + $id = undef; + + $logger->debug('Cannot find peptide (' . $peptide . ') in protein ' . $key); + $logger->debug("\t" . 'This may be the result of an updated protein sequence in the database.'); + $logger->debug("\t" . 'Will try to find the peptide in other databases (if available).'); + + if ($strip_lc) { + $logger->debug("\t" . '(Stripping of lowercase characters, indicating modifications in the peptide sequence, was enabled.)'); + } else { + $logger->debug("\t" . '(Stripping of lowercase characters, indicating modifications in the peptide sequence, was *not* enabled.)'); + } + + } else { + $logger->debug('Protein ' . $key . ' missing from this sequence DB. Will try other databases (if available).'); + } + } + + # + # Check if the peptide (fragment) was found in a DB protein sequence. + # + if ($protein_found_in_db == 1) { + unless ($index > -1) { + $logger->warn('Cannot find peptide (' . $peptide . ') in protein ' . $key); + $logger->warn("\t" . 'Will try to find this peptide (' . $peptide . ') using other associated protein identifiers (if available).'); + } + } else { + $logger->warn('Cannot find protein ' . $key . ' in any of the supplied databases.'); + } + + return($protein, $acc, $id, $index); +} + +sub _GetCleavageSequenceContexts { + + my ($peptide, $protein, $key, $index, $cleavage_aa, $cleavage_terminus) = @_; + + my %peptide_contexts; + $peptide_contexts{'n_term'}{'context'} = ''; + $peptide_contexts{'c_term'}{'context'} = ''; + my $max_context_length = $n_term_context_length + $c_term_context_length; + + foreach my $peptide_term (keys(%peptide_contexts)) { + + # + # Get the offset for the sequence contexts to retrieve from this peptide terminus + # or drop the context for this peptide terminus if it is also the protein terminus. + # + if ($peptide_term eq 'n_term') { + if ($index > 0) { + # This is an N-terminal peptide context. + my $offset = $index - $n_term_context_length; + $peptide_contexts{$peptide_term}{'offset'} = $offset; + $logger->debug('Offset = ' . $offset . ' for ' . $peptide_term . ' of peptide ' . $peptide . ' in protein ' . $key . '.'); + } else { + # Peptide N-terminus == Protein N-terminus. + $logger->warn('Peptide N-terminus = protein N-terminus. Dropping N-terminal sequence context for peptide ' . $peptide . + ' in protein ' . $key . '.'); + next; + } + } elsif ($peptide_term eq 'c_term') { + if (($index + length($peptide)) < length($protein)) { + # This is a C-terminal peptide context. + my $offset = ($index + length($peptide))- $n_term_context_length; + $peptide_contexts{$peptide_term}{'offset'} = $offset; + $logger->debug('Offset = ' . $offset . ' for ' . $peptide_term . ' of peptide ' . $peptide . ' in protein ' . $key . '.'); + } else { + # Peptide C-terminus == Protein C-terminus. + $logger->warn('Peptide C-terminus = protein C-terminus. Dropping C-terminal sequence context for peptide ' . $peptide . + ' in protein ' . $key . '.'); + next; + } + } + + # + # Check if DB protein sequence is long enough on n-terminal side + # to retrieve full length peptide contexts. + # (c-term length is checked later...) + # + if ($peptide_contexts{$peptide_term}{'offset'} < 0) { + + # + # Protein too short for full length context: Calculate offset adjustment. + # + my $offset = $peptide_contexts{$peptide_term}{'offset'}; + my $offset_adjustment = -($offset); + $peptide_contexts{$peptide_term}{'offset_adjustment'} = $offset_adjustment; + $logger->debug('Offset ' . $offset . ' for ' . $peptide_term . ' of peptide ' . $peptide . ' in protein ' . $key . ' less than zero'); + + if (length($padding_character) == 1) { + + # + # Add N-terminal padding characters for contexts that are too short on the N-terminal side. + # + my $n_term_padding = "$padding_character" x $offset_adjustment; + $peptide_contexts{$peptide_term}{'context'} = $n_term_padding; + $logger->debug("\t" . 'Will add N-terminal padding: ' . $n_term_padding); + + } else { + $logger->debug('Padding was disabled. Will not add n-term padding.'); + } + + $peptide_contexts{$peptide_term}{'offset'} = 0; + + } else { + + $peptide_contexts{$peptide_term}{'offset_adjustment'} = 0; + + } + + # + # Extract sequence context from DB protein sequence. + # + my $peptide_context = substr($protein, $peptide_contexts{$peptide_term}{'offset'}, + $max_context_length - $peptide_contexts{$peptide_term}{'offset_adjustment'}); + # append the context extracted from the protein sequence, + # because there may be already some N-terminal padding... + $peptide_contexts{$peptide_term}{'context'} .= $peptide_context; + + # + # Quality Control: Check enzyme specificity for enzymes with known (= user supplied) specs. + # + unless ($cleavage_aa eq '*') { + + $peptide_context = $peptide_contexts{$peptide_term}{'context'}; + my $p1 = substr($peptide_context, ($n_term_context_length -1), 1); + my $p1_prime = substr($peptide_context, $n_term_context_length, 1); + + if ($cleavage_terminus eq 'C') { + + if ($p1 eq $cleavage_aa) { + # Peptide fragment contains the AA recognised by the protease. + $logger->debug('Specific protease activity -> Retaining peptide context.'); + } else { + # Must be non-specific cleavage -> drop peptide context. + $logger->warn('Non-specific cleavage: dropping ' . $peptide_term . ' peptide context ' . $peptide_context . + ' for peptide ' . $peptide . ' in protein ' . $key); + $peptide_contexts{$peptide_term}{'context'} = ''; + } + + } elsif ($cleavage_terminus eq 'N') { + + if ($p1_prime eq $cleavage_aa) { + # Peptide fragment contains the AA recognised by the protease. + $logger->debug('Specific protease activity -> Retaining peptide context.'); + } else { + # Must be non-specific cleavage -> drop peptide context. + $logger->warn('Non-specific cleavage: dropping ' . $peptide_term . ' peptide context ' . $peptide_context . + ' for peptide ' . $peptide . ' in protein ' . $key); + $peptide_contexts{$peptide_term}{'context'} = ''; + } + + } elsif ($cleavage_terminus eq '*') { + + if (($p1 eq $cleavage_aa) || ($p1_prime eq $cleavage_aa)) { + # Peptide fragment contains the AA recognised by the protease. + $logger->debug('Specific protease activity -> Retaining peptide context.'); + } else { + # Must be non-specific cleavage -> drop peptide context. + $logger->warn('Non-specific cleavage: dropping ' . $peptide_term . ' peptide context ' . $peptide_context . + ' for peptide ' . $peptide . ' in protein ' . $key); + $peptide_contexts{$peptide_term}{'context'} = ''; + } + + } else { + $logger->fatal('Unknown cleavage terminus ' . $cleavage_terminus . '. Must be C, N or *.'); + exit; + } + } + } + + push(my @contexts, $peptide_contexts{'n_term'}{'context'}, $peptide_contexts{'c_term'}{'context'}); + + if (length($padding_character) == 1) { + _CheckSequenceContextLength(\@contexts, $peptide, $key, $max_context_length); + } else { + $logger->debug('Padding was disabled. Will not add c-term padding nor check sequence context length.'); + } + + return(\@contexts); + +} + +sub _GetMiscleavageSequenceContexts { + + my ($peptide, $protein, $key, $petide_index, $cleavage_aa, $cleavage_terminus, $miscleavage_distance) = @_; + + my @peptide_contexts; + my $max_context_length = $n_term_context_length + $c_term_context_length; + + # + # Find miscleavage sites in peptide. + # + # TODO: handle --mcd + # + my @amino_acids = split('', $peptide); + my $aa_index = 0; + # + # Drop first and last amino acids as these are from cleavage sites or from the protein termini. + # In either case they cannot represent a miscleavage site. + # + shift(@amino_acids); + pop(@amino_acids); + + foreach my $aa (@amino_acids) { + + $aa_index++; + + if ($aa eq $cleavage_aa) { + + # + # We found a miscleavage site. + # + $logger->debug('Found miscleavage site in peptide ' . $peptide . ' of protein ' . $key . '.'); + # + # Get the offset for the sequence context. + # + my $offset = $petide_index + $aa_index - $n_term_context_length; + $logger->debug("\t" . 'Offset = ' . $offset . '.'); + my $n_term_padding = ''; + my $offset_adjustment = 0; + + if ($cleavage_terminus eq 'C') { + + # + # Must increment the offset with 1 if the protease cuts C-terminal of a recognition site. + # + $offset++; + + } + + # + # Check if DB protein sequence is long enough on n-terminal side + # to retrieve full length peptide contexts. + # (c-term length is checked elsewhere.) + # + if ($offset < 0) { + + # + # Protein too short for full length context: Calculate offset adjustment. + # + $offset_adjustment = -($offset); + $logger->debug('Offset ' . $offset . ' for miscleavage context in peptide ' . $peptide . ' in protein ' . $key . ' less than zero'); + + if (length($padding_character) == 1) { + + # + # Add N-terminal padding characters for contexts that are too short on the N-terminal side. + # + $n_term_padding = "$padding_character" x $offset_adjustment; + $logger->debug("\t" . 'Will add N-terminal padding: ' . $n_term_padding); + + } else { + $logger->debug('Padding was disabled. Will not add n-term padding.'); + } + + # + # Reset offset for this context to protein start. + # + $offset = 0; + + } + + # + # Extract sequence context from DB protein sequence. + # + my $peptide_context = substr($protein, $offset, $max_context_length - $offset_adjustment); + $peptide_context = $n_term_padding . $peptide_context; + $logger->debug('Found miscleavage context: ' . $peptide_context . '.'); + + push(@peptide_contexts, $peptide_context); + } + } + + if (length($padding_character) == 1) { + _CheckSequenceContextLength(\@peptide_contexts, $peptide, $key, $max_context_length); + } else { + $logger->debug('Padding was disabled. Will not add c-term padding nor check sequence context length.'); + } + + return(\@peptide_contexts); + +} + +sub _GetModificationSequenceContexts { + + my ($peptide, $protein, $key, $petide_index, $modified_aa, $modified_peptide) = @_; + + my @peptide_contexts; + my $modified_aa_index_adjustment; + my @modified_aa_in_peptide_indices; + my $modified_aa_in_protein_index; + my $max_context_length = $n_term_context_length + 1 + $c_term_context_length; + #my $offset = 0; + my $modified_aa_in_modified_peptide_index; + my $modified_peptide_remainder; + my $processed_peptide_length = 0; + + # + # Find amino acid in the string identifying both the modified amino acid and the modification. + # + if ($modified_aa =~ m/^([a-z]+)[A-Z*]$/) { + + $modified_aa_index_adjustment = length($1); + + } elsif ($modified_aa =~ m/^[A-Z*][a-z]$/) { + + $modified_aa_index_adjustment = 0; + + } else { + + $logger->fatal('Modified amino acid was specified in an unsupported format: ' . $modified_aa . '.'); + exit; + + } + + # + # Find modified sites in peptide. + # + my $modified_aa_for_regex = $modified_aa; + $modified_aa_for_regex =~ s/\*/[A-Z]/; + $logger->debug('modified_aa for search: ' . $modified_aa_for_regex); + if ($modified_peptide =~ m/$modified_aa_for_regex/) { + $logger->debug("\t" . 'Peptide contains mods.'); + $modified_aa_in_modified_peptide_index = $-[0]; + $modified_peptide_remainder = $'; + my $modified_peptide_prefix = $`; + $logger->trace("\t\t" . 'Processed pep length = ' . $processed_peptide_length); + $processed_peptide_length += length($modified_peptide_prefix); + $logger->trace("\t\t" . 'Processed pep length = ' . $processed_peptide_length); + $processed_peptide_length += length($modified_aa); + $logger->trace("\t\t" . 'Processed pep length = ' . $processed_peptide_length); + $logger->trace("\t\t" . 'Index for mod :' . $modified_aa_in_modified_peptide_index); + } else { + $logger->debug('No modified amino acids found in this peptide.'); + } + + #my $modified_aa_in_modified_peptide_index = index($modified_peptide, $modified_aa); + + while (defined($modified_aa_in_modified_peptide_index)) { + + $modified_aa_in_modified_peptide_index += $modified_aa_index_adjustment; + $logger->debug('Found modified amino acid at position ' . ($modified_aa_in_modified_peptide_index + 1) . ' in modified peptide ' . $modified_peptide . ' of protein ' . $key . '.'); + + # + # Count all modifications of any type preceeding the found modified amino acid. + # + my $modified_n_term = substr($modified_peptide, 0, $modified_aa_in_modified_peptide_index); + my $n_term = $modified_n_term; + $n_term =~ s/[a-z]+//g; + my $mod_count = length($modified_n_term) - length($n_term); + + if ($mod_count >= 0) { + $logger->debug(' counted modifications preceeding amino acid = ' . $mod_count); + } else { + $logger->fatal(' counted modifications preceeding amino acid is negative: ' . $mod_count); + exit; + } + + # + # We need to substract the amount of mods preceeding the identified amino acid + # from the index to get the position of the amino acid in the unmodified peptide. + # + my $modified_aa_in_peptide_index = $modified_aa_in_modified_peptide_index - $mod_count; + $logger->debug(' and at position ' . ($modified_aa_in_peptide_index + 1) . ' in peptide ' . $peptide . ' of protein ' . $key . '.'); + + push(@modified_aa_in_peptide_indices, $modified_aa_in_peptide_index); + + # + # Search for additional mods in the modified peptide. + # + #$offset = $modified_aa_in_modified_peptide_index + 1; + #$modified_aa_in_modified_peptide_index = index($modified_peptide, $modified_aa, $offset); + if ($modified_peptide_remainder =~ m/$modified_aa_for_regex/) { + $logger->debug("\t" . 'Peptide contains more mods.'); + $modified_peptide_remainder = $'; + my $modified_peptide_prefix = $`; + $logger->trace("\t\t" . 'Processed pep length = ' . $processed_peptide_length); + $modified_aa_in_modified_peptide_index = $-[0] + $processed_peptide_length; + $logger->trace("\t\t" . 'Index for mod :' . $modified_aa_in_modified_peptide_index); + $processed_peptide_length += length($modified_peptide_prefix); + $logger->trace("\t\t" . 'Processed pep length = ' . $processed_peptide_length); + $processed_peptide_length += length($modified_aa); + $logger->trace("\t\t" . 'Processed pep length = ' . $processed_peptide_length); + } else { + $modified_aa_in_modified_peptide_index = undef(); + $logger->debug('No more modified amino acids found in this peptide.'); + } + } + + # + # Retrieve sequence contexts for modified stites from protein sequence + # + foreach my $modified_aa_in_peptide_index (@modified_aa_in_peptide_indices) { + + # + # Get the offset for the sequence context. + # + my $offset = $petide_index + $modified_aa_in_peptide_index - $n_term_context_length; + $logger->debug("\t" . 'Offset = ' . $offset . '.'); + my $n_term_padding = ''; + my $offset_adjustment = 0; + + # + # Check if DB protein sequence is long enough on n-terminal side + # to retrieve full length peptide contexts. + # (c-term length is checked elsewhere.) + # + if ($offset < 0) { + + # + # Protein too short for full length context: Calculate offset adjustment. + # + $offset_adjustment = -($offset); + $logger->debug('Offset ' . $offset . ' for modification context in peptide ' . $peptide . ' in protein ' . $key . ' less than zero'); + + if (length($padding_character) == 1) { + + # + # Add N-terminal padding characters for contexts that are too short on the N-terminal side. + # + $n_term_padding = "$padding_character" x $offset_adjustment; + $logger->debug("\t" . 'Will add N-terminal padding: ' . $n_term_padding); + + } else { + $logger->debug('Padding was disabled. Will not add n-term padding.'); + } + + # + # Reset offset for this context to protein start. + # + $offset = 0; + + } + + # + # Extract sequence context from DB protein sequence. + # + my $peptide_context = substr($protein, $offset, $max_context_length - $offset_adjustment); + $peptide_context = $n_term_padding . $peptide_context; + $logger->debug('Found modification context: ' . $peptide_context . '.'); + + push(@peptide_contexts, $peptide_context); + + } + + if (length($padding_character) == 1) { + _CheckSequenceContextLength(\@peptide_contexts, $peptide, $key, $max_context_length); + } else { + $logger->debug('Padding was disabled. Will not add c-term padding nor check sequence context length.'); + } + + return(\@peptide_contexts); + +} + +# +# TODO: pep contexts. +# +sub _GetPeptideSequenceContexts { + + my ($peptide, $protein, $key, $peptide_index) = @_; + + my @peptide_contexts; + my $max_context_length = $n_term_context_length + length($peptide) + $c_term_context_length; + + # + # Get the offset for the peptide sequence context. + # + my $offset = $peptide_index - $n_term_context_length; + $logger->debug("\t" . 'Offset = ' . $offset . '.'); + my $n_term_padding = ''; + my $offset_adjustment = 0; + + # + # Check if DB protein sequence is long enough on n-terminal side + # to retrieve full length peptide contexts. + # (c-term length is checked elsewhere.) + # + if ($offset < 0) { + + # + # Protein too short for full length context: Calculate offset adjustment. + # + $offset_adjustment = -($offset); + $logger->debug('Offset ' . $offset . ' for peptide context of peptide ' . $peptide . ' in protein ' . $key . ' less than zero'); + + if (length($padding_character) == 1) { + + # + # Add N-terminal padding characters for contexts that are too short on the N-terminal side. + # + $n_term_padding = "$padding_character" x $offset_adjustment; + $logger->debug("\t" . 'Will add N-terminal padding: ' . $n_term_padding); + + } else { + $logger->debug('Padding was disabled. Will not add n-term padding.'); + } + + # + # Reset offset for this context to protein start. + # + $offset = 0; + + } + + # + # Extract sequence context from DB protein sequence. + # + my $peptide_context = substr($protein, $offset, $max_context_length - $offset_adjustment); + $peptide_context = $n_term_padding . $peptide_context; + $logger->debug('Found modification context: ' . $peptide_context . '.'); + + push(@peptide_contexts, $peptide_context); + + if (length($padding_character) == 1) { + _CheckSequenceContextLength(\@peptide_contexts, $peptide, $key, $max_context_length); + } else { + $logger->debug('Padding was disabled. Will not add c-term padding nor check sequence context length.'); + } + + return(\@peptide_contexts); + +} + +sub _CheckSequenceContextLength { + + my ($contexts, $peptide, $key, $max_context_length) = @_; + + # + # If padding was enabled for sequence contexts < max sequence context length. + # + foreach my $peptide_context (@{$contexts}) { + + my $peptide_context_length = length($peptide_context); + + if ($peptide_context_length < $max_context_length) { + + # + # sequence context < max sequence context length -> append c-term padding. + # (n-term padding was already appended if necessary during sequence context lookup with _GetSequenceContext().) + # + my $c_term_padding = "$padding_character" x ($max_context_length - $peptide_context_length); + $logger->debug('Length of peptide context (' . $peptide_context_length . ') < max context length.'); + $logger->debug("\t" . 'Will add C-terminal padding: ' . $c_term_padding); + $peptide_context = $peptide_context . $c_term_padding; + + } + + # + # Sanity check for padded sequence contexts. + # + # (Checks if the combined effect of n-term and c-term padding worked well.) + # + $peptide_context_length = length($peptide_context); + unless ($peptide_context_length == $max_context_length) { + $logger->fatal('Length of peptide context too short or too long for peptide ' . $peptide . ' in protein ' . $key); + $logger->fatal("\t" . 'Context length is ' . $peptide_context_length . ', but should be ' . $max_context_length . '.'); + exit; + } + } + + # + # No need to return the modified (c-terminal-padded) contexts as we worked with a arrayref. + # + +} + +sub _SaveSequenceContexts { + + my ($line, $acc, $contexts, $path_to_fh, $extracted_seq_contexts) = @_; + + # + # Append the peptide contexts to the existing line of the fragment file and + # save that new line to the output file. + # By appending we keep all info from the original fragment file intact. + # + foreach my $context (@{$contexts}) { + + # + # Skip "empty"/"missing" contexts. + # May be the result of: + # 1. The peptide terminus being also the protein terminus. + # 2. Proteins missing from the database. + # 3. ... + # + if ($padding_character ne '') { + if ($context =~ m/^($padding_character)+$/) { + next; + } + } else { + if ($context eq '') { + next; + } + } + + my $new_line = $line; + + # 1. Append accession numbers if the fragment file used IDs. + if ($index_id eq 'ID') { + $new_line .= "\t" . $acc; + } + + # 2. Append sequence context. + $new_line .= "\t" . $context; + # 3. Append new line character. + $new_line .= "\n"; + # Save result to disk. + print($path_to_fh $new_line); + $extracted_seq_contexts++; + + } + + return($extracted_seq_contexts); + +} + +sub _Usage { + + + print STDOUT "\n" . + 'ExtractPeptideSequenceContext.pl: Extract sequence contexts of cleavage, miscleavage or modification sites ' . "\n" . + ' based on sequence fragments (like peptides experimentally identified with MSMS) ' . "\n" . + ' and protein sequences from a database in FASTA or UniProtKB file format.' . "\n" . + "\n" . + 'Usage:' . "\n" . + "\n" . + ' ExtractPeptideSequenceContext.pl options' . "\n" . + "\n" . + 'Available options are:' . "\n" . + "\n" . + ' --db [file] Input file containing all database sequences in either UniProtKB *.dat or *.fasta format.' . "\n" . + ' --dba [file] Optional alternative / backup input file containing database sequences in either UniProtKB *.dat or *.fasta format.' . "\n" . + ' This may be a slightly older or newer version of the database, which will be searched in case a ' . "\n" . + ' sequence ID was not found in the primary database file that was specified with --db [file].' . "\n" . + ' --dbf [format] Optional argument to specify the database sequence file format. Valid format specifications are:' . "\n" . + ' * \'UniProtKB DAT\' for UniProtKB DAT files.' . "\n" . + ' * \'FASTA\' for FASTA files.' . "\n" . + ' Only required if the database files do *not* have the standard file extensions: ' . "\n" . + ' *.dat for UniProtKB DAT files or ' . "\n" . + ' *.fa or *.fasta for FASTA files.' . "\n" . + ' --k [ID|AC] Unique identifier type used as key to index an UniProtKB *.dat database file.' . "\n" . + ' Must be either AC for a UniProt accession number (default) or ID for a UniProt identifier.' . "\n" . + ' Not required for *.fasta databases: This tool will look for any type of ID in the first part of FASTA ' . "\n" . + ' sequence headers up until the first white space.' . "\n" . + ' Optionally multiple IDs may be present separated with pipe symbols (|) or semicolons (;).' . "\n" . + ' Optionally IDs may be prefixed with a database namespace and a colon (:).' . "\n" . + ' For example the accession number P32234 as well as the ID 128UP_DROME would be recognised in both ' . "\n" . + ' this sequence header:' . "\n" . + ' >UniProtAcc:P32234|UniProtID:128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly)' . "\n" . + ' and in this one:' . "\n" . + ' >P32234|128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly)' . "\n" . + ' --f [file] Fragment file containing accession numbers or IDs and sequence fragments (peptides), ' . "\n" . + ' whose sequence context should be extracted from the database. This file' . "\n" . + ' * Must be tab delimited with one accession/ID plus one sequence fragment per line' . "\n" . + ' * Must contain accession numbers / IDs in the same format as the database file used.' . "\n" . + ' Exception: Optionally IDs may be suffixed with the peptide\'s position in its protein between brackets.' . "\n" . + ' For example: CLH1_HUMAN[1612-1620].' . "\n" . + ' * May contain other columns, which will be preserved in the output.' . "\n" . + ' * Is the basis for the output: if a sequence context was found, ' . "\n" . + ' it will be appended in another column to the right of the existing columns.' . "\n" . + ' --icol [int] Column in the tab delimited fragment file containing the protein identifiers / accession numbers.' . "\n" . + ' Default = 1.' . "\n" . + ' --pcol [int] Column in the tab delimited fragment file containing the peptide sequences.' . "\n" . + ' Default = 2.' . "\n" . + ' --s Strip lowercase characters from the sequence fragments in the fragment file before doing a database lookup.' . "\n" . + ' Amino acids are expected to be in uppercase. If not, the sequences are converted to uppercase ' . "\n" . + ' before searching for the fragment in the database. When lowercase characters represent ' . "\n" . + ' modifications instead of amino acids these need to be removed before searching the database.' . "\n" . + ' Default = 0 (disabled) except when a modified amino acid is specified with --ma, which will automatically enable --s.' . "\n" . + ' --cleo [file] Optional output file where the retrieved cleavage site sequence contexts will be saved.' . "\n" . + ' --miso [file] Optional output file where the retrieved miscleavage site sequence contexts will be saved.' . "\n" . + ' --modo [file] Optional output file where the retrieved modification site sequence contexts will be saved.' . "\n" . + ' --pepo [file] Optional output file where the retrieved peptide sequence contexts will be saved.' . "\n" . + ' (At least one output file must be specified with --cleo, --miso, --modo or --pepo).' . "\n" . + ' --ca [A-Z] Cleavage amino acid. Assume the sequence fragments were derived from cutting with a proteolytic enzyme, ' . "\n" . + ' that recognizes this amino acid as the position to cut.' . "\n" . + ' When the specificity of the protease used to generate the peptides in the fragments file is unknown,' . "\n" . + ' you may provide an asterisk (*) to retrieve sequence context for any cleavage,' . "\n" . + ' but in that case this tool will not filter non-specifically cleaved fragments,' . "\n" . + ' that may be the result of other processes than protease activity.' . "\n" . + ' --ct [C|N] Cleavage terminus. Assume the sequence fragments were derived from cutting with a proteolytic enzyme, ' . "\n" . + ' that cuts at the C or N terminus of the amino acid specified with the --ca [A-Z] parameter.' . "\n" . + ' When the specificity of the protease used to generate the peptides in the fragments file is unknown,' . "\n" . + ' you may provide an asterisk (*) to retrieve sequence context for any cleavage,' . "\n" . + ' but in that case this tool will not filter non-specifically cleaved fragments,' . "\n" . + ' that may be the result of other processes than protease activity.' . "\n" . + ' --ma [A-Za-z] Modified amino acid.' . "\n" . + ' The amino acid must be specified in uppercase and the modification in lower case.' . "\n" . + ' The order is not important.' . "\n" . + ' Hence a phophorylated serine in the fragments file can be indicated with either pS or Sp, ' . "\n" . + ' but you cannot mix both pS and Sp in a single fragments file.' . "\n" . + ' You may provide an asterisk (*) instead of an upper case amino acid to retrieve sequence contexts ' . "\n" . + ' for the specified modification no matter what amino acid it was located on.' . "\n" . + ' A modification may be specified with more than one lower case character, ' . "\n" . + ' so for example phosphoS or Sphospho can also be used for a phosphorylated serine.' . "\n" . + ' --n [int] Integer specifying the length of the N-terminal sequence context to retrieve starting from the ' . "\n" . + ' cleavage, miscleavage or modification site. Default = 5.' . "\n" . + ' --c [int] Integer specifying the length of the C-terminal sequence context to retrieve starting from the ' . "\n" . + ' cleavage, miscleavage or modification site. Default = 5.' . "\n" . + ' Please note that cleavage and miscleavage sites have zero width, ' . "\n" . + ' while modified amino acids will increment the sequence context lenght with 1.' . "\n" . + ' When defaults are used for both the N-terminal and C-terminal sequence context lengths,' . "\n" . + ' the total sequence context length for a' . "\n" . + ' * cleavage or miscleavage site will be:' . "\n" . + ' (N-terminal sequence context) + (C-terminal sequence context) = 5 + 5 = 10.' . "\n" . + ' * modification site will be:' . "\n" . + ' (N-terminal sequence context) + modified AA + (C-terminal sequence context) = 5 + 1 + 5 = 11.' . "\n" . +# ' --mcd [int] Minimal distance between a putative miscleavage site and the peptide termini.' . "\n" . +# ' Uncleaved amino acids closer to the peptide termini can be ignored with this parameter:' . "\n" . +# ' A. To prevent overlap between cleavage and miscleavage peptide sequence contexts.' . "\n" . +# ' B. To prevent false positive miscleavage sites due to sites that cannot be cleaved, ' . "\n" . +# ' because one of the resulting fragments is too short. (Sometimes proteases may need ' . "\n" . +# ' a minimal length surrounding the cleavage site to bind and cleave a peptide.)' . "\n" . +# ' Default = same as the longest *-terminal context length. Hence [--n [int]|--c [int]] (see above).' . "\n" . + ' --pc [char] Optional padding character to fill N-terminal or C-terminal positions in the sequence context, ' . "\n" . + ' when the protein was too short to get a complete sequence context.' . "\n" . + ' Default = - (a.k.a. dash or the alignment gap character.)' . "\n" . + ' To disable padding specify an empty string like this --pc \'\'.' . "\n" . + ' --ll [LEVEL] Log4perl log level. One of: ALL, TRACE, DEBUG, INFO (default), WARN, ERROR, FATAL or OFF.' . "\n" . + "\n"; + exit; + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ExtractPeptideSequenceContext.svg Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,539 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="1316.693px" height="556.555px" viewBox="0 0 1316.693 556.555" enable-background="new 0 0 1316.693 556.555" + xml:space="preserve"> +<g> + <g> + <path d="M349.337,52.545v13.159h-6.348V29.962c4.231-0.179,6.706-0.269,7.422-0.269c5.647,0,9.778,0.866,12.39,2.601 + c2.612,1.732,3.918,4.439,3.918,8.117c0,8.203-4.834,12.305-14.502,12.305C351.502,52.716,350.542,52.659,349.337,52.545z + M349.337,35.455v11.45c1.074,0.114,1.92,0.171,2.539,0.171c2.897,0,5.013-0.484,6.348-1.452c1.334-0.969,2.002-2.543,2.002-4.725 + c0-3.711-2.987-5.566-8.96-5.566C350.599,35.333,349.956,35.374,349.337,35.455z"/> + <path d="M393.009,54.498h-18.677c0.114,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.899-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.141-1.168-9.46-3.504 + c-2.319-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C393.522,51.854,393.351,52.984,393.009,54.498z + M374.552,49.908h12.842c-0.423-3.824-2.539-5.737-6.348-5.737C377.563,44.171,375.398,46.084,374.552,49.908z"/> + <path d="M404.02,65.045v10.913h-6.104V39.557h6.104v1.758c1.53-1.497,3.41-2.246,5.64-2.246c8.333,0,12.5,4.59,12.5,13.77 + c0,4.281-1.152,7.577-3.455,9.888c-2.303,2.312-5.449,3.467-9.436,3.467C407.348,66.192,405.599,65.81,404.02,65.045z + M404.02,45.953v13.745c1.106,0.896,2.4,1.343,3.882,1.343c2.815,0,4.838-0.671,6.067-2.015c1.229-1.342,1.843-3.462,1.843-6.359 + c0-3.092-0.61-5.27-1.831-6.531c-1.221-1.261-3.239-1.892-6.055-1.892C406.461,44.244,405.159,44.814,404.02,45.953z"/> + <path d="M428.458,44.464h-3.027v-4.907h3.027v-5.322l6.104-2.246v7.568h7.178v4.907h-7.178v11.45c0,1.872,0.293,3.194,0.879,3.968 + c0.586,0.772,1.611,1.159,3.076,1.159s2.832-0.398,4.102-1.196v5.615c-1.416,0.488-3.435,0.732-6.055,0.732 + c-2.604,0-4.606-0.736-6.006-2.209c-1.4-1.474-2.1-3.568-2.1-6.287V44.464z"/> + <path d="M448.991,65.704V44.562h-3.345v-5.005h9.521v26.147H448.991z M452.14,29.425c0.977,0,1.811,0.346,2.502,1.037 + c0.691,0.692,1.038,1.526,1.038,2.503s-0.346,1.811-1.038,2.503c-0.692,0.691-1.526,1.037-2.502,1.037s-1.811-0.346-2.502-1.037 + c-0.692-0.692-1.038-1.526-1.038-2.503s0.346-1.811,1.038-2.503C450.329,29.771,451.164,29.425,452.14,29.425z"/> + <path d="M479.093,65.704v-1.587c-0.505,0.554-1.359,1.038-2.563,1.452c-1.205,0.416-2.45,0.623-3.735,0.623 + c-3.646,0-6.515-1.155-8.606-3.467c-2.092-2.311-3.137-5.533-3.137-9.668c0-4.134,1.2-7.499,3.601-10.096 + c2.4-2.596,5.408-3.894,9.021-3.894c1.985,0,3.792,0.407,5.42,1.221V29.815l6.104-1.465v37.354H479.093z M479.093,45.807 + c-1.302-1.041-2.661-1.562-4.077-1.562c-2.441,0-4.321,0.745-5.64,2.233c-1.318,1.49-1.978,3.626-1.978,6.409 + c0,5.437,2.62,8.154,7.861,8.154c0.586,0,1.306-0.175,2.161-0.524c0.854-0.351,1.412-0.704,1.672-1.062V45.807z"/> + <path d="M514.64,54.498h-18.677c0.114,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.899-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.141-1.168-9.46-3.504 + c-2.319-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C515.153,51.854,514.982,52.984,514.64,54.498z + M496.183,49.908h12.842c-0.423-3.824-2.539-5.737-6.348-5.737C499.194,44.171,497.029,46.084,496.183,49.908z"/> + <path d="M533.756,63.727l2.344-5.688c2.506,1.758,4.972,2.637,7.397,2.637c3.727,0,5.591-1.302,5.591-3.906 + c0-1.221-0.439-2.384-1.318-3.491c-0.879-1.106-2.69-2.348-5.432-3.724c-2.743-1.375-4.59-2.506-5.542-3.393 + c-0.952-0.888-1.685-1.941-2.197-3.162s-0.769-2.571-0.769-4.053c0-2.767,1.013-5.062,3.04-6.885 + c2.026-1.822,4.626-2.734,7.8-2.734c4.134,0,7.169,0.773,9.106,2.319l-1.929,5.469c-2.23-1.595-4.582-2.393-7.056-2.393 + c-1.465,0-2.6,0.387-3.406,1.159c-0.806,0.773-1.208,1.779-1.208,3.016c0,2.051,2.271,4.184,6.812,6.396 + c2.393,1.172,4.118,2.25,5.176,3.234c1.058,0.985,1.863,2.133,2.417,3.443c0.553,1.31,0.83,2.771,0.83,4.382 + c0,2.897-1.144,5.282-3.43,7.153c-2.287,1.872-5.351,2.808-9.192,2.808C539.453,66.314,536.442,65.452,533.756,63.727z"/> + <path d="M584,54.498h-18.677c0.114,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.899-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.141-1.168-9.46-3.504 + c-2.319-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C584.513,51.854,584.342,52.984,584,54.498z + M565.543,49.908h12.842c-0.423-3.824-2.539-5.737-6.348-5.737C568.554,44.171,566.39,46.084,565.543,49.908z"/> + <path d="M606.388,75.958V64.972c-1.465,0.813-3.483,1.221-6.055,1.221c-3.809,0-6.787-1.16-8.936-3.479 + c-2.148-2.32-3.223-5.595-3.223-9.827c0-4.215,1.233-7.572,3.699-10.071c2.466-2.498,5.619-3.747,9.46-3.747 + c2.278,0,4.346,0.684,6.201,2.051l1.001-1.562h3.955v36.401H606.388z M606.388,45.758c-1.091-1.009-2.515-1.514-4.272-1.514 + c-2.376,0-4.236,0.785-5.579,2.356c-1.343,1.57-2.014,3.666-2.014,6.286c0,5.437,2.466,8.154,7.397,8.154 + c1.807,0,3.296-0.423,4.468-1.27V45.758z"/> + <path d="M635.441,65.729v-2.197c-0.863,0.732-2.051,1.359-3.564,1.88s-2.905,0.781-4.175,0.781c-6.071,0-9.106-3.223-9.106-9.668 + V39.557h6.104v16.504c0,3.354,1.505,5.029,4.517,5.029c1.383,0,2.669-0.357,3.857-1.074c1.188-0.716,1.978-1.546,2.368-2.49 + V39.557h6.104v26.172H635.441z"/> + <path d="M671.476,54.498h-18.676c0.114,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.323,1.733 + c2.783,0,4.898-0.724,6.348-2.173l2.367,4.663c-2.148,1.742-5.354,2.612-9.619,2.612c-3.987,0-7.141-1.168-9.46-3.504 + c-2.319-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.793,0,6.836,1.132,9.131,3.394c2.295,2.263,3.443,5.144,3.443,8.643C671.989,51.854,671.817,52.984,671.476,54.498z + M653.019,49.908h12.841c-0.423-3.824-2.539-5.737-6.348-5.737C656.03,44.171,653.865,46.084,653.019,49.908z"/> + <path d="M693.692,65.704V50.592c0-2.229-0.427-3.857-1.281-4.883s-2.25-1.538-4.188-1.538c-0.895,0-1.852,0.253-2.868,0.757 + c-1.018,0.505-1.812,1.132-2.38,1.88v18.896h-6.104V39.557h4.395l1.123,2.441c1.66-1.953,4.109-2.93,7.348-2.93 + c3.109,0,5.562,0.932,7.361,2.796c1.799,1.863,2.697,4.464,2.697,7.8v16.04H693.692z"/> + <path d="M726.896,41.632l-2.612,4.565c-1.433-1.351-3.354-2.026-5.762-2.026c-2.312,0-4.139,0.77-5.48,2.307 + c-1.344,1.539-2.015,3.667-2.015,6.385c0,5.485,2.612,8.228,7.837,8.228c2.262,0,4.256-0.748,5.981-2.246l2.246,4.81 + c-1.774,1.107-3.324,1.807-4.651,2.1c-1.326,0.293-2.893,0.439-4.699,0.439c-4.037,0-7.223-1.176-9.559-3.527 + c-2.335-2.353-3.503-5.619-3.503-9.803c0-4.117,1.277-7.446,3.833-9.985c2.555-2.539,6.038-3.809,10.449-3.809 + C722.004,39.068,724.649,39.923,726.896,41.632z"/> + <path d="M755.313,54.498h-18.677c0.113,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.898-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.142-1.168-9.46-3.504 + c-2.32-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C755.826,51.854,755.655,52.984,755.313,54.498z + M736.856,49.908h12.842c-0.424-3.824-2.539-5.737-6.348-5.737C739.867,44.171,737.702,46.084,736.856,49.908z"/> + <path d="M800.65,31.842l-2.612,5.249c-1.416-1.416-3.695-2.124-6.836-2.124c-2.979,0-5.42,1.249-7.324,3.747 + c-1.904,2.499-2.856,5.661-2.856,9.485c0,3.825,0.883,6.86,2.648,9.106c1.767,2.246,4.122,3.369,7.068,3.369 + c3.369,0,6.006-1.204,7.91-3.613l2.954,5.127c-2.588,2.751-6.381,4.126-11.377,4.126c-4.997,0-8.879-1.644-11.646-4.932 + c-2.768-3.287-4.15-7.771-4.15-13.452c0-5.289,1.534-9.713,4.602-13.27c3.068-3.556,6.995-5.334,11.78-5.334 + C794.913,29.327,798.192,30.166,800.65,31.842z"/> + <path d="M804.654,52.569c0-3.987,1.151-7.234,3.454-9.741c2.304-2.506,5.343-3.76,9.119-3.76c3.971,0,7.056,1.205,9.253,3.613 + c2.197,2.409,3.296,5.705,3.296,9.888c0,4.167-1.119,7.479-3.357,9.937c-2.237,2.458-5.302,3.687-9.191,3.687 + c-3.972,0-7.06-1.241-9.266-3.723C805.757,59.987,804.654,56.688,804.654,52.569z M811.002,52.569 + c0,5.762,2.075,8.643,6.226,8.643c1.904,0,3.414-0.748,4.529-2.246c1.114-1.497,1.672-3.629,1.672-6.396 + c0-5.68-2.067-8.521-6.201-8.521c-1.904,0-3.418,0.749-4.541,2.246C811.563,47.793,811.002,49.884,811.002,52.569z"/> + <path d="M851.48,65.704V50.592c0-2.229-0.428-3.857-1.281-4.883c-0.855-1.025-2.251-1.538-4.188-1.538 + c-0.896,0-1.852,0.253-2.869,0.757c-1.017,0.505-1.811,1.132-2.38,1.88v18.896h-6.104V39.557h4.395l1.123,2.441 + c1.66-1.953,4.109-2.93,7.349-2.93c3.108,0,5.562,0.932,7.361,2.796c1.798,1.863,2.697,4.464,2.697,7.8v16.04H851.48z"/> + <path d="M865.104,44.464h-3.027v-4.907h3.027v-5.322l6.104-2.246v7.568h7.178v4.907h-7.178v11.45c0,1.872,0.293,3.194,0.879,3.968 + c0.586,0.772,1.611,1.159,3.076,1.159s2.832-0.398,4.102-1.196v5.615c-1.416,0.488-3.435,0.732-6.055,0.732 + c-2.604,0-4.606-0.736-6.006-2.209c-1.4-1.474-2.1-3.568-2.1-6.287V44.464z"/> + <path d="M907.34,54.498h-18.677c0.113,2.084,0.83,3.703,2.148,4.858c1.318,1.156,3.092,1.733,5.322,1.733 + c2.783,0,4.898-0.724,6.348-2.173l2.368,4.663c-2.148,1.742-5.355,2.612-9.619,2.612c-3.988,0-7.142-1.168-9.46-3.504 + c-2.32-2.335-3.479-5.594-3.479-9.777c0-4.117,1.273-7.454,3.821-10.01c2.547-2.555,5.603-3.833,9.167-3.833 + c3.792,0,6.836,1.132,9.131,3.394c2.295,2.263,3.442,5.144,3.442,8.643C907.853,51.854,907.682,52.984,907.34,54.498z + M888.883,49.908h12.842c-0.424-3.824-2.539-5.737-6.348-5.737C891.894,44.171,889.729,46.084,888.883,49.908z"/> + <path d="M929.532,65.704l-6.714-8.521l-6.03,8.521h-7.227l10.034-13.379l-9.229-12.769h7.007l5.518,7.983l6.152-7.983h6.958 + l-10.034,12.769l10.962,13.379H929.532z"/> + <path d="M941.275,44.464h-3.027v-4.907h3.027v-5.322l6.104-2.246v7.568h7.178v4.907h-7.178v11.45c0,1.872,0.293,3.194,0.879,3.968 + c0.586,0.772,1.611,1.159,3.076,1.159s2.832-0.398,4.102-1.196v5.615c-1.416,0.488-3.435,0.732-6.055,0.732 + c-2.604,0-4.606-0.736-6.006-2.209c-1.4-1.474-2.1-3.568-2.1-6.287V44.464z"/> + <path d="M958.561,64.02l2.173-4.858c1.822,1.449,3.882,2.173,6.177,2.173c2.376,0,3.564-0.846,3.564-2.539 + c0-0.992-0.358-1.807-1.074-2.441c-0.717-0.635-2.108-1.383-4.175-2.246c-4.509-1.871-6.763-4.492-6.763-7.861 + c0-2.262,0.862-4.024,2.588-5.286c1.725-1.261,3.931-1.892,6.616-1.892c2.718,0,5.273,0.61,7.666,1.831l-1.758,4.736 + c-1.335-1.139-3.19-1.709-5.566-1.709c-2.133,0-3.198,0.847-3.198,2.539c0,0.668,0.35,1.27,1.05,1.807 + c0.699,0.537,2.197,1.258,4.492,2.16c2.295,0.904,3.946,1.999,4.956,3.284c1.009,1.286,1.514,2.841,1.514,4.663 + c0,2.426-0.899,4.334-2.698,5.725c-1.798,1.393-4.244,2.088-7.336,2.088c-1.742,0-3.137-0.143-4.188-0.428 + C961.552,65.48,960.204,64.898,958.561,64.02z"/> + </g> +</g> +<g> + <path fill="#B2362D" d="M29.847,342.704v-13c0-8.284,6.716-15,15-15h1227c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15 + h-1227C36.562,357.704,29.847,350.988,29.847,342.704z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M29.847,342.704v-13 + c0-8.284,6.716-15,15-15h1227c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15h-1227 + C36.562,357.704,29.847,350.988,29.847,342.704z"/> + <g> + <path fill="#FFFFFF" d="M612.464,338.892v8.812h-3.125v-22.891c2.364-0.104,3.792-0.156,4.281-0.156 + c6.646,0,9.969,2.225,9.969,6.672c0,5.146-2.938,7.719-8.812,7.719C614.422,339.048,613.651,338.996,612.464,338.892z + M612.464,327.626v8.453c1.323,0.104,2.021,0.156,2.094,0.156c3.875,0,5.812-1.525,5.812-4.578c0-2.791-2.068-4.188-6.203-4.188 + C613.75,327.47,613.183,327.522,612.464,327.626z"/> + <path fill="#FFFFFF" d="M634.57,333.829c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969V330.97h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L634.57,333.829z"/> + <path fill="#FFFFFF" d="M636.82,339.298c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C637.486,344.085,636.82,341.965,636.82,339.298z + M639.945,339.298c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C640.348,335.84,639.945,337.36,639.945,339.298z"/> + <path fill="#FFFFFF" d="M656.148,333.313h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.593v2.344h-4.593v8.312 + c0,1.406,0.237,2.406,0.71,3c0.475,0.594,1.237,0.891,2.289,0.891c0.761,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.322,0-2.44-0.492-3.351-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V333.313z"/> + <path fill="#FFFFFF" d="M681.866,339.626h-12.062c0,1.959,0.537,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.115-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.51,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.635-1.572-2.453-3.688-2.453-6.344c0-2.76,0.839-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.256,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C682.101,338.47,682.022,339.074,681.866,339.626z M674.663,333.157c-1.322,0-2.432,0.428-3.328,1.281 + c-0.854,0.812-1.338,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C677.2,333.595,676.079,333.157,674.663,333.157z"/> + <path fill="#FFFFFF" d="M686.664,347.704V333.47h-2.297v-2.5h5.266v16.734H686.664z M688.289,324.642 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.795,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C687.346,324.819,687.778,324.642,688.289,324.642z"/> + <path fill="#FFFFFF" d="M704.648,347.704v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969V330.97h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H704.648z"/> + </g> + <path fill="#7D5D3D" d="M363.847,178.704v-13c0-8.284,6.716-15,15-15h532c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15 + h-532C370.562,193.704,363.847,186.988,363.847,178.704z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M363.847,178.704v-13 + c0-8.284,6.716-15,15-15h532c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15h-532 + C370.562,193.704,363.847,186.988,363.847,178.704z"/> + <g> + <path fill="#FFFFFF" d="M595.956,174.892v8.812h-3.125v-22.891c2.364-0.104,3.792-0.156,4.281-0.156 + c6.646,0,9.969,2.225,9.969,6.672c0,5.146-2.938,7.719-8.812,7.719C597.914,175.048,597.144,174.996,595.956,174.892z + M595.956,163.626v8.453c1.323,0.104,2.021,0.156,2.094,0.156c3.875,0,5.812-1.525,5.812-4.578c0-2.791-2.068-4.188-6.203-4.188 + C597.242,163.47,596.675,163.522,595.956,163.626z"/> + <path fill="#FFFFFF" d="M623.062,175.626H611c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C623.296,174.47,623.218,175.074,623.062,175.626z M615.859,169.157c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C618.395,169.595,617.275,169.157,615.859,169.157z"/> + <path fill="#FFFFFF" d="M629.39,182.782v7.484h-2.969V166.97h2.969v1.375c1.125-1.125,2.484-1.688,4.078-1.688 + c2.375,0,4.224,0.74,5.547,2.219c1.323,1.479,1.984,3.646,1.984,6.5c0,2.542-0.667,4.617-2,6.227 + c-1.333,1.609-3.261,2.414-5.781,2.414c-0.708,0-1.466-0.125-2.273-0.375C630.137,183.392,629.619,183.105,629.39,182.782z + M629.39,170.579v9.75c0.188,0.281,0.583,0.55,1.188,0.805c0.604,0.256,1.192,0.383,1.766,0.383c3.688,0,5.531-2.083,5.531-6.25 + c0-2.114-0.438-3.661-1.312-4.641c-0.875-0.979-2.276-1.469-4.203-1.469c-0.417,0-0.927,0.146-1.531,0.438 + C630.223,169.887,629.744,170.215,629.39,170.579z"/> + <path fill="#FFFFFF" d="M645.312,169.313h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.237,2.406,0.711,3c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V169.313z"/> + <path fill="#FFFFFF" d="M658.375,183.704V169.47h-2.297v-2.5h5.265v16.734H658.375z M659.999,160.642 + c0.511,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539 + c-0.5,0-0.929-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C659.057,160.819,659.489,160.642,659.999,160.642z"/> + <path fill="#FFFFFF" d="M676.671,183.688v-1.234c-1.031,1.031-2.531,1.547-4.5,1.547c-2.094,0-3.791-0.75-5.094-2.25 + c-1.302-1.5-1.953-3.5-1.953-6c0-2.51,0.75-4.653,2.25-6.43c1.5-1.775,3.287-2.664,5.359-2.664c1.729,0,3.042,0.406,3.938,1.219 + v-7.766h2.969v23.578H676.671z M676.671,170.845c-0.75-1.125-1.775-1.688-3.078-1.688c-1.594,0-2.883,0.594-3.867,1.781 + s-1.477,2.698-1.477,4.531c0,4.031,1.834,6.047,5.5,6.047c0.469,0,1.031-0.148,1.688-0.445s1.068-0.611,1.234-0.945V170.845z"/> + <path fill="#FFFFFF" d="M697.983,175.626h-12.062c0,1.959,0.537,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.115-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.161,0.854-2.109,1.188c-1.188,0.438-2.51,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.635-1.572-2.453-3.688-2.453-6.344c0-2.76,0.839-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.386,0,4.256,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C698.218,174.47,698.14,175.074,697.983,175.626z M690.78,169.157c-1.322,0-2.432,0.428-3.328,1.281 + c-0.854,0.812-1.338,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C693.317,169.595,692.197,169.157,690.78,169.157z"/> + </g> + <polygon points="638.847,261.704 621.847,261.704 645.347,298.704 668.847,261.704 651.847,261.704 651.847,207.704 + 638.847,207.704 "/> + <polygon fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" points="638.847,261.704 + 621.847,261.704 645.347,298.704 668.847,261.704 651.847,261.704 651.847,207.704 638.847,207.704 "/> + <path fill="#F7941E" d="M115.847,451.704v-62c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C122.562,466.704,115.847,459.988,115.847,451.704z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M115.847,451.704v-62 + c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C122.562,466.704,115.847,459.988,115.847,451.704z"/> + <g> + <path d="M179.901,414.017l-11.828-16.734v16.422h-2.969v-22.891h1.25l11.516,15.828v-15.828h2.969v23.203H179.901z"/> + <path d="M185.667,405.798v-2.734h6.688v2.734H185.667z"/> + <path d="M198.104,399.313h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V399.313z"/> + <path d="M223.823,405.626h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C224.058,404.47,223.979,405.074,223.823,405.626z M216.62,399.157c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C219.156,399.595,218.037,399.157,216.62,399.157z"/> + <path d="M236.276,399.829c-0.646-0.447-1.297-0.672-1.953-0.672c-1.052,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969V396.97h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L236.276,399.829z"/> + <path d="M258.995,413.704V403.11c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.052,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.31-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969V396.97h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.073,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.948,1.026,1.422,2.467,1.422,4.32v11.188H258.995z"/> + <path d="M267.62,413.704V399.47h-2.297v-2.5h5.266v16.734H267.62z M269.245,390.642c0.51,0,0.945,0.18,1.305,0.539 + s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.794,0.539-1.305,0.539c-0.5,0-0.93-0.18-1.289-0.539 + s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297C268.302,390.819,268.734,390.642,269.245,390.642z"/> + <path d="M285.604,413.704v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969V396.97h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H285.604z"/> + <path d="M302.245,411.782c-1.188,1.49-3.005,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.208-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.995-0.328,1.945-0.492,2.852-0.492c2.427,0,4.19,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938v1.484c-1.208,0-2.112-0.172-2.711-0.516C302.935,413.142,302.505,412.574,302.245,411.782z + M301.964,405.485c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.724,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.026,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V405.485z"/> + <path d="M309.839,408.97V390.11h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.19,0.773,2.023,0.773v2.656 + C311.761,414.017,309.839,412.335,309.839,408.97z"/> + </g> + <g> + <path d="M146.964,428.657l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C143.609,427.423,145.558,427.835,146.964,428.657z"/> + <path d="M150.167,442.298c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383c2.396,0,4.255,0.764,5.578,2.289 + c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383c-1.354,1.558-3.198,2.336-5.531,2.336 + c-2.386,0-4.245-0.786-5.578-2.359C150.833,447.085,150.167,444.965,150.167,442.298z M153.292,442.298 + c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C153.695,438.84,153.292,440.36,153.292,442.298z"/> + <path d="M178.729,450.704v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969V433.97h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H178.729z"/> + <path d="M186.979,436.313h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.313z"/> + <path d="M212.698,442.626h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C212.933,441.47,212.854,442.074,212.698,442.626z M205.495,436.157c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C208.031,436.595,206.912,436.157,205.495,436.157z"/> + <path d="M226.245,450.704l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75h3.281 + l-6.078,8.172l6.656,8.562H226.245z"/> + <path d="M233.151,436.313h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.313z"/> + <path d="M254.651,450.704v-22.891h3.125v20.078h10.344v2.812H254.651z"/> + <path d="M284.714,442.626h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C284.948,441.47,284.87,442.074,284.714,442.626z M277.511,436.157c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C280.047,436.595,278.927,436.157,277.511,436.157z"/> + <path d="M298.37,450.704v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969V433.97h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H298.37z"/> + <path d="M304.948,455.282l1.609-2.375c1.729,1.156,3.323,1.734,4.781,1.734c1.344,0,2.403-0.232,3.18-0.695 + c0.776-0.464,1.164-1.039,1.164-1.727c0-1.354-0.979-2.031-2.938-2.031c-0.333,0-0.938,0.084-1.812,0.25 + c-0.875,0.167-1.558,0.25-2.047,0.25c-2.375,0-3.562-0.896-3.562-2.688c0-0.552,0.278-1.052,0.836-1.5 + c0.557-0.447,1.247-0.771,2.07-0.969c-2.354-1.104-3.531-3.021-3.531-5.75c0-1.75,0.609-3.208,1.828-4.375 + c1.219-1.166,2.724-1.75,4.516-1.75c1.646,0,2.932,0.339,3.859,1.016l1.484-1.781l1.938,1.828l-1.781,1.344 + c0.76,0.99,1.141,2.281,1.141,3.875c0,1.688-0.526,3.104-1.578,4.25c-1.052,1.146-2.433,1.803-4.141,1.969l-2.453,0.25 + c-0.292,0.031-0.683,0.144-1.172,0.336c-0.49,0.193-0.734,0.445-0.734,0.758c0,0.428,0.51,0.641,1.531,0.641 + c0.448,0,1.146-0.08,2.094-0.242c0.948-0.161,1.651-0.242,2.109-0.242c1.646,0,2.93,0.394,3.852,1.18 + c0.922,0.787,1.383,1.877,1.383,3.273c0,1.541-0.69,2.786-2.07,3.734c-1.38,0.947-3.128,1.422-5.242,1.422 + c-1.083,0-2.224-0.193-3.422-0.578C306.641,456.303,305.677,455.834,304.948,455.282z M311.245,436.048 + c-1.031,0-1.873,0.365-2.523,1.094c-0.651,0.729-0.977,1.615-0.977,2.656c0,1.167,0.315,2.133,0.945,2.898 + c0.63,0.766,1.481,1.148,2.555,1.148c1.052,0,1.875-0.372,2.469-1.117c0.594-0.744,0.891-1.721,0.891-2.93 + c0-1.041-0.32-1.927-0.961-2.656C313.003,436.413,312.203,436.048,311.245,436.048z"/> + <path d="M322.683,436.313h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.237,2.406,0.711,3 + c0.474,0.594,1.237,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.313z"/> + <path d="M344.62,450.704v-10.516c0-1.25-0.308-2.234-0.922-2.953c-0.615-0.719-1.479-1.078-2.594-1.078 + c-0.719,0-1.44,0.211-2.164,0.633c-0.724,0.422-1.279,0.914-1.664,1.477v12.438h-2.969V427.11h2.969v8.703 + c0.396-0.614,1.034-1.127,1.914-1.539c0.88-0.411,1.789-0.617,2.727-0.617c1.771,0,3.159,0.584,4.164,1.75 + c1.005,1.167,1.508,2.761,1.508,4.781v10.516H344.62z"/> + </g> + <path fill="#F26522" d="M925.847,451.704v-62c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C932.562,466.704,925.847,459.988,925.847,451.704z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M925.847,451.704v-62 + c0-8.284,6.716-15,15-15h218c8.284,0,15,6.716,15,15v62c0,8.284-6.716,15-15,15h-218 + C932.562,466.704,925.847,459.988,925.847,451.704z"/> + <g> + <path d="M990.354,391.657l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.244,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.916-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C987,390.423,988.948,390.835,990.354,391.657z"/> + <path d="M995.026,405.798v-2.734h6.688v2.734H995.026z"/> + <path d="M1007.464,399.313h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V399.313z"/> + <path d="M1033.183,405.626h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C1033.417,404.47,1033.339,405.074,1033.183,405.626z M1025.979,399.157c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C1028.516,399.595,1027.396,399.157,1025.979,399.157z" + /> + <path d="M1045.636,399.829c-0.646-0.447-1.297-0.672-1.953-0.672c-1.053,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969V396.97h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L1045.636,399.829z"/> + <path d="M1068.354,413.704V403.11c0-2.635-1.141-3.953-3.422-3.953c-0.719,0-1.391,0.222-2.016,0.664 + c-0.625,0.443-1.053,0.945-1.281,1.508v12.375h-2.969v-11.891c0-0.822-0.311-1.471-0.93-1.945c-0.62-0.474-1.44-0.711-2.461-0.711 + c-0.594,0-1.227,0.229-1.898,0.688c-0.672,0.459-1.148,0.964-1.43,1.516v12.344h-2.969V396.97h1.938l0.984,1.938 + c1.146-1.5,2.578-2.25,4.297-2.25c2.396,0,4.072,0.745,5.031,2.234c0.333-0.635,0.953-1.166,1.859-1.594 + c0.906-0.427,1.838-0.641,2.797-0.641c1.729,0,3.067,0.514,4.016,1.539c0.947,1.026,1.422,2.467,1.422,4.32v11.188H1068.354z"/> + <path d="M1076.979,413.704V399.47h-2.297v-2.5h5.266v16.734H1076.979z M1078.604,390.642c0.51,0,0.945,0.18,1.305,0.539 + s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.795,0.539-1.305,0.539c-0.5,0-0.93-0.18-1.289-0.539 + s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297C1077.661,390.819,1078.094,390.642,1078.604,390.642z"/> + <path d="M1094.964,413.704v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969V396.97h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H1094.964z"/> + <path d="M1111.604,411.782c-1.188,1.49-3.006,2.234-5.453,2.234c-1.312,0-2.451-0.477-3.414-1.43 + c-0.964-0.953-1.445-2.138-1.445-3.555c0-1.697,0.742-3.133,2.227-4.305s3.377-1.758,5.68-1.758c0.625,0,1.333,0.136,2.125,0.406 + c0-2.708-1.209-4.062-3.625-4.062c-1.854,0-3.281,0.5-4.281,1.5l-1.25-2.484c0.562-0.458,1.341-0.852,2.336-1.18 + c0.994-0.328,1.945-0.492,2.852-0.492c2.427,0,4.189,0.553,5.289,1.656c1.099,1.104,1.648,2.859,1.648,5.266v6 + c0,1.469,0.438,2.448,1.312,2.938v1.484c-1.209,0-2.112-0.172-2.711-0.516C1112.294,413.142,1111.864,412.574,1111.604,411.782z + M1111.323,405.485c-0.938-0.208-1.594-0.312-1.969-0.312c-1.5,0-2.725,0.386-3.672,1.156c-0.948,0.771-1.422,1.683-1.422,2.734 + c0,1.74,1.025,2.609,3.078,2.609c1.5,0,2.828-0.713,3.984-2.141V405.485z"/> + <path d="M1119.198,408.97V390.11h2.969v18.359c0,0.896,0.258,1.602,0.773,2.117s1.189,0.773,2.023,0.773v2.656 + C1121.12,414.017,1119.198,412.335,1119.198,408.97z"/> + </g> + <g> + <path d="M956.964,428.657l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.244,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.916-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C953.609,427.423,955.558,427.835,956.964,428.657z"/> + <path d="M960.167,442.298c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383c2.396,0,4.255,0.764,5.578,2.289 + c1.322,1.526,1.984,3.644,1.984,6.352c0,2.698-0.678,4.826-2.031,6.383c-1.354,1.558-3.198,2.336-5.531,2.336 + c-2.386,0-4.245-0.786-5.578-2.359C960.833,447.085,960.167,444.965,960.167,442.298z M963.292,442.298 + c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.436,0.553-3.242,1.656C963.695,438.84,963.292,440.36,963.292,442.298z"/> + <path d="M988.729,450.704v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969V433.97h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H988.729z"/> + <path d="M996.979,436.313h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.313z"/> + <path d="M1022.698,442.626h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C1022.933,441.47,1022.854,442.074,1022.698,442.626z M1015.495,436.157c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C1018.031,436.595,1016.911,436.157,1015.495,436.157z" + /> + <path d="M1036.245,450.704l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75h3.281 + l-6.078,8.172l6.656,8.562H1036.245z"/> + <path d="M1043.151,436.313h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.313z"/> + <path d="M1064.651,450.704v-22.891h3.125v20.078h10.344v2.812H1064.651z"/> + <path d="M1094.714,442.626h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C1094.948,441.47,1094.87,442.074,1094.714,442.626z M1087.511,436.157c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C1090.047,436.595,1088.927,436.157,1087.511,436.157z" + /> + <path d="M1108.37,450.704v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.436-1.07-2.695-1.07 + c-0.678,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969V433.97h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.666,0,5.5,2.229,5.5,6.688v10.359H1108.37z"/> + <path d="M1114.948,455.282l1.609-2.375c1.729,1.156,3.322,1.734,4.781,1.734c1.344,0,2.403-0.232,3.18-0.695 + c0.775-0.464,1.164-1.039,1.164-1.727c0-1.354-0.979-2.031-2.938-2.031c-0.334,0-0.938,0.084-1.812,0.25 + c-0.875,0.167-1.558,0.25-2.047,0.25c-2.375,0-3.562-0.896-3.562-2.688c0-0.552,0.278-1.052,0.836-1.5 + c0.557-0.447,1.247-0.771,2.07-0.969c-2.354-1.104-3.531-3.021-3.531-5.75c0-1.75,0.609-3.208,1.828-4.375 + c1.219-1.166,2.724-1.75,4.516-1.75c1.646,0,2.932,0.339,3.859,1.016l1.484-1.781l1.938,1.828l-1.781,1.344 + c0.76,0.99,1.141,2.281,1.141,3.875c0,1.688-0.526,3.104-1.578,4.25c-1.053,1.146-2.433,1.803-4.141,1.969l-2.453,0.25 + c-0.292,0.031-0.683,0.144-1.172,0.336c-0.49,0.193-0.734,0.445-0.734,0.758c0,0.428,0.51,0.641,1.531,0.641 + c0.447,0,1.146-0.08,2.094-0.242c0.947-0.161,1.65-0.242,2.109-0.242c1.646,0,2.93,0.394,3.852,1.18 + c0.922,0.787,1.383,1.877,1.383,3.273c0,1.541-0.69,2.786-2.07,3.734c-1.381,0.947-3.128,1.422-5.242,1.422 + c-1.084,0-2.225-0.193-3.422-0.578C1116.641,456.303,1115.677,455.834,1114.948,455.282z M1121.245,436.048 + c-1.031,0-1.873,0.365-2.523,1.094c-0.651,0.729-0.977,1.615-0.977,2.656c0,1.167,0.314,2.133,0.945,2.898 + c0.63,0.766,1.481,1.148,2.555,1.148c1.052,0,1.875-0.372,2.469-1.117c0.594-0.744,0.891-1.721,0.891-2.93 + c0-1.041-0.32-1.927-0.961-2.656C1123.003,436.413,1122.203,436.048,1121.245,436.048z"/> + <path d="M1132.683,436.313h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312c0,1.406,0.236,2.406,0.711,3 + c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609c-1.229,0.312-2.578,0.469-4.047,0.469 + c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V436.313z"/> + <path d="M1154.62,450.704v-10.516c0-1.25-0.308-2.234-0.922-2.953c-0.615-0.719-1.479-1.078-2.594-1.078 + c-0.719,0-1.44,0.211-2.164,0.633c-0.725,0.422-1.279,0.914-1.664,1.477v12.438h-2.969V427.11h2.969v8.703 + c0.396-0.614,1.033-1.127,1.914-1.539c0.88-0.411,1.789-0.617,2.727-0.617c1.771,0,3.158,0.584,4.164,1.75 + c1.005,1.167,1.508,2.761,1.508,4.781v10.516H1154.62z"/> + </g> + <path fill="#9F3092" d="M115.847,511.704v-13c0-8.284,6.716-15,15-15h1028c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15 + h-1028C122.562,526.704,115.847,519.988,115.847,511.704z"/> + <path fill="none" stroke="#000000" stroke-width="3" stroke-linejoin="round" stroke-miterlimit="8" d="M115.847,511.704v-13 + c0-8.284,6.716-15,15-15h1028c8.284,0,15,6.716,15,15l0,0v13c0,8.284-6.716,15-15,15h-1028 + C122.562,526.704,115.847,519.988,115.847,511.704z"/> + <g> + <path fill="#FFFFFF" d="M395.823,505.063c0-3.312,0.831-6.083,2.492-8.312c1.661-2.229,3.903-3.344,6.727-3.344 + c3.177,0,5.612,1.026,7.305,3.078c1.692,2.053,2.539,4.912,2.539,8.578c0,3.761-0.849,6.706-2.547,8.836 + c-1.698,2.131-4.13,3.195-7.297,3.195c-2.886,0-5.144-1.125-6.773-3.375C396.638,511.47,395.823,508.585,395.823,505.063z + M399.104,505.063c0,2.625,0.518,4.818,1.555,6.578c1.036,1.761,2.497,2.641,4.383,2.641c2.135,0,3.763-0.807,4.883-2.422 + c1.12-1.614,1.68-3.88,1.68-6.797c0-5.896-2.188-8.844-6.562-8.844c-1.938,0-3.412,0.792-4.422,2.375 + C399.609,500.179,399.104,502.335,399.104,505.063z"/> + <path fill="#FFFFFF" d="M428.542,516.704v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969V499.97h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H428.542z"/> + <path fill="#FFFFFF" d="M449.823,508.626h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C450.058,507.47,449.979,508.074,449.823,508.626z M442.62,502.157c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C445.156,502.595,444.037,502.157,442.62,502.157z"/> + <path fill="#FFFFFF" d="M462.026,515.657l1.141-2.875c0.583,0.428,1.31,0.784,2.18,1.07c0.87,0.287,1.648,0.43,2.336,0.43 + c1.219,0,2.198-0.333,2.938-1c0.739-0.666,1.109-1.516,1.109-2.547c0-0.771-0.206-1.486-0.617-2.148 + c-0.412-0.661-1.445-1.383-3.102-2.164l-1.844-0.859c-1.562-0.729-2.654-1.594-3.273-2.594c-0.62-1-0.93-2.203-0.93-3.609 + c0-1.708,0.604-3.125,1.812-4.25c1.208-1.125,2.76-1.688,4.656-1.688c2.531,0,4.292,0.412,5.281,1.234l-0.922,2.719 + c-0.417-0.302-1.052-0.594-1.906-0.875c-0.854-0.281-1.646-0.422-2.375-0.422c-1.062,0-1.898,0.303-2.508,0.906 + c-0.609,0.604-0.914,1.381-0.914,2.328c0,0.584,0.109,1.115,0.328,1.594c0.219,0.479,0.523,0.881,0.914,1.203 + c0.391,0.323,1.19,0.776,2.398,1.359l1.875,0.891c1.562,0.74,2.659,1.623,3.289,2.648c0.63,1.026,0.945,2.331,0.945,3.914 + c0,1.719-0.69,3.178-2.07,4.375c-1.38,1.198-3.227,1.797-5.539,1.797C465.198,517.095,463.464,516.616,462.026,515.657z"/> + <path fill="#FFFFFF" d="M492.308,508.626h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C492.542,507.47,492.464,508.074,492.308,508.626z M485.104,502.157c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C487.641,502.595,486.521,502.157,485.104,502.157z"/> + <path fill="#FFFFFF" d="M506.386,523.267v-7.547c-0.865,0.865-2.312,1.297-4.344,1.297c-2.281,0-4.07-0.763-5.367-2.289 + c-1.297-1.525-1.945-3.643-1.945-6.352c0-2.677,0.742-4.799,2.227-6.367c1.484-1.567,3.393-2.352,5.727-2.352 + c1.458,0,2.817,0.526,4.078,1.578l0.797-1.266h1.797v23.297H506.386z M506.386,503.438c-0.854-0.854-1.922-1.281-3.203-1.281 + c-1.677,0-2.984,0.568-3.922,1.703c-0.938,1.136-1.406,2.641-1.406,4.516c0,1.938,0.469,3.445,1.406,4.523 + s2.203,1.617,3.797,1.617c1.427,0,2.536-0.364,3.328-1.094V503.438z"/> + <path fill="#FFFFFF" d="M516.308,499.97v10.672c0,2.584,1.12,3.875,3.359,3.875c0.979,0,1.875-0.281,2.688-0.844 + s1.349-1.213,1.609-1.953v-11.75h2.969v16.734h-2.969v-2.312c-0.333,0.656-1.003,1.258-2.008,1.805 + c-1.005,0.547-1.987,0.82-2.945,0.82c-1.833,0-3.237-0.525-4.211-1.578c-0.974-1.052-1.461-2.547-1.461-4.484V499.97H516.308z"/> + <path fill="#FFFFFF" d="M545.073,508.626h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C545.308,507.47,545.229,508.074,545.073,508.626z M537.87,502.157c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C540.406,502.595,539.287,502.157,537.87,502.157z"/> + <path fill="#FFFFFF" d="M558.729,516.704v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969V499.97h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H558.729z"/> + <path fill="#FFFFFF" d="M578.542,501.329l-1.469,2.094c-0.302-0.302-0.836-0.588-1.602-0.859 + c-0.766-0.271-1.519-0.406-2.258-0.406c-1.615,0-2.896,0.565-3.844,1.695c-0.948,1.131-1.422,2.68-1.422,4.648 + c0,1.959,0.484,3.451,1.453,4.477c0.969,1.026,2.312,1.539,4.031,1.539c1.333,0,2.677-0.516,4.031-1.547l1.172,2.5 + c-1.594,1.031-3.568,1.547-5.922,1.547c-2.281,0-4.167-0.766-5.656-2.297c-1.49-1.531-2.234-3.604-2.234-6.219 + c0-2.666,0.773-4.807,2.32-6.422c1.547-1.614,3.664-2.422,6.352-2.422c0.864,0,1.802,0.183,2.812,0.547 + C577.318,500.569,578.062,500.944,578.542,501.329z"/> + <path fill="#FFFFFF" d="M595.854,508.626h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.948,0.917,2.167,1.375,3.656,1.375 + c1.698,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.458,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.276-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C596.089,507.47,596.011,508.074,595.854,508.626z M588.651,502.157c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C591.188,502.595,590.068,502.157,588.651,502.157z"/> + <path fill="#FFFFFF" d="M623.698,494.657l-1.047,2.672c-1-0.729-2.573-1.094-4.719-1.094c-2.011,0-3.623,0.865-4.836,2.594 + c-1.214,1.729-1.82,3.959-1.82,6.688c0,2.604,0.622,4.717,1.867,6.336c1.245,1.62,2.852,2.43,4.82,2.43 + c2.146,0,3.797-0.76,4.953-2.281l1.719,2.391c-1.812,1.803-4.146,2.703-7,2.703c-2.99,0-5.344-1.078-7.062-3.234 + s-2.578-5-2.578-8.531c0-3.416,0.917-6.255,2.75-8.516c1.833-2.26,4.203-3.391,7.109-3.391 + C620.344,493.423,622.292,493.835,623.698,494.657z"/> + <path fill="#FFFFFF" d="M626.901,508.298c0-2.583,0.695-4.669,2.086-6.258c1.391-1.588,3.221-2.383,5.492-2.383 + c2.396,0,4.255,0.764,5.578,2.289c1.323,1.526,1.984,3.644,1.984,6.352c0,2.698-0.677,4.826-2.031,6.383 + c-1.354,1.558-3.198,2.336-5.531,2.336c-2.386,0-4.245-0.786-5.578-2.359C627.568,513.085,626.901,510.965,626.901,508.298z + M630.026,508.298c0,4.198,1.484,6.297,4.453,6.297c1.385,0,2.471-0.562,3.258-1.688c0.786-1.125,1.18-2.661,1.18-4.609 + c0-4.146-1.479-6.219-4.438-6.219c-1.354,0-2.435,0.553-3.242,1.656C630.43,504.84,630.026,506.36,630.026,508.298z"/> + <path fill="#FFFFFF" d="M655.464,516.704v-9.734c0-1.781-0.269-3.028-0.805-3.742c-0.537-0.713-1.435-1.07-2.695-1.07 + c-0.677,0-1.386,0.203-2.125,0.609c-0.74,0.406-1.308,0.906-1.703,1.5v12.438h-2.969V499.97h2.031l0.938,2.156 + c0.979-1.646,2.578-2.469,4.797-2.469c3.667,0,5.5,2.229,5.5,6.688v10.359H655.464z"/> + <path fill="#FFFFFF" d="M663.714,502.313h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.236,2.406,0.711,3c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V502.313z"/> + <path fill="#FFFFFF" d="M689.433,508.626H677.37c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C689.667,507.47,689.589,508.074,689.433,508.626z M682.229,502.157c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C684.766,502.595,683.646,502.157,682.229,502.157z"/> + <path fill="#FFFFFF" d="M702.979,516.704l-4.562-6.094l-4.078,6.094h-3.469l6.078-8.562l-5.578-8.172h3.344l3.75,5.75l4.203-5.75 + h3.281l-6.078,8.172l6.656,8.562H702.979z"/> + <path fill="#FFFFFF" d="M709.886,502.313h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.236,2.406,0.711,3c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V502.313z"/> + <path fill="#FFFFFF" d="M734.12,515.782v7.484h-2.969V499.97h2.969v1.375c1.125-1.125,2.484-1.688,4.078-1.688 + c2.375,0,4.224,0.74,5.547,2.219c1.322,1.479,1.984,3.646,1.984,6.5c0,2.542-0.667,4.617-2,6.227 + c-1.334,1.609-3.261,2.414-5.781,2.414c-0.709,0-1.467-0.125-2.273-0.375C734.867,516.392,734.349,516.105,734.12,515.782z + M734.12,503.579v9.75c0.188,0.281,0.583,0.55,1.188,0.805c0.604,0.256,1.192,0.383,1.766,0.383c3.688,0,5.531-2.083,5.531-6.25 + c0-2.114-0.438-3.661-1.312-4.641c-0.875-0.979-2.276-1.469-4.203-1.469c-0.417,0-0.928,0.146-1.531,0.438 + C734.953,502.887,734.474,503.215,734.12,503.579z"/> + <path fill="#FFFFFF" d="M763.073,508.626h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C763.308,507.47,763.229,508.074,763.073,508.626z M755.87,502.157c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C758.406,502.595,757.286,502.157,755.87,502.157z"/> + <path fill="#FFFFFF" d="M775.526,502.829c-0.646-0.447-1.297-0.672-1.953-0.672c-1.053,0-1.972,0.484-2.758,1.453 + c-0.787,0.969-1.18,2.136-1.18,3.5v9.594h-2.969V499.97h2.969v2.672c1.083-1.989,2.692-2.984,4.828-2.984 + c0.531,0,1.297,0.094,2.297,0.281L775.526,502.829z"/> + <path fill="#FFFFFF" d="M791.87,507.892v8.812h-3.125v-22.891c2.364-0.104,3.791-0.156,4.281-0.156 + c6.646,0,9.969,2.225,9.969,6.672c0,5.146-2.938,7.719-8.812,7.719C793.828,508.048,793.058,507.996,791.87,507.892z + M791.87,496.626v8.453c1.322,0.104,2.021,0.156,2.094,0.156c3.875,0,5.812-1.525,5.812-4.578c0-2.791-2.068-4.188-6.203-4.188 + C793.156,496.47,792.589,496.522,791.87,496.626z"/> + <path fill="#FFFFFF" d="M818.977,508.626h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C819.211,507.47,819.133,508.074,818.977,508.626z M811.773,502.157c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C814.31,502.595,813.189,502.157,811.773,502.157z"/> + <path fill="#FFFFFF" d="M825.305,515.782v7.484h-2.969V499.97h2.969v1.375c1.125-1.125,2.484-1.688,4.078-1.688 + c2.375,0,4.224,0.74,5.547,2.219c1.322,1.479,1.984,3.646,1.984,6.5c0,2.542-0.667,4.617-2,6.227 + c-1.334,1.609-3.261,2.414-5.781,2.414c-0.709,0-1.467-0.125-2.273-0.375C826.052,516.392,825.533,516.105,825.305,515.782z + M825.305,503.579v9.75c0.188,0.281,0.583,0.55,1.188,0.805c0.604,0.256,1.192,0.383,1.766,0.383c3.688,0,5.531-2.083,5.531-6.25 + c0-2.114-0.438-3.661-1.312-4.641c-0.875-0.979-2.276-1.469-4.203-1.469c-0.417,0-0.928,0.146-1.531,0.438 + C826.138,502.887,825.658,503.215,825.305,503.579z"/> + <path fill="#FFFFFF" d="M841.227,502.313h-1.938v-2.344h1.938v-3.5l2.969-1.141v4.641h4.594v2.344h-4.594v8.312 + c0,1.406,0.236,2.406,0.711,3c0.474,0.594,1.236,0.891,2.289,0.891c0.76,0,1.547-0.192,2.359-0.578l0.438,2.609 + c-1.229,0.312-2.578,0.469-4.047,0.469c-1.323,0-2.44-0.492-3.352-1.477c-0.912-0.984-1.367-2.227-1.367-3.727V502.313z"/> + <path fill="#FFFFFF" d="M854.289,516.704V502.47h-2.297v-2.5h5.266v16.734H854.289z M855.914,493.642 + c0.51,0,0.945,0.18,1.305,0.539s0.539,0.789,0.539,1.289c0,0.511-0.18,0.945-0.539,1.305s-0.795,0.539-1.305,0.539 + c-0.5,0-0.93-0.18-1.289-0.539s-0.539-0.794-0.539-1.305c0-0.51,0.177-0.942,0.531-1.297 + C854.971,493.819,855.403,493.642,855.914,493.642z"/> + <path fill="#FFFFFF" d="M872.586,516.688v-1.234c-1.031,1.031-2.531,1.547-4.5,1.547c-2.094,0-3.792-0.75-5.094-2.25 + c-1.303-1.5-1.953-3.5-1.953-6c0-2.51,0.75-4.653,2.25-6.43c1.5-1.775,3.286-2.664,5.359-2.664c1.729,0,3.041,0.406,3.938,1.219 + v-7.766h2.969v23.578H872.586z M872.586,503.845c-0.75-1.125-1.776-1.688-3.078-1.688c-1.594,0-2.883,0.594-3.867,1.781 + s-1.477,2.698-1.477,4.531c0,4.031,1.833,6.047,5.5,6.047c0.469,0,1.031-0.148,1.688-0.445s1.067-0.611,1.234-0.945V503.845z"/> + <path fill="#FFFFFF" d="M893.898,508.626h-12.062c0,1.959,0.536,3.464,1.609,4.516c0.947,0.917,2.166,1.375,3.656,1.375 + c1.697,0,3.114-0.494,4.25-1.484l1.25,2.141c-0.459,0.459-1.162,0.854-2.109,1.188c-1.188,0.438-2.511,0.656-3.969,0.656 + c-2.104,0-3.891-0.713-5.359-2.141c-1.636-1.572-2.453-3.688-2.453-6.344c0-2.76,0.838-4.974,2.516-6.641 + c1.5-1.489,3.275-2.234,5.328-2.234c2.385,0,4.255,0.672,5.609,2.016c1.312,1.292,1.969,3.006,1.969,5.141 + C894.133,507.47,894.055,508.074,893.898,508.626z M886.695,502.157c-1.323,0-2.433,0.428-3.328,1.281 + c-0.854,0.812-1.339,1.823-1.453,3.031h9.266c0-1.197-0.375-2.197-1.125-3C889.231,502.595,888.111,502.157,886.695,502.157z"/> + </g> +</g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ExtractPeptideSequenceContext.xml Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,172 @@ +<!-- +# ===================================================== +# $Id: ExtractPeptideSequenceContext.xml 90 2011-01-19 13:20:31Z pieter.neerincx@gmail.com $ +# $URL: https://trac.nbic.nl/svn/galaxytools/trunk/tools/general/FastaTools/ExtractPeptideSequenceContext.xml $ +# $LastChangedDate: 2011-01-19 07:20:31 -0600 (Wed, 19 Jan 2011) $ +# $LastChangedRevision: 90 $ +# $LastChangedBy: pieter.neerincx@gmail.com $ +# ===================================================== +--> +<tool id="ExtractPeptideSequenceContext1" version="0.1" name="Extract Peptide Context"> + <description>by mapping peptides back to proteins and extending them on both termini to include their sequence context.</description> + <command interpreter="perl">ExtractPeptideSequenceContext.pl --db $db --dbf FASTA --f $fragments --icol $icol --pcol $pcol $strip --pepo $pepo --n $n --c $c --pc '$pc' --ll WARN</command> + <inputs> + <param name="fragments" type="data" format="tabular" label="Peptide sequences and their protein's identifiers" + help="(in tab delimited format)"/> + <param name="icol" type="data_column" value="1" data_ref="fragments" label="Protein identifier column"/> + <param name="pcol" type="data_column" value="2" data_ref="fragments" label="Peptide sequence column"/> + <!-- + <param name="icol" type="integer" value="1" label="Protein identifier column"/> + <param name="pcol" type="integer" value="2" label="Peptide sequence column"/> + --> + <param name="strip" type="select"> + <label>Lowercase characters in the peptide sequences represent</label> + <option value="--s">Modifications</option> + <option value="">Amino acids</option> + </param> + <param name="db" type="data" format="fasta" label="Protein sequences" + help="(in FASTA format)"/> + <param name="n" type="integer" value="5" label="N-terminal sequence context length"/> + <param name="c" type="integer" value="5" label="C-terminal sequence context length"/> + <param name="pc" type="select" help="to fill positions in the sequence context when the protein was too short for a full length context."> + <label>Padding character</label> + <option value="-">dash</option> + <option value=" ">space</option> + <option value="">none</option> + </param> + </inputs> + <outputs> + <data name="pepo" format="tabular" label="Peptide sequence contexts for ${fragments.name}"/> + </outputs> +<!-- + <tests> + <test> + <param name="input" value="*.fasta"/> + <param name="identifiers" value="*.txt"/> + <output name="output" file="*.fasta"/> + </test> + </tests> +--> + <help> + +.. role:: raw-html(raw) + :format: html + +.. class:: infomark + +**What it does** + +Map peptide sequences back to proteins and extend the peptides on both termini to include their sequence context. + +:raw-html:`<object data="static/images/nbic_gmr/ExtractPeptideSequenceContext.svg" type="image/svg+xml" width="100%"/>` + +=================================================== +*Peptide sequences and their protein's identifiers* +=================================================== + +This file must contain at least peptides and accession numbers or IDs of the proteins the peptides were derived from. \ +The data must be in TAB delimited format and may contain other columns, which will be preserved in the output. \ +If a sequence context was found, it will be appended in a new column to the right of the existing columns. \ +When another sequence context was found for the same peptide, it will appended as an extra row in the output. +Protein accession numbers / IDs must be in the same format as was used in the FASTA file with protein sequences (database). \ +The only exception to this rule is that accession numbers / IDs may be optionally suffixed with the peptide\'s position in its protein between brackets. \ +For example: CLH1_HUMAN[1612-1620] will be matched to CLH1_HUMAN in a FASTA file with protein sequences. \ +Amino acids in the petide sequences must be in uppercase. + +=============================================== +*Protein sequences* +=============================================== + +Input file containing all protein sequences in FASTA format. \ +This tool will look for any type of protein ID in the first part of FASTA sequence headers up until the first white space. \ +Optionally multiple IDs may be present separated with pipe symbols (|) or semicolons (;). \ +Optionally IDs may be prefixed with a database namespace and a colon (:). \ +For example the accession number P32234 as well as the ID 128UP_DROME would be recognized in both this sequence header: + + >UniProtAcc:P32234|UniProtID:128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +and in this one: + + >P32234|128UP_DROME GTP-binding protein 128up - Drosophila melanogaster (Fruit fly) + +=================================================== +*N-terminal and C-terminal sequence context length* +=================================================== + +Integers specifying the length of the N-terminal and C-terminal sequence context to retrieve starting from the peptide termini. \ +So the total sequence context length for a peptide will be: +(N-terminal sequence context) + (length of the peptide) + (C-terminal sequence context). + +=============================================== +*Padding character* +=============================================== + +Optional padding character to fill N-terminal or C-terminal positions in the sequence context, \ +when the protein was too short to get a complete sequence context. \ +Defaults to - a.k.a. dash or alignment gap character. \ + +----- + +**Getting input data** + +.. _my folder utility: http://mascotinternal.chem.uu.nl/mascot/cgi/uu_myfolder.pl + +This tool requires \ +peptide sequences in TAB delimited format and \ +protein sequences from which the peptides were derived in FASTA format. \ +If your peptide sequences are not in TAB delimited format, you can convert from: + + - FASTA format using *FASTA manipulation* -> *FASTA-to-Tabular* + - A format using a different delimiter using *Text Manipulation* -> *Convert* + +When your peptides were derived from a mass spectrometry experiment and identified with a search engine like Mascot, Sequest, etc.,\ +please make sure you provide the same FASTA database for this tool as the one used for your search. +If you used Mascot hosted by the Biomolecular Mass Spectrometry and Proteomics Group @ Utrecht University, \ +you can use the `my folder utility`_ to download the FASTA databases from the Mascot server. + +----- + +**Examples** + +Example input for peptides identified with a Mascot search, \ +some with phosphorylated residues indicated by pS, pT or pY \ +and in TAB delimited format:: + + sequence score peptide mr mass delta (abs) mass delta (ppm) all protein matches + AGNAARDN 54.24 787.357254 -4.223E-5 -0.05334300253990 H2A1B_HUMAN[67-74] + KLpSAAVVLI 11.48 912.600784 0.001608 1.7619971713721432 OSGI2_HUMAN[405-413] + RAGIKVpTVA 23.01 913.570892 6.283E-5 0.06786555979719196 PARK7_HUMAN[28-36] + KGGVVGIKVD 44.61 970.581146 -0.001214 -1.2507970147608864 P04075[101-110] + KIKELQAF 11.87 975.575287 0.003907 4.00481649347068 O60882[71-78] + KIpSGpTVNIR 57.17 986.587265 -0.002761 -2.798536022051734 SYTC_HUMAN[681-689] + KLpYEALKF 17.54 1010.580032 0.004782 4.731935966057164 F105A_HUMAN[238-245] + KLDApSEpSLR 31.31 1017.545441 -0.002377 -2.3360136110127785 CLH1_HUMAN[1612-1620] + +=============================================== +*Appending peptide sequence contexts* +=============================================== + +With these options: + + - c6 as *Protein identifier column* + - c1 as *Peptide sequence column* + - 5 as *N-terminal sequence context length* + - 5 as *C-terminal sequence context length* + - a suitable FASTA database with *Protein sequences* + - and everything else set to defaults + +the example above will generate a result like this:: + + AGNAARDN 54.24 787.357254 -4.223E-5 -0.05334300253990 H2A1B_HUMAN[67-74] EILELAGNAARDNKKTRI + KLpSAAVVLI 11.48 912.600784 0.001608 1.7619971713721432 OSGI2_HUMAN[405-413] LKKIFKLSAAVVLIGSHPN + RAGIKVpTVA 23.01 913.570892 6.283E-5 0.06786555979719196 PARK7_HUMAN[28-36] VDVMRRAGIKVTVAGLAGK + KGGVVGIKVD 44.61 970.581146 -0.001214 -1.2507970147608864 P04075[101-110] QVIKSKGGVVGIKVDKGVVP + KIKELQAF 11.87 975.575287 0.003907 4.00481649347068 O60882[71-78] NSMIRKIKELQAFFGLQV + KIpSGpTVNIR 57.17 986.587265 -0.002761 -2.798536022051734 SYTC_HUMAN[681-689] VGEKEKISGTVNIRTRDNK + KLpYEALKF 17.54 1010.580032 0.004782 4.731935966057164 F105A_HUMAN[238-245] AILEYKLYEALKFIMLYQ + KLDApSEpSLR 31.31 1017.545441 -0.002377 -2.3360136110127785 CLH1_HUMAN[1612-1620] LTKVDKLDASESLRKEEEQ + +Note the header line was ignored. + + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ExtractSeqsFromFasta.pl Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,397 @@ +#!/usr/bin/perl -w +# +# This script extracts sequences from a multi-sequence FASTA file +# based on a list of accession numbers / IDs +# +# ===================================================== +# $Id: ExtractSeqsFromFasta.pl 15 2010-07-08 18:07:59Z pieter $ +# $URL: https://trac.nbic.nl/svn/galaxytools/trunk/tools/general/FastaTools/ExtractSeqsFromFasta.pl $ +# $LastChangedDate: 2010-07-08 13:07:59 -0500 (Thu, 08 Jul 2010) $ +# $LastChangedRevision: 15 $ +# $LastChangedBy: pieter $ +# ===================================================== + +# +# initialise environment +# +use strict; +use Getopt::Std; +use Log::Log4perl qw(:easy); + +my %log_levels = ( + 'ALL' => $ALL, + 'TRACE' => $TRACE, + 'DEBUG' => $DEBUG, + 'INFO' => $INFO, + 'WARN' => $WARN, + 'ERROR' => $ERROR, + 'FATAL' => $FATAL, + 'OFF' => $OFF, +); +my %match_logic_types = ( + 'literal' => 1, + 'regex' => 1, +); + +# +# Get options. +# +my %opts; +Getopt::Std::getopts('ul:i:o:f:m:', \%opts); + +my $input = $opts{'i'}; +my $output = $opts{'o'}; +my $filter = $opts{'f'}; +my $log_level = $opts{'l'}; +my $match_logic = $opts{'m'}; +my $ignore_accession_version = $opts{'u'}; + +# +# Configure logging. +# +# Provides default if user did not specify log level: +$log_level = (defined($log_level) ? $log_level : 'INFO'); + +# Reset log level to default if user specified illegal log level. +$log_level = ( + defined($log_levels{$log_level}) + ? $log_levels{$log_level} + : $log_levels{'INFO'}); + +#Log::Log4perl->init('log4perl.properties'); +Log::Log4perl->easy_init( + + #{ level => $log_level, + # file => ">>ExtractSeqsFromFasta.log", + # layout => '%F{1}-%L-%M: %m%n' }, + { + level => $log_level, + file => "STDOUT", + layout => '%d L:%L %p> %m%n' + }, +); +my $logger = Log::Log4perl::get_logger(); + +# +# Check user input. +# +unless (defined($input) && defined($output) && defined($filter)) { + _Usage(); + exit; +} +if ($input =~ /^$/ || $output =~ /^$/ || $filter =~ /^$/) { + _Usage(); + exit; +} +if ($input eq $output) { + $logger->fatal('Output file is the same as the input file. Select a different file for the output.'); + exit; +} + +# +# Check input and filter file. +# +unless (-e $input && -f $input && -r $input) { + $logger->fatal('Cannot read from input file ' . $input . ': ' . $!); + exit; +} +unless (-e $filter && -f $filter && -r $filter) { + $logger->fatal('Cannot read from filter file ' . $filter . ': ' . $!); + exit; +} +# +# Check match logic. +# +$match_logic = (defined($match_logic) ? $match_logic : 'literal'); +unless (defined($match_logic_types{$match_logic})) { + $logger->fatal('Unkown logic ' . $match_logic . ' specified for filtering of the input sequences.'); + exit; +} + +# +# Read accession numbers to search the FASTA file(s) for +# +my $wanted = _CreateLookupHash($filter, $match_logic); +my $seqs_to_extract = scalar(keys(%{$wanted})); +$logger->info('Number of sequences to search for: ' . $seqs_to_extract); + +# +# Extract seqs +# +my ($counter) = _ExtractSeqs($input, $output, $wanted, $match_logic); + +$logger->info('Extracted ' . $counter . ' sequences.'); +$logger->info('Finished!'); + +# +## +### Internal subs. +## +# + +sub _CreateLookupHash { + + my ($file_path, $match_logic) = @_; + + $logger->info('Parsing ' . $file_path . '...'); + + my %wanted; + my $file_path_fh; + + eval { + open($file_path_fh, "<$file_path"); + }; + if ($@) { + $logger->fatal('Cannot read ID file: ' . $@); + exit; + } + + LINE: while (my $line = <$file_path_fh>) { + + $line =~ s/[\r\n]+//g; + + if ($match_logic eq 'literal') { + + if ($line =~ m/([a-z0-9_\-\.]+)/i) { + + my $id = $1; + + if ($ignore_accession_version) { + + # + # Remove version from accession number if it was versioned. + # + if ($id =~ m/([^\.]+)\.(\d+)/) { + + $id = $1; + + } + } + + $logger->debug('Found accession/ID ' . $id); + $wanted{$id} = 1; + + } else { + $logger->warn('Accession/ID in unsupported format: ' . $line); + next; + } + + } elsif ($match_logic eq 'regex') { + + if ($line =~ m/([a-z0-9_\-\.\[\]:?^\$]+)/i) { + my $regex = $1; + $logger->debug('Found regex ' . $regex); + $wanted{$regex} = 1; + } else { + $logger->warn('Regex in unsupported format: ' . $line); + next; + } + + } + } + + close($file_path_fh); + $logger->info('Created ID lookup list.'); + + return (\%wanted); + +} + +sub _ExtractSeqs { + + my ($path_from, $path_to, $wanted, $match_logic) = @_; + + $logger->info('Parsing ' . $path_from . '...'); + + my $extracted_seqs = 0; + my $found = 0; + my $path_from_fh; + my $path_to_fh; + + eval { + open($path_from_fh, "<$path_from"); + }; + if ($@) { + $logger->fatal('Cannot read FASTA file: ' . $@); + exit; + } + eval { + open($path_to_fh, ">$path_to"); + }; + if ($@) { + $logger->fatal('Cannot write FASTA file: ' . $@); + exit; + } + + LINE: while (my $line = <$path_from_fh>) { + + if ($line =~ m/^>/) { + $logger->debug('Found header line: ' . $line); + $found = 0; + my @header_ids; + + # + # Check for the presence of some frequently occurring naming schemes: + # + # >IPI:CON_Trypsin|SWISS-PROT:P00761|TRYP_PIG Trypsin - Sus scrofa (Pig). + # >IPI:CON_IPI00174775.2|TREMBL:Q32MB2;Q86Y46 Tax_Id=9606 Gene_Symbol=KRT73 Keratin-73 + # >sp|Q42592|APXS_ARATH L-ascorbate peroxidase S, chloroplastic/mitochondrial; + # >jgi|Triad1|1|gw1.3.1.1 + # + if ($line =~ m/^>((([^\s\n\r:;|]+)[:]([^\s\n\r:|]+)[|;])*([^\s\n\r:;|]+)[:]([^\s\n\r:|]+))[|;]?(\s+(.+))?/i) { + + # + # One or more namespace prefixed IDs. + # + my $concatenated_namespace_prefixed_ids = $1; + $logger->debug('Found prefixed IDs in header: ' . $concatenated_namespace_prefixed_ids); + + # database_namespace = $3 && $5; + # id = $4 && $6; + # description = $8; + my @namespace_prefixed_ids = split(/[|;]/, $concatenated_namespace_prefixed_ids); + + foreach my $prefixed_id (@namespace_prefixed_ids) { + + if ($prefixed_id =~ m/([^\s\n\r:;|]+:)?([^\s\n\r:|]+)/i) { + + my $this_id = $2; + + $logger->debug('Found ID: ' . $this_id); + push(@header_ids, $this_id); + + } else { + + $logger->warn( + 'This should have been an optionally prefixed ID, ' + . 'but failed to match the corresponding regex: ' + . $prefixed_id); + + } + } + + } elsif ($line =~ m/^>((([^\s\n\r:;|]+)[|;])*([^\s\n\r:;|]+))[|;]?(\s+(.+))?/i) { + + # + # One or more unprefixed IDs. + # + my $concatenated_ids = $1; + $logger->debug('Found unprefixed IDs in header: ' . $concatenated_ids); + + # id = $3 && $4; + # description = $7; + my @unprefixed_ids = split(/[|;]/, $concatenated_ids); + + foreach my $unprefixed_id (@unprefixed_ids) { + + $logger->debug('Found ID: ' . $unprefixed_id); + push(@header_ids, $unprefixed_id); + + } + + } else { + + # + # Something else. + # + # The FASTA header line can basically have any format, + # so this is probably one of the less frequent occurring annotation schemes. + # Therefore we try to see if the IDs we are looking for are present anywhere + # in the header line up until the first white space or new line. + # This may be tricky as we might match other annotation from other proteins + # like a description from a 'best' BLAST hit that contains one of the IDs we + # are looking for. Hence, in such a case this sequence is *not* the one of + # the IDs we looking for, but similar to that one at best. + # + if ($line =~ m/>([^\n\r\s]+)/) { + + my $putative_id = $1; + $logger->debug('Found putative ID in header: ' . $putative_id); + push(@header_ids, $putative_id); + + } else { + $logger->warn('Cannot identify IDs in this header: ' . $line); + } + } + + + if ($ignore_accession_version) { + + for my $inx (0 .. $#header_ids) { + + if ($header_ids[$inx] =~ m/([^\.]+)\.(\d+)/) { + + my $this_unversioned_id = $1; + my $version_number = $2; + $logger->debug('Dropping version number (' . $version_number . ') for versioned ID: ' . $this_unversioned_id . '.'); + $header_ids[$inx] = $this_unversioned_id; + + } + } + } + + foreach my $id (@header_ids) { + $logger->debug('Checking if ID ' . $id . ' is in the list of sequences to extract.'); + + if ($match_logic eq 'literal') { + + if (${$wanted}{$id}) { + $logger->info('Literal bingo, preserving sequence with ID ' . $id); + $found = 1; + $extracted_seqs++; + last; + } + + } elsif ($match_logic eq 'regex') { + + foreach my $regex (keys(%{$wanted})) { + + if ($id =~ m/$regex/) { + $logger->info('Regex bingo, preserving sequence with ID ' . $id); + $found = 1; + $extracted_seqs++; + last; + } + } + } + } + } + if ($found) { + print($path_to_fh $line); + } + + } + + close($path_from_fh); + close($path_to_fh); + + return ($extracted_seqs); + +} + +sub _Usage { + + print STDERR "\n" + . "extractSeqsFromFasta.pl:\n" + . " Extracts sequences from a multi-sequence FASTA file.\n" . "\n" + . "Usage:\n" . "\n" + . " extractSeqsFromFasta.pl options\n" . "\n" + . "Available options are:\n" . "\n" + . " -i [file] Input file in FASTA format.\n" + . " -o [file] Output file in FASTA format where the extracted files will be saved.\n" + . " -f [file] Filter file containing accession numbers or IDs that shoud be extracted from the input.\n" + . " (One accession/ID per line)\n" + . " -m [string] Match logic that defines how the accession numbers or IDs from the filter file will be.\n" + . " matched to those in the FASTA file. Supported logic types:\n" + . " literal for exact matching.\n" + . " regex for fuzzy matching using simple regular expressions (in Perl regex syntax).\n" + . " -u Use unversioned accession numbers for matching (only with -m literal).\n" + . " If the FASTA input file contains a versioned accession number like this IPI00189968.5,\n" + . " running this tool without -u (default) IPI00189968 or IPI00189968.2 will not match IPI00189968.5, \n" + . " but with -u IPI00189968 or IPI00189968.2 will match IPI00189968.5 and the sequence will be extracted.\n" + . " Hence this allows for less strict matching, but is less fuzzy than matching with regexes.\n" + . " -l [LEVEL] Log4perl log level. One of: ALL, TRACE, DEBUG, INFO (default), WARN, ERROR, FATAL or OFF.\n" + . "\n"; + exit; + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ExtractSeqsFromFasta.xml Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,78 @@ +<!-- +# ===================================================== +# $Id: ExtractSeqsFromFasta.xml 90 2011-01-19 13:20:31Z pieter.neerincx@gmail.com $ +# $URL: https://trac.nbic.nl/svn/galaxytools/trunk/tools/general/FastaTools/ExtractSeqsFromFasta.xml $ +# $LastChangedDate: 2011-01-19 07:20:31 -0600 (Wed, 19 Jan 2011) $ +# $LastChangedRevision: 90 $ +# $LastChangedBy: pieter.neerincx@gmail.com $ +# ===================================================== +--> +<tool id="ExtractSeqsFromFasta1" version="1.1" name="ExtractSeqsFromFasta"> + <description>Extract sequences from a FASTA file based on a list of IDs</description> + <command interpreter="perl">ExtractSeqsFromFasta.pl $ignore_accession_number_versions -f $identifiers -i $input -o $output -l WARN</command> + <inputs> + <param format="fasta" name="input" type="data" label="FASTA sequences"/> + <param format="txt" name="identifiers" type="data" label="List of IDs to extract sequences for"/> + <param name="ignore_accession_number_versions" type="boolean" truevalue="-u" falsevalue="" optional="true" label="Ignore accession number versions"/> + </inputs> + <outputs> + <data format="fasta" name="output" label="FASTA sequences for ${identifiers.name}"/> + </outputs> +<!-- + <tests> + <test> + <param name="input" value="*.fasta"/> + <param name="identifiers" value="*.txt"/> + <output name="output" file="*.fasta"/> + </test> + </tests> +--> + <help> + +.. class:: infomark + +**What it does** + +This tool filters a set of FASTA sequences for certain identifiers (IDs) or accession numbers. \ +Only sequences whose ID or accession number is present in the supplied list will remain in the filtered FASTA output. \ +The list of IDs or accession numbers to filter for must be a flat text file with one ID or accession per line. + +This tool can match IDs with and without colon prefixed database namespaces in FASTA sequence header line. \ +Hence your FASTA header can contain both >UniProtKB:Q86Y46 ... or just plain >Q86Y46 ... . \ +Database namespace prefixes should not be present in the list of IDs that you want to extract sequences for. + +FASTA headers may contain multiple IDs separated with pipe symbols (|) or semi colons (;). \ +If multiple IDs are supplied these should not contain any white space as everything after the \ +first white space is considered to be the (optional) description, which will not be matched against the list \ +of IDs to extract. + +If your FASTA file contains versioned IDs / accessions, your list of IDs / accessions to extract must also contain \ +versioned IDs / accessions and the version numbers must match. + +----- + +**Example** + +If the FASTA header is this:: + + >IPI:CON_IPI00174775.2|TREMBL:Q32MB2;Q86Y46 Tax_Id=9606 Gene_Symbol=KRT73 Keratin-73 + +The following IDs / accession numbers will match this sequence header:: + + CON_IPI00174775.2 + Q32MB2 + Q86Y46 + +These will not match:: + + IPI:CON_IPI00174775.2 (prefix should be removed) + KRT73 (ID part of description and not part of list of IDs, + which is everything up until the first white space.) + +And finally these will not match unless *ignore accession number versions* is enabled:: + + CON_IPI00174775 (no version number, while FASTA file does contain versioned accession numbers) + CON_IPI00174775.1 (wrong version number) + + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FastaStats.pl Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,220 @@ +#!/usr/bin/perl + +# +# FastaStats.pl +# +# ===================================================== +# $Id: FastaStats.pl 6 2010-05-27 15:52:50Z pieter $ +# $URL: https://trac.nbic.nl/svn/galaxytools/trunk/tools/general/FastaTools/FastaStats.pl $ +# $LastChangedDate: 2010-05-27 10:52:50 -0500 (Thu, 27 May 2010) $ +# $LastChangedRevision: 6 $ +# $LastChangedBy: pieter $ +# ===================================================== +# +# Counts the amount of sequences in a FASTA file +# as well as the amount of nucleotides / amino acids +# and the sueqence composition. +# + +# +# Initialize evironment +# +use strict; +use Getopt::Std; +use Log::Log4perl qw(:easy); + +my %log_levels = ( + 'ALL' => $ALL, + 'TRACE' => $TRACE, + 'DEBUG' => $DEBUG, + 'INFO' => $INFO, + 'WARN' => $WARN, + 'ERROR' => $ERROR, + 'FATAL' => $FATAL, + 'OFF' => $OFF, +); + +# +# Get options. +# +my %opts; +Getopt::Std::getopts('pi:o:l:', \%opts); + +my $fasta_file = $opts{'i'}; +my $stats_file = $opts{'o'}; +my $log_level = $opts{'l'}; +my $get_positional_composition = $opts{'p'}; + +# +# Configure logging. +# +# Provides default if user did not specify log level: +$log_level = (defined($log_level) ? $log_level : 'INFO'); +# Reset log level to default if user specified illegal log level. +$log_level = (defined($log_levels{$log_level}) ? $log_levels{$log_level} : $log_levels{'INFO'}); +#Log::Log4perl->init('log4perl.properties'); +Log::Log4perl->easy_init( + #{ level => $log_level, + # file => ">>FastaStats.log", + # layout => '%F{1}-%L-%M: %m%n' }, + { level => $log_level, + file => "STDOUT", + layout => '%d L:%L %p> %m%n' }, +); +my $logger = Log::Log4perl::get_logger(); + +# +# Check options. +# +if ($fasta_file =~ /^$/) { + _Usage(); + exit; +} +unless (-f $fasta_file && -r $fasta_file) { + _Usage(); + exit; +} + +# +# Start job. +# +$logger->info('Starting...'); +$logger->info('Using FASTA file: '. $fasta_file); + +my $sequence_count = 0; +my %acid_composition_total; +my %acid_composition_positional; +my $position_offset; + +# +# Create filehandles. +# +my $fasta_fh; +my $stats_fh; + +eval { + open($fasta_fh, "<$fasta_file"); + open($stats_fh, ">$stats_file"); +}; +if ($@) { + $logger->fatal('Cannot create filehandle: ' . $@); + exit; +} + +# +# Parse FASTA file. +# +while (my $line = <$fasta_fh>) { + + if ($line =~ /^>/i) { + + $sequence_count++; + $position_offset = 0; # reset position. + + } else { + + # + # Ignore: + # * white space + # * end of line (EOL) characters + # * lower- and/or uppercase (repeat) masking. + # + my $seq_line = $line; + $seq_line =~ s/[\s\n\r]+//g; + next if ($seq_line eq ''); + $seq_line = uc($seq_line); + + if ($seq_line =~ m/^([a-zA-Z*-]+)$/) { + + my $seq = $1; + my @acids = split(//, $seq); + + foreach my $acid(@acids) { + + $acid_composition_total{$acid}++; + + if ($get_positional_composition) { + + $acid_composition_positional{$acid}[$position_offset]++; + $position_offset++; + + } + } + + } else { + + $logger->warn('Weird line in FASTA file: ' . $line); + exit; + + } + } +} + +# +# Save stats. +# +print($stats_fh 'Sequences' . "\t" . $sequence_count . "\n"); +print($stats_fh 'Total acid composition:' . "\n"); +my $total_acid_count = 0; +foreach my $acid (sort(keys(%acid_composition_total))) { + my $acid_count = $acid_composition_total{$acid}; + print($stats_fh 'Acid ' . $acid . "\t" . $acid_count . "\n"); + $total_acid_count += $acid_count; +} +if ($get_positional_composition) { +print($stats_fh 'Positional acid composition:' . "\n"); + foreach my $acid (sort(keys(%acid_composition_positional))) { + print($stats_fh 'Acid ' . $acid); + for my $inx (1 .. scalar(@{$acid_composition_positional{$acid}})) { + my $acid_count; + if (defined($acid_composition_positional{$acid}[$inx-1])) { + $acid_count = $acid_composition_positional{$acid}[$inx-1]; + } else { + $acid_count = 0; + } + print($stats_fh "\t" . $acid_count); + } + print($stats_fh "\n"); + } +} + +print($stats_fh 'Total acids' . "\t" . $total_acid_count . "\n"); + +# +# Close filehandles. +# +close($fasta_fh); +close($stats_fh); + +$logger->info('Found ' . $total_acid_count . ' nucleotide/amino acids in ' . $sequence_count . ' sequences.'); +$logger->info('Finished!'); + +# +## +### Subs. +## +# + +sub _Usage { + + print "\n"; + print "FastaStats.pl - Reports statistics on a FASTA file like \n"; + print " * The number of sequences\n"; + print " * The total number of (nucleotide|amino) acids\n"; + print " * Sequence composition per (nucleotide|amino) acid\n"; + print "\n"; + print "Usage:\n"; + print "\n"; + print " FastaStats.pl options\n"; + print "\n"; + print "Available options are:\n"; + print "\n"; + print " -i [file] Input FASTA file.\n"; + print " -o [file] Output stats file.\n"; + print " -p Add positional stats to the output.\n"; + print " This will count the occurrance of each AA on each position of all sequences.\n"; + print " -l [LEVEL] Log4perl log level. One of: ALL, TRACE, DEBUG, INFO (default), WARN, ERROR, FATAL or OFF.\n"; + print "\n"; + exit; + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FastaStats.xml Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,87 @@ +<!-- +# ===================================================== +# $Id: FastaStats.xml 90 2011-01-19 13:20:31Z pieter.neerincx@gmail.com $ +# $URL: https://trac.nbic.nl/svn/galaxytools/trunk/tools/general/FastaTools/FastaStats.xml $ +# $LastChangedDate: 2011-01-19 07:20:31 -0600 (Wed, 19 Jan 2011) $ +# $LastChangedRevision: 90 $ +# $LastChangedBy: pieter.neerincx@gmail.com $ +# ===================================================== +--> +<tool id="FastaStats1" name="FastaStats"> + <description>List statistics for sequences in a FASTA file</description> + <command interpreter="perl">FastaStats.pl $get_positional_composition_stats -i $input -o $output -l WARN</command> + <inputs> + <param format="fasta" name="input" type="data" label="FASTA sequences"/> + <param name="get_positional_composition_stats" type="boolean" truevalue="-p" falsevalue="" optional="true" label="Calculate positional acid frequencies"/> + </inputs> + <outputs> + <data format="txt" name="output" label="FASTA Statistics for ${input.name}"/> + </outputs> + <tests> + <test> + <param name="input" value="fasta_2_proteins.fasta" ftype="fasta"/> + <output name="output" file="FastaStats_example_output.txt"/> + </test> + </tests> + <help> + +.. class:: infomark + +**What it does** + +This tool analyzes a collection of sequences in FASTA format and reports: \ + + - The total number of sequences. + - The total number of nucleotide or amino acids. + - The total frequency of nucleotide or amino acids. + - The positional frequency of nucleotide or amino acids (optional). + +----- + +**Example** + +If the FASTA sequence collection contains these two sequences:: + + >UniProtKB:Q42593 L-ascorbate peroxidase T, chloroplastic; + MSVSLSAASHLLCSSTRVSLSPAVTSSSSSPVVALSSSTSPHSLGSVASSSLFPHSSFVL + QKKHPINGTSTRMISPKCAASDAAQLISAKEDIKVLLRTKFCHPILVRLGWHDAGTYNKN + IEEWPLRGGANGSLRFEAELKHAANAGLLNALKLIQPLKDKYPNISYADLFQLASATAIE + EAGGPDIPMKYGRVDVVAPEQCPEEGRLPDAGPPSPADHLRDVFYRMGLDDKEIVALSGA + HTLGRARPDRSGWGKPETKYTKTGPGEAGGQSWTVKWLKFDNSYFKDIKEKRDDDLLVLP + TDAALFEDPSFKNYAEKYAEDVAAFFKDYAEAHAKLSNLGAKFDPPEGIVIENVPEKFVA + AKYSTGKKELSDSMKKKIRAEYEAIGGSPDKPLPTNYFLNIIIAIGVLVLLSTLFGGNNN + SDFSGF + >UniProtKB:A0MQ79 Ascorbate peroxidase; + MVKNYPVVSEEYLIAVDKAKKKLRGFIAEKNCAPLMLRLAWHSAGTFDQCSRTGGPFGTM + RFKAEQAHSANNGIDIAIRLLEPIKEQFPILSYADFYQLAGVVAVEVTGGPEVPFHPGRP + DKEEPPVEGRLPDAYKGSDHLRDVFIKQMGLSDQDIVALSGGHTLGRCHKERSGFEGPWT + ENPLIFDNSYFKELVCGERDGLLQLPSDKALLADPVFHPLVEKYAADEDAFFADYAEAHL + KLSELGFADA + +The reported stats (without optional positional acid frequencies) will be this:: + + Sequences 2 + Acid A 69 + Acid C 8 + Acid D 44 + Acid E 44 + Acid F 33 + Acid G 52 + Acid H 18 + Acid I 30 + Acid K 50 + Acid L 67 + Acid M 9 + Acid N 22 + Acid P 46 + Acid Q 13 + Acid R 26 + Acid S 57 + Acid T 23 + Acid V 37 + Acid W 7 + Acid Y 21 + Total acids 676 + + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/GenerateDegenerateFasta.pl Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,435 @@ +#!/usr/bin/perl -w +# +# This script generates a multi-sequence FASTA file +# with all possible combinations of sequences based +# on degenerate input sequences. +# +# ===================================================== +# $Id: GenerateDegenerateFasta.pl 67 2010-11-09 15:20:01Z pieter.neerincx@gmail.com $ +# $URL: https://trac.nbic.nl/svn/galaxytools/trunk/tools/general/FastaTools/GenerateDegenerateFasta.pl $ +# $LastChangedDate: 2010-11-09 09:20:01 -0600 (Tue, 09 Nov 2010) $ +# $LastChangedRevision: 67 $ +# $LastChangedBy: pieter.neerincx@gmail.com $ +# ===================================================== + +# +# initialise environment +# +use strict; +use Getopt::Std; +use Log::Log4perl qw(:easy); + +my %log_levels = ( + 'ALL' => $ALL, + 'TRACE' => $TRACE, + 'DEBUG' => $DEBUG, + 'INFO' => $INFO, + 'WARN' => $WARN, + 'ERROR' => $ERROR, + 'FATAL' => $FATAL, + 'OFF' => $OFF, +); + +my %amino_acids = ( + 'A' => ['A'], + 'B' => ['D','N'], + 'C' => ['C'], + 'D' => ['D'], + 'E' => ['E'], + 'F' => ['F'], + 'G' => ['G'], + 'H' => ['H'], + 'I' => ['I'], + 'J' => ['I','L'], + 'K' => ['K'], + 'L' => ['L'], + 'M' => ['M'], + 'N' => ['N'], + 'O' => ['O'], + 'P' => ['P'], + 'Q' => ['Q'], + 'R' => ['R'], + 'S' => ['S'], + 'T' => ['T'], + 'U' => ['U'], + 'V' => ['V'], + 'W' => ['W'], + 'X' => ['A','C','D','E','F','G','H','I','K','L','M','N','P','Q','R','S','T','V','W','Y'], # 20 regular Amino Acids. + 'X22' => ['A','C','D','E','F','G','H','I','K','L','M','N','O','P','Q','R','S','T','U','V','W','Y'], # 22 Amino Acids including the rare Selenocysteine and Pyrrolysine. + 'Y' => ['Y'], + 'Z' => ['E','Q'], +); + +my %dna = ( + 'A' => ['A'], + 'B' => ['C','G','T'], + 'C' => ['C'], + 'D' => ['A','G','T'], + 'G' => ['G'], + 'H' => ['A','C','T'], + 'K' => ['G','T'], + 'M' => ['A','C'], + 'N' => ['A','C','G','T'], + 'R' => ['A','G'], + 'S' => ['C','G'], + 'T' => ['T'], + 'V' => ['A','C','G'], + 'W' => ['A','T'], + 'Y' => ['C','T'], +); + +my %rna = ( + 'A' => ['A'], + 'B' => ['C','G','U'], + 'C' => ['C'], + 'D' => ['A','G','U'], + 'G' => ['G'], + 'H' => ['A','C','U'], + 'K' => ['G','U'], + 'M' => ['A','C'], + 'N' => ['A','C','G','U'], + 'R' => ['A','G'], + 'S' => ['C','G'], + 'U' => ['U'], + 'V' => ['A','C','G'], + 'W' => ['A','U'], + 'Y' => ['C','U'], +); + +# +# Get options. +# +my %opts; +Getopt::Std::getopts('i:p:s:t:o:x:l:', \%opts); + +my $input = $opts{'i'}; +my $prefix_column = $opts{'p'}; +my $sequence_column = $opts{'s'}; +my $acid_type = $opts{'t'}; +my $output = $opts{'o'}; +my $aa_x = $opts{'x'}; +my $log_level = $opts{'l'}; + +# +# Configure logging. +# +# Provides default if user did not specify log level: +$log_level = (defined($log_level) ? $log_level : 'INFO'); + +# Reset log level to default if user specified illegal log level. +$log_level = ( + defined($log_levels{$log_level}) + ? $log_levels{$log_level} + : $log_levels{'INFO'}); + +#Log::Log4perl->init('log4perl.properties'); +Log::Log4perl->easy_init( + + #{ level => $log_level, + # file => ">>GenerateDegenrateFasta.log", + # layout => '%F{1}-%L-%M: %m%n' }, + { + level => $log_level, + file => "STDOUT", + layout => '%d L:%L %p> %m%n' + }, +); +my $logger = Log::Log4perl::get_logger(); + +# +# Check user input. +# +unless (defined($input) && defined($output)) { + _Usage(); + exit; +} +if ($input =~ /^$/ || $output =~ /^$/) { + _Usage(); + exit; +} +if ($input eq $output) { + $logger->fatal('Output file is the same as the input file. Select a different file for the output.'); + exit; +} + +# +# Check input file. +# +unless (-e $input && -f $input && -r $input) { + $logger->fatal('Cannot read from input file ' . $input . ': ' . $!); + exit; +} + +$prefix_column = (defined($prefix_column) ? $prefix_column : 1); +unless ($prefix_column =~ m/^\d+$/ && $prefix_column > 0) { + $logger->fatal('Prefix column must be a positive integer.'); + exit; +} else { + $logger->debug('Prefix column = ' . $prefix_column); +} + +$sequence_column = (defined($sequence_column) ? $sequence_column : 2); +unless ($sequence_column =~ m/^\d+$/ && $sequence_column > 0) { + $logger->fatal('Sequence column must be a positive integer.'); + exit; +} else { + $logger->debug('Sequence column = ' . $sequence_column); +} + +$acid_type = (defined($acid_type) ? $acid_type : 'aa'); +unless ($acid_type eq 'aa' || $acid_type eq 'dna' || $acid_type eq 'rna') { + $logger->fatal('Illegal value for option -t. Value for acid type must be \'aa\' for amino acids, \'dna\' for deoxyribonucleic acids or \'rna\' for ribonucleic acids.'); + exit; +} + +my %acids; +if ($acid_type eq 'aa') { + $aa_x = (defined($aa_x) ? $aa_x : 20); + unless ($aa_x == 20 || $aa_x == 22) { + $logger->fatal('Illegal value for option -x. Value for amino acid \'X\' expansion must be 20 or 22.'); + exit; + } + %acids = %amino_acids; +} elsif ($acid_type eq 'dna') { + %acids = %dna; +} elsif ($acid_type eq 'rna') { + %acids = %rna; +} + +# +# Read degenerate sequences and their IDs from a tab delimited file +# +my $degenerate_sequences = _ParseInput($input, $prefix_column, $sequence_column); +my $degenerate_sequence_count = scalar(keys(%{$degenerate_sequences})); +$logger->info('Number of degenerate sequences: ' . $degenerate_sequence_count); + +# +# Generate FASTA DB with all possible permutations. +# +my ($counter) = _GenerateSeqs($degenerate_sequences, $output, $acid_type); + +$logger->info('Generated FASTA DB with ' . $counter . ' sequences.'); +$logger->info('Finished!'); + +# +## +### Internal subs. +## +# + +sub _ParseInput { + + my ($file_path, $prefix_column, $sequence_column) = @_; + + $logger->info('Parsing ' . $file_path . '...'); + + my %degenerate_sequences; + my $file_path_fh; + my $prefix_column_offset = $prefix_column - 1; + my $sequence_column_offset = $sequence_column - 1; + my $line_counter = 0; + + eval { + open($file_path_fh, "<$file_path"); + }; + if ($@) { + $logger->fatal('Cannot read input file: ' . $@); + exit; + } + + LINE: while (my $line = <$file_path_fh>) { + + $line =~ s/[\r\n]+//g; + $line_counter++; + + my @values = split("\t", $line); + + unless (defined($values[$prefix_column_offset])) { + $logger->fatal('Prefix missing on line ' . $line_counter . ' of the input file.'); + exit; + } + + unless (defined($values[$sequence_column_offset])) { + $logger->fatal('Sequence missing on line ' . $line_counter . ' of the input file.'); + exit; + } + + my $prefix = $values[$prefix_column_offset]; + my $degenerate_sequence = $values[$sequence_column_offset]; + + + unless ($prefix =~ m/[a-zA-Z0-9_:\.\-]/i) { + $logger->fatal('Prefix countains illegal characters on line ' . $line_counter . '. Prefix should contain only a-z A-Z 0-9 _ : . or -.'); + exit; + } + + unless ($degenerate_sequence =~ m/[a-zA-Z0-9_:\.\-]/i) { + $logger->fatal('Degenerate sequence countains illegal characters on line ' . $line_counter . '. Sequence should contain only a-z A-Z.'); + exit; + } + + $degenerate_sequences{$prefix} = $degenerate_sequence; + $logger->debug('Found degenerate sequence ' . $degenerate_sequence . ' with prefix ' . $prefix); + + } + + close($file_path_fh); + $logger->info('Parsed input.'); + + return (\%degenerate_sequences); + +} + +sub _GenerateSeqs { + + my ($degenerate_sequences, $path_to, $acid_type) = @_; + + $logger->info('Generating sequences...'); + + my $generated_seqs = 0; + my $path_to_fh; + + eval { + open($path_to_fh, ">$path_to"); + }; + if ($@) { + $logger->fatal('Cannot write FASTA file: ' . $@); + exit; + } + + DS:foreach my $prefix(sort(keys(%{$degenerate_sequences}))) { + + my $degenerate_sequence = ${$degenerate_sequences}{$prefix}; + $degenerate_sequence = uc($degenerate_sequence); + + $logger->debug("\t" . 'For ' . $prefix); + + my $suffix = 1; + my @degenerate_sequence_acids = split('', $degenerate_sequence); + my $new_sequences = []; + my $next_acid_count = 0; + + foreach my $next_acid (@degenerate_sequence_acids) { + + $next_acid_count++; + + unless (defined($acids{$next_acid})) { + $logger->error('Unknown (degenerate) acid ' . $next_acid . ' in input sequence ' . $prefix . ' (' . $degenerate_sequence . ').'); + $logger->warn("\t" . 'Skipping sequence ' . $prefix . '.'); + next DS; + } + + if ($acid_type eq 'aa') { + + if ($next_acid eq 'X') { + + # + # By default X will expand to the 20 most common amino acids, + # but if -x 22 was specified X will expand to all 22 amino acids + # including the very rare ones. + # + if ($aa_x == 22) { + + $next_acid = 'X22'; + + } + } + } + + $new_sequences = _GrowSequence ($new_sequences, $next_acid); + + my $sequence_count = scalar(@{$new_sequences}); + $logger->trace("\t\t" . $next_acid_count . ' Acid ' . $next_acid . ': ' . $sequence_count . ' sequences.'); + + } + + foreach my $new_sequence (@{$new_sequences}) { + + $generated_seqs++; + my $id = $prefix . '_' . $suffix; + + $logger->trace("\t\t\t" . $id . ' :: ' . $new_sequence); + + print($path_to_fh '>' . $id . "\n"); + # TODO: wrap long sequences over multiple lines. + print($path_to_fh $new_sequence . "\n"); + + $suffix++; + + } + } + + close($path_to_fh); + + return ($generated_seqs); + +} + +# +# Usage +# + +sub _GrowSequence { + + my ($sequences, $next_acid) = @_; + + my @larger_sequences; + + if (scalar(@{$sequences}) < 1) { + + foreach my $acid (@{$acids{$next_acid}}) { + + my $larger_sequence = $acid; + + push(@larger_sequences, $larger_sequence); + + } + + } else { + + foreach my $sequence (@{$sequences}) { + + foreach my $acid (@{$acids{$next_acid}}) { + + my $larger_sequence = $sequence . $acid; + + push(@larger_sequences, $larger_sequence); + + } + } + } + + return (\@larger_sequences); + +} + +sub _Usage { + + print STDERR "\n" + . 'GenerateDegenerateFasta.pl:' . "\n\n" + . ' Generates a multi-sequence FASTA file with all possible combinations of sequences ' . "\n" + . ' based on degenerate input sequences.' . "\n\n" + . 'Usage:' . "\n\n" + . ' GenerateDegenerateFasta.pl options' . "\n\n" + . 'Available options are:' . "\n\n" + . ' -i [file] Input file in tab delimited format.' . "\n" + . ' -p [number] Prefix column.' . "\n" + . ' Column from the input file containg strings that will be used as prefixes ' . "\n" + . ' to generate unique IDs for the FASTA sequences.' . "\n" + . ' -s [number] Sequence column.' . "\n" + . ' Column from the input file containg degenerate amino or nucleic acid sequences ' . "\n" + . ' that will be used to generate the FASTA sequences.' . "\n" + . ' For example RXX can be used to generate the amino acids sequences RAA, RAC, RAD ... RYY.' . "\n" + . ' -t [type] Acid type of the degenerate input sequences.' . "\n" + . ' Must be one of:' . "\n" + . ' aa - for amino acids' . "\n" + . ' dna - for deoxyribonucleic acids' . "\n" + . ' rna - for ribonucleic acids' . "\n" + . ' -o [file] Output file in FASTA format.' . "\n" + . ' -x [20|22] Indicates whether the degenerate amino acid X represents only the 20 most common amino acids (default).' . "\n" + . ' or all 22 amino acids including the rare Selenocysteine and Pyrrolysine.' . "\n" + . ' -l [LEVEL] Log4perl log level. One of: ALL, TRACE, DEBUG, INFO (default), WARN, ERROR, FATAL or OFF.' . "\n" + . "\n"; + exit; + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/GenerateDegenerateFasta.xml Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,177 @@ +<!-- +# ===================================================== +# $Id: GenerateDegenerateFasta.xml 90 2011-01-19 13:20:31Z pieter.neerincx@gmail.com $ +# $URL: https://trac.nbic.nl/svn/galaxytools/trunk/tools/general/FastaTools/GenerateDegenerateFasta.xml $ +# $LastChangedDate: 2011-01-19 07:20:31 -0600 (Wed, 19 Jan 2011) $ +# $LastChangedRevision: 90 $ +# $LastChangedBy: pieter.neerincx@gmail.com $ +# ===================================================== +--> +<tool id="GenerateDegenerateFasta1" name="GenerateDegenerateFasta" version="2.1"> + <description>Creates a FASTA file with all possible sequences for degenerate sequences.</description> + <command interpreter="perl"> + #if $sequence_features.acid_type=="aa" #GenerateDegenerateFasta.pl -i $input -p $pcol -s $scol -t aa -o $output -x $sequence_features.xexpansion -l WARN + #elif $sequence_features.acid_type=="dna" #GenerateDegenerateFasta.pl -i $input -p $pcol -s $scol -t dna -o $output -l WARN + #elif $sequence_features.acid_type=="rna" #GenerateDegenerateFasta.pl -i $input -p $pcol -s $scol -t rna -o $output -l WARN + #end if + </command> + <inputs> + <param format="tabular" name="input" type="data" label="Degenerate sequences" + help="(in tab delimited format)"/> + <param name="pcol" type="data_column" value="1" data_ref="input" label="Prefix column" + help="Prefixes will be used as the first part of unique identifiers for the generated sequences."/> + <param name="scol" type="data_column" value="2" data_ref="input" label="Sequence column"/> + <conditional name='sequence_features'> + <param name="acid_type" type="select" accept_default="true" mmultiple="false" label="The degenerate sequences represent"> + <label>The degenerate sequences represent</label> + <option value="aa">Proteins</option> + <option value="dna">DNA</option> + <option value="rna">RNA</option> + </param> + <when value="aa"> + <param name="xexpansion" type="select" accept_default="true" mmultiple="false" label="The degenerate amino acid X represents"> + <label>The degenerate amino acid X represents</label> + <option value="20">The 20 most common amino acids</option> + <option value="22">All 22 amino acids</option> + </param> + </when> + <when value="dna"> + </when> + <when value="rna"> + </when> + </conditional> + </inputs> + <outputs> + <data format="fasta" name="output" label="FASTA sequences for ${input.name}"/> + </outputs> + <!-- + <tests> + <test> + <param name="input" value="GenerateDegenerateFasta_example_input.txt"/> + <output name="output" file="GenerateDegenerateFasta_example_output.fasta" ftype="fasta"/> + </test> + </tests> + --> + <help> + +.. class:: infomark + +**What it does** + +This tool creates a multi-sequence FASTA file with all possible sequences based on degenerate input sequences. +The input must be a tab delimited file containing at least 2 columns. +One with the degenerate sequences and the other with a prefix that will be used to give each of generated sequences a unique identifier. +In addition to the prefix, the generated identifiers will contain an underscore followed by an incremented number. + +=================================================== +*Degenerate (wild card) amino acids* +=================================================== + +===================== =========================================== ==================================================================== +Amino Acid Expands to Comment +===================== =========================================== ==================================================================== +B D,N +J I,L +X A,C,D,E,F,G,H,I,K,L,M,N,P,Q,R,S,T,V,W,Y The 20 most common amino acids (default) or +X A,C,D,E,F,G,H,I,K,L,M,N,O,P,Q,R,S,T,U,V,W,Y All 22 amino acids including the rare Selenocysteine and Pyrrolysine +Z E,Q +===================== =========================================== ==================================================================== + +=================================================== +*Degenerate (wild card) deoxyribonucleic acids* +=================================================== + +===================== ================================ =============================================================================== +Deoxyribonucleic Acid Expands to Comment +===================== ================================ =============================================================================== +B C,G,T Not A; B follows A alphabetically +D A,G,T Not C; D follows C alphabetically +H A,C,T Not G; H follows G alphabetically +K G,T Keto +M A,C aMino +N A,C,G,T aNy +R A,G puRine +S C,G Strong interaction (3 H-bonds) +V A,C,G Not T (and not U); V follows U alphabetically +W A,T Weak interaction (2 H-bonds) +Y C,T pYrimidine +===================== ================================ =============================================================================== + +=================================================== +*Degenerate (wild card) ribonucleic acids* +=================================================== + +===================== ================================ =============================================================================== +Ribonucleic Acid Expands to Comment +===================== ================================ =============================================================================== +B C,G,U Not A; B follows A alphabetically +D A,G,U Not C; D follows C alphabetically +H A,C,U Not G; H follows G alphabetically +K G,U Keto +M A,C aMino +N A,C,G,U aNy +R A,G puRine +S C,G Strong interaction (3 H-bonds) +V A,C,G Not U; V follows U alphabetically +W A,U Weak interaction (2 H-bonds) +Y C,U pYrimidine +===================== ================================ =============================================================================== + +----- + +**Example** + +If the degenerate input contains these two peptides:: + + Seq1 AXY + Seq2 SJT + +The generated FASTA sequences will be this:: + + >Seq1_1 + AAY + >Seq1_2 + ACY + >Seq1_3 + ADY + >Seq1_4 + AEY + >Seq1_5 + AFY + >Seq1_6 + AGY + >Seq1_7 + AHY + >Seq1_8 + AIY + >Seq1_9 + AKY + >Seq1_10 + ALY + >Seq1_11 + AMY + >Seq1_12 + ANY + >Seq1_13 + APY + >Seq1_14 + AQY + >Seq1_15 + ARY + >Seq1_16 + ASY + >Seq1_17 + ATY + >Seq1_18 + AVY + >Seq1_19 + AWY + >Seq1_20 + AYY + >Seq2_1 + SIT + >Seq2_2 + SLT + + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LICENSE Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,23 @@ +Copyright (C) 2009-2013 by NBIC (www.nbic.nl) + +This license holds for all files within this directory/repository that do not +contain an explicit reference to another license. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ProteinDigestor.pl Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,820 @@ +#!/usr/bin/perl -w + +############################################################### +# ProteinDigestor.pl +# +# ===================================================== +# $Id: ProteinDigestor.pl 76 2011-01-04 13:16:56Z pieter.neerincx@gmail.com $ +# $URL: https://trac.nbic.nl/svn/galaxytools/trunk/tools/general/FastaTools/ProteinDigestor.pl $ +# $LastChangedDate: 2011-01-04 07:16:56 -0600 (Tue, 04 Jan 2011) $ +# $LastChangedRevision: 76 $ +# $LastChangedBy: pieter.neerincx@gmail.com $ +# ===================================================== +# +# (c) Dr. Ir. B. van Breukelen et al. +# https://bioinformatics.chem.uu.nl +# http://www.netherlandsproteomicscentre.eu/ +# b.vanbreukelen@pharm.uu.nl +# +# Software to create peptide databases from a fasta +# file of proteins. You can cut with several enzymes +# select on size, PI, etc etc etc. +# +# TODO: put filters, enzymes, in seperate config file +############################################################### + +############################# +# Initialise environment +############################# +use strict; +use Getopt::Std; +use Log::Log4perl qw(:easy); + +# +# Log levels for Log4perl. +# +my %log_levels = ( + 'ALL' => $ALL, + 'TRACE' => $TRACE, + 'DEBUG' => $DEBUG, + 'INFO' => $INFO, + 'WARN' => $WARN, + 'ERROR' => $ERROR, + 'FATAL' => $FATAL, + 'OFF' => $OFF, +); + +# +# pK values array +# +my %cPk = ( + 'A'=>[3.55, 7.59, 0 , 0 , 0], + 'B'=>[3.55, 7.50, 0 , 0 , 0], + 'C'=>[3.55, 7.50, 9.00 , 9.00 , 9.00], + 'D'=>[4.55, 7.50, 4.05 , 4.05 , 4.05], + 'E'=>[4.75, 7.70, 4.45 , 4.45 , 4.45], + 'F'=>[3.55, 7.50, 0 , 0. , 0], + 'G'=>[3.55, 7.50, 0 , 0. , 0], + 'H'=>[3.55, 7.50, 5.98 , 5.98 , 5.98], + 'I'=>[3.55, 7.50, 0 , 0. , 0.], + 'J'=>[0.00, 0.00, 0 , 0. , 0.], + 'K'=>[3.55, 7.50, 10.00, 10.00, 10.00], + 'L'=>[3.55, 7.50, 0 , 0. , 0.], + 'M'=>[3.55, 7.00, 0 , 0. , 0.], + 'N'=>[3.55, 7.50, 0 , 0. , 0.], + 'O'=>[0.00, 0.00, 0 , 0. , 0.], + 'P'=>[3.55, 8.36, 0 , 0. , 0.], + 'Q'=>[3.55, 7.50, 0 , 0. , 0.], + 'R'=>[3.55, 7.50, 12.0 , 12.0 , 12.0], + 'S'=>[3.55, 6.93, 0 , 0. , 0.], + 'T'=>[3.55, 6.82, 0 , 0. , 0.], + 'U'=>[0.00, 0.00, 0 , 0. , 0.], + 'V'=>[3.55, 7.44, 0 , 0. , 0.], + 'W'=>[3.55, 7.50, 0 , 0. , 0.], + 'X'=>[3.55, 7.50, 0 , 0. , 0.], + 'Y'=>[3.55, 7.50, 10.00, 10.00, 10.00], + 'Z'=>[3.55, 7.50, 0 , 0. , 0.] +); + +# +# MW values array +# +my %cMWs = ( + 'A'=>89.09, + 'B'=>132.65, + 'C'=>121.15, + 'D'=>133.1, + 'E'=>147.13, + 'F'=>165.19, + 'G'=>75.07, + 'H'=>155.16, + 'I'=>131.18, + 'J'=>0.00, + 'K'=>146.19, + 'L'=>131.18, + 'M'=>149.22, + 'N'=>132.12, + 'O'=>0.00, + 'P'=>115.13, + 'Q'=>146.15, + 'R'=>174.21, + 'S'=>105.09, + 'T'=>119.12, + 'U'=>168.05, + 'V'=>117.15, + 'W'=>204.22, + 'X'=>129.26, + 'Y'=>181.19, + 'Z'=>146.73 +); + +# +# Digestion enzymes. +# +# For example Trypsin cuts c-terminal of K and R not followed by a P at position p1 = c:K,R:P=1 +# +my %enzymes = ( + 'Trypsin' => 'c:K,R:P=1', + 'Trypsin/P' => 'c:K,R', + 'Chymotrypsin' => 'c:F,L,W,Y:P=1', + 'Chymotrypsin/P' => 'c:F,L,W,Y', + 'V8_E' => 'c:E,Z:P=1', + 'V8_DE' => 'c:E,D,B,Z:P=1', + 'LysC' => 'c:K:P=1', + 'LysC/P' => 'c:K', + 'LysN/P' => 'n:K' +); + +my @filters = ( +# "[R|K][R|K][R|K]..[S|T]." +# "[R|K][R|K][R|K].[S|T]." , +# "[R|K][R|K]..[S|T].", +# "[R|K]..[S|T].", +# "[R|K][R|K].[S|T].", +# "[R|K].[S|T]." +# "[S|T].[R|K]" +); + +my %charges = ('A'=>0, 'B'=>0, 'C'=>0, 'D'=>-1, 'E'=>-1, 'F'=>0,'G'=>0, 'H'=>1, 'I'=>0, + 'J'=>0, 'K'=>1, 'L'=>0, 'M'=>0, 'N'=>0, 'O'=>0,'P'=>0, 'Q'=>0, 'R'=>1, + 'S'=>0, 'T'=>0, 'U'=>0, 'V'=>0, 'W'=>0, 'X'=>0,'Y'=>0, 'Z'=>0); + +my %pept = (); #hashed array of peptides (HASH) and fasta headers (VALUE) + +my $H20 = 18.015; #Mol. weight water + +my $PH_MIN = 0.0; #min pH value +my $PH_MAX = 14.0; #max pH value +my $MAXLOOP = 2000; # max number iterations +my $EPSI = 0.0001; # desired presision + +# +# Get options. +# +my %opts; +Getopt::Std::getopts('i:o:e:r:p:m:n:c:l:sa', \%opts); + +my $input = $opts{'i'}; +my $output = $opts{'o'}; +my $enzyme = $opts{'e'}; +my $enzyme_cleavage_site_rules = $opts{'r'}; +my $partial_cleavage = $opts{'s'}; +my $partial_cleavage_chance = $opts{'p'}; +my $min_peptide_weight = $opts{'m'}; +my $max_peptide_weight = $opts{'n'}; +my $max_charge = $opts{'c'}; +my $add_sequence_context = $opts{'a'}; +my $log_level = $opts{'l'}; + +# +# Configure logging. +# +# Provides default if user did not specify log level: +$log_level = (defined($log_level) ? $log_level : 'INFO'); + +# Reset log level to default if user specified illegal log level. +$log_level = ( + defined($log_levels{$log_level}) + ? $log_levels{$log_level} + : $log_levels{'INFO'}); + +#Log::Log4perl->init('log4perl.properties'); +Log::Log4perl->easy_init( + + #{ level => $log_level, + # file => ">>ProteinDigestor.log", + # layout => '%F{1}-%L-%M: %m%n' }, + { + level => $log_level, + file => "STDOUT", + layout => '%d L:%L %p> %m%n' + }, +); +my $logger = Log::Log4perl::get_logger(); + +# +# Check user input. +# +unless (defined($input) && defined($output)) { + _Usage(); + exit; +} +if ($input =~ /^$/ || $output =~ /^$/) { + _Usage(); + exit; +} +if ($input eq $output) { + $logger->fatal('Output file is the same as the input file. Select a different file for the output.'); + exit; +} + +# +# Check input file. +# +unless (-e $input && -f $input && -r $input) { + $logger->fatal('Cannot read from input file ' . $input . ': ' . $!); + exit; +} + +# +# Set additional defaults. +# +$partial_cleavage = (defined($partial_cleavage) ? $partial_cleavage : 0); # Disabled by default +$partial_cleavage_chance = (defined($partial_cleavage_chance) ? $partial_cleavage_chance : 0.1); # 10% change by default +$add_sequence_context = (defined($add_sequence_context) ? $add_sequence_context : 0); # Disabled by default + +######################################################## +# MAIN PROGRAM +######################################################## + +$logger->info('Starting...'); + +# +# Get protease cleavage site specs. +# +unless (defined($enzyme_cleavage_site_rules)) { + + # + # Set default to Trypsin if the user did not specify an enzyme name nor a string with enzyme cleavage site rules. + # + $enzyme = (defined($enzyme) ? $enzyme : 'Trypsin'); + + # + # Check for illegal enzymes. + # + unless (defined($enzymes{$enzyme})) { + $logger->fatal('Unkown enzyme ' . $enzyme . '.'); + exit; + } + + # + # Fetch enzyme cleavage site rules. + # + $enzyme_cleavage_site_rules = $enzymes{$enzyme}; + +} + +$logger->info('Using enzyme cleavage site rules: ' . $enzyme_cleavage_site_rules); +my @split_params = split(/:/, $enzyme_cleavage_site_rules); +my $cut_term = $split_params[0]; +my @cut_aa = split(/,/, $split_params[1]); +my @inhibition_aa; +if (defined($split_params[2])) { + @inhibition_aa = split(/,/, $split_params[2]); +} +my $annotation = {}; +my $sequence = ''; + +# +# Create filehandles. +# +open(my $input_fh, "$input"); +open(my $output_fh, ">$output"); + +# +# Write header to result file. +# +print($output_fh "Protein ID\tPeptide\tMW\tpI\tCharge\tnumber S\tnumber T\tnumber Y\n"); + +# +# Digest fasta files and store peptides in an array (hashed) +# +foreach my $line (<$input_fh>){ + + if ($line =~ /^>/){ + + # + # We found a new FASTA header. + # + + # + # Process the previously found protein if we already found one. + # + unless ($sequence eq '') { + _ProcessProtein(); + } + + # + # Parse new FASTA header. + # + $line =~ s/[\r\n\f]+//g; + $annotation = _ParseHeader($line); + $sequence = ''; + + } else { + + # + # Found a sequence line. + # + $line =~ s/[\t\s\r\n\f0-9\*\-]+//g; + $sequence .= $line; + } +} + +# +# Don't foget to process the last sequence! +# +_ProcessProtein(); + +close($input_fh); +close($output_fh); + +$logger->info('Finished!'); + +######################################################### +# SUBS +######################################################### + +sub _ProcessProtein { + + my $id = ${$annotation}{'ID'}; + $logger->debug('Accession/ID: ' . $id); + $logger->debug('Sequence: ' . $sequence . "\n"); + my $total_length_sequence = length($sequence); + my $total_peptide_length = 0; + + my ($peptides) = _Digest($sequence, $annotation, \@cut_aa, $cut_term, \@inhibition_aa); + + # + # Process peptides. + # + foreach my $peptide_with_context (sort(keys(%{$peptides}))) { + + # + # Get peptide properties. + # + $logger->debug('Peptide with context: ' . $peptide_with_context); + my ($bare_peptide) = _ParsePeptide($peptide_with_context); + my $peplength = length($bare_peptide); + my ($pepweight) = _MwCalc($bare_peptide); + + # + # Apply filters + # + # Filter 1 is on weight. + # + if (defined($min_peptide_weight)) { + + $logger->debug('Minimum weight filter:'); + $logger->debug("\t" . 'Peptide weight: ' . $pepweight); + + if ($pepweight >= $min_peptide_weight) { + + $logger->debug("\t" . 'PASSED - Weight is >= ' . $min_peptide_weight); + + } else { + + # Skip this one. + $logger->debug("\t" . 'REJECTED - Weight is < ' . $min_peptide_weight); + next; + + } + } + + if (defined($max_peptide_weight)) { + + $logger->debug('Maximum weight filter:'); + $logger->debug("\t" . 'Peptide weight: ' . $pepweight); + + if ($pepweight <= $max_peptide_weight) { + + $logger->debug("\t" . 'PASSED - Weight is <= ' . $max_peptide_weight); + + } else { + + # Skip this one. + $logger->debug("\t" . 'REJECTED - Weight is > ' . $max_peptide_weight); + next; + + } + } + + # + # Filter 2 is on sequence motifs. + # + if (scalar(@filters) > 0) { + + $logger->debug('Motif filter:'); + my ($motif) = _ContainsMotif($bare_peptide, \@filters); + + if ($motif > 0) { + + $logger->debug("\t" . 'PASSED - Peptide contains motif ' . $motif); + + } else { + + # Skip this one. + $logger->debug("\t" . 'REJECTED - Peptide does not contain any motif.'); + next; + + } + } + + my ($pepPI) = _PiCalc($bare_peptide); + my ($pepCharge) = _ChargeCalc($bare_peptide); + + # + # Filter 3 is on the amount of charges. + # + if (defined($max_charge)) { + + $logger->debug('Charge filter:'); + $logger->debug("\t" . 'Peptide charge: ' . $pepCharge); + + if (defined($max_charge) && $pepCharge <= $max_charge) { + + $logger->debug("\t" . 'PASSED - Charge <= ' . $max_charge); + + } else { + + # Skip this one. + $logger->debug("\t" . 'REJECTED - Charge > ' . $max_charge); + next; + + } + } + + # + # If there is no partial digestion we can calculated the % coverage. + # + unless ($partial_cleavage) { + $total_peptide_length += length($bare_peptide); + } + + my ($residue_count) = _CountResiduesSTY($bare_peptide); + + # + # Store peptide. + # + my $pep_sequence; + + if ($add_sequence_context) { + $pep_sequence = $peptide_with_context; + } else { + $pep_sequence = $bare_peptide; + } + + print($output_fh $id . "\t" . $pep_sequence . "\t" . $pepweight . "\t" . $pepPI. "\t" . $pepCharge. "\t" . $residue_count . "\n"); + + } + + # + # If partial digestion was not enabled, we can calculated the % coverage. + # + unless ($partial_cleavage) { + my $coverage = ($total_peptide_length / $total_length_sequence)*100; + $logger->debug("Sequence residues: $total_length_sequence | #peptide residues: $total_peptide_length | %Coverage: $coverage"); + } +} + +sub _ParseHeader { + + my ($header) = @_; + my %annotation; + my $ids; + my $id; + my $description; + + $header=~ s/^>//; + + if ($header =~ m/([^\s]+)\s+([^\s]+.*)/) { + $ids = $1; + $description = $2; + } else { + $ids = $header; + } + + # + # Redimentory support for detecting multiple IDs: check for pipe sperated IDs. + # + if ($ids =~ m/([^\|])\|/) { + $id = $1; + } else { + $id = $ids; + } + + $annotation{'ID'} = $id; + $annotation{'DE'} = $description; + + return (\%annotation); + +} + +sub _ContainsMotif{ + + my ($peptide, $filters) = @_; + my $cnt = 0; + + foreach my $filter (@{$filters}){ + + $cnt++; + if ($peptide =~ /$filter/){ + return($cnt); + } + + } + + return(0); + +} + +sub _ParsePeptide{ + + my ($peptide_with_flanking_context) = @_; + + my @pep = split(/\./, $peptide_with_flanking_context); + my $bare_peptide = uc($pep[1]); + + return($bare_peptide); + +} + +sub _Digest{ + + my ($sequence, $annotation, $enz_cutting, $cut_term, $enz_restrict) = @_; + + $sequence = uc($sequence); + my %pept = (); + + # we start by scanning the sequence.. to find one of the cutting rulez not followed by a restict rule + # what is the sequence length + my @array = split(//, $sequence); + my $length = scalar(@array); + my $start_offset = 0; + my $offset_adjust_for_cleavage_terminus = 0; + if ($cut_term eq 'n') { + $offset_adjust_for_cleavage_terminus = 1; + } + + my $peptide = ''; + + my $counter = 1; + if (!($partial_cleavage)) { + $partial_cleavage_chance = 0; + } else { + $counter = 100; + } + + #this is for incomplete cleavage... we repeat digest 100 times with a probability that the enzyme will not cut + for (my $cnt = 0; $cnt < $counter; $cnt++) { + + AA:for (my $aa_offset = 0 + $offset_adjust_for_cleavage_terminus; $aa_offset < ($length - 1 + $offset_adjust_for_cleavage_terminus); $aa_offset++) { + + my $this_aa = substr($sequence, $aa_offset, 1); + + # + # Check if protease recognizes this amino acid as cleavage site. + # + foreach my $cut_aa (@{$enz_cutting}) { + + if ($this_aa eq $cut_aa) { + + # + # Check if AA is not preceeded or followed by an AA that inhibits the protease... + # + foreach my $inhibit (@{$enz_restrict}) { + + + my @inhibit_conditions = split(/=/, $inhibit); + my $inhibit_aa = $inhibit_conditions[0]; + my $position_to_check = $inhibit_conditions[1]; + + my $neighborhood_aa = substr($sequence, $aa_offset + $position_to_check, 1); + + if ($neighborhood_aa eq $inhibit_aa){ + $logger->debug('No cleavage due to inhibition by ' . $inhibit_aa . ' at position ' . $position_to_check); + next AA; + } + } + + # + # Consider the possibility of not cutting when doing incomplete digestions! + # + my $random = 1; + if ($partial_cleavage){ + $random = rand(1); + } + if ($random <= $partial_cleavage_chance){ + $logger->debug('No cleavage due to incomplete digestion.'); + next AA; + } + + # + # If no inhibition spoiled the cleavage, lets cut! + # + my $cut_offset; + if ($cut_term eq 'c') { + $cut_offset = $aa_offset + 1; + } elsif ($cut_term eq 'n') { + $cut_offset = $aa_offset; + } + + # nice formatting of peptide + if ($start_offset == 0){ + $peptide .="terminus."; + $peptide .= substr($sequence, $start_offset, $cut_offset - $start_offset)."."; + }else{ + $peptide .= substr($sequence, $start_offset - 3, 3)."."; + $peptide .= substr($sequence, $start_offset, $cut_offset - $start_offset)."."; + } + $peptide .= substr($sequence, $cut_offset, 3); + $start_offset = $cut_offset; + + # check if peptide already exists + # if so, concatenate this fasta header + #if (exists($pept{$peptide})){ + # $fasta_header .= $pept{$peptide}; + #} + $pept{$peptide} = ${$annotation}{'ID'}; + $peptide = ''; + } + } + } + + # + # The last peptide sequence ! + # + $peptide = substr($sequence, $start_offset - 3, 3)."."; + $peptide .= substr($sequence, $start_offset, $length); + $peptide .= ".terminus"; + $pept{$peptide} = ${$annotation}{'ID'}; + + } #COUNT + + return(\%pept); + +} + +sub _PiCalc{ + + my ($sequence) = @_; + + my $nTermResidue; + my $cTermResidue; + my $phMin;my $phMid ;my $phMax; + my $charge; + my $cter; my $nter; my $carg; my $chis; my $clys;my $casp;my $cglu;my $ccys;my $ctyr; + + my $composition = _GetComposition($sequence); + my $strlength = length($sequence); + $nTermResidue = substr($sequence, 0, 1); + for ($nTermResidue){s/[\s\n\r\t]//g;}; + $cTermResidue = substr($sequence, $strlength - 1, 1); + for ($cTermResidue){s/[\s\n\r\t]//g;}; + $phMin = $PH_MIN; + $phMax = $PH_MAX; + my $i; + + for ($i=0, $charge = 1.0; $i<$MAXLOOP && ($phMax-$phMin)>$EPSI; $i++){ + $phMid = $phMin + ($phMax - $phMin) / 2; + $cter = 10**(-$cPk{$cTermResidue}->[0]) / (10**(-$cPk{$cTermResidue}->[0]) + 10**(-$phMid)); + $nter = 10**(-$phMid)/(10**(-$cPk{$nTermResidue}->[1])+10**(-$phMid)); + + $carg = ${$composition}{R} * 10**(-$phMid) / (10**(-$cPk{'R'}->[2])+10**(-$phMid)); + $chis = ${$composition}{H} * 10**(-$phMid) / (10**(-$cPk{'H'}->[2])+10**(-$phMid)); + $clys = ${$composition}{K} * 10**(-$phMid) / (10**(-$cPk{'K'}->[2])+10**(-$phMid)); + + $casp = ${$composition}{D} * 10**(-$cPk{'D'}->[2]) / (10**(-$cPk{'D'}->[2])+10**(-$phMid)); + $cglu = ${$composition}{E} * 10**(-$cPk{'E'}->[2]) / (10**(-$cPk{'E'}->[2])+10**(-$phMid)); + + $ccys = ${$composition}{C} * 10**(-$cPk{'C'}->[2]) / (10**(-$cPk{'C'}->[2])+10**(-$phMid)); + $ctyr = ${$composition}{Y} * 10**(-$cPk{'Y'}->[2]) / (10**(-$cPk{'Y'}->[2])+10**(-$phMid)); + + $charge = $carg + $clys + $chis + $nter - ($casp + $cglu + $ctyr + $ccys + $cter); + + if ($charge > 0.0){ + $phMin = $phMid; + }else{ + $phMax = $phMid; + } + } + + return($phMid); + +} + +sub _MwCalc{ + + my ($sequence) = @_; + + my $mw; + my $strlength = length($sequence); + my $composition = _GetComposition($sequence); + + # subtract N-1 water molecules + $mw = - ($strlength -1) * $H20; + + foreach my $aa (sort keys %{$composition}){ + $logger->trace('AA:' . $aa . ' | frequency: ' . ${$composition}{$aa} . ' | AA MW: ' . $cMWs{$aa}); + $mw += ${$composition}{$aa} * $cMWs{$aa}; + } + + return($mw); + +} + +sub _ChargeCalc{ + + my ($sequence) = @_; + + my $charge; + my $composition = _GetComposition($sequence); + + foreach my $aa (sort(keys(%{$composition}))){ + $charge += ${$composition}{$aa} * $charges{$aa}; + } + + return($charge); + +} + +sub _CountResiduesSTY{ + + my ($sequence) = @_; + + my $composition = _GetComposition($sequence); + my $sty_residues = ${$composition}{'S'} . "\t" . ${$composition}{'T'} . "\t" . ${$composition}{'Y'}; + + return($sty_residues); + +} + +sub _GetComposition { + + my ($sequence) = @_; + + my $i; + my $c; + my %composition = ('A'=>0, 'B'=>0,'C'=>0, 'D'=>0, 'E'=>0, 'F'=>0,'G'=>0, 'H'=>0, 'I'=>0, + 'J'=>0, 'K'=>0,'L'=>0, 'M'=>0, 'N'=>0, 'O'=>0,'P'=>0, 'Q'=>0, 'R'=>0, + 'S'=>0, 'T'=>0,'U'=>0, 'V'=>0, 'W'=>0, 'X'=>0,'Y'=>0, 'Z'=>0); + + # + # Compute aminoacid composition. + # + my $strlength = length($sequence); + for ($i=0; $i<$strlength; $i++){ + $c = substr($sequence, $i, 1); + $composition{$c}++; + } + + return(\%composition); + +} + +sub _Usage { + + my $longest_enzyme_name_length = 0; + foreach my $protease (keys(%enzymes)) { + if (length($protease) > $longest_enzyme_name_length) { + $longest_enzyme_name_length = length($protease); + } + } + my $field_formatting = '%-' . ($longest_enzyme_name_length + 3) . 's'; + + print "\n"; + print "ProteinDigestor.pl - Digests protein sequences from a FASTA file\n"; + print "\n"; + print "Usage:\n"; + print "\n"; + print " ProteinDigestor.pl options\n"; + print "\n"; + print "Available options are:\n"; + print "\n"; + print " -i [file] Input FASTA file.\n"; + print " -o [file] Output stats file.\n"; + print "\n"; + print " You can either specify a protease this tool knows with -e\n"; + print " or you can specify the cleavage rule for a protease this does not know (yet) with -r\n"; + print "\n"; + print " -e [enzyme_name] Digestion enzyme. Known enzymes and their cleavage rules:\n"; + + foreach my $protease (sort(keys(%enzymes))) { + print ' ' . sprintf("$field_formatting", $protease) . $enzymes{$protease} . "\n"; + } + + print " -r [enzyme_rule] Protease cleavage site rule. This rule contains sperated by colons:\n"; + print " * The terminus that indicates on which side of a recognized amino acid the protease will cleave: c or n.\n"; + print " * The amino acids recognized by the protease.\n"; + print " Multiple amino acids separated by a comma.\n"; + print " * The amino acids that inhibit cleavage and their position relative to amino acids recognized by the protease.\n"; + print ' Amino acid and its relative position separated by an equals sign (=).' . "\n"; + print " Multiple amino acids separated by a comma.\n"; + print ' For example \'c:K,R:P=1\' for Trypsin with proline inhibition.' . "\n"; + print " -s Semi for partial digestion.\n"; + print " -p [chance] Number between 0 and 1 indicating the chance that a site will not be cleaved.\n"; + print " -m [weight] Minimum weight for a peptide.\n"; + print " -n [weight] Maximum weight for a peptide.\n"; + print " -c [int] Maximum charge a peptide is allowed to have.\n"; + print " -a Add sequence context.\n"; + print " This will add max 3 amino acids or the word terminus on each side of the peptides.\n"; + print " Contexts and peptides are separated with a dot.\n"; + print " Examples of peptides with a context:\n"; + print " terminus.MSVSLSAK.ASH\n"; + print " SAK.ASHLLCSSTR.VSL\n"; + print " STR.VSLSPAVTSSSSSPVVRPALSSSTS.terminus\n"; + print " -l [LEVEL] Log4perl log level. One of: ALL, TRACE, DEBUG, INFO (default), WARN, ERROR, FATAL or OFF.\n"; + print "\n"; + exit; + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ProteinDigestor.xml Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,93 @@ +<!-- +# ===================================================== +# $Id: ProteinDigestor.xml 90 2011-01-19 13:20:31Z pieter.neerincx@gmail.com $ +# $URL: https://trac.nbic.nl/svn/galaxytools/trunk/tools/general/FastaTools/ProteinDigestor.xml $ +# $LastChangedDate: 2011-01-19 07:20:31 -0600 (Wed, 19 Jan 2011) $ +# $LastChangedRevision: 90 $ +# $LastChangedBy: pieter.neerincx@gmail.com $ +# ===================================================== +--> +<tool id="ProteinDigestor1" name="ProteinDigestor" version="2.0"> + <description>In silico digestion of proteins into peptides</description> + <command interpreter="perl">ProteinDigestor.pl -i $input -o $output -r '$rule' -l ERROR</command> + <inputs> + <param format="fasta" name="input" type="data" label="Proteins to digest" help="in FASTA format."/> + <param name="rule" type="select" label="Protease"> + <!--<label>Protease</label>--> + <option value="c:K,R:P=1">Trypsin</option> + <option value="c:K,R">Trypsin/P</option> + <option value="c:F,L,W,Y:P=1">Chymotrypsin</option> + <option value="c:F,L,W,Y">Chymotrypsin/P</option> + <option value="c:E,Z:P=1">V8_E</option> + <option value="c:E,D,B,Z:P=1">V8_DE</option> + <option value="c:K:P=1">LysC</option> + <option value="c:K">LysC/P</option> + <option value="n:K">LysN/P</option> + </param> + </inputs> + <outputs> + <data format="tabular" name="output" label="${rule.value_label} digest on ${input.name}"/> + </outputs> + <!-- + <tests> + <test> + <param name="input" value="" /> + <output name="output" file="" /> + </test> + </tests> + --> + <help> + +.. class:: infomark + +**What it does** + +This tool digests protein sequences from a FASTA file.\ +In addition some statistics are calculated for each peptide: + + * Molecular weight in Da (MW). + * Isoelectric point (pI) + * Net charge assuming K, R and H add +1 and D and E add -1 to the net charge of the peptide. + * The mount of potential phosphorilation sites (S, T or Y amino acids). + +**Getting input data** + +This tool requires protein sequences in FASTA format. \ +If your protein sequences are not in FASTA format, you'll have to convert it first.\ +For sequences in tab delimited files for example you can use the *FASTA manipulation* -> *Tabular-to-FASTA* tool. + +----- + +**Example** + +If for example the protein sequences in FASTA format would be this:: + + >FamousDatabase:Q42593Z L-ascorbate peroxidase T, chloroplastic; + MSVSLSAKASHLLCSSTRVSLSPAVTSSSSSPVVRPALSSSTS* + >FamousDatabase:A0MQ79Z Ascorbate peroxidase; + MVKPNYPVVSEEYLIAVDKAKKKLRGFIAEKNCAPLMLRL* + +and you would perform an *in silico* digest with Trypsin, the result will look like this:: + + Protein ID Peptide MW pI Charge number S number T number Y + FamousDatabase:Q42593Z ASHLLCSSTR 1074.225 8.30219268798828 2 3 1 0 + FamousDatabase:Q42593Z VSLSPAVTSSSSSPVVRPALSSSTS 2390.61 9.72000885009766 1 11 2 0 + FamousDatabase:Q42593Z MSVSLSAK 821.995 8.50011444091797 1 3 0 0 + FamousDatabase:A0MQ79Z NCAPLMLR 917.175 8.24974822998047 1 0 0 0 + FamousDatabase:A0MQ79Z K 146.19 8.75005340576172 1 0 0 0 + FamousDatabase:A0MQ79Z K 146.19 8.75005340576172 1 0 0 0 + FamousDatabase:A0MQ79Z LR 287.375 9.75002288818359 1 0 0 0 + FamousDatabase:A0MQ79Z GFIAEK 663.775 6.00136566162109 0 0 0 0 + FamousDatabase:A0MQ79Z L 131.18 5.52498626708984 0 0 0 0 + FamousDatabase:A0MQ79Z AK 217.265 8.79502105712891 1 0 0 0 + FamousDatabase:A0MQ79Z MVKPNYPVVSEEYLIAVDK 2194.59 4.67711639404297 -1 1 0 2 + + +======================================================== +*Need to digest with another protease?* +======================================================== + +Contact your local bioinformaticians to add other proteases... + + </help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README Fri May 10 17:15:08 2013 -0400 @@ -0,0 +1,1 @@ +This tool shed contains the Galaxy-P fork of the NBIC FASTA tools. The original tools can be found in NBIC's SVN Galaxy repository: https://trac.nbic.nl/svn/galaxytools/trunk/tools/general/FastaTools/.