[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit

Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/add-depends.pl b/ap/lib/libssl/openssl-1.1.1o/util/add-depends.pl
new file mode 100644
index 0000000..55d56b7
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/add-depends.pl
@@ -0,0 +1,288 @@
+#! /usr/bin/env perl
+# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use warnings;
+
+use lib '.';
+use configdata;
+
+use File::Spec::Functions qw(:DEFAULT rel2abs);
+use File::Compare qw(compare_text);
+use feature 'state';
+
+# When using stat() on Windows, we can get it to perform better by avoid some
+# data.  This doesn't affect the mtime field, so we're not losing anything...
+${^WIN32_SLOPPY_STAT} = 1;
+
+my $debug = $ENV{ADD_DEPENDS_DEBUG};
+my $buildfile = $config{build_file};
+my $build_mtime = (stat($buildfile))[9];
+my $rebuild = 0;
+my $depext = $target{dep_extension} || ".d";
+my @depfiles =
+    sort
+    grep {
+        # This grep has side effects.  Not only does if check the existence
+        # of the dependency file given in $_, but it also checks if it's
+        # newer than the build file, and if it is, sets $rebuild.
+        my @st = stat($_);
+        $rebuild = 1 if @st && $st[9] > $build_mtime;
+        scalar @st > 0;         # Determines the grep result
+    }
+    map { (my $x = $_) =~ s|\.o$|$depext|; $x; }
+    ( ( grep { $unified_info{sources}->{$_}->[0] =~ /\.cc?$/ }
+            keys %{$unified_info{sources}} ),
+      ( grep { $unified_info{shared_sources}->{$_}->[0] =~ /\.cc?$/ }
+            keys %{$unified_info{shared_sources}} ) );
+
+exit 0 unless $rebuild;
+
+# Ok, primary checks are done, time to do some real work
+
+my $producer = shift @ARGV;
+die "Producer not given\n" unless $producer;
+
+my $srcdir = $config{sourcedir};
+my $blddir = $config{builddir};
+my $abs_srcdir = rel2abs($srcdir);
+my $abs_blddir = rel2abs($blddir);
+
+# Convenient cache of absolute to relative map.  We start with filling it
+# with mappings for the known generated header files.  They are relative to
+# the current working directory, so that's an easy task.
+# NOTE: there's more than C header files that are generated.  They will also
+# generate entries in this map.  We could of course deal with C header files
+# only, but in case we decide to handle more than just C files in the future,
+# we already have the mechanism in place here.
+# NOTE2: we lower case the index to make it searchable without regard for
+# character case.  That could seem dangerous, but as long as we don't have
+# files we depend on in the same directory that only differ by character case,
+# we're fine.
+my %depconv_cache =
+    map { catfile($abs_blddir, $_) => $_ }
+    keys %{$unified_info{generate}};
+
+my %procedures = (
+    'gcc' => undef,             # gcc style dependency files needs no mods
+    'makedepend' =>
+        sub {
+            # makedepend, in its infinite wisdom, wants to have the object file
+            # in the same directory as the source file.  This doesn't work too
+            # well with out-of-source-tree builds, so we must resort to tricks
+            # to get things right.  Fortunately, the .d files are always placed
+            # parallel with the object files, so all we need to do is construct
+            # the object file name from the dep file name.
+            (my $objfile = shift) =~ s|\.d$|.o|i;
+            my $line = shift;
+
+            # Discard comments
+            return undef if $line =~ /^(#.*|\s*)$/;
+
+            # Remove the original object file
+            $line =~ s|^.*\.o: | |;
+            # Also, remove any dependency that starts with a /, because those
+            # are typically system headers
+            $line =~ s/\s+\/(\\.|\S)*//g;
+            # Finally, discard all empty lines
+            return undef if $line =~ /^\s*$/;
+
+            # All we got now is a dependency, just shave off surrounding spaces
+            $line =~ s/^\s+//;
+            $line =~ s/\s+$//;
+            return ($objfile, $line);
+        },
+    'VMS C' =>
+        sub {
+            state $abs_srcdir_shaved = undef;
+            state $srcdir_shaved = undef;
+
+            unless (defined $abs_srcdir_shaved) {
+                ($abs_srcdir_shaved = $abs_srcdir) =~ s|[>\]]$||;
+                ($srcdir_shaved = $srcdir) =~ s|[>\]]$||;
+            }
+
+            # current versions of DEC / Compaq / HP / VSI C strips away all
+            # directory information from the object file, so we must insert it
+            # back.  To make life simpler, we simply replace it with the
+            # corresponding .D file that's had its extension changed.  Since
+            # .D files are always written parallel to the object files, we
+            # thereby get the directory information for free.
+            (my $objfile = shift) =~ s|\.D$|.OBJ|i;
+            my $line = shift;
+
+            # Shave off the target.
+            #
+            # The pattern for target and dependencies will always take this
+            # form:
+            #
+            #   target SPACE : SPACE deps
+            #
+            # This is so a volume delimiter (a : without any spaces around it)
+            # won't get mixed up with the target / deps delimiter.  We use this
+            # to easily identify what needs to be removed.
+            m|\s:\s|; $line = $';
+
+            # We know that VMS has system header files in text libraries,
+            # extension .TLB.  We also know that our header files aren't stored
+            # in text libraries.  Finally, we know that VMS C produces exactly
+            # one dependency per line, so we simply discard any line ending with
+            # .TLB.
+            return undef if /\.TLB\s*$/;
+
+            # All we got now is a dependency, just shave off surrounding spaces
+            $line =~ s/^\s+//;
+            $line =~ s/\s+$//;
+
+            # VMS C gives us absolute paths, always.  Let's see if we can
+            # make them relative instead.
+            $line = canonpath($line);
+
+            unless (defined $depconv_cache{$line}) {
+                my $dep = $line;
+                # Since we have already pre-populated the cache with
+                # mappings for generated headers, we only need to deal
+                # with the source tree.
+                if ($dep =~ s|^\Q$abs_srcdir_shaved\E([\.>\]])?|$srcdir_shaved$1|i) {
+                    $depconv_cache{$line} = $dep;
+                }
+            }
+            return ($objfile, $depconv_cache{$line})
+                if defined $depconv_cache{$line};
+            print STDERR "DEBUG[VMS C]: ignoring $objfile <- $line\n"
+                if $debug;
+
+            return undef;
+        },
+    'VC' =>
+        sub {
+            # For the moment, we only support Visual C on native Windows, or
+            # compatible compilers.  With those, the flags /Zs /showIncludes
+            # give us the necessary output to be able to create dependencies
+            # that nmake (or any 'make' implementation) should be able to read,
+            # with a bit of help.  The output we're interested in looks like
+            # this (it always starts the same)
+            #
+            #   Note: including file: {whatever header file}
+            #
+            # Since there's no object file name at all in that information,
+            # we must construct it ourselves.
+
+            (my $objfile = shift) =~ s|\.d$|.obj|i;
+            my $line = shift;
+
+            # There are also other lines mixed in, for example compiler
+            # warnings, so we simply discard anything that doesn't start with
+            # the Note:
+
+            if (/^Note: including file: */) {
+                (my $tail = $') =~ s/\s*\R$//;
+
+                # VC gives us absolute paths for all include files, so to
+                # remove system header dependencies, we need to check that
+                # they don't match $abs_srcdir or $abs_blddir.
+                $tail = canonpath($tail);
+
+                unless (defined $depconv_cache{$tail}) {
+                    my $dep = $tail;
+                    # Since we have already pre-populated the cache with
+                    # mappings for generated headers, we only need to deal
+                    # with the source tree.
+                    if ($dep =~ s|^\Q$abs_srcdir\E\\|\$(SRCDIR)\\|i) {
+                        $depconv_cache{$tail} = $dep;
+                    }
+                }
+                return ($objfile, '"'.$depconv_cache{$tail}.'"')
+                    if defined $depconv_cache{$tail};
+                print STDERR "DEBUG[VC]: ignoring $objfile <- $tail\n"
+                    if $debug;
+            }
+
+            return undef;
+        },
+);
+my %continuations = (
+    'gcc' => undef,
+    'makedepend' => "\\",
+    'VMS C' => "-",
+    'VC' => "\\",
+);
+
+die "Producer unrecognised: $producer\n"
+    unless exists $procedures{$producer} && exists $continuations{$producer};
+
+my $procedure = $procedures{$producer};
+my $continuation = $continuations{$producer};
+
+my $buildfile_new = "$buildfile-$$";
+
+my %collect = ();
+if (defined $procedure) {
+    foreach my $depfile (@depfiles) {
+        open IDEP,$depfile or die "Trying to read $depfile: $!\n";
+        while (<IDEP>) {
+            s|\R$||;                # The better chomp
+            my ($target, $deps) = $procedure->($depfile, $_);
+            $collect{$target}->{$deps} = 1 if defined $target;
+        }
+        close IDEP;
+    }
+}
+
+open IBF, $buildfile or die "Trying to read $buildfile: $!\n";
+open OBF, '>', $buildfile_new or die "Trying to write $buildfile_new: $!\n";
+while (<IBF>) {
+    last if /^# DO NOT DELETE THIS LINE/;
+    print OBF or die "$!\n";
+}
+close IBF;
+
+print OBF "# DO NOT DELETE THIS LINE -- make depend depends on it.\n";
+
+if (defined $procedure) {
+    foreach my $target (sort keys %collect) {
+        my $prefix = $target . ' :';
+        my @deps = sort keys %{$collect{$target}};
+
+        while (@deps) {
+            my $buf = $prefix;
+            $prefix = '';
+
+            while (@deps && ($buf eq ''
+                                 || length($buf) + length($deps[0]) <= 77)) {
+                $buf .= ' ' . shift @deps;
+            }
+            $buf .= ' '.$continuation if @deps;
+
+            print OBF $buf,"\n" or die "Trying to print: $!\n"
+        }
+    }
+} else {
+    foreach my $depfile (@depfiles) {
+        open IDEP,$depfile or die "Trying to read $depfile: $!\n";
+        while (<IDEP>) {
+            print OBF or die "Trying to print: $!\n";
+        }
+        close IDEP;
+    }
+}
+
+close OBF;
+
+if (compare_text($buildfile_new, $buildfile) != 0) {
+    rename $buildfile_new, $buildfile
+        or die "Trying to rename $buildfile_new -> $buildfile: $!\n";
+}
+
+END {
+    # On VMS, we want to remove all generations of this file, in case there
+    # are more than one, so we loop.
+    if (defined $buildfile_new) {
+        while (unlink $buildfile_new) {}
+    }
+}
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/build.info b/ap/lib/libssl/openssl-1.1.1o/util/build.info
new file mode 100644
index 0000000..609be51
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/build.info
@@ -0,0 +1,8 @@
+IF[{- $target{build_scheme}->[1] eq "VMS" -}]
+ SCRIPTS_NO_INST=local_shlib.com unlocal_shlib.com
+ SOURCE[local_shlib.com]=local_shlib.com.in
+ SOURCE[unlocal_shlib.com]=unlocal_shlib.com.in
+ELSIF[{- $target{build_scheme}->[1] eq "unix" -}]
+ SCRIPTS_NO_INST=shlib_wrap.sh
+ SOURCE[shlib_wrap.sh]=shlib_wrap.sh.in
+ENDIF
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/cavs-to-evptest.pl b/ap/lib/libssl/openssl-1.1.1o/util/cavs-to-evptest.pl
new file mode 100644
index 0000000..8df3294
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/cavs-to-evptest.pl
@@ -0,0 +1,121 @@
+#! /usr/bin/env perl
+# Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+#Convert CCM CAVS test vectors to a format suitable for evp_test
+
+use strict;
+use warnings;
+
+my $alg;
+my $mode;
+my $keylen;
+my $key = "";
+my $iv = "";
+my $aad = "";
+my $ct = "";
+my $pt = "";
+my $tag = "";
+my $aadlen = 0;
+my $ptlen = 0;
+my $taglen = 0;
+my $res = "";
+my $intest = 0;
+my $fixediv = 0;
+
+while (<STDIN>)
+{
+    chomp;
+
+    # Pull out the cipher mode from the comment at the beginning of the file
+    if(/^#\s*"([^-]+)-\w+" information/) {
+        $mode = lc($1);
+    # Pull out the key length from the comment at the beginning of the file
+    } elsif(/^#\s*(\w+) Keylen: (\d+)/) {
+        $alg = lc($1);
+        $keylen = $2;
+    # Some parameters common to many tests appear as a list in square brackets
+    # so parse these
+    } elsif(/\[(.*)\]/) {
+        my @pairs = split(/, /, $1);
+        foreach my $pair (@pairs) {
+            $pair =~ /(\w+)\s*=\s*(\d+)/;
+            # AAD Length
+            if ($1 eq "Alen") {
+                $aadlen = $2;
+            # Plaintext length
+            } elsif ($1 eq "Plen") {
+                $ptlen = $2;
+            # Tag length
+            } elsif ($1 eq "Tlen") {
+                $taglen = $2;
+            }
+        }
+    # Key/Value pair
+    } elsif (/^\s*(\w+)\s*=\s*(\S.*)\r/) {
+        if ($1 eq "Key") {
+            $key = $2;
+        } elsif ($1 eq "Nonce") {
+            $iv = $2;
+            if ($intest == 0) {
+                $fixediv = 1;
+            } else {
+                $fixediv = 0;
+            }
+        } elsif ($1 eq "Adata") {
+            $aad = $2;
+        } elsif ($1 eq "CT") {
+            $ct = substr($2, 0, length($2) - ($taglen * 2));
+            $tag = substr($2, $taglen * -2);
+        } elsif ($1 eq "Payload") {
+            $pt = $2;
+        } elsif ($1 eq "Result") {
+            if ($2 =~ /Fail/) {
+                $res = "CIPHERUPDATE_ERROR";
+            }
+        } elsif ($1 eq "Count") {
+            $intest = 1;
+        } elsif ($1 eq "Plen") {
+            $ptlen = $2;
+        } elsif ($1 eq "Tlen") {
+            $taglen = $2;
+        } elsif ($1 eq "Alen") {
+            $aadlen = $2;
+        }
+    # Something else - probably just a blank line
+    } elsif ($intest) {
+        print "Cipher = $alg-$keylen-$mode\n";
+        print "Key = $key\n";
+        print "IV = $iv\n";
+        print "AAD =";
+        if ($aadlen > 0) {
+            print " $aad";
+        }
+        print "\nTag =";
+        if ($taglen > 0) {
+            print " $tag";
+        }
+        print "\nPlaintext =";
+        if ($ptlen > 0) {
+            print " $pt";
+        }
+        print "\nCiphertext = $ct\n";
+        if ($res ne "") {
+            print "Operation = DECRYPT\n";
+            print "Result = $res\n";
+        }
+        print "\n";
+        $res = "";
+        if ($fixediv == 0) {
+            $iv = "";
+        }
+        $aad = "";
+        $tag = "";
+        $pt = "";
+        $intest = 0;
+    }
+}
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/check-malloc-errs b/ap/lib/libssl/openssl-1.1.1o/util/check-malloc-errs
new file mode 100755
index 0000000..1e63240
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/check-malloc-errs
@@ -0,0 +1,16 @@
+#! /bin/sh
+# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+(
+    pcregrep -rnM 'OPENSSL_.?alloc.*\n.*if.*NULL.*\n.*return'  crypto ssl
+    pcregrep -rnM 'if.*OPENSSL_.?alloc.*NULL.*\n.*.*return' crypto ssl
+) | tee /tmp/out$$
+X=0
+test -s /tmp/out$$ && X=1
+rm /tmp/out$$
+exit $X
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/ck_errf.pl b/ap/lib/libssl/openssl-1.1.1o/util/ck_errf.pl
new file mode 100755
index 0000000..539736d
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/ck_errf.pl
@@ -0,0 +1,152 @@
+#! /usr/bin/env perl
+# Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# This is just a quick script to scan for cases where the 'error'
+# function name in a XXXerr() macro is wrong.
+#
+# Run in the top level by going
+# perl util/ck_errf.pl */*.c */*/*.c
+#
+
+use strict;
+use warnings;
+
+my $config;
+my $err_strict = 0;
+my $debug      = 0;
+my $internal   = 0;
+
+sub help
+{
+    print STDERR <<"EOF";
+mkerr.pl [options] [files...]
+
+Options:
+
+    -conf FILE  Use the named config file FILE instead of the default.
+
+    -debug      Verbose output debugging on stderr.
+
+    -internal   Generate code that is to be built as part of OpenSSL itself.
+                Also scans internal list of files.
+
+    -strict     If any error was found, fail with exit code 1, otherwise 0.
+
+    -help       Show this help text.
+
+    ...         Additional arguments are added to the file list to scan,
+                if '-internal' was NOT specified on the command line.
+
+EOF
+}
+
+while ( @ARGV ) {
+    my $arg = $ARGV[0];
+    last unless $arg =~ /-.*/;
+    $arg = $1 if $arg =~ /-(-.*)/;
+    if ( $arg eq "-conf" ) {
+        $config = $ARGV[1];
+        shift @ARGV;
+    } elsif ( $arg eq "-debug" ) {
+        $debug = 1;
+    } elsif ( $arg eq "-internal" ) {
+        $internal = 1;
+    } elsif ( $arg eq "-strict" ) {
+        $err_strict = 1;
+    } elsif ( $arg =~ /-*h(elp)?/ ) {
+        &help();
+        exit;
+    } elsif ( $arg =~ /-.*/ ) {
+        die "Unknown option $arg; use -h for help.\n";
+    }
+    shift @ARGV;
+}
+
+my @source;
+if ( $internal ) {
+    die "Extra parameters given.\n" if @ARGV;
+    $config = "crypto/err/openssl.ec" unless defined $config;
+    @source = ( glob('crypto/*.c'), glob('crypto/*/*.c'),
+                glob('ssl/*.c'), glob('ssl/*/*.c') );
+} else {
+    die "Configuration file not given.\nSee '$0 -help' for information\n"
+        unless defined $config;
+    @source = @ARGV;
+}
+
+# To detect if there is any error generation for a libcrypto/libssl libs
+# we don't know, we need to find out what libs we do know.  That list is
+# readily available in crypto/err/openssl.ec, in form of lines starting
+# with "L ".  Note that we always rely on the modules SYS and ERR to be
+# generally available.
+my %libs       = ( SYS => 1, ERR => 1 );
+open my $cfh, $config or die "Trying to read $config: $!\n";
+while (<$cfh>) {
+    s|\R$||;                    # Better chomp
+    next unless m|^L ([0-9A-Z_]+)\s|;
+    next if $1 eq "NONE";
+    $libs{$1} = 1;
+}
+
+my $bad = 0;
+foreach my $file (@source) {
+    open( IN, "<$file" ) || die "Can't open $file, $!";
+    my $func = "";
+    while (<IN>) {
+        if ( !/;$/ && /^\**([a-zA-Z_].*[\s*])?([A-Za-z_0-9]+)\(.*([),]|$)/ ) {
+            /^([^()]*(\([^()]*\)[^()]*)*)\(/;
+            $1 =~ /([A-Za-z_0-9]*)$/;
+            $func = $1;
+            $func =~ tr/A-Z/a-z/;
+        }
+        if ( /([A-Z0-9_]+[A-Z0-9])err\(([^,]+)/ && !/ckerr_ignore/ ) {
+            my $errlib = $1;
+            my $n      = $2;
+
+            unless ( $libs{$errlib} ) {
+                print "$file:$.:$errlib not listed in $config\n";
+                $libs{$errlib} = 1; # To not display it again
+                $bad = 1;
+            }
+
+            if ( $func eq "" ) {
+                print "$file:$.:???:$n\n";
+                $bad = 1;
+                next;
+            }
+
+            if ( $n !~ /^(.+)_F_(.+)$/ ) {
+                #print "check -$file:$.:$func:$n\n";
+                next;
+            }
+            my $lib = $1;
+            $n   = $2;
+
+            if ( $lib ne $errlib ) {
+                print "$file:$.:$func:$n [${errlib}err]\n";
+                $bad = 1;
+                next;
+            }
+
+            $n =~ tr/A-Z/a-z/;
+            if ( $n ne $func && $errlib ne "SYS" ) {
+                print "$file:$.:$func:$n\n";
+                $bad = 1;
+                next;
+            }
+
+            #		print "$func:$1\n";
+        }
+    }
+    close(IN);
+}
+
+if ( $bad && $err_strict ) {
+    print STDERR "FATAL: error discrepancy\n";
+    exit 1;
+}
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/copy.pl b/ap/lib/libssl/openssl-1.1.1o/util/copy.pl
new file mode 100644
index 0000000..58ecc82
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/copy.pl
@@ -0,0 +1,84 @@
+#! /usr/bin/env perl
+# Copyright 2005-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use Fcntl;
+
+
+# copy.pl
+
+# Perl script 'copy' comment. On Windows the built in "copy" command also
+# copies timestamps: this messes up Makefile dependencies.
+
+my $stripcr = 0;
+
+my $arg;
+my @excludes = ();
+
+foreach $arg (@ARGV) {
+	if ($arg eq "-stripcr")
+		{
+		$stripcr = 1;
+		next;
+		}
+	if ($arg =~ /^-exclude_re=(.*)$/)
+		{
+		push @excludes, $1;
+		next;
+		}
+	$arg =~ s|\\|/|g;	# compensate for bug/feature in cygwin glob...
+	$arg = qq("$arg") if ($arg =~ /\s/);	# compensate for bug in 5.10...
+	foreach my $f (glob $arg)
+		{
+		push @filelist, $f unless grep { $f =~ /$_/ } @excludes;
+		}
+}
+
+$fnum = @filelist;
+
+if ($fnum <= 1)
+	{
+	die "Need at least two filenames";
+	}
+
+$dest = pop @filelist;
+
+if ($fnum > 2 && ! -d $dest)
+	{
+	die "Destination must be a directory";
+	}
+
+foreach (@filelist)
+	{
+	if (-d $dest)
+		{
+		$dfile = $_;
+		$dfile =~ s|^.*[/\\]([^/\\]*)$|$1|;
+		$dfile = "$dest/$dfile";
+		}
+	else
+		{
+		$dfile = $dest;
+		}
+	sysopen(IN, $_, O_RDONLY|O_BINARY) || die "Can't Open $_";
+	sysopen(OUT, $dfile, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY)
+					|| die "Can't Open $dfile";
+	while (sysread IN, $buf, 10240)
+		{
+		if ($stripcr)
+			{
+			$buf =~ tr/\015//d;
+			}
+		syswrite(OUT, $buf, length($buf));
+		}
+	close(IN);
+	close(OUT);
+	print "Copying: $_ to $dfile\n";
+	}
+
+
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/dofile.pl b/ap/lib/libssl/openssl-1.1.1o/util/dofile.pl
new file mode 100644
index 0000000..c3bc9ba
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/dofile.pl
@@ -0,0 +1,210 @@
+#! /usr/bin/env perl
+# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Reads one or more template files and runs it through Text::Template
+#
+# It is assumed that this scripts is called with -Mconfigdata, a module
+# that holds configuration data in %config
+
+use strict;
+use warnings;
+
+use FindBin;
+use Getopt::Std;
+
+# We actually expect to get the following hash tables from configdata:
+#
+#    %config
+#    %target
+#    %withargs
+#    %unified_info
+#
+# We just do a minimal test to see that we got what we expected.
+# $config{target} must exist as an absolute minimum.
+die "You must run this script with -Mconfigdata\n" if !exists($config{target});
+
+# Make a subclass of Text::Template to override append_text_to_result,
+# as recommended here:
+#
+# http://search.cpan.org/~mjd/Text-Template-1.46/lib/Text/Template.pm#Automatic_postprocessing_of_template_hunks
+
+package OpenSSL::Template;
+
+# Because we know that Text::Template isn't a core Perl module, we use
+# a fallback in case it's not installed on the system
+use File::Basename;
+use File::Spec::Functions;
+use lib "$FindBin::Bin/perl";
+use with_fallback "Text::Template 1.46";
+
+#use parent qw/Text::Template/;
+use vars qw/@ISA/;
+push @ISA, qw/Text::Template/;
+
+# Override constructor
+sub new {
+    my ($class) = shift;
+
+    # Call the constructor of the parent class, Person.
+    my $self = $class->SUPER::new( @_ );
+    # Add few more attributes
+    $self->{_output_off}   = 0;	# Default to output hunks
+    bless $self, $class;
+    return $self;
+}
+
+sub append_text_to_output {
+    my $self = shift;
+
+    if ($self->{_output_off} == 0) {
+	$self->SUPER::append_text_to_output(@_);
+    }
+
+    return;
+}
+
+sub output_reset_on {
+    my $self = shift;
+    $self->{_output_off} = 0;
+}
+
+sub output_on {
+    my $self = shift;
+    if (--$self->{_output_off} < 0) {
+	$self->{_output_off} = 0;
+    }
+}
+
+sub output_off {
+    my $self = shift;
+    $self->{_output_off}++;
+}
+
+# Come back to main
+
+package main;
+
+# Helper functions for the templates #################################
+
+# It might be practical to quotify some strings and have them protected
+# from possible harm.  These functions primarily quote things that might
+# be interpreted wrongly by a perl eval.
+
+# quotify1 STRING
+# This adds quotes (") around the given string, and escapes any $, @, \,
+# " and ' by prepending a \ to them.
+sub quotify1 {
+    my $s = shift @_;
+    $s =~ s/([\$\@\\"'])/\\$1/g;
+    '"'.$s.'"';
+}
+
+# quotify_l LIST
+# For each defined element in LIST (i.e. elements that aren't undef), have
+# it quotified with 'quotify1'
+sub quotify_l {
+    map {
+        if (!defined($_)) {
+            ();
+        } else {
+            quotify1($_);
+        }
+    } @_;
+}
+
+# Error reporter #####################################################
+
+# The error reporter uses %lines to figure out exactly which file the
+# error happened and at what line.  Not that the line number may be
+# the start of a perl snippet rather than the exact line where it
+# happened.  Nothing we can do about that here.
+
+my %lines = ();
+sub broken {
+    my %args = @_;
+    my $filename = "<STDIN>";
+    my $deducelines = 0;
+    foreach (sort keys %lines) {
+        $filename = $lines{$_};
+        last if ($_ > $args{lineno});
+        $deducelines += $_;
+    }
+    print STDERR $args{error}," in $filename, fragment starting at line ",$args{lineno}-$deducelines;
+    undef;
+}
+
+# Check options ######################################################
+
+my %opts = ();
+
+# -o ORIGINATOR
+#		declares ORIGINATOR as the originating script.
+getopt('o', \%opts);
+
+my @autowarntext = ("WARNING: do not edit!",
+		    "Generated"
+		    . (defined($opts{o}) ? " by ".$opts{o} : "")
+		    . (scalar(@ARGV) > 0 ? " from ".join(", ",@ARGV) : ""));
+
+# Template reading ###################################################
+
+# Read in all the templates into $text, while keeping track of each
+# file and its size in lines, to try to help report errors with the
+# correct file name and line number.
+
+my $prev_linecount = 0;
+my $text =
+    @ARGV
+    ? join("", map { my $x = Text::Template::_load_text($_);
+                     if (!defined($x)) {
+                         die $Text::Template::ERROR, "\n";
+                     }
+                     $x = "{- output_reset_on() -}" . $x;
+                     my $linecount = $x =~ tr/\n//;
+                     $prev_linecount = ($linecount += $prev_linecount);
+                     $lines{$linecount} = $_;
+                     $x } @ARGV)
+    : join("", <STDIN>);
+
+# Engage! ############################################################
+
+# Load the full template (combination of files) into Text::Template
+# and fill it up with our data.  Output goes directly to STDOUT
+
+my $template =
+    OpenSSL::Template->new(TYPE => 'STRING',
+                           SOURCE => $text,
+                           PREPEND => qq{use lib "$FindBin::Bin/perl";});
+
+sub output_reset_on {
+    $template->output_reset_on();
+    "";
+}
+sub output_on {
+    $template->output_on();
+    "";
+}
+sub output_off {
+    $template->output_off();
+    "";
+}
+
+$template->fill_in(OUTPUT => \*STDOUT,
+                   HASH => { config => \%config,
+                             target => \%target,
+                             disabled => \%disabled,
+                             withargs => \%withargs,
+                             unified_info => \%unified_info,
+                             autowarntext => \@autowarntext,
+                             quotify1 => \&quotify1,
+                             quotify_l => \&quotify_l,
+                             output_reset_on => \&output_reset_on,
+                             output_on => \&output_on,
+                             output_off => \&output_off },
+                   DELIMITERS => [ "{-", "-}" ],
+                   BROKEN => \&broken);
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/echo.pl b/ap/lib/libssl/openssl-1.1.1o/util/echo.pl
new file mode 100644
index 0000000..d90e521
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/echo.pl
@@ -0,0 +1,12 @@
+#! /usr/bin/perl
+
+use strict;
+use warnings;
+use Getopt::Std;
+
+our $opt_n = 0;
+
+getopts('n') or die "Invalid option: $!\n";
+
+print join(' ', @ARGV);
+print "\n" unless $opt_n;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/find-doc-nits b/ap/lib/libssl/openssl-1.1.1o/util/find-doc-nits
new file mode 100755
index 0000000..f2fd85c
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/find-doc-nits
@@ -0,0 +1,574 @@
+#! /usr/bin/env perl
+# Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+require 5.10.0;
+use warnings;
+use strict;
+use Pod::Checker;
+use File::Find;
+use File::Basename;
+use File::Spec::Functions;
+use Getopt::Std;
+use lib catdir(dirname($0), "perl");
+use OpenSSL::Util::Pod;
+
+# Options.
+our($opt_d);
+our($opt_h);
+our($opt_l);
+our($opt_n);
+our($opt_p);
+our($opt_u);
+our($opt_c);
+
+sub help()
+{
+    print <<EOF;
+Find small errors (nits) in documentation.  Options:
+    -d Detailed list of undocumented (implies -u)
+    -l Print bogus links
+    -n Print nits in POD pages
+    -p Warn if non-public name documented (implies -n)
+    -u Count undocumented functions
+    -h Print this help message
+    -c List undocumented commands and options
+EOF
+    exit;
+}
+
+my $temp = '/tmp/docnits.txt';
+my $OUT;
+my %public;
+
+my %mandatory_sections =
+    ( '*'    => [ 'NAME', 'DESCRIPTION', 'COPYRIGHT' ],
+      1      => [ 'SYNOPSIS', 'OPTIONS' ],
+      3      => [ 'SYNOPSIS', 'RETURN VALUES' ],
+      5      => [ ],
+      7      => [ ] );
+
+# Cross-check functions in the NAME and SYNOPSIS section.
+sub name_synopsis()
+{
+    my $id = shift;
+    my $filename = shift;
+    my $contents = shift;
+
+    # Get NAME section and all words in it.
+    return unless $contents =~ /=head1 NAME(.*)=head1 SYNOPSIS/ms;
+    my $tmp = $1;
+    $tmp =~ tr/\n/ /;
+    print "$id trailing comma before - in NAME\n" if $tmp =~ /, *-/;
+    $tmp =~ s/ -.*//g;
+    $tmp =~ s/  */ /g;
+    print "$id missing comma in NAME\n" if $tmp =~ /[^,] /;
+    $tmp =~ s/,//g;
+
+    my $dirname = dirname($filename);
+    my $simplename = basename($filename);
+    $simplename =~ s/.pod$//;
+    my $foundfilename = 0;
+    my %foundfilenames = ();
+    my %names;
+    foreach my $n ( split ' ', $tmp ) {
+        $names{$n} = 1;
+        $foundfilename++ if $n eq $simplename;
+        $foundfilenames{$n} = 1
+            if -f "$dirname/$n.pod" && $n ne $simplename;
+    }
+    print "$id the following exist as other .pod files:\n",
+        join(" ", sort keys %foundfilenames), "\n"
+        if %foundfilenames;
+    print "$id $simplename (filename) missing from NAME section\n"
+        unless $foundfilename;
+    foreach my $n ( keys %names ) {
+        print "$id $n is not public\n"
+            if $opt_p and !defined $public{$n};
+    }
+
+    # Find all functions in SYNOPSIS
+    return unless $contents =~ /=head1 SYNOPSIS(.*)=head1 DESCRIPTION/ms;
+    my $syn = $1;
+    foreach my $line ( split /\n+/, $syn ) {
+        my $sym;
+        $line =~ s/STACK_OF\([^)]+\)/int/g;
+        $line =~ s/__declspec\([^)]+\)//;
+        if ( $line =~ /env (\S*)=/ ) {
+            # environment variable env NAME=...
+            $sym = $1;
+        } elsif ( $line =~ /typedef.*\(\*(\S+)\)\(.*/ ) {
+            # a callback function pointer: typedef ... (*NAME)(...
+            $sym = $1;
+        } elsif ( $line =~ /typedef.* (\S+)\(.*/ ) {
+            # a callback function signature: typedef ... NAME(...
+            $sym = $1;
+        } elsif ( $line =~ /typedef.* (\S+);/ ) {
+            # a simple typedef: typedef ... NAME;
+            $sym = $1;
+        } elsif ( $line =~ /enum (\S*) \{/ ) {
+            # an enumeration: enum ... {
+            $sym = $1;
+        } elsif ( $line =~ /#define ([A-Za-z0-9_]+)/ ) {
+            $sym = $1;
+        } elsif ( $line =~ /([A-Za-z0-9_]+)\(/ ) {
+            $sym = $1;
+        }
+        else {
+            next;
+        }
+        print "$id $sym missing from NAME section\n"
+            unless defined $names{$sym};
+        $names{$sym} = 2;
+
+        # Do some sanity checks on the prototype.
+        print "$id prototype missing spaces around commas: $line\n"
+            if ( $line =~ /[a-z0-9],[^ ]/ );
+    }
+
+    foreach my $n ( keys %names ) {
+        next if $names{$n} == 2;
+        print "$id $n missing from SYNOPSIS\n";
+    }
+}
+
+# Check if SECTION ($3) is located before BEFORE ($4)
+sub check_section_location()
+{
+    my $id = shift;
+    my $contents = shift;
+    my $section = shift;
+    my $before = shift;
+
+    return
+        unless $contents =~ /=head1 $section/ and $contents =~ /=head1 $before/;
+    print "$id $section should be placed before $before section\n"
+        if $contents =~ /=head1 $before.*=head1 $section/ms;
+}
+
+sub check()
+{
+    my $filename = shift;
+    my $dirname = basename(dirname($filename));
+
+    my $contents = '';
+    {
+        local $/ = undef;
+        open POD, $filename or die "Couldn't open $filename, $!";
+        $contents = <POD>;
+        close POD;
+    }
+
+    my $id = "${filename}:1:";
+
+    # Check ordering of some sections in man3
+    if ( $filename =~ m|man3/| ) {
+        &check_section_location($id, $contents, "RETURN VALUES", "EXAMPLES");
+        &check_section_location($id, $contents, "SEE ALSO", "HISTORY");
+        &check_section_location($id, $contents, "EXAMPLES", "SEE ALSO");
+    }
+
+    &name_synopsis($id, $filename, $contents)
+        unless $contents =~ /=for comment generic/
+            or $filename =~ m@man[157]/@;
+
+    print "$id doesn't start with =pod\n"
+        if $contents !~ /^=pod/;
+    print "$id doesn't end with =cut\n"
+        if $contents !~ /=cut\n$/;
+    print "$id more than one cut line.\n"
+        if $contents =~ /=cut.*=cut/ms;
+    print "$id EXAMPLE not EXAMPLES section.\n"
+        if $contents =~ /=head1 EXAMPLE[^S]/;
+    print "$id WARNING not WARNINGS section.\n"
+        if $contents =~ /=head1 WARNING[^S]/;
+    print "$id missing copyright\n"
+        if $contents !~ /Copyright .* The OpenSSL Project Authors/;
+    print "$id copyright not last\n"
+        if $contents =~ /head1 COPYRIGHT.*=head/ms;
+    print "$id head2 in All uppercase\n"
+        if $contents =~ /head2\s+[A-Z ]+\n/;
+    print "$id extra space after head\n"
+        if $contents =~ /=head\d\s\s+/;
+    print "$id period in NAME section\n"
+        if $contents =~ /=head1 NAME.*\.\n.*=head1 SYNOPSIS/ms;
+    print "$id POD markup in NAME section\n"
+        if $contents =~ /=head1 NAME.*[<>].*=head1 SYNOPSIS/ms;
+    print "$id Duplicate $1 in L<>\n"
+        if $contents =~ /L<([^>]*)\|([^>]*)>/ && $1 eq $2;
+    print "$id Bad =over $1\n"
+        if $contents =~ /=over([^ ][^24])/;
+    print "$id Possible version style issue\n"
+        if $contents =~ /OpenSSL version [019]/;
+
+    if ( $contents !~ /=for comment multiple includes/ ) {
+        # Look for multiple consecutive openssl #include lines
+        # (non-consecutive lines are okay; see man3/MD5.pod).
+        if ( $contents =~ /=head1 SYNOPSIS(.*)=head1 DESCRIPTION/ms ) {
+            my $count = 0;
+            foreach my $line ( split /\n+/, $1 ) {
+                if ( $line =~ m@include <openssl/@ ) {
+                    print "$id has multiple includes\n" if ++$count == 2;
+                } else {
+                    $count = 0;
+                }
+            }
+        }
+    }
+
+    open my $OUT, '>', $temp
+        or die "Can't open $temp, $!";
+    podchecker($filename, $OUT);
+    close $OUT;
+    open $OUT, '<', $temp
+        or die "Can't read $temp, $!";
+    while ( <$OUT> ) {
+        next if /\(section\) in.*deprecated/;
+        print;
+    }
+    close $OUT;
+    unlink $temp || warn "Can't remove $temp, $!";
+
+    # Find what section this page is in; assume 3.
+    my $section = 3;
+    $section = $1 if $dirname =~ /man([1-9])/;
+
+    foreach ((@{$mandatory_sections{'*'}}, @{$mandatory_sections{$section}})) {
+        # Skip "return values" if not -s
+        print "$id: missing $_ head1 section\n"
+            if $contents !~ /^=head1\s+${_}\s*$/m;
+    }
+}
+
+my %dups;
+
+sub parsenum()
+{
+    my $file = shift;
+    my @apis;
+
+    open my $IN, '<', $file
+        or die "Can't open $file, $!, stopped";
+
+    while ( <$IN> ) {
+        next if /^#/;
+        next if /\bNOEXIST\b/;
+        next if /\bEXPORT_VAR_AS_FUNC\b/;
+        my @fields = split();
+        die "Malformed line $_"
+            if scalar @fields != 2 && scalar @fields != 4;
+        push @apis, $fields[0];
+    }
+
+    close $IN;
+
+    print "# Found ", scalar(@apis), " in $file\n" unless $opt_p;
+    return sort @apis;
+}
+
+sub getdocced()
+{
+    my $dir = shift;
+    my %return;
+
+    foreach my $pod ( glob("$dir/*.pod") ) {
+        my %podinfo = extract_pod_info($pod);
+        foreach my $n ( @{$podinfo{names}} ) {
+            $return{$n} = $pod;
+            print "# Duplicate $n in $pod and $dups{$n}\n"
+                if defined $dups{$n} && $dups{$n} ne $pod;
+            $dups{$n} = $pod;
+        }
+    }
+
+    return %return;
+}
+
+my %docced;
+
+sub checkmacros()
+{
+    my $count = 0;
+    my %seen;
+
+    print "# Checking macros (approximate)\n";
+    foreach my $f ( glob('include/openssl/*.h') ) {
+        # Skip some internals we don't want to document yet.
+        next if $f eq 'include/openssl/asn1.h';
+        next if $f eq 'include/openssl/asn1t.h';
+        next if $f eq 'include/openssl/err.h';
+        open(IN, $f) || die "Can't open $f, $!";
+        while ( <IN> ) {
+            next unless /^#\s*define\s*(\S+)\(/;
+            my $macro = $1;
+            next if $docced{$macro} || defined $seen{$macro};
+            next if $macro =~ /i2d_/
+                || $macro =~ /d2i_/
+                || $macro =~ /DEPRECATEDIN/
+                || $macro =~ /IMPLEMENT_/
+                || $macro =~ /DECLARE_/;
+            print "$f:$macro\n" if $opt_d;
+            $count++;
+            $seen{$macro} = 1;
+        }
+        close(IN);
+    }
+    print "# Found $count macros missing (not all should be documented)\n"
+}
+
+sub printem()
+{
+    my $libname = shift;
+    my $numfile = shift;
+    my $count = 0;
+    my %seen;
+
+    foreach my $func ( &parsenum($numfile) ) {
+        next if $docced{$func} || defined $seen{$func};
+
+        # Skip ASN1 utilities
+        next if $func =~ /^ASN1_/;
+
+        print "$libname:$func\n" if $opt_d;
+        $count++;
+        $seen{$func} = 1;
+    }
+    print "# Found $count missing from $numfile\n\n";
+}
+
+
+# Collection of links in each POD file.
+# filename => [ "foo(1)", "bar(3)", ... ]
+my %link_collection = ();
+# Collection of names in each POD file.
+# "name(s)" => filename
+my %name_collection = ();
+
+sub collectnames {
+    my $filename = shift;
+    $filename =~ m|man(\d)/|;
+    my $section = $1;
+    my $simplename = basename($filename, ".pod");
+    my $id = "${filename}:1:";
+
+    my $contents = '';
+    {
+        local $/ = undef;
+        open POD, $filename or die "Couldn't open $filename, $!";
+        $contents = <POD>;
+        close POD;
+    }
+
+    $contents =~ /=head1 NAME([^=]*)=head1 /ms;
+    my $tmp = $1;
+    unless (defined $tmp) {
+        print "$id weird name section\n";
+        return;
+    }
+    $tmp =~ tr/\n/ /;
+    $tmp =~ s/-.*//g;
+
+    my @names = map { s/\s+//g; $_ } split(/,/, $tmp);
+    unless (grep { $simplename eq $_ } @names) {
+        print "$id missing $simplename\n";
+        push @names, $simplename;
+    }
+    foreach my $name (@names) {
+        next if $name eq "";
+        my $name_sec = "$name($section)";
+        if (! exists $name_collection{$name_sec}) {
+            $name_collection{$name_sec} = $filename;
+        } else { #elsif ($filename ne $name_collection{$name_sec}) {
+            print "$id $name_sec also in $name_collection{$name_sec}\n";
+        }
+    }
+
+    my @foreign_names =
+        map { map { s/\s+//g; $_ } split(/,/, $_) }
+        $contents =~ /=for\s+comment\s+foreign\s+manuals:\s*(.*)\n\n/;
+    foreach (@foreign_names) {
+        $name_collection{$_} = undef; # It still exists!
+    }
+
+    my @links = $contents =~ /L<
+                              # if the link is of the form L<something|name(s)>,
+                              # then remove 'something'.  Note that 'something'
+                              # may contain POD codes as well...
+                              (?:(?:[^\|]|<[^>]*>)*\|)?
+                              # we're only interested in references that have
+                              # a one digit section number
+                              ([^\/>\(]+\(\d\))
+                             /gx;
+    $link_collection{$filename} = [ @links ];
+}
+
+sub checklinks {
+    foreach my $filename (sort keys %link_collection) {
+        foreach my $link (@{$link_collection{$filename}}) {
+            print "${filename}:1: reference to non-existing $link\n"
+                unless exists $name_collection{$link};
+        }
+    }
+}
+
+sub publicize() {
+    foreach my $name ( &parsenum('util/libcrypto.num') ) {
+        $public{$name} = 1;
+    }
+    foreach my $name ( &parsenum('util/libssl.num') ) {
+        $public{$name} = 1;
+    }
+    foreach my $name ( &parsenum('util/private.num') ) {
+        $public{$name} = 1;
+    }
+}
+
+my %skips = (
+    'aes128' => 1,
+    'aes192' => 1,
+    'aes256' => 1,
+    'aria128' => 1,
+    'aria192' => 1,
+    'aria256' => 1,
+    'camellia128' => 1,
+    'camellia192' => 1,
+    'camellia256' => 1,
+    'des' => 1,
+    'des3' => 1,
+    'idea' => 1,
+    '[cipher]' => 1,
+    '[digest]' => 1,
+);
+
+sub checkflags() {
+    my $cmd = shift;
+    my %cmdopts;
+    my %docopts;
+    my $ok = 1;
+
+    # Get the list of options in the command.
+    open CFH, "./apps/openssl list --options $cmd|"
+        || die "Can list options for $cmd, $!";
+    while ( <CFH> ) {
+        chop;
+        s/ .$//;
+        $cmdopts{$_} = 1;
+    }
+    close CFH;
+
+    # Get the list of flags from the synopsis
+    open CFH, "<doc/man1/$cmd.pod"
+        || die "Can't open $cmd.pod, $!";
+    while ( <CFH> ) {
+        chop;
+        last if /DESCRIPTION/;
+        next unless /\[B<-([^ >]+)/;
+        $docopts{$1} = 1;
+    }
+    close CFH;
+
+    # See what's in the command not the manpage.
+    my @undocced = ();
+    foreach my $k ( keys %cmdopts ) {
+        push @undocced, $k unless $docopts{$k};
+    }
+    if ( scalar @undocced > 0 ) {
+        $ok = 0;
+        foreach ( @undocced ) {
+            print "doc/man1/$cmd.pod: Missing -$_\n";
+        }
+    }
+
+    # See what's in the command not the manpage.
+    my @unimpl = ();
+    foreach my $k ( keys %docopts ) {
+        push @unimpl, $k unless $cmdopts{$k};
+    }
+    if ( scalar @unimpl > 0 ) {
+        $ok = 0;
+        foreach ( @unimpl ) {
+            next if defined $skips{$_};
+            print "doc/man1/$cmd.pod: Not implemented -$_\n";
+        }
+    }
+
+    return $ok;
+}
+
+getopts('cdlnphu');
+
+&help() if $opt_h;
+$opt_n = 1 if $opt_p;
+$opt_u = 1 if $opt_d;
+
+die "Need one of -[cdlnpu] flags.\n"
+    unless $opt_c or $opt_l or $opt_n or $opt_u;
+
+if ( $opt_c ) {
+    my $ok = 1;
+    my @commands = ();
+
+    # Get list of commands.
+    open FH, "./apps/openssl list -1 -commands|"
+        || die "Can't list commands, $!";
+    while ( <FH> ) {
+        chop;
+        push @commands, $_;
+    }
+    close FH;
+
+    # See if each has a manpage.
+    foreach ( @commands ) {
+        next if $_ eq 'help' || $_ eq 'exit';
+        if ( ! -f "doc/man1/$_.pod" ) {
+            print "doc/man1/$_.pod does not exist\n";
+            $ok = 0;
+        } else {
+            $ok = 0 if not &checkflags($_);
+        }
+    }
+
+    # See what help is missing.
+    open FH, "./apps/openssl list --missing-help |"
+        || die "Can't list missing help, $!";
+    while ( <FH> ) {
+        chop;
+        my ($cmd, $flag) = split;
+        print "$cmd has no help for -$flag\n";
+        $ok = 0;
+    }
+    close FH;
+
+    exit 1 if not $ok;
+}
+
+if ( $opt_l ) {
+    foreach (@ARGV ? @ARGV : glob('doc/*/*.pod')) {
+        collectnames($_);
+    }
+    checklinks();
+}
+
+if ( $opt_n ) {
+    &publicize() if $opt_p;
+    foreach (@ARGV ? @ARGV : glob('doc/*/*.pod')) {
+        &check($_);
+    }
+}
+
+if ( $opt_u ) {
+    my %temp = &getdocced('doc/man3');
+    foreach ( keys %temp ) {
+        $docced{$_} = $temp{$_};
+    }
+    &printem('crypto', 'util/libcrypto.num');
+    &printem('ssl', 'util/libssl.num');
+    &checkmacros();
+}
+
+exit;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/find-unused-errs b/ap/lib/libssl/openssl-1.1.1o/util/find-unused-errs
new file mode 100755
index 0000000..cd1026d
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/find-unused-errs
@@ -0,0 +1,54 @@
+#! /bin/bash
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# Find unused error function-names and reason-codes, and edit them
+# out of the source.  Doesn't handle line-wrapping, might have to do
+# some manual cleanups to fix compile errors.
+
+export X1=/tmp/f.1.$$
+export X2=/tmp/f.2.$$
+
+case "$1" in
+    -f)
+        PAT='_F_'
+        echo Functions only
+        ;;
+    -[er])
+        PAT='_R_'
+        echo Reason codes only
+        ;;
+    "")
+        PAT='_[FR]_'
+        echo Function and reasons
+        ;;
+    *)
+        echo "Usage error; one of -[efr] required."
+        exit 1;
+        ;;
+esac
+
+cd include/openssl || exit 1
+grep "$PAT" *  | grep -v ERR_FATAL_ERROR | awk '{print $3;}' | sort -u >$X1
+cd ../..
+
+for F in `cat $X1` ; do
+    git grep -l --full-name -F $F >$X2
+    NUM=`wc -l <$X2`
+    test $NUM -gt 2 && continue
+    if grep -q $F crypto/err/openssl.ec ; then
+        echo Possibly unused $F found in openssl.ec
+        continue
+    fi
+    echo $F
+    for FILE in `cat $X2` ; do
+        grep -v -w $F <$FILE >$FILE.new
+        mv $FILE.new $FILE
+    done
+done
+
+rm $X1 $X2
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/fix-includes b/ap/lib/libssl/openssl-1.1.1o/util/fix-includes
new file mode 100755
index 0000000..c491638
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/fix-includes
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+find -name ossl_typ.h -o \( \
+	 -name '*.h' -o \
+	 -name '*.h.in' -o \
+	 -name '*.c' -o \
+	 -name '*.ec' -o \
+	 -name 'README*' -o \
+	 -name '*.pod' -o \
+	 -name '*.conf' \
+	 \) -exec sed -E -i \
+	 -f util/fix-includes.sed {} \;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/fix-includes.sed b/ap/lib/libssl/openssl-1.1.1o/util/fix-includes.sed
new file mode 100644
index 0000000..fb0d652
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/fix-includes.sed
@@ -0,0 +1,5 @@
+s|internal/([a-z0-9_]+)_int\.h|crypto/\1.h|g ;
+s@internal/(aria.h|async.h|bn_conf.h|bn_dh.h|bn_srp.h|chacha.h|ctype.h|__DECC_INCLUDE_EPILOGUE.H|__DECC_INCLUDE_PROLOGUE.H|dso_conf.h|engine.h|lhash.h|md32_common.h|objects.h|poly1305.h|sha.h|siphash.h|sm2err.h|sm2.h|sm3.h|sm4.h|store.h|foobar)@crypto/\1@g ;
+s/constant_time_locl/constant_time/g ;
+s/_lo?cl\.h/_local.h/g ;
+s/_int\.h/_local.h/g ;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/indent.pro b/ap/lib/libssl/openssl-1.1.1o/util/indent.pro
new file mode 100644
index 0000000..3d3f747
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/indent.pro
@@ -0,0 +1,643 @@
+-bap
+-bbo
+-br
+-brs
+-c33
+-cd33
+-ce
+-ci4
+-cli0
+-cp33
+-d0
+-di1
+-hnl
+-i4
+-il1
+-ip0
+-l80
+-lp
+-nbad
+-nbc
+-ncdb
+-ncs
+-nfc1
+-nfca
+-npcs
+-nprs
+-npsl
+-nsc
+-ppi1
+-saf
+-sai
+-saw
+-sob
+-ss
+-ts0
+-T ACCESS_DESCRIPTION
+-T ADDED_OBJ
+-T AES_KEY
+-T APP_INFO
+-T ARGS
+-T ASIdOrRange
+-T ASIdOrRanges
+-T ASIdentifierChoice
+-T ASIdentifiers
+-T ASN1_ADB
+-T ASN1_ADB_TABLE
+-T ASN1_AUX
+-T ASN1_BIT_STRING
+-T ASN1_BMPSTRING
+-T ASN1_BOOLEAN
+-T ASN1_ENCODING
+-T ASN1_ENUMERATED
+-T ASN1_EXTERN_FUNCS
+-T ASN1_GENERALIZEDTIME
+-T ASN1_GENERALSTRING
+-T ASN1_IA5STRING
+-T ASN1_INTEGER
+-T ASN1_ITEM
+-T ASN1_ITEM_EXP
+-T ASN1_NULL
+-T ASN1_OBJECT
+-T ASN1_OCTET_STRING
+-T ASN1_PCTX
+-T ASN1_PRIMITIVE_FUNCS
+-T ASN1_PRINTABLESTRING
+-T ASN1_PRINT_ARG
+-T ASN1_SCTX
+-T ASN1_STREAM_ARG
+-T ASN1_STRING
+-T ASN1_STRING_TABLE
+-T ASN1_T61STRING
+-T ASN1_TEMPLATE
+-T ASN1_TIME
+-T ASN1_TLC
+-T ASN1_TYPE
+-T ASN1_UNIVERSALSTRING
+-T ASN1_UTCTIME
+-T ASN1_UTF8STRING
+-T ASN1_VALUE
+-T ASN1_VISIBLESTRING
+-T AUTHORITY_INFO_ACCESS
+-T AUTHORITY_KEYID
+-T BASIC_CONSTRAINTS
+-T BF_KEY
+-T BF_LONG
+-T BIGNUM
+-T BIO
+-T BIO_ACCEPT
+-T BIO_ADDR
+-T BIO_ASN1_BUF_CTX
+-T BIO_ASN1_EX_FUNCS
+-T BIO_B64_CTX
+-T BIO_CONNECT
+-T BIO_ENC_CTX
+-T BIO_F_BUFFER_CTX
+-T BIO_LINEBUFFER_CTX
+-T BIO_METHOD
+-T BIO_OK_CTX
+-T BIO_SSL
+-T BIT_STRING_BITNAME
+-T BN_BLINDING
+-T BN_CTX
+-T BN_GENCB
+-T BN_MONT_CTX
+-T BN_POOL
+-T BN_POOL_ITEM
+-T BN_RECP_CTX
+-T BN_STACK
+-T BN_ULONG
+-T BUF_MEM
+-T BY_DIR
+-T BY_DIR_ENTRY
+-T BY_DIR_HASH
+-T Bytef
+-T CAMELLIA_KEY
+-T CAST_KEY
+-T CAST_LONG
+-T CA_DB
+-T CCM128_CONTEXT
+-T CERT
+-T CERTIFICATEPOLICIES
+-T CERT_PKEY
+-T CIPHER_ORDER
+-T CMAC_CTX
+-T CMS_AuthenticatedData
+-T CMS_CertificateChoices
+-T CMS_CompressedData
+-T CMS_ContentInfo
+-T CMS_DigestedData
+-T CMS_EncapsulatedContentInfo
+-T CMS_EncryptedContentInfo
+-T CMS_EncryptedData
+-T CMS_EnvelopedData
+-T CMS_IssuerAndSerialNumber
+-T CMS_KEKIdentifier
+-T CMS_KEKRecipientInfo
+-T CMS_KeyAgreeRecipientIdentifier
+-T CMS_KeyAgreeRecipientInfo
+-T CMS_KeyTransRecipientInfo
+-T CMS_OriginatorIdentifierOrKey
+-T CMS_OriginatorInfo
+-T CMS_OriginatorPublicKey
+-T CMS_OtherCertificateFormat
+-T CMS_OtherKeyAttribute
+-T CMS_OtherRecipientInfo
+-T CMS_OtherRevocationInfoFormat
+-T CMS_PasswordRecipientInfo
+-T CMS_Receipt
+-T CMS_ReceiptRequest
+-T CMS_ReceiptsFrom
+-T CMS_RecipientEncryptedKey
+-T CMS_RecipientIdentifier
+-T CMS_RecipientInfo
+-T CMS_RecipientKeyIdentifier
+-T CMS_RevocationInfoChoice
+-T CMS_SignedData
+-T CMS_SignerIdentifier
+-T CMS_SignerInfo
+-T COMP_CTX
+-T COMP_METHOD
+-T CONF
+-T CONF_IMODULE
+-T CONF_METHOD
+-T CONF_MODULE
+-T CONF_VALUE
+-T CRYPTO_EX_DATA
+-T CRYPTO_EX_dup
+-T CRYPTO_EX_free
+-T CRYPTO_EX_new
+-T CRYPTO_THREADID
+-T DB_ATTR
+-T DES_LONG
+-T DES_cblock
+-T DES_key_schedule
+-T DH
+-T DH_METHOD
+-T DH_PKEY_CTX
+-T DIST_POINT
+-T DIST_POINT_NAME
+-T DSA
+-T DSA_METHOD
+-T DSA_SIG
+-T DSO
+-T DSO_FUNC_TYPE
+-T DSO_MERGER_FUNC
+-T DSO_METHOD
+-T DSO_NAME_CONVERTER_FUNC
+-T DSO_VMS_INTERNAL
+-T DTLS1_BITMAP
+-T DTLS1_RECORD_DATA
+-T DTLS1_STATE
+-T Dl_info
+-T ECDH_METHOD
+-T ECDSA_METHOD
+-T ECDSA_SIG
+-T ECPARAMETERS
+-T ECPKPARAMETERS
+-T EC_GROUP
+-T EC_KEY
+-T EC_METHOD
+-T EC_POINT
+-T EC_PRE_COMP
+-T EC_PRIVATEKEY
+-T EC_builtin_curve
+-T EDIPARTYNAME
+-T ENGINE
+-T ENGINE_CIPHERS_PTR
+-T ENGINE_CLEANUP_CB
+-T ENGINE_CLEANUP_ITEM
+-T ENGINE_CMD_DEFN
+-T ENGINE_CTRL_FUNC_PTR
+-T ENGINE_DIGESTS_PTR
+-T ENGINE_GEN_FUNC_PTR
+-T ENGINE_GEN_INT_FUNC_PTR
+-T ENGINE_LOAD_KEY_PTR
+-T ENGINE_PILE
+-T ENGINE_PILE_DOALL
+-T ENGINE_PKEY_ASN1_METHS_PTR
+-T ENGINE_PKEY_METHS_PTR
+-T ENGINE_SSL_CLIENT_CERT_PTR
+-T ENGINE_TABLE
+-T ENUMERATED_NAMES
+-T ERR_STATE
+-T ERR_STRING_DATA
+-T ESS_CERT_ID
+-T ESS_CERT_ID_V2
+-T ESS_ISSUER_SERIAL
+-T ESS_SIGNING_CERT
+-T ESS_SIGNING_CERT_V2
+-T EVP_AES_HMAC_SHA1
+-T EVP_AES_HMAC_SHA256
+-T EVP_CIPHER
+-T EVP_CIPHER_CTX
+-T EVP_CIPHER_INFO
+-T EVP_ENCODE_CTX
+-T EVP_MD
+-T EVP_MD_CTX
+-T EVP_PBE_CTL
+-T EVP_PBE_KEYGEN
+-T EVP_PKEY
+-T EVP_PKEY_ASN1_METHOD
+-T EVP_PKEY_CTX
+-T EVP_PKEY_METHOD
+-T EVP_PKEY_gen_cb
+-T FILE
+-T GCM128_CONTEXT
+-T GENERAL_NAME
+-T GENERAL_NAMES
+-T GENERAL_SUBTREE
+-T GEN_SESSION_CB
+-T HASH_CTX
+-T HEAPENTRY32
+-T HEAPLIST32
+-T HMAC_CTX
+-T IDEA_KEY_SCHEDULE
+-T IPAddrBlocks
+-T IPAddressFamily
+-T IPAddressOrRange
+-T IPAddressOrRanges
+-T ISSUING_DIST_POINT
+-T KEY_TABLE_TYPE
+-T LHASH
+-T LHASH_DOALL_ARG_FN_TYPE
+-T LHASH_NODE
+-T LPHEAPENTRY32
+-T LPHEAPLIST32
+-T LPMODULEENTRY32
+-T LPMODULEENTRY32W
+-T LPPROCESSENTRY32
+-T LPPROCESSENTRY32W
+-T LPTHREADENTRY32
+-T LP_DIR_CTX
+-T MD2_CTX
+-T MD4_CTX
+-T MD5_CTX
+-T MDC2_CTX
+-T MEM
+-T MEM_LEAK
+-T MIME_HEADER
+-T MIME_PARAM
+-T MODULEENTRY32
+-T MODULEENTRY32W
+-T NAME_CONSTRAINTS
+-T NAME_FUNCS
+-T NBIO_TEST
+-T NDEF_SUPPORT
+-T NETSCAPE_CERT_SEQUENCE
+-T NETSCAPE_ENCRYPTED_PKEY
+-T NETSCAPE_PKEY
+-T NETSCAPE_SPKAC
+-T NETSCAPE_SPKI
+-T NOTICEREF
+-T OBJ_NAME
+-T OCB128_CONTEXT
+-T OCB_BLOCK
+-T OCSP_BASICRESP
+-T OCSP_CERTID
+-T OCSP_CERTSTATUS
+-T OCSP_CRLID
+-T OCSP_ONEREQ
+-T OCSP_REQINFO
+-T OCSP_REQUEST
+-T OCSP_REQ_CTX
+-T OCSP_RESPBYTES
+-T OCSP_RESPDATA
+-T OCSP_RESPID
+-T OCSP_RESPONSE
+-T OCSP_REVOKEDINFO
+-T OCSP_SERVICELOC
+-T OCSP_SIGNATURE
+-T OCSP_SINGLERESP
+-T OCSP_TBLSTR
+-T OPENSSL_BLOCK
+-T OPENSSL_CSTRING
+-T OPENSSL_DIR_CTX
+-T OPENSSL_PSTRING
+-T OPENSSL_STRING
+-T OSSL_ASYNC_FD
+-T OTHERNAME
+-T P256_POINT
+-T P256_POINT_AFFINE
+-T PBE2PARAM
+-T PBEPARAM
+-T PBKDF2PARAM
+-T PHEAPENTRY32
+-T PHEAPLIST32
+-T PKCS12
+-T PKCS12_BAGS
+-T PKCS12_SAFEBAG
+-T PKCS7
+-T PKCS7_DIGEST
+-T PKCS7_ENCRYPT
+-T PKCS7_ENC_CONTENT
+-T PKCS7_ENVELOPE
+-T PKCS7_ISSUER_AND_SERIAL
+-T PKCS7_RECIP_INFO
+-T PKCS7_SIGNED
+-T PKCS7_SIGNER_INFO
+-T PKCS7_SIGN_ENVELOPE
+-T PKCS8_PRIV_KEY_INFO
+-T PKEY_USAGE_PERIOD
+-T PMODULEENTRY32
+-T PMODULEENTRY32W
+-T POLICYINFO
+-T POLICYQUALINFO
+-T POLICY_CONSTRAINTS
+-T POLICY_MAPPING
+-T POLICY_MAPPINGS
+-T PPROCESSENTRY32
+-T PPROCESSENTRY32W
+-T PRECOMP256_ROW
+-T PROCESSENTRY32
+-T PROCESSENTRY32W
+-T PROXY_CERT_INFO_EXTENSION
+-T PROXY_POLICY
+-T PTHREADENTRY32
+-T PW_CB_DATA
+-T RAND_METHOD
+-T RC2_KEY
+-T RC4_KEY
+-T RC5_32_KEY
+-T RIPEMD160_CTX
+-T RSA
+-T RSA_METHOD
+-T RSA_OAEP_PARAMS
+-T RSA_PKEY_CTX
+-T RSA_PSS_PARAMS
+-T SCT
+-T SEED_KEY_SCHEDULE
+-T SHA256_CTX
+-T SHA512_CTX
+-T SHA_CTX
+-T SRP_ARG
+-T SRP_CLIENT_ARG
+-T SRP_CTX
+-T SRP_SERVER_ARG
+-T SRP_VBASE
+-T SRP_gN_cache
+-T SRP_user_pwd
+-T SRTP_PROTECTION_PROFILE
+-T SSL
+-T SSL3_BUFFER
+-T SSL3_COMP
+-T SSL3_ENC_METHOD
+-T SSL3_RECORD
+-T SSL3_STATE
+-T SSL_CIPHER
+-T SSL_COMP
+-T SSL_CONF_CTX
+-T SSL_CTX
+-T SSL_DANE
+-T SSL_EXCERT
+-T SSL_METHOD
+-T SSL_SESSION
+-T SSL_SESSION_ASN1
+-T STACK_OF
+-T SXNET
+-T SXNETID
+-T TCHAR
+-T TEST_INFO
+-T THREADENTRY32
+-T TIMEOUT_PARAM
+-T TLS_SESSION_TICKET_EXT
+-T TLS_SIGALGS
+-T TS_ACCURACY
+-T TS_MSG_IMPRINT
+-T TS_REQ
+-T TS_RESP
+-T TS_RESP_CTX
+-T TS_STATUS_INFO
+-T TS_TST_INFO
+-T TS_VERIFY_CTX
+-T TXT_DB
+-T UI
+-T UINT64
+-T UI_METHOD
+-T UI_STRING
+-T USERNOTICE
+-T WCHAR
+-T WHIRLPOOL_CTX
+-T WINAPI
+-T X509
+-T X509V3_CONF_METHOD
+-T X509V3_CTX
+-T X509V3_EXT_D2I
+-T X509V3_EXT_FREE
+-T X509V3_EXT_I2D
+-T X509V3_EXT_I2R
+-T X509V3_EXT_I2S
+-T X509V3_EXT_METHOD
+-T X509V3_EXT_NEW
+-T X509V3_EXT_R2I
+-T X509V3_EXT_S2I
+-T X509V3_EXT_V2I
+-T X509_ALGOR
+-T X509_ATTRIBUTE
+-T X509_CERT_AUX
+-T X509_CINF
+-T X509_CRL
+-T X509_CRL_INFO
+-T X509_CRL_METHOD
+-T X509_EXTENSION
+-T X509_INFO
+-T X509_LOOKUP
+-T X509_LOOKUP_METHOD
+-T X509_NAME
+-T X509_NAME_ENTRY
+-T X509_OBJECT
+-T X509_PKEY
+-T X509_POLICY_CACHE
+-T X509_POLICY_DATA
+-T X509_POLICY_LEVEL
+-T X509_POLICY_NODE
+-T X509_POLICY_TREE
+-T X509_PUBKEY
+-T X509_PURPOSE
+-T X509_REQ
+-T X509_REQ_INFO
+-T X509_REVOKED
+-T X509_SIG
+-T X509_STORE
+-T X509_STORE_CTX
+-T X509_TRUST
+-T X509_VAL
+-T X509_VERIFY_PARAM
+-T X9_62_CHARACTERISTIC_TWO
+-T X9_62_CURVE
+-T X9_62_FIELDID
+-T X9_62_PENTANOMIAL
+-T XTS128_CONTEXT
+-T _LHASH
+-T _STACK
+-T __int64
+-T asn1_ps_func
+-T bio_dgram_data
+-T bio_info_cb
+-T BIO_info_cb
+-T BIO_callback_fn
+-T char_io
+-T conf_finish_func
+-T conf_init_func
+-T const_DES_cblock
+-T d2i_of_void
+-T des_cblock
+-T dynamic_data_ctx
+-T dynamic_fns
+-T engine_table_doall_cb
+-T i2d_of_void
+-T int_dhx942_dh
+-T nid_triple
+-T pem_password_cb
+-T pitem
+-T piterator
+-T pqueue_s
+-T session_op
+-T size_t
+-T tag_exp_arg
+-T testdata
+-T time_t
+-T time_t
+-T u32
+-T u64
+-T u8
+-T v3_ext_ctx
+-T v3_ext_method
+-T STACK_OF_ACCESS_DESCRIPTION_
+-T STACK_OF_ASIdOrRange_
+-T STACK_OF_ASN1_ADB_TABLE_
+-T STACK_OF_ASN1_INTEGER_
+-T STACK_OF_ASN1_OBJECT_
+-T STACK_OF_ASN1_STRING_TABLE_
+-T STACK_OF_ASN1_TYPE_
+-T STACK_OF_ASN1_UTF8STRING_
+-T STACK_OF_ASN1_VALUE_
+-T STACK_OF_BIO_
+-T STACK_OF_BY_DIR_ENTRY_
+-T STACK_OF_BY_DIR_HASH_
+-T STACK_OF_CMS_CertificateChoices_
+-T STACK_OF_CMS_RecipientEncryptedKey_
+-T STACK_OF_CMS_RecipientInfo_
+-T STACK_OF_CMS_RevocationInfoChoice_
+-T STACK_OF_CMS_SignerInfo_
+-T STACK_OF_CONF_IMODULE_
+-T STACK_OF_CONF_MODULE_
+-T STACK_OF_CONF_VALUE_
+-T STACK_OF_CRYPTO_dynlock_
+-T STACK_OF_DIST_POINT_
+-T STACK_OF_ENGINE_
+-T STACK_OF_ENGINE_CLEANUP_ITEM_
+-T STACK_OF_ESS_CERT_ID_
+-T STACK_OF_ESS_CERT_ID_V2_
+-T STACK_OF_EVP_PBE_CTL_
+-T STACK_OF_EVP_PKEY_ASN1_METHOD_
+-T STACK_OF_EVP_PKEY_METHOD_
+-T STACK_OF_GENERAL_NAMES_
+-T STACK_OF_GENERAL_NAME_
+-T STACK_OF_GENERAL_SUBTREE_
+-T STACK_OF_IPAddressFamily_
+-T STACK_OF_IPAddressOrRange_
+-T STACK_OF_MIME_HEADER_
+-T STACK_OF_MIME_PARAM_
+-T STACK_OF_NAME_FUNCS_
+-T STACK_OF_OCSP_CERTID_
+-T STACK_OF_OCSP_ONEREQ_
+-T STACK_OF_OCSP_RESPID_
+-T STACK_OF_OCSP_SINGLERESP_
+-T STACK_OF_OPENSSL_BLOCK_
+-T STACK_OF_OPENSSL_PSTRING_
+-T STACK_OF_OPENSSL_STRING_
+-T STACK_OF_PKCS12_SAFEBAG_
+-T STACK_OF_PKCS7_
+-T STACK_OF_PKCS7_RECIP_INFO_
+-T STACK_OF_PKCS7_SIGNER_INFO_
+-T STACK_OF_POLICYINFO_
+-T STACK_OF_POLICYQUALINFO_
+-T STACK_OF_POLICY_MAPPING_
+-T STACK_OF_Request_
+-T STACK_OF_SCT_
+-T STACK_OF_SRP_gN_
+-T STACK_OF_SRP_gN_cache_
+-T STACK_OF_SRP_user_pwd_
+-T STACK_OF_SRTP_PROTECTION_PROFILE_
+-T STACK_OF_SSL_CIPHER_
+-T STACK_OF_SSL_COMP_
+-T STACK_OF_STRING_
+-T STACK_OF_SXNETID_
+-T STACK_OF_SingleResponse_
+-T STACK_OF_UI_STRING_
+-T STACK_OF_X509V3_EXT_METHOD_
+-T STACK_OF_X509_
+-T STACK_OF_X509_ALGOR_
+-T STACK_OF_X509_ATTRIBUTE_
+-T STACK_OF_X509_CRL_
+-T STACK_OF_X509_EXTENSION_
+-T STACK_OF_X509_INFO_
+-T STACK_OF_X509_LOOKUP_
+-T STACK_OF_X509_NAME_
+-T STACK_OF_X509_NAME_ENTRY_
+-T STACK_OF_X509_OBJECT_
+-T STACK_OF_X509_POLICY_DATA_
+-T STACK_OF_X509_POLICY_NODE_
+-T STACK_OF_X509_PURPOSE_
+-T STACK_OF_X509_REVOKED_
+-T STACK_OF_X509_TRUST_
+-T STACK_OF_X509_VERIFY_PARAM_
+-T STACK_OF_nid_triple_
+-T STACK_OF_void_
+-T LHASH_OF_ADDED_OBJ_
+-T LHASH_OF_APP_INFO_
+-T LHASH_OF_CONF_VALUE_
+-T LHASH_OF_ENGINE_PILE_
+-T LHASH_OF_ERR_STATE_
+-T LHASH_OF_ERR_STRING_DATA_
+-T LHASH_OF_FUNCTION_
+-T LHASH_OF_MEM_
+-T LHASH_OF_OBJ_NAME_
+-T LHASH_OF_OPENSSL_STRING_
+-T LHASH_OF_SSL_SESSION_
+-T LHASH_OF_STRING_
+-T clock_t
+-T custom_ext_methods
+-T hm_fragment
+-T record_pqueue
+-T ssl_ctx_st
+-T ssl_flag_tbl
+-T ssl_st
+-T ssl_trace_tbl
+-T _stdcall
+-T OPTIONS
+-T OPT_PAIR
+-T uint64_t
+-T int64_t
+-T uint32_t
+-T int32_t
+-T uint16_t
+-T int16_t
+-T uint8_t
+-T int8_t
+-T STRINT_PAIR
+-T felem
+-T felem_bytearray
+-T SH_LIST
+-T PACKET
+-T RECORD_LAYER
+-T ASYNC_CTX
+-T ASYNC_JOB
+-T intmax_t
+-T uintmax_t
+-T pqueue
+-T danetls_record
+-T CTLOG_STORE
+-T OPENSSL_INIT_SETTINGS
+-T OSSL_HANDSHAKE_STATE
+-T OSSL_STATEM
+-T ossl_intmax_t
+-T ossl_intmax_t
+-T ossl_uintmax_t
+-T ossl_uintmax_t
+-T CT_POLICY_EVAL_CTX
+-T RAND_DRBG
+-T RAND_DRBG_CTR
+-T RAND_POOL
+-T RAND_METHOD
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/libcrypto.num b/ap/lib/libssl/openssl-1.1.1o/util/libcrypto.num
new file mode 100644
index 0000000..436f799
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/libcrypto.num
@@ -0,0 +1,4593 @@
+d2i_EC_PUBKEY                           1	1_1_0	EXIST::FUNCTION:EC
+b2i_PVK_bio                             2	1_1_0	EXIST::FUNCTION:DSA,RC4
+PEM_read_bio_NETSCAPE_CERT_SEQUENCE     3	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get0_chain               4	1_1_0	EXIST::FUNCTION:
+COMP_expand_block                       5	1_1_0	EXIST::FUNCTION:COMP
+X509V3_get_string                       6	1_1_0	EXIST::FUNCTION:
+TS_MSG_IMPRINT_free                     7	1_1_0	EXIST::FUNCTION:TS
+DES_xcbc_encrypt                        8	1_1_0	EXIST::FUNCTION:DES
+TS_RESP_CTX_new                         9	1_1_0	EXIST::FUNCTION:TS
+PKCS5_PBE_add                           10	1_1_0	EXIST::FUNCTION:
+i2d_DSAparams                           11	1_1_0	EXIST::FUNCTION:DSA
+X509_NAME_get0_der                      12	1_1_0	EXIST::FUNCTION:
+i2d_ESS_ISSUER_SERIAL                   13	1_1_0	EXIST::FUNCTION:TS
+X509at_get_attr_by_NID                  14	1_1_0	EXIST::FUNCTION:
+X509_PUBKEY_set0_param                  15	1_1_0	EXIST::FUNCTION:
+PKCS12_it                               16	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS12_it                               16	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+i2d_ASN1_OCTET_STRING                   17	1_1_0	EXIST::FUNCTION:
+EC_KEY_set_private_key                  18	1_1_0	EXIST::FUNCTION:EC
+SRP_VBASE_get_by_user                   19	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SRP
+Camellia_cfb128_encrypt                 21	1_1_0	EXIST::FUNCTION:CAMELLIA
+DES_ncbc_encrypt                        22	1_1_0	EXIST::FUNCTION:DES
+TS_REQ_get_ext_count                    23	1_1_0	EXIST::FUNCTION:TS
+EVP_aes_128_ocb                         24	1_1_0	EXIST::FUNCTION:OCB
+ASN1_item_d2i_fp                        25	1_1_0	EXIST::FUNCTION:STDIO
+BN_lshift                               26	1_1_0	EXIST::FUNCTION:
+X509_NAME_add_entry_by_NID              27	1_1_0	EXIST::FUNCTION:
+X509V3_add_value_bool                   28	1_1_0	EXIST::FUNCTION:
+GENERAL_NAME_get0_otherName             29	1_1_0	EXIST::FUNCTION:
+ASN1_INTEGER_get_uint64                 30	1_1_0	EXIST::FUNCTION:
+EVP_DigestInit_ex                       31	1_1_0	EXIST::FUNCTION:
+CTLOG_new                               32	1_1_0	EXIST::FUNCTION:CT
+UI_get_result_minsize                   33	1_1_0	EXIST::FUNCTION:
+EVP_PBE_alg_add_type                    34	1_1_0	EXIST::FUNCTION:
+EVP_cast5_ofb                           35	1_1_0	EXIST::FUNCTION:CAST
+d2i_PUBKEY_fp                           36	1_1_0	EXIST::FUNCTION:STDIO
+PKCS7_set_cipher                        37	1_1_0	EXIST::FUNCTION:
+BF_decrypt                              38	1_1_0	EXIST::FUNCTION:BF
+PEM_read_bio_PUBKEY                     39	1_1_0	EXIST::FUNCTION:
+X509_NAME_delete_entry                  40	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_set_verify_recover        41	1_1_0	EXIST::FUNCTION:
+UI_set_method                           42	1_1_0	EXIST::FUNCTION:
+PKCS7_ISSUER_AND_SERIAL_it              43	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS7_ISSUER_AND_SERIAL_it              43	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+EC_GROUP_method_of                      44	1_1_0	EXIST::FUNCTION:EC
+RSA_blinding_on                         45	1_1_0	EXIST::FUNCTION:RSA
+X509_get0_signature                     47	1_1_0	EXIST::FUNCTION:
+X509_REVOKED_get0_extensions            48	1_1_0	EXIST::FUNCTION:
+NETSCAPE_SPKI_verify                    49	1_1_0	EXIST::FUNCTION:
+i2d_OCSP_RESPONSE                       50	1_1_0	EXIST::FUNCTION:OCSP
+ERR_peek_error                          51	1_1_0	EXIST::FUNCTION:
+X509v3_asid_validate_resource_set       52	1_1_0	EXIST::FUNCTION:RFC3779
+PEM_write_bio_Parameters                53	1_1_0	EXIST::FUNCTION:
+CMS_SignerInfo_verify                   54	1_1_0	EXIST::FUNCTION:CMS
+X509v3_asid_is_canonical                55	1_1_0	EXIST::FUNCTION:RFC3779
+ASN1_ENUMERATED_get                     56	1_1_0	EXIST::FUNCTION:
+EVP_MD_do_all_sorted                    57	1_1_0	EXIST::FUNCTION:
+OCSP_crl_reason_str                     58	1_1_0	EXIST::FUNCTION:OCSP
+ENGINE_ctrl_cmd_string                  59	1_1_0	EXIST::FUNCTION:ENGINE
+ENGINE_finish                           60	1_1_0	EXIST::FUNCTION:ENGINE
+SRP_Calc_client_key                     61	1_1_0	EXIST::FUNCTION:SRP
+X509_PUBKEY_free                        62	1_1_0	EXIST::FUNCTION:
+BIO_free_all                            63	1_1_0	EXIST::FUNCTION:
+EVP_idea_ofb                            64	1_1_0	EXIST::FUNCTION:IDEA
+DSO_bind_func                           65	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_get_copy                  66	1_1_0	EXIST::FUNCTION:
+RSA_up_ref                              67	1_1_0	EXIST::FUNCTION:RSA
+EVP_PKEY_meth_set_ctrl                  68	1_1_0	EXIST::FUNCTION:
+OCSP_basic_sign                         69	1_1_0	EXIST::FUNCTION:OCSP
+BN_GENCB_set                            70	1_1_0	EXIST::FUNCTION:
+BN_generate_prime                       71	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_0_9_8
+d2i_DSAPrivateKey_fp                    72	1_1_0	EXIST::FUNCTION:DSA,STDIO
+BIO_nread0                              73	1_1_0	EXIST::FUNCTION:
+NETSCAPE_SPKI_print                     74	1_1_0	EXIST::FUNCTION:
+X509_set_pubkey                         75	1_1_0	EXIST::FUNCTION:
+ASN1_item_print                         76	1_1_0	EXIST::FUNCTION:
+CONF_set_nconf                          77	1_1_0	EXIST::FUNCTION:
+RAND_set_rand_method                    78	1_1_0	EXIST::FUNCTION:
+BN_GF2m_mod_mul                         79	1_1_0	EXIST::FUNCTION:EC2M
+UI_add_input_boolean                    80	1_1_0	EXIST::FUNCTION:
+ASN1_TIME_adj                           81	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_asn1_get0_info                 82	1_1_0	EXIST::FUNCTION:
+BN_add_word                             83	1_1_0	EXIST::FUNCTION:
+EVP_des_ede                             84	1_1_0	EXIST::FUNCTION:DES
+EVP_PKEY_add1_attr_by_OBJ               85	1_1_0	EXIST::FUNCTION:
+ASYNC_WAIT_CTX_get_all_fds              86	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_meth_set_do_cipher           87	1_1_0	EXIST::FUNCTION:
+EVP_set_pw_prompt                       88	1_1_0	EXIST::FUNCTION:
+d2i_OCSP_RESPBYTES                      89	1_1_0	EXIST::FUNCTION:OCSP
+TS_REQ_get_ext_by_NID                   90	1_1_0	EXIST::FUNCTION:TS
+ASN1_item_ndef_i2d                      91	1_1_0	EXIST::FUNCTION:
+OCSP_archive_cutoff_new                 92	1_1_0	EXIST::FUNCTION:OCSP
+DSA_size                                93	1_1_0	EXIST::FUNCTION:DSA
+IPAddressRange_free                     94	1_1_0	EXIST::FUNCTION:RFC3779
+CMS_ContentInfo_free                    95	1_1_0	EXIST::FUNCTION:CMS
+BIO_accept                              96	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SOCK
+X509_VERIFY_PARAM_set1_policies         97	1_1_0	EXIST::FUNCTION:
+SCT_set0_extensions                     98	1_1_0	EXIST::FUNCTION:CT
+PKCS5_pbe2_set_scrypt                   99	1_1_0	EXIST::FUNCTION:SCRYPT
+X509_find_by_subject                    100	1_1_0	EXIST::FUNCTION:
+DSAparams_print                         101	1_1_0	EXIST::FUNCTION:DSA
+BF_set_key                              102	1_1_0	EXIST::FUNCTION:BF
+d2i_DHparams                            103	1_1_0	EXIST::FUNCTION:DH
+i2d_PKCS7_ENC_CONTENT                   104	1_1_0	EXIST::FUNCTION:
+DH_generate_key                         105	1_1_0	EXIST::FUNCTION:DH
+ENGINE_add_conf_module                  106	1_1_0	EXIST::FUNCTION:ENGINE
+BIO_new_socket                          107	1_1_0	EXIST::FUNCTION:SOCK
+ASN1_OBJECT_free                        108	1_1_0	EXIST::FUNCTION:
+X509_REQ_get_extensions                 109	1_1_0	EXIST::FUNCTION:
+X509_get_version                        110	1_1_0	EXIST::FUNCTION:
+OCSP_CERTID_dup                         111	1_1_0	EXIST::FUNCTION:OCSP
+RSA_PSS_PARAMS_free                     112	1_1_0	EXIST::FUNCTION:RSA
+i2d_TS_MSG_IMPRINT                      113	1_1_0	EXIST::FUNCTION:TS
+EC_POINT_mul                            114	1_1_0	EXIST::FUNCTION:EC
+WHIRLPOOL_Final                         115	1_1_0	EXIST::FUNCTION:WHIRLPOOL
+CMS_get1_ReceiptRequest                 116	1_1_0	EXIST::FUNCTION:CMS
+BIO_sock_non_fatal_error                117	1_1_0	EXIST::FUNCTION:SOCK
+HMAC_Update                             118	1_1_0	EXIST::FUNCTION:
+i2d_PKCS12                              119	1_1_0	EXIST::FUNCTION:
+EVP_BytesToKey                          120	1_1_0	EXIST::FUNCTION:
+ENGINE_set_default_pkey_asn1_meths      121	1_1_0	EXIST::FUNCTION:ENGINE
+OCSP_BASICRESP_add1_ext_i2d             122	1_1_0	EXIST::FUNCTION:OCSP
+EVP_camellia_128_ctr                    123	1_1_0	EXIST::FUNCTION:CAMELLIA
+EVP_CIPHER_impl_ctx_size                124	1_1_0	EXIST::FUNCTION:
+X509_CRL_get_nextUpdate                 125	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0
+PKCS12_free                             126	1_1_0	EXIST::FUNCTION:
+CMS_signed_get_attr                     127	1_1_0	EXIST::FUNCTION:CMS
+ENGINE_set_destroy_function             128	1_1_0	EXIST::FUNCTION:ENGINE
+ASN1_STRING_TABLE_add                   129	1_1_0	EXIST::FUNCTION:
+d2i_ASIdentifiers                       130	1_1_0	EXIST::FUNCTION:RFC3779
+i2d_PKCS12_bio                          131	1_1_0	EXIST::FUNCTION:
+X509_to_X509_REQ                        132	1_1_0	EXIST::FUNCTION:
+OCSP_basic_add1_nonce                   133	1_1_0	EXIST::FUNCTION:OCSP
+d2i_OCSP_BASICRESP                      134	1_1_0	EXIST::FUNCTION:OCSP
+X509v3_add_ext                          135	1_1_0	EXIST::FUNCTION:
+X509v3_addr_subset                      136	1_1_0	EXIST::FUNCTION:RFC3779
+CRYPTO_strndup                          137	1_1_0	EXIST::FUNCTION:
+OCSP_REQ_CTX_free                       138	1_1_0	EXIST::FUNCTION:OCSP
+X509_STORE_new                          140	1_1_0	EXIST::FUNCTION:
+ASN1_TYPE_free                          141	1_1_0	EXIST::FUNCTION:
+PKCS12_BAGS_new                         142	1_1_0	EXIST::FUNCTION:
+CMAC_CTX_new                            143	1_1_0	EXIST::FUNCTION:CMAC
+ASIdentifierChoice_new                  144	1_1_0	EXIST::FUNCTION:RFC3779
+EVP_PKEY_asn1_set_public                145	1_1_0	EXIST::FUNCTION:
+IDEA_set_decrypt_key                    146	1_1_0	EXIST::FUNCTION:IDEA
+X509_STORE_CTX_set_flags                147	1_1_0	EXIST::FUNCTION:
+BIO_ADDR_rawmake                        148	1_1_0	EXIST::FUNCTION:SOCK
+EVP_PKEY_asn1_set_ctrl                  149	1_1_0	EXIST::FUNCTION:
+EC_POINTs_mul                           150	1_1_0	EXIST::FUNCTION:EC
+ASN1_get_object                         151	1_1_0	EXIST::FUNCTION:
+i2d_IPAddressFamily                     152	1_1_0	EXIST::FUNCTION:RFC3779
+ENGINE_get_ctrl_function                153	1_1_0	EXIST::FUNCTION:ENGINE
+X509_REVOKED_get_ext_count              154	1_1_0	EXIST::FUNCTION:
+BN_is_prime_fasttest_ex                 155	1_1_0	EXIST::FUNCTION:
+ERR_load_PKCS12_strings                 156	1_1_0	EXIST::FUNCTION:
+EVP_sha384                              157	1_1_0	EXIST::FUNCTION:
+i2d_DHparams                            158	1_1_0	EXIST::FUNCTION:DH
+TS_VERIFY_CTX_set_store                 159	1_1_0	EXIST::FUNCTION:TS
+PKCS12_verify_mac                       160	1_1_0	EXIST::FUNCTION:
+X509v3_addr_canonize                    161	1_1_0	EXIST::FUNCTION:RFC3779
+ASN1_item_ex_i2d                        162	1_1_0	EXIST::FUNCTION:
+ENGINE_set_digests                      163	1_1_0	EXIST::FUNCTION:ENGINE
+PEM_ASN1_read_bio                       164	1_1_0	EXIST::FUNCTION:
+CT_POLICY_EVAL_CTX_free                 165	1_1_0	EXIST::FUNCTION:CT
+CMS_RecipientInfo_kari_get0_ctx         166	1_1_0	EXIST::FUNCTION:CMS
+PKCS7_set_attributes                    167	1_1_0	EXIST::FUNCTION:
+d2i_POLICYQUALINFO                      168	1_1_0	EXIST::FUNCTION:
+EVP_MD_type                             170	1_1_0	EXIST::FUNCTION:
+EVP_PKCS82PKEY                          171	1_1_0	EXIST::FUNCTION:
+BN_generate_prime_ex                    172	1_1_0	EXIST::FUNCTION:
+EVP_EncryptInit                         173	1_1_0	EXIST::FUNCTION:
+RAND_OpenSSL                            174	1_1_0	EXIST::FUNCTION:
+BN_uadd                                 175	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_derive_init                    176	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_ASN1_stream               177	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_delete_attr                    178	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_CTX_key_length               179	1_1_0	EXIST::FUNCTION:
+BIO_clear_flags                         180	1_1_0	EXIST::FUNCTION:
+i2d_DISPLAYTEXT                         181	1_1_0	EXIST::FUNCTION:
+OCSP_response_status                    182	1_1_0	EXIST::FUNCTION:OCSP
+i2d_ASN1_PRINTABLESTRING                183	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_set_hostflags         184	1_1_0	EXIST::FUNCTION:
+SCT_get0_log_id                         185	1_1_0	EXIST::FUNCTION:CT
+ASN1_IA5STRING_it                       186	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_IA5STRING_it                       186	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+PEM_write_bio_ECPrivateKey              187	1_1_0	EXIST::FUNCTION:EC
+BN_consttime_swap                       188	1_1_0	EXIST::FUNCTION:
+BIO_f_buffer                            189	1_1_0	EXIST::FUNCTION:
+CMS_SignerInfo_get0_signer_id           190	1_1_0	EXIST::FUNCTION:CMS
+TS_TST_INFO_new                         191	1_1_0	EXIST::FUNCTION:TS
+X509_REQ_check_private_key              192	1_1_0	EXIST::FUNCTION:
+EVP_DigestInit                          193	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_find                      194	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_get_count             195	1_1_0	EXIST::FUNCTION:
+ASN1_BIT_STRING_get_bit                 196	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_cmp                            197	1_1_0	EXIST::FUNCTION:
+d2i_X509_ALGORS                         198	1_1_0	EXIST::FUNCTION:
+EVP_PKEY2PKCS8                          199	1_1_0	EXIST::FUNCTION:
+BN_nist_mod_256                         200	1_1_0	EXIST::FUNCTION:
+OCSP_request_add0_id                    201	1_1_0	EXIST::FUNCTION:OCSP
+EVP_seed_cfb128                         202	1_1_0	EXIST::FUNCTION:SEED
+BASIC_CONSTRAINTS_free                  203	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_flags                        204	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_ECPKParameters            205	1_1_0	EXIST::FUNCTION:EC
+SCT_set_version                         206	1_1_0	EXIST::FUNCTION:CT
+CMS_add1_ReceiptRequest                 207	1_1_0	EXIST::FUNCTION:CMS
+d2i_CRL_DIST_POINTS                     208	1_1_0	EXIST::FUNCTION:
+X509_CRL_INFO_free                      209	1_1_0	EXIST::FUNCTION:
+ERR_load_UI_strings                     210	1_1_0	EXIST::FUNCTION:
+ERR_load_strings                        211	1_1_0	EXIST::FUNCTION:
+RSA_X931_hash_id                        212	1_1_0	EXIST::FUNCTION:RSA
+EC_KEY_set_method                       213	1_1_0	EXIST::FUNCTION:EC
+PEM_write_PKCS8_PRIV_KEY_INFO           214	1_1_0	EXIST::FUNCTION:STDIO
+X509at_get0_data_by_OBJ                 215	1_1_0	EXIST::FUNCTION:
+b2i_PublicKey_bio                       216	1_1_0	EXIST::FUNCTION:DSA
+s2i_ASN1_OCTET_STRING                   217	1_1_0	EXIST::FUNCTION:
+POLICYINFO_it                           218	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+POLICYINFO_it                           218	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+OBJ_create                              219	1_1_0	EXIST::FUNCTION:
+d2i_NOTICEREF                           220	1_1_0	EXIST::FUNCTION:
+BN_get_rfc2409_prime_768                221	1_1_0	EXIST::FUNCTION:
+PEM_read_bio_PKCS8                      222	1_1_0	EXIST::FUNCTION:
+X509_ATTRIBUTE_new                      223	1_1_0	EXIST::FUNCTION:
+ASN1_STRING_TABLE_cleanup               224	1_1_0	EXIST::FUNCTION:
+ASN1_put_eoc                            225	1_1_0	EXIST::FUNCTION:
+EVP_MD_meth_set_input_blocksize         226	1_1_0	EXIST::FUNCTION:
+PKCS12_SAFEBAG_get0_attrs               227	1_1_0	EXIST::FUNCTION:
+PKCS8_get_attr                          228	1_1_0	EXIST::FUNCTION:
+DSAparams_print_fp                      229	1_1_0	EXIST::FUNCTION:DSA,STDIO
+EC_POINT_set_Jprojective_coordinates_GFp 230	1_1_0	EXIST::FUNCTION:EC
+DIST_POINT_NAME_new                     231	1_1_0	EXIST::FUNCTION:
+X509_LOOKUP_file                        232	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_set_decrypt               233	1_1_0	EXIST::FUNCTION:
+EVP_rc2_ecb                             234	1_1_0	EXIST::FUNCTION:RC2
+i2b_PublicKey_bio                       235	1_1_0	EXIST::FUNCTION:DSA
+d2i_ASN1_SET_ANY                        236	1_1_0	EXIST::FUNCTION:
+ASN1_item_i2d                           238	1_1_0	EXIST::FUNCTION:
+OCSP_copy_nonce                         239	1_1_0	EXIST::FUNCTION:OCSP
+OBJ_txt2nid                             240	1_1_0	EXIST::FUNCTION:
+SEED_set_key                            241	1_1_0	EXIST::FUNCTION:SEED
+EC_KEY_clear_flags                      242	1_1_0	EXIST::FUNCTION:EC
+CMS_RecipientInfo_ktri_get0_algs        243	1_1_0	EXIST::FUNCTION:CMS
+i2d_EC_PUBKEY                           244	1_1_0	EXIST::FUNCTION:EC
+MDC2                                    245	1_1_0	EXIST::FUNCTION:MDC2
+BN_clear_free                           246	1_1_0	EXIST::FUNCTION:
+ENGINE_get_pkey_asn1_meths              247	1_1_0	EXIST::FUNCTION:ENGINE
+DSO_merge                               248	1_1_0	EXIST::FUNCTION:
+RSA_get_ex_data                         249	1_1_0	EXIST::FUNCTION:RSA
+EVP_PKEY_meth_get_decrypt               250	1_1_0	EXIST::FUNCTION:
+DES_cfb_encrypt                         251	1_1_0	EXIST::FUNCTION:DES
+CMS_SignerInfo_set1_signer_cert         252	1_1_0	EXIST::FUNCTION:CMS
+X509_CRL_http_nbio                      253	1_1_0	EXIST::FUNCTION:OCSP
+ENGINE_register_all_ciphers             254	1_1_0	EXIST::FUNCTION:ENGINE
+SXNET_new                               255	1_1_0	EXIST::FUNCTION:
+EVP_camellia_256_ctr                    256	1_1_0	EXIST::FUNCTION:CAMELLIA
+d2i_PKCS8_PRIV_KEY_INFO                 257	1_1_0	EXIST::FUNCTION:
+EVP_md2                                 259	1_1_0	EXIST::FUNCTION:MD2
+RC2_ecb_encrypt                         260	1_1_0	EXIST::FUNCTION:RC2
+ENGINE_register_DH                      261	1_1_0	EXIST::FUNCTION:ENGINE
+ASN1_NULL_free                          262	1_1_0	EXIST::FUNCTION:
+EC_KEY_copy                             263	1_1_0	EXIST::FUNCTION:EC
+EVP_des_ede3                            264	1_1_0	EXIST::FUNCTION:DES
+PKCS7_add1_attrib_digest                265	1_1_0	EXIST::FUNCTION:
+EC_POINT_get_affine_coordinates_GFp     266	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC
+EVP_seed_ecb                            267	1_1_0	EXIST::FUNCTION:SEED
+BIO_dgram_sctp_wait_for_dry             268	1_1_0	EXIST::FUNCTION:DGRAM,SCTP
+ASN1_OCTET_STRING_NDEF_it               269	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_OCTET_STRING_NDEF_it               269	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+EVP_PKEY_asn1_get_count                 270	1_1_0	EXIST::FUNCTION:
+WHIRLPOOL_Init                          271	1_1_0	EXIST::FUNCTION:WHIRLPOOL
+EVP_OpenInit                            272	1_1_0	EXIST::FUNCTION:RSA
+OCSP_response_get1_basic                273	1_1_0	EXIST::FUNCTION:OCSP
+CRYPTO_gcm128_tag                       274	1_1_0	EXIST::FUNCTION:
+OCSP_parse_url                          275	1_1_0	EXIST::FUNCTION:OCSP
+UI_get0_test_string                     276	1_1_0	EXIST::FUNCTION:
+CRYPTO_secure_free                      277	1_1_0	EXIST::FUNCTION:
+DSA_print_fp                            278	1_1_0	EXIST::FUNCTION:DSA,STDIO
+X509_get_ext_d2i                        279	1_1_0	EXIST::FUNCTION:
+d2i_PKCS7_ENC_CONTENT                   280	1_1_0	EXIST::FUNCTION:
+BUF_MEM_grow                            281	1_1_0	EXIST::FUNCTION:
+TS_REQ_free                             282	1_1_0	EXIST::FUNCTION:TS
+PEM_read_DHparams                       283	1_1_0	EXIST::FUNCTION:DH,STDIO
+RSA_private_decrypt                     284	1_1_0	EXIST::FUNCTION:RSA
+X509V3_EXT_get_nid                      285	1_1_0	EXIST::FUNCTION:
+BIO_s_log                               286	1_1_0	EXIST::FUNCTION:
+EC_POINT_set_to_infinity                287	1_1_0	EXIST::FUNCTION:EC
+EVP_des_ede_ofb                         288	1_1_0	EXIST::FUNCTION:DES
+ECDH_KDF_X9_62                          289	1_1_0	EXIST::FUNCTION:EC
+ASN1_UNIVERSALSTRING_to_string          290	1_1_0	EXIST::FUNCTION:
+CRYPTO_gcm128_setiv                     291	1_1_0	EXIST::FUNCTION:
+ASN1_PCTX_set_oid_flags                 292	1_1_0	EXIST::FUNCTION:
+d2i_ASN1_INTEGER                        293	1_1_0	EXIST::FUNCTION:
+i2d_PKCS7_ENCRYPT                       294	1_1_0	EXIST::FUNCTION:
+CT_POLICY_EVAL_CTX_set1_issuer          295	1_1_0	EXIST::FUNCTION:CT
+X509_NAME_ENTRY_set                     296	1_1_0	EXIST::FUNCTION:
+PKCS8_set0_pbe                          297	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_DSA_PUBKEY                298	1_1_0	EXIST::FUNCTION:DSA
+PEM_X509_INFO_read_bio                  299	1_1_0	EXIST::FUNCTION:
+EC_GROUP_get0_order                     300	1_1_0	EXIST::FUNCTION:EC
+OCSP_BASICRESP_delete_ext               301	1_1_0	EXIST::FUNCTION:OCSP
+PKCS12_get_attr_gen                     302	1_1_0	EXIST::FUNCTION:
+PKCS12_SAFEBAG_get0_safes               303	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_derive                         304	1_1_0	EXIST::FUNCTION:
+OCSP_BASICRESP_get_ext_by_NID           305	1_1_0	EXIST::FUNCTION:OCSP
+OBJ_dup                                 306	1_1_0	EXIST::FUNCTION:
+CMS_signed_get_attr_count               307	1_1_0	EXIST::FUNCTION:CMS
+EC_get_builtin_curves                   308	1_1_0	EXIST::FUNCTION:EC
+i2d_ASN1_IA5STRING                      309	1_1_0	EXIST::FUNCTION:
+OCSP_check_nonce                        310	1_1_0	EXIST::FUNCTION:OCSP
+X509_STORE_CTX_init                     311	1_1_0	EXIST::FUNCTION:
+OCSP_RESPONSE_free                      312	1_1_0	EXIST::FUNCTION:OCSP
+ENGINE_set_DH                           313	1_1_0	EXIST::FUNCTION:ENGINE
+EVP_CIPHER_CTX_set_flags                314	1_1_0	EXIST::FUNCTION:
+err_free_strings_int                    315	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_PKCS7_stream              316	1_1_0	EXIST::FUNCTION:
+d2i_X509_CERT_AUX                       317	1_1_0	EXIST::FUNCTION:
+UI_process                              318	1_1_0	EXIST::FUNCTION:
+X509_get_subject_name                   319	1_1_0	EXIST::FUNCTION:
+DH_get_1024_160                         320	1_1_0	EXIST::FUNCTION:DH
+i2d_ASN1_UNIVERSALSTRING                321	1_1_0	EXIST::FUNCTION:
+d2i_OCSP_RESPID                         322	1_1_0	EXIST::FUNCTION:OCSP
+BIO_s_accept                            323	1_1_0	EXIST::FUNCTION:SOCK
+EVP_whirlpool                           324	1_1_0	EXIST::FUNCTION:WHIRLPOOL
+OCSP_ONEREQ_get1_ext_d2i                325	1_1_0	EXIST::FUNCTION:OCSP
+d2i_ESS_SIGNING_CERT                    326	1_1_0	EXIST::FUNCTION:TS
+EC_KEY_set_default_method               327	1_1_0	EXIST::FUNCTION:EC
+X509_OBJECT_up_ref_count                328	1_1_0	EXIST::FUNCTION:
+RAND_load_file                          329	1_1_0	EXIST::FUNCTION:
+BIO_ctrl_reset_read_request             330	1_1_0	EXIST::FUNCTION:
+CRYPTO_ccm128_tag                       331	1_1_0	EXIST::FUNCTION:
+BIO_new_dgram_sctp                      332	1_1_0	EXIST::FUNCTION:DGRAM,SCTP
+d2i_RSAPrivateKey_fp                    333	1_1_0	EXIST::FUNCTION:RSA,STDIO
+s2i_ASN1_IA5STRING                      334	1_1_0	EXIST::FUNCTION:
+UI_get_ex_data                          335	1_1_0	EXIST::FUNCTION:
+EVP_EncryptUpdate                       336	1_1_0	EXIST::FUNCTION:
+SRP_create_verifier                     337	1_1_0	EXIST::FUNCTION:SRP
+TS_TST_INFO_print_bio                   338	1_1_0	EXIST::FUNCTION:TS
+X509_NAME_get_index_by_OBJ              339	1_1_0	EXIST::FUNCTION:
+BIO_get_host_ip                         340	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SOCK
+PKCS7_add_certificate                   341	1_1_0	EXIST::FUNCTION:
+TS_REQ_get_ext                          342	1_1_0	EXIST::FUNCTION:TS
+X509_NAME_cmp                           343	1_1_0	EXIST::FUNCTION:
+DIST_POINT_it                           344	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+DIST_POINT_it                           344	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+PEM_read_X509_CRL                       345	1_1_0	EXIST::FUNCTION:STDIO
+OPENSSL_sk_sort                         346	1_1_0	EXIST::FUNCTION:
+CTLOG_STORE_load_file                   347	1_1_0	EXIST::FUNCTION:CT
+ASN1_SEQUENCE_it                        348	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_SEQUENCE_it                        348	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+TS_RESP_CTX_get_tst_info                349	1_1_0	EXIST::FUNCTION:TS
+RC4                                     350	1_1_0	EXIST::FUNCTION:RC4
+PKCS7_stream                            352	1_1_0	EXIST::FUNCTION:
+i2t_ASN1_OBJECT                         353	1_1_0	EXIST::FUNCTION:
+EC_GROUP_get0_generator                 354	1_1_0	EXIST::FUNCTION:EC
+RSA_padding_add_PKCS1_PSS_mgf1          355	1_1_0	EXIST::FUNCTION:RSA
+EVP_MD_meth_set_init                    356	1_1_0	EXIST::FUNCTION:
+X509_get_issuer_name                    357	1_1_0	EXIST::FUNCTION:
+EVP_SignFinal                           358	1_1_0	EXIST::FUNCTION:
+PKCS12_mac_present                      359	1_1_0	EXIST::FUNCTION:
+d2i_PUBKEY_bio                          360	1_1_0	EXIST::FUNCTION:
+BN_asc2bn                               361	1_1_0	EXIST::FUNCTION:
+EVP_desx_cbc                            362	1_1_0	EXIST::FUNCTION:DES
+SXNETID_it                              363	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+SXNETID_it                              363	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+CRYPTO_gcm128_encrypt                   364	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_ctrl_str                   365	1_1_0	EXIST::FUNCTION:
+CMS_signed_add1_attr_by_txt             366	1_1_0	EXIST::FUNCTION:CMS
+i2d_NETSCAPE_SPKAC                      367	1_1_0	EXIST::FUNCTION:
+X509V3_add_value_bool_nf                368	1_1_0	EXIST::FUNCTION:
+ASN1_item_verify                        369	1_1_0	EXIST::FUNCTION:
+SEED_ecb_encrypt                        370	1_1_0	EXIST::FUNCTION:SEED
+X509_PUBKEY_get0_param                  371	1_1_0	EXIST::FUNCTION:
+ASN1_i2d_fp                             372	1_1_0	EXIST::FUNCTION:STDIO
+BIO_new_mem_buf                         373	1_1_0	EXIST::FUNCTION:
+UI_get_input_flags                      374	1_1_0	EXIST::FUNCTION:
+X509V3_EXT_REQ_add_nconf                375	1_1_0	EXIST::FUNCTION:
+X509v3_asid_subset                      376	1_1_0	EXIST::FUNCTION:RFC3779
+RSA_check_key_ex                        377	1_1_0	EXIST::FUNCTION:RSA
+d2i_TS_MSG_IMPRINT_bio                  378	1_1_0	EXIST::FUNCTION:TS
+i2d_ASN1_TYPE                           379	1_1_0	EXIST::FUNCTION:
+EVP_aes_256_wrap_pad                    380	1_1_0	EXIST::FUNCTION:
+CMS_RecipientInfo_kekri_id_cmp          381	1_1_0	EXIST::FUNCTION:CMS
+X509_VERIFY_PARAM_get0_peername         382	1_1_0	EXIST::FUNCTION:
+ASN1_PCTX_get_oid_flags                 383	1_1_0	EXIST::FUNCTION:
+CONF_free                               384	1_1_0	EXIST::FUNCTION:
+DSO_get_filename                        385	1_1_0	EXIST::FUNCTION:
+i2d_ASN1_SEQUENCE_ANY                   387	1_1_0	EXIST::FUNCTION:
+OPENSSL_strlcpy                         388	1_1_0	EXIST::FUNCTION:
+BIO_get_port                            389	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SOCK
+DISPLAYTEXT_free                        390	1_1_0	EXIST::FUNCTION:
+BN_div                                  391	1_1_0	EXIST::FUNCTION:
+RIPEMD160_Update                        392	1_1_0	EXIST::FUNCTION:RMD160
+PEM_write_bio_CMS                       393	1_1_0	EXIST::FUNCTION:CMS
+ASN1_OBJECT_new                         394	1_1_0	EXIST::FUNCTION:
+EVP_des_ede3_cfb8                       395	1_1_0	EXIST::FUNCTION:DES
+BIO_dump_indent_fp                      396	1_1_0	EXIST::FUNCTION:STDIO
+X509_NAME_ENTRY_get_data                397	1_1_0	EXIST::FUNCTION:
+BIO_socket                              398	1_1_0	EXIST::FUNCTION:SOCK
+EVP_PKEY_meth_get_derive                399	1_1_0	EXIST::FUNCTION:
+ASN1_STRING_clear_free                  400	1_1_0	EXIST::FUNCTION:
+d2i_OCSP_REVOKEDINFO                    401	1_1_0	EXIST::FUNCTION:OCSP
+ASN1_STRING_print_ex_fp                 402	1_1_0	EXIST::FUNCTION:STDIO
+PKCS7_SIGNED_new                        403	1_1_0	EXIST::FUNCTION:
+CMS_get0_eContentType                   404	1_1_0	EXIST::FUNCTION:CMS
+HMAC_Final                              405	1_1_0	EXIST::FUNCTION:
+X509_CRL_delete_ext                     406	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_get_ordering                407	1_1_0	EXIST::FUNCTION:TS
+X509_get_extended_key_usage             408	1_1_0	EXIST::FUNCTION:
+ERR_print_errors                        409	1_1_0	EXIST::FUNCTION:
+X509_REVOKED_set_revocationDate         410	1_1_0	EXIST::FUNCTION:
+EVP_CipherFinal_ex                      411	1_1_0	EXIST::FUNCTION:
+d2i_DSA_PUBKEY                          412	1_1_0	EXIST::FUNCTION:DSA
+BN_CTX_get                              413	1_1_0	EXIST::FUNCTION:
+BN_to_montgomery                        414	1_1_0	EXIST::FUNCTION:
+X509_OBJECT_get0_X509_CRL               415	1_1_0	EXIST::FUNCTION:
+EVP_camellia_128_cfb8                   416	1_1_0	EXIST::FUNCTION:CAMELLIA
+EC_KEY_METHOD_free                      417	1_1_0	EXIST::FUNCTION:EC
+TS_TST_INFO_set_policy_id               418	1_1_0	EXIST::FUNCTION:TS
+d2i_EXTENDED_KEY_USAGE                  419	1_1_0	EXIST::FUNCTION:
+ASYNC_unblock_pause                     420	1_1_0	EXIST::FUNCTION:
+i2d_X509_VAL                            421	1_1_0	EXIST::FUNCTION:
+ASN1_SCTX_get_flags                     422	1_1_0	EXIST::FUNCTION:
+RIPEMD160                               423	1_1_0	EXIST::FUNCTION:RMD160
+CRYPTO_ocb128_setiv                     424	1_1_0	EXIST::FUNCTION:OCB
+X509_CRL_digest                         425	1_1_0	EXIST::FUNCTION:
+EVP_aes_128_cbc_hmac_sha1               426	1_1_0	EXIST::FUNCTION:
+ERR_load_CMS_strings                    427	1_1_0	EXIST::FUNCTION:CMS
+EVP_MD_CTX_md                           428	1_1_0	EXIST::FUNCTION:
+X509_REVOKED_get_ext                    429	1_1_0	EXIST::FUNCTION:
+d2i_RSA_PSS_PARAMS                      430	1_1_0	EXIST::FUNCTION:RSA
+USERNOTICE_free                         431	1_1_0	EXIST::FUNCTION:
+MD4_Transform                           432	1_1_0	EXIST::FUNCTION:MD4
+EVP_CIPHER_block_size                   433	1_1_0	EXIST::FUNCTION:
+CERTIFICATEPOLICIES_new                 434	1_1_0	EXIST::FUNCTION:
+BIO_dump_fp                             435	1_1_0	EXIST::FUNCTION:STDIO
+BIO_set_flags                           436	1_1_0	EXIST::FUNCTION:
+BN_is_one                               437	1_1_0	EXIST::FUNCTION:
+TS_CONF_set_def_policy                  438	1_1_0	EXIST::FUNCTION:TS
+DSA_free                                439	1_1_0	EXIST::FUNCTION:DSA
+BN_GENCB_new                            440	1_1_0	EXIST::FUNCTION:
+X509_VAL_new                            441	1_1_0	EXIST::FUNCTION:
+NCONF_load                              442	1_1_0	EXIST::FUNCTION:
+ASN1_put_object                         443	1_1_0	EXIST::FUNCTION:
+d2i_OCSP_RESPONSE                       444	1_1_0	EXIST::FUNCTION:OCSP
+d2i_PublicKey                           445	1_1_0	EXIST::FUNCTION:
+ENGINE_set_ex_data                      446	1_1_0	EXIST::FUNCTION:ENGINE
+X509_get_default_private_dir            447	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_set0_dane                448	1_1_0	EXIST::FUNCTION:
+EVP_des_ecb                             449	1_1_0	EXIST::FUNCTION:DES
+OCSP_resp_get0                          450	1_1_0	EXIST::FUNCTION:OCSP
+RSA_X931_generate_key_ex                452	1_1_0	EXIST::FUNCTION:RSA
+X509_get_serialNumber                   453	1_1_0	EXIST::FUNCTION:
+BIO_sock_should_retry                   454	1_1_0	EXIST::FUNCTION:SOCK
+ENGINE_get_digests                      455	1_1_0	EXIST::FUNCTION:ENGINE
+TS_MSG_IMPRINT_get_algo                 456	1_1_0	EXIST::FUNCTION:TS
+DH_new_method                           457	1_1_0	EXIST::FUNCTION:DH
+BF_ecb_encrypt                          458	1_1_0	EXIST::FUNCTION:BF
+PEM_write_bio_DHparams                  459	1_1_0	EXIST::FUNCTION:DH
+EVP_DigestFinal                         460	1_1_0	EXIST::FUNCTION:
+CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE 461	1_1_0	EXIST::FUNCTION:CT
+X509v3_asid_add_id_or_range             462	1_1_0	EXIST::FUNCTION:RFC3779
+X509_NAME_ENTRY_create_by_NID           463	1_1_0	EXIST::FUNCTION:
+EC_KEY_METHOD_get_init                  464	1_1_0	EXIST::FUNCTION:EC
+ASN1_INTEGER_to_BN                      465	1_1_0	EXIST::FUNCTION:
+OPENSSL_memcmp                          466	1_1_0	EXIST::FUNCTION:
+BUF_MEM_new                             467	1_1_0	EXIST::FUNCTION:
+DSO_set_filename                        468	1_1_0	EXIST::FUNCTION:
+DH_new                                  469	1_1_0	EXIST::FUNCTION:DH
+OCSP_RESPID_free                        470	1_1_0	EXIST::FUNCTION:OCSP
+PKCS5_pbe2_set                          471	1_1_0	EXIST::FUNCTION:
+SCT_set_signature_nid                   473	1_1_0	EXIST::FUNCTION:CT
+i2d_RSA_PUBKEY_fp                       474	1_1_0	EXIST::FUNCTION:RSA,STDIO
+PKCS12_BAGS_it                          475	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS12_BAGS_it                          475	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+X509_pubkey_digest                      476	1_1_0	EXIST::FUNCTION:
+ENGINE_register_all_RSA                 477	1_1_0	EXIST::FUNCTION:ENGINE
+CRYPTO_THREAD_set_local                 478	1_1_0	EXIST::FUNCTION:
+X509_get_default_cert_dir_env           479	1_1_0	EXIST::FUNCTION:
+X509_CRL_sort                           480	1_1_0	EXIST::FUNCTION:
+i2d_RSA_PUBKEY_bio                      481	1_1_0	EXIST::FUNCTION:RSA
+ASN1_T61STRING_free                     482	1_1_0	EXIST::FUNCTION:
+PEM_write_CMS                           483	1_1_0	EXIST::FUNCTION:CMS,STDIO
+OPENSSL_sk_find                         484	1_1_0	EXIST::FUNCTION:
+ENGINE_get_ciphers                      485	1_1_0	EXIST::FUNCTION:ENGINE
+EVP_rc2_ofb                             486	1_1_0	EXIST::FUNCTION:RC2
+EVP_PKEY_set1_RSA                       487	1_1_0	EXIST::FUNCTION:RSA
+CMS_SignerInfo_get0_md_ctx              488	1_1_0	EXIST::FUNCTION:CMS
+X509_STORE_set_trust                    489	1_1_0	EXIST::FUNCTION:
+d2i_POLICYINFO                          490	1_1_0	EXIST::FUNCTION:
+DES_cbc_encrypt                         491	1_1_0	EXIST::FUNCTION:DES
+BN_GF2m_mod_sqr_arr                     492	1_1_0	EXIST::FUNCTION:EC2M
+ASN1_PRINTABLESTRING_it                 493	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_PRINTABLESTRING_it                 493	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+BIO_f_cipher                            494	1_1_0	EXIST::FUNCTION:
+UI_destroy_method                       495	1_1_0	EXIST::FUNCTION:
+BN_get_rfc3526_prime_3072               496	1_1_0	EXIST::FUNCTION:
+X509_INFO_new                           497	1_1_0	EXIST::FUNCTION:
+OCSP_RESPDATA_it                        498	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP
+OCSP_RESPDATA_it                        498	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP
+X509_CRL_print                          499	1_1_0	EXIST::FUNCTION:
+WHIRLPOOL_Update                        500	1_1_0	EXIST::FUNCTION:WHIRLPOOL
+DSA_get_ex_data                         501	1_1_0	EXIST::FUNCTION:DSA
+BN_copy                                 502	1_1_0	EXIST::FUNCTION:
+FIPS_mode_set                           503	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_add0_policy           504	1_1_0	EXIST::FUNCTION:
+PKCS7_cert_from_signer_info             505	1_1_0	EXIST::FUNCTION:
+X509_TRUST_get_trust                    506	1_1_0	EXIST::FUNCTION:
+DES_string_to_key                       507	1_1_0	EXIST::FUNCTION:DES
+ERR_error_string                        508	1_1_0	EXIST::FUNCTION:
+BIO_new_connect                         509	1_1_0	EXIST::FUNCTION:SOCK
+DSA_new_method                          511	1_1_0	EXIST::FUNCTION:DSA
+OCSP_CERTID_new                         512	1_1_0	EXIST::FUNCTION:OCSP
+X509_CRL_get_signature_nid              513	1_1_0	EXIST::FUNCTION:
+X509_policy_level_node_count            514	1_1_0	EXIST::FUNCTION:
+d2i_OCSP_CERTSTATUS                     515	1_1_0	EXIST::FUNCTION:OCSP
+X509V3_add1_i2d                         516	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_set_serial                  517	1_1_0	EXIST::FUNCTION:TS
+OCSP_RESPBYTES_new                      518	1_1_0	EXIST::FUNCTION:OCSP
+OCSP_SINGLERESP_delete_ext              519	1_1_0	EXIST::FUNCTION:OCSP
+EVP_MD_CTX_test_flags                   521	1_1_0	EXIST::FUNCTION:
+X509v3_addr_validate_path               522	1_1_0	EXIST::FUNCTION:RFC3779
+BIO_new_fp                              523	1_1_0	EXIST::FUNCTION:STDIO
+EC_GROUP_set_generator                  524	1_1_0	EXIST::FUNCTION:EC
+CRYPTO_memdup                           525	1_1_0	EXIST::FUNCTION:
+DH_generate_parameters                  526	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_0_9_8,DH
+BN_set_negative                         527	1_1_0	EXIST::FUNCTION:
+i2d_TS_RESP_bio                         528	1_1_0	EXIST::FUNCTION:TS
+ASYNC_WAIT_CTX_set_wait_fd              529	1_1_0	EXIST::FUNCTION:
+ERR_func_error_string                   530	1_1_0	EXIST::FUNCTION:
+ASN1_STRING_data                        531	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0
+X509_CRL_add1_ext_i2d                   532	1_1_0	EXIST::FUNCTION:
+i2d_TS_TST_INFO                         533	1_1_0	EXIST::FUNCTION:TS
+OBJ_sigid_free                          534	1_1_0	EXIST::FUNCTION:
+TS_STATUS_INFO_get0_status              535	1_1_0	EXIST::FUNCTION:TS
+EC_KEY_get_flags                        536	1_1_0	EXIST::FUNCTION:EC
+ASN1_TYPE_cmp                           537	1_1_0	EXIST::FUNCTION:
+i2d_RSAPublicKey                        538	1_1_0	EXIST::FUNCTION:RSA
+EC_GROUP_get_trinomial_basis            539	1_1_0	EXIST::FUNCTION:EC,EC2M
+BIO_ADDRINFO_protocol                   540	1_1_0	EXIST::FUNCTION:SOCK
+i2d_PBKDF2PARAM                         541	1_1_0	EXIST::FUNCTION:
+ENGINE_unregister_RAND                  542	1_1_0	EXIST::FUNCTION:ENGINE
+PEM_write_bio_RSAPrivateKey             543	1_1_0	EXIST::FUNCTION:RSA
+CONF_get_number                         544	1_1_0	EXIST::FUNCTION:
+X509_EXTENSION_get_object               545	1_1_0	EXIST::FUNCTION:
+X509_EXTENSIONS_it                      546	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_EXTENSIONS_it                      546	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+EC_POINT_set_compressed_coordinates_GF2m 547	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC,EC2M
+RSA_sign_ASN1_OCTET_STRING              548	1_1_0	EXIST::FUNCTION:RSA
+d2i_X509_CRL_fp                         549	1_1_0	EXIST::FUNCTION:STDIO
+i2d_RSA_PUBKEY                          550	1_1_0	EXIST::FUNCTION:RSA
+EVP_aes_128_ccm                         551	1_1_0	EXIST::FUNCTION:
+ECParameters_print                      552	1_1_0	EXIST::FUNCTION:EC
+OCSP_SINGLERESP_get1_ext_d2i            553	1_1_0	EXIST::FUNCTION:OCSP
+RAND_status                             554	1_1_0	EXIST::FUNCTION:
+EVP_ripemd160                           555	1_1_0	EXIST::FUNCTION:RMD160
+EVP_MD_meth_set_final                   556	1_1_0	EXIST::FUNCTION:
+ENGINE_get_cmd_defns                    557	1_1_0	EXIST::FUNCTION:ENGINE
+d2i_PKEY_USAGE_PERIOD                   558	1_1_0	EXIST::FUNCTION:
+RSAPublicKey_dup                        559	1_1_0	EXIST::FUNCTION:RSA
+RAND_write_file                         560	1_1_0	EXIST::FUNCTION:
+BN_GF2m_mod                             561	1_1_0	EXIST::FUNCTION:EC2M
+EC_GROUP_get_pentanomial_basis          562	1_1_0	EXIST::FUNCTION:EC,EC2M
+X509_CINF_free                          563	1_1_0	EXIST::FUNCTION:
+X509_EXTENSION_free                     564	1_1_0	EXIST::FUNCTION:
+EVP_DigestSignInit                      565	1_1_0	EXIST::FUNCTION:
+CT_POLICY_EVAL_CTX_get0_issuer          566	1_1_0	EXIST::FUNCTION:CT
+TLS_FEATURE_new                         567	1_1_0	EXIST::FUNCTION:
+RSA_get_default_method                  568	1_1_0	EXIST::FUNCTION:RSA
+CRYPTO_cts128_encrypt_block             569	1_1_0	EXIST::FUNCTION:
+ASN1_digest                             570	1_1_0	EXIST::FUNCTION:
+ERR_load_X509V3_strings                 571	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_get_cleanup               572	1_1_0	EXIST::FUNCTION:
+d2i_X509                                574	1_1_0	EXIST::FUNCTION:
+a2i_ASN1_STRING                         575	1_1_0	EXIST::FUNCTION:
+EC_GROUP_get_mont_data                  576	1_1_0	EXIST::FUNCTION:EC
+CMAC_CTX_copy                           577	1_1_0	EXIST::FUNCTION:CMAC
+EVP_camellia_128_cfb128                 579	1_1_0	EXIST::FUNCTION:CAMELLIA
+DH_compute_key_padded                   580	1_1_0	EXIST::FUNCTION:DH
+ERR_load_CONF_strings                   581	1_1_0	EXIST::FUNCTION:
+ESS_ISSUER_SERIAL_dup                   582	1_1_0	EXIST::FUNCTION:TS
+BN_GF2m_mod_exp_arr                     583	1_1_0	EXIST::FUNCTION:EC2M
+ASN1_UTF8STRING_free                    584	1_1_0	EXIST::FUNCTION:
+BN_X931_generate_prime_ex               585	1_1_0	EXIST::FUNCTION:
+ENGINE_get_RAND                         586	1_1_0	EXIST::FUNCTION:ENGINE
+EVP_DecryptInit                         587	1_1_0	EXIST::FUNCTION:
+BN_bin2bn                               588	1_1_0	EXIST::FUNCTION:
+X509_subject_name_hash                  589	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_meth_set_flags               590	1_1_0	EXIST::FUNCTION:
+TS_CONF_set_clock_precision_digits      591	1_1_0	EXIST::FUNCTION:TS
+ASN1_TYPE_set                           592	1_1_0	EXIST::FUNCTION:
+i2d_PKCS8_PRIV_KEY_INFO                 593	1_1_0	EXIST::FUNCTION:
+i2d_PKCS7_bio                           594	1_1_0	EXIST::FUNCTION:
+EVP_MD_meth_get_copy                    595	1_1_0	EXIST::FUNCTION:
+RAND_query_egd_bytes                    596	1_1_0	EXIST::FUNCTION:EGD
+i2d_ASN1_PRINTABLE                      597	1_1_0	EXIST::FUNCTION:
+ENGINE_cmd_is_executable                598	1_1_0	EXIST::FUNCTION:ENGINE
+BIO_puts                                599	1_1_0	EXIST::FUNCTION:
+RSAPublicKey_it                         601	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RSA
+RSAPublicKey_it                         601	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RSA
+ISSUING_DIST_POINT_new                  602	1_1_0	EXIST::FUNCTION:
+X509_VAL_it                             603	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_VAL_it                             603	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+EVP_DigestVerifyInit                    604	1_1_0	EXIST::FUNCTION:
+i2d_IPAddressChoice                     605	1_1_0	EXIST::FUNCTION:RFC3779
+EVP_md5                                 606	1_1_0	EXIST::FUNCTION:MD5
+ASRange_new                             607	1_1_0	EXIST::FUNCTION:RFC3779
+BN_GF2m_mod_mul_arr                     608	1_1_0	EXIST::FUNCTION:EC2M
+d2i_RSA_OAEP_PARAMS                     609	1_1_0	EXIST::FUNCTION:RSA
+BIO_s_bio                               610	1_1_0	EXIST::FUNCTION:
+OBJ_NAME_add                            611	1_1_0	EXIST::FUNCTION:
+BIO_fd_non_fatal_error                  612	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_set_type                       613	1_1_0	EXIST::FUNCTION:
+ENGINE_get_next                         614	1_1_0	EXIST::FUNCTION:ENGINE
+BN_is_negative                          615	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_get_attr_count                 616	1_1_0	EXIST::FUNCTION:
+X509_REVOKED_get_ext_by_critical        617	1_1_0	EXIST::FUNCTION:
+X509at_get_attr                         618	1_1_0	EXIST::FUNCTION:
+X509_PUBKEY_it                          619	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_PUBKEY_it                          619	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+DES_ede3_ofb64_encrypt                  620	1_1_0	EXIST::FUNCTION:DES
+EC_KEY_METHOD_get_compute_key           621	1_1_0	EXIST::FUNCTION:EC
+RC2_cfb64_encrypt                       622	1_1_0	EXIST::FUNCTION:RC2
+EVP_EncryptFinal_ex                     623	1_1_0	EXIST::FUNCTION:
+ERR_load_RSA_strings                    624	1_1_0	EXIST::FUNCTION:
+CRYPTO_secure_malloc_done               625	1_1_0	EXIST::FUNCTION:
+RSA_OAEP_PARAMS_new                     626	1_1_0	EXIST::FUNCTION:RSA
+X509_NAME_free                          627	1_1_0	EXIST::FUNCTION:
+PKCS12_set_mac                          628	1_1_0	EXIST::FUNCTION:
+UI_get0_result_string                   629	1_1_0	EXIST::FUNCTION:
+TS_RESP_CTX_add_policy                  630	1_1_0	EXIST::FUNCTION:TS
+X509_REQ_dup                            631	1_1_0	EXIST::FUNCTION:
+d2i_DSA_PUBKEY_fp                       633	1_1_0	EXIST::FUNCTION:DSA,STDIO
+OCSP_REQ_CTX_nbio_d2i                   634	1_1_0	EXIST::FUNCTION:OCSP
+d2i_X509_REQ_fp                         635	1_1_0	EXIST::FUNCTION:STDIO
+DH_OpenSSL                              636	1_1_0	EXIST::FUNCTION:DH
+BN_get_rfc3526_prime_8192               637	1_1_0	EXIST::FUNCTION:
+X509_REVOKED_it                         638	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_REVOKED_it                         638	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+CRYPTO_THREAD_write_lock                639	1_1_0	EXIST::FUNCTION:
+X509V3_NAME_from_section                640	1_1_0	EXIST::FUNCTION:
+EC_POINT_set_compressed_coordinates_GFp 641	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC
+OCSP_SINGLERESP_get0_id                 642	1_1_0	EXIST::FUNCTION:OCSP
+UI_add_info_string                      643	1_1_0	EXIST::FUNCTION:
+OBJ_NAME_remove                         644	1_1_0	EXIST::FUNCTION:
+UI_get_method                           645	1_1_0	EXIST::FUNCTION:
+CONF_modules_unload                     646	1_1_0	EXIST::FUNCTION:
+CRYPTO_ccm128_encrypt_ccm64             647	1_1_0	EXIST::FUNCTION:
+CRYPTO_secure_malloc_init               648	1_1_0	EXIST::FUNCTION:
+DSAparams_dup                           649	1_1_0	EXIST::FUNCTION:DSA
+PKCS8_PRIV_KEY_INFO_new                 650	1_1_0	EXIST::FUNCTION:
+TS_RESP_verify_token                    652	1_1_0	EXIST::FUNCTION:TS
+PEM_read_bio_CMS                        653	1_1_0	EXIST::FUNCTION:CMS
+PEM_get_EVP_CIPHER_INFO                 654	1_1_0	EXIST::FUNCTION:
+X509V3_EXT_print                        655	1_1_0	EXIST::FUNCTION:
+i2d_OCSP_SINGLERESP                     656	1_1_0	EXIST::FUNCTION:OCSP
+ESS_CERT_ID_free                        657	1_1_0	EXIST::FUNCTION:TS
+PEM_SignInit                            658	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_CTX_set_key_length           659	1_1_0	EXIST::FUNCTION:
+X509_delete_ext                         660	1_1_0	EXIST::FUNCTION:
+OCSP_resp_get0_produced_at              661	1_1_0	EXIST::FUNCTION:OCSP
+IDEA_encrypt                            662	1_1_0	EXIST::FUNCTION:IDEA
+CRYPTO_nistcts128_encrypt_block         663	1_1_0	EXIST::FUNCTION:
+EVP_MD_do_all                           664	1_1_0	EXIST::FUNCTION:
+EC_KEY_oct2priv                         665	1_1_0	EXIST::FUNCTION:EC
+CONF_parse_list                         666	1_1_0	EXIST::FUNCTION:
+ENGINE_set_table_flags                  667	1_1_0	EXIST::FUNCTION:ENGINE
+EVP_MD_meth_get_ctrl                    668	1_1_0	EXIST::FUNCTION:
+ASN1_TYPE_get_int_octetstring           669	1_1_0	EXIST::FUNCTION:
+PKCS5_pbe_set0_algor                    670	1_1_0	EXIST::FUNCTION:
+ENGINE_get_table_flags                  671	1_1_0	EXIST::FUNCTION:ENGINE
+PKCS12_MAC_DATA_new                     672	1_1_0	EXIST::FUNCTION:
+X509_chain_up_ref                       673	1_1_0	EXIST::FUNCTION:
+OCSP_REQINFO_it                         674	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP
+OCSP_REQINFO_it                         674	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP
+PKCS12_add_localkeyid                   675	1_1_0	EXIST::FUNCTION:
+PKCS12_SAFEBAG_get0_type                676	1_1_0	EXIST::FUNCTION:
+X509_TRUST_set_default                  677	1_1_0	EXIST::FUNCTION:
+TXT_DB_read                             678	1_1_0	EXIST::FUNCTION:
+BN_sub                                  679	1_1_0	EXIST::FUNCTION:
+ASRange_free                            680	1_1_0	EXIST::FUNCTION:RFC3779
+EVP_aes_192_cfb8                        681	1_1_0	EXIST::FUNCTION:
+DSO_global_lookup                       682	1_1_0	EXIST::FUNCTION:
+PKCS7_SIGNER_INFO_it                    683	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS7_SIGNER_INFO_it                    683	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+CRYPTO_ocb128_copy_ctx                  684	1_1_0	EXIST::FUNCTION:OCB
+TS_REQ_get_ext_d2i                      685	1_1_0	EXIST::FUNCTION:TS
+AES_ige_encrypt                         686	1_1_0	EXIST::FUNCTION:
+d2i_SXNET                               687	1_1_0	EXIST::FUNCTION:
+CTLOG_get0_log_id                       688	1_1_0	EXIST::FUNCTION:CT
+CMS_RecipientInfo_ktri_get0_signer_id   689	1_1_0	EXIST::FUNCTION:CMS
+OCSP_REQUEST_add1_ext_i2d               690	1_1_0	EXIST::FUNCTION:OCSP
+EVP_PBE_CipherInit                      691	1_1_0	EXIST::FUNCTION:
+DSA_dup_DH                              692	1_1_0	EXIST::FUNCTION:DH,DSA
+CONF_imodule_get_value                  693	1_1_0	EXIST::FUNCTION:
+OCSP_id_issuer_cmp                      694	1_1_0	EXIST::FUNCTION:OCSP
+ASN1_INTEGER_free                       695	1_1_0	EXIST::FUNCTION:
+BN_get0_nist_prime_224                  696	1_1_0	EXIST::FUNCTION:
+OPENSSL_isservice                       697	1_1_0	EXIST::FUNCTION:
+DH_compute_key                          698	1_1_0	EXIST::FUNCTION:DH
+TS_RESP_CTX_set_signer_key              699	1_1_0	EXIST::FUNCTION:TS
+i2d_DSAPrivateKey_bio                   700	1_1_0	EXIST::FUNCTION:DSA
+ASN1_item_d2i                           702	1_1_0	EXIST::FUNCTION:
+BIO_int_ctrl                            703	1_1_0	EXIST::FUNCTION:
+CMS_ReceiptRequest_it                   704	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:CMS
+CMS_ReceiptRequest_it                   704	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:CMS
+X509_ATTRIBUTE_get0_type                705	1_1_0	EXIST::FUNCTION:
+EVP_MD_meth_set_copy                    706	1_1_0	EXIST::FUNCTION:
+d2i_ASN1_ENUMERATED                     707	1_1_0	EXIST::FUNCTION:
+d2i_ASIdOrRange                         708	1_1_0	EXIST::FUNCTION:RFC3779
+i2s_ASN1_OCTET_STRING                   709	1_1_0	EXIST::FUNCTION:
+X509_add1_reject_object                 710	1_1_0	EXIST::FUNCTION:
+ERR_set_mark                            711	1_1_0	EXIST::FUNCTION:
+d2i_ASN1_VISIBLESTRING                  712	1_1_0	EXIST::FUNCTION:
+X509_NAME_ENTRY_dup                     714	1_1_0	EXIST::FUNCTION:
+X509_certificate_type                   715	1_1_0	EXIST::FUNCTION:
+PKCS7_add_signature                     716	1_1_0	EXIST::FUNCTION:
+OBJ_ln2nid                              717	1_1_0	EXIST::FUNCTION:
+CRYPTO_128_unwrap                       718	1_1_0	EXIST::FUNCTION:
+BIO_new_PKCS7                           719	1_1_0	EXIST::FUNCTION:
+UI_get0_user_data                       720	1_1_0	EXIST::FUNCTION:
+TS_RESP_get_token                       721	1_1_0	EXIST::FUNCTION:TS
+OCSP_RESPID_new                         722	1_1_0	EXIST::FUNCTION:OCSP
+ASN1_SET_ANY_it                         723	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_SET_ANY_it                         723	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+d2i_TS_RESP_bio                         724	1_1_0	EXIST::FUNCTION:TS
+PEM_write_X509_REQ                      725	1_1_0	EXIST::FUNCTION:STDIO
+BIO_snprintf                            726	1_1_0	EXIST::FUNCTION:
+EC_POINT_hex2point                      727	1_1_0	EXIST::FUNCTION:EC
+X509v3_get_ext_by_critical              728	1_1_0	EXIST::FUNCTION:
+ENGINE_get_default_RSA                  729	1_1_0	EXIST::FUNCTION:ENGINE
+DSA_sign_setup                          730	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_2_0,DSA
+OPENSSL_sk_new_null                     731	1_1_0	EXIST::FUNCTION:
+PEM_read_PKCS8                          732	1_1_0	EXIST::FUNCTION:STDIO
+BN_mod_sqr                              733	1_1_0	EXIST::FUNCTION:
+CAST_ofb64_encrypt                      734	1_1_0	EXIST::FUNCTION:CAST
+TXT_DB_write                            735	1_1_0	EXIST::FUNCTION:
+OCSP_REQUEST_get1_ext_d2i               736	1_1_0	EXIST::FUNCTION:OCSP
+CMS_unsigned_add1_attr_by_NID           737	1_1_0	EXIST::FUNCTION:CMS
+BN_mod_exp_mont                         738	1_1_0	EXIST::FUNCTION:
+d2i_DHxparams                           739	1_1_0	EXIST::FUNCTION:DH
+DH_size                                 740	1_1_0	EXIST::FUNCTION:DH
+CONF_imodule_get_name                   741	1_1_0	EXIST::FUNCTION:
+ENGINE_get_pkey_meth_engine             742	1_1_0	EXIST::FUNCTION:ENGINE
+OCSP_BASICRESP_free                     743	1_1_0	EXIST::FUNCTION:OCSP
+BN_set_params                           744	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_0_9_8
+BN_add                                  745	1_1_0	EXIST::FUNCTION:
+OPENSSL_sk_free                         746	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_get_ext_d2i                 747	1_1_0	EXIST::FUNCTION:TS
+RSA_check_key                           748	1_1_0	EXIST::FUNCTION:RSA
+TS_MSG_IMPRINT_set_algo                 749	1_1_0	EXIST::FUNCTION:TS
+BN_nist_mod_521                         750	1_1_0	EXIST::FUNCTION:
+CRYPTO_THREAD_get_local                 751	1_1_0	EXIST::FUNCTION:
+PKCS7_to_TS_TST_INFO                    752	1_1_0	EXIST::FUNCTION:TS
+X509_STORE_CTX_new                      753	1_1_0	EXIST::FUNCTION:
+CTLOG_STORE_new                         754	1_1_0	EXIST::FUNCTION:CT
+EVP_CIPHER_meth_set_cleanup             755	1_1_0	EXIST::FUNCTION:
+d2i_PKCS12_SAFEBAG                      756	1_1_0	EXIST::FUNCTION:
+EVP_MD_pkey_type                        757	1_1_0	EXIST::FUNCTION:
+X509_policy_node_get0_qualifiers        758	1_1_0	EXIST::FUNCTION:
+OCSP_cert_status_str                    759	1_1_0	EXIST::FUNCTION:OCSP
+EVP_MD_meth_get_flags                   760	1_1_0	EXIST::FUNCTION:
+ASN1_ENUMERATED_set                     761	1_1_0	EXIST::FUNCTION:
+UI_UTIL_read_pw                         762	1_1_0	EXIST::FUNCTION:
+PKCS7_ENC_CONTENT_free                  763	1_1_0	EXIST::FUNCTION:
+CMS_RecipientInfo_type                  764	1_1_0	EXIST::FUNCTION:CMS
+OCSP_BASICRESP_get_ext                  765	1_1_0	EXIST::FUNCTION:OCSP
+BN_lebin2bn                             766	1_1_0	EXIST::FUNCTION:
+AES_decrypt                             767	1_1_0	EXIST::FUNCTION:
+BIO_fd_should_retry                     768	1_1_0	EXIST::FUNCTION:
+ASN1_STRING_new                         769	1_1_0	EXIST::FUNCTION:
+ENGINE_init                             770	1_1_0	EXIST::FUNCTION:ENGINE
+TS_RESP_CTX_add_flags                   771	1_1_0	EXIST::FUNCTION:TS
+BIO_gethostbyname                       772	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SOCK
+X509V3_EXT_add                          773	1_1_0	EXIST::FUNCTION:
+UI_add_verify_string                    774	1_1_0	EXIST::FUNCTION:
+EVP_rc5_32_12_16_cfb64                  775	1_1_0	EXIST::FUNCTION:RC5
+PKCS7_dataVerify                        776	1_1_0	EXIST::FUNCTION:
+PKCS7_SIGNER_INFO_free                  777	1_1_0	EXIST::FUNCTION:
+PKCS7_add_attrib_smimecap               778	1_1_0	EXIST::FUNCTION:
+ERR_peek_last_error_line_data           779	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_set_sign                  780	1_1_0	EXIST::FUNCTION:
+ASN1_i2d_bio                            781	1_1_0	EXIST::FUNCTION:
+DSA_verify                              782	1_1_0	EXIST::FUNCTION:DSA
+i2a_ASN1_OBJECT                         783	1_1_0	EXIST::FUNCTION:
+i2d_PKEY_USAGE_PERIOD                   784	1_1_0	EXIST::FUNCTION:
+DSA_new                                 785	1_1_0	EXIST::FUNCTION:DSA
+PEM_read_bio_X509_CRL                   786	1_1_0	EXIST::FUNCTION:
+PKCS7_dataDecode                        787	1_1_0	EXIST::FUNCTION:
+DSA_up_ref                              788	1_1_0	EXIST::FUNCTION:DSA
+EVP_DecryptInit_ex                      789	1_1_0	EXIST::FUNCTION:
+CONF_get1_default_config_file           790	1_1_0	EXIST::FUNCTION:
+CRYPTO_ocb128_encrypt                   791	1_1_0	EXIST::FUNCTION:OCB
+EXTENDED_KEY_USAGE_new                  792	1_1_0	EXIST::FUNCTION:
+EVP_EncryptFinal                        793	1_1_0	EXIST::FUNCTION:
+PEM_write_ECPrivateKey                  794	1_1_0	EXIST::FUNCTION:EC,STDIO
+EVP_CIPHER_meth_set_get_asn1_params     796	1_1_0	EXIST::FUNCTION:
+PKCS7_dataInit                          797	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_set_app_data               798	1_1_0	EXIST::FUNCTION:
+a2i_GENERAL_NAME                        799	1_1_0	EXIST::FUNCTION:
+SXNETID_new                             800	1_1_0	EXIST::FUNCTION:
+RC4_options                             801	1_1_0	EXIST::FUNCTION:RC4
+BIO_f_null                              802	1_1_0	EXIST::FUNCTION:
+EC_GROUP_set_curve_name                 803	1_1_0	EXIST::FUNCTION:EC
+d2i_PBE2PARAM                           804	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_security_bits                  805	1_1_0	EXIST::FUNCTION:
+PKCS12_unpack_p7encdata                 806	1_1_0	EXIST::FUNCTION:
+X509V3_EXT_i2d                          807	1_1_0	EXIST::FUNCTION:
+X509V3_get_value_bool                   808	1_1_0	EXIST::FUNCTION:
+X509_verify_cert_error_string           809	1_1_0	EXIST::FUNCTION:
+d2i_X509_PUBKEY                         810	1_1_0	EXIST::FUNCTION:
+i2a_ASN1_ENUMERATED                     811	1_1_0	EXIST::FUNCTION:
+PKCS7_ISSUER_AND_SERIAL_new             812	1_1_0	EXIST::FUNCTION:
+d2i_USERNOTICE                          813	1_1_0	EXIST::FUNCTION:
+X509_cmp                                814	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_set1_EC_KEY                    815	1_1_0	EXIST::FUNCTION:EC
+ECPKParameters_print_fp                 816	1_1_0	EXIST::FUNCTION:EC,STDIO
+GENERAL_SUBTREE_free                    817	1_1_0	EXIST::FUNCTION:
+RSA_blinding_off                        818	1_1_0	EXIST::FUNCTION:RSA
+i2d_OCSP_REVOKEDINFO                    819	1_1_0	EXIST::FUNCTION:OCSP
+X509V3_add_standard_extensions          820	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_RSA_PUBKEY                821	1_1_0	EXIST::FUNCTION:RSA
+i2d_ASN1_UTF8STRING                     822	1_1_0	EXIST::FUNCTION:
+TS_REQ_delete_ext                       823	1_1_0	EXIST::FUNCTION:TS
+PKCS7_DIGEST_free                       824	1_1_0	EXIST::FUNCTION:
+OBJ_nid2ln                              825	1_1_0	EXIST::FUNCTION:
+COMP_CTX_new                            826	1_1_0	EXIST::FUNCTION:COMP
+BIO_ADDR_family                         827	1_1_0	EXIST::FUNCTION:SOCK
+OCSP_RESPONSE_it                        828	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP
+OCSP_RESPONSE_it                        828	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP
+BIO_ADDRINFO_socktype                   829	1_1_0	EXIST::FUNCTION:SOCK
+d2i_X509_REQ_bio                        830	1_1_0	EXIST::FUNCTION:
+EVP_PBE_cleanup                         831	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get0_current_crl         832	1_1_0	EXIST::FUNCTION:
+CMS_get0_SignerInfos                    833	1_1_0	EXIST::FUNCTION:CMS
+EVP_PKEY_paramgen                       834	1_1_0	EXIST::FUNCTION:
+PEM_write_PKCS8PrivateKey_nid           835	1_1_0	EXIST::FUNCTION:STDIO
+PKCS7_ATTR_VERIFY_it                    836	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS7_ATTR_VERIFY_it                    836	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+OCSP_response_status_str                837	1_1_0	EXIST::FUNCTION:OCSP
+CRYPTO_gcm128_new                       838	1_1_0	EXIST::FUNCTION:
+SMIME_read_PKCS7                        839	1_1_0	EXIST::FUNCTION:
+EC_GROUP_copy                           840	1_1_0	EXIST::FUNCTION:EC
+ENGINE_set_ciphers                      841	1_1_0	EXIST::FUNCTION:ENGINE
+OPENSSL_LH_doall_arg                    842	1_1_0	EXIST::FUNCTION:
+OCSP_REQUEST_get_ext_by_NID             843	1_1_0	EXIST::FUNCTION:OCSP
+X509_REQ_get_attr_by_NID                844	1_1_0	EXIST::FUNCTION:
+PBE2PARAM_new                           845	1_1_0	EXIST::FUNCTION:
+DES_ecb_encrypt                         846	1_1_0	EXIST::FUNCTION:DES
+EVP_camellia_256_ecb                    847	1_1_0	EXIST::FUNCTION:CAMELLIA
+PEM_read_RSA_PUBKEY                     848	1_1_0	EXIST::FUNCTION:RSA,STDIO
+d2i_NETSCAPE_SPKAC                      849	1_1_0	EXIST::FUNCTION:
+ASN1_TIME_check                         851	1_1_0	EXIST::FUNCTION:
+PKCS7_DIGEST_new                        852	1_1_0	EXIST::FUNCTION:
+i2d_TS_TST_INFO_fp                      853	1_1_0	EXIST::FUNCTION:STDIO,TS
+d2i_PKCS8_fp                            854	1_1_0	EXIST::FUNCTION:STDIO
+EVP_PKEY_keygen                         855	1_1_0	EXIST::FUNCTION:
+X509_CRL_dup                            856	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_get_cb                     857	1_1_0	EXIST::FUNCTION:
+X509_STORE_free                         858	1_1_0	EXIST::FUNCTION:
+ECDSA_sign_ex                           859	1_1_0	EXIST::FUNCTION:EC
+TXT_DB_insert                           860	1_1_0	EXIST::FUNCTION:
+EC_POINTs_make_affine                   861	1_1_0	EXIST::FUNCTION:EC
+RSA_padding_add_PKCS1_PSS               862	1_1_0	EXIST::FUNCTION:RSA
+BF_options                              863	1_1_0	EXIST::FUNCTION:BF
+OCSP_BASICRESP_it                       864	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP
+OCSP_BASICRESP_it                       864	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP
+X509_VERIFY_PARAM_get0_name             865	1_1_0	EXIST::FUNCTION:
+TS_RESP_CTX_set_signer_digest           866	1_1_0	EXIST::FUNCTION:TS
+X509_VERIFY_PARAM_set1_email            867	1_1_0	EXIST::FUNCTION:
+BIO_sock_error                          868	1_1_0	EXIST::FUNCTION:SOCK
+RSA_set_default_method                  869	1_1_0	EXIST::FUNCTION:RSA
+BN_GF2m_mod_sqrt_arr                    870	1_1_0	EXIST::FUNCTION:EC2M
+X509_get0_extensions                    871	1_1_0	EXIST::FUNCTION:
+TS_STATUS_INFO_set_status               872	1_1_0	EXIST::FUNCTION:TS
+RSA_verify                              873	1_1_0	EXIST::FUNCTION:RSA
+ASN1_FBOOLEAN_it                        874	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_FBOOLEAN_it                        874	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+d2i_ASN1_TIME                           875	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_get_signctx               876	1_1_0	EXIST::FUNCTION:
+EC_KEY_METHOD_set_compute_key           877	1_1_0	EXIST::FUNCTION:EC
+X509_REQ_INFO_free                      878	1_1_0	EXIST::FUNCTION:
+CMS_ReceiptRequest_create0              879	1_1_0	EXIST::FUNCTION:CMS
+EVP_MD_meth_set_cleanup                 880	1_1_0	EXIST::FUNCTION:
+EVP_aes_128_xts                         881	1_1_0	EXIST::FUNCTION:
+TS_RESP_verify_signature                883	1_1_0	EXIST::FUNCTION:TS
+ENGINE_set_pkey_meths                   884	1_1_0	EXIST::FUNCTION:ENGINE
+CMS_EncryptedData_decrypt               885	1_1_0	EXIST::FUNCTION:CMS
+CONF_module_add                         886	1_1_0	EXIST::FUNCTION:
+ASN1_UTCTIME_print                      887	1_1_0	EXIST::FUNCTION:
+X509_REQ_verify                         888	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_set_purpose           889	1_1_0	EXIST::FUNCTION:
+i2d_TS_MSG_IMPRINT_bio                  890	1_1_0	EXIST::FUNCTION:TS
+X509_EXTENSION_set_object               891	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_CTX_get_app_data             892	1_1_0	EXIST::FUNCTION:
+CRL_DIST_POINTS_it                      893	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+CRL_DIST_POINTS_it                      893	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+DIRECTORYSTRING_new                     894	1_1_0	EXIST::FUNCTION:
+ERR_load_ASYNC_strings                  895	1_1_0	EXIST::FUNCTION:
+EVP_bf_cfb64                            896	1_1_0	EXIST::FUNCTION:BF
+PKCS7_sign_add_signer                   897	1_1_0	EXIST::FUNCTION:
+X509_print_ex                           898	1_1_0	EXIST::FUNCTION:
+PKCS7_add_recipient                     899	1_1_0	EXIST::FUNCTION:
+OCSP_SINGLERESP_add_ext                 900	1_1_0	EXIST::FUNCTION:OCSP
+d2i_X509_SIG                            901	1_1_0	EXIST::FUNCTION:
+X509_NAME_set                           902	1_1_0	EXIST::FUNCTION:
+OPENSSL_sk_pop                          903	1_1_0	EXIST::FUNCTION:
+ENGINE_register_ciphers                 904	1_1_0	EXIST::FUNCTION:ENGINE
+PKCS5_pbe2_set_iv                       905	1_1_0	EXIST::FUNCTION:
+ASN1_add_stable_module                  906	1_1_0	EXIST::FUNCTION:
+EVP_camellia_128_cbc                    907	1_1_0	EXIST::FUNCTION:CAMELLIA
+COMP_zlib                               908	1_1_0	EXIST::FUNCTION:COMP
+EVP_read_pw_string                      909	1_1_0	EXIST::FUNCTION:
+i2d_ASN1_NULL                           910	1_1_0	EXIST::FUNCTION:
+DES_encrypt1                            911	1_1_0	EXIST::FUNCTION:DES
+BN_mod_lshift1_quick                    912	1_1_0	EXIST::FUNCTION:
+BN_get_rfc3526_prime_6144               913	1_1_0	EXIST::FUNCTION:
+OBJ_obj2txt                             914	1_1_0	EXIST::FUNCTION:
+UI_set_result                           915	1_1_0	EXIST::FUNCTION:
+EVP_EncodeUpdate                        916	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_X509_CRL                  917	1_1_0	EXIST::FUNCTION:
+BN_cmp                                  918	1_1_0	EXIST::FUNCTION:
+CT_POLICY_EVAL_CTX_get0_log_store       919	1_1_0	EXIST::FUNCTION:CT
+CONF_set_default_method                 920	1_1_0	EXIST::FUNCTION:
+ASN1_PCTX_get_nm_flags                  921	1_1_0	EXIST::FUNCTION:
+X509_add1_ext_i2d                       922	1_1_0	EXIST::FUNCTION:
+i2d_PKCS7_RECIP_INFO                    924	1_1_0	EXIST::FUNCTION:
+PKCS1_MGF1                              925	1_1_0	EXIST::FUNCTION:RSA
+BIO_vsnprintf                           926	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get0_current_issuer      927	1_1_0	EXIST::FUNCTION:
+CRYPTO_secure_malloc_initialized        928	1_1_0	EXIST::FUNCTION:
+o2i_SCT_LIST                            929	1_1_0	EXIST::FUNCTION:CT
+ASN1_PCTX_get_cert_flags                930	1_1_0	EXIST::FUNCTION:
+X509at_add1_attr_by_NID                 931	1_1_0	EXIST::FUNCTION:
+DHparams_dup                            932	1_1_0	EXIST::FUNCTION:DH
+X509_get_ext                            933	1_1_0	EXIST::FUNCTION:
+X509_issuer_and_serial_hash             934	1_1_0	EXIST::FUNCTION:
+ASN1_BMPSTRING_it                       935	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_BMPSTRING_it                       935	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+PEM_read_EC_PUBKEY                      936	1_1_0	EXIST::FUNCTION:EC,STDIO
+d2i_ASN1_IA5STRING                      937	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_ext_free                    938	1_1_0	EXIST::FUNCTION:TS
+i2d_X509_CRL_fp                         939	1_1_0	EXIST::FUNCTION:STDIO
+PKCS7_get0_signers                      940	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_set_ex_data              941	1_1_0	EXIST::FUNCTION:
+TS_VERIFY_CTS_set_certs                 942	1_1_0	EXIST::FUNCTION:TS
+BN_MONT_CTX_copy                        943	1_1_0	EXIST::FUNCTION:
+OPENSSL_INIT_new                        945	1_1_0	EXIST::FUNCTION:
+TS_ACCURACY_dup                         946	1_1_0	EXIST::FUNCTION:TS
+i2d_ECPrivateKey                        947	1_1_0	EXIST::FUNCTION:EC
+X509_NAME_ENTRY_create_by_OBJ           948	1_1_0	EXIST::FUNCTION:
+TS_VERIFY_CTX_cleanup                   949	1_1_0	EXIST::FUNCTION:TS
+ASN1_INTEGER_get                        950	1_1_0	EXIST::FUNCTION:
+ASN1_PRINTABLE_it                       951	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_PRINTABLE_it                       951	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+EVP_VerifyFinal                         952	1_1_0	EXIST::FUNCTION:
+TS_ASN1_INTEGER_print_bio               953	1_1_0	EXIST::FUNCTION:TS
+X509_NAME_ENTRY_set_object              954	1_1_0	EXIST::FUNCTION:
+BIO_s_socket                            955	1_1_0	EXIST::FUNCTION:SOCK
+EVP_rc5_32_12_16_ecb                    956	1_1_0	EXIST::FUNCTION:RC5
+i2d_PKCS8_bio                           957	1_1_0	EXIST::FUNCTION:
+v2i_ASN1_BIT_STRING                     958	1_1_0	EXIST::FUNCTION:
+PKEY_USAGE_PERIOD_new                   959	1_1_0	EXIST::FUNCTION:
+OBJ_NAME_init                           960	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_set_keygen                961	1_1_0	EXIST::FUNCTION:
+RSA_PSS_PARAMS_new                      962	1_1_0	EXIST::FUNCTION:RSA
+RSA_sign                                963	1_1_0	EXIST::FUNCTION:RSA
+EVP_DigestVerifyFinal                   964	1_1_0	EXIST::FUNCTION:
+d2i_RSA_PUBKEY_bio                      965	1_1_0	EXIST::FUNCTION:RSA
+TS_RESP_dup                             966	1_1_0	EXIST::FUNCTION:TS
+ERR_set_error_data                      967	1_1_0	EXIST::FUNCTION:
+BN_RECP_CTX_new                         968	1_1_0	EXIST::FUNCTION:
+DES_options                             969	1_1_0	EXIST::FUNCTION:DES
+IPAddressChoice_it                      970	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779
+IPAddressChoice_it                      970	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779
+ASN1_UNIVERSALSTRING_it                 971	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_UNIVERSALSTRING_it                 971	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+d2i_DSAPublicKey                        972	1_1_0	EXIST::FUNCTION:DSA
+ENGINE_get_name                         973	1_1_0	EXIST::FUNCTION:ENGINE
+CRYPTO_THREAD_read_lock                 974	1_1_0	EXIST::FUNCTION:
+ASIdentifierChoice_free                 975	1_1_0	EXIST::FUNCTION:RFC3779
+BIO_dgram_sctp_msg_waiting              976	1_1_0	EXIST::FUNCTION:DGRAM,SCTP
+BN_is_bit_set                           978	1_1_0	EXIST::FUNCTION:
+AES_ofb128_encrypt                      979	1_1_0	EXIST::FUNCTION:
+X509_STORE_add_lookup                   980	1_1_0	EXIST::FUNCTION:
+ASN1_GENERALSTRING_new                  981	1_1_0	EXIST::FUNCTION:
+IDEA_options                            982	1_1_0	EXIST::FUNCTION:IDEA
+d2i_X509_REQ                            983	1_1_0	EXIST::FUNCTION:
+i2d_TS_STATUS_INFO                      984	1_1_0	EXIST::FUNCTION:TS
+X509_PURPOSE_get_by_id                  985	1_1_0	EXIST::FUNCTION:
+X509_get1_ocsp                          986	1_1_0	EXIST::FUNCTION:
+ISSUING_DIST_POINT_free                 987	1_1_0	EXIST::FUNCTION:
+ASN1_UTCTIME_free                       988	1_1_0	EXIST::FUNCTION:
+ERR_load_TS_strings                     989	1_1_0	EXIST::FUNCTION:TS
+BN_nist_mod_func                        990	1_1_0	EXIST::FUNCTION:
+OCSP_ONEREQ_new                         991	1_1_0	EXIST::FUNCTION:OCSP
+DSA_SIG_new                             992	1_1_0	EXIST::FUNCTION:DSA
+DH_get_default_method                   993	1_1_0	EXIST::FUNCTION:DH
+PEM_proc_type                           994	1_1_0	EXIST::FUNCTION:
+BIO_printf                              995	1_1_0	EXIST::FUNCTION:
+a2i_IPADDRESS                           996	1_1_0	EXIST::FUNCTION:
+ERR_peek_error_line_data                997	1_1_0	EXIST::FUNCTION:
+ERR_unload_strings                      998	1_1_0	EXIST::FUNCTION:
+SEED_cfb128_encrypt                     999	1_1_0	EXIST::FUNCTION:SEED
+ASN1_BIT_STRING_it                      1000	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_BIT_STRING_it                      1000	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+PKCS12_decrypt_skey                     1001	1_1_0	EXIST::FUNCTION:
+ENGINE_register_EC                      1002	1_1_0	EXIST::FUNCTION:ENGINE
+OCSP_RESPONSE_new                       1003	1_1_0	EXIST::FUNCTION:OCSP
+CRYPTO_cbc128_encrypt                   1004	1_1_0	EXIST::FUNCTION:
+i2d_RSAPublicKey_bio                    1005	1_1_0	EXIST::FUNCTION:RSA
+X509_chain_check_suiteb                 1006	1_1_0	EXIST::FUNCTION:
+i2d_OCSP_REQUEST                        1007	1_1_0	EXIST::FUNCTION:OCSP
+BN_X931_generate_Xpq                    1008	1_1_0	EXIST::FUNCTION:
+ASN1_item_digest                        1009	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_set_trust             1010	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_error                1011	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_set_encrypt               1012	1_1_0	EXIST::FUNCTION:
+ASN1_UTCTIME_it                         1013	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_UTCTIME_it                         1013	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+i2d_DSA_PUBKEY_fp                       1014	1_1_0	EXIST::FUNCTION:DSA,STDIO
+X509at_get_attr_by_OBJ                  1015	1_1_0	EXIST::FUNCTION:
+EVP_MD_CTX_copy_ex                      1016	1_1_0	EXIST::FUNCTION:
+UI_dup_error_string                     1017	1_1_0	EXIST::FUNCTION:
+OPENSSL_LH_num_items                    1018	1_1_0	EXIST::FUNCTION:
+ASN1_INTEGER_cmp                        1020	1_1_0	EXIST::FUNCTION:
+X509_NAME_entry_count                   1021	1_1_0	EXIST::FUNCTION:
+UI_method_set_closer                    1022	1_1_0	EXIST::FUNCTION:
+OPENSSL_LH_get_down_load                1023	1_1_0	EXIST::FUNCTION:
+EVP_md4                                 1024	1_1_0	EXIST::FUNCTION:MD4
+X509_set_subject_name                   1025	1_1_0	EXIST::FUNCTION:
+i2d_PKCS8PrivateKey_nid_bio             1026	1_1_0	EXIST::FUNCTION:
+ERR_put_error                           1027	1_1_0	EXIST::FUNCTION:
+ERR_add_error_data                      1028	1_1_0	EXIST::FUNCTION:
+X509_ALGORS_it                          1029	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_ALGORS_it                          1029	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+MD5_Update                              1030	1_1_0	EXIST::FUNCTION:MD5
+X509_policy_check                       1031	1_1_0	EXIST::FUNCTION:
+X509_CRL_METHOD_new                     1032	1_1_0	EXIST::FUNCTION:
+ASN1_ANY_it                             1033	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_ANY_it                             1033	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+d2i_DSA_SIG                             1034	1_1_0	EXIST::FUNCTION:DSA
+DH_free                                 1035	1_1_0	EXIST::FUNCTION:DH
+ENGINE_register_all_DSA                 1036	1_1_0	EXIST::FUNCTION:ENGINE
+TS_REQ_set_msg_imprint                  1037	1_1_0	EXIST::FUNCTION:TS
+BN_mod_sub_quick                        1038	1_1_0	EXIST::FUNCTION:
+SMIME_write_CMS                         1039	1_1_0	EXIST::FUNCTION:CMS
+i2d_DSAPublicKey                        1040	1_1_0	EXIST::FUNCTION:DSA
+SMIME_text                              1042	1_1_0	EXIST::FUNCTION:
+PKCS7_add_recipient_info                1043	1_1_0	EXIST::FUNCTION:
+BN_get_word                             1044	1_1_0	EXIST::FUNCTION:
+EVP_CipherFinal                         1045	1_1_0	EXIST::FUNCTION:
+i2d_X509_bio                            1046	1_1_0	EXIST::FUNCTION:
+X509_EXTENSION_new                      1047	1_1_0	EXIST::FUNCTION:
+X509_getm_notAfter                      1048	1_1_0	EXIST::FUNCTION:
+X509_ALGOR_dup                          1049	1_1_0	EXIST::FUNCTION:
+d2i_X509_REQ_INFO                       1050	1_1_0	EXIST::FUNCTION:
+d2i_EC_PUBKEY_bio                       1051	1_1_0	EXIST::FUNCTION:EC
+X509_STORE_CTX_set_error                1052	1_1_0	EXIST::FUNCTION:
+EC_KEY_METHOD_set_keygen                1053	1_1_0	EXIST::FUNCTION:EC
+CRYPTO_free                             1054	1_1_0	EXIST::FUNCTION:
+BN_GF2m_mod_exp                         1055	1_1_0	EXIST::FUNCTION:EC2M
+OPENSSL_buf2hexstr                      1056	1_1_0	EXIST::FUNCTION:
+DES_encrypt2                            1057	1_1_0	EXIST::FUNCTION:DES
+DH_up_ref                               1058	1_1_0	EXIST::FUNCTION:DH
+RC2_ofb64_encrypt                       1059	1_1_0	EXIST::FUNCTION:RC2
+PKCS12_pbe_crypt                        1060	1_1_0	EXIST::FUNCTION:
+ASIdentifiers_free                      1061	1_1_0	EXIST::FUNCTION:RFC3779
+X509_VERIFY_PARAM_get0                  1062	1_1_0	EXIST::FUNCTION:
+EVP_MD_meth_get_input_blocksize         1063	1_1_0	EXIST::FUNCTION:
+TS_ACCURACY_get_micros                  1064	1_1_0	EXIST::FUNCTION:TS
+PKCS12_SAFEBAG_create_cert              1065	1_1_0	EXIST::FUNCTION:
+CRYPTO_mem_debug_malloc                 1066	1_1_0	EXIST::FUNCTION:CRYPTO_MDEBUG
+RAND_seed                               1067	1_1_0	EXIST::FUNCTION:
+NETSCAPE_SPKAC_free                     1068	1_1_0	EXIST::FUNCTION:
+X509_CRL_diff                           1069	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_set_flags             1070	1_1_0	EXIST::FUNCTION:
+X509_EXTENSION_set_data                 1071	1_1_0	EXIST::FUNCTION:
+ENGINE_get_EC                           1072	1_1_0	EXIST::FUNCTION:ENGINE
+ASN1_STRING_copy                        1073	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_encrypt_old                    1074	1_1_0	EXIST::FUNCTION:
+OPENSSL_LH_free                         1075	1_1_0	EXIST::FUNCTION:
+DES_is_weak_key                         1076	1_1_0	EXIST::FUNCTION:DES
+EVP_PKEY_verify                         1077	1_1_0	EXIST::FUNCTION:
+ERR_load_BIO_strings                    1078	1_1_0	EXIST::FUNCTION:
+BIO_nread                               1079	1_1_0	EXIST::FUNCTION:
+PEM_read_bio_RSAPrivateKey              1080	1_1_0	EXIST::FUNCTION:RSA
+OBJ_nid2obj                             1081	1_1_0	EXIST::FUNCTION:
+CRYPTO_ofb128_encrypt                   1082	1_1_0	EXIST::FUNCTION:
+ENGINE_set_init_function                1083	1_1_0	EXIST::FUNCTION:ENGINE
+NCONF_default                           1084	1_1_0	EXIST::FUNCTION:
+ENGINE_remove                           1085	1_1_0	EXIST::FUNCTION:ENGINE
+ASYNC_get_current_job                   1086	1_1_0	EXIST::FUNCTION:
+OBJ_nid2sn                              1087	1_1_0	EXIST::FUNCTION:
+X509_gmtime_adj                         1088	1_1_0	EXIST::FUNCTION:
+X509_add_ext                            1089	1_1_0	EXIST::FUNCTION:
+ENGINE_set_DSA                          1090	1_1_0	EXIST::FUNCTION:ENGINE
+EC_KEY_METHOD_set_sign                  1091	1_1_0	EXIST::FUNCTION:EC
+d2i_TS_MSG_IMPRINT                      1092	1_1_0	EXIST::FUNCTION:TS
+X509_print_ex_fp                        1093	1_1_0	EXIST::FUNCTION:STDIO
+ERR_load_PEM_strings                    1094	1_1_0	EXIST::FUNCTION:
+ENGINE_unregister_pkey_asn1_meths       1095	1_1_0	EXIST::FUNCTION:ENGINE
+IPAddressFamily_free                    1096	1_1_0	EXIST::FUNCTION:RFC3779
+UI_method_get_prompt_constructor        1097	1_1_0	EXIST::FUNCTION:
+ASN1_NULL_it                            1098	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_NULL_it                            1098	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+X509_REQ_get_pubkey                     1099	1_1_0	EXIST::FUNCTION:
+X509_CRL_set1_nextUpdate                1100	1_1_0	EXIST::FUNCTION:
+EVP_des_ede3_cfb64                      1101	1_1_0	EXIST::FUNCTION:DES
+BN_to_ASN1_INTEGER                      1102	1_1_0	EXIST::FUNCTION:
+EXTENDED_KEY_USAGE_free                 1103	1_1_0	EXIST::FUNCTION:
+PEM_read_bio_EC_PUBKEY                  1104	1_1_0	EXIST::FUNCTION:EC
+BN_MONT_CTX_set                         1105	1_1_0	EXIST::FUNCTION:
+TS_CONF_set_serial                      1106	1_1_0	EXIST::FUNCTION:TS
+X509_NAME_ENTRY_new                     1107	1_1_0	EXIST::FUNCTION:
+RSA_security_bits                       1108	1_1_0	EXIST::FUNCTION:RSA
+X509v3_addr_add_prefix                  1109	1_1_0	EXIST::FUNCTION:RFC3779
+X509_REQ_print_fp                       1110	1_1_0	EXIST::FUNCTION:STDIO
+ASN1_item_ex_new                        1111	1_1_0	EXIST::FUNCTION:
+BIO_s_datagram                          1112	1_1_0	EXIST::FUNCTION:DGRAM
+PEM_write_bio_PKCS8                     1113	1_1_0	EXIST::FUNCTION:
+ASN1_str2mask                           1114	1_1_0	EXIST::FUNCTION:
+ASN1_TYPE_get                           1115	1_1_0	EXIST::FUNCTION:
+i2d_X509_EXTENSIONS                     1116	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get0_store               1117	1_1_0	EXIST::FUNCTION:
+PKCS12_pack_p7data                      1118	1_1_0	EXIST::FUNCTION:
+RSA_print_fp                            1119	1_1_0	EXIST::FUNCTION:RSA,STDIO
+OPENSSL_INIT_set_config_appname         1120	1_1_0	EXIST::FUNCTION:STDIO
+EC_KEY_print_fp                         1121	1_1_0	EXIST::FUNCTION:EC,STDIO
+BIO_dup_chain                           1122	1_1_0	EXIST::FUNCTION:
+PKCS8_PRIV_KEY_INFO_it                  1123	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS8_PRIV_KEY_INFO_it                  1123	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+RSA_OAEP_PARAMS_free                    1124	1_1_0	EXIST::FUNCTION:RSA
+ASN1_item_new                           1125	1_1_0	EXIST::FUNCTION:
+CRYPTO_cts128_encrypt                   1126	1_1_0	EXIST::FUNCTION:
+RC2_encrypt                             1127	1_1_0	EXIST::FUNCTION:RC2
+PEM_write                               1128	1_1_0	EXIST::FUNCTION:STDIO
+EVP_CIPHER_meth_get_get_asn1_params     1129	1_1_0	EXIST::FUNCTION:
+i2d_OCSP_RESPBYTES                      1130	1_1_0	EXIST::FUNCTION:OCSP
+d2i_ASN1_UTF8STRING                     1131	1_1_0	EXIST::FUNCTION:
+EXTENDED_KEY_USAGE_it                   1132	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+EXTENDED_KEY_USAGE_it                   1132	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+EVP_CipherInit                          1133	1_1_0	EXIST::FUNCTION:
+PKCS12_add_safe                         1134	1_1_0	EXIST::FUNCTION:
+ENGINE_get_digest                       1135	1_1_0	EXIST::FUNCTION:ENGINE
+EC_GROUP_have_precompute_mult           1136	1_1_0	EXIST::FUNCTION:EC
+OPENSSL_gmtime                          1137	1_1_0	EXIST::FUNCTION:
+X509_set_issuer_name                    1138	1_1_0	EXIST::FUNCTION:
+RSA_new                                 1139	1_1_0	EXIST::FUNCTION:RSA
+ASN1_STRING_set_by_NID                  1140	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_PKCS7                     1141	1_1_0	EXIST::FUNCTION:
+MDC2_Final                              1142	1_1_0	EXIST::FUNCTION:MDC2
+SMIME_crlf_copy                         1143	1_1_0	EXIST::FUNCTION:
+OCSP_REQUEST_get_ext_count              1144	1_1_0	EXIST::FUNCTION:OCSP
+OCSP_REQ_CTX_new                        1145	1_1_0	EXIST::FUNCTION:OCSP
+X509_load_cert_crl_file                 1146	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_new_mac_key                    1147	1_1_0	EXIST::FUNCTION:
+DIST_POINT_new                          1148	1_1_0	EXIST::FUNCTION:
+BN_is_prime_fasttest                    1149	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_0_9_8
+EC_POINT_dup                            1150	1_1_0	EXIST::FUNCTION:EC
+PKCS5_v2_scrypt_keyivgen                1151	1_1_0	EXIST::FUNCTION:SCRYPT
+X509_STORE_CTX_set0_param               1152	1_1_0	EXIST::FUNCTION:
+DES_check_key_parity                    1153	1_1_0	EXIST::FUNCTION:DES
+EVP_aes_256_ocb                         1154	1_1_0	EXIST::FUNCTION:OCB
+X509_VAL_free                           1155	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get1_certs               1156	1_1_0	EXIST::FUNCTION:
+PEM_write_RSA_PUBKEY                    1157	1_1_0	EXIST::FUNCTION:RSA,STDIO
+PKCS12_SAFEBAG_get0_p8inf               1158	1_1_0	EXIST::FUNCTION:
+X509_CRL_set_issuer_name                1159	1_1_0	EXIST::FUNCTION:
+CMS_EncryptedData_encrypt               1160	1_1_0	EXIST::FUNCTION:CMS
+ASN1_tag2str                            1161	1_1_0	EXIST::FUNCTION:
+BN_zero_ex                              1162	1_1_0	EXIST::FUNCTION:
+X509_NAME_dup                           1163	1_1_0	EXIST::FUNCTION:
+SCT_LIST_print                          1164	1_1_0	EXIST::FUNCTION:CT
+NOTICEREF_it                            1165	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+NOTICEREF_it                            1165	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+CMS_add0_crl                            1166	1_1_0	EXIST::FUNCTION:CMS
+d2i_DSAparams                           1167	1_1_0	EXIST::FUNCTION:DSA
+EVP_CIPHER_CTX_set_app_data             1168	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_param_to_asn1                1169	1_1_0	EXIST::FUNCTION:
+TS_CONF_set_certs                       1170	1_1_0	EXIST::FUNCTION:TS
+BN_security_bits                        1171	1_1_0	EXIST::FUNCTION:
+X509_PURPOSE_get0_name                  1172	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_get_serial                  1173	1_1_0	EXIST::FUNCTION:TS
+ASN1_PCTX_get_str_flags                 1174	1_1_0	EXIST::FUNCTION:
+SHA256                                  1175	1_1_0	EXIST::FUNCTION:
+X509_LOOKUP_hash_dir                    1176	1_1_0	EXIST::FUNCTION:
+ASN1_BIT_STRING_check                   1177	1_1_0	EXIST::FUNCTION:
+ENGINE_set_default_RAND                 1178	1_1_0	EXIST::FUNCTION:ENGINE
+BIO_connect                             1179	1_1_0	EXIST::FUNCTION:SOCK
+TS_TST_INFO_add_ext                     1180	1_1_0	EXIST::FUNCTION:TS
+EVP_aes_192_ccm                         1181	1_1_0	EXIST::FUNCTION:
+X509V3_add_value                        1182	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_set0_keygen_info           1183	1_1_0	EXIST::FUNCTION:
+ENGINE_unregister_digests               1184	1_1_0	EXIST::FUNCTION:ENGINE
+IPAddressOrRange_new                    1185	1_1_0	EXIST::FUNCTION:RFC3779
+EVP_aes_256_ofb                         1186	1_1_0	EXIST::FUNCTION:
+CRYPTO_mem_debug_push                   1187	1_1_0	EXIST::FUNCTION:CRYPTO_MDEBUG
+X509_PKEY_new                           1188	1_1_0	EXIST::FUNCTION:
+X509_get_key_usage                      1189	1_1_0	EXIST::FUNCTION:
+X509_ATTRIBUTE_create_by_txt            1190	1_1_0	EXIST::FUNCTION:
+PEM_SignFinal                           1191	1_1_0	EXIST::FUNCTION:
+PEM_bytes_read_bio                      1192	1_1_0	EXIST::FUNCTION:
+X509_signature_dump                     1193	1_1_0	EXIST::FUNCTION:
+TS_RESP_CTX_set_def_policy              1194	1_1_0	EXIST::FUNCTION:TS
+RAND_pseudo_bytes                       1195	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0
+DES_ofb_encrypt                         1196	1_1_0	EXIST::FUNCTION:DES
+EVP_add_digest                          1197	1_1_0	EXIST::FUNCTION:
+ASN1_item_sign_ctx                      1198	1_1_0	EXIST::FUNCTION:
+BIO_dump_indent_cb                      1199	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_set_depth             1200	1_1_0	EXIST::FUNCTION:
+DES_ecb3_encrypt                        1201	1_1_0	EXIST::FUNCTION:DES
+OBJ_obj2nid                             1202	1_1_0	EXIST::FUNCTION:
+PKCS12_SAFEBAG_free                     1203	1_1_0	EXIST::FUNCTION:
+EVP_cast5_cfb64                         1204	1_1_0	EXIST::FUNCTION:CAST
+OPENSSL_uni2asc                         1205	1_1_0	EXIST::FUNCTION:
+SCT_validation_status_string            1206	1_1_0	EXIST::FUNCTION:CT
+PKCS7_add_attribute                     1207	1_1_0	EXIST::FUNCTION:
+ENGINE_register_DSA                     1208	1_1_0	EXIST::FUNCTION:ENGINE
+OPENSSL_LH_node_stats                   1209	1_1_0	EXIST::FUNCTION:STDIO
+X509_policy_tree_free                   1210	1_1_0	EXIST::FUNCTION:
+EC_GFp_simple_method                    1211	1_1_0	EXIST::FUNCTION:EC
+X509_it                                 1212	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_it                                 1212	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+d2i_PROXY_POLICY                        1213	1_1_0	EXIST::FUNCTION:
+MDC2_Update                             1214	1_1_0	EXIST::FUNCTION:MDC2
+EC_KEY_new_by_curve_name                1215	1_1_0	EXIST::FUNCTION:EC
+X509_CRL_free                           1216	1_1_0	EXIST::FUNCTION:
+i2d_PKCS7_SIGN_ENVELOPE                 1217	1_1_0	EXIST::FUNCTION:
+OCSP_CERTSTATUS_it                      1218	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP
+OCSP_CERTSTATUS_it                      1218	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP
+BIO_f_reliable                          1219	1_1_0	EXIST::FUNCTION:
+OCSP_resp_count                         1220	1_1_0	EXIST::FUNCTION:OCSP
+i2d_X509_AUX                            1221	1_1_0	EXIST::FUNCTION:
+RSA_verify_PKCS1_PSS_mgf1               1222	1_1_0	EXIST::FUNCTION:RSA
+X509_time_adj                           1223	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_asn1_find_str                  1224	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_get_flags             1225	1_1_0	EXIST::FUNCTION:
+OPENSSL_DIR_end                         1226	1_1_0	EXIST::FUNCTION:
+EC_GROUP_new                            1227	1_1_0	EXIST::FUNCTION:EC
+CMS_SignerInfo_get0_pkey_ctx            1228	1_1_0	EXIST::FUNCTION:CMS
+d2i_ASN1_PRINTABLESTRING                1229	1_1_0	EXIST::FUNCTION:
+CMS_RecipientInfo_ktri_cert_cmp         1230	1_1_0	EXIST::FUNCTION:CMS
+CMS_decrypt_set1_pkey                   1231	1_1_0	EXIST::FUNCTION:CMS
+PKCS7_RECIP_INFO_set                    1232	1_1_0	EXIST::FUNCTION:
+EC_POINT_is_on_curve                    1233	1_1_0	EXIST::FUNCTION:EC
+PKCS12_add_cert                         1234	1_1_0	EXIST::FUNCTION:
+X509_NAME_hash_old                      1235	1_1_0	EXIST::FUNCTION:
+PBKDF2PARAM_free                        1236	1_1_0	EXIST::FUNCTION:
+i2d_CMS_ContentInfo                     1237	1_1_0	EXIST::FUNCTION:CMS
+EVP_CIPHER_meth_set_ctrl                1238	1_1_0	EXIST::FUNCTION:
+RSA_public_decrypt                      1239	1_1_0	EXIST::FUNCTION:RSA
+ENGINE_get_id                           1240	1_1_0	EXIST::FUNCTION:ENGINE
+PKCS12_item_decrypt_d2i                 1241	1_1_0	EXIST::FUNCTION:
+PEM_read_bio_DSAparams                  1242	1_1_0	EXIST::FUNCTION:DSA
+X509_CRL_cmp                            1243	1_1_0	EXIST::FUNCTION:
+DSO_METHOD_openssl                      1244	1_1_0	EXIST::FUNCTION:
+d2i_PrivateKey_fp                       1245	1_1_0	EXIST::FUNCTION:STDIO
+i2d_NETSCAPE_CERT_SEQUENCE              1246	1_1_0	EXIST::FUNCTION:
+EC_POINT_oct2point                      1248	1_1_0	EXIST::FUNCTION:EC
+EVP_CIPHER_CTX_buf_noconst              1249	1_1_0	EXIST::FUNCTION:
+OPENSSL_DIR_read                        1250	1_1_0	EXIST::FUNCTION:
+CMS_add_smimecap                        1251	1_1_0	EXIST::FUNCTION:CMS
+X509_check_email                        1252	1_1_0	EXIST::FUNCTION:
+CRYPTO_cts128_decrypt_block             1253	1_1_0	EXIST::FUNCTION:
+UI_method_get_opener                    1254	1_1_0	EXIST::FUNCTION:
+EVP_aes_192_gcm                         1255	1_1_0	EXIST::FUNCTION:
+TS_CONF_set_tsa_name                    1256	1_1_0	EXIST::FUNCTION:TS
+X509_email_free                         1257	1_1_0	EXIST::FUNCTION:
+BIO_get_callback                        1258	1_1_0	EXIST::FUNCTION:
+OPENSSL_sk_shift                        1259	1_1_0	EXIST::FUNCTION:
+i2d_X509_REVOKED                        1260	1_1_0	EXIST::FUNCTION:
+CMS_sign                                1261	1_1_0	EXIST::FUNCTION:CMS
+X509_STORE_add_cert                     1262	1_1_0	EXIST::FUNCTION:
+EC_GROUP_precompute_mult                1263	1_1_0	EXIST::FUNCTION:EC
+d2i_DISPLAYTEXT                         1265	1_1_0	EXIST::FUNCTION:
+HMAC_CTX_copy                           1266	1_1_0	EXIST::FUNCTION:
+CRYPTO_gcm128_init                      1267	1_1_0	EXIST::FUNCTION:
+i2d_X509_CINF                           1268	1_1_0	EXIST::FUNCTION:
+X509_REVOKED_delete_ext                 1269	1_1_0	EXIST::FUNCTION:
+RC5_32_cfb64_encrypt                    1270	1_1_0	EXIST::FUNCTION:RC5
+TS_REQ_set_cert_req                     1271	1_1_0	EXIST::FUNCTION:TS
+TXT_DB_get_by_index                     1272	1_1_0	EXIST::FUNCTION:
+X509_check_ca                           1273	1_1_0	EXIST::FUNCTION:
+DH_get_2048_224                         1274	1_1_0	EXIST::FUNCTION:DH
+X509_http_nbio                          1275	1_1_0	EXIST::FUNCTION:OCSP
+i2d_AUTHORITY_INFO_ACCESS               1276	1_1_0	EXIST::FUNCTION:
+EVP_get_cipherbyname                    1277	1_1_0	EXIST::FUNCTION:
+CONF_dump_fp                            1278	1_1_0	EXIST::FUNCTION:STDIO
+d2i_DIST_POINT_NAME                     1279	1_1_0	EXIST::FUNCTION:
+ASN1_INTEGER_set_int64                  1280	1_1_0	EXIST::FUNCTION:
+ASN1_TIME_free                          1281	1_1_0	EXIST::FUNCTION:
+i2o_SCT_LIST                            1282	1_1_0	EXIST::FUNCTION:CT
+AES_encrypt                             1283	1_1_0	EXIST::FUNCTION:
+MD5_Init                                1284	1_1_0	EXIST::FUNCTION:MD5
+UI_add_error_string                     1285	1_1_0	EXIST::FUNCTION:
+X509_TRUST_cleanup                      1286	1_1_0	EXIST::FUNCTION:
+PEM_read_X509                           1287	1_1_0	EXIST::FUNCTION:STDIO
+EC_KEY_new_method                       1288	1_1_0	EXIST::FUNCTION:EC
+i2d_RSAPublicKey_fp                     1289	1_1_0	EXIST::FUNCTION:RSA,STDIO
+CRYPTO_ctr128_encrypt_ctr32             1290	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_move_peername         1291	1_1_0	EXIST::FUNCTION:
+OCSP_SINGLERESP_it                      1292	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP
+OCSP_SINGLERESP_it                      1292	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP
+BN_num_bits                             1293	1_1_0	EXIST::FUNCTION:
+X509_CRL_METHOD_free                    1294	1_1_0	EXIST::FUNCTION:
+PEM_read_NETSCAPE_CERT_SEQUENCE         1295	1_1_0	EXIST::FUNCTION:STDIO
+OPENSSL_load_builtin_modules            1296	1_1_0	EXIST::FUNCTION:
+X509_set_version                        1297	1_1_0	EXIST::FUNCTION:
+i2d_EC_PUBKEY_bio                       1298	1_1_0	EXIST::FUNCTION:EC
+X509_REQ_get_attr_count                 1299	1_1_0	EXIST::FUNCTION:
+CMS_set1_signers_certs                  1300	1_1_0	EXIST::FUNCTION:CMS
+TS_ACCURACY_free                        1301	1_1_0	EXIST::FUNCTION:TS
+PEM_write_DSA_PUBKEY                    1302	1_1_0	EXIST::FUNCTION:DSA,STDIO
+BN_rshift1                              1303	1_1_0	EXIST::FUNCTION:
+i2d_PKCS7_ENVELOPE                      1304	1_1_0	EXIST::FUNCTION:
+PBKDF2PARAM_it                          1305	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PBKDF2PARAM_it                          1305	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+UI_get_result_maxsize                   1306	1_1_0	EXIST::FUNCTION:
+PBEPARAM_it                             1307	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PBEPARAM_it                             1307	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+TS_ACCURACY_set_seconds                 1308	1_1_0	EXIST::FUNCTION:TS
+UI_get0_action_string                   1309	1_1_0	EXIST::FUNCTION:
+RC2_decrypt                             1310	1_1_0	EXIST::FUNCTION:RC2
+OPENSSL_atexit                          1311	1_1_0	EXIST::FUNCTION:
+CMS_add_standard_smimecap               1312	1_1_0	EXIST::FUNCTION:CMS
+PKCS7_add_attrib_content_type           1313	1_1_0	EXIST::FUNCTION:
+BN_BLINDING_set_flags                   1314	1_1_0	EXIST::FUNCTION:
+ERR_peek_last_error                     1315	1_1_0	EXIST::FUNCTION:
+ENGINE_set_cmd_defns                    1316	1_1_0	EXIST::FUNCTION:ENGINE
+d2i_ASN1_NULL                           1317	1_1_0	EXIST::FUNCTION:
+RAND_event                              1318	1_1_0	EXIST:_WIN32:FUNCTION:DEPRECATEDIN_1_1_0
+i2d_PKCS12_fp                           1319	1_1_0	EXIST::FUNCTION:STDIO
+EVP_PKEY_meth_get_init                  1320	1_1_0	EXIST::FUNCTION:
+X509_check_trust                        1321	1_1_0	EXIST::FUNCTION:
+b2i_PrivateKey                          1322	1_1_0	EXIST::FUNCTION:DSA
+HMAC_Init_ex                            1323	1_1_0	EXIST::FUNCTION:
+SMIME_read_CMS                          1324	1_1_0	EXIST::FUNCTION:CMS
+X509_subject_name_cmp                   1325	1_1_0	EXIST::FUNCTION:
+CRYPTO_ocb128_finish                    1326	1_1_0	EXIST::FUNCTION:OCB
+EVP_CIPHER_do_all                       1327	1_1_0	EXIST::FUNCTION:
+POLICY_MAPPINGS_it                      1328	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+POLICY_MAPPINGS_it                      1328	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+SCT_set0_log_id                         1329	1_1_0	EXIST::FUNCTION:CT
+CRYPTO_cfb128_encrypt                   1330	1_1_0	EXIST::FUNCTION:
+RSA_padding_add_PKCS1_type_2            1331	1_1_0	EXIST::FUNCTION:RSA
+TS_CONF_set_signer_cert                 1332	1_1_0	EXIST::FUNCTION:TS
+i2d_ASN1_OBJECT                         1333	1_1_0	EXIST::FUNCTION:
+d2i_PKCS8_PRIV_KEY_INFO_bio             1334	1_1_0	EXIST::FUNCTION:
+X509V3_add_value_int                    1335	1_1_0	EXIST::FUNCTION:
+TS_REQ_set_nonce                        1336	1_1_0	EXIST::FUNCTION:TS
+Camellia_ctr128_encrypt                 1337	1_1_0	EXIST::FUNCTION:CAMELLIA
+X509_LOOKUP_new                         1338	1_1_0	EXIST::FUNCTION:
+AUTHORITY_INFO_ACCESS_new               1339	1_1_0	EXIST::FUNCTION:
+CRYPTO_mem_leaks_fp                     1340	1_1_0	EXIST::FUNCTION:CRYPTO_MDEBUG,STDIO
+DES_set_key_unchecked                   1341	1_1_0	EXIST::FUNCTION:DES
+BN_free                                 1342	1_1_0	EXIST::FUNCTION:
+EVP_aes_128_cfb1                        1343	1_1_0	EXIST::FUNCTION:
+EC_KEY_get0_group                       1344	1_1_0	EXIST::FUNCTION:EC
+PEM_write_bio_CMS_stream                1345	1_1_0	EXIST::FUNCTION:CMS
+BIO_f_linebuffer                        1346	1_1_0	EXIST::FUNCTION:
+ASN1_item_d2i_bio                       1347	1_1_0	EXIST::FUNCTION:
+ENGINE_get_flags                        1348	1_1_0	EXIST::FUNCTION:ENGINE
+OCSP_resp_find                          1349	1_1_0	EXIST::FUNCTION:OCSP
+OPENSSL_LH_node_usage_stats_bio         1350	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_encrypt                        1351	1_1_0	EXIST::FUNCTION:
+CRYPTO_cfb128_8_encrypt                 1352	1_1_0	EXIST::FUNCTION:
+SXNET_get_id_INTEGER                    1353	1_1_0	EXIST::FUNCTION:
+CRYPTO_clear_free                       1354	1_1_0	EXIST::FUNCTION:
+i2v_GENERAL_NAME                        1355	1_1_0	EXIST::FUNCTION:
+PKCS7_ENC_CONTENT_new                   1356	1_1_0	EXIST::FUNCTION:
+CRYPTO_realloc                          1357	1_1_0	EXIST::FUNCTION:
+BIO_ctrl_pending                        1358	1_1_0	EXIST::FUNCTION:
+EVP_MD_meth_new                         1360	1_1_0	EXIST::FUNCTION:
+X509_sign_ctx                           1361	1_1_0	EXIST::FUNCTION:
+BN_is_odd                               1362	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_current_cert         1363	1_1_0	EXIST::FUNCTION:
+ASN1_ENUMERATED_get_int64               1364	1_1_0	EXIST::FUNCTION:
+ASN1_SCTX_get_app_data                  1365	1_1_0	EXIST::FUNCTION:
+X509_get_default_cert_file_env          1366	1_1_0	EXIST::FUNCTION:
+X509v3_addr_validate_resource_set       1367	1_1_0	EXIST::FUNCTION:RFC3779
+d2i_X509_VAL                            1368	1_1_0	EXIST::FUNCTION:
+CRYPTO_gcm128_decrypt_ctr32             1370	1_1_0	EXIST::FUNCTION:
+DHparams_print                          1371	1_1_0	EXIST::FUNCTION:DH
+OPENSSL_sk_unshift                      1372	1_1_0	EXIST::FUNCTION:
+BN_GENCB_set_old                        1373	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_X509                      1374	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_asn1_free                      1375	1_1_0	EXIST::FUNCTION:
+ENGINE_unregister_DH                    1376	1_1_0	EXIST::FUNCTION:ENGINE
+PROXY_CERT_INFO_EXTENSION_it            1377	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PROXY_CERT_INFO_EXTENSION_it            1377	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+CT_POLICY_EVAL_CTX_set1_cert            1378	1_1_0	EXIST::FUNCTION:CT
+X509_NAME_hash                          1379	1_1_0	EXIST::FUNCTION:
+SCT_set_timestamp                       1380	1_1_0	EXIST::FUNCTION:CT
+UI_new                                  1381	1_1_0	EXIST::FUNCTION:
+TS_REQ_get_msg_imprint                  1382	1_1_0	EXIST::FUNCTION:TS
+i2d_PKCS12_BAGS                         1383	1_1_0	EXIST::FUNCTION:
+CERTIFICATEPOLICIES_free                1385	1_1_0	EXIST::FUNCTION:
+X509V3_get_section                      1386	1_1_0	EXIST::FUNCTION:
+BIO_parse_hostserv                      1387	1_1_0	EXIST::FUNCTION:SOCK
+EVP_PKEY_meth_set_cleanup               1388	1_1_0	EXIST::FUNCTION:
+PROXY_CERT_INFO_EXTENSION_free          1389	1_1_0	EXIST::FUNCTION:
+X509_dup                                1390	1_1_0	EXIST::FUNCTION:
+EDIPARTYNAME_free                       1391	1_1_0	EXIST::FUNCTION:
+X509_CRL_add0_revoked                   1393	1_1_0	EXIST::FUNCTION:
+GENERAL_NAME_set0_value                 1394	1_1_0	EXIST::FUNCTION:
+X509_ATTRIBUTE_dup                      1395	1_1_0	EXIST::FUNCTION:
+EC_GROUP_check_discriminant             1396	1_1_0	EXIST::FUNCTION:EC
+PKCS12_MAC_DATA_free                    1397	1_1_0	EXIST::FUNCTION:
+PEM_read_bio_PrivateKey                 1398	1_1_0	EXIST::FUNCTION:
+d2i_PKCS7_ENCRYPT                       1399	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_ctrl                       1400	1_1_0	EXIST::FUNCTION:
+X509_REQ_set_pubkey                     1401	1_1_0	EXIST::FUNCTION:
+UI_create_method                        1402	1_1_0	EXIST::FUNCTION:
+X509_REQ_add_extensions_nid             1403	1_1_0	EXIST::FUNCTION:
+PEM_X509_INFO_write_bio                 1404	1_1_0	EXIST::FUNCTION:
+BIO_dump_cb                             1405	1_1_0	EXIST::FUNCTION:
+v2i_GENERAL_NAMES                       1406	1_1_0	EXIST::FUNCTION:
+EVP_des_ede3_ofb                        1407	1_1_0	EXIST::FUNCTION:DES
+EVP_MD_meth_get_cleanup                 1408	1_1_0	EXIST::FUNCTION:
+SRP_Calc_server_key                     1409	1_1_0	EXIST::FUNCTION:SRP
+BN_mod_exp_simple                       1410	1_1_0	EXIST::FUNCTION:
+BIO_set_ex_data                         1411	1_1_0	EXIST::FUNCTION:
+SHA512                                  1412	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_explicit_policy      1413	1_1_0	EXIST::FUNCTION:
+EVP_DecodeBlock                         1414	1_1_0	EXIST::FUNCTION:
+OCSP_REQ_CTX_http                       1415	1_1_0	EXIST::FUNCTION:OCSP
+EVP_MD_CTX_reset                        1416	1_1_0	EXIST::FUNCTION:
+X509_NAME_new                           1417	1_1_0	EXIST::FUNCTION:
+ASN1_item_pack                          1418	1_1_0	EXIST::FUNCTION:
+ASN1_BIT_STRING_set_asc                 1419	1_1_0	EXIST::FUNCTION:
+d2i_GENERAL_NAME                        1420	1_1_0	EXIST::FUNCTION:
+i2d_ESS_CERT_ID                         1421	1_1_0	EXIST::FUNCTION:TS
+X509_TRUST_get_by_id                    1422	1_1_0	EXIST::FUNCTION:
+d2i_RSA_PUBKEY_fp                       1423	1_1_0	EXIST::FUNCTION:RSA,STDIO
+EVP_PBE_get                             1424	1_1_0	EXIST::FUNCTION:
+CRYPTO_nistcts128_encrypt               1425	1_1_0	EXIST::FUNCTION:
+CONF_modules_finish                     1426	1_1_0	EXIST::FUNCTION:
+BN_value_one                            1427	1_1_0	EXIST::FUNCTION:
+RSA_padding_add_SSLv23                  1428	1_1_0	EXIST::FUNCTION:RSA
+OCSP_RESPBYTES_it                       1429	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP
+OCSP_RESPBYTES_it                       1429	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP
+EVP_aes_192_wrap                        1430	1_1_0	EXIST::FUNCTION:
+OCSP_CERTID_it                          1431	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP
+OCSP_CERTID_it                          1431	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP
+ENGINE_get_RSA                          1432	1_1_0	EXIST::FUNCTION:ENGINE
+RAND_get_rand_method                    1433	1_1_0	EXIST::FUNCTION:
+ERR_load_DSA_strings                    1434	1_1_0	EXIST::FUNCTION:DSA
+ASN1_check_infinite_end                 1435	1_1_0	EXIST::FUNCTION:
+i2d_PKCS7_DIGEST                        1436	1_1_0	EXIST::FUNCTION:
+ERR_lib_error_string                    1437	1_1_0	EXIST::FUNCTION:
+X509_ATTRIBUTE_set1_object              1438	1_1_0	EXIST::FUNCTION:
+i2d_ECPrivateKey_bio                    1439	1_1_0	EXIST::FUNCTION:EC
+BN_GENCB_free                           1440	1_1_0	EXIST::FUNCTION:
+HMAC_size                               1441	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_get0_DH                        1442	1_1_0	EXIST::FUNCTION:DH
+d2i_OCSP_CRLID                          1443	1_1_0	EXIST::FUNCTION:OCSP
+EVP_CIPHER_CTX_set_padding              1444	1_1_0	EXIST::FUNCTION:
+CTLOG_new_from_base64                   1445	1_1_0	EXIST::FUNCTION:CT
+AES_bi_ige_encrypt                      1446	1_1_0	EXIST::FUNCTION:
+ERR_pop_to_mark                         1447	1_1_0	EXIST::FUNCTION:
+CRL_DIST_POINTS_new                     1449	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_get0_asn1                      1450	1_1_0	EXIST::FUNCTION:
+EVP_camellia_192_ctr                    1451	1_1_0	EXIST::FUNCTION:CAMELLIA
+EVP_PKEY_free                           1452	1_1_0	EXIST::FUNCTION:
+X509_ATTRIBUTE_count                    1453	1_1_0	EXIST::FUNCTION:
+BIO_new_dgram                           1454	1_1_0	EXIST::FUNCTION:DGRAM
+CMS_RecipientInfo_kari_get0_reks        1455	1_1_0	EXIST::FUNCTION:CMS
+BASIC_CONSTRAINTS_new                   1456	1_1_0	EXIST::FUNCTION:
+PEM_read_bio_X509_REQ                   1457	1_1_0	EXIST::FUNCTION:
+BIO_sock_init                           1458	1_1_0	EXIST::FUNCTION:SOCK
+BN_nist_mod_192                         1459	1_1_0	EXIST::FUNCTION:
+i2d_PKCS7_ISSUER_AND_SERIAL             1460	1_1_0	EXIST::FUNCTION:
+X509V3_EXT_nconf                        1461	1_1_0	EXIST::FUNCTION:
+X509v3_addr_inherits                    1462	1_1_0	EXIST::FUNCTION:RFC3779
+NETSCAPE_SPKI_sign                      1463	1_1_0	EXIST::FUNCTION:
+BN_BLINDING_update                      1464	1_1_0	EXIST::FUNCTION:
+BN_gcd                                  1465	1_1_0	EXIST::FUNCTION:
+CMS_dataInit                            1466	1_1_0	EXIST::FUNCTION:CMS
+TS_CONF_get_tsa_section                 1467	1_1_0	EXIST::FUNCTION:TS
+i2d_PKCS7_SIGNER_INFO                   1468	1_1_0	EXIST::FUNCTION:
+EVP_get_pw_prompt                       1469	1_1_0	EXIST::FUNCTION:
+BN_bn2bin                               1470	1_1_0	EXIST::FUNCTION:
+d2i_ASN1_BIT_STRING                     1471	1_1_0	EXIST::FUNCTION:
+OCSP_CERTSTATUS_new                     1472	1_1_0	EXIST::FUNCTION:OCSP
+ENGINE_register_RAND                    1473	1_1_0	EXIST::FUNCTION:ENGINE
+X509V3_section_free                     1474	1_1_0	EXIST::FUNCTION:
+CRYPTO_mem_debug_free                   1475	1_1_0	EXIST::FUNCTION:CRYPTO_MDEBUG
+d2i_OCSP_REQUEST                        1476	1_1_0	EXIST::FUNCTION:OCSP
+ENGINE_get_cipher_engine                1477	1_1_0	EXIST::FUNCTION:ENGINE
+SHA384_Final                            1478	1_1_0	EXIST::FUNCTION:
+TS_RESP_CTX_set_certs                   1479	1_1_0	EXIST::FUNCTION:TS
+BN_MONT_CTX_free                        1480	1_1_0	EXIST::FUNCTION:
+BN_GF2m_mod_solve_quad_arr              1481	1_1_0	EXIST::FUNCTION:EC2M
+UI_add_input_string                     1482	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_get_version                 1483	1_1_0	EXIST::FUNCTION:TS
+BIO_accept_ex                           1484	1_1_0	EXIST::FUNCTION:SOCK
+CRYPTO_get_mem_functions                1485	1_1_0	EXIST::FUNCTION:
+PEM_read_bio                            1486	1_1_0	EXIST::FUNCTION:
+OCSP_BASICRESP_get_ext_by_critical      1487	1_1_0	EXIST::FUNCTION:OCSP
+SXNET_it                                1488	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+SXNET_it                                1488	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+BIO_indent                              1489	1_1_0	EXIST::FUNCTION:
+i2d_X509_fp                             1490	1_1_0	EXIST::FUNCTION:STDIO
+d2i_ASN1_TYPE                           1491	1_1_0	EXIST::FUNCTION:
+CTLOG_STORE_free                        1492	1_1_0	EXIST::FUNCTION:CT
+ENGINE_get_pkey_meths                   1493	1_1_0	EXIST::FUNCTION:ENGINE
+i2d_TS_REQ_bio                          1494	1_1_0	EXIST::FUNCTION:TS
+EVP_PKEY_CTX_get_operation              1495	1_1_0	EXIST::FUNCTION:
+EVP_MD_meth_set_ctrl                    1496	1_1_0	EXIST::FUNCTION:
+X509_EXTENSION_set_critical             1497	1_1_0	EXIST::FUNCTION:
+BIO_ADDR_clear                          1498	1_1_0	EXIST::FUNCTION:SOCK
+ENGINE_get_DSA                          1499	1_1_0	EXIST::FUNCTION:ENGINE
+ASYNC_get_wait_ctx                      1500	1_1_0	EXIST::FUNCTION:
+ENGINE_set_load_privkey_function        1501	1_1_0	EXIST::FUNCTION:ENGINE
+CRYPTO_ccm128_setiv                     1502	1_1_0	EXIST::FUNCTION:
+PKCS7_dataFinal                         1503	1_1_0	EXIST::FUNCTION:
+SHA1_Final                              1504	1_1_0	EXIST::FUNCTION:
+i2a_ASN1_STRING                         1505	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_CTX_rand_key                 1506	1_1_0	EXIST::FUNCTION:
+AES_set_encrypt_key                     1507	1_1_0	EXIST::FUNCTION:
+ASN1_UTCTIME_new                        1508	1_1_0	EXIST::FUNCTION:
+AES_cbc_encrypt                         1509	1_1_0	EXIST::FUNCTION:
+OCSP_RESPDATA_free                      1510	1_1_0	EXIST::FUNCTION:OCSP
+EVP_PKEY_asn1_find                      1511	1_1_0	EXIST::FUNCTION:
+d2i_ASN1_GENERALIZEDTIME                1512	1_1_0	EXIST::FUNCTION:
+OPENSSL_cleanup                         1513	1_1_0	EXIST::FUNCTION:
+X509_ATTRIBUTE_create                   1514	1_1_0	EXIST::FUNCTION:
+SCT_get_source                          1515	1_1_0	EXIST::FUNCTION:CT
+EVP_PKEY_verify_init                    1516	1_1_0	EXIST::FUNCTION:
+ASN1_TIME_set_string                    1517	1_1_0	EXIST::FUNCTION:
+BIO_free                                1518	1_1_0	EXIST::FUNCTION:
+i2d_X509_ALGOR                          1519	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_set0_crls                1520	1_1_0	EXIST::FUNCTION:
+ASYNC_pause_job                         1521	1_1_0	EXIST::FUNCTION:
+OCSP_BASICRESP_new                      1522	1_1_0	EXIST::FUNCTION:OCSP
+EVP_camellia_256_ofb                    1523	1_1_0	EXIST::FUNCTION:CAMELLIA
+PKCS12_item_i2d_encrypt                 1524	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_set_copy                  1525	1_1_0	EXIST::FUNCTION:
+EC_POINT_clear_free                     1526	1_1_0	EXIST::FUNCTION:EC
+i2s_ASN1_ENUMERATED_TABLE               1527	1_1_0	EXIST::FUNCTION:
+PKCS7_verify                            1528	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_add0_table            1529	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_set_cert                 1530	1_1_0	EXIST::FUNCTION:
+ASN1_GENERALSTRING_free                 1531	1_1_0	EXIST::FUNCTION:
+BN_MONT_CTX_set_locked                  1532	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_CTX_set_num                  1533	1_1_0	EXIST::FUNCTION:
+CONF_load                               1534	1_1_0	EXIST::FUNCTION:
+EC_KEY_METHOD_get_keygen                1535	1_1_0	EXIST::FUNCTION:EC
+EVP_PKEY_add1_attr_by_txt               1536	1_1_0	EXIST::FUNCTION:
+ASN1_INTEGER_set_uint64                 1537	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_get_attr_by_OBJ                1538	1_1_0	EXIST::FUNCTION:
+ASN1_add_oid_module                     1539	1_1_0	EXIST::FUNCTION:
+BN_div_recp                             1540	1_1_0	EXIST::FUNCTION:
+SRP_Verify_B_mod_N                      1541	1_1_0	EXIST::FUNCTION:SRP
+SXNET_free                              1542	1_1_0	EXIST::FUNCTION:
+CMS_get0_content                        1543	1_1_0	EXIST::FUNCTION:CMS
+BN_is_word                              1544	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_key_length                   1545	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_asn1_to_param                1546	1_1_0	EXIST::FUNCTION:
+OCSP_request_onereq_get0                1547	1_1_0	EXIST::FUNCTION:OCSP
+ERR_load_PKCS7_strings                  1548	1_1_0	EXIST::FUNCTION:
+X509_PUBKEY_get                         1549	1_1_0	EXIST::FUNCTION:
+EC_KEY_free                             1550	1_1_0	EXIST::FUNCTION:EC
+BIO_read                                1551	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_get_attr_by_NID                1552	1_1_0	EXIST::FUNCTION:
+BIO_get_accept_socket                   1553	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SOCK
+CMS_SignerInfo_sign                     1554	1_1_0	EXIST::FUNCTION:CMS
+ASN1_item_i2d_bio                       1555	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_CTX_block_size               1556	1_1_0	EXIST::FUNCTION:
+DIRECTORYSTRING_free                    1557	1_1_0	EXIST::FUNCTION:
+TS_CONF_set_default_engine              1558	1_1_0	EXIST::FUNCTION:ENGINE,TS
+BN_set_bit                              1559	1_1_0	EXIST::FUNCTION:
+EVP_MD_meth_set_app_datasize            1560	1_1_0	EXIST::FUNCTION:
+DSO_free                                1561	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_get_tsa                     1562	1_1_0	EXIST::FUNCTION:TS
+EC_GROUP_check                          1563	1_1_0	EXIST::FUNCTION:EC
+OPENSSL_sk_delete                       1564	1_1_0	EXIST::FUNCTION:
+TS_RESP_CTX_set_extension_cb            1565	1_1_0	EXIST::FUNCTION:TS
+EVP_CIPHER_CTX_nid                      1566	1_1_0	EXIST::FUNCTION:
+TS_RESP_CTX_add_md                      1567	1_1_0	EXIST::FUNCTION:TS
+DES_set_key                             1568	1_1_0	EXIST::FUNCTION:DES
+X509V3_extensions_print                 1569	1_1_0	EXIST::FUNCTION:
+PEM_do_header                           1570	1_1_0	EXIST::FUNCTION:
+i2d_re_X509_CRL_tbs                     1571	1_1_0	EXIST::FUNCTION:
+BIO_method_name                         1572	1_1_0	EXIST::FUNCTION:
+i2d_OCSP_CRLID                          1573	1_1_0	EXIST::FUNCTION:OCSP
+OCSP_request_set1_name                  1574	1_1_0	EXIST::FUNCTION:OCSP
+d2i_X509_NAME_ENTRY                     1575	1_1_0	EXIST::FUNCTION:
+X509_trusted                            1576	1_1_0	EXIST::FUNCTION:
+X509_TRUST_get_flags                    1577	1_1_0	EXIST::FUNCTION:
+PKCS7_set_content                       1578	1_1_0	EXIST::FUNCTION:
+PEM_write_X509_REQ_NEW                  1579	1_1_0	EXIST::FUNCTION:STDIO
+CONF_imodule_set_usr_data               1580	1_1_0	EXIST::FUNCTION:
+d2i_TS_RESP_fp                          1581	1_1_0	EXIST::FUNCTION:STDIO,TS
+X509_policy_tree_get0_user_policies     1582	1_1_0	EXIST::FUNCTION:
+DSA_do_sign                             1584	1_1_0	EXIST::FUNCTION:DSA
+EVP_CIPHER_CTX_reset                    1585	1_1_0	EXIST::FUNCTION:
+OCSP_REVOKEDINFO_new                    1586	1_1_0	EXIST::FUNCTION:OCSP
+SRP_Verify_A_mod_N                      1587	1_1_0	EXIST::FUNCTION:SRP
+SRP_VBASE_free                          1588	1_1_0	EXIST::FUNCTION:SRP
+PKCS7_add0_attrib_signing_time          1589	1_1_0	EXIST::FUNCTION:
+X509_STORE_set_flags                    1590	1_1_0	EXIST::FUNCTION:
+UI_get0_output_string                   1591	1_1_0	EXIST::FUNCTION:
+ERR_get_error_line_data                 1592	1_1_0	EXIST::FUNCTION:
+CTLOG_get0_name                         1593	1_1_0	EXIST::FUNCTION:CT
+ASN1_TBOOLEAN_it                        1594	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_TBOOLEAN_it                        1594	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+RC2_set_key                             1595	1_1_0	EXIST::FUNCTION:RC2
+X509_REVOKED_get_ext_by_NID             1596	1_1_0	EXIST::FUNCTION:
+RSA_padding_add_none                    1597	1_1_0	EXIST::FUNCTION:RSA
+EVP_rc5_32_12_16_cbc                    1599	1_1_0	EXIST::FUNCTION:RC5
+PEM_dek_info                            1600	1_1_0	EXIST::FUNCTION:
+ASN1_SCTX_get_template                  1601	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_asn1_get0                      1602	1_1_0	EXIST::FUNCTION:
+X509_verify                             1603	1_1_0	EXIST::FUNCTION:
+TS_RESP_CTX_get_request                 1604	1_1_0	EXIST::FUNCTION:TS
+EVP_cast5_cbc                           1605	1_1_0	EXIST::FUNCTION:CAST
+PEM_read_bio_X509_AUX                   1606	1_1_0	EXIST::FUNCTION:
+TS_ext_print_bio                        1607	1_1_0	EXIST::FUNCTION:TS
+SCT_set1_log_id                         1608	1_1_0	EXIST::FUNCTION:CT
+X509_get0_pubkey_bitstr                 1609	1_1_0	EXIST::FUNCTION:
+ENGINE_register_all_RAND                1610	1_1_0	EXIST::FUNCTION:ENGINE
+EVP_MD_meth_get_result_size             1612	1_1_0	EXIST::FUNCTION:
+BIO_ADDRINFO_address                    1613	1_1_0	EXIST::FUNCTION:SOCK
+ASN1_STRING_print_ex                    1614	1_1_0	EXIST::FUNCTION:
+i2d_CMS_ReceiptRequest                  1615	1_1_0	EXIST::FUNCTION:CMS
+d2i_TS_REQ_fp                           1616	1_1_0	EXIST::FUNCTION:STDIO,TS
+OCSP_REQ_CTX_i2d                        1617	1_1_0	EXIST::FUNCTION:OCSP
+EVP_PKEY_get_default_digest_nid         1618	1_1_0	EXIST::FUNCTION:
+ASIdOrRange_new                         1619	1_1_0	EXIST::FUNCTION:RFC3779
+ASN1_SCTX_new                           1620	1_1_0	EXIST::FUNCTION:
+X509V3_EXT_get                          1621	1_1_0	EXIST::FUNCTION:
+OCSP_id_cmp                             1622	1_1_0	EXIST::FUNCTION:OCSP
+NCONF_dump_bio                          1623	1_1_0	EXIST::FUNCTION:
+X509_NAME_get_entry                     1624	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_get1_DH                        1625	1_1_0	EXIST::FUNCTION:DH
+CRYPTO_gcm128_aad                       1626	1_1_0	EXIST::FUNCTION:
+EVP_des_cfb8                            1627	1_1_0	EXIST::FUNCTION:DES
+BN_BLINDING_convert                     1628	1_1_0	EXIST::FUNCTION:
+CRYPTO_ocb128_cleanup                   1629	1_1_0	EXIST::FUNCTION:OCB
+EVP_des_ede_cbc                         1630	1_1_0	EXIST::FUNCTION:DES
+i2d_ASN1_TIME                           1631	1_1_0	EXIST::FUNCTION:
+ENGINE_register_all_pkey_asn1_meths     1632	1_1_0	EXIST::FUNCTION:ENGINE
+OCSP_set_max_response_length            1633	1_1_0	EXIST::FUNCTION:OCSP
+d2i_ISSUING_DIST_POINT                  1634	1_1_0	EXIST::FUNCTION:
+CMS_RecipientInfo_set0_key              1635	1_1_0	EXIST::FUNCTION:CMS
+NCONF_new                               1636	1_1_0	EXIST::FUNCTION:
+OCSP_SINGLERESP_free                    1637	1_1_0	EXIST::FUNCTION:OCSP
+PKCS7_ENCRYPT_free                      1638	1_1_0	EXIST::FUNCTION:
+i2d_DIST_POINT                          1639	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_paramgen_init                  1640	1_1_0	EXIST::FUNCTION:
+TS_MSG_IMPRINT_dup                      1641	1_1_0	EXIST::FUNCTION:TS
+CMS_ContentInfo_it                      1642	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:CMS
+CMS_ContentInfo_it                      1642	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:CMS
+OCSP_resp_get0_signature                1643	1_1_0	EXIST::FUNCTION:OCSP
+X509_STORE_CTX_get1_issuer              1644	1_1_0	EXIST::FUNCTION:
+EVP_Digest                              1645	1_1_0	EXIST::FUNCTION:
+CRYPTO_set_ex_data                      1646	1_1_0	EXIST::FUNCTION:
+BN_bn2hex                               1647	1_1_0	EXIST::FUNCTION:
+BN_lshift1                              1648	1_1_0	EXIST::FUNCTION:
+i2d_EDIPARTYNAME                        1649	1_1_0	EXIST::FUNCTION:
+X509_policy_tree_get0_policies          1650	1_1_0	EXIST::FUNCTION:
+X509at_add1_attr                        1651	1_1_0	EXIST::FUNCTION:
+X509_get_ex_data                        1653	1_1_0	EXIST::FUNCTION:
+RSA_set_method                          1654	1_1_0	EXIST::FUNCTION:RSA
+X509_REVOKED_dup                        1655	1_1_0	EXIST::FUNCTION:
+ASN1_TIME_new                           1656	1_1_0	EXIST::FUNCTION:
+PEM_write_NETSCAPE_CERT_SEQUENCE        1657	1_1_0	EXIST::FUNCTION:STDIO
+PEM_read_X509_REQ                       1658	1_1_0	EXIST::FUNCTION:STDIO
+EC_GROUP_free                           1659	1_1_0	EXIST::FUNCTION:EC
+X509_CRL_get_meth_data                  1660	1_1_0	EXIST::FUNCTION:
+X509V3_add_value_uchar                  1661	1_1_0	EXIST::FUNCTION:
+BIO_asn1_get_suffix                     1662	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_clear_flags           1663	1_1_0	EXIST::FUNCTION:
+X509_NAME_add_entry_by_txt              1664	1_1_0	EXIST::FUNCTION:
+DES_ede3_cfb_encrypt                    1665	1_1_0	EXIST::FUNCTION:DES
+i2d_CMS_bio_stream                      1667	1_1_0	EXIST::FUNCTION:CMS
+DES_quad_cksum                          1668	1_1_0	EXIST::FUNCTION:DES
+X509_ATTRIBUTE_create_by_NID            1669	1_1_0	EXIST::FUNCTION:
+TS_VERIFY_CTX_free                      1670	1_1_0	EXIST::FUNCTION:TS
+EC_KEY_up_ref                           1671	1_1_0	EXIST::FUNCTION:EC
+EC_GROUP_get_basis_type                 1672	1_1_0	EXIST::FUNCTION:EC
+OCSP_crlID_new                          1673	1_1_0	EXIST:!VMS:FUNCTION:OCSP
+OCSP_crlID2_new                         1673	1_1_0	EXIST:VMS:FUNCTION:OCSP
+PEM_write_PKCS7                         1674	1_1_0	EXIST::FUNCTION:STDIO
+PKCS7_add_signer                        1675	1_1_0	EXIST::FUNCTION:
+X509_SIG_it                             1676	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_SIG_it                             1676	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ASYNC_start_job                         1677	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_dup                         1678	1_1_0	EXIST::FUNCTION:TS
+EVP_aes_192_ctr                         1679	1_1_0	EXIST::FUNCTION:
+PKCS12_pack_authsafes                   1680	1_1_0	EXIST::FUNCTION:
+PKCS7_get_attribute                     1681	1_1_0	EXIST::FUNCTION:
+OPENSSL_config                          1682	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0
+s2i_ASN1_INTEGER                        1683	1_1_0	EXIST::FUNCTION:
+CMS_signed_add1_attr_by_OBJ             1684	1_1_0	EXIST::FUNCTION:CMS
+CRYPTO_128_wrap_pad                     1685	1_1_0	EXIST::FUNCTION:
+CMS_EncryptedData_set1_key              1686	1_1_0	EXIST::FUNCTION:CMS
+OBJ_find_sigid_by_algs                  1687	1_1_0	EXIST::FUNCTION:
+ASN1_generate_nconf                     1688	1_1_0	EXIST::FUNCTION:
+CMS_add0_recipient_password             1689	1_1_0	EXIST::FUNCTION:CMS
+UI_get_string_type                      1690	1_1_0	EXIST::FUNCTION:
+PEM_read_bio_ECPrivateKey               1691	1_1_0	EXIST::FUNCTION:EC
+EVP_PKEY_get_attr                       1692	1_1_0	EXIST::FUNCTION:
+PEM_read_bio_ECPKParameters             1693	1_1_0	EXIST::FUNCTION:EC
+d2i_PKCS12_MAC_DATA                     1694	1_1_0	EXIST::FUNCTION:
+ENGINE_ctrl_cmd                         1695	1_1_0	EXIST::FUNCTION:ENGINE
+PKCS12_SAFEBAG_get_bag_nid              1696	1_1_0	EXIST::FUNCTION:
+TS_CONF_set_digests                     1697	1_1_0	EXIST::FUNCTION:TS
+PKCS7_SIGNED_it                         1698	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS7_SIGNED_it                         1698	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+b2i_PublicKey                           1699	1_1_0	EXIST::FUNCTION:DSA
+X509_PURPOSE_cleanup                    1700	1_1_0	EXIST::FUNCTION:
+ESS_SIGNING_CERT_dup                    1701	1_1_0	EXIST::FUNCTION:TS
+ENGINE_set_default_DSA                  1702	1_1_0	EXIST::FUNCTION:ENGINE
+X509_REVOKED_new                        1703	1_1_0	EXIST::FUNCTION:
+NCONF_WIN32                             1704	1_1_0	EXIST::FUNCTION:
+RSA_padding_check_PKCS1_OAEP_mgf1       1705	1_1_0	EXIST::FUNCTION:RSA
+X509_policy_tree_get0_level             1706	1_1_0	EXIST::FUNCTION:
+ASN1_parse_dump                         1708	1_1_0	EXIST::FUNCTION:
+BIO_vfree                               1709	1_1_0	EXIST::FUNCTION:
+CRYPTO_cbc128_decrypt                   1710	1_1_0	EXIST::FUNCTION:
+UI_dup_verify_string                    1711	1_1_0	EXIST::FUNCTION:
+d2i_PKCS7_bio                           1712	1_1_0	EXIST::FUNCTION:
+ENGINE_set_default_digests              1713	1_1_0	EXIST::FUNCTION:ENGINE
+i2d_PublicKey                           1714	1_1_0	EXIST::FUNCTION:
+RC5_32_set_key                          1715	1_1_0	EXIST::FUNCTION:RC5
+AES_unwrap_key                          1716	1_1_0	EXIST::FUNCTION:
+EVP_Cipher                              1717	1_1_0	EXIST::FUNCTION:
+AES_set_decrypt_key                     1718	1_1_0	EXIST::FUNCTION:
+BF_ofb64_encrypt                        1719	1_1_0	EXIST::FUNCTION:BF
+d2i_TS_TST_INFO_fp                      1720	1_1_0	EXIST::FUNCTION:STDIO,TS
+X509_find_by_issuer_and_serial          1721	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_type                           1722	1_1_0	EXIST::FUNCTION:
+ENGINE_ctrl                             1723	1_1_0	EXIST::FUNCTION:ENGINE
+EVP_cast5_ecb                           1724	1_1_0	EXIST::FUNCTION:CAST
+BIO_nwrite0                             1725	1_1_0	EXIST::FUNCTION:
+CAST_encrypt                            1726	1_1_0	EXIST::FUNCTION:CAST
+a2d_ASN1_OBJECT                         1727	1_1_0	EXIST::FUNCTION:
+OCSP_ONEREQ_delete_ext                  1728	1_1_0	EXIST::FUNCTION:OCSP
+UI_method_get_reader                    1729	1_1_0	EXIST::FUNCTION:
+CMS_unsigned_get_attr                   1730	1_1_0	EXIST::FUNCTION:CMS
+EVP_aes_256_cbc                         1731	1_1_0	EXIST::FUNCTION:
+X509_check_ip_asc                       1732	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_X509_AUX                  1733	1_1_0	EXIST::FUNCTION:
+RC2_cbc_encrypt                         1734	1_1_0	EXIST::FUNCTION:RC2
+TS_MSG_IMPRINT_new                      1735	1_1_0	EXIST::FUNCTION:TS
+EVP_ENCODE_CTX_new                      1736	1_1_0	EXIST::FUNCTION:
+BIO_f_base64                            1737	1_1_0	EXIST::FUNCTION:
+CMS_verify                              1738	1_1_0	EXIST::FUNCTION:CMS
+i2d_PrivateKey                          1739	1_1_0	EXIST::FUNCTION:
+i2d_OCSP_ONEREQ                         1740	1_1_0	EXIST::FUNCTION:OCSP
+OPENSSL_issetugid                       1741	1_1_0	EXIST::FUNCTION:
+d2i_ASN1_OBJECT                         1742	1_1_0	EXIST::FUNCTION:
+EVP_MD_meth_set_flags                   1743	1_1_0	EXIST::FUNCTION:
+EVP_idea_cbc                            1744	1_1_0	EXIST::FUNCTION:IDEA
+EC_POINT_cmp                            1745	1_1_0	EXIST::FUNCTION:EC
+ASN1_buf_print                          1746	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_hex2ctrl                   1747	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_PKCS8PrivateKey           1748	1_1_0	EXIST::FUNCTION:
+CMAC_Update                             1749	1_1_0	EXIST::FUNCTION:CMAC
+d2i_ASN1_UTCTIME                        1750	1_1_0	EXIST::FUNCTION:
+OPENSSL_sk_insert                       1751	1_1_0	EXIST::FUNCTION:
+DSO_up_ref                              1752	1_1_0	EXIST::FUNCTION:
+EVP_rc2_cbc                             1753	1_1_0	EXIST::FUNCTION:RC2
+i2d_NETSCAPE_SPKI                       1754	1_1_0	EXIST::FUNCTION:
+ASYNC_init_thread                       1755	1_1_0	EXIST::FUNCTION:
+OCSP_BASICRESP_get_ext_by_OBJ           1756	1_1_0	EXIST::FUNCTION:OCSP
+X509_reject_clear                       1757	1_1_0	EXIST::FUNCTION:
+DH_security_bits                        1758	1_1_0	EXIST::FUNCTION:DH
+LONG_it                                 1759	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:DEPRECATEDIN_1_2_0
+LONG_it                                 1759	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:DEPRECATEDIN_1_2_0
+ASN1_dup                                1760	1_1_0	EXIST::FUNCTION:
+TS_RESP_new                             1761	1_1_0	EXIST::FUNCTION:TS
+i2d_PKCS8PrivateKeyInfo_fp              1762	1_1_0	EXIST::FUNCTION:STDIO
+X509_alias_get0                         1763	1_1_0	EXIST::FUNCTION:
+X509_ATTRIBUTE_free                     1764	1_1_0	EXIST::FUNCTION:
+d2i_X509_bio                            1765	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_get_exts                    1766	1_1_0	EXIST::FUNCTION:TS
+EVP_aes_256_ecb                         1767	1_1_0	EXIST::FUNCTION:
+ASN1_BIT_STRING_name_print              1768	1_1_0	EXIST::FUNCTION:
+d2i_X509_EXTENSIONS                     1769	1_1_0	EXIST::FUNCTION:
+ASN1_OCTET_STRING_free                  1770	1_1_0	EXIST::FUNCTION:
+PKCS7_RECIP_INFO_free                   1771	1_1_0	EXIST::FUNCTION:
+ASN1_tag2bit                            1772	1_1_0	EXIST::FUNCTION:
+TS_REQ_add_ext                          1773	1_1_0	EXIST::FUNCTION:TS
+X509_digest                             1776	1_1_0	EXIST::FUNCTION:
+CRYPTO_THREAD_cleanup_local             1777	1_1_0	EXIST::FUNCTION:
+NETSCAPE_CERT_SEQUENCE_it               1778	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+NETSCAPE_CERT_SEQUENCE_it               1778	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+EVP_aes_128_wrap                        1779	1_1_0	EXIST::FUNCTION:
+X509V3_conf_free                        1780	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_get_ext_by_NID              1781	1_1_0	EXIST::FUNCTION:TS
+EVP_aes_256_cfb1                        1782	1_1_0	EXIST::FUNCTION:
+X509_issuer_name_cmp                    1783	1_1_0	EXIST::FUNCTION:
+CMS_RecipientEncryptedKey_get0_id       1784	1_1_0	EXIST::FUNCTION:CMS
+EVP_PKEY_meth_get_verify_recover        1785	1_1_0	EXIST::FUNCTION:
+NAME_CONSTRAINTS_check                  1786	1_1_0	EXIST::FUNCTION:
+X509_CERT_AUX_it                        1787	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_CERT_AUX_it                        1787	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+X509_get_X509_PUBKEY                    1789	1_1_0	EXIST::FUNCTION:
+TXT_DB_create_index                     1790	1_1_0	EXIST::FUNCTION:
+RAND_set_rand_engine                    1791	1_1_0	EXIST::FUNCTION:ENGINE
+X509_set_serialNumber                   1792	1_1_0	EXIST::FUNCTION:
+BN_mod_exp_mont_consttime               1793	1_1_0	EXIST::FUNCTION:
+X509V3_parse_list                       1794	1_1_0	EXIST::FUNCTION:
+ACCESS_DESCRIPTION_new                  1795	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_CTX_clear_flags              1796	1_1_0	EXIST::FUNCTION:
+ECDSA_size                              1797	1_1_0	EXIST::FUNCTION:EC
+X509_ALGOR_get0                         1798	1_1_0	EXIST::FUNCTION:
+d2i_ACCESS_DESCRIPTION                  1799	1_1_0	EXIST::FUNCTION:
+OCSP_SINGLERESP_get_ext_by_NID          1800	1_1_0	EXIST::FUNCTION:OCSP
+a2i_IPADDRESS_NC                        1801	1_1_0	EXIST::FUNCTION:
+CTLOG_STORE_load_default_file           1802	1_1_0	EXIST::FUNCTION:CT
+PKCS12_SAFEBAG_create_pkcs8_encrypt     1803	1_1_0	EXIST::FUNCTION:
+RAND_screen                             1804	1_1_0	EXIST:_WIN32:FUNCTION:DEPRECATEDIN_1_1_0
+CONF_get_string                         1805	1_1_0	EXIST::FUNCTION:
+X509_cmp_current_time                   1806	1_1_0	EXIST::FUNCTION:
+i2d_DSAPrivateKey                       1807	1_1_0	EXIST::FUNCTION:DSA
+ASN1_BIT_STRING_new                     1808	1_1_0	EXIST::FUNCTION:
+BIO_new_file                            1809	1_1_0	EXIST::FUNCTION:
+PKCS7_SIGNER_INFO_get0_algs             1810	1_1_0	EXIST::FUNCTION:
+TS_RESP_set_status_info                 1811	1_1_0	EXIST::FUNCTION:TS
+OPENSSL_LH_delete                       1812	1_1_0	EXIST::FUNCTION:
+TS_STATUS_INFO_dup                      1813	1_1_0	EXIST::FUNCTION:TS
+X509v3_addr_get_range                   1814	1_1_0	EXIST::FUNCTION:RFC3779
+X509_EXTENSION_get_data                 1815	1_1_0	EXIST::FUNCTION:
+RC5_32_encrypt                          1816	1_1_0	EXIST::FUNCTION:RC5
+DIST_POINT_set_dpname                   1817	1_1_0	EXIST::FUNCTION:
+BIO_sock_info                           1818	1_1_0	EXIST::FUNCTION:SOCK
+OPENSSL_hexstr2buf                      1819	1_1_0	EXIST::FUNCTION:
+EVP_add_cipher                          1820	1_1_0	EXIST::FUNCTION:
+X509V3_EXT_add_list                     1821	1_1_0	EXIST::FUNCTION:
+CMS_compress                            1822	1_1_0	EXIST::FUNCTION:CMS
+X509_get_ext_by_critical                1823	1_1_0	EXIST::FUNCTION:
+ASYNC_WAIT_CTX_clear_fd                 1824	1_1_0	EXIST::FUNCTION:
+ZLONG_it                                1825	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:DEPRECATEDIN_1_2_0
+ZLONG_it                                1825	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:DEPRECATEDIN_1_2_0
+OPENSSL_sk_find_ex                      1826	1_1_0	EXIST::FUNCTION:
+ASN1_ENUMERATED_to_BN                   1827	1_1_0	EXIST::FUNCTION:
+X509_CRL_get_ext_d2i                    1828	1_1_0	EXIST::FUNCTION:
+i2d_AUTHORITY_KEYID                     1829	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_get_time                    1830	1_1_0	EXIST::FUNCTION:TS
+ASN1_VISIBLESTRING_it                   1831	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_VISIBLESTRING_it                   1831	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+X509V3_EXT_REQ_add_conf                 1832	1_1_0	EXIST::FUNCTION:
+ASN1_STRING_to_UTF8                     1833	1_1_0	EXIST::FUNCTION:
+EVP_MD_meth_set_update                  1835	1_1_0	EXIST::FUNCTION:
+EVP_camellia_192_cbc                    1836	1_1_0	EXIST::FUNCTION:CAMELLIA
+OPENSSL_LH_stats_bio                    1837	1_1_0	EXIST::FUNCTION:
+PKCS7_set_signed_attributes             1838	1_1_0	EXIST::FUNCTION:
+EC_KEY_priv2buf                         1839	1_1_0	EXIST::FUNCTION:EC
+BN_BLINDING_free                        1840	1_1_0	EXIST::FUNCTION:
+IPAddressChoice_new                     1841	1_1_0	EXIST::FUNCTION:RFC3779
+X509_CRL_get_ext_count                  1842	1_1_0	EXIST::FUNCTION:
+PKCS12_add_key                          1843	1_1_0	EXIST::FUNCTION:
+EVP_camellia_128_cfb1                   1844	1_1_0	EXIST::FUNCTION:CAMELLIA
+BIO_find_type                           1845	1_1_0	EXIST::FUNCTION:
+ISSUING_DIST_POINT_it                   1846	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ISSUING_DIST_POINT_it                   1846	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+BIO_ctrl_wpending                       1847	1_1_0	EXIST::FUNCTION:
+X509_ALGOR_cmp                          1848	1_1_0	EXIST::FUNCTION:
+i2d_ASN1_bio_stream                     1849	1_1_0	EXIST::FUNCTION:
+CRYPTO_THREAD_init_local                1850	1_1_0	EXIST::FUNCTION:
+TS_RESP_CTX_set_serial_cb               1851	1_1_0	EXIST::FUNCTION:TS
+POLICY_MAPPING_it                       1852	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+POLICY_MAPPING_it                       1852	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ERR_load_KDF_strings                    1853	1_1_0	EXIST::FUNCTION:
+UI_method_set_reader                    1854	1_1_0	EXIST::FUNCTION:
+BIO_next                                1855	1_1_0	EXIST::FUNCTION:
+ASN1_STRING_set_default_mask_asc        1856	1_1_0	EXIST::FUNCTION:
+X509_CRL_new                            1857	1_1_0	EXIST::FUNCTION:
+i2b_PrivateKey_bio                      1858	1_1_0	EXIST::FUNCTION:DSA
+ASN1_STRING_length_set                  1859	1_1_0	EXIST::FUNCTION:
+PEM_write_PKCS8                         1860	1_1_0	EXIST::FUNCTION:STDIO
+PKCS7_digest_from_attributes            1861	1_1_0	EXIST::FUNCTION:
+EC_GROUP_set_curve_GFp                  1862	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC
+X509_PURPOSE_get0                       1863	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_set1_DSA                       1864	1_1_0	EXIST::FUNCTION:DSA
+X509_NAME_it                            1865	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_NAME_it                            1865	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+OBJ_add_object                          1866	1_1_0	EXIST::FUNCTION:
+DSA_generate_key                        1867	1_1_0	EXIST::FUNCTION:DSA
+EVP_DigestUpdate                        1868	1_1_0	EXIST::FUNCTION:
+X509_get_ext_by_OBJ                     1869	1_1_0	EXIST::FUNCTION:
+PBEPARAM_new                            1870	1_1_0	EXIST::FUNCTION:
+EVP_aes_128_cbc                         1871	1_1_0	EXIST::FUNCTION:
+CRYPTO_dup_ex_data                      1872	1_1_0	EXIST::FUNCTION:
+OCSP_single_get0_status                 1873	1_1_0	EXIST::FUNCTION:OCSP
+d2i_AUTHORITY_INFO_ACCESS               1874	1_1_0	EXIST::FUNCTION:
+PEM_read_RSAPrivateKey                  1875	1_1_0	EXIST::FUNCTION:RSA,STDIO
+BIO_closesocket                         1876	1_1_0	EXIST::FUNCTION:SOCK
+RSA_verify_ASN1_OCTET_STRING            1877	1_1_0	EXIST::FUNCTION:RSA
+SCT_set_log_entry_type                  1878	1_1_0	EXIST::FUNCTION:CT
+BN_new                                  1879	1_1_0	EXIST::FUNCTION:
+X509_OBJECT_retrieve_by_subject         1880	1_1_0	EXIST::FUNCTION:
+MD5_Final                               1881	1_1_0	EXIST::FUNCTION:MD5
+X509_STORE_set_verify_cb                1882	1_1_0	EXIST::FUNCTION:
+OCSP_REQUEST_print                      1883	1_1_0	EXIST::FUNCTION:OCSP
+CMS_add1_crl                            1884	1_1_0	EXIST::FUNCTION:CMS
+d2i_EDIPARTYNAME                        1885	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_set0_trusted_stack       1886	1_1_0	EXIST::FUNCTION:
+BIO_ADDR_service_string                 1887	1_1_0	EXIST::FUNCTION:SOCK
+ASN1_BOOLEAN_it                         1888	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_BOOLEAN_it                         1888	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+TS_RESP_CTX_set_time_cb                 1889	1_1_0	EXIST::FUNCTION:TS
+IDEA_cbc_encrypt                        1890	1_1_0	EXIST::FUNCTION:IDEA
+BN_CTX_secure_new                       1891	1_1_0	EXIST::FUNCTION:
+OCSP_ONEREQ_add_ext                     1892	1_1_0	EXIST::FUNCTION:OCSP
+CMS_uncompress                          1893	1_1_0	EXIST::FUNCTION:CMS
+CRYPTO_mem_debug_pop                    1895	1_1_0	EXIST::FUNCTION:CRYPTO_MDEBUG
+EVP_aes_192_cfb128                      1896	1_1_0	EXIST::FUNCTION:
+OCSP_REQ_CTX_nbio                       1897	1_1_0	EXIST::FUNCTION:OCSP
+EVP_CIPHER_CTX_copy                     1898	1_1_0	EXIST::FUNCTION:
+CRYPTO_secure_allocated                 1899	1_1_0	EXIST::FUNCTION:
+UI_UTIL_read_pw_string                  1900	1_1_0	EXIST::FUNCTION:
+NOTICEREF_free                          1901	1_1_0	EXIST::FUNCTION:
+AES_cfb1_encrypt                        1902	1_1_0	EXIST::FUNCTION:
+X509v3_get_ext                          1903	1_1_0	EXIST::FUNCTION:
+CRYPTO_gcm128_encrypt_ctr32             1905	1_1_0	EXIST::FUNCTION:
+SCT_set1_signature                      1906	1_1_0	EXIST::FUNCTION:CT
+CONF_imodule_get_module                 1907	1_1_0	EXIST::FUNCTION:
+NAME_CONSTRAINTS_new                    1908	1_1_0	EXIST::FUNCTION:
+BN_usub                                 1909	1_1_0	EXIST::FUNCTION:
+SRP_Calc_B                              1910	1_1_0	EXIST::FUNCTION:SRP
+CMS_decrypt_set1_key                    1911	1_1_0	EXIST::FUNCTION:CMS
+EC_GROUP_get_degree                     1912	1_1_0	EXIST::FUNCTION:EC
+X509_ALGOR_set0                         1913	1_1_0	EXIST::FUNCTION:
+OPENSSL_LH_set_down_load                1914	1_1_0	EXIST::FUNCTION:
+X509v3_asid_inherits                    1915	1_1_0	EXIST::FUNCTION:RFC3779
+EVP_MD_meth_get_app_datasize            1916	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_num_untrusted        1917	1_1_0	EXIST::FUNCTION:
+RAND_poll                               1918	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_print_public                   1919	1_1_0	EXIST::FUNCTION:
+CMS_SignedData_init                     1920	1_1_0	EXIST::FUNCTION:CMS
+X509_REQ_free                           1921	1_1_0	EXIST::FUNCTION:
+ASN1_INTEGER_set                        1922	1_1_0	EXIST::FUNCTION:
+EVP_DecodeFinal                         1923	1_1_0	EXIST::FUNCTION:
+MD5_Transform                           1925	1_1_0	EXIST::FUNCTION:MD5
+SRP_create_verifier_BN                  1926	1_1_0	EXIST::FUNCTION:SRP
+ENGINE_register_all_EC                  1927	1_1_0	EXIST::FUNCTION:ENGINE
+EVP_camellia_128_ofb                    1928	1_1_0	EXIST::FUNCTION:CAMELLIA
+PEM_write_X509_AUX                      1929	1_1_0	EXIST::FUNCTION:STDIO
+X509_LOOKUP_by_subject                  1930	1_1_0	EXIST::FUNCTION:
+X509_REQ_add_extensions                 1931	1_1_0	EXIST::FUNCTION:
+Camellia_cbc_encrypt                    1932	1_1_0	EXIST::FUNCTION:CAMELLIA
+EC_KEY_METHOD_new                       1933	1_1_0	EXIST::FUNCTION:EC
+RSA_flags                               1934	1_1_0	EXIST::FUNCTION:RSA
+X509_NAME_add_entry                     1935	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_get_asn1_iv                  1936	1_1_0	EXIST::FUNCTION:
+i2d_RSAPrivateKey_bio                   1937	1_1_0	EXIST::FUNCTION:RSA
+PKCS5_PBE_keyivgen                      1938	1_1_0	EXIST::FUNCTION:
+i2d_OCSP_SERVICELOC                     1939	1_1_0	EXIST::FUNCTION:OCSP
+EC_POINT_copy                           1940	1_1_0	EXIST::FUNCTION:EC
+X509V3_EXT_CRL_add_nconf                1941	1_1_0	EXIST::FUNCTION:
+SHA256_Init                             1942	1_1_0	EXIST::FUNCTION:
+X509_NAME_ENTRY_get_object              1943	1_1_0	EXIST::FUNCTION:
+ASN1_ENUMERATED_free                    1944	1_1_0	EXIST::FUNCTION:
+X509_CRL_set_meth_data                  1945	1_1_0	EXIST::FUNCTION:
+EVP_aes_192_cfb1                        1946	1_1_0	EXIST::FUNCTION:
+EVP_MD_CTX_set_flags                    1947	1_1_0	EXIST::FUNCTION:
+EVP_seed_cbc                            1948	1_1_0	EXIST::FUNCTION:SEED
+d2i_PKCS12                              1949	1_1_0	EXIST::FUNCTION:
+X509_policy_node_get0_policy            1950	1_1_0	EXIST::FUNCTION:
+PKCS12_unpack_p7data                    1951	1_1_0	EXIST::FUNCTION:
+ECDSA_sign                              1952	1_1_0	EXIST::FUNCTION:EC
+d2i_PKCS12_fp                           1953	1_1_0	EXIST::FUNCTION:STDIO
+CMS_unsigned_get_attr_by_NID            1954	1_1_0	EXIST::FUNCTION:CMS
+UI_add_user_data                        1955	1_1_0	EXIST::FUNCTION:
+BN_bntest_rand                          1956	1_1_0	EXIST::FUNCTION:
+X509_get_pubkey                         1957	1_1_0	EXIST::FUNCTION:
+i2d_X509_NAME                           1958	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_add1_attr                      1959	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_purpose_inherit          1960	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_get_keygen                1961	1_1_0	EXIST::FUNCTION:
+ENGINE_get_pkey_asn1_meth               1962	1_1_0	EXIST::FUNCTION:ENGINE
+SHA256_Update                           1963	1_1_0	EXIST::FUNCTION:
+d2i_PKCS7_ISSUER_AND_SERIAL             1964	1_1_0	EXIST::FUNCTION:
+PKCS12_unpack_authsafes                 1965	1_1_0	EXIST::FUNCTION:
+X509_CRL_it                             1966	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_CRL_it                             1966	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+d2i_X509_ALGOR                          1967	1_1_0	EXIST::FUNCTION:
+PKCS12_PBE_keyivgen                     1968	1_1_0	EXIST::FUNCTION:
+BIO_test_flags                          1969	1_1_0	EXIST::FUNCTION:
+EC_POINT_get_affine_coordinates_GF2m    1970	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC,EC2M
+EVP_ENCODE_CTX_num                      1971	1_1_0	EXIST::FUNCTION:
+Camellia_cfb1_encrypt                   1972	1_1_0	EXIST::FUNCTION:CAMELLIA
+NCONF_load_fp                           1973	1_1_0	EXIST::FUNCTION:STDIO
+i2d_OCSP_REQINFO                        1974	1_1_0	EXIST::FUNCTION:OCSP
+EVP_PKEY_sign                           1975	1_1_0	EXIST::FUNCTION:
+TS_REQ_get_ext_by_critical              1976	1_1_0	EXIST::FUNCTION:TS
+EC_KEY_key2buf                          1977	1_1_0	EXIST::FUNCTION:EC
+X509_EXTENSION_it                       1978	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_EXTENSION_it                       1978	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+i2d_PKCS8_fp                            1979	1_1_0	EXIST::FUNCTION:STDIO
+UTF8_getc                               1980	1_1_0	EXIST::FUNCTION:
+ASN1_IA5STRING_free                     1981	1_1_0	EXIST::FUNCTION:
+EC_KEY_METHOD_get_verify                1982	1_1_0	EXIST::FUNCTION:EC
+OBJ_NAME_do_all                         1983	1_1_0	EXIST::FUNCTION:
+d2i_TS_MSG_IMPRINT_fp                   1984	1_1_0	EXIST::FUNCTION:STDIO,TS
+X509_CRL_verify                         1985	1_1_0	EXIST::FUNCTION:
+X509_get0_uids                          1986	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_get0_DSA                       1987	1_1_0	EXIST::FUNCTION:DSA
+d2i_CMS_ContentInfo                     1988	1_1_0	EXIST::FUNCTION:CMS
+EVP_CIPHER_meth_get_do_cipher           1989	1_1_0	EXIST::FUNCTION:
+i2d_DSA_PUBKEY                          1990	1_1_0	EXIST::FUNCTION:DSA
+GENERAL_NAME_it                         1991	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+GENERAL_NAME_it                         1991	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+EVP_des_ede_ecb                         1992	1_1_0	EXIST::FUNCTION:DES
+i2d_CRL_DIST_POINTS                     1993	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_X509_REQ_NEW              1994	1_1_0	EXIST::FUNCTION:
+RC5_32_ofb64_encrypt                    1995	1_1_0	EXIST::FUNCTION:RC5
+i2d_PKCS7                               1996	1_1_0	EXIST::FUNCTION:
+BN_mod_lshift_quick                     1997	1_1_0	EXIST::FUNCTION:
+DIST_POINT_NAME_it                      1998	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+DIST_POINT_NAME_it                      1998	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+PEM_read_PrivateKey                     1999	1_1_0	EXIST::FUNCTION:STDIO
+X509V3_get_d2i                          2000	1_1_0	EXIST::FUNCTION:
+PKCS7_SIGNER_INFO_sign                  2001	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_free                        2002	1_1_0	EXIST::FUNCTION:TS
+DSA_security_bits                       2003	1_1_0	EXIST::FUNCTION:DSA
+X509v3_addr_is_canonical                2004	1_1_0	EXIST::FUNCTION:RFC3779
+BN_mod_mul_reciprocal                   2005	1_1_0	EXIST::FUNCTION:
+TS_REQ_get_version                      2006	1_1_0	EXIST::FUNCTION:TS
+BN_exp                                  2007	1_1_0	EXIST::FUNCTION:
+i2d_SXNET                               2008	1_1_0	EXIST::FUNCTION:
+OBJ_bsearch_                            2009	1_1_0	EXIST::FUNCTION:
+OPENSSL_LH_new                          2010	1_1_0	EXIST::FUNCTION:
+ENGINE_register_all_pkey_meths          2011	1_1_0	EXIST::FUNCTION:ENGINE
+ENGINE_get_init_function                2012	1_1_0	EXIST::FUNCTION:ENGINE
+EC_POINT_point2hex                      2013	1_1_0	EXIST::FUNCTION:EC
+ENGINE_get_default_DSA                  2014	1_1_0	EXIST::FUNCTION:ENGINE
+ENGINE_register_all_complete            2015	1_1_0	EXIST::FUNCTION:ENGINE
+SRP_get_default_gN                      2016	1_1_0	EXIST::FUNCTION:SRP
+UI_dup_input_boolean                    2017	1_1_0	EXIST::FUNCTION:
+PKCS7_dup                               2018	1_1_0	EXIST::FUNCTION:
+i2d_TS_REQ_fp                           2019	1_1_0	EXIST::FUNCTION:STDIO,TS
+i2d_OTHERNAME                           2020	1_1_0	EXIST::FUNCTION:
+EC_KEY_get0_private_key                 2021	1_1_0	EXIST::FUNCTION:EC
+SCT_get0_extensions                     2022	1_1_0	EXIST::FUNCTION:CT
+OPENSSL_LH_node_stats_bio               2023	1_1_0	EXIST::FUNCTION:
+i2d_DIRECTORYSTRING                     2024	1_1_0	EXIST::FUNCTION:
+BN_X931_derive_prime_ex                 2025	1_1_0	EXIST::FUNCTION:
+ENGINE_get_pkey_asn1_meth_str           2026	1_1_0	EXIST::FUNCTION:ENGINE
+PKCS7_signatureVerify                   2027	1_1_0	EXIST::FUNCTION:
+CRYPTO_ocb128_new                       2028	1_1_0	EXIST::FUNCTION:OCB
+EC_curve_nist2nid                       2029	1_1_0	EXIST::FUNCTION:EC
+UI_get0_result                          2030	1_1_0	EXIST::FUNCTION:
+OCSP_request_add1_nonce                 2031	1_1_0	EXIST::FUNCTION:OCSP
+UI_construct_prompt                     2032	1_1_0	EXIST::FUNCTION:
+ENGINE_unregister_RSA                   2033	1_1_0	EXIST::FUNCTION:ENGINE
+EC_GROUP_order_bits                     2034	1_1_0	EXIST::FUNCTION:EC
+d2i_CMS_bio                             2035	1_1_0	EXIST::FUNCTION:CMS
+OPENSSL_sk_num                          2036	1_1_0	EXIST::FUNCTION:
+_shadow_DES_check_key                   2037	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:DES
+_shadow_DES_check_key                   2037	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:DES
+CMS_RecipientInfo_set0_pkey             2038	1_1_0	EXIST::FUNCTION:CMS
+X509_STORE_CTX_set_default              2039	1_1_0	EXIST::FUNCTION:
+AES_wrap_key                            2040	1_1_0	EXIST::FUNCTION:
+EVP_md_null                             2041	1_1_0	EXIST::FUNCTION:
+i2d_SCT_LIST                            2042	1_1_0	EXIST::FUNCTION:CT
+PKCS7_get_issuer_and_serial             2043	1_1_0	EXIST::FUNCTION:
+PKCS7_SIGN_ENVELOPE_it                  2044	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS7_SIGN_ENVELOPE_it                  2044	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ASN1_d2i_fp                             2045	1_1_0	EXIST::FUNCTION:STDIO
+EVP_DecryptFinal                        2046	1_1_0	EXIST::FUNCTION:
+ASN1_ENUMERATED_it                      2047	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_ENUMERATED_it                      2047	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+o2i_ECPublicKey                         2048	1_1_0	EXIST::FUNCTION:EC
+ERR_load_BUF_strings                    2049	1_1_0	EXIST::FUNCTION:
+PEM_read_bio_RSA_PUBKEY                 2050	1_1_0	EXIST::FUNCTION:RSA
+OCSP_SINGLERESP_new                     2051	1_1_0	EXIST::FUNCTION:OCSP
+ASN1_SCTX_free                          2052	1_1_0	EXIST::FUNCTION:
+i2d_ECPrivateKey_fp                     2053	1_1_0	EXIST::FUNCTION:EC,STDIO
+EVP_CIPHER_CTX_original_iv              2054	1_1_0	EXIST::FUNCTION:
+PKCS7_SIGNED_free                       2055	1_1_0	EXIST::FUNCTION:
+X509_TRUST_get0_name                    2056	1_1_0	EXIST::FUNCTION:
+ENGINE_get_load_pubkey_function         2057	1_1_0	EXIST::FUNCTION:ENGINE
+UI_get_default_method                   2058	1_1_0	EXIST::FUNCTION:
+PKCS12_add_CSPName_asc                  2059	1_1_0	EXIST::FUNCTION:
+PEM_write_PUBKEY                        2060	1_1_0	EXIST::FUNCTION:STDIO
+UI_method_set_prompt_constructor        2061	1_1_0	EXIST::FUNCTION:
+OBJ_length                              2062	1_1_0	EXIST::FUNCTION:
+BN_GENCB_get_arg                        2063	1_1_0	EXIST::FUNCTION:
+EVP_MD_CTX_clear_flags                  2064	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_get_verifyctx             2065	1_1_0	EXIST::FUNCTION:
+CT_POLICY_EVAL_CTX_get0_cert            2066	1_1_0	EXIST::FUNCTION:CT
+PEM_write_DHparams                      2067	1_1_0	EXIST::FUNCTION:DH,STDIO
+DH_set_ex_data                          2068	1_1_0	EXIST::FUNCTION:DH
+OCSP_SIGNATURE_free                     2069	1_1_0	EXIST::FUNCTION:OCSP
+CRYPTO_128_unwrap_pad                   2070	1_1_0	EXIST::FUNCTION:
+BIO_new_CMS                             2071	1_1_0	EXIST::FUNCTION:CMS
+i2d_ASN1_ENUMERATED                     2072	1_1_0	EXIST::FUNCTION:
+PEM_read_DSAparams                      2073	1_1_0	EXIST::FUNCTION:DSA,STDIO
+TS_TST_INFO_set_ordering                2074	1_1_0	EXIST::FUNCTION:TS
+MDC2_Init                               2075	1_1_0	EXIST::FUNCTION:MDC2
+i2o_SCT                                 2076	1_1_0	EXIST::FUNCTION:CT
+d2i_TS_STATUS_INFO                      2077	1_1_0	EXIST::FUNCTION:TS
+ERR_error_string_n                      2078	1_1_0	EXIST::FUNCTION:
+HMAC                                    2079	1_1_0	EXIST::FUNCTION:
+BN_mul                                  2080	1_1_0	EXIST::FUNCTION:
+BN_get0_nist_prime_384                  2081	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_set1_ip_asc           2082	1_1_0	EXIST::FUNCTION:
+CONF_modules_load                       2083	1_1_0	EXIST::FUNCTION:
+d2i_RSAPublicKey                        2084	1_1_0	EXIST::FUNCTION:RSA
+i2d_ASN1_GENERALSTRING                  2085	1_1_0	EXIST::FUNCTION:
+POLICYQUALINFO_new                      2086	1_1_0	EXIST::FUNCTION:
+PKCS7_RECIP_INFO_get0_alg               2087	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_base_id                        2088	1_1_0	EXIST::FUNCTION:
+UI_method_set_opener                    2089	1_1_0	EXIST::FUNCTION:
+X509v3_get_ext_by_NID                   2090	1_1_0	EXIST::FUNCTION:
+TS_CONF_set_policies                    2091	1_1_0	EXIST::FUNCTION:TS
+CMS_SignerInfo_cert_cmp                 2092	1_1_0	EXIST::FUNCTION:CMS
+PEM_read                                2093	1_1_0	EXIST::FUNCTION:STDIO
+X509_STORE_set_depth                    2094	1_1_0	EXIST::FUNCTION:
+EC_KEY_METHOD_get_sign                  2095	1_1_0	EXIST::FUNCTION:EC
+EVP_CIPHER_CTX_iv                       2096	1_1_0	EXIST::FUNCTION:
+i2d_ESS_SIGNING_CERT                    2097	1_1_0	EXIST::FUNCTION:TS
+TS_RESP_set_tst_info                    2098	1_1_0	EXIST::FUNCTION:TS
+EVP_PKEY_CTX_set_data                   2099	1_1_0	EXIST::FUNCTION:
+CMS_EnvelopedData_create                2100	1_1_0	EXIST::FUNCTION:CMS
+SCT_new                                 2101	1_1_0	EXIST::FUNCTION:CT
+X509_REQ_add1_attr                      2102	1_1_0	EXIST::FUNCTION:
+X509_get_ext_count                      2103	1_1_0	EXIST::FUNCTION:
+CRYPTO_cts128_decrypt                   2104	1_1_0	EXIST::FUNCTION:
+ASYNC_WAIT_CTX_get_fd                   2105	1_1_0	EXIST::FUNCTION:
+i2d_TS_REQ                              2106	1_1_0	EXIST::FUNCTION:TS
+OCSP_ONEREQ_add1_ext_i2d                2107	1_1_0	EXIST::FUNCTION:OCSP
+ENGINE_register_pkey_meths              2108	1_1_0	EXIST::FUNCTION:ENGINE
+ENGINE_load_public_key                  2109	1_1_0	EXIST::FUNCTION:ENGINE
+ASIdOrRange_it                          2110	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779
+ASIdOrRange_it                          2110	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779
+DHparams_print_fp                       2111	1_1_0	EXIST::FUNCTION:DH,STDIO
+ERR_load_CRYPTO_strings                 2112	1_1_0	EXIST:!VMS:FUNCTION:
+ERR_load_CRYPTOlib_strings              2112	1_1_0	EXIST:VMS:FUNCTION:
+X509_REQ_set_version                    2113	1_1_0	EXIST::FUNCTION:
+d2i_ASN1_GENERALSTRING                  2114	1_1_0	EXIST::FUNCTION:
+i2d_ASIdentifiers                       2115	1_1_0	EXIST::FUNCTION:RFC3779
+X509V3_EXT_cleanup                      2116	1_1_0	EXIST::FUNCTION:
+CAST_ecb_encrypt                        2117	1_1_0	EXIST::FUNCTION:CAST
+BIO_s_file                              2118	1_1_0	EXIST::FUNCTION:
+RSA_X931_derive_ex                      2119	1_1_0	EXIST::FUNCTION:RSA
+EVP_PKEY_decrypt_init                   2120	1_1_0	EXIST::FUNCTION:
+ENGINE_get_destroy_function             2121	1_1_0	EXIST::FUNCTION:ENGINE
+SHA224_Init                             2122	1_1_0	EXIST::FUNCTION:
+X509V3_EXT_add_conf                     2123	1_1_0	EXIST::FUNCTION:
+ASN1_object_size                        2124	1_1_0	EXIST::FUNCTION:
+X509_REVOKED_free                       2125	1_1_0	EXIST::FUNCTION:
+BN_mod_exp_recp                         2126	1_1_0	EXIST::FUNCTION:
+EVP_mdc2                                2127	1_1_0	EXIST::FUNCTION:MDC2
+EVP_des_cfb64                           2128	1_1_0	EXIST::FUNCTION:DES
+PKCS7_sign                              2129	1_1_0	EXIST::FUNCTION:
+OCSP_SINGLERESP_get_ext_by_critical     2130	1_1_0	EXIST::FUNCTION:OCSP
+EDIPARTYNAME_it                         2131	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+EDIPARTYNAME_it                         2131	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ERR_print_errors_fp                     2132	1_1_0	EXIST::FUNCTION:STDIO
+BN_GF2m_mod_div_arr                     2133	1_1_0	EXIST::FUNCTION:EC2M
+PKCS12_SAFEBAG_get0_attr                2134	1_1_0	EXIST::FUNCTION:
+BIO_s_mem                               2135	1_1_0	EXIST::FUNCTION:
+OCSP_RESPDATA_new                       2136	1_1_0	EXIST::FUNCTION:OCSP
+ASN1_item_i2d_fp                        2137	1_1_0	EXIST::FUNCTION:STDIO
+BN_GF2m_mod_sqr                         2138	1_1_0	EXIST::FUNCTION:EC2M
+ASN1_PRINTABLE_new                      2139	1_1_0	EXIST::FUNCTION:
+OBJ_NAME_new_index                      2140	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_asn1_add_alias                 2141	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_get1_DSA                       2142	1_1_0	EXIST::FUNCTION:DSA
+SEED_cbc_encrypt                        2143	1_1_0	EXIST::FUNCTION:SEED
+EVP_rc2_40_cbc                          2144	1_1_0	EXIST::FUNCTION:RC2
+ECDSA_SIG_new                           2145	1_1_0	EXIST::FUNCTION:EC
+i2d_PKCS8PrivateKey_nid_fp              2146	1_1_0	EXIST::FUNCTION:STDIO
+X509_NAME_ENTRY_it                      2147	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_NAME_ENTRY_it                      2147	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+CRYPTO_THREAD_compare_id                2148	1_1_0	EXIST::FUNCTION:
+d2i_IPAddressChoice                     2149	1_1_0	EXIST::FUNCTION:RFC3779
+IPAddressFamily_it                      2150	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779
+IPAddressFamily_it                      2150	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779
+ERR_load_OCSP_strings                   2151	1_1_0	EXIST::FUNCTION:OCSP
+BIO_push                                2152	1_1_0	EXIST::FUNCTION:
+ASN1_BMPSTRING_new                      2153	1_1_0	EXIST::FUNCTION:
+COMP_get_type                           2154	1_1_0	EXIST::FUNCTION:COMP
+d2i_ASIdentifierChoice                  2155	1_1_0	EXIST::FUNCTION:RFC3779
+i2d_ASN1_T61STRING                      2156	1_1_0	EXIST::FUNCTION:
+X509_add1_trust_object                  2157	1_1_0	EXIST::FUNCTION:
+PEM_write_X509                          2158	1_1_0	EXIST::FUNCTION:STDIO
+BN_CTX_free                             2159	1_1_0	EXIST::FUNCTION:
+EC_GROUP_get_curve_GF2m                 2160	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC,EC2M
+EVP_MD_flags                            2161	1_1_0	EXIST::FUNCTION:
+OPENSSL_sk_set                          2162	1_1_0	EXIST::FUNCTION:
+OCSP_request_sign                       2163	1_1_0	EXIST::FUNCTION:OCSP
+BN_GF2m_mod_solve_quad                  2164	1_1_0	EXIST::FUNCTION:EC2M
+EC_POINT_method_of                      2165	1_1_0	EXIST::FUNCTION:EC
+PKCS7_ENCRYPT_it                        2166	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS7_ENCRYPT_it                        2166	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+AUTHORITY_INFO_ACCESS_it                2167	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+AUTHORITY_INFO_ACCESS_it                2167	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+X509_EXTENSION_create_by_NID            2168	1_1_0	EXIST::FUNCTION:
+i2d_RSAPrivateKey                       2169	1_1_0	EXIST::FUNCTION:RSA
+d2i_CERTIFICATEPOLICIES                 2170	1_1_0	EXIST::FUNCTION:
+CMAC_CTX_get0_cipher_ctx                2171	1_1_0	EXIST::FUNCTION:CMAC
+X509_STORE_load_locations               2172	1_1_0	EXIST::FUNCTION:
+OBJ_find_sigid_algs                     2173	1_1_0	EXIST::FUNCTION:
+TS_RESP_CTX_set_accuracy                2174	1_1_0	EXIST::FUNCTION:TS
+NETSCAPE_SPKI_get_pubkey                2175	1_1_0	EXIST::FUNCTION:
+ECDSA_do_sign_ex                        2176	1_1_0	EXIST::FUNCTION:EC
+OCSP_ONEREQ_get_ext                     2177	1_1_0	EXIST::FUNCTION:OCSP
+BN_get_rfc3526_prime_4096               2179	1_1_0	EXIST::FUNCTION:
+d2i_PKCS7_fp                            2180	1_1_0	EXIST::FUNCTION:STDIO
+PEM_write_bio_NETSCAPE_CERT_SEQUENCE    2181	1_1_0	EXIST::FUNCTION:
+PKCS12_AUTHSAFES_it                     2182	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS12_AUTHSAFES_it                     2182	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+EVP_MD_CTX_free                         2183	1_1_0	EXIST::FUNCTION:
+CMS_RecipientInfo_kari_orig_id_cmp      2184	1_1_0	EXIST::FUNCTION:CMS
+NETSCAPE_SPKI_b64_encode                2185	1_1_0	EXIST::FUNCTION:
+d2i_PrivateKey                          2186	1_1_0	EXIST::FUNCTION:
+EVP_MD_CTX_new                          2187	1_1_0	EXIST::FUNCTION:
+X509_get0_tbs_sigalg                    2189	1_1_0	EXIST::FUNCTION:
+ASN1_GENERALIZEDTIME_new                2190	1_1_0	EXIST::FUNCTION:
+d2i_ECDSA_SIG                           2191	1_1_0	EXIST::FUNCTION:EC
+d2i_OTHERNAME                           2192	1_1_0	EXIST::FUNCTION:
+i2d_TS_RESP_fp                          2193	1_1_0	EXIST::FUNCTION:STDIO,TS
+OCSP_BASICRESP_get_ext_count            2194	1_1_0	EXIST::FUNCTION:OCSP
+ASN1_T61STRING_new                      2195	1_1_0	EXIST::FUNCTION:
+BN_kronecker                            2196	1_1_0	EXIST::FUNCTION:
+i2d_ACCESS_DESCRIPTION                  2197	1_1_0	EXIST::FUNCTION:
+EVP_camellia_192_cfb8                   2198	1_1_0	EXIST::FUNCTION:CAMELLIA
+X509_STORE_CTX_set_depth                2199	1_1_0	EXIST::FUNCTION:
+X509v3_delete_ext                       2200	1_1_0	EXIST::FUNCTION:
+ASN1_STRING_set0                        2201	1_1_0	EXIST::FUNCTION:
+BN_GF2m_add                             2202	1_1_0	EXIST::FUNCTION:EC2M
+CMAC_resume                             2203	1_1_0	EXIST::FUNCTION:CMAC
+TS_ACCURACY_set_millis                  2204	1_1_0	EXIST::FUNCTION:TS
+X509V3_EXT_conf                         2205	1_1_0	EXIST::FUNCTION:
+i2d_DHxparams                           2206	1_1_0	EXIST::FUNCTION:DH
+EVP_CIPHER_CTX_free                     2207	1_1_0	EXIST::FUNCTION:
+WHIRLPOOL_BitUpdate                     2208	1_1_0	EXIST::FUNCTION:WHIRLPOOL
+EVP_idea_ecb                            2209	1_1_0	EXIST::FUNCTION:IDEA
+i2d_TS_ACCURACY                         2210	1_1_0	EXIST::FUNCTION:TS
+ASN1_VISIBLESTRING_free                 2211	1_1_0	EXIST::FUNCTION:
+NCONF_load_bio                          2212	1_1_0	EXIST::FUNCTION:
+DSA_get_default_method                  2213	1_1_0	EXIST::FUNCTION:DSA
+OPENSSL_LH_retrieve                     2214	1_1_0	EXIST::FUNCTION:
+CRYPTO_ccm128_decrypt_ccm64             2215	1_1_0	EXIST::FUNCTION:
+TS_RESP_CTX_set_clock_precision_digits  2216	1_1_0	EXIST::FUNCTION:TS
+SCT_LIST_validate                       2217	1_1_0	EXIST::FUNCTION:CT
+X509_PURPOSE_get_id                     2218	1_1_0	EXIST::FUNCTION:
+EC_KEY_get_ex_data                      2219	1_1_0	EXIST::FUNCTION:EC
+EVP_MD_size                             2220	1_1_0	EXIST::FUNCTION:
+CRYPTO_malloc                           2221	1_1_0	EXIST::FUNCTION:
+ERR_load_ASN1_strings                   2222	1_1_0	EXIST::FUNCTION:
+X509_REQ_get_extension_nids             2223	1_1_0	EXIST::FUNCTION:
+TS_REQ_get_ext_by_OBJ                   2224	1_1_0	EXIST::FUNCTION:TS
+i2d_X509                                2225	1_1_0	EXIST::FUNCTION:
+PEM_read_X509_AUX                       2226	1_1_0	EXIST::FUNCTION:STDIO
+TS_VERIFY_CTX_set_flags                 2227	1_1_0	EXIST::FUNCTION:TS
+IPAddressRange_new                      2228	1_1_0	EXIST::FUNCTION:RFC3779
+TS_REQ_get_exts                         2229	1_1_0	EXIST::FUNCTION:TS
+POLICY_CONSTRAINTS_new                  2230	1_1_0	EXIST::FUNCTION:
+OTHERNAME_new                           2231	1_1_0	EXIST::FUNCTION:
+BN_rshift                               2232	1_1_0	EXIST::FUNCTION:
+i2d_GENERAL_NAMES                       2233	1_1_0	EXIST::FUNCTION:
+EC_METHOD_get_field_type                2234	1_1_0	EXIST::FUNCTION:EC
+ENGINE_set_name                         2235	1_1_0	EXIST::FUNCTION:ENGINE
+TS_TST_INFO_get_policy_id               2236	1_1_0	EXIST::FUNCTION:TS
+PKCS7_SIGNER_INFO_set                   2237	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_PKCS8_PRIV_KEY_INFO       2238	1_1_0	EXIST::FUNCTION:
+EC_GROUP_set_curve_GF2m                 2239	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC,EC2M
+ENGINE_load_builtin_engines             2240	1_1_0	EXIST::FUNCTION:ENGINE
+SRP_VBASE_init                          2241	1_1_0	EXIST::FUNCTION:SRP
+SHA224_Final                            2242	1_1_0	EXIST::FUNCTION:
+OCSP_CERTSTATUS_free                    2243	1_1_0	EXIST::FUNCTION:OCSP
+d2i_TS_TST_INFO                         2244	1_1_0	EXIST::FUNCTION:TS
+IPAddressOrRange_it                     2245	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779
+IPAddressOrRange_it                     2245	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779
+ENGINE_get_cipher                       2246	1_1_0	EXIST::FUNCTION:ENGINE
+TS_TST_INFO_delete_ext                  2247	1_1_0	EXIST::FUNCTION:TS
+TS_OBJ_print_bio                        2248	1_1_0	EXIST::FUNCTION:TS
+X509_time_adj_ex                        2249	1_1_0	EXIST::FUNCTION:
+OCSP_request_add1_cert                  2250	1_1_0	EXIST::FUNCTION:OCSP
+ERR_load_X509_strings                   2251	1_1_0	EXIST::FUNCTION:
+SHA1_Transform                          2252	1_1_0	EXIST::FUNCTION:
+CMS_signed_get_attr_by_NID              2253	1_1_0	EXIST::FUNCTION:CMS
+X509_STORE_CTX_get_by_subject           2254	1_1_0	EXIST::FUNCTION:
+ASN1_OCTET_STRING_it                    2255	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_OCTET_STRING_it                    2255	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+OPENSSL_sk_set_cmp_func                 2256	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_table_cleanup         2257	1_1_0	EXIST::FUNCTION:
+i2d_re_X509_REQ_tbs                     2258	1_1_0	EXIST::FUNCTION:
+CONF_load_bio                           2259	1_1_0	EXIST::FUNCTION:
+X509_ATTRIBUTE_get0_object              2260	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_missing_parameters             2261	1_1_0	EXIST::FUNCTION:
+X509_REQ_INFO_new                       2262	1_1_0	EXIST::FUNCTION:
+EVP_rc2_cfb64                           2263	1_1_0	EXIST::FUNCTION:RC2
+PKCS7_get_smimecap                      2264	1_1_0	EXIST::FUNCTION:
+ERR_get_state                           2265	1_1_0	EXIST::FUNCTION:
+d2i_DSAPrivateKey_bio                   2266	1_1_0	EXIST::FUNCTION:DSA
+X509_PURPOSE_get_trust                  2267	1_1_0	EXIST::FUNCTION:
+EC_GROUP_get_point_conversion_form      2268	1_1_0	EXIST::FUNCTION:EC
+ASN1_OBJECT_it                          2269	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_OBJECT_it                          2269	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+BN_mod_add_quick                        2270	1_1_0	EXIST::FUNCTION:
+NCONF_free                              2271	1_1_0	EXIST::FUNCTION:
+NETSCAPE_SPKI_b64_decode                2272	1_1_0	EXIST::FUNCTION:
+BIO_f_md                                2273	1_1_0	EXIST::FUNCTION:
+EVP_MD_CTX_pkey_ctx                     2274	1_1_0	EXIST::FUNCTION:
+ENGINE_set_default_EC                   2275	1_1_0	EXIST::FUNCTION:ENGINE
+CMS_ReceiptRequest_free                 2276	1_1_0	EXIST::FUNCTION:CMS
+TS_STATUS_INFO_get0_text                2277	1_1_0	EXIST::FUNCTION:TS
+CRYPTO_get_ex_new_index                 2278	1_1_0	EXIST::FUNCTION:
+ASN1_PCTX_set_flags                     2279	1_1_0	EXIST::FUNCTION:
+PEM_write_X509_CRL                      2280	1_1_0	EXIST::FUNCTION:STDIO
+BF_cbc_encrypt                          2281	1_1_0	EXIST::FUNCTION:BF
+BN_num_bits_word                        2282	1_1_0	EXIST::FUNCTION:
+EVP_DecodeInit                          2283	1_1_0	EXIST::FUNCTION:
+BN_ucmp                                 2284	1_1_0	EXIST::FUNCTION:
+SXNET_get_id_asc                        2285	1_1_0	EXIST::FUNCTION:
+SCT_set1_extensions                     2286	1_1_0	EXIST::FUNCTION:CT
+PKCS12_SAFEBAG_new                      2287	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_set_nonce                   2288	1_1_0	EXIST::FUNCTION:TS
+PEM_read_ECPrivateKey                   2289	1_1_0	EXIST::FUNCTION:EC,STDIO
+RSA_free                                2290	1_1_0	EXIST::FUNCTION:RSA
+X509_CRL_INFO_new                       2291	1_1_0	EXIST::FUNCTION:
+AES_cfb8_encrypt                        2292	1_1_0	EXIST::FUNCTION:
+d2i_ASN1_SEQUENCE_ANY                   2293	1_1_0	EXIST::FUNCTION:
+PKCS12_create                           2294	1_1_0	EXIST::FUNCTION:
+X509at_get_attr_count                   2295	1_1_0	EXIST::FUNCTION:
+PKCS12_init                             2296	1_1_0	EXIST::FUNCTION:
+CRYPTO_free_ex_data                     2297	1_1_0	EXIST::FUNCTION:
+EVP_aes_128_cfb8                        2298	1_1_0	EXIST::FUNCTION:
+ESS_ISSUER_SERIAL_free                  2299	1_1_0	EXIST::FUNCTION:TS
+BN_mod_exp_mont_word                    2300	1_1_0	EXIST::FUNCTION:
+X509V3_EXT_nconf_nid                    2301	1_1_0	EXIST::FUNCTION:
+UTF8_putc                               2302	1_1_0	EXIST::FUNCTION:
+RSA_private_encrypt                     2303	1_1_0	EXIST::FUNCTION:RSA
+X509_LOOKUP_shutdown                    2304	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_set_accuracy                2305	1_1_0	EXIST::FUNCTION:TS
+OCSP_basic_verify                       2306	1_1_0	EXIST::FUNCTION:OCSP
+X509at_add1_attr_by_OBJ                 2307	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_asn1_add0                      2308	1_1_0	EXIST::FUNCTION:
+PKCS12_SAFEBAG_get1_crl                 2309	1_1_0	EXIST::FUNCTION:
+ASN1_STRING_get_default_mask            2310	1_1_0	EXIST::FUNCTION:
+X509_alias_set1                         2311	1_1_0	EXIST::FUNCTION:
+ASN1_item_unpack                        2312	1_1_0	EXIST::FUNCTION:
+HMAC_CTX_free                           2313	1_1_0	EXIST::FUNCTION:
+EC_POINT_new                            2314	1_1_0	EXIST::FUNCTION:EC
+PKCS7_ISSUER_AND_SERIAL_digest          2315	1_1_0	EXIST::FUNCTION:
+EVP_des_ofb                             2316	1_1_0	EXIST::FUNCTION:DES
+DSA_set_method                          2317	1_1_0	EXIST::FUNCTION:DSA
+EVP_PKEY_get1_RSA                       2318	1_1_0	EXIST::FUNCTION:RSA
+EC_KEY_OpenSSL                          2319	1_1_0	EXIST::FUNCTION:EC
+EVP_camellia_192_ofb                    2320	1_1_0	EXIST::FUNCTION:CAMELLIA
+ASN1_STRING_length                      2321	1_1_0	EXIST::FUNCTION:
+PKCS7_set_digest                        2322	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_PUBKEY                    2323	1_1_0	EXIST::FUNCTION:
+PEM_read_PKCS7                          2324	1_1_0	EXIST::FUNCTION:STDIO
+DH_get_2048_256                         2325	1_1_0	EXIST::FUNCTION:DH
+X509at_delete_attr                      2326	1_1_0	EXIST::FUNCTION:
+PEM_write_bio                           2327	1_1_0	EXIST::FUNCTION:
+CMS_signed_get_attr_by_OBJ              2329	1_1_0	EXIST::FUNCTION:CMS
+X509_REVOKED_add_ext                    2330	1_1_0	EXIST::FUNCTION:
+EVP_CipherUpdate                        2331	1_1_0	EXIST::FUNCTION:
+Camellia_cfb8_encrypt                   2332	1_1_0	EXIST::FUNCTION:CAMELLIA
+EVP_aes_256_xts                         2333	1_1_0	EXIST::FUNCTION:
+EVP_DigestSignFinal                     2334	1_1_0	EXIST::FUNCTION:
+ASN1_STRING_cmp                         2335	1_1_0	EXIST::FUNCTION:
+EVP_chacha20_poly1305                   2336	1_1_0	EXIST::FUNCTION:CHACHA,POLY1305
+OPENSSL_sk_zero                         2337	1_1_0	EXIST::FUNCTION:
+ASN1_PRINTABLE_type                     2338	1_1_0	EXIST::FUNCTION:
+TS_CONF_set_ess_cert_id_chain           2339	1_1_0	EXIST::FUNCTION:TS
+PEM_read_DSAPrivateKey                  2340	1_1_0	EXIST::FUNCTION:DSA,STDIO
+DH_generate_parameters_ex               2341	1_1_0	EXIST::FUNCTION:DH
+UI_dup_input_string                     2342	1_1_0	EXIST::FUNCTION:
+X509_keyid_set1                         2343	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_set1                  2344	1_1_0	EXIST::FUNCTION:
+EC_GROUP_get_asn1_flag                  2345	1_1_0	EXIST::FUNCTION:EC
+CMS_decrypt_set1_password               2346	1_1_0	EXIST::FUNCTION:CMS
+BIO_copy_next_retry                     2347	1_1_0	EXIST::FUNCTION:
+X509_POLICY_NODE_print                  2348	1_1_0	EXIST::FUNCTION:
+ASN1_TIME_diff                          2349	1_1_0	EXIST::FUNCTION:
+BIO_s_fd                                2350	1_1_0	EXIST::FUNCTION:
+i2d_CMS_bio                             2351	1_1_0	EXIST::FUNCTION:CMS
+CRYPTO_gcm128_decrypt                   2352	1_1_0	EXIST::FUNCTION:
+EVP_aes_256_ctr                         2353	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_bits                           2354	1_1_0	EXIST::FUNCTION:
+BN_BLINDING_new                         2355	1_1_0	EXIST::FUNCTION:
+ASN1_GENERALIZEDTIME_check              2356	1_1_0	EXIST::FUNCTION:
+BN_clear_bit                            2357	1_1_0	EXIST::FUNCTION:
+BN_bn2lebinpad                          2358	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_up_ref                         2359	1_1_0	EXIST::FUNCTION:
+X509_getm_notBefore                     2360	1_1_0	EXIST::FUNCTION:
+BN_nist_mod_224                         2361	1_1_0	EXIST::FUNCTION:
+DES_decrypt3                            2362	1_1_0	EXIST::FUNCTION:DES
+OTHERNAME_it                            2363	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+OTHERNAME_it                            2363	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+X509at_add1_attr_by_txt                 2364	1_1_0	EXIST::FUNCTION:
+PKCS7_SIGN_ENVELOPE_free                2365	1_1_0	EXIST::FUNCTION:
+BIO_dgram_is_sctp                       2366	1_1_0	EXIST::FUNCTION:DGRAM,SCTP
+DH_check                                2367	1_1_0	EXIST::FUNCTION:DH
+Camellia_set_key                        2368	1_1_0	EXIST::FUNCTION:CAMELLIA
+X509_LOOKUP_by_issuer_serial            2369	1_1_0	EXIST::FUNCTION:
+ASN1_BMPSTRING_free                     2370	1_1_0	EXIST::FUNCTION:
+BIO_new_accept                          2371	1_1_0	EXIST::FUNCTION:SOCK
+GENERAL_NAME_new                        2372	1_1_0	EXIST::FUNCTION:
+DES_encrypt3                            2373	1_1_0	EXIST::FUNCTION:DES
+PKCS7_get_signer_info                   2374	1_1_0	EXIST::FUNCTION:
+ASN1_OCTET_STRING_set                   2375	1_1_0	EXIST::FUNCTION:
+BN_mask_bits                            2376	1_1_0	EXIST::FUNCTION:
+ASN1_UTF8STRING_it                      2377	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_UTF8STRING_it                      2377	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ASN1_SCTX_set_app_data                  2378	1_1_0	EXIST::FUNCTION:
+CMS_add0_cert                           2379	1_1_0	EXIST::FUNCTION:CMS
+i2d_GENERAL_NAME                        2380	1_1_0	EXIST::FUNCTION:
+BIO_ADDR_new                            2381	1_1_0	EXIST::FUNCTION:SOCK
+ENGINE_get_pkey_asn1_meth_engine        2382	1_1_0	EXIST::FUNCTION:ENGINE
+d2i_ASN1_BMPSTRING                      2383	1_1_0	EXIST::FUNCTION:
+PKCS12_SAFEBAG_create0_p8inf            2384	1_1_0	EXIST::FUNCTION:
+OBJ_cmp                                 2385	1_1_0	EXIST::FUNCTION:
+MD2                                     2386	1_1_0	EXIST::FUNCTION:MD2
+X509_PUBKEY_new                         2387	1_1_0	EXIST::FUNCTION:
+BN_CTX_end                              2388	1_1_0	EXIST::FUNCTION:
+BIO_get_retry_BIO                       2389	1_1_0	EXIST::FUNCTION:
+X509_REQ_add1_attr_by_OBJ               2390	1_1_0	EXIST::FUNCTION:
+ASN1_item_ex_free                       2391	1_1_0	EXIST::FUNCTION:
+X509_SIG_new                            2392	1_1_0	EXIST::FUNCTION:
+BN_sqr                                  2393	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_set_time                    2394	1_1_0	EXIST::FUNCTION:TS
+OPENSSL_die                             2395	1_1_0	EXIST::FUNCTION:
+X509_LOOKUP_by_alias                    2396	1_1_0	EXIST::FUNCTION:
+EC_KEY_set_conv_form                    2397	1_1_0	EXIST::FUNCTION:EC
+X509_TRUST_get_count                    2399	1_1_0	EXIST::FUNCTION:
+IPAddressOrRange_free                   2400	1_1_0	EXIST::FUNCTION:RFC3779
+RSA_padding_add_PKCS1_OAEP              2401	1_1_0	EXIST::FUNCTION:RSA
+EC_KEY_set_ex_data                      2402	1_1_0	EXIST::FUNCTION:EC
+SRP_VBASE_new                           2403	1_1_0	EXIST::FUNCTION:SRP
+i2d_ECDSA_SIG                           2404	1_1_0	EXIST::FUNCTION:EC
+BIO_dump_indent                         2405	1_1_0	EXIST::FUNCTION:
+ENGINE_set_pkey_asn1_meths              2406	1_1_0	EXIST::FUNCTION:ENGINE
+OPENSSL_gmtime_diff                     2407	1_1_0	EXIST::FUNCTION:
+TS_CONF_set_crypto_device               2408	1_1_0	EXIST::FUNCTION:ENGINE,TS
+COMP_CTX_get_method                     2409	1_1_0	EXIST::FUNCTION:COMP
+EC_GROUP_get_cofactor                   2410	1_1_0	EXIST::FUNCTION:EC
+EVP_rc5_32_12_16_ofb                    2411	1_1_0	EXIST::FUNCTION:RC5
+EVP_MD_CTX_md_data                      2412	1_1_0	EXIST::FUNCTION:
+ASN1_PCTX_set_nm_flags                  2413	1_1_0	EXIST::FUNCTION:
+BIO_ctrl                                2414	1_1_0	EXIST::FUNCTION:
+X509_CRL_set_default_method             2415	1_1_0	EXIST::FUNCTION:
+d2i_RSAPublicKey_fp                     2417	1_1_0	EXIST::FUNCTION:RSA,STDIO
+UI_method_get_flusher                   2418	1_1_0	EXIST::FUNCTION:
+EC_POINT_dbl                            2419	1_1_0	EXIST::FUNCTION:EC
+i2d_X509_CRL_INFO                       2420	1_1_0	EXIST::FUNCTION:
+i2d_OCSP_CERTSTATUS                     2421	1_1_0	EXIST::FUNCTION:OCSP
+X509_REVOKED_get0_revocationDate        2422	1_1_0	EXIST::FUNCTION:
+PKCS7_add_crl                           2423	1_1_0	EXIST::FUNCTION:
+ECDSA_do_sign                           2424	1_1_0	EXIST::FUNCTION:EC
+ASN1_GENERALIZEDTIME_it                 2425	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_GENERALIZEDTIME_it                 2425	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+PKCS8_pkey_get0                         2426	1_1_0	EXIST::FUNCTION:
+OCSP_sendreq_new                        2427	1_1_0	EXIST::FUNCTION:OCSP
+EVP_aes_256_cfb128                      2428	1_1_0	EXIST::FUNCTION:
+RSA_set_ex_data                         2429	1_1_0	EXIST::FUNCTION:RSA
+BN_GENCB_call                           2430	1_1_0	EXIST::FUNCTION:
+X509V3_EXT_add_nconf_sk                 2431	1_1_0	EXIST::FUNCTION:
+i2d_TS_MSG_IMPRINT_fp                   2432	1_1_0	EXIST::FUNCTION:STDIO,TS
+PKCS12_new                              2433	1_1_0	EXIST::FUNCTION:
+X509_REVOKED_set_serialNumber           2434	1_1_0	EXIST::FUNCTION:
+EVP_get_digestbyname                    2435	1_1_0	EXIST::FUNCTION:
+X509_CRL_get_lastUpdate                 2436	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0
+OBJ_create_objects                      2437	1_1_0	EXIST::FUNCTION:
+EVP_enc_null                            2438	1_1_0	EXIST::FUNCTION:
+OCSP_ONEREQ_get_ext_by_critical         2439	1_1_0	EXIST::FUNCTION:OCSP
+OCSP_request_onereq_count               2440	1_1_0	EXIST::FUNCTION:OCSP
+BN_hex2bn                               2441	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_meth_set_impl_ctx_size       2442	1_1_0	EXIST::FUNCTION:
+ASIdentifiers_new                       2443	1_1_0	EXIST::FUNCTION:RFC3779
+CONF_imodule_get_flags                  2444	1_1_0	EXIST::FUNCTION:
+PKCS12_SAFEBAG_it                       2445	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS12_SAFEBAG_it                       2445	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+EVP_CIPHER_meth_set_set_asn1_params     2446	1_1_0	EXIST::FUNCTION:
+EC_KEY_get_enc_flags                    2447	1_1_0	EXIST::FUNCTION:EC
+X509_OBJECT_idx_by_subject              2448	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_copy                      2449	1_1_0	EXIST::FUNCTION:
+NETSCAPE_CERT_SEQUENCE_new              2450	1_1_0	EXIST::FUNCTION:
+CRYPTO_ocb128_decrypt                   2451	1_1_0	EXIST::FUNCTION:OCB
+ASYNC_WAIT_CTX_free                     2452	1_1_0	EXIST::FUNCTION:
+d2i_PKCS7_DIGEST                        2453	1_1_0	EXIST::FUNCTION:
+d2i_TS_TST_INFO_bio                     2454	1_1_0	EXIST::FUNCTION:TS
+BIGNUM_it                               2455	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+BIGNUM_it                               2455	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+BN_BLINDING_get_flags                   2456	1_1_0	EXIST::FUNCTION:
+X509_EXTENSION_get_critical             2457	1_1_0	EXIST::FUNCTION:
+DSA_set_default_method                  2458	1_1_0	EXIST::FUNCTION:DSA
+PEM_write_bio_DHxparams                 2459	1_1_0	EXIST::FUNCTION:DH
+DSA_set_ex_data                         2460	1_1_0	EXIST::FUNCTION:DSA
+BIO_s_datagram_sctp                     2461	1_1_0	EXIST::FUNCTION:DGRAM,SCTP
+SXNET_add_id_asc                        2462	1_1_0	EXIST::FUNCTION:
+X509_print_fp                           2463	1_1_0	EXIST::FUNCTION:STDIO
+TS_REQ_set_version                      2464	1_1_0	EXIST::FUNCTION:TS
+OCSP_REQINFO_new                        2465	1_1_0	EXIST::FUNCTION:OCSP
+Camellia_decrypt                        2466	1_1_0	EXIST::FUNCTION:CAMELLIA
+X509_signature_print                    2467	1_1_0	EXIST::FUNCTION:
+EVP_camellia_128_ecb                    2468	1_1_0	EXIST::FUNCTION:CAMELLIA
+MD2_Final                               2469	1_1_0	EXIST::FUNCTION:MD2
+OCSP_REQ_CTX_add1_header                2470	1_1_0	EXIST::FUNCTION:OCSP
+NETSCAPE_SPKAC_it                       2471	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+NETSCAPE_SPKAC_it                       2471	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ASIdOrRange_free                        2472	1_1_0	EXIST::FUNCTION:RFC3779
+EC_POINT_get_Jprojective_coordinates_GFp 2473	1_1_0	EXIST::FUNCTION:EC
+EVP_aes_128_cbc_hmac_sha256             2474	1_1_0	EXIST::FUNCTION:
+i2d_PKCS7_SIGNED                        2475	1_1_0	EXIST::FUNCTION:
+TS_VERIFY_CTX_set_data                  2476	1_1_0	EXIST::FUNCTION:TS
+BN_pseudo_rand_range                    2477	1_1_0	EXIST::FUNCTION:
+X509V3_EXT_add_nconf                    2478	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_CTX_ctrl                     2479	1_1_0	EXIST::FUNCTION:
+ASN1_T61STRING_it                       2480	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_T61STRING_it                       2480	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ENGINE_get_prev                         2481	1_1_0	EXIST::FUNCTION:ENGINE
+OCSP_accept_responses_new               2482	1_1_0	EXIST::FUNCTION:OCSP
+ERR_load_EC_strings                     2483	1_1_0	EXIST::FUNCTION:EC
+X509V3_string_free                      2484	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_set_paramgen              2485	1_1_0	EXIST::FUNCTION:
+ENGINE_set_load_ssl_client_cert_function 2486	1_1_0	EXIST::FUNCTION:ENGINE
+EVP_ENCODE_CTX_free                     2487	1_1_0	EXIST::FUNCTION:
+i2d_ASN1_BIT_STRING                     2488	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_set_verifyctx             2489	1_1_0	EXIST::FUNCTION:
+X509_TRUST_add                          2490	1_1_0	EXIST::FUNCTION:
+BUF_MEM_free                            2491	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_get_accuracy                2492	1_1_0	EXIST::FUNCTION:TS
+TS_REQ_dup                              2493	1_1_0	EXIST::FUNCTION:TS
+ASN1_STRING_type_new                    2494	1_1_0	EXIST::FUNCTION:
+TS_STATUS_INFO_free                     2495	1_1_0	EXIST::FUNCTION:TS
+BN_mod_mul                              2496	1_1_0	EXIST::FUNCTION:
+CMS_add0_recipient_key                  2497	1_1_0	EXIST::FUNCTION:CMS
+BIO_f_zlib                              2498	1_1_0	EXIST:ZLIB:FUNCTION:COMP
+AES_cfb128_encrypt                      2499	1_1_0	EXIST::FUNCTION:
+ENGINE_set_EC                           2500	1_1_0	EXIST::FUNCTION:ENGINE
+d2i_ECPKParameters                      2501	1_1_0	EXIST::FUNCTION:EC
+IDEA_ofb64_encrypt                      2502	1_1_0	EXIST::FUNCTION:IDEA
+CAST_decrypt                            2503	1_1_0	EXIST::FUNCTION:CAST
+TS_STATUS_INFO_get0_failure_info        2504	1_1_0	EXIST::FUNCTION:TS
+ENGINE_unregister_pkey_meths            2506	1_1_0	EXIST::FUNCTION:ENGINE
+DISPLAYTEXT_new                         2507	1_1_0	EXIST::FUNCTION:
+CMS_final                               2508	1_1_0	EXIST::FUNCTION:CMS
+BIO_nwrite                              2509	1_1_0	EXIST::FUNCTION:
+GENERAL_NAME_free                       2510	1_1_0	EXIST::FUNCTION:
+PKCS12_pack_p7encdata                   2511	1_1_0	EXIST::FUNCTION:
+BN_generate_dsa_nonce                   2512	1_1_0	EXIST::FUNCTION:
+X509_verify_cert                        2513	1_1_0	EXIST::FUNCTION:
+X509_policy_level_get0_node             2514	1_1_0	EXIST::FUNCTION:
+X509_REQ_get_attr                       2515	1_1_0	EXIST::FUNCTION:
+SHA1                                    2516	1_1_0	EXIST::FUNCTION:
+X509_print                              2517	1_1_0	EXIST::FUNCTION:
+d2i_AutoPrivateKey                      2518	1_1_0	EXIST::FUNCTION:
+X509_REQ_new                            2519	1_1_0	EXIST::FUNCTION:
+PKCS12_add_safes                        2520	1_1_0	EXIST::FUNCTION:
+PKCS12_parse                            2521	1_1_0	EXIST::FUNCTION:
+BN_GF2m_mod_div                         2522	1_1_0	EXIST::FUNCTION:EC2M
+i2d_USERNOTICE                          2523	1_1_0	EXIST::FUNCTION:
+d2i_NETSCAPE_SPKI                       2524	1_1_0	EXIST::FUNCTION:
+CRYPTO_mem_leaks                        2525	1_1_0	EXIST::FUNCTION:CRYPTO_MDEBUG
+BN_get_rfc3526_prime_1536               2526	1_1_0	EXIST::FUNCTION:
+DSA_sign                                2527	1_1_0	EXIST::FUNCTION:DSA
+RAND_egd                                2528	1_1_0	EXIST::FUNCTION:EGD
+ASN1_d2i_bio                            2529	1_1_0	EXIST::FUNCTION:
+X509_REQ_digest                         2531	1_1_0	EXIST::FUNCTION:
+X509_set1_notAfter                      2532	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_type                         2533	1_1_0	EXIST::FUNCTION:
+ASN1_TYPE_set_octetstring               2534	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_asn1_set_free                  2535	1_1_0	EXIST::FUNCTION:
+CMS_signed_get0_data_by_OBJ             2536	1_1_0	EXIST::FUNCTION:CMS
+X509_PURPOSE_add                        2537	1_1_0	EXIST::FUNCTION:
+PKCS7_ENVELOPE_free                     2538	1_1_0	EXIST::FUNCTION:
+PKCS12_key_gen_uni                      2539	1_1_0	EXIST::FUNCTION:
+WHIRLPOOL                               2540	1_1_0	EXIST::FUNCTION:WHIRLPOOL
+UI_set_default_method                   2542	1_1_0	EXIST::FUNCTION:
+EC_POINT_is_at_infinity                 2543	1_1_0	EXIST::FUNCTION:EC
+i2d_NOTICEREF                           2544	1_1_0	EXIST::FUNCTION:
+EC_KEY_new                              2545	1_1_0	EXIST::FUNCTION:EC
+EVP_chacha20                            2546	1_1_0	EXIST::FUNCTION:CHACHA
+BN_bn2dec                               2547	1_1_0	EXIST::FUNCTION:
+X509_REQ_print_ex                       2548	1_1_0	EXIST::FUNCTION:
+PEM_read_CMS                            2549	1_1_0	EXIST::FUNCTION:CMS,STDIO
+d2i_NETSCAPE_CERT_SEQUENCE              2550	1_1_0	EXIST::FUNCTION:
+X509_CRL_set_version                    2551	1_1_0	EXIST::FUNCTION:
+ASN1_PCTX_set_cert_flags                2552	1_1_0	EXIST::FUNCTION:
+PKCS8_PRIV_KEY_INFO_free                2553	1_1_0	EXIST::FUNCTION:
+SHA224_Update                           2554	1_1_0	EXIST::FUNCTION:
+EC_GROUP_new_by_curve_name              2555	1_1_0	EXIST::FUNCTION:EC
+X509_STORE_set_purpose                  2556	1_1_0	EXIST::FUNCTION:
+X509_CRL_get0_signature                 2557	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_get_keygen_info            2558	1_1_0	EXIST::FUNCTION:
+d2i_ASN1_UINTEGER                       2559	1_1_0	EXIST::FUNCTION:
+i2s_ASN1_INTEGER                        2560	1_1_0	EXIST::FUNCTION:
+d2i_EC_PUBKEY_fp                        2561	1_1_0	EXIST::FUNCTION:EC,STDIO
+i2d_OCSP_SIGNATURE                      2562	1_1_0	EXIST::FUNCTION:OCSP
+i2d_X509_EXTENSION                      2563	1_1_0	EXIST::FUNCTION:
+PEM_read_bio_X509                       2564	1_1_0	EXIST::FUNCTION:
+DES_key_sched                           2565	1_1_0	EXIST::FUNCTION:DES
+GENERAL_NAME_dup                        2566	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get1_crls                2567	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_set_verify                2568	1_1_0	EXIST::FUNCTION:
+EVP_sha256                              2569	1_1_0	EXIST::FUNCTION:
+CMS_unsigned_delete_attr                2570	1_1_0	EXIST::FUNCTION:CMS
+EVP_md5_sha1                            2571	1_1_0	EXIST::FUNCTION:MD5
+EVP_PKEY_sign_init                      2572	1_1_0	EXIST::FUNCTION:
+OPENSSL_LH_insert                       2573	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_meth_get_cleanup             2574	1_1_0	EXIST::FUNCTION:
+ASN1_item_ex_d2i                        2575	1_1_0	EXIST::FUNCTION:
+EVP_MD_meth_free                        2576	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_new                       2577	1_1_0	EXIST::FUNCTION:
+RSA_padding_check_PKCS1_OAEP            2578	1_1_0	EXIST::FUNCTION:RSA
+OCSP_SERVICELOC_it                      2579	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP
+OCSP_SERVICELOC_it                      2579	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP
+PKCS12_SAFEBAG_get_nid                  2580	1_1_0	EXIST::FUNCTION:
+EVP_MD_CTX_set_update_fn                2581	1_1_0	EXIST::FUNCTION:
+BIO_f_asn1                              2582	1_1_0	EXIST::FUNCTION:
+BIO_dump                                2583	1_1_0	EXIST::FUNCTION:
+ENGINE_load_ssl_client_cert             2584	1_1_0	EXIST::FUNCTION:ENGINE
+X509_STORE_CTX_set_verify_cb            2585	1_1_0	EXIST::FUNCTION:
+CRYPTO_clear_realloc                    2586	1_1_0	EXIST::FUNCTION:
+OPENSSL_strnlen                         2587	1_1_0	EXIST::FUNCTION:
+IDEA_ecb_encrypt                        2588	1_1_0	EXIST::FUNCTION:IDEA
+ASN1_STRING_set_default_mask            2589	1_1_0	EXIST::FUNCTION:
+TS_VERIFY_CTX_add_flags                 2590	1_1_0	EXIST::FUNCTION:TS
+FIPS_mode                               2591	1_1_0	EXIST::FUNCTION:
+d2i_ASN1_UNIVERSALSTRING                2592	1_1_0	EXIST::FUNCTION:
+NAME_CONSTRAINTS_free                   2593	1_1_0	EXIST::FUNCTION:
+EC_GROUP_get_order                      2594	1_1_0	EXIST::FUNCTION:EC
+X509_REVOKED_add1_ext_i2d               2595	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_add1_host             2596	1_1_0	EXIST::FUNCTION:
+i2d_PUBKEY_bio                          2597	1_1_0	EXIST::FUNCTION:
+MD4_Update                              2598	1_1_0	EXIST::FUNCTION:MD4
+X509_STORE_CTX_set_time                 2599	1_1_0	EXIST::FUNCTION:
+ENGINE_set_default_DH                   2600	1_1_0	EXIST::FUNCTION:ENGINE
+X509_ocspid_print                       2601	1_1_0	EXIST::FUNCTION:
+DH_set_method                           2602	1_1_0	EXIST::FUNCTION:DH
+EVP_rc2_64_cbc                          2603	1_1_0	EXIST::FUNCTION:RC2
+CRYPTO_THREAD_get_current_id            2604	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_set_cb                     2605	1_1_0	EXIST::FUNCTION:
+PROXY_POLICY_it                         2606	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PROXY_POLICY_it                         2606	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ENGINE_register_complete                2607	1_1_0	EXIST::FUNCTION:ENGINE
+EVP_DecodeUpdate                        2609	1_1_0	EXIST::FUNCTION:
+ENGINE_get_default_RAND                 2610	1_1_0	EXIST::FUNCTION:ENGINE
+ERR_peek_last_error_line                2611	1_1_0	EXIST::FUNCTION:
+ENGINE_get_ssl_client_cert_function     2612	1_1_0	EXIST::FUNCTION:ENGINE
+OPENSSL_LH_node_usage_stats             2613	1_1_0	EXIST::FUNCTION:STDIO
+DIRECTORYSTRING_it                      2614	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+DIRECTORYSTRING_it                      2614	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+BIO_write                               2615	1_1_0	EXIST::FUNCTION:
+OCSP_ONEREQ_get_ext_by_OBJ              2616	1_1_0	EXIST::FUNCTION:OCSP
+SEED_encrypt                            2617	1_1_0	EXIST::FUNCTION:SEED
+IPAddressRange_it                       2618	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779
+IPAddressRange_it                       2618	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779
+PEM_read_bio_DSAPrivateKey              2619	1_1_0	EXIST::FUNCTION:DSA
+CMS_get0_type                           2620	1_1_0	EXIST::FUNCTION:CMS
+ASN1_PCTX_free                          2621	1_1_0	EXIST::FUNCTION:
+ESS_SIGNING_CERT_new                    2622	1_1_0	EXIST::FUNCTION:TS
+X509V3_EXT_conf_nid                     2623	1_1_0	EXIST::FUNCTION:
+EC_KEY_check_key                        2624	1_1_0	EXIST::FUNCTION:EC
+PKCS5_PBKDF2_HMAC                       2625	1_1_0	EXIST::FUNCTION:
+CONF_get_section                        2626	1_1_0	EXIST::FUNCTION:
+CMS_RecipientInfo_kari_decrypt          2627	1_1_0	EXIST::FUNCTION:CMS
+OBJ_add_sigid                           2628	1_1_0	EXIST::FUNCTION:
+d2i_SXNETID                             2629	1_1_0	EXIST::FUNCTION:
+CMS_get1_certs                          2630	1_1_0	EXIST::FUNCTION:CMS
+X509_CRL_check_suiteb                   2631	1_1_0	EXIST::FUNCTION:
+PKCS7_ENVELOPE_it                       2632	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS7_ENVELOPE_it                       2632	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ASIdentifierChoice_it                   2633	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779
+ASIdentifierChoice_it                   2633	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779
+CMS_RecipientEncryptedKey_cert_cmp      2634	1_1_0	EXIST::FUNCTION:CMS
+EVP_PKEY_CTX_get_app_data               2635	1_1_0	EXIST::FUNCTION:
+EC_GROUP_clear_free                     2636	1_1_0	EXIST::FUNCTION:EC
+BN_get_rfc2409_prime_1024               2637	1_1_0	EXIST::FUNCTION:
+CRYPTO_set_mem_functions                2638	1_1_0	EXIST::FUNCTION:
+i2d_ASN1_VISIBLESTRING                  2639	1_1_0	EXIST::FUNCTION:
+d2i_PBKDF2PARAM                         2640	1_1_0	EXIST::FUNCTION:
+ERR_load_COMP_strings                   2641	1_1_0	EXIST::FUNCTION:COMP
+EVP_PKEY_meth_add0                      2642	1_1_0	EXIST::FUNCTION:
+EVP_rc4_40                              2643	1_1_0	EXIST::FUNCTION:RC4
+RSA_bits                                2645	1_1_0	EXIST::FUNCTION:RSA
+ASN1_item_dup                           2646	1_1_0	EXIST::FUNCTION:
+GENERAL_NAMES_it                        2647	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+GENERAL_NAMES_it                        2647	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+X509_issuer_name_hash                   2648	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_get_nonce                   2649	1_1_0	EXIST::FUNCTION:TS
+MD4_Init                                2650	1_1_0	EXIST::FUNCTION:MD4
+X509_EXTENSION_create_by_OBJ            2651	1_1_0	EXIST::FUNCTION:
+EVP_aes_256_cbc_hmac_sha1               2652	1_1_0	EXIST::FUNCTION:
+SCT_validate                            2653	1_1_0	EXIST::FUNCTION:CT
+EC_GROUP_dup                            2654	1_1_0	EXIST::FUNCTION:EC
+EVP_sha1                                2655	1_1_0	EXIST::FUNCTION:
+OPENSSL_sk_new                          2656	1_1_0	EXIST::FUNCTION:
+BN_dup                                  2657	1_1_0	EXIST::FUNCTION:
+TS_MSG_IMPRINT_print_bio                2658	1_1_0	EXIST::FUNCTION:TS
+CONF_module_set_usr_data                2659	1_1_0	EXIST::FUNCTION:
+EC_KEY_generate_key                     2660	1_1_0	EXIST::FUNCTION:EC
+BIO_ctrl_get_write_guarantee            2661	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_assign                         2662	1_1_0	EXIST::FUNCTION:
+EVP_aes_128_ofb                         2663	1_1_0	EXIST::FUNCTION:
+CMS_data                                2664	1_1_0	EXIST::FUNCTION:CMS
+X509_load_cert_file                     2665	1_1_0	EXIST::FUNCTION:
+EC_GFp_nistp521_method                  2667	1_1_0	EXIST::FUNCTION:EC,EC_NISTP_64_GCC_128
+ECDSA_SIG_free                          2668	1_1_0	EXIST::FUNCTION:EC
+d2i_PKCS12_BAGS                         2669	1_1_0	EXIST::FUNCTION:
+RSA_public_encrypt                      2670	1_1_0	EXIST::FUNCTION:RSA
+X509_CRL_get0_extensions                2671	1_1_0	EXIST::FUNCTION:
+CMS_digest_verify                       2672	1_1_0	EXIST::FUNCTION:CMS
+ASN1_GENERALIZEDTIME_set                2673	1_1_0	EXIST::FUNCTION:
+TS_VERIFY_CTX_set_imprint               2674	1_1_0	EXIST::FUNCTION:TS
+BN_RECP_CTX_set                         2675	1_1_0	EXIST::FUNCTION:
+CRYPTO_secure_zalloc                    2676	1_1_0	EXIST::FUNCTION:
+i2d_EXTENDED_KEY_USAGE                  2677	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_DSAparams                 2678	1_1_0	EXIST::FUNCTION:DSA
+X509_cmp_time                           2679	1_1_0	EXIST::FUNCTION:
+d2i_CMS_ReceiptRequest                  2680	1_1_0	EXIST::FUNCTION:CMS
+X509_CRL_INFO_it                        2681	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_CRL_INFO_it                        2681	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+BUF_reverse                             2682	1_1_0	EXIST::FUNCTION:
+d2i_OCSP_SIGNATURE                      2683	1_1_0	EXIST::FUNCTION:OCSP
+X509_REQ_delete_attr                    2684	1_1_0	EXIST::FUNCTION:
+TS_RESP_CTX_set_signer_cert             2685	1_1_0	EXIST::FUNCTION:TS
+X509V3_EXT_d2i                          2686	1_1_0	EXIST::FUNCTION:
+ASN1_GENERALSTRING_it                   2687	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_GENERALSTRING_it                   2687	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+POLICYQUALINFO_free                     2688	1_1_0	EXIST::FUNCTION:
+EC_KEY_set_group                        2689	1_1_0	EXIST::FUNCTION:EC
+OCSP_check_validity                     2690	1_1_0	EXIST::FUNCTION:OCSP
+PEM_write_ECPKParameters                2691	1_1_0	EXIST::FUNCTION:EC,STDIO
+X509_VERIFY_PARAM_lookup                2692	1_1_0	EXIST::FUNCTION:
+X509_LOOKUP_by_fingerprint              2693	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_meth_free                    2694	1_1_0	EXIST::FUNCTION:
+PKCS7_RECIP_INFO_new                    2695	1_1_0	EXIST::FUNCTION:
+d2i_ECPrivateKey_fp                     2696	1_1_0	EXIST::FUNCTION:EC,STDIO
+TS_CONF_set_ordering                    2697	1_1_0	EXIST::FUNCTION:TS
+X509_CRL_get_ext                        2698	1_1_0	EXIST::FUNCTION:
+X509_CRL_get_ext_by_OBJ                 2699	1_1_0	EXIST::FUNCTION:
+OCSP_basic_add1_cert                    2700	1_1_0	EXIST::FUNCTION:OCSP
+ASN1_PRINTABLESTRING_new                2701	1_1_0	EXIST::FUNCTION:
+i2d_PBEPARAM                            2702	1_1_0	EXIST::FUNCTION:
+NETSCAPE_SPKI_new                       2703	1_1_0	EXIST::FUNCTION:
+AES_options                             2704	1_1_0	EXIST::FUNCTION:
+POLICYINFO_free                         2705	1_1_0	EXIST::FUNCTION:
+PEM_read_bio_Parameters                 2706	1_1_0	EXIST::FUNCTION:
+BN_abs_is_word                          2707	1_1_0	EXIST::FUNCTION:
+BIO_set_callback_arg                    2708	1_1_0	EXIST::FUNCTION:
+CONF_modules_load_file                  2709	1_1_0	EXIST::FUNCTION:
+X509_trust_clear                        2710	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_CTX_test_flags               2711	1_1_0	EXIST::FUNCTION:
+PKCS12_BAGS_free                        2712	1_1_0	EXIST::FUNCTION:
+PEM_X509_INFO_read                      2713	1_1_0	EXIST::FUNCTION:STDIO
+d2i_DSAPrivateKey                       2714	1_1_0	EXIST::FUNCTION:DSA
+i2d_PKCS8_PRIV_KEY_INFO_fp              2715	1_1_0	EXIST::FUNCTION:STDIO
+TS_RESP_print_bio                       2716	1_1_0	EXIST::FUNCTION:TS
+X509_STORE_set_default_paths            2717	1_1_0	EXIST::FUNCTION:
+d2i_TS_REQ                              2718	1_1_0	EXIST::FUNCTION:TS
+i2d_TS_TST_INFO_bio                     2719	1_1_0	EXIST::FUNCTION:TS
+CMS_sign_receipt                        2720	1_1_0	EXIST::FUNCTION:CMS
+ENGINE_set_RAND                         2721	1_1_0	EXIST::FUNCTION:ENGINE
+X509_REVOKED_get_ext_by_OBJ             2722	1_1_0	EXIST::FUNCTION:
+SEED_decrypt                            2723	1_1_0	EXIST::FUNCTION:SEED
+PEM_write_PKCS8PrivateKey               2724	1_1_0	EXIST::FUNCTION:STDIO
+ENGINE_new                              2725	1_1_0	EXIST::FUNCTION:ENGINE
+X509_check_issued                       2726	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_CTX_iv_length                2727	1_1_0	EXIST::FUNCTION:
+DES_string_to_2keys                     2728	1_1_0	EXIST::FUNCTION:DES
+EVP_PKEY_copy_parameters                2729	1_1_0	EXIST::FUNCTION:
+CMS_ContentInfo_print_ctx               2730	1_1_0	EXIST::FUNCTION:CMS
+d2i_PKCS7_SIGNED                        2731	1_1_0	EXIST::FUNCTION:
+GENERAL_NAMES_free                      2732	1_1_0	EXIST::FUNCTION:
+SCT_get_timestamp                       2733	1_1_0	EXIST::FUNCTION:CT
+OCSP_SIGNATURE_it                       2734	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP
+OCSP_SIGNATURE_it                       2734	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP
+CMS_verify_receipt                      2735	1_1_0	EXIST::FUNCTION:CMS
+CRYPTO_THREAD_lock_new                  2736	1_1_0	EXIST::FUNCTION:
+BIO_get_ex_data                         2737	1_1_0	EXIST::FUNCTION:
+CMS_digest_create                       2738	1_1_0	EXIST::FUNCTION:CMS
+EC_KEY_METHOD_set_verify                2739	1_1_0	EXIST::FUNCTION:EC
+PEM_read_RSAPublicKey                   2740	1_1_0	EXIST::FUNCTION:RSA,STDIO
+ENGINE_pkey_asn1_find_str               2741	1_1_0	EXIST::FUNCTION:ENGINE
+ENGINE_get_load_privkey_function        2742	1_1_0	EXIST::FUNCTION:ENGINE
+d2i_IPAddressRange                      2743	1_1_0	EXIST::FUNCTION:RFC3779
+ERR_remove_state                        2744	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_0_0
+X509_CRL_print_fp                       2745	1_1_0	EXIST::FUNCTION:STDIO
+TS_CONF_load_key                        2746	1_1_0	EXIST::FUNCTION:TS
+d2i_OCSP_REQINFO                        2747	1_1_0	EXIST::FUNCTION:OCSP
+d2i_X509_CINF                           2748	1_1_0	EXIST::FUNCTION:
+OCSP_REQUEST_get_ext_by_critical        2749	1_1_0	EXIST::FUNCTION:OCSP
+X509_REQ_to_X509                        2750	1_1_0	EXIST::FUNCTION:
+EVP_aes_192_wrap_pad                    2751	1_1_0	EXIST::FUNCTION:
+PKCS7_SIGN_ENVELOPE_new                 2752	1_1_0	EXIST::FUNCTION:
+TS_REQ_get_policy_id                    2753	1_1_0	EXIST::FUNCTION:TS
+RC5_32_cbc_encrypt                      2754	1_1_0	EXIST::FUNCTION:RC5
+BN_is_zero                              2755	1_1_0	EXIST::FUNCTION:
+CT_POLICY_EVAL_CTX_new                  2756	1_1_0	EXIST::FUNCTION:CT
+NETSCAPE_SPKI_it                        2757	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+NETSCAPE_SPKI_it                        2757	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+CRYPTO_THREAD_unlock                    2758	1_1_0	EXIST::FUNCTION:
+UI_method_set_writer                    2759	1_1_0	EXIST::FUNCTION:
+UI_dup_info_string                      2760	1_1_0	EXIST::FUNCTION:
+OPENSSL_init                            2761	1_1_0	EXIST::FUNCTION:
+TS_RESP_get_tst_info                    2762	1_1_0	EXIST::FUNCTION:TS
+X509_VERIFY_PARAM_get_depth             2763	1_1_0	EXIST::FUNCTION:
+EVP_SealFinal                           2764	1_1_0	EXIST::FUNCTION:RSA
+BIO_set                                 2765	1_1_0	NOEXIST::FUNCTION:
+CONF_imodule_set_flags                  2766	1_1_0	EXIST::FUNCTION:
+i2d_ASN1_SET_ANY                        2767	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_decrypt                        2768	1_1_0	EXIST::FUNCTION:
+OCSP_RESPID_it                          2769	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP
+OCSP_RESPID_it                          2769	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP
+EVP_des_ede3_cbc                        2770	1_1_0	EXIST::FUNCTION:DES
+X509_up_ref                             2771	1_1_0	EXIST::FUNCTION:
+OBJ_NAME_do_all_sorted                  2772	1_1_0	EXIST::FUNCTION:
+ENGINE_unregister_DSA                   2773	1_1_0	EXIST::FUNCTION:ENGINE
+ASN1_bn_print                           2774	1_1_0	EXIST::FUNCTION:
+CMS_is_detached                         2775	1_1_0	EXIST::FUNCTION:CMS
+X509_REQ_INFO_it                        2776	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_REQ_INFO_it                        2776	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+RSAPrivateKey_it                        2777	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RSA
+RSAPrivateKey_it                        2777	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RSA
+X509_NAME_ENTRY_free                    2778	1_1_0	EXIST::FUNCTION:
+BIO_new_fd                              2779	1_1_0	EXIST::FUNCTION:
+OPENSSL_sk_value                        2781	1_1_0	EXIST::FUNCTION:
+NCONF_get_section                       2782	1_1_0	EXIST::FUNCTION:
+PKCS12_MAC_DATA_it                      2783	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS12_MAC_DATA_it                      2783	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+X509_REQ_add1_attr_by_NID               2784	1_1_0	EXIST::FUNCTION:
+ASN1_sign                               2785	1_1_0	EXIST::FUNCTION:
+CMS_RecipientInfo_encrypt               2786	1_1_0	EXIST::FUNCTION:CMS
+X509_get_pubkey_parameters              2787	1_1_0	EXIST::FUNCTION:
+PKCS12_setup_mac                        2788	1_1_0	EXIST::FUNCTION:
+PEM_read_bio_PKCS7                      2789	1_1_0	EXIST::FUNCTION:
+SHA512_Final                            2790	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_set1_host             2791	1_1_0	EXIST::FUNCTION:
+OCSP_resp_find_status                   2792	1_1_0	EXIST::FUNCTION:OCSP
+d2i_ASN1_T61STRING                      2793	1_1_0	EXIST::FUNCTION:
+DES_pcbc_encrypt                        2794	1_1_0	EXIST::FUNCTION:DES
+EVP_PKEY_print_params                   2795	1_1_0	EXIST::FUNCTION:
+BN_get0_nist_prime_192                  2796	1_1_0	EXIST::FUNCTION:
+EVP_SealInit                            2798	1_1_0	EXIST::FUNCTION:RSA
+X509_REQ_get0_signature                 2799	1_1_0	EXIST::FUNCTION:
+PKEY_USAGE_PERIOD_free                  2800	1_1_0	EXIST::FUNCTION:
+EC_GROUP_set_point_conversion_form      2801	1_1_0	EXIST::FUNCTION:EC
+CMS_dataFinal                           2802	1_1_0	EXIST::FUNCTION:CMS
+ASN1_TIME_it                            2803	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_TIME_it                            2803	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ENGINE_get_static_state                 2804	1_1_0	EXIST::FUNCTION:ENGINE
+EC_KEY_set_asn1_flag                    2805	1_1_0	EXIST::FUNCTION:EC
+EC_GFp_mont_method                      2806	1_1_0	EXIST::FUNCTION:EC
+OPENSSL_asc2uni                         2807	1_1_0	EXIST::FUNCTION:
+TS_REQ_new                              2808	1_1_0	EXIST::FUNCTION:TS
+ENGINE_register_all_DH                  2809	1_1_0	EXIST::FUNCTION:ENGINE
+ERR_clear_error                         2810	1_1_0	EXIST::FUNCTION:
+EC_KEY_dup                              2811	1_1_0	EXIST::FUNCTION:EC
+X509_LOOKUP_init                        2812	1_1_0	EXIST::FUNCTION:
+i2b_PVK_bio                             2813	1_1_0	EXIST::FUNCTION:DSA,RC4
+OCSP_ONEREQ_free                        2814	1_1_0	EXIST::FUNCTION:OCSP
+X509V3_EXT_print_fp                     2815	1_1_0	EXIST::FUNCTION:STDIO
+OBJ_bsearch_ex_                         2816	1_1_0	EXIST::FUNCTION:
+DES_ofb64_encrypt                       2817	1_1_0	EXIST::FUNCTION:DES
+i2d_IPAddressOrRange                    2818	1_1_0	EXIST::FUNCTION:RFC3779
+CRYPTO_secure_used                      2819	1_1_0	EXIST::FUNCTION:
+d2i_X509_CRL_INFO                       2820	1_1_0	EXIST::FUNCTION:
+X509_CRL_get_issuer                     2821	1_1_0	EXIST::FUNCTION:
+d2i_SCT_LIST                            2822	1_1_0	EXIST::FUNCTION:CT
+EC_GFp_nist_method                      2823	1_1_0	EXIST::FUNCTION:EC
+SCT_free                                2824	1_1_0	EXIST::FUNCTION:CT
+TS_TST_INFO_get_msg_imprint             2825	1_1_0	EXIST::FUNCTION:TS
+X509v3_addr_add_range                   2826	1_1_0	EXIST::FUNCTION:RFC3779
+PKCS12_get_friendlyname                 2827	1_1_0	EXIST::FUNCTION:
+X509_CRL_add_ext                        2829	1_1_0	EXIST::FUNCTION:
+X509_REQ_get_signature_nid              2830	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_get_ext                     2831	1_1_0	EXIST::FUNCTION:TS
+i2d_OCSP_RESPID                         2832	1_1_0	EXIST::FUNCTION:OCSP
+EVP_camellia_256_cfb8                   2833	1_1_0	EXIST::FUNCTION:CAMELLIA
+EC_KEY_get0_public_key                  2834	1_1_0	EXIST::FUNCTION:EC
+SRP_Calc_x                              2835	1_1_0	EXIST::FUNCTION:SRP
+a2i_ASN1_ENUMERATED                     2836	1_1_0	EXIST::FUNCTION:
+CONF_module_get_usr_data                2837	1_1_0	EXIST::FUNCTION:
+i2d_X509_NAME_ENTRY                     2838	1_1_0	EXIST::FUNCTION:
+SCT_LIST_free                           2839	1_1_0	EXIST::FUNCTION:CT
+PROXY_POLICY_new                        2840	1_1_0	EXIST::FUNCTION:
+X509_ALGOR_set_md                       2841	1_1_0	EXIST::FUNCTION:
+PKCS7_print_ctx                         2842	1_1_0	EXIST::FUNCTION:
+ASN1_UTF8STRING_new                     2843	1_1_0	EXIST::FUNCTION:
+EVP_des_cbc                             2844	1_1_0	EXIST::FUNCTION:DES
+i2v_ASN1_BIT_STRING                     2845	1_1_0	EXIST::FUNCTION:
+ASN1_TYPE_set1                          2846	1_1_0	EXIST::FUNCTION:
+d2i_X509_CRL_bio                        2847	1_1_0	EXIST::FUNCTION:
+PKCS12_SAFEBAG_get1_cert                2848	1_1_0	EXIST::FUNCTION:
+ASN1_UNIVERSALSTRING_free               2849	1_1_0	EXIST::FUNCTION:
+EC_KEY_precompute_mult                  2850	1_1_0	EXIST::FUNCTION:EC
+CRYPTO_mem_debug_realloc                2851	1_1_0	EXIST::FUNCTION:CRYPTO_MDEBUG
+PKCS7_new                               2852	1_1_0	EXIST::FUNCTION:
+BASIC_CONSTRAINTS_it                    2853	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+BASIC_CONSTRAINTS_it                    2853	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ASN1_generate_v3                        2854	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_PrivateKey                2855	1_1_0	EXIST::FUNCTION:
+ASN1_UTCTIME_check                      2856	1_1_0	EXIST::FUNCTION:
+ACCESS_DESCRIPTION_it                   2857	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ACCESS_DESCRIPTION_it                   2857	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+TS_MSG_IMPRINT_get_msg                  2859	1_1_0	EXIST::FUNCTION:TS
+PKCS8_add_keyusage                      2860	1_1_0	EXIST::FUNCTION:
+X509_EXTENSION_dup                      2861	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_asn1_new                       2862	1_1_0	EXIST::FUNCTION:
+BIO_socket_nbio                         2863	1_1_0	EXIST::FUNCTION:SOCK
+EVP_CIPHER_set_asn1_iv                  2864	1_1_0	EXIST::FUNCTION:
+EC_GFp_nistp224_method                  2865	1_1_0	EXIST::FUNCTION:EC,EC_NISTP_64_GCC_128
+BN_swap                                 2866	1_1_0	EXIST::FUNCTION:
+d2i_ECParameters                        2867	1_1_0	EXIST::FUNCTION:EC
+X509_NAME_add_entry_by_OBJ              2868	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_get_ext_count               2869	1_1_0	EXIST::FUNCTION:TS
+i2d_OCSP_CERTID                         2870	1_1_0	EXIST::FUNCTION:OCSP
+BN_CTX_start                            2871	1_1_0	EXIST::FUNCTION:
+BN_print                                2872	1_1_0	EXIST::FUNCTION:
+EC_KEY_set_flags                        2873	1_1_0	EXIST::FUNCTION:EC
+EVP_PKEY_get0                           2874	1_1_0	EXIST::FUNCTION:
+ENGINE_set_default                      2875	1_1_0	EXIST::FUNCTION:ENGINE
+NCONF_get_number_e                      2876	1_1_0	EXIST::FUNCTION:
+OPENSSL_cleanse                         2877	1_1_0	EXIST::FUNCTION:
+SCT_set0_signature                      2878	1_1_0	EXIST::FUNCTION:CT
+X509_CRL_sign                           2879	1_1_0	EXIST::FUNCTION:
+X509_CINF_it                            2880	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_CINF_it                            2880	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+TS_CONF_set_accuracy                    2881	1_1_0	EXIST::FUNCTION:TS
+DES_crypt                               2882	1_1_0	EXIST::FUNCTION:DES
+BN_BLINDING_create_param                2883	1_1_0	EXIST::FUNCTION:
+OCSP_SERVICELOC_free                    2884	1_1_0	EXIST::FUNCTION:OCSP
+DIST_POINT_NAME_free                    2885	1_1_0	EXIST::FUNCTION:
+BIO_listen                              2886	1_1_0	EXIST::FUNCTION:SOCK
+BIO_ADDR_path_string                    2887	1_1_0	EXIST::FUNCTION:SOCK
+POLICY_CONSTRAINTS_it                   2888	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+POLICY_CONSTRAINTS_it                   2888	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+NCONF_free_data                         2889	1_1_0	EXIST::FUNCTION:
+BIO_asn1_set_prefix                     2890	1_1_0	EXIST::FUNCTION:
+PEM_SignUpdate                          2891	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_EC_PUBKEY                 2892	1_1_0	EXIST::FUNCTION:EC
+CMS_add_simple_smimecap                 2893	1_1_0	EXIST::FUNCTION:CMS
+IPAddressChoice_free                    2894	1_1_0	EXIST::FUNCTION:RFC3779
+d2i_X509_AUX                            2895	1_1_0	EXIST::FUNCTION:
+X509_get_default_cert_area              2896	1_1_0	EXIST::FUNCTION:
+ERR_load_DSO_strings                    2897	1_1_0	EXIST::FUNCTION:
+ASIdentifiers_it                        2898	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779
+ASIdentifiers_it                        2898	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779
+BN_mod_lshift                           2899	1_1_0	EXIST::FUNCTION:
+ENGINE_get_last                         2900	1_1_0	EXIST::FUNCTION:ENGINE
+EVP_PKEY_encrypt_init                   2901	1_1_0	EXIST::FUNCTION:
+i2d_RSAPrivateKey_fp                    2902	1_1_0	EXIST::FUNCTION:RSA,STDIO
+X509_REQ_print                          2903	1_1_0	EXIST::FUNCTION:
+RSA_size                                2904	1_1_0	EXIST::FUNCTION:RSA
+EVP_CIPHER_CTX_iv_noconst               2905	1_1_0	EXIST::FUNCTION:
+DH_set_default_method                   2906	1_1_0	EXIST::FUNCTION:DH
+X509_ALGOR_new                          2907	1_1_0	EXIST::FUNCTION:
+EVP_aes_192_ofb                         2908	1_1_0	EXIST::FUNCTION:
+EVP_des_ede3_cfb1                       2909	1_1_0	EXIST::FUNCTION:DES
+TS_REQ_to_TS_VERIFY_CTX                 2910	1_1_0	EXIST::FUNCTION:TS
+d2i_PBEPARAM                            2911	1_1_0	EXIST::FUNCTION:
+BN_get0_nist_prime_521                  2912	1_1_0	EXIST::FUNCTION:
+OCSP_ONEREQ_get_ext_by_NID              2913	1_1_0	EXIST::FUNCTION:OCSP
+X509_PUBKEY_get0                        2914	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get0_parent_ctx          2915	1_1_0	EXIST::FUNCTION:
+EC_GROUP_set_seed                       2916	1_1_0	EXIST::FUNCTION:EC
+X509_STORE_CTX_free                     2917	1_1_0	EXIST::FUNCTION:
+AUTHORITY_KEYID_it                      2918	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+AUTHORITY_KEYID_it                      2918	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+X509V3_get_value_int                    2919	1_1_0	EXIST::FUNCTION:
+ASN1_UTCTIME_set_string                 2920	1_1_0	EXIST::FUNCTION:
+RC5_32_decrypt                          2921	1_1_0	EXIST::FUNCTION:RC5
+i2d_X509_REQ_INFO                       2922	1_1_0	EXIST::FUNCTION:
+EVP_des_cfb1                            2923	1_1_0	EXIST::FUNCTION:DES
+OBJ_NAME_cleanup                        2924	1_1_0	EXIST::FUNCTION:
+OCSP_BASICRESP_get1_ext_d2i             2925	1_1_0	EXIST::FUNCTION:OCSP
+DES_cfb64_encrypt                       2926	1_1_0	EXIST::FUNCTION:DES
+CAST_cfb64_encrypt                      2927	1_1_0	EXIST::FUNCTION:CAST
+EVP_PKEY_asn1_set_param                 2928	1_1_0	EXIST::FUNCTION:
+BN_RECP_CTX_free                        2929	1_1_0	EXIST::FUNCTION:
+BN_with_flags                           2930	1_1_0	EXIST::FUNCTION:
+DSO_ctrl                                2931	1_1_0	EXIST::FUNCTION:
+EVP_MD_meth_get_final                   2932	1_1_0	EXIST::FUNCTION:
+ASN1_TYPE_get_octetstring               2933	1_1_0	EXIST::FUNCTION:
+ENGINE_by_id                            2934	1_1_0	EXIST::FUNCTION:ENGINE
+d2i_PKCS7_SIGNER_INFO                   2935	1_1_0	EXIST::FUNCTION:
+EVP_aes_192_cbc                         2936	1_1_0	EXIST::FUNCTION:
+PKCS8_pkey_set0                         2937	1_1_0	EXIST::FUNCTION:
+X509_get1_email                         2938	1_1_0	EXIST::FUNCTION:
+EC_POINT_point2oct                      2939	1_1_0	EXIST::FUNCTION:EC
+EC_GROUP_get_curve_GFp                  2940	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC
+ASYNC_block_pause                       2941	1_1_0	EXIST::FUNCTION:
+OCSP_SINGLERESP_get_ext                 2942	1_1_0	EXIST::FUNCTION:OCSP
+CRYPTO_strdup                           2943	1_1_0	EXIST::FUNCTION:
+i2d_X509_CRL_bio                        2945	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_asn1_set_item                  2946	1_1_0	EXIST::FUNCTION:
+CRYPTO_ccm128_encrypt                   2947	1_1_0	EXIST::FUNCTION:
+X509v3_addr_get_afi                     2948	1_1_0	EXIST::FUNCTION:RFC3779
+X509_STORE_CTX_get0_param               2949	1_1_0	EXIST::FUNCTION:
+EVP_add_alg_module                      2950	1_1_0	EXIST::FUNCTION:
+X509_check_purpose                      2951	1_1_0	EXIST::FUNCTION:
+OCSP_REQUEST_delete_ext                 2952	1_1_0	EXIST::FUNCTION:OCSP
+X509_PURPOSE_get_count                  2953	1_1_0	EXIST::FUNCTION:
+d2i_PKCS12_bio                          2954	1_1_0	EXIST::FUNCTION:
+ASN1_item_free                          2955	1_1_0	EXIST::FUNCTION:
+PKCS7_content_new                       2956	1_1_0	EXIST::FUNCTION:
+X509_keyid_get0                         2957	1_1_0	EXIST::FUNCTION:
+COMP_get_name                           2958	1_1_0	EXIST::FUNCTION:COMP
+EC_GROUP_new_curve_GF2m                 2959	1_1_0	EXIST::FUNCTION:EC,EC2M
+X509_SIG_free                           2960	1_1_0	EXIST::FUNCTION:
+PEM_ASN1_write                          2961	1_1_0	EXIST::FUNCTION:STDIO
+ENGINE_get_digest_engine                2962	1_1_0	EXIST::FUNCTION:ENGINE
+BN_CTX_new                              2963	1_1_0	EXIST::FUNCTION:
+EC_curve_nid2nist                       2964	1_1_0	EXIST::FUNCTION:EC
+ENGINE_get_finish_function              2965	1_1_0	EXIST::FUNCTION:ENGINE
+EC_POINT_add                            2966	1_1_0	EXIST::FUNCTION:EC
+EC_KEY_oct2key                          2967	1_1_0	EXIST::FUNCTION:EC
+SHA384_Init                             2968	1_1_0	EXIST::FUNCTION:
+ASN1_UNIVERSALSTRING_new                2969	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_print_private                  2970	1_1_0	EXIST::FUNCTION:
+ASN1_INTEGER_new                        2971	1_1_0	EXIST::FUNCTION:
+NAME_CONSTRAINTS_it                     2972	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+NAME_CONSTRAINTS_it                     2972	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+TS_REQ_get_cert_req                     2973	1_1_0	EXIST::FUNCTION:TS
+BIO_pop                                 2974	1_1_0	EXIST::FUNCTION:
+SHA256_Final                            2975	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_set1_DH                        2976	1_1_0	EXIST::FUNCTION:DH
+DH_get_ex_data                          2977	1_1_0	EXIST::FUNCTION:DH
+CRYPTO_secure_malloc                    2978	1_1_0	EXIST::FUNCTION:
+TS_RESP_get_status_info                 2979	1_1_0	EXIST::FUNCTION:TS
+HMAC_CTX_new                            2980	1_1_0	EXIST::FUNCTION:
+ENGINE_get_default_DH                   2981	1_1_0	EXIST::FUNCTION:ENGINE
+ECDSA_do_verify                         2982	1_1_0	EXIST::FUNCTION:EC
+DSO_flags                               2983	1_1_0	EXIST::FUNCTION:
+RAND_add                                2984	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_do_all_sorted                2985	1_1_0	EXIST::FUNCTION:
+PKCS7_encrypt                           2986	1_1_0	EXIST::FUNCTION:
+i2d_DSA_SIG                             2987	1_1_0	EXIST::FUNCTION:DSA
+CMS_set_detached                        2988	1_1_0	EXIST::FUNCTION:CMS
+X509_REQ_get_attr_by_OBJ                2989	1_1_0	EXIST::FUNCTION:
+i2d_ASRange                             2990	1_1_0	EXIST::FUNCTION:RFC3779
+EC_GROUP_set_asn1_flag                  2991	1_1_0	EXIST::FUNCTION:EC
+EVP_PKEY_new                            2992	1_1_0	EXIST::FUNCTION:
+i2d_POLICYINFO                          2993	1_1_0	EXIST::FUNCTION:
+BN_get_flags                            2994	1_1_0	EXIST::FUNCTION:
+SHA384                                  2995	1_1_0	EXIST::FUNCTION:
+NCONF_get_string                        2996	1_1_0	EXIST::FUNCTION:
+d2i_PROXY_CERT_INFO_EXTENSION           2997	1_1_0	EXIST::FUNCTION:
+EC_POINT_point2buf                      2998	1_1_0	EXIST::FUNCTION:EC
+RSA_padding_add_PKCS1_OAEP_mgf1         2999	1_1_0	EXIST::FUNCTION:RSA
+COMP_CTX_get_type                       3000	1_1_0	EXIST::FUNCTION:COMP
+TS_RESP_CTX_set_status_info             3001	1_1_0	EXIST::FUNCTION:TS
+BIO_f_nbio_test                         3002	1_1_0	EXIST::FUNCTION:
+SEED_ofb128_encrypt                     3003	1_1_0	EXIST::FUNCTION:SEED
+d2i_RSAPrivateKey_bio                   3004	1_1_0	EXIST::FUNCTION:RSA
+DH_KDF_X9_42                            3005	1_1_0	EXIST::FUNCTION:CMS,DH
+EVP_PKEY_meth_set_signctx               3006	1_1_0	EXIST::FUNCTION:
+X509_CRL_get_version                    3007	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_get0_info                 3008	1_1_0	EXIST::FUNCTION:
+PEM_read_bio_RSAPublicKey               3009	1_1_0	EXIST::FUNCTION:RSA
+EVP_PKEY_asn1_set_private               3010	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_get0_RSA                       3011	1_1_0	EXIST::FUNCTION:RSA
+DES_ede3_cfb64_encrypt                  3012	1_1_0	EXIST::FUNCTION:DES
+POLICY_MAPPING_free                     3014	1_1_0	EXIST::FUNCTION:
+EVP_aes_128_gcm                         3015	1_1_0	EXIST::FUNCTION:
+BIO_dgram_non_fatal_error               3016	1_1_0	EXIST::FUNCTION:DGRAM
+OCSP_request_is_signed                  3017	1_1_0	EXIST::FUNCTION:OCSP
+i2d_BASIC_CONSTRAINTS                   3018	1_1_0	EXIST::FUNCTION:
+EC_KEY_get_method                       3019	1_1_0	EXIST::FUNCTION:EC
+EC_POINT_bn2point                       3021	1_1_0	EXIST::FUNCTION:EC
+PBE2PARAM_it                            3022	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PBE2PARAM_it                            3022	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+BN_rand                                 3023	1_1_0	EXIST::FUNCTION:
+ASN1_TYPE_unpack_sequence               3024	1_1_0	EXIST::FUNCTION:
+X509_CRL_sign_ctx                       3025	1_1_0	EXIST::FUNCTION:
+X509_STORE_add_crl                      3026	1_1_0	EXIST::FUNCTION:
+PEM_write_RSAPrivateKey                 3027	1_1_0	EXIST::FUNCTION:RSA,STDIO
+RC4_set_key                             3028	1_1_0	EXIST::FUNCTION:RC4
+EVP_CIPHER_CTX_cipher                   3029	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_PKCS8PrivateKey_nid       3030	1_1_0	EXIST::FUNCTION:
+BN_MONT_CTX_new                         3031	1_1_0	EXIST::FUNCTION:
+CRYPTO_free_ex_index                    3032	1_1_0	EXIST::FUNCTION:
+ASYNC_WAIT_CTX_new                      3033	1_1_0	EXIST::FUNCTION:
+PKCS7_it                                3034	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS7_it                                3034	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+CMS_unsigned_get_attr_by_OBJ            3035	1_1_0	EXIST::FUNCTION:CMS
+BN_clear                                3036	1_1_0	EXIST::FUNCTION:
+BIO_socket_ioctl                        3037	1_1_0	EXIST::FUNCTION:SOCK
+GENERAL_NAME_cmp                        3038	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_set_purpose              3039	1_1_0	EXIST::FUNCTION:
+X509_REVOKED_get_ext_d2i                3040	1_1_0	EXIST::FUNCTION:
+X509V3_set_conf_lhash                   3041	1_1_0	EXIST::FUNCTION:
+PKCS7_ENC_CONTENT_it                    3042	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS7_ENC_CONTENT_it                    3042	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+PKCS12_item_pack_safebag                3043	1_1_0	EXIST::FUNCTION:
+i2d_OCSP_RESPDATA                       3044	1_1_0	EXIST::FUNCTION:OCSP
+i2d_X509_PUBKEY                         3045	1_1_0	EXIST::FUNCTION:
+EVP_DecryptUpdate                       3046	1_1_0	EXIST::FUNCTION:
+CAST_cbc_encrypt                        3047	1_1_0	EXIST::FUNCTION:CAST
+BN_BLINDING_invert                      3048	1_1_0	EXIST::FUNCTION:
+SHA512_Update                           3049	1_1_0	EXIST::FUNCTION:
+ESS_ISSUER_SERIAL_new                   3050	1_1_0	EXIST::FUNCTION:TS
+PKCS12_SAFEBAG_get0_pkcs8               3051	1_1_0	EXIST::FUNCTION:
+X509_get_ext_by_NID                     3052	1_1_0	EXIST::FUNCTION:
+d2i_IPAddressFamily                     3053	1_1_0	EXIST::FUNCTION:RFC3779
+X509_check_private_key                  3054	1_1_0	EXIST::FUNCTION:
+GENERAL_NAME_get0_value                 3055	1_1_0	EXIST::FUNCTION:
+X509_check_akid                         3056	1_1_0	EXIST::FUNCTION:
+PKCS12_key_gen_asc                      3057	1_1_0	EXIST::FUNCTION:
+EVP_bf_ofb                              3058	1_1_0	EXIST::FUNCTION:BF
+AUTHORITY_KEYID_free                    3059	1_1_0	EXIST::FUNCTION:
+EVP_seed_ofb                            3060	1_1_0	EXIST::FUNCTION:SEED
+OBJ_NAME_get                            3061	1_1_0	EXIST::FUNCTION:
+ASN1_UTCTIME_set                        3062	1_1_0	EXIST::FUNCTION:
+X509_NAME_ENTRY_set_data                3063	1_1_0	EXIST::FUNCTION:
+ASN1_PCTX_set_str_flags                 3064	1_1_0	EXIST::FUNCTION:
+i2a_ASN1_INTEGER                        3065	1_1_0	EXIST::FUNCTION:
+d2i_TS_RESP                             3066	1_1_0	EXIST::FUNCTION:TS
+EVP_des_ede_cfb64                       3067	1_1_0	EXIST::FUNCTION:DES
+d2i_RSAPrivateKey                       3068	1_1_0	EXIST::FUNCTION:RSA
+ERR_load_BN_strings                     3069	1_1_0	EXIST::FUNCTION:
+BF_encrypt                              3070	1_1_0	EXIST::FUNCTION:BF
+MD5                                     3071	1_1_0	EXIST::FUNCTION:MD5
+BN_GF2m_arr2poly                        3072	1_1_0	EXIST::FUNCTION:EC2M
+EVP_PKEY_meth_get_ctrl                  3073	1_1_0	EXIST::FUNCTION:
+i2d_X509_REQ_bio                        3074	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_set1_name             3075	1_1_0	EXIST::FUNCTION:
+d2i_RSAPublicKey_bio                    3076	1_1_0	EXIST::FUNCTION:RSA
+X509_REQ_get_X509_PUBKEY                3077	1_1_0	EXIST::FUNCTION:
+ENGINE_load_private_key                 3078	1_1_0	EXIST::FUNCTION:ENGINE
+GENERAL_NAMES_new                       3079	1_1_0	EXIST::FUNCTION:
+i2d_POLICYQUALINFO                      3080	1_1_0	EXIST::FUNCTION:
+EC_GF2m_simple_method                   3081	1_1_0	EXIST::FUNCTION:EC,EC2M
+RSA_get_method                          3082	1_1_0	EXIST::FUNCTION:RSA
+d2i_ASRange                             3083	1_1_0	EXIST::FUNCTION:RFC3779
+CMS_ContentInfo_new                     3084	1_1_0	EXIST::FUNCTION:CMS
+OPENSSL_init_crypto                     3085	1_1_0	EXIST::FUNCTION:
+X509_TRUST_set                          3086	1_1_0	EXIST::FUNCTION:
+EVP_camellia_192_ecb                    3087	1_1_0	EXIST::FUNCTION:CAMELLIA
+d2i_X509_REVOKED                        3088	1_1_0	EXIST::FUNCTION:
+d2i_IPAddressOrRange                    3089	1_1_0	EXIST::FUNCTION:RFC3779
+TS_TST_INFO_set_version                 3090	1_1_0	EXIST::FUNCTION:TS
+PKCS12_get0_mac                         3091	1_1_0	EXIST::FUNCTION:
+EVP_EncodeInit                          3092	1_1_0	EXIST::FUNCTION:
+X509_get0_trust_objects                 3093	1_1_0	EXIST::FUNCTION:
+d2i_ECPrivateKey_bio                    3094	1_1_0	EXIST::FUNCTION:EC
+BIO_s_secmem                            3095	1_1_0	EXIST::FUNCTION:
+ENGINE_get_default_EC                   3096	1_1_0	EXIST::FUNCTION:ENGINE
+TS_RESP_create_response                 3097	1_1_0	EXIST::FUNCTION:TS
+BIO_ADDR_rawaddress                     3098	1_1_0	EXIST::FUNCTION:SOCK
+PKCS7_ENCRYPT_new                       3099	1_1_0	EXIST::FUNCTION:
+i2d_PKCS8PrivateKey_fp                  3100	1_1_0	EXIST::FUNCTION:STDIO
+SRP_user_pwd_free                       3101	1_1_0	EXIST::FUNCTION:SRP
+Camellia_encrypt                        3102	1_1_0	EXIST::FUNCTION:CAMELLIA
+BIO_ADDR_hostname_string                3103	1_1_0	EXIST::FUNCTION:SOCK
+USERNOTICE_new                          3104	1_1_0	EXIST::FUNCTION:
+POLICY_MAPPING_new                      3105	1_1_0	EXIST::FUNCTION:
+CRYPTO_gcm128_release                   3106	1_1_0	EXIST::FUNCTION:
+BIO_new                                 3107	1_1_0	EXIST::FUNCTION:
+d2i_GENERAL_NAMES                       3108	1_1_0	EXIST::FUNCTION:
+PKCS7_SIGNER_INFO_new                   3109	1_1_0	EXIST::FUNCTION:
+PEM_read_DSA_PUBKEY                     3110	1_1_0	EXIST::FUNCTION:DSA,STDIO
+X509_get0_subject_key_id                3111	1_1_0	EXIST::FUNCTION:
+i2s_ASN1_ENUMERATED                     3112	1_1_0	EXIST::FUNCTION:
+X509v3_get_ext_by_OBJ                   3113	1_1_0	EXIST::FUNCTION:
+OCSP_REQUEST_free                       3114	1_1_0	EXIST::FUNCTION:OCSP
+CRYPTO_ocb128_aad                       3115	1_1_0	EXIST::FUNCTION:OCB
+OPENSSL_sk_deep_copy                    3116	1_1_0	EXIST::FUNCTION:
+i2d_RSA_PSS_PARAMS                      3117	1_1_0	EXIST::FUNCTION:RSA
+EVP_aes_128_wrap_pad                    3118	1_1_0	EXIST::FUNCTION:
+ASN1_BIT_STRING_set                     3119	1_1_0	EXIST::FUNCTION:
+PKCS5_PBKDF2_HMAC_SHA1                  3120	1_1_0	EXIST::FUNCTION:
+RSA_padding_check_PKCS1_type_2          3121	1_1_0	EXIST::FUNCTION:RSA
+EVP_des_ede3_ecb                        3122	1_1_0	EXIST::FUNCTION:DES
+CBIGNUM_it                              3123	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+CBIGNUM_it                              3123	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+BIO_new_NDEF                            3124	1_1_0	EXIST::FUNCTION:
+EVP_aes_256_wrap                        3125	1_1_0	EXIST::FUNCTION:
+ASN1_STRING_print                       3126	1_1_0	EXIST::FUNCTION:
+CRYPTO_THREAD_lock_free                 3127	1_1_0	EXIST::FUNCTION:
+TS_ACCURACY_get_seconds                 3128	1_1_0	EXIST::FUNCTION:TS
+BN_options                              3129	1_1_0	EXIST::FUNCTION:
+BIO_debug_callback                      3130	1_1_0	EXIST::FUNCTION:
+EVP_MD_meth_get_update                  3131	1_1_0	EXIST::FUNCTION:
+GENERAL_NAME_set0_othername             3132	1_1_0	EXIST::FUNCTION:
+ASN1_BIT_STRING_set_bit                 3133	1_1_0	EXIST::FUNCTION:
+EVP_aes_256_ccm                         3134	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_get0_pkey                  3135	1_1_0	EXIST::FUNCTION:
+CONF_load_fp                            3136	1_1_0	EXIST::FUNCTION:STDIO
+BN_to_ASN1_ENUMERATED                   3137	1_1_0	EXIST::FUNCTION:
+i2d_ISSUING_DIST_POINT                  3138	1_1_0	EXIST::FUNCTION:
+TXT_DB_free                             3139	1_1_0	EXIST::FUNCTION:
+ASN1_STRING_set                         3140	1_1_0	EXIST::FUNCTION:
+d2i_ESS_CERT_ID                         3141	1_1_0	EXIST::FUNCTION:TS
+EVP_PKEY_meth_set_derive                3142	1_1_0	EXIST::FUNCTION:
+OPENSSL_LH_stats                        3143	1_1_0	EXIST::FUNCTION:STDIO
+NCONF_dump_fp                           3144	1_1_0	EXIST::FUNCTION:STDIO
+TS_STATUS_INFO_print_bio                3145	1_1_0	EXIST::FUNCTION:TS
+OPENSSL_sk_dup                          3146	1_1_0	EXIST::FUNCTION:
+BF_cfb64_encrypt                        3147	1_1_0	EXIST::FUNCTION:BF
+ASN1_GENERALIZEDTIME_adj                3148	1_1_0	EXIST::FUNCTION:
+ECDSA_verify                            3149	1_1_0	EXIST::FUNCTION:EC
+EVP_camellia_256_cfb128                 3150	1_1_0	EXIST::FUNCTION:CAMELLIA
+CMAC_Init                               3151	1_1_0	EXIST::FUNCTION:CMAC
+OCSP_basic_add1_status                  3152	1_1_0	EXIST::FUNCTION:OCSP
+X509_CRL_get0_by_cert                   3153	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_set_tsa                     3154	1_1_0	EXIST::FUNCTION:TS
+i2d_ASN1_GENERALIZEDTIME                3155	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_derive_set_peer                3156	1_1_0	EXIST::FUNCTION:
+X509V3_EXT_CRL_add_conf                 3157	1_1_0	EXIST::FUNCTION:
+CRYPTO_ccm128_init                      3158	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_set_time              3159	1_1_0	EXIST::FUNCTION:
+BN_reciprocal                           3160	1_1_0	EXIST::FUNCTION:
+d2i_PKCS7_SIGN_ENVELOPE                 3161	1_1_0	EXIST::FUNCTION:
+X509_NAME_digest                        3162	1_1_0	EXIST::FUNCTION:
+d2i_OCSP_SERVICELOC                     3163	1_1_0	EXIST::FUNCTION:OCSP
+GENERAL_NAME_print                      3164	1_1_0	EXIST::FUNCTION:
+CMS_ReceiptRequest_get0_values          3165	1_1_0	EXIST::FUNCTION:CMS
+a2i_ASN1_INTEGER                        3166	1_1_0	EXIST::FUNCTION:
+OCSP_sendreq_bio                        3167	1_1_0	EXIST::FUNCTION:OCSP
+PKCS12_SAFEBAG_create_crl               3168	1_1_0	EXIST::FUNCTION:
+d2i_X509_NAME                           3169	1_1_0	EXIST::FUNCTION:
+IDEA_cfb64_encrypt                      3170	1_1_0	EXIST::FUNCTION:IDEA
+BN_mod_sub                              3171	1_1_0	EXIST::FUNCTION:
+ASN1_NULL_new                           3172	1_1_0	EXIST::FUNCTION:
+HMAC_Init                               3173	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0
+EVP_MD_CTX_update_fn                    3174	1_1_0	EXIST::FUNCTION:
+EVP_aes_128_ecb                         3175	1_1_0	EXIST::FUNCTION:
+i2d_PKCS7_bio_stream                    3176	1_1_0	EXIST::FUNCTION:
+i2a_ACCESS_DESCRIPTION                  3178	1_1_0	EXIST::FUNCTION:
+EC_KEY_set_enc_flags                    3179	1_1_0	EXIST::FUNCTION:EC
+i2d_PUBKEY_fp                           3180	1_1_0	EXIST::FUNCTION:STDIO
+b2i_PrivateKey_bio                      3181	1_1_0	EXIST::FUNCTION:DSA
+OCSP_REQUEST_add_ext                    3182	1_1_0	EXIST::FUNCTION:OCSP
+SXNET_add_id_INTEGER                    3183	1_1_0	EXIST::FUNCTION:
+CTLOG_get0_public_key                   3184	1_1_0	EXIST::FUNCTION:CT
+OCSP_REQUEST_get_ext_by_OBJ             3185	1_1_0	EXIST::FUNCTION:OCSP
+X509_NAME_oneline                       3186	1_1_0	EXIST::FUNCTION:
+X509V3_set_nconf                        3187	1_1_0	EXIST::FUNCTION:
+RSAPrivateKey_dup                       3188	1_1_0	EXIST::FUNCTION:RSA
+BN_mod_add                              3189	1_1_0	EXIST::FUNCTION:
+EC_POINT_set_affine_coordinates_GFp     3190	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC
+X509_get_default_cert_file              3191	1_1_0	EXIST::FUNCTION:
+UI_method_set_flusher                   3192	1_1_0	EXIST::FUNCTION:
+RSA_new_method                          3193	1_1_0	EXIST::FUNCTION:RSA
+OCSP_request_verify                     3194	1_1_0	EXIST::FUNCTION:OCSP
+CRYPTO_THREAD_run_once                  3195	1_1_0	EXIST::FUNCTION:
+TS_REQ_print_bio                        3196	1_1_0	EXIST::FUNCTION:TS
+SCT_get_version                         3197	1_1_0	EXIST::FUNCTION:CT
+IDEA_set_encrypt_key                    3198	1_1_0	EXIST::FUNCTION:IDEA
+ENGINE_get_DH                           3199	1_1_0	EXIST::FUNCTION:ENGINE
+i2d_ASIdentifierChoice                  3200	1_1_0	EXIST::FUNCTION:RFC3779
+SRP_Calc_A                              3201	1_1_0	EXIST::FUNCTION:SRP
+OCSP_BASICRESP_add_ext                  3202	1_1_0	EXIST::FUNCTION:OCSP
+EVP_idea_cfb64                          3203	1_1_0	EXIST::FUNCTION:IDEA
+PKCS12_newpass                          3204	1_1_0	EXIST::FUNCTION:
+EVP_aes_256_cbc_hmac_sha256             3205	1_1_0	EXIST::FUNCTION:
+TS_ACCURACY_get_millis                  3206	1_1_0	EXIST::FUNCTION:TS
+X509_CRL_get_REVOKED                    3207	1_1_0	EXIST::FUNCTION:
+X509_issuer_name_hash_old               3208	1_1_0	EXIST::FUNCTION:MD5
+i2d_PKCS12_SAFEBAG                      3209	1_1_0	EXIST::FUNCTION:
+BN_rand_range                           3210	1_1_0	EXIST::FUNCTION:
+SMIME_write_ASN1                        3211	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_CTX_new                      3212	1_1_0	EXIST::FUNCTION:
+MD4_Final                               3213	1_1_0	EXIST::FUNCTION:MD4
+EVP_PKEY_id                             3214	1_1_0	EXIST::FUNCTION:
+CMS_RecipientInfo_get0_pkey_ctx         3215	1_1_0	EXIST::FUNCTION:CMS
+OCSP_REQINFO_free                       3216	1_1_0	EXIST::FUNCTION:OCSP
+AUTHORITY_KEYID_new                     3217	1_1_0	EXIST::FUNCTION:
+i2d_DIST_POINT_NAME                     3218	1_1_0	EXIST::FUNCTION:
+OpenSSL_version_num                     3219	1_1_0	EXIST::FUNCTION:
+OCSP_CERTID_free                        3220	1_1_0	EXIST::FUNCTION:OCSP
+BIO_hex_string                          3221	1_1_0	EXIST::FUNCTION:
+X509_REQ_sign_ctx                       3222	1_1_0	EXIST::FUNCTION:
+CRYPTO_ocb128_init                      3223	1_1_0	EXIST::FUNCTION:OCB
+EVP_PKEY_get1_EC_KEY                    3224	1_1_0	EXIST::FUNCTION:EC
+ASN1_PRINTABLESTRING_free               3225	1_1_0	EXIST::FUNCTION:
+BIO_get_retry_reason                    3226	1_1_0	EXIST::FUNCTION:
+X509_NAME_print                         3227	1_1_0	EXIST::FUNCTION:
+ACCESS_DESCRIPTION_free                 3228	1_1_0	EXIST::FUNCTION:
+BN_nist_mod_384                         3229	1_1_0	EXIST::FUNCTION:
+i2d_EC_PUBKEY_fp                        3230	1_1_0	EXIST::FUNCTION:EC,STDIO
+ENGINE_set_default_pkey_meths           3231	1_1_0	EXIST::FUNCTION:ENGINE
+DH_bits                                 3232	1_1_0	EXIST::FUNCTION:DH
+i2d_X509_ALGORS                         3233	1_1_0	EXIST::FUNCTION:
+EVP_camellia_192_cfb1                   3234	1_1_0	EXIST::FUNCTION:CAMELLIA
+TS_RESP_CTX_add_failure_info            3235	1_1_0	EXIST::FUNCTION:TS
+EVP_PBE_alg_add                         3236	1_1_0	EXIST::FUNCTION:
+ESS_CERT_ID_dup                         3237	1_1_0	EXIST::FUNCTION:TS
+CMS_SignerInfo_get0_signature           3238	1_1_0	EXIST::FUNCTION:CMS
+EVP_PKEY_verify_recover                 3239	1_1_0	EXIST::FUNCTION:
+i2d_PUBKEY                              3240	1_1_0	EXIST::FUNCTION:
+ERR_load_EVP_strings                    3241	1_1_0	EXIST::FUNCTION:
+X509_ATTRIBUTE_set1_data                3242	1_1_0	EXIST::FUNCTION:
+d2i_X509_fp                             3243	1_1_0	EXIST::FUNCTION:STDIO
+MD2_Init                                3244	1_1_0	EXIST::FUNCTION:MD2
+ERR_get_error_line                      3245	1_1_0	EXIST::FUNCTION:
+X509_CRL_get_ext_by_NID                 3246	1_1_0	EXIST::FUNCTION:
+OPENSSL_INIT_free                       3247	1_1_0	EXIST::FUNCTION:
+PBE2PARAM_free                          3248	1_1_0	EXIST::FUNCTION:
+EVP_aes_192_ecb                         3249	1_1_0	EXIST::FUNCTION:
+ASN1_OCTET_STRING_new                   3250	1_1_0	EXIST::FUNCTION:
+CMS_set1_eContentType                   3251	1_1_0	EXIST::FUNCTION:CMS
+EVP_des_ede3_wrap                       3252	1_1_0	EXIST::FUNCTION:DES
+GENERAL_SUBTREE_it                      3253	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+GENERAL_SUBTREE_it                      3253	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+EVP_read_pw_string_min                  3254	1_1_0	EXIST::FUNCTION:
+X509_set1_notBefore                     3255	1_1_0	EXIST::FUNCTION:
+MD4                                     3256	1_1_0	EXIST::FUNCTION:MD4
+EVP_PKEY_CTX_dup                        3257	1_1_0	EXIST::FUNCTION:
+ENGINE_setup_bsd_cryptodev              3258	1_1_0	EXIST:__FreeBSD__:FUNCTION:DEPRECATEDIN_1_1_0,ENGINE
+PEM_read_bio_DHparams                   3259	1_1_0	EXIST::FUNCTION:DH
+CMS_SharedInfo_encode                   3260	1_1_0	EXIST::FUNCTION:CMS
+ASN1_OBJECT_create                      3261	1_1_0	EXIST::FUNCTION:
+i2d_ECParameters                        3262	1_1_0	EXIST::FUNCTION:EC
+BN_GF2m_mod_arr                         3263	1_1_0	EXIST::FUNCTION:EC2M
+ENGINE_set_finish_function              3264	1_1_0	EXIST::FUNCTION:ENGINE
+d2i_ASN1_OCTET_STRING                   3265	1_1_0	EXIST::FUNCTION:
+ENGINE_set_load_pubkey_function         3266	1_1_0	EXIST::FUNCTION:ENGINE
+BIO_vprintf                             3267	1_1_0	EXIST::FUNCTION:
+CMS_RecipientInfo_decrypt               3268	1_1_0	EXIST::FUNCTION:CMS
+RSA_generate_key                        3269	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_0_9_8,RSA
+PKCS7_set0_type_other                   3270	1_1_0	EXIST::FUNCTION:
+OCSP_REQUEST_new                        3271	1_1_0	EXIST::FUNCTION:OCSP
+BIO_lookup                              3272	1_1_0	EXIST::FUNCTION:SOCK
+EC_GROUP_get0_cofactor                  3273	1_1_0	EXIST::FUNCTION:EC
+SCT_print                               3275	1_1_0	EXIST::FUNCTION:CT
+X509_PUBKEY_set                         3276	1_1_0	EXIST::FUNCTION:
+POLICY_CONSTRAINTS_free                 3277	1_1_0	EXIST::FUNCTION:
+EVP_aes_256_cfb8                        3278	1_1_0	EXIST::FUNCTION:
+d2i_DSA_PUBKEY_bio                      3279	1_1_0	EXIST::FUNCTION:DSA
+X509_NAME_get_text_by_OBJ               3280	1_1_0	EXIST::FUNCTION:
+RSA_padding_check_none                  3281	1_1_0	EXIST::FUNCTION:RSA
+CRYPTO_set_mem_debug                    3282	1_1_0	EXIST::FUNCTION:
+TS_VERIFY_CTX_init                      3283	1_1_0	EXIST::FUNCTION:TS
+OCSP_cert_id_new                        3284	1_1_0	EXIST::FUNCTION:OCSP
+GENERAL_SUBTREE_new                     3285	1_1_0	EXIST::FUNCTION:
+OPENSSL_sk_push                         3286	1_1_0	EXIST::FUNCTION:
+X509_LOOKUP_ctrl                        3287	1_1_0	EXIST::FUNCTION:
+SRP_check_known_gN_param                3288	1_1_0	EXIST::FUNCTION:SRP
+d2i_DIST_POINT                          3289	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_free                       3290	1_1_0	EXIST::FUNCTION:
+PBEPARAM_free                           3291	1_1_0	EXIST::FUNCTION:
+NETSCAPE_SPKI_set_pubkey                3292	1_1_0	EXIST::FUNCTION:
+EVP_sha512                              3293	1_1_0	EXIST::FUNCTION:
+X509_CRL_match                          3294	1_1_0	EXIST::FUNCTION:
+i2s_ASN1_IA5STRING                      3295	1_1_0	EXIST::FUNCTION:
+EC_KEY_get_default_method               3296	1_1_0	EXIST::FUNCTION:EC
+PKCS8_decrypt                           3297	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_get_data                   3298	1_1_0	EXIST::FUNCTION:
+POLICYQUALINFO_it                       3299	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+POLICYQUALINFO_it                       3299	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+PKCS7_ISSUER_AND_SERIAL_free            3300	1_1_0	EXIST::FUNCTION:
+DSA_SIG_free                            3301	1_1_0	EXIST::FUNCTION:DSA
+BIO_asn1_set_suffix                     3302	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_set_type_str                   3303	1_1_0	EXIST::FUNCTION:
+i2d_X509_SIG                            3304	1_1_0	EXIST::FUNCTION:
+OPENSSL_LH_strhash                      3305	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_set_trust                3306	1_1_0	EXIST::FUNCTION:
+TS_ACCURACY_set_micros                  3307	1_1_0	EXIST::FUNCTION:TS
+EVP_DigestFinal_ex                      3308	1_1_0	EXIST::FUNCTION:
+X509_get0_pubkey                        3309	1_1_0	EXIST::FUNCTION:
+X509_check_ip                           3310	1_1_0	EXIST::FUNCTION:
+PKCS7_get_signed_attribute              3311	1_1_0	EXIST::FUNCTION:
+ASN1_GENERALIZEDTIME_free               3312	1_1_0	EXIST::FUNCTION:
+COMP_compress_block                     3313	1_1_0	EXIST::FUNCTION:COMP
+ASN1_STRING_dup                         3314	1_1_0	EXIST::FUNCTION:
+X509_LOOKUP_free                        3315	1_1_0	EXIST::FUNCTION:
+EC_GROUP_cmp                            3316	1_1_0	EXIST::FUNCTION:EC
+TS_TST_INFO_get_ext_by_critical         3317	1_1_0	EXIST::FUNCTION:TS
+ECParameters_print_fp                   3318	1_1_0	EXIST::FUNCTION:EC,STDIO
+X509_REQ_sign                           3319	1_1_0	EXIST::FUNCTION:
+CRYPTO_xts128_encrypt                   3320	1_1_0	EXIST::FUNCTION:
+PEM_def_callback                        3321	1_1_0	EXIST::FUNCTION:
+PKCS12_add_friendlyname_uni             3322	1_1_0	EXIST::FUNCTION:
+X509_policy_tree_level_count            3323	1_1_0	EXIST::FUNCTION:
+OBJ_sn2nid                              3324	1_1_0	EXIST::FUNCTION:
+CTLOG_free                              3325	1_1_0	EXIST::FUNCTION:CT
+EVP_CIPHER_meth_dup                     3326	1_1_0	EXIST::FUNCTION:
+CMS_get1_crls                           3327	1_1_0	EXIST::FUNCTION:CMS
+X509_aux_print                          3328	1_1_0	EXIST::FUNCTION:
+OPENSSL_thread_stop                     3330	1_1_0	EXIST::FUNCTION:
+X509_policy_node_get0_parent            3331	1_1_0	EXIST::FUNCTION:
+X509_PKEY_free                          3332	1_1_0	EXIST::FUNCTION:
+OCSP_CRLID_new                          3333	1_1_0	EXIST::FUNCTION:OCSP
+CONF_dump_bio                           3334	1_1_0	EXIST::FUNCTION:
+d2i_PKCS8PrivateKey_fp                  3335	1_1_0	EXIST::FUNCTION:STDIO
+RSA_setup_blinding                      3336	1_1_0	EXIST::FUNCTION:RSA
+ERR_peek_error_line                     3337	1_1_0	EXIST::FUNCTION:
+d2i_PKCS7                               3338	1_1_0	EXIST::FUNCTION:
+ERR_reason_error_string                 3339	1_1_0	EXIST::FUNCTION:
+ERR_remove_thread_state                 3340	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0
+PEM_write_PrivateKey                    3341	1_1_0	EXIST::FUNCTION:STDIO
+EVP_PKEY_CTX_str2ctrl                   3342	1_1_0	EXIST::FUNCTION:
+CMS_SignerInfo_verify_content           3343	1_1_0	EXIST::FUNCTION:CMS
+ASN1_INTEGER_get_int64                  3344	1_1_0	EXIST::FUNCTION:
+ASN1_item_sign                          3345	1_1_0	EXIST::FUNCTION:
+OCSP_SERVICELOC_new                     3346	1_1_0	EXIST::FUNCTION:OCSP
+ASN1_VISIBLESTRING_new                  3347	1_1_0	EXIST::FUNCTION:
+BN_set_flags                            3348	1_1_0	EXIST::FUNCTION:
+d2i_PrivateKey_bio                      3349	1_1_0	EXIST::FUNCTION:
+ASN1_SEQUENCE_ANY_it                    3350	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_SEQUENCE_ANY_it                    3350	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ASN1_UTCTIME_adj                        3351	1_1_0	EXIST::FUNCTION:
+BN_mod_sqrt                             3352	1_1_0	EXIST::FUNCTION:
+OPENSSL_sk_is_sorted                    3353	1_1_0	EXIST::FUNCTION:
+OCSP_SIGNATURE_new                      3354	1_1_0	EXIST::FUNCTION:OCSP
+EVP_PKEY_meth_get_paramgen              3355	1_1_0	EXIST::FUNCTION:
+X509_ATTRIBUTE_create_by_OBJ            3356	1_1_0	EXIST::FUNCTION:
+RSA_generate_key_ex                     3357	1_1_0	EXIST::FUNCTION:RSA
+CMS_SignerInfo_get0_algs                3358	1_1_0	EXIST::FUNCTION:CMS
+DIST_POINT_free                         3359	1_1_0	EXIST::FUNCTION:
+ESS_SIGNING_CERT_free                   3360	1_1_0	EXIST::FUNCTION:TS
+SCT_new_from_base64                     3361	1_1_0	EXIST::FUNCTION:CT
+OpenSSL_version                         3362	1_1_0	EXIST::FUNCTION:
+OCSP_SINGLERESP_get_ext_by_OBJ          3363	1_1_0	EXIST::FUNCTION:OCSP
+ECDSA_SIG_get0                          3364	1_1_0	EXIST::FUNCTION:EC
+BN_set_word                             3365	1_1_0	EXIST::FUNCTION:
+ENGINE_set_flags                        3366	1_1_0	EXIST::FUNCTION:ENGINE
+DSA_OpenSSL                             3367	1_1_0	EXIST::FUNCTION:DSA
+CMS_RecipientInfo_kari_get0_alg         3368	1_1_0	EXIST::FUNCTION:CMS
+PKCS7_ENVELOPE_new                      3369	1_1_0	EXIST::FUNCTION:
+EDIPARTYNAME_new                        3370	1_1_0	EXIST::FUNCTION:
+CMS_add1_cert                           3371	1_1_0	EXIST::FUNCTION:CMS
+DSO_convert_filename                    3372	1_1_0	EXIST::FUNCTION:
+RSA_padding_check_SSLv23                3373	1_1_0	EXIST::FUNCTION:RSA
+CRYPTO_gcm128_finish                    3374	1_1_0	EXIST::FUNCTION:
+PKCS12_SAFEBAGS_it                      3375	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS12_SAFEBAGS_it                      3375	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+PKCS12_PBE_add                          3376	1_1_0	EXIST::FUNCTION:
+EC_KEY_set_public_key_affine_coordinates 3377	1_1_0	EXIST::FUNCTION:EC
+EVP_EncryptInit_ex                      3378	1_1_0	EXIST::FUNCTION:
+ENGINE_add                              3379	1_1_0	EXIST::FUNCTION:ENGINE
+OPENSSL_LH_error                        3380	1_1_0	EXIST::FUNCTION:
+PKCS7_DIGEST_it                         3381	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS7_DIGEST_it                         3381	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+X509_CINF_new                           3382	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_keygen_init                    3383	1_1_0	EXIST::FUNCTION:
+EVP_aes_192_ocb                         3384	1_1_0	EXIST::FUNCTION:OCB
+EVP_camellia_256_cfb1                   3385	1_1_0	EXIST::FUNCTION:CAMELLIA
+CRYPTO_secure_actual_size               3387	1_1_0	EXIST::FUNCTION:
+COMP_CTX_free                           3388	1_1_0	EXIST::FUNCTION:COMP
+i2d_PBE2PARAM                           3389	1_1_0	EXIST::FUNCTION:
+EC_POINT_make_affine                    3390	1_1_0	EXIST::FUNCTION:EC
+DSA_generate_parameters                 3391	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_0_9_8,DSA
+ASN1_BIT_STRING_num_asc                 3392	1_1_0	EXIST::FUNCTION:
+X509_INFO_free                          3394	1_1_0	EXIST::FUNCTION:
+d2i_PKCS8_PRIV_KEY_INFO_fp              3395	1_1_0	EXIST::FUNCTION:STDIO
+X509_OBJECT_retrieve_match              3396	1_1_0	EXIST::FUNCTION:
+EVP_aes_128_ctr                         3397	1_1_0	EXIST::FUNCTION:
+EVP_PBE_find                            3398	1_1_0	EXIST::FUNCTION:
+SHA512_Transform                        3399	1_1_0	EXIST::FUNCTION:
+ERR_add_error_vdata                     3400	1_1_0	EXIST::FUNCTION:
+OCSP_REQUEST_get_ext                    3401	1_1_0	EXIST::FUNCTION:OCSP
+NETSCAPE_SPKAC_new                      3402	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_get_verify                3403	1_1_0	EXIST::FUNCTION:
+CRYPTO_128_wrap                         3404	1_1_0	EXIST::FUNCTION:
+X509_STORE_set_lookup_crls              3405	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_meth_get_ctrl                3406	1_1_0	EXIST::FUNCTION:
+OCSP_REQ_CTX_set1_req                   3407	1_1_0	EXIST::FUNCTION:OCSP
+CONF_imodule_get_usr_data               3408	1_1_0	EXIST::FUNCTION:
+CRYPTO_new_ex_data                      3409	1_1_0	EXIST::FUNCTION:
+PEM_read_PKCS8_PRIV_KEY_INFO            3410	1_1_0	EXIST::FUNCTION:STDIO
+TS_VERIFY_CTX_new                       3411	1_1_0	EXIST::FUNCTION:TS
+BUF_MEM_new_ex                          3412	1_1_0	EXIST::FUNCTION:
+RSA_padding_add_X931                    3413	1_1_0	EXIST::FUNCTION:RSA
+BN_get0_nist_prime_256                  3414	1_1_0	EXIST::FUNCTION:
+CRYPTO_memcmp                           3415	1_1_0	EXIST::FUNCTION:
+DH_check_pub_key                        3416	1_1_0	EXIST::FUNCTION:DH
+ASN1_mbstring_copy                      3417	1_1_0	EXIST::FUNCTION:
+PKCS7_set_type                          3418	1_1_0	EXIST::FUNCTION:
+BIO_gets                                3419	1_1_0	EXIST::FUNCTION:
+RSA_padding_check_PKCS1_type_1          3420	1_1_0	EXIST::FUNCTION:RSA
+UI_ctrl                                 3421	1_1_0	EXIST::FUNCTION:
+i2d_X509_REQ_fp                         3422	1_1_0	EXIST::FUNCTION:STDIO
+BN_BLINDING_convert_ex                  3423	1_1_0	EXIST::FUNCTION:
+ASN1_GENERALIZEDTIME_print              3424	1_1_0	EXIST::FUNCTION:
+BIO_s_null                              3425	1_1_0	EXIST::FUNCTION:
+PEM_ASN1_read                           3426	1_1_0	EXIST::FUNCTION:STDIO
+SCT_get_log_entry_type                  3427	1_1_0	EXIST::FUNCTION:CT
+EVP_CIPHER_meth_get_init                3428	1_1_0	EXIST::FUNCTION:
+X509_ALGOR_free                         3429	1_1_0	EXIST::FUNCTION:
+OCSP_SINGLERESP_get_ext_count           3430	1_1_0	EXIST::FUNCTION:OCSP
+EC_POINT_free                           3431	1_1_0	EXIST::FUNCTION:EC
+EVP_OpenFinal                           3432	1_1_0	EXIST::FUNCTION:RSA
+RAND_egd_bytes                          3433	1_1_0	EXIST::FUNCTION:EGD
+UI_method_get_writer                    3434	1_1_0	EXIST::FUNCTION:
+BN_secure_new                           3435	1_1_0	EXIST::FUNCTION:
+SHA1_Update                             3437	1_1_0	EXIST::FUNCTION:
+BIO_s_connect                           3438	1_1_0	EXIST::FUNCTION:SOCK
+EVP_MD_meth_get_init                    3439	1_1_0	EXIST::FUNCTION:
+ASN1_BIT_STRING_free                    3440	1_1_0	EXIST::FUNCTION:
+i2d_PROXY_CERT_INFO_EXTENSION           3441	1_1_0	EXIST::FUNCTION:
+ASN1_IA5STRING_new                      3442	1_1_0	EXIST::FUNCTION:
+X509_CRL_up_ref                         3443	1_1_0	EXIST::FUNCTION:
+EVP_EncodeFinal                         3444	1_1_0	EXIST::FUNCTION:
+X509_set_ex_data                        3445	1_1_0	EXIST::FUNCTION:
+ERR_get_next_error_library              3446	1_1_0	EXIST::FUNCTION:
+OCSP_RESPONSE_print                     3447	1_1_0	EXIST::FUNCTION:OCSP
+BN_get_rfc3526_prime_2048               3448	1_1_0	EXIST::FUNCTION:
+BIO_new_bio_pair                        3449	1_1_0	EXIST::FUNCTION:
+EC_GFp_nistp256_method                  3450	1_1_0	EXIST::FUNCTION:EC,EC_NISTP_64_GCC_128
+BIO_method_type                         3451	1_1_0	EXIST::FUNCTION:
+ECPKParameters_print                    3452	1_1_0	EXIST::FUNCTION:EC
+EVP_rc4                                 3453	1_1_0	EXIST::FUNCTION:RC4
+CMS_data_create                         3454	1_1_0	EXIST::FUNCTION:CMS
+EC_POINT_point2bn                       3455	1_1_0	EXIST::FUNCTION:EC
+CMS_unsigned_get0_data_by_OBJ           3456	1_1_0	EXIST::FUNCTION:CMS
+ASN1_OCTET_STRING_cmp                   3457	1_1_0	EXIST::FUNCTION:
+X509_NAME_print_ex                      3458	1_1_0	EXIST::FUNCTION:
+ASN1_parse                              3459	1_1_0	EXIST::FUNCTION:
+EC_KEY_priv2oct                         3460	1_1_0	EXIST::FUNCTION:EC
+PKCS7_simple_smimecap                   3461	1_1_0	EXIST::FUNCTION:
+ASN1_TYPE_set_int_octetstring           3462	1_1_0	EXIST::FUNCTION:
+BIO_number_written                      3463	1_1_0	EXIST::FUNCTION:
+TS_TST_INFO_set_msg_imprint             3464	1_1_0	EXIST::FUNCTION:TS
+CRYPTO_get_ex_data                      3465	1_1_0	EXIST::FUNCTION:
+X509_PURPOSE_get0_sname                 3466	1_1_0	EXIST::FUNCTION:
+RSA_verify_PKCS1_PSS                    3467	1_1_0	EXIST::FUNCTION:RSA
+HMAC_CTX_reset                          3468	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_set_init                  3469	1_1_0	EXIST::FUNCTION:
+X509_REQ_extension_nid                  3470	1_1_0	EXIST::FUNCTION:
+ENGINE_up_ref                           3471	1_1_0	EXIST::FUNCTION:ENGINE
+BN_BLINDING_invert_ex                   3472	1_1_0	EXIST::FUNCTION:
+RIPEMD160_Init                          3473	1_1_0	EXIST::FUNCTION:RMD160
+ASYNC_WAIT_CTX_get_changed_fds          3474	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_save_parameters                3475	1_1_0	EXIST::FUNCTION:
+SCT_set_source                          3476	1_1_0	EXIST::FUNCTION:CT
+DES_set_odd_parity                      3477	1_1_0	EXIST::FUNCTION:DES
+CMAC_CTX_free                           3478	1_1_0	EXIST::FUNCTION:CMAC
+d2i_ESS_ISSUER_SERIAL                   3479	1_1_0	EXIST::FUNCTION:TS
+HMAC_CTX_set_flags                      3480	1_1_0	EXIST::FUNCTION:
+d2i_PKCS8_bio                           3481	1_1_0	EXIST::FUNCTION:
+OCSP_ONEREQ_get_ext_count               3482	1_1_0	EXIST::FUNCTION:OCSP
+PEM_read_bio_PKCS8_PRIV_KEY_INFO        3483	1_1_0	EXIST::FUNCTION:
+i2d_OCSP_BASICRESP                      3484	1_1_0	EXIST::FUNCTION:OCSP
+CMAC_Final                              3485	1_1_0	EXIST::FUNCTION:CMAC
+X509V3_EXT_add_alias                    3486	1_1_0	EXIST::FUNCTION:
+BN_get_params                           3487	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_0_9_8
+PKCS5_pbkdf2_set                        3488	1_1_0	EXIST::FUNCTION:
+d2i_PKCS8PrivateKey_bio                 3489	1_1_0	EXIST::FUNCTION:
+ASN1_ENUMERATED_new                     3490	1_1_0	EXIST::FUNCTION:
+ENGINE_register_digests                 3491	1_1_0	EXIST::FUNCTION:ENGINE
+X509_NAME_get_text_by_NID               3492	1_1_0	EXIST::FUNCTION:
+SMIME_read_ASN1                         3493	1_1_0	EXIST::FUNCTION:
+X509_REQ_set_subject_name               3494	1_1_0	EXIST::FUNCTION:
+BN_sub_word                             3495	1_1_0	EXIST::FUNCTION:
+DSO_load                                3496	1_1_0	EXIST::FUNCTION:
+BN_mod_exp                              3497	1_1_0	EXIST::FUNCTION:
+X509_get_signature_type                 3498	1_1_0	EXIST::FUNCTION:
+BIO_ptr_ctrl                            3499	1_1_0	EXIST::FUNCTION:
+EVP_rc4_hmac_md5                        3500	1_1_0	EXIST::FUNCTION:MD5,RC4
+OPENSSL_strlcat                         3501	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_new                   3502	1_1_0	EXIST::FUNCTION:
+BIO_ADDR_rawport                        3503	1_1_0	EXIST::FUNCTION:SOCK
+BUF_MEM_grow_clean                      3504	1_1_0	EXIST::FUNCTION:
+X509_NAME_print_ex_fp                   3505	1_1_0	EXIST::FUNCTION:STDIO
+X509_check_host                         3506	1_1_0	EXIST::FUNCTION:
+PEM_read_ECPKParameters                 3507	1_1_0	EXIST::FUNCTION:EC,STDIO
+X509_ATTRIBUTE_get0_data                3508	1_1_0	EXIST::FUNCTION:
+CMS_add1_signer                         3509	1_1_0	EXIST::FUNCTION:CMS
+BN_pseudo_rand                          3510	1_1_0	EXIST::FUNCTION:
+d2i_DIRECTORYSTRING                     3511	1_1_0	EXIST::FUNCTION:
+d2i_ASN1_PRINTABLE                      3512	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_add1_attr_by_NID               3513	1_1_0	EXIST::FUNCTION:
+i2d_PKCS8_PRIV_KEY_INFO_bio             3514	1_1_0	EXIST::FUNCTION:
+X509_NAME_get_index_by_NID              3515	1_1_0	EXIST::FUNCTION:
+ENGINE_get_first                        3516	1_1_0	EXIST::FUNCTION:ENGINE
+CERTIFICATEPOLICIES_it                  3517	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+CERTIFICATEPOLICIES_it                  3517	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+EVP_MD_CTX_ctrl                         3518	1_1_0	EXIST::FUNCTION:
+PKCS7_final                             3519	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_size                           3520	1_1_0	EXIST::FUNCTION:
+EVP_DecryptFinal_ex                     3521	1_1_0	EXIST::FUNCTION:
+SCT_get_signature_nid                   3522	1_1_0	EXIST::FUNCTION:CT
+PROXY_CERT_INFO_EXTENSION_new           3523	1_1_0	EXIST::FUNCTION:
+EVP_bf_cbc                              3524	1_1_0	EXIST::FUNCTION:BF
+DSA_do_verify                           3525	1_1_0	EXIST::FUNCTION:DSA
+EC_GROUP_get_seed_len                   3526	1_1_0	EXIST::FUNCTION:EC
+EC_POINT_set_affine_coordinates_GF2m    3527	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_2_0,EC,EC2M
+TS_REQ_set_policy_id                    3528	1_1_0	EXIST::FUNCTION:TS
+BIO_callback_ctrl                       3529	1_1_0	EXIST::FUNCTION:
+v2i_GENERAL_NAME                        3530	1_1_0	EXIST::FUNCTION:
+ERR_print_errors_cb                     3531	1_1_0	EXIST::FUNCTION:
+ENGINE_set_default_string               3532	1_1_0	EXIST::FUNCTION:ENGINE
+BIO_number_read                         3533	1_1_0	EXIST::FUNCTION:
+CRYPTO_zalloc                           3534	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_cmp_parameters                 3535	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_new_id                     3537	1_1_0	EXIST::FUNCTION:
+TLS_FEATURE_free                        3538	1_1_0	EXIST::FUNCTION:
+d2i_BASIC_CONSTRAINTS                   3539	1_1_0	EXIST::FUNCTION:
+X509_CERT_AUX_new                       3540	1_1_0	EXIST::FUNCTION:
+ENGINE_register_pkey_asn1_meths         3541	1_1_0	EXIST::FUNCTION:ENGINE
+CRYPTO_ocb128_tag                       3542	1_1_0	EXIST::FUNCTION:OCB
+ERR_load_OBJ_strings                    3544	1_1_0	EXIST::FUNCTION:
+BIO_ctrl_get_read_request               3545	1_1_0	EXIST::FUNCTION:
+BN_from_montgomery                      3546	1_1_0	EXIST::FUNCTION:
+DSO_new                                 3547	1_1_0	EXIST::FUNCTION:
+AES_ecb_encrypt                         3548	1_1_0	EXIST::FUNCTION:
+BN_dec2bn                               3549	1_1_0	EXIST::FUNCTION:
+CMS_decrypt                             3550	1_1_0	EXIST::FUNCTION:CMS
+BN_mpi2bn                               3551	1_1_0	EXIST::FUNCTION:
+EVP_aes_128_cfb128                      3552	1_1_0	EXIST::FUNCTION:
+RC5_32_ecb_encrypt                      3554	1_1_0	EXIST::FUNCTION:RC5
+EVP_CIPHER_meth_new                     3555	1_1_0	EXIST::FUNCTION:
+i2d_RSA_OAEP_PARAMS                     3556	1_1_0	EXIST::FUNCTION:RSA
+SXNET_get_id_ulong                      3557	1_1_0	EXIST::FUNCTION:
+BIO_get_callback_arg                    3558	1_1_0	EXIST::FUNCTION:
+ENGINE_register_RSA                     3559	1_1_0	EXIST::FUNCTION:ENGINE
+i2v_GENERAL_NAMES                       3560	1_1_0	EXIST::FUNCTION:
+PKCS7_decrypt                           3562	1_1_0	EXIST::FUNCTION:
+X509_STORE_set1_param                   3563	1_1_0	EXIST::FUNCTION:
+RAND_file_name                          3564	1_1_0	EXIST::FUNCTION:
+EVP_CipherInit_ex                       3566	1_1_0	EXIST::FUNCTION:
+BIO_dgram_sctp_notification_cb          3567	1_1_0	EXIST::FUNCTION:DGRAM,SCTP
+ERR_load_RAND_strings                   3568	1_1_0	EXIST::FUNCTION:
+X509_ATTRIBUTE_it                       3569	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_ATTRIBUTE_it                       3569	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+X509_ALGOR_it                           3570	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_ALGOR_it                           3570	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+OCSP_CRLID_free                         3571	1_1_0	EXIST::FUNCTION:OCSP
+CRYPTO_ccm128_aad                       3572	1_1_0	EXIST::FUNCTION:
+IPAddressFamily_new                     3573	1_1_0	EXIST::FUNCTION:RFC3779
+d2i_TS_ACCURACY                         3574	1_1_0	EXIST::FUNCTION:TS
+X509_load_crl_file                      3575	1_1_0	EXIST::FUNCTION:
+SXNET_add_id_ulong                      3576	1_1_0	EXIST::FUNCTION:
+EVP_camellia_256_cbc                    3577	1_1_0	EXIST::FUNCTION:CAMELLIA
+i2d_PROXY_POLICY                        3578	1_1_0	EXIST::FUNCTION:
+X509_subject_name_hash_old              3579	1_1_0	EXIST::FUNCTION:MD5
+PEM_read_bio_DSA_PUBKEY                 3580	1_1_0	EXIST::FUNCTION:DSA
+OCSP_cert_to_id                         3581	1_1_0	EXIST::FUNCTION:OCSP
+PEM_write_DSAparams                     3582	1_1_0	EXIST::FUNCTION:DSA,STDIO
+ASN1_TIME_to_generalizedtime            3583	1_1_0	EXIST::FUNCTION:
+X509_CRL_get_ext_by_critical            3584	1_1_0	EXIST::FUNCTION:
+ASN1_STRING_type                        3585	1_1_0	EXIST::FUNCTION:
+X509_REQ_add1_attr_by_txt               3586	1_1_0	EXIST::FUNCTION:
+PEM_write_RSAPublicKey                  3587	1_1_0	EXIST::FUNCTION:RSA,STDIO
+EVP_MD_meth_dup                         3588	1_1_0	EXIST::FUNCTION:
+ENGINE_unregister_ciphers               3589	1_1_0	EXIST::FUNCTION:ENGINE
+X509_issuer_and_serial_cmp              3590	1_1_0	EXIST::FUNCTION:
+OCSP_response_create                    3591	1_1_0	EXIST::FUNCTION:OCSP
+SHA224                                  3592	1_1_0	EXIST::FUNCTION:
+MD2_options                             3593	1_1_0	EXIST::FUNCTION:MD2
+X509_REQ_it                             3595	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+X509_REQ_it                             3595	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+RAND_bytes                              3596	1_1_0	EXIST::FUNCTION:
+PKCS7_free                              3597	1_1_0	EXIST::FUNCTION:
+X509_NAME_ENTRY_create_by_txt           3598	1_1_0	EXIST::FUNCTION:
+DES_cbc_cksum                           3599	1_1_0	EXIST::FUNCTION:DES
+UI_free                                 3600	1_1_0	EXIST::FUNCTION:
+BN_is_prime                             3601	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_0_9_8
+CMS_get0_signers                        3602	1_1_0	EXIST::FUNCTION:CMS
+i2d_PrivateKey_fp                       3603	1_1_0	EXIST::FUNCTION:STDIO
+OTHERNAME_cmp                           3604	1_1_0	EXIST::FUNCTION:
+SMIME_write_PKCS7                       3605	1_1_0	EXIST::FUNCTION:
+EC_KEY_set_public_key                   3606	1_1_0	EXIST::FUNCTION:EC
+d2i_X509_EXTENSION                      3607	1_1_0	EXIST::FUNCTION:
+CMS_add1_recipient_cert                 3608	1_1_0	EXIST::FUNCTION:CMS
+CMS_RecipientInfo_kekri_get0_id         3609	1_1_0	EXIST::FUNCTION:CMS
+BN_mod_word                             3610	1_1_0	EXIST::FUNCTION:
+ASN1_PCTX_new                           3611	1_1_0	EXIST::FUNCTION:
+BN_is_prime_ex                          3612	1_1_0	EXIST::FUNCTION:
+PKCS5_v2_PBE_keyivgen                   3613	1_1_0	EXIST::FUNCTION:
+CRYPTO_ctr128_encrypt                   3614	1_1_0	EXIST::FUNCTION:
+CMS_unsigned_add1_attr_by_OBJ           3615	1_1_0	EXIST::FUNCTION:CMS
+PEM_write_EC_PUBKEY                     3616	1_1_0	EXIST::FUNCTION:EC,STDIO
+X509v3_asid_add_inherit                 3617	1_1_0	EXIST::FUNCTION:RFC3779
+ERR_get_error                           3618	1_1_0	EXIST::FUNCTION:
+TS_CONF_set_signer_digest               3619	1_1_0	EXIST::FUNCTION:TS
+OBJ_new_nid                             3620	1_1_0	EXIST::FUNCTION:
+CMS_ReceiptRequest_new                  3621	1_1_0	EXIST::FUNCTION:CMS
+SRP_VBASE_get1_by_user                  3622	1_1_0	EXIST::FUNCTION:SRP
+UI_method_get_closer                    3623	1_1_0	EXIST::FUNCTION:
+ENGINE_get_ex_data                      3624	1_1_0	EXIST::FUNCTION:ENGINE
+BN_print_fp                             3625	1_1_0	EXIST::FUNCTION:STDIO
+MD2_Update                              3626	1_1_0	EXIST::FUNCTION:MD2
+ENGINE_free                             3628	1_1_0	EXIST::FUNCTION:ENGINE
+d2i_X509_ATTRIBUTE                      3629	1_1_0	EXIST::FUNCTION:
+TS_RESP_free                            3630	1_1_0	EXIST::FUNCTION:TS
+PKCS5_pbe_set                           3631	1_1_0	EXIST::FUNCTION:
+TS_RESP_CTX_free                        3632	1_1_0	EXIST::FUNCTION:TS
+d2i_PUBKEY                              3633	1_1_0	EXIST::FUNCTION:
+ASYNC_cleanup_thread                    3634	1_1_0	EXIST::FUNCTION:
+SHA384_Update                           3635	1_1_0	EXIST::FUNCTION:
+CRYPTO_cfb128_1_encrypt                 3636	1_1_0	EXIST::FUNCTION:
+BIO_set_cipher                          3637	1_1_0	EXIST::FUNCTION:
+PEM_read_PUBKEY                         3638	1_1_0	EXIST::FUNCTION:STDIO
+RSA_PKCS1_OpenSSL                       3639	1_1_0	EXIST::FUNCTION:RSA
+AUTHORITY_INFO_ACCESS_free              3640	1_1_0	EXIST::FUNCTION:
+SCT_get0_signature                      3641	1_1_0	EXIST::FUNCTION:CT
+DISPLAYTEXT_it                          3643	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+DISPLAYTEXT_it                          3643	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+OPENSSL_gmtime_adj                      3644	1_1_0	EXIST::FUNCTION:
+ASN1_INTEGER_dup                        3645	1_1_0	EXIST::FUNCTION:
+DSA_print                               3646	1_1_0	EXIST::FUNCTION:DSA
+X509_REQ_set_extension_nids             3647	1_1_0	EXIST::FUNCTION:
+X509_free                               3648	1_1_0	EXIST::FUNCTION:
+ERR_load_ERR_strings                    3649	1_1_0	EXIST::FUNCTION:
+ASN1_const_check_infinite_end           3650	1_1_0	EXIST::FUNCTION:
+RSA_null_method                         3651	1_1_0	EXIST::FUNCTION:RSA
+TS_REQ_ext_free                         3652	1_1_0	EXIST::FUNCTION:TS
+EVP_PKEY_meth_get_encrypt               3653	1_1_0	EXIST::FUNCTION:
+Camellia_ecb_encrypt                    3654	1_1_0	EXIST::FUNCTION:CAMELLIA
+ENGINE_set_default_RSA                  3655	1_1_0	EXIST::FUNCTION:ENGINE
+EVP_EncodeBlock                         3656	1_1_0	EXIST::FUNCTION:
+SXNETID_free                            3657	1_1_0	EXIST::FUNCTION:
+SHA1_Init                               3658	1_1_0	EXIST::FUNCTION:
+CRYPTO_atomic_add                       3659	1_1_0	EXIST::FUNCTION:
+TS_CONF_load_certs                      3660	1_1_0	EXIST::FUNCTION:TS
+PEM_write_bio_DSAPrivateKey             3661	1_1_0	EXIST::FUNCTION:DSA
+CMS_encrypt                             3662	1_1_0	EXIST::FUNCTION:CMS
+CRYPTO_nistcts128_decrypt               3663	1_1_0	EXIST::FUNCTION:
+ERR_load_DH_strings                     3664	1_1_0	EXIST::FUNCTION:DH
+EVP_MD_block_size                       3665	1_1_0	EXIST::FUNCTION:
+TS_X509_ALGOR_print_bio                 3666	1_1_0	EXIST::FUNCTION:TS
+d2i_PKCS7_ENVELOPE                      3667	1_1_0	EXIST::FUNCTION:
+ESS_CERT_ID_new                         3669	1_1_0	EXIST::FUNCTION:TS
+EC_POINT_invert                         3670	1_1_0	EXIST::FUNCTION:EC
+CAST_set_key                            3671	1_1_0	EXIST::FUNCTION:CAST
+ENGINE_get_pkey_meth                    3672	1_1_0	EXIST::FUNCTION:ENGINE
+BIO_ADDRINFO_free                       3673	1_1_0	EXIST::FUNCTION:SOCK
+DES_ede3_cbc_encrypt                    3674	1_1_0	EXIST::FUNCTION:DES
+X509v3_asid_canonize                    3675	1_1_0	EXIST::FUNCTION:RFC3779
+i2d_ASIdOrRange                         3676	1_1_0	EXIST::FUNCTION:RFC3779
+OCSP_url_svcloc_new                     3677	1_1_0	EXIST::FUNCTION:OCSP
+CRYPTO_mem_ctrl                         3678	1_1_0	EXIST::FUNCTION:
+ASN1_verify                             3679	1_1_0	EXIST::FUNCTION:
+DSA_generate_parameters_ex              3680	1_1_0	EXIST::FUNCTION:DSA
+X509_sign                               3681	1_1_0	EXIST::FUNCTION:
+SHA256_Transform                        3682	1_1_0	EXIST::FUNCTION:
+BIO_ADDR_free                           3683	1_1_0	EXIST::FUNCTION:SOCK
+ASN1_STRING_free                        3684	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_inherit               3685	1_1_0	EXIST::FUNCTION:
+EC_GROUP_get_curve_name                 3686	1_1_0	EXIST::FUNCTION:EC
+RSA_print                               3687	1_1_0	EXIST::FUNCTION:RSA
+i2d_ASN1_BMPSTRING                      3688	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_decrypt_old                    3689	1_1_0	EXIST::FUNCTION:
+ASN1_UTCTIME_cmp_time_t                 3690	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_set1_ip               3691	1_1_0	EXIST::FUNCTION:
+OTHERNAME_free                          3692	1_1_0	EXIST::FUNCTION:
+OCSP_REVOKEDINFO_free                   3693	1_1_0	EXIST::FUNCTION:OCSP
+EVP_CIPHER_CTX_encrypting               3694	1_1_0	EXIST::FUNCTION:
+EC_KEY_can_sign                         3695	1_1_0	EXIST::FUNCTION:EC
+PEM_write_bio_RSAPublicKey              3696	1_1_0	EXIST::FUNCTION:RSA
+X509_CRL_set1_lastUpdate                3697	1_1_0	EXIST::FUNCTION:
+OCSP_sendreq_nbio                       3698	1_1_0	EXIST::FUNCTION:OCSP
+PKCS8_encrypt                           3699	1_1_0	EXIST::FUNCTION:
+i2d_PKCS7_fp                            3700	1_1_0	EXIST::FUNCTION:STDIO
+i2d_X509_REQ                            3701	1_1_0	EXIST::FUNCTION:
+OCSP_CRLID_it                           3702	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP
+OCSP_CRLID_it                           3702	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP
+PEM_ASN1_write_bio                      3703	1_1_0	EXIST::FUNCTION:
+X509_get0_reject_objects                3704	1_1_0	EXIST::FUNCTION:
+BIO_set_tcp_ndelay                      3705	1_1_0	EXIST::FUNCTION:SOCK
+CMS_add0_CertificateChoices             3706	1_1_0	EXIST::FUNCTION:CMS
+POLICYINFO_new                          3707	1_1_0	EXIST::FUNCTION:
+X509_CRL_get0_by_serial                 3708	1_1_0	EXIST::FUNCTION:
+PKCS12_add_friendlyname_asc             3709	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get1_chain               3710	1_1_0	EXIST::FUNCTION:
+ASN1_mbstring_ncopy                     3711	1_1_0	EXIST::FUNCTION:
+PKCS7_RECIP_INFO_it                     3712	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS7_RECIP_INFO_it                     3712	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ENGINE_register_all_digests             3713	1_1_0	EXIST::FUNCTION:ENGINE
+X509_REQ_get_version                    3714	1_1_0	EXIST::FUNCTION:
+i2d_ASN1_UTCTIME                        3715	1_1_0	EXIST::FUNCTION:
+TS_STATUS_INFO_new                      3716	1_1_0	EXIST::FUNCTION:TS
+UI_set_ex_data                          3717	1_1_0	EXIST::FUNCTION:
+ASN1_TIME_set                           3718	1_1_0	EXIST::FUNCTION:
+TS_RESP_verify_response                 3719	1_1_0	EXIST::FUNCTION:TS
+X509_REVOKED_get0_serialNumber          3720	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_free                  3721	1_1_0	EXIST::FUNCTION:
+ASN1_TYPE_new                           3722	1_1_0	EXIST::FUNCTION:
+CMAC_CTX_cleanup                        3723	1_1_0	EXIST::FUNCTION:CMAC
+i2d_PKCS7_NDEF                          3724	1_1_0	EXIST::FUNCTION:
+OPENSSL_sk_pop_free                     3725	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get0_policy_tree         3726	1_1_0	EXIST::FUNCTION:
+DES_set_key_checked                     3727	1_1_0	EXIST::FUNCTION:DES
+EVP_PKEY_meth_free                      3728	1_1_0	EXIST::FUNCTION:
+EVP_sha224                              3729	1_1_0	EXIST::FUNCTION:
+ENGINE_set_id                           3730	1_1_0	EXIST::FUNCTION:ENGINE
+d2i_ECPrivateKey                        3731	1_1_0	EXIST::FUNCTION:EC
+CMS_signed_add1_attr_by_NID             3732	1_1_0	EXIST::FUNCTION:CMS
+i2d_DSAPrivateKey_fp                    3733	1_1_0	EXIST::FUNCTION:DSA,STDIO
+EVP_CIPHER_meth_get_set_asn1_params     3734	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_ex_data              3735	1_1_0	EXIST::FUNCTION:
+CMS_RecipientInfo_kari_set0_pkey        3736	1_1_0	EXIST::FUNCTION:CMS
+X509v3_addr_add_inherit                 3737	1_1_0	EXIST::FUNCTION:RFC3779
+SRP_Calc_u                              3738	1_1_0	EXIST::FUNCTION:SRP
+i2d_PKCS8PrivateKey_bio                 3739	1_1_0	EXIST::FUNCTION:
+X509_get_extension_flags                3740	1_1_0	EXIST::FUNCTION:
+X509V3_EXT_val_prn                      3741	1_1_0	EXIST::FUNCTION:
+SCT_get_validation_status               3742	1_1_0	EXIST::FUNCTION:CT
+NETSCAPE_CERT_SEQUENCE_free             3743	1_1_0	EXIST::FUNCTION:
+EVP_PBE_scrypt                          3744	1_1_0	EXIST::FUNCTION:SCRYPT
+d2i_TS_REQ_bio                          3745	1_1_0	EXIST::FUNCTION:TS
+ENGINE_set_default_ciphers              3746	1_1_0	EXIST::FUNCTION:ENGINE
+X509_get_signature_nid                  3747	1_1_0	EXIST::FUNCTION:
+DES_fcrypt                              3748	1_1_0	EXIST::FUNCTION:DES
+PEM_write_bio_X509_REQ                  3749	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_meth_get_sign                  3750	1_1_0	EXIST::FUNCTION:
+TS_REQ_get_nonce                        3751	1_1_0	EXIST::FUNCTION:TS
+ENGINE_unregister_EC                    3752	1_1_0	EXIST::FUNCTION:ENGINE
+X509v3_get_ext_count                    3753	1_1_0	EXIST::FUNCTION:
+UI_OpenSSL                              3754	1_1_0	EXIST::FUNCTION:UI_CONSOLE
+CRYPTO_ccm128_decrypt                   3755	1_1_0	EXIST::FUNCTION:
+d2i_OCSP_RESPDATA                       3756	1_1_0	EXIST::FUNCTION:OCSP
+BIO_set_callback                        3757	1_1_0	EXIST::FUNCTION:
+BN_GF2m_poly2arr                        3758	1_1_0	EXIST::FUNCTION:EC2M
+CMS_unsigned_get_attr_count             3759	1_1_0	EXIST::FUNCTION:CMS
+EVP_aes_256_gcm                         3760	1_1_0	EXIST::FUNCTION:
+RSA_padding_check_X931                  3761	1_1_0	EXIST::FUNCTION:RSA
+ECDH_compute_key                        3762	1_1_0	EXIST::FUNCTION:EC
+ASN1_TIME_print                         3763	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_get0_peerkey               3764	1_1_0	EXIST::FUNCTION:
+BN_mod_lshift1                          3765	1_1_0	EXIST::FUNCTION:
+BIO_ADDRINFO_family                     3766	1_1_0	EXIST::FUNCTION:SOCK
+PEM_write_DHxparams                     3767	1_1_0	EXIST::FUNCTION:DH,STDIO
+BN_mod_exp2_mont                        3768	1_1_0	EXIST::FUNCTION:
+ASN1_PRINTABLE_free                     3769	1_1_0	EXIST::FUNCTION:
+PKCS7_ATTR_SIGN_it                      3771	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKCS7_ATTR_SIGN_it                      3771	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+EVP_MD_CTX_copy                         3772	1_1_0	EXIST::FUNCTION:
+ENGINE_set_ctrl_function                3773	1_1_0	EXIST::FUNCTION:ENGINE
+OCSP_id_get0_info                       3774	1_1_0	EXIST::FUNCTION:OCSP
+BIO_ADDRINFO_next                       3775	1_1_0	EXIST::FUNCTION:SOCK
+OCSP_RESPBYTES_free                     3776	1_1_0	EXIST::FUNCTION:OCSP
+EC_KEY_METHOD_set_init                  3777	1_1_0	EXIST::FUNCTION:EC
+EVP_PKEY_asn1_copy                      3778	1_1_0	EXIST::FUNCTION:
+RSA_PSS_PARAMS_it                       3779	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RSA
+RSA_PSS_PARAMS_it                       3779	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RSA
+X509_STORE_CTX_get_error_depth          3780	1_1_0	EXIST::FUNCTION:
+ASN1_GENERALIZEDTIME_set_string         3781	1_1_0	EXIST::FUNCTION:
+EC_GROUP_new_curve_GFp                  3782	1_1_0	EXIST::FUNCTION:EC
+UI_new_method                           3783	1_1_0	EXIST::FUNCTION:
+Camellia_ofb128_encrypt                 3784	1_1_0	EXIST::FUNCTION:CAMELLIA
+X509_new                                3785	1_1_0	EXIST::FUNCTION:
+EC_KEY_get_conv_form                    3786	1_1_0	EXIST::FUNCTION:EC
+CTLOG_STORE_get0_log_by_id              3787	1_1_0	EXIST::FUNCTION:CT
+CMS_signed_add1_attr                    3788	1_1_0	EXIST::FUNCTION:CMS
+EVP_CIPHER_meth_set_iv_length           3789	1_1_0	EXIST::FUNCTION:
+X509v3_asid_validate_path               3790	1_1_0	EXIST::FUNCTION:RFC3779
+CMS_RecipientInfo_set0_password         3791	1_1_0	EXIST::FUNCTION:CMS
+TS_CONF_load_cert                       3792	1_1_0	EXIST::FUNCTION:TS
+i2d_ECPKParameters                      3793	1_1_0	EXIST::FUNCTION:EC
+X509_TRUST_get0                         3794	1_1_0	EXIST::FUNCTION:
+CMS_get0_RecipientInfos                 3795	1_1_0	EXIST::FUNCTION:CMS
+EVP_PKEY_CTX_new                        3796	1_1_0	EXIST::FUNCTION:
+i2d_DSA_PUBKEY_bio                      3797	1_1_0	EXIST::FUNCTION:DSA
+X509_REQ_get_subject_name               3798	1_1_0	EXIST::FUNCTION:
+BN_div_word                             3799	1_1_0	EXIST::FUNCTION:
+TS_CONF_set_signer_key                  3800	1_1_0	EXIST::FUNCTION:TS
+BN_GF2m_mod_sqrt                        3801	1_1_0	EXIST::FUNCTION:EC2M
+EVP_CIPHER_nid                          3802	1_1_0	EXIST::FUNCTION:
+OBJ_txt2obj                             3803	1_1_0	EXIST::FUNCTION:
+CMS_RecipientInfo_kari_get0_orig_id     3804	1_1_0	EXIST::FUNCTION:CMS
+EVP_bf_ecb                              3805	1_1_0	EXIST::FUNCTION:BF
+v2i_GENERAL_NAME_ex                     3806	1_1_0	EXIST::FUNCTION:
+CMS_signed_delete_attr                  3807	1_1_0	EXIST::FUNCTION:CMS
+ASN1_TYPE_pack_sequence                 3808	1_1_0	EXIST::FUNCTION:
+USERNOTICE_it                           3809	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+USERNOTICE_it                           3809	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+PKEY_USAGE_PERIOD_it                    3810	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PKEY_USAGE_PERIOD_it                    3810	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+BN_mul_word                             3811	1_1_0	EXIST::FUNCTION:
+i2d_IPAddressRange                      3813	1_1_0	EXIST::FUNCTION:RFC3779
+CMS_unsigned_add1_attr_by_txt           3814	1_1_0	EXIST::FUNCTION:CMS
+d2i_RSA_PUBKEY                          3815	1_1_0	EXIST::FUNCTION:RSA
+PKCS12_gen_mac                          3816	1_1_0	EXIST::FUNCTION:
+ERR_load_ENGINE_strings                 3817	1_1_0	EXIST::FUNCTION:ENGINE
+ERR_load_CT_strings                     3818	1_1_0	EXIST::FUNCTION:CT
+OCSP_ONEREQ_it                          3819	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP
+OCSP_ONEREQ_it                          3819	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP
+X509_PURPOSE_get_by_sname               3820	1_1_0	EXIST::FUNCTION:
+X509_PURPOSE_set                        3821	1_1_0	EXIST::FUNCTION:
+BN_mod_inverse                          3822	1_1_0	EXIST::FUNCTION:
+ASN1_STRING_TABLE_get                   3823	1_1_0	EXIST::FUNCTION:
+BN_bn2binpad                            3824	1_1_0	EXIST::FUNCTION:
+X509_supported_extension                3825	1_1_0	EXIST::FUNCTION:
+ECDSA_sign_setup                        3826	1_1_0	EXIST::FUNCTION:EC
+EVP_camellia_192_cfb128                 3827	1_1_0	EXIST::FUNCTION:CAMELLIA
+d2i_AUTHORITY_KEYID                     3828	1_1_0	EXIST::FUNCTION:
+RIPEMD160_Transform                     3829	1_1_0	EXIST::FUNCTION:RMD160
+DES_random_key                          3830	1_1_0	EXIST::FUNCTION:DES
+i2d_PKCS12_MAC_DATA                     3831	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_get0_EC_KEY                    3832	1_1_0	EXIST::FUNCTION:EC
+ASN1_SCTX_get_item                      3833	1_1_0	EXIST::FUNCTION:
+NOTICEREF_new                           3834	1_1_0	EXIST::FUNCTION:
+BN_GF2m_mod_inv                         3835	1_1_0	EXIST::FUNCTION:EC2M
+X509_CERT_AUX_free                      3836	1_1_0	EXIST::FUNCTION:
+BN_GF2m_mod_inv_arr                     3837	1_1_0	EXIST::FUNCTION:EC2M
+X509_REQ_get1_email                     3838	1_1_0	EXIST::FUNCTION:
+EC_KEY_print                            3839	1_1_0	EXIST::FUNCTION:EC
+i2d_ASN1_INTEGER                        3840	1_1_0	EXIST::FUNCTION:
+OCSP_SINGLERESP_add1_ext_i2d            3841	1_1_0	EXIST::FUNCTION:OCSP
+PKCS7_add_signed_attribute              3842	1_1_0	EXIST::FUNCTION:
+i2d_PrivateKey_bio                      3843	1_1_0	EXIST::FUNCTION:
+RSA_padding_add_PKCS1_type_1            3844	1_1_0	EXIST::FUNCTION:RSA
+i2d_re_X509_tbs                         3845	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_iv_length                    3846	1_1_0	EXIST::FUNCTION:
+OCSP_REQ_CTX_get0_mem_bio               3847	1_1_0	EXIST::FUNCTION:OCSP
+i2d_PKCS8PrivateKeyInfo_bio             3848	1_1_0	EXIST::FUNCTION:
+d2i_OCSP_CERTID                         3849	1_1_0	EXIST::FUNCTION:OCSP
+EVP_CIPHER_meth_set_init                3850	1_1_0	EXIST::FUNCTION:
+RIPEMD160_Final                         3851	1_1_0	EXIST::FUNCTION:RMD160
+NETSCAPE_SPKI_free                      3852	1_1_0	EXIST::FUNCTION:
+BIO_asn1_get_prefix                     3853	1_1_0	EXIST::FUNCTION:
+d2i_OCSP_ONEREQ                         3854	1_1_0	EXIST::FUNCTION:OCSP
+EVP_PKEY_asn1_set_security_bits         3855	1_1_0	EXIST::FUNCTION:
+i2d_CERTIFICATEPOLICIES                 3856	1_1_0	EXIST::FUNCTION:
+i2d_X509_CERT_AUX                       3857	1_1_0	EXIST::FUNCTION:
+i2o_ECPublicKey                         3858	1_1_0	EXIST::FUNCTION:EC
+PKCS12_SAFEBAG_create0_pkcs8            3859	1_1_0	EXIST::FUNCTION:
+OBJ_get0_data                           3860	1_1_0	EXIST::FUNCTION:
+EC_GROUP_get0_seed                      3861	1_1_0	EXIST::FUNCTION:EC
+OCSP_REQUEST_it                         3862	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP
+OCSP_REQUEST_it                         3862	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP
+ASRange_it                              3863	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779
+ASRange_it                              3863	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779
+i2d_TS_RESP                             3864	1_1_0	EXIST::FUNCTION:TS
+TS_TST_INFO_get_ext_by_OBJ              3865	1_1_0	EXIST::FUNCTION:TS
+d2i_PKCS7_RECIP_INFO                    3866	1_1_0	EXIST::FUNCTION:
+d2i_X509_CRL                            3867	1_1_0	EXIST::FUNCTION:
+ASN1_OCTET_STRING_dup                   3868	1_1_0	EXIST::FUNCTION:
+CRYPTO_nistcts128_decrypt_block         3869	1_1_0	EXIST::FUNCTION:
+CMS_stream                              3870	1_1_0	EXIST::FUNCTION:CMS
+RSA_OAEP_PARAMS_it                      3871	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RSA
+RSA_OAEP_PARAMS_it                      3871	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RSA
+BN_bn2mpi                               3872	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_cleanup                  3873	1_1_0	EXIST::FUNCTION:
+OCSP_onereq_get0_id                     3874	1_1_0	EXIST::FUNCTION:OCSP
+X509_get_default_cert_dir               3875	1_1_0	EXIST::FUNCTION:
+PROXY_POLICY_free                       3877	1_1_0	EXIST::FUNCTION:
+PEM_write_DSAPrivateKey                 3878	1_1_0	EXIST::FUNCTION:DSA,STDIO
+OPENSSL_sk_delete_ptr                   3879	1_1_0	EXIST::FUNCTION:
+CMS_add0_RevocationInfoChoice           3880	1_1_0	EXIST::FUNCTION:CMS
+ASN1_PCTX_get_flags                     3881	1_1_0	EXIST::FUNCTION:
+EVP_MD_meth_set_result_size             3882	1_1_0	EXIST::FUNCTION:
+i2d_X509_CRL                            3883	1_1_0	EXIST::FUNCTION:
+ASN1_INTEGER_it                         3885	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ASN1_INTEGER_it                         3885	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+TS_ACCURACY_new                         3886	1_1_0	EXIST::FUNCTION:TS
+i2d_SXNETID                             3887	1_1_0	EXIST::FUNCTION:
+BN_mod_mul_montgomery                   3888	1_1_0	EXIST::FUNCTION:
+BN_nnmod                                3889	1_1_0	EXIST::FUNCTION:
+TS_RESP_CTX_set_status_info_cond        3890	1_1_0	EXIST::FUNCTION:TS
+PBKDF2PARAM_new                         3891	1_1_0	EXIST::FUNCTION:
+ENGINE_set_RSA                          3892	1_1_0	EXIST::FUNCTION:ENGINE
+i2d_X509_ATTRIBUTE                      3893	1_1_0	EXIST::FUNCTION:
+PKCS7_ctrl                              3894	1_1_0	EXIST::FUNCTION:
+OCSP_REVOKEDINFO_it                     3895	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:OCSP
+OCSP_REVOKEDINFO_it                     3895	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:OCSP
+X509V3_set_ctx                          3896	1_1_0	EXIST::FUNCTION:
+ASN1_ENUMERATED_set_int64               3897	1_1_0	EXIST::FUNCTION:
+o2i_SCT                                 3898	1_1_0	EXIST::FUNCTION:CT
+CRL_DIST_POINTS_free                    3899	1_1_0	EXIST::FUNCTION:
+d2i_OCSP_SINGLERESP                     3900	1_1_0	EXIST::FUNCTION:OCSP
+EVP_CIPHER_CTX_num                      3901	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_verify_recover_init            3902	1_1_0	EXIST::FUNCTION:
+SHA512_Init                             3903	1_1_0	EXIST::FUNCTION:
+TS_MSG_IMPRINT_set_msg                  3904	1_1_0	EXIST::FUNCTION:TS
+CMS_unsigned_add1_attr                  3905	1_1_0	EXIST::FUNCTION:CMS
+OPENSSL_LH_doall                        3906	1_1_0	EXIST::FUNCTION:
+PKCS8_pkey_get0_attrs                   3907	1_1_0	EXIST::FUNCTION:
+PKCS8_pkey_add1_attr_by_NID             3908	1_1_0	EXIST::FUNCTION:
+ASYNC_is_capable                        3909	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_CTX_set_cipher_data          3910	1_1_0	EXIST::FUNCTION:
+EVP_CIPHER_CTX_get_cipher_data          3911	1_1_0	EXIST::FUNCTION:
+BIO_up_ref                              3912	1_1_0	EXIST::FUNCTION:
+X509_STORE_up_ref                       3913	1_1_0	EXIST::FUNCTION:
+DSA_SIG_get0                            3914	1_1_0	EXIST::FUNCTION:DSA
+BN_BLINDING_is_current_thread           3915	1_1_0	EXIST::FUNCTION:
+BN_BLINDING_set_current_thread          3916	1_1_0	EXIST::FUNCTION:
+BN_BLINDING_lock                        3917	1_1_0	EXIST::FUNCTION:
+BN_BLINDING_unlock                      3918	1_1_0	EXIST::FUNCTION:
+EC_GROUP_new_from_ecpkparameters        3919	1_1_0	EXIST::FUNCTION:EC
+EC_GROUP_get_ecpkparameters             3920	1_1_0	EXIST::FUNCTION:EC
+EC_GROUP_new_from_ecparameters          3921	1_1_0	EXIST::FUNCTION:EC
+ECPARAMETERS_it                         3922	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:EC
+ECPARAMETERS_it                         3922	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:EC
+ECPKPARAMETERS_it                       3923	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:EC
+ECPKPARAMETERS_it                       3923	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:EC
+EC_GROUP_get_ecparameters               3924	1_1_0	EXIST::FUNCTION:EC
+DHparams_it                             3925	1_1_0	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:DH
+DHparams_it                             3925	1_1_0	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:DH
+EVP_blake2s256                          3926	1_1_0	EXIST::FUNCTION:BLAKE2
+EVP_blake2b512                          3927	1_1_0	EXIST::FUNCTION:BLAKE2
+X509_SIG_get0                           3928	1_1_0	EXIST::FUNCTION:
+BIO_meth_new                            3929	1_1_0	EXIST::FUNCTION:
+BIO_meth_get_puts                       3930	1_1_0	EXIST::FUNCTION:
+BIO_meth_get_ctrl                       3931	1_1_0	EXIST::FUNCTION:
+BIO_meth_get_gets                       3932	1_1_0	EXIST::FUNCTION:
+BIO_get_data                            3933	1_1_0	EXIST::FUNCTION:
+BIO_set_init                            3934	1_1_0	EXIST::FUNCTION:
+BIO_meth_set_puts                       3935	1_1_0	EXIST::FUNCTION:
+BIO_get_shutdown                        3936	1_1_0	EXIST::FUNCTION:
+BIO_get_init                            3937	1_1_0	EXIST::FUNCTION:
+BIO_meth_set_ctrl                       3938	1_1_0	EXIST::FUNCTION:
+BIO_meth_set_read                       3939	1_1_0	EXIST::FUNCTION:
+BIO_set_shutdown                        3940	1_1_0	EXIST::FUNCTION:
+BIO_meth_set_create                     3941	1_1_0	EXIST::FUNCTION:
+BIO_meth_get_write                      3942	1_1_0	EXIST::FUNCTION:
+BIO_meth_set_callback_ctrl              3943	1_1_0	EXIST::FUNCTION:
+BIO_meth_get_create                     3944	1_1_0	EXIST::FUNCTION:
+BIO_set_next                            3945	1_1_0	EXIST::FUNCTION:
+BIO_set_data                            3946	1_1_0	EXIST::FUNCTION:
+BIO_meth_set_write                      3947	1_1_0	EXIST::FUNCTION:
+BIO_meth_set_destroy                    3948	1_1_0	EXIST::FUNCTION:
+BIO_meth_set_gets                       3949	1_1_0	EXIST::FUNCTION:
+BIO_meth_get_callback_ctrl              3950	1_1_0	EXIST::FUNCTION:
+BIO_meth_get_destroy                    3951	1_1_0	EXIST::FUNCTION:
+BIO_meth_get_read                       3952	1_1_0	EXIST::FUNCTION:
+BIO_set_retry_reason                    3953	1_1_0	EXIST::FUNCTION:
+BIO_meth_free                           3954	1_1_0	EXIST::FUNCTION:
+DSA_meth_set_bn_mod_exp                 3955	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_set_init                       3956	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_free                           3957	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_set_mod_exp                    3958	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_set_sign                       3959	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_get_finish                     3960	1_1_0	EXIST::FUNCTION:DSA
+DSA_set_flags                           3961	1_1_0	EXIST::FUNCTION:DSA
+DSA_get0_pqg                            3962	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_get0_app_data                  3963	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_get_keygen                     3964	1_1_0	EXIST::FUNCTION:DSA
+DSA_clear_flags                         3965	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_get0_name                      3966	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_get_paramgen                   3967	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_get_sign                       3968	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_set_paramgen                   3969	1_1_0	EXIST::FUNCTION:DSA
+DSA_test_flags                          3970	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_set0_app_data                  3971	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_set1_name                      3972	1_1_0	EXIST::FUNCTION:DSA
+DSA_get0_key                            3973	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_get_mod_exp                    3974	1_1_0	EXIST::FUNCTION:DSA
+DSA_set0_pqg                            3975	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_get_flags                      3976	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_get_verify                     3977	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_set_verify                     3978	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_set_finish                     3979	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_set_keygen                     3980	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_dup                            3981	1_1_0	EXIST::FUNCTION:DSA
+DSA_set0_key                            3982	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_get_init                       3983	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_set_sign_setup                 3984	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_get_bn_mod_exp                 3985	1_1_0	EXIST::FUNCTION:DSA
+DSA_get_method                          3986	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_new                            3987	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_set_flags                      3988	1_1_0	EXIST::FUNCTION:DSA
+DSA_meth_get_sign_setup                 3989	1_1_0	EXIST::FUNCTION:DSA
+DSA_get0_engine                         3990	1_1_0	EXIST::FUNCTION:DSA
+X509_VERIFY_PARAM_set_auth_level        3991	1_1_0	EXIST::FUNCTION:
+X509_VERIFY_PARAM_get_auth_level        3992	1_1_0	EXIST::FUNCTION:
+X509_REQ_get0_pubkey                    3993	1_1_0	EXIST::FUNCTION:
+RSA_set0_key                            3994	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_get_flags                      3995	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_set_finish                     3996	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_get_priv_dec                   3997	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_get_sign                       3998	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_get_bn_mod_exp                 3999	1_1_0	EXIST::FUNCTION:RSA
+RSA_test_flags                          4000	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_new                            4001	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_get0_app_data                  4002	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_dup                            4003	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_set1_name                      4004	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_set0_app_data                  4005	1_1_0	EXIST::FUNCTION:RSA
+RSA_set_flags                           4006	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_set_sign                       4007	1_1_0	EXIST::FUNCTION:RSA
+RSA_clear_flags                         4008	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_get_keygen                     4009	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_set_keygen                     4010	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_set_pub_dec                    4011	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_get_finish                     4012	1_1_0	EXIST::FUNCTION:RSA
+RSA_get0_key                            4013	1_1_0	EXIST::FUNCTION:RSA
+RSA_get0_engine                         4014	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_set_priv_enc                   4015	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_set_verify                     4016	1_1_0	EXIST::FUNCTION:RSA
+RSA_get0_factors                        4017	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_get0_name                      4018	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_get_mod_exp                    4019	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_set_flags                      4020	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_get_pub_dec                    4021	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_set_bn_mod_exp                 4022	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_get_init                       4023	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_free                           4024	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_get_pub_enc                    4025	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_set_mod_exp                    4026	1_1_0	EXIST::FUNCTION:RSA
+RSA_set0_factors                        4027	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_set_pub_enc                    4028	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_set_priv_dec                   4029	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_get_verify                     4030	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_set_init                       4031	1_1_0	EXIST::FUNCTION:RSA
+RSA_meth_get_priv_enc                   4032	1_1_0	EXIST::FUNCTION:RSA
+RSA_set0_crt_params                     4037	1_1_0	EXIST::FUNCTION:RSA
+RSA_get0_crt_params                     4038	1_1_0	EXIST::FUNCTION:RSA
+DH_set0_pqg                             4039	1_1_0	EXIST::FUNCTION:DH
+DH_clear_flags                          4041	1_1_0	EXIST::FUNCTION:DH
+DH_get0_key                             4042	1_1_0	EXIST::FUNCTION:DH
+DH_get0_engine                          4043	1_1_0	EXIST::FUNCTION:DH
+DH_set0_key                             4044	1_1_0	EXIST::FUNCTION:DH
+DH_set_length                           4045	1_1_0	EXIST::FUNCTION:DH
+DH_test_flags                           4046	1_1_0	EXIST::FUNCTION:DH
+DH_get_length                           4047	1_1_0	EXIST::FUNCTION:DH
+DH_get0_pqg                             4048	1_1_0	EXIST::FUNCTION:DH
+DH_meth_get_compute_key                 4049	1_1_0	EXIST::FUNCTION:DH
+DH_meth_set1_name                       4050	1_1_0	EXIST::FUNCTION:DH
+DH_meth_set_init                        4051	1_1_0	EXIST::FUNCTION:DH
+DH_meth_get_finish                      4052	1_1_0	EXIST::FUNCTION:DH
+DH_meth_get0_name                       4053	1_1_0	EXIST::FUNCTION:DH
+DH_meth_set_generate_params             4054	1_1_0	EXIST::FUNCTION:DH
+DH_meth_set_compute_key                 4055	1_1_0	EXIST::FUNCTION:DH
+DH_meth_set_flags                       4056	1_1_0	EXIST::FUNCTION:DH
+DH_meth_get_generate_params             4057	1_1_0	EXIST::FUNCTION:DH
+DH_meth_get_flags                       4058	1_1_0	EXIST::FUNCTION:DH
+DH_meth_set_finish                      4059	1_1_0	EXIST::FUNCTION:DH
+DH_meth_get0_app_data                   4060	1_1_0	EXIST::FUNCTION:DH
+DH_meth_set0_app_data                   4061	1_1_0	EXIST::FUNCTION:DH
+DH_meth_get_init                        4062	1_1_0	EXIST::FUNCTION:DH
+DH_meth_get_bn_mod_exp                  4063	1_1_0	EXIST::FUNCTION:DH
+DH_meth_new                             4064	1_1_0	EXIST::FUNCTION:DH
+DH_meth_dup                             4065	1_1_0	EXIST::FUNCTION:DH
+DH_meth_set_bn_mod_exp                  4066	1_1_0	EXIST::FUNCTION:DH
+DH_meth_set_generate_key                4067	1_1_0	EXIST::FUNCTION:DH
+DH_meth_free                            4068	1_1_0	EXIST::FUNCTION:DH
+DH_meth_get_generate_key                4069	1_1_0	EXIST::FUNCTION:DH
+DH_set_flags                            4070	1_1_0	EXIST::FUNCTION:DH
+X509_STORE_CTX_get_obj_by_subject       4071	1_1_0	EXIST::FUNCTION:
+X509_OBJECT_free                        4072	1_1_0	EXIST::FUNCTION:
+X509_OBJECT_get0_X509                   4073	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get0_untrusted           4074	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_set_error_depth          4075	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get0_cert                4076	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_set_verify               4077	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_set_current_cert         4078	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_verify               4079	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_verify_cb            4080	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_set0_verified_chain      4081	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_set0_untrusted           4082	1_1_0	EXIST::FUNCTION:
+OPENSSL_hexchar2int                     4083	1_1_0	EXIST::FUNCTION:
+X509_STORE_set_ex_data                  4084	1_1_0	EXIST::FUNCTION:
+X509_STORE_get_ex_data                  4085	1_1_0	EXIST::FUNCTION:
+X509_STORE_get0_objects                 4086	1_1_0	EXIST::FUNCTION:
+X509_OBJECT_get_type                    4087	1_1_0	EXIST::FUNCTION:
+X509_STORE_set_verify                   4088	1_1_0	EXIST::FUNCTION:
+X509_OBJECT_new                         4089	1_1_0	EXIST::FUNCTION:
+X509_STORE_get0_param                   4090	1_1_0	EXIST::FUNCTION:
+PEM_write_bio_PrivateKey_traditional    4091	1_1_0	EXIST::FUNCTION:
+X509_get_pathlen                        4092	1_1_0	EXIST::FUNCTION:
+ECDSA_SIG_set0                          4093	1_1_0	EXIST::FUNCTION:EC
+DSA_SIG_set0                            4094	1_1_0	EXIST::FUNCTION:DSA
+EVP_PKEY_get0_hmac                      4095	1_1_0	EXIST::FUNCTION:
+HMAC_CTX_get_md                         4096	1_1_0	EXIST::FUNCTION:
+NAME_CONSTRAINTS_check_CN               4097	1_1_0	EXIST::FUNCTION:
+OCSP_resp_get0_id                       4098	1_1_0	EXIST::FUNCTION:OCSP
+OCSP_resp_get0_certs                    4099	1_1_0	EXIST::FUNCTION:OCSP
+X509_set_proxy_flag                     4100	1_1_0	EXIST::FUNCTION:
+EVP_ENCODE_CTX_copy                     4101	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_check_issued         4102	1_1_0	EXIST::FUNCTION:
+X509_STORE_set_lookup_certs             4103	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_check_crl            4104	1_1_0	EXIST::FUNCTION:
+X509_STORE_get_cleanup                  4105	1_1_0	EXIST::FUNCTION:
+X509_STORE_get_lookup_crls              4106	1_1_0	EXIST::FUNCTION:
+X509_STORE_get_cert_crl                 4107	1_1_0	EXIST::FUNCTION:
+X509_STORE_get_lookup_certs             4108	1_1_0	EXIST::FUNCTION:
+X509_STORE_get_check_revocation         4109	1_1_0	EXIST::FUNCTION:
+X509_STORE_set_get_crl                  4110	1_1_0	EXIST::FUNCTION:
+X509_STORE_set_check_issued             4111	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_check_policy         4112	1_1_0	EXIST::FUNCTION:
+X509_STORE_get_check_crl                4113	1_1_0	EXIST::FUNCTION:
+X509_STORE_set_check_crl                4114	1_1_0	EXIST::FUNCTION:
+X509_STORE_get_check_issued             4115	1_1_0	EXIST::FUNCTION:
+X509_STORE_get_get_issuer               4116	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_get_crl              4117	1_1_0	EXIST::FUNCTION:
+X509_STORE_set_get_issuer               4118	1_1_0	EXIST::FUNCTION:
+X509_STORE_set_cleanup                  4119	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_cleanup              4120	1_1_0	EXIST::FUNCTION:
+X509_STORE_get_get_crl                  4121	1_1_0	EXIST::FUNCTION:
+X509_STORE_set_check_revocation         4122	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_cert_crl             4123	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_lookup_certs         4124	1_1_0	EXIST::FUNCTION:
+X509_STORE_set_check_policy             4125	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_get_issuer           4126	1_1_0	EXIST::FUNCTION:
+X509_STORE_get_check_policy             4127	1_1_0	EXIST::FUNCTION:
+X509_STORE_set_cert_crl                 4128	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_check_revocation     4129	1_1_0	EXIST::FUNCTION:
+X509_STORE_get_verify_cb                4130	1_1_0	EXIST::FUNCTION:
+X509_STORE_CTX_get_lookup_crls          4131	1_1_0	EXIST::FUNCTION:
+X509_STORE_get_verify                   4132	1_1_0	EXIST::FUNCTION:
+X509_STORE_unlock                       4133	1_1_0	EXIST::FUNCTION:
+X509_STORE_lock                         4134	1_1_0	EXIST::FUNCTION:
+X509_set_proxy_pathlen                  4135	1_1_0	EXIST::FUNCTION:
+X509_get_proxy_pathlen                  4136	1_1_0	EXIST::FUNCTION:
+DSA_bits                                4137	1_1_0	EXIST::FUNCTION:DSA
+EVP_PKEY_set1_tls_encodedpoint          4138	1_1_0	EXIST::FUNCTION:
+EVP_PKEY_get1_tls_encodedpoint          4139	1_1_0	EXIST::FUNCTION:
+ASN1_STRING_get0_data                   4140	1_1_0	EXIST::FUNCTION:
+X509_SIG_getm                           4141	1_1_0	EXIST::FUNCTION:
+X509_get0_serialNumber                  4142	1_1_0	EXIST::FUNCTION:
+PKCS12_get_attr                         4143	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0
+X509_CRL_get0_lastUpdate                4144	1_1_0	EXIST::FUNCTION:
+X509_get0_notBefore                     4145	1_1_0	EXIST::FUNCTION:
+X509_get0_notAfter                      4146	1_1_0	EXIST::FUNCTION:
+X509_CRL_get0_nextUpdate                4147	1_1_0	EXIST::FUNCTION:
+BIO_get_new_index                       4148	1_1_0	EXIST::FUNCTION:
+OPENSSL_utf82uni                        4149	1_1_0	EXIST::FUNCTION:
+PKCS12_add_friendlyname_utf8            4150	1_1_0	EXIST::FUNCTION:
+OPENSSL_uni2utf8                        4151	1_1_0	EXIST::FUNCTION:
+PKCS12_key_gen_utf8                     4152	1_1_0	EXIST::FUNCTION:
+ECPKPARAMETERS_free                     4153	1_1_0	EXIST::FUNCTION:EC
+ECPARAMETERS_free                       4154	1_1_0	EXIST::FUNCTION:EC
+ECPKPARAMETERS_new                      4155	1_1_0	EXIST::FUNCTION:EC
+ECPARAMETERS_new                        4156	1_1_0	EXIST::FUNCTION:EC
+OCSP_RESPID_set_by_name                 4157	1_1_0a	EXIST::FUNCTION:OCSP
+OCSP_RESPID_set_by_key                  4158	1_1_0a	EXIST::FUNCTION:OCSP
+OCSP_RESPID_match                       4159	1_1_0a	EXIST::FUNCTION:OCSP
+ASN1_ITEM_lookup                        4160	1_1_1	EXIST::FUNCTION:
+ASN1_ITEM_get                           4161	1_1_1	EXIST::FUNCTION:
+BIO_read_ex                             4162	1_1_1	EXIST::FUNCTION:
+BIO_set_callback_ex                     4163	1_1_1	EXIST::FUNCTION:
+BIO_get_callback_ex                     4164	1_1_1	EXIST::FUNCTION:
+BIO_meth_set_read_ex                    4165	1_1_1	EXIST::FUNCTION:
+BIO_meth_get_read_ex                    4166	1_1_1	EXIST::FUNCTION:
+BIO_write_ex                            4167	1_1_1	EXIST::FUNCTION:
+BIO_meth_get_write_ex                   4168	1_1_1	EXIST::FUNCTION:
+BIO_meth_set_write_ex                   4169	1_1_1	EXIST::FUNCTION:
+DSO_pathbyaddr                          4170	1_1_0c	EXIST::FUNCTION:
+DSO_dsobyaddr                           4171	1_1_0c	EXIST::FUNCTION:
+CT_POLICY_EVAL_CTX_get_time             4172	1_1_0d	EXIST::FUNCTION:CT
+CT_POLICY_EVAL_CTX_set_time             4173	1_1_0d	EXIST::FUNCTION:CT
+X509_VERIFY_PARAM_set_inh_flags         4174	1_1_0d	EXIST::FUNCTION:
+X509_VERIFY_PARAM_get_inh_flags         4175	1_1_0d	EXIST::FUNCTION:
+EVP_PKEY_CTX_md                         4176	1_1_1	EXIST::FUNCTION:
+RSA_pkey_ctx_ctrl                       4177	1_1_1	EXIST::FUNCTION:RSA
+UI_method_set_ex_data                   4178	1_1_1	EXIST::FUNCTION:
+UI_method_get_ex_data                   4179	1_1_1	EXIST::FUNCTION:
+UI_UTIL_wrap_read_pem_callback          4180	1_1_1	EXIST::FUNCTION:
+X509_VERIFY_PARAM_get_time              4181	1_1_0d	EXIST::FUNCTION:
+EVP_PKEY_get0_poly1305                  4182	1_1_1	EXIST::FUNCTION:POLY1305
+DH_check_params                         4183	1_1_0d	EXIST::FUNCTION:DH
+EVP_PKEY_get0_siphash                   4184	1_1_1	EXIST::FUNCTION:SIPHASH
+EVP_aria_256_ofb                        4185	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_256_cfb128                     4186	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_128_cfb1                       4187	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_128_ecb                        4188	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_128_cfb128                     4189	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_192_ecb                        4190	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_128_cbc                        4191	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_192_ofb                        4192	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_192_cbc                        4193	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_192_cfb1                       4194	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_128_cfb8                       4195	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_256_cfb1                       4196	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_192_cfb8                       4197	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_256_cfb8                       4198	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_256_cbc                        4199	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_128_ofb                        4200	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_192_cfb128                     4201	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_256_ecb                        4202	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_256_ctr                        4203	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_128_ctr                        4204	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_192_ctr                        4205	1_1_1	EXIST::FUNCTION:ARIA
+UI_null                                 4206	1_1_1	EXIST::FUNCTION:
+EC_KEY_get0_engine                      4207	1_1_1	EXIST::FUNCTION:EC
+INT32_it                                4208	1_1_0f	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+INT32_it                                4208	1_1_0f	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+UINT64_it                               4209	1_1_0f	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+UINT64_it                               4209	1_1_0f	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ZINT32_it                               4210	1_1_0f	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ZINT32_it                               4210	1_1_0f	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ZUINT64_it                              4211	1_1_0f	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ZUINT64_it                              4211	1_1_0f	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+INT64_it                                4212	1_1_0f	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+INT64_it                                4212	1_1_0f	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ZUINT32_it                              4213	1_1_0f	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ZUINT32_it                              4213	1_1_0f	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+UINT32_it                               4214	1_1_0f	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+UINT32_it                               4214	1_1_0f	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ZINT64_it                               4215	1_1_0f	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ZINT64_it                               4215	1_1_0f	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+CRYPTO_mem_leaks_cb                     4216	1_1_1	EXIST::FUNCTION:CRYPTO_MDEBUG
+BIO_lookup_ex                           4217	1_1_1	EXIST::FUNCTION:SOCK
+X509_CRL_print_ex                       4218	1_1_1	EXIST::FUNCTION:
+X509_SIG_INFO_get                       4219	1_1_1	EXIST::FUNCTION:
+X509_get_signature_info                 4220	1_1_1	EXIST::FUNCTION:
+X509_SIG_INFO_set                       4221	1_1_1	EXIST::FUNCTION:
+ESS_CERT_ID_V2_free                     4222	1_1_1	EXIST::FUNCTION:TS
+ESS_SIGNING_CERT_V2_new                 4223	1_1_1	EXIST::FUNCTION:TS
+d2i_ESS_SIGNING_CERT_V2                 4224	1_1_1	EXIST::FUNCTION:TS
+i2d_ESS_CERT_ID_V2                      4225	1_1_1	EXIST::FUNCTION:TS
+ESS_CERT_ID_V2_dup                      4226	1_1_1	EXIST::FUNCTION:TS
+TS_RESP_CTX_set_ess_cert_id_digest      4227	1_1_1	EXIST::FUNCTION:TS
+d2i_ESS_CERT_ID_V2                      4228	1_1_1	EXIST::FUNCTION:TS
+i2d_ESS_SIGNING_CERT_V2                 4229	1_1_1	EXIST::FUNCTION:TS
+TS_CONF_set_ess_cert_id_digest          4230	1_1_1	EXIST::FUNCTION:TS
+ESS_SIGNING_CERT_V2_free                4231	1_1_1	EXIST::FUNCTION:TS
+ESS_SIGNING_CERT_V2_dup                 4232	1_1_1	EXIST::FUNCTION:TS
+ESS_CERT_ID_V2_new                      4233	1_1_1	EXIST::FUNCTION:TS
+PEM_read_bio_ex                         4234	1_1_1	EXIST::FUNCTION:
+PEM_bytes_read_bio_secmem               4235	1_1_1	EXIST::FUNCTION:
+EVP_DigestSign                          4236	1_1_1	EXIST::FUNCTION:
+EVP_DigestVerify                        4237	1_1_1	EXIST::FUNCTION:
+UI_method_get_data_duplicator           4238	1_1_1	EXIST::FUNCTION:
+UI_method_set_data_duplicator           4239	1_1_1	EXIST::FUNCTION:
+UI_dup_user_data                        4240	1_1_1	EXIST::FUNCTION:
+UI_method_get_data_destructor           4241	1_1_1	EXIST::FUNCTION:
+ERR_load_strings_const                  4242	1_1_1	EXIST::FUNCTION:
+ASN1_TIME_to_tm                         4243	1_1_1	EXIST::FUNCTION:
+ASN1_TIME_set_string_X509               4244	1_1_1	EXIST::FUNCTION:
+OCSP_resp_get1_id                       4245	1_1_1	EXIST::FUNCTION:OCSP
+OSSL_STORE_register_loader              4246	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_LOADER_set_error             4247	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_get0_PKEY               4248	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_get_type                4249	1_1_1	EXIST::FUNCTION:
+ERR_load_OSSL_STORE_strings             4250	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_LOADER_free                  4251	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_get1_PKEY               4252	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_free                    4253	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_open_file                    4254	1_1_1	NOEXIST::FUNCTION:
+OSSL_STORE_LOADER_set_eof               4255	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_LOADER_new                   4256	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_get0_CERT               4257	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_LOADER_set_close             4258	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_new_PARAMS              4259	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_new_PKEY                4260	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_get1_PARAMS             4261	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_get1_CRL                4262	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_error                        4263	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_get1_CERT               4264	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_get0_PARAMS             4265	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_type_string             4266	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_get1_NAME               4267	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_LOADER_set_load              4268	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_LOADER_get0_scheme           4269	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_open                         4270	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_close                        4271	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_new_CERT                4272	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_get0_CRL                4273	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_load                         4274	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_get0_NAME               4275	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_unregister_loader            4276	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_new_CRL                 4277	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_new_NAME                4278	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_eof                          4279	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_LOADER_set_open              4280	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_LOADER_set_ctrl              4281	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_ctrl                         4282	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_get0_NAME_description   4283	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_set0_NAME_description   4284	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_INFO_get1_NAME_description   4285	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_do_all_loaders               4286	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_LOADER_get0_engine           4287	1_1_1	EXIST::FUNCTION:
+OPENSSL_fork_prepare                    4288	1_1_1	EXIST:UNIX:FUNCTION:
+OPENSSL_fork_parent                     4289	1_1_1	EXIST:UNIX:FUNCTION:
+OPENSSL_fork_child                      4290	1_1_1	EXIST:UNIX:FUNCTION:
+RAND_DRBG_instantiate                   4292	1_1_1	EXIST::FUNCTION:
+RAND_DRBG_uninstantiate                 4293	1_1_1	EXIST::FUNCTION:
+RAND_DRBG_set                           4295	1_1_1	EXIST::FUNCTION:
+RAND_DRBG_set_callbacks                 4296	1_1_1	EXIST::FUNCTION:
+RAND_DRBG_new                           4297	1_1_1	EXIST::FUNCTION:
+RAND_DRBG_set_reseed_interval           4298	1_1_1	EXIST::FUNCTION:
+RAND_DRBG_free                          4299	1_1_1	EXIST::FUNCTION:
+RAND_DRBG_generate                      4300	1_1_1	EXIST::FUNCTION:
+RAND_DRBG_reseed                        4301	1_1_1	EXIST::FUNCTION:
+RAND_DRBG_set_ex_data                   4302	1_1_1	EXIST::FUNCTION:
+RAND_DRBG_get_ex_data                   4303	1_1_1	EXIST::FUNCTION:
+EVP_sha3_224                            4304	1_1_1	EXIST::FUNCTION:
+EVP_sha3_256                            4305	1_1_1	EXIST::FUNCTION:
+EVP_sha3_384                            4306	1_1_1	EXIST::FUNCTION:
+EVP_sha3_512                            4307	1_1_1	EXIST::FUNCTION:
+EVP_shake128                            4308	1_1_1	EXIST::FUNCTION:
+EVP_shake256                            4309	1_1_1	EXIST::FUNCTION:
+SCRYPT_PARAMS_new                       4310	1_1_1	EXIST::FUNCTION:SCRYPT
+SCRYPT_PARAMS_free                      4311	1_1_1	EXIST::FUNCTION:SCRYPT
+i2d_SCRYPT_PARAMS                       4312	1_1_1	EXIST::FUNCTION:SCRYPT
+d2i_SCRYPT_PARAMS                       4313	1_1_1	EXIST::FUNCTION:SCRYPT
+SCRYPT_PARAMS_it                        4314	1_1_1	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:SCRYPT
+SCRYPT_PARAMS_it                        4314	1_1_1	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:SCRYPT
+CRYPTO_secure_clear_free                4315	1_1_0g	EXIST::FUNCTION:
+EVP_PKEY_meth_get0                      4316	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_meth_get_count                 4317	1_1_1	EXIST::FUNCTION:
+RAND_DRBG_get0_public                   4319	1_1_1	EXIST::FUNCTION:
+RAND_priv_bytes                         4320	1_1_1	EXIST::FUNCTION:
+BN_priv_rand                            4321	1_1_1	EXIST::FUNCTION:
+BN_priv_rand_range                      4322	1_1_1	EXIST::FUNCTION:
+ASN1_TIME_normalize                     4323	1_1_1	EXIST::FUNCTION:
+ASN1_TIME_cmp_time_t                    4324	1_1_1	EXIST::FUNCTION:
+ASN1_TIME_compare                       4325	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_CTX_ctrl_uint64                4326	1_1_1	EXIST::FUNCTION:
+EVP_DigestFinalXOF                      4327	1_1_1	EXIST::FUNCTION:
+ERR_clear_last_mark                     4328	1_1_1	EXIST::FUNCTION:
+RAND_DRBG_get0_private                  4329	1_1_1	EXIST::FUNCTION:
+EVP_aria_192_ccm                        4330	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_256_gcm                        4331	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_256_ccm                        4332	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_128_gcm                        4333	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_128_ccm                        4334	1_1_1	EXIST::FUNCTION:ARIA
+EVP_aria_192_gcm                        4335	1_1_1	EXIST::FUNCTION:ARIA
+UI_get_result_length                    4337	1_1_1	EXIST::FUNCTION:
+UI_set_result_ex                        4338	1_1_1	EXIST::FUNCTION:
+UI_get_result_string_length             4339	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_check                          4340	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_meth_set_check                 4341	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_meth_get_check                 4342	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_meth_remove                    4343	1_1_1	EXIST::FUNCTION:
+OPENSSL_sk_reserve                      4344	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_set1_engine                    4347	1_1_0g	EXIST::FUNCTION:ENGINE
+DH_new_by_nid                           4348	1_1_1	EXIST::FUNCTION:DH
+DH_get_nid                              4349	1_1_1	EXIST::FUNCTION:DH
+CRYPTO_get_alloc_counts                 4350	1_1_1	EXIST::FUNCTION:CRYPTO_MDEBUG
+OPENSSL_sk_new_reserve                  4351	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_asn1_set_check                 4352	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_asn1_set_siginf                4353	1_1_1	EXIST::FUNCTION:
+EVP_sm4_ctr                             4354	1_1_1	EXIST::FUNCTION:SM4
+EVP_sm4_cbc                             4355	1_1_1	EXIST::FUNCTION:SM4
+EVP_sm4_ofb                             4356	1_1_1	EXIST::FUNCTION:SM4
+EVP_sm4_ecb                             4357	1_1_1	EXIST::FUNCTION:SM4
+EVP_sm4_cfb128                          4358	1_1_1	EXIST::FUNCTION:SM4
+EVP_sm3                                 4359	1_1_1	EXIST::FUNCTION:SM3
+RSA_get0_multi_prime_factors            4360	1_1_1	EXIST::FUNCTION:RSA
+EVP_PKEY_public_check                   4361	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_param_check                    4362	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_meth_set_public_check          4363	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_meth_set_param_check           4364	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_meth_get_public_check          4365	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_meth_get_param_check           4366	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_asn1_set_public_check          4367	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_asn1_set_param_check           4368	1_1_1	EXIST::FUNCTION:
+DH_check_ex                             4369	1_1_1	EXIST::FUNCTION:DH
+DH_check_pub_key_ex                     4370	1_1_1	EXIST::FUNCTION:DH
+DH_check_params_ex                      4371	1_1_1	EXIST::FUNCTION:DH
+RSA_generate_multi_prime_key            4372	1_1_1	EXIST::FUNCTION:RSA
+RSA_get_multi_prime_extra_count         4373	1_1_1	EXIST::FUNCTION:RSA
+OCSP_resp_get0_signer                   4374	1_1_0h	EXIST::FUNCTION:OCSP
+RSA_get0_multi_prime_crt_params         4375	1_1_1	EXIST::FUNCTION:RSA
+RSA_set0_multi_prime_params             4376	1_1_1	EXIST::FUNCTION:RSA
+RSA_get_version                         4377	1_1_1	EXIST::FUNCTION:RSA
+RSA_meth_get_multi_prime_keygen         4378	1_1_1	EXIST::FUNCTION:RSA
+RSA_meth_set_multi_prime_keygen         4379	1_1_1	EXIST::FUNCTION:RSA
+RAND_DRBG_get0_master                   4380	1_1_1	EXIST::FUNCTION:
+RAND_DRBG_set_reseed_time_interval      4381	1_1_1	EXIST::FUNCTION:
+PROFESSION_INFO_get0_addProfessionInfo  4382	1_1_1	EXIST::FUNCTION:
+ADMISSION_SYNTAX_free                   4383	1_1_1	EXIST::FUNCTION:
+d2i_ADMISSION_SYNTAX                    4384	1_1_1	EXIST::FUNCTION:
+NAMING_AUTHORITY_set0_authorityId       4385	1_1_1	EXIST::FUNCTION:
+NAMING_AUTHORITY_set0_authorityURL      4386	1_1_1	EXIST::FUNCTION:
+d2i_PROFESSION_INFO                     4387	1_1_1	EXIST::FUNCTION:
+NAMING_AUTHORITY_it                     4388	1_1_1	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+NAMING_AUTHORITY_it                     4388	1_1_1	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ADMISSION_SYNTAX_get0_contentsOfAdmissions 4389	1_1_1	EXIST::FUNCTION:
+PROFESSION_INFO_set0_professionItems    4390	1_1_1	EXIST::FUNCTION:
+NAMING_AUTHORITY_new                    4391	1_1_1	EXIST::FUNCTION:
+NAMING_AUTHORITY_get0_authorityURL      4392	1_1_1	EXIST::FUNCTION:
+ADMISSION_SYNTAX_get0_admissionAuthority 4393	1_1_1	EXIST::FUNCTION:
+PROFESSION_INFO_new                     4394	1_1_1	EXIST::FUNCTION:
+ADMISSIONS_new                          4395	1_1_1	EXIST::FUNCTION:
+ADMISSION_SYNTAX_set0_admissionAuthority 4396	1_1_1	EXIST::FUNCTION:
+PROFESSION_INFO_get0_professionOIDs     4397	1_1_1	EXIST::FUNCTION:
+PROFESSION_INFO_it                      4398	1_1_1	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+PROFESSION_INFO_it                      4398	1_1_1	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+i2d_PROFESSION_INFO                     4399	1_1_1	EXIST::FUNCTION:
+ADMISSIONS_set0_professionInfos         4400	1_1_1	EXIST::FUNCTION:
+PROFESSION_INFO_get0_namingAuthority    4401	1_1_1	EXIST::FUNCTION:
+PROFESSION_INFO_free                    4402	1_1_1	EXIST::FUNCTION:
+PROFESSION_INFO_set0_addProfessionInfo  4403	1_1_1	EXIST::FUNCTION:
+PROFESSION_INFO_set0_registrationNumber 4404	1_1_1	EXIST::FUNCTION:
+ADMISSION_SYNTAX_set0_contentsOfAdmissions 4405	1_1_1	EXIST::FUNCTION:
+NAMING_AUTHORITY_get0_authorityId       4406	1_1_1	EXIST::FUNCTION:
+ADMISSION_SYNTAX_it                     4407	1_1_1	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ADMISSION_SYNTAX_it                     4407	1_1_1	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+i2d_ADMISSION_SYNTAX                    4408	1_1_1	EXIST::FUNCTION:
+NAMING_AUTHORITY_get0_authorityText     4409	1_1_1	EXIST::FUNCTION:
+PROFESSION_INFO_set0_namingAuthority    4410	1_1_1	EXIST::FUNCTION:
+i2d_NAMING_AUTHORITY                    4411	1_1_1	EXIST::FUNCTION:
+NAMING_AUTHORITY_free                   4412	1_1_1	EXIST::FUNCTION:
+ADMISSIONS_set0_admissionAuthority      4413	1_1_1	EXIST::FUNCTION:
+ADMISSIONS_free                         4414	1_1_1	EXIST::FUNCTION:
+PROFESSION_INFO_get0_registrationNumber 4415	1_1_1	EXIST::FUNCTION:
+d2i_ADMISSIONS                          4416	1_1_1	EXIST::FUNCTION:
+i2d_ADMISSIONS                          4417	1_1_1	EXIST::FUNCTION:
+PROFESSION_INFO_get0_professionItems    4418	1_1_1	EXIST::FUNCTION:
+ADMISSIONS_get0_admissionAuthority      4419	1_1_1	EXIST::FUNCTION:
+PROFESSION_INFO_set0_professionOIDs     4420	1_1_1	EXIST::FUNCTION:
+d2i_NAMING_AUTHORITY                    4421	1_1_1	EXIST::FUNCTION:
+ADMISSIONS_it                           4422	1_1_1	EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
+ADMISSIONS_it                           4422	1_1_1	EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
+ADMISSIONS_get0_namingAuthority         4423	1_1_1	EXIST::FUNCTION:
+NAMING_AUTHORITY_set0_authorityText     4424	1_1_1	EXIST::FUNCTION:
+ADMISSIONS_set0_namingAuthority         4425	1_1_1	EXIST::FUNCTION:
+ADMISSIONS_get0_professionInfos         4426	1_1_1	EXIST::FUNCTION:
+ADMISSION_SYNTAX_new                    4427	1_1_1	EXIST::FUNCTION:
+EVP_sha512_256                          4428	1_1_1	EXIST::FUNCTION:
+EVP_sha512_224                          4429	1_1_1	EXIST::FUNCTION:
+OCSP_basic_sign_ctx                     4430	1_1_1	EXIST::FUNCTION:OCSP
+RAND_DRBG_bytes                         4431	1_1_1	EXIST::FUNCTION:
+RAND_DRBG_secure_new                    4432	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_vctrl                        4433	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_SEARCH_by_alias              4434	1_1_1	EXIST::FUNCTION:
+BIO_bind                                4435	1_1_1	EXIST::FUNCTION:SOCK
+OSSL_STORE_LOADER_set_expect            4436	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_expect                       4437	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_SEARCH_by_key_fingerprint    4438	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_SEARCH_get0_serial           4439	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_SEARCH_by_name               4440	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_supports_search              4441	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_find                         4442	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_SEARCH_get_type              4443	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_SEARCH_get0_bytes            4444	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_SEARCH_get0_string           4445	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_SEARCH_by_issuer_serial      4446	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_SEARCH_get0_name             4447	1_1_1	EXIST::FUNCTION:
+X509_get0_authority_key_id              4448	1_1_0h	EXIST::FUNCTION:
+OSSL_STORE_LOADER_set_find              4449	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_SEARCH_free                  4450	1_1_1	EXIST::FUNCTION:
+OSSL_STORE_SEARCH_get0_digest           4451	1_1_1	EXIST::FUNCTION:
+RAND_DRBG_set_reseed_defaults           4452	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_new_raw_private_key            4453	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_new_raw_public_key             4454	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_new_CMAC_key                   4455	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_asn1_set_set_priv_key          4456	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_asn1_set_set_pub_key           4457	1_1_1	EXIST::FUNCTION:
+RAND_DRBG_set_defaults                  4458	1_1_1	EXIST::FUNCTION:
+conf_ssl_name_find                      4469	1_1_0i	EXIST::FUNCTION:
+conf_ssl_get_cmd                        4470	1_1_0i	EXIST::FUNCTION:
+conf_ssl_get                            4471	1_1_0i	EXIST::FUNCTION:
+X509_VERIFY_PARAM_get_hostflags         4472	1_1_0i	EXIST::FUNCTION:
+DH_get0_p                               4473	1_1_1	EXIST::FUNCTION:DH
+DH_get0_q                               4474	1_1_1	EXIST::FUNCTION:DH
+DH_get0_g                               4475	1_1_1	EXIST::FUNCTION:DH
+DH_get0_priv_key                        4476	1_1_1	EXIST::FUNCTION:DH
+DH_get0_pub_key                         4477	1_1_1	EXIST::FUNCTION:DH
+DSA_get0_priv_key                       4478	1_1_1	EXIST::FUNCTION:DSA
+DSA_get0_pub_key                        4479	1_1_1	EXIST::FUNCTION:DSA
+DSA_get0_q                              4480	1_1_1	EXIST::FUNCTION:DSA
+DSA_get0_p                              4481	1_1_1	EXIST::FUNCTION:DSA
+DSA_get0_g                              4482	1_1_1	EXIST::FUNCTION:DSA
+RSA_get0_dmp1                           4483	1_1_1	EXIST::FUNCTION:RSA
+RSA_get0_d                              4484	1_1_1	EXIST::FUNCTION:RSA
+RSA_get0_n                              4485	1_1_1	EXIST::FUNCTION:RSA
+RSA_get0_dmq1                           4486	1_1_1	EXIST::FUNCTION:RSA
+RSA_get0_e                              4487	1_1_1	EXIST::FUNCTION:RSA
+RSA_get0_q                              4488	1_1_1	EXIST::FUNCTION:RSA
+RSA_get0_p                              4489	1_1_1	EXIST::FUNCTION:RSA
+RSA_get0_iqmp                           4490	1_1_1	EXIST::FUNCTION:RSA
+ECDSA_SIG_get0_r                        4491	1_1_1	EXIST::FUNCTION:EC
+ECDSA_SIG_get0_s                        4492	1_1_1	EXIST::FUNCTION:EC
+X509_LOOKUP_meth_get_get_by_fingerprint 4493	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_new                    4494	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_get_init               4495	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_get_get_by_alias       4496	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_set_new_item           4497	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_set_shutdown           4498	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_get_new_item           4499	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_set_ctrl               4500	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_set_get_by_issuer_serial 4501	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_get_store                   4502	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_get_ctrl               4503	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_set_get_by_alias       4504	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_get_get_by_subject     4505	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_get_free               4506	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_set_get_by_subject     4507	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_set_free               4508	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_get_shutdown           4509	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_set_method_data             4510	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_get_method_data             4511	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_set_get_by_fingerprint 4512	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_free                   4513	1_1_0i	EXIST::FUNCTION:
+X509_OBJECT_set1_X509                   4514	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_get_get_by_issuer_serial 4515	1_1_0i	EXIST::FUNCTION:
+X509_LOOKUP_meth_set_init               4516	1_1_0i	EXIST::FUNCTION:
+X509_OBJECT_set1_X509_CRL               4517	1_1_0i	EXIST::FUNCTION:
+EVP_PKEY_get_raw_public_key             4518	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_get_raw_private_key            4519	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_asn1_set_get_priv_key          4520	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_asn1_set_get_pub_key           4521	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_set_alias_type                 4522	1_1_1	EXIST::FUNCTION:
+RAND_keep_random_devices_open           4523	1_1_1	EXIST::FUNCTION:
+EC_POINT_set_compressed_coordinates     4524	1_1_1	EXIST::FUNCTION:EC
+EC_POINT_set_affine_coordinates         4525	1_1_1	EXIST::FUNCTION:EC
+EC_POINT_get_affine_coordinates         4526	1_1_1	EXIST::FUNCTION:EC
+EC_GROUP_set_curve                      4527	1_1_1	EXIST::FUNCTION:EC
+EC_GROUP_get_curve                      4528	1_1_1	EXIST::FUNCTION:EC
+OCSP_resp_get0_tbs_sigalg               4529	1_1_0j	EXIST::FUNCTION:OCSP
+OCSP_resp_get0_respdata                 4530	1_1_0j	EXIST::FUNCTION:OCSP
+EVP_MD_CTX_set_pkey_ctx                 4531	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_meth_set_digest_custom         4532	1_1_1	EXIST::FUNCTION:
+EVP_PKEY_meth_get_digest_custom         4533	1_1_1	EXIST::FUNCTION:
+OPENSSL_INIT_set_config_filename        4534	1_1_1b	EXIST::FUNCTION:STDIO
+OPENSSL_INIT_set_config_file_flags      4535	1_1_1b	EXIST::FUNCTION:STDIO
+EVP_PKEY_get0_engine                    4536	1_1_1c	EXIST::FUNCTION:ENGINE
+X509_get0_authority_serial              4537	1_1_1d	EXIST::FUNCTION:
+X509_get0_authority_issuer              4538	1_1_1d	EXIST::FUNCTION:
+EVP_PKEY_meth_set_digestsign            4539	1_1_1e	EXIST::FUNCTION:
+EVP_PKEY_meth_set_digestverify          4540	1_1_1e	EXIST::FUNCTION:
+EVP_PKEY_meth_get_digestverify          4541	1_1_1e	EXIST::FUNCTION:
+EVP_PKEY_meth_get_digestsign            4542	1_1_1e	EXIST::FUNCTION:
+RSA_get0_pss_params                     4543	1_1_1e	EXIST::FUNCTION:RSA
+X509_ALGOR_copy                         4544	1_1_1h	EXIST::FUNCTION:
+X509_REQ_set0_signature                 4545	1_1_1h	EXIST::FUNCTION:
+X509_REQ_set1_signature_algo            4546	1_1_1h	EXIST::FUNCTION:
+EC_KEY_decoded_from_explicit_params     4547	1_1_1h	EXIST::FUNCTION:EC
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/libssl.num b/ap/lib/libssl/openssl-1.1.1o/util/libssl.num
new file mode 100644
index 0000000..297522c
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/libssl.num
@@ -0,0 +1,500 @@
+SSL_get_selected_srtp_profile           1	1_1_0	EXIST::FUNCTION:SRTP
+SSL_set_read_ahead                      2	1_1_0	EXIST::FUNCTION:
+SSL_set_accept_state                    3	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_cipher_list                 4	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_srp_client_pwd_callback     5	1_1_0	EXIST::FUNCTION:SRP
+SSL_copy_session_id                     6	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_srp_password                7	1_1_0	EXIST::FUNCTION:SRP
+SSL_shutdown                            8	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_msg_callback                9	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_get0_ticket                 11	1_1_0	EXIST::FUNCTION:
+SSL_get1_supported_ciphers              12	1_1_0	EXIST::FUNCTION:
+SSL_state_string_long                   13	1_1_0	EXIST::FUNCTION:
+SSL_CTX_get0_certificate                14	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_set_ex_data                 15	1_1_0	EXIST::FUNCTION:
+SSL_get_verify_depth                    16	1_1_0	EXIST::FUNCTION:
+SSL_get0_dane                           17	1_1_0	EXIST::FUNCTION:
+SSL_CTX_sess_get_get_cb                 18	1_1_0	EXIST::FUNCTION:
+SSL_CTX_get_default_passwd_cb_userdata  19	1_1_0	EXIST::FUNCTION:
+SSL_set_tmp_dh_callback                 20	1_1_0	EXIST::FUNCTION:DH
+SSL_CTX_get_verify_depth                21	1_1_0	EXIST::FUNCTION:
+SSL_CTX_use_RSAPrivateKey_file          22	1_1_0	EXIST::FUNCTION:RSA
+SSL_use_PrivateKey_file                 23	1_1_0	EXIST::FUNCTION:
+SSL_set_generate_session_id             24	1_1_0	EXIST::FUNCTION:
+SSL_get_ex_data_X509_STORE_CTX_idx      25	1_1_0	EXIST::FUNCTION:
+SSL_get_quiet_shutdown                  26	1_1_0	EXIST::FUNCTION:
+SSL_dane_enable                         27	1_1_0	EXIST::FUNCTION:
+SSL_COMP_add_compression_method         28	1_1_0	EXIST::FUNCTION:
+SSL_CTX_use_RSAPrivateKey               29	1_1_0	EXIST::FUNCTION:RSA
+SSL_CTX_sess_get_new_cb                 30	1_1_0	EXIST::FUNCTION:
+d2i_SSL_SESSION                         31	1_1_0	EXIST::FUNCTION:
+SSL_use_PrivateKey_ASN1                 32	1_1_0	EXIST::FUNCTION:
+PEM_write_SSL_SESSION                   33	1_1_0	EXIST::FUNCTION:STDIO
+SSL_CTX_set_session_id_context          34	1_1_0	EXIST::FUNCTION:
+SSL_CIPHER_get_cipher_nid               35	1_1_0	EXIST::FUNCTION:
+SSL_get_srp_g                           36	1_1_0	EXIST::FUNCTION:SRP
+SSL_want                                37	1_1_0	EXIST::FUNCTION:
+SSL_get_cipher_list                     38	1_1_0	EXIST::FUNCTION:
+SSL_get_verify_result                   39	1_1_0	EXIST::FUNCTION:
+SSL_renegotiate                         40	1_1_0	EXIST::FUNCTION:
+SSL_get_privatekey                      41	1_1_0	EXIST::FUNCTION:
+SSL_peek                                42	1_1_0	EXIST::FUNCTION:
+SRP_Calc_A_param                        43	1_1_0	EXIST::FUNCTION:SRP
+SSL_SESSION_get_ticket_lifetime_hint    44	1_1_0	EXIST::FUNCTION:
+SSL_SRP_CTX_free                        45	1_1_0	EXIST::FUNCTION:SRP
+SSL_CTX_set_client_CA_list              46	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_next_proto_select_cb        47	1_1_0	EXIST::FUNCTION:NEXTPROTONEG
+BIO_ssl_copy_session_id                 48	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_security_callback           49	1_1_0	EXIST::FUNCTION:
+SSL_CONF_cmd_value_type                 50	1_1_0	EXIST::FUNCTION:
+SSL_CTX_remove_session                  51	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_new                         52	1_1_0	EXIST::FUNCTION:
+TLSv1_2_server_method                   53	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_2_METHOD
+BIO_new_buffer_ssl_connect              54	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set0_security_ex_data           55	1_1_0	EXIST::FUNCTION:
+SSL_alert_desc_string                   56	1_1_0	EXIST::FUNCTION:
+SSL_get0_dane_authority                 57	1_1_0	EXIST::FUNCTION:
+SSL_set_purpose                         58	1_1_0	EXIST::FUNCTION:
+SSL_CTX_use_PrivateKey_file             59	1_1_0	EXIST::FUNCTION:
+SSL_get_rfd                             60	1_1_0	EXIST::FUNCTION:
+DTLSv1_listen                           61	1_1_0	EXIST::FUNCTION:SOCK
+SSL_set_ssl_method                      62	1_1_0	EXIST::FUNCTION:
+SSL_get0_security_ex_data               63	1_1_0	EXIST::FUNCTION:
+SSLv3_client_method                     64	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SSL3_METHOD
+SSL_set_security_level                  65	1_1_0	EXIST::FUNCTION:
+DTLSv1_2_method                         66	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_2_METHOD
+SSL_get_fd                              67	1_1_0	EXIST::FUNCTION:
+SSL_get1_session                        68	1_1_0	EXIST::FUNCTION:
+SSL_use_RSAPrivateKey                   69	1_1_0	EXIST::FUNCTION:RSA
+SSL_CTX_set_srp_cb_arg                  70	1_1_0	EXIST::FUNCTION:SRP
+SSL_CTX_add_session                     71	1_1_0	EXIST::FUNCTION:
+SSL_get_srp_N                           72	1_1_0	EXIST::FUNCTION:SRP
+SSL_has_matching_session_id             73	1_1_0	EXIST::FUNCTION:
+PEM_read_SSL_SESSION                    74	1_1_0	EXIST::FUNCTION:STDIO
+SSL_get_shared_ciphers                  75	1_1_0	EXIST::FUNCTION:
+SSL_add1_host                           76	1_1_0	EXIST::FUNCTION:
+SSL_CONF_cmd_argv                       77	1_1_0	EXIST::FUNCTION:
+SSL_version                             78	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_print                       79	1_1_0	EXIST::FUNCTION:
+SSL_get_client_ciphers                  80	1_1_0	EXIST::FUNCTION:
+SSL_get_srtp_profiles                   81	1_1_0	EXIST::FUNCTION:SRTP
+SSL_use_certificate_ASN1                82	1_1_0	EXIST::FUNCTION:
+SSL_get_peer_certificate                83	1_1_0	EXIST::FUNCTION:
+DTLSv1_2_server_method                  84	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_2_METHOD
+SSL_set_cert_cb                         85	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_cookie_verify_cb            86	1_1_0	EXIST::FUNCTION:
+SSL_get_shared_sigalgs                  87	1_1_0	EXIST::FUNCTION:
+SSL_config                              88	1_1_0	EXIST::FUNCTION:
+TLSv1_1_client_method                   89	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_1_METHOD
+SSL_CIPHER_standard_name                90	1_1_0	EXIST::FUNCTION:
+SSL_CTX_get_verify_mode                 91	1_1_0	EXIST::FUNCTION:
+SSL_get_all_async_fds                   92	1_1_0	EXIST::FUNCTION:
+SSL_CTX_check_private_key               93	1_1_0	EXIST::FUNCTION:
+SSL_set_wfd                             94	1_1_0	EXIST::FUNCTION:SOCK
+SSL_get_client_CA_list                  95	1_1_0	EXIST::FUNCTION:
+SSL_CONF_CTX_set_flags                  96	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_srp_username_callback       97	1_1_0	EXIST::FUNCTION:SRP
+SSL_connect                             98	1_1_0	EXIST::FUNCTION:
+SSL_get_psk_identity                    99	1_1_0	EXIST::FUNCTION:PSK
+SSL_CTX_use_certificate_file            100	1_1_0	EXIST::FUNCTION:
+SSL_set_session_ticket_ext              101	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_psk_server_callback         102	1_1_0	EXIST::FUNCTION:PSK
+SSL_get_sigalgs                         103	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_next_protos_advertised_cb   104	1_1_0	EXIST::FUNCTION:NEXTPROTONEG
+SSL_CTX_set_trust                       105	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_verify                      106	1_1_0	EXIST::FUNCTION:
+SSL_set_rfd                             107	1_1_0	EXIST::FUNCTION:SOCK
+SSL_SESSION_set_timeout                 108	1_1_0	EXIST::FUNCTION:
+SSL_set_psk_client_callback             109	1_1_0	EXIST::FUNCTION:PSK
+SSL_get_client_random                   110	1_1_0	EXIST::FUNCTION:
+TLS_method                              111	1_1_0	EXIST::FUNCTION:
+SSL_CONF_CTX_clear_flags                112	1_1_0	EXIST::FUNCTION:
+TLSv1_client_method                     113	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_METHOD
+SSL_CIPHER_get_bits                     114	1_1_0	EXIST::FUNCTION:
+SSL_test_functions                      115	1_1_0	EXIST::FUNCTION:UNIT_TEST
+SSL_get_SSL_CTX                         116	1_1_0	EXIST::FUNCTION:
+SSL_get_session                         117	1_1_0	EXIST::FUNCTION:
+SSL_CTX_callback_ctrl                   118	1_1_0	EXIST::FUNCTION:
+SSL_get_finished                        119	1_1_0	EXIST::FUNCTION:
+SSL_add_dir_cert_subjects_to_stack      120	1_1_0	EXIST::FUNCTION:
+SSL_get_state                           121	1_1_0	EXIST::FUNCTION:
+SSL_CONF_CTX_finish                     122	1_1_0	EXIST::FUNCTION:
+SSL_CTX_add_server_custom_ext           123	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_get_ex_data                 124	1_1_0	EXIST::FUNCTION:
+SSL_get_srp_username                    125	1_1_0	EXIST::FUNCTION:SRP
+SSL_CTX_set_purpose                     126	1_1_0	EXIST::FUNCTION:
+SSL_clear                               127	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_cert_store                  128	1_1_0	EXIST::FUNCTION:
+TLSv1_2_method                          129	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_2_METHOD
+SSL_session_reused                      130	1_1_0	EXIST::FUNCTION:
+SSL_free                                131	1_1_0	EXIST::FUNCTION:
+BIO_ssl_shutdown                        132	1_1_0	EXIST::FUNCTION:
+SSL_CTX_get_client_CA_list              133	1_1_0	EXIST::FUNCTION:
+SSL_CTX_sessions                        134	1_1_0	EXIST::FUNCTION:
+SSL_get_options                         135	1_1_0	EXIST::FUNCTION:
+SSL_set_verify_depth                    136	1_1_0	EXIST::FUNCTION:
+SSL_get_error                           137	1_1_0	EXIST::FUNCTION:
+SSL_get_servername                      138	1_1_0	EXIST::FUNCTION:
+SSL_get_version                         139	1_1_0	EXIST::FUNCTION:
+SSL_state_string                        140	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_get_timeout                 141	1_1_0	EXIST::FUNCTION:
+SSL_CTX_sess_get_remove_cb              142	1_1_0	EXIST::FUNCTION:
+SSL_get_current_cipher                  143	1_1_0	EXIST::FUNCTION:
+SSL_up_ref                              144	1_1_0	EXIST::FUNCTION:
+SSL_export_keying_material              145	1_1_0	EXIST::FUNCTION:
+SSL_callback_ctrl                       146	1_1_0	EXIST::FUNCTION:
+SSL_set_security_callback               147	1_1_0	EXIST::FUNCTION:
+SSL_SRP_CTX_init                        148	1_1_0	EXIST::FUNCTION:SRP
+ERR_load_SSL_strings                    149	1_1_0	EXIST::FUNCTION:
+SSL_CTX_SRP_CTX_init                    150	1_1_0	EXIST::FUNCTION:SRP
+SSL_SESSION_set_time                    151	1_1_0	EXIST::FUNCTION:
+i2d_SSL_SESSION                         152	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_get_master_key              153	1_1_0	EXIST::FUNCTION:
+SSL_COMP_get_compression_methods        154	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_alpn_select_cb              155	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_tmp_dh_callback             156	1_1_0	EXIST::FUNCTION:DH
+SSL_CTX_get_default_passwd_cb           157	1_1_0	EXIST::FUNCTION:
+TLSv1_server_method                     158	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_METHOD
+DTLS_server_method                      159	1_1_0	EXIST::FUNCTION:
+SSL_set0_rbio                           160	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_options                     161	1_1_0	EXIST::FUNCTION:
+SSL_set_msg_callback                    162	1_1_0	EXIST::FUNCTION:
+SSL_CONF_CTX_free                       163	1_1_0	EXIST::FUNCTION:
+SSL_CTX_get_ssl_method                  164	1_1_0	EXIST::FUNCTION:
+SSL_get_server_random                   165	1_1_0	EXIST::FUNCTION:
+SSL_set_shutdown                        166	1_1_0	EXIST::FUNCTION:
+SSL_CTX_add_client_CA                   167	1_1_0	EXIST::FUNCTION:
+TLSv1_1_server_method                   168	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_1_METHOD
+PEM_write_bio_SSL_SESSION               169	1_1_0	EXIST::FUNCTION:
+SSL_write                               170	1_1_0	EXIST::FUNCTION:
+SSL_set1_host                           171	1_1_0	EXIST::FUNCTION:
+SSL_use_RSAPrivateKey_file              172	1_1_0	EXIST::FUNCTION:RSA
+SSL_CTX_get_info_callback               173	1_1_0	EXIST::FUNCTION:
+SSL_get0_peername                       174	1_1_0	EXIST::FUNCTION:
+SSL_set_srp_server_param                175	1_1_0	EXIST::FUNCTION:SRP
+TLS_server_method                       176	1_1_0	EXIST::FUNCTION:
+SSL_get_psk_identity_hint               177	1_1_0	EXIST::FUNCTION:PSK
+SSL_set_session                         178	1_1_0	EXIST::FUNCTION:
+SSL_get0_param                          179	1_1_0	EXIST::FUNCTION:
+SSL_set_default_passwd_cb               180	1_1_0	EXIST::FUNCTION:
+SSL_get_read_ahead                      181	1_1_0	EXIST::FUNCTION:
+SSL_dup_CA_list                         182	1_1_0	EXIST::FUNCTION:
+SSL_get_verify_callback                 183	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_default_passwd_cb           184	1_1_0	EXIST::FUNCTION:
+SSL_get_servername_type                 185	1_1_0	EXIST::FUNCTION:
+TLSv1_2_client_method                   186	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_2_METHOD
+SSL_add_client_CA                       187	1_1_0	EXIST::FUNCTION:
+SSL_CTX_get0_security_ex_data           188	1_1_0	EXIST::FUNCTION:
+SSL_get_ex_data                         189	1_1_0	EXIST::FUNCTION:
+SSL_CTX_flush_sessions                  190	1_1_0	EXIST::FUNCTION:
+SSL_use_PrivateKey                      191	1_1_0	EXIST::FUNCTION:
+DTLSv1_client_method                    192	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_METHOD
+SSL_CTX_dane_mtype_set                  193	1_1_0	EXIST::FUNCTION:
+SSL_get_wfd                             194	1_1_0	EXIST::FUNCTION:
+SSL_get_ssl_method                      195	1_1_0	EXIST::FUNCTION:
+SSL_set_verify_result                   196	1_1_0	EXIST::FUNCTION:
+SSL_use_RSAPrivateKey_ASN1              197	1_1_0	EXIST::FUNCTION:RSA
+SSL_CIPHER_get_name                     198	1_1_0	EXIST::FUNCTION:
+OPENSSL_init_ssl                        199	1_1_0	EXIST::FUNCTION:
+SSL_dup                                 200	1_1_0	EXIST::FUNCTION:
+SSL_CTX_use_serverinfo                  201	1_1_0	EXIST::FUNCTION:
+SSL_CTX_use_serverinfo_file             202	1_1_0	EXIST::FUNCTION:
+SSL_set_options                         203	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_default_verify_dir          204	1_1_0	EXIST::FUNCTION:
+SSL_do_handshake                        205	1_1_0	EXIST::FUNCTION:
+SSL_CTX_get_ex_data                     206	1_1_0	EXIST::FUNCTION:
+SSL_is_init_finished                    207	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_default_verify_file         208	1_1_0	EXIST::FUNCTION:
+SSLv3_method                            209	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SSL3_METHOD
+SSL_CTX_set_cookie_generate_cb          210	1_1_0	EXIST::FUNCTION:
+SSL_certs_clear                         211	1_1_0	EXIST::FUNCTION:
+SSL_set_connect_state                   212	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_ex_data                     213	1_1_0	EXIST::FUNCTION:
+SSL_rstate_string                       214	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_get0_peer                   215	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_get_compress_id             216	1_1_0	EXIST::FUNCTION:
+SSL_get_peer_cert_chain                 217	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_cert_cb                     218	1_1_0	EXIST::FUNCTION:
+PEM_read_bio_SSL_SESSION                219	1_1_0	EXIST::FUNCTION:
+SSL_set_info_callback                   220	1_1_0	EXIST::FUNCTION:
+SSL_CTX_sess_set_new_cb                 221	1_1_0	EXIST::FUNCTION:
+SSL_CTX_get_security_level              222	1_1_0	EXIST::FUNCTION:
+SSL_CTX_ctrl                            223	1_1_0	EXIST::FUNCTION:
+SSL_set_alpn_protos                     224	1_1_0	EXIST::FUNCTION:
+SSL_set_ex_data                         225	1_1_0	EXIST::FUNCTION:
+SSL_rstate_string_long                  226	1_1_0	EXIST::FUNCTION:
+SSL_ctrl                                227	1_1_0	EXIST::FUNCTION:
+SSL_get_current_compression             228	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_has_ticket                  229	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_cert_verify_callback        230	1_1_0	EXIST::FUNCTION:
+SSL_set_session_secret_cb               231	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_client_cert_engine          232	1_1_0	EXIST::FUNCTION:ENGINE
+SSL_CTX_get0_param                      233	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set1_param                      234	1_1_0	EXIST::FUNCTION:
+SSL_get_certificate                     235	1_1_0	EXIST::FUNCTION:
+DTLSv1_server_method                    236	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_METHOD
+SSL_set_fd                              237	1_1_0	EXIST::FUNCTION:SOCK
+SSL_use_certificate                     238	1_1_0	EXIST::FUNCTION:
+DTLSv1_method                           239	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_METHOD
+SSL_set0_wbio                           240	1_1_0	EXIST::FUNCTION:
+SSL_read                                241	1_1_0	EXIST::FUNCTION:
+SSL_CTX_get_options                     242	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_ssl_version                 243	1_1_0	EXIST::FUNCTION:
+SSL_set_SSL_CTX                         244	1_1_0	EXIST::FUNCTION:
+SSL_renegotiate_abbreviated             245	1_1_0	EXIST::FUNCTION:
+SSL_get_verify_mode                     246	1_1_0	EXIST::FUNCTION:
+SSL_CIPHER_get_id                       247	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_print_keylog                248	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_psk_client_callback         249	1_1_0	EXIST::FUNCTION:PSK
+SSL_SESSION_get_time                    250	1_1_0	EXIST::FUNCTION:
+SSL_set_debug                           251	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0
+SSL_get_security_level                  252	1_1_0	EXIST::FUNCTION:
+SSL_CIPHER_description                  253	1_1_0	EXIST::FUNCTION:
+SSL_set_default_passwd_cb_userdata      254	1_1_0	EXIST::FUNCTION:
+SSL_get_srp_userinfo                    255	1_1_0	EXIST::FUNCTION:SRP
+SSL_extension_supported                 256	1_1_0	EXIST::FUNCTION:
+SSL_dane_tlsa_add                       257	1_1_0	EXIST::FUNCTION:
+SSL_srp_server_param_with_username      258	1_1_0	EXIST::FUNCTION:SRP
+SSL_CIPHER_get_version                  259	1_1_0	EXIST::FUNCTION:
+SSL_get0_verified_chain                 260	1_1_0	EXIST::FUNCTION:
+SSL_CIPHER_find                         261	1_1_0	EXIST::FUNCTION:
+SSL_get_rbio                            262	1_1_0	EXIST::FUNCTION:
+SSL_CONF_CTX_set_ssl                    263	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_verify_depth                264	1_1_0	EXIST::FUNCTION:
+SSL_get_ciphers                         265	1_1_0	EXIST::FUNCTION:
+SSL_CTX_config                          266	1_1_0	EXIST::FUNCTION:
+SSL_CONF_CTX_set_ssl_ctx                267	1_1_0	EXIST::FUNCTION:
+SSL_CONF_cmd                            268	1_1_0	EXIST::FUNCTION:
+SSL_add_ssl_module                      269	1_1_0	EXIST::FUNCTION:
+SSL_CTX_get_verify_callback             270	1_1_0	EXIST::FUNCTION:
+SSL_set1_param                          271	1_1_0	EXIST::FUNCTION:
+SSL_use_certificate_file                272	1_1_0	EXIST::FUNCTION:
+SSL_get_changed_async_fds               273	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_client_cert_cb              274	1_1_0	EXIST::FUNCTION:
+DTLS_client_method                      275	1_1_0	EXIST::FUNCTION:
+SSL_set_trust                           276	1_1_0	EXIST::FUNCTION:
+SSL_CTX_get_security_callback           277	1_1_0	EXIST::FUNCTION:
+SSL_CTX_clear_options                   278	1_1_0	EXIST::FUNCTION:
+SSL_check_chain                         279	1_1_0	EXIST::FUNCTION:
+SSL_CTX_sess_set_remove_cb              280	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_info_callback               281	1_1_0	EXIST::FUNCTION:
+SSL_pending                             282	1_1_0	EXIST::FUNCTION:
+SSL_set_bio                             283	1_1_0	EXIST::FUNCTION:
+BIO_new_ssl_connect                     284	1_1_0	EXIST::FUNCTION:
+SSL_waiting_for_async                   285	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_srp_strength                286	1_1_0	EXIST::FUNCTION:SRP
+SSL_CTX_get_quiet_shutdown              287	1_1_0	EXIST::FUNCTION:
+SSL_CTX_use_certificate_chain_file      288	1_1_0	EXIST::FUNCTION:
+SSL_CTX_dane_enable                     289	1_1_0	EXIST::FUNCTION:
+SSL_CONF_CTX_new                        290	1_1_0	EXIST::FUNCTION:
+SSL_get0_alpn_selected                  291	1_1_0	EXIST::FUNCTION:
+SSL_get0_next_proto_negotiated          292	1_1_0	EXIST::FUNCTION:NEXTPROTONEG
+SSL_set0_security_ex_data               293	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_tlsext_use_srtp             294	1_1_0	EXIST::FUNCTION:SRTP
+SSL_COMP_set0_compression_methods       295	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_not_resumable_session_callback 296	1_1_0	EXIST::FUNCTION:
+SSL_accept                              297	1_1_0	EXIST::FUNCTION:
+SSL_use_psk_identity_hint               298	1_1_0	EXIST::FUNCTION:PSK
+SSL_trace                               299	1_1_0	EXIST::FUNCTION:SSL_TRACE
+DTLS_method                             300	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_srp_verify_param_callback   301	1_1_0	EXIST::FUNCTION:SRP
+SSL_CTX_set_timeout                     302	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_security_level              303	1_1_0	EXIST::FUNCTION:
+TLS_client_method                       304	1_1_0	EXIST::FUNCTION:
+SSL_set_quiet_shutdown                  305	1_1_0	EXIST::FUNCTION:
+SSL_CTX_up_ref                          306	1_1_0	EXIST::FUNCTION:
+SSL_check_private_key                   307	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_quiet_shutdown              308	1_1_0	EXIST::FUNCTION:
+SSL_select_next_proto                   309	1_1_0	EXIST::FUNCTION:
+SSL_load_client_CA_file                 310	1_1_0	EXIST::FUNCTION:
+SSL_set_srp_server_param_pw             311	1_1_0	EXIST::FUNCTION:SRP
+SSL_renegotiate_pending                 312	1_1_0	EXIST::FUNCTION:
+SSL_CTX_new                             313	1_1_0	EXIST::FUNCTION:
+SSL_set_session_ticket_ext_cb           314	1_1_0	EXIST::FUNCTION:
+SSL_CTX_get_timeout                     315	1_1_0	EXIST::FUNCTION:
+SSL_use_certificate_chain_file          316	1_1_0	EXIST::FUNCTION:
+SSL_set_not_resumable_session_callback  317	1_1_0	EXIST::FUNCTION:
+SSL_CTX_SRP_CTX_free                    318	1_1_0	EXIST::FUNCTION:SRP
+SSL_get_current_expansion               319	1_1_0	EXIST::FUNCTION:
+SSL_clear_options                       320	1_1_0	EXIST::FUNCTION:
+SSL_CTX_use_PrivateKey                  321	1_1_0	EXIST::FUNCTION:
+SSL_get_info_callback                   322	1_1_0	EXIST::FUNCTION:
+SSL_CTX_use_psk_identity_hint           323	1_1_0	EXIST::FUNCTION:PSK
+SSL_CTX_use_RSAPrivateKey_ASN1          324	1_1_0	EXIST::FUNCTION:RSA
+SSL_CTX_use_PrivateKey_ASN1             325	1_1_0	EXIST::FUNCTION:
+SSL_CTX_get0_privatekey                 326	1_1_0	EXIST::FUNCTION:
+BIO_f_ssl                               327	1_1_0	EXIST::FUNCTION:
+SSLv3_server_method                     328	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SSL3_METHOD
+SSL_SESSION_free                        329	1_1_0	EXIST::FUNCTION:
+SSL_get_shutdown                        330	1_1_0	EXIST::FUNCTION:
+SSL_get_peer_finished                   331	1_1_0	EXIST::FUNCTION:
+SSL_set_tlsext_use_srtp                 332	1_1_0	EXIST::FUNCTION:SRTP
+TLSv1_method                            333	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_METHOD
+SSL_set_psk_server_callback             334	1_1_0	EXIST::FUNCTION:PSK
+SSL_CTX_set_alpn_protos                 335	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_default_verify_paths        336	1_1_0	EXIST::FUNCTION:
+SSL_CTX_sess_set_get_cb                 337	1_1_0	EXIST::FUNCTION:
+SSL_add_file_cert_subjects_to_stack     338	1_1_0	EXIST::FUNCTION:
+SSL_get_default_passwd_cb_userdata      339	1_1_0	EXIST::FUNCTION:
+SSL_get_security_callback               340	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_srp_username                341	1_1_0	EXIST::FUNCTION:SRP
+SSL_COMP_get_name                       342	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_default_passwd_cb_userdata  343	1_1_0	EXIST::FUNCTION:
+SSL_set_verify                          344	1_1_0	EXIST::FUNCTION:
+SSL_in_before                           345	1_1_0	EXIST::FUNCTION:
+SSL_CIPHER_get_digest_nid               346	1_1_0	EXIST::FUNCTION:
+SSL_CTX_add_client_custom_ext           347	1_1_0	EXIST::FUNCTION:
+SSL_CTX_use_certificate                 348	1_1_0	EXIST::FUNCTION:
+SSL_set_cipher_list                     349	1_1_0	EXIST::FUNCTION:
+SSL_get_wbio                            350	1_1_0	EXIST::FUNCTION:
+SSL_set_hostflags                       351	1_1_0	EXIST::FUNCTION:
+SSL_alert_desc_string_long              352	1_1_0	EXIST::FUNCTION:
+SSL_get_default_timeout                 353	1_1_0	EXIST::FUNCTION:
+SSL_set_session_id_context              354	1_1_0	EXIST::FUNCTION:
+SSL_new                                 355	1_1_0	EXIST::FUNCTION:
+TLSv1_1_method                          356	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,TLS1_1_METHOD
+SSL_CTX_get_cert_store                  357	1_1_0	EXIST::FUNCTION:
+SSL_CTX_load_verify_locations           358	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_print_fp                    359	1_1_0	EXIST::FUNCTION:STDIO
+SSL_get0_dane_tlsa                      360	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_generate_session_id         361	1_1_0	EXIST::FUNCTION:
+SSL_alert_type_string_long              362	1_1_0	EXIST::FUNCTION:
+SSL_CONF_CTX_set1_prefix                363	1_1_0	EXIST::FUNCTION:
+SSL_in_init                             364	1_1_0	EXIST::FUNCTION:
+BIO_new_ssl                             365	1_1_0	EXIST::FUNCTION:
+SSL_CTX_get_client_cert_cb              366	1_1_0	EXIST::FUNCTION:
+SSL_CTX_use_certificate_ASN1            367	1_1_0	EXIST::FUNCTION:
+SSL_set_client_CA_list                  368	1_1_0	EXIST::FUNCTION:
+SSL_CTX_free                            369	1_1_0	EXIST::FUNCTION:
+SSL_get_default_passwd_cb               370	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_get_id                      371	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_set1_id_context             372	1_1_0	EXIST::FUNCTION:
+SSL_is_server                           373	1_1_0	EXIST::FUNCTION:
+SSL_alert_type_string                   374	1_1_0	EXIST::FUNCTION:
+DTLSv1_2_client_method                  375	1_1_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,DTLS1_2_METHOD
+SSL_CTX_set_ctlog_list_file             376	1_1_0	EXIST::FUNCTION:CT
+SSL_set_ct_validation_callback          377	1_1_0	EXIST::FUNCTION:CT
+SSL_CTX_set_default_ctlog_list_file     378	1_1_0	EXIST::FUNCTION:CT
+SSL_CTX_has_client_custom_ext           379	1_1_0	EXIST::FUNCTION:
+SSL_ct_is_enabled                       380	1_1_0	EXIST::FUNCTION:CT
+SSL_get0_peer_scts                      381	1_1_0	EXIST::FUNCTION:CT
+SSL_CTX_set_ct_validation_callback      382	1_1_0	EXIST::FUNCTION:CT
+SSL_CTX_ct_is_enabled                   383	1_1_0	EXIST::FUNCTION:CT
+SSL_set_default_read_buffer_len         384	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set_default_read_buffer_len     385	1_1_0	EXIST::FUNCTION:
+SSL_has_pending                         386	1_1_0	EXIST::FUNCTION:
+SSL_CIPHER_get_auth_nid                 387	1_1_0	EXIST::FUNCTION:
+SSL_CIPHER_get_kx_nid                   388	1_1_0	EXIST::FUNCTION:
+SSL_CIPHER_is_aead                      389	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_up_ref                      390	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set0_ctlog_store                391	1_1_0	EXIST::FUNCTION:CT
+SSL_CTX_get0_ctlog_store                392	1_1_0	EXIST::FUNCTION:CT
+SSL_enable_ct                           393	1_1_0	EXIST::FUNCTION:CT
+SSL_CTX_enable_ct                       394	1_1_0	EXIST::FUNCTION:CT
+SSL_CTX_get_ciphers                     395	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_get0_hostname               396	1_1_0	EXIST::FUNCTION:
+SSL_client_version                      397	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_get_protocol_version        398	1_1_0	EXIST::FUNCTION:
+SSL_is_dtls                             399	1_1_0	EXIST::FUNCTION:
+SSL_CTX_dane_set_flags                  400	1_1_0	EXIST::FUNCTION:
+SSL_dane_set_flags                      401	1_1_0	EXIST::FUNCTION:
+SSL_CTX_dane_clear_flags                402	1_1_0	EXIST::FUNCTION:
+SSL_dane_clear_flags                    403	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_get0_cipher                 404	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_get0_id_context             405	1_1_0	EXIST::FUNCTION:
+SSL_SESSION_set1_id                     406	1_1_0	EXIST::FUNCTION:
+SSL_CTX_set1_cert_store                 407	1_1_1	EXIST::FUNCTION:
+DTLS_get_data_mtu                       408	1_1_1	EXIST::FUNCTION:
+SSL_read_ex                             409	1_1_1	EXIST::FUNCTION:
+SSL_peek_ex                             410	1_1_1	EXIST::FUNCTION:
+SSL_write_ex                            411	1_1_1	EXIST::FUNCTION:
+SSL_COMP_get_id                         412	1_1_0d	EXIST::FUNCTION:
+SSL_COMP_get0_name                      413	1_1_0d	EXIST::FUNCTION:
+SSL_CTX_set_keylog_callback             414	1_1_1	EXIST::FUNCTION:
+SSL_CTX_get_keylog_callback             415	1_1_1	EXIST::FUNCTION:
+SSL_get_peer_signature_type_nid         416	1_1_1	EXIST::FUNCTION:
+SSL_key_update                          417	1_1_1	EXIST::FUNCTION:
+SSL_get_key_update_type                 418	1_1_1	EXIST::FUNCTION:
+SSL_bytes_to_cipher_list                419	1_1_1	EXIST::FUNCTION:
+SSL_client_hello_get0_compression_methods 420	1_1_1	EXIST::FUNCTION:
+SSL_client_hello_get0_ciphers           421	1_1_1	EXIST::FUNCTION:
+SSL_client_hello_get0_ext               422	1_1_1	EXIST::FUNCTION:
+SSL_client_hello_get0_session_id        423	1_1_1	EXIST::FUNCTION:
+SSL_client_hello_get0_random            424	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set_client_hello_cb             425	1_1_1	EXIST::FUNCTION:
+SSL_client_hello_get0_legacy_version    426	1_1_1	EXIST::FUNCTION:
+SSL_client_hello_isv2                   427	1_1_1	EXIST::FUNCTION:
+SSL_set_max_early_data                  428	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set_max_early_data              429	1_1_1	EXIST::FUNCTION:
+SSL_get_max_early_data                  430	1_1_1	EXIST::FUNCTION:
+SSL_CTX_get_max_early_data              431	1_1_1	EXIST::FUNCTION:
+SSL_write_early_data                    432	1_1_1	EXIST::FUNCTION:
+SSL_read_early_data                     433	1_1_1	EXIST::FUNCTION:
+SSL_get_early_data_status               434	1_1_1	EXIST::FUNCTION:
+SSL_SESSION_get_max_early_data          435	1_1_1	EXIST::FUNCTION:
+SSL_add1_to_CA_list                     436	1_1_1	EXIST::FUNCTION:
+SSL_set0_CA_list                        437	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set0_CA_list                    438	1_1_1	EXIST::FUNCTION:
+SSL_get0_CA_list                        439	1_1_1	EXIST::FUNCTION:
+SSL_get0_peer_CA_list                   440	1_1_1	EXIST::FUNCTION:
+SSL_CTX_add1_to_CA_list                 441	1_1_1	EXIST::FUNCTION:
+SSL_CTX_get0_CA_list                    442	1_1_1	EXIST::FUNCTION:
+SSL_CTX_add_custom_ext                  443	1_1_1	EXIST::FUNCTION:
+SSL_SESSION_is_resumable                444	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set_record_padding_callback     445	1_1_1	EXIST::FUNCTION:
+SSL_set_record_padding_callback         446	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set_block_padding               447	1_1_1	EXIST::FUNCTION:
+SSL_CTX_get_record_padding_callback_arg 448	1_1_1	EXIST::FUNCTION:
+SSL_get_record_padding_callback_arg     449	1_1_1	EXIST::FUNCTION:
+SSL_set_block_padding                   450	1_1_1	EXIST::FUNCTION:
+SSL_set_record_padding_callback_arg     451	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set_record_padding_callback_arg 452	1_1_1	EXIST::FUNCTION:
+SSL_CTX_use_serverinfo_ex               453	1_1_1	EXIST::FUNCTION:
+SSL_client_hello_get1_extensions_present 454	1_1_1	EXIST::FUNCTION:
+SSL_set_psk_find_session_callback       455	1_1_1	EXIST::FUNCTION:
+SSL_set_psk_use_session_callback        456	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set_psk_use_session_callback    457	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set_psk_find_session_callback   458	1_1_1	EXIST::FUNCTION:
+SSL_CIPHER_get_handshake_digest         459	1_1_1	EXIST::FUNCTION:
+SSL_SESSION_set1_master_key             460	1_1_1	EXIST::FUNCTION:
+SSL_SESSION_set_cipher                  461	1_1_1	EXIST::FUNCTION:
+SSL_SESSION_set_protocol_version        462	1_1_1	EXIST::FUNCTION:
+OPENSSL_cipher_name                     463	1_1_1	EXIST::FUNCTION:
+SSL_alloc_buffers                       464	1_1_1	EXIST::FUNCTION:
+SSL_free_buffers                        465	1_1_1	EXIST::FUNCTION:
+SSL_SESSION_dup                         466	1_1_1	EXIST::FUNCTION:
+SSL_get_pending_cipher                  467	1_1_1	EXIST::FUNCTION:
+SSL_CIPHER_get_protocol_id              468	1_1_1	EXIST::FUNCTION:
+SSL_SESSION_set_max_early_data          469	1_1_1	EXIST::FUNCTION:
+SSL_SESSION_set1_alpn_selected          470	1_1_1	EXIST::FUNCTION:
+SSL_SESSION_set1_hostname               471	1_1_1	EXIST::FUNCTION:
+SSL_SESSION_get0_alpn_selected          472	1_1_1	EXIST::FUNCTION:
+DTLS_set_timer_cb                       473	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set_tlsext_max_fragment_length  474	1_1_1	EXIST::FUNCTION:
+SSL_set_tlsext_max_fragment_length      475	1_1_1	EXIST::FUNCTION:
+SSL_SESSION_get_max_fragment_length     476	1_1_1	EXIST::FUNCTION:
+SSL_stateless                           477	1_1_1	EXIST::FUNCTION:
+SSL_verify_client_post_handshake        478	1_1_1	EXIST::FUNCTION:
+SSL_set_post_handshake_auth             479	1_1_1	EXIST::FUNCTION:
+SSL_export_keying_material_early        480	1_1_1	EXIST::FUNCTION:
+SSL_CTX_use_cert_and_key                481	1_1_1	EXIST::FUNCTION:
+SSL_use_cert_and_key                    482	1_1_1	EXIST::FUNCTION:
+SSL_SESSION_get0_ticket_appdata         483	1_1_1	EXIST::FUNCTION:
+SSL_SESSION_set1_ticket_appdata         484	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set_session_ticket_cb           485	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set_stateless_cookie_generate_cb 486	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set_stateless_cookie_verify_cb  487	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set_ciphersuites                488	1_1_1	EXIST::FUNCTION:
+SSL_set_ciphersuites                    489	1_1_1	EXIST::FUNCTION:
+SSL_set_num_tickets                     490	1_1_1	EXIST::FUNCTION:
+SSL_CTX_get_num_tickets                 491	1_1_1	EXIST::FUNCTION:
+SSL_get_num_tickets                     492	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set_num_tickets                 493	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set_allow_early_data_cb         494	1_1_1	EXIST::FUNCTION:
+SSL_set_allow_early_data_cb             495	1_1_1	EXIST::FUNCTION:
+SSL_set_recv_max_early_data             496	1_1_1	EXIST::FUNCTION:
+SSL_get_recv_max_early_data             497	1_1_1	EXIST::FUNCTION:
+SSL_CTX_get_recv_max_early_data         498	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set_recv_max_early_data         499	1_1_1	EXIST::FUNCTION:
+SSL_CTX_set_post_handshake_auth         500	1_1_1	EXIST::FUNCTION:
+SSL_get_signature_type_nid              501	1_1_1a	EXIST::FUNCTION:
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/local_shlib.com.in b/ap/lib/libssl/openssl-1.1.1o/util/local_shlib.com.in
new file mode 100644
index 0000000..a381872
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/local_shlib.com.in
@@ -0,0 +1,30 @@
+${-
+  use File::Spec::Functions qw(rel2abs);
+
+  my $bldtop = rel2abs($config{builddir});
+  our %names = ( map { $_ => $bldtop.$_.".EXE" }
+                 map { $unified_info{sharednames}->{$_} || () }
+                 @{$unified_info{libraries}} );
+  "" -}
+$       ! Create a local environment with the shared library logical names
+$       ! properly set.  Undo this with unlocal_shlib.com
+$
+$       OPENSSL_NAMES := OPENSSL_NAMES_'F$GETJPI("","PID")'
+$       CREATE/NAME_TABLE/PARENT_TABLE=LNM$PROCESS_DIRECTORY 'OPENSSL_NAMES'
+$       DEFINE/TABLE='OPENSSL_NAMES' OSSL_FLAG YES
+$
+$       NAMES := {- join(",", keys %names); -}
+{-
+  join("\n", map { "\$       __$_ = \"".$names{$_}."\"" } keys %names);
+-}
+$       I = 0
+$       LOOP:
+$           E = F$ELEMENT(I,",",NAMES)
+$           I = I + 1
+$           IF E .EQS. "," THEN GOTO ENDLOOP
+$           EV = __'E'
+$           OLDV = F$TRNLNM(E,"LNM$PROCESS")
+$           IF OLDV .NES. "" THEN DEFINE/TABLE='OPENSSL_NAMES' 'E' 'OLDV'
+$           DEFINE 'E' 'EV'
+$           GOTO LOOP
+$       ENDLOOP:
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/mkbuildinf.pl b/ap/lib/libssl/openssl-1.1.1o/util/mkbuildinf.pl
new file mode 100755
index 0000000..c9324a9
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/mkbuildinf.pl
@@ -0,0 +1,56 @@
+#! /usr/bin/env perl
+# Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use warnings;
+
+my ($cflags, $platform) = @ARGV;
+$cflags = "compiler: $cflags";
+
+my $date = gmtime($ENV{'SOURCE_DATE_EPOCH'} || time()) . " UTC";
+
+print <<"END_OUTPUT";
+/*
+ * WARNING: do not edit!
+ * Generated by util/mkbuildinf.pl
+ *
+ * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#define PLATFORM "platform: $platform"
+#define DATE "built on: $date"
+
+/*
+ * Generate compiler_flags as an array of individual characters. This is a
+ * workaround for the situation where CFLAGS gets too long for a C90 string
+ * literal
+ */
+static const char compiler_flags[] = {
+END_OUTPUT
+
+my $ctr = 0;
+foreach my $c (split //, $cflags) {
+    $c =~ s|([\\'])|\\$1|;
+    # Max 16 characters per line
+    if  (($ctr++ % 16) == 0) {
+        if ($ctr != 1) {
+            print "\n";
+        }
+        print "    ";
+    }
+    print "'$c',";
+}
+print <<"END_OUTPUT";
+'\\0'
+};
+END_OUTPUT
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/mkdef.pl b/ap/lib/libssl/openssl-1.1.1o/util/mkdef.pl
new file mode 100755
index 0000000..3ac7982
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/mkdef.pl
@@ -0,0 +1,1633 @@
+#! /usr/bin/env perl
+# Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+#
+# generate a .def file
+#
+# It does this by parsing the header files and looking for the
+# prototyped functions: it then prunes the output.
+#
+# Intermediary files are created, call libcrypto.num and libssl.num,
+# The format of these files is:
+#
+#	routine-name	nnnn	vers	info
+#
+# The "nnnn" and "vers" fields are the numeric id and version for the symbol
+# respectively. The "info" part is actually a colon-separated string of fields
+# with the following meaning:
+#
+#	existence:platform:kind:algorithms
+#
+# - "existence" can be "EXIST" or "NOEXIST" depending on if the symbol is
+#   found somewhere in the source,
+# - "platforms" is empty if it exists on all platforms, otherwise it contains
+#   comma-separated list of the platform, just as they are if the symbol exists
+#   for those platforms, or prepended with a "!" if not.  This helps resolve
+#   symbol name variants for platforms where the names are too long for the
+#   compiler or linker, or if the systems is case insensitive and there is a
+#   clash, or the symbol is implemented differently (see
+#   EXPORT_VAR_AS_FUNCTION).  This script assumes renaming of symbols is found
+#   in the file crypto/symhacks.h.
+#   The semantics for the platforms is that every item is checked against the
+#   environment.  For the negative items ("!FOO"), if any of them is false
+#   (i.e. "FOO" is true) in the environment, the corresponding symbol can't be
+#   used.  For the positive items, if all of them are false in the environment,
+#   the corresponding symbol can't be used.  Any combination of positive and
+#   negative items are possible, and of course leave room for some redundancy.
+# - "kind" is "FUNCTION" or "VARIABLE".  The meaning of that is obvious.
+# - "algorithms" is a comma-separated list of algorithm names.  This helps
+#   exclude symbols that are part of an algorithm that some user wants to
+#   exclude.
+#
+
+use lib ".";
+use configdata;
+use File::Spec::Functions;
+use File::Basename;
+use FindBin;
+use lib "$FindBin::Bin/perl";
+use OpenSSL::Glob;
+
+# When building a "variant" shared library, with a custom SONAME, also customize
+# all the symbol versions.  This produces a shared object that can coexist
+# without conflict in the same address space as a default build, or an object
+# with a different variant tag.
+#
+# For example, with a target definition that includes:
+#
+#         shlib_variant => "-opt",
+#
+# we build the following objects:
+#
+# $ perl -le '
+#     for (@ARGV) {
+#         if ($l = readlink) {
+#             printf "%s -> %s\n", $_, $l
+#         } else {
+#             print
+#         }
+#     }' *.so*
+# libcrypto-opt.so.1.1
+# libcrypto.so -> libcrypto-opt.so.1.1
+# libssl-opt.so.1.1
+# libssl.so -> libssl-opt.so.1.1
+#
+# whose SONAMEs and dependencies are:
+#
+# $ for l in *.so; do
+#     echo $l
+#     readelf -d $l | egrep 'SONAME|NEEDED.*(ssl|crypto)'
+#   done
+# libcrypto.so
+#  0x000000000000000e (SONAME)             Library soname: [libcrypto-opt.so.1.1]
+# libssl.so
+#  0x0000000000000001 (NEEDED)             Shared library: [libcrypto-opt.so.1.1]
+#  0x000000000000000e (SONAME)             Library soname: [libssl-opt.so.1.1]
+#
+# We case-fold the variant tag to upper case and replace all non-alnum
+# characters with "_".  This yields the following symbol versions:
+#
+# $ nm libcrypto.so | grep -w A
+# 0000000000000000 A OPENSSL_OPT_1_1_0
+# 0000000000000000 A OPENSSL_OPT_1_1_0a
+# 0000000000000000 A OPENSSL_OPT_1_1_0c
+# 0000000000000000 A OPENSSL_OPT_1_1_0d
+# 0000000000000000 A OPENSSL_OPT_1_1_0f
+# 0000000000000000 A OPENSSL_OPT_1_1_0g
+# $ nm libssl.so | grep -w A
+# 0000000000000000 A OPENSSL_OPT_1_1_0
+# 0000000000000000 A OPENSSL_OPT_1_1_0d
+#
+(my $SO_VARIANT = qq{\U$target{"shlib_variant"}}) =~ s/\W/_/g;
+
+my $debug=0;
+my $trace=0;
+my $verbose=0;
+
+my $crypto_num= catfile($config{sourcedir},"util","libcrypto.num");
+my $ssl_num=    catfile($config{sourcedir},"util","libssl.num");
+my $libname;
+
+my $do_update = 0;
+my $do_rewrite = 1;
+my $do_crypto = 0;
+my $do_ssl = 0;
+my $do_ctest = 0;
+my $do_ctestall = 0;
+my $do_checkexist = 0;
+
+my $VMS=0;
+my $W32=0;
+my $NT=0;
+my $UNIX=0;
+my $linux=0;
+my $aix=0;
+# Set this to make typesafe STACK definitions appear in DEF
+my $safe_stack_def = 0;
+
+my @known_platforms = ( "__FreeBSD__", "PERL5",
+			"EXPORT_VAR_AS_FUNCTION", "ZLIB", "_WIN32"
+			);
+my @known_ossl_platforms = ( "UNIX", "VMS", "WIN32", "WINNT", "OS2" );
+my @known_algorithms = ( # These are algorithms we know are guarded in relevant
+			 # header files, but aren't actually disablable.
+			 # Without these, this script will warn a lot.
+			 "RSA", "MD5",
+			 # @disablables comes from configdata.pm
+			 map { (my $x = uc $_) =~ s|-|_|g; $x; } @disablables,
+			 # Deprecated functions.  Not really algorithmss, but
+			 # treated as such here for the sake of simplicity
+			 "DEPRECATEDIN_0_9_8",
+			 "DEPRECATEDIN_1_0_0",
+			 "DEPRECATEDIN_1_1_0",
+			 "DEPRECATEDIN_1_2_0",
+                     );
+
+# %disabled comes from configdata.pm
+my %disabled_algorithms =
+    map { (my $x = uc $_) =~ s|-|_|g; $x => 1; } keys %disabled;
+
+my $apiv = sprintf "%x%02x%02x", split(/\./, $config{api});
+foreach (@known_algorithms) {
+	if (/^DEPRECATEDIN_(\d+)_(\d+)_(\d+)$/) {
+		my $depv = sprintf "%x%02x%02x", $1, $2, $3;
+		$disabled_algorithms{$_} = 1 if $apiv ge $depv;
+	}
+}
+
+my $zlib;
+
+foreach (@ARGV, split(/ /, $config{options}))
+	{
+	$debug=1 if $_ eq "debug";
+	$trace=1 if $_ eq "trace";
+	$verbose=1 if $_ eq "verbose";
+	$W32=1 if $_ eq "32";
+	die "win16 not supported" if $_ eq "16";
+	if($_ eq "NT") {
+		$W32 = 1;
+		$NT = 1;
+	} elsif ($_ eq "linux") {
+		$linux=1;
+		$UNIX=1;
+	} elsif ($_ eq "aix") {
+		$aix=1;
+		$UNIX=1;
+	} elsif ($_ eq "VMS") {
+		$VMS=1;
+	}
+	if ($_ eq "zlib" || $_ eq "enable-zlib" || $_ eq "zlib-dynamic"
+			 || $_ eq "enable-zlib-dynamic") {
+		$zlib = 1;
+	}
+
+	$do_crypto=1 if $_ eq "libcrypto" || $_ eq "crypto";
+	$do_ssl=1 if $_ eq "libssl" || $_ eq "ssl";
+
+	$do_update=1 if $_ eq "update";
+	$do_rewrite=1 if $_ eq "rewrite";
+	$do_ctest=1 if $_ eq "ctest";
+	$do_ctestall=1 if $_ eq "ctestall";
+	$do_checkexist=1 if $_ eq "exist";
+	}
+$libname = $unified_info{sharednames}->{libcrypto} if $do_crypto;
+$libname = $unified_info{sharednames}->{libssl} if $do_ssl;
+
+if (!$libname) {
+	if ($do_ssl) {
+		$libname="LIBSSL";
+	}
+	if ($do_crypto) {
+		$libname="LIBCRYPTO";
+	}
+}
+
+# If no platform is given, assume WIN32
+if ($W32 + $VMS + $linux + $aix == 0) {
+	$W32 = 1;
+}
+die "Please, only one platform at a time"
+    if ($W32 + $VMS + $linux + $aix > 1);
+
+if (!$do_ssl && !$do_crypto)
+	{
+	print STDERR "usage: $0 ( ssl | crypto ) [ 16 | 32 | NT | OS2 | linux | VMS ]\n";
+	exit(1);
+	}
+
+%ssl_list=&load_numbers($ssl_num);
+$max_ssl = $max_num;
+%crypto_list=&load_numbers($crypto_num);
+$max_crypto = $max_num;
+
+my $ssl="include/openssl/ssl.h";
+$ssl.=" include/openssl/sslerr.h";
+$ssl.=" include/openssl/tls1.h";
+$ssl.=" include/openssl/srtp.h";
+
+# When scanning include/openssl, skip all SSL files and some internal ones.
+my %skipthese;
+foreach my $f ( split(/\s+/, $ssl) ) {
+    $skipthese{$f} = 1;
+}
+$skipthese{'include/openssl/conf_api.h'} = 1;
+$skipthese{'include/openssl/ebcdic.h'} = 1;
+$skipthese{'include/openssl/opensslconf.h'} = 1;
+
+# We use headers found in include/openssl and include/internal only.
+# The latter is needed so libssl.so/.dll/.exe can link properly.
+my $crypto ="include/internal/dso.h";
+$crypto.=" include/internal/o_dir.h";
+$crypto.=" include/internal/o_str.h";
+$crypto.=" include/internal/err.h";
+$crypto.=" include/internal/sslconf.h";
+foreach my $f ( glob(catfile($config{sourcedir},'include/openssl/*.h')) ) {
+    my $fn = "include/openssl/" . basename($f);
+    $crypto .= " $fn" if !defined $skipthese{$fn};
+}
+
+my $symhacks="include/openssl/symhacks.h";
+
+my @ssl_symbols = &do_defs("LIBSSL", $ssl, $symhacks);
+my @crypto_symbols = &do_defs("LIBCRYPTO", $crypto, $symhacks);
+
+if ($do_update) {
+
+if ($do_ssl == 1) {
+
+	&maybe_add_info("LIBSSL",*ssl_list,@ssl_symbols);
+	if ($do_rewrite == 1) {
+		open(OUT, ">$ssl_num");
+		&rewrite_numbers(*OUT,"LIBSSL",*ssl_list,@ssl_symbols);
+	} else {
+		open(OUT, ">>$ssl_num");
+	}
+	&update_numbers(*OUT,"LIBSSL",*ssl_list,$max_ssl,@ssl_symbols);
+	close OUT;
+}
+
+if($do_crypto == 1) {
+
+	&maybe_add_info("LIBCRYPTO",*crypto_list,@crypto_symbols);
+	if ($do_rewrite == 1) {
+		open(OUT, ">$crypto_num");
+		&rewrite_numbers(*OUT,"LIBCRYPTO",*crypto_list,@crypto_symbols);
+	} else {
+		open(OUT, ">>$crypto_num");
+	}
+	&update_numbers(*OUT,"LIBCRYPTO",*crypto_list,$max_crypto,@crypto_symbols);
+	close OUT;
+}
+
+} elsif ($do_checkexist) {
+	&check_existing(*ssl_list, @ssl_symbols)
+		if $do_ssl == 1;
+	&check_existing(*crypto_list, @crypto_symbols)
+		if $do_crypto == 1;
+} elsif ($do_ctest || $do_ctestall) {
+
+	print <<"EOF";
+
+/* Test file to check all DEF file symbols are present by trying
+ * to link to all of them. This is *not* intended to be run!
+ */
+
+int main()
+{
+EOF
+	&print_test_file(*STDOUT,"LIBSSL",*ssl_list,$do_ctestall,@ssl_symbols)
+		if $do_ssl == 1;
+
+	&print_test_file(*STDOUT,"LIBCRYPTO",*crypto_list,$do_ctestall,@crypto_symbols)
+		if $do_crypto == 1;
+
+	print "}\n";
+
+} else {
+
+	&print_def_file(*STDOUT,$libname,*ssl_list,@ssl_symbols)
+		if $do_ssl == 1;
+
+	&print_def_file(*STDOUT,$libname,*crypto_list,@crypto_symbols)
+		if $do_crypto == 1;
+
+}
+
+
+sub do_defs
+{
+	my($name,$files,$symhacksfile)=@_;
+	my $file;
+	my @ret;
+	my %syms;
+	my %platform;		# For anything undefined, we assume ""
+	my %kind;		# For anything undefined, we assume "FUNCTION"
+	my %algorithm;		# For anything undefined, we assume ""
+	my %variant;
+	my %variant_cnt;	# To be able to allocate "name{n}" if "name"
+				# is the same name as the original.
+	my $cpp;
+	my %unknown_algorithms = ();
+	my $parens = 0;
+
+	foreach $file (split(/\s+/,$symhacksfile." ".$files))
+		{
+		my $fn = catfile($config{sourcedir},$file);
+		print STDERR "DEBUG: starting on $fn:\n" if $debug;
+		print STDERR "TRACE: start reading $fn\n" if $trace;
+		open(IN,"<$fn") || die "Can't open $fn, $!,";
+		my $line = "", my $def= "";
+		my %tag = (
+			(map { $_ => 0 } @known_platforms),
+			(map { "OPENSSL_SYS_".$_ => 0 } @known_ossl_platforms),
+			(map { "OPENSSL_NO_".$_ => 0 } @known_algorithms),
+			(map { "OPENSSL_USE_".$_ => 0 } @known_algorithms),
+			(grep /^DEPRECATED_/, @known_algorithms),
+			NOPROTO		=> 0,
+			PERL5		=> 0,
+			_WINDLL		=> 0,
+			CONST_STRICT	=> 0,
+			TRUE		=> 1,
+		);
+		my $symhacking = $file eq $symhacksfile;
+		my @current_platforms = ();
+		my @current_algorithms = ();
+
+		# params: symbol, alias, platforms, kind
+		# The reason to put this subroutine in a variable is that
+		# it will otherwise create its own, unshared, version of
+		# %tag and %variant...
+		my $make_variant = sub
+		{
+			my ($s, $a, $p, $k) = @_;
+			my ($a1, $a2);
+
+			print STDERR "DEBUG: make_variant: Entered with ",$s,", ",$a,", ",(defined($p)?$p:""),", ",(defined($k)?$k:""),"\n" if $debug;
+			if (defined($p))
+			{
+				$a1 = join(",",$p,
+					   grep(!/^$/,
+						map { $tag{$_} == 1 ? $_ : "" }
+						@known_platforms));
+			}
+			else
+			{
+				$a1 = join(",",
+					   grep(!/^$/,
+						map { $tag{$_} == 1 ? $_ : "" }
+						@known_platforms));
+			}
+			$a2 = join(",",
+				   grep(!/^$/,
+					map { $tag{"OPENSSL_SYS_".$_} == 1 ? $_ : "" }
+					@known_ossl_platforms));
+			print STDERR "DEBUG: make_variant: a1 = $a1; a2 = $a2\n" if $debug;
+			if ($a1 eq "") { $a1 = $a2; }
+			elsif ($a1 ne "" && $a2 ne "") { $a1 .= ",".$a2; }
+			if ($a eq $s)
+			{
+				if (!defined($variant_cnt{$s}))
+				{
+					$variant_cnt{$s} = 0;
+				}
+				$variant_cnt{$s}++;
+				$a .= "{$variant_cnt{$s}}";
+			}
+			my $toadd = $a.":".$a1.(defined($k)?":".$k:"");
+			my $togrep = $s.'(\{[0-9]+\})?:'.$a1.(defined($k)?":".$k:"");
+			if (!grep(/^$togrep$/,
+				  split(/;/, defined($variant{$s})?$variant{$s}:""))) {
+				if (defined($variant{$s})) { $variant{$s} .= ";"; }
+				$variant{$s} .= $toadd;
+			}
+			print STDERR "DEBUG: make_variant: Exit with variant of ",$s," = ",$variant{$s},"\n" if $debug;
+		};
+
+		print STDERR "DEBUG: parsing ----------\n" if $debug;
+		while(<IN>) {
+			s|\R$||; # Better chomp
+			if($parens > 0) {
+				#Inside a DEPRECATEDIN
+				$stored_multiline .= $_;
+				print STDERR "DEBUG: Continuing multiline DEPRECATEDIN: $stored_multiline\n" if $debug;
+				$parens = count_parens($stored_multiline);
+				if ($parens == 0) {
+					$def .= do_deprecated($stored_multiline,
+							\@current_platforms,
+							\@current_algorithms);
+				}
+				next;
+			}
+			if (/\/\* Error codes for the \w+ functions\. \*\//)
+				{
+				undef @tag;
+				last;
+				}
+			if ($line ne '') {
+				$_ = $line . $_;
+				$line = '';
+			}
+
+			if (/\\$/) {
+				$line = $`; # keep what was before the backslash
+				next;
+			}
+
+			if(/\/\*/) {
+				if (not /\*\//) {	# multi-line comment...
+					$line = $_;	# ... just accumulate
+					next;
+				} else {
+					s/\/\*.*?\*\///gs;# wipe it
+				}
+			}
+
+			if ($cpp) {
+				$cpp++ if /^#\s*if/;
+				$cpp-- if /^#\s*endif/;
+				next;
+			}
+			if (/^#.*ifdef.*cplusplus/) {
+				$cpp = 1;
+				next;
+			}
+
+			s/{[^{}]*}//gs;                      # ignore {} blocks
+			print STDERR "DEBUG: \$def=\"$def\"\n" if $debug && $def ne "";
+			print STDERR "DEBUG: \$_=\"$_\"\n" if $debug;
+			if (/^\#\s*if\s+OPENSSL_API_COMPAT\s*(\S)\s*(0x[0-9a-fA-F]{8})L\s*$/) {
+				my $op = $1;
+				my $v = hex($2);
+				if ($op ne '<' && $op ne '>=') {
+				    die "$file unacceptable operator $op: $_\n";
+				}
+				my ($one, $major, $minor) =
+				    ( ($v >> 28) & 0xf,
+				      ($v >> 20) & 0xff,
+				      ($v >> 12) & 0xff );
+				my $t = "DEPRECATEDIN_${one}_${major}_${minor}";
+				push(@tag,"-");
+				push(@tag,$t);
+				$tag{$t}=($op eq '<' ? 1 : -1);
+				print STDERR "DEBUG: $file: found tag $t = $tag{$t}\n" if $debug;
+			} elsif (/^\#\s*ifndef\s+(.*)/) {
+				push(@tag,"-");
+				push(@tag,$1);
+				$tag{$1}=-1;
+				print STDERR "DEBUG: $file: found tag $1 = -1\n" if $debug;
+			} elsif (/^\#\s*if\s+!defined\s*\(([^\)]+)\)/) {
+				push(@tag,"-");
+				if (/^\#\s*if\s+(!defined\s*\(([^\)]+)\)(\s+\&\&\s+!defined\s*\(([^\)]+)\))*)$/) {
+					my $tmp_1 = $1;
+					my $tmp_;
+					foreach $tmp_ (split '\&\&',$tmp_1) {
+						$tmp_ =~ /!defined\s*\(([^\)]+)\)/;
+						print STDERR "DEBUG: $file: found tag $1 = -1\n" if $debug;
+						push(@tag,$1);
+						$tag{$1}=-1;
+					}
+				} else {
+					print STDERR "Warning: $file: taking only '!defined($1)' of complicated expression: $_" if $verbose; # because it is O...
+					print STDERR "DEBUG: $file: found tag $1 = -1\n" if $debug;
+					push(@tag,$1);
+					$tag{$1}=-1;
+				}
+			} elsif (/^\#\s*ifdef\s+(\S*)/) {
+				push(@tag,"-");
+				push(@tag,$1);
+				$tag{$1}=1;
+				print STDERR "DEBUG: $file: found tag $1 = 1\n" if $debug;
+			} elsif (/^\#\s*if\s+defined\s*\(([^\)]+)\)/) {
+				push(@tag,"-");
+				if (/^\#\s*if\s+(defined\s*\(([^\)]+)\)(\s+\|\|\s+defined\s*\(([^\)]+)\))*)$/) {
+					my $tmp_1 = $1;
+					my $tmp_;
+					foreach $tmp_ (split '\|\|',$tmp_1) {
+						$tmp_ =~ /defined\s*\(([^\)]+)\)/;
+						print STDERR "DEBUG: $file: found tag $1 = 1\n" if $debug;
+						push(@tag,$1);
+						$tag{$1}=1;
+					}
+				} else {
+					print STDERR "Warning: $file: taking only 'defined($1)' of complicated expression: $_\n" if $verbose; # because it is O...
+					print STDERR "DEBUG: $file: found tag $1 = 1\n" if $debug;
+					push(@tag,$1);
+					$tag{$1}=1;
+				}
+			} elsif (/^\#\s*error\s+(\w+) is disabled\./) {
+				my $tag_i = $#tag;
+				while($tag[$tag_i] ne "-") {
+					if ($tag[$tag_i] eq "OPENSSL_NO_".$1) {
+						$tag{$tag[$tag_i]}=2;
+						print STDERR "DEBUG: $file: changed tag $1 = 2\n" if $debug;
+					}
+					$tag_i--;
+				}
+			} elsif (/^\#\s*endif/) {
+				my $tag_i = $#tag;
+				while($tag_i > 0 && $tag[$tag_i] ne "-") {
+					my $t=$tag[$tag_i];
+					print STDERR "DEBUG: \$t=\"$t\"\n" if $debug;
+					if ($tag{$t}==2) {
+						$tag{$t}=-1;
+					} else {
+						$tag{$t}=0;
+					}
+					print STDERR "DEBUG: $file: changed tag ",$t," = ",$tag{$t},"\n" if $debug;
+					pop(@tag);
+					if ($t =~ /^OPENSSL_NO_([A-Z0-9_]+)$/) {
+						$t=$1;
+					} elsif($t =~ /^OPENSSL_USE_([A-Z0-9_]+)$/) {
+						$t=$1;
+					} else {
+						$t="";
+					}
+					if ($t ne ""
+					    && !grep(/^$t$/, @known_algorithms)) {
+						$unknown_algorithms{$t} = 1;
+						#print STDERR "DEBUG: Added as unknown algorithm: $t\n" if $debug;
+					}
+					$tag_i--;
+				}
+				pop(@tag);
+			} elsif (/^\#\s*else/) {
+				my $tag_i = $#tag;
+				die "$file unmatched else\n" if $tag_i < 0;
+				while($tag[$tag_i] ne "-") {
+					my $t=$tag[$tag_i];
+					$tag{$t}= -$tag{$t};
+					print STDERR "DEBUG: $file: changed tag ",$t," = ",$tag{$t},"\n" if $debug;
+					$tag_i--;
+				}
+			} elsif (/^\#\s*if\s+1/) {
+				push(@tag,"-");
+				# Dummy tag
+				push(@tag,"TRUE");
+				$tag{"TRUE"}=1;
+				print STDERR "DEBUG: $file: found 1\n" if $debug;
+			} elsif (/^\#\s*if\s+0/) {
+				push(@tag,"-");
+				# Dummy tag
+				push(@tag,"TRUE");
+				$tag{"TRUE"}=-1;
+				print STDERR "DEBUG: $file: found 0\n" if $debug;
+			} elsif (/^\#\s*if\s+/) {
+				#Some other unrecognized "if" style
+				push(@tag,"-");
+				print STDERR "Warning: $file: ignoring unrecognized expression: $_\n" if $verbose; # because it is O...
+			} elsif (/^\#\s*define\s+(\w+)\s+(\w+)/
+				 && $symhacking && $tag{'TRUE'} != -1) {
+				# This is for aliasing.  When we find an alias,
+				# we have to invert
+				&$make_variant($1,$2);
+				print STDERR "DEBUG: $file: defined $1 = $2\n" if $debug;
+			}
+			if (/^\#/) {
+				@current_platforms =
+				    grep(!/^$/,
+					 map { $tag{$_} == 1 ? $_ :
+						   $tag{$_} == -1 ? "!".$_  : "" }
+					 @known_platforms);
+				push @current_platforms
+				    , grep(!/^$/,
+					   map { $tag{"OPENSSL_SYS_".$_} == 1 ? $_ :
+						     $tag{"OPENSSL_SYS_".$_} == -1 ? "!".$_  : "" }
+					   @known_ossl_platforms);
+				@current_algorithms = ();
+				@current_algorithms =
+				    grep(!/^$/,
+					 map { $tag{"OPENSSL_NO_".$_} == -1 ? $_ : "" }
+					 @known_algorithms);
+				push @current_algorithms
+				    , grep(!/^$/,
+					 map { $tag{"OPENSSL_USE_".$_} == 1 ? $_ : "" }
+					 @known_algorithms);
+				push @current_algorithms,
+				    grep { /^DEPRECATEDIN_/ && $tag{$_} == 1 }
+				    @known_algorithms;
+				$def .=
+				    "#INFO:"
+					.join(',',@current_platforms).":"
+					    .join(',',@current_algorithms).";";
+				next;
+			}
+			if ($tag{'TRUE'} != -1) {
+				if (/^\s*DEFINE_STACK_OF\s*\(\s*(\w*)\s*\)/
+						|| /^\s*DEFINE_STACK_OF_CONST\s*\(\s*(\w*)\s*\)/) {
+					next;
+				} elsif (/^\s*DECLARE_ASN1_ENCODE_FUNCTIONS\s*\(\s*(\w*)\s*,\s*(\w*)\s*,\s*(\w*)\s*\)/) {
+					$def .= "int d2i_$3(void);";
+					$def .= "int i2d_$3(void);";
+					# Variant for platforms that do not
+					# have to access global variables
+					# in shared libraries through functions
+					$def .=
+					    "#INFO:"
+						.join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":"
+						    .join(',',@current_algorithms).";";
+					$def .= "OPENSSL_EXTERN int $2_it;";
+					$def .=
+					    "#INFO:"
+						.join(',',@current_platforms).":"
+						    .join(',',@current_algorithms).";";
+					# Variant for platforms that have to
+					# access global variables in shared
+					# libraries through functions
+					&$make_variant("$2_it","$2_it",
+						      "EXPORT_VAR_AS_FUNCTION",
+						      "FUNCTION");
+					next;
+				} elsif (/^\s*DECLARE_ASN1_FUNCTIONS_fname\s*\(\s*(\w*)\s*,\s*(\w*)\s*,\s*(\w*)\s*\)/) {
+					$def .= "int d2i_$3(void);";
+					$def .= "int i2d_$3(void);";
+					$def .= "int $3_free(void);";
+					$def .= "int $3_new(void);";
+					# Variant for platforms that do not
+					# have to access global variables
+					# in shared libraries through functions
+					$def .=
+					    "#INFO:"
+						.join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":"
+						    .join(',',@current_algorithms).";";
+					$def .= "OPENSSL_EXTERN int $2_it;";
+					$def .=
+					    "#INFO:"
+						.join(',',@current_platforms).":"
+						    .join(',',@current_algorithms).";";
+					# Variant for platforms that have to
+					# access global variables in shared
+					# libraries through functions
+					&$make_variant("$2_it","$2_it",
+						      "EXPORT_VAR_AS_FUNCTION",
+						      "FUNCTION");
+					next;
+				} elsif (/^\s*DECLARE_ASN1_FUNCTIONS\s*\(\s*(\w*)\s*\)/ ||
+					 /^\s*DECLARE_ASN1_FUNCTIONS_const\s*\(\s*(\w*)\s*\)/) {
+					$def .= "int d2i_$1(void);";
+					$def .= "int i2d_$1(void);";
+					$def .= "int $1_free(void);";
+					$def .= "int $1_new(void);";
+					# Variant for platforms that do not
+					# have to access global variables
+					# in shared libraries through functions
+					$def .=
+					    "#INFO:"
+						.join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":"
+						    .join(',',@current_algorithms).";";
+					$def .= "OPENSSL_EXTERN int $1_it;";
+					$def .=
+					    "#INFO:"
+						.join(',',@current_platforms).":"
+						    .join(',',@current_algorithms).";";
+					# Variant for platforms that have to
+					# access global variables in shared
+					# libraries through functions
+					&$make_variant("$1_it","$1_it",
+						      "EXPORT_VAR_AS_FUNCTION",
+						      "FUNCTION");
+					next;
+				} elsif (/^\s*DECLARE_ASN1_ENCODE_FUNCTIONS_const\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) {
+					$def .= "int d2i_$2(void);";
+					$def .= "int i2d_$2(void);";
+					# Variant for platforms that do not
+					# have to access global variables
+					# in shared libraries through functions
+					$def .=
+					    "#INFO:"
+						.join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":"
+						    .join(',',@current_algorithms).";";
+					$def .= "OPENSSL_EXTERN int $2_it;";
+					$def .=
+					    "#INFO:"
+						.join(',',@current_platforms).":"
+						    .join(',',@current_algorithms).";";
+					# Variant for platforms that have to
+					# access global variables in shared
+					# libraries through functions
+					&$make_variant("$2_it","$2_it",
+						      "EXPORT_VAR_AS_FUNCTION",
+						      "FUNCTION");
+					next;
+				} elsif (/^\s*DECLARE_ASN1_ALLOC_FUNCTIONS\s*\(\s*(\w*)\s*\)/) {
+					$def .= "int $1_free(void);";
+					$def .= "int $1_new(void);";
+					next;
+				} elsif (/^\s*DECLARE_ASN1_FUNCTIONS_name\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) {
+					$def .= "int d2i_$2(void);";
+					$def .= "int i2d_$2(void);";
+					$def .= "int $2_free(void);";
+					$def .= "int $2_new(void);";
+					# Variant for platforms that do not
+					# have to access global variables
+					# in shared libraries through functions
+					$def .=
+					    "#INFO:"
+						.join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":"
+						    .join(',',@current_algorithms).";";
+					$def .= "OPENSSL_EXTERN int $2_it;";
+					$def .=
+					    "#INFO:"
+						.join(',',@current_platforms).":"
+						    .join(',',@current_algorithms).";";
+					# Variant for platforms that have to
+					# access global variables in shared
+					# libraries through functions
+					&$make_variant("$2_it","$2_it",
+						      "EXPORT_VAR_AS_FUNCTION",
+						      "FUNCTION");
+					next;
+				} elsif (/^\s*DECLARE_ASN1_ITEM\s*\(\s*(\w*)\s*\)/) {
+					# Variant for platforms that do not
+					# have to access global variables
+					# in shared libraries through functions
+					$def .=
+					    "#INFO:"
+						.join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":"
+						    .join(',',@current_algorithms).";";
+					$def .= "OPENSSL_EXTERN int $1_it;";
+					$def .=
+					    "#INFO:"
+						.join(',',@current_platforms).":"
+						    .join(',',@current_algorithms).";";
+					# Variant for platforms that have to
+					# access global variables in shared
+					# libraries through functions
+					&$make_variant("$1_it","$1_it",
+						      "EXPORT_VAR_AS_FUNCTION",
+						      "FUNCTION");
+					next;
+				} elsif (/^\s*DECLARE_ASN1_NDEF_FUNCTION\s*\(\s*(\w*)\s*\)/) {
+					$def .= "int i2d_$1_NDEF(void);";
+				} elsif (/^\s*DECLARE_ASN1_SET_OF\s*\(\s*(\w*)\s*\)/) {
+					next;
+				} elsif (/^\s*DECLARE_ASN1_PRINT_FUNCTION\s*\(\s*(\w*)\s*\)/) {
+					$def .= "int $1_print_ctx(void);";
+					next;
+				} elsif (/^\s*DECLARE_ASN1_PRINT_FUNCTION_name\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) {
+					$def .= "int $2_print_ctx(void);";
+					next;
+				} elsif (/^\s*DECLARE_PKCS12_STACK_OF\s*\(\s*(\w*)\s*\)/) {
+					next;
+				} elsif (/^DECLARE_PEM_rw\s*\(\s*(\w*)\s*,/ ||
+					 /^DECLARE_PEM_rw_cb\s*\(\s*(\w*)\s*,/ ||
+					 /^DECLARE_PEM_rw_const\s*\(\s*(\w*)\s*,/ ) {
+					$def .=
+					    "#INFO:"
+						.join(',',@current_platforms).":"
+						    .join(',',"STDIO",@current_algorithms).";";
+					$def .= "int PEM_read_$1(void);";
+					$def .= "int PEM_write_$1(void);";
+					$def .=
+					    "#INFO:"
+						.join(',',@current_platforms).":"
+						    .join(',',@current_algorithms).";";
+					# Things that are everywhere
+					$def .= "int PEM_read_bio_$1(void);";
+					$def .= "int PEM_write_bio_$1(void);";
+					next;
+				} elsif (/^DECLARE_PEM_write\s*\(\s*(\w*)\s*,/ ||
+					/^DECLARE_PEM_write_const\s*\(\s*(\w*)\s*,/ ||
+					 /^DECLARE_PEM_write_cb\s*\(\s*(\w*)\s*,/ ) {
+					$def .=
+					    "#INFO:"
+						.join(',',@current_platforms).":"
+						    .join(',',"STDIO",@current_algorithms).";";
+					$def .= "int PEM_write_$1(void);";
+					$def .=
+					    "#INFO:"
+						.join(',',@current_platforms).":"
+						    .join(',',@current_algorithms).";";
+					# Things that are everywhere
+					$def .= "int PEM_write_bio_$1(void);";
+					next;
+				} elsif (/^DECLARE_PEM_read\s*\(\s*(\w*)\s*,/ ||
+					 /^DECLARE_PEM_read_cb\s*\(\s*(\w*)\s*,/ ) {
+					$def .=
+					    "#INFO:"
+						.join(',',@current_platforms).":"
+						    .join(',',"STDIO",@current_algorithms).";";
+					$def .= "int PEM_read_$1(void);";
+					$def .=
+					    "#INFO:"
+						.join(',',@current_platforms).":"
+						    .join(',',"STDIO",@current_algorithms).";";
+					# Things that are everywhere
+					$def .= "int PEM_read_bio_$1(void);";
+					next;
+				} elsif (/^OPENSSL_DECLARE_GLOBAL\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) {
+					# Variant for platforms that do not
+					# have to access global variables
+					# in shared libraries through functions
+					$def .=
+					    "#INFO:"
+						.join(',',"!EXPORT_VAR_AS_FUNCTION",@current_platforms).":"
+						    .join(',',@current_algorithms).";";
+					$def .= "OPENSSL_EXTERN int _shadow_$2;";
+					$def .=
+					    "#INFO:"
+						.join(',',@current_platforms).":"
+						    .join(',',@current_algorithms).";";
+					# Variant for platforms that have to
+					# access global variables in shared
+					# libraries through functions
+					&$make_variant("_shadow_$2","_shadow_$2",
+						      "EXPORT_VAR_AS_FUNCTION",
+						      "FUNCTION");
+				} elsif (/^\s*DEPRECATEDIN/) {
+					$parens = count_parens($_);
+					if ($parens == 0) {
+						$def .= do_deprecated($_,
+							\@current_platforms,
+							\@current_algorithms);
+					} else {
+						$stored_multiline = $_;
+						print STDERR "DEBUG: Found multiline DEPRECATEDIN starting with: $stored_multiline\n" if $debug;
+						next;
+					}
+				} elsif ($tag{'CONST_STRICT'} != 1) {
+					if (/\{|\/\*|\([^\)]*$/) {
+						$line = $_;
+					} else {
+						$def .= $_;
+					}
+				}
+			}
+		}
+		close(IN);
+		die "$file: Unmatched tags\n" if $#tag >= 0;
+
+		my $algs;
+		my $plays;
+
+		print STDERR "DEBUG: postprocessing ----------\n" if $debug;
+		foreach (split /;/, $def) {
+			my $s; my $k = "FUNCTION"; my $p; my $a;
+			s/^[\n\s]*//g;
+			s/[\n\s]*$//g;
+			next if(/\#undef/);
+			next if(/typedef\W/);
+			next if(/\#define/);
+
+			print STDERR "TRACE: processing $_\n" if $trace && !/^\#INFO:/;
+			# Reduce argument lists to empty ()
+			# fold round brackets recursively: (t(*v)(t),t) -> (t{}{},t) -> {}
+			my $nsubst = 1; # prevent infinite loop, e.g., on  int fn()
+			while($nsubst && /\(.*\)/s) {
+				$nsubst = s/\([^\(\)]+\)/\{\}/gs;
+				$nsubst+= s/\(\s*\*\s*(\w+)\s*\{\}\s*\)/$1/gs;	#(*f{}) -> f
+			}
+			# pretend as we didn't use curly braces: {} -> ()
+			s/\{\}/\(\)/gs;
+
+			s/STACK_OF\(\)/void/gs;
+			s/LHASH_OF\(\)/void/gs;
+
+			print STDERR "DEBUG: \$_ = \"$_\"\n" if $debug;
+			if (/^\#INFO:([^:]*):(.*)$/) {
+				$plats = $1;
+				$algs = $2;
+				print STDERR "DEBUG: found info on platforms ($plats) and algorithms ($algs)\n" if $debug;
+				next;
+			} elsif (/^\s*OPENSSL_EXTERN\s.*?(\w+(\{[0-9]+\})?)(\[[0-9]*\])*\s*$/) {
+				$s = $1;
+				$k = "VARIABLE";
+				print STDERR "DEBUG: found external variable $s\n" if $debug;
+			} elsif (/TYPEDEF_\w+_OF/s) {
+				next;
+			} elsif (/(\w+)\s*\(\).*/s) {	# first token prior [first] () is
+				$s = $1;		# a function name!
+				print STDERR "DEBUG: found function $s\n" if $debug;
+			} elsif (/\(/ and not (/=/)) {
+				print STDERR "File $file: cannot parse: $_;\n";
+				next;
+			} else {
+				next;
+			}
+
+			$syms{$s} = 1;
+			$kind{$s} = $k;
+
+			$p = $plats;
+			$a = $algs;
+
+			$platform{$s} =
+			    &reduce_platforms((defined($platform{$s})?$platform{$s}.',':"").$p);
+			$algorithm{$s} .= ','.$a;
+
+			if (defined($variant{$s})) {
+				foreach $v (split /;/,$variant{$s}) {
+					(my $r, my $p, my $k) = split(/:/,$v);
+					my $ip = join ',',map({ /^!(.*)$/ ? $1 : "!".$_ } split /,/, $p);
+					$syms{$r} = 1;
+					if (!defined($k)) { $k = $kind{$s}; }
+					$kind{$r} = $k."(".$s.")";
+					$algorithm{$r} = $algorithm{$s};
+					$platform{$r} = &reduce_platforms($platform{$s}.",".$p.",".$p);
+					$platform{$s} = &reduce_platforms($platform{$s}.','.$ip.','.$ip);
+					print STDERR "DEBUG: \$variant{\"$s\"} = ",$v,"; \$r = $r; \$p = ",$platform{$r},"; \$a = ",$algorithm{$r},"; \$kind = ",$kind{$r},"\n" if $debug;
+				}
+			}
+			print STDERR "DEBUG: \$s = $s; \$p = ",$platform{$s},"; \$a = ",$algorithm{$s},"; \$kind = ",$kind{$s},"\n" if $debug;
+		}
+	}
+
+	# Info we know about
+
+	push @ret, map { $_."\\".&info_string($_,"EXIST",
+					      $platform{$_},
+					      $kind{$_},
+					      $algorithm{$_}) } keys %syms;
+
+	if (keys %unknown_algorithms) {
+		print STDERR "WARNING: mkdef.pl doesn't know the following algorithms:\n";
+		print STDERR "\t",join("\n\t",keys %unknown_algorithms),"\n";
+	}
+	return(@ret);
+}
+
+# Param: string of comma-separated platform-specs.
+sub reduce_platforms
+{
+	my ($platforms) = @_;
+	my $pl = defined($platforms) ? $platforms : "";
+	my %p = map { $_ => 0 } split /,/, $pl;
+	my $ret;
+
+	print STDERR "DEBUG: Entered reduce_platforms with \"$platforms\"\n"
+	    if $debug;
+	# We do this, because if there's code like the following, it really
+	# means the function exists in all cases and should therefore be
+	# everywhere.  By increasing and decreasing, we may attain 0:
+	#
+	# ifndef WIN16
+	#    int foo();
+	# else
+	#    int _fat foo();
+	# endif
+	foreach $platform (split /,/, $pl) {
+		if ($platform =~ /^!(.*)$/) {
+			$p{$1}--;
+		} else {
+			$p{$platform}++;
+		}
+	}
+	foreach $platform (keys %p) {
+		if ($p{$platform} == 0) { delete $p{$platform}; }
+	}
+
+	delete $p{""};
+
+	$ret = join(',',sort(map { $p{$_} < 0 ? "!".$_ : $_ } keys %p));
+	print STDERR "DEBUG: Exiting reduce_platforms with \"$ret\"\n"
+	    if $debug;
+	return $ret;
+}
+
+sub info_string
+{
+	(my $symbol, my $exist, my $platforms, my $kind, my $algorithms) = @_;
+
+	my %a = defined($algorithms) ?
+	    map { $_ => 1 } split /,/, $algorithms : ();
+	my $k = defined($kind) ? $kind : "FUNCTION";
+	my $ret;
+	my $p = &reduce_platforms($platforms);
+
+	delete $a{""};
+
+	$ret = $exist;
+	$ret .= ":".$p;
+	$ret .= ":".$k;
+	$ret .= ":".join(',',sort keys %a);
+	return $ret;
+}
+
+sub maybe_add_info
+{
+	(my $name, *nums, my @symbols) = @_;
+	my $sym;
+	my $new_info = 0;
+	my %syms=();
+
+	foreach $sym (@symbols) {
+		(my $s, my $i) = split /\\/, $sym;
+		if (defined($nums{$s})) {
+			$i =~ s/^(.*?:.*?:\w+)(\(\w+\))?/$1/;
+			(my $n, my $vers, my $dummy) = split /\\/, $nums{$s};
+			if (!defined($dummy) || $i ne $dummy) {
+				$nums{$s} = $n."\\".$vers."\\".$i;
+				$new_info++;
+				print STDERR "DEBUG: maybe_add_info for $s: \"$dummy\" => \"$i\"\n" if $debug;
+			}
+		}
+		$syms{$s} = 1;
+	}
+
+	my @s=sort { &parse_number($nums{$a},"n") <=> &parse_number($nums{$b},"n") } keys %nums;
+	foreach $sym (@s) {
+		(my $n, my $vers, my $i) = split /\\/, $nums{$sym};
+		if (!defined($syms{$sym}) && $i !~ /^NOEXIST:/) {
+			$new_info++;
+			print STDERR "DEBUG: maybe_add_info for $sym: -> undefined\n" if $debug;
+		}
+	}
+	if ($new_info) {
+		print STDERR "$name: $new_info old symbols have updated info\n";
+		if (!$do_rewrite) {
+			print STDERR "You should do a rewrite to fix this.\n";
+		}
+	} else {
+	}
+}
+
+# Param: string of comma-separated keywords, each possibly prefixed with a "!"
+sub is_valid
+{
+	my ($keywords_txt,$platforms) = @_;
+	my (@keywords) = split /,/,$keywords_txt;
+	my ($falsesum, $truesum) = (0, 1);
+
+	# Param: one keyword
+	sub recognise
+	{
+		my ($keyword,$platforms) = @_;
+
+		if ($platforms) {
+			# platforms
+			if ($keyword eq "UNIX" && $UNIX) { return 1; }
+			if ($keyword eq "VMS" && $VMS) { return 1; }
+			if ($keyword eq "WIN32" && $W32) { return 1; }
+			if ($keyword eq "_WIN32" && $W32) { return 1; }
+			if ($keyword eq "WINNT" && $NT) { return 1; }
+			# Special platforms:
+			# EXPORT_VAR_AS_FUNCTION means that global variables
+			# will be represented as functions.
+			if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && $W32) {
+				return 1;
+			}
+			if ($keyword eq "ZLIB" && $zlib) { return 1; }
+			return 0;
+		} else {
+			# algorithms
+			if ($disabled_algorithms{$keyword}) { return 0;}
+
+			# Nothing recognise as true
+			return 1;
+		}
+	}
+
+	foreach $k (@keywords) {
+		if ($k =~ /^!(.*)$/) {
+			$falsesum += &recognise($1,$platforms);
+		} else {
+			$truesum *= &recognise($k,$platforms);
+		}
+	}
+	print STDERR "DEBUG: [",$#keywords,",",$#keywords < 0,"] is_valid($keywords_txt) => (\!$falsesum) && $truesum = ",(!$falsesum) && $truesum,"\n" if $debug;
+	return (!$falsesum) && $truesum;
+}
+
+sub print_test_file
+{
+	(*OUT,my $name,*nums,my $testall,my @symbols)=@_;
+	my $n = 1; my @e; my @r;
+	my $sym; my $prev = ""; my $prefSSLeay;
+
+	(@e)=grep(/^SSLeay(\{[0-9]+\})?\\.*?:.*?:.*/,@symbols);
+	(@r)=grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:.*/ && !/^SSLeay(\{[0-9]+\})?\\.*?:.*?:.*/,@symbols);
+	@symbols=((sort @e),(sort @r));
+
+	foreach $sym (@symbols) {
+		(my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/;
+		my $v = 0;
+		$v = 1 if $i=~ /^.*?:.*?:VARIABLE/;
+		my $p = ($i =~ /^[^:]*:([^:]*):/,$1);
+		my $a = ($i =~ /^[^:]*:[^:]*:[^:]*:([^:]*)/,$1);
+		if (!defined($nums{$s})) {
+			print STDERR "Warning: $s does not have a number assigned\n"
+			    if(!$do_update);
+		} elsif (is_valid($p,1) && is_valid($a,0)) {
+			my $s2 = ($s =~ /^(.*?)(\{[0-9]+\})?$/, $1);
+			if ($prev eq $s2) {
+				print OUT "\t/* The following has already appeared previously */\n";
+				print STDERR "Warning: Symbol '",$s2,"' redefined. old=",($nums{$prev} =~ /^(.*?)\\/,$1),", new=",($nums{$s2} =~ /^(.*?)\\/,$1),"\n";
+			}
+			$prev = $s2;	# To warn about duplicates...
+
+			(my $nn, my $vers, my $ni) = split /\\/, $nums{$s2};
+			if ($v) {
+				print OUT "\textern int $s2; /* type unknown */ /* $nn $ni */\n";
+			} else {
+				print OUT "\textern int $s2(); /* type unknown */ /* $nn $ni */\n";
+			}
+		}
+	}
+}
+
+sub get_version
+{
+   return $config{version};
+}
+
+sub print_def_file
+{
+	(*OUT,my $name,*nums,my @symbols)=@_;
+	my $n = 1; my @e; my @r; my @v; my $prev="";
+	my $liboptions="";
+	my $libname = $name;
+	my $http_vendor = 'www.openssl.org/';
+	my $version = get_version();
+	my $what = "OpenSSL: implementation of Secure Socket Layer";
+	my $description = "$what $version, $name - http://$http_vendor";
+	my $prevsymversion = "", $prevprevsymversion = "";
+        # For VMS
+        my $prevnum = 0;
+        my $symvtextcount = 0;
+
+        if ($W32)
+                {
+                print OUT <<"EOF";
+;
+; Definition file for the DLL version of the $name library from OpenSSL
+;
+
+LIBRARY         $libname	$liboptions
+
+EOF
+
+		print "EXPORTS\n";
+                }
+        elsif ($VMS)
+                {
+                print OUT <<"EOF";
+IDENTIFICATION=$version
+CASE_SENSITIVE=YES
+SYMBOL_VECTOR=(-
+EOF
+                $symvtextcount = 16; # length of "SYMBOL_VECTOR=(-"
+                }
+
+	(@r)=grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:FUNCTION/,@symbols);
+	(@v)=grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:VARIABLE/,@symbols);
+        if ($VMS) {
+            # VMS needs to have the symbols on slot number order
+            @symbols=(map { $_->[1] }
+                      sort { $a->[0] <=> $b->[0] }
+                      map { (my $s, my $i) = $_ =~ /^(.*?)\\(.*)$/;
+                            die "Error: $s doesn't have a number assigned\n"
+                                if !defined($nums{$s});
+                            (my $n, my @rest) = split /\\/, $nums{$s};
+                            [ $n, $_ ] } (@e, @r, @v));
+        } else {
+            @symbols=((sort @e),(sort @r), (sort @v));
+        }
+
+	my ($baseversion, $currversion) = get_openssl_version();
+	my $thisversion;
+	do {
+		if (!defined($thisversion)) {
+			$thisversion = $baseversion;
+		} else {
+			$thisversion = get_next_version($thisversion);
+		}
+		foreach $sym (@symbols) {
+			(my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/;
+			my $v = 0;
+			$v = 1 if $i =~ /^.*?:.*?:VARIABLE/;
+			if (!defined($nums{$s})) {
+				die "Error: $s does not have a number assigned\n"
+					if(!$do_update);
+			} else {
+				(my $n, my $symversion, my $dummy) = split /\\/, $nums{$s};
+				my %pf = ();
+				my $p = ($i =~ /^[^:]*:([^:]*):/,$1);
+				my $a = ($i =~ /^[^:]*:[^:]*:[^:]*:([^:]*)/,$1);
+				if (is_valid($p,1) && is_valid($a,0)) {
+					my $s2 = ($s =~ /^(.*?)(\{[0-9]+\})?$/, $1);
+					if ($prev eq $s2) {
+						print STDERR "Warning: Symbol '",$s2,
+							"' redefined. old=",($nums{$prev} =~ /^(.*?)\\/,$1),
+							", new=",($nums{$s2} =~ /^(.*?)\\/,$1),"\n";
+					}
+					$prev = $s2;	# To warn about duplicates...
+					if($linux) {
+						next if $symversion ne $thisversion;
+						if ($symversion ne $prevsymversion) {
+							if ($prevsymversion ne "") {
+								if ($prevprevsymversion ne "") {
+									print OUT "} OPENSSL${SO_VARIANT}_"
+												."$prevprevsymversion;\n\n";
+								} else {
+									print OUT "};\n\n";
+								}
+							}
+							print OUT "OPENSSL${SO_VARIANT}_$symversion {\n    global:\n";
+							$prevprevsymversion = $prevsymversion;
+							$prevsymversion = $symversion;
+						}
+						print OUT "        $s2;\n";
+					} elsif ($aix) {
+						print OUT "$s2\n";
+                                        } elsif ($VMS) {
+                                            while(++$prevnum < $n) {
+                                                my $symline=" ,SPARE -\n  ,SPARE -\n";
+                                                if ($symvtextcount + length($symline) - 2 > 1024) {
+                                                    print OUT ")\nSYMBOL_VECTOR=(-\n";
+                                                    $symvtextcount = 16; # length of "SYMBOL_VECTOR=(-"
+                                                }
+                                                if ($symvtextcount == 16) {
+                                                    # Take away first comma
+                                                    $symline =~ s/,//;
+                                                }
+                                                print OUT $symline;
+                                                $symvtextcount += length($symline) - 2;
+                                            }
+                                            (my $s_uc = $s) =~ tr/a-z/A-Z/;
+                                            my $symtype=
+                                                $v ? "DATA" : "PROCEDURE";
+                                            my $symline=
+                                                ($s_uc ne $s
+                                                 ? " ,$s_uc/$s=$symtype -\n  ,$s=$symtype -\n"
+                                                 : " ,$s=$symtype -\n  ,SPARE -\n");
+                                            if ($symvtextcount + length($symline) - 2 > 1024) {
+                                                print OUT ")\nSYMBOL_VECTOR=(-\n";
+                                                $symvtextcount = 16; # length of "SYMBOL_VECTOR=(-"
+                                            }
+                                            if ($symvtextcount == 16) {
+                                                # Take away first comma
+                                                $symline =~ s/,//;
+                                            }
+                                            print OUT $symline;
+                                            $symvtextcount += length($symline) - 2;
+					} elsif($v) {
+						printf OUT "    %s%-39s DATA\n",
+								($W32)?"":"_",$s2;
+					} else {
+						printf OUT "    %s%s\n",
+								($W32)?"":"_",$s2;
+					}
+				}
+			}
+		}
+	} while ($linux && $thisversion ne $currversion);
+	if ($linux) {
+		if ($prevprevsymversion ne "") {
+			print OUT "    local: *;\n} OPENSSL${SO_VARIANT}_$prevprevsymversion;\n\n";
+		} else {
+			print OUT "    local: *;\n};\n\n";
+		}
+	} elsif ($VMS) {
+            print OUT ")\n";
+            (my $libvmaj, my $libvmin, my $libvedit) =
+                $currversion =~ /^(\d+)_(\d+)_(\d+)[a-z]{0,2}$/;
+            # The reason to multiply the edit number with 100 is to make space
+            # for the possibility that we want to encode the patch letters
+            print OUT "GSMATCH=LEQUAL,",($libvmaj * 100 + $libvmin),",",($libvedit * 100),"\n";
+        }
+	printf OUT "\n";
+}
+
+sub load_numbers
+{
+	my($name)=@_;
+	my(@a,%ret);
+	my $prevversion;
+
+	$max_num = 0;
+	$num_noinfo = 0;
+	$prev = "";
+	$prev_cnt = 0;
+
+	my ($baseversion, $currversion) = get_openssl_version();
+
+	open(IN,"<$name") || die "unable to open $name:$!\n";
+	while (<IN>) {
+		s|\R$||;        # Better chomp
+		s/#.*$//;
+		next if /^\s*$/;
+		@a=split;
+		if (defined $ret{$a[0]}) {
+			# This is actually perfectly OK
+			#print STDERR "Warning: Symbol '",$a[0],"' redefined. old=",$ret{$a[0]},", new=",$a[1],"\n";
+		}
+		if ($max_num > $a[1]) {
+			print STDERR "Warning: Number decreased from ",$max_num," to ",$a[1],"\n";
+		}
+		elsif ($max_num == $a[1]) {
+			# This is actually perfectly OK
+			#print STDERR "Warning: Symbol ",$a[0]," has same number as previous ",$prev,": ",$a[1],"\n";
+			if ($a[0] eq $prev) {
+				$prev_cnt++;
+				$a[0] .= "{$prev_cnt}";
+			}
+		}
+		else {
+			$prev_cnt = 0;
+		}
+		if ($#a < 2) {
+			# Existence will be proven later, in do_defs
+			$ret{$a[0]}=$a[1];
+			$num_noinfo++;
+		} else {
+			#Sanity check the version number
+			if (defined $prevversion) {
+				check_version_lte($prevversion, $a[2]);
+			}
+			check_version_lte($a[2], $currversion);
+			$prevversion = $a[2];
+			$ret{$a[0]}=$a[1]."\\".$a[2]."\\".$a[3]; # \\ is a special marker
+		}
+		$max_num = $a[1] if $a[1] > $max_num;
+		$prev=$a[0];
+	}
+	if ($num_noinfo) {
+		print STDERR "Warning: $num_noinfo symbols were without info." if $verbose || !$do_rewrite;
+		if ($do_rewrite) {
+			printf STDERR "  The rewrite will fix this.\n" if $verbose;
+		} else {
+			printf STDERR "  You should do a rewrite to fix this.\n";
+		}
+	}
+	close(IN);
+	return(%ret);
+}
+
+sub parse_number
+{
+	(my $str, my $what) = @_;
+	(my $n, my $v, my $i) = split(/\\/,$str);
+	if ($what eq "n") {
+		return $n;
+	} else {
+		return $i;
+	}
+}
+
+sub rewrite_numbers
+{
+	(*OUT,$name,*nums,@symbols)=@_;
+	my $thing;
+
+	my @r = grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:\w+\(\w+\)/,@symbols);
+	my $r; my %r; my %rsyms;
+	foreach $r (@r) {
+		(my $s, my $i) = split /\\/, $r;
+		my $a = $1 if $i =~ /^.*?:.*?:\w+\((\w+)\)/;
+		$i =~ s/^(.*?:.*?:\w+)\(\w+\)/$1/;
+		$r{$a} = $s."\\".$i;
+		$rsyms{$s} = 1;
+	}
+
+	my %syms = ();
+	foreach $_ (@symbols) {
+		(my $n, my $i) = split /\\/;
+		$syms{$n} = 1;
+	}
+
+	my @s=sort {
+	    &parse_number($nums{$a},"n") <=> &parse_number($nums{$b},"n")
+	    || $a cmp $b
+	} keys %nums;
+	foreach $sym (@s) {
+		(my $n, my $vers, my $i) = split /\\/, $nums{$sym};
+		next if defined($i) && $i =~ /^.*?:.*?:\w+\(\w+\)/;
+		next if defined($rsyms{$sym});
+		print STDERR "DEBUG: rewrite_numbers for sym = ",$sym,": i = ",$i,", n = ",$n,", rsym{sym} = ",$rsyms{$sym},"syms{sym} = ",$syms{$sym},"\n" if $debug;
+		$i="NOEXIST::FUNCTION:"
+			if !defined($i) || $i eq "" || !defined($syms{$sym});
+		my $s2 = $sym;
+		$s2 =~ s/\{[0-9]+\}$//;
+		printf OUT "%s%-39s %d\t%s\t%s\n","",$s2,$n,$vers,$i;
+		if (exists $r{$sym}) {
+			(my $s, $i) = split /\\/,$r{$sym};
+			my $s2 = $s;
+			$s2 =~ s/\{[0-9]+\}$//;
+			printf OUT "%s%-39s %d\t%s\t%s\n","",$s2,$n,$vers,$i;
+		}
+	}
+}
+
+sub update_numbers
+{
+	(*OUT,$name,*nums,my $start_num, my @symbols)=@_;
+	my $new_syms = 0;
+	my $basevers;
+	my $vers;
+
+	($basevers, $vers) = get_openssl_version();
+
+	my @r = grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:\w+\(\w+\)/,@symbols);
+	my $r; my %r; my %rsyms;
+	foreach $r (@r) {
+		(my $s, my $i) = split /\\/, $r;
+		my $a = $1 if $i =~ /^.*?:.*?:\w+\((\w+)\)/;
+		$i =~ s/^(.*?:.*?:\w+)\(\w+\)/$1/;
+		$r{$a} = $s."\\".$i;
+		$rsyms{$s} = 1;
+	}
+
+	foreach $sym (@symbols) {
+		(my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/;
+		next if $i =~ /^.*?:.*?:\w+\(\w+\)/;
+		next if defined($rsyms{$sym});
+		die "ERROR: Symbol $sym had no info attached to it."
+		    if $i eq "";
+		if (!exists $nums{$s}) {
+			$new_syms++;
+			my $s2 = $s;
+			$s2 =~ s/\{[0-9]+\}$//;
+			printf OUT "%s%-39s %d\t%s\t%s\n","",$s2, ++$start_num,$vers,$i;
+			if (exists $r{$s}) {
+				($s, $i) = split /\\/,$r{$s};
+				$s =~ s/\{[0-9]+\}$//;
+				printf OUT "%s%-39s %d\t%s\t%s\n","",$s, $start_num,$vers,$i;
+			}
+		}
+	}
+	if($new_syms) {
+		print STDERR "$name: Added $new_syms new symbols\n";
+	} else {
+		print STDERR "$name: No new symbols added\n";
+	}
+}
+
+sub check_existing
+{
+	(*nums, my @symbols)=@_;
+	my %existing; my @remaining;
+	@remaining=();
+	foreach $sym (@symbols) {
+		(my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/;
+		$existing{$s}=1;
+	}
+	foreach $sym (keys %nums) {
+		if (!exists $existing{$sym}) {
+			push @remaining, $sym;
+		}
+	}
+	if(@remaining) {
+		print STDERR "The following symbols do not seem to exist:\n";
+		foreach $sym (@remaining) {
+			print STDERR "\t",$sym,"\n";
+		}
+	}
+}
+
+sub count_parens
+{
+	my $line = shift(@_);
+
+	my $open = $line =~ tr/\(//;
+	my $close = $line =~ tr/\)//;
+
+	return $open - $close;
+}
+
+#Parse opensslv.h to get the current version number. Also work out the base
+#version, i.e. the lowest version number that is binary compatible with this
+#version
+sub get_openssl_version()
+{
+	my $fn = catfile($config{sourcedir},"include","openssl","opensslv.h");
+	open (IN, "$fn") || die "Can't open opensslv.h";
+
+	while(<IN>) {
+		if (/OPENSSL_VERSION_TEXT\s+"OpenSSL (\d\.\d\.)(\d[a-z]*)(-| )/) {
+			my $suffix = $2;
+			(my $baseversion = $1) =~ s/\./_/g;
+			close IN;
+			return ($baseversion."0", $baseversion.$suffix);
+		}
+	}
+	die "Can't find OpenSSL version number\n";
+}
+
+#Given an OpenSSL version number, calculate the next version number. If the
+#version number gets to a.b.czz then we go to a.b.(c+1)
+sub get_next_version()
+{
+	my $thisversion = shift;
+
+	my ($base, $letter) = $thisversion =~ /^(\d_\d_\d)([a-z]{0,2})$/;
+
+	if ($letter eq "zz") {
+		my $lastnum = substr($base, -1);
+		return substr($base, 0, length($base)-1).(++$lastnum);
+	}
+	return $base.get_next_letter($letter);
+}
+
+#Given the letters off the end of an OpenSSL version string, calculate what
+#the letters for the next release would be.
+sub get_next_letter()
+{
+	my $thisletter = shift;
+	my $baseletter = "";
+	my $endletter;
+
+	if ($thisletter eq "") {
+		return "a";
+	}
+	if ((length $thisletter) > 1) {
+		($baseletter, $endletter) = $thisletter =~ /([a-z]+)([a-z])/;
+	} else {
+		$endletter = $thisletter;
+	}
+
+	if ($endletter eq "z") {
+		return $thisletter."a";
+	} else {
+		return $baseletter.(++$endletter);
+	}
+}
+
+#Check if a version is less than or equal to the current version. Its a fatal
+#error if not. They must also only differ in letters, or the last number (i.e.
+#the first two numbers must be the same)
+sub check_version_lte()
+{
+	my ($testversion, $currversion) = @_;
+	my $lentv;
+	my $lencv;
+	my $cvbase;
+
+	my ($cvnums) = $currversion =~ /^(\d_\d_\d)[a-z]*$/;
+	my ($tvnums) = $testversion =~ /^(\d_\d_\d)[a-z]*$/;
+
+	#Die if we can't parse the version numbers or they don't look sane
+	die "Invalid version number: $testversion and $currversion\n"
+		if (!defined($cvnums) || !defined($tvnums)
+			|| length($cvnums) != 5
+			|| length($tvnums) != 5);
+
+	#If the base versions (without letters) don't match check they only differ
+	#in the last number
+	if ($cvnums ne $tvnums) {
+		die "Invalid version number: $testversion "
+			."for current version $currversion\n"
+			if (substr($cvnums, 0, 4) ne substr($tvnums, 0, 4));
+		return;
+	}
+	#If we get here then the base version (i.e. the numbers) are the same - they
+	#only differ in the letters
+
+	$lentv = length $testversion;
+	$lencv = length $currversion;
+
+	#If the testversion has more letters than the current version then it must
+	#be later (or malformed)
+	if ($lentv > $lencv) {
+		die "Invalid version number: $testversion "
+			."is greater than $currversion\n";
+	}
+
+	#Get the last letter from the current version
+	my ($cvletter) = $currversion =~ /([a-z])$/;
+	if (defined $cvletter) {
+		($cvbase) = $currversion =~ /(\d_\d_\d[a-z]*)$cvletter$/;
+	} else {
+		$cvbase = $currversion;
+	}
+	die "Unable to parse version number $currversion" if (!defined $cvbase);
+	my $tvbase;
+	my ($tvletter) = $testversion =~ /([a-z])$/;
+	if (defined $tvletter) {
+		($tvbase) = $testversion =~ /(\d_\d_\d[a-z]*)$tvletter$/;
+	} else {
+		$tvbase = $testversion;
+	}
+	die "Unable to parse version number $testversion" if (!defined $tvbase);
+
+	if ($lencv > $lentv) {
+		#If current version has more letters than testversion then testversion
+		#minus the final letter must be a substring of the current version
+		die "Invalid version number $testversion "
+			."is greater than $currversion or is invalid\n"
+			if (index($cvbase, $tvbase) != 0);
+	} else {
+		#If both versions have the same number of letters then they must be
+		#equal up to the last letter, and the last letter in testversion must
+		#be less than or equal to the last letter in current version.
+		die "Invalid version number $testversion "
+			."is greater than $currversion\n"
+			if (($cvbase ne $tvbase) && ($tvletter gt $cvletter));
+	}
+}
+
+sub do_deprecated()
+{
+	my ($decl, $plats, $algs) = @_;
+	$decl =~ /^\s*(DEPRECATEDIN_\d+_\d+_\d+)\s*\((.*)\)\s*$/
+            or die "Bad DEPRECATEDIN: $decl\n";
+	my $info1 .= "#INFO:";
+	$info1 .= join(',', @{$plats}) . ":";
+	my $info2 = $info1;
+	$info1 .= join(',',@{$algs}, $1) . ";";
+	$info2 .= join(',',@{$algs}) . ";";
+	return $info1 . $2 . ";" . $info2;
+}
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/mkdir-p.pl b/ap/lib/libssl/openssl-1.1.1o/util/mkdir-p.pl
new file mode 100755
index 0000000..b02db98
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/mkdir-p.pl
@@ -0,0 +1,45 @@
+#! /usr/bin/env perl
+# Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# On some systems, the -p option to mkdir (= also create any missing parent
+# directories) is not available.
+
+my $arg;
+
+foreach $arg (@ARGV) {
+  $arg =~ tr|\\|/|;
+  &do_mkdir_p($arg);
+}
+
+
+sub do_mkdir_p {
+  local($dir) = @_;
+
+  $dir =~ s|/*\Z(?!\n)||s;
+
+  if (-d $dir) {
+    return;
+  }
+
+  if ($dir =~ m|[^/]/|s) {
+    local($parent) = $dir;
+    $parent =~ s|[^/]*\Z(?!\n)||s;
+
+    do_mkdir_p($parent);
+  }
+
+  unless (mkdir($dir, 0777)) {
+    local($err) = $!;
+    if (-d $dir) {
+      # We raced against another instance doing the same thing.
+      return;
+    }
+    die "Cannot create directory $dir: $err\n";
+  }
+  print "created directory `$dir'\n";
+}
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/mkerr.pl b/ap/lib/libssl/openssl-1.1.1o/util/mkerr.pl
new file mode 100755
index 0000000..df085fb
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/mkerr.pl
@@ -0,0 +1,753 @@
+#! /usr/bin/env perl
+# Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use warnings;
+
+use lib ".";
+use configdata;
+
+my $config       = "crypto/err/openssl.ec";
+my $debug        = 0;
+my $internal     = 0;
+my $nowrite      = 0;
+my $rebuild      = 0;
+my $reindex      = 0;
+my $static       = 0;
+my $unref        = 0;
+my %modules         = ();
+
+my $errors       = 0;
+my @t            = localtime();
+my $YEAR         = $t[5] + 1900;
+
+sub phase
+{
+    my $text = uc(shift);
+    print STDERR "\n---\n$text\n" if $debug;
+}
+
+sub help
+{
+    print STDERR <<"EOF";
+mkerr.pl [options] [files...]
+
+Options:
+
+    -conf FILE  Use the named config file FILE instead of the default.
+
+    -debug      Verbose output debugging on stderr.
+
+    -internal   Generate code that is to be built as part of OpenSSL itself.
+                Also scans internal list of files.
+
+    -module M   Only useful with -internal!
+                Only write files for library module M.  Whether files are
+                actually written or not depends on other options, such as
+                -rebuild.
+                Note: this option is cumulative.  If not given at all, all
+                internal modules will be considered.
+
+    -nowrite    Do not write the header/source files, even if changed.
+
+    -rebuild    Rebuild all header and C source files, even if there
+                were no changes.
+
+    -reindex    Ignore previously assigned values (except for R records in
+                the config file) and renumber everything starting at 100.
+
+    -static     Make the load/unload functions static.
+
+    -unref      List all unreferenced function and reason codes on stderr;
+                implies -nowrite.
+
+    -help       Show this help text.
+
+    ...         Additional arguments are added to the file list to scan,
+                if '-internal' was NOT specified on the command line.
+
+EOF
+}
+
+while ( @ARGV ) {
+    my $arg = $ARGV[0];
+    last unless $arg =~ /-.*/;
+    $arg = $1 if $arg =~ /-(-.*)/;
+    if ( $arg eq "-conf" ) {
+        $config = $ARGV[1];
+        shift @ARGV;
+    } elsif ( $arg eq "-debug" ) {
+        $debug = 1;
+        $unref = 1;
+    } elsif ( $arg eq "-internal" ) {
+        $internal = 1;
+    } elsif ( $arg eq "-nowrite" ) {
+        $nowrite = 1;
+    } elsif ( $arg eq "-rebuild" ) {
+        $rebuild = 1;
+    } elsif ( $arg eq "-reindex" ) {
+        $reindex = 1;
+    } elsif ( $arg eq "-static" ) {
+        $static = 1;
+    } elsif ( $arg eq "-unref" ) {
+        $unref = 1;
+        $nowrite = 1;
+    } elsif ( $arg eq "-module" ) {
+        shift @ARGV;
+        $modules{uc $ARGV[0]} = 1;
+    } elsif ( $arg =~ /-*h(elp)?/ ) {
+        &help();
+        exit;
+    } elsif ( $arg =~ /-.*/ ) {
+        die "Unknown option $arg; use -h for help.\n";
+    }
+    shift @ARGV;
+}
+
+my @source;
+if ( $internal ) {
+    die "Cannot mix -internal and -static\n" if $static;
+    die "Extra parameters given.\n" if @ARGV;
+    @source = ( glob('crypto/*.c'), glob('crypto/*/*.c'),
+                glob('ssl/*.c'), glob('ssl/*/*.c') );
+} else {
+    die "-module isn't useful without -internal\n" if scalar keys %modules > 0;
+    @source = @ARGV;
+}
+
+# Data parsed out of the config and state files.
+my %hinc;       # lib -> header
+my %libinc;     # header -> lib
+my %cskip;      # error_file -> lib
+my %errorfile;  # lib -> error file name
+my %fmax;       # lib -> max assigned function code
+my %rmax;       # lib -> max assigned reason code
+my %fassigned;  # lib -> colon-separated list of assigned function codes
+my %rassigned;  # lib -> colon-separated list of assigned reason codes
+my %fnew;       # lib -> count of new function codes
+my %rnew;       # lib -> count of new reason codes
+my %rextra;     # "extra" reason code -> lib
+my %rcodes;     # reason-name -> value
+my %ftrans;     # old name -> #define-friendly name (all caps)
+my %fcodes;     # function-name -> value
+my $statefile;  # state file with assigned reason and function codes
+my %strings;    # define -> text
+
+# Read and parse the config file
+open(IN, "$config") || die "Can't open config file $config, $!,";
+while ( <IN> ) {
+    next if /^#/ || /^$/;
+    if ( /^L\s+(\S+)\s+(\S+)\s+(\S+)/ ) {
+        my $lib = $1;
+        my $hdr = $2;
+        my $err = $3;
+        $hinc{$lib}   = $hdr;
+        $libinc{$hdr} = $lib;
+        $cskip{$err}  = $lib;
+        next if $err eq 'NONE';
+        $errorfile{$lib} = $err;
+        $fmax{$lib}      = 100;
+        $rmax{$lib}      = 100;
+        $fassigned{$lib} = ":";
+        $rassigned{$lib} = ":";
+        $fnew{$lib}      = 0;
+        $rnew{$lib}      = 0;
+    } elsif ( /^R\s+(\S+)\s+(\S+)/ ) {
+        $rextra{$1} = $2;
+        $rcodes{$1} = $2;
+    } elsif ( /^S\s+(\S+)/ ) {
+        $statefile = $1;
+    } else {
+        die "Illegal config line $_\n";
+    }
+}
+close IN;
+
+if ( ! $statefile ) {
+    $statefile = $config;
+    $statefile =~ s/.ec/.txt/;
+}
+
+# The statefile has all the previous assignments.
+&phase("Reading state");
+my $skippedstate = 0;
+if ( ! $reindex && $statefile ) {
+    open(STATE, "<$statefile") || die "Can't open $statefile, $!";
+
+    # Scan function and reason codes and store them: keep a note of the
+    # maximum code used.
+    while ( <STATE> ) {
+        next if /^#/ || /^$/;
+        my $name;
+        my $code;
+        if ( /^(.+):(\d+):\\$/ ) {
+            $name = $1;
+            $code = $2;
+            my $next = <STATE>;
+            $next =~ s/^\s*(.*)\s*$/$1/;
+            die "Duplicate define $name" if exists $strings{$name};
+            $strings{$name} = $next;
+        } elsif ( /^(\S+):(\d+):(.*)$/ ) {
+            $name = $1;
+            $code = $2;
+            die "Duplicate define $name" if exists $strings{$name};
+            $strings{$name} = $3;
+        } else {
+            die "Bad line in $statefile:\n$_\n";
+        }
+        my $lib = $name;
+        $lib =~ s/^((?:OSSL_|OPENSSL_)?[^_]{2,}).*$/$1/;
+        $lib = "SSL" if $lib =~ /TLS/;
+        if ( !defined $errorfile{$lib} ) {
+            print "Skipping $_";
+            $skippedstate++;
+            next;
+        }
+        if ( $name =~ /^(?:OSSL_|OPENSSL_)?[A-Z0-9]{2,}_R_/ ) {
+            die "$lib reason code $code collision at $name\n"
+                if $rassigned{$lib} =~ /:$code:/;
+            $rassigned{$lib} .= "$code:";
+            if ( !exists $rextra{$name} ) {
+                $rmax{$lib} = $code if $code > $rmax{$lib};
+            }
+            $rcodes{$name} = $code;
+        } elsif ( $name =~ /^(?:OSSL_|OPENSSL_)?[A-Z0-9]{2,}_F_/ ) {
+            die "$lib function code $code collision at $name\n"
+                if $fassigned{$lib} =~ /:$code:/;
+            $fassigned{$lib} .= "$code:";
+            $fmax{$lib} = $code if $code > $fmax{$lib};
+            $fcodes{$name} = $code;
+        } else {
+            die "Bad line in $statefile:\n$_\n";
+        }
+    }
+    close(STATE);
+
+    if ( $debug ) {
+        foreach my $lib ( sort keys %rmax ) {
+            print STDERR "Reason codes for ${lib}:\n";
+            if ( $rassigned{$lib} =~ m/^:(.*):$/ ) {
+                my @rassigned = sort { $a <=> $b } split( ":", $1 );
+                print STDERR "  ", join(' ', @rassigned), "\n";
+            } else {
+                print STDERR "  --none--\n";
+            }
+        }
+        print STDERR "\n";
+        foreach my $lib ( sort keys %fmax ) {
+            print STDERR "Function codes for ${lib}:\n";
+            if ( $fassigned{$lib} =~ m/^:(.*):$/ ) {
+                my @fassigned = sort { $a <=> $b } split( ":", $1 );
+                print STDERR "  ", join(' ', @fassigned), "\n";
+            } else {
+                print STDERR "  --none--\n";
+            }
+        }
+    }
+}
+
+# Scan each header file and make a list of error codes
+# and function names
+&phase("Scanning headers");
+while ( ( my $hdr, my $lib ) = each %libinc ) {
+    next if $hdr eq "NONE";
+    print STDERR " ." if $debug;
+    my $line = "";
+    my $def = "";
+    my $linenr = 0;
+    my $cpp = 0;
+
+    open(IN, "<$hdr") || die "Can't open $hdr, $!,";
+    while ( <IN> ) {
+        $linenr++;
+
+        if ( $line ne '' ) {
+            $_    = $line . $_;
+            $line = '';
+        }
+
+        if ( /\\$/ ) {
+            $line = $_;
+            next;
+        }
+
+        if ( /\/\*/ ) {
+            if ( not /\*\// ) {    # multiline comment...
+                $line = $_;        # ... just accumulate
+                next;
+            } else {
+                s/\/\*.*?\*\///gs;    # wipe it
+            }
+        }
+
+        if ( $cpp ) {
+            $cpp++ if /^#\s*if/;
+            $cpp-- if /^#\s*endif/;
+            next;
+        }
+        $cpp = 1 if /^#.*ifdef.*cplusplus/;    # skip "C" declaration
+
+        next if /^\#/;    # skip preprocessor directives
+
+        s/{[^{}]*}//gs;     # ignore {} blocks
+
+        if ( /\{|\/\*/ ) {    # Add a so editor works...
+            $line = $_;
+        } else {
+            $def .= $_;
+        }
+    }
+
+    # Delete any DECLARE_ macros
+    my $defnr = 0;
+    $def =~ s/DECLARE_\w+\([\w,\s]+\)//gs;
+    foreach ( split /;/, $def ) {
+        $defnr++;
+        # The goal is to collect function names from function declarations.
+
+        s/^[\n\s]*//g;
+        s/[\n\s]*$//g;
+
+        # Skip over recognized non-function declarations
+        next if /typedef\W/ or /DECLARE_STACK_OF/ or /TYPEDEF_.*_OF/;
+
+        # Remove STACK_OF(foo)
+        s/STACK_OF\(\w+\)/void/;
+
+        # Reduce argument lists to empty ()
+        # fold round brackets recursively: (t(*v)(t),t) -> (t{}{},t) -> {}
+        while ( /\(.*\)/s ) {
+            s/\([^\(\)]+\)/\{\}/gs;
+            s/\(\s*\*\s*(\w+)\s*\{\}\s*\)/$1/gs;    #(*f{}) -> f
+        }
+
+        # pretend as we didn't use curly braces: {} -> ()
+        s/\{\}/\(\)/gs;
+
+        # Last token just before the first () is a function name.
+        if ( /(\w+)\s*\(\).*/s ) {
+            my $name = $1;
+            $name =~ tr/[a-z]/[A-Z]/;
+            $ftrans{$name} = $1;
+        } elsif ( /[\(\)]/ and not(/=/) ) {
+            print STDERR "Header $hdr: cannot parse: $_;\n";
+        }
+    }
+
+    next if $reindex;
+
+    if ( $lib eq "SSL" && $rmax{$lib} >= 1000 ) {
+        print STDERR "SSL error codes 1000+ are reserved for alerts.\n";
+        print STDERR "Any new alerts must be added to $config.\n";
+        $errors++;
+    }
+    close IN;
+}
+print STDERR "\n" if $debug;
+
+# Scan each C source file and look for function and reason codes
+# This is done by looking for strings that "look like" function or
+# reason codes: basically anything consisting of all upper case and
+# numerics which has _F_ or _R_ in it and which has the name of an
+# error library at the start.  This seems to work fine except for the
+# oddly named structure BIO_F_CTX which needs to be ignored.
+# If a code doesn't exist in list compiled from headers then mark it
+# with the value "X" as a place holder to give it a value later.
+# Store all function and reason codes found in %usedfuncs and %usedreasons
+# so all those unreferenced can be printed out.
+&phase("Scanning source");
+my %usedfuncs;
+my %usedreasons;
+foreach my $file ( @source ) {
+    # Don't parse the error source file.
+    next if exists $cskip{$file};
+    open( IN, "<$file" ) || die "Can't open $file, $!,";
+    my $func;
+    my $linenr = 0;
+    print STDERR "$file:\n" if $debug;
+    while ( <IN> ) {
+
+        # skip obsoleted source files entirely!
+        last if /^#error\s+obsolete/;
+        $linenr++;
+        if ( !/;$/ && /^\**([a-zA-Z_].*[\s*])?([A-Za-z_0-9]+)\(.*([),]|$)/ ) {
+            /^([^()]*(\([^()]*\)[^()]*)*)\(/;
+            $1 =~ /([A-Za-z_0-9]*)$/;
+            $func = $1;
+        }
+
+        if ( /(((?:OSSL_|OPENSSL_)?[A-Z0-9]{2,})_F_([A-Z0-9_]+))/ ) {
+            next unless exists $errorfile{$2};
+            next if $1 eq "BIO_F_BUFFER_CTX";
+            $usedfuncs{$1} = 1;
+            if ( !exists $fcodes{$1} ) {
+                print STDERR "  New function $1\n" if $debug;
+                $fcodes{$1} = "X";
+                $fnew{$2}++;
+            }
+            $ftrans{$3} = $func unless exists $ftrans{$3};
+            if ( uc($func) ne $3 ) {
+                print STDERR "ERROR: mismatch $file:$linenr $func:$3\n";
+                $errors++;
+            }
+            print STDERR "  Function $1 = $fcodes{$1}\n"
+              if $debug;
+        }
+        if ( /(((?:OSSL_|OPENSSL_)?[A-Z0-9]{2,})_R_[A-Z0-9_]+)/ ) {
+            next unless exists $errorfile{$2};
+            $usedreasons{$1} = 1;
+            if ( !exists $rcodes{$1} ) {
+                print STDERR "  New reason $1\n" if $debug;
+                $rcodes{$1} = "X";
+                $rnew{$2}++;
+            }
+            print STDERR "  Reason $1 = $rcodes{$1}\n" if $debug;
+        }
+    }
+    close IN;
+}
+print STDERR "\n" if $debug;
+
+# Now process each library in turn.
+&phase("Writing files");
+my $newstate = 0;
+foreach my $lib ( keys %errorfile ) {
+    next if ! $fnew{$lib} && ! $rnew{$lib} && ! $rebuild;
+    next if scalar keys %modules > 0 && !$modules{$lib};
+    next if $nowrite;
+    print STDERR "$lib: $fnew{$lib} new functions\n" if $fnew{$lib};
+    print STDERR "$lib: $rnew{$lib} new reasons\n" if $rnew{$lib};
+    $newstate = 1;
+
+    # If we get here then we have some new error codes so we
+    # need to rebuild the header file and C file.
+
+    # Make a sorted list of error and reason codes for later use.
+    my @function = sort grep( /^${lib}_/, keys %fcodes );
+    my @reasons  = sort grep( /^${lib}_/, keys %rcodes );
+
+    # indent level for innermost preprocessor lines
+    my $indent = " ";
+
+    # Rewrite the header file
+
+    my $hfile = $hinc{$lib};
+    $hfile =~ s/.h$/err.h/ if $internal;
+    open( OUT, ">$hfile" ) || die "Can't write to $hfile, $!,";
+    print OUT <<"EOF";
+/*
+ * Generated by util/mkerr.pl DO NOT EDIT
+ * Copyright 1995-$YEAR The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the \"License\").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#ifndef HEADER_${lib}ERR_H
+# define HEADER_${lib}ERR_H
+
+# include <openssl/symhacks.h>
+
+EOF
+    if ( $internal ) {
+        # Declare the load function because the generate C file
+        # includes "fooerr.h" not "foo.h"
+        if ($lib ne "SSL" && $lib ne "ASYNC"
+                && grep { $lib eq uc $_ } @disablables) {
+            print OUT <<"EOF";
+# include <openssl/opensslconf.h>
+
+# ifndef OPENSSL_NO_${lib}
+
+EOF
+            $indent = "  ";
+        }
+        print OUT <<"EOF";
+#${indent}ifdef  __cplusplus
+extern \"C\"
+#${indent}endif
+int ERR_load_${lib}_strings(void);
+EOF
+    } else {
+        print OUT <<"EOF";
+# define ${lib}err(f, r) ERR_${lib}_error((f), (r), OPENSSL_FILE, OPENSSL_LINE)
+
+EOF
+        if ( ! $static ) {
+            print OUT <<"EOF";
+
+# ifdef  __cplusplus
+extern \"C\" {
+# endif
+int ERR_load_${lib}_strings(void);
+void ERR_unload_${lib}_strings(void);
+void ERR_${lib}_error(int function, int reason, char *file, int line);
+# ifdef  __cplusplus
+}
+# endif
+EOF
+        }
+    }
+
+    print OUT "\n/*\n * $lib function codes.\n */\n";
+    foreach my $i ( @function ) {
+        my $z = 48 - length($i);
+        $z = 0 if $z < 0;
+        if ( $fcodes{$i} eq "X" ) {
+            $fassigned{$lib} =~ m/^:([^:]*):/;
+            my $findcode = $1;
+            $findcode = $fmax{$lib} if !defined $findcode;
+            while ( $fassigned{$lib} =~ m/:$findcode:/ ) {
+                $findcode++;
+            }
+            $fcodes{$i} = $findcode;
+            $fassigned{$lib} .= "$findcode:";
+            print STDERR "New Function code $i\n" if $debug;
+        }
+        printf OUT "#${indent}define $i%s $fcodes{$i}\n", " " x $z;
+    }
+
+    print OUT "\n/*\n * $lib reason codes.\n */\n";
+    foreach my $i ( @reasons ) {
+        my $z = 48 - length($i);
+        $z = 0 if $z < 0;
+        if ( $rcodes{$i} eq "X" ) {
+            $rassigned{$lib} =~ m/^:([^:]*):/;
+            my $findcode = $1;
+            $findcode = $rmax{$lib} if !defined $findcode;
+            while ( $rassigned{$lib} =~ m/:$findcode:/ ) {
+                $findcode++;
+            }
+            $rcodes{$i} = $findcode;
+            $rassigned{$lib} .= "$findcode:";
+            print STDERR "New Reason code $i\n" if $debug;
+        }
+        printf OUT "#${indent}define $i%s $rcodes{$i}\n", " " x $z;
+    }
+    print OUT "\n";
+
+    while (length($indent) > 0) {
+        $indent = substr $indent, 0, -1;
+        print OUT "#${indent}endif\n";
+    }
+
+    # Rewrite the C source file containing the error details.
+
+    # First, read any existing reason string definitions:
+    my $cfile = $errorfile{$lib};
+    my $pack_lib = $internal ? "ERR_LIB_${lib}" : "0";
+    my $hincf = $hfile;
+    $hincf =~ s|.*include/||;
+    if ( $hincf =~ m|^openssl/| ) {
+        $hincf = "<${hincf}>";
+    } else {
+        $hincf = "\"${hincf}\"";
+    }
+
+    open( OUT, ">$cfile" )
+        || die "Can't open $cfile for writing, $!, stopped";
+
+    my $const = $internal ? 'const ' : '';
+
+    print OUT <<"EOF";
+/*
+ * Generated by util/mkerr.pl DO NOT EDIT
+ * Copyright 1995-$YEAR The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <openssl/err.h>
+#include $hincf
+
+#ifndef OPENSSL_NO_ERR
+
+static ${const}ERR_STRING_DATA ${lib}_str_functs[] = {
+EOF
+
+    # Add each function code: if a function name is found then use it.
+    foreach my $i ( @function ) {
+        my $fn;
+        if ( exists $strings{$i} and $strings{$i} ne '' ) {
+            $fn = $strings{$i};
+            $fn = "" if $fn eq '*';
+        } else {
+            $i =~ /^${lib}_F_(\S+)$/;
+            $fn = $1;
+            $fn = $ftrans{$fn} if exists $ftrans{$fn};
+            $strings{$i} = $fn;
+        }
+        my $short = "    {ERR_PACK($pack_lib, $i, 0), \"$fn\"},";
+        if ( length($short) <= 80 ) {
+            print OUT "$short\n";
+        } else {
+            print OUT "    {ERR_PACK($pack_lib, $i, 0),\n     \"$fn\"},\n";
+        }
+    }
+    print OUT <<"EOF";
+    {0, NULL}
+};
+
+static ${const}ERR_STRING_DATA ${lib}_str_reasons[] = {
+EOF
+
+    # Add each reason code.
+    foreach my $i ( @reasons ) {
+        my $rn;
+        if ( exists $strings{$i} ) {
+            $rn = $strings{$i};
+            $rn = "" if $rn eq '*';
+        } else {
+            $i =~ /^${lib}_R_(\S+)$/;
+            $rn = $1;
+            $rn =~ tr/_[A-Z]/ [a-z]/;
+            $strings{$i} = $rn;
+        }
+        my $short = "    {ERR_PACK($pack_lib, 0, $i), \"$rn\"},";
+        if ( length($short) <= 80 ) {
+            print OUT "$short\n";
+        } else {
+            print OUT "    {ERR_PACK($pack_lib, 0, $i),\n    \"$rn\"},\n";
+        }
+    }
+    print OUT <<"EOF";
+    {0, NULL}
+};
+
+#endif
+EOF
+    if ( $internal ) {
+        print OUT <<"EOF";
+
+int ERR_load_${lib}_strings(void)
+{
+#ifndef OPENSSL_NO_ERR
+    if (ERR_func_error_string(${lib}_str_functs[0].error) == NULL) {
+        ERR_load_strings_const(${lib}_str_functs);
+        ERR_load_strings_const(${lib}_str_reasons);
+    }
+#endif
+    return 1;
+}
+EOF
+    } else {
+        my $st = $static ? "static " : "";
+        print OUT <<"EOF";
+
+static int lib_code = 0;
+static int error_loaded = 0;
+
+${st}int ERR_load_${lib}_strings(void)
+{
+    if (lib_code == 0)
+        lib_code = ERR_get_next_error_library();
+
+    if (!error_loaded) {
+#ifndef OPENSSL_NO_ERR
+        ERR_load_strings(lib_code, ${lib}_str_functs);
+        ERR_load_strings(lib_code, ${lib}_str_reasons);
+#endif
+        error_loaded = 1;
+    }
+    return 1;
+}
+
+${st}void ERR_unload_${lib}_strings(void)
+{
+    if (error_loaded) {
+#ifndef OPENSSL_NO_ERR
+        ERR_unload_strings(lib_code, ${lib}_str_functs);
+        ERR_unload_strings(lib_code, ${lib}_str_reasons);
+#endif
+        error_loaded = 0;
+    }
+}
+
+${st}void ERR_${lib}_error(int function, int reason, char *file, int line)
+{
+    if (lib_code == 0)
+        lib_code = ERR_get_next_error_library();
+    ERR_PUT_error(lib_code, function, reason, file, line);
+}
+EOF
+
+    }
+
+    close OUT;
+}
+
+&phase("Ending");
+# Make a list of unreferenced function and reason codes
+if ( $unref ) {
+    my @funref;
+    foreach ( keys %fcodes ) {
+        push( @funref, $_ ) unless exists $usedfuncs{$_};
+    }
+    my @runref;
+    foreach ( keys %rcodes ) {
+        push( @runref, $_ ) unless exists $usedreasons{$_};
+    }
+    if ( @funref ) {
+        print STDERR "The following function codes were not referenced:\n";
+        foreach ( sort @funref ) {
+            print STDERR "  $_\n";
+        }
+    }
+    if ( @runref ) {
+        print STDERR "The following reason codes were not referenced:\n";
+        foreach ( sort @runref ) {
+            print STDERR "  $_\n";
+        }
+    }
+}
+
+die "Found $errors errors, quitting" if $errors;
+
+# Update the state file
+if ( $newstate )  {
+    open(OUT, ">$statefile.new")
+        || die "Can't write $statefile.new, $!";
+    print OUT <<"EOF";
+# Copyright 1999-$YEAR The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+EOF
+    print OUT "\n# Function codes\n";
+    foreach my $i ( sort keys %fcodes ) {
+        my $short = "$i:$fcodes{$i}:";
+        my $t = exists $strings{$i} ? $strings{$i} : "";
+        $t = "\\\n\t" . $t if length($short) + length($t) > 80;
+        print OUT "$short$t\n";
+    }
+    print OUT "\n#Reason codes\n";
+    foreach my $i ( sort keys %rcodes ) {
+        my $short = "$i:$rcodes{$i}:";
+        my $t = exists $strings{$i} ? "$strings{$i}" : "";
+        $t = "\\\n\t" . $t if length($short) + length($t) > 80;
+        print OUT "$short$t\n" if !exists $rextra{$i};
+    }
+    close(OUT);
+    if ( $skippedstate ) {
+        print "Skipped state, leaving update in $statefile.new";
+    } else {
+        rename "$statefile", "$statefile.old"
+            || die "Can't backup $statefile to $statefile.old, $!";
+        rename "$statefile.new", "$statefile"
+            || die "Can't rename $statefile to $statefile.new, $!";
+    }
+}
+
+exit;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/mkrc.pl b/ap/lib/libssl/openssl-1.1.1o/util/mkrc.pl
new file mode 100755
index 0000000..18bde4d
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/mkrc.pl
@@ -0,0 +1,93 @@
+#! /usr/bin/env perl
+# Copyright 2006-2020 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use warnings;
+use lib ".";
+use configdata;
+use File::Spec::Functions;
+
+my $versionfile = catfile( $config{sourcedir}, "include/openssl/opensslv.h" );
+
+my ( $ver, $v1, $v2, $v3, $v4, $beta, $version );
+
+open FD, $versionfile or die "Couldn't open include/openssl/opensslv.h: $!\n";
+while (<FD>) {
+    if (/OPENSSL_VERSION_NUMBER\s+(0x[0-9a-f]+)/i) {
+        $ver     = hex($1);
+        $v1      = ( $ver >> 28 );
+        $v2      = ( $ver >> 20 ) & 0xff;
+        $v3      = ( $ver >> 12 ) & 0xff;
+        $v4      = ( $ver >>  4 ) & 0xff;
+        $beta    = $ver & 0xf;
+        $version = "$v1.$v2.$v3";
+        if ( $beta == 0xf ) {
+            $version .= chr( ord('a') + $v4 - 1 ) if ($v4);
+        } elsif ( $beta == 0 ) {
+            $version .= "-dev";
+        } else {
+            $version .= "-beta$beta";
+        }
+        last;
+    }
+}
+close(FD);
+
+my $filename = $ARGV[0];
+my $description = "OpenSSL library";
+my $vft = "VFT_DLL";
+if ( $filename =~ /openssl/i ) {
+    $description = "OpenSSL application";
+    $vft = "VFT_APP";
+}
+
+my $YEAR = [gmtime($ENV{SOURCE_DATE_EPOCH} || time())]->[5] + 1900;
+print <<___;
+#include <winver.h>
+
+LANGUAGE 0x09,0x01
+
+1 VERSIONINFO
+  FILEVERSION $v1,$v2,$v3,$v4
+  PRODUCTVERSION $v1,$v2,$v3,$v4
+  FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+  FILEFLAGS 0x01L
+#else
+  FILEFLAGS 0x00L
+#endif
+  FILEOS VOS__WINDOWS32
+  FILETYPE $vft
+  FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904b0"
+        BEGIN
+            // Required:
+            VALUE "CompanyName", "The OpenSSL Project, https://www.openssl.org/\\0"
+            VALUE "FileDescription", "$description\\0"
+            VALUE "FileVersion", "$version\\0"
+            VALUE "InternalName", "$filename\\0"
+            VALUE "OriginalFilename", "$filename\\0"
+            VALUE "ProductName", "The OpenSSL Toolkit\\0"
+            VALUE "ProductVersion", "$version\\0"
+            // Optional:
+            //VALUE "Comments", "\\0"
+            VALUE "LegalCopyright", "Copyright 1998-$YEAR The OpenSSL Authors. All rights reserved.\\0"
+            //VALUE "LegalTrademarks", "\\0"
+            //VALUE "PrivateBuild", "\\0"
+            //VALUE "SpecialBuild", "\\0"
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x409, 0x4b0
+    END
+END
+___
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/openssl-format-source b/ap/lib/libssl/openssl-1.1.1o/util/openssl-format-source
new file mode 100755
index 0000000..e399644
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/openssl-format-source
@@ -0,0 +1,175 @@
+#!/bin/sh
+#
+# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+#
+# openssl-format-source
+# - format source tree according to OpenSSL coding style using indent
+#
+# usage:
+#   openssl-format-source [-v] [-n] [file|directory] ...
+#
+# note: the indent options assume GNU indent v2.2.10 which was released
+#       Feb-2009 so if you have an older indent the options may not
+#	match what is expected
+#
+# any marked block comment blocks have to be moved to align manually after
+# the reformatting has been completed as marking a block causes indent to
+# not move it at all ...
+#
+
+PATH=/usr/local/bin:/bin:/usr/bin:$PATH
+export PATH
+HERE="`dirname $0`"
+
+set -e
+
+INDENT=indent
+uname -s | grep BSD > /dev/null && type gindent > /dev/null 2>&1 && INDENT=gindent
+
+if [ $# -eq 0 ]; then
+  echo "usage: $0 [-v] [-n] [-c] [sourcefile|sourcedir] ..." >&2
+  exit 1
+fi
+
+VERBOSE=false
+DONT=false
+STOPARGS=false
+COMMENTS=false
+CHANGED=false
+DEBUG=""
+
+# for this exercise, we want to force the openssl style, so we roll
+# our own indent profile, which is at a well known location
+INDENT_PROFILE="$HERE/indent.pro"
+export INDENT_PROFILE
+if [ ! -f "$INDENT_PROFILE" ]; then
+  echo "$0: unable to locate the openssl indent.pro file" >&2
+  exit 1
+fi
+
+# Extra arguments; for adding the comment-formatting
+INDENT_ARGS=""
+for i
+do
+  if [ "$STOPARGS" != "true" ]; then
+    case $i in
+      --) STOPARGS="true"; continue;;
+      -n) DONT="true"; continue;;
+      -v) VERBOSE="true";
+	  echo "INDENT_PROFILE=$INDENT_PROFILE";
+	  continue;;
+      -c) COMMENTS="true";
+      	  INDENT_ARGS="-fc1 -fca -cdb -sc";
+	  continue;;
+      -nc) COMMENTS="true";
+	  continue;;
+      -d) DEBUG='eval tee "$j.pre" |'
+	  continue;;
+    esac
+  fi
+
+  if [ -d "$i" ]; then
+    LIST=`find "$i" -name '*.[ch]' -print`
+  else
+    if [ ! -f "$i" ]; then
+      echo "$0: source file not found: $i" >&2
+      exit 1
+    fi
+    LIST="$i"
+  fi
+
+  for j in $LIST
+  do
+    # ignore symlinks - we only ever process the base file - so if we
+    # expand a directory tree we need to ignore any located symlinks
+    if [ -d "$i" ]; then
+      if [ -h "$j" ]; then
+	continue;
+      fi
+    fi
+
+    if [ "$DONT" = "false" ]; then
+      tmp=$(mktemp /tmp/indent.XXXXXX)
+      trap 'rm -f "$tmp"' HUP INT TERM EXIT
+
+      case `basename $j` in
+	# the list of files that indent is unable to handle correctly
+	# that we simply leave alone for manual formatting now
+	obj_dat.h|aes_core.c|aes_x86core.c|ecp_nistz256.c)
+	  echo "skipping $j"
+	  ;;
+	*)
+	  if [ "$COMMENTS" = "true" ]; then
+	    # we have to mark single line comments as /*- ...*/ to stop indent
+	    # messing with them, run expand then indent as usual but with the
+	    # the process-comments options and then undo that marking, and then
+	    # finally re-run indent without process-comments so the marked-to-
+	    # be-ignored comments we did automatically end up getting moved
+	    # into the right position within the code as indent leaves marked
+	    # comments entirely untouched - we appear to have no way to avoid
+	    # the double processing and get the desired output
+	    cat "$j" | \
+	    expand | \
+	    perl -0 -np \
+	      -e 's/(\n#[ \t]*ifdef[ \t]+__cplusplus\n[^\n]*\n#[ \t]*endif\n)/\n\/**INDENT-OFF**\/$1\/**INDENT-ON**\/\n/g;' \
+	      -e 's/(\n\/\*\!)/\n\/**/g;' \
+	      -e 's/(STACK_OF|LHASH_OF)\(([^ \t,\)]+)\)( |\n)/$1_$2_$3/g;' \
+	      | \
+	    perl -np \
+	      -e 's/^([ \t]*)\/\*([ \t]+.*)\*\/[ \t]*$/my ($x1,$x2) = ($1, $2); if (length("$x1$x2")<75 && $x2 !~ m#^\s*\*INDENT-(ON|OFF)\*\s*$#) {$c="-"}else{$c=""}; "$x1\/*$c$x2*\/"/e;' \
+	      -e 's/^\/\* ((Copyright|=|----).*)$/\/*-$1/;' \
+	      -e 's/^((DECLARE|IMPLEMENT)_.*)$/\/**INDENT-OFF**\/\n$1\n\/**INDENT-ON**\//;' \
+	      -e 's/^([ \t]*(make_dh|make_dh_bn|make_rfc5114_td)\(.*\)[ \t,]*)$/\/**INDENT-OFF**\/\n$1\n\/**INDENT-ON**\//;' \
+	      -e 's/^(ASN1_ADB_TEMPLATE\(.*)$/\/**INDENT-OFF**\/\n$1\n\/**INDENT-ON**\//;' \
+	      -e 's/^((ASN1|ADB)_.*_(end|END)\(.*[\){=,;]+[ \t]*)$/$1\n\/**INDENT-ON**\//;' \
+	      -e '/ASN1_(ITEM_ref|ITEM_ptr|ITEM_rptr|PCTX)/ || s/^((ASN1|ADB)_[^\*]*[){=,]+[ \t]*)$/\/**INDENT-OFF**\/\n$1/;' \
+	      -e 's/^(} (ASN1|ADB)_[^\*]*[\){=,;]+)$/$1\n\/**INDENT-ON**\//;' \
+	      | \
+	      $DEBUG $INDENT $INDENT_ARGS | \
+	      perl -np \
+		-e 's/^([ \t]*)\/\*-(.*)\*\/[ \t]*$/$1\/*$2*\//;' \
+		-e 's/^\/\*-((Copyright|=|----).*)$/\/* $1/;' \
+	      | $INDENT | \
+	      perl -0 -np \
+		-e 's/\/\*\*INDENT-(ON|OFF)\*\*\/\n//g;' \
+	      | perl -np \
+	        -e 's/(STACK_OF|LHASH_OF)_([^ \t,]+)_( |\/)/$1($2)$3/g;' \
+	        -e 's/(STACK_OF|LHASH_OF)_([^ \t,]+)_$/$1($2)/g;' \
+	      | perl "$HERE"/su-filter.pl \
+	      > "$tmp"
+	  else
+	    expand "$j" | $INDENT $INDENT_ARGS > "$tmp"
+	  fi;
+	  if cmp -s "$tmp" "$j"; then
+	    if [ "$VERBOSE" = "true" ]; then
+	      echo "$j unchanged"
+	    fi
+	    rm "$tmp"
+	  else
+	    if [ "$VERBOSE" = "true" ]; then
+	      echo "$j changed"
+	    fi
+	    CHANGED=true
+	    mv "$tmp" "$j"
+	  fi
+	  ;;
+      esac
+    fi
+  done
+done
+
+
+if [ "$VERBOSE" = "true" ]; then
+  echo
+  if [ "$CHANGED" = "true" ]; then
+    echo "SOURCE WAS MODIFIED"
+  else
+    echo "SOURCE WAS NOT MODIFIED"
+  fi
+fi
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/openssl-update-copyright b/ap/lib/libssl/openssl-1.1.1o/util/openssl-update-copyright
new file mode 100755
index 0000000..c432f84
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/openssl-update-copyright
@@ -0,0 +1,63 @@
+#!/usr/bin/env bash
+#
+# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+myname="$(basename $0)"
+
+this_year="$(date '+%Y')"
+some_year="[12][0-9][0-9][0-9]"
+year_range="(${some_year})(-${some_year})?"
+
+copyright_owner="The OpenSSL Project"
+copyright="Copyright .*${year_range} .*${copyright_owner}"
+
+# sed_script:
+#   for all lines that contain ${copyright} : {
+#     replace years yyyy-zzzz (or year yyyy) by yyyy-${this_year}
+#     replace repeated years yyyy-yyyy by yyyy
+#   }
+sed_script="/${copyright}/{ s/${year_range}/\1-${this_year}/ ; s/(${some_year})-\1/\1/ }"
+
+function usage() {
+	cat >&2 <<EOF
+usage: $myname [-h|--help] [file|directory] ...
+
+Updates the year ranges of all OpenSSL copyright statements in the given
+files or directories. (Directories are traversed recursively.)
+EOF
+}
+
+if [ $# -eq 0 ]; then
+	usage
+	exit 0
+fi
+
+
+for arg in "$@"; do
+	case $arg in
+		-h|--help)
+			usage
+			exit 0
+			;;
+		-*)
+			echo -e "illegal option: $arg\n" >& 2
+			usage
+			exit 1
+			;;
+		*)
+			if [ -f "$arg" ]; then
+				sed -E -i "${sed_script}" "$arg"
+			elif [ -d "$arg" ]; then
+				find "$arg" -name '.[a-z]*' -prune -o -type f -exec sed -E -i "${sed_script}" {} +
+			else
+				echo "$arg: no such file or directory" >&2
+			fi
+			;;
+	esac
+done
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/opensslwrap.sh b/ap/lib/libssl/openssl-1.1.1o/util/opensslwrap.sh
new file mode 100755
index 0000000..b27cbb8
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/opensslwrap.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+HERE="`echo $0 | sed -e 's|[^/]*$||'`"
+OPENSSL="${HERE}../apps/openssl"
+
+if [ -d "${HERE}../engines" -a "x$OPENSSL_ENGINES" = "x" ]; then
+	OPENSSL_ENGINES="${HERE}../engines"; export OPENSSL_ENGINES
+fi
+
+if [ -x "${OPENSSL}.exe" ]; then
+	# The original reason for this script existence is to work around
+	# certain caveats in run-time linker behaviour. On Windows platforms
+	# adjusting $PATH used to be sufficient, but with introduction of
+	# SafeDllSearchMode in XP/2003 the only way to get it right in
+	# *all* possible situations is to copy newly built .DLLs to apps/
+	# and test/, which is now done elsewhere... The $PATH is adjusted
+	# for backward compatibility (and nostagical reasons:-).
+	if [ "$OSTYPE" != msdosdjgpp ]; then
+		PATH="${HERE}..:$PATH"; export PATH
+	fi
+	exec "${OPENSSL}.exe" "$@"
+elif [ -x "${OPENSSL}" -a -x "${HERE}shlib_wrap.sh" ]; then
+	exec "${HERE}shlib_wrap.sh" "${OPENSSL}" "$@"
+else
+	exec "${OPENSSL}" "$@"	# hope for the best...
+fi
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/Glob.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/Glob.pm
new file mode 100644
index 0000000..ec87da4
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/Glob.pm
@@ -0,0 +1,21 @@
+package OpenSSL::Glob;
+
+use strict;
+use warnings;
+
+use File::Glob;
+
+use Exporter;
+use vars qw($VERSION @ISA @EXPORT);
+
+$VERSION = '0.1';
+@ISA = qw(Exporter);
+@EXPORT = qw(glob);
+
+sub glob {
+    goto &File::Glob::bsd_glob if $^O ne "VMS";
+    goto &CORE::glob;
+}
+
+1;
+__END__
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/Test.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/Test.pm
new file mode 100644
index 0000000..0df6ad0
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/Test.pm
@@ -0,0 +1,1217 @@
+# Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+package OpenSSL::Test;
+
+use strict;
+use warnings;
+
+use Test::More 0.96;
+
+use Exporter;
+use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
+$VERSION = "0.8";
+@ISA = qw(Exporter);
+@EXPORT = (@Test::More::EXPORT, qw(setup run indir cmd app fuzz test
+                                   perlapp perltest subtest));
+@EXPORT_OK = (@Test::More::EXPORT_OK, qw(bldtop_dir bldtop_file
+                                         srctop_dir srctop_file
+                                         data_file data_dir
+                                         pipe with cmdstr quotify
+                                         openssl_versions));
+
+=head1 NAME
+
+OpenSSL::Test - a private extension of Test::More
+
+=head1 SYNOPSIS
+
+  use OpenSSL::Test;
+
+  setup("my_test_name");
+
+  ok(run(app(["openssl", "version"])), "check for openssl presence");
+
+  indir "subdir" => sub {
+    ok(run(test(["sometest", "arg1"], stdout => "foo.txt")),
+       "run sometest with output to foo.txt");
+  };
+
+=head1 DESCRIPTION
+
+This module is a private extension of L<Test::More> for testing OpenSSL.
+In addition to the Test::More functions, it also provides functions that
+easily find the diverse programs within a OpenSSL build tree, as well as
+some other useful functions.
+
+This module I<depends> on the environment variables C<$TOP> or C<$SRCTOP>
+and C<$BLDTOP>.  Without one of the combinations it refuses to work.
+See L</ENVIRONMENT> below.
+
+With each test recipe, a parallel data directory with (almost) the same name
+as the recipe is possible in the source directory tree.  For example, for a
+recipe C<$SRCTOP/test/recipes/99-foo.t>, there could be a directory
+C<$SRCTOP/test/recipes/99-foo_data/>.
+
+=cut
+
+use File::Copy;
+use File::Spec::Functions qw/file_name_is_absolute curdir canonpath splitdir
+                             catdir catfile splitpath catpath devnull abs2rel
+                             rel2abs/;
+use File::Path 2.00 qw/rmtree mkpath/;
+use File::Basename;
+use Cwd qw/getcwd abs_path/;
+
+my $level = 0;
+
+# The name of the test.  This is set by setup() and is used in the other
+# functions to verify that setup() has been used.
+my $test_name = undef;
+
+# Directories we want to keep track of TOP, APPS, TEST and RESULTS are the
+# ones we're interested in, corresponding to the environment variables TOP
+# (mandatory), BIN_D, TEST_D, UTIL_D and RESULT_D.
+my %directories = ();
+
+# The environment variables that gave us the contents in %directories.  These
+# get modified whenever we change directories, so that subprocesses can use
+# the values of those environment variables as well
+my @direnv = ();
+
+# A bool saying if we shall stop all testing if the current recipe has failing
+# tests or not.  This is set by setup() if the environment variable STOPTEST
+# is defined with a non-empty value.
+my $end_with_bailout = 0;
+
+# A set of hooks that is affected by with() and may be used in diverse places.
+# All hooks are expected to be CODE references.
+my %hooks = (
+
+    # exit_checker is used by run() directly after completion of a command.
+    # it receives the exit code from that command and is expected to return
+    # 1 (for success) or 0 (for failure).  This is the status value that run()
+    # will give back (through the |statusvar| reference and as returned value
+    # when capture => 1 doesn't apply).
+    exit_checker => sub { return shift == 0 ? 1 : 0 },
+
+    );
+
+# Debug flag, to be set manually when needed
+my $debug = 0;
+
+=head2 Main functions
+
+The following functions are exported by default when using C<OpenSSL::Test>.
+
+=cut
+
+=over 4
+
+=item B<setup "NAME">
+
+C<setup> is used for initial setup, and it is mandatory that it's used.
+If it's not used in a OpenSSL test recipe, the rest of the recipe will
+most likely refuse to run.
+
+C<setup> checks for environment variables (see L</ENVIRONMENT> below),
+checks that C<$TOP/Configure> or C<$SRCTOP/Configure> exists, C<chdir>
+into the results directory (defined by the C<$RESULT_D> environment
+variable if defined, otherwise C<$BLDTOP/test> or C<$TOP/test>, whichever
+is defined).
+
+=back
+
+=cut
+
+sub setup {
+    my $old_test_name = $test_name;
+    $test_name = shift;
+
+    BAIL_OUT("setup() must receive a name") unless $test_name;
+    warn "setup() detected test name change.  Innocuous, so we continue...\n"
+        if $old_test_name && $old_test_name ne $test_name;
+
+    return if $old_test_name;
+
+    BAIL_OUT("setup() needs \$TOP or \$SRCTOP and \$BLDTOP to be defined")
+        unless $ENV{TOP} || ($ENV{SRCTOP} && $ENV{BLDTOP});
+    BAIL_OUT("setup() found both \$TOP and \$SRCTOP or \$BLDTOP...")
+        if $ENV{TOP} && ($ENV{SRCTOP} || $ENV{BLDTOP});
+
+    __env();
+
+    BAIL_OUT("setup() expects the file Configure in the source top directory")
+        unless -f srctop_file("Configure");
+
+    __cwd($directories{RESULTS});
+}
+
+=over 4
+
+=item B<indir "SUBDIR" =E<gt> sub BLOCK, OPTS>
+
+C<indir> is used to run a part of the recipe in a different directory than
+the one C<setup> moved into, usually a subdirectory, given by SUBDIR.
+The part of the recipe that's run there is given by the codeblock BLOCK.
+
+C<indir> takes some additional options OPTS that affect the subdirectory:
+
+=over 4
+
+=item B<create =E<gt> 0|1>
+
+When set to 1 (or any value that perl perceives as true), the subdirectory
+will be created if it doesn't already exist.  This happens before BLOCK
+is executed.
+
+=item B<cleanup =E<gt> 0|1>
+
+When set to 1 (or any value that perl perceives as true), the subdirectory
+will be cleaned out and removed.  This happens both before and after BLOCK
+is executed.
+
+=back
+
+An example:
+
+  indir "foo" => sub {
+      ok(run(app(["openssl", "version"]), stdout => "foo.txt"));
+      if (ok(open(RESULT, "foo.txt"), "reading foo.txt")) {
+          my $line = <RESULT>;
+          close RESULT;
+          is($line, qr/^OpenSSL 1\./,
+             "check that we're using OpenSSL 1.x.x");
+      }
+  }, create => 1, cleanup => 1;
+
+=back
+
+=cut
+
+sub indir {
+    my $subdir = shift;
+    my $codeblock = shift;
+    my %opts = @_;
+
+    my $reverse = __cwd($subdir,%opts);
+    BAIL_OUT("FAILURE: indir, \"$subdir\" wasn't possible to move into")
+	unless $reverse;
+
+    $codeblock->();
+
+    __cwd($reverse);
+
+    if ($opts{cleanup}) {
+	rmtree($subdir, { safe => 0 });
+    }
+}
+
+=over 4
+
+=item B<cmd ARRAYREF, OPTS>
+
+This functions build up a platform dependent command based on the
+input.  It takes a reference to a list that is the executable or
+script and its arguments, and some additional options (described
+further on).  Where necessary, the command will be wrapped in a
+suitable environment to make sure the correct shared libraries are
+used (currently only on Unix).
+
+It returns a CODEREF to be used by C<run>, C<pipe> or C<cmdstr>.
+
+The options that C<cmd> can take are in the form of hash values:
+
+=over 4
+
+=item B<stdin =E<gt> PATH>
+
+=item B<stdout =E<gt> PATH>
+
+=item B<stderr =E<gt> PATH>
+
+In all three cases, the corresponding standard input, output or error is
+redirected from (for stdin) or to (for the others) a file given by the
+string PATH, I<or>, if the value is C<undef>, C</dev/null> or similar.
+
+=back
+
+=item B<app ARRAYREF, OPTS>
+
+=item B<test ARRAYREF, OPTS>
+
+Both of these are specific applications of C<cmd>, with just a couple
+of small difference:
+
+C<app> expects to find the given command (the first item in the given list
+reference) as an executable in C<$BIN_D> (if defined, otherwise C<$TOP/apps>
+or C<$BLDTOP/apps>).
+
+C<test> expects to find the given command (the first item in the given list
+reference) as an executable in C<$TEST_D> (if defined, otherwise C<$TOP/test>
+or C<$BLDTOP/test>).
+
+Also, for both C<app> and C<test>, the command may be prefixed with
+the content of the environment variable C<$EXE_SHELL>, which is useful
+in case OpenSSL has been cross compiled.
+
+=item B<perlapp ARRAYREF, OPTS>
+
+=item B<perltest ARRAYREF, OPTS>
+
+These are also specific applications of C<cmd>, where the interpreter
+is predefined to be C<perl>, and they expect the script to be
+interpreted to reside in the same location as C<app> and C<test>.
+
+C<perlapp> and C<perltest> will also take the following option:
+
+=over 4
+
+=item B<interpreter_args =E<gt> ARRAYref>
+
+The array reference is a set of arguments for the interpreter rather
+than the script.  Take care so that none of them can be seen as a
+script!  Flags and their eventual arguments only!
+
+=back
+
+An example:
+
+  ok(run(perlapp(["foo.pl", "arg1"],
+                 interpreter_args => [ "-I", srctop_dir("test") ])));
+
+=back
+
+=begin comment
+
+One might wonder over the complexity of C<apps>, C<fuzz>, C<test>, ...
+with all the lazy evaluations and all that.  The reason for this is that
+we want to make sure the directory in which those programs are found are
+correct at the time these commands are used.  Consider the following code
+snippet:
+
+  my $cmd = app(["openssl", ...]);
+
+  indir "foo", sub {
+      ok(run($cmd), "Testing foo")
+  };
+
+If there wasn't this lazy evaluation, the directory where C<openssl> is
+found would be incorrect at the time C<run> is called, because it was
+calculated before we moved into the directory "foo".
+
+=end comment
+
+=cut
+
+sub cmd {
+    my $cmd = shift;
+    my %opts = @_;
+    return sub {
+        my $num = shift;
+        # Make a copy to not destroy the caller's array
+        my @cmdargs = ( @$cmd );
+        my @prog = __wrap_cmd(shift @cmdargs, $opts{exe_shell} // ());
+
+        return __decorate_cmd($num, [ @prog, quotify(@cmdargs) ],
+                              %opts);
+    }
+}
+
+sub app {
+    my $cmd = shift;
+    my %opts = @_;
+    return sub {
+        my @cmdargs = ( @{$cmd} );
+        my @prog = __fixup_prg(__apps_file(shift @cmdargs, __exeext()));
+        return cmd([ @prog, @cmdargs ],
+                   exe_shell => $ENV{EXE_SHELL}, %opts) -> (shift);
+    }
+}
+
+sub fuzz {
+    my $cmd = shift;
+    my %opts = @_;
+    return sub {
+        my @cmdargs = ( @{$cmd} );
+        my @prog = __fixup_prg(__fuzz_file(shift @cmdargs, __exeext()));
+        return cmd([ @prog, @cmdargs ],
+                   exe_shell => $ENV{EXE_SHELL}, %opts) -> (shift);
+    }
+}
+
+sub test {
+    my $cmd = shift;
+    my %opts = @_;
+    return sub {
+        my @cmdargs = ( @{$cmd} );
+        my @prog = __fixup_prg(__test_file(shift @cmdargs, __exeext()));
+        return cmd([ @prog, @cmdargs ],
+                   exe_shell => $ENV{EXE_SHELL}, %opts) -> (shift);
+    }
+}
+
+sub perlapp {
+    my $cmd = shift;
+    my %opts = @_;
+    return sub {
+        my @interpreter_args = defined $opts{interpreter_args} ?
+            @{$opts{interpreter_args}} : ();
+        my @interpreter = __fixup_prg($^X);
+        my @cmdargs = ( @{$cmd} );
+        my @prog = __apps_file(shift @cmdargs, undef);
+        return cmd([ @interpreter, @interpreter_args,
+                     @prog, @cmdargs ], %opts) -> (shift);
+    }
+}
+
+sub perltest {
+    my $cmd = shift;
+    my %opts = @_;
+    return sub {
+        my @interpreter_args = defined $opts{interpreter_args} ?
+            @{$opts{interpreter_args}} : ();
+        my @interpreter = __fixup_prg($^X);
+        my @cmdargs = ( @{$cmd} );
+        my @prog = __test_file(shift @cmdargs, undef);
+        return cmd([ @interpreter, @interpreter_args,
+                     @prog, @cmdargs ], %opts) -> (shift);
+    }
+}
+
+=over 4
+
+=item B<run CODEREF, OPTS>
+
+CODEREF is expected to be the value return by C<cmd> or any of its
+derivatives, anything else will most likely cause an error unless you
+know what you're doing.
+
+C<run> executes the command returned by CODEREF and return either the
+resulting output (if the option C<capture> is set true) or a boolean
+indicating if the command succeeded or not.
+
+The options that C<run> can take are in the form of hash values:
+
+=over 4
+
+=item B<capture =E<gt> 0|1>
+
+If true, the command will be executed with a perl backtick, and C<run> will
+return the resulting output as an array of lines.  If false or not given,
+the command will be executed with C<system()>, and C<run> will return 1 if
+the command was successful or 0 if it wasn't.
+
+=item B<prefix =E<gt> EXPR>
+
+If specified, EXPR will be used as a string to prefix the output from the
+command.  This is useful if the output contains lines starting with C<ok >
+or C<not ok > that can disturb Test::Harness.
+
+=item B<statusvar =E<gt> VARREF>
+
+If used, B<VARREF> must be a reference to a scalar variable.  It will be
+assigned a boolean indicating if the command succeeded or not.  This is
+particularly useful together with B<capture>.
+
+=back
+
+For further discussion on what is considered a successful command or not, see
+the function C<with> further down.
+
+=back
+
+=cut
+
+sub run {
+    my ($cmd, $display_cmd) = shift->(0);
+    my %opts = @_;
+
+    return () if !$cmd;
+
+    my $prefix = "";
+    if ( $^O eq "VMS" ) {	# VMS
+	$prefix = "pipe ";
+    }
+
+    my @r = ();
+    my $r = 0;
+    my $e = 0;
+
+    die "OpenSSL::Test::run(): statusvar value not a scalar reference"
+        if $opts{statusvar} && ref($opts{statusvar}) ne "SCALAR";
+
+    # In non-verbose, we want to shut up the command interpreter, in case
+    # it has something to complain about.  On VMS, it might complain both
+    # on stdout and stderr
+    my $save_STDOUT;
+    my $save_STDERR;
+    if ($ENV{HARNESS_ACTIVE} && !$ENV{HARNESS_VERBOSE}) {
+        open $save_STDOUT, '>&', \*STDOUT or die "Can't dup STDOUT: $!";
+        open $save_STDERR, '>&', \*STDERR or die "Can't dup STDERR: $!";
+        open STDOUT, ">", devnull();
+        open STDERR, ">", devnull();
+    }
+
+    $ENV{HARNESS_OSSL_LEVEL} = $level + 1;
+
+    # The dance we do with $? is the same dance the Unix shells appear to
+    # do.  For example, a program that gets aborted (and therefore signals
+    # SIGABRT = 6) will appear to exit with the code 134.  We mimic this
+    # to make it easier to compare with a manual run of the command.
+    if ($opts{capture} || defined($opts{prefix})) {
+	my $pipe;
+	local $_;
+
+	open($pipe, '-|', "$prefix$cmd") or die "Can't start command: $!";
+	while(<$pipe>) {
+	    my $l = ($opts{prefix} // "") . $_;
+	    if ($opts{capture}) {
+		push @r, $l;
+	    } else {
+		print STDOUT $l;
+	    }
+	}
+	close $pipe;
+    } else {
+	$ENV{HARNESS_OSSL_PREFIX} = "# ";
+	system("$prefix$cmd");
+	delete $ENV{HARNESS_OSSL_PREFIX};
+    }
+    $e = ($? & 0x7f) ? ($? & 0x7f)|0x80 : ($? >> 8);
+    $r = $hooks{exit_checker}->($e);
+    if ($opts{statusvar}) {
+        ${$opts{statusvar}} = $r;
+    }
+
+    if ($ENV{HARNESS_ACTIVE} && !$ENV{HARNESS_VERBOSE}) {
+        close STDOUT;
+        close STDERR;
+        open STDOUT, '>&', $save_STDOUT or die "Can't restore STDOUT: $!";
+        open STDERR, '>&', $save_STDERR or die "Can't restore STDERR: $!";
+    }
+
+    print STDERR "$prefix$display_cmd => $e\n"
+        if !$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE};
+
+    # At this point, $? stops being interesting, and unfortunately,
+    # there are Test::More versions that get picky if we leave it
+    # non-zero.
+    $? = 0;
+
+    if ($opts{capture}) {
+	return @r;
+    } else {
+	return $r;
+    }
+}
+
+END {
+    my $tb = Test::More->builder;
+    my $failure = scalar(grep { $_ == 0; } $tb->summary);
+    if ($failure && $end_with_bailout) {
+	BAIL_OUT("Stoptest!");
+    }
+}
+
+=head2 Utility functions
+
+The following functions are exported on request when using C<OpenSSL::Test>.
+
+  # To only get the bldtop_file and srctop_file functions.
+  use OpenSSL::Test qw/bldtop_file srctop_file/;
+
+  # To only get the bldtop_file function in addition to the default ones.
+  use OpenSSL::Test qw/:DEFAULT bldtop_file/;
+
+=cut
+
+# Utility functions, exported on request
+
+=over 4
+
+=item B<bldtop_dir LIST>
+
+LIST is a list of directories that make up a path from the top of the OpenSSL
+build directory (as indicated by the environment variable C<$TOP> or
+C<$BLDTOP>).
+C<bldtop_dir> returns the resulting directory as a string, adapted to the local
+operating system.
+
+=back
+
+=cut
+
+sub bldtop_dir {
+    return __bldtop_dir(@_);	# This caters for operating systems that have
+				# a very distinct syntax for directories.
+}
+
+=over 4
+
+=item B<bldtop_file LIST, FILENAME>
+
+LIST is a list of directories that make up a path from the top of the OpenSSL
+build directory (as indicated by the environment variable C<$TOP> or
+C<$BLDTOP>) and FILENAME is the name of a file located in that directory path.
+C<bldtop_file> returns the resulting file path as a string, adapted to the local
+operating system.
+
+=back
+
+=cut
+
+sub bldtop_file {
+    return __bldtop_file(@_);
+}
+
+=over 4
+
+=item B<srctop_dir LIST>
+
+LIST is a list of directories that make up a path from the top of the OpenSSL
+source directory (as indicated by the environment variable C<$TOP> or
+C<$SRCTOP>).
+C<srctop_dir> returns the resulting directory as a string, adapted to the local
+operating system.
+
+=back
+
+=cut
+
+sub srctop_dir {
+    return __srctop_dir(@_);	# This caters for operating systems that have
+				# a very distinct syntax for directories.
+}
+
+=over 4
+
+=item B<srctop_file LIST, FILENAME>
+
+LIST is a list of directories that make up a path from the top of the OpenSSL
+source directory (as indicated by the environment variable C<$TOP> or
+C<$SRCTOP>) and FILENAME is the name of a file located in that directory path.
+C<srctop_file> returns the resulting file path as a string, adapted to the local
+operating system.
+
+=back
+
+=cut
+
+sub srctop_file {
+    return __srctop_file(@_);
+}
+
+=over 4
+
+=item B<data_dir LIST>
+
+LIST is a list of directories that make up a path from the data directory
+associated with the test (see L</DESCRIPTION> above).
+C<data_dir> returns the resulting directory as a string, adapted to the local
+operating system.
+
+=back
+
+=cut
+
+sub data_dir {
+    return __data_dir(@_);
+}
+
+=over 4
+
+=item B<data_file LIST, FILENAME>
+
+LIST is a list of directories that make up a path from the data directory
+associated with the test (see L</DESCRIPTION> above) and FILENAME is the name
+of a file located in that directory path.  C<data_file> returns the resulting
+file path as a string, adapted to the local operating system.
+
+=back
+
+=cut
+
+sub data_file {
+    return __data_file(@_);
+}
+
+=over 4
+
+=item B<pipe LIST>
+
+LIST is a list of CODEREFs returned by C<app> or C<test>, from which C<pipe>
+creates a new command composed of all the given commands put together in a
+pipe.  C<pipe> returns a new CODEREF in the same manner as C<app> or C<test>,
+to be passed to C<run> for execution.
+
+=back
+
+=cut
+
+sub pipe {
+    my @cmds = @_;
+    return
+	sub {
+	    my @cs  = ();
+	    my @dcs = ();
+	    my @els = ();
+	    my $counter = 0;
+	    foreach (@cmds) {
+		my ($c, $dc, @el) = $_->(++$counter);
+
+		return () if !$c;
+
+		push @cs, $c;
+		push @dcs, $dc;
+		push @els, @el;
+	    }
+	    return (
+		join(" | ", @cs),
+		join(" | ", @dcs),
+		@els
+		);
+    };
+}
+
+=over 4
+
+=item B<with HASHREF, CODEREF>
+
+C<with> will temporarily install hooks given by the HASHREF and then execute
+the given CODEREF.  Hooks are usually expected to have a coderef as value.
+
+The currently available hoosk are:
+
+=over 4
+
+=item B<exit_checker =E<gt> CODEREF>
+
+This hook is executed after C<run> has performed its given command.  The
+CODEREF receives the exit code as only argument and is expected to return
+1 (if the exit code indicated success) or 0 (if the exit code indicated
+failure).
+
+=back
+
+=back
+
+=cut
+
+sub with {
+    my $opts = shift;
+    my %opts = %{$opts};
+    my $codeblock = shift;
+
+    my %saved_hooks = ();
+
+    foreach (keys %opts) {
+	$saved_hooks{$_} = $hooks{$_}	if exists($hooks{$_});
+	$hooks{$_} = $opts{$_};
+    }
+
+    $codeblock->();
+
+    foreach (keys %saved_hooks) {
+	$hooks{$_} = $saved_hooks{$_};
+    }
+}
+
+=over 4
+
+=item B<cmdstr CODEREF, OPTS>
+
+C<cmdstr> takes a CODEREF from C<app> or C<test> and simply returns the
+command as a string.
+
+C<cmdstr> takes some additional options OPTS that affect the string returned:
+
+=over 4
+
+=item B<display =E<gt> 0|1>
+
+When set to 0, the returned string will be with all decorations, such as a
+possible redirect of stderr to the null device.  This is suitable if the
+string is to be used directly in a recipe.
+
+When set to 1, the returned string will be without extra decorations.  This
+is suitable for display if that is desired (doesn't confuse people with all
+internal stuff), or if it's used to pass a command down to a subprocess.
+
+Default: 0
+
+=back
+
+=back
+
+=cut
+
+sub cmdstr {
+    my ($cmd, $display_cmd) = shift->(0);
+    my %opts = @_;
+
+    if ($opts{display}) {
+        return $display_cmd;
+    } else {
+        return $cmd;
+    }
+}
+
+=over 4
+
+=item B<quotify LIST>
+
+LIST is a list of strings that are going to be used as arguments for a
+command, and makes sure to inject quotes and escapes as necessary depending
+on the content of each string.
+
+This can also be used to put quotes around the executable of a command.
+I<This must never ever be done on VMS.>
+
+=back
+
+=cut
+
+sub quotify {
+    # Unix setup (default if nothing else is mentioned)
+    my $arg_formatter =
+	sub { $_ = shift;
+	      ($_ eq '' || /\s|[\{\}\\\$\[\]\*\?\|\&:;<>]/) ? "'$_'" : $_ };
+
+    if ( $^O eq "VMS") {	# VMS setup
+	$arg_formatter = sub {
+	    $_ = shift;
+	    if ($_ eq '' || /\s|["[:upper:]]/) {
+		s/"/""/g;
+		'"'.$_.'"';
+	    } else {
+		$_;
+	    }
+	};
+    } elsif ( $^O eq "MSWin32") { # MSWin setup
+	$arg_formatter = sub {
+	    $_ = shift;
+	    if ($_ eq '' || /\s|["\|\&\*\;<>]/) {
+		s/(["\\])/\\$1/g;
+		'"'.$_.'"';
+	    } else {
+		$_;
+	    }
+	};
+    }
+
+    return map { $arg_formatter->($_) } @_;
+}
+
+=over 4
+
+=item B<openssl_versions>
+
+Returns a list of two numbers, the first representing the build version,
+the second representing the library version.  See opensslv.h for more
+information on those numbers.
+
+=back
+
+=cut
+
+my @versions = ();
+sub openssl_versions {
+    unless (@versions) {
+        my %lines =
+            map { s/\R$//;
+                  /^(.*): (0x[[:xdigit:]]{8})$/;
+                  die "Weird line: $_" unless defined $1;
+                  $1 => hex($2) }
+            run(test(['versions']), capture => 1);
+        @versions = ( $lines{'Build version'}, $lines{'Library version'} );
+    }
+    return @versions;
+}
+
+######################################################################
+# private functions.  These are never exported.
+
+=head1 ENVIRONMENT
+
+OpenSSL::Test depends on some environment variables.
+
+=over 4
+
+=item B<TOP>
+
+This environment variable is mandatory.  C<setup> will check that it's
+defined and that it's a directory that contains the file C<Configure>.
+If this isn't so, C<setup> will C<BAIL_OUT>.
+
+=item B<BIN_D>
+
+If defined, its value should be the directory where the openssl application
+is located.  Defaults to C<$TOP/apps> (adapted to the operating system).
+
+=item B<TEST_D>
+
+If defined, its value should be the directory where the test applications
+are located.  Defaults to C<$TOP/test> (adapted to the operating system).
+
+=item B<STOPTEST>
+
+If defined, it puts testing in a different mode, where a recipe with
+failures will result in a C<BAIL_OUT> at the end of its run.
+
+=back
+
+=cut
+
+sub __env {
+    (my $recipe_datadir = basename($0)) =~ s/\.t$/_data/i;
+
+    $directories{SRCTOP}  = abs_path($ENV{SRCTOP} || $ENV{TOP});
+    $directories{BLDTOP}  = abs_path($ENV{BLDTOP} || $ENV{TOP});
+    $directories{BLDAPPS} = $ENV{BIN_D}  || __bldtop_dir("apps");
+    $directories{SRCAPPS} =                 __srctop_dir("apps");
+    $directories{BLDFUZZ} =                 __bldtop_dir("fuzz");
+    $directories{SRCFUZZ} =                 __srctop_dir("fuzz");
+    $directories{BLDTEST} = $ENV{TEST_D} || __bldtop_dir("test");
+    $directories{SRCTEST} =                 __srctop_dir("test");
+    $directories{SRCDATA} =                 __srctop_dir("test", "recipes",
+                                                         $recipe_datadir);
+    $directories{RESULTS} = $ENV{RESULT_D} || $directories{BLDTEST};
+
+    push @direnv, "TOP"       if $ENV{TOP};
+    push @direnv, "SRCTOP"    if $ENV{SRCTOP};
+    push @direnv, "BLDTOP"    if $ENV{BLDTOP};
+    push @direnv, "BIN_D"     if $ENV{BIN_D};
+    push @direnv, "TEST_D"    if $ENV{TEST_D};
+    push @direnv, "RESULT_D"  if $ENV{RESULT_D};
+
+    $end_with_bailout	  = $ENV{STOPTEST} ? 1 : 0;
+};
+
+# __srctop_file and __srctop_dir are helpers to build file and directory
+# names on top of the source directory.  They depend on $SRCTOP, and
+# therefore on the proper use of setup() and when needed, indir().
+# __bldtop_file and __bldtop_dir do the same thing but relative to $BLDTOP.
+# __srctop_file and __bldtop_file take the same kind of argument as
+# File::Spec::Functions::catfile.
+# Similarly, __srctop_dir and __bldtop_dir take the same kind of argument
+# as File::Spec::Functions::catdir
+sub __srctop_file {
+    BAIL_OUT("Must run setup() first") if (! $test_name);
+
+    my $f = pop;
+    return abs2rel(catfile($directories{SRCTOP},@_,$f),getcwd);
+}
+
+sub __srctop_dir {
+    BAIL_OUT("Must run setup() first") if (! $test_name);
+
+    return abs2rel(catdir($directories{SRCTOP},@_), getcwd);
+}
+
+sub __bldtop_file {
+    BAIL_OUT("Must run setup() first") if (! $test_name);
+
+    my $f = pop;
+    return abs2rel(catfile($directories{BLDTOP},@_,$f), getcwd);
+}
+
+sub __bldtop_dir {
+    BAIL_OUT("Must run setup() first") if (! $test_name);
+
+    return abs2rel(catdir($directories{BLDTOP},@_), getcwd);
+}
+
+# __exeext is a function that returns the platform dependent file extension
+# for executable binaries, or the value of the environment variable $EXE_EXT
+# if that one is defined.
+sub __exeext {
+    my $ext = "";
+    if ($^O eq "VMS" ) {	# VMS
+	$ext = ".exe";
+    } elsif ($^O eq "MSWin32") { # Windows
+	$ext = ".exe";
+    }
+    return $ENV{"EXE_EXT"} || $ext;
+}
+
+# __test_file, __apps_file and __fuzz_file return the full path to a file
+# relative to the test/, apps/ or fuzz/ directory in the build tree or the
+# source tree, depending on where the file is found.  Note that when looking
+# in the build tree, the file name with an added extension is looked for, if
+# an extension is given.  The intent is to look for executable binaries (in
+# the build tree) or possibly scripts (in the source tree).
+# These functions all take the same arguments as File::Spec::Functions::catfile,
+# *plus* a mandatory extension argument.  This extension argument can be undef,
+# and is ignored in such a case.
+sub __test_file {
+    BAIL_OUT("Must run setup() first") if (! $test_name);
+
+    my $e = pop || "";
+    my $f = pop;
+    my $out = catfile($directories{BLDTEST},@_,$f . $e);
+    $out = catfile($directories{SRCTEST},@_,$f) unless -f $out;
+    return $out;
+}
+
+sub __apps_file {
+    BAIL_OUT("Must run setup() first") if (! $test_name);
+
+    my $e = pop || "";
+    my $f = pop;
+    my $out = catfile($directories{BLDAPPS},@_,$f . $e);
+    $out = catfile($directories{SRCAPPS},@_,$f) unless -f $out;
+    return $out;
+}
+
+sub __fuzz_file {
+    BAIL_OUT("Must run setup() first") if (! $test_name);
+
+    my $e = pop || "";
+    my $f = pop;
+    my $out = catfile($directories{BLDFUZZ},@_,$f . $e);
+    $out = catfile($directories{SRCFUZZ},@_,$f) unless -f $out;
+    return $out;
+}
+
+sub __data_file {
+    BAIL_OUT("Must run setup() first") if (! $test_name);
+
+    my $f = pop;
+    return catfile($directories{SRCDATA},@_,$f);
+}
+
+sub __data_dir {
+    BAIL_OUT("Must run setup() first") if (! $test_name);
+
+    return catdir($directories{SRCDATA},@_);
+}
+
+sub __results_file {
+    BAIL_OUT("Must run setup() first") if (! $test_name);
+
+    my $f = pop;
+    return catfile($directories{RESULTS},@_,$f);
+}
+
+# __cwd DIR
+# __cwd DIR, OPTS
+#
+# __cwd changes directory to DIR (string) and changes all the relative
+# entries in %directories accordingly.  OPTS is an optional series of
+# hash style arguments to alter __cwd's behavior:
+#
+#    create = 0|1       The directory we move to is created if 1, not if 0.
+#    cleanup = 0|1      The directory we move from is removed if 1, not if 0.
+
+sub __cwd {
+    my $dir = catdir(shift);
+    my %opts = @_;
+    my $abscurdir = rel2abs(curdir());
+    my $absdir = rel2abs($dir);
+    my $reverse = abs2rel($abscurdir, $absdir);
+
+    # PARANOIA: if we're not moving anywhere, we do nothing more
+    if ($abscurdir eq $absdir) {
+	return $reverse;
+    }
+
+    # Do not support a move to a different volume for now.  Maybe later.
+    BAIL_OUT("FAILURE: \"$dir\" moves to a different volume, not supported")
+	if $reverse eq $abscurdir;
+
+    # If someone happened to give a directory that leads back to the current,
+    # it's extremely silly to do anything more, so just simulate that we did
+    # move.
+    # In this case, we won't even clean it out, for safety's sake.
+    return "." if $reverse eq "";
+
+    $dir = canonpath($dir);
+    if ($opts{create}) {
+	mkpath($dir);
+    }
+
+    # We are recalculating the directories we keep track of, but need to save
+    # away the result for after having moved into the new directory.
+    my %tmp_directories = ();
+    my %tmp_ENV = ();
+
+    # For each of these directory variables, figure out where they are relative
+    # to the directory we want to move to if they aren't absolute (if they are,
+    # they don't change!)
+    my @dirtags = sort keys %directories;
+    foreach (@dirtags) {
+	if (!file_name_is_absolute($directories{$_})) {
+	    my $newpath = abs2rel(rel2abs($directories{$_}), rel2abs($dir));
+	    $tmp_directories{$_} = $newpath;
+	}
+    }
+
+    # Treat each environment variable that was used to get us the values in
+    # %directories the same was as the paths in %directories, so any sub
+    # process can use their values properly as well
+    foreach (@direnv) {
+	if (!file_name_is_absolute($ENV{$_})) {
+	    my $newpath = abs2rel(rel2abs($ENV{$_}), rel2abs($dir));
+	    $tmp_ENV{$_} = $newpath;
+	}
+    }
+
+    # Should we just bail out here as well?  I'm unsure.
+    return undef unless chdir($dir);
+
+    if ($opts{cleanup}) {
+	rmtree(".", { safe => 0, keep_root => 1 });
+    }
+
+    # We put back new values carefully.  Doing the obvious
+    # %directories = ( %tmp_directories )
+    # will clear out any value that happens to be an absolute path
+    foreach (keys %tmp_directories) {
+        $directories{$_} = $tmp_directories{$_};
+    }
+    foreach (keys %tmp_ENV) {
+        $ENV{$_} = $tmp_ENV{$_};
+    }
+
+    if ($debug) {
+	print STDERR "DEBUG: __cwd(), directories and files:\n";
+	print STDERR "  \$directories{BLDTEST} = \"$directories{BLDTEST}\"\n";
+	print STDERR "  \$directories{SRCTEST} = \"$directories{SRCTEST}\"\n";
+	print STDERR "  \$directories{SRCDATA} = \"$directories{SRCDATA}\"\n";
+	print STDERR "  \$directories{RESULTS} = \"$directories{RESULTS}\"\n";
+	print STDERR "  \$directories{BLDAPPS} = \"$directories{BLDAPPS}\"\n";
+	print STDERR "  \$directories{SRCAPPS} = \"$directories{SRCAPPS}\"\n";
+	print STDERR "  \$directories{SRCTOP}  = \"$directories{SRCTOP}\"\n";
+	print STDERR "  \$directories{BLDTOP}  = \"$directories{BLDTOP}\"\n";
+	print STDERR "\n";
+	print STDERR "  current directory is \"",curdir(),"\"\n";
+	print STDERR "  the way back is \"$reverse\"\n";
+    }
+
+    return $reverse;
+}
+
+# __wrap_cmd CMD
+# __wrap_cmd CMD, EXE_SHELL
+#
+# __wrap_cmd "wraps" CMD (string) with a beginning command that makes sure
+# the command gets executed with an appropriate environment.  If EXE_SHELL
+# is given, it is used as the beginning command.
+#
+# __wrap_cmd returns a list that should be used to build up a larger list
+# of command tokens, or be joined together like this:
+#
+#    join(" ", __wrap_cmd($cmd))
+sub __wrap_cmd {
+    my $cmd = shift;
+    my $exe_shell = shift;
+
+    my @prefix = ( __bldtop_file("util", "shlib_wrap.sh") );
+
+    if(defined($exe_shell)) {
+	@prefix = ( $exe_shell );
+    } elsif ($^O eq "VMS" || $^O eq "MSWin32") {
+	# VMS and Windows don't use any wrapper script for the moment
+	@prefix = ();
+    }
+
+    return (@prefix, $cmd);
+}
+
+# __fixup_prg PROG
+#
+# __fixup_prg does whatever fixup is needed to execute an executable binary
+# given by PROG (string).
+#
+# __fixup_prg returns a string with the possibly prefixed program path spec.
+sub __fixup_prg {
+    my $prog = shift;
+
+    my $prefix = "";
+
+    if ($^O eq "VMS" ) {
+	$prefix = ($prog =~ /^(?:[\$a-z0-9_]+:)?[<\[]/i ? "mcr " : "mcr []");
+    }
+
+    if (defined($prog)) {
+	# Make sure to quotify the program file on platforms that may
+	# have spaces or similar in their path name.
+	# To our knowledge, VMS is the exception where quotifying should
+	# never happen.
+	($prog) = quotify($prog) unless $^O eq "VMS";
+	return $prefix.$prog;
+    }
+
+    print STDERR "$prog not found\n";
+    return undef;
+}
+
+# __decorate_cmd NUM, CMDARRAYREF
+#
+# __decorate_cmd takes a command number NUM and a command token array
+# CMDARRAYREF, builds up a command string from them and decorates it
+# with necessary redirections.
+# __decorate_cmd returns a list of two strings, one with the command
+# string to actually be used, the other to be displayed for the user.
+# The reason these strings might differ is that we redirect stderr to
+# the null device unless we're verbose and unless the user has
+# explicitly specified a stderr redirection.
+sub __decorate_cmd {
+    BAIL_OUT("Must run setup() first") if (! $test_name);
+
+    my $num = shift;
+    my $cmd = shift;
+    my %opts = @_;
+
+    my $cmdstr = join(" ", @$cmd);
+    my $null = devnull();
+    my $fileornull = sub { $_[0] ? $_[0] : $null; };
+    my $stdin = "";
+    my $stdout = "";
+    my $stderr = "";
+    my $saved_stderr = undef;
+    $stdin = " < ".$fileornull->($opts{stdin})  if exists($opts{stdin});
+    $stdout= " > ".$fileornull->($opts{stdout}) if exists($opts{stdout});
+    $stderr=" 2> ".$fileornull->($opts{stderr}) if exists($opts{stderr});
+
+    my $display_cmd = "$cmdstr$stdin$stdout$stderr";
+
+    $stderr=" 2> ".$null
+        unless $stderr || !$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE};
+
+    $cmdstr .= "$stdin$stdout$stderr";
+
+    if ($debug) {
+	print STDERR "DEBUG[__decorate_cmd]: \$cmdstr = \"$cmdstr\"\n";
+	print STDERR "DEBUG[__decorate_cmd]: \$display_cmd = \"$display_cmd\"\n";
+    }
+
+    return ($cmdstr, $display_cmd);
+}
+
+=head1 SEE ALSO
+
+L<Test::More>, L<Test::Harness>
+
+=head1 AUTHORS
+
+Richard Levitte E<lt>levitte@openssl.orgE<gt> with assistance and
+inspiration from Andy Polyakov E<lt>appro@openssl.org<gt>.
+
+=cut
+
+no warnings 'redefine';
+sub subtest {
+    $level++;
+
+    Test::More::subtest @_;
+
+    $level--;
+};
+
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/Test/Simple.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/Test/Simple.pm
new file mode 100644
index 0000000..c5a84d5
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/Test/Simple.pm
@@ -0,0 +1,91 @@
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+package OpenSSL::Test::Simple;
+
+use strict;
+use warnings;
+
+use Exporter;
+use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
+$VERSION = "0.2";
+@ISA = qw(Exporter);
+@EXPORT = qw(simple_test);
+
+=head1 NAME
+
+OpenSSL::Test::Simple - a few very simple test functions
+
+=head1 SYNOPSIS
+
+  use OpenSSL::Test::Simple;
+
+  simple_test("my_test_name", "destest", "des");
+
+=head1 DESCRIPTION
+
+Sometimes, the functions in L<OpenSSL::Test> are quite tedious for some
+repetitive tasks.  This module provides functions to make life easier.
+You could call them hacks if you wish.
+
+=cut
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils;
+
+=over 4
+
+=item B<simple_test NAME, PROGRAM, ALGORITHM>
+
+Runs a test named NAME, running the program PROGRAM with no arguments,
+to test the algorithm ALGORITHM.
+
+A complete recipe looks like this:
+
+  use OpenSSL::Test::Simple;
+
+  simple_test("test_bf", "bftest", "bf");
+
+=back
+
+=cut
+
+# args:
+#  name			(used with setup())
+#  algorithm		(used to check if it's at all supported)
+#  name of binary	(the program that does the actual test)
+sub simple_test {
+    my ($name, $prgr, @algos) = @_;
+
+    setup($name);
+
+    if (scalar(disabled(@algos))) {
+	if (scalar(@algos) == 1) {
+	    plan skip_all => $algos[0]." is not supported by this OpenSSL build";
+	} else {
+	    my $last = pop @algos;
+	    plan skip_all => join(", ", @algos)." and $last are not supported by this OpenSSL build";
+	}
+    }
+
+    plan tests => 1;
+
+    ok(run(test([$prgr])), "running $prgr");
+}
+
+=head1 SEE ALSO
+
+L<OpenSSL::Test>
+
+=head1 AUTHORS
+
+Richard Levitte E<lt>levitte@openssl.orgE<gt> with inspiration
+from Rich Salz E<lt>rsalz@openssl.orgE<gt>.
+
+=cut
+
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/Test/Utils.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/Test/Utils.pm
new file mode 100644
index 0000000..7b0a705
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/Test/Utils.pm
@@ -0,0 +1,240 @@
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+package OpenSSL::Test::Utils;
+
+use strict;
+use warnings;
+
+use Exporter;
+use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
+$VERSION = "0.1";
+@ISA = qw(Exporter);
+@EXPORT = qw(alldisabled anydisabled disabled config available_protocols
+             have_IPv4 have_IPv6);
+
+=head1 NAME
+
+OpenSSL::Test::Utils - test utility functions
+
+=head1 SYNOPSIS
+
+  use OpenSSL::Test::Utils;
+
+  my @tls = available_protocols("tls");
+  my @dtls = available_protocols("dtls");
+  alldisabled("dh", "dsa");
+  anydisabled("dh", "dsa");
+
+  config("fips");
+
+  have_IPv4();
+  have_IPv6();
+
+=head1 DESCRIPTION
+
+This module provides utility functions for the testing framework.
+
+=cut
+
+use OpenSSL::Test qw/:DEFAULT bldtop_file/;
+
+=over 4
+
+=item B<available_protocols STRING>
+
+Returns a list of strings for all the available SSL/TLS versions if
+STRING is "tls", or for all the available DTLS versions if STRING is
+"dtls".  Otherwise, it returns the empty list.  The strings in the
+returned list can be used with B<alldisabled> and B<anydisabled>.
+
+=item B<alldisabled ARRAY>
+=item B<anydisabled ARRAY>
+
+In an array context returns an array with each element set to 1 if the
+corresponding feature is disabled and 0 otherwise.
+
+In a scalar context, alldisabled returns 1 if all of the features in
+ARRAY are disabled, while anydisabled returns 1 if any of them are
+disabled.
+
+=item B<config STRING>
+
+Returns an item from the %config hash in \$TOP/configdata.pm.
+
+=item B<have_IPv4>
+=item B<have_IPv6>
+
+Return true if IPv4 / IPv6 is possible to use on the current system.
+
+=back
+
+=cut
+
+our %available_protocols;
+our %disabled;
+our %config;
+my $configdata_loaded = 0;
+
+sub load_configdata {
+    # We eval it so it doesn't run at compile time of this file.
+    # The latter would have bldtop_file() complain that setup() hasn't
+    # been run yet.
+    my $configdata = bldtop_file("configdata.pm");
+    eval { require $configdata;
+	   %available_protocols = %configdata::available_protocols;
+	   %disabled = %configdata::disabled;
+	   %config = %configdata::config;
+    };
+    $configdata_loaded = 1;
+}
+
+# args
+#  list of 1s and 0s, coming from check_disabled()
+sub anyof {
+    my $x = 0;
+    foreach (@_) { $x += $_ }
+    return $x > 0;
+}
+
+# args
+#  list of 1s and 0s, coming from check_disabled()
+sub allof {
+    my $x = 1;
+    foreach (@_) { $x *= $_ }
+    return $x > 0;
+}
+
+# args
+#  list of strings, all of them should be names of features
+#  that can be disabled.
+# returns a list of 1s (if the corresponding feature is disabled)
+#  and 0s (if it isn't)
+sub check_disabled {
+    return map { exists $disabled{lc $_} ? 1 : 0 } @_;
+}
+
+# Exported functions #################################################
+
+# args:
+#  list of features to check
+sub anydisabled {
+    load_configdata() unless $configdata_loaded;
+    my @ret = check_disabled(@_);
+    return @ret if wantarray;
+    return anyof(@ret);
+}
+
+# args:
+#  list of features to check
+sub alldisabled {
+    load_configdata() unless $configdata_loaded;
+    my @ret = check_disabled(@_);
+    return @ret if wantarray;
+    return allof(@ret);
+}
+
+# !!! Kept for backward compatibility
+# args:
+#  single string
+sub disabled {
+    anydisabled(@_);
+}
+
+sub available_protocols {
+    load_configdata() unless $configdata_loaded;
+    my $protocol_class = shift;
+    if (exists $available_protocols{lc $protocol_class}) {
+	return @{$available_protocols{lc $protocol_class}}
+    }
+    return ();
+}
+
+sub config {
+    load_configdata() unless $configdata_loaded;
+    return $config{$_[0]};
+}
+
+# IPv4 / IPv6 checker
+my $have_IPv4 = -1;
+my $have_IPv6 = -1;
+my $IP_factory;
+sub check_IP {
+    my $listenaddress = shift;
+
+    eval {
+        require IO::Socket::IP;
+        my $s = IO::Socket::IP->new(
+            LocalAddr => $listenaddress,
+            LocalPort => 0,
+            Listen=>1,
+            );
+        $s or die "\n";
+        $s->close();
+    };
+    if ($@ eq "") {
+        return 1;
+    }
+
+    eval {
+        require IO::Socket::INET6;
+        my $s = IO::Socket::INET6->new(
+            LocalAddr => $listenaddress,
+            LocalPort => 0,
+            Listen=>1,
+            );
+        $s or die "\n";
+        $s->close();
+    };
+    if ($@ eq "") {
+        return 1;
+    }
+
+    eval {
+        require IO::Socket::INET;
+        my $s = IO::Socket::INET->new(
+            LocalAddr => $listenaddress,
+            LocalPort => 0,
+            Listen=>1,
+            );
+        $s or die "\n";
+        $s->close();
+    };
+    if ($@ eq "") {
+        return 1;
+    }
+
+    return 0;
+}
+
+sub have_IPv4 {
+    if ($have_IPv4 < 0) {
+        $have_IPv4 = check_IP("127.0.0.1");
+    }
+    return $have_IPv4;
+}
+
+sub have_IPv6 {
+    if ($have_IPv6 < 0) {
+        $have_IPv6 = check_IP("::1");
+    }
+    return $have_IPv6;
+}
+
+
+=head1 SEE ALSO
+
+L<OpenSSL::Test>
+
+=head1 AUTHORS
+
+Stephen Henson E<lt>steve@openssl.orgE<gt> and
+Richard Levitte E<lt>levitte@openssl.orgE<gt>
+
+=cut
+
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/Util/Pod.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/Util/Pod.pm
new file mode 100644
index 0000000..9f76fbf
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/Util/Pod.pm
@@ -0,0 +1,149 @@
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+package OpenSSL::Util::Pod;
+
+use strict;
+use warnings;
+
+use Exporter;
+use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
+$VERSION = "0.1";
+@ISA = qw(Exporter);
+@EXPORT = qw(extract_pod_info);
+@EXPORT_OK = qw();
+
+=head1 NAME
+
+OpenSSL::Util::Pod - utilities to manipulate .pod files
+
+=head1 SYNOPSIS
+
+  use OpenSSL::Util::Pod;
+
+  my %podinfo = extract_pod_info("foo.pod");
+
+  # or if the file is already opened...  Note that this consumes the
+  # remainder of the file.
+
+  my %podinfo = extract_pod_info(\*STDIN);
+
+=head1 DESCRIPTION
+
+=over
+
+=item B<extract_pod_info "FILENAME", HASHREF>
+
+=item B<extract_pod_info "FILENAME">
+
+=item B<extract_pod_info GLOB, HASHREF>
+
+=item B<extract_pod_info GLOB>
+
+Extracts information from a .pod file, given a STRING (file name) or a
+GLOB (a file handle).  The result is given back as a hash table.
+
+The additional hash is for extra parameters:
+
+=over
+
+=item B<section =E<gt> N>
+
+The value MUST be a number, and will be the man section number
+to be used with the given .pod file.
+
+=item B<debug =E<gt> 0|1>
+
+If set to 1, extra debug text will be printed on STDERR
+
+=back
+
+=back
+
+=head1 RETURN VALUES
+
+=over
+
+=item B<extract_pod_info> returns a hash table with the following
+items:
+
+=over
+
+=item B<section =E<gt> N>
+
+The man section number this .pod file belongs to.  Often the same as
+was given as input.
+
+=item B<names =E<gt> [ "name", ... ]>
+
+All the names extracted from the NAME section.
+
+=back
+
+=back
+
+=cut
+
+sub extract_pod_info {
+    my $input = shift;
+    my $defaults_ref = shift || {};
+    my %defaults = ( debug => 0, section => 0, %$defaults_ref );
+    my $fh = undef;
+    my $filename = undef;
+
+    # If not a file handle, then it's assume to be a file path (a string)
+    unless (ref $input eq "GLOB") {
+        $filename = $input;
+        open $fh, $input or die "Trying to read $filename: $!\n";
+        print STDERR "DEBUG: Reading $input\n" if $defaults{debug};
+        $input = $fh;
+    }
+
+    my %podinfo = ( section => $defaults{section});
+    while(<$input>) {
+        s|\R$||;
+        # Stop reading when we have reached past the NAME section.
+        last if (m|^=head1|
+                 && defined $podinfo{lastsect}
+                 && $podinfo{lastsect} eq "NAME");
+
+        # Collect the section name
+        if (m|^=head1\s*(.*)|) {
+            $podinfo{lastsect} = $1;
+            $podinfo{lastsect} =~ s/\s+$//;
+            print STDERR "DEBUG: Found new pod section $1\n"
+                if $defaults{debug};
+            print STDERR "DEBUG: Clearing pod section text\n"
+                if $defaults{debug};
+            $podinfo{lastsecttext} = "";
+        }
+
+        next if (m|^=| || m|^\s*$|);
+
+        # Collect the section text
+        print STDERR "DEBUG: accumulating pod section text \"$_\"\n"
+            if $defaults{debug};
+        $podinfo{lastsecttext} .= " " if $podinfo{lastsecttext};
+        $podinfo{lastsecttext} .= $_;
+    }
+
+
+    if (defined $fh) {
+        close $fh;
+        print STDERR "DEBUG: Done reading $filename\n" if $defaults{debug};
+    }
+
+    $podinfo{lastsecttext} =~ s| - .*$||;
+
+    my @names =
+        map { s|\s+||g; $_ }
+        split(m|,|, $podinfo{lastsecttext});
+
+    return ( section => $podinfo{section}, names => [ @names ] );
+}
+
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/copyright.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/copyright.pm
new file mode 100644
index 0000000..f560f9d
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/OpenSSL/copyright.pm
@@ -0,0 +1,41 @@
+#! /usr/bin/env perl
+# Copyright 2022 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use warnings;
+
+package OpenSSL::copyright;
+
+sub year_of {
+    my $file = shift;
+
+    return $ENV{'OSSL_COPYRIGHT_YEAR'} if defined $ENV{'OSSL_COPYRIGHT_YEAR'};
+
+    # Use the file date for backward compatibility.
+    my $YEAR = [localtime([stat($file)]->[9])]->[5] + 1900;
+
+    # See if git's available
+    open my $FH,
+       "git log -1 --date=short --format=format:%cd $file 2>/dev/null|"
+           or return $YEAR;
+    my $LINE = <$FH>;
+    close $FH;
+    $LINE =~ s/^([0-9]*)-.*/$1/ if $LINE;
+    $YEAR = $LINE if $LINE;
+    return $YEAR;
+}
+
+sub latest {
+    my $l = 0;
+    foreach my $f (@_ ) {
+        my $y = year_of($f);
+        $l = $y if $y > $l;
+    }
+    return $l
+}
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/Alert.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/Alert.pm
new file mode 100644
index 0000000..e27497d
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/Alert.pm
@@ -0,0 +1,51 @@
+# Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+
+package TLSProxy::Alert;
+
+sub new
+{
+    my $class = shift;
+    my ($server,
+        $encrypted,
+        $level,
+        $description) = @_;
+
+    my $self = {
+        server => $server,
+        encrypted => $encrypted,
+        level => $level,
+        description => $description
+    };
+
+    return bless $self, $class;
+}
+
+#Read only accessors
+sub server
+{
+    my $self = shift;
+    return $self->{server};
+}
+sub encrypted
+{
+    my $self = shift;
+    return $self->{encrypted};
+}
+sub level
+{
+    my $self = shift;
+    return $self->{level};
+}
+sub description
+{
+    my $self = shift;
+    return $self->{description};
+}
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/Certificate.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/Certificate.pm
new file mode 100644
index 0000000..7373713
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/Certificate.pm
@@ -0,0 +1,214 @@
+# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+
+package TLSProxy::Certificate;
+
+use vars '@ISA';
+push @ISA, 'TLSProxy::Message';
+
+sub new
+{
+    my $class = shift;
+    my ($server,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens) = @_;
+
+    my $self = $class->SUPER::new(
+        $server,
+        TLSProxy::Message::MT_CERTIFICATE,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens);
+
+    $self->{first_certificate} = "";
+    $self->{extension_data} = "";
+    $self->{remaining_certdata} = "";
+
+    return $self;
+}
+
+sub parse
+{
+    my $self = shift;
+
+    if (TLSProxy::Proxy->is_tls13()) {
+        my $context_len = unpack('C', $self->data);
+        my $context = substr($self->data, 1, $context_len);
+
+        my $remdata = substr($self->data, 1 + $context_len);
+
+        my ($hicertlistlen, $certlistlen) = unpack('Cn', $remdata);
+        $certlistlen += ($hicertlistlen << 16);
+
+        $remdata = substr($remdata, 3);
+
+        die "Invalid Certificate List length"
+            if length($remdata) != $certlistlen;
+
+        my ($hicertlen, $certlen) = unpack('Cn', $remdata);
+        $certlen += ($hicertlen << 16);
+
+        die "Certificate too long" if ($certlen + 3) > $certlistlen;
+
+        $remdata = substr($remdata, 3);
+
+        my $certdata = substr($remdata, 0, $certlen);
+
+        $remdata = substr($remdata, $certlen);
+
+        my $extensions_len = unpack('n', $remdata);
+        $remdata = substr($remdata, 2);
+
+        die "Extensions too long"
+            if ($certlen + 3 + $extensions_len + 2) > $certlistlen;
+
+        my $extension_data = "";
+        if ($extensions_len != 0) {
+            $extension_data = substr($remdata, 0, $extensions_len);
+
+            if (length($extension_data) != $extensions_len) {
+                die "Invalid extension length\n";
+            }
+        }
+        my %extensions = ();
+        while (length($extension_data) >= 4) {
+            my ($type, $size) = unpack("nn", $extension_data);
+            my $extdata = substr($extension_data, 4, $size);
+            $extension_data = substr($extension_data, 4 + $size);
+            $extensions{$type} = $extdata;
+        }
+        $remdata = substr($remdata, $extensions_len);
+
+        $self->context($context);
+        $self->first_certificate($certdata);
+        $self->extension_data(\%extensions);
+        $self->remaining_certdata($remdata);
+
+        print "    Context:".$context."\n";
+        print "    Certificate List Len:".$certlistlen."\n";
+        print "    Certificate Len:".$certlen."\n";
+        print "    Extensions Len:".$extensions_len."\n";
+    } else {
+        my ($hicertlistlen, $certlistlen) = unpack('Cn', $self->data);
+        $certlistlen += ($hicertlistlen << 16);
+
+        my $remdata = substr($self->data, 3);
+
+        die "Invalid Certificate List length"
+            if length($remdata) != $certlistlen;
+
+        my ($hicertlen, $certlen) = unpack('Cn', $remdata);
+        $certlen += ($hicertlen << 16);
+
+        die "Certificate too long" if ($certlen + 3) > $certlistlen;
+
+        $remdata = substr($remdata, 3);
+
+        my $certdata = substr($remdata, 0, $certlen);
+
+        $remdata = substr($remdata, $certlen);
+
+        $self->first_certificate($certdata);
+        $self->remaining_certdata($remdata);
+
+        print "    Certificate List Len:".$certlistlen."\n";
+        print "    Certificate Len:".$certlen."\n";
+    }
+}
+
+#Reconstruct the on-the-wire message data following changes
+sub set_message_contents
+{
+    my $self = shift;
+    my $data;
+    my $extensions = "";
+
+    if (TLSProxy::Proxy->is_tls13()) {
+        foreach my $key (keys %{$self->extension_data}) {
+            my $extdata = ${$self->extension_data}{$key};
+            $extensions .= pack("n", $key);
+            $extensions .= pack("n", length($extdata));
+            $extensions .= $extdata;
+        }
+        $data = pack('C', length($self->context()));
+        $data .= $self->context;
+        my $certlen = length($self->first_certificate);
+        my $certlistlen = $certlen + length($extensions)
+                          + length($self->remaining_certdata);
+        my $hi = $certlistlen >> 16;
+        $certlistlen = $certlistlen & 0xffff;
+        $data .= pack('Cn', $hi, $certlistlen);
+        $hi = $certlen >> 16;
+        $certlen = $certlen & 0xffff;
+        $data .= pack('Cn', $hi, $certlen);
+        $data .= pack('n', length($extensions));
+        $data .= $extensions;
+        $data .= $self->remaining_certdata();
+        $self->data($data);
+    } else {
+        my $certlen = length($self->first_certificate);
+        my $certlistlen = $certlen + length($self->remaining_certdata);
+        my $hi = $certlistlen >> 16;
+        $certlistlen = $certlistlen & 0xffff;
+        $data .= pack('Cn', $hi, $certlistlen);
+        $hi = $certlen >> 16;
+        $certlen = $certlen & 0xffff;
+        $data .= pack('Cn', $hi, $certlen);
+        $data .= $self->remaining_certdata();
+        $self->data($data);
+    }
+}
+
+#Read/write accessors
+sub context
+{
+    my $self = shift;
+    if (@_) {
+      $self->{context} = shift;
+    }
+    return $self->{context};
+}
+sub first_certificate
+{
+    my $self = shift;
+    if (@_) {
+      $self->{first_certificate} = shift;
+    }
+    return $self->{first_certificate};
+}
+sub remaining_certdata
+{
+    my $self = shift;
+    if (@_) {
+      $self->{remaining_certdata} = shift;
+    }
+    return $self->{remaining_certdata};
+}
+sub extension_data
+{
+    my $self = shift;
+    if (@_) {
+      $self->{extension_data} = shift;
+    }
+    return $self->{extension_data};
+}
+sub set_extension
+{
+    my ($self, $ext_type, $ext_data) = @_;
+    $self->{extension_data}{$ext_type} = $ext_data;
+}
+sub delete_extension
+{
+    my ($self, $ext_type) = @_;
+    delete $self->{extension_data}{$ext_type};
+}
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/CertificateRequest.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/CertificateRequest.pm
new file mode 100644
index 0000000..bc41053
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/CertificateRequest.pm
@@ -0,0 +1,105 @@
+# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+
+package TLSProxy::CertificateRequest;
+
+use vars '@ISA';
+push @ISA, 'TLSProxy::Message';
+
+sub new
+{
+    my $class = shift;
+    my ($server,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens) = @_;
+
+    my $self = $class->SUPER::new(
+        $server,
+        TLSProxy::Message::MT_CERTIFICATE_REQUEST,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens);
+
+    $self->{extension_data} = "";
+
+    return $self;
+}
+
+sub parse
+{
+    my $self = shift;
+    my $ptr = 1;
+
+    if (TLSProxy::Proxy->is_tls13()) {
+        my $request_ctx_len = unpack('C', $self->data);
+        my $request_ctx = substr($self->data, $ptr, $request_ctx_len);
+        $ptr += $request_ctx_len;
+
+        my $extensions_len = unpack('n', substr($self->data, $ptr));
+        $ptr += 2;
+        my $extension_data = substr($self->data, $ptr);
+        if (length($extension_data) != $extensions_len) {
+            die "Invalid extension length\n";
+        }
+        my %extensions = ();
+        while (length($extension_data) >= 4) {
+            my ($type, $size) = unpack("nn", $extension_data);
+            my $extdata = substr($extension_data, 4, $size);
+            $extension_data = substr($extension_data, 4 + $size);
+            $extensions{$type} = $extdata;
+        }
+        $self->extension_data(\%extensions);
+
+        print "    Extensions Len:".$extensions_len."\n";
+    }
+    # else parse TLSv1.2 version - we don't support that at the moment
+}
+
+#Reconstruct the on-the-wire message data following changes
+sub set_message_contents
+{
+    my $self = shift;
+    my $data;
+    my $extensions = "";
+
+    foreach my $key (keys %{$self->extension_data}) {
+        my $extdata = ${$self->extension_data}{$key};
+        $extensions .= pack("n", $key);
+        $extensions .= pack("n", length($extdata));
+        $extensions .= $extdata;
+    }
+
+    $data = pack('n', length($extensions));
+    $data .= $extensions;
+    $self->data($data);
+}
+
+#Read/write accessors
+sub extension_data
+{
+    my $self = shift;
+    if (@_) {
+        $self->{extension_data} = shift;
+    }
+    return $self->{extension_data};
+}
+sub set_extension
+{
+    my ($self, $ext_type, $ext_data) = @_;
+    $self->{extension_data}{$ext_type} = $ext_data;
+}
+sub delete_extension
+{
+    my ($self, $ext_type) = @_;
+    delete $self->{extension_data}{$ext_type};
+}
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/CertificateVerify.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/CertificateVerify.pm
new file mode 100644
index 0000000..8bf969f
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/CertificateVerify.pm
@@ -0,0 +1,96 @@
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+
+package TLSProxy::CertificateVerify;
+
+use vars '@ISA';
+push @ISA, 'TLSProxy::Message';
+
+sub new
+{
+    my $class = shift;
+    my ($server,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens) = @_;
+
+    my $self = $class->SUPER::new(
+        $server,
+        TLSProxy::Message::MT_CERTIFICATE_VERIFY,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens);
+
+    $self->{sigalg} = -1;
+    $self->{signature} = "";
+
+    return $self;
+}
+
+sub parse
+{
+    my $self = shift;
+
+    my $sigalg = -1;
+    my $remdata = $self->data;
+    my $record = ${$self->records}[0];
+
+    if (TLSProxy::Proxy->is_tls13()
+            || $record->version() == TLSProxy::Record::VERS_TLS_1_2) {
+        $sigalg = unpack('n', $remdata);
+        $remdata = substr($remdata, 2);
+    }
+
+    my $siglen = unpack('n', substr($remdata, 0, 2));
+    my $sig = substr($remdata, 2);
+
+    die "Invalid CertificateVerify signature length" if length($sig) != $siglen;
+
+    print "    SigAlg:".$sigalg."\n";
+    print "    Signature Len:".$siglen."\n";
+
+    $self->sigalg($sigalg);
+    $self->signature($sig);
+}
+
+#Reconstruct the on-the-wire message data following changes
+sub set_message_contents
+{
+    my $self = shift;
+    my $data = "";
+    my $sig = $self->signature();
+    my $olddata = $self->data();
+
+    $data .= pack("n", $self->sigalg()) if ($self->sigalg() != -1);
+    $data .= pack("n", length($sig));
+    $data .= $sig;
+
+    $self->data($data);
+}
+
+#Read/write accessors
+sub sigalg
+{
+    my $self = shift;
+    if (@_) {
+      $self->{sigalg} = shift;
+    }
+    return $self->{sigalg};
+}
+sub signature
+{
+    my $self = shift;
+    if (@_) {
+      $self->{signature} = shift;
+    }
+    return $self->{signature};
+}
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/ClientHello.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/ClientHello.pm
new file mode 100644
index 0000000..76dce74
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/ClientHello.pm
@@ -0,0 +1,258 @@
+# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+
+package TLSProxy::ClientHello;
+
+use vars '@ISA';
+push @ISA, 'TLSProxy::Message';
+
+sub new
+{
+    my $class = shift;
+    my ($server,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens) = @_;
+
+    my $self = $class->SUPER::new(
+        $server,
+        1,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens);
+
+    $self->{client_version} = 0;
+    $self->{random} = [];
+    $self->{session_id_len} = 0;
+    $self->{session} = "";
+    $self->{ciphersuite_len} = 0;
+    $self->{ciphersuites} = [];
+    $self->{comp_meth_len} = 0;
+    $self->{comp_meths} = [];
+    $self->{extensions_len} = 0;
+    $self->{extension_data} = "";
+
+    return $self;
+}
+
+sub parse
+{
+    my $self = shift;
+    my $ptr = 2;
+    my ($client_version) = unpack('n', $self->data);
+    my $random = substr($self->data, $ptr, 32);
+    $ptr += 32;
+    my $session_id_len = unpack('C', substr($self->data, $ptr));
+    $ptr++;
+    my $session = substr($self->data, $ptr, $session_id_len);
+    $ptr += $session_id_len;
+    my $ciphersuite_len = unpack('n', substr($self->data, $ptr));
+    $ptr += 2;
+    my @ciphersuites = unpack('n*', substr($self->data, $ptr,
+                                           $ciphersuite_len));
+    $ptr += $ciphersuite_len;
+    my $comp_meth_len = unpack('C', substr($self->data, $ptr));
+    $ptr++;
+    my @comp_meths = unpack('C*', substr($self->data, $ptr, $comp_meth_len));
+    $ptr += $comp_meth_len;
+    my $extensions_len = unpack('n', substr($self->data, $ptr));
+    $ptr += 2;
+    #For now we just deal with this as a block of data. In the future we will
+    #want to parse this
+    my $extension_data = substr($self->data, $ptr);
+
+    if (length($extension_data) != $extensions_len) {
+        die "Invalid extension length\n";
+    }
+    my %extensions = ();
+    while (length($extension_data) >= 4) {
+        my ($type, $size) = unpack("nn", $extension_data);
+        my $extdata = substr($extension_data, 4, $size);
+        $extension_data = substr($extension_data, 4 + $size);
+        $extensions{$type} = $extdata;
+    }
+
+    $self->client_version($client_version);
+    $self->random($random);
+    $self->session_id_len($session_id_len);
+    $self->session($session);
+    $self->ciphersuite_len($ciphersuite_len);
+    $self->ciphersuites(\@ciphersuites);
+    $self->comp_meth_len($comp_meth_len);
+    $self->comp_meths(\@comp_meths);
+    $self->extensions_len($extensions_len);
+    $self->extension_data(\%extensions);
+
+    $self->process_extensions();
+
+    print "    Client Version:".$client_version."\n";
+    print "    Session ID Len:".$session_id_len."\n";
+    print "    Ciphersuite len:".$ciphersuite_len."\n";
+    print "    Compression Method Len:".$comp_meth_len."\n";
+    print "    Extensions Len:".$extensions_len."\n";
+}
+
+#Perform any actions necessary based on the extensions we've seen
+sub process_extensions
+{
+    my $self = shift;
+    my %extensions = %{$self->extension_data};
+
+    #Clear any state from a previous run
+    TLSProxy::Record->etm(0);
+
+    if (exists $extensions{TLSProxy::Message::EXT_ENCRYPT_THEN_MAC}) {
+        TLSProxy::Record->etm(1);
+    }
+}
+
+sub extension_contents
+{
+    my $self = shift;
+    my $key = shift;
+    my $extension = "";
+
+    my $extdata = ${$self->extension_data}{$key};
+    $extension .= pack("n", $key);
+    $extension .= pack("n", length($extdata));
+    $extension .= $extdata;
+    return $extension;
+}
+
+#Reconstruct the on-the-wire message data following changes
+sub set_message_contents
+{
+    my $self = shift;
+    my $data;
+    my $extensions = "";
+
+    $data = pack('n', $self->client_version);
+    $data .= $self->random;
+    $data .= pack('C', $self->session_id_len);
+    $data .= $self->session;
+    $data .= pack('n', $self->ciphersuite_len);
+    $data .= pack("n*", @{$self->ciphersuites});
+    $data .= pack('C', $self->comp_meth_len);
+    $data .= pack("C*", @{$self->comp_meths});
+
+    foreach my $key (keys %{$self->extension_data}) {
+        next if ($key == TLSProxy::Message::EXT_PSK);
+        $extensions .= $self->extension_contents($key);
+        #Add extension twice if we are duplicating that extension
+        $extensions .= $self->extension_contents($key) if ($key == $self->dupext);
+    }
+    #PSK extension always goes last...
+    if (defined ${$self->extension_data}{TLSProxy::Message::EXT_PSK}) {
+        $extensions .= $self->extension_contents(TLSProxy::Message::EXT_PSK);
+    }
+    #unless we have EXT_FORCE_LAST
+    if (defined ${$self->extension_data}{TLSProxy::Message::EXT_FORCE_LAST}) {
+        $extensions .= $self->extension_contents(TLSProxy::Message::EXT_FORCE_LAST);
+    }
+
+    $data .= pack('n', length($extensions));
+    $data .= $extensions;
+
+    $self->data($data);
+}
+
+#Read/write accessors
+sub client_version
+{
+    my $self = shift;
+    if (@_) {
+      $self->{client_version} = shift;
+    }
+    return $self->{client_version};
+}
+sub random
+{
+    my $self = shift;
+    if (@_) {
+      $self->{random} = shift;
+    }
+    return $self->{random};
+}
+sub session_id_len
+{
+    my $self = shift;
+    if (@_) {
+      $self->{session_id_len} = shift;
+    }
+    return $self->{session_id_len};
+}
+sub session
+{
+    my $self = shift;
+    if (@_) {
+      $self->{session} = shift;
+    }
+    return $self->{session};
+}
+sub ciphersuite_len
+{
+    my $self = shift;
+    if (@_) {
+      $self->{ciphersuite_len} = shift;
+    }
+    return $self->{ciphersuite_len};
+}
+sub ciphersuites
+{
+    my $self = shift;
+    if (@_) {
+      $self->{ciphersuites} = shift;
+    }
+    return $self->{ciphersuites};
+}
+sub comp_meth_len
+{
+    my $self = shift;
+    if (@_) {
+      $self->{comp_meth_len} = shift;
+    }
+    return $self->{comp_meth_len};
+}
+sub comp_meths
+{
+    my $self = shift;
+    if (@_) {
+      $self->{comp_meths} = shift;
+    }
+    return $self->{comp_meths};
+}
+sub extensions_len
+{
+    my $self = shift;
+    if (@_) {
+      $self->{extensions_len} = shift;
+    }
+    return $self->{extensions_len};
+}
+sub extension_data
+{
+    my $self = shift;
+    if (@_) {
+      $self->{extension_data} = shift;
+    }
+    return $self->{extension_data};
+}
+sub set_extension
+{
+    my ($self, $ext_type, $ext_data) = @_;
+    $self->{extension_data}{$ext_type} = $ext_data;
+}
+sub delete_extension
+{
+    my ($self, $ext_type) = @_;
+    delete $self->{extension_data}{$ext_type};
+}
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/EncryptedExtensions.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/EncryptedExtensions.pm
new file mode 100644
index 0000000..262b720
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/EncryptedExtensions.pm
@@ -0,0 +1,110 @@
+# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+
+package TLSProxy::EncryptedExtensions;
+
+use vars '@ISA';
+push @ISA, 'TLSProxy::Message';
+
+sub new
+{
+    my $class = shift;
+    my ($server,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens) = @_;
+
+    my $self = $class->SUPER::new(
+        $server,
+        TLSProxy::Message::MT_ENCRYPTED_EXTENSIONS,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens);
+
+    $self->{extension_data} = "";
+
+    return $self;
+}
+
+sub parse
+{
+    my $self = shift;
+
+    my $extensions_len = unpack('n', $self->data);
+    if (!defined $extensions_len) {
+        $extensions_len = 0;
+    }
+
+    my $extension_data;
+    if ($extensions_len != 0) {
+        $extension_data = substr($self->data, 2);
+
+        if (length($extension_data) != $extensions_len) {
+            die "Invalid extension length\n";
+        }
+    } else {
+        if (length($self->data) != 2) {
+            die "Invalid extension length\n";
+        }
+        $extension_data = "";
+    }
+    my %extensions = ();
+    while (length($extension_data) >= 4) {
+        my ($type, $size) = unpack("nn", $extension_data);
+        my $extdata = substr($extension_data, 4, $size);
+        $extension_data = substr($extension_data, 4 + $size);
+        $extensions{$type} = $extdata;
+    }
+
+    $self->extension_data(\%extensions);
+
+    print "    Extensions Len:".$extensions_len."\n";
+}
+
+#Reconstruct the on-the-wire message data following changes
+sub set_message_contents
+{
+    my $self = shift;
+    my $data;
+    my $extensions = "";
+
+    foreach my $key (keys %{$self->extension_data}) {
+        my $extdata = ${$self->extension_data}{$key};
+        $extensions .= pack("n", $key);
+        $extensions .= pack("n", length($extdata));
+        $extensions .= $extdata;
+    }
+
+    $data = pack('n', length($extensions));
+    $data .= $extensions;
+    $self->data($data);
+}
+
+#Read/write accessors
+sub extension_data
+{
+    my $self = shift;
+    if (@_) {
+        $self->{extension_data} = shift;
+    }
+    return $self->{extension_data};
+}
+sub set_extension
+{
+    my ($self, $ext_type, $ext_data) = @_;
+    $self->{extension_data}{$ext_type} = $ext_data;
+}
+sub delete_extension
+{
+    my ($self, $ext_type) = @_;
+    delete $self->{extension_data}{$ext_type};
+}
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/Message.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/Message.pm
new file mode 100644
index 0000000..c3c4806
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/Message.pm
@@ -0,0 +1,629 @@
+# Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+
+package TLSProxy::Message;
+
+use TLSProxy::Alert;
+
+use constant TLS_MESSAGE_HEADER_LENGTH => 4;
+
+#Message types
+use constant {
+    MT_HELLO_REQUEST => 0,
+    MT_CLIENT_HELLO => 1,
+    MT_SERVER_HELLO => 2,
+    MT_NEW_SESSION_TICKET => 4,
+    MT_ENCRYPTED_EXTENSIONS => 8,
+    MT_CERTIFICATE => 11,
+    MT_SERVER_KEY_EXCHANGE => 12,
+    MT_CERTIFICATE_REQUEST => 13,
+    MT_SERVER_HELLO_DONE => 14,
+    MT_CERTIFICATE_VERIFY => 15,
+    MT_CLIENT_KEY_EXCHANGE => 16,
+    MT_FINISHED => 20,
+    MT_CERTIFICATE_STATUS => 22,
+    MT_NEXT_PROTO => 67
+};
+
+#Alert levels
+use constant {
+    AL_LEVEL_WARN => 1,
+    AL_LEVEL_FATAL => 2
+};
+
+#Alert descriptions
+use constant {
+    AL_DESC_CLOSE_NOTIFY => 0,
+    AL_DESC_UNEXPECTED_MESSAGE => 10,
+    AL_DESC_ILLEGAL_PARAMETER => 47,
+    AL_DESC_NO_RENEGOTIATION => 100
+};
+
+my %message_type = (
+    MT_HELLO_REQUEST, "HelloRequest",
+    MT_CLIENT_HELLO, "ClientHello",
+    MT_SERVER_HELLO, "ServerHello",
+    MT_NEW_SESSION_TICKET, "NewSessionTicket",
+    MT_ENCRYPTED_EXTENSIONS, "EncryptedExtensions",
+    MT_CERTIFICATE, "Certificate",
+    MT_SERVER_KEY_EXCHANGE, "ServerKeyExchange",
+    MT_CERTIFICATE_REQUEST, "CertificateRequest",
+    MT_SERVER_HELLO_DONE, "ServerHelloDone",
+    MT_CERTIFICATE_VERIFY, "CertificateVerify",
+    MT_CLIENT_KEY_EXCHANGE, "ClientKeyExchange",
+    MT_FINISHED, "Finished",
+    MT_CERTIFICATE_STATUS, "CertificateStatus",
+    MT_NEXT_PROTO, "NextProto"
+);
+
+use constant {
+    EXT_SERVER_NAME => 0,
+    EXT_MAX_FRAGMENT_LENGTH => 1,
+    EXT_STATUS_REQUEST => 5,
+    EXT_SUPPORTED_GROUPS => 10,
+    EXT_EC_POINT_FORMATS => 11,
+    EXT_SRP => 12,
+    EXT_SIG_ALGS => 13,
+    EXT_USE_SRTP => 14,
+    EXT_ALPN => 16,
+    EXT_SCT => 18,
+    EXT_PADDING => 21,
+    EXT_ENCRYPT_THEN_MAC => 22,
+    EXT_EXTENDED_MASTER_SECRET => 23,
+    EXT_SESSION_TICKET => 35,
+    EXT_KEY_SHARE => 51,
+    EXT_PSK => 41,
+    EXT_SUPPORTED_VERSIONS => 43,
+    EXT_COOKIE => 44,
+    EXT_PSK_KEX_MODES => 45,
+    EXT_POST_HANDSHAKE_AUTH => 49,
+    EXT_SIG_ALGS_CERT => 50,
+    EXT_RENEGOTIATE => 65281,
+    EXT_NPN => 13172,
+    EXT_CRYPTOPRO_BUG_EXTENSION => 0xfde8,
+    EXT_UNKNOWN => 0xfffe,
+    #Unknown extension that should appear last
+    EXT_FORCE_LAST => 0xffff
+};
+
+# SignatureScheme of TLS 1.3 from:
+# https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-signaturescheme
+# We have to manually grab the SHA224 equivalents from the old registry
+use constant {
+    SIG_ALG_RSA_PKCS1_SHA256 => 0x0401,
+    SIG_ALG_RSA_PKCS1_SHA384 => 0x0501,
+    SIG_ALG_RSA_PKCS1_SHA512 => 0x0601,
+    SIG_ALG_ECDSA_SECP256R1_SHA256 => 0x0403,
+    SIG_ALG_ECDSA_SECP384R1_SHA384 => 0x0503,
+    SIG_ALG_ECDSA_SECP521R1_SHA512 => 0x0603,
+    SIG_ALG_RSA_PSS_RSAE_SHA256 => 0x0804,
+    SIG_ALG_RSA_PSS_RSAE_SHA384 => 0x0805,
+    SIG_ALG_RSA_PSS_RSAE_SHA512 => 0x0806,
+    SIG_ALG_ED25519 => 0x0807,
+    SIG_ALG_ED448 => 0x0808,
+    SIG_ALG_RSA_PSS_PSS_SHA256 => 0x0809,
+    SIG_ALG_RSA_PSS_PSS_SHA384 => 0x080a,
+    SIG_ALG_RSA_PSS_PSS_SHA512 => 0x080b,
+    SIG_ALG_RSA_PKCS1_SHA1 => 0x0201,
+    SIG_ALG_ECDSA_SHA1 => 0x0203,
+    SIG_ALG_DSA_SHA1 => 0x0202,
+    SIG_ALG_DSA_SHA256 => 0x0402,
+    SIG_ALG_DSA_SHA384 => 0x0502,
+    SIG_ALG_DSA_SHA512 => 0x0602,
+    OSSL_SIG_ALG_RSA_PKCS1_SHA224 => 0x0301,
+    OSSL_SIG_ALG_DSA_SHA224 => 0x0302,
+    OSSL_SIG_ALG_ECDSA_SHA224 => 0x0303
+};
+
+use constant {
+    CIPHER_RSA_WITH_AES_128_CBC_SHA => 0x002f,
+    CIPHER_DHE_RSA_AES_128_SHA => 0x0033,
+    CIPHER_ADH_AES_128_SHA => 0x0034,
+    CIPHER_TLS13_AES_128_GCM_SHA256 => 0x1301,
+    CIPHER_TLS13_AES_256_GCM_SHA384 => 0x1302
+};
+
+use constant {
+    CLIENT => 0,
+    SERVER => 1
+};
+
+my $payload = "";
+my $messlen = -1;
+my $mt;
+my $startoffset = -1;
+my $server = 0;
+my $success = 0;
+my $end = 0;
+my @message_rec_list = ();
+my @message_frag_lens = ();
+my $ciphersuite = 0;
+my $successondata = 0;
+my $alert;
+
+sub clear
+{
+    $payload = "";
+    $messlen = -1;
+    $startoffset = -1;
+    $server = 0;
+    $success = 0;
+    $end = 0;
+    $successondata = 0;
+    @message_rec_list = ();
+    @message_frag_lens = ();
+    $alert = undef;
+}
+
+#Class method to extract messages from a record
+sub get_messages
+{
+    my $class = shift;
+    my $serverin = shift;
+    my $record = shift;
+    my @messages = ();
+    my $message;
+
+    @message_frag_lens = ();
+
+    if ($serverin != $server && length($payload) != 0) {
+        die "Changed peer, but we still have fragment data\n";
+    }
+    $server = $serverin;
+
+    if ($record->content_type == TLSProxy::Record::RT_CCS) {
+        if ($payload ne "") {
+            #We can't handle this yet
+            die "CCS received before message data complete\n";
+        }
+        if (!TLSProxy::Proxy->is_tls13()) {
+            if ($server) {
+                TLSProxy::Record->server_encrypting(1);
+            } else {
+                TLSProxy::Record->client_encrypting(1);
+            }
+        }
+    } elsif ($record->content_type == TLSProxy::Record::RT_HANDSHAKE) {
+        if ($record->len == 0 || $record->len_real == 0) {
+            print "  Message truncated\n";
+        } else {
+            my $recoffset = 0;
+
+            if (length $payload > 0) {
+                #We are continuing processing a message started in a previous
+                #record. Add this record to the list associated with this
+                #message
+                push @message_rec_list, $record;
+
+                if ($messlen <= length($payload)) {
+                    #Shouldn't happen
+                    die "Internal error: invalid messlen: ".$messlen
+                        ." payload length:".length($payload)."\n";
+                }
+                if (length($payload) + $record->decrypt_len >= $messlen) {
+                    #We can complete the message with this record
+                    $recoffset = $messlen - length($payload);
+                    $payload .= substr($record->decrypt_data, 0, $recoffset);
+                    push @message_frag_lens, $recoffset;
+                    $message = create_message($server, $mt, $payload,
+                                              $startoffset);
+                    push @messages, $message;
+
+                    $payload = "";
+                } else {
+                    #This is just part of the total message
+                    $payload .= $record->decrypt_data;
+                    $recoffset = $record->decrypt_len;
+                    push @message_frag_lens, $record->decrypt_len;
+                }
+                print "  Partial message data read: ".$recoffset." bytes\n";
+            }
+
+            while ($record->decrypt_len > $recoffset) {
+                #We are at the start of a new message
+                if ($record->decrypt_len - $recoffset < 4) {
+                    #Whilst technically probably valid we can't cope with this
+                    die "End of record in the middle of a message header\n";
+                }
+                @message_rec_list = ($record);
+                my $lenhi;
+                my $lenlo;
+                ($mt, $lenhi, $lenlo) = unpack('CnC',
+                                               substr($record->decrypt_data,
+                                                      $recoffset));
+                $messlen = ($lenhi << 8) | $lenlo;
+                print "  Message type: $message_type{$mt}\n";
+                print "  Message Length: $messlen\n";
+                $startoffset = $recoffset;
+                $recoffset += 4;
+                $payload = "";
+
+                if ($recoffset <= $record->decrypt_len) {
+                    #Some payload data is present in this record
+                    if ($record->decrypt_len - $recoffset >= $messlen) {
+                        #We can complete the message with this record
+                        $payload .= substr($record->decrypt_data, $recoffset,
+                                           $messlen);
+                        $recoffset += $messlen;
+                        push @message_frag_lens, $messlen;
+                        $message = create_message($server, $mt, $payload,
+                                                  $startoffset);
+                        push @messages, $message;
+
+                        $payload = "";
+                    } else {
+                        #This is just part of the total message
+                        $payload .= substr($record->decrypt_data, $recoffset,
+                                           $record->decrypt_len - $recoffset);
+                        $recoffset = $record->decrypt_len;
+                        push @message_frag_lens, $recoffset;
+                    }
+                }
+            }
+        }
+    } elsif ($record->content_type == TLSProxy::Record::RT_APPLICATION_DATA) {
+        print "  [ENCRYPTED APPLICATION DATA]\n";
+        print "  [".$record->decrypt_data."]\n";
+
+        if ($successondata) {
+            $success = 1;
+            $end = 1;
+        }
+    } elsif ($record->content_type == TLSProxy::Record::RT_ALERT) {
+        my ($alertlev, $alertdesc) = unpack('CC', $record->decrypt_data);
+        print "  [$alertlev, $alertdesc]\n";
+        #A CloseNotify from the client indicates we have finished successfully
+        #(we assume)
+        if (!$end && !$server && $alertlev == AL_LEVEL_WARN
+            && $alertdesc == AL_DESC_CLOSE_NOTIFY) {
+            $success = 1;
+        }
+        #Fatal or close notify alerts end the test
+        if ($alertlev == AL_LEVEL_FATAL || $alertdesc == AL_DESC_CLOSE_NOTIFY) {
+            $end = 1;
+        }
+        $alert = TLSProxy::Alert->new(
+            $server,
+            $record->encrypted,
+            $alertlev,
+            $alertdesc);
+    }
+
+    return @messages;
+}
+
+#Function to work out which sub-class we need to create and then
+#construct it
+sub create_message
+{
+    my ($server, $mt, $data, $startoffset) = @_;
+    my $message;
+
+    #We only support ClientHello in this version...needs to be extended for
+    #others
+    if ($mt == MT_CLIENT_HELLO) {
+        $message = TLSProxy::ClientHello->new(
+            $server,
+            $data,
+            [@message_rec_list],
+            $startoffset,
+            [@message_frag_lens]
+        );
+        $message->parse();
+    } elsif ($mt == MT_SERVER_HELLO) {
+        $message = TLSProxy::ServerHello->new(
+            $server,
+            $data,
+            [@message_rec_list],
+            $startoffset,
+            [@message_frag_lens]
+        );
+        $message->parse();
+    } elsif ($mt == MT_ENCRYPTED_EXTENSIONS) {
+        $message = TLSProxy::EncryptedExtensions->new(
+            $server,
+            $data,
+            [@message_rec_list],
+            $startoffset,
+            [@message_frag_lens]
+        );
+        $message->parse();
+    } elsif ($mt == MT_CERTIFICATE) {
+        $message = TLSProxy::Certificate->new(
+            $server,
+            $data,
+            [@message_rec_list],
+            $startoffset,
+            [@message_frag_lens]
+        );
+        $message->parse();
+    } elsif ($mt == MT_CERTIFICATE_REQUEST) {
+        $message = TLSProxy::CertificateRequest->new(
+            $server,
+            $data,
+            [@message_rec_list],
+            $startoffset,
+            [@message_frag_lens]
+        );
+        $message->parse();
+    } elsif ($mt == MT_CERTIFICATE_VERIFY) {
+        $message = TLSProxy::CertificateVerify->new(
+            $server,
+            $data,
+            [@message_rec_list],
+            $startoffset,
+            [@message_frag_lens]
+        );
+        $message->parse();
+    } elsif ($mt == MT_SERVER_KEY_EXCHANGE) {
+        $message = TLSProxy::ServerKeyExchange->new(
+            $server,
+            $data,
+            [@message_rec_list],
+            $startoffset,
+            [@message_frag_lens]
+        );
+        $message->parse();
+    } elsif ($mt == MT_NEW_SESSION_TICKET) {
+        $message = TLSProxy::NewSessionTicket->new(
+            $server,
+            $data,
+            [@message_rec_list],
+            $startoffset,
+            [@message_frag_lens]
+        );
+        $message->parse();
+    } else {
+        #Unknown message type
+        $message = TLSProxy::Message->new(
+            $server,
+            $mt,
+            $data,
+            [@message_rec_list],
+            $startoffset,
+            [@message_frag_lens]
+        );
+    }
+
+    return $message;
+}
+
+sub end
+{
+    my $class = shift;
+    return $end;
+}
+sub success
+{
+    my $class = shift;
+    return $success;
+}
+sub fail
+{
+    my $class = shift;
+    return !$success && $end;
+}
+
+sub alert
+{
+    return $alert;
+}
+
+sub new
+{
+    my $class = shift;
+    my ($server,
+        $mt,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens) = @_;
+
+    my $self = {
+        server => $server,
+        data => $data,
+        records => $records,
+        mt => $mt,
+        startoffset => $startoffset,
+        message_frag_lens => $message_frag_lens,
+        dupext => -1
+    };
+
+    return bless $self, $class;
+}
+
+sub ciphersuite
+{
+    my $class = shift;
+    if (@_) {
+      $ciphersuite = shift;
+    }
+    return $ciphersuite;
+}
+
+#Update all the underlying records with the modified data from this message
+#Note: Only supports TLSv1.3 and ETM encryption
+sub repack
+{
+    my $self = shift;
+    my $msgdata;
+
+    my $numrecs = $#{$self->records};
+
+    $self->set_message_contents();
+
+    my $lenhi;
+    my $lenlo;
+
+    $lenlo = length($self->data) & 0xff;
+    $lenhi = length($self->data) >> 8;
+    $msgdata = pack('CnC', $self->mt, $lenhi, $lenlo).$self->data;
+
+    if ($numrecs == 0) {
+        #The message is fully contained within one record
+        my ($rec) = @{$self->records};
+        my $recdata = $rec->decrypt_data;
+
+        my $old_length;
+
+        # We use empty message_frag_lens to indicates that pre-repacking,
+        # the message wasn't present. The first fragment length doesn't include
+        # the TLS header, so we need to check and compute the right length.
+        if (@{$self->message_frag_lens}) {
+            $old_length = ${$self->message_frag_lens}[0] +
+              TLS_MESSAGE_HEADER_LENGTH;
+        } else {
+            $old_length = 0;
+        }
+
+        my $prefix = substr($recdata, 0, $self->startoffset);
+        my $suffix = substr($recdata, $self->startoffset + $old_length);
+
+        $rec->decrypt_data($prefix.($msgdata).($suffix));
+        # TODO(openssl-team): don't keep explicit lengths.
+        # (If a length override is ever needed to construct invalid packets,
+        #  use an explicit override field instead.)
+        $rec->decrypt_len(length($rec->decrypt_data));
+        # Only support re-encryption for TLSv1.3 and ETM.
+        if ($rec->encrypted()) {
+            if (TLSProxy::Proxy->is_tls13()) {
+                #Add content type (1 byte) and 16 tag bytes
+                $rec->data($rec->decrypt_data
+                    .pack("C", TLSProxy::Record::RT_HANDSHAKE).("\0"x16));
+            } elsif ($rec->etm()) {
+                my $data = $rec->decrypt_data;
+                #Add padding
+                my $padval = length($data) % 16;
+                $padval = 15 - $padval;
+                for (0..$padval) {
+                    $data .= pack("C", $padval);
+                }
+
+                #Add MAC. Assumed to be 20 bytes
+                foreach my $macval (0..19) {
+                    $data .= pack("C", $macval);
+                }
+
+                if ($rec->version() >= TLSProxy::Record::VERS_TLS_1_1) {
+                    #Explicit IV
+                    $data = ("\0"x16).$data;
+                }
+                $rec->data($data);
+            } else {
+                die "Unsupported encryption: No ETM";
+            }
+        } else {
+            $rec->data($rec->decrypt_data);
+        }
+        $rec->len(length($rec->data));
+
+        #Update the fragment len in case we changed it above
+        ${$self->message_frag_lens}[0] = length($msgdata)
+                                         - TLS_MESSAGE_HEADER_LENGTH;
+        return;
+    }
+
+    #Note we don't currently support changing a fragmented message length
+    my $recctr = 0;
+    my $datadone = 0;
+    foreach my $rec (@{$self->records}) {
+        my $recdata = $rec->decrypt_data;
+        if ($recctr == 0) {
+            #This is the first record
+            my $remainlen = length($recdata) - $self->startoffset;
+            $rec->data(substr($recdata, 0, $self->startoffset)
+                       .substr(($msgdata), 0, $remainlen));
+            $datadone += $remainlen;
+        } elsif ($recctr + 1 == $numrecs) {
+            #This is the last record
+            $rec->data(substr($msgdata, $datadone));
+        } else {
+            #This is a middle record
+            $rec->data(substr($msgdata, $datadone, length($rec->data)));
+            $datadone += length($rec->data);
+        }
+        $recctr++;
+    }
+}
+
+#To be overridden by sub-classes
+sub set_message_contents
+{
+}
+
+#Read only accessors
+sub server
+{
+    my $self = shift;
+    return $self->{server};
+}
+
+#Read/write accessors
+sub mt
+{
+    my $self = shift;
+    if (@_) {
+      $self->{mt} = shift;
+    }
+    return $self->{mt};
+}
+sub data
+{
+    my $self = shift;
+    if (@_) {
+      $self->{data} = shift;
+    }
+    return $self->{data};
+}
+sub records
+{
+    my $self = shift;
+    if (@_) {
+      $self->{records} = shift;
+    }
+    return $self->{records};
+}
+sub startoffset
+{
+    my $self = shift;
+    if (@_) {
+      $self->{startoffset} = shift;
+    }
+    return $self->{startoffset};
+}
+sub message_frag_lens
+{
+    my $self = shift;
+    if (@_) {
+      $self->{message_frag_lens} = shift;
+    }
+    return $self->{message_frag_lens};
+}
+sub encoded_length
+{
+    my $self = shift;
+    return TLS_MESSAGE_HEADER_LENGTH + length($self->data);
+}
+sub dupext
+{
+    my $self = shift;
+    if (@_) {
+        $self->{dupext} = shift;
+    }
+    return $self->{dupext};
+}
+sub successondata
+{
+    my $class = shift;
+    if (@_) {
+        $successondata = shift;
+    }
+    return $successondata;
+}
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/NewSessionTicket.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/NewSessionTicket.pm
new file mode 100644
index 0000000..e509985
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/NewSessionTicket.pm
@@ -0,0 +1,81 @@
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+
+package TLSProxy::NewSessionTicket;
+
+use vars '@ISA';
+push @ISA, 'TLSProxy::Message';
+
+sub new
+{
+    my $class = shift;
+    my ($server,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens) = @_;
+
+    my $self = $class->SUPER::new(
+        $server,
+        TLSProxy::Message::MT_NEW_SESSION_TICKET,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens);
+
+    $self->{ticket_lifetime_hint} = 0;
+    $self->{ticket} = "";
+
+    return $self;
+}
+
+sub parse
+{
+    my $self = shift;
+
+    my $ticket_lifetime_hint = unpack('N', $self->data);
+    my $ticket_len = unpack('n', $self->data);
+    my $ticket = substr($self->data, 6, $ticket_len);
+
+    $self->ticket_lifetime_hint($ticket_lifetime_hint);
+    $self->ticket($ticket);
+}
+
+
+#Reconstruct the on-the-wire message data following changes
+sub set_message_contents
+{
+    my $self = shift;
+    my $data;
+
+    $data = pack('N', $self->ticket_lifetime_hint);
+    $data .= pack('n', length($self->ticket));
+    $data .= $self->ticket;
+
+    $self->data($data);
+}
+
+#Read/write accessors
+sub ticket_lifetime_hint
+{
+    my $self = shift;
+    if (@_) {
+      $self->{ticket_lifetime_hint} = shift;
+    }
+    return $self->{ticket_lifetime_hint};
+}
+sub ticket
+{
+    my $self = shift;
+    if (@_) {
+      $self->{ticket} = shift;
+    }
+    return $self->{ticket};
+}
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/Proxy.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/Proxy.pm
new file mode 100644
index 0000000..6f983b3
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/Proxy.pm
@@ -0,0 +1,729 @@
+# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use POSIX ":sys_wait_h";
+
+package TLSProxy::Proxy;
+
+use File::Spec;
+use IO::Socket;
+use IO::Select;
+use TLSProxy::Record;
+use TLSProxy::Message;
+use TLSProxy::ClientHello;
+use TLSProxy::ServerHello;
+use TLSProxy::EncryptedExtensions;
+use TLSProxy::Certificate;
+use TLSProxy::CertificateRequest;
+use TLSProxy::CertificateVerify;
+use TLSProxy::ServerKeyExchange;
+use TLSProxy::NewSessionTicket;
+
+my $have_IPv6;
+my $IP_factory;
+
+BEGIN
+{
+    # IO::Socket::IP is on the core module list, IO::Socket::INET6 isn't.
+    # However, IO::Socket::INET6 is older and is said to be more widely
+    # deployed for the moment, and may have less bugs, so we try the latter
+    # first, then fall back on the core modules.  Worst case scenario, we
+    # fall back to IO::Socket::INET, only supports IPv4.
+    eval {
+        require IO::Socket::INET6;
+        my $s = IO::Socket::INET6->new(
+            LocalAddr => "::1",
+            LocalPort => 0,
+            Listen=>1,
+            );
+        $s or die "\n";
+        $s->close();
+    };
+    if ($@ eq "") {
+        $IP_factory = sub { IO::Socket::INET6->new(Domain => AF_INET6, @_); };
+        $have_IPv6 = 1;
+    } else {
+        eval {
+            require IO::Socket::IP;
+            my $s = IO::Socket::IP->new(
+                LocalAddr => "::1",
+                LocalPort => 0,
+                Listen=>1,
+                );
+            $s or die "\n";
+            $s->close();
+        };
+        if ($@ eq "") {
+            $IP_factory = sub { IO::Socket::IP->new(@_); };
+            $have_IPv6 = 1;
+        } else {
+            $IP_factory = sub { IO::Socket::INET->new(@_); };
+            $have_IPv6 = 0;
+        }
+    }
+}
+
+my $is_tls13 = 0;
+my $ciphersuite = undef;
+
+sub new
+{
+    my $class = shift;
+    my ($filter,
+        $execute,
+        $cert,
+        $debug) = @_;
+
+    my $self = {
+        #Public read/write
+        proxy_addr => $have_IPv6 ? "[::1]" : "127.0.0.1",
+        filter => $filter,
+        serverflags => "",
+        clientflags => "",
+        serverconnects => 1,
+        reneg => 0,
+        sessionfile => undef,
+
+        #Public read
+        proxy_port => 0,
+        server_port => 0,
+        serverpid => 0,
+        clientpid => 0,
+        execute => $execute,
+        cert => $cert,
+        debug => $debug,
+        cipherc => "",
+        ciphersuitesc => "",
+        ciphers => "AES128-SHA",
+        ciphersuitess => "TLS_AES_128_GCM_SHA256",
+        flight => -1,
+        direction => -1,
+        partial => ["", ""],
+        record_list => [],
+        message_list => [],
+    };
+
+    # Create the Proxy socket
+    my $proxaddr = $self->{proxy_addr};
+    $proxaddr =~ s/[\[\]]//g; # Remove [ and ]
+    my @proxyargs = (
+        LocalHost   => $proxaddr,
+        LocalPort   => 0,
+        Proto       => "tcp",
+        Listen      => SOMAXCONN,
+       );
+
+    if (my $sock = $IP_factory->(@proxyargs)) {
+        $self->{proxy_sock} = $sock;
+        $self->{proxy_port} = $sock->sockport();
+        $self->{proxy_addr} = $sock->sockhost();
+        $self->{proxy_addr} =~ s/(.*:.*)/[$1]/;
+        print "Proxy started on port ",
+              "$self->{proxy_addr}:$self->{proxy_port}\n";
+        # use same address for s_server
+        $self->{server_addr} = $self->{proxy_addr};
+    } else {
+        warn "Failed creating proxy socket (".$proxaddr.",0): $!\n";
+    }
+
+    return bless $self, $class;
+}
+
+sub DESTROY
+{
+    my $self = shift;
+
+    $self->{proxy_sock}->close() if $self->{proxy_sock};
+}
+
+sub clearClient
+{
+    my $self = shift;
+
+    $self->{cipherc} = "";
+    $self->{ciphersuitec} = "";
+    $self->{flight} = -1;
+    $self->{direction} = -1;
+    $self->{partial} = ["", ""];
+    $self->{record_list} = [];
+    $self->{message_list} = [];
+    $self->{clientflags} = "";
+    $self->{sessionfile} = undef;
+    $self->{clientpid} = 0;
+    $is_tls13 = 0;
+    $ciphersuite = undef;
+
+    TLSProxy::Message->clear();
+    TLSProxy::Record->clear();
+}
+
+sub clear
+{
+    my $self = shift;
+
+    $self->clearClient;
+    $self->{ciphers} = "AES128-SHA";
+    $self->{ciphersuitess} = "TLS_AES_128_GCM_SHA256";
+    $self->{serverflags} = "";
+    $self->{serverconnects} = 1;
+    $self->{serverpid} = 0;
+    $self->{reneg} = 0;
+}
+
+sub restart
+{
+    my $self = shift;
+
+    $self->clear;
+    $self->start;
+}
+
+sub clientrestart
+{
+    my $self = shift;
+
+    $self->clear;
+    $self->clientstart;
+}
+
+sub connect_to_server
+{
+    my $self = shift;
+    my $servaddr = $self->{server_addr};
+
+    $servaddr =~ s/[\[\]]//g; # Remove [ and ]
+
+    my $sock = $IP_factory->(PeerAddr => $servaddr,
+                             PeerPort => $self->{server_port},
+                             Proto => 'tcp');
+    if (!defined($sock)) {
+        my $err = $!;
+        kill(3, $self->{real_serverpid});
+        die "unable to connect: $err\n";
+    }
+
+    $self->{server_sock} = $sock;
+}
+
+sub start
+{
+    my ($self) = shift;
+    my $pid;
+
+    if ($self->{proxy_sock} == 0) {
+        return 0;
+    }
+
+    my $execcmd = $self->execute
+        ." s_server -max_protocol TLSv1.3 -no_comp -rev -engine ossltest"
+        #In TLSv1.3 we issue two session tickets. The default session id
+        #callback gets confused because the ossltest engine causes the same
+        #session id to be created twice due to the changed random number
+        #generation. Using "-ext_cache" replaces the default callback with a
+        #different one that doesn't get confused.
+        ." -ext_cache"
+        ." -accept $self->{server_addr}:0"
+        ." -cert ".$self->cert." -cert2 ".$self->cert
+        ." -naccept ".$self->serverconnects;
+    if ($self->ciphers ne "") {
+        $execcmd .= " -cipher ".$self->ciphers;
+    }
+    if ($self->ciphersuitess ne "") {
+        $execcmd .= " -ciphersuites ".$self->ciphersuitess;
+    }
+    if ($self->serverflags ne "") {
+        $execcmd .= " ".$self->serverflags;
+    }
+    if ($self->debug) {
+        print STDERR "Server command: $execcmd\n";
+    }
+
+    open(my $savedin, "<&STDIN");
+
+    # Temporarily replace STDIN so that sink process can inherit it...
+    $pid = open(STDIN, "$execcmd 2>&1 |") or die "Failed to $execcmd: $!\n";
+    $self->{real_serverpid} = $pid;
+
+    # Process the output from s_server until we find the ACCEPT line, which
+    # tells us what the accepting address and port are.
+    while (<>) {
+        print;
+        s/\R$//;                # Better chomp
+        next unless (/^ACCEPT\s.*:(\d+)$/);
+        $self->{server_port} = $1;
+        last;
+    }
+
+    if ($self->{server_port} == 0) {
+        # This actually means that s_server exited, because otherwise
+        # we would still searching for ACCEPT...
+        waitpid($pid, 0);
+        die "no ACCEPT detected in '$execcmd' output: $?\n";
+    }
+
+    # Just make sure everything else is simply printed [as separate lines].
+    # The sub process simply inherits our STD* and will keep consuming
+    # server's output and printing it as long as there is anything there,
+    # out of our way.
+    my $error;
+    $pid = undef;
+    if (eval { require Win32::Process; 1; }) {
+        if (Win32::Process::Create(my $h, $^X, "perl -ne print", 0, 0, ".")) {
+            $pid = $h->GetProcessID();
+            $self->{proc_handle} = $h;  # hold handle till next round [or exit]
+        } else {
+            $error = Win32::FormatMessage(Win32::GetLastError());
+        }
+    } else {
+        if (defined($pid = fork)) {
+            $pid or exec("$^X -ne print") or exit($!);
+        } else {
+            $error = $!;
+        }
+    }
+
+    # Change back to original stdin
+    open(STDIN, "<&", $savedin);
+    close($savedin);
+
+    if (!defined($pid)) {
+        kill(3, $self->{real_serverpid});
+        die "Failed to capture s_server's output: $error\n";
+    }
+
+    $self->{serverpid} = $pid;
+
+    print STDERR "Server responds on ",
+                 "$self->{server_addr}:$self->{server_port}\n";
+
+    # Connect right away...
+    $self->connect_to_server();
+
+    return $self->clientstart;
+}
+
+sub clientstart
+{
+    my ($self) = shift;
+
+    if ($self->execute) {
+        my $pid;
+        my $execcmd = $self->execute
+             ." s_client -max_protocol TLSv1.3 -engine ossltest"
+             ." -connect $self->{proxy_addr}:$self->{proxy_port}";
+        if ($self->cipherc ne "") {
+            $execcmd .= " -cipher ".$self->cipherc;
+        }
+        if ($self->ciphersuitesc ne "") {
+            $execcmd .= " -ciphersuites ".$self->ciphersuitesc;
+        }
+        if ($self->clientflags ne "") {
+            $execcmd .= " ".$self->clientflags;
+        }
+        if ($self->clientflags !~ m/-(no)?servername/) {
+            $execcmd .= " -servername localhost";
+        }
+        if (defined $self->sessionfile) {
+            $execcmd .= " -ign_eof";
+        }
+        if ($self->debug) {
+            print STDERR "Client command: $execcmd\n";
+        }
+
+        open(my $savedout, ">&STDOUT");
+        # If we open pipe with new descriptor, attempt to close it,
+        # explicitly or implicitly, would incur waitpid and effectively
+        # dead-lock...
+        if (!($pid = open(STDOUT, "| $execcmd"))) {
+            my $err = $!;
+            kill(3, $self->{real_serverpid});
+            die "Failed to $execcmd: $err\n";
+        }
+        $self->{clientpid} = $pid;
+
+        # queue [magic] input
+        print $self->reneg ? "R" : "test";
+
+        # this closes client's stdin without waiting for its pid
+        open(STDOUT, ">&", $savedout);
+        close($savedout);
+    }
+
+    # Wait for incoming connection from client
+    my $fdset = IO::Select->new($self->{proxy_sock});
+    if (!$fdset->can_read(60)) {
+        kill(3, $self->{real_serverpid});
+        die "s_client didn't try to connect\n";
+    }
+
+    my $client_sock;
+    if(!($client_sock = $self->{proxy_sock}->accept())) {
+        warn "Failed accepting incoming connection: $!\n";
+        return 0;
+    }
+
+    print "Connection opened\n";
+
+    my $server_sock = $self->{server_sock};
+    my $indata;
+
+    #Wait for either the server socket or the client socket to become readable
+    $fdset = IO::Select->new($server_sock, $client_sock);
+    my @ready;
+    my $ctr = 0;
+    local $SIG{PIPE} = "IGNORE";
+    $self->{saw_session_ticket} = undef;
+    while($fdset->count && $ctr < 10) {
+        if (defined($self->{sessionfile})) {
+            # s_client got -ign_eof and won't be exiting voluntarily, so we
+            # look for data *and* session ticket...
+            last if TLSProxy::Message->success()
+                    && $self->{saw_session_ticket};
+        }
+        if (!(@ready = $fdset->can_read(1))) {
+            $ctr++;
+            next;
+        }
+        foreach my $hand (@ready) {
+            if ($hand == $server_sock) {
+                if ($server_sock->sysread($indata, 16384)) {
+                    if ($indata = $self->process_packet(1, $indata)) {
+                        $client_sock->syswrite($indata) or goto END;
+                    }
+                    $ctr = 0;
+                } else {
+                    $fdset->remove($server_sock);
+                    $client_sock->shutdown(SHUT_WR);
+                }
+            } elsif ($hand == $client_sock) {
+                if ($client_sock->sysread($indata, 16384)) {
+                    if ($indata = $self->process_packet(0, $indata)) {
+                        $server_sock->syswrite($indata) or goto END;
+                    }
+                    $ctr = 0;
+                } else {
+                    $fdset->remove($client_sock);
+                    $server_sock->shutdown(SHUT_WR);
+                }
+            } else {
+                kill(3, $self->{real_serverpid});
+                die "Unexpected handle";
+            }
+        }
+    }
+
+    if ($ctr >= 10) {
+        kill(3, $self->{real_serverpid});
+        die "No progress made";
+    }
+
+    END:
+    print "Connection closed\n";
+    if($server_sock) {
+        $server_sock->close();
+        $self->{server_sock} = undef;
+    }
+    if($client_sock) {
+        #Closing this also kills the child process
+        $client_sock->close();
+    }
+
+    my $pid;
+    if (--$self->{serverconnects} == 0) {
+        $pid = $self->{serverpid};
+        print "Waiting for 'perl -ne print' process to close: $pid...\n";
+        $pid = waitpid($pid, 0);
+        if ($pid > 0) {
+            die "exit code $? from 'perl -ne print' process\n" if $? != 0;
+        } elsif ($pid == 0) {
+            kill(3, $self->{real_serverpid});
+            die "lost control over $self->{serverpid}?";
+        }
+        $pid = $self->{real_serverpid};
+        print "Waiting for s_server process to close: $pid...\n";
+        # it's done already, just collect the exit code [and reap]...
+        waitpid($pid, 0);
+        die "exit code $? from s_server process\n" if $? != 0;
+    } else {
+        # It's a bit counter-intuitive spot to make next connection to
+        # the s_server. Rationale is that established connection works
+        # as synchronization point, in sense that this way we know that
+        # s_server is actually done with current session...
+        $self->connect_to_server();
+    }
+    $pid = $self->{clientpid};
+    print "Waiting for s_client process to close: $pid...\n";
+    waitpid($pid, 0);
+
+    return 1;
+}
+
+sub process_packet
+{
+    my ($self, $server, $packet) = @_;
+    my $len_real;
+    my $decrypt_len;
+    my $data;
+    my $recnum;
+
+    if ($server) {
+        print "Received server packet\n";
+    } else {
+        print "Received client packet\n";
+    }
+
+    if ($self->{direction} != $server) {
+        $self->{flight} = $self->{flight} + 1;
+        $self->{direction} = $server;
+    }
+
+    print "Packet length = ".length($packet)."\n";
+    print "Processing flight ".$self->flight."\n";
+
+    #Return contains the list of record found in the packet followed by the
+    #list of messages in those records and any partial message
+    my @ret = TLSProxy::Record->get_records($server, $self->flight,
+                                            $self->{partial}[$server].$packet);
+    $self->{partial}[$server] = $ret[2];
+    push @{$self->{record_list}}, @{$ret[0]};
+    push @{$self->{message_list}}, @{$ret[1]};
+
+    print "\n";
+
+    if (scalar(@{$ret[0]}) == 0 or length($ret[2]) != 0) {
+        return "";
+    }
+
+    #Finished parsing. Call user provided filter here
+    if (defined $self->filter) {
+        $self->filter->($self);
+    }
+
+    #Take a note on NewSessionTicket
+    foreach my $message (reverse @{$self->{message_list}}) {
+        if ($message->{mt} == TLSProxy::Message::MT_NEW_SESSION_TICKET) {
+            $self->{saw_session_ticket} = 1;
+            last;
+        }
+    }
+
+    #Reconstruct the packet
+    $packet = "";
+    foreach my $record (@{$self->record_list}) {
+        $packet .= $record->reconstruct_record($server);
+    }
+
+    print "Forwarded packet length = ".length($packet)."\n\n";
+
+    return $packet;
+}
+
+#Read accessors
+sub execute
+{
+    my $self = shift;
+    return $self->{execute};
+}
+sub cert
+{
+    my $self = shift;
+    return $self->{cert};
+}
+sub debug
+{
+    my $self = shift;
+    return $self->{debug};
+}
+sub flight
+{
+    my $self = shift;
+    return $self->{flight};
+}
+sub record_list
+{
+    my $self = shift;
+    return $self->{record_list};
+}
+sub success
+{
+    my $self = shift;
+    return $self->{success};
+}
+sub end
+{
+    my $self = shift;
+    return $self->{end};
+}
+sub supports_IPv6
+{
+    my $self = shift;
+    return $have_IPv6;
+}
+sub proxy_addr
+{
+    my $self = shift;
+    return $self->{proxy_addr};
+}
+sub proxy_port
+{
+    my $self = shift;
+    return $self->{proxy_port};
+}
+sub server_addr
+{
+    my $self = shift;
+    return $self->{server_addr};
+}
+sub server_port
+{
+    my $self = shift;
+    return $self->{server_port};
+}
+sub serverpid
+{
+    my $self = shift;
+    return $self->{serverpid};
+}
+sub clientpid
+{
+    my $self = shift;
+    return $self->{clientpid};
+}
+
+#Read/write accessors
+sub filter
+{
+    my $self = shift;
+    if (@_) {
+        $self->{filter} = shift;
+    }
+    return $self->{filter};
+}
+sub cipherc
+{
+    my $self = shift;
+    if (@_) {
+        $self->{cipherc} = shift;
+    }
+    return $self->{cipherc};
+}
+sub ciphersuitesc
+{
+    my $self = shift;
+    if (@_) {
+        $self->{ciphersuitesc} = shift;
+    }
+    return $self->{ciphersuitesc};
+}
+sub ciphers
+{
+    my $self = shift;
+    if (@_) {
+        $self->{ciphers} = shift;
+    }
+    return $self->{ciphers};
+}
+sub ciphersuitess
+{
+    my $self = shift;
+    if (@_) {
+        $self->{ciphersuitess} = shift;
+    }
+    return $self->{ciphersuitess};
+}
+sub serverflags
+{
+    my $self = shift;
+    if (@_) {
+        $self->{serverflags} = shift;
+    }
+    return $self->{serverflags};
+}
+sub clientflags
+{
+    my $self = shift;
+    if (@_) {
+        $self->{clientflags} = shift;
+    }
+    return $self->{clientflags};
+}
+sub serverconnects
+{
+    my $self = shift;
+    if (@_) {
+        $self->{serverconnects} = shift;
+    }
+    return $self->{serverconnects};
+}
+# This is a bit ugly because the caller is responsible for keeping the records
+# in sync with the updated message list; simply updating the message list isn't
+# sufficient to get the proxy to forward the new message.
+# But it does the trick for the one test (test_sslsessiontick) that needs it.
+sub message_list
+{
+    my $self = shift;
+    if (@_) {
+        $self->{message_list} = shift;
+    }
+    return $self->{message_list};
+}
+
+sub fill_known_data
+{
+    my $length = shift;
+    my $ret = "";
+    for (my $i = 0; $i < $length; $i++) {
+        $ret .= chr($i);
+    }
+    return $ret;
+}
+
+sub is_tls13
+{
+    my $class = shift;
+    if (@_) {
+        $is_tls13 = shift;
+    }
+    return $is_tls13;
+}
+
+sub reneg
+{
+    my $self = shift;
+    if (@_) {
+        $self->{reneg} = shift;
+    }
+    return $self->{reneg};
+}
+
+#Setting a sessionfile means that the client will not close until the given
+#file exists. This is useful in TLSv1.3 where otherwise s_client will close
+#immediately at the end of the handshake, but before the session has been
+#received from the server. A side effect of this is that s_client never sends
+#a close_notify, so instead we consider success to be when it sends application
+#data over the connection.
+sub sessionfile
+{
+    my $self = shift;
+    if (@_) {
+        $self->{sessionfile} = shift;
+        TLSProxy::Message->successondata(1);
+    }
+    return $self->{sessionfile};
+}
+
+sub ciphersuite
+{
+    my $class = shift;
+    if (@_) {
+        $ciphersuite = shift;
+    }
+    return $ciphersuite;
+}
+
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/Record.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/Record.pm
new file mode 100644
index 0000000..841467b
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/Record.pm
@@ -0,0 +1,401 @@
+# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+
+use TLSProxy::Proxy;
+
+package TLSProxy::Record;
+
+my $server_encrypting = 0;
+my $client_encrypting = 0;
+my $etm = 0;
+
+use constant TLS_RECORD_HEADER_LENGTH => 5;
+
+#Record types
+use constant {
+    RT_APPLICATION_DATA => 23,
+    RT_HANDSHAKE => 22,
+    RT_ALERT => 21,
+    RT_CCS => 20,
+    RT_UNKNOWN => 100
+};
+
+my %record_type = (
+    RT_APPLICATION_DATA, "APPLICATION DATA",
+    RT_HANDSHAKE, "HANDSHAKE",
+    RT_ALERT, "ALERT",
+    RT_CCS, "CCS",
+    RT_UNKNOWN, "UNKNOWN"
+);
+
+use constant {
+    VERS_TLS_1_4 => 0x0305,
+    VERS_TLS_1_3 => 0x0304,
+    VERS_TLS_1_2 => 0x0303,
+    VERS_TLS_1_1 => 0x0302,
+    VERS_TLS_1_0 => 0x0301,
+    VERS_SSL_3_0 => 0x0300,
+    VERS_SSL_LT_3_0 => 0x02ff
+};
+
+my %tls_version = (
+    VERS_TLS_1_3, "TLS1.3",
+    VERS_TLS_1_2, "TLS1.2",
+    VERS_TLS_1_1, "TLS1.1",
+    VERS_TLS_1_0, "TLS1.0",
+    VERS_SSL_3_0, "SSL3",
+    VERS_SSL_LT_3_0, "SSL<3"
+);
+
+#Class method to extract records from a packet of data
+sub get_records
+{
+    my $class = shift;
+    my $server = shift;
+    my $flight = shift;
+    my $packet = shift;
+    my $partial = "";
+    my @record_list = ();
+    my @message_list = ();
+
+    my $recnum = 1;
+    while (length ($packet) > 0) {
+        print " Record $recnum ", $server ? "(server -> client)\n"
+                                          : "(client -> server)\n";
+
+        #Get the record header (unpack can't fail if $packet is too short)
+        my ($content_type, $version, $len) = unpack('Cnn', $packet);
+
+        if (length($packet) < TLS_RECORD_HEADER_LENGTH + ($len // 0)) {
+            print "Partial data : ".length($packet)." bytes\n";
+            $partial = $packet;
+            last;
+        }
+
+        my $data = substr($packet, TLS_RECORD_HEADER_LENGTH, $len);
+
+        print "  Content type: ".$record_type{$content_type}."\n";
+        print "  Version: $tls_version{$version}\n";
+        print "  Length: $len\n";
+
+        my $record = TLSProxy::Record->new(
+            $flight,
+            $content_type,
+            $version,
+            $len,
+            0,
+            $len,       # len_real
+            $len,       # decrypt_len
+            $data,      # data
+            $data       # decrypt_data
+        );
+
+        if ($content_type != RT_CCS
+                && (!TLSProxy::Proxy->is_tls13()
+                    || $content_type != RT_ALERT)) {
+            if (($server && $server_encrypting)
+                     || (!$server && $client_encrypting)) {
+                if (!TLSProxy::Proxy->is_tls13() && $etm) {
+                    $record->decryptETM();
+                } else {
+                    $record->decrypt();
+                }
+                $record->encrypted(1);
+
+                if (TLSProxy::Proxy->is_tls13()) {
+                    print "  Inner content type: "
+                          .$record_type{$record->content_type()}."\n";
+                }
+            }
+        }
+
+        push @record_list, $record;
+
+        #Now figure out what messages are contained within this record
+        my @messages = TLSProxy::Message->get_messages($server, $record);
+        push @message_list, @messages;
+
+        $packet = substr($packet, TLS_RECORD_HEADER_LENGTH + $len);
+        $recnum++;
+    }
+
+    return (\@record_list, \@message_list, $partial);
+}
+
+sub clear
+{
+    $server_encrypting = 0;
+    $client_encrypting = 0;
+}
+
+#Class level accessors
+sub server_encrypting
+{
+    my $class = shift;
+    if (@_) {
+      $server_encrypting = shift;
+    }
+    return $server_encrypting;
+}
+sub client_encrypting
+{
+    my $class = shift;
+    if (@_) {
+      $client_encrypting= shift;
+    }
+    return $client_encrypting;
+}
+#Enable/Disable Encrypt-then-MAC
+sub etm
+{
+    my $class = shift;
+    if (@_) {
+      $etm = shift;
+    }
+    return $etm;
+}
+
+sub new
+{
+    my $class = shift;
+    my ($flight,
+        $content_type,
+        $version,
+        $len,
+        $sslv2,
+        $len_real,
+        $decrypt_len,
+        $data,
+        $decrypt_data) = @_;
+
+    my $self = {
+        flight => $flight,
+        content_type => $content_type,
+        version => $version,
+        len => $len,
+        sslv2 => $sslv2,
+        len_real => $len_real,
+        decrypt_len => $decrypt_len,
+        data => $data,
+        decrypt_data => $decrypt_data,
+        orig_decrypt_data => $decrypt_data,
+        sent => 0,
+        encrypted => 0,
+        outer_content_type => RT_APPLICATION_DATA
+    };
+
+    return bless $self, $class;
+}
+
+#Decrypt using encrypt-then-MAC
+sub decryptETM
+{
+    my ($self) = shift;
+
+    my $data = $self->data;
+
+    if($self->version >= VERS_TLS_1_1()) {
+        #TLS1.1+ has an explicit IV. Throw it away
+        $data = substr($data, 16);
+    }
+
+    #Throw away the MAC (assumes MAC is 20 bytes for now. FIXME)
+    $data = substr($data, 0, length($data) - 20);
+
+    #Find out what the padding byte is
+    my $padval = unpack("C", substr($data, length($data) - 1));
+
+    #Throw away the padding
+    $data = substr($data, 0, length($data) - ($padval + 1));
+
+    $self->decrypt_data($data);
+    $self->decrypt_len(length($data));
+
+    return $data;
+}
+
+#Standard decrypt
+sub decrypt()
+{
+    my ($self) = shift;
+    my $mactaglen = 20;
+    my $data = $self->data;
+
+    #Throw away any IVs
+    if (TLSProxy::Proxy->is_tls13()) {
+        #A TLS1.3 client, when processing the server's initial flight, could
+        #respond with either an encrypted or an unencrypted alert.
+        if ($self->content_type() == RT_ALERT) {
+            #TODO(TLS1.3): Eventually it is sufficient just to check the record
+            #content type. If an alert is encrypted it will have a record
+            #content type of application data. However we haven't done the
+            #record layer changes yet, so it's a bit more complicated. For now
+            #we will additionally check if the data length is 2 (1 byte for
+            #alert level, 1 byte for alert description). If it is, then this is
+            #an unencrypted alert, so don't try to decrypt
+            return $data if (length($data) == 2);
+        }
+        $mactaglen = 16;
+    } elsif ($self->version >= VERS_TLS_1_1()) {
+        #16 bytes for a standard IV
+        $data = substr($data, 16);
+
+        #Find out what the padding byte is
+        my $padval = unpack("C", substr($data, length($data) - 1));
+
+        #Throw away the padding
+        $data = substr($data, 0, length($data) - ($padval + 1));
+    }
+
+    #Throw away the MAC or TAG
+    $data = substr($data, 0, length($data) - $mactaglen);
+
+    if (TLSProxy::Proxy->is_tls13()) {
+        #Get the content type
+        my $content_type = unpack("C", substr($data, length($data) - 1));
+        $self->content_type($content_type);
+        $data = substr($data, 0, length($data) - 1);
+    }
+
+    $self->decrypt_data($data);
+    $self->decrypt_len(length($data));
+
+    return $data;
+}
+
+#Reconstruct the on-the-wire record representation
+sub reconstruct_record
+{
+    my $self = shift;
+    my $server = shift;
+    my $data;
+
+    #We only replay the records in the same direction
+    if ($self->{sent} || ($self->flight & 1) != $server) {
+        return "";
+    }
+    $self->{sent} = 1;
+
+    if ($self->sslv2) {
+        $data = pack('n', $self->len | 0x8000);
+    } else {
+        if (TLSProxy::Proxy->is_tls13() && $self->encrypted) {
+            $data = pack('Cnn', $self->outer_content_type, $self->version,
+                         $self->len);
+        } else {
+            $data = pack('Cnn', $self->content_type, $self->version,
+                         $self->len);
+        }
+
+    }
+    $data .= $self->data;
+
+    return $data;
+}
+
+#Read only accessors
+sub flight
+{
+    my $self = shift;
+    return $self->{flight};
+}
+sub sslv2
+{
+    my $self = shift;
+    return $self->{sslv2};
+}
+sub len_real
+{
+    my $self = shift;
+    return $self->{len_real};
+}
+sub orig_decrypt_data
+{
+    my $self = shift;
+    return $self->{orig_decrypt_data};
+}
+
+#Read/write accessors
+sub decrypt_len
+{
+    my $self = shift;
+    if (@_) {
+      $self->{decrypt_len} = shift;
+    }
+    return $self->{decrypt_len};
+}
+sub data
+{
+    my $self = shift;
+    if (@_) {
+      $self->{data} = shift;
+    }
+    return $self->{data};
+}
+sub decrypt_data
+{
+    my $self = shift;
+    if (@_) {
+      $self->{decrypt_data} = shift;
+    }
+    return $self->{decrypt_data};
+}
+sub len
+{
+    my $self = shift;
+    if (@_) {
+      $self->{len} = shift;
+    }
+    return $self->{len};
+}
+sub version
+{
+    my $self = shift;
+    if (@_) {
+      $self->{version} = shift;
+    }
+    return $self->{version};
+}
+sub content_type
+{
+    my $self = shift;
+    if (@_) {
+      $self->{content_type} = shift;
+    }
+    return $self->{content_type};
+}
+sub encrypted
+{
+    my $self = shift;
+    if (@_) {
+      $self->{encrypted} = shift;
+    }
+    return $self->{encrypted};
+}
+sub outer_content_type
+{
+    my $self = shift;
+    if (@_) {
+      $self->{outer_content_type} = shift;
+    }
+    return $self->{outer_content_type};
+}
+sub is_fatal_alert
+{
+    my $self = shift;
+    my $server = shift;
+
+    if (($self->{flight} & 1) == $server
+        && $self->{content_type} == TLSProxy::Record::RT_ALERT) {
+        my ($level, $alert) = unpack('CC', $self->decrypt_data);
+        return $alert if ($level == 2);
+    }
+    return 0;
+}
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/ServerHello.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/ServerHello.pm
new file mode 100644
index 0000000..e9f1eca
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/ServerHello.pm
@@ -0,0 +1,236 @@
+# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+
+package TLSProxy::ServerHello;
+
+use vars '@ISA';
+push @ISA, 'TLSProxy::Message';
+
+my $hrrrandom = pack("C*", 0xCF, 0x21, 0xAD, 0x74, 0xE5, 0x9A, 0x61, 0x11, 0xBE,
+                           0x1D, 0x8C, 0x02, 0x1E, 0x65, 0xB8, 0x91, 0xC2, 0xA2,
+                           0x11, 0x16, 0x7A, 0xBB, 0x8C, 0x5E, 0x07, 0x9E, 0x09,
+                           0xE2, 0xC8, 0xA8, 0x33, 0x9C);
+
+sub new
+{
+    my $class = shift;
+    my ($server,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens) = @_;
+
+    my $self = $class->SUPER::new(
+        $server,
+        TLSProxy::Message::MT_SERVER_HELLO,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens);
+
+    $self->{server_version} = 0;
+    $self->{random} = [];
+    $self->{session_id_len} = 0;
+    $self->{session} = "";
+    $self->{ciphersuite} = 0;
+    $self->{comp_meth} = 0;
+    $self->{extension_data} = "";
+
+    return $self;
+}
+
+sub parse
+{
+    my $self = shift;
+    my $ptr = 2;
+    my ($server_version) = unpack('n', $self->data);
+    my $neg_version = $server_version;
+
+    my $random = substr($self->data, $ptr, 32);
+    $ptr += 32;
+    my $session_id_len = 0;
+    my $session = "";
+    $session_id_len = unpack('C', substr($self->data, $ptr));
+    $ptr++;
+    $session = substr($self->data, $ptr, $session_id_len);
+    $ptr += $session_id_len;
+
+    my $ciphersuite = unpack('n', substr($self->data, $ptr));
+    $ptr += 2;
+    my $comp_meth = 0;
+    $comp_meth = unpack('C', substr($self->data, $ptr));
+    $ptr++;
+
+    my $extensions_len = unpack('n', substr($self->data, $ptr));
+    if (!defined $extensions_len) {
+        $extensions_len = 0;
+    } else {
+        $ptr += 2;
+    }
+    #For now we just deal with this as a block of data. In the future we will
+    #want to parse this
+    my $extension_data;
+    if ($extensions_len != 0) {
+        $extension_data = substr($self->data, $ptr);
+
+        if (length($extension_data) != $extensions_len) {
+            die "Invalid extension length\n";
+        }
+    } else {
+        if (length($self->data) != $ptr) {
+            die "Invalid extension length\n";
+        }
+        $extension_data = "";
+    }
+    my %extensions = ();
+    while (length($extension_data) >= 4) {
+        my ($type, $size) = unpack("nn", $extension_data);
+        my $extdata = substr($extension_data, 4, $size);
+        $extension_data = substr($extension_data, 4 + $size);
+        $extensions{$type} = $extdata;
+        if ($type == TLSProxy::Message::EXT_SUPPORTED_VERSIONS) {
+            $neg_version = unpack('n', $extdata);
+        }
+    }
+
+    if ($random eq $hrrrandom) {
+        TLSProxy::Proxy->is_tls13(1);
+    } elsif ($neg_version == TLSProxy::Record::VERS_TLS_1_3) {
+        TLSProxy::Proxy->is_tls13(1);
+
+        TLSProxy::Record->server_encrypting(1);
+        TLSProxy::Record->client_encrypting(1);
+    }
+
+    $self->server_version($server_version);
+    $self->random($random);
+    $self->session_id_len($session_id_len);
+    $self->session($session);
+    $self->ciphersuite($ciphersuite);
+    TLSProxy::Proxy->ciphersuite($ciphersuite);
+    $self->comp_meth($comp_meth);
+    $self->extension_data(\%extensions);
+
+    $self->process_data();
+
+
+    print "    Server Version:".$server_version."\n";
+    print "    Session ID Len:".$session_id_len."\n";
+    print "    Ciphersuite:".$ciphersuite."\n";
+    print "    Compression Method:".$comp_meth."\n";
+    print "    Extensions Len:".$extensions_len."\n";
+}
+
+#Perform any actions necessary based on the data we've seen
+sub process_data
+{
+    my $self = shift;
+
+    TLSProxy::Message->ciphersuite($self->ciphersuite);
+}
+
+#Reconstruct the on-the-wire message data following changes
+sub set_message_contents
+{
+    my $self = shift;
+    my $data;
+    my $extensions = "";
+
+    $data = pack('n', $self->server_version);
+    $data .= $self->random;
+    $data .= pack('C', $self->session_id_len);
+    $data .= $self->session;
+    $data .= pack('n', $self->ciphersuite);
+    $data .= pack('C', $self->comp_meth);
+
+    foreach my $key (keys %{$self->extension_data}) {
+        my $extdata = ${$self->extension_data}{$key};
+        $extensions .= pack("n", $key);
+        $extensions .= pack("n", length($extdata));
+        $extensions .= $extdata;
+        if ($key == $self->dupext) {
+          $extensions .= pack("n", $key);
+          $extensions .= pack("n", length($extdata));
+          $extensions .= $extdata;
+        }
+    }
+
+    $data .= pack('n', length($extensions));
+    $data .= $extensions;
+    $self->data($data);
+}
+
+#Read/write accessors
+sub server_version
+{
+    my $self = shift;
+    if (@_) {
+      $self->{server_version} = shift;
+    }
+    return $self->{server_version};
+}
+sub random
+{
+    my $self = shift;
+    if (@_) {
+      $self->{random} = shift;
+    }
+    return $self->{random};
+}
+sub session_id_len
+{
+    my $self = shift;
+    if (@_) {
+      $self->{session_id_len} = shift;
+    }
+    return $self->{session_id_len};
+}
+sub session
+{
+    my $self = shift;
+    if (@_) {
+      $self->{session} = shift;
+    }
+    return $self->{session};
+}
+sub ciphersuite
+{
+    my $self = shift;
+    if (@_) {
+      $self->{ciphersuite} = shift;
+    }
+    return $self->{ciphersuite};
+}
+sub comp_meth
+{
+    my $self = shift;
+    if (@_) {
+      $self->{comp_meth} = shift;
+    }
+    return $self->{comp_meth};
+}
+sub extension_data
+{
+    my $self = shift;
+    if (@_) {
+      $self->{extension_data} = shift;
+    }
+    return $self->{extension_data};
+}
+sub set_extension
+{
+    my ($self, $ext_type, $ext_data) = @_;
+    $self->{extension_data}{$ext_type} = $ext_data;
+}
+sub delete_extension
+{
+    my ($self, $ext_type) = @_;
+    delete $self->{extension_data}{$ext_type};
+}
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/ServerKeyExchange.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/ServerKeyExchange.pm
new file mode 100644
index 0000000..e0086e2
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/TLSProxy/ServerKeyExchange.pm
@@ -0,0 +1,157 @@
+# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+
+package TLSProxy::ServerKeyExchange;
+
+use vars '@ISA';
+push @ISA, 'TLSProxy::Message';
+
+sub new
+{
+    my $class = shift;
+    my ($server,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens) = @_;
+
+    my $self = $class->SUPER::new(
+        $server,
+        TLSProxy::Message::MT_SERVER_KEY_EXCHANGE,
+        $data,
+        $records,
+        $startoffset,
+        $message_frag_lens);
+
+    #DHE
+    $self->{p} = "";
+    $self->{g} = "";
+    $self->{pub_key} = "";
+    $self->{sigalg} = -1;
+    $self->{sig} = "";
+
+    return $self;
+}
+
+sub parse
+{
+    my $self = shift;
+    my $sigalg = -1;
+
+    #Minimal SKE parsing. Only supports one known DHE ciphersuite at the moment
+    return if TLSProxy::Proxy->ciphersuite()
+                 != TLSProxy::Message::CIPHER_ADH_AES_128_SHA
+              && TLSProxy::Proxy->ciphersuite()
+                 != TLSProxy::Message::CIPHER_DHE_RSA_AES_128_SHA;
+
+    my $p_len = unpack('n', $self->data);
+    my $ptr = 2;
+    my $p = substr($self->data, $ptr, $p_len);
+    $ptr += $p_len;
+
+    my $g_len = unpack('n', substr($self->data, $ptr));
+    $ptr += 2;
+    my $g = substr($self->data, $ptr, $g_len);
+    $ptr += $g_len;
+
+    my $pub_key_len = unpack('n', substr($self->data, $ptr));
+    $ptr += 2;
+    my $pub_key = substr($self->data, $ptr, $pub_key_len);
+    $ptr += $pub_key_len;
+
+    #We assume its signed
+    my $record = ${$self->records}[0];
+
+    if (TLSProxy::Proxy->is_tls13()
+            || $record->version() == TLSProxy::Record::VERS_TLS_1_2) {
+        $sigalg = unpack('n', substr($self->data, $ptr));
+        $ptr += 2;
+    }
+    my $sig = "";
+    if (defined $sigalg) {
+        my $sig_len = unpack('n', substr($self->data, $ptr));
+        if (defined $sig_len) {
+            $ptr += 2;
+            $sig = substr($self->data, $ptr, $sig_len);
+            $ptr += $sig_len;
+        }
+    }
+
+    $self->p($p);
+    $self->g($g);
+    $self->pub_key($pub_key);
+    $self->sigalg($sigalg) if defined $sigalg;
+    $self->signature($sig);
+}
+
+
+#Reconstruct the on-the-wire message data following changes
+sub set_message_contents
+{
+    my $self = shift;
+    my $data;
+
+    $data = pack('n', length($self->p));
+    $data .= $self->p;
+    $data .= pack('n', length($self->g));
+    $data .= $self->g;
+    $data .= pack('n', length($self->pub_key));
+    $data .= $self->pub_key;
+    $data .= pack('n', $self->sigalg) if ($self->sigalg != -1);
+    if (length($self->signature) > 0) {
+        $data .= pack('n', length($self->signature));
+        $data .= $self->signature;
+    }
+
+    $self->data($data);
+}
+
+#Read/write accessors
+#DHE
+sub p
+{
+    my $self = shift;
+    if (@_) {
+      $self->{p} = shift;
+    }
+    return $self->{p};
+}
+sub g
+{
+    my $self = shift;
+    if (@_) {
+      $self->{g} = shift;
+    }
+    return $self->{g};
+}
+sub pub_key
+{
+    my $self = shift;
+    if (@_) {
+      $self->{pub_key} = shift;
+    }
+    return $self->{pub_key};
+}
+sub sigalg
+{
+    my $self = shift;
+    if (@_) {
+      $self->{sigalg} = shift;
+    }
+    return $self->{sigalg};
+}
+sub signature
+{
+    my $self = shift;
+    if (@_) {
+      $self->{sig} = shift;
+    }
+    return $self->{sig};
+}
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/checkhandshake.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/checkhandshake.pm
new file mode 100644
index 0000000..04441b5
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/checkhandshake.pm
@@ -0,0 +1,232 @@
+#! /usr/bin/env perl
+# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+package checkhandshake;
+
+use OpenSSL::Test qw/:DEFAULT cmdstr srctop_file srctop_dir bldtop_dir/;
+use OpenSSL::Test::Utils;
+use TLSProxy::Proxy;
+
+use Exporter;
+our @ISA = 'Exporter';
+our @EXPORT = qw(@handmessages @extensions checkhandshake);
+
+use constant {
+    DEFAULT_HANDSHAKE => 1,
+    OCSP_HANDSHAKE => 2,
+    RESUME_HANDSHAKE => 4,
+    CLIENT_AUTH_HANDSHAKE => 8,
+    RENEG_HANDSHAKE => 16,
+    NPN_HANDSHAKE => 32,
+    EC_HANDSHAKE => 64,
+    HRR_HANDSHAKE => 128,
+    HRR_RESUME_HANDSHAKE => 256,
+
+    ALL_HANDSHAKES => 511
+};
+
+use constant {
+    #DEFAULT also includes SESSION_TICKET_SRV_EXTENSION and SERVER_NAME_CLI
+    DEFAULT_EXTENSIONS => 0x00000007,
+    SESSION_TICKET_SRV_EXTENSION => 0x00000002,
+    SERVER_NAME_CLI_EXTENSION => 0x00000004,
+    SERVER_NAME_SRV_EXTENSION => 0x00000008,
+    STATUS_REQUEST_CLI_EXTENSION => 0x00000010,
+    STATUS_REQUEST_SRV_EXTENSION => 0x00000020,
+    ALPN_CLI_EXTENSION => 0x00000040,
+    ALPN_SRV_EXTENSION => 0x00000080,
+    SCT_CLI_EXTENSION => 0x00000100,
+    SCT_SRV_EXTENSION => 0x00000200,
+    RENEGOTIATE_CLI_EXTENSION => 0x00000400,
+    NPN_CLI_EXTENSION => 0x00000800,
+    NPN_SRV_EXTENSION => 0x00001000,
+    SRP_CLI_EXTENSION => 0x00002000,
+    #Client side for ec point formats is a default extension
+    EC_POINT_FORMAT_SRV_EXTENSION => 0x00004000,
+    PSK_CLI_EXTENSION => 0x00008000,
+    PSK_SRV_EXTENSION => 0x00010000,
+    KEY_SHARE_SRV_EXTENSION => 0x00020000,
+    PSK_KEX_MODES_EXTENSION => 0x00040000,
+    KEY_SHARE_HRR_EXTENSION => 0x00080000,
+    SUPPORTED_GROUPS_SRV_EXTENSION => 0x00100000,
+    POST_HANDSHAKE_AUTH_CLI_EXTENSION => 0x00200000
+};
+
+our @handmessages = ();
+our @extensions = ();
+
+sub checkhandshake($$$$)
+{
+    my ($proxy, $handtype, $exttype, $testname) = @_;
+
+    subtest $testname => sub {
+        my $loop = 0;
+        my $numtests;
+        my $extcount;
+        my $clienthelloseen = 0;
+
+        my $lastmt = 0;
+        my $numsh = 0;
+        if (TLSProxy::Proxy::is_tls13()) {
+            #How many ServerHellos are we expecting?
+            for ($numtests = 0; $handmessages[$loop][1] != 0; $loop++) {
+                next if (($handmessages[$loop][1] & $handtype) == 0);
+                $numsh++ if ($lastmt != TLSProxy::Message::MT_SERVER_HELLO
+                             && $handmessages[$loop][0] == TLSProxy::Message::MT_SERVER_HELLO);
+                $lastmt = $handmessages[$loop][0];
+            }
+        }
+
+        #First count the number of tests
+        my $nextmess = 0;
+        my $message = undef;
+        my $chnum = 0;
+        my $shnum = 0;
+        if (!TLSProxy::Proxy::is_tls13()) {
+            # In non-TLSv1.3 we always treat reneg CH and SH like the first CH
+            # and SH
+            $chnum = 1;
+            $shnum = 1;
+        }
+        #If we're only expecting one ServerHello out of two then we skip the
+        #first ServerHello in the list completely
+        $shnum++ if ($numsh == 1 && TLSProxy::Proxy::is_tls13());
+        $loop = 0;
+        for ($numtests = 0; $handmessages[$loop][1] != 0; $loop++) {
+            next if (($handmessages[$loop][1] & $handtype) == 0);
+            if (scalar @{$proxy->message_list} > $nextmess) {
+                $message = ${$proxy->message_list}[$nextmess];
+                $nextmess++;
+            } else {
+                $message = undef;
+            }
+            $numtests++;
+
+            next if (!defined $message);
+            if (TLSProxy::Proxy::is_tls13()) {
+                $chnum++ if $message->mt() == TLSProxy::Message::MT_CLIENT_HELLO;
+                $shnum++ if $message->mt() == TLSProxy::Message::MT_SERVER_HELLO;
+            }
+            next if ($message->mt() != TLSProxy::Message::MT_CLIENT_HELLO
+                    && $message->mt() != TLSProxy::Message::MT_SERVER_HELLO
+                    && $message->mt() !=
+                       TLSProxy::Message::MT_ENCRYPTED_EXTENSIONS
+                    && $message->mt() != TLSProxy::Message::MT_CERTIFICATE
+                    && $message->mt() != TLSProxy::Message::MT_CERTIFICATE_REQUEST);
+
+            next if $message->mt() == TLSProxy::Message::MT_CERTIFICATE
+                    && !TLSProxy::Proxy::is_tls13();
+
+            my $extchnum = 1;
+            my $extshnum = 1;
+            for (my $extloop = 0;
+                    $extensions[$extloop][3] != 0;
+                    $extloop++) {
+                $extchnum = 2 if $extensions[$extloop][0] != TLSProxy::Message::MT_CLIENT_HELLO
+                                 && TLSProxy::Proxy::is_tls13();
+                $extshnum = 2 if $extensions[$extloop][0] != TLSProxy::Message::MT_SERVER_HELLO
+                                 && $extchnum == 2;
+                next if $extensions[$extloop][0] == TLSProxy::Message::MT_CLIENT_HELLO
+                                 && $extchnum != $chnum;
+                next if $extensions[$extloop][0] == TLSProxy::Message::MT_SERVER_HELLO
+                                 && $extshnum != $shnum;
+                next if ($message->mt() != $extensions[$extloop][0]);
+                next if ($message->server() != $extensions[$extloop][2]);
+                $numtests++;
+            }
+            $numtests++;
+        }
+
+        plan tests => $numtests;
+
+        $nextmess = 0;
+        $message = undef;
+        if (TLSProxy::Proxy::is_tls13()) {
+            $chnum = 0;
+            $shnum = 0;
+        } else {
+            # In non-TLSv1.3 we always treat reneg CH and SH like the first CH
+            # and SH
+            $chnum = 1;
+            $shnum = 1;
+        }
+        #If we're only expecting one ServerHello out of two then we skip the
+        #first ServerHello in the list completely
+        $shnum++ if ($numsh == 1 && TLSProxy::Proxy::is_tls13());
+        for ($loop = 0; $handmessages[$loop][1] != 0; $loop++) {
+            next if (($handmessages[$loop][1] & $handtype) == 0);
+            if (scalar @{$proxy->message_list} > $nextmess) {
+                $message = ${$proxy->message_list}[$nextmess];
+                $nextmess++;
+            } else {
+                $message = undef;
+            }
+            if (!defined $message) {
+                fail("Message type check. Got nothing, expected "
+                     .$handmessages[$loop][0]);
+                next;
+            } else {
+                ok($message->mt == $handmessages[$loop][0],
+                   "Message type check. Got ".$message->mt
+                   .", expected ".$handmessages[$loop][0]);
+            }
+            if (TLSProxy::Proxy::is_tls13()) {
+                $chnum++ if $message->mt() == TLSProxy::Message::MT_CLIENT_HELLO;
+                $shnum++ if $message->mt() == TLSProxy::Message::MT_SERVER_HELLO;
+            }
+
+            next if ($message->mt() != TLSProxy::Message::MT_CLIENT_HELLO
+                    && $message->mt() != TLSProxy::Message::MT_SERVER_HELLO
+                    && $message->mt() !=
+                       TLSProxy::Message::MT_ENCRYPTED_EXTENSIONS
+                    && $message->mt() != TLSProxy::Message::MT_CERTIFICATE
+                    && $message->mt() != TLSProxy::Message::MT_CERTIFICATE_REQUEST);
+
+            next if $message->mt() == TLSProxy::Message::MT_CERTIFICATE
+                    && !TLSProxy::Proxy::is_tls13();
+
+            if ($message->mt() == TLSProxy::Message::MT_CLIENT_HELLO) {
+                #Add renegotiate extension we will expect if renegotiating
+                $exttype |= RENEGOTIATE_CLI_EXTENSION
+                    if ($clienthelloseen && !TLSProxy::Proxy::is_tls13());
+                $clienthelloseen = 1;
+            }
+            #Now check that we saw the extensions we expected
+            my $msgexts = $message->extension_data();
+            my $extchnum = 1;
+            my $extshnum = 1;
+            for (my $extloop = 0, $extcount = 0; $extensions[$extloop][3] != 0;
+                                $extloop++) {
+                #In TLSv1.3 we can have two ClientHellos if there has been a
+                #HelloRetryRequest, and they may have different extensions. Skip
+                #if these are extensions for a different ClientHello
+                $extchnum = 2 if $extensions[$extloop][0] != TLSProxy::Message::MT_CLIENT_HELLO
+                                 && TLSProxy::Proxy::is_tls13();
+                $extshnum = 2 if $extensions[$extloop][0] != TLSProxy::Message::MT_SERVER_HELLO
+                                 && $extchnum == 2;
+                next if $extensions[$extloop][0] == TLSProxy::Message::MT_CLIENT_HELLO
+                                 && $extchnum != $chnum;
+                next if $extensions[$extloop][0] == TLSProxy::Message::MT_SERVER_HELLO
+                                 && $extshnum != $shnum;
+                next if ($message->mt() != $extensions[$extloop][0]);
+                next if ($message->server() != $extensions[$extloop][2]);
+                ok (($extensions[$extloop][3] & $exttype) == 0
+                      || defined ($msgexts->{$extensions[$extloop][1]}),
+                    "Extension presence check (Message: ".$message->mt()
+                    ." Extension: ".($extensions[$extloop][3] & $exttype).", "
+                    .$extloop.")");
+                $extcount++ if (($extensions[$extloop][3] & $exttype) != 0);
+            }
+            ok($extcount == keys %$msgexts, "Extensions count mismatch ("
+                                            .$extcount.", ".(keys %$msgexts)
+                                            .")");
+        }
+    }
+}
+
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/perl/with_fallback.pm b/ap/lib/libssl/openssl-1.1.1o/util/perl/with_fallback.pm
new file mode 100644
index 0000000..2423650
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/perl/with_fallback.pm
@@ -0,0 +1,27 @@
+# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+package with_fallback;
+
+sub import {
+    shift;
+
+    use File::Basename;
+    use File::Spec::Functions;
+    foreach (@_) {
+	eval "use $_";
+	if ($@) {
+	    unshift @INC, catdir(dirname(__FILE__),
+                                 "..", "..", "external", "perl");
+	    my $transfer = "transfer::$_";
+	    eval "use $transfer";
+	    shift @INC;
+	    warn $@ if $@;
+	}
+    }
+}
+1;
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/private.num b/ap/lib/libssl/openssl-1.1.1o/util/private.num
new file mode 100644
index 0000000..27790ab
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/private.num
@@ -0,0 +1,469 @@
+# This isn't a library ".num" file but is a list of documented items
+# that don't appear in lib*.num -- because they are define's, in
+# assembly language, etc.
+#
+OPENSSL_ia32cap                         environment
+OPENSSL_MALLOC_FD                       environment
+OPENSSL_MALLOC_FAILURES                 environment
+OPENSSL_instrument_bus                  assembler
+OPENSSL_instrument_bus2                 assembler
+#
+ADMISSION_SYNTAX                        datatype
+ADMISSIONS                              datatype
+ASN1_STRING_TABLE                       datatype
+BIO_ADDR                                datatype
+BIO_ADDRINFO                            datatype
+BIO_callback_fn                         datatype
+BIO_callback_fn_ex                      datatype
+BIO_hostserv_priorities                 datatype
+BIO_lookup_type                         datatype
+CRYPTO_EX_dup                           datatype
+CRYPTO_EX_free                          datatype
+CRYPTO_EX_new                           datatype
+DTLS_timer_cb                           datatype
+EVP_PKEY_gen_cb                         datatype
+EVP_PKEY_METHOD                         datatype
+EVP_PKEY_ASN1_METHOD                    datatype
+GEN_SESSION_CB                          datatype
+OPENSSL_Applink                         external
+NAMING_AUTHORITY                        datatype
+OSSL_STORE_CTX                          datatype
+OSSL_STORE_INFO                         datatype
+OSSL_STORE_LOADER                       datatype
+OSSL_STORE_LOADER_CTX                   datatype
+OSSL_STORE_SEARCH                       datatype
+OSSL_STORE_close_fn                     datatype
+OSSL_STORE_ctrl_fn                      datatype
+OSSL_STORE_expect_fn                    datatype
+OSSL_STORE_find_fn                      datatype
+OSSL_STORE_eof_fn                       datatype
+OSSL_STORE_error_fn                     datatype
+OSSL_STORE_load_fn                      datatype
+OSSL_STORE_open_fn                      datatype
+OSSL_STORE_post_process_info_fn         datatype
+PROFESSION_INFO                         datatype
+PROFESSION_INFOS                        datatype
+RAND_DRBG_cleanup_entropy_fn            datatype
+RAND_DRBG_cleanup_nonce_fn              datatype
+RAND_DRBG_get_entropy_fn                datatype
+RAND_DRBG_get_nonce_fn                  datatype
+RAND_poll_cb                            datatype
+SSL_CTX_allow_early_data_cb_fn          datatype
+SSL_CTX_keylog_cb_func                  datatype
+SSL_allow_early_data_cb_fn              datatype
+SSL_client_hello_cb_fn                  datatype
+SSL_psk_client_cb_func                  datatype
+SSL_psk_find_session_cb_func            datatype
+SSL_psk_server_cb_func                  datatype
+SSL_psk_use_session_cb_func             datatype
+SSL_verify_cb                           datatype
+UI                                      datatype
+UI_METHOD                               datatype
+UI_STRING                               datatype
+UI_string_types                         datatype
+UI_string_types                         datatype
+X509_STORE_CTX_cert_crl_fn              datatype
+X509_STORE_CTX_check_crl_fn             datatype
+X509_STORE_CTX_check_issued_fn          datatype
+X509_STORE_CTX_check_policy_fn          datatype
+X509_STORE_CTX_check_revocation_fn      datatype
+X509_STORE_CTX_cleanup_fn               datatype
+X509_STORE_CTX_get_crl_fn               datatype
+X509_STORE_CTX_get_issuer_fn            datatype
+X509_STORE_CTX_lookup_certs_fn          datatype
+X509_STORE_CTX_lookup_crls_fn           datatype
+X509_STORE_CTX_verify_cb                datatype
+X509_STORE_CTX_verify_fn                datatype
+X509_STORE_set_verify_cb_func           datatype
+X509_LOOKUP                             datatype
+X509_LOOKUP_METHOD                      datatype
+X509_LOOKUP_TYPE                        datatype
+X509_LOOKUP_get_by_alias_fn             datatype
+X509_LOOKUP_get_by_subject_fn           datatype
+X509_LOOKUP_get_by_fingerprint_fn       datatype
+X509_LOOKUP_ctrl_fn                     datatype
+X509_LOOKUP_get_by_issuer_serial_fn     datatype
+X509_STORE                              datatype
+bio_info_cb                             datatype
+BIO_info_cb                             datatype
+custom_ext_add_cb                       datatype
+custom_ext_free_cb                      datatype
+custom_ext_parse_cb                     datatype
+pem_password_cb                         datatype
+ssl_ct_validation_cb                    datatype
+#
+BIO_append_filename                     define
+BIO_destroy_bio_pair                    define
+BIO_do_accept                           define
+BIO_do_connect                          define
+BIO_do_handshake                        define
+BIO_eof                                 define
+BIO_flush                               define
+BIO_get_accept_name                     define
+BIO_get_accept_port                     define
+BIO_get_accept_ip_family                define
+BIO_get_peer_name                       define
+BIO_get_peer_port                       define
+BIO_get_bind_mode                       define
+BIO_get_buffer_num_lines                define
+BIO_get_cipher_ctx                      define
+BIO_get_cipher_status                   define
+BIO_get_close                           define
+BIO_get_conn_address                    define
+BIO_get_conn_hostname                   define
+BIO_get_conn_port                       define
+BIO_get_conn_ip_family                  define
+BIO_get_fd                              define
+BIO_get_fp                              define
+BIO_get_info_callback                   define
+BIO_get_md                              define
+BIO_get_md_ctx                          define
+BIO_get_mem_data                        define
+BIO_get_mem_ptr                         define
+BIO_get_num_renegotiates                define
+BIO_get_read_request                    define
+BIO_get_ssl                             define
+BIO_get_write_buf_size                  define
+BIO_get_write_guarantee                 define
+BIO_make_bio_pair                       define
+BIO_pending                             define
+BIO_read_filename                       define
+BIO_reset                               define
+BIO_retry_type                          define
+BIO_rw_filename                         define
+BIO_seek                                define
+BIO_set_accept_bios                     define
+BIO_set_accept_name                     define
+BIO_set_accept_port                     define
+BIO_set_accept_ip_family                define
+BIO_set_bind_mode                       define
+BIO_set_buffer_read_data                define
+BIO_set_buffer_size                     define
+BIO_set_close                           define
+BIO_set_conn_address                    define
+BIO_set_conn_hostname                   define
+BIO_set_conn_port                       define
+BIO_set_conn_ip_family                  define
+BIO_set_fd                              define
+BIO_set_fp                              define
+BIO_set_info_callback                   define
+BIO_set_md                              define
+BIO_set_mem_buf                         define
+BIO_set_mem_eof_return                  define
+BIO_set_nbio                            define
+BIO_set_nbio_accept                     define
+BIO_set_read_buffer_size                define
+BIO_set_ssl                             define
+BIO_set_ssl_mode                        define
+BIO_set_ssl_renegotiate_bytes           define
+BIO_set_ssl_renegotiate_timeout         define
+BIO_set_write_buf_size                  define
+BIO_set_write_buffer_size               define
+BIO_should_io_special                   define
+BIO_should_read                         define
+BIO_should_retry                        define
+BIO_should_write                        define
+BIO_shutdown_wr                         define
+BIO_tell                                define
+BIO_wpending                            define
+BIO_write_filename                      define
+BN_mod                                  define
+BN_num_bytes                            define
+BN_one                                  define
+BN_zero                                 define deprecated 0.9.8
+CONF_modules_free                       define deprecated 1.1.0
+DES_ecb2_encrypt                        define
+DES_ede2_cbc_encrypt                    define
+DES_ede2_cfb64_encrypt                  define
+DES_ede2_ofb64_encrypt                  define
+DTLS_get_link_min_mtu                   define
+DTLS_set_link_mtu                       define
+ENGINE_cleanup                          define deprecated 1.1.0
+ERR_FATAL_ERROR                         define
+ERR_GET_FUNC                            define
+ERR_GET_LIB                             define
+ERR_GET_REASON                          define
+ERR_PACK                                define
+ERR_free_strings                        define deprecated 1.1.0
+ERR_load_crypto_strings                 define deprecated 1.1.0
+EVP_DigestSignUpdate                    define
+EVP_DigestVerifyUpdate                  define
+EVP_MD_CTX_block_size                   define
+EVP_MD_CTX_size                         define
+EVP_MD_CTX_type                         define
+EVP_OpenUpdate                          define
+EVP_PKEY_CTX_add1_hkdf_info             define
+EVP_PKEY_CTX_add1_tls1_prf_seed         define
+EVP_PKEY_CTX_get0_dh_kdf_oid            define
+EVP_PKEY_CTX_get0_dh_kdf_ukm            define
+EVP_PKEY_CTX_get0_ecdh_kdf_ukm          define
+EVP_PKEY_CTX_get0_rsa_oaep_label        define
+EVP_PKEY_CTX_get_dh_kdf_md              define
+EVP_PKEY_CTX_get_dh_kdf_outlen          define
+EVP_PKEY_CTX_get_dh_kdf_type            define
+EVP_PKEY_CTX_get_ecdh_cofactor_mode     define
+EVP_PKEY_CTX_get_ecdh_kdf_md            define
+EVP_PKEY_CTX_get_ecdh_kdf_outlen        define
+EVP_PKEY_CTX_get_ecdh_kdf_type          define
+EVP_PKEY_CTX_get_rsa_mgf1_md            define
+EVP_PKEY_CTX_get_rsa_oaep_md            define
+EVP_PKEY_CTX_get_rsa_padding            define
+EVP_PKEY_CTX_get_rsa_pss_saltlen        define
+EVP_PKEY_CTX_get_signature_md           define
+EVP_PKEY_CTX_hkdf_mode                  define
+EVP_PKEY_CTX_set0_dh_kdf_oid            define
+EVP_PKEY_CTX_set0_dh_kdf_ukm            define
+EVP_PKEY_CTX_set0_ecdh_kdf_ukm          define
+EVP_PKEY_CTX_set0_rsa_oaep_label        define
+EVP_PKEY_CTX_set1_hkdf_key              define
+EVP_PKEY_CTX_set1_hkdf_salt             define
+EVP_PKEY_CTX_set1_pbe_pass              define
+EVP_PKEY_CTX_set1_scrypt_salt           define
+EVP_PKEY_CTX_set1_tls1_prf_secret       define
+EVP_PKEY_CTX_set_dh_paramgen_generator  define
+EVP_PKEY_CTX_set_dh_paramgen_prime_len  define
+EVP_PKEY_CTX_set_dh_paramgen_subprime_len     define
+EVP_PKEY_CTX_set_dh_paramgen_type       define
+EVP_PKEY_CTX_set_dh_kdf_md              define
+EVP_PKEY_CTX_set_dh_kdf_outlen          define
+EVP_PKEY_CTX_set_dh_kdf_type            define
+EVP_PKEY_CTX_set_dh_nid                 define
+EVP_PKEY_CTX_set_dh_pad                 define
+EVP_PKEY_CTX_set_dh_rfc5114             define
+EVP_PKEY_CTX_set_dhx_rfc5114            define
+EVP_PKEY_CTX_set_dsa_paramgen_bits      define
+EVP_PKEY_CTX_set_dsa_paramgen_q_bits    define
+EVP_PKEY_CTX_set_dsa_paramgen_md        define
+EVP_PKEY_CTX_set_ec_param_enc           define
+EVP_PKEY_CTX_set_ec_paramgen_curve_nid  define
+EVP_PKEY_CTX_set_ecdh_cofactor_mode     define
+EVP_PKEY_CTX_set_ecdh_kdf_md            define
+EVP_PKEY_CTX_set_ecdh_kdf_outlen        define
+EVP_PKEY_CTX_set_ecdh_kdf_type          define
+EVP_PKEY_CTX_set_hkdf_md                define
+EVP_PKEY_CTX_set_mac_key                define
+EVP_PKEY_CTX_set_rsa_keygen_bits        define
+EVP_PKEY_CTX_set_rsa_keygen_pubexp      define
+EVP_PKEY_CTX_set_rsa_keygen_primes      define
+EVP_PKEY_CTX_set_rsa_mgf1_md            define
+EVP_PKEY_CTX_set_rsa_oaep_md            define
+EVP_PKEY_CTX_set_rsa_padding            define
+EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md define
+EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen define
+EVP_PKEY_CTX_set_rsa_pss_keygen_md      define
+EVP_PKEY_CTX_set_rsa_pss_saltlen        define
+EVP_PKEY_CTX_set_scrypt_N               define
+EVP_PKEY_CTX_set_scrypt_r               define
+EVP_PKEY_CTX_set_scrypt_maxmem_bytes    define
+EVP_PKEY_CTX_set_scrypt_p               define
+EVP_PKEY_CTX_set_signature_md           define
+EVP_PKEY_CTX_set_tls1_prf_md            define
+EVP_PKEY_assign_DH                      define
+EVP_PKEY_assign_DSA                     define
+EVP_PKEY_assign_EC_KEY                  define
+EVP_PKEY_assign_POLY1305                define
+EVP_PKEY_assign_RSA                     define
+EVP_PKEY_assign_SIPHASH                 define
+EVP_SealUpdate                          define
+EVP_SignInit                            define
+EVP_SignInit_ex                         define
+EVP_SignUpdate                          define
+EVP_VerifyInit                          define
+EVP_VerifyInit_ex                       define
+EVP_VerifyUpdate                        define
+EVP_bf_cfb                              define
+EVP_cast5_cfb                           define
+EVP_cleanup                             define deprecated 1.1.0
+EVP_get_digestbynid                     define
+EVP_get_digestbyobj                     define
+EVP_idea_cfb                            define
+EVP_rc2_cfb                             define
+EVP_rc5_32_12_16_cfb                    define
+EVP_seed_cfb                            define
+EVP_sm4_cfb                             define
+OBJ_cleanup                             define deprecated 1.1.0
+OPENSSL_VERSION_NUMBER                  define
+OPENSSL_VERSION_TEXT                    define
+OPENSSL_clear_free                      define
+OPENSSL_clear_realloc                   define
+OPENSSL_free                            define
+OPENSSL_malloc                          define
+OPENSSL_malloc_init                     define
+OPENSSL_mem_debug_pop                   define
+OPENSSL_mem_debug_push                  define
+OPENSSL_memdup                          define
+OPENSSL_no_config                       define deprecated 1.1.0
+OPENSSL_realloc                         define
+OPENSSL_secure_actual_size              define
+OPENSSL_secure_clear_free               define
+OPENSSL_secure_free                     define
+OPENSSL_secure_malloc                   define
+OPENSSL_secure_zalloc                   define
+OPENSSL_strdup                          define
+OPENSSL_strndup                         define
+OPENSSL_zalloc                          define
+OpenSSL_add_all_algorithms              define deprecated 1.1.0
+OpenSSL_add_all_ciphers                 define deprecated 1.1.0
+OpenSSL_add_all_digests                 define deprecated 1.1.0
+OpenSSL_add_ssl_algorithms              define
+PEM_FLAG_EAY_COMPATIBLE                 define
+PEM_FLAG_ONLY_B64                       define
+PEM_FLAG_SECURE                         define
+RAND_cleanup                            define deprecated 1.1.0
+RAND_DRBG_get_ex_new_index              define
+SSL_COMP_free_compression_methods       define deprecated 1.1.0
+SSL_CTX_add0_chain_cert                 define
+SSL_CTX_add1_chain_cert                 define
+SSL_CTX_add_extra_chain_cert            define
+SSL_CTX_build_cert_chain                define
+SSL_CTX_clear_chain_certs               define
+SSL_CTX_clear_extra_chain_certs         define
+SSL_CTX_clear_mode                      define
+SSL_CTX_decrypt_session_ticket_fn       define
+SSL_CTX_disable_ct                      define
+SSL_CTX_generate_session_ticket_fn      define
+SSL_CTX_get0_chain_certs                define
+SSL_CTX_get0_chain_cert_store           define
+SSL_CTX_get0_verify_cert_store          define
+SSL_CTX_get_default_read_ahead          define
+SSL_CTX_get_max_cert_list               define
+SSL_CTX_get_max_proto_version           define
+SSL_CTX_get_min_proto_version           define
+SSL_CTX_get_mode                        define
+SSL_CTX_get_read_ahead                  define
+SSL_CTX_get_session_cache_mode          define
+SSL_CTX_get_tlsext_status_arg           define
+SSL_CTX_get_tlsext_status_cb            define
+SSL_CTX_get_tlsext_status_type          define
+SSL_CTX_select_current_cert             define
+SSL_CTX_sess_accept                     define
+SSL_CTX_sess_accept_good                define
+SSL_CTX_sess_accept_renegotiate         define
+SSL_CTX_sess_cache_full                 define
+SSL_CTX_sess_cb_hits                    define
+SSL_CTX_sess_connect                    define
+SSL_CTX_sess_connect_good               define
+SSL_CTX_sess_connect_renegotiate        define
+SSL_CTX_sess_get_cache_size             define
+SSL_CTX_sess_hits                       define
+SSL_CTX_sess_misses                     define
+SSL_CTX_sess_number                     define
+SSL_CTX_sess_set_cache_size             define
+SSL_CTX_sess_timeouts                   define
+SSL_CTX_set0_chain                      define
+SSL_CTX_set0_chain_cert_store           define
+SSL_CTX_set0_verify_cert_store          define
+SSL_CTX_set1_chain                      define
+SSL_CTX_set1_chain_cert_store           define
+SSL_CTX_set1_client_sigalgs             define
+SSL_CTX_set1_client_sigalgs_list        define
+SSL_CTX_set1_curves                     define
+SSL_CTX_set1_curves_list                define
+SSL_CTX_set1_groups                     define
+SSL_CTX_set1_groups_list                define
+SSL_CTX_set1_sigalgs                    define
+SSL_CTX_set1_sigalgs_list               define
+SSL_CTX_set1_verify_cert_store          define
+SSL_CTX_set_current_cert                define
+SSL_CTX_set_max_cert_list               define
+SSL_CTX_set_max_pipelines               define
+SSL_CTX_set_max_proto_version           define
+SSL_CTX_set_max_send_fragment           define
+SSL_CTX_set_min_proto_version           define
+SSL_CTX_set_mode                        define
+SSL_CTX_set_msg_callback_arg            define
+SSL_CTX_set_read_ahead                  define
+SSL_CTX_set_session_cache_mode          define
+SSL_CTX_set_split_send_fragment         define
+SSL_CTX_set_tlsext_servername_arg       define
+SSL_CTX_set_tlsext_servername_callback  define
+SSL_CTX_set_tlsext_status_arg           define
+SSL_CTX_set_tlsext_status_cb            define
+SSL_CTX_set_tlsext_status_type          define
+SSL_CTX_set_tlsext_ticket_key_cb        define
+SSL_CTX_set_tmp_dh                      define
+SSL_add0_chain_cert                     define
+SSL_add1_chain_cert                     define
+SSL_build_cert_chain                    define
+SSL_clear_chain_certs                   define
+SSL_clear_mode                          define
+SSL_disable_ct                          define
+SSL_get0_chain_certs                    define
+SSL_get0_session                        define
+SSL_get0_chain_cert_store               define
+SSL_get0_verify_cert_store              define
+SSL_get1_curves                         define
+SSL_get1_groups                         define
+SSL_get_cipher                          define
+SSL_get_cipher_bits                     define
+SSL_get_cipher_name                     define
+SSL_get_cipher_version                  define
+SSL_get_extms_support                   define
+SSL_get_max_cert_list                   define
+SSL_get_max_proto_version               define
+SSL_get_min_proto_version               define
+SSL_get_mode                            define
+SSL_get_peer_signature_nid              define
+SSL_get_peer_tmp_key                    define
+SSL_get_secure_renegotiation_support    define
+SSL_get_server_tmp_key                  define
+SSL_get_shared_curve                    define
+SSL_get_shared_group                    define
+SSL_get_signature_nid                   define
+SSL_get_time                            define
+SSL_get_timeout                         define
+SSL_get_tlsext_status_ocsp_resp         define
+SSL_get_tlsext_status_type              define
+SSL_get_tmp_key                         define
+SSL_in_accept_init                      define
+SSL_in_connect_init                     define
+SSL_library_init                        define
+SSL_load_error_strings                  define deprecated 1.1.0
+SSL_select_current_cert                 define
+SSL_set0_chain                          define
+SSL_set0_chain_cert_store               define
+SSL_set0_verify_cert_store              define
+SSL_set1_chain                          define
+SSL_set1_chain_cert_store               define
+SSL_set1_client_sigalgs                 define
+SSL_set1_client_sigalgs_list            define
+SSL_set1_curves                         define
+SSL_set1_curves_list                    define
+SSL_set1_groups                         define
+SSL_set1_groups_list                    define
+SSL_set1_sigalgs                        define
+SSL_set1_sigalgs_list                   define
+SSL_set1_verify_cert_store              define
+SSL_set_current_cert                    define
+SSL_set_max_cert_list                   define
+SSL_set_max_pipelines                   define
+SSL_set_max_proto_version               define
+SSL_set_max_send_fragment               define
+SSL_set_min_proto_version               define
+SSL_set_mode                            define
+SSL_set_msg_callback_arg                define
+SSL_set_mtu                             define
+SSL_set_split_send_fragment             define
+SSL_set_time                            define
+SSL_set_timeout                         define
+SSL_set_tlsext_host_name                define
+SSL_set_tlsext_status_ocsp_resp         define
+SSL_set_tlsext_status_type              define
+SSL_set_tmp_dh                          define
+SSL_want_async                          define
+SSL_want_async_job                      define
+SSL_want_client_hello_cb                define
+SSL_want_nothing                        define
+SSL_want_read                           define
+SSL_want_write                          define
+SSL_want_x509_lookup                    define
+SSLv23_client_method                    define
+SSLv23_method                           define
+SSLv23_server_method                    define
+X509_LOOKUP_add_dir                     define
+X509_LOOKUP_load_file                   define
+X509_STORE_set_lookup_crls_cb           define
+X509_STORE_set_verify_func              define
+EVP_PKEY_CTX_set1_id                    define
+EVP_PKEY_CTX_get1_id                    define
+EVP_PKEY_CTX_get1_id_len                define
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/process_docs.pl b/ap/lib/libssl/openssl-1.1.1o/util/process_docs.pl
new file mode 100755
index 0000000..30b149e
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/process_docs.pl
@@ -0,0 +1,271 @@
+#! /usr/bin/env perl
+# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+use warnings;
+
+use File::Spec::Functions;
+use File::Basename;
+use File::Copy;
+use File::Path;
+use FindBin;
+use lib "$FindBin::Bin/perl";
+use OpenSSL::Glob;
+use Getopt::Long;
+use Pod::Usage;
+
+use lib '.';
+use configdata;
+
+# We know we are in the 'util' directory and that our perl modules are
+# in util/perl
+use lib catdir(dirname($0), "perl");
+use OpenSSL::Util::Pod;
+
+my %options = ();
+GetOptions(\%options,
+           'sourcedir=s',       # Source directory
+           'section=i@',        # Subdirectories to look through,
+                                # with associated section numbers
+           'destdir=s',         # Destination directory
+           #'in=s@',             # Explicit files to process (ignores sourcedir)
+           'type=s',            # The result type, 'man' or 'html'
+           'suffix:s',          # Suffix to add to the extension.
+                                # Only used with type=man
+           'remove',            # To remove files rather than writing them
+           'dry-run|n',         # Only output file names on STDOUT
+           'debug|D+',
+          );
+
+unless ($options{section}) {
+    $options{section} = [ 1, 3, 5, 7 ];
+}
+unless ($options{sourcedir}) {
+    $options{sourcedir} = catdir($config{sourcedir}, "doc");
+}
+pod2usage(1) unless ( defined $options{section}
+                      && defined $options{sourcedir}
+                      && defined $options{destdir}
+                      && defined $options{type}
+                      && ($options{type} eq 'man'
+                          || $options{type} eq 'html') );
+pod2usage(1) if ( $options{type} eq 'html'
+                  && defined $options{suffix} );
+
+if ($options{debug}) {
+    print STDERR "DEBUG: options:\n";
+    print STDERR "DEBUG:   --sourcedir = $options{sourcedir}\n"
+        if defined $options{sourcedir};
+    print STDERR "DEBUG:   --destdir   = $options{destdir}\n"
+        if defined $options{destdir};
+    print STDERR "DEBUG:   --type      = $options{type}\n"
+        if defined $options{type};
+    print STDERR "DEBUG:   --suffix    = $options{suffix}\n"
+        if defined $options{suffix};
+    foreach (sort @{$options{section}}) {
+        print STDERR "DEBUG:   --section   = $_\n";
+    }
+    print STDERR "DEBUG:   --remove    = $options{remove}\n"
+        if defined $options{remove};
+    print STDERR "DEBUG:   --debug     = $options{debug}\n"
+        if defined $options{debug};
+    print STDERR "DEBUG:   --dry-run   = $options{\"dry-run\"}\n"
+        if defined $options{"dry-run"};
+}
+
+my $symlink_exists = eval { symlink("",""); 1 };
+
+foreach my $section (sort @{$options{section}}) {
+    my $subdir = "man$section";
+    my $podsourcedir = catfile($options{sourcedir}, $subdir);
+    my $podglob = catfile($podsourcedir, "*.pod");
+
+    foreach my $podfile (glob $podglob) {
+        my $podname = basename($podfile, ".pod");
+        my $podpath = catfile($podfile);
+        my %podinfo = extract_pod_info($podpath,
+                                       { debug => $options{debug},
+                                         section => $section });
+        my @podfiles = grep { $_ ne $podname } @{$podinfo{names}};
+
+        my $updir = updir();
+        my $name = uc $podname;
+        my $suffix = { man  => ".$podinfo{section}".($options{suffix} // ""),
+                       html => ".html" } -> {$options{type}};
+        my $generate = { man  => "pod2man --name=$name --section=$podinfo{section} --center=OpenSSL --release=$config{version} \"$podpath\"",
+                         html => "pod2html \"--podroot=$options{sourcedir}\" --htmldir=$updir --podpath=man1:man3:man5:man7 \"--infile=$podpath\" \"--title=$podname\" --quiet"
+                         } -> {$options{type}};
+        my $output_dir = catdir($options{destdir}, "man$podinfo{section}");
+        my $output_file = $podname . $suffix;
+        my $output_path = catfile($output_dir, $output_file);
+
+        if (! $options{remove}) {
+            my @output;
+            print STDERR "DEBUG: Processing, using \"$generate\"\n"
+                if $options{debug};
+            unless ($options{"dry-run"}) {
+                @output = `$generate`;
+                map { s|href="http://man\.he\.net/(man\d/[^"]+)(?:\.html)?"|href="../$1.html"|g; } @output
+                    if $options{type} eq "html";
+                if ($options{type} eq "man") {
+                    # Because some *roff parsers are more strict than others,
+                    # multiple lines in the NAME section must be merged into
+                    # one.
+                    my $in_name = 0;
+                    my $name_line = "";
+                    my @newoutput = ();
+                    foreach (@output) {
+                        if ($in_name) {
+                            if (/^\.SH "/) {
+                                $in_name = 0;
+                                push @newoutput, $name_line."\n";
+                            } else {
+                                chomp (my $x = $_);
+                                $name_line .= " " if $name_line;
+                                $name_line .= $x;
+                                next;
+                            }
+                        }
+                        if (/^\.SH +"NAME" *$/) {
+                            $in_name = 1;
+                        }
+                        push @newoutput, $_;
+                    }
+                    @output = @newoutput;
+                }
+            }
+            print STDERR "DEBUG: Done processing\n" if $options{debug};
+
+            if (! -d $output_dir) {
+                print STDERR "DEBUG: Creating directory $output_dir\n" if $options{debug};
+                unless ($options{"dry-run"}) {
+                    mkpath $output_dir
+                        or die "Trying to create directory $output_dir: $!\n";
+                }
+            }
+            print STDERR "DEBUG: Writing $output_path\n" if $options{debug};
+            unless ($options{"dry-run"}) {
+                open my $output_fh, '>', $output_path
+                    or die "Trying to write to $output_path: $!\n";
+                foreach (@output) {
+                    print $output_fh $_;
+                }
+                close $output_fh;
+            }
+            print STDERR "DEBUG: Done writing $output_path\n" if $options{debug};
+        } else {
+            print STDERR "DEBUG: Removing $output_path\n" if $options{debug};
+            unless ($options{"dry-run"}) {
+                while (unlink $output_path) {}
+            }
+        }
+        print "$output_path\n";
+
+        foreach (@podfiles) {
+            my $link_file = $_ . $suffix;
+            my $link_path = catfile($output_dir, $link_file);
+            if (! $options{remove}) {
+                if ($symlink_exists) {
+                    print STDERR "DEBUG: Linking $link_path -> $output_file\n"
+                        if $options{debug};
+                    unless ($options{"dry-run"}) {
+                        symlink $output_file, $link_path;
+                    }
+                } else {
+                    print STDERR "DEBUG: Copying $output_path to link_path\n"
+                        if $options{debug};
+                    unless ($options{"dry-run"}) {
+                        copy $output_path, $link_path;
+                    }
+                }
+            } else {
+                print STDERR "DEBUG: Removing $link_path\n" if $options{debug};
+                unless ($options{"dry-run"}) {
+                    while (unlink $link_path) {}
+                }
+            }
+            print "$link_path -> $output_path\n";
+        }
+    }
+}
+
+__END__
+
+=pod
+
+=head1 NAME
+
+process_docs.pl - A script to process OpenSSL docs
+
+=head1 SYNOPSIS
+
+B<process_docs.pl>
+[B<--sourcedir>=I<dir>]
+B<--destdir>=I<dir>
+B<--type>=B<man>|B<html>
+[B<--suffix>=I<suffix>]
+[B<--remove>]
+[B<--dry-run>|B<-n>]
+[B<--debug>|B<-D>]
+
+=head1 DESCRIPTION
+
+This script looks for .pod files in the subdirectories 'apps', 'crypto'
+and 'ssl' under the given source directory.
+
+The OpenSSL configuration data file F<configdata.pm> I<must> reside in
+the current directory, I<or> perl must have the directory it resides in
+in its inclusion array.  For the latter variant, a call like this would
+work:
+
+ perl -I../foo util/process_docs.pl {options ...}
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--sourcedir>=I<dir>
+
+Top directory where the source files are found.
+
+=item B<--destdir>=I<dir>
+
+Top directory where the resulting files should end up
+
+=item B<--type>=B<man>|B<html>
+
+Type of output to produce.  Currently supported are man pages and HTML files.
+
+=item B<--suffix>=I<suffix>
+
+A suffix added to the extension.  Only valid with B<--type>=B<man>
+
+=item B<--remove>
+
+Instead of writing the files, remove them.
+
+=item B<--dry-run>|B<-n>
+
+Do not perform any file writing, directory creation or file removal.
+
+=item B<--debug>|B<-D>
+
+Print extra debugging output.
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2013-2018 The OpenSSL Project Authors. All Rights Reserved.
+
+Licensed under the OpenSSL license (the "License").  You may not use
+this file except in compliance with the License.  You can obtain a copy
+in the file LICENSE in the source distribution or at
+https://www.openssl.org/source/license.html
+
+=cut
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/shlib_wrap.sh.in b/ap/lib/libssl/openssl-1.1.1o/util/shlib_wrap.sh.in
new file mode 100755
index 0000000..eac70ed
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/shlib_wrap.sh.in
@@ -0,0 +1,138 @@
+#!/bin/sh
+{-
+    use lib '.';
+    use configdata;
+
+    sub shlib {
+        my $lib = shift;
+        return "" if $disabled{shared};
+        $lib = $unified_info{rename}->{$lib}
+            if defined $unified_info{rename}->{$lib};
+        $lib = $unified_info{sharednames}->{$lib}
+            . ($target{shlib_variant} || "")
+            . ($target{shared_extension} || ".so");
+        $lib =~ s|\.\$\(SHLIB_VERSION_NUMBER\)
+                 |.$config{shlib_version_number}|x;
+        return $lib;
+    }
+    "";     # Make sure no left over string sneaks its way into the script
+-}
+# To test this OpenSSL version's applications against another version's
+# shared libraries, simply set
+#
+#     OPENSSL_REGRESSION=/path/to/other/OpenSSL/build/tree
+if [ -n "$OPENSSL_REGRESSION" ]; then
+    shlibwrap="$OPENSSL_REGRESSION/util/shlib_wrap.sh"
+    if [ -x "$shlibwrap" ]; then
+        # We clear OPENSSL_REGRESSION to avoid a loop, should the shlib_wrap.sh
+        # we exec also support that mechanism...
+        OPENSSL_REGRESSION= exec "$shlibwrap" "$@"
+    else
+        if [ -f "$shlibwrap" ]; then
+            echo "Not permitted to run $shlibwrap" >&2
+        else
+            echo "No $shlibwrap, perhaps OPENSSL_REGRESSION isn't properly set?" >&2
+        fi
+        exit 1
+    fi
+fi
+
+[ $# -ne 0 ] || set -x		# debug mode without arguments:-)
+
+THERE="`echo $0 | sed -e 's|[^/]*$||' 2>/dev/null`.."
+[ -d "${THERE}" ] || exec "$@"	# should never happen...
+
+LIBCRYPTOSO="${THERE}/{- shlib('libcrypto') -}"
+LIBSSLSO="${THERE}/{- shlib('libssl') -}"
+
+SYSNAME=`(uname -s) 2>/dev/null`;
+case "$SYSNAME" in
+SunOS|IRIX*)
+	# SunOS and IRIX run-time linkers evaluate alternative
+	# variables depending on target ABI...
+	rld_var=LD_LIBRARY_PATH
+	case "`(/usr/bin/file "$LIBCRYPTOSO") 2>/dev/null`" in
+	*ELF\ 64*SPARC*|*ELF\ 64*AMD64*)
+		[ -n "$LD_LIBRARY_PATH_64" ] && rld_var=LD_LIBRARY_PATH_64
+		LD_PRELOAD_64="$LIBCRYPTOSO $LIBSSLSO"; export LD_PRELOAD_64
+		preload_var=LD_PRELOAD_64
+		;;
+	*ELF\ 32*SPARC*|*ELF\ 32*80386*)
+		# We only need to change LD_PRELOAD_32 and LD_LIBRARY_PATH_32
+		# on a multi-arch system.  Otherwise, trust the fallbacks.
+		if [ -f /lib/64/ld.so.1 ]; then
+		    [ -n "$LD_LIBRARY_PATH_32" ] && rld_var=LD_LIBRARY_PATH_32
+		    LD_PRELOAD_32="$LIBCRYPTOSO $LIBSSLSO"; export LD_PRELOAD_32
+		    preload_var=LD_PRELOAD_32
+		fi
+		;;
+	# Why are newly built .so's preloaded anyway? Because run-time
+	# .so lookup path embedded into application takes precedence
+	# over LD_LIBRARY_PATH and as result application ends up linking
+	# to previously installed .so's. On IRIX instead of preloading
+	# newly built .so's we trick run-time linker to fail to find
+	# the installed .so by setting _RLD_ROOT variable.
+	*ELF\ 32*MIPS*)
+		#_RLD_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLD_LIST
+		_RLD_ROOT=/no/such/dir; export _RLD_ROOT
+		eval $rld_var=\"/usr/lib'${'$rld_var':+:$'$rld_var'}'\"
+		preload_var=_RLD_LIST
+		;;
+	*ELF\ N32*MIPS*)
+		[ -n "$LD_LIBRARYN32_PATH" ] && rld_var=LD_LIBRARYN32_PATH
+		#_RLDN32_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLDN32_LIST
+		_RLDN32_ROOT=/no/such/dir; export _RLDN32_ROOT
+		eval $rld_var=\"/usr/lib32'${'$rld_var':+:$'$rld_var'}'\"
+		preload_var=_RLDN32_LIST
+		;;
+	*ELF\ 64*MIPS*)
+		[ -n "$LD_LIBRARY64_PATH"  ] && rld_var=LD_LIBRARY64_PATH
+		#_RLD64_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLD64_LIST
+		_RLD64_ROOT=/no/such/dir; export _RLD64_ROOT
+		eval $rld_var=\"/usr/lib64'${'$rld_var':+:$'$rld_var'}'\"
+		preload_var=_RLD64_LIST
+		;;
+	esac
+	eval $rld_var=\"${THERE}'${'$rld_var':+:$'$rld_var'}'\"; export $rld_var
+	unset rld_var
+	;;
+*)	LD_LIBRARY_PATH="${THERE}:$LD_LIBRARY_PATH"	# Linux, ELF HP-UX
+	DYLD_LIBRARY_PATH="${THERE}:$DYLD_LIBRARY_PATH"	# MacOS X
+	SHLIB_PATH="${THERE}:$SHLIB_PATH"		# legacy HP-UX
+	LIBPATH="${THERE}:$LIBPATH"			# AIX, OS/2
+	export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH
+	# Even though $PATH is adjusted [for Windows sake], it doesn't
+	# necessarily does the trick. Trouble is that with introduction
+	# of SafeDllSearchMode in XP/2003 it's more appropriate to copy
+	# .DLLs in vicinity of executable, which is done elsewhere...
+	if [ "$OSTYPE" != msdosdjgpp ]; then
+		PATH="${THERE}:$PATH"; export PATH
+	fi
+	;;
+esac
+
+{- output_off() unless grep (/-rpath\b/, @{$config{LDFLAGS}}); ""; -}
+if [ -f "$LIBCRYPTOSO" -a -z "$preload_var" ]; then
+	# Following three lines are major excuse for isolating them into
+	# this wrapper script. Original reason for setting LD_PRELOAD
+	# was to make it possible to pass 'make test' when user linked
+	# with -rpath pointing to previous version installation. Wrapping
+	# it into a script makes it possible to do so on multi-ABI
+	# platforms.
+	case "$SYSNAME" in
+	*BSD)	LD_PRELOAD="$LIBCRYPTOSO:$LIBSSLSO" ;;	# *BSD
+	*)	LD_PRELOAD="$LIBCRYPTOSO $LIBSSLSO" ;;	# SunOS, Linux, ELF HP-UX
+	esac
+	_RLD_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"	# Tru64, o32 IRIX
+	DYLD_INSERT_LIBRARIES="$LIBCRYPTOSO:$LIBSSLSO"	# MacOS X
+	export LD_PRELOAD _RLD_LIST DYLD_INSERT_LIBRARIES
+fi
+{- output_on() unless grep (/-rpath\b/, @{$config{LDFLAGS}}); ""; -}
+
+cmd="$1"; [ -x "$cmd" ] || cmd="$cmd${EXE_EXT}"
+shift
+if [ $# -eq 0 ]; then
+	exec "$cmd"	# old sh, such as Tru64 4.x, fails to expand empty "$@"
+else
+	exec "$cmd" "$@"
+fi
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/su-filter.pl b/ap/lib/libssl/openssl-1.1.1o/util/su-filter.pl
new file mode 100644
index 0000000..389c7c3
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/su-filter.pl
@@ -0,0 +1,264 @@
+#! /usr/bin/env perl
+# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+use strict;
+
+my $in_su = 0;
+my $indent = 0;
+my $out;
+my $braces = 0;
+my $arrcnt;
+my $data;
+my $tststr;
+my $incomm = 0;
+
+while(<>) {
+    $tststr = $_;
+    $incomm++ while $tststr =~ /\/\*/g;
+    $incomm-- while $tststr =~ /\*\//g;
+
+    if($in_su == 1) {
+        if(/}(.*);/) {
+            $out .= $_;
+            do_output($out);
+            $in_su = 0;
+        } elsif(/^ *\} [^\s]+(\[\d*\])* = \{/) {
+           $tststr = $1;
+           $arrcnt = 0;
+           $arrcnt++ while $tststr =~ /\[/g;
+           $in_su++;
+           $braces = 1;
+           /^(.* = \{)(.*)$/;
+           $data = $2;
+           $out .= $1."\n";
+        } else {
+            $out .= $_;
+        }
+    } elsif($in_su == 2) {
+        $data .= $_;
+        if(/};$/) {
+            #$data = "\n$data";
+            $data =~ s/\n */\n/g;
+            $data =~ s/};\n?//s;
+            my @strucdata = structureData($data);
+            $out .= displayData($indent, 0, \@strucdata);
+            $out .= "\n$indent};\n";
+            do_output($out);
+            $in_su = 0;
+        }
+    } elsif($incomm <= 0 && /( *)(static )?(const )?(union|struct) ([a-zA-Z_\$][\$0-9a-zA-Z_]+ )?\{/) {
+        $in_su = 1;
+        $indent = $1;
+        $out = $_;
+        next;
+    } else {
+        do_output($_);
+    }
+}
+
+
+sub structureData {
+    my $data = $_[0];
+    my @datalist = split(/(\{|\}|,|"|#|\n|\/\*|\*\/|\(|\))/, $data);
+    my $item;
+    my $dataitem = "";
+    my @struclist = ();
+    my $substruc;
+    my $inquote = 0;
+    my $inbrace = 0;
+    my $preproc = 0;
+    my $comment = 0;
+    my $inparen = 0;
+
+
+    foreach $item (@datalist) {
+        if($comment) {
+            if($item eq "*/") {
+                $comment = 0;
+                $dataitem .= "*/";
+                push @struclist, $dataitem;
+                $dataitem = "";
+                next;
+            }
+            $dataitem .= $item;
+            next;
+        }
+        if($inquote) {
+            $dataitem .= $item;
+            if($item eq "\"") {
+                $inquote--;
+            }
+            next;
+        }
+        if($preproc) {
+            if($item eq "\n") {
+                $preproc = 0;
+                push @struclist, $dataitem;
+                $dataitem = "";
+                next;
+            }
+            $dataitem .= $item;
+            next;
+        }
+        if($inbrace) {
+            if($item eq "}") {
+                $inbrace --;
+
+                if(!$inbrace) {
+                    $substruc = structureData($dataitem);
+                    $dataitem = $substruc;
+                    next;
+                }
+            } elsif($item eq "{") {
+                $inbrace++;
+            } elsif ($item eq "\"") {
+                $inquote++;
+            }
+            $dataitem .= $item;
+            next;
+        }
+        if($inparen) {
+            if($item eq ")") {
+                $inparen--;
+            }
+            $dataitem .= $item;
+            next;
+        }
+        if($item eq "\n") {
+            next;
+        }
+        if($item eq "#") {
+            $preproc = 1;
+            push @struclist, $dataitem;
+            $dataitem = "#";
+            next;
+        }
+        if($item eq "/*") {
+            $comment = 1;
+            push @struclist, $dataitem;
+            $dataitem= "/*";
+            next;
+        }
+        if($item eq "\"") {
+            $dataitem .= $item;
+            $inquote++;
+            next;
+        }
+        if($item eq "{") {
+            $inbrace++;
+            next;
+        }
+        if($item eq ",") {
+            push @struclist, $dataitem;
+            $dataitem = "";
+            next;
+        }
+        if($item eq "(") {
+            $dataitem .= $item;
+            $inparen++;
+            next;
+        }
+        if($item =~ /^\s*$/) {
+            next;
+        }
+        if(ref $dataitem eq 'ARRAY') {
+            push @struclist, $dataitem;
+            $dataitem = "";
+        }
+        $dataitem .= $item;
+    }
+    push @struclist, $dataitem;
+    return \@struclist;
+}
+
+sub displayData {
+    my $indent = shift;
+    my $depth = shift;
+    my $data = shift;
+    my $item;
+    my $out = "";
+    my $currline = "";
+    my $first = 1;
+    my $prevpreproc = 0;
+    my $prevcomment = 0;
+
+    foreach $item (@{$data}) {
+        if($item =~ /^\/\*/) {
+            #Comment
+            $item =~ s/\n/\n$indent/g;
+            if($out =~ /\n\s*$/s) {
+                $out .= $item."\n".$indent;
+            } else {
+                $out .= "\n".$indent.$item."\n".$indent;
+            }
+            $currline = $indent;
+            $prevcomment = 1;
+            next;
+        }
+        $item =~ s/^\s+//;
+        if($item =~ /^#/) {
+            #Pre-processor directive
+            if($out =~ /\n\s*$/s) {
+                $out =~ s/\n\s*$/\n/;
+                $out .= $item."\n".$indent;
+            } else {
+                $out .= "\n".$item."\n".$indent;
+            }
+            $currline = $indent;
+            $prevpreproc = 1;
+            next;
+        }
+        if($first) {
+            $first = 0;
+            if($depth != 0) {
+                $out .= $indent;
+                $currline = $indent;
+            }
+        } else {
+            if(!$prevpreproc && !$prevcomment) {
+                $out .= ", ";
+                $currline .= ", ";
+                if($depth == 1) {
+                    $out .= "\n";
+                    $currline = "";
+                }
+                if($depth == 1) {
+                    $out .= $indent;
+                    $currline .= $indent;
+                }
+            }
+
+        }
+        $prevpreproc = 0;
+        $prevcomment = 0;
+
+        if (ref $item eq 'ARRAY') {
+            if($depth == 0) {
+                $out .= displayData("$indent    ", $depth+1, $item);
+            } else {
+                $out .= "{\n".displayData("$indent    ", $depth+1, $item)."\n".$indent."}";
+                $currline = $indent."}";
+            }
+        } else {
+            if(length $currline.$item > 79) {
+                $currline = $indent;
+                $out .= "\n$indent";
+            }
+            $out .= $item;
+            $currline .= $item;
+        }
+    }
+    return $out;
+}
+
+sub do_output {
+    my $out = shift;
+    # Strip any trailing whitespace
+    $out =~ s/\s+\n/\n/g;
+    print $out;
+}
diff --git a/ap/lib/libssl/openssl-1.1.1o/util/unlocal_shlib.com.in b/ap/lib/libssl/openssl-1.1.1o/util/unlocal_shlib.com.in
new file mode 100644
index 0000000..dd4fd2a
--- /dev/null
+++ b/ap/lib/libssl/openssl-1.1.1o/util/unlocal_shlib.com.in
@@ -0,0 +1,26 @@
+${-
+  use File::Spec::Functions qw(rel2abs);
+
+  my $bldtop = rel2abs($config{builddir});
+  our %names = ( map { $_ => $bldtop.$_.".EXE" }
+                 map { $unified_info{sharednames}->{$_} || () }
+                 @{$unified_info{libraries}} );
+  "" -}
+$       ! Remove the local environment created by local_shlib.com
+$
+$       OPENSSL_NAMES := OPENSSL_NAMES_'F$GETJPI("","PID")'
+$       IF F$TRNLNM("OSSL_FLAG",OPENSSL_NAMES) .EQS. "" THEN EXIT 0
+$
+$       NAMES := {- join(",", keys %names); -}
+$       I = 0
+$       LOOP:
+$           E = F$ELEMENT(I,",",NAMES)
+$           I = I + 1
+$           IF E .EQS. "," THEN GOTO ENDLOOP
+$           OLDV = F$TRNLNM(E,OPENSSL_NAMES)
+$           DEASSIGN 'E'
+$           IF OLDV .NES. "" THEN DEFINE 'E' 'OLDV'
+$           GOTO LOOP
+$       ENDLOOP:
+$
+$       DEASSIGN 'OPENSSL_NAMES' /TABLE=LNM$PROCESS_DIRECTORY